All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2_fuzzer.cc:34,1
    - Dst: absl::SkipWhitespace
      Src: /src/s2_fuzzer.cc:34,1
    - Dst: absl::StripAsciiWhitespace
      Src: /src/s2_fuzzer.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - separator
    argTypes:
    - absl::string_view
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: SplitString
    functionSourceFile: /src/s2_fuzzer.cc
    functionUses: 0
    functionsReached:
    - absl::StripAsciiWhitespace
    - absl::SkipWhitespace
    - absl::StrSplit
    linkageType: ''
    returnType: std::vector<absl::string_view>
    signature: "std::vector<absl::string_view> SplitString(absl::string_view str,\n
      \                                                 char separator)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/s2_fuzzer.cc:43,1
    - Dst: memcpy
      Src: /src/s2_fuzzer.cc:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: null_terminated
    functionSourceFile: /src/s2_fuzzer.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    linkageType: ''
    returnType: char
    signature: char *null_terminated(const uint8_t *data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SplitString
      Src: /src/s2_fuzzer.cc:66,1
    - Dst: std::vector::size
      Src: /src/s2_fuzzer.cc:67,1
    - Dst: std::vector::size
      Src: /src/s2_fuzzer.cc:68,1
    - Dst: absl::make_unique<MutableS2ShapeIndex>
      Src: /src/s2_fuzzer.cc:72,1
    - Dst: s2textformat::MakeIndex
      Src: /src/s2_fuzzer.cc:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - nt_string
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 77
    functionName: isValidFormat
    functionSourceFile: /src/s2_fuzzer.cc
    functionUses: 0
    functionsReached:
    - absl::make_unique<MutableS2ShapeIndex>
    - s2textformat::MakeIndex
    - std::vector::size
    - SplitString
    linkageType: ''
    returnType: bool
    signature: bool isValidFormat(char *nt_string, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_terminated
      Src: /src/s2_fuzzer.cc:85,1
    - Dst: isValidFormat
      Src: /src/s2_fuzzer.cc:89,1
    - Dst: absl::make_unique<MutableS2ShapeIndex>
      Src: /src/s2_fuzzer.cc:90,1
    - Dst: s2textformat::MakeIndex
      Src: /src/s2_fuzzer.cc:91,1
    - Dst: free
      Src: /src/s2_fuzzer.cc:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/s2_fuzzer.cc
    functionUses: 0
    functionsReached:
    - free
    - absl::make_unique<MutableS2ShapeIndex>
    - null_terminated
    - isValidFormat
    - s2textformat::MakeIndex
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/s2geometry/doc/examples/term_index.cc:46,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/doc/examples/term_index.cc:46,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/doc/examples/term_index.cc:47,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/doc/examples/term_index.cc:48,1
    - Dst: s2random::Point
      Src: /src/s2geometry/doc/examples/term_index.cc:48,1
    - Dst: S2RegionTermIndexer::Options::set_index_contains_points_only
      Src: /src/s2geometry/doc/examples/term_index.cc:59,1
    - Dst: std::vector::size
      Src: /src/s2geometry/doc/examples/term_index.cc:63,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/doc/examples/term_index.cc:65,1
    - Dst: push_back
      Src: /src/s2geometry/doc/examples/term_index.cc:66,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/doc/examples/term_index.cc:71,1
    - Dst: S2Earth::KmToRadians
      Src: /src/s2geometry/doc/examples/term_index.cc:72,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/doc/examples/term_index.cc:72,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/doc/examples/term_index.cc:76,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/doc/examples/term_index.cc:84,1
    - Dst: absl::btree_set::insert
      Src: /src/s2geometry/doc/examples/term_index.cc:85,1
    - Dst: begin
      Src: /src/s2geometry/doc/examples/term_index.cc:85,1
    - Dst: end
      Src: /src/s2geometry/doc/examples/term_index.cc:85,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/doc/examples/term_index.cc:94,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/doc/examples/term_index.cc:95,1
    - Dst: std::vector::size
      Src: /src/s2geometry/doc/examples/term_index.cc:98,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/doc/examples/term_index.cc:100,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/doc/examples/term_index.cc:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ABSL_FLAG
    argTypes:
    - of
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 103
    functionName: ABSL_FLAG
    functionSourceFile: /src/s2geometry/doc/examples/term_index.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::GetQueryTerms
    - std::vector::push_back
    - s2random::Point
    - std::vector::size
    - S2RegionTermIndexer::GetIndexTerms
    - end
    - S1Angle::Radians
    - S2Cap::Contains
    - push_back
    - S2RegionTermIndexer::Options::set_index_contains_points_only
    - S2Earth::KmToRadians
    - absl::PrintF
    - begin
    - std::vector::reserve
    - absl::btree_set::insert
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: 'void ABSL_FLAG(int32_t, num_documents, 10000, "Number of documents");

      ABSL_FLAG(int32_t, num_queries, 10000, "Number of queries");

      ABSL_FLAG(double, query_radius_km, 100, "Query radius in kilometers");


      // A prefix added to spatial terms to distinguish them from other index terms

      // (e.g. representing words or phrases).

      static const char kPrefix[] = "s2:";


      int main(int argc, char** argv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:21,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:22,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:22,1
    - Dst: S2CellId::ToString
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: MaybeThrowNotValid
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_valid
    - S2CellId::ToString
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotValid(S2CellId id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:28,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - level
    - min
    - max
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: MaybeThrowLevelOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowLevelOutOfRange(int level, int min, int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:35,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: MaybeThrowFaceOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowFaceOutOfRange(int face)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:42,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: MaybeThrowIfLeaf
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_leaf
    - py::value_error
    linkageType: ''
    returnType: void
    signature: void MaybeThrowIfLeaf(S2CellId id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:48,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: MaybeThrowIfFace
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - S2CellId::is_face
    linkageType: ''
    returnType: void
    signature: void MaybeThrowIfFace(S2CellId id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:55,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - name
    - value
    - min
    - max
    argTypes:
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: MaybeThrowCellIdOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowCellIdOutOfRange(const char* name, int value, int min,
      int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:62,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - position
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: MaybeThrowChildPositionOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowChildPositionOutOfRange(int position)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:69,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pos
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: MaybeThrowPositionOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowPositionOutOfRange(uint64_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:78,1
    - Dst: std::overflow_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:79,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:79,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:81,1
    - Dst: static_cast<Py_ssize_t>
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: LenOrThrow
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - absl::StrCat
    - std::overflow_error
    - static_cast<Py_ssize_t>
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t LenOrThrow(int64_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::index_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - i
    - n
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: IndexOrThrow
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::index_error
    linkageType: ''
    returnType: int64_t
    signature: int64_t IndexOrThrow(int64_t i, int64_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::slice::attr
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:101,1
    - Dst: py::object::is_none
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:102,1
    - Dst: py::object::cast
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:103,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:105,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - py::slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: ValidateStepIsOne
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    - py::object::cast
    - py::slice::attr
    - py::object::is_none
    linkageType: ''
    returnType: void
    signature: void ValidateStepIsOne(py::slice s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: py::slice::attr
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:125,1
    - Dst: py::slice::attr
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:126,1
    - Dst: py::object::is_none
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:127,1
    - Dst: clamp
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:127,1
    - Dst: py::object::cast
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:127,1
    - Dst: py::object::is_none
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:128,1
    - Dst: clamp
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:128,1
    - Dst: py::object::cast
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - n
    - s
    argTypes:
    - int64_t
    - py::slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: ClampedSlice
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - clamp
    - py::slice::attr
    - py::object::is_none
    - py::object::cast
    linkageType: ''
    returnType: std::pair<int64_t, int64_t>
    signature: std::pair<int64_t, int64_t> ClampedSlice(int64_t n, py::slice s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::stop_iteration
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - result
    argTypes:
    - std::optional<S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: NextOrStop
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::stop_iteration
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId NextOrStop(std::optional<S2CellId> result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:21,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:22,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:22,1
    - Dst: S2CellId::ToString
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: MaybeThrowNotValid
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_valid
    - S2CellId::ToString
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotValid(S2CellId id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:28,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - level
    - min
    - max
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: MaybeThrowLevelOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowLevelOutOfRange(int level, int min, int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:35,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: MaybeThrowFaceOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowFaceOutOfRange(int face)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:42,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: MaybeThrowIfLeaf
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_leaf
    - py::value_error
    linkageType: ''
    returnType: void
    signature: void MaybeThrowIfLeaf(S2CellId id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:48,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: MaybeThrowIfFace
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - S2CellId::is_face
    linkageType: ''
    returnType: void
    signature: void MaybeThrowIfFace(S2CellId id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:55,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - name
    - value
    - min
    - max
    argTypes:
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: MaybeThrowCellIdOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowCellIdOutOfRange(const char* name, int value, int min,
      int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:62,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - position
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: MaybeThrowChildPositionOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowChildPositionOutOfRange(int position)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:69,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pos
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: MaybeThrowPositionOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowPositionOutOfRange(uint64_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:78,1
    - Dst: std::overflow_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:79,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:79,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:81,1
    - Dst: static_cast<Py_ssize_t>
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: LenOrThrow
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - absl::StrCat
    - std::overflow_error
    - static_cast<Py_ssize_t>
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t LenOrThrow(int64_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::index_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - i
    - n
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: IndexOrThrow
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::index_error
    linkageType: ''
    returnType: int64_t
    signature: int64_t IndexOrThrow(int64_t i, int64_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::slice::attr
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:101,1
    - Dst: py::object::is_none
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:102,1
    - Dst: py::object::cast
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:103,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:105,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - py::slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: ValidateStepIsOne
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    - py::object::cast
    - py::slice::attr
    - py::object::is_none
    linkageType: ''
    returnType: void
    signature: void ValidateStepIsOne(py::slice s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: py::slice::attr
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:125,1
    - Dst: py::slice::attr
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:126,1
    - Dst: py::object::is_none
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:127,1
    - Dst: clamp
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:127,1
    - Dst: py::object::cast
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:127,1
    - Dst: py::object::is_none
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:128,1
    - Dst: clamp
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:128,1
    - Dst: py::object::cast
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - n
    - s
    argTypes:
    - int64_t
    - py::slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: ClampedSlice
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - clamp
    - py::slice::attr
    - py::object::is_none
    - py::object::cast
    linkageType: ''
    returnType: std::pair<int64_t, int64_t>
    signature: std::pair<int64_t, int64_t> ClampedSlice(int64_t n, py::slice s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::stop_iteration
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - result
    argTypes:
    - std::optional<S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: NextOrStop
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - py::stop_iteration
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId NextOrStop(std::optional<S2CellId> result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<S2CellId>
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:143,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:148,1
    - Dst: MaybeThrowNotValid
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:150,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:153,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:156,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:157,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:159,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:162,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:163,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:165,1
    - Dst: MaybeThrowFaceOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:170,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:171,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:172,1
    - Dst: MaybeThrowFaceOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:176,1
    - Dst: MaybeThrowPositionOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:177,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:178,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:179,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:181,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:181,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:181,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:185,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:186,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:187,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:188,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:191,1
    - Dst: MaybeThrowFaceOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:195,1
    - Dst: MaybeThrowCellIdOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:196,1
    - Dst: MaybeThrowCellIdOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:197,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:198,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:200,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:200,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:200,1
    - Dst: py::overload_cast<>
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:221,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:224,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:225,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:226,1
    - Dst: py::overload_cast<>
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:229,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:232,1
    - Dst: S2CellId::GetSizeST
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:233,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:234,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:249,1
    - Dst: level
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:249,1
    - Dst: child_position
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:250,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:255,1
    - Dst: level
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:255,1
    - Dst: child_position
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:256,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:257,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:269,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:271,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:274,1
    - Dst: MaybeThrowIfFace
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:280,1
    - Dst: parent
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:281,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:286,1
    - Dst: level
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:286,1
    - Dst: parent
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:287,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:288,1
    - Dst: MaybeThrowIfLeaf
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:292,1
    - Dst: MaybeThrowChildPositionOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:293,1
    - Dst: child
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:294,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:295,1
    - Dst: MaybeThrowIfLeaf
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:299,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:300,1
    - Dst: is_none
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:301,1
    - Dst: child_begin
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:302,1
    - Dst: child_end
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:303,1
    - Dst: cast
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:305,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:306,1
    - Dst: level
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:306,1
    - Dst: child_begin
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:308,1
    - Dst: child_end
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:309,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:312,1
    - Dst: RSA_padding_add_none
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:312,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:318,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:319,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:320,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:321,1
    - Dst: GetEdgeNeighbors
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:326,1
    - Dst: py::make_tuple
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:327,1
    - Dst: MaybeThrowIfFace
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:332,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:333,1
    - Dst: level
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:333,1
    - Dst: AppendVertexNeighbors
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:335,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:337,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:342,1
    - Dst: level
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:342,1
    - Dst: AppendAllNeighbors
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:345,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:347,1
    - Dst: absl::Hash<S2CellId>
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:359,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:366,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:371,1
    - Dst: auto::attr
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:374,1
    - Dst: auto::attr
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:375,1
    - Dst: auto::attr
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:376,1
    - Dst: py::class_<S2CellIdRange>
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:378,1
    - Dst: LenOrThrow
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:385,1
    - Dst: size
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:385,1
    - Dst: at
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:393,1
    - Dst: IndexOrThrow
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:393,1
    - Dst: size
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:393,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:394,1
    - Dst: ValidateStepIsOne
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:396,1
    - Dst: ClampedSlice
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:397,1
    - Dst: size
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:397,1
    - Dst: slice
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:398,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:399,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:400,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:403,1
    - Dst: begin::id
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:406,1
    - Dst: end::id
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:407,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:408,1
    - Dst: py::class_<S2CellIdForwardIterator>
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:417,1
    - Dst: py::module_local
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:417,1
    - Dst: NextOrStop
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:422,1
    - Dst: next
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:422,1
    - Dst: py::class_<S2CellIdReverseIterator>
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:425,1
    - Dst: py::module_local
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:425,1
    - Dst: NextOrStop
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:430,1
    - Dst: next
      Src: /src/s2geometry/src/python/s2cell_id_bindings.cc:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 112
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 432
    functionName: bind_s2cell_id
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_bindings.cc
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - child_end
    - child_position
    - auto::attr
    - S2CellId
    - py::class_<S2CellId>
    - LenOrThrow
    - ClampedSlice
    - AppendAllNeighbors
    - GetEdgeNeighbors
    - MaybeThrowPositionOutOfRange
    - MaybeThrowChildPositionOutOfRange
    - py::value_error
    - MaybeThrowLevelOutOfRange
    - gtl::compact_array_base::value_init
    - at
    - S2CellId::GetSizeST
    - slice
    - py::overload_cast<>
    - end::id
    - MaybeThrowIfLeaf
    - S2CellId::FromFacePosLevel
    - child
    - NextOrStop
    - MaybeThrowCellIdOutOfRange
    - parent
    - is_none
    - S2CellId::FromFaceIJ
    - cast
    - IndexOrThrow
    - level
    - S2CellId::None
    - RSA_padding_add_none
    - ValidateStepIsOne
    - py::make_tuple
    - AppendVertexNeighbors
    - py::class_<S2CellIdForwardIterator>
    - S2CellId::S2CellId
    - S2CellId::FromFace
    - child_begin
    - absl::Hash<S2CellId>
    - py::class_<S2CellIdReverseIterator>
    - size
    - absl::StrCat
    - S2CellId::GetSizeIJ
    - MaybeThrowNotValid
    - MaybeThrowIfFace
    - begin::id
    - MaybeThrowFaceOutOfRange
    - S2CellId::Begin
    - M_check_autoarg
    - py::module_local
    - S2CellId::End
    - py::class_<S2CellIdRange>
    - S2CellId::FromToken
    - next
    linkageType: ''
    returnType: void
    signature: void bind_s2cell_id(py::module& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:18,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:19,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:19,1
    - Dst: lat
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:20,1
    - Dst: lng
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: MaybeThrowNotValid
    functionSourceFile: /src/s2geometry/src/python/s2latlng_bindings.cc
    functionUses: 1
    functionsReached:
    - py::value_error
    - absl::StrCat
    - is_valid
    - lng
    - lat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotValid(const S2LatLng& ll)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:26,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:27,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: MaybeThrowNotFinite
    functionSourceFile: /src/s2geometry/src/python/s2latlng_bindings.cc
    functionUses: 0
    functionsReached:
    - std::isfinite
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotFinite(double m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:18,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:19,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:19,1
    - Dst: lat
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:20,1
    - Dst: lng
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: MaybeThrowNotValid
    functionSourceFile: /src/s2geometry/src/python/s2latlng_bindings.cc
    functionUses: 1
    functionsReached:
    - py::value_error
    - absl::StrCat
    - is_valid
    - lng
    - lat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotValid(const S2LatLng& ll)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:26,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:27,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: MaybeThrowNotFinite
    functionSourceFile: /src/s2geometry/src/python/s2latlng_bindings.cc
    functionUses: 0
    functionsReached:
    - std::isfinite
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotFinite(double m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<S2LatLng>
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:34,1
    - Dst: py::init<>
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:44,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:45,1
    - Dst: MaybeThrowNotValid
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:47,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:50,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:50,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:54,1
    - Dst: MaybeThrowNotValid
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:56,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:59,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:66,1
    - Dst: MaybeThrowNotValid
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:67,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:70,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:70,1
    - Dst: MaybeThrowNotFinite
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:75,1
    - Dst: MaybeThrowNotFinite
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:76,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:77,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:80,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:80,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:86,1
    - Dst: MaybeThrowNotValid
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:87,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:90,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:90,1
    - Dst: S2LatLng::FromE5
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:94,1
    - Dst: MaybeThrowNotValid
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:95,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:98,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:98,1
    - Dst: S2LatLng::FromE6
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:102,1
    - Dst: MaybeThrowNotValid
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:103,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:106,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:106,1
    - Dst: S2LatLng::FromE7
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:110,1
    - Dst: MaybeThrowNotValid
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:111,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:114,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:114,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:117,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:119,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:133,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:139,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:141,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:142,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:142,1
    - Dst: Normalized
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:159,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:160,1
    - Dst: Normalized
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:165,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:166,1
    - Dst: MaybeThrowNotFinite
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:171,1
    - Dst: Normalized
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:172,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:173,1
    - Dst: MaybeThrowNotFinite
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:178,1
    - Dst: Normalized
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:179,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:180,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:185,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:194,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2latlng_bindings.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 201
    functionName: bind_s2latlng
    functionSourceFile: /src/s2geometry/src/python/s2latlng_bindings.cc
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - S2LatLng::FromE6
    - py::init<>
    - gtl::compact_array_base::value_init
    - S2LatLng::FromE5
    - ApproxEquals
    - Normalized
    - py::class_<S2LatLng>
    - S1Angle::Radians
    - S2LatLng::FromRadians
    - MaybeThrowNotValid
    - S2LatLng::FromDegrees
    - S2LatLng::FromE7
    - MaybeThrowNotFinite
    - M_check_autoarg
    - absl::HashOf
    linkageType: ''
    returnType: void
    signature: void bind_s2latlng(py::module& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:24,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: MaybeThrowFaceOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_bindings.cc
    functionUses: 1
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowFaceOutOfRange(int face)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:32,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - level
    - min
    - max
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: MaybeThrowLevelOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_bindings.cc
    functionUses: 1
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowLevelOutOfRange(int level, int min, int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:39,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pos
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: MaybeThrowPositionOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_bindings.cc
    functionUses: 1
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowPositionOutOfRange(uint64_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:24,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: MaybeThrowFaceOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_bindings.cc
    functionUses: 1
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowFaceOutOfRange(int face)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:32,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - level
    - min
    - max
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: MaybeThrowLevelOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_bindings.cc
    functionUses: 1
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowLevelOutOfRange(int level, int min, int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:39,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pos
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: MaybeThrowPositionOutOfRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_bindings.cc
    functionUses: 1
    functionsReached:
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowPositionOutOfRange(uint64_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<S2Cell>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:48,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:54,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:57,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:59,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:61,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:62,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:64,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:67,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:70,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:72,1
    - Dst: MaybeThrowFaceOutOfRange
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:77,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:78,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:79,1
    - Dst: MaybeThrowFaceOutOfRange
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:83,1
    - Dst: MaybeThrowPositionOutOfRange
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:84,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:85,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:86,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:88,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:88,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:88,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:114,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:119,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:123,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:128,1
    - Dst: MaybeThrowLevelOutOfRange
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:136,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:137,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:138,1
    - Dst: py::overload_cast<const S2Point&>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:153,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:155,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:159,1
    - Dst: py::overload_cast<const S2Point&>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:161,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:163,1
    - Dst: py::overload_cast<const S2Point&, const S2Point&>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:166,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:168,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:168,1
    - Dst: py::overload_cast<const S2Point&, const S2Point&>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:172,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:174,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:174,1
    - Dst: py::overload_cast<const S2Cell&>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:177,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:178,1
    - Dst: py::overload_cast<const S2Cell&>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:182,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:183,1
    - Dst: GetCellUnionBound
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:187,1
    - Dst: py::overload_cast<const S2Cell&>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:193,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:195,1
    - Dst: py::overload_cast<const S2Point&>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:197,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:199,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:204,1
    - Dst: is_leaf
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:207,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:208,1
    - Dst: Subdivide
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:211,1
    - Dst: py::make_tuple
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:212,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:226,1
    - Dst: id
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:226,1
    - Dst: id
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:232,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:233,1
    - Dst: id
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:237,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:238,1
    - Dst: py::enum_<S2Cell::Boundary>
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:241,1
    - Dst: py::arithmetic
      Src: /src/s2geometry/src/python/s2cell_bindings.cc:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 252
    functionName: bind_s2cell
    functionSourceFile: /src/s2geometry/src/python/s2cell_bindings.cc
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - py::overload_cast<const S2Point&, const S2Point&>
    - S2Cell::FromFace
    - MaybeThrowPositionOutOfRange
    - GetCellUnionBound
    - MaybeThrowLevelOutOfRange
    - S2Cell::AverageArea
    - gtl::compact_array_base::value_init
    - py::value_error
    - py::arithmetic
    - id
    - py::class_<S2Cell>
    - S2Cell
    - absl::HashOf
    - py::enum_<S2Cell::Boundary>
    - py::make_tuple
    - py::overload_cast<const S2Point&>
    - py::overload_cast<const S2Cell&>
    - is_leaf
    - S2Cell::FromFacePosLevel
    - Subdivide
    - MaybeThrowFaceOutOfRange
    - M_check_autoarg
    linkageType: ''
    returnType: void
    signature: void bind_s2cell(py::module& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<R2Point>
      Src: /src/s2geometry/src/python/r2point_bindings.cc:12,1
    - Dst: py::init<>
      Src: /src/s2geometry/src/python/r2point_bindings.cc:14,1
    - Dst: py::init<double, double>
      Src: /src/s2geometry/src/python/r2point_bindings.cc:15,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2point_bindings.cc:16,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2point_bindings.cc:16,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/r2point_bindings.cc:18,1
    - Dst: size
      Src: /src/s2geometry/src/python/r2point_bindings.cc:19,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/r2point_bindings.cc:20,1
    - Dst: R2Point
      Src: /src/s2geometry/src/python/r2point_bindings.cc:22,1
    - Dst: cast
      Src: /src/s2geometry/src/python/r2point_bindings.cc:22,1
    - Dst: cast
      Src: /src/s2geometry/src/python/r2point_bindings.cc:22,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2point_bindings.cc:23,1
    - Dst: py::overload_cast<>
      Src: /src/s2geometry/src/python/r2point_bindings.cc:26,1
    - Dst: py::overload_cast<>
      Src: /src/s2geometry/src/python/r2point_bindings.cc:28,1
    - Dst: py::make_tuple
      Src: /src/s2geometry/src/python/r2point_bindings.cc:31,1
    - Dst: x
      Src: /src/s2geometry/src/python/r2point_bindings.cc:31,1
    - Dst: y
      Src: /src/s2geometry/src/python/r2point_bindings.cc:31,1
    - Dst: DotProd
      Src: /src/s2geometry/src/python/r2point_bindings.cc:41,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2point_bindings.cc:42,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/python/r2point_bindings.cc:44,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2point_bindings.cc:45,1
    - Dst: Angle
      Src: /src/s2geometry/src/python/r2point_bindings.cc:48,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2point_bindings.cc:49,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/python/r2point_bindings.cc:69,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/r2point_bindings.cc:76,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/r2point_bindings.cc:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 83
    functionName: bind_r2point
    functionSourceFile: /src/s2geometry/src/python/r2point_bindings.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - x
    - py::value_error
    - std::ostringstream::str
    - py::init<>
    - gtl::compact_array_base::value_init
    - size
    - py::make_tuple
    - py::overload_cast<>
    - CrossProd
    - y
    - Angle
    - R2Point
    - M_check_autoarg
    - py::init<double, double>
    - absl::HashOf
    - py::class_<R2Point>
    - cast
    linkageType: ''
    returnType: void
    signature: void bind_r2point(py::module& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<S2Point>
      Src: /src/s2geometry/src/python/s2point_bindings.cc:12,1
    - Dst: py::init<>
      Src: /src/s2geometry/src/python/s2point_bindings.cc:14,1
    - Dst: py::init<double, double, double>
      Src: /src/s2geometry/src/python/s2point_bindings.cc:15,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2point_bindings.cc:16,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2point_bindings.cc:16,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2point_bindings.cc:16,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2point_bindings.cc:18,1
    - Dst: size
      Src: /src/s2geometry/src/python/s2point_bindings.cc:19,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s2point_bindings.cc:20,1
    - Dst: S2Point
      Src: /src/s2geometry/src/python/s2point_bindings.cc:22,1
    - Dst: cast
      Src: /src/s2geometry/src/python/s2point_bindings.cc:22,1
    - Dst: cast
      Src: /src/s2geometry/src/python/s2point_bindings.cc:22,1
    - Dst: cast
      Src: /src/s2geometry/src/python/s2point_bindings.cc:22,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2point_bindings.cc:23,1
    - Dst: py::overload_cast<>
      Src: /src/s2geometry/src/python/s2point_bindings.cc:26,1
    - Dst: py::overload_cast<>
      Src: /src/s2geometry/src/python/s2point_bindings.cc:28,1
    - Dst: py::overload_cast<>
      Src: /src/s2geometry/src/python/s2point_bindings.cc:30,1
    - Dst: py::make_tuple
      Src: /src/s2geometry/src/python/s2point_bindings.cc:33,1
    - Dst: x
      Src: /src/s2geometry/src/python/s2point_bindings.cc:33,1
    - Dst: y
      Src: /src/s2geometry/src/python/s2point_bindings.cc:33,1
    - Dst: z
      Src: /src/s2geometry/src/python/s2point_bindings.cc:33,1
    - Dst: DotProd
      Src: /src/s2geometry/src/python/s2point_bindings.cc:43,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2point_bindings.cc:44,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/python/s2point_bindings.cc:46,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2point_bindings.cc:47,1
    - Dst: Angle
      Src: /src/s2geometry/src/python/s2point_bindings.cc:49,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2point_bindings.cc:50,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/python/s2point_bindings.cc:67,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2point_bindings.cc:75,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2point_bindings.cc:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 82
    functionName: bind_s2point
    functionSourceFile: /src/s2geometry/src/python/s2point_bindings.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - std::ostringstream::str
    - S2Point
    - CrossProd
    - x
    - py::value_error
    - gtl::compact_array_base::value_init
    - py::init<double, double, double>
    - py::overload_cast<>
    - Angle
    - absl::HashOf
    - y
    - cast
    - py::make_tuple
    - py::init<>
    - z
    - py::class_<S2Point>
    - size
    - M_check_autoarg
    linkageType: ''
    returnType: void
    signature: void bind_s2point(py::module& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doc
      Src: /src/s2geometry/src/python/module.cc:21,1
    - Dst: bind_r1interval
      Src: /src/s2geometry/src/python/module.cc:28,1
    - Dst: bind_r2point
      Src: /src/s2geometry/src/python/module.cc:29,1
    - Dst: bind_s1interval
      Src: /src/s2geometry/src/python/module.cc:30,1
    - Dst: bind_s2point
      Src: /src/s2geometry/src/python/module.cc:31,1
    - Dst: bind_r2rect
      Src: /src/s2geometry/src/python/module.cc:34,1
    - Dst: bind_s1angle
      Src: /src/s2geometry/src/python/module.cc:37,1
    - Dst: bind_s1chord_angle
      Src: /src/s2geometry/src/python/module.cc:40,1
    - Dst: bind_s2cap
      Src: /src/s2geometry/src/python/module.cc:43,1
    - Dst: bind_s2latlng
      Src: /src/s2geometry/src/python/module.cc:46,1
    - Dst: bind_s2cell_id
      Src: /src/s2geometry/src/python/module.cc:49,1
    - Dst: bind_s2cell
      Src: /src/s2geometry/src/python/module.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 53
    functionName: PYBIND11_MODULE
    functionSourceFile: /src/s2geometry/src/python/module.cc
    functionUses: 0
    functionsReached:
    - bind_s2latlng
    - bind_r2point
    - bind_s1interval
    - bind_s2cap
    - bind_s1angle
    - bind_s2point
    - bind_r1interval
    - bind_s2cell
    - bind_s2cell_id
    - bind_s1chord_angle
    - doc
    - bind_r2rect
    linkageType: ''
    returnType: void
    signature: void PYBIND11_MODULE(s2geometry_bindings, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:28,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:29,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - face
    - level
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: FaceRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::child_end
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: S2CellIdRange
    signature: S2CellIdRange FaceRange(int face, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIdForwardIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:36,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - S2CellIdRange
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Collect
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - S2CellIdForwardIterator::next
    linkageType: ''
    returnType: std::vector<S2CellId>
    signature: std::vector<S2CellId> Collect(S2CellIdRange r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIdReverseIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:46,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - S2CellIdRange
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: CollectReverse
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - S2CellIdReverseIterator::next
    linkageType: ''
    returnType: std::vector<S2CellId>
    signature: std::vector<S2CellId> CollectReverse(S2CellIdRange r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:57,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:58,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:59,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellIdRange::size
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SizeEmptyRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:65,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SizeFaceLevel1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:71,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SizeFaceLevel2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:75,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:76,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellId::End
    - S2CellId::Begin
    - S2CellIdRange::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SizeAllFacesLevel0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:85,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::at
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, AtFirstCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:90,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:90,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::begin::advance
    - S2CellIdRange::at
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, AtLastCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:95,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:95,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::begin::advance
    - S2CellIdRange::at
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, AtMiddleCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:103,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::slice
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceFullRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:110,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:112,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:114,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdRange::size
    - S2CellIdRange::slice
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceFirstTwo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:118,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:120,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:121,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdRange::size
    - S2CellIdRange::slice
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceLastTwo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:126,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:128,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::size
    - S2CellIdRange::slice
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:133,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:135,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:136,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:136,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdRange::size
    - S2CellIdRange::slice
    - S2CellIdRange::at
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceSingleCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:144,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:145,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:145,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:146,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:146,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:146,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:147,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:147,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_TRUE
    - S2CellIdRange::begin::advance
    - S2CellIdRange::contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsCellInRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:151,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:152,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_FALSE
    - S2CellIdRange::contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsExcludesEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:156,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:157,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:158,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_FALSE
    - S2CellIdRange::contains
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsCellFromDifferentFace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:162,1
    - Dst: S2CellIdRange::begin::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:164,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:165,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_FALSE
    - S2CellIdRange::begin::child_begin
    - S2CellIdRange::contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsCellAtWrongLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:169,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:170,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:171,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:171,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdRange::contains
    - EXPECT_FALSE
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsEmptyRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:179,1
    - Dst: Collect
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:180,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:181,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:183,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::size
    - Collect
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdForwardIteratorTest, IteratesAllCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:188,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:189,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:189,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:190,1
    - Dst: Collect
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Collect
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdForwardIteratorTest, EmptyRangeProducesNoItems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:194,1
    - Dst: S2CellIdForwardIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:196,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:197,1
    - Dst: S2CellIdForwardIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:197,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:199,1
    - Dst: S2CellIdForwardIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdForwardIterator::next
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdForwardIteratorTest, ReturnsNulloptWhenExhausted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:207,1
    - Dst: CollectReverse
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:208,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:209,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:211,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::size
    - CollectReverse
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdReverseIteratorTest, IteratesAllCellsInReverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:216,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:217,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:217,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:218,1
    - Dst: CollectReverse
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - CollectReverse
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdReverseIteratorTest, EmptyRangeProducesNoItems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:222,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:223,1
    - Dst: CollectReverse
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:224,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:225,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:226,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::size
    - S2CellIdRange::slice
    - CollectReverse
    - S2CellIdRange::at
    - EXPECT_EQ
    - FaceRange
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdReverseIteratorTest, SingleCellRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:230,1
    - Dst: S2CellIdReverseIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:233,1
    - Dst: S2CellIdReverseIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:234,1
    - Dst: S2CellIdReverseIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdReverseIterator::next
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdReverseIteratorTest, ReturnsNulloptWhenExhausted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:242,1
    - Dst: Collect
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:243,1
    - Dst: CollectReverse
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:244,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:245,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:245,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:245,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:247,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::size
    - CollectReverse
    - Collect
    - EXPECT_EQ
    - FaceRange
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ForwardAndReverseAreSymmetric)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:28,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:29,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - face
    - level
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: FaceRange
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 20
    functionsReached:
    - S2CellId::child_end
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: S2CellIdRange
    signature: S2CellIdRange FaceRange(int face, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIdForwardIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:36,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - S2CellIdRange
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Collect
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 3
    functionsReached:
    - std::vector::push_back
    - S2CellIdForwardIterator::next
    linkageType: ''
    returnType: std::vector<S2CellId>
    signature: std::vector<S2CellId> Collect(S2CellIdRange r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIdReverseIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:46,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - S2CellIdRange
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: CollectReverse
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - S2CellIdReverseIterator::next
    linkageType: ''
    returnType: std::vector<S2CellId>
    signature: std::vector<S2CellId> CollectReverse(S2CellIdRange r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:57,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:58,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:59,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellIdRange::size
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SizeEmptyRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:65,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SizeFaceLevel1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:71,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SizeFaceLevel2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:75,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:76,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellId::End
    - S2CellId::Begin
    - S2CellIdRange::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SizeAllFacesLevel0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:85,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::at
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, AtFirstCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:90,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:90,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::begin::advance
    - S2CellIdRange::at
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, AtLastCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:95,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:95,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::begin::advance
    - S2CellIdRange::at
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, AtMiddleCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:103,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::slice
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceFullRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:110,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:112,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:114,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdRange::size
    - S2CellIdRange::slice
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceFirstTwo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:118,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:120,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:121,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdRange::size
    - S2CellIdRange::slice
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceLastTwo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:126,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:128,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdRange::size
    - S2CellIdRange::slice
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:133,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:135,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:136,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:136,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdRange::size
    - S2CellIdRange::slice
    - S2CellIdRange::at
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, SliceSingleCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:144,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:145,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:145,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:146,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:146,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:146,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:147,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:147,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_TRUE
    - S2CellIdRange::begin::advance
    - S2CellIdRange::contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsCellInRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:151,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:152,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_FALSE
    - S2CellIdRange::contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsExcludesEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:156,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:157,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:158,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_FALSE
    - S2CellIdRange::contains
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsCellFromDifferentFace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:162,1
    - Dst: S2CellIdRange::begin::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:164,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:165,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_FALSE
    - S2CellIdRange::begin::child_begin
    - S2CellIdRange::contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsCellAtWrongLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:169,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:170,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:171,1
    - Dst: S2CellIdRange::contains
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:171,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdRange::contains
    - EXPECT_FALSE
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ContainsEmptyRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:179,1
    - Dst: Collect
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:180,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:181,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:183,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::size
    - Collect
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdForwardIteratorTest, IteratesAllCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:188,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:189,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:189,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:190,1
    - Dst: Collect
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Collect
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdForwardIteratorTest, EmptyRangeProducesNoItems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:194,1
    - Dst: S2CellIdForwardIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:196,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:197,1
    - Dst: S2CellIdForwardIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:197,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:199,1
    - Dst: S2CellIdForwardIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdForwardIterator::next
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdForwardIteratorTest, ReturnsNulloptWhenExhausted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:207,1
    - Dst: CollectReverse
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:208,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:209,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:211,1
    - Dst: S2CellIdRange::begin::advance
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::size
    - CollectReverse
    - EXPECT_EQ
    - FaceRange
    - S2CellIdRange::begin::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdReverseIteratorTest, IteratesAllCellsInReverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:216,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:217,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:217,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:218,1
    - Dst: CollectReverse
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - CollectReverse
    - S2CellId::child_begin
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdReverseIteratorTest, EmptyRangeProducesNoItems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:222,1
    - Dst: S2CellIdRange::slice
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:223,1
    - Dst: CollectReverse
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:224,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:225,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:226,1
    - Dst: S2CellIdRange::at
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::size
    - S2CellIdRange::slice
    - CollectReverse
    - S2CellIdRange::at
    - EXPECT_EQ
    - FaceRange
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdReverseIteratorTest, SingleCellRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:230,1
    - Dst: S2CellIdReverseIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:233,1
    - Dst: S2CellIdReverseIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:234,1
    - Dst: S2CellIdReverseIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - FaceRange
    - EXPECT_EQ
    - S2CellIdReverseIterator::next
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdReverseIteratorTest, ReturnsNulloptWhenExhausted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FaceRange
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:242,1
    - Dst: Collect
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:243,1
    - Dst: CollectReverse
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:244,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:245,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:245,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:245,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:247,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/python/s2cell_id_range_test.cc:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::size
    - CollectReverse
    - Collect
    - EXPECT_EQ
    - FaceRange
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdRangeTest, ForwardAndReverseAreSymmetric)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<R1Interval>
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:12,1
    - Dst: py::init<>
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:14,1
    - Dst: py::init<double, double>
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:15,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:16,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:16,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:22,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:25,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:25,1
    - Dst: py::make_tuple
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:32,1
    - Dst: lo
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:32,1
    - Dst: hi
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:32,1
    - Dst: py::overload_cast<double>
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:46,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:48,1
    - Dst: py::overload_cast<double>
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:50,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:52,1
    - Dst: py::overload_cast<const R1Interval&>
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:54,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:56,1
    - Dst: py::overload_cast<const R1Interval&>
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:58,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:60,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:63,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:66,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:69,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:71,1
    - Dst: is_empty
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:74,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:75,1
    - Dst: Project
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:77,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:78,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:81,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:86,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:88,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:92,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:96,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:96,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:106,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:113,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/r1interval_bindings.cc:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 120
    functionName: bind_r1interval
    functionSourceFile: /src/s2geometry/src/python/r1interval_bindings.cc
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - py::value_error
    - py::init<>
    - py::make_tuple
    - is_empty
    - py::class_<R1Interval>
    - py::overload_cast<const R1Interval&>
    - lo
    - M_check_autoarg
    - py::init<double, double>
    - absl::HashOf
    - py::overload_cast<double>
    - hi
    - Project
    linkageType: ''
    returnType: void
    signature: void bind_r1interval(py::module& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:19,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:20,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:21,1
    - Dst: Norm
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - S2Point
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: MaybeThrowNotUnitLength
    functionSourceFile: /src/s2geometry/src/python/s1chord_angle_bindings.cc
    functionUses: 0
    functionsReached:
    - S2::IsUnitLength
    - absl::StrCat
    - py::value_error
    - Norm
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotUnitLength(const S2Point& p, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_special
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:27,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:28,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - name
    argTypes:
    - S1ChordAngle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: MaybeThrowIfSpecial
    functionSourceFile: /src/s2geometry/src/python/s1chord_angle_bindings.cc
    functionUses: 0
    functionsReached:
    - is_special
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowIfSpecial(const S1ChordAngle& a, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:19,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:20,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:21,1
    - Dst: Norm
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - S2Point
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: MaybeThrowNotUnitLength
    functionSourceFile: /src/s2geometry/src/python/s1chord_angle_bindings.cc
    functionUses: 0
    functionsReached:
    - S2::IsUnitLength
    - absl::StrCat
    - py::value_error
    - Norm
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotUnitLength(const S2Point& p, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_special
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:27,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:28,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - name
    argTypes:
    - S1ChordAngle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: MaybeThrowIfSpecial
    functionSourceFile: /src/s2geometry/src/python/s1chord_angle_bindings.cc
    functionUses: 0
    functionsReached:
    - is_special
    - py::value_error
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void MaybeThrowIfSpecial(const S1ChordAngle& a, const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<S1ChordAngle>
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:37,1
    - Dst: py::init<>
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:45,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:46,1
    - Dst: MaybeThrowNotUnitLength
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:47,1
    - Dst: MaybeThrowNotUnitLength
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:48,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:49,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:51,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:51,1
    - Dst: py::init<S1Angle>
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:54,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:54,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:64,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:66,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:68,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:70,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:72,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:94,1
    - Dst: e5
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:95,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:99,1
    - Dst: e6
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:100,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:104,1
    - Dst: e7
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:105,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:129,1
    - Dst: sin
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:130,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:136,1
    - Dst: cos
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:137,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:143,1
    - Dst: tan
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:144,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:162,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:163,1
    - Dst: py::is_operator
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:165,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:169,1
    - Dst: MaybeThrowIfSpecial
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:170,1
    - Dst: py::is_operator
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:172,1
    - Dst: absl::Hash<double>
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:176,1
    - Dst: length2
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:176,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:183,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s1chord_angle_bindings.cc:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 190
    functionName: bind_s1chord_angle
    functionSourceFile: /src/s2geometry/src/python/s1chord_angle_bindings.cc
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - py::init<>
    - gtl::compact_array_base::value_init
    - length2
    - M_check_autoarg
    - absl::Hash<double>
    - py::init<S1Angle>
    - MaybeThrowIfSpecial
    - py::is_operator
    - e6
    - sin
    - py::class_<S1ChordAngle>
    - MaybeThrowNotUnitLength
    - e5
    - e7
    - S1ChordAngle
    - tan
    - cos
    linkageType: ''
    returnType: void
    signature: void bind_s1chord_angle(py::module& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:15,1
    - Dst: x
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:15,1
    - Dst: y
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:16,1
    - Dst: y
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:16,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:21,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lo'
    - ' hi'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: MaybeThrowInvalidRect
    functionSourceFile: /src/s2geometry/src/python/r2rect_bindings.cc
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - py::value_error
    - y
    - x
    linkageType: ''
    returnType: void
    signature: void MaybeThrowInvalidRect(const R2Point& lo, const R2Point& hi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:15,1
    - Dst: x
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:15,1
    - Dst: y
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:16,1
    - Dst: y
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:16,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:21,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lo'
    - ' hi'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: MaybeThrowInvalidRect
    functionSourceFile: /src/s2geometry/src/python/r2rect_bindings.cc
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - py::value_error
    - y
    - x
    linkageType: ''
    returnType: void
    signature: void MaybeThrowInvalidRect(const R2Point& lo, const R2Point& hi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<R2Rect>
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:28,1
    - Dst: py::init<>
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:30,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:31,1
    - Dst: MaybeThrowInvalidRect
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:32,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:33,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:35,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:35,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:39,1
    - Dst: is_empty
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:40,1
    - Dst: is_empty
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:40,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:41,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:45,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:47,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:47,1
    - Dst: x
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:57,1
    - Dst: y
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:57,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:58,1
    - Dst: R2Rect::FromCenterSize
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:61,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:63,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:63,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:67,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:70,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:70,1
    - Dst: py::overload_cast<int>
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:90,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:91,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:98,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:100,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:100,1
    - Dst: py::overload_cast<const R2Point&>
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:108,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:110,1
    - Dst: py::overload_cast<const R2Point&>
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:112,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:114,1
    - Dst: py::overload_cast<const R2Rect&>
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:117,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:119,1
    - Dst: py::overload_cast<const R2Rect&>
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:121,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:123,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:126,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:130,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:133,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:135,1
    - Dst: is_empty
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:138,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:139,1
    - Dst: Project
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:142,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:143,1
    - Dst: py::overload_cast<const R2Point&>
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:147,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:148,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:153,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:156,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:161,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:161,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:168,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:175,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/r2rect_bindings.cc:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 182
    functionName: bind_r2rect
    functionSourceFile: /src/s2geometry/src/python/r2rect_bindings.cc
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - py::overload_cast<const R2Point&>
    - py::value_error
    - py::init<>
    - gtl::compact_array_base::value_init
    - py::class_<R2Rect>
    - GetVertex
    - R2Rect
    - py::overload_cast<int>
    - py::overload_cast<const R2Rect&>
    - MaybeThrowInvalidRect
    - R2Rect::FromCenterSize
    - M_check_autoarg
    - absl::HashOf
    - y
    - is_empty
    - x
    - Project
    linkageType: ''
    returnType: void
    signature: void bind_r2rect(py::module& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNormalized
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:17,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:18,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:19,1
    - Dst: degrees
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' angle'
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: MaybeThrowNotNormalized
    functionSourceFile: /src/s2geometry/src/python/s1angle_bindings.cc
    functionUses: 0
    functionsReached:
    - degrees
    - IsNormalized
    - absl::StrCat
    - py::value_error
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotNormalized(const S1Angle& angle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNormalized
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:17,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:18,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:19,1
    - Dst: degrees
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' angle'
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: MaybeThrowNotNormalized
    functionSourceFile: /src/s2geometry/src/python/s1angle_bindings.cc
    functionUses: 0
    functionsReached:
    - degrees
    - IsNormalized
    - absl::StrCat
    - py::value_error
    linkageType: ''
    returnType: void
    signature: void MaybeThrowNotNormalized(const S1Angle& angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<S1Angle>
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:27,1
    - Dst: py::init<>
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:37,1
    - Dst: py::init<const S2Point&, const S2Point&>
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:38,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:39,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:39,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:45,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:48,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:52,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:59,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:64,1
    - Dst: MaybeThrowNotNormalized
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:82,1
    - Dst: e5
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:83,1
    - Dst: MaybeThrowNotNormalized
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:89,1
    - Dst: e6
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:90,1
    - Dst: MaybeThrowNotNormalized
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:96,1
    - Dst: e7
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:97,1
    - Dst: sin
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:114,1
    - Dst: cos
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:116,1
    - Dst: tan
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:118,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:141,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:143,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:150,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s1angle_bindings.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 157
    functionName: bind_s1angle
    functionSourceFile: /src/s2geometry/src/python/s1angle_bindings.cc
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - py::init<>
    - M_check_autoarg
    - MaybeThrowNotNormalized
    - e6
    - sin
    - py::init<const S2Point&, const S2Point&>
    - absl::HashOf
    - e5
    - e7
    - tan
    - cos
    - py::class_<S1Angle>
    linkageType: ''
    returnType: void
    signature: void bind_s1angle(py::module& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:13,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:14,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: MaybeThrowInvalidPoint
    functionSourceFile: /src/s2geometry/src/python/s1interval_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    - S1Interval::IsValidPoint
    linkageType: ''
    returnType: void
    signature: void MaybeThrowInvalidPoint(double p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:13,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:14,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: MaybeThrowInvalidPoint
    functionSourceFile: /src/s2geometry/src/python/s1interval_bindings.cc
    functionUses: 0
    functionsReached:
    - py::value_error
    - absl::StrCat
    - S1Interval::IsValidPoint
    linkageType: ''
    returnType: void
    signature: void MaybeThrowInvalidPoint(double p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<S1Interval>
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:21,1
    - Dst: py::init<>
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:23,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:24,1
    - Dst: MaybeThrowInvalidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:25,1
    - Dst: MaybeThrowInvalidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:26,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:27,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:29,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:29,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:37,1
    - Dst: MaybeThrowInvalidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:41,1
    - Dst: MaybeThrowInvalidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:42,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:43,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:45,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:45,1
    - Dst: py::make_tuple
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:52,1
    - Dst: lo
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:52,1
    - Dst: hi
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:52,1
    - Dst: MaybeThrowInvalidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:75,1
    - Dst: Contains
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:76,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:77,1
    - Dst: MaybeThrowInvalidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:80,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:81,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:82,1
    - Dst: py::overload_cast<const S1Interval&>
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:84,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:86,1
    - Dst: py::overload_cast<const S1Interval&>
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:88,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:90,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:92,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:95,1
    - Dst: MaybeThrowInvalidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:98,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:99,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:100,1
    - Dst: is_empty
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:104,1
    - Dst: py::value_error
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:104,1
    - Dst: MaybeThrowInvalidPoint
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:105,1
    - Dst: Project
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:106,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:107,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:110,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:115,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:117,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:124,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:128,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:128,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:139,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:146,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s1interval_bindings.cc:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 153
    functionName: bind_s1interval
    functionSourceFile: /src/s2geometry/src/python/s1interval_bindings.cc
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - py::overload_cast<const S1Interval&>
    - S1Interval
    - InteriorContains
    - AddPoint
    - py::value_error
    - MaybeThrowInvalidPoint
    - gtl::compact_array_base::value_init
    - S1Interval::FromPointPair
    - absl::HashOf
    - hi
    - py::class_<S1Interval>
    - py::make_tuple
    - Contains
    - py::init<>
    - lo
    - M_check_autoarg
    - is_empty
    - Project
    linkageType: ''
    returnType: void
    signature: void bind_s1interval(py::module& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:20,1
    - Dst: level
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:20,1
    - Dst: level
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:20,1
    - Dst: distance_from_begin
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:22,1
    - Dst: distance_from_begin
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: S2CellIdRange::size
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range.cc
    functionUses: 16
    functionsReached:
    - distance_from_begin
    - level
    - ABSL_DCHECK
    linkageType: ''
    returnType: int64_t
    signature: int64_t S2CellIdRange::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:26,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:27,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:27,1
    - Dst: advance
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: S2CellIdRange::at
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range.cc
    functionUses: 10
    functionsReached:
    - S2CellIdRange::size
    - advance
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellIdRange::at(int64_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:32,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:33,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:34,1
    - Dst: S2CellIdRange::size
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:34,1
    - Dst: advance
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:35,1
    - Dst: advance
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - start
    - stop
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: S2CellIdRange::slice
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range.cc
    functionUses: 12
    functionsReached:
    - ABSL_DCHECK_LE
    - advance
    - ABSL_DCHECK_GE
    - S2CellIdRange::size
    linkageType: ''
    returnType: S2CellIdRange
    signature: S2CellIdRange S2CellIdRange::slice(int64_t start, int64_t stop) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:39,1
    - Dst: level
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cell
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: S2CellIdRange::contains
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range.cc
    functionUses: 10
    functionsReached:
    - S2CellId::level
    - level
    linkageType: ''
    returnType: bool
    signature: bool S2CellIdRange::contains(S2CellId cell) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIdForwardIterator::next
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: S2CellIdForwardIterator::next
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range.cc
    functionUses: 5
    functionsReached:
    - S2CellIdForwardIterator::next
    linkageType: ''
    returnType: std::optional<S2CellId>
    signature: std::optional<S2CellId> S2CellIdForwardIterator::next()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prev
      Src: /src/s2geometry/src/python/s2cell_id_range.cc:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: S2CellIdReverseIterator::next
    functionSourceFile: /src/s2geometry/src/python/s2cell_id_range.cc
    functionUses: 4
    functionsReached:
    - prev
    linkageType: ''
    returnType: std::optional<S2CellId>
    signature: std::optional<S2CellId> S2CellIdReverseIterator::next()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::class_<S2Cap>
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:20,1
    - Dst: py::init<>
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:28,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:30,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:31,1
    - Dst: Normalize
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:31,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:33,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:33,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:37,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:38,1
    - Dst: Normalize
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:38,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:40,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:40,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:46,1
    - Dst: Normalize
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:46,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:47,1
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:51,1
    - Dst: Normalize
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:51,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:52,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:52,1
    - Dst: S2Cap::FromCenterArea
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:58,1
    - Dst: Normalize
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:58,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:59,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:59,1
    - Dst: empty
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:69,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:69,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:70,1
    - Dst: Normalize
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:70,1
    - Dst: size
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:71,1
    - Dst: S2Cap::AddPoint
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:71,1
    - Dst: Normalize
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:71,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:73,1
    - Dst: empty
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:77,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:77,1
    - Dst: size
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:79,1
    - Dst: S2Cap::AddCap
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:79,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:81,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:115,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:118,1
    - Dst: py::overload_cast<const S2Cap&>
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:122,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:124,1
    - Dst: py::overload_cast<const S2Point&>
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:126,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:128,1
    - Dst: py::overload_cast<const S2Cell&>
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:131,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:133,1
    - Dst: py::overload_cast<const S2Cap&>
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:135,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:137,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:139,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:144,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:147,1
    - Dst: GetCellUnionBound
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:155,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:164,1
    - Dst: M_check_autoarg
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:165,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:165,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:170,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:177,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/python/s2cap_bindings.cc:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - py::module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 184
    functionName: bind_s2cap
    functionSourceFile: /src/s2geometry/src/python/s2cap_bindings.cc
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - GetCellUnionBound
    - gtl::compact_array_base::value_init
    - py::class_<S2Cap>
    - S2Cap
    - S1Angle::Radians
    - S2Cap::AddCap
    - empty
    - absl::HashOf
    - S2Cap::FromCenterArea
    - S2Cap::AddPoint
    - S2Cap::FromPoint
    - S2Cap::FromCenterHeight
    - py::overload_cast<const S2Point&>
    - py::overload_cast<const S2Cell&>
    - S2Cap::Empty
    - py::overload_cast<const S2Cap&>
    - py::init<>
    - size
    - Normalize
    - M_check_autoarg
    linkageType: ''
    returnType: void
    signature: void bind_s2cap(py::module& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: S2RegionUnion::S2RegionUnion
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionUnion()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: ~S2RegionUnion() override
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2RegionUnion() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_union.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: S2RegionUnion::num_regions
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_regions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/s2geometry/src/s2/s2region_union.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: S2RegionUnion::region
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: S2Region
    signature: S2Region * region(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/s2geometry/src/s2/s2region_union.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: S2RegionUnion::mutable_region
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: S2Region
    signature: S2Region * mutable_region(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: S1ChordAngle::S1ChordAngle
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S1ChordAngle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:226,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1ChordAngle
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: operator<=>(S1ChordAngle x, S1ChordAngle y)
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    linkageType: ''
    returnType: auto
    signature: auto operator<=>(S1ChordAngle x, S1ChordAngle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:230,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1ChordAngle
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: operator!=(S1ChordAngle x, S1ChordAngle y)
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    linkageType: ''
    returnType: bool
    signature: bool operator!=(S1ChordAngle x, S1ChordAngle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:233,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1ChordAngle
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: operator<(S1ChordAngle x, S1ChordAngle y)
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    linkageType: ''
    returnType: bool
    signature: bool operator<(S1ChordAngle x, S1ChordAngle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:236,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1ChordAngle
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: operator>(S1ChordAngle x, S1ChordAngle y)
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    linkageType: ''
    returnType: bool
    signature: bool operator>(S1ChordAngle x, S1ChordAngle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:239,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1ChordAngle
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: operator<=(S1ChordAngle x, S1ChordAngle y)
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    linkageType: ''
    returnType: bool
    signature: bool operator<=(S1ChordAngle x, S1ChordAngle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:242,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1ChordAngle
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: operator>=(S1ChordAngle x, S1ChordAngle y)
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    linkageType: ''
    returnType: bool
    signature: bool operator>=(S1ChordAngle x, S1ChordAngle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: S1ChordAngle::length2
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double length2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.h:331,1
    - Dst: S1ChordAngle::is_valid
      Src: /src/s2geometry/src/s2/s1chord_angle.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length2
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: S1ChordAngle::S1ChordAngle
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S1ChordAngle(double length2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle.h:340,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle.h:341,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle.h:342,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle.h:343,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1chord_angle.h:346,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s1chord_angle.h:346,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle.h:346,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.h:349,1
    - Dst: S1ChordAngle::is_valid
      Src: /src/s2geometry/src/s2/s1chord_angle.h:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - angle
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 350
    functionName: S1ChordAngle::S1ChordAngle
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - min
    - S1Angle::radians
    - S1ChordAngle::Infinity
    - sin
    - S1Angle::Infinity
    - S1ChordAngle::is_valid
    - S1ChordAngle::Negative
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S1ChordAngle::S1ChordAngle(S1Angle angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s1chord_angle.h:353,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:353,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.h:354,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s1chord_angle.h:354,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.h:355,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s1chord_angle.h:355,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.h:358,1
    - Dst: S1ChordAngle::is_valid
      Src: /src/s2geometry/src/s2/s1chord_angle.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: S1ChordAngle::S1ChordAngle
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - Norm2
    - min
    - S2::IsUnitLength
    - S1ChordAngle::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S1ChordAngle::S1ChordAngle(const S2Point& x, const S2Point& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::is_special
      Src: /src/s2geometry/src/s2/s1chord_angle.h:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: S1ChordAngle::is_valid
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 3
    functionsReached:
    - S1ChordAngle::is_special
    linkageType: ''
    returnType: bool
    signature: bool S1ChordAngle::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:366,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s1chord_angle.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length2
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: S1ChordAngle::FromLength2
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    - min
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::FromLength2(double length2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 371
    functionName: S1ChordAngle::Zero
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::Zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: S1ChordAngle::Right
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::Right()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: S1ChordAngle::Straight
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::Straight()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:382,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s1chord_angle.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: S1ChordAngle::Infinity
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 1
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    - S1ChordAngle::is_infinity
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::Infinity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: S1ChordAngle::Negative
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 1
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::Negative()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:390,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle.h:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - radians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: S1ChordAngle::Radians
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    - S1Angle::Radians
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::Radians(double radians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:394,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1chord_angle.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - degrees
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: S1ChordAngle::Degrees
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::Degrees(double degrees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:398,1
    - Dst: S1Angle::E5
      Src: /src/s2geometry/src/s2/s1chord_angle.h:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e5
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: S1ChordAngle::E5
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    - S1Angle::E5
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::E5(int32_t e5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:402,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1chord_angle.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e6
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: S1ChordAngle::E6
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    - S1Angle::E6
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::E6(int32_t e6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:406,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s1chord_angle.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e7
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: S1ChordAngle::E7
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::E7
    - S1ChordAngle::S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::E7(int32_t e7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:412,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle.h:412,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - angle
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: S1ChordAngle::FastUpperBoundFrom
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::FromLength2
    - S1Angle::radians
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::FastUpperBoundFrom(S1Angle angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: S1Angle
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - ToAngle
    linkageType: ''
    returnType: S1ChordAngle::operator
    signature: S1ChordAngle::operator S1Angle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: S1ChordAngle::radians
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::ToAngle
    linkageType: ''
    returnType: double
    signature: double S1ChordAngle::radians() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 425
    functionName: S1ChordAngle::degrees
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::ToAngle
    linkageType: ''
    returnType: double
    signature: double S1ChordAngle::degrees() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: S1ChordAngle::e5
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::ToAngle
    linkageType: ''
    returnType: int32_t
    signature: int32_t S1ChordAngle::e5() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 429
    functionName: S1ChordAngle::e6
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::ToAngle
    linkageType: ''
    returnType: int32_t
    signature: int32_t S1ChordAngle::e6() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.h:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: S1ChordAngle::e7
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::ToAngle
    linkageType: ''
    returnType: int32_t
    signature: int32_t S1ChordAngle::e7() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: S1ChordAngle::is_zero
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S1ChordAngle::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: S1ChordAngle::is_negative
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S1ChordAngle::is_negative() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s1chord_angle.h:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: S1ChordAngle::is_infinity
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 2
    functionsReached:
    - S1ChordAngle::is_infinity
    linkageType: ''
    returnType: bool
    signature: bool S1ChordAngle::is_infinity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::is_negative
      Src: /src/s2geometry/src/s2/s1chord_angle.h:445,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s1chord_angle.h:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: S1ChordAngle::is_special
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 1
    functionsReached:
    - S1ChordAngle::is_infinity
    - S1ChordAngle::is_negative
    linkageType: ''
    returnType: bool
    signature: bool S1ChordAngle::is_special() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:449,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1ChordAngle
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: operator==(S1ChordAngle x, S1ChordAngle y)
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    linkageType: ''
    returnType: bool
    signature: bool operator==(S1ChordAngle x, S1ChordAngle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: '& S1ChordAngle::operator+=(S1ChordAngle a)'
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle & S1ChordAngle::operator+=(S1ChordAngle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: '& S1ChordAngle::operator-=(S1ChordAngle a)'
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle & S1ChordAngle::operator-=(S1ChordAngle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: S2ChainInterpolationQuery::S2ChainInterpolationQuery
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ChainInterpolationQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: ~S2ChainInterpolationQuery()
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2ChainInterpolationQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: S2ChainInterpolationQuery::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Result()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' point'
    - edge_id
    - ' distance'
    argTypes:
    - S2Point
    - int
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: S2ChainInterpolationQuery::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Result(const S2Point& point, int edge_id, const S1Angle& distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: S2ChainInterpolationQuery::Result::is_valid
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: S2ChainInterpolationQuery::Result::point
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: S2ChainInterpolationQuery::Result::edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: S2ChainInterpolationQuery::Result::distance
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: ~Projection()
    functionSourceFile: /src/s2geometry/src/s2/s2projections.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Projection()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: ~Projection()
    functionSourceFile: /src/s2geometry/src/s2/s2projections.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Projection()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:38,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:38,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:39,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:41,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:43,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: S2::GetLength
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 1
    functionsReached:
    - S2::GetChainVertices
    - S1Angle::S1Angle
    - S2::GetLength
    - dimension
    - num_chains
    - S1Angle::Zero
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetLength(const S2Shape& shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:50,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:50,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:51,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:53,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:55,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:56,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: S2::GetPerimeter
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 1
    functionsReached:
    - S2::GetChainVertices
    - S1Angle::S1Angle
    - S2PointLoopSpan
    - dimension
    - num_chains
    - S2::GetPerimeter
    - S1Angle::Zero
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetPerimeter(const S2Shape& shape)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:62,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:87,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:89,1
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:90,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:90,1
    - Dst: S2::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:92,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:92,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:97,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 100
    functionName: S2::GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 0
    functionsReached:
    - S2::GetCurvatureMaxError
    - S2::GetSignedArea
    - S2::GetChainVertices
    - ABSL_DCHECK_LE
    - fabs
    - S2PointLoopSpan
    - dimension
    - num_chains
    linkageType: ''
    returnType: double
    signature: double GetArea(const S2Shape& shape)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:103,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:107,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:109,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:110,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:110,1
    - Dst: fmod
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: S2::GetApproxArea
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 1
    functionsReached:
    - S2::GetChainVertices
    - S2PointLoopSpan
    - S2::GetApproxArea
    - dimension
    - num_chains
    - fmod
    linkageType: ''
    returnType: double
    signature: double GetApproxArea(const S2Shape& shape)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:118,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:120,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:121,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:125,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:128,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:129,1
    - Dst: S2PointSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:129,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:132,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:133,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 138
    functionName: S2::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 1
    functionsReached:
    - S2PointSpan
    - S2::GetChainVertices
    - S2PointLoopSpan
    - dimension
    - num_chains
    - S2Point::S2Point
    - edge
    - S2::GetCentroid
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetCentroid(const S2Shape& shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:142,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:143,1
    - Dst: vector<S2Point>*::clear
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:144,1
    - Dst: vector<S2Point>*::reserve
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:145,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:148,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:148,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:151,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:152,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' shape'
    - chain_id
    - vertices
    argTypes:
    - S2Shape
    - int
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: S2::GetChainVertices
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 5
    functionsReached:
    - vector<S2Point>*::push_back
    - vector<S2Point>*::clear
    - chain_edge
    - vector<S2Point>*::reserve
    - dimension
    - chain
    linkageType: ''
    returnType: void
    signature: "void GetChainVertices(const S2Shape& shape, int chain_id,\n                      vector<S2Point>*
      vertices)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:38,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:38,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:39,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:41,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:43,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: S2::GetLength
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 2
    functionsReached:
    - S2::GetChainVertices
    - S1Angle::S1Angle
    - S2::GetLength
    - dimension
    - num_chains
    - S1Angle::Zero
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetLength(const S2Shape& shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:50,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:50,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:51,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:53,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:55,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:56,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: S2::GetPerimeter
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 2
    functionsReached:
    - S2::GetChainVertices
    - S1Angle::S1Angle
    - S2PointLoopSpan
    - dimension
    - num_chains
    - S2::GetPerimeter
    - S1Angle::Zero
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetPerimeter(const S2Shape& shape)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:62,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:87,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:89,1
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:90,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:90,1
    - Dst: S2::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:92,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:92,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:97,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 100
    functionName: S2::GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 0
    functionsReached:
    - S2::GetCurvatureMaxError
    - S2::GetSignedArea
    - S2::GetChainVertices
    - ABSL_DCHECK_LE
    - fabs
    - S2PointLoopSpan
    - dimension
    - num_chains
    linkageType: ''
    returnType: double
    signature: double GetArea(const S2Shape& shape)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:103,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:107,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:109,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:110,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:110,1
    - Dst: fmod
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: S2::GetApproxArea
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 2
    functionsReached:
    - S2::GetChainVertices
    - S2PointLoopSpan
    - S2::GetApproxArea
    - dimension
    - num_chains
    - fmod
    linkageType: ''
    returnType: double
    signature: double GetApproxArea(const S2Shape& shape)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:118,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:120,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:121,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:125,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:128,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:129,1
    - Dst: S2PointSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:129,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:132,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:133,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 138
    functionName: S2::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 2
    functionsReached:
    - S2PointSpan
    - S2::GetChainVertices
    - S2PointLoopSpan
    - dimension
    - num_chains
    - S2Point::S2Point
    - edge
    - S2::GetCentroid
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetCentroid(const S2Shape& shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:142,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:143,1
    - Dst: vector<S2Point>*::clear
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:144,1
    - Dst: vector<S2Point>*::reserve
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:145,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:148,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:148,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:151,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:152,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2shape_measures.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' shape'
    - chain_id
    - vertices
    argTypes:
    - S2Shape
    - int
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: S2::GetChainVertices
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures.cc
    functionUses: 10
    functionsReached:
    - vector<S2Point>*::push_back
    - vector<S2Point>*::clear
    - chain_edge
    - vector<S2Point>*::reserve
    - dimension
    - chain
    linkageType: ''
    returnType: void
    signature: "void GetChainVertices(const S2Shape& shape, int chain_id,\n                      vector<S2Point>*
      vertices)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:58,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:59,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:60,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:61,1
    - Dst: InteriorIntersects
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:63,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:63,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:64,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:64,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:66,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:67,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:67,1
    - Dst: GetSize
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:69,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:69,1
    - Dst: S2R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:71,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ' x'
    - ' y'
    - expected_rexion
    - ' expected_union'
    - ' expected_intersection'
    argTypes:
    - S2R2Rect
    - S2R2Rect
    - string_view
    - S2R2Rect
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 74
    functionName: TestIntervalOps
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - Intersection
    - Intersects
    - S2R2Rect::AddPoint
    - GetSize
    - lo
    - Union
    - R2Point
    - InteriorContains
    - EXPECT_EQ
    - InteriorIntersects
    - Contains
    linkageType: ''
    returnType: void
    signature: "void TestIntervalOps(const S2R2Rect& x, const S2R2Rect& y,\n                            string_view
      expected_rexion,\n                            const S2R2Rect& expected_union,\n
      \                           const S2R2Rect& expected_intersection)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:87,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:87,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:88,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:88,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:88,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:88,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:91,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:91,1
    - Dst: S2R2Rect::ToS2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:91,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:94,1
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:96,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ' r'
    - ' cell'
    - level
    argTypes:
    - S2R2Rect
    - S2Cell
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 97
    functionName: TestCellOps
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - MayIntersect
    - GetVertex
    - GetVertexRaw
    - S2::FaceXYZtoUV
    - S2::UVtoST
    - S2R2Rect::ToS2Point
    - EXPECT_EQ
    - R2Point
    - Contains
    - is_empty
    linkageType: ''
    returnType: void
    signature: void TestCellOps(const S2R2Rect& r, const S2Cell& cell, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:101,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:102,1
    - Dst: S2R2Rect::is_valid
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:102,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:103,1
    - Dst: S2R2Rect::is_empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - S2R2Rect::Empty
    - EXPECT_TRUE
    - S2R2Rect::is_valid
    - EXPECT_EQ
    - S2R2Rect::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, EmptyRectangles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:109,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:109,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:110,1
    - Dst: S2R2Rect::x
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:111,1
    - Dst: S2R2Rect::x
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:112,1
    - Dst: S2R2Rect::y
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:113,1
    - Dst: S2R2Rect::y
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:114,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:114,1
    - Dst: S2R2Rect::x
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:115,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:115,1
    - Dst: S2R2Rect::y
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:116,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:117,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:119,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:119,1
    - Dst: const_cast<const S2R2Rect&>
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:120,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:120,1
    - Dst: S2R2Rect::lo
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:121,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:121,1
    - Dst: S2R2Rect::hi
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:122,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:123,1
    - Dst: S2R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - S2R2Rect::x
    - const_cast<const S2R2Rect&>
    - S2R2Rect::Empty
    - S2R2Rect::hi
    - R1Interval
    - S2R2Rect
    - S2R2Rect::GetVertex
    - S2R2Rect::y
    - R2Point
    - EXPECT_NE
    - EXPECT_EQ
    - S2R2Rect::lo
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, ConstructorsAndAccessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:128,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:128,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:128,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:128,1
    - Dst: S2R2Rect::FromCell
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:129,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:130,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:130,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:130,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:130,1
    - Dst: S2R2Rect::FromCellId
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:131,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - S2R2Rect::FromCell
    - S2R2Rect
    - S2Cell::FromFacePosLevel
    - S2CellId::FromFacePosLevel
    - R2Point
    - EXPECT_EQ
    - S2R2Rect::FromCellId
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, FromCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:136,1
    - Dst: S2R2Rect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:136,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:136,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:136,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:137,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:137,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:137,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:138,1
    - Dst: S2R2Rect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:138,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:138,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:138,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:139,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:139,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2R2Rect::FromCenterSize
    - S2R2Rect
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, FromCenterSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:144,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:144,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:145,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:145,1
    - Dst: S2R2Rect::lo
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:145,1
    - Dst: S2R2Rect::lo
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:145,1
    - Dst: S2R2Rect::FromPoint
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:145,1
    - Dst: S2R2Rect::lo
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:146,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:146,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:146,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:146,1
    - Dst: S2R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:147,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:147,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:148,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:148,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:148,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:148,1
    - Dst: S2R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:149,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:149,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - S2R2Rect::FromPoint
    - S2R2Rect::FromPointPair
    - S2R2Rect
    - R2Point
    - EXPECT_EQ
    - S2R2Rect::lo
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, FromPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:154,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:158,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:158,1
    - Dst: S2R2Rect::GetCenter
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:159,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:159,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:160,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:160,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:161,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:161,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:162,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:162,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:162,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:163,1
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:163,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:164,1
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:164,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:164,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:165,1
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:165,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:165,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:166,1
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:166,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:167,1
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:167,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:168,1
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:168,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:169,1
    - Dst: S2R2Rect::InteriorContains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:170,1
    - Dst: S2R2Rect::InteriorContains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:170,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:174,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:174,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:175,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:175,1
    - Dst: S2R2Rect::ToS2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:175,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:175,1
    - Dst: S2R2Rect::ToS2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:176,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:176,1
    - Dst: S2R2Rect::ToS2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:177,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 179
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - S2R2Rect::InteriorContains
    - EXPECT_GT
    - StrCat
    - s2pred::Sign
    - EXPECT_TRUE
    - S2R2Rect::Contains
    - SCOPED_TRACE
    - S2R2Rect::ToS2Point
    - S2R2Rect::GetVertex
    - R2Point
    - EXPECT_EQ
    - S2R2Rect::GetCenter
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, SimplePredicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:188,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:189,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:190,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:192,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:192,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:192,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:196,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:197,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:200,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:200,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:200,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:200,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:201,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:201,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:201,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:201,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:202,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:202,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:202,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:203,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:203,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:203,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:204,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:204,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:204,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:204,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:205,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:205,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:205,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:206,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:206,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:206,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:207,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:207,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:207,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:207,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:208,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:208,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:208,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:209,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:209,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:209,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:211,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:211,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:211,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:211,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:212,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:212,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:212,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:213,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:213,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:213,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:218,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:218,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:218,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:218,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:219,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:219,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:219,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:220,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:220,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:220,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:221,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:221,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:221,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:221,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:222,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:222,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:222,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:223,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:223,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 224
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - TestIntervalOps
    - S2R2Rect::Empty
    - S2R2Rect
    - R2Point
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, IntervalOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:228,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:229,1
    - Dst: S2R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:232,1
    - Dst: S2R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:233,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:233,1
    - Dst: S2R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:234,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:234,1
    - Dst: S2R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:235,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:235,1
    - Dst: S2R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:236,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 238
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - S2R2Rect::Empty
    - EXPECT_EQ
    - R2Point
    - S2R2Rect::AddPoint
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, AddPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:241,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:241,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:243,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:243,1
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:243,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:243,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:244,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:244,1
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:244,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:245,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:245,1
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:245,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:246,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:246,1
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:246,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:247,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:247,1
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:247,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:248,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:248,1
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:248,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:249,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:249,1
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:249,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:249,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:250,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:250,1
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:250,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:251,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:251,1
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:251,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 252
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2R2Rect::Project
    - R1Interval
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, Project)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:256,1
    - Dst: S2R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:256,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:256,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:257,1
    - Dst: S2R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:257,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:257,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:258,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:258,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:258,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:258,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:259,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:260,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:260,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:260,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:261,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:261,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:261,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:261,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:262,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:263,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:263,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:263,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:263,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:264,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:265,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:265,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:265,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:265,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:266,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:267,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:267,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:267,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:268,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:268,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:268,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:268,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:269,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:269,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 270
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - R2Point
    - S2R2Rect::Empty
    - S2R2Rect
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, Expanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:274,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:275,1
    - Dst: S2R2Rect::GetCapBound
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:275,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:276,1
    - Dst: S2R2Rect::GetRectBound
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:277,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:277,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:277,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:278,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:278,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:279,1
    - Dst: S2LatLngRect::FromPoint
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:279,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:279,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:280,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:280,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:280,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:283,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:283,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:285,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:285,1
    - Dst: S2R2Rect::FromCellId
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:286,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:286,1
    - Dst: S2R2Rect::GetCapBound
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:287,1
    - Dst: S2R2Rect::GetRectBound
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:288,1
    - Dst: S2R2Rect::ToS2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:290,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:290,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:292,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:292,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:292,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:293,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:293,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:294,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:294,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:295,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:295,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:296,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 299
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - S2Point
    - s2random::CellId
    - S2R2Rect::ToS2Point
    - S2R2Rect::FromCellId
    - S2R2Rect::Empty
    - R2Point
    - S2R2Rect::GetCapBound
    - EXPECT_EQ
    - S2R2Rect::GetRectBound
    - EXPECT_TRUE
    - S2Cap::FromPoint
    - S2R2Rect
    - S2R2Rect::GetVertex
    - S2Testing::MakeTaggedSeedSeq
    - S2LatLngRect::Contains
    - S2LatLngRect::FromPoint
    - StrCat
    - S2Cap::Contains
    - SCOPED_TRACE
    - S2LatLng::FromDegrees
    - Normalize
    - absl::LogInfoStreamer
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, Bounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:304,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:305,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:305,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:309,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:309,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:309,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:310,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:310,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:311,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:311,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:312,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:312,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:315,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:315,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:315,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:316,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:316,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:317,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:317,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:318,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:318,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:321,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:321,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:321,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:321,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:322,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:326,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:326,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:326,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:326,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:327,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:330,1
    - Dst: S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:331,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:331,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:331,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2r2rect_test.cc:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 333
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect_test.cc
    functionUses: 0
    functionsReached:
    - S2R2Rect::Empty
    - S2R2Rect
    - TestCellOps
    - S2Cell::FromFacePosLevel
    - R2Point
    - S2Cell::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2R2Rect, CellOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: s2builderutil::IndexedS2PointVectorLayer::IndexedS2PointVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached:
    - Options
    linkageType: ''
    returnType: void
    signature: "void IndexedS2PointVectorLayer(MutableS2ShapeIndex* index,\n                                     const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PointVectorLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: s2builderutil::IndexedS2PointVectorLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 1
    functionsReached:
    - s2builderutil::IndexedS2PointVectorLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PointVectorLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:92,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:93,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:93,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:94,1
    - Dst: std::make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:94,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: s2builderutil::IndexedS2PointVectorLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 1
    functionsReached:
    - Add
    - std::move
    - s2builderutil::IndexedS2PointVectorLayer::Build
    - empty
    - ok
    - std::make_unique<S2PointVectorShape>
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: S2PointVectorLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointVectorLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - duplicate_edges
    argTypes:
    - DuplicateEdges
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: S2PointVectorLayer::Options::Options(DuplicateEdges duplicate_edges)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointVectorLayer::Options::Options(DuplicateEdges duplicate_edges)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: S2PointVectorLayer::Options::duplicate_edges() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions::DuplicateEdges
    signature: S2Builder::GraphOptions::DuplicateEdges S2PointVectorLayer::Options::duplicate_edges()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duplicate_edges
    argTypes:
    - S2Builder::GraphOptions::DuplicateEdges
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: "S2PointVectorLayer::Options::set_duplicate_edges(\n    S2Builder::GraphOptions::DuplicateEdges
      duplicate_edges)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PointVectorLayer::Options::set_duplicate_edges(\n    S2Builder::GraphOptions::DuplicateEdges
      duplicate_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: s2builderutil::IndexedS2PointVectorLayer::IndexedS2PointVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached:
    - Options
    linkageType: ''
    returnType: void
    signature: "void IndexedS2PointVectorLayer(MutableS2ShapeIndex* index,\n                                     const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PointVectorLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: s2builderutil::IndexedS2PointVectorLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 2
    functionsReached:
    - s2builderutil::IndexedS2PointVectorLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PointVectorLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:92,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:93,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:93,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:94,1
    - Dst: std::make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:94,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: s2builderutil::IndexedS2PointVectorLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 2
    functionsReached:
    - Add
    - std::move
    - s2builderutil::IndexedS2PointVectorLayer::Build
    - empty
    - ok
    - std::make_unique<S2PointVectorShape>
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: S2PointVectorLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointVectorLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - duplicate_edges
    argTypes:
    - DuplicateEdges
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: S2PointVectorLayer::Options::Options(DuplicateEdges duplicate_edges)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointVectorLayer::Options::Options(DuplicateEdges duplicate_edges)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: S2PointVectorLayer::Options::duplicate_edges() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions::DuplicateEdges
    signature: S2Builder::GraphOptions::DuplicateEdges S2PointVectorLayer::Options::duplicate_edges()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duplicate_edges
    argTypes:
    - S2Builder::GraphOptions::DuplicateEdges
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: "S2PointVectorLayer::Options::set_duplicate_edges(\n    S2Builder::GraphOptions::DuplicateEdges
      duplicate_edges)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PointVectorLayer::Options::set_duplicate_edges(\n    S2Builder::GraphOptions::DuplicateEdges
      duplicate_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:60,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:61,1
    - Dst: set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:62,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:63,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:66,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:67,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:69,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:69,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:71,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:72,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:72,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:75,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:77,1
    - Dst: absl::StrJoin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:77,1
    - Dst: absl::StrJoin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - input_strs
    - ' expected_strs'
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - vector<string_view>
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 79
    functionName: TestS2PolylineVector
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - make_unique<S2PolylineVectorLayer>
    - S2Builder::AddPolyline
    - set_edge_type
    - MakePolylineOrDie
    - SCOPED_TRACE
    - absl::StrJoin
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2PolylineVector(\n    absl::Span<const string_view> input_strs,\n
      \   const vector<string_view>& expected_strs, EdgeType edge_type,\n    S2PolylineVectorLayer::Options
      layer_options =  // by value\n    S2PolylineVectorLayer::Options(),\n    const
      S2Builder::Options& builder_options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:86,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:87,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:88,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - ' expected_strs'
    argTypes:
    - absl::Span<const string_view>
    - vector<string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: TestS2PolylineVector
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 1
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - TestS2PolylineVector
    linkageType: ''
    returnType: void
    signature: "void TestS2PolylineVector(\n    absl::Span<const string_view> input_strs,\n
      \   const vector<string_view>& expected_strs,\n    const S2PolylineVectorLayer::Options&
      layer_options =\n        S2PolylineVectorLayer::Options(),\n    const S2Builder::Options&
      builder_options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input_strs'
    argTypes:
    - vector<string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: TestS2PolylineVectorUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineVector
    linkageType: ''
    returnType: void
    signature: void TestS2PolylineVectorUnchanged(const vector<string_view>& input_strs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVectorUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:99,1
    - Dst: vector<string_view>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - vector<string_view>
    - TestS2PolylineVectorUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVectorUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:103,1
    - Dst: vector<string_view>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - vector<string_view>
    - TestS2PolylineVectorUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, TwoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:112,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineVector
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, JoiningPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVectorUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineVectorUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, SegmentNetwork)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:142,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineVector
    - S2PolylineVectorLayer::Options::set_polyline_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, MultipleIntersectingWalks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:156,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineVector
    - S2PolylineVectorLayer::Options::set_polyline_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, EarlyWalkTermination)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:166,1
    - Dst: S2PolylineVectorLayer::Options::set_sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:167,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:170,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:170,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 187
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineVectorLayer::Options::set_polyline_type
    - S2PolylineVectorLayer::Options::set_sibling_pairs
    - S2Builder::Options::set_snap_function
    - TestS2PolylineVector
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, InputEdgeStartsMultipleLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:193,1
    - Dst: S2PolylineVectorLayer::Options::s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2PolylineVectorLayer::Options::set_validate
    - S2PolylineVectorLayer::Options::s2debug_override
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, ValidateFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:200,1
    - Dst: S2PolylineVectorLayer::Options::s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:200,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:201,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:203,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:204,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:205,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:205,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:205,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:206,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:207,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:208,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::AddEdge
    - S2ShapeNestingQuery::Options::Options
    - S2Point
    - make_unique<S2PolylineVectorLayer>
    - S2PolylineVectorLayer::Options::s2debug_override
    - ASSERT_FALSE
    - S2Builder::Build
    - S2PolylineVectorLayer::Options::set_validate
    - S2Error::code
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, ValidateTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:212,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:215,1
    - Dst: S2PolylineVectorLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:217,1
    - Dst: S2PolylineVectorLayer::Options::set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:218,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:220,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:220,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:222,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:223,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:223,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:224,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:225,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:225,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:226,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:227,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:227,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:228,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:229,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:229,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:231,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:231,1
    - Dst: S2PolylineVectorLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:231,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:232,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:233,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:233,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:233,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:234,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:235,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:235,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:236,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 243
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineVectorLayer::LabelSetIds::size
    - make_unique<S2PolylineVectorLayer>
    - S2Builder::AddPolyline
    - IdSetLexicon::id_set
    - vector::size
    - S2Error::S2Error
    - S2PolylineVectorLayer::Options::set_duplicate_edges
    - EXPECT_EQ
    - S2Builder::StartLayer
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - MakePolylineOrDie
    - size
    - S2Builder::clear_labels
    - ASSERT_TRUE
    - S2Builder::Build
    - S2PolylineVectorLayer::Options::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, SimpleEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:246,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:247,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:248,1
    - Dst: make_unique<IndexedS2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:248,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:251,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:251,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:252,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:252,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:253,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:254,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:255,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:255,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:256,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:257,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:258,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:260,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:261,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 262
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MutableS2ShapeIndex::num_shape_ids
    - S2Builder::AddPolyline
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - down_cast
    - ASSERT_TRUE
    - make_unique<IndexedS2PolylineVectorLayer>
    - S2Builder::Build
    - EXPECT_EQ
    - s2textformat::MakePolylineOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolylineVectorLayer, AddsShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:60,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:61,1
    - Dst: set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:62,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:63,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:66,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:67,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:69,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:69,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:71,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:72,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:72,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:75,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:77,1
    - Dst: absl::StrJoin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:77,1
    - Dst: absl::StrJoin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - input_strs
    - ' expected_strs'
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - vector<string_view>
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 79
    functionName: TestS2PolylineVector
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 6
    functionsReached:
    - vector::push_back
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - make_unique<S2PolylineVectorLayer>
    - S2Builder::AddPolyline
    - set_edge_type
    - MakePolylineOrDie
    - SCOPED_TRACE
    - absl::StrJoin
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2PolylineVector(\n    absl::Span<const string_view> input_strs,\n
      \   const vector<string_view>& expected_strs, EdgeType edge_type,\n    S2PolylineVectorLayer::Options
      layer_options =  // by value\n    S2PolylineVectorLayer::Options(),\n    const
      S2Builder::Options& builder_options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:86,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:87,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:88,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - ' expected_strs'
    argTypes:
    - absl::Span<const string_view>
    - vector<string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: TestS2PolylineVector
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 7
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - TestS2PolylineVector
    linkageType: ''
    returnType: void
    signature: "void TestS2PolylineVector(\n    absl::Span<const string_view> input_strs,\n
      \   const vector<string_view>& expected_strs,\n    const S2PolylineVectorLayer::Options&
      layer_options =\n        S2PolylineVectorLayer::Options(),\n    const S2Builder::Options&
      builder_options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input_strs'
    argTypes:
    - vector<string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: TestS2PolylineVectorUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 3
    functionsReached:
    - TestS2PolylineVector
    linkageType: ''
    returnType: void
    signature: void TestS2PolylineVectorUnchanged(const vector<string_view>& input_strs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVectorUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:99,1
    - Dst: vector<string_view>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - vector<string_view>
    - TestS2PolylineVectorUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVectorUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:103,1
    - Dst: vector<string_view>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - vector<string_view>
    - TestS2PolylineVectorUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, TwoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:112,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineVector
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, JoiningPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineVectorUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineVectorUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, SegmentNetwork)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:142,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineVector
    - S2PolylineVectorLayer::Options::set_polyline_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, MultipleIntersectingWalks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:156,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineVector
    - S2PolylineVectorLayer::Options::set_polyline_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, EarlyWalkTermination)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:166,1
    - Dst: S2PolylineVectorLayer::Options::set_sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:167,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:170,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:170,1
    - Dst: TestS2PolylineVector
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 187
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineVectorLayer::Options::set_polyline_type
    - S2PolylineVectorLayer::Options::set_sibling_pairs
    - S2Builder::Options::set_snap_function
    - TestS2PolylineVector
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, InputEdgeStartsMultipleLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:193,1
    - Dst: S2PolylineVectorLayer::Options::s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2PolylineVectorLayer::Options::set_validate
    - S2PolylineVectorLayer::Options::s2debug_override
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, ValidateFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineVectorLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:200,1
    - Dst: S2PolylineVectorLayer::Options::s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:200,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:201,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:203,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:204,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:205,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:205,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:205,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:206,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:207,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:208,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::AddEdge
    - S2ShapeNestingQuery::Options::Options
    - S2Point
    - make_unique<S2PolylineVectorLayer>
    - S2PolylineVectorLayer::Options::s2debug_override
    - ASSERT_FALSE
    - S2Builder::Build
    - S2PolylineVectorLayer::Options::set_validate
    - S2Error::code
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, ValidateTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:212,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:215,1
    - Dst: S2PolylineVectorLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:217,1
    - Dst: S2PolylineVectorLayer::Options::set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:218,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:220,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:220,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:222,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:223,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:223,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:224,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:225,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:225,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:226,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:227,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:227,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:228,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:229,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:229,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:231,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:231,1
    - Dst: S2PolylineVectorLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:231,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:232,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:233,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:233,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:233,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:234,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:235,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:235,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:236,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 243
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineVectorLayer::LabelSetIds::size
    - make_unique<S2PolylineVectorLayer>
    - S2Builder::AddPolyline
    - IdSetLexicon::id_set
    - vector::size
    - S2Error::S2Error
    - S2PolylineVectorLayer::Options::set_duplicate_edges
    - EXPECT_EQ
    - S2Builder::StartLayer
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - MakePolylineOrDie
    - size
    - S2Builder::clear_labels
    - ASSERT_TRUE
    - S2Builder::Build
    - S2PolylineVectorLayer::Options::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineVectorLayer, SimpleEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:246,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:247,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:248,1
    - Dst: make_unique<IndexedS2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:248,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:251,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:251,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:252,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:252,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:253,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:254,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:255,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:255,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:256,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:257,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:258,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:260,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:261,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 262
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MutableS2ShapeIndex::num_shape_ids
    - S2Builder::AddPolyline
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - down_cast
    - ASSERT_TRUE
    - make_unique<IndexedS2PolylineVectorLayer>
    - S2Builder::Build
    - EXPECT_EQ
    - s2textformat::MakePolylineOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolylineVectorLayer, AddsShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: S2LatLngRectBounder::S2LatLngRectBounder
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder.h
    functionUses: 0
    functionsReached:
    - S2LatLngRect::Empty
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectBounder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: S2LatLngRectBounder::S2LatLngRectBounder
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectBounder(const S2LatLngRectBounder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: operator=(const S2LatLngRectBounder&)
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2LatLngRectBounder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:31,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:32,1
    - Dst: Abs
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 59
    functionName: S2PolylineSimplifier::Init
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier.cc
    functionUses: 0
    functionsReached:
    - Abs
    - S1Interval::Full
    - clear
    linkageType: ''
    returnType: void
    signature: void S2PolylineSimplifier::Init(const S2Point& src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:65,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:65,1
    - Dst: S2PolylineSimplifier::GetDirection
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:68,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:69,1
    - Dst: interval::Contains
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' dst'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: S2PolylineSimplifier::Extend
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier.cc
    functionUses: 0
    functionsReached:
    - S2PolylineSimplifier::GetDirection
    - Contains
    - S1ChordAngle
    - interval::Contains
    - S1ChordAngle::Right
    linkageType: ''
    returnType: bool
    signature: bool S2PolylineSimplifier::Extend(const S2Point& dst) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineSimplifier::GetSemiwidth
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:81,1
    - Dst: S1Interval::Empty
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:87,1
    - Dst: S2PolylineSimplifier::GetDirection
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:92,1
    - Dst: S1Interval::FromPoint
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:93,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:94,1
    - Dst: S2PolylineSimplifier::AvoidRange
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:98,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:100,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' p'
    - r
    argTypes:
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 103
    functionName: S2PolylineSimplifier::TargetDisc
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier.cc
    functionUses: 0
    functionsReached:
    - Intersection
    - S1Interval::Empty
    - S2PolylineSimplifier::GetSemiwidth
    - clear
    - S2PolylineSimplifier::GetDirection
    - S1Interval::FromPoint
    - is_empty
    - S2PolylineSimplifier::AvoidRange
    linkageType: ''
    returnType: bool
    signature: bool S2PolylineSimplifier::TargetDisc(const S2Point& p, S1ChordAngle
      r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineSimplifier::GetSemiwidth
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:109,1
    - Dst: S1Interval::Empty
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:112,1
    - Dst: S2PolylineSimplifier::GetDirection
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:117,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:120,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:121,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:123,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:126,1
    - Dst: S2PolylineSimplifier::AvoidRange
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:129,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' p'
    - r
    - disc_on_left
    argTypes:
    - S2Point
    - S1ChordAngle
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 131
    functionName: S2PolylineSimplifier::AvoidDisc
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier.cc
    functionUses: 0
    functionsReached:
    - is_full
    - S1Interval::Empty
    - S2PolylineSimplifier::GetSemiwidth
    - push_back
    - S2PolylineSimplifier::GetDirection
    - remainder
    - is_empty
    - S2PolylineSimplifier::AvoidRange
    linkageType: ''
    returnType: bool
    signature: "bool S2PolylineSimplifier::AvoidDisc(const S2Point& p, S1ChordAngle
      r,\n                                     bool disc_on_left)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:147,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:147,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:148,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:150,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:150,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:150,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:152,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:152,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:152,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:155,1
    - Dst: Complement
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' avoid_interval'
    - disc_on_left
    argTypes:
    - S1Interval
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 157
    functionName: S2PolylineSimplifier::AvoidRange
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier.cc
    functionUses: 2
    functionsReached:
    - Intersection
    - is_full
    - Complement
    - S1Interval
    - lo
    - Contains
    - hi
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void S2PolylineSimplifier::AvoidRange(const S1Interval& avoid_interval,\n
      \                                     bool disc_on_left)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:160,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:160,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: S2PolylineSimplifier::GetDirection
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier.cc
    functionUses: 3
    functionsReached:
    - DotProd
    - atan2
    linkageType: ''
    returnType: double
    signature: double S2PolylineSimplifier::GetDirection(const S2Point& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:191,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:192,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:198,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2polyline_simplifier.cc:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' p'
    - r
    - round_direction
    argTypes:
    - S2Point
    - S1ChordAngle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 247
    functionName: S2PolylineSimplifier::GetSemiwidth
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier.cc
    functionUses: 2
    functionsReached:
    - S1ChordAngle::length2
    - S1ChordAngle
    - asin
    - sqrt
    linkageType: ''
    returnType: double
    signature: "double S2PolylineSimplifier::GetSemiwidth(const S2Point& p, S1ChordAngle
      r,\n                                          int round_direction) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: FurthestPointTarget::FurthestPointTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FurthestPointTarget(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: FurthestPointTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_brute_force_index_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:52,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:53,1
    - Dst: FurthestEdgeQuery::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:55,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:56,1
    - Dst: FurthestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:57,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:58,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:59,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:60,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:60,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:61,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:61,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - ASSERT_EQ
    - auto::get
    - FurthestEdgeQuery::FindClosestEdges
    - EXPECT_NEAR
    - shape_id
    - auto::size
    - s2textformat::MakePointOrDie
    - distance
    - EXPECT_EQ
    - FurthestEdgeQuery::Options::set_max_results
    - s2textformat::MakeIndexOrDie
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQueryBase, MaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: FurthestPointTarget::FurthestPointTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FurthestPointTarget(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: FurthestPointTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_brute_force_index_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:52,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:53,1
    - Dst: FurthestEdgeQuery::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:55,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:56,1
    - Dst: FurthestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:57,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:58,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:59,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:60,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:60,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:61,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:61,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - ASSERT_EQ
    - auto::get
    - FurthestEdgeQuery::FindClosestEdges
    - EXPECT_NEAR
    - shape_id
    - auto::size
    - s2textformat::MakePointOrDie
    - distance
    - EXPECT_EQ
    - FurthestEdgeQuery::Options::set_max_results
    - s2textformat::MakeIndexOrDie
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQueryBase, MaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - LabelledCell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: operator==(LabelledCell y) const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(LabelledCell y) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - y
    argTypes:
    - LabelledCell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: operator<(LabelledCell y) const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(LabelledCell y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2cell_index.h:134,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - x
    argTypes:
    - H
    - LabelledCell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: S2CellIndex::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, LabelledCell x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_index.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 294
    functionName: S2CellIndex::RangeIterator::kUninitialized
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - end
    linkageType: ''
    returnType: std::vector<RangeNode>::const_iterator
    signature: std::vector<RangeNode>::const_iterator kUninitialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 382
    functionName: S2CellIndex::ContentsIterator::set_done
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_done()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _start_id
    - _contents
    argTypes:
    - S2CellId
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: S2CellIndex::RangeNode
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RangeNode(S2CellId _start_id, int32_t _contents)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - ' y'
    argTypes:
    - S2CellId
    - RangeNode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: operator<(S2CellId x, const RangeNode& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(S2CellId x, const RangeNode& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex*::cell_tree_::begin
      Src: /src/s2geometry/src/s2/s2cell_index.h:441,1
    - Dst: S2CellIndex*::cell_tree_::end
      Src: /src/s2geometry/src/s2/s2cell_index.h:442,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:443,1
    - Dst: S2CellIndex*::range_nodes_::empty
      Src: /src/s2geometry/src/s2/s2cell_index.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: S2CellIndex::CellIterator::CellIterator(const S2CellIndex* index)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - S2CellIndex*::cell_tree_::begin
    - ABSL_DCHECK
    - S2CellIndex*::range_nodes_::empty
    - S2CellIndex*::cell_tree_::end
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::CellIterator::CellIterator(const S2CellIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:447,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: S2CellIndex::CellIterator::cell_id() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellIndex::CellIterator::cell_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:452,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: S2CellIndex::CellIterator::label() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellIndex::Label
    signature: S2CellIndex::Label S2CellIndex::CellIterator::label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:458,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: "S2CellIndex::CellIterator::labelled_cell()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellIndex::LabelledCell
    signature: "S2CellIndex::LabelledCell S2CellIndex::CellIterator::labelled_cell()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: S2CellIndex::CellIterator::done() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2CellIndex::CellIterator::done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:467,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: S2CellIndex::CellIterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::CellIterator::Next()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:473,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2cell_index.h:473,1
    - Dst: S2CellIndex::RangeIterator::kUninitialized
      Src: /src/s2geometry/src/s2/s2cell_index.h:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: S2CellIndex::RangeIterator::RangeIterator(const S2CellIndex* index)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - empty
    - S2CellIndex::RangeIterator::kUninitialized
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::RangeIterator::RangeIterator(const S2CellIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: S2CellIndex::RangeIterator::start_id() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellIndex::RangeIterator::start_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:482,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: S2CellIndex::RangeIterator::limit_id() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellIndex::RangeIterator::limit_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:487,1
    - Dst: S2CellIndex::RangeIterator::kUninitialized
      Src: /src/s2geometry/src/s2/s2cell_index.h:487,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_index.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 491
    functionName: S2CellIndex::RangeIterator::done() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - end
    - S2CellIndex::RangeIterator::kUninitialized
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S2CellIndex::RangeIterator::done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2cell_index.h:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 495
    functionName: S2CellIndex::RangeIterator::Begin()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - begin
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::RangeIterator::Begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_index.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: S2CellIndex::RangeIterator::Finish()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::RangeIterator::Finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:503,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: S2CellIndex::RangeIterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::RangeIterator::Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: S2CellIndex::RangeIterator::is_empty() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2CellIndex::RangeIterator::is_empty() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_index.h:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: S2CellIndex::RangeIterator::Advance(int n)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - end
    linkageType: ''
    returnType: bool
    signature: bool S2CellIndex::RangeIterator::Advance(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: "S2CellIndex::NonEmptyRangeIterator::NonEmptyRangeIterator(\n    const
      S2CellIndex* index)"
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2CellIndex::NonEmptyRangeIterator::NonEmptyRangeIterator(\n
      \   const S2CellIndex* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MockS2CellIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index.h:524,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2cell_index.h:525,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:525,1
    - Dst: RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index.h:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: S2CellIndex::NonEmptyRangeIterator::Begin()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - MockS2CellIterator::Begin
    - done
    - RangeIterator::Next
    - is_empty
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::NonEmptyRangeIterator::Begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index.h:530,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2cell_index.h:531,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: S2CellIndex::NonEmptyRangeIterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - is_empty
    - done
    - RangeIterator::Next
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::NonEmptyRangeIterator::Next()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MockS2CellIterator::Prev
      Src: /src/s2geometry/src/s2/s2cell_index.h:535,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2cell_index.h:536,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2cell_index.h:539,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:539,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_index.h:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: S2CellIndex::NonEmptyRangeIterator::Prev()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - Next
    - MockS2CellIterator::Prev
    - done
    - is_empty
    linkageType: ''
    returnType: bool
    signature: bool S2CellIndex::NonEmptyRangeIterator::Prev()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MockS2CellIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index.h:544,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2cell_index.h:545,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:545,1
    - Dst: RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index.h:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: S2CellIndex::NonEmptyRangeIterator::Seek(S2CellId target)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - is_empty
    - done
    - MockS2CellIterator::Seek
    - RangeIterator::Next
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::NonEmptyRangeIterator::Seek(S2CellId target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2cell_index.h:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 552
    functionName: S2CellIndex::RangeIterator::Prev()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - begin
    linkageType: ''
    returnType: bool
    signature: bool S2CellIndex::RangeIterator::Prev()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 554
    functionName: S2CellIndex::ContentsIterator::ContentsIterator()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::ContentsIterator::ContentsIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2cell_index.h:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: "S2CellIndex::ContentsIterator::ContentsIterator(\n    const S2CellIndex*
      index)"
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: "void S2CellIndex::ContentsIterator::ContentsIterator(\n    const S2CellIndex*
      index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2cell_index.h:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: S2CellIndex::ContentsIterator::Init(const S2CellIndex* index)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - Clear
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::ContentsIterator::Init(const S2CellIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index.h:567,1
    - Dst: S2CellIndex::ContentsIterator::set_done
      Src: /src/s2geometry/src/s2/s2cell_index.h:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 571
    functionName: S2CellIndex::ContentsIterator::Clear()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - S2CellIndex::ContentsIterator::set_done
    - S2CellId::None
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::ContentsIterator::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:574,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 576
    functionName: S2CellIndex::ContentsIterator::cell_id() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellIndex::ContentsIterator::cell_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:579,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: S2CellIndex::ContentsIterator::label() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellIndex::Label
    signature: S2CellIndex::Label S2CellIndex::ContentsIterator::label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:585,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: "S2CellIndex::ContentsIterator::labelled_cell()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellIndex::LabelledCell
    signature: "S2CellIndex::LabelledCell S2CellIndex::ContentsIterator::labelled_cell()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 591
    functionName: S2CellIndex::ContentsIterator::done() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2CellIndex::ContentsIterator::done() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:594,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_index.h:594,1
    - Dst: S2CellIndex::ContentsIterator::set_done
      Src: /src/s2geometry/src/s2/s2cell_index.h:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 602
    functionName: S2CellIndex::ContentsIterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - done
    - S2CellIndex::ContentsIterator::set_done
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::ContentsIterator::Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2cell_index.h:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: S2CellIndex::num_cells
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int S2CellIndex::num_cells() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.h:609,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_index.h:609,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_index.h:610,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index.h:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cell_id
    - label
    argTypes:
    - S2CellId
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: S2CellIndex::Add
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - S2CellId::is_valid
    - push_back
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::Add(S2CellId cell_id, Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2cell_index.h:615,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2cell_index.h:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 617
    functionName: S2CellIndex::Clear
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::Clear()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2cell_index.h:621,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2cell_index.h:622,1
    - Dst: RangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index.h:625,1
    - Dst: RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index.h:627,1
    - Dst: auto::range_min
      Src: /src/s2geometry/src/s2/s2cell_index.h:627,1
    - Dst: RangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index.h:628,1
    - Dst: auto::range_min
      Src: /src/s2geometry/src/s2/s2cell_index.h:628,1
    - Dst: RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index.h:630,1
    - Dst: auto::range_max
      Src: /src/s2geometry/src/s2/s2cell_index.h:630,1
    - Dst: RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index.h:630,1
    - Dst: ContentsIterator::StartUnion
      Src: /src/s2geometry/src/s2/s2cell_index.h:631,1
    - Dst: ContentsIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index.h:631,1
    - Dst: ContentsIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index.h:631,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2cell_index.h:632,1
    - Dst: ContentsIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index.h:632,1
    - Dst: ContentsIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index.h:632,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_index.h:641,1
    - Dst: auto::range_max
      Src: /src/s2geometry/src/s2/s2cell_index.h:641,1
    - Dst: RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index.h:641,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2cell_index.h:643,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_index.h:643,1
    - Dst: RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index.h:643,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_index.h:644,1
    - Dst: RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index.h:644,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_index.h:646,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - ' target'
    - ' visitor'
    argTypes:
    - S2CellUnion
    - CellVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 648
    functionName: S2CellIndex::VisitIntersectingCells
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached:
    - auto::range_min
    - end
    - auto::range_max
    - ContentsIterator::Next
    - RangeIterator::Begin
    - RangeIterator::Next
    - std::lower_bound
    - ContentsIterator::done
    - visitor
    - ContentsIterator::cell_id
    - begin
    - range_max
    - empty
    - ContentsIterator::label
    - RangeIterator::limit_id
    - ContentsIterator::StartUnion
    - RangeIterator::start_id
    - RangeIterator::Seek
    linkageType: ''
    returnType: bool
    signature: "bool S2CellIndex::VisitIntersectingCells(\n    const S2CellUnion&
      target, const CellVisitor& visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - x
    argTypes:
    - std::ostream
    - S2CellIndex::LabelledCell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 653
    functionName: "& operator<<(std::ostream& os,\n                                S2CellIndex::LabelledCell
      x)"
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                                S2CellIndex::LabelledCell
      x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:39,1
    - Dst: S2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:40,1
    - Dst: S2LaxPolylineShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:41,1
    - Dst: S2LaxPolylineShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:41,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:42,1
    - Dst: S2LaxPolylineShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:42,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:43,1
    - Dst: S2LaxPolylineShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:43,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:44,1
    - Dst: S2LaxPolylineShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2LaxPolylineShape::GetReferencePoint
    - S2LaxPolylineShape::is_full
    - EXPECT_TRUE
    - S2LaxPolylineShape::num_edges
    - S2LaxPolylineShape::is_empty
    - EXPECT_EQ
    - S2LaxPolylineShape::num_chains
    - S2LaxPolylineShape::dimension
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolylineShape, NoVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:50,1
    - Dst: S2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:51,1
    - Dst: S2LaxPolylineShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:52,1
    - Dst: S2LaxPolylineShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:53,1
    - Dst: S2LaxPolylineShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:53,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:54,1
    - Dst: S2LaxPolylineShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2LaxPolylineShape::is_full
    - EXPECT_TRUE
    - S2Point
    - S2LaxPolylineShape::num_edges
    - S2LaxPolylineShape::is_empty
    - EXPECT_EQ
    - S2LaxPolylineShape::num_chains
    - S2LaxPolylineShape::dimension
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolylineShape, OneVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:61,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:67,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:68,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:68,1
    - Dst: S2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:68,1
    - Dst: S2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:69,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:70,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:70,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:74,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:75,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:76,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:77,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:77,1
    - Dst: S2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:77,1
    - Dst: S2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:78,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:79,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 81
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - ASSERT_EQ
    - std::move
    - S2LaxPolylineShape::vertex
    - s2textformat::ParsePointsOrDie
    - S2LaxPolylineShape::S2LaxPolylineShape
    - vector::size
    - S2LaxPolylineShape::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolylineShape, Move)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:86,1
    - Dst: S2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:87,1
    - Dst: S2LaxPolylineShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:88,1
    - Dst: S2LaxPolylineShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:89,1
    - Dst: S2LaxPolylineShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:90,1
    - Dst: S2LaxPolylineShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:90,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:91,1
    - Dst: S2LaxPolylineShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:91,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:92,1
    - Dst: S2LaxPolylineShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:92,1
    - Dst: S2LaxPolylineShape::edge
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:95,1
    - Dst: S2LaxPolylineShape::edge
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2LaxPolylineShape::chain
    - S2LaxPolylineShape::is_full
    - S2LaxPolylineShape::num_edges
    - s2textformat::ParsePointsOrDie
    - S2LaxPolylineShape::is_empty
    - EXPECT_EQ
    - S2LaxPolylineShape::num_chains
    - S2LaxPolylineShape::dimension
    - S2LaxPolylineShape::edge
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolylineShape, EdgeAccess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:102,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:105,1
    - Dst: S2LaxPolylineShape::Encode
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:106,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:107,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:107,1
    - Dst: EncodedS2LaxPolylineShape::EncodedS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:108,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:109,1
    - Dst: EncodedS2LaxPolylineShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:109,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:111,1
    - Dst: EncodedS2LaxPolylineShape::Encode
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:112,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:113,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:113,1
    - Dst: EncodedS2LaxPolylineShape::EncodedS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:115,1
    - Dst: EncodedS2LaxPolylineShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:115,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - S2LaxPolylineShape::Encode
    - Encoder::length
    - EncodedS2LaxPolylineShape::EncodedS2LaxPolylineShape
    - s2textformat::ParsePointsOrDie
    - Encoder::base
    - ASSERT_TRUE
    - EncodedS2LaxPolylineShape::Init
    - EncodedS2LaxPolylineShape::Encode
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2LaxPolylineShape, RoundtripEncoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:124,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:127,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:128,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:128,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - s2coding::RoundTrip
    - s2coding::S2HintCoder::S2HintCoder
    - s2textformat::ParsePointsOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolylineShape, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:133,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:134,1
    - Dst: S2LaxPolylineShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:137,1
    - Dst: S2LaxPolylineShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:138,1
    - Dst: S2LaxPolylineShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:139,1
    - Dst: S2LaxPolylineShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:140,1
    - Dst: S2LaxPolylineShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:141,1
    - Dst: S2LaxPolylineShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:149,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:153,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:154,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolylineShape::chains
    - s2textformat::ParsePointsOrDie
    - EXPECT_NE
    - EXPECT_EQ
    - S2LaxPolylineShape::S2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolylineShape, ChainIteratorWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:161,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:161,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:162,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:162,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:163,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:163,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:164,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:164,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:166,1
    - Dst: S2LaxPolylineShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:172,1
    - Dst: S2Shape::ChainVertexRange::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:172,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:172,1
    - Dst: S2Shape::ChainVertexRange::begin
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:174,1
    - Dst: S2LaxPolylineShape::vertices
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:179,1
    - Dst: S2Shape::ChainVertexIterator::ChainVertexIterator
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:179,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:181,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:181,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:182,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:182,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:183,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:188,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:189,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 191
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2Shape::ChainVertexIterator::ChainVertexIterator
    - vector::push_back
    - size
    - S2LaxPolylineShape::vertices
    - S2LaxPolylineShape::chains
    - S2Shape::ChainVertexRange::num_vertices
    - S2Shape::ChainVertexRange::begin
    - s2textformat::ParsePointsOrDie
    - EXPECT_NE
    - EXPECT_EQ
    - vector::size
    - S2Shape::ChainVertexRange::end
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolylineShape, ChainVertexIteratorWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_test.cc:30,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2shape_index_test.cc:33,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2shape_index_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_test.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - auto::begin
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - auto::end
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexIterator, PrefixIncrement)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_test.cc:41,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2shape_index_test.cc:44,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2shape_index_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_test.cc:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - auto::begin
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - auto::end
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexIterator, PostfixIncrement)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat_degrees
    - lng_degrees
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: GetLatLngPoint
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetLatLngPoint(double lat_degrees, double lng_degrees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:58,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:60,1
    - Dst: S2Cap::is_valid
      Src: /src/s2geometry/src/s2/s2cap_test.cc:60,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:61,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:62,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:63,1
    - Dst: S2Cap::is_valid
      Src: /src/s2geometry/src/s2/s2cap_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:64,1
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:64,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:65,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:66,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2cap_test.cc:66,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:67,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cap_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:71,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:75,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:75,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:75,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:75,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:76,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:76,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:76,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:76,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:77,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:77,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:77,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2cap_test.cc:77,1
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:81,1
    - Dst: S2Cap::is_valid
      Src: /src/s2geometry/src/s2/s2cap_test.cc:81,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:82,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:83,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:83,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:84,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2cap_test.cc:84,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2cap_test.cc:84,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:87,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:87,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:88,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:88,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:89,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:89,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:90,1
    - Dst: S2Cap::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:90,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:91,1
    - Dst: S2Cap::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:91,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:92,1
    - Dst: S2Cap::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:92,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:95,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:96,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:96,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:97,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:97,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:98,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cap_test.cc:98,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:101,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:101,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:102,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:102,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:103,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2cap_test.cc:103,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:107,1
    - Dst: S2Cap::is_valid
      Src: /src/s2geometry/src/s2/s2cap_test.cc:107,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:108,1
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:108,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:109,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:109,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:112,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:113,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:113,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:114,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:114,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:114,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:120,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:120,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:121,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:121,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:122,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:122,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:122,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:123,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:123,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:123,1
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2cap_test.cc:126,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:127,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:127,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:127,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:128,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:128,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:129,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:129,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:129,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:130,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:130,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:130,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:131,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:131,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:131,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:132,1
    - Dst: S2Cap::InteriorContains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:132,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:132,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:138,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:139,1
    - Dst: S1ChordAngle::GetS2PointConstructorMaxError
      Src: /src/s2geometry/src/s2/s2cap_test.cc:140,1
    - Dst: S1ChordAngle::GetS1AngleConstructorMaxError
      Src: /src/s2geometry/src/s2/s2cap_test.cc:141,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2cap_test.cc:144,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2cap_test.cc:145,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:146,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:146,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:146,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:147,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:147,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:147,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:148,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:148,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:148,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:149,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:149,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:152,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:152,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:153,1
    - Dst: S2Cap::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:153,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:154,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:154,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:155,1
    - Dst: S2Cap::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:155,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:156,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:156,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:157,1
    - Dst: S2Cap::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:158,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:158,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:159,1
    - Dst: S2Cap::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:159,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:160,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:160,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:161,1
    - Dst: S2Cap::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:162,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:162,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:163,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:163,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:164,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:164,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:165,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:165,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:166,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:166,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:167,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:167,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:168,1
    - Dst: S2Cap::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:168,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:168,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:169,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:169,1
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2cap_test.cc:170,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 171
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - S2Cap::is_valid
    - S2Cap::height
    - S2Point
    - S2Cap::InteriorIntersects
    - S1Angle::Infinity
    - S2Cap::is_empty
    - S1ChordAngle::PlusError
    - S2Cap::InteriorContains
    - S2Cap
    - S1Angle::Radians
    - S2Cap::Complement
    - EXPECT_NE
    - EXPECT_EQ
    - S2Cap::Full
    - S2Cap::is_full
    - EXPECT_TRUE
    - S2Cap::FromPoint
    - S2Cap::FromCenterHeight
    - S1Angle::Degrees
    - S2Cap::GetRadius
    - S2Cap::Empty
    - GetLatLngPoint
    - EXPECT_DOUBLE_EQ
    - S1ChordAngle::GetS2PointConstructorMaxError
    - S2Cap::Contains
    - S1ChordAngle::GetS1AngleConstructorMaxError
    - S2Cap::S2Cap
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:174,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:174,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2cap_test.cc:175,1
    - Dst: S2Cap::AddCap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:176,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:177,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2cap_test.cc:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::GetArea
    - S2Cap::Empty
    - S2Point
    - S1Angle::Degrees
    - S2Cap::AddCap
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, AddEmptyCapToNonEmptyCap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:181,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:182,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:182,1
    - Dst: S2Cap::AddCap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:184,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2cap_test.cc:184,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2cap_test.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - S2Cap::GetArea
    - S2Point
    - S1Angle::Degrees
    - S2Cap::AddCap
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, AddNonEmptyCapToEmptyCap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:189,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:189,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:190,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:190,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:197,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:197,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:198,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:199,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2cap_test.cc:199,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:200,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2cap_test.cc:200,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:201,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2cap_test.cc:201,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:204,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:204,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:205,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:206,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2cap_test.cc:206,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:207,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2cap_test.cc:207,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:208,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2cap_test.cc:208,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:210,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:210,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:211,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:212,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2cap_test.cc:212,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:213,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2cap_test.cc:213,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:214,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2cap_test.cc:214,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:217,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:217,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:218,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:219,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2cap_test.cc:219,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:220,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2cap_test.cc:220,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:221,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2cap_test.cc:221,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:224,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:224,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:224,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:225,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2cap_test.cc:225,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:226,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2cap_test.cc:226,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:227,1
    - Dst: S2LatLngRect::lng_lo
      Src: /src/s2geometry/src/s2/s2cap_test.cc:227,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:228,1
    - Dst: S2LatLngRect::lng_hi
      Src: /src/s2geometry/src/s2/s2cap_test.cc:228,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:231,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:231,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:231,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:232,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2cap_test.cc:232,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:233,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2cap_test.cc:233,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:234,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2cap_test.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 235
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - S2LatLngRect::lat
    - GetLatLngPoint
    - S2LatLngRect::lng_lo
    - EXPECT_TRUE
    - EXPECT_NEAR
    - S2Point
    - S2Cap
    - S1Angle::Radians
    - S1Angle::Degrees
    - S2LatLngRect::lng
    - S2LatLngRect::lat_lo
    - S2LatLngRect::lat_hi
    - S2Cap::Full
    - S2LatLngRect::lng_hi
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, GetRectBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atan
      Src: /src/s2geometry/src/s2/s2cap_test.cc:243,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2cap_test.cc:243,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2cap_test.cc:247,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:250,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:253,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:256,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:256,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:257,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:257,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cap_test.cc:262,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cap_test.cc:263,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cap_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:266,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cap_test.cc:266,1
    - Dst: S2Cell::GetCapBound
      Src: /src/s2geometry/src/s2/s2cap_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:268,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cap_test.cc:268,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cap_test.cc:268,1
    - Dst: S2Cell::GetCapBound
      Src: /src/s2geometry/src/s2/s2cap_test.cc:269,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2cap_test.cc:275,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:277,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:278,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:279,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2cap_test.cc:279,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2cap_test.cc:279,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:281,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:281,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:282,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:282,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:283,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2cap_test.cc:283,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2cap_test.cc:283,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:284,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:287,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:288,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:289,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:290,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:291,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2cap_test.cc:291,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2cap_test.cc:291,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:292,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:293,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:293,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:294,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:298,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:298,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:299,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:299,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:300,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 303
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetCenter
    - S2::GetNorm
    - sqrt
    - atan
    - S2Cell::FromFace
    - S1Angle::Radians
    - S2Point::DotProd
    - S2CellId::next
    - EXPECT_EQ
    - S2Cap::Full
    - EXPECT_TRUE
    - S2Cap::MayIntersect
    - S2::FaceUVtoXYZ
    - S2Cap::Empty
    - S2Cap::Contains
    - S2CellId::parent
    - S2Cell::id
    - S2Cell::GetCapBound
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, S2CellMethods)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:308,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:309,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cap_test.cc:309,1
    - Dst: S2Cap::GetCellUnionBound
      Src: /src/s2geometry/src/s2/s2cap_test.cc:311,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:312,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cap_test.cc:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S1Angle::Radians
    - GetValue
    - S2Cap::GetCellUnionBound
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, GetCellUnionBoundLevel1Radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:316,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:316,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:316,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:317,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:317,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:317,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:318,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:318,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:319,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:319,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:320,1
    - Dst: S2Cap::Expanded
      Src: /src/s2geometry/src/s2/s2cap_test.cc:320,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:320,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:321,1
    - Dst: S2Cap::Expanded
      Src: /src/s2geometry/src/s2/s2cap_test.cc:321,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:321,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:322,1
    - Dst: S2Cap::Expanded
      Src: /src/s2geometry/src/s2/s2cap_test.cc:322,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:322,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:323,1
    - Dst: S2Cap::Expanded
      Src: /src/s2geometry/src/s2/s2cap_test.cc:323,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - EXPECT_FALSE
    - EXPECT_TRUE
    - S2Point
    - S1Angle::Radians
    - S1Angle::Degrees
    - S2Cap::Expanded
    - S2Cap::Full
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, Expanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:328,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:328,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:328,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:329,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:329,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cap_test.cc:332,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cap_test.cc:333,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:335,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cap_test.cc:336,1
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2cap_test.cc:337,1
    - Dst: S2Cap::GetCentroid
      Src: /src/s2geometry/src/s2/s2cap_test.cc:338,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2cap_test.cc:339,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:340,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2cap_test.cc:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 342
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - S2Cap::GetArea
    - s2random::Point
    - S2Point
    - S2Cap::GetCentroid
    - Norm
    - S2Cap::FromCenterHeight
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - S2Cap::Full
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, GetCentroid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:346,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:346,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:346,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:347,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:347,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:347,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:348,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:348,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:349,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:352,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:352,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:355,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:355,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:355,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:358,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:358,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:358,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:359,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:359,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:360,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:360,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cap_test.cc:360,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:361,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:361,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cap_test.cc:361,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:364,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:364,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:364,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:365,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:365,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:366,1
    - Dst: S2Cap::Intersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:366,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:367,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:367,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:367,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:368,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2cap_test.cc:368,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:368,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:369,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2cap_test.cc:369,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:369,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:370,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:370,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:373,1
    - Dst: GetLatLngPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:373,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:373,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:374,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap_test.cc:374,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:375,1
    - Dst: S2Cap::Intersects
      Src: /src/s2geometry/src/s2/s2cap_test.cc:375,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:376,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:376,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:376,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:377,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2cap_test.cc:377,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:377,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:378,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2cap_test.cc:378,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:378,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cap_test.cc:379,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:379,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:383,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:383,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:383,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:384,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:384,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:384,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:385,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:385,1
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2cap_test.cc:388,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:388,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:389,1
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap_test.cc:389,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap_test.cc:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 390
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - S2Cap::Empty
    - EXPECT_FALSE
    - GetLatLngPoint
    - EXPECT_TRUE
    - EXPECT_NEAR
    - S2Point
    - S2Cap
    - S2LatLng
    - S1Angle::Degrees
    - S2Cap::Contains
    - S2Cap::FromCenterHeight
    - S2Cap::Complement
    - EXPECT_EQ
    - S2Cap::Intersects
    - S2Cap::Full
    - S2Cap::GetRadius
    - S2Cap::Union
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, Union)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2cap_test.cc:393,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:393,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cap_test.cc:394,1
    - Dst: S2Cap::Encode
      Src: /src/s2geometry/src/s2/s2cap_test.cc:395,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cap_test.cc:396,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cap_test.cc:396,1
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:397,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:398,1
    - Dst: S2Cap::Decode
      Src: /src/s2geometry/src/s2/s2cap_test.cc:398,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 400
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Decode
    - EXPECT_TRUE
    - S2Point
    - S2Cap::FromCenterHeight
    - Encoder::length
    - S2Cap::S2Cap
    - Encoder::base
    - EXPECT_EQ
    - S2Cap::Encode
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, EncodeDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2cap_test.cc:403,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:403,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2cap_test.cc:405,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2cap_test.cc:406,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cap_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cap_test.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::RoundTrip
    - S2Point
    - S2Cap::FromCenterHeight
    - s2coding::S2HintCoder::S2HintCoder
    - EXPECT_EQ
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cap_test.cc:411,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/s2geometry/src/s2/s2cap_test.cc:411,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:412,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:413,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:414,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:414,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2cap_test.cc:415,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:415,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:416,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:416,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:416,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cap_test.cc:417,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap_test.cc:417,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cap_test.cc:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - EXPECT_TRUE
    - S2Point
    - S2Cap
    - S2Cap::FromPoint
    - S1Angle::Degrees
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - S2Cap::Full
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cap, Hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2cap_test.cc:422,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap_test.cc:423,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cap_test.cc:425,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 427
    functionName: BM_MayIntersectWholeFaceEmptyCap
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - S2Cell::FromFace
    - S2Cap::MayIntersect
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_MayIntersectWholeFaceEmptyCap(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2cap_test.cc:431,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2cap_test.cc:432,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cap_test.cc:434,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: BM_MayIntersectWholeFaceFullCap
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::FromFace
    - S2Cap::Full
    - S2Cap::MayIntersect
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_MayIntersectWholeFaceFullCap(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2cap_test.cc:442,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2cap_test.cc:443,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap_test.cc:443,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cap_test.cc:445,1
    - Dst: S2Cap::MayIntersect
      Src: /src/s2geometry/src/s2/s2cap_test.cc:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: BM_MayIntersectBulging
    functionSourceFile: /src/s2geometry/src/s2/s2cap_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetCenter
    - S1Angle::Radians
    - S2Cap::MayIntersect
    - benchmark::DoNotOptimize
    - S2Cell::FromFace
    linkageType: ''
    returnType: void
    signature: void BM_MayIntersectBulging(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:71,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:71,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - token_a
    - token_b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: PairFromTokens
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromToken
    - std::make_pair
    linkageType: ''
    returnType: std::pair<S2CellId, S2CellId>
    signature: "std::pair<S2CellId, S2CellId> PairFromTokens(std::string token_a,\n
      \                                            std::string token_b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:78,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:79,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:79,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:80,1
    - Dst: Matrix3x3::FromCols
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat
    - lng
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: UpFrameAt
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2LatLng::FromDegrees
    - Matrix3x3::FromCols
    - S2Point
    linkageType: ''
    returnType: Matrix3x3_d
    signature: Matrix3x3_d UpFrameAt(double lat, double lng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_map::emplace
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:89,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - absl::Span<const string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: TokenMap
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromToken
    - absl::btree_map::emplace
    linkageType: ''
    returnType: absl::btree_map<S2CellId, int>
    signature: absl::btree_map<S2CellId, int> TokenMap(absl::Span<const string_view>
      tokens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:95,1
    - Dst: S2PointIndex::S2PointIndex
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:96,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2PointIndex::S2PointIndex
    - MakeS2CellIteratorJoin
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, HeterogeneousJoinCompiles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:103,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:103,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:104,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:104,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:107,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:107,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:108,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:111,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:111,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:112,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:112,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:112,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:112,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:119,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:120,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:121,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:122,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:123,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:124,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:126,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:126,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:126,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:126,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:127,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:128,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - Eq
    - MakeMockS2CellIterator
    - EXPECT_TRUE
    - PairFromTokens
    - id
    - EXPECT_THAT
    - min
    - vector::back
    - auto::size
    - TokenMap
    - vector::emplace_back
    - MakeS2CellIteratorJoin
    - vector::size
    - contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, ExactJoinWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:133,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:133,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:134,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:134,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:137,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:137,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:138,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:141,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:141,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:141,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:144,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:145,1
    - Dst: SizeIs
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - MakeMockS2CellIterator
    - SizeIs
    - id
    - EXPECT_THAT
    - TokenMap
    - IsFalse
    - vector::emplace_back
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, ExactFalseJoinReturnsImmediately)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:149,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:149,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:150,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:150,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:153,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:157,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:157,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:158,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:161,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:161,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:161,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:164,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:164,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:165,1
    - Dst: SizeIs
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - MakeMockS2CellIterator
    - SizeIs
    - id
    - EXPECT_THAT
    - S1ChordAngle::Degrees
    - TokenMap
    - IsFalse
    - vector::emplace_back
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, TolerantFalseJoinReturnsImmediately)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:173,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:174,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:177,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:178,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:179,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:180,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:184,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:184,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:185,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:188,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:188,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:188,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:192,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:192,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:192,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:192,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:193,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:194,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 196
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - MakeMockS2CellIterator
    - PairFromTokens
    - id
    - EXPECT_THAT
    - TokenMap
    - vector::emplace_back
    - MakeS2CellIteratorJoin
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, ExactJoinSeekingWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:199,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:199,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:200,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:200,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:202,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:205,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:205,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:206,1
    - Dst: absl::flat_hash_set::emplace
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:209,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:209,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:209,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:214,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:215,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:216,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:217,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:218,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:219,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:223,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:223,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:228,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:228,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:228,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:229,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:235,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:236,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:237,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:238,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:239,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:240,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:241,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:242,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:243,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:244,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:245,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:246,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:247,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:248,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:249,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:250,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:251,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:252,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:253,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:254,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:255,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:258,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 260
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - MakeMockS2CellIterator
    - Le
    - PairFromTokens
    - id
    - EXPECT_THAT
    - S1ChordAngle::Degrees
    - absl::flat_hash_set::emplace
    - TokenMap
    - S2Cell
    - Contains
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, NearJoinWorks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:266,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:268,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:269,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:271,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:273,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:273,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:274,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:275,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:278,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:281,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:281,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:283,1
    - Dst: absl::flat_hash_set::contains
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:284,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:284,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:285,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:285,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:286,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 292
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set::contains
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - absl::flat_hash_set::insert
    - id
    - EXPECT_THAT
    - IsTrue
    - S1Angle::Degrees
    - S1ChordAngle::Degrees
    - S2Polygon::index
    - S2CellId::Sentinel
    - absl::LogInfoStreamer
    - UpFrameAt
    - MakeS2CellIteratorJoin
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, TolerantJoinIsLeftDriven)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:299,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:301,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:302,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:304,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:306,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:306,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:307,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:308,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:313,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:314,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:314,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:315,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:319,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:323,1
    - Dst: absl::flat_hash_set::emplace
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:324,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:324,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:324,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:331,1
    - Dst: absl::flat_hash_set::emplace
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:333,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:333,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:333,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:337,1
    - Dst: UnorderedElementsAreArray
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 338
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - MakeS2CellIteratorJoin
    - id
    - S1ChordAngle::Degrees
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - UpFrameAt
    - S1Angle::Degrees
    - absl::flat_hash_set::emplace
    - S2Polygon::index
    - std::vector::emplace_back
    - GetDistance
    - MutableS2ShapeIndex::Iterator::id
    - S2Testing::MakeTaggedSeedSeq
    - ForceBuild
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, AllPairsSeen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndex::S2PointIndex
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:343,1
    - Dst: S2PointIndex::Add
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:351,1
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:354,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:356,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:357,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:359,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:361,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:361,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:362,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:363,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:366,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:366,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:374,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 375
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - S2PointIndex::Add
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - EXPECT_THAT
    - S1Angle::Degrees
    - S2PointIndex::S2PointIndex
    - S2Polygon::index
    - S1ChordAngle::Degrees
    - absl::LogInfoStreamer
    - UpFrameAt
    - MakeS2CellIteratorJoin
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, b299938257Regression)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:378,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:389,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:391,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:391,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:392,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:393,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:395,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:395,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:396,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:397,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 406
    functionName: BM_IterateOverlappingFractal
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - range
    - S1Angle::Degrees
    - S2Polygon::index
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void BM_IterateOverlappingFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:410,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:428,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:430,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:430,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:431,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:432,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:434,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:434,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:435,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:436,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 445
    functionName: BM_IterateDisjointFractal
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - range
    - S1Angle::Degrees
    - S2Polygon::index
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void BM_IterateDisjointFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:456,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:460,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:460,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:462,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:462,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:463,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:464,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:468,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 476
    functionName: BM_IterateFractalTolerant
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - range
    - S1Angle::Degrees
    - SetItemsProcessed
    - S1ChordAngle::Degrees
    - S2Polygon::index
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void BM_IterateFractalTolerant(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:480,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:484,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:486,1
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:486,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:486,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:487,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:488,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:490,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:492,1
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:492,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:492,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:493,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:494,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 501
    functionName: BM_IterateFractalTolerantDisjoint
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - range
    - S1Angle::Degrees
    - S1ChordAngle::Degrees
    - S2Polygon::index
    - UpFrameAt
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void BM_IterateFractalTolerantDisjoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:71,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:71,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - token_a
    - token_b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: PairFromTokens
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 3
    functionsReached:
    - S2CellId::FromToken
    - std::make_pair
    linkageType: ''
    returnType: std::pair<S2CellId, S2CellId>
    signature: "std::pair<S2CellId, S2CellId> PairFromTokens(std::string token_a,\n
      \                                            std::string token_b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:78,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:79,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:79,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:80,1
    - Dst: Matrix3x3::FromCols
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat
    - lng
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: UpFrameAt
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 4
    functionsReached:
    - S2::RobustCrossProd
    - S2LatLng::FromDegrees
    - Matrix3x3::FromCols
    - S2Point
    linkageType: ''
    returnType: Matrix3x3_d
    signature: Matrix3x3_d UpFrameAt(double lat, double lng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_map::emplace
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:89,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - absl::Span<const string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: TokenMap
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 5
    functionsReached:
    - S2CellId::FromToken
    - absl::btree_map::emplace
    linkageType: ''
    returnType: absl::btree_map<S2CellId, int>
    signature: absl::btree_map<S2CellId, int> TokenMap(absl::Span<const string_view>
      tokens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:95,1
    - Dst: S2PointIndex::S2PointIndex
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:96,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2PointIndex::S2PointIndex
    - MakeS2CellIteratorJoin
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, HeterogeneousJoinCompiles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:103,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:103,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:104,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:104,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:107,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:107,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:108,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:111,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:111,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:112,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:112,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:112,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:112,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:116,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:119,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:120,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:121,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:122,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:123,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:124,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:126,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:126,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:126,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:126,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:127,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:128,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - Eq
    - MakeMockS2CellIterator
    - EXPECT_TRUE
    - PairFromTokens
    - id
    - EXPECT_THAT
    - min
    - vector::back
    - auto::size
    - TokenMap
    - vector::emplace_back
    - MakeS2CellIteratorJoin
    - vector::size
    - contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, ExactJoinWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:133,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:133,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:134,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:134,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:137,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:137,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:138,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:141,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:141,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:141,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:144,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:145,1
    - Dst: SizeIs
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - MakeMockS2CellIterator
    - SizeIs
    - id
    - EXPECT_THAT
    - TokenMap
    - IsFalse
    - vector::emplace_back
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, ExactFalseJoinReturnsImmediately)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:149,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:149,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:150,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:150,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:153,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:157,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:157,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:158,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:161,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:161,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:161,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:164,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:164,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:165,1
    - Dst: SizeIs
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - MakeMockS2CellIterator
    - SizeIs
    - id
    - EXPECT_THAT
    - S1ChordAngle::Degrees
    - TokenMap
    - IsFalse
    - vector::emplace_back
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, TolerantFalseJoinReturnsImmediately)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:173,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:174,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:177,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:178,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:179,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:180,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:184,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:184,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:185,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:188,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:188,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:188,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:192,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:192,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:192,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:192,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:193,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:194,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 196
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - MakeMockS2CellIterator
    - PairFromTokens
    - id
    - EXPECT_THAT
    - TokenMap
    - vector::emplace_back
    - MakeS2CellIteratorJoin
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, ExactJoinSeekingWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:199,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:199,1
    - Dst: TokenMap
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:200,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:200,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:202,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:205,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:205,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:206,1
    - Dst: absl::flat_hash_set::emplace
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:209,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:209,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:209,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:214,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:215,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:216,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:217,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:218,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:219,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:223,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:223,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:228,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:228,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:228,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:229,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:235,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:236,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:237,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:238,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:239,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:240,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:241,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:242,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:243,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:244,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:245,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:246,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:247,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:248,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:249,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:250,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:251,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:252,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:253,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:254,1
    - Dst: PairFromTokens
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:255,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:258,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 260
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - MakeMockS2CellIterator
    - Le
    - PairFromTokens
    - id
    - EXPECT_THAT
    - S1ChordAngle::Degrees
    - absl::flat_hash_set::emplace
    - TokenMap
    - S2Cell
    - Contains
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, NearJoinWorks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:266,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:268,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:269,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:271,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:273,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:273,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:274,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:275,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:278,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:281,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:281,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:283,1
    - Dst: absl::flat_hash_set::contains
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:284,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:284,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:285,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:285,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:286,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 292
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set::contains
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - absl::flat_hash_set::insert
    - id
    - EXPECT_THAT
    - IsTrue
    - S1Angle::Degrees
    - S1ChordAngle::Degrees
    - S2Polygon::index
    - S2CellId::Sentinel
    - absl::LogInfoStreamer
    - UpFrameAt
    - MakeS2CellIteratorJoin
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, TolerantJoinIsLeftDriven)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:299,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:301,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:302,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:304,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:306,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:306,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:307,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:308,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:313,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:314,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:314,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:315,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:319,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:323,1
    - Dst: absl::flat_hash_set::emplace
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:324,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:324,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:324,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:331,1
    - Dst: absl::flat_hash_set::emplace
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:333,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:333,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:333,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:337,1
    - Dst: UnorderedElementsAreArray
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 338
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - MakeS2CellIteratorJoin
    - id
    - S1ChordAngle::Degrees
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - UpFrameAt
    - S1Angle::Degrees
    - absl::flat_hash_set::emplace
    - S2Polygon::index
    - std::vector::emplace_back
    - GetDistance
    - MutableS2ShapeIndex::Iterator::id
    - S2Testing::MakeTaggedSeedSeq
    - ForceBuild
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, AllPairsSeen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndex::S2PointIndex
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:343,1
    - Dst: S2PointIndex::Add
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:351,1
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:354,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:356,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:357,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:359,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:361,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:361,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:362,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:363,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:366,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:366,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:374,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 375
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - S2PointIndex::Add
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - EXPECT_THAT
    - S1Angle::Degrees
    - S2PointIndex::S2PointIndex
    - S2Polygon::index
    - S1ChordAngle::Degrees
    - absl::LogInfoStreamer
    - UpFrameAt
    - MakeS2CellIteratorJoin
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIteratorJoin, b299938257Regression)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:378,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:389,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:391,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:391,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:392,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:393,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:395,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:395,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:396,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:397,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 406
    functionName: BM_IterateOverlappingFractal
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - range
    - S1Angle::Degrees
    - S2Polygon::index
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void BM_IterateOverlappingFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:410,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:428,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:430,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:430,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:431,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:432,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:434,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:434,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:435,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:436,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 445
    functionName: BM_IterateDisjointFractal
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - range
    - S1Angle::Degrees
    - S2Polygon::index
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void BM_IterateDisjointFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:456,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:460,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:460,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:462,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:462,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:463,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:464,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:468,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 476
    functionName: BM_IterateFractalTolerant
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - range
    - S1Angle::Degrees
    - SetItemsProcessed
    - S1ChordAngle::Degrees
    - S2Polygon::index
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void BM_IterateFractalTolerant(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:480,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:484,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:486,1
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:486,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:486,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:487,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:488,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:490,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:492,1
    - Dst: UpFrameAt
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:492,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:492,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:493,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:494,1
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 501
    functionName: BM_IterateFractalTolerantDisjoint
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - range
    - S1Angle::Degrees
    - S1ChordAngle::Degrees
    - S2Polygon::index
    - UpFrameAt
    - MakeS2CellIteratorJoin
    linkageType: ''
    returnType: void
    signature: void BM_IterateFractalTolerantDisjoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:53,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:53,1
    - Dst: S2::PointEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:53,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:56,1
    - Dst: S2::PointEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:56,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:59,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:59,1
    - Dst: S2::PointEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:59,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:63,1
    - Dst: S2PointMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:65,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - s2textformat::MakePointOrDie
    - MakePointOrDie
    - S2::PointEquals
    - EXPECT_EQ
    - S1Angle::Zero
    - S2PointMatcher::MatchAndExplain
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PointEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:69,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:72,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:72,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:73,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:76,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:76,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:76,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:79,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:80,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:80,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:80,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:85,1
    - Dst: S2PointMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:87,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:87,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:91,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:92,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:93,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:93,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:93,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:96,1
    - Dst: S2PointMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:98,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:106,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:107,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:107,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 108
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - S1Angle::Radians
    - EXPECT_THAT
    - S2Point::S2Point
    - MakePointOrDie
    - EXPECT_EQ
    - S2PointMatcher::MatchAndExplain
    - S2::PointApproxEquals
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PointApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:111,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:112,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:115,1
    - Dst: S2::PolylineEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:115,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:118,1
    - Dst: S2::PolylineEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:118,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:121,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:121,1
    - Dst: S2::PolylineEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:121,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:126,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:127,1
    - Dst: S2PolylineMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:129,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 130
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - MakePolylineOrDie
    - S2::PolylineEquals
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher::MatchAndExplain
    - EXPECT_EQ
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolylineEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:133,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:137,1
    - Dst: S2::PolylineApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:137,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:137,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:139,1
    - Dst: S2::PolylineApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:140,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:140,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:143,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:143,1
    - Dst: S2::PolylineApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:143,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:144,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:150,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:151,1
    - Dst: S2PolylineMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:153,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 155
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - S1Angle::Radians
    - EXPECT_THAT
    - MakePolylineOrDie
    - S1Angle::Degrees
    - S2::PolylineApproxEquals
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher::MatchAndExplain
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolylineApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:158,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:162,1
    - Dst: S2::PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:162,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:165,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:165,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:166,1
    - Dst: S2::PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:166,1
    - Dst: S2PolylineIdenticalToMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:171,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:172,1
    - Dst: ::testing::StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:172,1
    - Dst: MatchesRegex
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 174
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineIdenticalToMatcher::MatchAndExplain
    - Not
    - EXPECT_THAT
    - MakePolylineOrDie
    - S2::PolylineIdenticalTo
    - MatchesRegex
    - ::testing::StringMatchResultListener::str
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolylineIdenticalTo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:177,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:178,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:181,1
    - Dst: S2::PolygonEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:181,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:183,1
    - Dst: S2::PolygonEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:183,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:186,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:186,1
    - Dst: S2::PolygonEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:186,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:191,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:192,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:193,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:194,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - EXPECT_THAT
    - S2::PolygonEquals
    - MakePolygonOrDie
    - EXPECT_EQ
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:198,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:199,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:202,1
    - Dst: S2::PolygonApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:202,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:202,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:204,1
    - Dst: S2::PolygonApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:205,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:205,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:208,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:208,1
    - Dst: S2::PolygonApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:208,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:209,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:215,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:216,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:218,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - S1Angle::Radians
    - EXPECT_THAT
    - S1Angle::Degrees
    - MakePolygonOrDie
    - EXPECT_EQ
    - S2::PolygonApproxEquals
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:223,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:224,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:227,1
    - Dst: S2::PolygonBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:227,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:229,1
    - Dst: S2::PolygonBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:229,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:232,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:232,1
    - Dst: S2::PolygonBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:232,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:238,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:239,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:241,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 242
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - EXPECT_THAT
    - MakePolygonOrDie
    - S2::PolygonBoundaryEquals
    - EXPECT_EQ
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonBoundaryEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:245,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:246,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:249,1
    - Dst: S2::PolygonBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:250,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:250,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:252,1
    - Dst: S2::PolygonBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:252,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:253,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:256,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:256,1
    - Dst: S2::PolygonBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:256,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:257,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:262,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:264,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:266,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 268
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - S1Angle::Radians
    - EXPECT_THAT
    - S2::PolygonBoundaryApproxEquals
    - MakePolygonOrDie
    - S1Angle::Degrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonBoundaryApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:271,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:272,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:275,1
    - Dst: S2::PolygonBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:275,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:275,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:277,1
    - Dst: S2::PolygonBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:278,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:278,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:281,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:281,1
    - Dst: S2::PolygonBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:281,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:282,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:288,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:289,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:291,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 293
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - S1Angle::Radians
    - EXPECT_THAT
    - MakePolygonOrDie
    - S2::PolygonBoundaryNear
    - S1Angle::Degrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonBoundaryNear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:296,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:297,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:300,1
    - Dst: S2::LoopEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:300,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:302,1
    - Dst: S2::LoopEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:302,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:305,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:305,1
    - Dst: S2::LoopEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:305,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:311,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:311,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:313,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 314
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::LoopEquals
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:317,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:318,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:321,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:321,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:323,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:323,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:326,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:326,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:326,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:330,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:332,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:333,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:334,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 335
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - S2::LoopBoundaryEquals
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopBoundaryEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:339,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:340,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:343,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:343,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:345,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:345,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:348,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:348,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:348,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:352,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:354,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:356,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 357
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - S2::LoopBoundaryEquals
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopBoundaryEqualsRotatedVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:360,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:361,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:364,1
    - Dst: S2::LoopBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:365,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:365,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:367,1
    - Dst: S2::LoopBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:367,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:368,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:371,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:371,1
    - Dst: S2::LoopBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:371,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:372,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:378,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:379,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:381,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 383
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - S2::LoopBoundaryApproxEquals
    - StringMatchResultListener::str
    - S1Angle::Radians
    - EXPECT_THAT
    - S1Angle::Degrees
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::S2LoopMatcher::Options
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopBoundaryApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:386,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:387,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:390,1
    - Dst: S2::LoopBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:390,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:390,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:392,1
    - Dst: S2::LoopBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:393,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:393,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:396,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:397,1
    - Dst: S2::LoopBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:397,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:397,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:402,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:403,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:405,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 407
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - StringMatchResultListener::str
    - S2::LoopBoundaryNear
    - S1Angle::Radians
    - EXPECT_THAT
    - S1Angle::Degrees
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::S2LoopMatcher::Options
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopBoundaryNear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:410,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:411,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:414,1
    - Dst: S2::LoopIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:414,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:417,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:417,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:418,1
    - Dst: S2::LoopIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:418,1
    - Dst: S2LoopIdenticalToMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:423,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:423,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:424,1
    - Dst: ::testing::StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:424,1
    - Dst: MatchesRegex
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - EXPECT_THAT
    - S2LoopIdenticalToMatcher::MatchAndExplain
    - MatchesRegex
    - ::testing::StringMatchResultListener::str
    - S2::LoopIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopIdenticalTo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:429,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:430,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:433,1
    - Dst: S2::PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:433,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:436,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:436,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:437,1
    - Dst: S2::PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:437,1
    - Dst: S2PolygonIdenticalToMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:442,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:442,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:443,1
    - Dst: ::testing::StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:444,1
    - Dst: MatchesRegex
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 446
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - EXPECT_THAT
    - MakePolygonOrDie
    - S2::PolygonIdenticalTo
    - MatchesRegex
    - ::testing::StringMatchResultListener::str
    - S2PolygonIdenticalToMatcher::MatchAndExplain
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonIdenticalTo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:449,1
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:450,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:453,1
    - Dst: S2::LatLngRectEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:453,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:456,1
    - Dst: S2::LatLngRectEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:456,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:459,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:459,1
    - Dst: S2::LatLngRectEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:459,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:464,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:465,1
    - Dst: S2LatLngRectMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:466,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:467,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 468
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2LatLngRectMatcher::MatchAndExplain
    - MakeLatLngRectOrDie
    - S2::S2LatLngRectMatcher::Options
    - EXPECT_EQ
    - S2::LatLngRectEquals
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngRectEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:471,1
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:472,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:475,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:475,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:475,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:478,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:479,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:479,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:482,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:483,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:483,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:483,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:489,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:490,1
    - Dst: S2LatLngRectMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:492,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 494
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S1Angle::Degrees
    - S2::LatLngRectApproxEquals
    - S2LatLngRectMatcher::MatchAndExplain
    - MakeLatLngRectOrDie
    - S2::S2LatLngRectMatcher::Options
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngRectApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:497,1
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:498,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:500,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:503,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:503,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:506,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:506,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:509,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:509,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:509,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:515,1
    - Dst: S2LatLngRectMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:517,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:518,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 522
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2::LatLngRectApproxEquals
    - S2LatLngRectMatcher::MatchAndExplain
    - MakeLatLngRectOrDie
    - S2LatLng::FromDegrees
    - S2::S2LatLngRectMatcher::Options
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngRectApproxEquals2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:525,1
    - Dst: MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:526,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:529,1
    - Dst: S2::LatLngEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:529,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:532,1
    - Dst: S2::LatLngEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:532,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:535,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:535,1
    - Dst: S2::LatLngEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:535,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:540,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:541,1
    - Dst: S2LatLngMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:543,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 544
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2::S2LatLngMatcher::Options
    - S2::LatLngEquals
    - EXPECT_THAT
    - S2LatLngMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - EXPECT_EQ
    - MakeLatLngOrDie
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:547,1
    - Dst: MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:548,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:551,1
    - Dst: S2::LatLngApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:551,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:551,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:554,1
    - Dst: S2::LatLngApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:555,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:555,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:556,1
    - Dst: S2::LatLngApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:557,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:557,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:560,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:560,1
    - Dst: S2::LatLngApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:560,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:560,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:565,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:566,1
    - Dst: S2LatLngMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:567,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:568,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 570
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2::LatLngApproxEquals
    - S2::S2LatLngMatcher::Options
    - EXPECT_THAT
    - S2LatLngMatcher::MatchAndExplain
    - S1Angle::Degrees
    - StringMatchResultListener::str
    - EXPECT_EQ
    - MakeLatLngOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:53,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:53,1
    - Dst: S2::PointEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:53,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:56,1
    - Dst: S2::PointEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:56,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:59,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:59,1
    - Dst: S2::PointEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:59,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:63,1
    - Dst: S2PointMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:65,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - s2textformat::MakePointOrDie
    - MakePointOrDie
    - S2::PointEquals
    - EXPECT_EQ
    - S1Angle::Zero
    - S2PointMatcher::MatchAndExplain
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PointEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:69,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:72,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:72,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:73,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:76,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:76,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:76,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:79,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:80,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:80,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:80,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:85,1
    - Dst: S2PointMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:87,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:87,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:91,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:92,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:93,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:93,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:93,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:96,1
    - Dst: S2PointMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:98,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:106,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:107,1
    - Dst: S2::PointApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:107,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 108
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - S1Angle::Radians
    - EXPECT_THAT
    - S2Point::S2Point
    - MakePointOrDie
    - EXPECT_EQ
    - S2PointMatcher::MatchAndExplain
    - S2::PointApproxEquals
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PointApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:111,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:112,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:115,1
    - Dst: S2::PolylineEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:115,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:118,1
    - Dst: S2::PolylineEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:118,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:121,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:121,1
    - Dst: S2::PolylineEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:121,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:126,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:127,1
    - Dst: S2PolylineMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:129,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 130
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - MakePolylineOrDie
    - S2::PolylineEquals
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher::MatchAndExplain
    - EXPECT_EQ
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolylineEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:133,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:137,1
    - Dst: S2::PolylineApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:137,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:137,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:139,1
    - Dst: S2::PolylineApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:140,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:140,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:143,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:143,1
    - Dst: S2::PolylineApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:143,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:144,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:150,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:151,1
    - Dst: S2PolylineMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:153,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 155
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - S1Angle::Radians
    - EXPECT_THAT
    - MakePolylineOrDie
    - S1Angle::Degrees
    - S2::PolylineApproxEquals
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher::MatchAndExplain
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolylineApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:158,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:162,1
    - Dst: S2::PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:162,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:165,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:165,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:166,1
    - Dst: S2::PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:166,1
    - Dst: S2PolylineIdenticalToMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:171,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:172,1
    - Dst: ::testing::StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:172,1
    - Dst: MatchesRegex
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 174
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineIdenticalToMatcher::MatchAndExplain
    - Not
    - EXPECT_THAT
    - MakePolylineOrDie
    - S2::PolylineIdenticalTo
    - MatchesRegex
    - ::testing::StringMatchResultListener::str
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolylineIdenticalTo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:177,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:178,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:181,1
    - Dst: S2::PolygonEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:181,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:183,1
    - Dst: S2::PolygonEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:183,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:186,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:186,1
    - Dst: S2::PolygonEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:186,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:191,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:192,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:193,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:194,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - EXPECT_THAT
    - S2::PolygonEquals
    - MakePolygonOrDie
    - EXPECT_EQ
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:198,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:199,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:202,1
    - Dst: S2::PolygonApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:202,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:202,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:204,1
    - Dst: S2::PolygonApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:205,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:205,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:208,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:208,1
    - Dst: S2::PolygonApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:208,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:209,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:215,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:216,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:218,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - S1Angle::Radians
    - EXPECT_THAT
    - S1Angle::Degrees
    - MakePolygonOrDie
    - EXPECT_EQ
    - S2::PolygonApproxEquals
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:223,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:224,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:227,1
    - Dst: S2::PolygonBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:227,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:229,1
    - Dst: S2::PolygonBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:229,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:232,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:232,1
    - Dst: S2::PolygonBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:232,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:238,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:239,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:241,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 242
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - EXPECT_THAT
    - MakePolygonOrDie
    - S2::PolygonBoundaryEquals
    - EXPECT_EQ
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonBoundaryEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:245,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:246,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:249,1
    - Dst: S2::PolygonBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:250,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:250,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:252,1
    - Dst: S2::PolygonBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:252,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:253,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:256,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:256,1
    - Dst: S2::PolygonBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:256,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:257,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:262,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:264,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:266,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 268
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - S1Angle::Radians
    - EXPECT_THAT
    - S2::PolygonBoundaryApproxEquals
    - MakePolygonOrDie
    - S1Angle::Degrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonBoundaryApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:271,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:272,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:275,1
    - Dst: S2::PolygonBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:275,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:275,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:277,1
    - Dst: S2::PolygonBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:278,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:278,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:281,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:281,1
    - Dst: S2::PolygonBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:281,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:282,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:288,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:289,1
    - Dst: S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:291,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 293
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2PolygonMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - S2::S2PolygonMatcher::Options
    - S1Angle::Radians
    - EXPECT_THAT
    - MakePolygonOrDie
    - S2::PolygonBoundaryNear
    - S1Angle::Degrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonBoundaryNear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:296,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:297,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:300,1
    - Dst: S2::LoopEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:300,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:302,1
    - Dst: S2::LoopEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:302,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:305,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:305,1
    - Dst: S2::LoopEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:305,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:311,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:311,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:313,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 314
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::LoopEquals
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:317,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:318,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:321,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:321,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:323,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:323,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:326,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:326,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:326,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:330,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:332,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:333,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:334,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 335
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - S2::LoopBoundaryEquals
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopBoundaryEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:339,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:340,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:343,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:343,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:345,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:345,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:348,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:348,1
    - Dst: S2::LoopBoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:348,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:352,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:354,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:356,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 357
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - S2::LoopBoundaryEquals
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopBoundaryEqualsRotatedVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:360,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:361,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:364,1
    - Dst: S2::LoopBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:365,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:365,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:367,1
    - Dst: S2::LoopBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:367,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:368,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:371,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:371,1
    - Dst: S2::LoopBoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:371,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:372,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:378,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:379,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:381,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 383
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - S2::LoopBoundaryApproxEquals
    - StringMatchResultListener::str
    - S1Angle::Radians
    - EXPECT_THAT
    - S1Angle::Degrees
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::S2LoopMatcher::Options
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopBoundaryApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:386,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:387,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:390,1
    - Dst: S2::LoopBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:390,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:390,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:392,1
    - Dst: S2::LoopBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:393,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:393,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:396,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:397,1
    - Dst: S2::LoopBoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:397,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:397,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:402,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:403,1
    - Dst: S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:405,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 407
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - StringMatchResultListener::str
    - S2::LoopBoundaryNear
    - S1Angle::Radians
    - EXPECT_THAT
    - S1Angle::Degrees
    - S2LoopMatcher::MatchAndExplain
    - EXPECT_EQ
    - S2::S2LoopMatcher::Options
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopBoundaryNear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:410,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:411,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:414,1
    - Dst: S2::LoopIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:414,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:417,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:417,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:418,1
    - Dst: S2::LoopIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:418,1
    - Dst: S2LoopIdenticalToMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:423,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:423,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:424,1
    - Dst: ::testing::StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:424,1
    - Dst: MatchesRegex
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - MakeLoopOrDie
    - EXPECT_THAT
    - S2LoopIdenticalToMatcher::MatchAndExplain
    - MatchesRegex
    - ::testing::StringMatchResultListener::str
    - S2::LoopIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LoopIdenticalTo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:429,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:430,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:433,1
    - Dst: S2::PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:433,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:436,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:436,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:437,1
    - Dst: S2::PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:437,1
    - Dst: S2PolygonIdenticalToMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:442,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:442,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:443,1
    - Dst: ::testing::StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:444,1
    - Dst: MatchesRegex
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 446
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - EXPECT_THAT
    - MakePolygonOrDie
    - S2::PolygonIdenticalTo
    - MatchesRegex
    - ::testing::StringMatchResultListener::str
    - S2PolygonIdenticalToMatcher::MatchAndExplain
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, PolygonIdenticalTo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:449,1
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:450,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:453,1
    - Dst: S2::LatLngRectEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:453,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:456,1
    - Dst: S2::LatLngRectEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:456,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:459,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:459,1
    - Dst: S2::LatLngRectEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:459,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:464,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:465,1
    - Dst: S2LatLngRectMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:466,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:467,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 468
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2LatLngRectMatcher::MatchAndExplain
    - MakeLatLngRectOrDie
    - S2::S2LatLngRectMatcher::Options
    - EXPECT_EQ
    - S2::LatLngRectEquals
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngRectEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:471,1
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:472,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:475,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:475,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:475,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:478,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:479,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:479,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:482,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:483,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:483,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:483,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:489,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:490,1
    - Dst: S2LatLngRectMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:492,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 494
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S1Angle::Degrees
    - S2::LatLngRectApproxEquals
    - S2LatLngRectMatcher::MatchAndExplain
    - MakeLatLngRectOrDie
    - S2::S2LatLngRectMatcher::Options
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngRectApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:497,1
    - Dst: MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:498,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:500,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:503,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:503,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:506,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:506,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:509,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:509,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:509,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:515,1
    - Dst: S2LatLngRectMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:517,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:518,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 522
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - StringMatchResultListener::str
    - EXPECT_THAT
    - S2::LatLngRectApproxEquals
    - S2LatLngRectMatcher::MatchAndExplain
    - MakeLatLngRectOrDie
    - S2LatLng::FromDegrees
    - S2::S2LatLngRectMatcher::Options
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngRectApproxEquals2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:525,1
    - Dst: MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:526,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:529,1
    - Dst: S2::LatLngEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:529,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:532,1
    - Dst: S2::LatLngEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:532,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:535,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:535,1
    - Dst: S2::LatLngEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:535,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:540,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:541,1
    - Dst: S2LatLngMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:543,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 544
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2::S2LatLngMatcher::Options
    - S2::LatLngEquals
    - EXPECT_THAT
    - S2LatLngMatcher::MatchAndExplain
    - StringMatchResultListener::str
    - EXPECT_EQ
    - MakeLatLngOrDie
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:547,1
    - Dst: MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:548,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:551,1
    - Dst: S2::LatLngApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:551,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:551,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:554,1
    - Dst: S2::LatLngApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:555,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:555,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:556,1
    - Dst: S2::LatLngApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:557,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:557,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:560,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:560,1
    - Dst: S2::LatLngApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:560,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:560,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:565,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:566,1
    - Dst: S2LatLngMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:567,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:568,1
    - Dst: StringMatchResultListener::str
      Src: /src/s2geometry/src/s2/gmock_matchers_test.cc:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 570
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - S2::LatLngApproxEquals
    - S2::S2LatLngMatcher::Options
    - EXPECT_THAT
    - S2LatLngMatcher::MatchAndExplain
    - S1Angle::Degrees
    - StringMatchResultListener::str
    - EXPECT_EQ
    - MakeLatLngOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2testmatchersTest, LatLngApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2polygon.cc:117,1
    - Dst: absl::Span<const std::unique_ptr<S2Loop>>::size
      Src: /src/s2geometry/src/s2/s2polygon.cc:117,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:119,1
    - Dst: std::make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon.cc:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - loops
    argTypes:
    - absl::Span<const std::unique_ptr<S2Loop>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: CopyLoops
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const std::unique_ptr<S2Loop>>::size
    - std::vector::reserve
    - std::vector::push_back
    - std::make_unique<S2Loop>
    linkageType: ''
    returnType: std::vector<std::unique_ptr<S2Loop>>
    signature: "std::vector<std::unique_ptr<S2Loop>> CopyLoops(\n    absl::Span<const
      std::unique_ptr<S2Loop>> loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2polygon.cc:117,1
    - Dst: absl::Span<const std::unique_ptr<S2Loop>>::size
      Src: /src/s2geometry/src/s2/s2polygon.cc:117,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:119,1
    - Dst: std::make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon.cc:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - loops
    argTypes:
    - absl::Span<const std::unique_ptr<S2Loop>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: CopyLoops
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const std::unique_ptr<S2Loop>>::size
    - std::vector::reserve
    - std::vector::push_back
    - std::make_unique<S2Loop>
    linkageType: ''
    returnType: std::vector<std::unique_ptr<S2Loop>>
    signature: "std::vector<std::unique_ptr<S2Loop>> CopyLoops(\n    absl::Span<const
      std::unique_ptr<S2Loop>> loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: S2Polygon::S2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Polygon::S2Polygon()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitNested
      Src: /src/s2geometry/src/s2/s2polygon.cc:129,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - loops
    - override
    argTypes:
    - vector<unique_ptr<S2Loop>>
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: S2Polygon::S2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S2Polygon::InitNested
    linkageType: ''
    returnType: void
    signature: void S2Polygon::S2Polygon(vector<unique_ptr<S2Loop>> loops, S2Debug
      override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Init
      Src: /src/s2geometry/src/s2/s2polygon.cc:134,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - loop
    - override
    argTypes:
    - unique_ptr<S2Loop>
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: S2Polygon::S2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S2Polygon::Init
    linkageType: ''
    returnType: void
    signature: void S2Polygon::S2Polygon(unique_ptr<S2Loop> loop, S2Debug override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Init
      Src: /src/s2geometry/src/s2/s2polygon.cc:138,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: S2Polygon::S2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::Init
    - make_unique<S2Loop>
    linkageType: ''
    returnType: void
    signature: void S2Polygon::S2Polygon(const S2Cell& cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CopyLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:142,1
    - Dst: S2Polygon::InitIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: S2Polygon::S2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitIndex
    - CopyLoops
    linkageType: ''
    returnType: void
    signature: void S2Polygon::S2Polygon(const S2Polygon& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClearLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:156,1
    - Dst: CopyLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:157,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:161,1
    - Dst: store
      Src: /src/s2geometry/src/s2/s2polygon.cc:162,1
    - Dst: InitIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: '& S2Polygon::operator=(const S2Polygon& src)'
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - InitIndex
    - num_vertices
    - CopyLoops
    - ClearLoops
    - store
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon & S2Polygon::operator=(const S2Polygon& src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:171,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:172,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2polygon.cc:174,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2polygon.cc:175,1
    - Dst: unindexed_contains_calls_::exchange
      Src: /src/s2geometry/src/s2/s2polygon.cc:177,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:178,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:179,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:180,1
    - Dst: const_cast<Shape*>
      Src: /src/s2geometry/src/s2/s2polygon.cc:185,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2polygon.cc:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: S2Polygon::S2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - const_cast<Shape*>
    - std::move
    - std::exchange
    - down_cast
    - unindexed_contains_calls_::exchange
    linkageType: ''
    returnType: void
    signature: void S2Polygon::S2Polygon(S2Polygon&& b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:191,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:192,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2polygon.cc:194,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2polygon.cc:195,1
    - Dst: store
      Src: /src/s2geometry/src/s2/s2polygon.cc:196,1
    - Dst: unindexed_contains_calls_::exchange
      Src: /src/s2geometry/src/s2/s2polygon.cc:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:199,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:200,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:201,1
    - Dst: const_cast<Shape*>
      Src: /src/s2geometry/src/s2/s2polygon.cc:207,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2polygon.cc:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 211
    functionName: '& S2Polygon::operator=(S2Polygon&& b) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - const_cast<Shape*>
    - std::move
    - std::exchange
    - down_cast
    - store
    - unindexed_contains_calls_::exchange
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon & S2Polygon::operator=(S2Polygon&& b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon.cc:214,1
    - Dst: S2Polygon::Init
      Src: /src/s2geometry/src/s2/s2polygon.cc:215,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon.cc:215,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2polygon.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: S2Polygon::MakeFull
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::Init
    - S2Loop::kFull
    - make_unique<S2Loop>
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon S2Polygon::MakeFull()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - override
    argTypes:
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: S2Polygon::set_s2debug_override
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Polygon::set_s2debug_override(S2Debug override)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: S2Polygon::s2debug_override
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Debug
    signature: S2Debug S2Polygon::s2debug_override() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: S2Polygon::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon * S2Polygon::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::swap
      Src: /src/s2geometry/src/s2/s2polygon.cc:230,1
    - Dst: S2Polygon::ClearLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:231,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:233,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: S2Polygon::Release
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::Empty
    - vector::swap
    - S2Polygon::ClearLoops
    linkageType: ''
    returnType: vector<unique_ptr<S2Loop>>
    signature: vector<unique_ptr<S2Loop>> S2Polygon::Release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::ClearIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:239,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2polygon.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: S2Polygon::ClearLoops
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::ClearIndex
    - clear
    linkageType: ''
    returnType: void
    signature: void S2Polygon::ClearLoops()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::ClearLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 244
    functionName: S2Polygon::~S2Polygon()
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::ClearLoops
    linkageType: ''
    returnType: void
    signature: void S2Polygon::~S2Polygon()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:247,1
    - Dst: FindValidationError
      Src: /src/s2geometry/src/s2/s2polygon.cc:248,1
    - Dst: ABSL_LOG_IF
      Src: /src/s2geometry/src/s2/s2polygon.cc:249,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon.cc:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: S2Polygon::IsValid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - FindValidationError
    - ABSL_LOG_IF
    - absl::GetFlag
    - S2Error::S2Error
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::IsValid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:260,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:261,1
    - Dst: S2Loop*::depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:262,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:264,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2polygon.cc:266,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:275,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2polygon.cc:276,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:276,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:277,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2polygon.cc:279,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:287,1
    - Dst: S2LegacyValidQuery::Validate
      Src: /src/s2geometry/src/s2/s2polygon.cc:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 295
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - num_loops
    - S2Error
    - S2Loop*::num_vertices
    - S2Loop*::depth
    - S2::IsUnitLength
    - S2Loop*::vertex
    - S2LegacyValidQuery::Validate
    - loop
    linkageType: ''
    returnType: bool
    signature: bool const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ContainsNested
      Src: /src/s2geometry/src/s2/s2polygon.cc:311,1
    - Dst: vector*::size
      Src: /src/s2geometry/src/s2/s2polygon.cc:321,1
    - Dst: S2Loop*::ContainsNested
      Src: /src/s2geometry/src/s2/s2polygon.cc:323,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:324,1
    - Dst: vector*::erase
      Src: /src/s2geometry/src/s2/s2polygon.cc:325,1
    - Dst: vector*::begin
      Src: /src/s2geometry/src/s2/s2polygon.cc:325,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - new_loop
    - parent
    - loop_map
    argTypes:
    - S2Loop*
    - S2Loop*
    - LoopMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 331
    functionName: S2Polygon::InsertLoop
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - ContainsNested
    - vector*::erase
    - S2Loop*::ContainsNested
    - vector*::size
    - vector*::begin
    - vector*::push_back
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InsertLoop(S2Loop* new_loop, S2Loop* parent,\n                           LoopMap*
      loop_map)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stack::empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:336,1
    - Dst: std::stack::top
      Src: /src/s2geometry/src/s2/s2polygon.cc:337,1
    - Dst: std::stack::pop
      Src: /src/s2geometry/src/s2/s2polygon.cc:338,1
    - Dst: S2Loop*::depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:340,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:341,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polygon.cc:344,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polygon.cc:346,1
    - Dst: S2Loop*::set_depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:347,1
    - Dst: std::stack::push
      Src: /src/s2geometry/src/s2/s2polygon.cc:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - loop_map
    argTypes:
    - LoopMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 351
    functionName: S2Polygon::InitLoops
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - emplace_back
    - size
    - S2Loop*::set_depth
    - S2Loop*::depth
    - std::stack::push
    - std::stack::top
    - std::stack::pop
    - std::stack::empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitLoops(LoopMap* loop_map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2polygon.cc:354,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2polygon.cc:354,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2polygon.cc:355,1
    - Dst: make_unique<Shape>
      Src: /src/s2geometry/src/s2/s2polygon.cc:355,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon.cc:356,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polygon.cc:358,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon.cc:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: S2Polygon::InitIndex
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - Add
    - ABSL_DCHECK_EQ
    - make_unique<Shape>
    - num_shape_ids
    - ABSL_CHECK
    - S2Polygon::IsValid
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/s2geometry/src/s2/s2polygon.cc:363,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2polygon.cc:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: S2Polygon::ClearIndex
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - store
    - Clear
    linkageType: ''
    returnType: void
    signature: void S2Polygon::ClearIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:368,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2polygon.cc:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: S2Polygon::ForceBuildIndex
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - ForceBuild
    - S2Polygon::ForceBuildIndex
    linkageType: ''
    returnType: void
    signature: void S2Polygon::ForceBuildIndex()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector<unique_ptr<S2Loop>>::size
      Src: /src/s2geometry/src/s2/s2polygon.cc:376,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:377,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:377,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2polygon.cc:378,1
    - Dst: vector<unique_ptr<S2Loop>>::back
      Src: /src/s2geometry/src/s2/s2polygon.cc:378,1
    - Dst: vector<unique_ptr<S2Loop>>::pop_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:379,1
    - Dst: S2Polygon::ClearLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:384,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2polygon.cc:385,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:387,1
    - Dst: S2Polygon::InitOneLoop
      Src: /src/s2geometry/src/s2/s2polygon.cc:388,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:392,1
    - Dst: S2Polygon::InsertLoop
      Src: /src/s2geometry/src/s2/s2polygon.cc:393,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:393,1
    - Dst: release
      Src: /src/s2geometry/src/s2/s2polygon.cc:398,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2polygon.cc:399,1
    - Dst: S2Polygon::InitLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:400,1
    - Dst: S2Polygon::InitLoopProperties
      Src: /src/s2geometry/src/s2/s2polygon.cc:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - loops
    argTypes:
    - vector<unique_ptr<S2Loop>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 404
    functionName: S2Polygon::InitNested
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::InitLoopProperties
    - S2Polygon::InitOneLoop
    - S2Polygon::num_vertices
    - vector<unique_ptr<S2Loop>>::back
    - S2Polygon::InitLoops
    - S2Polygon::num_loops
    - clear
    - vector<unique_ptr<S2Loop>>::pop_back
    - swap
    - S2Polygon::ClearLoops
    - release
    - S2Polygon::is_empty
    - S2Polygon::InsertLoop
    - vector<unique_ptr<S2Loop>>::size
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitNested(vector<unique_ptr<S2Loop>> loops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::ClearLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:407,1
    - Dst: unique_ptr<S2Loop>::is_empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:408,1
    - Dst: unique_ptr<S2Loop>::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:408,1
    - Dst: S2Polygon::InitLoopProperties
      Src: /src/s2geometry/src/s2/s2polygon.cc:409,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:411,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:411,1
    - Dst: S2Polygon::InitOneLoop
      Src: /src/s2geometry/src/s2/s2polygon.cc:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - loop
    argTypes:
    - unique_ptr<S2Loop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: S2Polygon::Init
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 3
    functionsReached:
    - S2Polygon::InitLoopProperties
    - S2Polygon::InitOneLoop
    - std::move
    - unique_ptr<S2Loop>::is_empty
    - push_back
    - unique_ptr<S2Loop>::num_vertices
    - S2Polygon::ClearLoops
    linkageType: ''
    returnType: void
    signature: void S2Polygon::Init(unique_ptr<S2Loop> loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2polygon.cc:419,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:419,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon.cc:420,1
    - Dst: S2Loop*::set_depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:421,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:423,1
    - Dst: S2Loop*::GetRectBound
      Src: /src/s2geometry/src/s2/s2polygon.cc:424,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2polygon.cc:425,1
    - Dst: S2Polygon::InitIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: S2Polygon::InitOneLoop
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 2
    functionsReached:
    - S2LatLngRectBounder::ExpandForSubregions
    - ABSL_DCHECK_EQ
    - get
    - S2Loop*::num_vertices
    - S2Loop*::set_depth
    - S2Polygon::num_loops
    - S2Polygon::InitIndex
    - S2Loop*::GetRectBound
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitOneLoop()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: vector<unique_ptr<S2Loop>>::size
      Src: /src/s2geometry/src/s2/s2polygon.cc:467,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:468,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:468,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2polygon.cc:469,1
    - Dst: vector<unique_ptr<S2Loop>>::back
      Src: /src/s2geometry/src/s2/s2polygon.cc:469,1
    - Dst: vector<unique_ptr<S2Loop>>::pop_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:470,1
    - Dst: vector<unique_ptr<S2Loop>>::size
      Src: /src/s2geometry/src/s2/s2polygon.cc:476,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon.cc:477,1
    - Dst: S2Loop*::contains_origin
      Src: /src/s2geometry/src/s2/s2polygon.cc:478,1
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2polygon.cc:479,1
    - Dst: S2Loop*::GetCurvature
      Src: /src/s2geometry/src/s2/s2polygon.cc:481,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2polygon.cc:482,1
    - Dst: S2Loop*::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2polygon.cc:482,1
    - Dst: S2Loop*::Invert
      Src: /src/s2geometry/src/s2/s2polygon.cc:484,1
    - Dst: S2Loop*::contains_origin
      Src: /src/s2geometry/src/s2/s2polygon.cc:487,1
    - Dst: S2Loop*::Invert
      Src: /src/s2geometry/src/s2/s2polygon.cc:487,1
    - Dst: S2Polygon::InitNested
      Src: /src/s2geometry/src/s2/s2polygon.cc:490,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:490,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:491,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:492,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:494,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:495,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:497,1
    - Dst: flat_hash_set::contains
      Src: /src/s2geometry/src/s2/s2polygon.cc:500,1
    - Dst: S2Polygon::Invert
      Src: /src/s2geometry/src/s2/s2polygon.cc:501,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polygon.cc:507,1
    - Dst: flat_hash_set::contains
      Src: /src/s2geometry/src/s2/s2polygon.cc:508,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:508,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:508,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:509,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon.cc:514,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polygon.cc:517,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon.cc:517,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - loops
    argTypes:
    - vector<unique_ptr<S2Loop>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 521
    functionName: S2Polygon::InitOriented
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - vector<unique_ptr<S2Loop>>::size
    - S2Polygon::loop
    - S2Loop*::Invert
    - S2Polygon::num_loops
    - ABSL_CHECK
    - flat_hash_set::insert
    - flat_hash_set::contains
    - S2Polygon::IsValid
    - S2Loop*::GetCurvatureMaxError
    - fabs
    - std::move
    - S2Polygon::Invert
    - S2Loop*::GetCurvature
    - S2Polygon::InitNested
    - get
    - S2Polygon::num_vertices
    - vector<unique_ptr<S2Loop>>::back
    - S2Loop*::contains_origin
    - size
    - vector<unique_ptr<S2Loop>>::pop_back
    - swap
    - S2Polygon::is_empty
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitOriented(vector<unique_ptr<S2Loop>> loops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:525,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:526,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:527,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2polygon.cc:528,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:528,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:530,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2polygon.cc:532,1
    - Dst: S2Polygon::InitIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 534
    functionName: S2Polygon::InitLoopProperties
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 2
    functionsReached:
    - S2LatLngRectBounder::ExpandForSubregions
    - S2Polygon::num_loops
    - S2LatLngRect::Empty
    - Union
    - S2Polygon::InitIndex
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitLoopProperties()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:537,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 541
    functionName: S2Polygon::GetParent
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::loop
    linkageType: ''
    returnType: int
    signature: int S2Polygon::GetParent(int k) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:544,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:545,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:546,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 548
    functionName: S2Polygon::GetLastDescendant
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::num_loops
    - S2Polygon::loop
    linkageType: ''
    returnType: int
    signature: int S2Polygon::GetLastDescendant(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:552,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:553,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 556
    functionName: S2Polygon::GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::num_loops
    - S2Polygon::loop
    linkageType: ''
    returnType: double
    signature: double S2Polygon::GetArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polygon.cc:559,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:560,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:561,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 564
    functionName: S2Polygon::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::loop
    - S2Polygon::num_loops
    - S2Point::S2Point
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Polygon::GetCentroid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:569,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/s2polygon.cc:572,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 584
    functionName: S2Polygon::GetSnapLevel
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2::XYZtoFaceSiTi
    - S2Polygon::num_vertices
    - vertex
    linkageType: ''
    returnType: int
    signature: int S2Polygon::GetSnapLevel() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Contains
      Src: /src/s2geometry/src/s2/s2polygon.cc:589,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2polygon.cc:589,1
    - Dst: S2Polygon::GetDistanceToBoundary
      Src: /src/s2geometry/src/s2/s2polygon.cc:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: S2Polygon::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Zero
    - S2Polygon::GetDistanceToBoundary
    - S2Polygon::Contains
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Polygon::GetDistance(const S2Point& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2polygon.cc:595,1
    - Dst: S2ClosestEdgeQuery
      Src: /src/s2geometry/src/s2/s2polygon.cc:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 598
    functionName: S2Polygon::GetDistanceToBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - S2ClosestEdgeQuery
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Polygon::GetDistanceToBoundary(const S2Point& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon.cc:602,1
    - Dst: S2Polygon::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon.cc:603,1
    - Dst: S2Polygon::GetArea
      Src: /src/s2geometry/src/s2/s2polygon.cc:604,1
    - Dst: S2Polygon::GetArea
      Src: /src/s2geometry/src/s2/s2polygon.cc:605,1
    - Dst: S2Polygon::GetArea
      Src: /src/s2geometry/src/s2/s2polygon.cc:606,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2polygon.cc:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 610
    functionName: S2Polygon::GetOverlapFractions
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::GetArea
    - S2Polygon::InitToIntersection
    - std::make_pair
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: pair<double, double>
    signature: "pair<double, double> S2Polygon::GetOverlapFractions(\n    const S2Polygon&
      a, const S2Polygon& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Contains
      Src: /src/s2geometry/src/s2/s2polygon.cc:613,1
    - Dst: S2Polygon::ProjectToBoundary
      Src: /src/s2geometry/src/s2/s2polygon.cc:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 615
    functionName: S2Polygon::Project
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::ProjectToBoundary
    - S2Polygon::Contains
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Polygon::Project(const S2Point& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2polygon.cc:619,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2polygon.cc:622,1
    - Dst: S2ClosestEdgeQuery::Project
      Src: /src/s2geometry/src/s2/s2polygon.cc:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 624
    functionName: S2Polygon::ProjectToBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQuery::FindClosestEdge
    - S2ClosestEdgeQuery::Project
    - S2ClosestEdgeQuery::Options::set_include_interiors
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Polygon::ProjectToBoundary(const S2Point& x) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Contains
      Src: /src/s2geometry/src/s2/s2polygon.cc:630,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:641,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2polygon.cc:641,1
    - Dst: bound_::lng
      Src: /src/s2geometry/src/s2/s2polygon.cc:641,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:649,1
    - Dst: S2Polygon::is_full
      Src: /src/s2geometry/src/s2/s2polygon.cc:649,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2polygon.cc:651,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 652
    functionName: S2Polygon::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 3
    functionsReached:
    - bound_::lng
    - S2BooleanOperation::Contains
    - S2Polygon::num_loops
    - S2Polygon::is_full
    - lng
    - S2Polygon::Contains
    - S2Polygon::is_empty
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::Contains(const S2Polygon& b) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Intersects
      Src: /src/s2geometry/src/s2/s2polygon.cc:656,1
    - Dst: S2Polygon::is_full
      Src: /src/s2geometry/src/s2/s2polygon.cc:661,1
    - Dst: S2Polygon::is_full
      Src: /src/s2geometry/src/s2/s2polygon.cc:661,1
    - Dst: S2BooleanOperation::Intersects
      Src: /src/s2geometry/src/s2/s2polygon.cc:663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 664
    functionName: S2Polygon::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::is_full
    - S2BooleanOperation::Intersects
    - S2Polygon::Intersects
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::Intersects(const S2Polygon& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::GetCapBound
      Src: /src/s2geometry/src/s2/s2polygon.cc:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 666
    functionName: S2Polygon::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::GetCapBound
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Polygon::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2polygon.cc:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 670
    functionName: S2Polygon::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2ShapeIndexRegion
    linkageType: ''
    returnType: void
    signature: void S2Polygon::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2polygon.cc:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 674
    functionName: S2Polygon::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 3
    functionsReached:
    - S2ShapeIndexRegion
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::Contains(const S2Cell& target) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon.cc:677,1
    - Dst: S2Polygon::InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon.cc:678,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:678,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' b'
    - tolerance
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 680
    functionName: S2Polygon::ApproxContains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::is_empty
    - S2Polygon::InitToDifference
    - IdentitySnapFunction
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::ApproxContains(const S2Polygon& b, S1Angle tolerance)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon.cc:683,1
    - Dst: S2Polygon::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon.cc:684,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:684,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' b'
    - tolerance
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: S2Polygon::ApproxDisjoint
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::is_empty
    - IdentitySnapFunction
    - S2Polygon::InitToIntersection
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::ApproxDisjoint(const S2Polygon& b, S1Angle tolerance)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon.cc:694,1
    - Dst: S2Polygon::InitToSymmetricDifference
      Src: /src/s2geometry/src/s2/s2polygon.cc:695,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:696,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' b'
    - tolerance
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 698
    functionName: S2Polygon::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSymmetricDifference
    - S2Polygon::is_empty
    - IdentitySnapFunction
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::ApproxEquals(const S2Polygon& b, S1Angle tolerance)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2polygon.cc:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    functionName: S2Polygon::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2ShapeIndexRegion
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::MayIntersect(const S2Cell& target) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polygon.cc:705,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2polygon.cc:705,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/s2polygon.cc:709,1
    - Dst: S2Polygon::Contains
      Src: /src/s2geometry/src/s2/s2polygon.cc:709,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:717,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/s2polygon.cc:718,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:721,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:723,1
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2polygon.cc:728,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 729
    functionName: S2Polygon::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 4
    functionsReached:
    - S2Polygon::loop
    - S2Polygon::num_vertices
    - is_fresh
    - S2Polygon::num_loops
    - S2::IsUnitLength
    - S2ContainsPointQuery
    - S2Polygon::Contains
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::Contains(const S2Point& p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polygon.cc:734,1
    - Dst: S2Polygon::EncodeCompressed
      Src: /src/s2geometry/src/s2/s2polygon.cc:739,1
    - Dst: absl::FixedArray::data
      Src: /src/s2geometry/src/s2/s2polygon.cc:744,1
    - Dst: GetXYZFaceSiTiVertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:746,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:747,1
    - Dst: std::array::fill
      Src: /src/s2geometry/src/s2/s2polygon.cc:755,1
    - Dst: std::max_element
      Src: /src/s2geometry/src/s2/s2polygon.cc:766,1
    - Dst: std::array::begin
      Src: /src/s2geometry/src/s2/s2polygon.cc:766,1
    - Dst: std::array::end
      Src: /src/s2geometry/src/s2/s2polygon.cc:766,1
    - Dst: std::array::begin
      Src: /src/s2geometry/src/s2/s2polygon.cc:768,1
    - Dst: S2Polygon::EncodeCompressed
      Src: /src/s2geometry/src/s2/s2polygon.cc:781,1
    - Dst: absl::FixedArray::data
      Src: /src/s2geometry/src/s2/s2polygon.cc:781,1
    - Dst: S2Polygon::EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polygon.cc:783,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - encoder
    - hint
    argTypes:
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 785
    functionName: S2Polygon::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::EncodeUncompressed
    - std::array::fill
    - std::array::end
    - S2Polygon::num_vertices
    - GetXYZFaceSiTiVertices
    - std::array::begin
    - absl::FixedArray::data
    - S2Polygon::EncodeCompressed
    - std::max_element
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::Encode(Encoder* const encoder,\n                       s2coding::CodingHint
      hint) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2polygon.cc:788,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2polygon.cc:789,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2polygon.cc:791,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:794,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:795,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2polygon.cc:797,1
    - Dst: Encoder*::put32
      Src: /src/s2geometry/src/s2/s2polygon.cc:798,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polygon.cc:798,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2polygon.cc:799,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2polygon.cc:799,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:801,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:802,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/s2polygon.cc:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 805
    functionName: S2Polygon::EncodeUncompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - Encoder*::put8
    - size
    - S2Polygon::num_loops
    - Encoder*::put32
    - S2Polygon::Encode
    - Encoder*::avail
    - Encoder*::Ensure
    - ABSL_DCHECK_GE
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: void S2Polygon::EncodeUncompressed(Encoder* const encoder) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2polygon.cc:808,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2polygon.cc:809,1
    - Dst: S2Polygon::DecodeUncompressed
      Src: /src/s2geometry/src/s2/s2polygon.cc:812,1
    - Dst: S2Polygon::DecodeCompressed
      Src: /src/s2geometry/src/s2/s2polygon.cc:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 817
    functionName: S2Polygon::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::DecodeCompressed
    - Decoder*::avail
    - Decoder*::get8
    - S2Polygon::DecodeUncompressed
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::Decode(Decoder* const decoder)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2polygon.cc:820,1
    - Dst: S2Polygon::ClearLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:821,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2polygon.cc:822,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2polygon.cc:823,1
    - Dst: Decoder*::get32
      Src: /src/s2geometry/src/s2/s2polygon.cc:826,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2polygon.cc:827,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon.cc:828,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2polygon.cc:830,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:833,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon.cc:833,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polygon.cc:834,1
    - Dst: S2Polygon::s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon.cc:834,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polygon.cc:835,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polygon.cc:838,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polygon.cc:838,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:839,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polygon.cc:843,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/s2polygon.cc:845,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2polygon.cc:846,1
    - Dst: S2Polygon::InitIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 849
    functionName: S2Polygon::DecodeUncompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2LatLngRectBounder::ExpandForSubregions
    - reserve
    - S2Polygon::s2debug_override
    - make_unique<S2Loop>
    - static_cast<uint32_t>
    - absl::GetFlag
    - push_back
    - back
    - S2Polygon::Decode
    - S2Polygon::InitIndex
    - Decoder*::get32
    - Decoder*::avail
    - Decoder*::get8
    - S2Polygon::ClearLoops
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::DecodeUncompressed(Decoder* const decoder)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:855,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:855,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:856,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:856,1
    - Dst: GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2polygon.cc:858,1
    - Dst: GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2polygon.cc:859,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:861,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:863,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:863,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:864,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Loop
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 867
    functionName: S2Polygon::CompareLoops
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::num_vertices
    - GetCanonicalLoopOrder
    - vertex
    linkageType: ''
    returnType: int
    signature: int S2Polygon::CompareLoops(const S2Loop& a, const S2Loop& b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:877,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:878,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon.cc:878,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2polygon.cc:878,1
    - Dst: S2Polygon::is_full
      Src: /src/s2geometry/src/s2/s2polygon.cc:879,1
    - Dst: S2Polygon::ClearLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:880,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:889,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:890,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:893,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:894,1
    - Dst: S2Polygon::CompareLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:898,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:898,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:898,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:905,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2polygon.cc:907,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:907,1
    - Dst: S2Polygon::GetLastDescendant
      Src: /src/s2geometry/src/s2/s2polygon.cc:909,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:910,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:910,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:911,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:913,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:913,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:914,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:914,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:918,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:920,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:920,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:921,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:921,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2polygon.cc:924,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2polygon.cc:925,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon.cc:925,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:925,1
    - Dst: S2Polygon::ClearIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:927,1
    - Dst: S2Polygon::InitLoopProperties
      Src: /src/s2geometry/src/s2/s2polygon.cc:928,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 929
    functionName: S2Polygon::Invert
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - S2Loop::kFull
    - S2Polygon::InitLoopProperties
    - make_unique<S2Loop>
    - ABSL_DCHECK_EQ
    - std::move
    - vector::reserve
    - S2Polygon::num_loops
    - push_back
    - S2Polygon::is_full
    - vector::size
    - S2Polygon::GetLastDescendant
    - S2Polygon::ClearIndex
    - swap
    - S2Polygon::is_empty
    - S2Polygon::CompareLoops
    - S2Polygon::ClearLoops
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: void S2Polygon::Invert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Invert
      Src: /src/s2geometry/src/s2/s2polygon.cc:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 934
    functionName: S2Polygon::InitToComplement
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::Invert
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitToComplement(const S2Polygon& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2polygon.cc:941,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2polygon.cc:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - op_type
    - ' snap_function'
    - ' a'
    - ' b'
    - absl_nonnull
    argTypes:
    - S2BooleanOperation::OpType
    - S2Builder::SnapFunction
    - S2Polygon
    - S2Polygon
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 944
    functionName: S2Polygon::InitToOperation
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Build
    - S2BooleanOperation::Options::set_snap_function
    linkageType: ''
    returnType: bool
    signature: "bool S2Polygon::InitToOperation(S2BooleanOperation::OpType op_type,\n
      \                               const S2Builder::SnapFunction& snap_function,\n
      \                               const S2Polygon& a, const S2Polygon& b,\n                                S2Error*
      absl_nonnull error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:949,1
    - Dst: S2Polygon::InitToOperation
      Src: /src/s2geometry/src/s2/s2polygon.cc:950,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon.cc:951,1
    - Dst: S2BooleanOperation::OpTypeToString
      Src: /src/s2geometry/src/s2/s2polygon.cc:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - op_type
    - ' snap_function'
    - ' a'
    - ' b'
    argTypes:
    - S2BooleanOperation::OpType
    - S2Builder::SnapFunction
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 954
    functionName: S2Polygon::InitToOperation
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::InitToOperation
    - ABSL_LOG
    - S2BooleanOperation::OpTypeToString
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InitToOperation(S2BooleanOperation::OpType op_type,\n
      \                               const S2Builder::SnapFunction& snap_function,\n
      \                               const S2Polygon& a, const S2Polygon& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon.cc:957,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 958
    functionName: S2Polygon::InitToIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 3
    functionsReached:
    - IdentitySnapFunction
    - S2Polygon::InitToIntersection
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitToIntersection(const S2Polygon& a, const S2Polygon&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bound_::Intersects
      Src: /src/s2geometry/src/s2/s2polygon.cc:963,1
    - Dst: S2Polygon::InitNested
      Src: /src/s2geometry/src/s2/s2polygon.cc:964,1
    - Dst: S2Polygon::InitToOperation
      Src: /src/s2geometry/src/s2/s2polygon.cc:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' snap_function'
    argTypes:
    - S2Polygon
    - S2Polygon
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 960
    functionDepth: 3
    functionLinenumber: 960
    functionLinenumberEnd: 969
    functionName: S2Polygon::InitToIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 3
    functionsReached:
    - bound_::Intersects
    - S2Polygon::InitToOperation
    - S2Polygon::InitNested
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InitToIntersection(\n    const S2Polygon& a, const
      S2Polygon& b,\n    const S2Builder::SnapFunction& snap_function)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bound_::Intersects
      Src: /src/s2geometry/src/s2/s2polygon.cc:974,1
    - Dst: S2Polygon::InitNested
      Src: /src/s2geometry/src/s2/s2polygon.cc:975,1
    - Dst: S2Polygon::InitToOperation
      Src: /src/s2geometry/src/s2/s2polygon.cc:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' snap_function'
    - absl_nonnull
    argTypes:
    - S2Polygon
    - S2Polygon
    - S2Builder::SnapFunction
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 971
    functionDepth: 3
    functionLinenumber: 971
    functionLinenumberEnd: 980
    functionName: S2Polygon::InitToIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 3
    functionsReached:
    - bound_::Intersects
    - S2Polygon::InitToOperation
    - S2Polygon::InitNested
    linkageType: ''
    returnType: bool
    signature: "bool S2Polygon::InitToIntersection(const S2Polygon& a, const S2Polygon&
      b,\n                                   const S2Builder::SnapFunction& snap_function,\n
      \                                  S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon.cc:983,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 984
    functionName: S2Polygon::InitToUnion
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::InitToUnion
    - IdentitySnapFunction
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitToUnion(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToOperation
      Src: /src/s2geometry/src/s2/s2polygon.cc:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' snap_function'
    argTypes:
    - S2Polygon
    - S2Polygon
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 989
    functionName: S2Polygon::InitToUnion
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::InitToOperation
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InitToUnion(const S2Polygon& a, const S2Polygon& b,\n
      \                           const S2Builder::SnapFunction& snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToOperation
      Src: /src/s2geometry/src/s2/s2polygon.cc:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' snap_function'
    - absl_nonnull
    argTypes:
    - S2Polygon
    - S2Polygon
    - S2Builder::SnapFunction
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 991
    functionDepth: 2
    functionLinenumber: 991
    functionLinenumberEnd: 996
    functionName: S2Polygon::InitToUnion
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::InitToOperation
    linkageType: ''
    returnType: bool
    signature: "bool S2Polygon::InitToUnion(const S2Polygon& a, const S2Polygon& b,\n
      \                           const S2Builder::SnapFunction& snap_function,\n
      \                           S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon.cc:999,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: S2Polygon::InitToDifference
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 2
    functionsReached:
    - S2Polygon::InitToDifference
    - IdentitySnapFunction
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitToDifference(const S2Polygon& a, const S2Polygon&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToOperation
      Src: /src/s2geometry/src/s2/s2polygon.cc:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' snap_function'
    argTypes:
    - S2Polygon
    - S2Polygon
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1002
    functionDepth: 2
    functionLinenumber: 1002
    functionLinenumberEnd: 1005
    functionName: S2Polygon::InitToDifference
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 2
    functionsReached:
    - S2Polygon::InitToOperation
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InitToDifference(const S2Polygon& a, const S2Polygon&
      b,\n                                 const S2Builder::SnapFunction& snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToOperation
      Src: /src/s2geometry/src/s2/s2polygon.cc:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' snap_function'
    - absl_nonnull
    argTypes:
    - S2Polygon
    - S2Polygon
    - S2Builder::SnapFunction
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1007
    functionDepth: 2
    functionLinenumber: 1007
    functionLinenumberEnd: 1012
    functionName: S2Polygon::InitToDifference
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 2
    functionsReached:
    - S2Polygon::InitToOperation
    linkageType: ''
    returnType: bool
    signature: "bool S2Polygon::InitToDifference(const S2Polygon& a, const S2Polygon&
      b,\n                                 const S2Builder::SnapFunction& snap_function,\n
      \                                S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToSymmetricDifference
      Src: /src/s2geometry/src/s2/s2polygon.cc:1016,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1018
    functionName: S2Polygon::InitToSymmetricDifference
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 2
    functionsReached:
    - IdentitySnapFunction
    - S2Polygon::InitToSymmetricDifference
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InitToSymmetricDifference(const S2Polygon& a,\n                                          const
      S2Polygon& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToOperation
      Src: /src/s2geometry/src/s2/s2polygon.cc:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' snap_function'
    argTypes:
    - S2Polygon
    - S2Polygon
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1025
    functionName: S2Polygon::InitToSymmetricDifference
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 2
    functionsReached:
    - S2Polygon::InitToOperation
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InitToSymmetricDifference(\n    const S2Polygon& a,
      const S2Polygon& b,\n    const S2Builder::SnapFunction& snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToOperation
      Src: /src/s2geometry/src/s2/s2polygon.cc:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' snap_function'
    - absl_nonnull
    argTypes:
    - S2Polygon
    - S2Polygon
    - S2Builder::SnapFunction
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1032
    functionName: S2Polygon::InitToSymmetricDifference
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 2
    functionsReached:
    - S2Polygon::InitToOperation
    linkageType: ''
    returnType: bool
    signature: "bool S2Polygon::InitToSymmetricDifference(\n    const S2Polygon& a,
      const S2Polygon& b,\n    const S2Builder::SnapFunction& snap_function, S2Error*
      absl_nonnull error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder*::StartLayer
      Src: /src/s2geometry/src/s2/s2polygon.cc:1035,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1035,1
    - Dst: S2Builder*::AddPolygon
      Src: /src/s2geometry/src/s2/s2polygon.cc:1036,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:1037,1
    - Dst: S2Builder*::Build
      Src: /src/s2geometry/src/s2/s2polygon.cc:1038,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon.cc:1039,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1043,1
    - Dst: bound_::Area
      Src: /src/s2geometry/src/s2/s2polygon.cc:1044,1
    - Dst: S2Polygon::GetArea
      Src: /src/s2geometry/src/s2/s2polygon.cc:1044,1
    - Dst: S2Polygon::Invert
      Src: /src/s2geometry/src/s2/s2polygon.cc:1044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' a'
    - builder
    argTypes:
    - S2Polygon
    - S2Builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1046
    functionName: S2Polygon::InitFromBuilder
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Polygon::GetArea
    - S2Polygon::Invert
    - S2Polygon::num_loops
    - S2Builder*::Build
    - S2Builder*::AddPolygon
    - S2Builder*::StartLayer
    - ABSL_LOG
    - bound_::Area
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitFromBuilder(const S2Polygon& a, S2Builder* builder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2polygon.cc:1050,1
    - Dst: S2Polygon::InitFromBuilder
      Src: /src/s2geometry/src/s2/s2polygon.cc:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' polygon'
    - ' snap_function'
    argTypes:
    - S2Polygon
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1048
    functionDepth: 4
    functionLinenumber: 1048
    functionLinenumberEnd: 1052
    functionName: S2Polygon::InitToSnapped
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitFromBuilder
    - S2ShapeNestingQuery::Options::Options
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InitToSnapped(const S2Polygon& polygon,\n                              const
      S2Builder::SnapFunction& snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon.cc:1055,1
    - Dst: S2CellIdSnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' polygon'
    - snap_level
    argTypes:
    - S2Polygon
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1056
    functionName: S2Polygon::InitToSnapped
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::InitToSnapped
    - S2CellIdSnapFunction
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitToSnapped(const S2Polygon& polygon, int snap_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2polygon.cc:1061,1
    - Dst: S2Polygon::InitFromBuilder
      Src: /src/s2geometry/src/s2/s2polygon.cc:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' snap_function'
    argTypes:
    - S2Polygon
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1058
    functionDepth: 4
    functionLinenumber: 1058
    functionLinenumberEnd: 1064
    functionName: S2Polygon::InitToSimplified
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitFromBuilder
    - S2Builder::Options::set_simplify_edge_chains
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InitToSimplified(const S2Polygon& a,\n                                 const
      S2Builder::SnapFunction& snap_function)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2polygon.cc:1075,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2polygon.cc:1075,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2polygon.cc:1076,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon.cc:1077,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polygon.cc:1078,1
    - Dst: R2Rect::Expanded
      Src: /src/s2geometry/src/s2/s2polygon.cc:1078,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2polygon.cc:1079,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2polygon.cc:1080,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2polygon.cc:1081,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2polygon.cc:1082,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ' cell'
    - ' p'
    - tolerance_uv
    argTypes:
    - S2Cell
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1085
    functionName: GetCellEdgeIncidenceMask
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Expanded
    - fabs
    - S2::FaceXYZtoUV
    - face
    - GetBoundUV
    - absl::GetFlag
    - ABSL_DCHECK
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t GetCellEdgeIncidenceMask(const S2Cell& cell, const S2Point&
      p,\n                                 double tolerance_uv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2polygon.cc:1135,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polygon.cc:1135,1
    - Dst: S2Polygon::SimplifyEdgesInCell
      Src: /src/s2geometry/src/s2/s2polygon.cc:1140,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:1144,1
    - Dst: S2Builder::Options::set_idempotent
      Src: /src/s2geometry/src/s2/s2polygon.cc:1145,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2polygon.cc:1147,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1147,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1149,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:1151,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2polygon.cc:1152,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon.cc:1153,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1158,1
    - Dst: bound_::Area
      Src: /src/s2geometry/src/s2/s2polygon.cc:1159,1
    - Dst: S2Polygon::GetArea
      Src: /src/s2geometry/src/s2/s2polygon.cc:1159,1
    - Dst: S2Polygon::Invert
      Src: /src/s2geometry/src/s2/s2polygon.cc:1159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - ' a'
    - ' cell'
    - snap_radius
    - boundary_tolerance
    argTypes:
    - S2Polygon
    - S2Cell
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1087
    functionDepth: 3
    functionLinenumber: 1087
    functionLinenumberEnd: 1161
    functionName: S2Polygon::InitToSimplifiedInCell
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - IdentitySnapFunction
    - S2Builder::Options::set_idempotent
    - S2Polygon::GetArea
    - S2Polygon::SimplifyEdgesInCell
    - S2Polygon::Invert
    - S2Builder::AddPolyline
    - S2Polygon::num_loops
    - sqrt
    - S1Angle::radians
    - S2Builder::Build
    - bound_::Area
    - ABSL_LOG
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::InitToSimplifiedInCell(const S2Polygon& a, const S2Cell&
      cell,\n                                       S1Angle snap_radius,\n                                       S1Angle
      boundary_tolerance)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:1167,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2polygon.cc:1168,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1174,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1175,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:1176,1
    - Dst: GetCellEdgeIncidenceMask
      Src: /src/s2geometry/src/s2/s2polygon.cc:1177,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:1179,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:1180,1
    - Dst: GetCellEdgeIncidenceMask
      Src: /src/s2geometry/src/s2/s2polygon.cc:1181,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polygon.cc:1188,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:1189,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:1190,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1190,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1197,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2polygon.cc:1198,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1198,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:1199,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2polygon.cc:1202,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:1204,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:1212,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2polygon.cc:1213,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon.cc:1214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - ' a'
    - ' cell'
    - tolerance_uv
    - snap_radius
    argTypes:
    - S2Polygon
    - S2Cell
    - double
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1164
    functionDepth: 2
    functionLinenumber: 1164
    functionLinenumberEnd: 1217
    functionName: S2Polygon::SimplifyEdgesInCell
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Builder::Options::set_simplify_edge_chains
    - IdentitySnapFunction
    - S2Builder::ForceVertex
    - S2Builder::AddEdge
    - ABSL_LOG
    - S2Polygon::num_vertices
    - S2Polyline::S2Polyline
    - S2Polygon::num_loops
    - make_unique<S2PolylineLayer>
    - S2Builder::Build
    - vector::emplace_back
    - S2Error::S2Error
    - oriented_vertex
    - GetCellEdgeIncidenceMask
    - ABSL_DCHECK
    - S2Builder::StartLayer
    - S2Polygon::loop
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> S2Polygon::SimplifyEdgesInCell(\n    const
      S2Polygon& a, const S2Cell& cell, double tolerance_uv,\n    S1Angle snap_radius)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2polygon.cc:1223,1
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2polygon.cc:1226,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1229,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:1231,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2polygon.cc:1232,1
    - Dst: make_unique<S2Polyline::Shape>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1232,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:1233,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2polygon.cc:1234,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon.cc:1235,1
    - Dst: S2BooleanOperation::OpTypeToString
      Src: /src/s2geometry/src/s2/s2polygon.cc:1236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - op_type
    - ' snap_function'
    - ' a'
    argTypes:
    - S2BooleanOperation::OpType
    - S2Builder::SnapFunction
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1240
    functionName: S2Polygon::OperationWithPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2PolylineVectorLayer::Options::set_polyline_type
    - make_unique<S2PolylineVectorLayer>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2Polyline::Shape>
    - S2BooleanOperation::Build
    - S2BooleanOperation::OpTypeToString
    - ABSL_LOG
    - S2BooleanOperation::Options::set_snap_function
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> S2Polygon::OperationWithPolyline(\n
      \   S2BooleanOperation::OpType op_type,\n    const S2Builder::SnapFunction&
      snap_function, const S2Polyline& a) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::ApproxIntersectWithPolyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1245
    functionName: S2Polygon::IntersectWithPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::ApproxIntersectWithPolyline
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> S2Polygon::IntersectWithPolyline(\n
      \   const S2Polyline& a) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::IntersectWithPolyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1249,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - snap_radius
    argTypes:
    - S2Polyline
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1247
    functionDepth: 2
    functionLinenumber: 1247
    functionLinenumberEnd: 1250
    functionName: S2Polygon::ApproxIntersectWithPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::IntersectWithPolyline
    - IdentitySnapFunction
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> S2Polygon::ApproxIntersectWithPolyline(\n
      \   const S2Polyline& a, S1Angle snap_radius) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::OperationWithPolyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' snap_function'
    argTypes:
    - S2Polyline
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1252
    functionDepth: 2
    functionLinenumber: 1252
    functionLinenumberEnd: 1256
    functionName: S2Polygon::IntersectWithPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::OperationWithPolyline
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> S2Polygon::IntersectWithPolyline(\n
      \   const S2Polyline& a, const S2Builder::SnapFunction& snap_function) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::ApproxSubtractFromPolyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1261
    functionName: S2Polygon::SubtractFromPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::ApproxSubtractFromPolyline
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> S2Polygon::SubtractFromPolyline(\n
      \   const S2Polyline& a) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::SubtractFromPolyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1265,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - snap_radius
    argTypes:
    - S2Polyline
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1266
    functionName: S2Polygon::ApproxSubtractFromPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - IdentitySnapFunction
    - S2Polygon::SubtractFromPolyline
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> S2Polygon::ApproxSubtractFromPolyline(\n
      \   const S2Polyline& a, S1Angle snap_radius) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::OperationWithPolyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' snap_function'
    argTypes:
    - S2Polyline
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1268
    functionDepth: 2
    functionLinenumber: 1268
    functionLinenumberEnd: 1272
    functionName: S2Polygon::SubtractFromPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::OperationWithPolyline
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> S2Polygon::SubtractFromPolyline(\n
      \   const S2Polyline& a, const S2Builder::SnapFunction& snap_function) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::ApproxContains
      Src: /src/s2geometry/src/s2/s2polygon.cc:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1276
    functionName: S2Polygon::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 4
    functionsReached:
    - S2Polygon::ApproxContains
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::Contains(const S2Polyline& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::ApproxSubtractFromPolyline
      Src: /src/s2geometry/src/s2/s2polygon.cc:1279,1
    - Dst: auto::empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' b'
    - tolerance
    argTypes:
    - S2Polyline
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1278
    functionDepth: 3
    functionLinenumber: 1278
    functionLinenumberEnd: 1281
    functionName: S2Polygon::ApproxContains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::ApproxSubtractFromPolyline
    - auto::empty
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::ApproxContains(const S2Polyline& b, S1Angle tolerance)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Disjoint
      Src: /src/s2geometry/src/s2/s2polygon.cc:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1283
    functionName: S2Polygon::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::Disjoint
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::Intersects(const S2Polyline& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2polygon.cc:1286,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2polygon.cc:1287,1
    - Dst: make_unique<S2Polyline::Shape>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1287,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2polygon.cc:1289,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2polygon.cc:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1291
    functionName: S2Polygon::Disjoint
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - index
    - S2BooleanOperation::IsEmpty
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2Polyline::Shape>
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::Disjoint(const S2Polyline& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::DestructiveApproxUnion
      Src: /src/s2geometry/src/s2/s2polygon.cc:1295,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - polygons
    argTypes:
    - vector<unique_ptr<S2Polygon>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1297
    functionName: S2Polygon::DestructiveUnion
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S2Polygon::DestructiveApproxUnion
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: "unique_ptr<S2Polygon> S2Polygon::DestructiveUnion(\n    vector<unique_ptr<S2Polygon>>
      polygons)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::DestructiveUnion
      Src: /src/s2geometry/src/s2/s2polygon.cc:1301,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:1301,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polygons
    - snap_radius
    argTypes:
    - vector<unique_ptr<S2Polygon>>
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1299
    functionDepth: 2
    functionLinenumber: 1299
    functionLinenumberEnd: 1303
    functionName: S2Polygon::DestructiveApproxUnion
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - std::move
    - IdentitySnapFunction
    - S2Polygon::DestructiveUnion
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: "unique_ptr<S2Polygon> S2Polygon::DestructiveApproxUnion(\n    vector<unique_ptr<S2Polygon>>
      polygons, S1Angle snap_radius)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector<unique_ptr<S2Polygon>>::empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:1308,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1308,1
    - Dst: forward_as_tuple
      Src: /src/s2geometry/src/s2/s2polygon.cc:1320,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:1320,1
    - Dst: forward_as_tuple
      Src: /src/s2geometry/src/s2/s2polygon.cc:1321,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:1321,1
    - Dst: vector<unique_ptr<S2Polygon>>::size
      Src: /src/s2geometry/src/s2/s2polygon.cc:1328,1
    - Dst: PriorityQueue::push
      Src: /src/s2geometry/src/s2/s2polygon.cc:1329,1
    - Dst: PriorityQueue::size
      Src: /src/s2geometry/src/s2/s2polygon.cc:1332,1
    - Dst: PriorityQueue::top
      Src: /src/s2geometry/src/s2/s2polygon.cc:1334,1
    - Dst: PriorityQueue::pop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1335,1
    - Dst: PriorityQueue::top
      Src: /src/s2geometry/src/s2/s2polygon.cc:1336,1
    - Dst: PriorityQueue::pop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1337,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1340,1
    - Dst: auto::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon.cc:1341,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:1344,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2polygon.cc:1345,1
    - Dst: PriorityQueue::push
      Src: /src/s2geometry/src/s2/s2polygon.cc:1347,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:1350,1
    - Dst: PriorityQueue::top
      Src: /src/s2geometry/src/s2/s2polygon.cc:1350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - polygons
    - ' snap_function'
    argTypes:
    - vector<unique_ptr<S2Polygon>>
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1351
    functionName: S2Polygon::DestructiveUnion
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - vector<unique_ptr<S2Polygon>>::size
    - vector<unique_ptr<S2Polygon>>::empty
    - S2Polygon::num_vertices
    - PriorityQueue::top
    - PriorityQueue::push
    - auto::InitToUnion
    - PriorityQueue::pop
    - std::move
    - PriorityQueue::size
    - make_unique<S2Polygon>
    - reset
    - forward_as_tuple
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: "unique_ptr<S2Polygon> S2Polygon::DestructiveUnion(\n    vector<unique_ptr<S2Polygon>>
      polygons,\n    const S2Builder::SnapFunction& snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forward_as_tuple
      Src: /src/s2geometry/src/s2/s2polygon.cc:1320,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:1320,1
    - Dst: forward_as_tuple
      Src: /src/s2geometry/src/s2/s2polygon.cc:1321,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unique_ptr<S2Polygon>*
    - unique_ptr<S2Polygon>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1322
    functionName: operator()(unique_ptr<S2Polygon>* a, unique_ptr<S2Polygon>* b) const
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - forward_as_tuple
    linkageType: ''
    returnType: bool
    signature: bool operator()(unique_ptr<S2Polygon>* a, unique_ptr<S2Polygon>* b)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2polygon.cc:1360,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2polygon.cc:1362,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon.cc:1362,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon.cc:1362,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2polygon.cc:1363,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1363,1
    - Dst: S2Builder::AddLoop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1365,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon.cc:1367,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2polygon.cc:1368,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon.cc:1369,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1374,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:1375,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2polygon.cc:1376,1
    - Dst: LeafCellsCovered
      Src: /src/s2geometry/src/s2/s2polygon.cc:1377,1
    - Dst: S2Polygon::Invert
      Src: /src/s2geometry/src/s2/s2polygon.cc:1378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ' cells'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1353
    functionDepth: 3
    functionLinenumber: 1353
    functionLinenumberEnd: 1380
    functionName: S2Polygon::InitToCellUnionBorder
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - IdentitySnapFunction
    - ABSL_DCHECK_EQ
    - S2ShapeNestingQuery::Options::Options
    - S2Polygon::Invert
    - S1Angle::Radians
    - GetValue
    - S2Builder::AddLoop
    - S2Polygon::num_loops
    - LeafCellsCovered
    - S2Builder::Build
    - empty
    - ABSL_LOG
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void S2Polygon::InitToCellUnionBorder(const S2CellUnion& cells)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1390,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1391,1
    - Dst: S2Loop*::depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:1392,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1393,1
    - Dst: S2Polygon::GetParent
      Src: /src/s2geometry/src/s2/s2polygon.cc:1393,1
    - Dst: flat_hash_set::clear
      Src: /src/s2geometry/src/s2/s2polygon.cc:1395,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:1396,1
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2polygon.cc:1397,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2polygon.cc:1397,1
    - Dst: absl::c_count_if
      Src: /src/s2geometry/src/s2/s2polygon.cc:1401,1
    - Dst: S2Loop*::vertices_span
      Src: /src/s2geometry/src/s2/s2polygon.cc:1402,1
    - Dst: flat_hash_set::contains
      Src: /src/s2geometry/src/s2/s2polygon.cc:1403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1382
    functionDepth: 2
    functionLinenumber: 1382
    functionLinenumberEnd: 1407
    functionName: S2Polygon::IsNormalized
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Loop*::num_vertices
    - S2Polygon::num_loops
    - S2Loop*::depth
    - S2Loop*::vertices_span
    - S2Polygon::GetParent
    - flat_hash_set::clear
    - flat_hash_set::insert
    - absl::c_count_if
    - S2Loop*::vertex
    - flat_hash_set::contains
    - S2Polygon::loop
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::IsNormalized() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1410,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1410,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1411,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1412,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1413,1
    - Dst: S2Loop*::depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:1414,1
    - Dst: S2Loop*::depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:1414,1
    - Dst: S2Loop*::Equals
      Src: /src/s2geometry/src/s2/s2polygon.cc:1414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1419
    functionName: S2Polygon::Equals
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Loop*::Equals
    - S2Polygon::num_loops
    - S2Loop*::depth
    - S2Polygon::loop
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::Equals(const S2Polygon& b) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1422,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1422,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1424,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1425,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1427,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1428,1
    - Dst: S2Loop*::depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:1429,1
    - Dst: S2Loop*::depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:1429,1
    - Dst: S2Loop*::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2polygon.cc:1430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1438
    functionName: S2Polygon::BoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Loop*::BoundaryEquals
    - S2Polygon::num_loops
    - S2Loop*::depth
    - S2Polygon::loop
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::BoundaryEquals(const S2Polygon& b) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1442,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1442,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1447,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1448,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1450,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1451,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:1452,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:1452,1
    - Dst: S2Polygon::BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon.cc:1453,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ' b'
    - max_error
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1461
    functionName: S2Polygon::BoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::BoundaryApproxEquals
    - depth
    - S2Polygon::num_loops
    - S2Polygon::loop
    linkageType: ''
    returnType: bool
    signature: "bool S2Polygon::BoundaryApproxEquals(const S2Polygon& b,\n                                     S1Angle
      max_error) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1464,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1464,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1469,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1470,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1472,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1473,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:1474,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/s2polygon.cc:1474,1
    - Dst: S2Polygon::BoundaryNear
      Src: /src/s2geometry/src/s2/s2polygon.cc:1475,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ' b'
    - max_error
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1483
    functionName: S2Polygon::BoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::BoundaryNear
    - depth
    - S2Polygon::num_loops
    - S2Polygon::loop
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::BoundaryNear(const S2Polygon& b, S1Angle max_error)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2polygon.cc:1488,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2polygon.cc:1490,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2polygon.cc:1491,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2polygon.cc:1492,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2polygon.cc:1493,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1493,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2polygon.cc:1494,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2polygon.cc:1494,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1496,1
    - Dst: S2Polygon::EncodeCompressed
      Src: /src/s2geometry/src/s2/s2polygon.cc:1497,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:1498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - encoder
    - all_vertices
    - snap_level
    argTypes:
    - Encoder*
    - S2XYZFaceSiTi*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1503
    functionName: S2Polygon::EncodeCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 2
    functionsReached:
    - Encoder*::put_varint32
    - Encoder*::put8
    - S2Polygon::num_vertices
    - ABSL_CHECK_GE
    - S2Polygon::num_loops
    - Encoder*::Ensure
    - S2Polygon::EncodeCompressed
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: "void S2Polygon::EncodeCompressed(Encoder* encoder,\n                                 const
      S2XYZFaceSiTi* all_vertices,\n                                 int snap_level)
      const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2polygon.cc:1506,1
    - Dst: S2Polygon::ClearLoops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1507,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2polygon.cc:1508,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2polygon.cc:1513,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1514,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon.cc:1515,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2polygon.cc:1517,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon.cc:1519,1
    - Dst: auto::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon.cc:1520,1
    - Dst: S2Polygon::s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon.cc:1520,1
    - Dst: auto::DecodeCompressed
      Src: /src/s2geometry/src/s2/s2polygon.cc:1521,1
    - Dst: auto::is_empty
      Src: /src/s2geometry/src/s2/s2polygon.cc:1526,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.cc:1526,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2polygon.cc:1527,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.cc:1527,1
    - Dst: S2Polygon::InitLoopProperties
      Src: /src/s2geometry/src/s2/s2polygon.cc:1530,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1505
    functionDepth: 2
    functionLinenumber: 1505
    functionLinenumberEnd: 1532
    functionName: S2Polygon::DecodeCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::InitLoopProperties
    - reserve
    - S2Polygon::s2debug_override
    - make_unique<S2Loop>
    - static_cast<uint32_t>
    - std::move
    - absl::GetFlag
    - auto::set_s2debug_override
    - auto::DecodeCompressed
    - push_back
    - Decoder*::get_varint32
    - Decoder*::avail
    - Decoder*::get8
    - S2Polygon::ClearLoops
    - auto::is_empty
    - auto::num_vertices
    linkageType: ''
    returnType: bool
    signature: bool S2Polygon::DecodeCompressed(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2polygon.cc:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - polygon
    argTypes:
    - S2Polygon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1534
    functionName: S2Polygon::Shape::Shape(const S2Polygon* polygon)
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: void S2Polygon::Shape::Shape(const S2Polygon* polygon)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon*::is_full
      Src: /src/s2geometry/src/s2/s2polygon.cc:1540,1
    - Dst: S2Polygon*::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1542,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2polygon.cc:1545,1
    - Dst: uint32_t::uint32_t
      Src: /src/s2geometry/src/s2/s2polygon.cc:1545,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - polygon
    argTypes:
    - S2Polygon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1553
    functionName: S2Polygon::Shape::Init(const S2Polygon* polygon)
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2Polygon*::loop
    - S2Polygon*::is_full
    - uint32_t::uint32_t
    - reset
    - S2Polygon*::num_loops
    linkageType: ''
    returnType: void
    signature: void S2Polygon::Shape::Init(const S2Polygon* polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1555
    functionDepth: 0
    functionLinenumber: 1555
    functionLinenumberEnd: 1555
    functionName: S2Polygon::Shape::~Shape()
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Polygon::Shape::~Shape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointVectorShape::chain_position
      Src: /src/s2geometry/src/s2/s2polygon.cc:1559,1
    - Dst: S2PointVectorShape::chain_edge
      Src: /src/s2geometry/src/s2/s2polygon.cc:1560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1561
    functionName: S2Polygon::Shape::edge(int e) const
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2PointVectorShape::chain_position
    - S2PointVectorShape::chain_edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2Polygon::Shape::edge(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1565,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1566,1
    - Dst: ReferencePoint
      Src: /src/s2geometry/src/s2/s2polygon.cc:1568,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2polygon.cc:1568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1563
    functionDepth: 1
    functionLinenumber: 1563
    functionLinenumberEnd: 1569
    functionName: S2Polygon::Shape::GetReferencePoint() const
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - S2::Origin
    - num_loops
    - ReferencePoint
    - loop
    linkageType: ''
    returnType: S2Shape::ReferencePoint
    signature: S2Shape::ReferencePoint S2Polygon::Shape::GetReferencePoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1571
    functionName: S2Polygon::Shape::num_chains() const
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - num_loops
    linkageType: ''
    returnType: int
    signature: int S2Polygon::Shape::num_chains() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2polygon.cc:1574,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2polygon.cc:1574,1
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2polygon.cc:1577,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1580,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1583,1
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2polygon.cc:1584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1586
    functionName: S2Polygon::Shape::chain(int i) const
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 0
    functionsReached:
    - Chain
    - S2LaxPolygonShape::num_chains
    - loop
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Shape::Chain
    signature: S2Shape::Chain S2Polygon::Shape::chain(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.cc:1590,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.cc:1591,1
    - Dst: S2Polygon::SpaceUsed
      Src: /src/s2geometry/src/s2/s2polygon.cc:1593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1595
    functionName: S2Polygon::SpaceUsed
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::SpaceUsed
    - S2Polygon::num_loops
    - S2Polygon::loop
    linkageType: ''
    returnType: size_t
    signature: size_t S2Polygon::SpaceUsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: S2LaxPolygonShape::S2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LaxPolygonShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: S2LaxPolygonShape::S2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LaxPolygonShape(const S2LaxPolygonShape&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: S2LaxPolygonShape::num_loops
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_loops() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: S2LaxPolygonShape::num_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: S2LaxPolygonShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 1
    functionsReached:
    - S2LaxPolygonShape::Init
    linkageType: ''
    returnType: bool
    signature: bool Init(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: S2LaxPolygonShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 2
    functionsReached:
    - S2LaxPolygonShape::Init
    linkageType: ''
    returnType: bool
    signature: bool Init(Decoder* decoder, S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: S2LaxPolygonShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::num_vertices
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: S2LaxPolygonShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: S2LaxPolygonShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 1
    functionsReached:
    - S2LaxPolygonShape::num_loops
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: S2LaxPolygonShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2LaxPolygonShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: EncodedS2LaxPolygonShape::num_loops
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_loops() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: EncodedS2LaxPolygonShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached:
    - EncodedS2LaxPolygonShape::num_vertices
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: EncodedS2LaxPolygonShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: EncodedS2LaxPolygonShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached:
    - EncodedS2LaxPolygonShape::num_loops
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: EncodedS2LaxPolygonShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:253,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:253,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:254,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:254,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:255,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:257,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:258,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: S2Shape::Edge S2LaxPolygonShape::chain_edge(int i, int j) const
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached:
    - Edge
    - num_loops
    - num_loop_vertices
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: ABSL_ATTRIBUTE_ALWAYS_INLINE S2Shape::Edge S2LaxPolygonShape::chain_edge(int
      i, int j) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:267,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:267,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:268,1
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:269,1
    - Dst: load
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:273,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:274,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:274,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:277,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:281,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:285,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:286,1
    - Dst: std::upper_bound
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:288,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:288,1
    - Dst: store
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:291,1
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 294
    functionName: S2Shape::ChainPosition S2LaxPolygonShape::chain_position(int e)
      const
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached:
    - num_loops
    - std::upper_bound
    - load
    - num_edges
    - static_cast<uint32_t>
    - ChainPosition
    - store
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: ABSL_ATTRIBUTE_ALWAYS_INLINE S2Shape::ChainPosition S2LaxPolygonShape::chain_position(int
      e) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:298,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:298,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:299,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:299,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:300,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:302,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:303,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 308
    functionName: S2Shape::Edge EncodedS2LaxPolygonShape::chain_edge(int i, int j)
      const
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached:
    - Edge
    - num_loops
    - num_loop_vertices
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: ABSL_ATTRIBUTE_ALWAYS_INLINE S2Shape::Edge EncodedS2LaxPolygonShape::chain_edge(int
      i, int j) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:313,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:313,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:314,1
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:315,1
    - Dst: load
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:318,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:319,1
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:320,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:322,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:323,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:326,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:330,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:331,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:332,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:335,1
    - Dst: store
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:337,1
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.h:339,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 340
    functionName: "S2Shape::ChainPosition EncodedS2LaxPolygonShape::chain_position(int
      e)\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.h
    functionUses: 0
    functionsReached:
    - num_loops
    - load
    - num_edges
    - static_cast<uint32_t>
    - ChainPosition
    - store
    - ABSL_DCHECK_LT
    - lower_bound
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE S2Shape::ChainPosition EncodedS2LaxPolygonShape::chain_position(int
      e)\n    const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: S2BooleanOperation::SourceId::region_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int region_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: S2BooleanOperation::SourceId::shape_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t shape_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: S2BooleanOperation::SourceId::edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: S2BooleanOperation::op_type
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OpType
    signature: OpType op_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2boolean_operation.h:509,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2boolean_operation.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: S2BooleanOperation::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 1
    functionsReached:
    - S2BooleanOperation::IsEmpty
    - Options
    linkageType: ''
    returnType: bool
    signature: "bool Intersects(const S2ShapeIndex& a, const S2ShapeIndex& b,\n                         const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2boolean_operation.h:516,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2boolean_operation.h:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: S2BooleanOperation::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 1
    functionsReached:
    - S2BooleanOperation::IsEmpty
    - Options
    linkageType: ''
    returnType: bool
    signature: "bool Contains(const S2ShapeIndex& a, const S2ShapeIndex& b,\n                       const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2boolean_operation.h:524,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2boolean_operation.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: S2BooleanOperation::Equals
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::IsEmpty
    - Options
    linkageType: ''
    returnType: bool
    signature: "bool Equals(const S2ShapeIndex& a, const S2ShapeIndex& b,\n                     const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 559
    functionName: S2BooleanOperation::SourceId::SourceId()
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::SourceId::SourceId()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - region_id
    - shape_id
    - edge_id
    argTypes:
    - int
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 563
    functionName: "S2BooleanOperation::SourceId::SourceId(int region_id, int32_t shape_id,\n
      \                                             int32_t edge_id)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::SourceId::SourceId(int region_id, int32_t
      shape_id,\n                                              int32_t edge_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - special_edge_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 567
    functionName: S2BooleanOperation::SourceId::SourceId(int special_edge_id)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::SourceId::SourceId(int special_edge_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - SourceId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 573
    functionName: S2BooleanOperation::SourceId::operator==(SourceId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2BooleanOperation::SourceId::operator==(SourceId other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - other
    argTypes:
    - SourceId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: S2BooleanOperation::SourceId::operator<(SourceId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2BooleanOperation::SourceId::operator<(SourceId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: S2::PlanarCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2centroids.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point PlanarCentroid(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2centroids.cc:33,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2centroids.cc:33,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2centroids.cc:34,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2centroids.cc:34,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2centroids.cc:35,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2centroids.cc:35,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2centroids.cc:42,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2centroids.cc:43,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2centroids.cc:44,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2centroids.cc:45,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2centroids.cc:46,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2centroids.cc:47,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2centroids.cc:69,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2centroids.cc:69,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2centroids.cc:70,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2centroids.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 72
    functionName: S2::TrueCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2centroids.cc
    functionUses: 0
    functionsReached:
    - z
    - S2Point
    - S2::IsUnitLength
    - S2::Angle
    - sin
    - S2Point::CrossProd
    - y
    - x
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point TrueCentroid(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2centroids.cc:80,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2centroids.cc:81,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2centroids.cc:82,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2centroids.cc:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: S2::TrueCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2centroids.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2Point::Norm2
    - sqrt
    linkageType: ''
    returnType: S2Point
    signature: S2Point TrueCentroid(const S2Point& a, const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: S2::PlanarCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2centroids.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point PlanarCentroid(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2centroids.cc:33,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2centroids.cc:33,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2centroids.cc:34,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2centroids.cc:34,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2centroids.cc:35,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2centroids.cc:35,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2centroids.cc:42,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2centroids.cc:43,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2centroids.cc:44,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2centroids.cc:45,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2centroids.cc:46,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2centroids.cc:47,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2centroids.cc:65,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2centroids.cc:66,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2centroids.cc:67,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2centroids.cc:69,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2centroids.cc:69,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2centroids.cc:70,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2centroids.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 72
    functionName: S2::TrueCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2centroids.cc
    functionUses: 0
    functionsReached:
    - z
    - S2Point
    - S2::IsUnitLength
    - S2::Angle
    - sin
    - S2Point::CrossProd
    - y
    - x
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point TrueCentroid(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2centroids.cc:80,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2centroids.cc:81,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2centroids.cc:82,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2centroids.cc:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: S2::TrueCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2centroids.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2Point::Norm2
    - sqrt
    linkageType: ''
    returnType: S2Point
    signature: S2Point TrueCentroid(const S2Point& a, const S2Point& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:41,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:42,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: s2shapeutil::GetEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - vector::push_back
    - edge
    linkageType: ''
    returnType: vector<S2Shape::Edge>
    signature: vector<S2Shape::Edge> GetEdges(const S2ShapeIndex* index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:50,1
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:55,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:55,1
    - Dst: EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:58,1
    - Dst: EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:63,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:64,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:65,1
    - Dst: EdgeIterator::edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    - Dst: s2shapeutil::ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: s2shapeutil::Verify
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - EdgeIterator::shape_id
    - EdgeIterator::Next
    - EdgeIterator::Done
    - s2shapeutil::GetEdges
    - EdgeIterator::edge
    - ASSERT_TRUE
    - EdgeIterator::edge_id
    - EXPECT_EQ
    - EdgeIterator::shape_edge_id
    - vector::size
    - s2shapeutil::ShapeEdgeId
    linkageType: ''
    returnType: void
    signature: void Verify(const S2ShapeIndex* index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:41,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:42,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: s2shapeutil::GetEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 1
    functionsReached:
    - num_edges
    - vector::push_back
    - edge
    linkageType: ''
    returnType: vector<S2Shape::Edge>
    signature: vector<S2Shape::Edge> GetEdges(const S2ShapeIndex* index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:50,1
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:55,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:55,1
    - Dst: EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:58,1
    - Dst: EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:63,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:64,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:65,1
    - Dst: EdgeIterator::edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    - Dst: s2shapeutil::ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: s2shapeutil::Verify
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - EdgeIterator::shape_id
    - EdgeIterator::Next
    - EdgeIterator::Done
    - s2shapeutil::GetEdges
    - EdgeIterator::edge
    - ASSERT_TRUE
    - EdgeIterator::edge_id
    - EXPECT_EQ
    - EdgeIterator::shape_edge_id
    - vector::size
    - s2shapeutil::ShapeEdgeId
    linkageType: ''
    returnType: void
    signature: void Verify(const S2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:73,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:74,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:78,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:79,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:83,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:84,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Lines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:89,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:90,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Polygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:94,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:97,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Collection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:101,1
    - Dst: auto::Release
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:104,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:106,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::Release
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Remove)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:110,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:114,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:118,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:119,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:125,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:128,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - EdgeIterator::Next
    - EXPECT_TRUE
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, AssignmentAndEquality)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:41,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:42,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: s2shapeutil::GetEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 2
    functionsReached:
    - num_edges
    - vector::push_back
    - edge
    linkageType: ''
    returnType: vector<S2Shape::Edge>
    signature: vector<S2Shape::Edge> GetEdges(const S2ShapeIndex* index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:50,1
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:55,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:55,1
    - Dst: EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:58,1
    - Dst: EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:63,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:64,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:65,1
    - Dst: EdgeIterator::edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    - Dst: s2shapeutil::ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: s2shapeutil::Verify
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 6
    functionsReached:
    - EdgeIterator::shape_id
    - EdgeIterator::Next
    - EdgeIterator::Done
    - s2shapeutil::GetEdges
    - EdgeIterator::edge
    - ASSERT_TRUE
    - EdgeIterator::edge_id
    - EXPECT_EQ
    - EdgeIterator::shape_edge_id
    - vector::size
    - s2shapeutil::ShapeEdgeId
    linkageType: ''
    returnType: void
    signature: void Verify(const S2ShapeIndex* index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:41,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:42,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: s2shapeutil::GetEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 3
    functionsReached:
    - num_edges
    - vector::push_back
    - edge
    linkageType: ''
    returnType: vector<S2Shape::Edge>
    signature: vector<S2Shape::Edge> GetEdges(const S2ShapeIndex* index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:50,1
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:55,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:55,1
    - Dst: EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:58,1
    - Dst: EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:63,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:64,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:65,1
    - Dst: EdgeIterator::edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    - Dst: s2shapeutil::ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: s2shapeutil::Verify
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 6
    functionsReached:
    - EdgeIterator::shape_id
    - EdgeIterator::Next
    - EdgeIterator::Done
    - s2shapeutil::GetEdges
    - EdgeIterator::edge
    - ASSERT_TRUE
    - EdgeIterator::edge_id
    - EXPECT_EQ
    - EdgeIterator::shape_edge_id
    - vector::size
    - s2shapeutil::ShapeEdgeId
    linkageType: ''
    returnType: void
    signature: void Verify(const S2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:73,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:74,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:78,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:79,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:83,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:84,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Lines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:89,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:90,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Polygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:94,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:97,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Collection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:101,1
    - Dst: auto::Release
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:104,1
    - Dst: s2shapeutil::Verify
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:106,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::Release
    - auto::get
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::Verify
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, Remove)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:110,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:114,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:118,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:119,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:125,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:128,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - EdgeIterator::Next
    - EXPECT_TRUE
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeutilEdgeIteratorTest, AssignmentAndEquality)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: S2HausdorffDistanceQuery::Options::include_interiors
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool include_interiors() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - include_interiors
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: S2HausdorffDistanceQuery::Options::set_include_interiors
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_include_interiors(bool include_interiors)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' distance'
    - ' target_point'
    argTypes:
    - S1ChordAngle
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: S2HausdorffDistanceQuery::DirectedResult::DirectedResult
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DirectedResult(const S1ChordAngle& distance, const S2Point& target_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: S2HausdorffDistanceQuery::DirectedResult::distance
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& target_point() const'
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & target_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' target_to_source'
    - ' source_to_target'
    argTypes:
    - DirectedResult
    - DirectedResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: S2HausdorffDistanceQuery::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Result(const DirectedResult& target_to_source,\n           const
      DirectedResult& source_to_target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.h:146,1
    - Dst: S2HausdorffDistanceQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.h:146,1
    - Dst: S2HausdorffDistanceQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: S2HausdorffDistanceQuery::Result::distance
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 1
    functionsReached:
    - S2HausdorffDistanceQuery::Result::distance
    - std::max
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: '& target_to_source() const'
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DirectedResult
    signature: DirectedResult & target_to_source() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: '& source_to_target() const'
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DirectedResult
    signature: DirectedResult & source_to_target() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: S2HausdorffDistanceQuery::mutable_options
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options * mutable_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: S2HausdorffDistanceQuery::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2HausdorffDistanceQuery::Options::Options()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:27,1
    - Dst: s2shapeutil::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:29,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:34,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:35,1
    - Dst: S2CopyingEdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' shape'
    - ' point'
    argTypes:
    - S2Shape
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: s2shapeutil::ContainsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::GetReferencePoint
    - S2CopyingEdgeCrosser::EdgeOrVertexCrossing
    - num_edges
    - dimension
    - edge
    linkageType: ''
    returnType: bool
    signature: bool ContainsBruteForce(const S2Shape& shape, const S2Point& point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:27,1
    - Dst: s2shapeutil::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:29,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:34,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:35,1
    - Dst: S2CopyingEdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' shape'
    - ' point'
    argTypes:
    - S2Shape
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: s2shapeutil::ContainsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::GetReferencePoint
    - S2CopyingEdgeCrosser::EdgeOrVertexCrossing
    - num_edges
    - dimension
    - edge
    linkageType: ''
    returnType: bool
    signature: bool ContainsBruteForce(const S2Shape& shape, const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:74,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:74,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:75,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:75,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:76,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:76,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:77,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:77,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:78,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:78,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:79,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:79,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:80,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:80,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:81,1
    - Dst: GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:81,1
    - Dst: GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:81,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:83,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:83,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:84,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:84,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:84,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:86,1
    - Dst: loop_vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:86,1
    - Dst: loop_vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:87,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:87,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:87,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:92,1
    - Dst: std::iota
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:93,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:93,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:93,1
    - Dst: std::shuffle
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:94,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:94,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:94,1
    - Dst: std::mt19937_64
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:96,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:96,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:97,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:97,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' shape'
    - ' expected'
    argTypes:
    - LaxShape
    - S2LaxPolygonShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: TestLaxDecoding
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - is_full
    - num_loop_vertices
    - num_edges
    - vector::end
    - loop_vertex
    - chain_position
    - num_vertices
    - num_loops
    - dimension
    - num_chains
    - std::iota
    - EXPECT_EQ
    - vector::begin
    - std::shuffle
    - GetReferencePoint
    - chain_edge
    - chain
    - edge
    - is_empty
    - std::mt19937_64
    linkageType: ''
    returnType: void
    signature: void TestLaxDecoding(const LaxShape& shape, const S2LaxPolygonShape&
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:105,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:106,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:107,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:107,1
    - Dst: base
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:107,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:107,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:108,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:108,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' shape'
    - ' expected'
    argTypes:
    - LaxShape
    - Encoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: TestLaxRecoding
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - base
    - string_view
    - Encoder::length
    - Encoder::base
    - Encode
    - length
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TestLaxRecoding(const LaxShape& shape, const Encoder& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:114,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:115,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:119,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:119,1
    - Dst: EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:120,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:121,1
    - Dst: EncodedS2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:121,1
    - Dst: TestLaxDecoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:122,1
    - Dst: TestLaxRecoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:123,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:128,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:128,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:129,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:130,1
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:130,1
    - Dst: TestLaxDecoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:131,1
    - Dst: TestLaxRecoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:132,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:137,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:137,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:138,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:139,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:140,1
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:140,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:141,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:141,1
    - Dst: TestLaxDecoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:142,1
    - Dst: TestLaxRecoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - ' original'
    argTypes:
    - S2LaxPolygonShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 145
    functionName: TestS2LaxPolygonShapeEncoding
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxDecoding
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2LaxPolygonShape::Init
    - Encoder::length
    - Encoder::base
    - Encode
    - ASSERT_TRUE
    - EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
    - S2Error::ok
    - TestLaxRecoding
    - EncodedS2LaxPolygonShape::Init
    - Encoder::Encoder
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TestS2LaxPolygonShapeEncoding(const S2LaxPolygonShape& original)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:148,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:150,1
    - Dst: S2Polygon
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:154,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:155,1
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:156,1
    - Dst: S2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:157,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:158,1
    - Dst: S2LaxPolygonShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:158,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:159,1
    - Dst: S2LaxPolygonShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:159,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:160,1
    - Dst: S2LaxPolygonShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:160,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:161,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:161,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::num_edges
    - S2Polygon
    - S2LaxPolygonShape::num_vertices
    - EXPECT_TRUE
    - S2LaxPolygonShape::num_chains
    - S2LaxPolygonShape::GetReferencePoint
    - TestS2LaxPolygonShapeEncoding
    - S2LaxPolygonShape::is_full
    - EXPECT_EQ
    - ABSL_LOG
    - S2LaxPolygonShape::dimension
    - S2LaxPolygonShape::num_loops
    - EXPECT_FALSE
    - S2LaxPolygonShape::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:169,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:170,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:173,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:177,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:178,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:179,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:179,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:179,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:180,1
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:180,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:181,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:182,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:183,1
    - Dst: S2LaxPolygonShape::loop_vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:183,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:188,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:189,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:190,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:191,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:192,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:192,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:192,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:193,1
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:193,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:194,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:196,1
    - Dst: S2LaxPolygonShape::loop_vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 199
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - ASSERT_EQ
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2LaxPolygonShape::num_vertices
    - size
    - std::move
    - TestS2LaxPolygonShapeEncoding
    - s2textformat::ParsePointsOrDie
    - S2LaxPolygonShape::num_loops
    - S2LaxPolygonShape::loop_vertex
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, Move)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:202,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:202,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:203,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:204,1
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:204,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:205,1
    - Dst: S2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:205,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:206,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:207,1
    - Dst: S2LaxPolygonShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:207,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:208,1
    - Dst: S2LaxPolygonShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:208,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:209,1
    - Dst: S2LaxPolygonShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:209,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:210,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:210,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::num_edges
    - S2Polygon
    - S2LaxPolygonShape::num_vertices
    - EXPECT_TRUE
    - S2LaxPolygonShape::num_chains
    - S2LaxPolygonShape::GetReferencePoint
    - TestS2LaxPolygonShapeEncoding
    - S2LaxPolygonShape::is_full
    - s2textformat::MakeLoopOrDie
    - EXPECT_EQ
    - S2LaxPolygonShape::dimension
    - S2LaxPolygonShape::num_loops
    - EXPECT_FALSE
    - S2LaxPolygonShape::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:218,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:220,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:221,1
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:222,1
    - Dst: S2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:223,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:224,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:225,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:225,1
    - Dst: S2LaxPolygonShape::edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:228,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:229,1
    - Dst: S2LaxPolygonShape::chain_edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:230,1
    - Dst: S2LaxPolygonShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:230,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:231,1
    - Dst: S2LaxPolygonShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:231,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:232,1
    - Dst: S2LaxPolygonShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:232,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:233,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:233,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 235
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::num_edges
    - vector::push_back
    - S2LaxPolygonShape::chain_edge
    - S2LaxPolygonShape::num_vertices
    - S2LaxPolygonShape::edge
    - S2LaxPolygonShape::num_chains
    - EXPECT_TRUE
    - S2LaxPolygonShape::GetReferencePoint
    - S2LaxPolygonShape::chain
    - S2LaxPolygonShape::is_full
    - TestS2LaxPolygonShapeEncoding
    - s2textformat::ParsePointsOrDie
    - EXPECT_EQ
    - S2LaxPolygonShape::dimension
    - S2LaxPolygonShape::num_loops
    - EXPECT_FALSE
    - S2LaxPolygonShape::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, SingleVertexPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:242,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:243,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:243,1
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:243,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:244,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:244,1
    - Dst: S2LaxPolygonShape::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:245,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:245,1
    - Dst: S2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:246,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:247,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:248,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:248,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:248,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:249,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:250,1
    - Dst: S2LaxPolygonShape::loop_vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:250,1
    - Dst: S2LaxPolygonShape::edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:251,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:252,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:253,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:254,1
    - Dst: S2LaxPolygonShape::chain_edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:255,1
    - Dst: S2LaxPolygonShape::chain_edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:257,1
    - Dst: S2LaxPolygonShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:257,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:258,1
    - Dst: S2LaxPolygonShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:258,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:259,1
    - Dst: S2LaxPolygonShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:259,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:260,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:260,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:260,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 262
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::chain_edge
    - S2LaxPolygonShape::edge
    - S2LaxPolygonShape::num_chains
    - S2LaxPolygonShape::chain
    - s2shapeutil::ContainsBruteForce
    - S2LaxPolygonShape::dimension
    - vector::size
    - S2LaxPolygonShape::num_vertices
    - S2LaxPolygonShape::loop_vertex
    - EXPECT_EQ
    - S2LaxPolygonShape::is_empty
    - S2::Origin
    - S2LaxPolygonShape::num_loop_vertices
    - TestS2LaxPolygonShapeEncoding
    - s2textformat::ParsePointsOrDie
    - S2LaxPolygonShape::num_loops
    - S2LaxPolygonShape::num_edges
    - S2LaxPolygonShape::is_full
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, SingleLoopPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:268,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:269,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:273,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:273,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:273,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:275,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:275,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:275,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:277,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:277,1
    - Dst: S2LaxPolygonShape::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:278,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:279,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:279,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:279,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:281,1
    - Dst: S2LaxPolygonShape::loop_vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:281,1
    - Dst: S2LaxPolygonShape::edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:282,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:283,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:284,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:284,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:288,1
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:289,1
    - Dst: S2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:290,1
    - Dst: S2LaxPolygonShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:290,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:291,1
    - Dst: S2LaxPolygonShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:291,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:292,1
    - Dst: S2LaxPolygonShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:292,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:293,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:293,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:293,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 295
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::edge
    - S2LaxPolygonShape::num_chains
    - S2LaxPolygonShape::chain
    - s2shapeutil::ContainsBruteForce
    - S2LaxPolygonShape::dimension
    - vector::size
    - S2LaxPolygonShape::num_vertices
    - S2LaxPolygonShape::loop_vertex
    - EXPECT_EQ
    - S2LaxPolygonShape::is_empty
    - S2::Origin
    - S2LaxPolygonShape::num_loop_vertices
    - TestS2LaxPolygonShapeEncoding
    - s2textformat::ParsePointsOrDie
    - S2LaxPolygonShape::num_loops
    - S2LaxPolygonShape::num_edges
    - size
    - S2LaxPolygonShape::is_full
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, MultiLoopPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:300,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:302,1
    - Dst: auto::loop
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:303,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:305,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:305,1
    - Dst: S2LaxPolygonShape::loop_vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 309
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - MakePolygonOrDie
    - auto::num_loops
    - S2LaxPolygonShape::loop_vertex
    - EXPECT_EQ
    - oriented_vertex
    - auto::loop
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, MultiLoopS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:314,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:315,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:318,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:319,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:319,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:319,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:320,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:323,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:323,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:325,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:325,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:325,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:326,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:327,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:327,1
    - Dst: S2LaxPolygonShape::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:328,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:329,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:329,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:329,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:331,1
    - Dst: S2LaxPolygonShape::loop_vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:331,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:333,1
    - Dst: S2LaxPolygonShape::chain_position
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:333,1
    - Dst: S2Shape::ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:333,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:334,1
    - Dst: S2LaxPolygonShape::edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:335,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:335,1
    - Dst: S2LaxPolygonShape::edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:335,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:339,1
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:339,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:340,1
    - Dst: S2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:340,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:345,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:346,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:347,1
    - Dst: std::shuffle
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:350,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:350,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:350,1
    - Dst: std::mt19937_64
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:352,1
    - Dst: S2LaxPolygonShape::chain_position
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:352,1
    - Dst: S2Shape::ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:352,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:355,1
    - Dst: S2LaxPolygonShape::edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:355,1
    - Dst: S2Shape::Edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:355,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 358
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::chain_position
    - S2LaxPolygonShape::edge
    - S2LaxPolygonShape::num_chains
    - vector::end
    - S2LaxPolygonShape::chain
    - vector::size
    - S2LaxPolygonShape::num_vertices
    - S2LaxPolygonShape::loop_vertex
    - EXPECT_EQ
    - vector::begin
    - vector::push_back
    - S2Shape::ChainPosition
    - S2LaxPolygonShape::num_loop_vertices
    - S1Angle::Degrees
    - std::shuffle
    - TestS2LaxPolygonShapeEncoding
    - S2LaxPolygonShape::num_loops
    - S2Testing::MakeTaggedSeedSeq
    - std::mt19937_64
    - S2LaxPolygonShape::num_edges
    - size
    - S2LatLng::FromDegrees
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeRegularPoints
    - S2Shape::Edge
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, ManyLoopPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:362,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:363,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:364,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:366,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:366,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 368
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::GetReferencePoint
    - s2textformat::ParsePointsOrDie
    - EXPECT_FALSE
    - TestS2LaxPolygonShapeEncoding
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, DegenerateLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:372,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:373,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:375,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:375,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:375,1
    - Dst: TestS2LaxPolygonShapeEncoding
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2::Origin
    - EXPECT_TRUE
    - TestS2LaxPolygonShapeEncoding
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::ContainsBruteForce
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, InvertedLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:381,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:382,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:382,1
    - Dst: GetCapBound
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:383,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:386,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:387,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:387,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bitgen
    - ' loop'
    - shape
    argTypes:
    - absl::BitGenRef
    - S2Loop
    - unique_ptr<S2Shape>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 389
    functionName: CompareS2LoopToShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - GetCapBound
    - s2random::SamplePoint
    - S2ContainsPointQuery::ShapeContains
    - EXPECT_EQ
    - Contains
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void CompareS2LoopToShape(absl::BitGenRef bitgen, const S2Loop& loop,\n
      \                         unique_ptr<S2Shape> shape)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:392,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:393,1
    - Dst: S2Fractal::set_max_level
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:396,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:396,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:397,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:397,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:398,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:399,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:399,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:400,1
    - Dst: CompareS2LoopToShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:403,1
    - Dst: make_unique<S2LaxLoopShape>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:403,1
    - Dst: vector<S2Point>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:407,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:407,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:408,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:408,1
    - Dst: CompareS2LoopToShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:409,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 411
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - make_unique<S2LaxLoopShape>
    - s2random::Point
    - unique_ptr::num_vertices
    - S2Fractal::MakeLoop
    - make_unique<S2LaxPolygonShape>
    - S2Fractal::set_fractal_dimension
    - S1Angle::Degrees
    - CompareS2LoopToShape
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Fractal::set_max_level
    - vector<S2Point>
    - S2Testing::MakeTaggedSeedSeq
    - unique_ptr::vertex
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, CompareToS2Loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:418,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:419,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:420,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:423,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:424,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:424,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 426
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - s2coding::RoundTrip
    - s2coding::S2HintCoder::S2HintCoder
    - s2textformat::ParsePointsOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:431,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:431,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:432,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:432,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:433,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:433,1
    - Dst: S2LaxPolygonShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:436,1
    - Dst: S2LaxPolygonShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:438,1
    - Dst: S2LaxPolygonShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:441,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:442,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:446,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:446,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:447,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:448,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:449,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:450,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:451,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:452,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:453,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:454,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 456
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2LaxPolygonShape::num_chains
    - s2textformat::ParsePointsOrDie
    - S2LaxPolygonShape::chains
    - EXPECT_NE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, ChainIteratorWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:460,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:460,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:461,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:461,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:462,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:462,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:463,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:463,1
    - Dst: S2LaxPolygonShape::chains
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:468,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:470,1
    - Dst: S2Shape::ChainVertexRange::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:470,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:470,1
    - Dst: S2Shape::ChainVertexRange::begin
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:477,1
    - Dst: S2Shape::ChainVertexIterator::ChainVertexIterator
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:477,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:479,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:479,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:480,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:480,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:481,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:485,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:486,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:486,1
    - Dst: S2Shape::ChainVertexRange::begin
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:489,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:489,1
    - Dst: S2Shape::ChainVertexRange::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:490,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:491,1
    - Dst: S2Shape::ChainVertexRange::begin
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:491,1
    - Dst: S2Shape::ChainVertexRange::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:491,1
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:491,1
    - Dst: S2Shape::ChainVertexRange::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:492,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 499
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2Shape::ChainVertexIterator::ChainVertexIterator
    - vector::push_back
    - size
    - vector::data
    - S2Shape::ChainVertexRange::num_vertices
    - S2Shape::ChainVertexRange::begin
    - s2textformat::ParsePointsOrDie
    - S2LaxPolygonShape::chains
    - EXPECT_NE
    - EXPECT_EQ
    - S2Shape::ChainVertexRange::end
    - std::copy_n
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShape, ChainVertexIteratorWorks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:502,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:502,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:503,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:505,1
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:506,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:507,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:508,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 511
    functionName: DecodeS2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2LaxPolygonShape::Init
    - absl::string_view::size
    - std::string
    - S2Error::ok
    - absl::string_view::data
    - S2Error::S2Error
    linkageType: ''
    returnType: std::string
    signature: std::string DecodeS2LaxPolygonShape(absl::string_view data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:514,1
    - Dst: DecodeS2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:514,1
    - Dst: HasSubstr
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 515
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - HasSubstr
    - EXPECT_THAT
    - DecodeS2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShapeTest, InsufficientDataInEncoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:518,1
    - Dst: DecodeS2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:518,1
    - Dst: HasSubstr
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - HasSubstr
    - EXPECT_THAT
    - DecodeS2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShapeTest, BadVersionNumber)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:522,1
    - Dst: DecodeS2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:522,1
    - Dst: HasSubstr
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - HasSubstr
    - EXPECT_THAT
    - DecodeS2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShapeTest, BadLoopNumber)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:526,1
    - Dst: DecodeS2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:526,1
    - Dst: HasSubstr
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - HasSubstr
    - EXPECT_THAT
    - DecodeS2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShapeTest, BadVerticesInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:531,1
    - Dst: DecodeS2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:532,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:532,1
    - Dst: HasSubstr
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - HasSubstr
    - EXPECT_THAT
    - std::string
    - DecodeS2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShapeTest, BadVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:541,1
    - Dst: DecodeS2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:541,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:541,1
    - Dst: HasSubstr
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - HasSubstr
    - EXPECT_THAT
    - std::string
    - DecodeS2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxPolygonShapeTest, BadLoopOffsets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:546,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:547,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:551,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:552,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:555,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:556,1
    - Dst: absl::c_reverse
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:557,1
    - Dst: std::vector::back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:557,1
    - Dst: S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:559,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - num_points
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 560
    functionName: MakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::back
    - std::move
    - S2Testing::KmToAngle
    - absl::c_reverse
    - MakePointOrDie
    - std::vector::emplace_back
    - S2LaxPolygonShape
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: S2LaxPolygonShape
    signature: S2LaxPolygonShape MakePolygon(int num_points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:563,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:565,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:565,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:566,1
    - Dst: auto::Encode
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:567,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:570,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:570,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:571,1
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:572,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 575
    functionName: BM_DecodeS2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2LaxPolygonShape::Init
    - auto::Encode
    - range
    - Encoder::length
    - Encoder::base
    - benchmark::DoNotOptimize
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_DecodeS2LaxPolygonShape(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _first
    - _dir
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: S2::LoopOrder
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LoopOrder(int _first, int _dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: S2::internal::KahanSum::KahanSum
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KahanSum()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: S2::internal::KahanSum::KahanSum
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KahanSum(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: operator+=(T value)
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator+=(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: operator T() const
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator T() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: S2::internal::KahanSum::Compensation
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T Compensation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: S2::internal::KahanSum::KahanSum
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KahanSum()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: S2::internal::KahanSum::KahanSum
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KahanSum(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: operator+=(T value)
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator+=(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: operator T() const
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator T() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: S2::internal::KahanSum::Compensation
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T Compensation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/s2geometry/src/s2/s2loop_measures.h:211,1
    - Dst: S2::internal::GetSurfaceIntegral
      Src: /src/s2geometry/src/s2/s2loop_measures.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loop
    - f_tri
    argTypes:
    - S2PointLoopSpan
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: S2::GetSurfaceIntegral
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached:
    - S2::internal::GetSurfaceIntegral
    - T
    linkageType: ''
    returnType: T
    signature: "T GetSurfaceIntegral(S2PointLoopSpan loop,\n                     T
      f_tri(const S2Point&, const S2Point&, const S2Point&))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::internal::GetSurfaceIntegral
      Src: /src/s2geometry/src/s2/s2loop_measures.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loop
    - f_tri
    argTypes:
    - S2PointLoopSpan
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: S2::GetSurfaceIntegralKahan
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached:
    - S2::internal::GetSurfaceIntegral
    linkageType: ''
    returnType: T
    signature: "T GetSurfaceIntegralKahan(S2PointLoopSpan loop,\n                          T
      f_tri(const S2Point&, const S2Point&,\n                                  const
      S2Point&))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - LoopOrder
    - LoopOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: operator==(LoopOrder x, LoopOrder y)
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(LoopOrder x, LoopOrder y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.h:298,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.h:301,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop_measures.h:312,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2loop_measures.h:312,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop_measures.h:313,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2loop_measures.h:314,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2loop_measures.h:314,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2loop_measures.h:316,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2loop_measures.h:324,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2loop_measures.h:325,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2loop_measures.h:343,1
    - Dst: f_tri
      Src: /src/s2geometry/src/s2/s2loop_measures.h:349,1
    - Dst: f_tri
      Src: /src/s2geometry/src/s2/s2loop_measures.h:352,1
    - Dst: f_tri
      Src: /src/s2geometry/src/s2/s2loop_measures.h:355,1
    - Dst: f_tri
      Src: /src/s2geometry/src/s2/s2loop_measures.h:360,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.h:360,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - loop
    - f_tri
    - ' sum'
    argTypes:
    - S2PointLoopSpan
    - T
    - TAccumulator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 362
    functionName: S2::internal::GetSurfaceIntegral
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 2
    functionsReached:
    - f_tri
    - S2PointLoopSpan::size
    - S2Point::DotProd
    - S2Point::Angle
    - Angle
    - std::fabs
    - CrossProd
    - S2::RobustCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void internal::GetSurfaceIntegral(S2PointLoopSpan loop,\n                                  T
      f_tri(const S2Point&, const S2Point&,\n                                          const
      S2Point&),\n                                  TAccumulator& sum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _first
    - _dir
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: S2::LoopOrder
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LoopOrder(int _first, int _dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: S2::internal::KahanSum::KahanSum
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KahanSum()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: S2::internal::KahanSum::KahanSum
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KahanSum(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: operator+=(T value)
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator+=(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: operator T() const
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator T() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: S2::internal::KahanSum::Compensation
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T Compensation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: S2::internal::KahanSum::KahanSum
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KahanSum()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: S2::internal::KahanSum::KahanSum
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KahanSum(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: operator+=(T value)
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator+=(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: operator T() const
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator T() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: S2::internal::KahanSum::Compensation
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T Compensation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/s2geometry/src/s2/s2loop_measures.h:211,1
    - Dst: S2::internal::GetSurfaceIntegral
      Src: /src/s2geometry/src/s2/s2loop_measures.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loop
    - f_tri
    argTypes:
    - S2PointLoopSpan
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: S2::GetSurfaceIntegral
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached:
    - S2::internal::GetSurfaceIntegral
    - T
    linkageType: ''
    returnType: T
    signature: "T GetSurfaceIntegral(S2PointLoopSpan loop,\n                     T
      f_tri(const S2Point&, const S2Point&, const S2Point&))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::internal::GetSurfaceIntegral
      Src: /src/s2geometry/src/s2/s2loop_measures.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loop
    - f_tri
    argTypes:
    - S2PointLoopSpan
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: S2::GetSurfaceIntegralKahan
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached:
    - S2::internal::GetSurfaceIntegral
    linkageType: ''
    returnType: T
    signature: "T GetSurfaceIntegralKahan(S2PointLoopSpan loop,\n                          T
      f_tri(const S2Point&, const S2Point&,\n                                  const
      S2Point&))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - LoopOrder
    - LoopOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: operator==(LoopOrder x, LoopOrder y)
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(LoopOrder x, LoopOrder y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.h:298,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.h:301,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop_measures.h:312,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2loop_measures.h:312,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop_measures.h:313,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2loop_measures.h:314,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2loop_measures.h:314,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2loop_measures.h:316,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2loop_measures.h:324,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2loop_measures.h:325,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2loop_measures.h:343,1
    - Dst: f_tri
      Src: /src/s2geometry/src/s2/s2loop_measures.h:349,1
    - Dst: f_tri
      Src: /src/s2geometry/src/s2/s2loop_measures.h:352,1
    - Dst: f_tri
      Src: /src/s2geometry/src/s2/s2loop_measures.h:355,1
    - Dst: f_tri
      Src: /src/s2geometry/src/s2/s2loop_measures.h:360,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.h:360,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - loop
    - f_tri
    - ' sum'
    argTypes:
    - S2PointLoopSpan
    - T
    - TAccumulator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 362
    functionName: S2::internal::GetSurfaceIntegral
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.h
    functionUses: 4
    functionsReached:
    - f_tri
    - S2PointLoopSpan::size
    - S2Point::DotProd
    - S2Point::Angle
    - Angle
    - std::fabs
    - CrossProd
    - S2::RobustCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void internal::GetSurfaceIntegral(S2PointLoopSpan loop,\n                                  T
      f_tri(const S2Point&, const S2Point&,\n                                          const
      S2Point&),\n                                  TAccumulator& sum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:42,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:43,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:44,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:44,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:44,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:45,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:45,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:45,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:46,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:46,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:46,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:47,1
    - Dst: Matrix3x3_d::Det
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:47,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:49,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:49,1
    - Dst: S2::ToFrame
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:49,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:49,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:49,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:50,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:50,1
    - Dst: S2::ToFrame
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:50,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:50,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:50,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:51,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:51,1
    - Dst: S2::ToFrame
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:51,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:51,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:51,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:53,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:53,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:53,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:53,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:54,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:54,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:54,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:54,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:55,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:55,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:55,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:55,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil_test.cc
    functionUses: 0
    functionsReached:
    - Matrix3x3_d::Col
    - S2::GetFrame
    - EXPECT_DOUBLE_EQ
    - Matrix3x3_d::Det
    - EXPECT_TRUE
    - S2Point
    - S2::ToFrame
    - S2::ApproxEquals
    - S2::IsUnitLength
    - S2::FromFrame
    linkageType: ''
    returnType: void
    signature: void TEST(S2, Frames)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::Rotate
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:62,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:62,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:66,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:66,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:66,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:66,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:72,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:77,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:79,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:80,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:80,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' p'
    - ' axis'
    - angle
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 83
    functionName: TestRotate
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2::TurnAngle
    - asin
    - CrossProd
    - S2::IsUnitLength
    - S1Angle
    - remainder
    - EXPECT_LE
    - S1Angle::radians
    - S2::Rotate
    - abs
    linkageType: ''
    returnType: void
    signature: void TestRotate(const S2Point& p, const S2Point& axis, S1Angle angle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:87,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:87,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:89,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:90,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:92,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:94,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:95,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:95,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:97,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:98,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:99,1
    - Dst: TestRotate
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:100,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2::GetPointOnLine
    - absl::Bernoulli
    - TestRotate
    - S1Angle::Radians
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, Rotate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:111,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:113,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:114,1
    - Dst: s2pred::TriageSign
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:115,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:115,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: GetMinExpensiveLevel
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil_test.cc
    functionUses: 0
    functionsReached:
    - S2::Origin
    - S2CellId::parent
    - S2Point::CrossProd
    - S2Cell::GetVertex
    - s2pred::TriageSign
    linkageType: ''
    returnType: int
    signature: int GetMinExpensiveLevel(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:145,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:145,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:145,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:146,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:150,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:150,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:151,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:152,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:152,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:152,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:160,1
    - Dst: GetMinExpensiveLevel
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:160,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:160,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:167,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:167,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:168,1
    - Dst: GetMinExpensiveLevel
      Src: /src/s2geometry/src/s2/s2pointutil_test.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 169
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil_test.cc
    functionUses: 0
    functionsReached:
    - S2::Origin
    - acos
    - S2::STtoUV
    - ABSL_LOG
    - S2Point
    - S2LatLng
    - EXPECT_GE
    - GetMinExpensiveLevel
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2, OriginTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: ClosedSetNormalizer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClosedSetNormalizer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: ClosedSetNormalizer::Options::suppress_lower_dimensions() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ClosedSetNormalizer::Options::suppress_lower_dimensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - suppress_lower_dimensions
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: "ClosedSetNormalizer::Options::set_suppress_lower_dimensions(\n
      \   bool suppress_lower_dimensions)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ClosedSetNormalizer::Options::set_suppress_lower_dimensions(\n
      \   bool suppress_lower_dimensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: '&

      ClosedSetNormalizer::graph_options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<S2Builder::GraphOptions>
    signature: 'std::vector<S2Builder::GraphOptions> &

      ClosedSetNormalizer::graph_options() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: ClosedSetNormalizer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClosedSetNormalizer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: ClosedSetNormalizer::Options::suppress_lower_dimensions() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ClosedSetNormalizer::Options::suppress_lower_dimensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - suppress_lower_dimensions
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: "ClosedSetNormalizer::Options::set_suppress_lower_dimensions(\n
      \   bool suppress_lower_dimensions)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ClosedSetNormalizer::Options::set_suppress_lower_dimensions(\n
      \   bool suppress_lower_dimensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: '&

      ClosedSetNormalizer::graph_options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<S2Builder::GraphOptions>
    signature: 'std::vector<S2Builder::GraphOptions> &

      ClosedSetNormalizer::graph_options() const'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wrap_distance
      Src: /src/s2geometry/src/s2/s2projections.cc:32,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:33,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:33,1
    - Dst: R2Point::x
      Src: /src/s2geometry/src/s2/s2projections.cc:35,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2projections.cc:35,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:35,1
    - Dst: R2Point::x
      Src: /src/s2geometry/src/s2/s2projections.cc:35,1
    - Dst: std::round
      Src: /src/s2geometry/src/s2/s2projections.cc:36,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:36,1
    - Dst: R2Point::x
      Src: /src/s2geometry/src/s2/s2projections.cc:36,1
    - Dst: R2Point::x
      Src: /src/s2geometry/src/s2/s2projections.cc:36,1
    - Dst: R2Point::y
      Src: /src/s2geometry/src/s2/s2projections.cc:39,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2projections.cc:39,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:39,1
    - Dst: R2Point::y
      Src: /src/s2geometry/src/s2/s2projections.cc:39,1
    - Dst: std::round
      Src: /src/s2geometry/src/s2/s2projections.cc:40,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:40,1
    - Dst: R2Point::y
      Src: /src/s2geometry/src/s2/s2projections.cc:40,1
    - Dst: R2Point::y
      Src: /src/s2geometry/src/s2/s2projections.cc:40,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: S2::Projection::WrapDestination
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - fabs
    - wrap_distance
    - std::round
    - R2Point::y
    - R2Point
    - R2Point::x
    - y
    - x
    linkageType: ''
    returnType: R2Point
    signature: R2Point Projection::WrapDestination(const R2Point& a, const R2Point&
      b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - ' a'
    - ' b'
    argTypes:
    - double
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: S2::Projection::Interpolate
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R2Point
    signature: "R2Point Projection::Interpolate(double f,\n                                const
      R2Point& a, const R2Point& b) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x_scale
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: S2::PlateCarreeProjection::PlateCarreeProjection
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PlateCarreeProjection::PlateCarreeProjection(double x_scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::PlateCarreeProjection::FromLatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:60,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: S2::PlateCarreeProjection::Project
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - S2::PlateCarreeProjection::FromLatLng
    - S2LatLng
    linkageType: ''
    returnType: R2Point
    signature: R2Point PlateCarreeProjection::Project(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:64,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2projections.cc:64,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2projections.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: S2::PlateCarreeProjection::FromLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 1
    functionsReached:
    - lat
    - lng
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point PlateCarreeProjection::FromLatLng(const S2LatLng& ll) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::PlateCarreeProjection::ToLatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: S2::PlateCarreeProjection::Unproject
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - S2::PlateCarreeProjection::ToLatLng
    linkageType: ''
    returnType: S2Point
    signature: S2Point PlateCarreeProjection::Unproject(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2projections.cc:73,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:73,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2projections.cc:74,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: S2::PlateCarreeProjection::ToLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 1
    functionsReached:
    - S2LatLng::FromRadians
    - y
    - x
    - remainder
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng PlateCarreeProjection::ToLatLng(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: S2::PlateCarreeProjection::wrap_distance
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point PlateCarreeProjection::wrap_distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: S2::MercatorProjection::MercatorProjection
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MercatorProjection::MercatorProjection(double max_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::MercatorProjection::FromLatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:88,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: S2::MercatorProjection::Project
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - S2LatLng
    - S2::MercatorProjection::FromLatLng
    linkageType: ''
    returnType: R2Point
    signature: R2Point MercatorProjection::Project(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2projections.cc:94,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2projections.cc:94,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2projections.cc:95,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:96,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2projections.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: S2::MercatorProjection::FromLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 1
    functionsReached:
    - lng
    - sin
    - R2Point
    - lat
    - log
    linkageType: ''
    returnType: R2Point
    signature: R2Point MercatorProjection::FromLatLng(const S2LatLng& ll) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::MercatorProjection::ToLatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: S2::MercatorProjection::Unproject
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - S2::MercatorProjection::ToLatLng
    linkageType: ''
    returnType: S2Point
    signature: S2Point MercatorProjection::Unproject(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2projections.cc:105,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:105,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/s2projections.cc:106,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:106,1
    - Dst: std::isinf
      Src: /src/s2geometry/src/s2/s2projections.cc:107,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2projections.cc:107,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2projections.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: S2::MercatorProjection::ToLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 1
    functionsReached:
    - std::isinf
    - exp
    - asin
    - S2LatLng::FromRadians
    - remainder
    - y
    - x
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng MercatorProjection::ToLatLng(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: S2::MercatorProjection::wrap_distance
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point MercatorProjection::wrap_distance() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wrap_distance
      Src: /src/s2geometry/src/s2/s2projections.cc:32,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:33,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:33,1
    - Dst: R2Point::x
      Src: /src/s2geometry/src/s2/s2projections.cc:35,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2projections.cc:35,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:35,1
    - Dst: R2Point::x
      Src: /src/s2geometry/src/s2/s2projections.cc:35,1
    - Dst: std::round
      Src: /src/s2geometry/src/s2/s2projections.cc:36,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:36,1
    - Dst: R2Point::x
      Src: /src/s2geometry/src/s2/s2projections.cc:36,1
    - Dst: R2Point::x
      Src: /src/s2geometry/src/s2/s2projections.cc:36,1
    - Dst: R2Point::y
      Src: /src/s2geometry/src/s2/s2projections.cc:39,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2projections.cc:39,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:39,1
    - Dst: R2Point::y
      Src: /src/s2geometry/src/s2/s2projections.cc:39,1
    - Dst: std::round
      Src: /src/s2geometry/src/s2/s2projections.cc:40,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:40,1
    - Dst: R2Point::y
      Src: /src/s2geometry/src/s2/s2projections.cc:40,1
    - Dst: R2Point::y
      Src: /src/s2geometry/src/s2/s2projections.cc:40,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: S2::Projection::WrapDestination
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - fabs
    - wrap_distance
    - std::round
    - R2Point::y
    - R2Point
    - R2Point::x
    - y
    - x
    linkageType: ''
    returnType: R2Point
    signature: R2Point Projection::WrapDestination(const R2Point& a, const R2Point&
      b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - ' a'
    - ' b'
    argTypes:
    - double
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: S2::Projection::Interpolate
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R2Point
    signature: "R2Point Projection::Interpolate(double f,\n                                const
      R2Point& a, const R2Point& b) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x_scale
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: S2::PlateCarreeProjection::PlateCarreeProjection
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PlateCarreeProjection::PlateCarreeProjection(double x_scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::PlateCarreeProjection::FromLatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:60,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: S2::PlateCarreeProjection::Project
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - S2::PlateCarreeProjection::FromLatLng
    - S2LatLng
    linkageType: ''
    returnType: R2Point
    signature: R2Point PlateCarreeProjection::Project(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:64,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2projections.cc:64,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2projections.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: S2::PlateCarreeProjection::FromLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 2
    functionsReached:
    - lat
    - lng
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point PlateCarreeProjection::FromLatLng(const S2LatLng& ll) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::PlateCarreeProjection::ToLatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: S2::PlateCarreeProjection::Unproject
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - S2::PlateCarreeProjection::ToLatLng
    linkageType: ''
    returnType: S2Point
    signature: S2Point PlateCarreeProjection::Unproject(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2projections.cc:73,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:73,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2projections.cc:74,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: S2::PlateCarreeProjection::ToLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 2
    functionsReached:
    - S2LatLng::FromRadians
    - y
    - x
    - remainder
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng PlateCarreeProjection::ToLatLng(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: S2::PlateCarreeProjection::wrap_distance
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point PlateCarreeProjection::wrap_distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: S2::MercatorProjection::MercatorProjection
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MercatorProjection::MercatorProjection(double max_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::MercatorProjection::FromLatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:88,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: S2::MercatorProjection::Project
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - S2LatLng
    - S2::MercatorProjection::FromLatLng
    linkageType: ''
    returnType: R2Point
    signature: R2Point MercatorProjection::Project(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2projections.cc:94,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2projections.cc:94,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2projections.cc:95,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:96,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2projections.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: S2::MercatorProjection::FromLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 2
    functionsReached:
    - lng
    - sin
    - R2Point
    - lat
    - log
    linkageType: ''
    returnType: R2Point
    signature: R2Point MercatorProjection::FromLatLng(const S2LatLng& ll) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::MercatorProjection::ToLatLng
      Src: /src/s2geometry/src/s2/s2projections.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: S2::MercatorProjection::Unproject
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - S2::MercatorProjection::ToLatLng
    linkageType: ''
    returnType: S2Point
    signature: S2Point MercatorProjection::Unproject(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2projections.cc:105,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2projections.cc:105,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/s2projections.cc:106,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2projections.cc:106,1
    - Dst: std::isinf
      Src: /src/s2geometry/src/s2/s2projections.cc:107,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2projections.cc:107,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2projections.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: S2::MercatorProjection::ToLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 2
    functionsReached:
    - std::isinf
    - exp
    - asin
    - S2LatLng::FromRadians
    - remainder
    - y
    - x
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng MercatorProjection::ToLatLng(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: S2::MercatorProjection::wrap_distance
    functionSourceFile: /src/s2geometry/src/s2/s2projections.cc
    functionUses: 0
    functionsReached:
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point MercatorProjection::wrap_distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - os
    argTypes:
    - S2Point
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: PrintTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void PrintTo(const S2Point& p, std::ostream* os)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' l'
    - os
    argTypes:
    - S2Polyline
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: PrintTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void PrintTo(const S2Polyline& l, std::ostream* os)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - os
    argTypes:
    - S2Polygon
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: PrintTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void PrintTo(const S2Polygon& p, std::ostream* os)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' r'
    - os
    argTypes:
    - S2LatLngRect
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: PrintTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void PrintTo(const S2LatLngRect& r, std::ostream* os)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' l'
    - os
    argTypes:
    - S2Loop
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: PrintTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void PrintTo(const S2Loop& l, std::ostream* os)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:75,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: S2::IsAlmostZeroLength
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - fabs
    - Norm2
    linkageType: ''
    returnType: bool
    signature: bool IsAlmostZeroLength(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:75,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: S2::IsAlmostZeroLength
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - fabs
    - Norm2
    linkageType: ''
    returnType: bool
    signature: bool IsAlmostZeroLength(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:84,1
    - Dst: IsAlmostZeroLength
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: S2::S2PointMatcher::S2PointMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - IsAlmostZeroLength
    - ABSL_CHECK
    linkageType: ''
    returnType: void
    signature: void S2PointMatcher::S2PointMatcher(const S2Point& expected, S1Angle
      tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::S2PointMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:89,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: S2::S2PointMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - s2textformat::MakePointOrDie
    - S2::S2PointMatcher::MatchAndExplain
    linkageType: ''
    returnType: bool
    signature: "bool S2PointMatcher::MatchAndExplain(string_view s,\n                                     MatchResultListener*
      listener) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsAlmostZeroLength
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:97,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:101,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:102,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Point
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: S2::S2PointMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - S1Angle
    - IsAlmostZeroLength
    - S2::ApproxEquals
    - S1Angle::Zero
    linkageType: ''
    returnType: bool
    signature: "bool S2PointMatcher::MatchAndExplain(const S2Point& g,\n                                     MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:114,1
    - Dst: S2::S2PolylineMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: S2::S2PolylineMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - s2textformat::MakePolylineOrDie
    - S2::S2PolylineMatcher::MatchAndExplain
    linkageType: ''
    returnType: bool
    signature: "bool S2PolylineMatcher::MatchAndExplain(string_view s,\n                                        MatchResultListener*
      listener) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Equals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:122,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Polyline
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: S2::S2PolylineMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - Equals
    - ApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool S2PolylineMatcher::MatchAndExplain(const S2Polyline& g,\n                                        MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: S2::S2PolylineIdenticalToMatcher::S2PolylineIdenticalToMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineIdenticalToMatcher::S2PolylineIdenticalToMatcher(\n
      \   const S2Polyline& expected)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:148,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:148,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:149,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:150,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:153,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:154,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:154,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:156,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:156,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:157,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:157,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:161,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:161,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:163,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:163,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:164,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:164,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:167,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:167,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:169,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Polyline
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 176
    functionName: S2::S2PolylineIdenticalToMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - s2textformat::ToString
    - GetRectBound
    - vertex
    - s2debug_override
    linkageType: ''
    returnType: bool
    signature: "bool S2PolylineIdenticalToMatcher::MatchAndExplain(\n    const S2Polyline&
      g, MatchResultListener* listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: S2::S2PolylineIdenticalToMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2PolylineIdenticalToMatcher::DescribeTo(::std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: S2::S2PolylineIdenticalToMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2PolylineIdenticalToMatcher::DescribeNegationTo(std::ostream*
      os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:191,1
    - Dst: S2::S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: S2::S2PolygonMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - S2::S2PolygonMatcher::MatchAndExplain
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: bool
    signature: "bool S2PolygonMatcher::MatchAndExplain(string_view s,\n                                       MatchResultListener*
      listener) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Equals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:199,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:206,1
    - Dst: BoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:214,1
    - Dst: BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:221,1
    - Dst: BoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:229,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Polygon
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 239
    functionName: S2::S2PolygonMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - ApproxEquals
    - Equals
    - BoundaryNear
    - BoundaryEquals
    - BoundaryApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool S2PolygonMatcher::MatchAndExplain(const S2Polygon& g,\n                                       MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:245,1
    - Dst: S2::S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: S2::S2LoopMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - s2textformat::MakeLoopOrDie
    - S2::S2LoopMatcher::MatchAndExplain
    linkageType: ''
    returnType: bool
    signature: "bool S2LoopMatcher::MatchAndExplain(string_view s,\n                                    MatchResultListener*
      listener) const"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Equals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:253,1
    - Dst: BoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:260,1
    - Dst: BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:267,1
    - Dst: BoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:275,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Loop
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 285
    functionName: S2::S2LoopMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - Equals
    - BoundaryEquals
    - BoundaryApproxEquals
    - BoundaryNear
    linkageType: ''
    returnType: bool
    signature: "bool S2LoopMatcher::MatchAndExplain(const S2Loop& g,\n                                    MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: S2::S2LoopIdenticalToMatcher::S2LoopIdenticalToMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LoopIdenticalToMatcher::S2LoopIdenticalToMatcher(const S2Loop&
      expected)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: depth
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:294,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:294,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:295,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:296,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:299,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:299,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:300,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:301,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:304,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:305,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:305,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:307,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:307,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:308,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:308,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:312,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:312,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:313,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:314,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:317,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:317,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:318,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:319,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:322,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:322,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:323,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:324,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:327,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:327,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:327,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:327,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:328,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:328,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:329,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:329,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:332,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:332,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:334,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:334,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:335,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:335,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:338,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:338,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:340,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:342,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Loop
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 347
    functionName: S2::S2LoopIdenticalToMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - is_full
    - S2::Origin
    - num_vertices
    - s2textformat::ToString
    - is_empty
    - GetRectBound
    - vertex
    - Contains
    - IsNormalized
    - depth
    - s2debug_override
    linkageType: ''
    returnType: bool
    signature: "bool S2LoopIdenticalToMatcher::MatchAndExplain(\n    const S2Loop&
      g, MatchResultListener* listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: S2::S2LoopIdenticalToMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2LoopIdenticalToMatcher::DescribeTo(::std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: S2::S2LoopIdenticalToMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2LoopIdenticalToMatcher::DescribeNegationTo(std::ostream* os)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: S2::S2PolygonIdenticalToMatcher::S2PolygonIdenticalToMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolygonIdenticalToMatcher::S2PolygonIdenticalToMatcher(\n    const
      S2Polygon& expected)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:365,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:365,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:366,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:367,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:370,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:371,1
    - Dst: S2LoopIdenticalToMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:372,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:372,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:377,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:377,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:379,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:379,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:380,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:380,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:383,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:383,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:385,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Polygon
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 392
    functionName: S2::S2PolygonIdenticalToMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - num_loops
    - s2textformat::ToString
    - GetRectBound
    - S2LoopIdenticalToMatcher::MatchAndExplain
    - s2debug_override
    - loop
    linkageType: ''
    returnType: bool
    signature: "bool S2PolygonIdenticalToMatcher::MatchAndExplain(\n    const S2Polygon&
      g, MatchResultListener* listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: S2::S2PolygonIdenticalToMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2PolygonIdenticalToMatcher::DescribeTo(::std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: S2::S2PolygonIdenticalToMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2PolygonIdenticalToMatcher::DescribeNegationTo(std::ostream*
      os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:406,1
    - Dst: S2::S2LatLngRectMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: S2::S2LatLngRectMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - S2::S2LatLngRectMatcher::MatchAndExplain
    - s2textformat::MakeLatLngRectOrDie
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngRectMatcher::MatchAndExplain(string_view s,\n                                          MatchResultListener*
      listener) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:421,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2LatLngRect
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 438
    functionName: S2::S2LatLngRectMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - ApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngRectMatcher::MatchAndExplain(const S2LatLngRect& g,\n
      \                                         MatchResultListener* listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:444,1
    - Dst: S2::S2LatLngMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: S2::S2LatLngMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - s2textformat::MakeLatLngOrDie
    - S2::S2LatLngMatcher::MatchAndExplain
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngMatcher::MatchAndExplain(string_view s,\n                                      MatchResultListener*
      listener) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' latlng'
    - listener
    argTypes:
    - S2LatLng
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 468
    functionName: S2::S2LatLngMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 1
    functionsReached:
    - ApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngMatcher::MatchAndExplain(const S2LatLng& latlng,\n                                      MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:475,1
    - Dst: S2PointMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:475,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: S2::PointEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PointMatcher
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PointMatcher>
    signature: PolymorphicMatcher<S2PointMatcher> PointEquals(const S2Point& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:480,1
    - Dst: S2PointMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: S2::PointApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PointMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PointMatcher>
    signature: "PolymorphicMatcher<S2PointMatcher> PointApproxEquals(const S2Point&
      expected,\n                                                     S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:486,1
    - Dst: S2PointMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:486,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: S2::PointEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PointMatcher
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PointMatcher>
    signature: PolymorphicMatcher<S2PointMatcher> PointEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:491,1
    - Dst: S2PointMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: S2::PointApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PointMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PointMatcher>
    signature: "PolymorphicMatcher<S2PointMatcher> PointApproxEquals(string_view expected,\n
      \                                                    S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:498,1
    - Dst: S2PolylineMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:498,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:499,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: S2::PolylineEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher
    - MakePolymorphicMatcher
    - S1Angle::Zero
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineMatcher>
    signature: "PolymorphicMatcher<S2PolylineMatcher> PolylineEquals(\n    const S2Polyline&
      expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:505,1
    - Dst: S2PolylineMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:505,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Polyline
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 508
    functionName: S2::PolylineApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineMatcher>
    signature: "PolymorphicMatcher<S2PolylineMatcher> PolylineApproxEquals(\n    const
      S2Polyline& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:513,1
    - Dst: S2PolylineMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:513,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:514,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: S2::PolylineEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher
    - MakePolymorphicMatcher
    - S1Angle::Zero
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineMatcher>
    signature: PolymorphicMatcher<S2PolylineMatcher> PolylineEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:520,1
    - Dst: S2PolylineMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:520,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 523
    functionName: S2::PolylineApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineMatcher>
    signature: "PolymorphicMatcher<S2PolylineMatcher> PolylineApproxEquals(string_view
      expected,\n                                                           S1Angle
      tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:527,1
    - Dst: S2PolylineIdenticalToMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: S2::PolylineIdenticalTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - MakePolymorphicMatcher
    - S2PolylineIdenticalToMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineIdenticalToMatcher>
    signature: "PolymorphicMatcher<S2PolylineIdenticalToMatcher> PolylineIdenticalTo(\n
      \   const S2Polyline& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:533,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:533,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:534,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: S2::PolygonEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: PolymorphicMatcher<S2PolygonMatcher> PolygonEquals(const S2Polygon&
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:540,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:540,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: S2::PolygonApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonApproxEquals(\n    const
      S2Polygon& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:547,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:547,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:549,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: S2::PolygonBoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryEquals(\n    const
      S2Polygon& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:555,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:555,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: S2::PolygonBoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryApproxEquals(\n
      \   const S2Polygon& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:563,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:563,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: S2::PolygonBoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryNear(\n    const
      S2Polygon& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:571,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:571,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:572,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: S2::PolygonEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: PolymorphicMatcher<S2PolygonMatcher> PolygonEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:578,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:578,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 581
    functionName: S2::PolygonApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonApproxEquals(string_view
      expected,\n                                                         S1Angle
      tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:585,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:585,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:587,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: S2::PolygonBoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryEquals(\n    string_view
      expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:593,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:593,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 597
    functionName: S2::PolygonBoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryApproxEquals(\n
      \   string_view expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:601,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:601,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 604
    functionName: S2::PolygonBoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryNear(string_view
      expected,\n                                                         S1Angle
      tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:608,1
    - Dst: S2PolygonIdenticalToMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: S2::PolygonIdenticalTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonIdenticalToMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonIdenticalToMatcher>
    signature: "PolymorphicMatcher<S2PolygonIdenticalToMatcher> PolygonIdenticalTo(\n
      \   const S2Polygon& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:614,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:614,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:616,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: S2::LoopEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: PolymorphicMatcher<S2LoopMatcher> LoopEquals(const S2Loop& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:620,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:620,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:621,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 623
    functionName: S2::LoopBoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: PolymorphicMatcher<S2LoopMatcher> LoopBoundaryEquals(const S2Loop&
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:627,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:627,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Loop
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: S2::LoopBoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: "PolymorphicMatcher<S2LoopMatcher> LoopBoundaryApproxEquals(\n    const
      S2Loop& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:635,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:635,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Loop
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 638
    functionName: S2::LoopBoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: "PolymorphicMatcher<S2LoopMatcher> LoopBoundaryNear(const S2Loop& expected,\n
      \                                                  S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:642,1
    - Dst: S2LoopIdenticalToMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: S2::LoopIdenticalTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LoopIdenticalToMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopIdenticalToMatcher>
    signature: "PolymorphicMatcher<S2LoopIdenticalToMatcher> LoopIdenticalTo(\n    const
      S2Loop& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:648,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:648,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:650,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: S2::LoopEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: PolymorphicMatcher<S2LoopMatcher> LoopEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:654,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:654,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:655,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: S2::LoopBoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: PolymorphicMatcher<S2LoopMatcher> LoopBoundaryEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:661,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:661,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 665
    functionName: S2::LoopBoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: "PolymorphicMatcher<S2LoopMatcher> LoopBoundaryApproxEquals(string_view
      expected,\n                                                           S1Angle
      tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:669,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:669,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 672
    functionName: S2::LoopBoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: "PolymorphicMatcher<S2LoopMatcher> LoopBoundaryNear(string_view expected,\n
      \                                                  S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:678,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:678,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:679,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 681
    functionName: S2::LatLngRectEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S1Angle::Zero
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectEquals(\n    const
      S2LatLngRect& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:685,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:685,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2LatLngRect
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 688
    functionName: S2::LatLngRectApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectApproxEquals(\n
      \   const S2LatLngRect& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:692,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:692,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2LatLngRect
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: S2::LatLngRectApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectApproxEquals(\n
      \   const S2LatLngRect& expected, S2LatLng tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:700,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:700,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:701,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: S2::LatLngRectEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S1Angle::Zero
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectEquals(string_view
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:707,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:707,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 710
    functionName: S2::LatLngRectApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectApproxEquals(\n
      \   string_view expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:714,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:714,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 717
    functionName: S2::LatLngRectApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectApproxEquals(\n
      \   string_view expected, S2LatLng tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:722,1
    - Dst: S2LatLngMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:722,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:723,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: S2::LatLngEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngMatcher
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2::S2LatLngMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngMatcher>
    signature: PolymorphicMatcher<S2LatLngMatcher> LatLngEquals(const S2LatLng& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:729,1
    - Dst: S2LatLngMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:729,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2LatLng
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 732
    functionName: S2::LatLngApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngMatcher>
    signature: "PolymorphicMatcher<S2LatLngMatcher> LatLngApproxEquals(const S2LatLng&
      expected,\n                                                       S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:737,1
    - Dst: S2LatLngMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:737,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:738,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 740
    functionName: S2::LatLngEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngMatcher
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2::S2LatLngMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngMatcher>
    signature: PolymorphicMatcher<S2LatLngMatcher> LatLngEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:744,1
    - Dst: S2LatLngMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:744,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 747
    functionName: S2::LatLngApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngMatcher>
    signature: "PolymorphicMatcher<S2LatLngMatcher> LatLngApproxEquals(string_view
      expected,\n                                                       S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:75,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: S2::IsAlmostZeroLength
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - fabs
    - Norm2
    linkageType: ''
    returnType: bool
    signature: bool IsAlmostZeroLength(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:75,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: S2::IsAlmostZeroLength
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - fabs
    - Norm2
    linkageType: ''
    returnType: bool
    signature: bool IsAlmostZeroLength(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:84,1
    - Dst: IsAlmostZeroLength
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: S2::S2PointMatcher::S2PointMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - IsAlmostZeroLength
    - ABSL_CHECK
    linkageType: ''
    returnType: void
    signature: void S2PointMatcher::S2PointMatcher(const S2Point& expected, S1Angle
      tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::S2PointMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:89,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: S2::S2PointMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - s2textformat::MakePointOrDie
    - S2::S2PointMatcher::MatchAndExplain
    linkageType: ''
    returnType: bool
    signature: "bool S2PointMatcher::MatchAndExplain(string_view s,\n                                     MatchResultListener*
      listener) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsAlmostZeroLength
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:97,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:101,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:102,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Point
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: S2::S2PointMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S1Angle
    - IsAlmostZeroLength
    - S2::ApproxEquals
    - S1Angle::Zero
    linkageType: ''
    returnType: bool
    signature: "bool S2PointMatcher::MatchAndExplain(const S2Point& g,\n                                     MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:114,1
    - Dst: S2::S2PolylineMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: S2::S2PolylineMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - s2textformat::MakePolylineOrDie
    - S2::S2PolylineMatcher::MatchAndExplain
    linkageType: ''
    returnType: bool
    signature: "bool S2PolylineMatcher::MatchAndExplain(string_view s,\n                                        MatchResultListener*
      listener) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Equals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:122,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Polyline
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: S2::S2PolylineMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - Equals
    - ApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool S2PolylineMatcher::MatchAndExplain(const S2Polyline& g,\n                                        MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: S2::S2PolylineIdenticalToMatcher::S2PolylineIdenticalToMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineIdenticalToMatcher::S2PolylineIdenticalToMatcher(\n
      \   const S2Polyline& expected)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:148,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:148,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:149,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:150,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:153,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:154,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:154,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:156,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:156,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:157,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:157,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:161,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:161,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:163,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:163,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:164,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:164,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:167,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:167,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:169,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Polyline
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 176
    functionName: S2::S2PolylineIdenticalToMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - s2textformat::ToString
    - GetRectBound
    - vertex
    - s2debug_override
    linkageType: ''
    returnType: bool
    signature: "bool S2PolylineIdenticalToMatcher::MatchAndExplain(\n    const S2Polyline&
      g, MatchResultListener* listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: S2::S2PolylineIdenticalToMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2PolylineIdenticalToMatcher::DescribeTo(::std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: S2::S2PolylineIdenticalToMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2PolylineIdenticalToMatcher::DescribeNegationTo(std::ostream*
      os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:191,1
    - Dst: S2::S2PolygonMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: S2::S2PolygonMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2PolygonMatcher::MatchAndExplain
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: bool
    signature: "bool S2PolygonMatcher::MatchAndExplain(string_view s,\n                                       MatchResultListener*
      listener) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Equals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:199,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:206,1
    - Dst: BoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:214,1
    - Dst: BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:221,1
    - Dst: BoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:229,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Polygon
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 239
    functionName: S2::S2PolygonMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - ApproxEquals
    - Equals
    - BoundaryNear
    - BoundaryEquals
    - BoundaryApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool S2PolygonMatcher::MatchAndExplain(const S2Polygon& g,\n                                       MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:245,1
    - Dst: S2::S2LoopMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: S2::S2LoopMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - s2textformat::MakeLoopOrDie
    - S2::S2LoopMatcher::MatchAndExplain
    linkageType: ''
    returnType: bool
    signature: "bool S2LoopMatcher::MatchAndExplain(string_view s,\n                                    MatchResultListener*
      listener) const"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Equals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:253,1
    - Dst: BoundaryEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:260,1
    - Dst: BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:267,1
    - Dst: BoundaryNear
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:275,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Loop
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 285
    functionName: S2::S2LoopMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - Equals
    - BoundaryEquals
    - BoundaryApproxEquals
    - BoundaryNear
    linkageType: ''
    returnType: bool
    signature: "bool S2LoopMatcher::MatchAndExplain(const S2Loop& g,\n                                    MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: S2::S2LoopIdenticalToMatcher::S2LoopIdenticalToMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LoopIdenticalToMatcher::S2LoopIdenticalToMatcher(const S2Loop&
      expected)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: depth
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:294,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:294,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:295,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:296,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:299,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:299,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:300,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:301,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:304,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:305,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:305,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:307,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:307,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:308,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:308,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:312,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:312,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:313,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:314,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:317,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:317,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:318,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:319,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:322,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:322,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:323,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:324,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:327,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:327,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:327,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:327,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:328,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:328,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:329,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:329,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:332,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:332,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:334,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:334,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:335,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:335,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:338,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:338,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:340,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:342,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Loop
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 347
    functionName: S2::S2LoopIdenticalToMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - is_full
    - S2::Origin
    - num_vertices
    - s2textformat::ToString
    - is_empty
    - GetRectBound
    - vertex
    - Contains
    - IsNormalized
    - depth
    - s2debug_override
    linkageType: ''
    returnType: bool
    signature: "bool S2LoopIdenticalToMatcher::MatchAndExplain(\n    const S2Loop&
      g, MatchResultListener* listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: S2::S2LoopIdenticalToMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2LoopIdenticalToMatcher::DescribeTo(::std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: S2::S2LoopIdenticalToMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2LoopIdenticalToMatcher::DescribeNegationTo(std::ostream* os)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: S2::S2PolygonIdenticalToMatcher::S2PolygonIdenticalToMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolygonIdenticalToMatcher::S2PolygonIdenticalToMatcher(\n    const
      S2Polygon& expected)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:365,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:365,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:366,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:367,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:370,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:371,1
    - Dst: S2LoopIdenticalToMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:372,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:372,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:377,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:377,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:379,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:379,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:380,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:380,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:383,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:383,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:385,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2Polygon
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 392
    functionName: S2::S2PolygonIdenticalToMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - num_loops
    - s2textformat::ToString
    - GetRectBound
    - S2LoopIdenticalToMatcher::MatchAndExplain
    - s2debug_override
    - loop
    linkageType: ''
    returnType: bool
    signature: "bool S2PolygonIdenticalToMatcher::MatchAndExplain(\n    const S2Polygon&
      g, MatchResultListener* listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: S2::S2PolygonIdenticalToMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2PolygonIdenticalToMatcher::DescribeTo(::std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: S2::S2PolygonIdenticalToMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void S2PolygonIdenticalToMatcher::DescribeNegationTo(std::ostream*
      os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:406,1
    - Dst: S2::S2LatLngRectMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: S2::S2LatLngRectMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LatLngRectMatcher::MatchAndExplain
    - s2textformat::MakeLatLngRectOrDie
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngRectMatcher::MatchAndExplain(string_view s,\n                                          MatchResultListener*
      listener) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:421,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ' g'
    - listener
    argTypes:
    - S2LatLngRect
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 438
    functionName: S2::S2LatLngRectMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - ApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngRectMatcher::MatchAndExplain(const S2LatLngRect& g,\n
      \                                         MatchResultListener* listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:444,1
    - Dst: S2::S2LatLngMatcher::MatchAndExplain
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - listener
    argTypes:
    - string_view
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: S2::S2LatLngMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - s2textformat::MakeLatLngOrDie
    - S2::S2LatLngMatcher::MatchAndExplain
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngMatcher::MatchAndExplain(string_view s,\n                                      MatchResultListener*
      listener) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' latlng'
    - listener
    argTypes:
    - S2LatLng
    - MatchResultListener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 468
    functionName: S2::S2LatLngMatcher::MatchAndExplain
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - ApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngMatcher::MatchAndExplain(const S2LatLng& latlng,\n                                      MatchResultListener*
      listener) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:475,1
    - Dst: S2PointMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:475,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: S2::PointEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PointMatcher
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PointMatcher>
    signature: PolymorphicMatcher<S2PointMatcher> PointEquals(const S2Point& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:480,1
    - Dst: S2PointMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: S2::PointApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PointMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PointMatcher>
    signature: "PolymorphicMatcher<S2PointMatcher> PointApproxEquals(const S2Point&
      expected,\n                                                     S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:486,1
    - Dst: S2PointMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:486,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: S2::PointEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PointMatcher
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PointMatcher>
    signature: PolymorphicMatcher<S2PointMatcher> PointEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:491,1
    - Dst: S2PointMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: S2::PointApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PointMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PointMatcher>
    signature: "PolymorphicMatcher<S2PointMatcher> PointApproxEquals(string_view expected,\n
      \                                                    S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:498,1
    - Dst: S2PolylineMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:498,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:499,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: S2::PolylineEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher
    - MakePolymorphicMatcher
    - S1Angle::Zero
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineMatcher>
    signature: "PolymorphicMatcher<S2PolylineMatcher> PolylineEquals(\n    const S2Polyline&
      expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:505,1
    - Dst: S2PolylineMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:505,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Polyline
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 508
    functionName: S2::PolylineApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineMatcher>
    signature: "PolymorphicMatcher<S2PolylineMatcher> PolylineApproxEquals(\n    const
      S2Polyline& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:513,1
    - Dst: S2PolylineMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:513,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:514,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: S2::PolylineEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher
    - MakePolymorphicMatcher
    - S1Angle::Zero
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineMatcher>
    signature: PolymorphicMatcher<S2PolylineMatcher> PolylineEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:520,1
    - Dst: S2PolylineMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:520,1
    - Dst: S2::S2PolylineMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 523
    functionName: S2::PolylineApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2PolylineMatcher::Options
    - S2PolylineMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineMatcher>
    signature: "PolymorphicMatcher<S2PolylineMatcher> PolylineApproxEquals(string_view
      expected,\n                                                           S1Angle
      tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:527,1
    - Dst: S2PolylineIdenticalToMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: S2::PolylineIdenticalTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - MakePolymorphicMatcher
    - S2PolylineIdenticalToMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolylineIdenticalToMatcher>
    signature: "PolymorphicMatcher<S2PolylineIdenticalToMatcher> PolylineIdenticalTo(\n
      \   const S2Polyline& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:533,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:533,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:534,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: S2::PolygonEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: PolymorphicMatcher<S2PolygonMatcher> PolygonEquals(const S2Polygon&
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:540,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:540,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: S2::PolygonApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonApproxEquals(\n    const
      S2Polygon& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:547,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:547,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:549,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: S2::PolygonBoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryEquals(\n    const
      S2Polygon& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:555,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:555,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: S2::PolygonBoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryApproxEquals(\n
      \   const S2Polygon& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:563,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:563,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: S2::PolygonBoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryNear(\n    const
      S2Polygon& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:571,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:571,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:572,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: S2::PolygonEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: PolymorphicMatcher<S2PolygonMatcher> PolygonEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:578,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:578,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 581
    functionName: S2::PolygonApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonApproxEquals(string_view
      expected,\n                                                         S1Angle
      tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:585,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:585,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:587,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: S2::PolygonBoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryEquals(\n    string_view
      expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:593,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:593,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 597
    functionName: S2::PolygonBoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryApproxEquals(\n
      \   string_view expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:601,1
    - Dst: S2PolygonMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:601,1
    - Dst: S2::S2PolygonMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 604
    functionName: S2::PolygonBoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonMatcher
    - S2::S2PolygonMatcher::Options
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonMatcher>
    signature: "PolymorphicMatcher<S2PolygonMatcher> PolygonBoundaryNear(string_view
      expected,\n                                                         S1Angle
      tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:608,1
    - Dst: S2PolygonIdenticalToMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: S2::PolygonIdenticalTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2PolygonIdenticalToMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2PolygonIdenticalToMatcher>
    signature: "PolymorphicMatcher<S2PolygonIdenticalToMatcher> PolygonIdenticalTo(\n
      \   const S2Polygon& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:614,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:614,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:616,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: S2::LoopEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: PolymorphicMatcher<S2LoopMatcher> LoopEquals(const S2Loop& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:620,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:620,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:621,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 623
    functionName: S2::LoopBoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: PolymorphicMatcher<S2LoopMatcher> LoopBoundaryEquals(const S2Loop&
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:627,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:627,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Loop
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: S2::LoopBoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: "PolymorphicMatcher<S2LoopMatcher> LoopBoundaryApproxEquals(\n    const
      S2Loop& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:635,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:635,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2Loop
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 638
    functionName: S2::LoopBoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: "PolymorphicMatcher<S2LoopMatcher> LoopBoundaryNear(const S2Loop& expected,\n
      \                                                  S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:642,1
    - Dst: S2LoopIdenticalToMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: S2::LoopIdenticalTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LoopIdenticalToMatcher
    - MakePolymorphicMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopIdenticalToMatcher>
    signature: "PolymorphicMatcher<S2LoopIdenticalToMatcher> LoopIdenticalTo(\n    const
      S2Loop& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:648,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:648,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:650,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: S2::LoopEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: PolymorphicMatcher<S2LoopMatcher> LoopEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:654,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:654,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:655,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: S2::LoopBoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2::S2LoopMatcher::Options
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: PolymorphicMatcher<S2LoopMatcher> LoopBoundaryEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:661,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:661,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 665
    functionName: S2::LoopBoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: "PolymorphicMatcher<S2LoopMatcher> LoopBoundaryApproxEquals(string_view
      expected,\n                                                           S1Angle
      tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:669,1
    - Dst: S2LoopMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:669,1
    - Dst: S2::S2LoopMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 672
    functionName: S2::LoopBoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2::S2LoopMatcher::Options
    - MakePolymorphicMatcher
    - S2LoopMatcher
    linkageType: ''
    returnType: PolymorphicMatcher<S2LoopMatcher>
    signature: "PolymorphicMatcher<S2LoopMatcher> LoopBoundaryNear(string_view expected,\n
      \                                                  S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:678,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:678,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:679,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 681
    functionName: S2::LatLngRectEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S1Angle::Zero
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectEquals(\n    const
      S2LatLngRect& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:685,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:685,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2LatLngRect
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 688
    functionName: S2::LatLngRectApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectApproxEquals(\n
      \   const S2LatLngRect& expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:692,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:692,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2LatLngRect
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: S2::LatLngRectApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectApproxEquals(\n
      \   const S2LatLngRect& expected, S2LatLng tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:700,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:700,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:701,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: S2::LatLngRectEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S1Angle::Zero
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectEquals(string_view
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:707,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:707,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 710
    functionName: S2::LatLngRectApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectApproxEquals(\n
      \   string_view expected, S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:714,1
    - Dst: S2LatLngRectMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:714,1
    - Dst: S2::S2LatLngRectMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 717
    functionName: S2::LatLngRectApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRectMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngRectMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngRectMatcher>
    signature: "PolymorphicMatcher<S2LatLngRectMatcher> LatLngRectApproxEquals(\n
      \   string_view expected, S2LatLng tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:722,1
    - Dst: S2LatLngMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:722,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:723,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: S2::LatLngEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngMatcher
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2::S2LatLngMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngMatcher>
    signature: PolymorphicMatcher<S2LatLngMatcher> LatLngEquals(const S2LatLng& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:729,1
    - Dst: S2LatLngMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:729,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - tolerance
    argTypes:
    - S2LatLng
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 732
    functionName: S2::LatLngApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngMatcher>
    signature: "PolymorphicMatcher<S2LatLngMatcher> LatLngApproxEquals(const S2LatLng&
      expected,\n                                                       S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:737,1
    - Dst: S2LatLngMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:737,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:738,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expected
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 740
    functionName: S2::LatLngEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngMatcher
    - S1Angle::Zero
    - MakePolymorphicMatcher
    - S2::S2LatLngMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngMatcher>
    signature: PolymorphicMatcher<S2LatLngMatcher> LatLngEquals(string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolymorphicMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:744,1
    - Dst: S2LatLngMatcher
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:744,1
    - Dst: S2::S2LatLngMatcher::Options
      Src: /src/s2geometry/src/s2/gmock_matchers.cc:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 747
    functionName: S2::LatLngApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.cc
    functionUses: 2
    functionsReached:
    - S2LatLngMatcher
    - MakePolymorphicMatcher
    - S2::S2LatLngMatcher::Options
    linkageType: ''
    returnType: PolymorphicMatcher<S2LatLngMatcher>
    signature: "PolymorphicMatcher<S2LatLngMatcher> LatLngApproxEquals(string_view
      expected,\n                                                       S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& x() const'
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval & x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& y() const'
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval & y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect.h:68,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:68,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: R2Rect::lo
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 2
    functionsReached:
    - y
    - x
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point lo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect.h:69,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:69,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: R2Rect::hi
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 1
    functionsReached:
    - y
    - x
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point hi() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/r2rect.h:73,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/r2rect.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: '& operator[](int i) const'
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval & operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/r2rect.h:78,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/r2rect.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: '& operator[](int i)'
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval & operator[](int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect.h:176,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:176,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:176,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect.h:177,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:177,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:177,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/r2rect.h:178,1
    - Dst: R2Rect::is_valid
      Src: /src/s2geometry/src/s2/r2rect.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' lo'
    - ' hi'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: R2Rect::R2Rect
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached:
    - R1Interval
    - y
    - x
    - R2Rect::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void R2Rect::R2Rect(const R2Point& lo, const R2Point& hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/r2rect.h:184,1
    - Dst: R2Rect::is_valid
      Src: /src/s2geometry/src/s2/r2rect.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - R1Interval
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: R2Rect::R2Rect
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached:
    - R2Rect::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void R2Rect::R2Rect(const R1Interval& x, const R1Interval& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/r2rect.h:189,1
    - Dst: R2Rect::is_valid
      Src: /src/s2geometry/src/s2/r2rect.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: R2Rect::R2Rect
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached:
    - R2Rect::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void R2Rect::R2Rect()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/r2rect.h:193,1
    - Dst: R1Interval::Empty
      Src: /src/s2geometry/src/s2/r2rect.h:193,1
    - Dst: R1Interval::Empty
      Src: /src/s2geometry/src/s2/r2rect.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: R2Rect::Empty
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 7
    functionsReached:
    - R1Interval::Empty
    - R2Rect::R2Rect
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect R2Rect::Empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/r2rect.h:197,1
    - Dst: R1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/r2rect.h:197,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:197,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:197,1
    - Dst: R1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/r2rect.h:198,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:198,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p1'
    - ' p2'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: R2Rect::FromPointPair
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 1
    functionsReached:
    - y
    - R1Interval::FromPointPair
    - x
    - R2Rect::R2Rect
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect R2Rect::FromPointPair(const R2Point& p1, const R2Point& p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:203,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: R2Rect::is_valid
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 4
    functionsReached:
    - y
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: R2Rect::is_empty
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 1
    functionsReached:
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/r2rect.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: R2Rect::FromPoint
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 1
    functionsReached:
    - R2Rect::R2Rect
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect R2Rect::FromPoint(const R2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/r2rect.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: R2Rect::GetVertex
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 4
    functionsReached:
    - R2Rect::GetVertex
    linkageType: ''
    returnType: R2Point
    signature: R2Point R2Rect::GetVertex(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: R2Rect::GetVertex
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 4
    functionsReached:
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point R2Rect::GetVertex(int i, int j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect.h:226,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:226,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: R2Rect::GetCenter
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 1
    functionsReached:
    - y
    - x
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point R2Rect::GetCenter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect.h:230,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:230,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: R2Rect::GetSize
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached:
    - y
    - x
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point R2Rect::GetSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:234,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:234,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:234,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: R2Rect::Contains
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 1
    functionsReached:
    - y
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::Contains(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:238,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:238,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:238,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: R2Rect::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 1
    functionsReached:
    - y
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::InteriorContains(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::Expanded
      Src: /src/s2geometry/src/s2/r2rect.h:242,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - margin
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: R2Rect::Expanded
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 2
    functionsReached:
    - R2Rect::Expanded
    - R2Point
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect R2Rect::Expanded(double margin) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:246,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:246,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:246,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: R2Rect::operator==(const R2Rect& other) const
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached:
    - y
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::operator==(const R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: R2Rect::operator!=(const R2Rect& other) const
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::operator!=(const R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/r2rect.h:257,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/r2rect.h:257,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.h:257,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' rect'
    argTypes:
    - H
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/r2rect.h
    functionUses: 0
    functionsReached:
    - std::move
    - y
    - H::combine
    - x
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const R2Rect& rect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:41,1
    - Dst: s2coding::EncodeUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:43,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:43,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:44,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:44,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:46,1
    - Dst: EncodedUintVector::Init
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:47,1
    - Dst: EncodedUintVector::Decode
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' expected'
    - expected_bytes
    argTypes:
    - vector<T>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: s2coding::TestEncodedUintVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - EncodedUintVector::Decode
    - EncodedUintVector::Init
    - Encoder::length
    - Encoder::base
    - ASSERT_TRUE
    - EXPECT_EQ
    - s2coding::EncodeUintVector
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TestEncodedUintVector(const vector<T>& expected, size_t expected_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, Zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, RepeatedZeros)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, MaxInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, OneByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, TwoBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, ThreeBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, EightBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:84,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:88,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:88,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:92,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:93,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:93,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:93,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bytes_per_value
    - num_values
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: s2coding::MakeSortedTestVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - ABSL_DCHECK_LE
    - static_cast<double>
    - ABSL_CHECK
    - vector::end
    - vector::begin
    - std::is_sorted
    linkageType: ''
    returnType: vector<T>
    signature: vector<T> MakeSortedTestVector(int bytes_per_value, int num_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:100,1
    - Dst: Encoder*::base
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:101,1
    - Dst: Encoder*::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:101,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:103,1
    - Dst: EncodedUintVector::Init
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' values'
    - encoder
    argTypes:
    - vector<T>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: s2coding::MakeEncodedVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - EncodedUintVector::Init
    - ABSL_CHECK
    - Encoder*::base
    - s2coding::EncodeUintVector
    - Encoder*::length
    linkageType: ''
    returnType: EncodedUintVector<T>
    signature: "EncodedUintVector<T> MakeEncodedVector(const vector<T>& values,\n
      \                                      Encoder* encoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::MakeSortedTestVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:109,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:110,1
    - Dst: s2coding::MakeEncodedVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: auto::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: auto::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bytes_per_value
    - num_values
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: s2coding::TestLowerBound
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::MakeEncodedVector
    - auto::end
    - s2coding::MakeSortedTestVector
    - std::lower_bound
    - auto::begin
    - auto::lower_bound
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TestLowerBound(int bytes_per_value, int num_values)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestLowerBound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:124,1
    - Dst: s2coding::TestLowerBound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:126,1
    - Dst: s2coding::TestLowerBound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestLowerBound
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVector, LowerBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:137,1
    - Dst: s2coding::MakeEncodedVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:138,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:139,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:139,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:141,1
    - Dst: auto::Encode
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:142,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:143,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:143,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:146,1
    - Dst: EncodedUintVector::Init
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:148,1
    - Dst: EncodedUintVector::Decode
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::MakeEncodedVector
    - ASSERT_EQ
    - EncodedUintVector::Decode
    - EncodedUintVector::Init
    - auto::Decode
    - auto::Encode
    - Encoder::length
    - Encoder::base
    - ASSERT_TRUE
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, RoundtripEncoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:153,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:155,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:163,1
    - Dst: s2coding::EncodeUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:164,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:165,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:165,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:167,1
    - Dst: EncodedUintVector::Init
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:167,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 173
    functionName: s2coding::BM_DecodeValue
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    - EncodedUintVector::Init
    - range
    - ABSL_CHECK
    - Encoder::length
    - Encoder::base
    - benchmark::DoNotOptimize
    - s2coding::EncodeUintVector
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_DecodeValue(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:193,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:194,1
    - Dst: s2coding::MakeSortedTestVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:195,1
    - Dst: auto::back
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:196,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:197,1
    - Dst: s2coding::MakeEncodedVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:198,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:201,1
    - Dst: auto::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: s2coding::BM_LowerBound
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::MakeEncodedVector
    - s2coding::MakeSortedTestVector
    - range
    - auto::lower_bound
    - benchmark::DoNotOptimize
    - Encoder::Encoder
    - auto::back
    linkageType: ''
    returnType: void
    signature: void BM_LowerBound(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:41,1
    - Dst: s2coding::EncodeUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:43,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:43,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:44,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:44,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:46,1
    - Dst: EncodedUintVector::Init
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:47,1
    - Dst: EncodedUintVector::Decode
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' expected'
    - expected_bytes
    argTypes:
    - vector<T>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: s2coding::TestEncodedUintVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 8
    functionsReached:
    - EncodedUintVector::Decode
    - EncodedUintVector::Init
    - Encoder::length
    - Encoder::base
    - ASSERT_TRUE
    - EXPECT_EQ
    - s2coding::EncodeUintVector
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TestEncodedUintVector(const vector<T>& expected, size_t expected_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, Zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, RepeatedZeros)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, MaxInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, OneByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, TwoBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, ThreeBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedUintVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, EightBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:84,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:88,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:88,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:92,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:93,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:93,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:93,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bytes_per_value
    - num_values
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: s2coding::MakeSortedTestVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 2
    functionsReached:
    - vector::push_back
    - ABSL_DCHECK_LE
    - static_cast<double>
    - ABSL_CHECK
    - vector::end
    - vector::begin
    - std::is_sorted
    linkageType: ''
    returnType: vector<T>
    signature: vector<T> MakeSortedTestVector(int bytes_per_value, int num_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:100,1
    - Dst: Encoder*::base
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:101,1
    - Dst: Encoder*::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:101,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:103,1
    - Dst: EncodedUintVector::Init
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' values'
    - encoder
    argTypes:
    - vector<T>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: s2coding::MakeEncodedVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 3
    functionsReached:
    - EncodedUintVector::Init
    - ABSL_CHECK
    - Encoder*::base
    - s2coding::EncodeUintVector
    - Encoder*::length
    linkageType: ''
    returnType: EncodedUintVector<T>
    signature: "EncodedUintVector<T> MakeEncodedVector(const vector<T>& values,\n
      \                                      Encoder* encoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::MakeSortedTestVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:109,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:110,1
    - Dst: s2coding::MakeEncodedVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:113,1
    - Dst: auto::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:116,1
    - Dst: auto::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bytes_per_value
    - num_values
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: s2coding::TestLowerBound
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 1
    functionsReached:
    - s2coding::MakeEncodedVector
    - auto::end
    - s2coding::MakeSortedTestVector
    - std::lower_bound
    - auto::begin
    - auto::lower_bound
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TestLowerBound(int bytes_per_value, int num_values)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestLowerBound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:124,1
    - Dst: s2coding::TestLowerBound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:126,1
    - Dst: s2coding::TestLowerBound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestLowerBound
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVector, LowerBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:137,1
    - Dst: s2coding::MakeEncodedVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:138,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:139,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:139,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:141,1
    - Dst: auto::Encode
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:142,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:143,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:143,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:146,1
    - Dst: EncodedUintVector::Init
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:148,1
    - Dst: EncodedUintVector::Decode
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::MakeEncodedVector
    - ASSERT_EQ
    - EncodedUintVector::Decode
    - EncodedUintVector::Init
    - auto::Decode
    - auto::Encode
    - Encoder::length
    - Encoder::base
    - ASSERT_TRUE
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedUintVectorTest, RoundtripEncoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:153,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:155,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:163,1
    - Dst: s2coding::EncodeUintVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:164,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:165,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:165,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:167,1
    - Dst: EncodedUintVector::Init
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:167,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 173
    functionName: s2coding::BM_DecodeValue
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    - EncodedUintVector::Init
    - range
    - ABSL_CHECK
    - Encoder::length
    - Encoder::base
    - benchmark::DoNotOptimize
    - s2coding::EncodeUintVector
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_DecodeValue(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:193,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:194,1
    - Dst: s2coding::MakeSortedTestVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:195,1
    - Dst: auto::back
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:196,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:197,1
    - Dst: s2coding::MakeEncodedVector
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:198,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:201,1
    - Dst: auto::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector_test.cc:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: s2coding::BM_LowerBound
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::MakeEncodedVector
    - s2coding::MakeSortedTestVector
    - range
    - auto::lower_bound
    - benchmark::DoNotOptimize
    - Encoder::Encoder
    - auto::back
    linkageType: ''
    returnType: void
    signature: void BM_LowerBound(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: S2PointVectorShape::S2PointVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointVectorShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PointVectorShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: S2PointVectorShape::S2PointVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointVectorShape(S2PointVectorShape&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PointVectorShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& operator=(S2PointVectorShape&& other) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PointVectorShape
    signature: S2PointVectorShape & operator=(S2PointVectorShape&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - points
    argTypes:
    - std::vector<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: S2PointVectorShape::S2PointVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void S2PointVectorShape(std::vector<S2Point> points)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~S2PointVectorShape() override
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2PointVectorShape() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:55,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: S2PointVectorShape::num_points
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int num_points() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& point(int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & point(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeS2PointVector
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - encoder
    - hint
    argTypes:
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: S2PointVectorShape::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - s2coding::EncodeS2PointVector
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder* encoder, s2coding::CodingHint hint) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2PointVector::EncodedS2PointVector
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:69,1
    - Dst: s2coding::EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:70,1
    - Dst: s2coding::EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: S2PointVectorShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2PointVector::Init
    - s2coding::EncodedS2PointVector::Decode
    - s2coding::EncodedS2PointVector::EncodedS2PointVector
    linkageType: ''
    returnType: bool
    signature: bool Init(Decoder* decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2PointVector::EncodedS2PointVector
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:82,1
    - Dst: s2coding::EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:83,1
    - Dst: s2coding::EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:84,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: S2PointVectorShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2PointVector::Init
    - s2coding::EncodedS2PointVector::Decode
    - ok
    - s2coding::EncodedS2PointVector::EncodedS2PointVector
    linkageType: ''
    returnType: bool
    signature: bool Init(Decoder* decoder, S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointVectorShape::num_points
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: S2PointVectorShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - S2PointVectorShape::num_points
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: S2PointVectorShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - Edge
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: S2PointVectorShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: S2PointVectorShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointVectorShape::num_points
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: S2PointVectorShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - S2PointVectorShape::num_points
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: S2PointVectorShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - Chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:102,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: S2PointVectorShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 1
    functionsReached:
    - Edge
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: S2PointVectorShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 1
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: S2PointVectorShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: EncodedS2PointVectorShape::EncodedS2PointVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2PointVectorShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2PointVectorShape::Init
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: EncodedS2PointVectorShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 1
    functionsReached:
    - EncodedS2PointVectorShape::Init
    linkageType: ''
    returnType: bool
    signature: bool Init(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2PointVectorShape::Encode
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: EncodedS2PointVectorShape::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 1
    functionsReached:
    - EncodedS2PointVectorShape::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder* encoder, s2coding::CodingHint) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:141,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: EncodedS2PointVectorShape::num_points
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int num_points() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: EncodedS2PointVectorShape::point
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point point(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2PointVectorShape::num_points
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: EncodedS2PointVectorShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - EncodedS2PointVectorShape::num_points
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: EncodedS2PointVectorShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - Edge
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: EncodedS2PointVectorShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: EncodedS2PointVectorShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2PointVectorShape::num_points
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: EncodedS2PointVectorShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - EncodedS2PointVectorShape::num_points
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: EncodedS2PointVectorShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - Chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:154,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: EncodedS2PointVectorShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - Edge
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2point_vector_shape.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: EncodedS2PointVectorShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: EncodedS2PointVectorShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~ShapeIndexFactory()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ShapeIndexFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegularLoopShapeIndexFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused_bitgen ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RegularLoopShapeIndexFactory(\n      absl::BitGenRef unused_bitgen
      ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:77,1
    - Dst: std::make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:77,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:77,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:78,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' index_cap'
    - num_edges
    - index
    argTypes:
    - S2Cap
    - int
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: s2testing::RegularLoopShapeIndexFactory::AddEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - S2Loop::MakeRegularLoop
    - MutableS2ShapeIndex*::Add
    - std::make_unique<S2Loop::OwningShape>
    - center
    - GetRadius
    linkageType: ''
    returnType: void
    signature: "void AddEdges(const S2Cap& index_cap, int num_edges,\n                MutableS2ShapeIndex*
      index) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FractalLoopShapeIndexFactory(\n      absl::BitGenRef bitgen ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:92,1
    - Dst: MutableS2ShapeIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:93,1
    - Dst: std::make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:93,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:94,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:94,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:94,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' index_cap'
    - num_edges
    - index
    argTypes:
    - S2Cap
    - int
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: s2testing::FractalLoopShapeIndexFactory::AddEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - MutableS2ShapeIndex*::Add
    - std::make_unique<S2Loop::OwningShape>
    - center
    - GetRadius
    linkageType: ''
    returnType: void
    signature: "void AddEdges(const S2Cap& index_cap, int num_edges,\n                MutableS2ShapeIndex*
      index) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: s2testing::PointCloudShapeIndexFactory::PointCloudShapeIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PointCloudShapeIndexFactory(\n      absl::BitGenRef bitgen ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:112,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:114,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:114,1
    - Dst: MutableS2ShapeIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:116,1
    - Dst: std::make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:116,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' index_cap'
    - num_edges
    - index
    argTypes:
    - S2Cap
    - int
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: s2testing::PointCloudShapeIndexFactory::AddEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::move
    - MutableS2ShapeIndex*::Add
    - s2random::SamplePoint
    - std::vector::reserve
    - std::make_unique<S2PointVectorShape>
    linkageType: ''
    returnType: void
    signature: "void AddEdges(const S2Cap& index_cap, int num_edges,\n                MutableS2ShapeIndex*
      index) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:127,1
    - Dst: s2shapeutil::CountEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:127,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:129,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:131,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:132,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - bitgen
    - ' index'
    argTypes:
    - absl::BitGenRef
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: s2testing::SampleEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - S2Shape*::edge
    - shape
    - S2Shape*::num_edges
    - s2random::LogUniform
    - s2shapeutil::CountEdges
    linkageType: ''
    returnType: S2Shape::Edge
    signature: "S2Shape::Edge SampleEdge(absl::BitGenRef bitgen,\n                                const
      MutableS2ShapeIndex& index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:142,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:142,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:143,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:144,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:144,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bitgen
    - ' index'
    argTypes:
    - absl::BitGenRef
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: s2testing::SampleCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Iterator::done
    - s2random::LogUniform
    - MutableS2ShapeIndex::Iterator::Next
    - MutableS2ShapeIndex::Iterator::id
    - MutableS2ShapeIndex::Iterator::Begin
    linkageType: ''
    returnType: S2CellId
    signature: "S2CellId SampleCell(absl::BitGenRef bitgen,\n                           const
      MutableS2ShapeIndex& index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:150,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:150,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:150,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - ' cap'
    argTypes:
    - absl::BitGenRef
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: s2testing::SampleBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - center
    - s2random::Point
    - S2::GetPointOnLine
    - GetRadius
    linkageType: ''
    returnType: S2Point
    signature: S2Point SampleBoundary(absl::BitGenRef bitgen, const S2Cap& cap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:157,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bitgen
    - fraction
    - radius_km
    argTypes:
    - absl::BitGenRef
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: s2testing::FractionToRadius
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - S2Testing::KmToAngle
    - s2random::LogUniform
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle FractionToRadius(absl::BitGenRef bitgen, double fraction,\n
      \                               double radius_km)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 10
    argNames:
    - ' factory'
    - num_index_edges
    - include_interiors
    - target_type
    - num_target_edges
    - choose_target_from_index
    - radius_km
    - target_radius_fraction
    - center_separation_fraction
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - ShapeIndexFactory
    - int
    - bool
    - TargetType
    - int
    - bool
    - double
    - double
    - double
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: s2testing::S2ClosestEdgeQueryBenchmarkHarness::S2ClosestEdgeQueryBenchmarkHarness
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBenchmarkHarness(\n      const ShapeIndexFactory&
      factory, int num_index_edges,\n      bool include_interiors, TargetType target_type,
      int num_target_edges,\n      bool choose_target_from_index, double radius_km,\n
      \     double target_radius_fraction, double center_separation_fraction,\n      absl::BitGenRef
      bitgen ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:216,1
    - Dst: EdgeQueryType*::index
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:216,1
    - Dst: MutableS2ShapeIndex*::Clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:221,1
    - Dst: AddEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:223,1
    - Dst: MutableS2ShapeIndex*::ForceBuild
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:224,1
    - Dst: EdgeQueryType*::ReInit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:225,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:226,1
    - Dst: std::vector<std::unique_ptr<MutableS2ShapeIndex>>*::clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:227,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:233,1
    - Dst: FractionToRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:237,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:239,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:239,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:239,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:245,1
    - Dst: SampleEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:247,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:249,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:251,1
    - Dst: std::make_unique<typename EdgeQueryType::PointTarget>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:252,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:255,1
    - Dst: SampleEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:257,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:261,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:262,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:264,1
    - Dst: std::make_unique<typename EdgeQueryType::EdgeTarget>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:265,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:268,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:270,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:272,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:272,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:273,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:273,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:275,1
    - Dst: std::make_unique<typename EdgeQueryType::CellTarget>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:275,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:276,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:279,1
    - Dst: std::make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:280,1
    - Dst: std::make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:282,1
    - Dst: SampleEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:284,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:285,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:287,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:287,1
    - Dst: AddEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:289,1
    - Dst: auto::ForceBuild
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:291,1
    - Dst: std::make_unique<typename EdgeQueryType::ShapeIndexTarget>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:293,1
    - Dst: auto::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:295,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:296,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:296,1
    - Dst: std::vector<std::unique_ptr<MutableS2ShapeIndex>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:297,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 4
    argNames:
    - query
    - query_index
    - targets
    - target_indexes
    argTypes:
    - EdgeQueryType*
    - MutableS2ShapeIndex*
    - std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*
    - std::vector<std::unique_ptr<MutableS2ShapeIndex>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 300
    functionName: s2testing::S2ClosestEdgeQueryBenchmarkHarness::GenerateEdgeQueryWithTargets
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - std::make_unique<typename EdgeQueryType::ShapeIndexTarget>
    - MutableS2ShapeIndex*::ForceBuild
    - SampleEdge
    - S2CellId
    - EdgeQueryType*::ReInit
    - std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::clear
    - std::make_unique<typename EdgeQueryType::CellTarget>
    - std::make_unique<typename EdgeQueryType::PointTarget>
    - std::vector<std::unique_ptr<MutableS2ShapeIndex>>*::clear
    - ABSL_DCHECK
    - FractionToRadius
    - S2Cap
    - min
    - ABSL_CHECK_EQ
    - S2Point::S2Point
    - GetClosestLevel
    - std::make_unique<S2EdgeVectorShape>
    - S2Cell
    - std::make_unique<MutableS2ShapeIndex>
    - auto::ForceBuild
    - auto::Add
    - SampleBoundary
    - std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
    - std::move
    - SampleCell
    - S2CellId::S2CellId
    - S2Cap::GetRadius
    - EdgeQueryType*::index
    - auto::set_include_interiors
    - std::vector<std::unique_ptr<MutableS2ShapeIndex>>*::push_back
    - std::make_unique<typename EdgeQueryType::EdgeTarget>
    - AddEdges
    - MutableS2ShapeIndex*::Clear
    linkageType: ''
    returnType: void
    signature: "void GenerateEdgeQueryWithTargets(\n      EdgeQueryType* query,\n
      \     MutableS2ShapeIndex* query_index,\n      std::vector<std::unique_ptr<typename
      EdgeQueryType::Target>>* targets,\n      std::vector<std::unique_ptr<MutableS2ShapeIndex>>*
      target_indexes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~ShapeIndexFactory()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ShapeIndexFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegularLoopShapeIndexFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused_bitgen ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RegularLoopShapeIndexFactory(\n      absl::BitGenRef unused_bitgen
      ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:77,1
    - Dst: std::make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:77,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:77,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:78,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' index_cap'
    - num_edges
    - index
    argTypes:
    - S2Cap
    - int
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: s2testing::RegularLoopShapeIndexFactory::AddEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - S2Loop::MakeRegularLoop
    - MutableS2ShapeIndex*::Add
    - std::make_unique<S2Loop::OwningShape>
    - center
    - GetRadius
    linkageType: ''
    returnType: void
    signature: "void AddEdges(const S2Cap& index_cap, int num_edges,\n                MutableS2ShapeIndex*
      index) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FractalLoopShapeIndexFactory(\n      absl::BitGenRef bitgen ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:92,1
    - Dst: MutableS2ShapeIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:93,1
    - Dst: std::make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:93,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:94,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:94,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:94,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' index_cap'
    - num_edges
    - index
    argTypes:
    - S2Cap
    - int
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: s2testing::FractalLoopShapeIndexFactory::AddEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - MutableS2ShapeIndex*::Add
    - std::make_unique<S2Loop::OwningShape>
    - center
    - GetRadius
    linkageType: ''
    returnType: void
    signature: "void AddEdges(const S2Cap& index_cap, int num_edges,\n                MutableS2ShapeIndex*
      index) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: s2testing::PointCloudShapeIndexFactory::PointCloudShapeIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PointCloudShapeIndexFactory(\n      absl::BitGenRef bitgen ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:112,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:114,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:114,1
    - Dst: MutableS2ShapeIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:116,1
    - Dst: std::make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:116,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' index_cap'
    - num_edges
    - index
    argTypes:
    - S2Cap
    - int
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: s2testing::PointCloudShapeIndexFactory::AddEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::move
    - MutableS2ShapeIndex*::Add
    - s2random::SamplePoint
    - std::vector::reserve
    - std::make_unique<S2PointVectorShape>
    linkageType: ''
    returnType: void
    signature: "void AddEdges(const S2Cap& index_cap, int num_edges,\n                MutableS2ShapeIndex*
      index) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:127,1
    - Dst: s2shapeutil::CountEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:127,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:129,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:131,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:132,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - bitgen
    - ' index'
    argTypes:
    - absl::BitGenRef
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: s2testing::SampleEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - S2Shape*::edge
    - shape
    - S2Shape*::num_edges
    - s2random::LogUniform
    - s2shapeutil::CountEdges
    linkageType: ''
    returnType: S2Shape::Edge
    signature: "S2Shape::Edge SampleEdge(absl::BitGenRef bitgen,\n                                const
      MutableS2ShapeIndex& index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:142,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:142,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:143,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:144,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:144,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bitgen
    - ' index'
    argTypes:
    - absl::BitGenRef
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: s2testing::SampleCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Iterator::done
    - s2random::LogUniform
    - MutableS2ShapeIndex::Iterator::Next
    - MutableS2ShapeIndex::Iterator::id
    - MutableS2ShapeIndex::Iterator::Begin
    linkageType: ''
    returnType: S2CellId
    signature: "S2CellId SampleCell(absl::BitGenRef bitgen,\n                           const
      MutableS2ShapeIndex& index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:150,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:150,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:150,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - ' cap'
    argTypes:
    - absl::BitGenRef
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: s2testing::SampleBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - center
    - s2random::Point
    - S2::GetPointOnLine
    - GetRadius
    linkageType: ''
    returnType: S2Point
    signature: S2Point SampleBoundary(absl::BitGenRef bitgen, const S2Cap& cap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:157,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bitgen
    - fraction
    - radius_km
    argTypes:
    - absl::BitGenRef
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: s2testing::FractionToRadius
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - S2Testing::KmToAngle
    - s2random::LogUniform
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle FractionToRadius(absl::BitGenRef bitgen, double fraction,\n
      \                               double radius_km)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 10
    argNames:
    - ' factory'
    - num_index_edges
    - include_interiors
    - target_type
    - num_target_edges
    - choose_target_from_index
    - radius_km
    - target_radius_fraction
    - center_separation_fraction
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - ShapeIndexFactory
    - int
    - bool
    - TargetType
    - int
    - bool
    - double
    - double
    - double
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: s2testing::S2ClosestEdgeQueryBenchmarkHarness::S2ClosestEdgeQueryBenchmarkHarness
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBenchmarkHarness(\n      const ShapeIndexFactory&
      factory, int num_index_edges,\n      bool include_interiors, TargetType target_type,
      int num_target_edges,\n      bool choose_target_from_index, double radius_km,\n
      \     double target_radius_fraction, double center_separation_fraction,\n      absl::BitGenRef
      bitgen ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:216,1
    - Dst: EdgeQueryType*::index
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:216,1
    - Dst: MutableS2ShapeIndex*::Clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:221,1
    - Dst: AddEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:223,1
    - Dst: MutableS2ShapeIndex*::ForceBuild
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:224,1
    - Dst: EdgeQueryType*::ReInit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:225,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:226,1
    - Dst: std::vector<std::unique_ptr<MutableS2ShapeIndex>>*::clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:227,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:233,1
    - Dst: FractionToRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:237,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:239,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:239,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:239,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:245,1
    - Dst: SampleEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:247,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:249,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:251,1
    - Dst: std::make_unique<typename EdgeQueryType::PointTarget>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:252,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:255,1
    - Dst: SampleEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:257,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:261,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:262,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:264,1
    - Dst: std::make_unique<typename EdgeQueryType::EdgeTarget>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:265,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:268,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:270,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:272,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:272,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:273,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:273,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:275,1
    - Dst: std::make_unique<typename EdgeQueryType::CellTarget>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:275,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:276,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:279,1
    - Dst: std::make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:280,1
    - Dst: std::make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:282,1
    - Dst: SampleEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:284,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:285,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:287,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:287,1
    - Dst: AddEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:289,1
    - Dst: auto::ForceBuild
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:291,1
    - Dst: std::make_unique<typename EdgeQueryType::ShapeIndexTarget>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:293,1
    - Dst: auto::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:295,1
    - Dst: std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:296,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:296,1
    - Dst: std::vector<std::unique_ptr<MutableS2ShapeIndex>>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:297,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_edge_query_testing.h:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 4
    argNames:
    - query
    - query_index
    - targets
    - target_indexes
    argTypes:
    - EdgeQueryType*
    - MutableS2ShapeIndex*
    - std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*
    - std::vector<std::unique_ptr<MutableS2ShapeIndex>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 300
    functionName: s2testing::S2ClosestEdgeQueryBenchmarkHarness::GenerateEdgeQueryWithTargets
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - std::make_unique<typename EdgeQueryType::ShapeIndexTarget>
    - MutableS2ShapeIndex*::ForceBuild
    - SampleEdge
    - S2CellId
    - EdgeQueryType*::ReInit
    - std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::clear
    - std::make_unique<typename EdgeQueryType::CellTarget>
    - std::make_unique<typename EdgeQueryType::PointTarget>
    - std::vector<std::unique_ptr<MutableS2ShapeIndex>>*::clear
    - ABSL_DCHECK
    - FractionToRadius
    - S2Cap
    - min
    - ABSL_CHECK_EQ
    - S2Point::S2Point
    - GetClosestLevel
    - std::make_unique<S2EdgeVectorShape>
    - S2Cell
    - std::make_unique<MutableS2ShapeIndex>
    - auto::ForceBuild
    - auto::Add
    - SampleBoundary
    - std::vector<std::unique_ptr<typename EdgeQueryType::Target>>*::push_back
    - std::move
    - SampleCell
    - S2CellId::S2CellId
    - S2Cap::GetRadius
    - EdgeQueryType*::index
    - auto::set_include_interiors
    - std::vector<std::unique_ptr<MutableS2ShapeIndex>>*::push_back
    - std::make_unique<typename EdgeQueryType::EdgeTarget>
    - AddEdges
    - MutableS2ShapeIndex*::Clear
    linkageType: ''
    returnType: void
    signature: "void GenerateEdgeQueryWithTargets(\n      EdgeQueryType* query,\n
      \     MutableS2ShapeIndex* query_index,\n      std::vector<std::unique_ptr<typename
      EdgeQueryType::Target>>* targets,\n      std::vector<std::unique_ptr<MutableS2ShapeIndex>>*
      target_indexes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: S2DensityTree::S2DensityTree
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2DensityTree()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: ~S2DensityTree()
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2DensityTree()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: S2DensityTree::S2DensityTree
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2DensityTree(const S2DensityTree&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: '& operator=(const S2DensityTree&)'
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2DensityTree
    signature: S2DensityTree & operator=(const S2DensityTree&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: S2DensityTree::S2DensityTree
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2DensityTree(S2DensityTree&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '& operator=(S2DensityTree&&) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2DensityTree
    signature: S2DensityTree & operator=(S2DensityTree&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: S2DensityTree::EncodedSize
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: S2DensityTree::Cell::Cell
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cell()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    functionName: S2DensityTree::Cell::weight
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t weight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: S2DensityTree::Cell::has_children
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_children() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: S2DensityTree::Cell::child_offset
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t child_offset(int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tree
    argTypes:
    - S2DensityTree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 354
    functionName: S2DensityTree::DecodedPath::DecodedPath
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodedPath(const S2DensityTree* tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: '& tree() const'
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2DensityTree
    signature: S2DensityTree & tree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: S2DensityTree::TreeEncoder::TreeEncoder
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TreeEncoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - approx_size_bytes
    - max_level
    argTypes:
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: S2DensityTree::BreadthFirstTreeBuilder::BreadthFirstTreeBuilder
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BreadthFirstTreeBuilder(int64_t approx_size_bytes, int max_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - index
    - weight_fn
    argTypes:
    - S2ShapeIndex*
    - ShapeWeightFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: S2DensityTree::IndexCellWeightFunction::IndexCellWeightFunction
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void IndexCellWeightFunction(const S2ShapeIndex* index,\n                            ShapeWeightFunction
      weight_fn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2density_tree.h:483,1
    - Dst: S2ShapeIndex*::num_shape_ids
      Src: /src/s2geometry/src/s2/s2density_tree.h:483,1
    - Dst: S2ShapeIndex*::num_shape_ids
      Src: /src/s2geometry/src/s2/s2density_tree.h:484,1
    - Dst: S2ShapeIndex*::shape
      Src: /src/s2geometry/src/s2/s2density_tree.h:485,1
    - Dst: feature_lookup_fn
      Src: /src/s2geometry/src/s2/s2density_tree.h:487,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/s2geometry/src/s2/s2density_tree.h:490,1
    - Dst: absl::flat_hash_map::size
      Src: /src/s2geometry/src/s2/s2density_tree.h:490,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2density_tree.h:494,1
    - Dst: absl::flat_hash_map::size
      Src: /src/s2geometry/src/s2/s2density_tree.h:494,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2density_tree.h:495,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.h:495,1
    - Dst: feature_weight_fn
      Src: /src/s2geometry/src/s2/s2density_tree.h:497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - index
    - ' feature_lookup_fn'
    - ' feature_weight_fn'
    argTypes:
    - S2ShapeIndex*
    - FeatureLookupFunction<T>
    - FeatureWeightFunction<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 499
    functionName: S2DensityTree::FeatureCellWeightFunction::FeatureCellWeightFunction
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map::emplace
    - feature_lookup_fn
    - size
    - S2ShapeIndex*::num_shape_ids
    - S2ShapeIndex*::shape
    - feature_weight_fn
    - absl::flat_hash_map::size
    - resize
    linkageType: ''
    returnType: void
    signature: "void FeatureCellWeightFunction(const S2ShapeIndex* index,\n                              const
      FeatureLookupFunction<T>& feature_lookup_fn,\n                              const
      FeatureWeightFunction<T>& feature_weight_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.h:553,1
    - Dst: BreadthFirstTreeBuilder::Build
      Src: /src/s2geometry/src/s2/s2density_tree.h:559,1
    - Dst: FeatureCellWeightFunction::WeighCell
      Src: /src/s2geometry/src/s2/s2density_tree.h:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ' index'
    - ' feature_lookup_fn'
    - ' feature_weight_fn'
    - approximate_size_bytes
    - max_level
    - absl_nonnull
    argTypes:
    - S2ShapeIndex
    - FeatureLookupFunction<T>
    - FeatureWeightFunction<T>
    - int64_t
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: S2DensityTree::InitToFeatureDensity
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached:
    - BreadthFirstTreeBuilder::Build
    - FeatureCellWeightFunction::WeighCell
    - S2Error::Ok
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::InitToFeatureDensity(\n    const S2ShapeIndex&
      index,\n    const FeatureLookupFunction<T>& feature_lookup_fn,\n    const FeatureWeightFunction<T>&
      feature_weight_fn,\n    int64_t approximate_size_bytes, int max_level,\n    S2Error*
      absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2density_tree.h:572,1
    - Dst: absl::c_fill
      Src: /src/s2geometry/src/s2/s2density_tree.h:574,1
    - Dst: VisitIntersectingShapeIds
      Src: /src/s2geometry/src/s2/s2density_tree.h:577,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2density_tree.h:578,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2density_tree.h:581,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2density_tree.h:583,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2density_tree.h:584,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2density_tree.h:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - cell_id
    - absl_nonnull
    argTypes:
    - S2CellId
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 594
    functionName: "S2DensityTree::FeatureCellWeightFunction<T>::WeighCell(\n    const
      S2CellId cell_id, S2Error* absl_nonnull error)"
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.h
    functionUses: 0
    functionsReached:
    - VisitIntersectingShapeIds
    - ABSL_DCHECK_LE
    - Stats::max
    - std::exchange
    - min
    - S2Cell
    - absl::c_fill
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int64_t
    signature: "int64_t S2DensityTree::FeatureCellWeightFunction<T>::WeighCell(\n
      \   const S2CellId cell_id, S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:161,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:162,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: s2builderutil::IndexedS2PolygonLayer::IndexedS2PolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached:
    - get
    - Options
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: "void IndexedS2PolygonLayer(MutableS2ShapeIndex* index,\n                                 const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolygonLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: s2builderutil::IndexedS2PolygonLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 1
    functionsReached:
    - s2builderutil::IndexedS2PolygonLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolygonLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:170,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:171,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:171,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:172,1
    - Dst: std::make_unique<S2Polygon::OwningShape>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:173,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: s2builderutil::IndexedS2PolygonLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 1
    functionsReached:
    - Add
    - std::move
    - s2builderutil::IndexedS2PolygonLayer::Build
    - std::make_unique<S2Polygon::OwningShape>
    - ok
    - is_empty
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: S2PolygonLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: S2PolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: S2PolygonLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType S2PolygonLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: "S2PolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: S2PolygonLayer::Options::validate() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2PolygonLayer::Options::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - validate
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: S2PolygonLayer::Options::set_validate(bool validate)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::Options::set_validate(bool validate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:161,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:162,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: s2builderutil::IndexedS2PolygonLayer::IndexedS2PolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached:
    - get
    - Options
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: "void IndexedS2PolygonLayer(MutableS2ShapeIndex* index,\n                                 const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolygonLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: s2builderutil::IndexedS2PolygonLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 2
    functionsReached:
    - s2builderutil::IndexedS2PolygonLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolygonLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:170,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:171,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:171,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:172,1
    - Dst: std::make_unique<S2Polygon::OwningShape>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:173,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: s2builderutil::IndexedS2PolygonLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 2
    functionsReached:
    - Add
    - std::move
    - s2builderutil::IndexedS2PolygonLayer::Build
    - std::make_unique<S2Polygon::OwningShape>
    - ok
    - is_empty
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: S2PolygonLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: S2PolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: S2PolygonLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType S2PolygonLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: "S2PolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: S2PolygonLayer::Options::validate() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2PolygonLayer::Options::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - validate
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: S2PolygonLayer::Options::set_validate(bool validate)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::Options::set_validate(bool validate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:41,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:42,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:43,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:45,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:46,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2random_test.cc:48,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2random_test.cc:49,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:51,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:52,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - std::pow
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(LogUniform, InRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:58,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:59,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:60,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:61,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2random_test.cc:62,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2random_test.cc:63,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2random_test.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - EXPECT_GE
    - s2random::SkewedInt
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(SkewedInt, InRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:69,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:70,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:71,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:73,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - EXPECT_TRUE
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(RandomPoint, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:89,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:90,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:91,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:92,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:93,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:94,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:94,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:95,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:96,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2random::Frame
    - S2Point::S2Point
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameVectors, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:101,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:102,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:103,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:104,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:105,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:106,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:106,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:106,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:107,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:107,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:107,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:108,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:108,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - s2random::Frame
    - S2Point::DotProd
    - S2Point::S2Point
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - abs
    linkageType: ''
    returnType: void
    signature: void TEST(FrameVectors, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:113,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:114,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:115,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:116,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:117,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:120,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:121,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:122,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:123,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:123,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:124,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:124,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:125,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - Norm2
    - s2random::Frame
    - S2Point::S2Point
    - CrossProd
    - S2Point::CrossProd
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameVectors, RightHanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:134,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:135,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:136,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:137,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:138,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:138,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:139,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:139,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:139,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:140,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:140,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - Matrix3x3_d::Col
    - EXPECT_TRUE
    - s2random::Frame
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameMatrix, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:145,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:146,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:147,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:148,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:149,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:149,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:149,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:149,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:150,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:150,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:150,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:150,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:151,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:151,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:151,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - Matrix3x3_d::Col
    - s2random::Frame
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - abs
    linkageType: ''
    returnType: void
    signature: void TEST(FrameMatrix, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:156,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:157,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:158,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:159,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:160,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:160,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:161,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:161,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:162,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:162,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:163,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:163,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:163,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:164,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:164,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:164,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:165,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:165,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - Matrix3x3_d::Col
    - Norm2
    - s2random::Frame
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameMatrix, RightHanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:170,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:171,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:172,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:173,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:174,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:175,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:176,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:177,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - s2random::Point
    - EXPECT_TRUE
    - S2Point::S2Point
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtVectors, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:182,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:183,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:184,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:185,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:186,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:187,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:188,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:188,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:188,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:189,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:189,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:189,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:190,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:190,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - s2random::FrameAt
    - s2random::Point
    - S2Point::DotProd
    - S2Point::S2Point
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - abs
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtVectors, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:195,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:196,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:197,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:198,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:199,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:200,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:201,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:202,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:203,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:204,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:204,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:205,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:205,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:206,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - s2random::Point
    - Norm2
    - S2Point::S2Point
    - CrossProd
    - S2Point::CrossProd
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtVectors, RightHanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:211,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:212,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:213,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:214,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2random_test.cc:217,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3_d::Col
    - s2random::Point
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtMatrix, ZIsCopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:222,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:223,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:224,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:225,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:226,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:227,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:227,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:228,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:228,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:228,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:229,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:229,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3_d::Col
    - s2random::Point
    - EXPECT_TRUE
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtMatrix, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:234,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:235,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:236,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:237,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:238,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:239,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:239,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:239,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:239,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:240,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:240,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:240,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:240,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:241,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:241,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:241,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3_d::Col
    - s2random::Point
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - abs
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtMatrix, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:246,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:247,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:248,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:249,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:250,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:251,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:251,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:252,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:252,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:253,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:253,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:254,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:254,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:254,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:255,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:255,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:255,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:256,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:256,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3_d::Col
    - s2random::Point
    - Norm2
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtMatrix, RightHanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:261,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:262,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:263,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:265,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:267,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2random_test.cc:268,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2random_test.cc:269,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2random_test.cc:269,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:270,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2random_test.cc:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 272
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::GetArea
    - s2random::Cap
    - EXPECT_GE
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(RandomCap, AreaInRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:275,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:276,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:277,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2random_test.cc:280,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2random_test.cc:281,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:282,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2random_test.cc:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Cap
    - EXPECT_TRUE
    - S2Cap::Contains
    - s2random::SamplePoint
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(SamplePoint, InsideCap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:287,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:288,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2random_test.cc:290,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2random_test.cc:291,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:292,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2random_test.cc:293,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:294,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2random_test.cc:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - absl::GetFlag
    - s2random::SamplePoint
    - S2LatLng::FromDegrees
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: void
    signature: void TEST(SamplePoint, InsideRect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:299,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:300,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:301,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:302,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2random_test.cc:304,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:305,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2random_test.cc:305,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2random_test.cc:306,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2random_test.cc:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellId::level
    - s2random::CellId
    - EXPECT_EQ
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2CellId::is_valid
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CellId, AtSpecifiedLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:311,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:312,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:313,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2random_test.cc:314,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:315,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2random_test.cc:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 317
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2random::CellId
    - absl::LogInfoStreamer
    - S2CellId::is_valid
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CellId, Valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:41,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:42,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:43,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:45,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:46,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2random_test.cc:48,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2random_test.cc:49,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:51,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:52,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - std::pow
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(LogUniform, InRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:58,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:59,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:60,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:61,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2random_test.cc:62,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2random_test.cc:63,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2random_test.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - EXPECT_GE
    - s2random::SkewedInt
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(SkewedInt, InRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:69,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:70,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:71,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:73,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - EXPECT_TRUE
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(RandomPoint, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:89,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:90,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:91,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:92,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:93,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:94,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:94,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:95,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:96,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2random::Frame
    - S2Point::S2Point
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameVectors, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:101,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:102,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:103,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:104,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:105,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:106,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:106,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:106,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:107,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:107,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:107,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:108,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:108,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - s2random::Frame
    - S2Point::DotProd
    - S2Point::S2Point
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - abs
    linkageType: ''
    returnType: void
    signature: void TEST(FrameVectors, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:113,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:114,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:115,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:116,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:117,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:120,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:121,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:122,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:123,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:123,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:124,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:124,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:125,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - Norm2
    - s2random::Frame
    - S2Point::S2Point
    - CrossProd
    - S2Point::CrossProd
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameVectors, RightHanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:134,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:135,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:136,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:137,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:138,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:138,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:139,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:139,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:139,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:140,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:140,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - Matrix3x3_d::Col
    - EXPECT_TRUE
    - s2random::Frame
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameMatrix, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:145,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:146,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:147,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:148,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:149,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:149,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:149,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:149,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:150,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:150,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:150,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:150,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:151,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:151,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:151,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - Matrix3x3_d::Col
    - s2random::Frame
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - abs
    linkageType: ''
    returnType: void
    signature: void TEST(FrameMatrix, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:156,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:157,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:158,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2random_test.cc:159,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:160,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:160,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:161,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:161,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:162,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:162,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:163,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:163,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:163,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:164,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:164,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:164,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:165,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:165,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - Matrix3x3_d::Col
    - Norm2
    - s2random::Frame
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameMatrix, RightHanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:170,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:171,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:172,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:173,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:174,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:175,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:176,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:177,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - s2random::Point
    - EXPECT_TRUE
    - S2Point::S2Point
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtVectors, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:182,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:183,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:184,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:185,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:186,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:187,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:188,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:188,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:188,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:189,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:189,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:189,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:190,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:190,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - s2random::FrameAt
    - s2random::Point
    - S2Point::DotProd
    - S2Point::S2Point
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - abs
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtVectors, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:195,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:196,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:197,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:198,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:199,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:200,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:201,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:202,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2random_test.cc:203,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:204,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:204,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:205,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:205,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:206,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - s2random::Point
    - Norm2
    - S2Point::S2Point
    - CrossProd
    - S2Point::CrossProd
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtVectors, RightHanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:211,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:212,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:213,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:214,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2random_test.cc:217,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3_d::Col
    - s2random::Point
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtMatrix, ZIsCopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:222,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:223,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:224,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:225,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:226,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:227,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:227,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:228,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:228,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:228,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:229,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2random_test.cc:229,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3_d::Col
    - s2random::Point
    - EXPECT_TRUE
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtMatrix, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:234,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:235,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:236,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:237,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:238,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:239,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:239,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:239,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:239,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:240,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:240,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:240,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:240,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:241,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2random_test.cc:241,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:241,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3_d::Col
    - s2random::Point
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - abs
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtMatrix, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:246,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:247,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:248,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random_test.cc:249,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random_test.cc:250,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:251,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:251,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:252,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:252,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:253,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:253,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:254,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:254,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:254,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:255,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:255,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:255,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:256,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2random_test.cc:256,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2random_test.cc:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3_d::Col
    - s2random::Point
    - Norm2
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(FrameAtMatrix, RightHanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:261,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:262,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:263,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:265,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:267,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2random_test.cc:268,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2random_test.cc:269,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2random_test.cc:269,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2random_test.cc:270,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2random_test.cc:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 272
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::GetArea
    - s2random::Cap
    - EXPECT_GE
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(RandomCap, AreaInRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:275,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:276,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:277,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2random_test.cc:280,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2random_test.cc:281,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:282,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2random_test.cc:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Cap
    - EXPECT_TRUE
    - S2Cap::Contains
    - s2random::SamplePoint
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(SamplePoint, InsideCap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:287,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:288,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2random_test.cc:290,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2random_test.cc:291,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:292,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2random_test.cc:293,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:294,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2random_test.cc:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - absl::GetFlag
    - s2random::SamplePoint
    - S2LatLng::FromDegrees
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: void
    signature: void TEST(SamplePoint, InsideRect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:299,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:300,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:301,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random_test.cc:302,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2random_test.cc:304,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:305,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2random_test.cc:305,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2random_test.cc:306,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2random_test.cc:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellId::level
    - s2random::CellId
    - EXPECT_EQ
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2CellId::is_valid
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CellId, AtSpecifiedLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2random_test.cc:311,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2random_test.cc:312,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2random_test.cc:313,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2random_test.cc:314,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2random_test.cc:315,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2random_test.cc:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 317
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2random_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2random::CellId
    - absl::LogInfoStreamer
    - S2CellId::is_valid
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CellId, Valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<std::thread[]>
      Src: /src/s2geometry/src/s2/thread_testing.cc:35,1
    - Dst: std::thread
      Src: /src/s2geometry/src/s2/thread_testing.cc:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - callback
    - num_threads
    argTypes:
    - absl::FunctionRef<void ()>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: s2testing::ReaderThreadPool::ReaderThreadPool
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.cc
    functionUses: 0
    functionsReached:
    - std::thread
    - make_unique<std::thread[]>
    linkageType: ''
    returnType: void
    signature: void ReaderThreadPool(absl::FunctionRef<void ()> callback, int num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: join
      Src: /src/s2geometry/src/s2/thread_testing.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ~ReaderThreadPool()
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.cc
    functionUses: 0
    functionsReached:
    - join
    linkageType: ''
    returnType: void
    signature: void ~ReaderThreadPool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/s2geometry/src/s2/thread_testing.cc:51,1
    - Dst: Wait
      Src: /src/s2geometry/src/s2/thread_testing.cc:54,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/thread_testing.cc:59,1
    - Dst: ReadOp
      Src: /src/s2geometry/src/s2/thread_testing.cc:60,1
    - Dst: lock
      Src: /src/s2geometry/src/s2/thread_testing.cc:61,1
    - Dst: Signal
      Src: /src/s2geometry/src/s2/thread_testing.cc:63,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/thread_testing.cc:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: s2testing::ReaderWriterTest::ReaderLoop
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.cc
    functionUses: 0
    functionsReached:
    - lock
    - Signal
    - ReadOp
    - Wait
    - unlock
    linkageType: ''
    returnType: void
    signature: void ReaderWriterTest::ReaderLoop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2testing::ReaderWriterTest::ReaderLoop
      Src: /src/s2geometry/src/s2/thread_testing.cc:73,1
    - Dst: lock
      Src: /src/s2geometry/src/s2/thread_testing.cc:75,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/thread_testing.cc:78,1
    - Dst: WriteOp
      Src: /src/s2geometry/src/s2/thread_testing.cc:79,1
    - Dst: SignalAll
      Src: /src/s2geometry/src/s2/thread_testing.cc:84,1
    - Dst: Wait
      Src: /src/s2geometry/src/s2/thread_testing.cc:86,1
    - Dst: SignalAll
      Src: /src/s2geometry/src/s2/thread_testing.cc:91,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/thread_testing.cc:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - num_readers
    - iters
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 94
    functionName: s2testing::ReaderWriterTest::Run
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.cc
    functionUses: 0
    functionsReached:
    - WriteOp
    - ABSL_DCHECK_EQ
    - SignalAll
    - lock
    - unlock
    - Wait
    - s2testing::ReaderWriterTest::ReaderLoop
    linkageType: ''
    returnType: void
    signature: void ReaderWriterTest::Run(int num_readers, int iters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<std::thread[]>
      Src: /src/s2geometry/src/s2/thread_testing.cc:35,1
    - Dst: std::thread
      Src: /src/s2geometry/src/s2/thread_testing.cc:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - callback
    - num_threads
    argTypes:
    - absl::FunctionRef<void ()>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: s2testing::ReaderThreadPool::ReaderThreadPool
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.cc
    functionUses: 0
    functionsReached:
    - std::thread
    - make_unique<std::thread[]>
    linkageType: ''
    returnType: void
    signature: void ReaderThreadPool(absl::FunctionRef<void ()> callback, int num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: join
      Src: /src/s2geometry/src/s2/thread_testing.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ~ReaderThreadPool()
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.cc
    functionUses: 0
    functionsReached:
    - join
    linkageType: ''
    returnType: void
    signature: void ~ReaderThreadPool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/s2geometry/src/s2/thread_testing.cc:51,1
    - Dst: Wait
      Src: /src/s2geometry/src/s2/thread_testing.cc:54,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/thread_testing.cc:59,1
    - Dst: ReadOp
      Src: /src/s2geometry/src/s2/thread_testing.cc:60,1
    - Dst: lock
      Src: /src/s2geometry/src/s2/thread_testing.cc:61,1
    - Dst: Signal
      Src: /src/s2geometry/src/s2/thread_testing.cc:63,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/thread_testing.cc:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: s2testing::ReaderWriterTest::ReaderLoop
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.cc
    functionUses: 1
    functionsReached:
    - lock
    - Signal
    - ReadOp
    - Wait
    - unlock
    linkageType: ''
    returnType: void
    signature: void ReaderWriterTest::ReaderLoop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2testing::ReaderWriterTest::ReaderLoop
      Src: /src/s2geometry/src/s2/thread_testing.cc:73,1
    - Dst: lock
      Src: /src/s2geometry/src/s2/thread_testing.cc:75,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/thread_testing.cc:78,1
    - Dst: WriteOp
      Src: /src/s2geometry/src/s2/thread_testing.cc:79,1
    - Dst: SignalAll
      Src: /src/s2geometry/src/s2/thread_testing.cc:84,1
    - Dst: Wait
      Src: /src/s2geometry/src/s2/thread_testing.cc:86,1
    - Dst: SignalAll
      Src: /src/s2geometry/src/s2/thread_testing.cc:91,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/thread_testing.cc:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - num_readers
    - iters
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 94
    functionName: s2testing::ReaderWriterTest::Run
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.cc
    functionUses: 0
    functionsReached:
    - WriteOp
    - ABSL_DCHECK_EQ
    - SignalAll
    - lock
    - unlock
    - Wait
    - s2testing::ReaderWriterTest::ReaderLoop
    linkageType: ''
    returnType: void
    signature: void ReaderWriterTest::Run(int num_readers, int iters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::PlanarCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:40,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:41,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:41,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:41,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:42,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2centroids_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - EXPECT_TRUE
    - S2Point::Normalize
    - S2::ApproxEquals
    - S2Point::Norm
    - S2::PlanarCentroid
    linkageType: ''
    returnType: void
    signature: void TEST(PlanarCentroid, SemiEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:46,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:47,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:52,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:53,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:54,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:55,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:56,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:57,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:58,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:62,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:63,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 65
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2centroids_test.cc
    functionUses: 0
    functionsReached:
    - S2::TrueCentroid
    - s2random::Frame
    - S2Point::S2Point
    - S2Point::Angle
    - Normalize
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(TriangleTrueCentroid, SmallTriangles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:73,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:74,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:74,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:74,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:75,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2centroids_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - S2::TrueCentroid
    - EXPECT_TRUE
    - S2Point::Normalize
    - S2::ApproxEquals
    - S2Point::Norm
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTrueCentroid, SemiEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:79,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:80,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:92,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:93,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:97,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:97,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:98,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:98,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:99,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:103,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:104,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 106
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2centroids_test.cc
    functionUses: 0
    functionsReached:
    - S2::TrueCentroid
    - s2random::Frame
    - S2Point::S2Point
    - pow
    - sin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_LE
    - S2Testing::MakeTaggedSeedSeq
    - Norm
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTrueCentroid, GreatCircles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::PlanarCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:40,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:41,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:41,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:41,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:42,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2centroids_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - EXPECT_TRUE
    - S2Point::Normalize
    - S2::ApproxEquals
    - S2Point::Norm
    - S2::PlanarCentroid
    linkageType: ''
    returnType: void
    signature: void TEST(PlanarCentroid, SemiEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:46,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:47,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:52,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:53,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:54,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:55,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:56,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:57,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:58,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:62,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:63,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 65
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2centroids_test.cc
    functionUses: 0
    functionsReached:
    - S2::TrueCentroid
    - s2random::Frame
    - S2Point::S2Point
    - S2Point::Angle
    - Normalize
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(TriangleTrueCentroid, SmallTriangles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:73,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:74,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:74,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:74,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:75,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2centroids_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - S2::TrueCentroid
    - EXPECT_TRUE
    - S2Point::Normalize
    - S2::ApproxEquals
    - S2Point::Norm
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTrueCentroid, SemiEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:79,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:80,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:92,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:93,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:97,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:97,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:98,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:98,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:99,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:103,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:104,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2centroids_test.cc:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 106
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2centroids_test.cc
    functionUses: 0
    functionsReached:
    - S2::TrueCentroid
    - s2random::Frame
    - S2Point::S2Point
    - pow
    - sin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_LE
    - S2Testing::MakeTaggedSeedSeq
    - Norm
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTrueCentroid, GreatCircles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:46,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:46,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - S2RegionCoverer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: S2RegionCoverer::S2RegionCoverer
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - max_level
    - min_level
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::S2RegionCoverer(const S2RegionCoverer::Options&
      options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: S2RegionCoverer::S2RegionCoverer
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::S2RegionCoverer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: S2RegionCoverer::~S2RegionCoverer()
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::~S2RegionCoverer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: S2RegionCoverer::S2RegionCoverer
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::S2RegionCoverer(S2RegionCoverer&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_cells
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: S2RegionCoverer::Options::set_max_cells(int max_cells)
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::Options::set_max_cells(int max_cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:61,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:62,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:64,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - min_level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: S2RegionCoverer::Options::set_min_level(int min_level)
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - max
    - min
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::Options::set_min_level(int min_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:68,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:69,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:71,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - max_level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: S2RegionCoverer::Options::set_max_level(int max_level)
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - max
    - min
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::Options::set_max_level(int max_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:75,1
    - Dst: set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: S2RegionCoverer::Options::set_fixed_level(int level)
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - set_max_level
    - set_min_level
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::Options::set_fixed_level(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:80,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:81,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:82,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - level_mod
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: S2RegionCoverer::Options::set_level_mod(int level_mod)
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - max
    - min
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::Options::set_level_mod(int level_mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: S2RegionCoverer::Options::true_max_level() const
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2RegionCoverer::Options::true_max_level() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:91,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:94,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:94,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:96,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:98,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:98,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:98,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:102,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:102,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:102,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:103,1
    - Dst: S2RegionCoverer::max_children_shift
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:109,1
    - Dst: Candidate::Candidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: S2RegionCoverer::NewCandidate
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - level_mod
    - Candidate::Candidate
    - level
    - MayIntersect
    - S2RegionCoverer::max_children_shift
    - max_level
    - Contains
    - min_level
    linkageType: ''
    returnType: S2RegionCoverer::Candidate
    signature: S2RegionCoverer::Candidate * S2RegionCoverer::NewCandidate(const S2Cell&
      cell)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::DeleteCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - candidate
    - delete_children
    argTypes:
    - Candidate*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: S2RegionCoverer::DeleteCandidate
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 1
    functionsReached:
    - S2RegionCoverer::DeleteCandidate
    linkageType: ''
    returnType: void
    signature: "void S2RegionCoverer::DeleteCandidate(Candidate* candidate,\n                                      bool
      delete_children)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Subdivide
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:126,1
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:130,1
    - Dst: S2RegionCoverer::ExpandChildren
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:131,1
    - Dst: S2RegionCoverer::NewCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - candidate
    - ' cell'
    - num_levels
    argTypes:
    - Candidate*
    - S2Cell
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: S2RegionCoverer::ExpandChildren
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 1
    functionsReached:
    - Subdivide
    - S2RegionCoverer::ExpandChildren
    - S2RegionCoverer::NewCandidate
    - MayIntersect
    linkageType: ''
    returnType: int
    signature: "int S2RegionCoverer::ExpandChildren(Candidate* candidate,\n                                    const
      S2Cell& cell, int num_levels)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:148,1
    - Dst: Candidate*::cell::id
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:148,1
    - Dst: S2RegionCoverer::DeleteCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:149,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:152,1
    - Dst: Candidate*::cell::level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:156,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:156,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:157,1
    - Dst: S2RegionCoverer::ExpandChildren
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:158,1
    - Dst: S2RegionCoverer::DeleteCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:161,1
    - Dst: S2RegionCoverer::max_children_shift
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:164,1
    - Dst: Candidate*::cell::level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:165,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:165,1
    - Dst: S2RegionCoverer::AddCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:171,1
    - Dst: Candidate*::cell::level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:180,1
    - Dst: S2RegionCoverer::max_children_shift
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:180,1
    - Dst: S2RegionCoverer::max_children_shift
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:181,1
    - Dst: push
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:183,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:183,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:184,1
    - Dst: Candidate*::cell::id
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - candidate
    argTypes:
    - Candidate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 187
    functionName: S2RegionCoverer::AddCandidate
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 1
    functionsReached:
    - level_mod
    - S2RegionCoverer::DeleteCandidate
    - ABSL_DCHECK_EQ
    - push
    - Candidate*::cell::level
    - push_back
    - ABSL_VLOG
    - S2RegionCoverer::max_children_shift
    - S2RegionCoverer::ExpandChildren
    - std::make_pair
    - Candidate*::cell::id
    - S2RegionCoverer::AddCandidate
    - min_level
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::AddCandidate(Candidate* candidate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:190,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:190,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:191,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: S2RegionCoverer::AdjustLevel
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - level_mod
    - min_level
    linkageType: ''
    returnType: int
    signature: int S2RegionCoverer::AdjustLevel(int level) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:197,1
    - Dst: is_sorted
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:197,1
    - Dst: vector<S2CellId>*::begin
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:197,1
    - Dst: vector<S2CellId>*::end
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:197,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:198,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:202,1
    - Dst: S2RegionCoverer::AdjustLevel
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:203,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:204,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:205,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:206,1
    - Dst: vector<S2CellId>*::resize
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - cells
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 210
    functionName: S2RegionCoverer::AdjustCellLevels
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - level_mod
    - vector<S2CellId>*::end
    - level
    - is_sorted
    - S2RegionCoverer::AdjustLevel
    - vector<S2CellId>*::resize
    - vector<S2CellId>*::begin
    - parent
    - contains
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::AdjustCellLevels(vector<S2CellId>* cells) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:215,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:216,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:216,1
    - Dst: max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:216,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:217,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:217,1
    - Dst: S2RegionCoverer::GetFastCovering
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:219,1
    - Dst: S2RegionCoverer::AdjustCellLevels
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:220,1
    - Dst: S2RegionCoverer::AddCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:222,1
    - Dst: S2RegionCoverer::NewCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:222,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: S2RegionCoverer::GetInitialCandidates
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - S2Cell
    - S2RegionCoverer::mutable_options
    - min
    - S2RegionCoverer::NewCandidate
    - max_level
    - max_cells
    - S2RegionCoverer::GetFastCovering
    - S2RegionCoverer::S2RegionCoverer
    - S2RegionCoverer::AddCandidate
    - S2RegionCoverer::AdjustCellLevels
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::GetInitialCandidates()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:228,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:228,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:228,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:244,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:244,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:245,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:245,1
    - Dst: S2RegionCoverer::GetInitialCandidates
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:249,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:250,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:252,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:252,1
    - Dst: max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:252,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:253,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:254,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:255,1
    - Dst: Candidate*::cell::id
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:255,1
    - Dst: Candidate*::cell::level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:264,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:264,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:266,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:266,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:267,1
    - Dst: max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:267,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:271,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:271,1
    - Dst: max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:271,1
    - Dst: S2RegionCoverer::DeleteCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:272,1
    - Dst: S2RegionCoverer::AddCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:274,1
    - Dst: S2RegionCoverer::DeleteCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:277,1
    - Dst: S2RegionCoverer::AddCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:280,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:283,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:283,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:285,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:286,1
    - Dst: S2RegionCoverer::DeleteCandidate
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:287,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:287,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:288,1
    - Dst: S2CellUnion::Normalize
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:298,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:299,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:299,1
    - Dst: S2CellUnion::Denormalize
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:301,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:301,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:302,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:304,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:304,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - ' region'
    argTypes:
    - S2Region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 226
    functionDepth: 5
    functionLinenumber: 226
    functionLinenumberEnd: 305
    functionName: S2RegionCoverer::GetCoveringInternal
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Denormalize
    - top
    - max_level
    - Candidate*::cell::id
    - ABSL_DCHECK
    - pop
    - S2RegionCoverer::DeleteCandidate
    - level_mod
    - S2CellUnion::Normalize
    - max_cells
    - empty
    - ABSL_DCHECK_LE
    - Candidate*::cell::level
    - static_cast<size_t>
    - size
    - ABSL_VLOG
    - S2RegionCoverer::IsCanonical
    - S2RegionCoverer::GetInitialCandidates
    - S2RegionCoverer::AddCandidate
    - min_level
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::GetCoveringInternal(const S2Region& region)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::GetCoveringInternal
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:310,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' region'
    - covering
    argTypes:
    - S2Region
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 6
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: S2RegionCoverer::GetCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S2RegionCoverer::GetCoveringInternal
    linkageType: ''
    returnType: void
    signature: "void S2RegionCoverer::GetCovering(const S2Region& region,\n                                  vector<S2CellId>*
      covering)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::GetCoveringInternal
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:317,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' region'
    - interior
    argTypes:
    - S2Region
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 6
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: S2RegionCoverer::GetInteriorCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S2RegionCoverer::GetCoveringInternal
    linkageType: ''
    returnType: void
    signature: "void S2RegionCoverer::GetInteriorCovering(const S2Region& region,\n
      \                                         vector<S2CellId>* interior)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::GetCoveringInternal
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:323,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:324,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' region'
    argTypes:
    - S2Region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: S2RegionCoverer::GetCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::FromVerbatim
    - std::move
    - S2RegionCoverer::GetCoveringInternal
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2RegionCoverer::GetCovering(const S2Region& region)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::GetCoveringInternal
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:329,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:330,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' region'
    argTypes:
    - S2Region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 6
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: S2RegionCoverer::GetInteriorCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::FromVerbatim
    - std::move
    - S2RegionCoverer::GetCoveringInternal
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2RegionCoverer::GetInteriorCovering(const S2Region& region)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCellUnionBound
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:335,1
    - Dst: S2RegionCoverer::CanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' region'
    - covering
    argTypes:
    - S2Region
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: S2RegionCoverer::GetFastCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 1
    functionsReached:
    - GetCellUnionBound
    - S2RegionCoverer::CanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: "void S2RegionCoverer::GetFastCovering(const S2Region& region,\n                                      vector<S2CellId>*
      covering)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:340,1
    - Dst: cell_ids
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' covering'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: S2RegionCoverer::IsCanonical
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 2
    functionsReached:
    - cell_ids
    - S2RegionCoverer::IsCanonical
    linkageType: ''
    returnType: bool
    signature: bool S2RegionCoverer::IsCanonical(const S2CellUnion& covering) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:345,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:345,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:345,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:347,1
    - Dst: true_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:348,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:349,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:351,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:351,1
    - Dst: max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:351,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:353,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:355,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:358,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:362,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:364,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:364,1
    - Dst: GetCommonAncestorLevel
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:368,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:375,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:376,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:376,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 1
    argNames:
    - ' covering'
    argTypes:
    - vector<S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 385
    functionName: S2RegionCoverer::IsCanonical
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 2
    functionsReached:
    - level_mod
    - S2CellId::range_max
    - level
    - S2CellId::None
    - ABSL_DCHECK_LE
    - size
    - static_cast<size_t>
    - S2CellId::level
    - true_max_level
    - is_valid
    - S2CellId::parent
    - range_min
    - max_level
    - GetCommonAncestorLevel
    - max_cells
    - parent
    - min_level
    linkageType: ''
    returnType: bool
    signature: bool S2RegionCoverer::IsCanonical(const vector<S2CellId>& covering)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:389,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:389,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:389,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:389,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:390,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:390,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:391,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:392,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:392,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' covering'
    - id
    argTypes:
    - vector<S2CellId>
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 396
    functionName: S2RegionCoverer::ContainsAllChildren
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - level_mod
    - S2CellId::range_min
    - end
    - S2CellId::level
    - S2CellId::next
    - std::lower_bound
    - begin
    - S2CellId::child_begin
    - S2CellId::child_end
    linkageType: ''
    returnType: bool
    signature: "bool S2RegionCoverer::ContainsAllChildren(const vector<S2CellId>&
      covering,\n                                          S2CellId id) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:402,1
    - Dst: vector<S2CellId>*::begin
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:402,1
    - Dst: vector<S2CellId>*::end
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:402,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:403,1
    - Dst: std::upper_bound
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:404,1
    - Dst: vector<S2CellId>*::begin
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:404,1
    - Dst: vector<S2CellId>*::end
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:404,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:405,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:406,1
    - Dst: vector<S2CellId>*::erase
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - covering
    - id
    argTypes:
    - vector<S2CellId>*
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 409
    functionName: S2RegionCoverer::ReplaceCellsWithAncestor
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - S2CellId::range_max
    - vector<S2CellId>*::end
    - std::upper_bound
    - S2CellId::range_min
    - std::lower_bound
    - vector<S2CellId>*::begin
    - vector<S2CellId>*::erase
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void S2RegionCoverer::ReplaceCellsWithAncestor(vector<S2CellId>* covering,\n
      \                                              S2CellId id) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cell_ids
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:412,1
    - Dst: S2RegionCoverer::CanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:413,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:414,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' covering'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: S2RegionCoverer::CanonicalizeCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 2
    functionsReached:
    - std::move
    - cell_ids
    - S2CellUnion
    - S2RegionCoverer::CanonicalizeCovering
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2RegionCoverer::CanonicalizeCovering(const S2CellUnion&
      covering)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:419,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:419,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:419,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:426,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:426,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:428,1
    - Dst: S2RegionCoverer::AdjustLevel
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:429,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:429,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:429,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:431,1
    - Dst: S2CellUnion::Normalize
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:437,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:441,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:441,1
    - Dst: S2CellUnion::Denormalize
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:442,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:442,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:443,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:444,1
    - Dst: vector<S2CellId>*::size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:450,1
    - Dst: max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:450,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:451,1
    - Dst: vector<S2CellId>*::size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:454,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:455,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:455,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:455,1
    - Dst: vector<S2CellId>*::size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:459,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:459,1
    - Dst: max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:459,1
    - Dst: vector<S2CellId>*::size
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:461,1
    - Dst: GetCommonAncestorLevel
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:462,1
    - Dst: S2RegionCoverer::AdjustLevel
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:463,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:469,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:472,1
    - Dst: S2RegionCoverer::ReplaceCellsWithAncestor
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:473,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:477,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:478,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:479,1
    - Dst: S2RegionCoverer::ContainsAllChildren
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:480,1
    - Dst: S2RegionCoverer::ReplaceCellsWithAncestor
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:481,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:485,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:485,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 1
    argNames:
    - covering
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 417
    functionDepth: 7
    functionLinenumber: 417
    functionLinenumberEnd: 486
    functionName: S2RegionCoverer::CanonicalizeCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 2
    functionsReached:
    - S2CellUnion::Denormalize
    - max_level
    - S2RegionCoverer::ReplaceCellsWithAncestor
    - ABSL_DCHECK
    - level_mod
    - S2RegionCoverer::AdjustLevel
    - S2CellUnion::Normalize
    - min
    - GetCommonAncestorLevel
    - max_cells
    - S2RegionCoverer::ContainsAllChildren
    - S2CellUnion
    - parent
    - level
    - ABSL_DCHECK_LE
    - std::move
    - S2RegionCoverer::GetCovering
    - vector<S2CellId>*::size
    - static_cast<size_t>
    - S2CellId::parent
    - S2RegionCoverer::IsCanonical
    - min_level
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer::CanonicalizeCovering(vector<S2CellId>* covering)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2CellId>*::clear
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:492,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:493,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:494,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:495,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:496,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:497,1
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:498,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:498,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:499,1
    - Dst: S2CellId::GetEdgeNeighbors
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:502,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:505,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - ' region'
    - start
    - output
    argTypes:
    - S2Region
    - S2CellId
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 510
    functionName: S2RegionCoverer::FloodFill
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - vector<S2CellId>*::clear
    - vector<S2CellId>*::push_back
    - vector::pop_back
    - MayIntersect
    - absl::flat_hash_set::insert
    - S2CellId::GetEdgeNeighbors
    - vector::back
    - vector::empty
    - S2Cell
    linkageType: ''
    returnType: void
    signature: "void S2RegionCoverer::FloodFill(const S2Region& region, S2CellId start,\n
      \                               vector<S2CellId>* output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::FloodFill
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:515,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2region_coverer.cc:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' region'
    - ' start'
    - level
    - output
    argTypes:
    - S2Region
    - S2Point
    - int
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: S2RegionCoverer::GetSimpleCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::FloodFill
    - S2CellId
    linkageType: ''
    returnType: void
    signature: "void S2RegionCoverer::GetSimpleCovering(\n    const S2Region& region,
      const S2Point& start,\n    int level, vector<S2CellId>* output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:72,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:72,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:72,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:74,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:74,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:75,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:75,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - Not
    - s2builderutil::PolygonDegeneracy
    linkageType: ''
    returnType: void
    signature: void TEST(PolygonDegeneracyTest, Equals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:79,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:79,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:80,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:80,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:80,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:81,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:81,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:81,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:81,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:82,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:82,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:82,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - Lt
    - EXPECT_THAT
    - Not
    - s2builderutil::PolygonDegeneracy
    linkageType: ''
    returnType: void
    signature: void TEST(PolygonDegeneracyTest, Less)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - TestDegeneracy
    - TestDegeneracy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: operator<(const TestDegeneracy& x, const TestDegeneracy& y)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const TestDegeneracy& x, const TestDegeneracy& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - TestDegeneracy
    - TestDegeneracy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: operator==(const TestDegeneracy& x, const TestDegeneracy& y)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestDegeneracy& x, const TestDegeneracy& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - vector<TestDegeneracy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: s2builderutil::DegeneracyCheckingLayer::DegeneracyCheckingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DegeneracyCheckingLayer(const vector<TestDegeneracy>& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: s2builderutil::DegeneracyCheckingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - v
    argTypes:
    - std::ostream
    - absl::Span<const TestDegeneracy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: '& operator<<(std::ostream& os, absl::Span<const TestDegeneracy>
      v)'
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, absl::Span<const TestDegeneracy>
      v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPolygonDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:125,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:129,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:130,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:130,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:131,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:132,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:134,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:134,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:134,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:135,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:135,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:135,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:138,1
    - Dst: IsFullyDegenerate
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:138,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:138,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: s2builderutil::DegeneracyCheckingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - IsFullyDegenerate
    - vector::push_back
    - end
    - EXPECT_TRUE
    - s2textformat::ToString
    - num_edges
    - vector::end
    - auto::size
    - vertex
    - edge
    - begin
    - std::sort
    - EXPECT_EQ
    - FindPolygonDegeneracies
    - vector::begin
    linkageType: ''
    returnType: void
    signature: "void DegeneracyCheckingLayer::Build(const Graph& g,\n                                    S2Error*
      absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:143,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:144,1
    - Dst: make_unique<DegeneracyCheckingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:144,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:145,1
    - Dst: S2Builder::AddIsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:146,1
    - Dst: auto::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:148,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:150,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:151,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:152,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - polygon_str
    - ' expected'
    argTypes:
    - string_view
    - vector<TestDegeneracy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: s2builderutil::ExpectDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::MakeLaxPolygonOrDie
    - auto::GetReferencePoint
    - S2Builder::AddIsFullPolygonPredicate
    - S2Builder::AddShape
    - S2Builder::Build
    - make_unique<DegeneracyCheckingLayer>
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ExpectDegeneracies(string_view polygon_str,\n                        const
      vector<TestDegeneracy>& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, NoDegeneracies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, PointShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, SiblingPairShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, AttachedSiblingPairShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, AttachedSiblingPairHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, AttachedSiblingPairShellsAndHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, DegenerateShellsOutsideLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, DegenerateHolesWithinLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, PointHoleWithinFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, SiblingPairHolesWithinFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - state
    argTypes:
    - benchmark::State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    functionName: s2builderutil::DegeneracyBenchmarkLayer::DegeneracyBenchmarkLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DegeneracyBenchmarkLayer(benchmark::State* state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: s2builderutil::DegeneracyBenchmarkLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:225,1
    - Dst: FindPolygonDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: s2builderutil::DegeneracyBenchmarkLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - FindPolygonDegeneracies
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:244,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:245,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:246,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:246,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:248,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:249,1
    - Dst: make_unique<DegeneracyBenchmarkLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:249,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:251,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:253,1
    - Dst: S2Builder::AddLoop
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:254,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:254,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:254,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:255,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:256,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:256,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:257,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:259,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:260,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 261
    functionName: s2builderutil::BM_FindPolygonDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - string::end
    - S2Error::S2Error
    - string::begin
    - S2::GetFrame
    - S2Cap
    - ABSL_CHECK
    - S2Builder::StartLayer
    - S2Builder::AddEdge
    - make_unique<DegeneracyBenchmarkLayer>
    - S1Angle::Degrees
    - S2Builder::AddLoop
    - S2ShapeNestingQuery::Options::Options
    - absl::StrCat
    - range
    - s2random::SamplePoint
    - S2Builder::Build
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindPolygonDegeneracies(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:72,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:72,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:72,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:74,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:74,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:75,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:75,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - Not
    - s2builderutil::PolygonDegeneracy
    linkageType: ''
    returnType: void
    signature: void TEST(PolygonDegeneracyTest, Equals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:79,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:79,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:80,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:80,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:80,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:81,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:81,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:81,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:81,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:82,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:82,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:82,1
    - Dst: s2builderutil::PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - Lt
    - EXPECT_THAT
    - Not
    - s2builderutil::PolygonDegeneracy
    linkageType: ''
    returnType: void
    signature: void TEST(PolygonDegeneracyTest, Less)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - TestDegeneracy
    - TestDegeneracy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: operator<(const TestDegeneracy& x, const TestDegeneracy& y)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const TestDegeneracy& x, const TestDegeneracy& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - TestDegeneracy
    - TestDegeneracy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: operator==(const TestDegeneracy& x, const TestDegeneracy& y)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestDegeneracy& x, const TestDegeneracy& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' expected'
    argTypes:
    - vector<TestDegeneracy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: s2builderutil::DegeneracyCheckingLayer::DegeneracyCheckingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DegeneracyCheckingLayer(const vector<TestDegeneracy>& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: s2builderutil::DegeneracyCheckingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - v
    argTypes:
    - std::ostream
    - absl::Span<const TestDegeneracy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: '& operator<<(std::ostream& os, absl::Span<const TestDegeneracy>
      v)'
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, absl::Span<const TestDegeneracy>
      v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPolygonDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:125,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:129,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:130,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:130,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:131,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:132,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:134,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:134,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:134,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:135,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:135,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:135,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:138,1
    - Dst: IsFullyDegenerate
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:138,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:138,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: s2builderutil::DegeneracyCheckingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - IsFullyDegenerate
    - vector::push_back
    - end
    - EXPECT_TRUE
    - s2textformat::ToString
    - num_edges
    - vector::end
    - auto::size
    - vertex
    - edge
    - begin
    - std::sort
    - EXPECT_EQ
    - FindPolygonDegeneracies
    - vector::begin
    linkageType: ''
    returnType: void
    signature: "void DegeneracyCheckingLayer::Build(const Graph& g,\n                                    S2Error*
      absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:143,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:144,1
    - Dst: make_unique<DegeneracyCheckingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:144,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:145,1
    - Dst: S2Builder::AddIsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:146,1
    - Dst: auto::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:148,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:150,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:151,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:152,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - polygon_str
    - ' expected'
    argTypes:
    - string_view
    - vector<TestDegeneracy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: s2builderutil::ExpectDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 11
    functionsReached:
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::MakeLaxPolygonOrDie
    - auto::GetReferencePoint
    - S2Builder::AddIsFullPolygonPredicate
    - S2Builder::AddShape
    - S2Builder::Build
    - make_unique<DegeneracyCheckingLayer>
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ExpectDegeneracies(string_view polygon_str,\n                        const
      vector<TestDegeneracy>& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, NoDegeneracies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, PointShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, SiblingPairShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, AttachedSiblingPairShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, AttachedSiblingPairHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, AttachedSiblingPairShellsAndHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, DegenerateShellsOutsideLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, DegenerateHolesWithinLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, PointHoleWithinFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::ExpectDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::ExpectDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(FindPolygonDegeneracies, SiblingPairHolesWithinFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - state
    argTypes:
    - benchmark::State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    functionName: s2builderutil::DegeneracyBenchmarkLayer::DegeneracyBenchmarkLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DegeneracyBenchmarkLayer(benchmark::State* state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: s2builderutil::DegeneracyBenchmarkLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:225,1
    - Dst: FindPolygonDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: s2builderutil::DegeneracyBenchmarkLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - FindPolygonDegeneracies
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:244,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:245,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:246,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:246,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:248,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:249,1
    - Dst: make_unique<DegeneracyBenchmarkLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:249,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:251,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:253,1
    - Dst: S2Builder::AddLoop
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:254,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:254,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:254,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:255,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:256,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:256,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:257,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:259,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:260,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 261
    functionName: s2builderutil::BM_FindPolygonDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - string::end
    - S2Error::S2Error
    - string::begin
    - S2::GetFrame
    - S2Cap
    - ABSL_CHECK
    - S2Builder::StartLayer
    - S2Builder::AddEdge
    - make_unique<DegeneracyBenchmarkLayer>
    - S1Angle::Degrees
    - S2Builder::AddLoop
    - S2ShapeNestingQuery::Options::Options
    - absl::StrCat
    - range
    - s2random::SamplePoint
    - S2Builder::Build
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindPolygonDegeneracies(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:323,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: S2ClosestPointQueryOptions::set_max_distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 1
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - Distance
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryOptions::set_max_distance(\n    S1ChordAngle
      max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:327,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: S2ClosestPointQueryOptions::set_max_distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 2
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - Distance
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryOptions::set_max_distance(S1Angle max_distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:332,1
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: S2ClosestPointQueryOptions::set_inclusive_max_distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - S1ChordAngle::Successor
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryOptions::set_inclusive_max_distance(\n    S1ChordAngle
      max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:337,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: S2ClosestPointQueryOptions::set_inclusive_max_distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 1
    functionsReached:
    - S2ClosestPointQueryOptions::set_inclusive_max_distance
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryOptions::set_inclusive_max_distance(\n    S1Angle
      max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:341,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_error
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: S2ClosestPointQueryOptions::set_max_error
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 1
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_error
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryOptions::set_max_error(S1Angle max_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: S2ClosestPointQueryPointTarget::S2ClosestPointQueryPointTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryPointTarget::S2ClosestPointQueryPointTarget(\n
      \   const S2Point& point)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: S2ClosestPointQueryEdgeTarget::S2ClosestPointQueryEdgeTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryEdgeTarget::S2ClosestPointQueryEdgeTarget(\n
      \   const S2Point& a, const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: S2ClosestPointQueryCellTarget::S2ClosestPointQueryCellTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryCellTarget::S2ClosestPointQueryCellTarget(\n
      \   const S2Cell& cell)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: S2ClosestPointQueryShapeIndexTarget::S2ClosestPointQueryShapeIndexTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryShapeIndexTarget::S2ClosestPointQueryShapeIndexTarget(\n
      \   const S2ShapeIndex* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQuery<Data>::Init
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - Index*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: S2ClosestPointQuery<Data>::S2ClosestPointQuery
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQuery<Data>::Init
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQuery<Data>::S2ClosestPointQuery(const Index* index,\n
      \                                                     const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: S2ClosestPointQuery<Data>::S2ClosestPointQuery
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQuery<Data>::S2ClosestPointQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: S2ClosestPointQuery<Data>::~S2ClosestPointQuery()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQuery<Data>::~S2ClosestPointQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQuery<Data>::Init
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - Index*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: S2ClosestPointQuery<Data>::Init
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 2
    functionsReached:
    - S2ClosestPointQuery<Data>::Init
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQuery<Data>::Init(const Index* index,\n                                     const
      Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQuery<Data>::ReInit
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: S2ClosestPointQuery<Data>::ReInit
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 1
    functionsReached:
    - S2ClosestPointQuery<Data>::ReInit
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQuery<Data>::ReInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: '& S2ClosestPointQuery<Data>::index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached:
    - index
    linkageType: ''
    returnType: S2PointIndex<Data>
    signature: S2PointIndex<Data> & S2ClosestPointQuery<Data>::index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: "& S2ClosestPointQuery<Data>::options()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ClosestPointQueryOptions
    signature: "S2ClosestPointQueryOptions & S2ClosestPointQuery<Data>::options()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: S2ClosestPointQuery<Data>::mutable_options
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ClosestPointQueryOptions
    signature: 'S2ClosestPointQueryOptions *

      S2ClosestPointQuery<Data>::mutable_options()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQuery<Data>::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - Target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: S2ClosestPointQuery<Data>::FindClosestPoints
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 1
    functionsReached:
    - S2ClosestPointQuery<Data>::FindClosestPoints
    linkageType: ''
    returnType: std::vector<typename S2ClosestPointQuery<Data>::Result>
    signature: std::vector<typename S2ClosestPointQuery<Data>::Result> S2ClosestPointQuery<Data>::FindClosestPoints(Target*
      target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQuery<Data>::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - results
    argTypes:
    - Target*
    - std::vector<Result>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: S2ClosestPointQuery<Data>::FindClosestPoints
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 2
    functionsReached:
    - S2ClosestPointQuery<Data>::FindClosestPoints
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQuery<Data>::FindClosestPoints(\n    Target* target,
      std::vector<Result>* results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:426,1
    - Dst: S2ClosestPointQuery<Data>::FindClosestPoint
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - target
    argTypes:
    - Target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: S2ClosestPointQuery<Data>::FindClosestPoint
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 1
    functionsReached:
    - Options::set_max_results
    - S2ClosestPointQuery<Data>::FindClosestPoint
    linkageType: ''
    returnType: typename S2ClosestPointQuery<Data>::Result
    signature: typename S2ClosestPointQuery<Data>::Result S2ClosestPointQuery<Data>::FindClosestPoint(Target*
      target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQuery<Data>::FindClosestPoint
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - Target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: S2ClosestPointQuery<Data>::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQuery<Data>::FindClosestPoint
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2ClosestPointQuery<Data>::GetDistance(Target* target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:440,1
    - Dst: Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:441,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:442,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:442,1
    - Dst: S2ClosestPointQuery<Data>::FindClosestPoint
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - target
    - limit
    argTypes:
    - Target*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 444
    functionName: S2ClosestPointQuery<Data>::IsDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached:
    - Options::set_max_error
    - Options::set_max_results
    - S2ClosestPointQuery<Data>::FindClosestPoint
    - Options::set_max_distance
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestPointQuery<Data>::IsDistanceLess(\n    Target* target,
      S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:451,1
    - Dst: Options::set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:452,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:453,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:453,1
    - Dst: S2ClosestPointQuery<Data>::FindClosestPoint
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - target
    - limit
    argTypes:
    - Target*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: S2ClosestPointQuery<Data>::IsDistanceLessOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached:
    - Options::set_max_error
    - Options::set_inclusive_max_distance
    - Options::set_max_results
    - S2ClosestPointQuery<Data>::FindClosestPoint
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestPointQuery<Data>::IsDistanceLessOrEqual(\n    Target*
      target, S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:462,1
    - Dst: Options::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:463,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:464,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:464,1
    - Dst: S2ClosestPointQuery<Data>::FindClosestPoint
      Src: /src/s2geometry/src/s2/s2closest_point_query.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - target
    - limit
    argTypes:
    - Target*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 466
    functionName: S2ClosestPointQuery<Data>::IsConservativeDistanceLessOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.h
    functionUses: 0
    functionsReached:
    - Options::set_max_error
    - Options::set_max_results
    - S2ClosestPointQuery<Data>::FindClosestPoint
    - S1ChordAngle::Straight
    - Options::set_conservative_max_distance
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestPointQuery<Data>::IsConservativeDistanceLessOrEqual(\n
      \   Target* target, S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:54,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:55,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:57,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:58,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:60,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:62,1
    - Dst: ShapeEdgeVector*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:63,1
    - Dst: s2shapeutil::ShapeEdge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:63,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' index'
    - ' cell'
    - shape_edges
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndexCell
    - ShapeEdgeVector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: s2shapeutil::AppendShapeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - shape_id
    - ShapeEdgeVector*::push_back
    - shape
    - s2shapeutil::ShapeEdge
    - edge
    - clipped
    - num_clipped
    linkageType: ''
    returnType: void
    signature: "void AppendShapeEdges(const S2ShapeIndex& index,\n                             const
      S2ShapeIndexCell& cell,\n                             ShapeEdgeVector* shape_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShapeEdgeVector*::clear
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:74,1
    - Dst: s2shapeutil::AppendShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' index'
    - ' cell'
    - shape_edges
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndexCell
    - ShapeEdgeVector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: s2shapeutil::GetShapeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - ShapeEdgeVector*::clear
    - s2shapeutil::AppendShapeEdges
    linkageType: ''
    returnType: void
    signature: "void GetShapeEdges(const S2ShapeIndex& index,\n                                 const
      S2ShapeIndexCell& cell,\n                                 ShapeEdgeVector* shape_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShapeEdgeVector*::clear
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:84,1
    - Dst: s2shapeutil::AppendShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' index'
    - ' cells'
    - shape_edges
    argTypes:
    - S2ShapeIndex
    - vector<const S2ShapeIndexCell*>
    - ShapeEdgeVector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: s2shapeutil::GetShapeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - ShapeEdgeVector*::clear
    - s2shapeutil::AppendShapeEdges
    linkageType: ''
    returnType: void
    signature: "void GetShapeEdges(const S2ShapeIndex& index,\n                                 const
      vector<const S2ShapeIndexCell*>& cells,\n                                 ShapeEdgeVector*
      shape_edges)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:96,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:103,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:103,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:106,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:106,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:109,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:109,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:109,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:110,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:110,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:112,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:112,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 4
    argNames:
    - ' shape_edges'
    - type
    - need_adjacent
    - visitor
    argTypes:
    - ShapeEdgeVector
    - CrossingType
    - bool
    - EdgePairVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 119
    functionName: s2shapeutil::VisitCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    - size
    - v1
    - v0
    - visitor
    - S2EdgeCrosser::c
    - S2EdgeCrosser::RestartAt
    linkageType: ''
    returnType: bool
    signature: "bool VisitCrossings(const ShapeEdgeVector& shape_edges,\n                           CrossingType
      type, bool need_adjacent,\n                           EdgePairVisitor visitor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:137,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:137,1
    - Dst: s2shapeutil::GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:138,1
    - Dst: S2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:138,1
    - Dst: s2shapeutil::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ' index'
    - type
    - need_adjacent
    - visitor
    argTypes:
    - S2ShapeIndex
    - CrossingType
    - bool
    - EdgePairVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: s2shapeutil::VisitCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 1
    functionsReached:
    - s2shapeutil::VisitCrossings
    - S2ShapeIndex::Iterator::Next
    - S2ShapeIndex::Iterator::done
    - S2ShapeIndex::Iterator::cell
    - s2shapeutil::GetShapeEdges
    linkageType: ''
    returnType: bool
    signature: "bool VisitCrossings(const S2ShapeIndex& index, CrossingType type,\n
      \                          bool need_adjacent, EdgePairVisitor visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' index'
    - type
    - visitor
    argTypes:
    - S2ShapeIndex
    - CrossingType
    - EdgePairVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: s2shapeutil::VisitCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::VisitCrossings
    linkageType: ''
    returnType: bool
    signature: "bool VisitCrossingEdgePairs(const S2ShapeIndex& index, CrossingType
      type,\n                            EdgePairVisitor visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' a_index'
    - ' b_index'
    - type
    - visitor
    - swapped
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    - EdgePairVisitor
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: s2shapeutil::IndexCrosser::IndexCrosser
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void IndexCrosser(const S2ShapeIndex& a_index, const S2ShapeIndex&
      b_index,\n               CrossingType type, EdgePairVisitor visitor, bool swapped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' a_index'
    - ' b_index'
    - type
    - visitor
    - swapped
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    - EdgePairVisitor
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: s2shapeutil::IndexCrosser::IndexCrosser
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void IndexCrosser(const S2ShapeIndex& a_index, const S2ShapeIndex&
      b_index,\n               CrossingType type, EdgePairVisitor visitor, bool swapped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: visitor_
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:219,1
    - Dst: visitor_
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - is_interior
    argTypes:
    - ShapeEdge
    - ShapeEdge
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: s2shapeutil::IndexCrosser::VisitEdgePair
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - visitor_
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitEdgePair(const ShapeEdge& a, const ShapeEdge&
      b,\n                                        bool is_interior)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:232,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:233,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:233,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:235,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:235,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:235,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:236,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:236,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:238,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:238,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgePair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b_cell'
    argTypes:
    - ShapeEdge
    - S2ShapeIndexCell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: s2shapeutil::IndexCrosser::VisitEdgeCellCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    - s2shapeutil::IndexCrosser::VisitEdgePair
    - GetShapeEdges
    - v1
    - v0
    - S2EdgeCrosser::c
    - S2EdgeCrosser::RestartAt
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitEdgeCellCrossings(const ShapeEdge& a,\n                                          const
      S2ShapeIndexCell& b_cell)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:250,1
    - Dst: VisitCells
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:255,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:256,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:256,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgeCellCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' a_cell'
    - b_id
    argTypes:
    - S2ShapeIndexCell
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: s2shapeutil::IndexCrosser::VisitSubcellCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - GetShapeEdges
    - v1
    - v0
    - VisitCells
    - s2shapeutil::IndexCrosser::VisitEdgeCellCrossings
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitSubcellCrossings(const S2ShapeIndexCell& a_cell,\n
      \                                        S2CellId b_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:269,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:269,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:271,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:271,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:271,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:272,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:272,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:274,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:274,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgePair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' a_edges'
    - ' b_edges'
    argTypes:
    - ShapeEdgeVector
    - ShapeEdgeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 281
    functionName: s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    - s2shapeutil::IndexCrosser::VisitEdgePair
    - v1
    - v0
    - S2EdgeCrosser::c
    - S2EdgeCrosser::RestartAt
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitEdgesEdgesCrossings(const ShapeEdgeVector&
      a_edges,\n                                            const ShapeEdgeVector&
      b_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:286,1
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:287,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a_cell'
    - ' b_cell'
    argTypes:
    - S2ShapeIndexCell
    - S2ShapeIndexCell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: s2shapeutil::IndexCrosser::VisitCellCellCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
    - GetShapeEdges
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitCellCellCrossings(\n    const S2ShapeIndexCell&
      a_cell, const S2ShapeIndexCell& b_cell)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:294,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:294,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:294,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:295,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::SeekBeyond
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:297,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:306,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:308,1
    - Dst: s2shapeutil::IndexCrosser::VisitSubcellCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:313,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:313,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:313,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::SeekBeyond
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:315,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:318,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:318,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:320,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:321,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::range_max
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:321,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:322,1
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:324,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:324,1
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:325,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:326,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:331,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ai
    - bi
    argTypes:
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 333
    functionName: s2shapeutil::IndexCrosser::VisitCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
    - s2shapeutil::IndexCrosser::VisitSubcellCrossings
    - GetShapeEdges
    - clear
    - push_back
    - s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::Next
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::range_max
    - empty
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::SeekBeyond
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitCrossings(\n    S2CellRangeIterator<S2ShapeIndex::Iterator>*
      ai,\n    S2CellRangeIterator<S2ShapeIndex::Iterator>* bi)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:344,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:345,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:348,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:348,1
    - Dst: auto::range_max
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:349,1
    - Dst: auto::range_min
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:349,1
    - Dst: auto::SeekTo
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:351,1
    - Dst: auto::range_max
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:352,1
    - Dst: auto::range_min
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:352,1
    - Dst: auto::SeekTo
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:354,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:357,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:357,1
    - Dst: IndexCrosser::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:360,1
    - Dst: IndexCrosser::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:363,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:366,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:367,1
    - Dst: IndexCrosser::VisitCellCellCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:368,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:368,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:369,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:372,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:373,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - ' a_index'
    - ' b_index'
    - type
    - visitor
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    - EdgePairVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 378
    functionName: s2shapeutil::VisitCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - auto::range_min
    - MakeS2CellRangeIterator
    - IndexCrosser::VisitCellCellCrossings
    - auto::range_max
    - IndexCrosser::VisitCrossings
    - auto::SeekTo
    - auto::done
    - auto::Next
    - auto::id
    - auto::iterator
    linkageType: ''
    returnType: bool
    signature: "bool VisitCrossingEdgePairs(const S2ShapeIndex& a_index,\n                            const
      S2ShapeIndex& b_index, CrossingType type,\n                            EdgePairVisitor
      visitor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:388,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:388,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:390,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:391,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - code
    - ' format'
    - ap
    - bp
    - is_polygon
    - absl_nonnull
    argTypes:
    - S2Error::Code
    - absl::FormatSpec<int, int>
    - ChainPosition
    - ChainPosition
    - bool
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: s2shapeutil::InitLoopError
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - message
    - absl::StrFormat
    - S2Error
    linkageType: ''
    returnType: void
    signature: "void InitLoopError(S2Error::Code code,\n                          const
      absl::FormatSpec<int, int>& format,\n                          ChainPosition
      ap, ChainPosition bp, bool is_polygon,\n                          S2Error* absl_nonnull
      error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:400,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:401,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:401,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:402,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:402,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:405,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:407,1
    - Dst: s2shapeutil::InitLoopError
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:410,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:419,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:419,1
    - Dst: s2shapeutil::InitLoopError
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:421,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:426,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:427,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:430,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:431,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:432,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:432,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:432,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:434,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:436,1
    - Dst: S2::GetWedgeRelation
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:447,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:447,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:447,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:447,1
    - Dst: S2::GetWedgeRelation
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:449,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:449,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:449,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:449,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:451,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - ' shape'
    - ' a'
    - ' b'
    - is_interior
    - absl_nonnull
    argTypes:
    - S2Shape
    - ShapeEdge
    - ShapeEdge
    - bool
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 458
    functionName: s2shapeutil::FindCrossingError
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - S2::GetWedgeRelation
    - S2Error
    - chain_edge
    - s2shapeutil::id
    - v1
    - v0
    - num_chains
    - chain
    - s2shapeutil::InitLoopError
    - chain_position
    linkageType: ''
    returnType: bool
    signature: "bool FindCrossingError(const S2Shape& shape, const ShapeEdge& a,\n
      \                             const ShapeEdge& b, bool is_interior,\n                              S2Error*
      absl_nonnull error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:462,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:463,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:463,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:464,1
    - Dst: s2shapeutil::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:469,1
    - Dst: s2shapeutil::FindCrossingError
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' index'
    - absl_nonnull
    argTypes:
    - S2ShapeIndex
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 474
    functionName: s2shapeutil::FindSelfIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::VisitCrossings
    - ABSL_DCHECK_EQ
    - num_shape_ids
    - shape
    - s2shapeutil::FindCrossingError
    linkageType: ''
    returnType: bool
    signature: "bool FindSelfIntersection(const S2ShapeIndex& index,\n                          S2Error*
      absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:54,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:55,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:57,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:58,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:60,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:62,1
    - Dst: ShapeEdgeVector*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:63,1
    - Dst: s2shapeutil::ShapeEdge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:63,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' index'
    - ' cell'
    - shape_edges
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndexCell
    - ShapeEdgeVector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: s2shapeutil::AppendShapeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 2
    functionsReached:
    - num_edges
    - shape_id
    - ShapeEdgeVector*::push_back
    - shape
    - s2shapeutil::ShapeEdge
    - edge
    - clipped
    - num_clipped
    linkageType: ''
    returnType: void
    signature: "void AppendShapeEdges(const S2ShapeIndex& index,\n                             const
      S2ShapeIndexCell& cell,\n                             ShapeEdgeVector* shape_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShapeEdgeVector*::clear
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:74,1
    - Dst: s2shapeutil::AppendShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' index'
    - ' cell'
    - shape_edges
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndexCell
    - ShapeEdgeVector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: s2shapeutil::GetShapeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 1
    functionsReached:
    - ShapeEdgeVector*::clear
    - s2shapeutil::AppendShapeEdges
    linkageType: ''
    returnType: void
    signature: "void GetShapeEdges(const S2ShapeIndex& index,\n                                 const
      S2ShapeIndexCell& cell,\n                                 ShapeEdgeVector* shape_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShapeEdgeVector*::clear
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:84,1
    - Dst: s2shapeutil::AppendShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' index'
    - ' cells'
    - shape_edges
    argTypes:
    - S2ShapeIndex
    - vector<const S2ShapeIndexCell*>
    - ShapeEdgeVector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: s2shapeutil::GetShapeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 1
    functionsReached:
    - ShapeEdgeVector*::clear
    - s2shapeutil::AppendShapeEdges
    linkageType: ''
    returnType: void
    signature: "void GetShapeEdges(const S2ShapeIndex& index,\n                                 const
      vector<const S2ShapeIndexCell*>& cells,\n                                 ShapeEdgeVector*
      shape_edges)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:96,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:103,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:103,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:106,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:106,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:109,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:109,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:109,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:110,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:110,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:112,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:112,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 4
    argNames:
    - ' shape_edges'
    - type
    - need_adjacent
    - visitor
    argTypes:
    - ShapeEdgeVector
    - CrossingType
    - bool
    - EdgePairVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 119
    functionName: s2shapeutil::VisitCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 3
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    - size
    - v1
    - v0
    - visitor
    - S2EdgeCrosser::c
    - S2EdgeCrosser::RestartAt
    linkageType: ''
    returnType: bool
    signature: "bool VisitCrossings(const ShapeEdgeVector& shape_edges,\n                           CrossingType
      type, bool need_adjacent,\n                           EdgePairVisitor visitor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:137,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:137,1
    - Dst: s2shapeutil::GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:138,1
    - Dst: S2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:138,1
    - Dst: s2shapeutil::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ' index'
    - type
    - need_adjacent
    - visitor
    argTypes:
    - S2ShapeIndex
    - CrossingType
    - bool
    - EdgePairVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: s2shapeutil::VisitCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 4
    functionsReached:
    - s2shapeutil::VisitCrossings
    - S2ShapeIndex::Iterator::Next
    - S2ShapeIndex::Iterator::done
    - S2ShapeIndex::Iterator::cell
    - s2shapeutil::GetShapeEdges
    linkageType: ''
    returnType: bool
    signature: "bool VisitCrossings(const S2ShapeIndex& index, CrossingType type,\n
      \                          bool need_adjacent, EdgePairVisitor visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' index'
    - type
    - visitor
    argTypes:
    - S2ShapeIndex
    - CrossingType
    - EdgePairVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: s2shapeutil::VisitCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::VisitCrossings
    linkageType: ''
    returnType: bool
    signature: "bool VisitCrossingEdgePairs(const S2ShapeIndex& index, CrossingType
      type,\n                            EdgePairVisitor visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' a_index'
    - ' b_index'
    - type
    - visitor
    - swapped
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    - EdgePairVisitor
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: s2shapeutil::IndexCrosser::IndexCrosser
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void IndexCrosser(const S2ShapeIndex& a_index, const S2ShapeIndex&
      b_index,\n               CrossingType type, EdgePairVisitor visitor, bool swapped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' a_index'
    - ' b_index'
    - type
    - visitor
    - swapped
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    - EdgePairVisitor
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: s2shapeutil::IndexCrosser::IndexCrosser
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void IndexCrosser(const S2ShapeIndex& a_index, const S2ShapeIndex&
      b_index,\n               CrossingType type, EdgePairVisitor visitor, bool swapped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: visitor_
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:219,1
    - Dst: visitor_
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - is_interior
    argTypes:
    - ShapeEdge
    - ShapeEdge
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: s2shapeutil::IndexCrosser::VisitEdgePair
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 2
    functionsReached:
    - visitor_
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitEdgePair(const ShapeEdge& a, const ShapeEdge&
      b,\n                                        bool is_interior)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:232,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:233,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:233,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:235,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:235,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:235,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:236,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:236,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:238,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:238,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgePair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b_cell'
    argTypes:
    - ShapeEdge
    - S2ShapeIndexCell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: s2shapeutil::IndexCrosser::VisitEdgeCellCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 1
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    - s2shapeutil::IndexCrosser::VisitEdgePair
    - GetShapeEdges
    - v1
    - v0
    - S2EdgeCrosser::c
    - S2EdgeCrosser::RestartAt
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitEdgeCellCrossings(const ShapeEdge& a,\n                                          const
      S2ShapeIndexCell& b_cell)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:250,1
    - Dst: VisitCells
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:255,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:256,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:256,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgeCellCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' a_cell'
    - b_id
    argTypes:
    - S2ShapeIndexCell
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: s2shapeutil::IndexCrosser::VisitSubcellCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 1
    functionsReached:
    - GetShapeEdges
    - v1
    - v0
    - VisitCells
    - s2shapeutil::IndexCrosser::VisitEdgeCellCrossings
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitSubcellCrossings(const S2ShapeIndexCell& a_cell,\n
      \                                        S2CellId b_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:269,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:269,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:271,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:271,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:271,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:272,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:272,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:274,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:274,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgePair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' a_edges'
    - ' b_edges'
    argTypes:
    - ShapeEdgeVector
    - ShapeEdgeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 281
    functionName: s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 2
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    - s2shapeutil::IndexCrosser::VisitEdgePair
    - v1
    - v0
    - S2EdgeCrosser::c
    - S2EdgeCrosser::RestartAt
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitEdgesEdgesCrossings(const ShapeEdgeVector&
      a_edges,\n                                            const ShapeEdgeVector&
      b_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:286,1
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:287,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a_cell'
    - ' b_cell'
    argTypes:
    - S2ShapeIndexCell
    - S2ShapeIndexCell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: s2shapeutil::IndexCrosser::VisitCellCellCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
    - GetShapeEdges
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitCellCellCrossings(\n    const S2ShapeIndexCell&
      a_cell, const S2ShapeIndexCell& b_cell)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:294,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:294,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:294,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:295,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::SeekBeyond
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:297,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:306,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:308,1
    - Dst: s2shapeutil::IndexCrosser::VisitSubcellCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:313,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:313,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:313,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::SeekBeyond
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:315,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:318,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:318,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:320,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:321,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::range_max
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:321,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:322,1
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:324,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:324,1
    - Dst: GetShapeEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:325,1
    - Dst: s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:326,1
    - Dst: S2CellRangeIterator<S2ShapeIndex::Iterator>*::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:331,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ai
    - bi
    argTypes:
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 333
    functionName: s2shapeutil::IndexCrosser::VisitCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::iterator
    - s2shapeutil::IndexCrosser::VisitSubcellCrossings
    - GetShapeEdges
    - clear
    - push_back
    - s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::id
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::Next
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::range_max
    - empty
    - S2CellRangeIterator<S2ShapeIndex::Iterator>*::SeekBeyond
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool IndexCrosser::VisitCrossings(\n    S2CellRangeIterator<S2ShapeIndex::Iterator>*
      ai,\n    S2CellRangeIterator<S2ShapeIndex::Iterator>* bi)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:344,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:345,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:348,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:348,1
    - Dst: auto::range_max
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:349,1
    - Dst: auto::range_min
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:349,1
    - Dst: auto::SeekTo
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:351,1
    - Dst: auto::range_max
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:352,1
    - Dst: auto::range_min
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:352,1
    - Dst: auto::SeekTo
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:354,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:357,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:357,1
    - Dst: IndexCrosser::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:360,1
    - Dst: IndexCrosser::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:363,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:366,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:367,1
    - Dst: IndexCrosser::VisitCellCellCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:368,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:368,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:369,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:372,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:373,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - ' a_index'
    - ' b_index'
    - type
    - visitor
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    - EdgePairVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 378
    functionName: s2shapeutil::VisitCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - auto::range_min
    - MakeS2CellRangeIterator
    - IndexCrosser::VisitCellCellCrossings
    - auto::range_max
    - IndexCrosser::VisitCrossings
    - auto::SeekTo
    - auto::done
    - auto::Next
    - auto::id
    - auto::iterator
    linkageType: ''
    returnType: bool
    signature: "bool VisitCrossingEdgePairs(const S2ShapeIndex& a_index,\n                            const
      S2ShapeIndex& b_index, CrossingType type,\n                            EdgePairVisitor
      visitor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:388,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:388,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:390,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:391,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - code
    - ' format'
    - ap
    - bp
    - is_polygon
    - absl_nonnull
    argTypes:
    - S2Error::Code
    - absl::FormatSpec<int, int>
    - ChainPosition
    - ChainPosition
    - bool
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: s2shapeutil::InitLoopError
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 1
    functionsReached:
    - message
    - absl::StrFormat
    - S2Error
    linkageType: ''
    returnType: void
    signature: "void InitLoopError(S2Error::Code code,\n                          const
      absl::FormatSpec<int, int>& format,\n                          ChainPosition
      ap, ChainPosition bp, bool is_polygon,\n                          S2Error* absl_nonnull
      error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:400,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:401,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:401,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:402,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:402,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:405,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:407,1
    - Dst: s2shapeutil::InitLoopError
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:410,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:419,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:419,1
    - Dst: s2shapeutil::InitLoopError
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:421,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:426,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:427,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:430,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:431,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:432,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:432,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:432,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:434,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:436,1
    - Dst: S2::GetWedgeRelation
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:447,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:447,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:447,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:447,1
    - Dst: S2::GetWedgeRelation
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:449,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:449,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:449,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:449,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:451,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - ' shape'
    - ' a'
    - ' b'
    - is_interior
    - absl_nonnull
    argTypes:
    - S2Shape
    - ShapeEdge
    - ShapeEdge
    - bool
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 458
    functionName: s2shapeutil::FindCrossingError
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 1
    functionsReached:
    - absl::StrFormat
    - S2::GetWedgeRelation
    - S2Error
    - chain_edge
    - s2shapeutil::id
    - v1
    - v0
    - num_chains
    - chain
    - s2shapeutil::InitLoopError
    - chain_position
    linkageType: ''
    returnType: bool
    signature: "bool FindCrossingError(const S2Shape& shape, const ShapeEdge& a,\n
      \                             const ShapeEdge& b, bool is_interior,\n                              S2Error*
      absl_nonnull error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:462,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:463,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:463,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:464,1
    - Dst: s2shapeutil::VisitCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:469,1
    - Dst: s2shapeutil::FindCrossingError
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' index'
    - absl_nonnull
    argTypes:
    - S2ShapeIndex
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 474
    functionName: s2shapeutil::FindSelfIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::VisitCrossings
    - ABSL_DCHECK_EQ
    - num_shape_ids
    - shape
    - s2shapeutil::FindCrossingError
    linkageType: ''
    returnType: bool
    signature: "bool FindSelfIntersection(const S2ShapeIndex& index,\n                          S2Error*
      absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRectBounder::S2LatLngRectBounder
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:54,1
    - Dst: S2LatLngRectBounder::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:55,1
    - Dst: S2LatLngRectBounder::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:56,1
    - Dst: S2LatLngRectBounder::GetBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: GetEdgeBound
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRectBounder::S2LatLngRectBounder
    - S2LatLngRectBounder::AddPoint
    - S2LatLngRectBounder::GetBound
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect GetEdgeBound(const S2Point& a, const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:62,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:62,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - x1
    - y1
    - z1
    - x2
    - y2
    - z2
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: GetEdgeBound
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 1
    functionsReached:
    - GetEdgeBound
    - S2Point
    linkageType: ''
    returnType: S2LatLngRect
    signature: "S2LatLngRect GetEdgeBound(double x1, double y1, double z1,\n                          double
      x2, double y2, double z2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:70,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:70,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:71,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:71,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:72,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:72,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:74,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:74,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:75,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:75,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:76,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:83,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:83,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:84,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:86,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:86,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:87,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:89,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:89,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:90,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:92,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:92,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:96,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:97,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - EXPECT_TRUE
    - lat
    - R1Interval
    - asin
    - sqrt
    - S1Interval
    - EXPECT_EQ
    - GetEdgeBound
    - S2LatLngRect
    linkageType: ''
    returnType: void
    signature: void TEST(RectBounder, MaxLatitudeSimple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:105,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:106,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:112,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:113,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:114,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:115,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:115,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:116,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:120,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:120,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:121,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:121,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:122,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:123,1
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:123,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:124,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:124,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:128,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:128,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:129,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:129,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:130,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:131,1
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:131,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:132,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 134
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::lat
    - s2random::Point
    - EXPECT_NEAR
    - S2Point
    - S2Point::Normalize
    - lat
    - Normalize
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2::RobustCrossProd
    - GetEdgeBound
    - S2Testing::MakeTaggedSeedSeq
    - S2LatLng::Latitude
    linkageType: ''
    returnType: void
    signature: void TEST(RectBounder, MaxLatitudeRandom)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:138,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:146,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:147,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:149,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:155,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:155,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:159,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:160,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - bitgen
    - ' a'
    - ' b'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 161
    functionName: PerturbATowardsB
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointOnLine
    - S1Angle::Radians
    - S2::IsUnitLength
    - s2random::LogUniform
    - Norm
    linkageType: ''
    returnType: S2Point
    signature: "S2Point PerturbATowardsB(absl::BitGenRef bitgen, const S2Point& a,\n
      \                        const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:164,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: RandomPole
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - absl::Bernoulli
    linkageType: ''
    returnType: S2Point
    signature: S2Point RandomPole(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RandomPole
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:168,1
    - Dst: PerturbATowardsB
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:169,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: PointNearPole
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - RandomPole
    - s2random::Point
    - PerturbATowardsB
    linkageType: ''
    returnType: S2Point
    signature: S2Point PointNearPole(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:173,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:174,1
    - Dst: PerturbATowardsB
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:175,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:175,1
    - Dst: RandomPole
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: PointNearEquator
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - RandomPole
    - PerturbATowardsB
    - s2random::LogUniform
    linkageType: ''
    returnType: S2Point
    signature: S2Point PointNearEquator(absl::BitGenRef bitgen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:194,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:195,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:198,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:198,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:199,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:200,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:203,1
    - Dst: PerturbATowardsB
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:204,1
    - Dst: PointNearPole
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:204,1
    - Dst: PointNearEquator
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:208,1
    - Dst: PerturbATowardsB
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:209,1
    - Dst: PointNearEquator
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:209,1
    - Dst: PointNearPole
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:213,1
    - Dst: PerturbATowardsB
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:214,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:214,1
    - Dst: PointNearEquator
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:218,1
    - Dst: PerturbATowardsB
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:219,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:219,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:223,1
    - Dst: PerturbATowardsB
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:224,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:224,1
    - Dst: S2LatLngRect::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:231,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:231,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:232,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:233,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:234,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:234,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:235,1
    - Dst: S2LatLngRect::Expanded
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:235,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:241,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:241,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:241,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 244
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - CrossProd
    - PointNearPole
    - S2Point::S2Point
    - EXPECT_EQ
    - EXPECT_TRUE
    - S2LatLngRect::FromPointPair
    - S2LatLng
    - PointNearEquator
    - S2Testing::MakeTaggedSeedSeq
    - S2LatLngRect::Contains
    - S2LatLngRect::Expanded
    - StrCat
    - SCOPED_TRACE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - GetEdgeBound
    - S2LatLngRect::Full
    - PerturbATowardsB
    linkageType: ''
    returnType: void
    signature: void TEST(RectBounder, NearlyIdenticalOrAntipodalPoints)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:248,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:249,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:250,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:251,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:254,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:254,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:255,1
    - Dst: S2LatLngRect::FullLat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:255,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:256,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:256,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - x_lat
    - x_lng
    - y_lat
    - y_lng
    argTypes:
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 259
    functionName: GetSubregionBound
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRectBounder::ExpandForSubregions
    - S2LatLngRect::lat
    - EXPECT_TRUE
    - S2LatLngRect::FromPointPair
    - S2LatLngRect::FullLat
    - S2LatLng::FromRadians
    - EXPECT_FALSE
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: S2LatLngRect
    signature: "S2LatLngRect GetSubregionBound(double x_lat, double x_lng,\n                               double
      y_lat, double y_lng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:270,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:270,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:271,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:271,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:272,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:272,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:273,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:273,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:274,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:275,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:275,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:281,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:281,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:283,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:283,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:285,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:285,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:287,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:287,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:289,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:289,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:291,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:291,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:300,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:300,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:302,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:302,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:304,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:304,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:306,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:306,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:312,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:312,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:313,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:313,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:314,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:315,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:315,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:316,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:316,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:317,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:321,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:321,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:322,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:323,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:323,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:324,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:327,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:327,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:328,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:328,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:329,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:330,1
    - Dst: GetSubregionBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:330,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:331,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:331,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 333
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRectBounder::ExpandForSubregions
    - EXPECT_TRUE
    - R1Interval
    - S1Interval
    - GetSubregionBound
    - S1Interval::Full
    - S2LatLngRect::Empty
    - S2LatLngRect::Full
    - EXPECT_FALSE
    - S2LatLngRect
    linkageType: ''
    returnType: void
    signature: void TEST(RectBounder, ExpandForSubregions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:345,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:345,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:346,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:346,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:350,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:351,1
    - Dst: GetEdgeBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:352,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:353,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:354,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:354,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:354,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:355,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:355,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 356
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2LatLngRectBounder::ExpandForSubregions
    - S2LatLngRect::lat
    - s2pred::Sign
    - EXPECT_GE
    - GetEdgeBound
    linkageType: ''
    returnType: void
    signature: void TEST(RectBounder, AccuracyBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:363,1
    - Dst: vector<S2LatLng>*::empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:363,1
    - Dst: vector<S2LatLng>*::reserve
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:364,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:367,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:367,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:368,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:368,1
    - Dst: vector<S2LatLng>*::push_back
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:372,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:373,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:373,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - latlng
    - size
    argTypes:
    - vector<S2LatLng>*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 376
    functionName: GenerateRandomLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - std::string::end
    - vector<S2LatLng>*::empty
    - ABSL_CHECK
    - S2LatLng::FromDegrees
    - s2random::LogUniform
    - std::string::begin
    - vector<S2LatLng>*::reserve
    - absl::GetFlag
    - vector<S2LatLng>*::push_back
    linkageType: ''
    returnType: void
    signature: void GenerateRandomLatLng(vector<S2LatLng>* latlng, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:381,1
    - Dst: GenerateRandomLatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:383,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:386,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:387,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:387,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:390,1
    - Dst: S2LatLngRectBounder::S2LatLngRectBounder
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:391,1
    - Dst: S2LatLngRectBounder::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:393,1
    - Dst: S2LatLngRectBounder::GetBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:396,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:397,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 402
    functionName: BM_AddPoints
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - ToPoint
    - GenerateRandomLatLng
    - KeepRunningBatch
    - vector::reserve
    - S2LatLngRectBounder::S2LatLngRectBounder
    - range
    - S2LatLngRectBounder::AddPoint
    - S2LatLngRectBounder::GetBound
    - SetItemsProcessed
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_AddPoints(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:410,1
    - Dst: GenerateRandomLatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:412,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:415,1
    - Dst: S2LatLngRectBounder::S2LatLngRectBounder
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:416,1
    - Dst: S2LatLngRectBounder::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:418,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:418,1
    - Dst: S2LatLngRectBounder::GetBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:420,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:421,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: BM_AddLatLngAsPoints
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - ToPoint
    - GenerateRandomLatLng
    - KeepRunningBatch
    - S2LatLngRectBounder::S2LatLngRectBounder
    - range
    - S2LatLngRectBounder::AddPoint
    - S2LatLngRectBounder::GetBound
    - SetItemsProcessed
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_AddLatLngAsPoints(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:433,1
    - Dst: GenerateRandomLatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:435,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:438,1
    - Dst: S2LatLngRectBounder::S2LatLngRectBounder
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:439,1
    - Dst: S2LatLngRectBounder::AddLatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:441,1
    - Dst: S2LatLngRectBounder::GetBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:443,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:444,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 449
    functionName: BM_AddLatLngAsLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
    functionUses: 0
    functionsReached:
    - GenerateRandomLatLng
    - KeepRunningBatch
    - S2LatLngRectBounder::AddLatLng
    - S2LatLngRectBounder::S2LatLngRectBounder
    - range
    - S2LatLngRectBounder::GetBound
    - SetItemsProcessed
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_AddLatLngAsLatLng(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s1angle_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:40,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::S1Angle
    - S1Angle::radians
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, DefaultConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s1angle_test.cc:44,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:44,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1angle_test.cc:44,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s1angle_test.cc:45,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1angle_test.cc:45,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s1angle_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:46,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1angle_test.cc:46,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1angle_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - S1Angle::Radians
    - EXPECT_EQ
    - S1Angle::Infinity
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, Infinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:50,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:50,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s1angle_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::Radians
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, Zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:55,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:56,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:57,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:58,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:60,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:63,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:64,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::Radians
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, PiRadiansExactly180Degrees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:69,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:69,1
    - Dst: S1Angle::E5
      Src: /src/s2geometry/src/s2/s1angle_test.cc:70,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:71,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:71,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:72,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:73,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:73,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s1angle_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:75,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:76,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:77,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - S1Angle::Degrees
    - S1Angle::E6
    - S1Angle::E5
    - EXPECT_EQ
    - S1Angle::E7
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, E5E6E7Representations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:82,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:83,1
    - Dst: S1Angle::UnsignedE6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s1angle_test.cc:84,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:85,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:86,1
    - Dst: S1Angle::UnsignedE6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:87,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s1angle_test.cc:87,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:88,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:89,1
    - Dst: S1Angle::UnsignedE7
      Src: /src/s2geometry/src/s2/s1angle_test.cc:90,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s1angle_test.cc:90,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:91,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:92,1
    - Dst: S1Angle::UnsignedE7
      Src: /src/s2geometry/src/s2/s1angle_test.cc:93,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s1angle_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - static_cast<uint32_t>
    - S1Angle::UnsignedE7
    - S1Angle::Degrees
    - S1Angle::UnsignedE6
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, E6E7RepresentationsUnsigned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:97,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:97,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:98,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:98,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:99,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:99,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:100,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:100,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:101,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:101,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:102,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Degrees
    - EXPECT_DOUBLE_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, NormalizeCorrectlyCanonicalizesAngles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:106,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:106,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:107,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s1angle_test.cc:107,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:107,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:108,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:108,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:108,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:109,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:110,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:110,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:110,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:111,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:112,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:112,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:112,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:113,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:113,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:113,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:114,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:114,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:114,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:115,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:115,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:115,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:116,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:116,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:116,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:118,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:119,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:120,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:120,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:121,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:122,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:122,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:124,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:124,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:126,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - S1Angle::Radians
    - S1Angle::radians
    - radians
    - abs
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, ArithmeticOperationsOnAngles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:131,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s1angle_test.cc:131,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:131,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:132,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1angle_test.cc:132,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:132,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:133,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s1angle_test.cc:133,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:133,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:137,1
    - Dst: S1Angle::SinCos
      Src: /src/s2geometry/src/s2/s1angle_test.cc:138,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:140,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1angle_test.cc:140,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:141,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s1angle_test.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 143
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_DOUBLE_EQ
    - S1Angle::SinCos
    - S1Angle::Degrees
    - sin
    - tan
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, Trigonometry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:146,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1angle_test.cc:147,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s1angle_test.cc:147,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s1angle_test.cc:147,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:148,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1angle_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s1angle_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s1angle_test.cc:148,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1angle_test.cc:149,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1angle_test.cc:150,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:150,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - EXPECT_NEAR
    - S2Point
    - S1Angle
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, ConstructorsThatMeasureAngles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:158,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/s2/s1angle_test.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ostringstream::str
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, TestFormatting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:162,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s1angle_test.cc:163,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s1angle_test.cc:164,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s1angle_test.cc:166,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s1angle_test.cc:167,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s1angle_test.cc:168,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s1angle_test.cc:168,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1angle_test.cc:169,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s1angle_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S1Angle::S1Angle
    - S1Angle::Radians
    - Encoder::length
    - s2coding::S2HintCoder::S2HintCoder
    - Encoder::base
    - EXPECT_EQ
    - Encoder::Encoder
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, RoundtripEncodingSucceeds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:174,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s1angle_test.cc:175,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s1angle_test.cc:176,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s1angle_test.cc:178,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s1angle_test.cc:179,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s1angle_test.cc:180,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s1angle_test.cc:180,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1angle_test.cc:181,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s1angle_test.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::S1Angle
    - S1Angle::Radians
    - Encoder::length
    - s2coding::S2HintCoder::S2HintCoder
    - Encoder::base
    - EXPECT_FALSE
    - Encoder::Encoder
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, DecodeFailsWithTruncatedBuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s1angle_test.cc:198,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:199,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:199,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:200,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:200,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:201,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:201,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:202,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:202,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:203,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:203,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:204,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:204,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:205,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:205,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:206,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: BM_E6ToRadians
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - benchmark::DoNotOptimize
    - KeepRunningBatch
    - S1Angle::E6
    linkageType: ''
    returnType: void
    signature: void BM_E6ToRadians(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s1angle_test.cc:216,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:218,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:218,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:219,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:219,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:220,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:220,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:221,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:221,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:222,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:222,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:223,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:223,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:224,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:224,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s1angle_test.cc:225,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 228
    functionName: BM_RadiansToE6
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - benchmark::DoNotOptimize
    - KeepRunningBatch
    linkageType: ''
    returnType: void
    signature: void BM_RadiansToE6(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:235,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:235,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::Degrees
    - S1Angle::E6
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, DegreesVsE6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:243,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:243,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s1angle_test.cc:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::E7
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, DegreesVsE7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s1angle_test.cc:251,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s1angle_test.cc:251,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s1angle_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:254,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle_test.cc:254,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s1angle_test.cc:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::E6
    - s2random::LogUniform
    - EXPECT_EQ
    - S1Angle::E7
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, E6VsE7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:262,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:262,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:262,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:263,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:263,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:267,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:267,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:268,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:268,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:269,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:269,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:269,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:270,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:270,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1angle_test.cc:271,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:271,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:271,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s1angle_test.cc:274,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:274,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:274,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s1angle_test.cc:275,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 276
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::Radians
    - S1Angle::Degrees
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, DegreesVsRadians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1angle_test.cc:279,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/s2geometry/src/s2/s1angle_test.cc:279,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s1angle_test.cc:280,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:281,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle_test.cc:282,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:283,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:284,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle_test.cc:285,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1angle_test.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S1Angle::Radians
    - S1Angle::Degrees
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - S1Angle::Infinity
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S1Angle, SupportsAbslHash)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:25,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:26,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:26,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:28,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:29,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:33,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:42,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' shape'
    - edge_id
    argTypes:
    - S2Shape
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: s2shapeutil::NextEdgeWrap
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - chain_edge
    - dimension
    - chain
    - ABSL_DCHECK_LT
    - chain_position
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int
    signature: int NextEdgeWrap(const S2Shape& shape, int edge_id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:64,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:65,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:65,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:67,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:68,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:71,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:83,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ' shape'
    - edge_id
    argTypes:
    - S2Shape
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 102
    functionName: s2shapeutil::PrevEdgeWrap
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - chain_edge
    - dimension
    - chain
    - ABSL_DCHECK_LT
    - chain_position
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int
    signature: int PrevEdgeWrap(const S2Shape& shape, int edge_id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:25,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:26,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:26,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:28,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:29,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:33,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:42,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' shape'
    - edge_id
    argTypes:
    - S2Shape
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: s2shapeutil::NextEdgeWrap
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - chain_edge
    - dimension
    - chain
    - ABSL_DCHECK_LT
    - chain_position
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int
    signature: int NextEdgeWrap(const S2Shape& shape, int edge_id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:64,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:65,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:65,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:67,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:68,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:71,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:83,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ' shape'
    - edge_id
    argTypes:
    - S2Shape
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 102
    functionName: s2shapeutil::PrevEdgeWrap
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - chain_edge
    - dimension
    - chain
    - ABSL_DCHECK_LT
    - chain_position
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int
    signature: int PrevEdgeWrap(const S2Shape& shape, int edge_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: s2pred::epsilon_for_digits
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 1
    functionsReached:
    - s2pred::epsilon_for_digits
    linkageType: ''
    returnType: double
    signature: double epsilon_for_digits(int digits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2pred::rounding_epsilon
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - s2pred::epsilon_for_digits
    linkageType: ''
    returnType: T
    signature: T rounding_epsilon()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: s2pred::ToLD
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - S2Point::Cast
    linkageType: ''
    returnType: Vector3_ld
    signature: Vector3_ld ToLD(const S2Point& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::implicit_cast<long double>
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: s2pred::ToLD
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - absl::implicit_cast<long double>
    linkageType: ''
    returnType: long double
    signature: long double ToLD(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: s2pred::ToExact
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - S2Point::Cast
    linkageType: ''
    returnType: Vector3_xf
    signature: Vector3_xf ToExact(const S2Point& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:78,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:78,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: s2pred::IsZero
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - sgn
    linkageType: ''
    returnType: bool
    signature: bool IsZero(const Vector3_xf& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: s2pred::epsilon_for_digits
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 3
    functionsReached:
    - s2pred::epsilon_for_digits
    linkageType: ''
    returnType: double
    signature: double epsilon_for_digits(int digits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2pred::rounding_epsilon
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - s2pred::epsilon_for_digits
    linkageType: ''
    returnType: T
    signature: T rounding_epsilon()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: s2pred::ToLD
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - S2Point::Cast
    linkageType: ''
    returnType: Vector3_ld
    signature: Vector3_ld ToLD(const S2Point& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::implicit_cast<long double>
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: s2pred::ToLD
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - absl::implicit_cast<long double>
    linkageType: ''
    returnType: long double
    signature: long double ToLD(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: s2pred::ToExact
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - S2Point::Cast
    linkageType: ''
    returnType: Vector3_xf
    signature: Vector3_xf ToExact(const S2Point& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:78,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:78,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates_internal.h:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: s2pred::IsZero
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_internal.h
    functionUses: 0
    functionsReached:
    - sgn
    linkageType: ''
    returnType: bool
    signature: bool IsZero(const Vector3_xf& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:121,1
    - Dst: make_unique<IndexMatchingLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:121,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:125,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:126,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:126,1
    - Dst: S2BooleanOperation::OpTypeToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:127,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:132,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:132,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - op_type
    - ' options'
    - ' a'
    - ' b'
    - ' expected'
    argTypes:
    - S2BooleanOperation::OpType
    - S2BooleanOperation::Options
    - S2ShapeIndex
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: ExpectResult
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<IndexMatchingLayer>
    - vector::push_back
    - S2BooleanOperation::IsEmpty
    - s2textformat::ToString
    - num_shape_ids
    - S2BooleanOperation::Build
    - ASSERT_TRUE
    - S2BooleanOperation::OpTypeToString
    - EXPECT_EQ
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ExpectResult(S2BooleanOperation::OpType op_type,\n                  const
      S2BooleanOperation::Options& options,\n                  const S2ShapeIndex&
      a, const S2ShapeIndex& b,\n                  const S2ShapeIndex& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:139,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:140,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:141,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - op_type
    - ' options'
    - a_str
    - b_str
    - expected_str
    argTypes:
    - S2BooleanOperation::OpType
    - S2BooleanOperation::Options
    - string_view
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: ExpectResult
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 1
    functionsReached:
    - s2textformat::MakeIndexOrDie
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: "void ExpectResult(S2BooleanOperation::OpType op_type,\n                  const
      S2BooleanOperation::Options& options, string_view a_str,\n                  string_view
      b_str, string_view expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:151,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exp
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: RoundToE
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - S2BooleanOperation::Options::set_snap_function
    linkageType: ''
    returnType: S2BooleanOperation::Options
    signature: S2BooleanOperation::Options RoundToE(int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:159,1
    - Dst: S2BooleanOperation::op_type
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2BooleanOperation::op_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, OpTypeAccessor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:208,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:209,1
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:210,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:211,1
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:212,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, DegeneratePolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:222,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:223,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:224,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:225,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:226,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, DegeneratePolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:236,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:238,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:240,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 244
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:257,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:260,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:263,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:265,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 270
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointOpenPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:276,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:277,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:280,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:283,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:285,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 290
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointOpenPolylineLoopBoundariesFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:299,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:301,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:304,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:306,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:308,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 313
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointSemiOpenPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:324,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:326,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:329,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:331,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:333,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 338
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointClosedPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:345,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:347,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:349,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointPolygonInterior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:357,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:361,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:363,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:365,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 369
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:373,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:377,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:378,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:378,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:378,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:379,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:379,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:379,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:382,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:384,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:386,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 390
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    - auto::Contains
    - s2textformat::MakePointOrDie
    - S2BooleanOperation::Options::set_polygon_model
    - ASSERT_TRUE
    - ASSERT_FALSE
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointSemiOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:394,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:398,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:400,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:402,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointClosedPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:414,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:418,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:426,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:432,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 437
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexOpenPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:443,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:444,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:448,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:455,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:459,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 464
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexOpenPolylineVertexLoopBoundariesFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:469,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:471,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:475,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:478,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:481,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 487
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexSemiOpenPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:491,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:495,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:502,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:507,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 512
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexClosedPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:517,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:518,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:522,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:529,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:533,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 538
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: "void TEST(S2BooleanOperation,\n     PolylineVertexClosedPolylineVertexLoopBoundariesFalse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 543
    functionName: kVertexTestPolygonStr
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string kVertexTestPolygonStr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:548,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:548,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:549,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:549,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:549,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:550,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:550,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:550,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:551,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:551,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:551,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:552,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:552,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:552,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:553,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:553,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:553,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:554,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:554,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:554,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:555,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:555,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:555,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:556,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:556,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 557
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - EXPECT_TRUE
    - auto::Contains
    - s2textformat::MakePointOrDie
    - s2textformat::MakePolygonOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, TestSemiOpenPolygonVerticesContained)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:565,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:573,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:578,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:579,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:580,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:582,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:583,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 585
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:594,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:597,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:604,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:608,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:613,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 616
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexOpenPolygonClosedPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:620,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:629,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:632,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:633,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:634,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:637,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:638,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 640
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexSemiOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:644,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:650,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:653,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:654,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:655,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:658,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:659,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 661
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexClosedPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:665,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:668,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:670,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:672,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 676
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgePolylineEdgeCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:683,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:689,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:692,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:695,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 699
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgePolylineEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:707,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:710,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:713,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:715,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 719
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineLoopMultipleOpenPolylineEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:727,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:730,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:733,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:736,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 740
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineLoopMultipleSemiOpenPolylineEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:747,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:750,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:753,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:756,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 760
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineLoopMultipleClosedPolylineEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:771,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:772,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:775,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:778,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:781,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 786
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: "void TEST(S2BooleanOperation,\n     PolylineLoopMultiplePolylineEdgeLoopBoundariesFalse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:790,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:795,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:797,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:799,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 803
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgeOpenPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:806,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:807,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:807,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:807,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:808,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:808,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:808,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:809,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:809,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:809,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:810,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:810,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:810,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:812,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:815,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:817,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:819,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 823
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    - auto::Contains
    - s2textformat::MakePointOrDie
    - ASSERT_FALSE
    - ASSERT_TRUE
    - S2BooleanOperation::Options::set_polygon_model
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgeSemiOpenPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:827,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:830,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:832,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:834,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 838
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgeClosedPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:846,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:847,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 851
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonVertexMatching)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:859,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:861,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:863,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 867
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgePolygonInterior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:879,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 884
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgeIsolatedStartVertexPlusInteriorCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:893,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:894,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 899
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgeIsolatedStartVertexPlusInteriorCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:903,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:906,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:908,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:910,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 914
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonVertexOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:918,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:921,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:923,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:925,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 916
    functionDepth: 2
    functionLinenumber: 916
    functionLinenumberEnd: 929
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonVertexSemiOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:933,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:936,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:938,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:940,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:942,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 931
    functionDepth: 2
    functionLinenumber: 931
    functionLinenumberEnd: 946
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonVertexClosedPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:950,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:953,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:955,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:957,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 962
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgePolygonEdgeCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:970,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:973,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:975,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:977,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 981
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgeOpenPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:985,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:988,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:990,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:992,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 999
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgeSemiOpenPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1003,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1006,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1008,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1010,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1016
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgeClosedPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1023,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1025,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1027,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1032
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonPolygonInterior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1035,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1043,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1046,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1048,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1053
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgesDegenerateAfterSnapping)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1153,1
    - Dst: absl::Span<const string>::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1153,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1153,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1177,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1178,1
    - Dst: StrSplit
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1180,1
    - Dst: SkipEmpty
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1180,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1182,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1183,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1184,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1184,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1184,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1185,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1186,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1186,1
    - Dst: StrContains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1190,1
    - Dst: StrContains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1191,1
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1193,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1198,1
    - Dst: StrSplit
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1201,1
    - Dst: ByAnyChar
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1201,1
    - Dst: SkipEmpty
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1202,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1204,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1205,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1205,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1209,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1209,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1210,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1211,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1211,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1212,1
    - Dst: StrContains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1216,1
    - Dst: StrContains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1217,1
    - Dst: StrSplit
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1222,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1223,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1224,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1225,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1225,1
    - Dst: DegeneracyCoverageTest::TestResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1228,1
    - Dst: DegeneracyCoverageTest::TestResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - op_type
    - polygon_model
    - rules
    argTypes:
    - OpType
    - PolygonModel
    - absl::Span<const string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1236
    functionName: DegeneracyCoverageTest::Run
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - StrSplit
    - vector::erase
    - StrContains
    - size
    - S2BooleanOperation::Contains
    - ABSL_CHECK_EQ
    - DegeneracyCoverageTest::TestResult
    - vector::size
    - vector::begin
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polygon_model
    - SkipEmpty
    - DegeneracyCoverageTest::MakeIndex
    - absl::Span<const string>::size
    - S2BooleanOperation::Options::set_polyline_model
    - ByAnyChar
    linkageType: ''
    returnType: void
    signature: "void DegeneracyCoverageTest::Run(OpType op_type, PolygonModel polygon_model,\n
      \                                absl::Span<const string> rules)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1241,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1242,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1243,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1244,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1244,1
    - Dst: S2BooleanOperation::OpTypeToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1245,1
    - Dst: S2BooleanOperation::PolygonModelToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1247,1
    - Dst: polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1247,1
    - Dst: S2BooleanOperation::PolylineModelToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1249,1
    - Dst: polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1249,1
    - Dst: polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1251,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - op_type
    - ' options'
    - ch0
    - ch1
    - result
    argTypes:
    - OpType
    - S2BooleanOperation::Options
    - char
    - char
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1255
    functionName: DegeneracyCoverageTest::TestResult
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 1
    functionsReached:
    - polyline_loops_have_boundaries
    - ExpectResult
    - absl::StrCat
    - polygon_model
    - S2BooleanOperation::PolygonModelToString
    - SCOPED_TRACE
    - S2BooleanOperation::OpTypeToString
    - polyline_model
    - DegeneracyCoverageTest::MakeIndex
    - S2BooleanOperation::PolylineModelToString
    linkageType: ''
    returnType: void
    signature: "void DegeneracyCoverageTest::TestResult(\n    OpType op_type, const
      S2BooleanOperation::Options& options,\n    char ch0, char ch1, string_view result)
      const"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1263,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1264,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1269,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1269,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1271,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1271,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1273,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1273,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1275,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1275,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1277,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1277,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1279,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1279,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1281,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1281,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1283,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1283,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1285,1
    - Dst: ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1285,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1285,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1286,1
    - Dst: ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1286,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1286,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1288,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1288,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1290,1
    - Dst: ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1290,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1290,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1291,1
    - Dst: ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1291,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1291,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1295,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1295,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1297,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1297,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1299,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1303,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1303,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1305,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1305,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1307,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1307,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1309,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1309,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1311,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - chars
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1315
    functionName: DegeneracyCoverageTest::MakeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 2
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - auto::Add
    - ContainsBruteForce
    - make_unique<S2LaxPolygonShape>
    - ABSL_CHECK
    - auto::shape
    - make_unique<S2PointVectorShape>
    - make_unique<S2LaxPolylineShape>
    - ABSL_LOG
    - string_view::size
    linkageType: ''
    returnType: unique_ptr<MutableS2ShapeIndex>
    signature: "unique_ptr<MutableS2ShapeIndex> DegeneracyCoverageTest::MakeIndex(\n
      \   string_view chars) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1335
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, OpenIntersection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1355
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, SemiOpenIntersection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1375
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, ClosedIntersection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1395
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, OpenUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1423
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, SemiOpenUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1443
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, ClosedUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1463
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, OpenDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1484
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, SemiOpenDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1504
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, ClosedDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1524
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, OpenSymmetricDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1545
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, SemiOpenSymmetricDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1547
    functionDepth: 0
    functionLinenumber: 1547
    functionLinenumberEnd: 1569
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, ClosedSymmetricDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1581,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1584,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1586,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1588,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1595
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, ThreeOverlappingBars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1602,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1605,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1610,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1613,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1597
    functionDepth: 2
    functionLinenumber: 1597
    functionLinenumberEnd: 1624
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, FourOverlappingBars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1632,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1637,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1641,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1644,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1626
    functionDepth: 2
    functionLinenumber: 1626
    functionLinenumberEnd: 1654
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, OverlappingDoughnuts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1658,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1661,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1663,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1665,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1669
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEnteringRectangle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1678,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1681,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1684,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1686,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1671
    functionDepth: 2
    functionLinenumber: 1671
    functionLinenumberEnd: 1691
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineCrossingRectangleTwice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1699,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1702,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1704,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1706,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1708,1
    - Dst: S2BooleanOperation::Options::set_split_all_crossing_polyline_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1711,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1712,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1715,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1717,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1693
    functionDepth: 2
    functionLinenumber: 1693
    functionLinenumberEnd: 1722
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    - S2BooleanOperation::Options::set_split_all_crossing_polyline_edges
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, SelfIntersectingPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1728,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1729,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1730,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1730,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1731,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1731,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1732,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1732,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1733,1
    - Dst: make_unique<s2builderutil::IndexedS2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1735,1
    - Dst: make_unique<s2builderutil::IndexedS2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1737,1
    - Dst: make_unique<s2builderutil::IndexedLaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1738,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1740,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1741,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1741,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1742,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - input_str
    - expected_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1743
    functionName: TestMeridianSplitting
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::IndexedLaxPolygonLayer>
    - make_unique<s2builderutil::IndexedS2PolylineVectorLayer>
    - make_unique<S2LaxPolygonShape>
    - S2Point
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2BooleanOperation::Build
    - ASSERT_TRUE
    - make_unique<s2builderutil::IndexedS2PointVectorLayer>
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TestMeridianSplitting(string_view input_str, string_view expected_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1755,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1758,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1763,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1769,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1777,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1753
    functionDepth: 2
    functionLinenumber: 1753
    functionLinenumberEnd: 1794
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestMeridianSplitting
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, MeridianSplitting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1799,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1800,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1800,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1801,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1801,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1806,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1807,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1807,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1808,1
    - Dst: S2LaxPolygonShape*::is_empty
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1808,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1809,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' a_loops'
    - ' b_loops'
    - snap_radius
    - result
    argTypes:
    - vector<vector<S2Point>>
    - vector<vector<S2Point>>
    - S1Angle
    - S2LaxPolygonShape*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1811
    functionName: ComputeTestUnion
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - make_unique<S2LaxPolygonShape>
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2BooleanOperation::Build
    - ASSERT_TRUE
    - S2LaxPolygonShape*::is_empty
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ComputeTestUnion(const vector<vector<S2Point>>& a_loops,\n                      const
      vector<vector<S2Point>>& b_loops,\n                      S1Angle snap_radius,
      S2LaxPolygonShape* result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1837,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1813
    functionDepth: 2
    functionLinenumber: 1813
    functionLinenumberEnd: 1840
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1886,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1842
    functionDepth: 2
    functionLinenumber: 1842
    functionLinenumberEnd: 1889
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1914,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1915,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1891
    functionDepth: 2
    functionLinenumber: 1891
    functionLinenumberEnd: 1916
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S1Angle::Zero
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1942,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1949,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1950,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1952,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1953,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1918
    functionDepth: 2
    functionLinenumber: 1918
    functionLinenumberEnd: 1954
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - s2textformat::MakePointOrDie
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2016,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2017,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1956
    functionDepth: 2
    functionLinenumber: 1956
    functionLinenumberEnd: 2018
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S1Angle::Zero
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2079,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2080,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2020
    functionDepth: 2
    functionLinenumber: 2020
    functionLinenumberEnd: 2081
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S1Angle::Zero
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2087,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2087,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2088,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2088,1
    - Dst: s2builderutil::LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2090,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2091,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2094,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2096,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2097,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2098,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2098,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2099,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - op_type
    - a_str
    - b_str
    - expected_str
    argTypes:
    - S2BooleanOperation::OpType
    - string_view
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2100
    functionName: ExpectPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - StrCat
    - S2LaxPolygonShape::S2LaxPolygonShape
    - s2textformat::ToString
    - S1Angle::Degrees
    - s2builderutil::LaxPolygonLayer::Options::set_degenerate_boundaries
    - S2BooleanOperation::Build
    - ASSERT_TRUE
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ExpectPolygon(S2BooleanOperation::OpType op_type, string_view
      a_str,\n                   string_view b_str, string_view expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2144,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2146,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2148,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2152,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2153,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2154,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2156,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2157,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2158,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2160,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2161,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2165,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2166,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2167,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2169,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2170,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2171,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2173,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2175,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2177,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2181,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2183,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2187,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2188,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2189,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2191,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2192,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2193,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2194,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2196,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2198,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2200,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2204,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2206,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2210,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2211,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2213,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2214,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2217,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2220,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2223,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2225,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2230,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2231,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2233,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2234,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2237,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2238,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2242,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2245,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2253,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2254,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2102
    functionDepth: 2
    functionLinenumber: 2102
    functionLinenumberEnd: 2259
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, FullAndEmptyResults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2264,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2265,1
    - Dst: S2BooleanOperation::Equals
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_str
    - b_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2263
    functionDepth: 2
    functionLinenumber: 2263
    functionLinenumberEnd: 2267
    functionName: TestEqual
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Equals
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: bool
    signature: bool TestEqual(string_view a_str, string_view b_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2275,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2275,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2276,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2276,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2278,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2278,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2279,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2279,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2280,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2280,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2281,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2281,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2282,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2282,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2283,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2283,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2284,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2274
    functionDepth: 3
    functionLinenumber: 2274
    functionLinenumberEnd: 2285
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestEqual
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, Equals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2289,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2290,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2291,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2291,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2292,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2292,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2293,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2293,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2294,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2288
    functionDepth: 2
    functionLinenumber: 2288
    functionLinenumberEnd: 2295
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2BooleanOperation::Contains
    - s2textformat::MakeIndexOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, ContainsEmptyAndFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2299,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2300,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2301,1
    - Dst: S2BooleanOperation::Intersects
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2301,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2302,1
    - Dst: S2BooleanOperation::Intersects
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2302,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2303,1
    - Dst: S2BooleanOperation::Intersects
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2303,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2304,1
    - Dst: S2BooleanOperation::Intersects
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2298
    functionDepth: 2
    functionLinenumber: 2298
    functionLinenumberEnd: 2305
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2BooleanOperation::Intersects
    - s2textformat::MakeIndexOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, IntersectsEmptyAndFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2311,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2315,1
    - Dst: S2BooleanOperation::options
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2315,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2317,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2321,1
    - Dst: S2BooleanOperation::options
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2307
    functionDepth: 0
    functionLinenumber: 2307
    functionLinenumberEnd: 2322
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::options
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, OptionsFieldsCopied)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2328,1
    - Dst: S2BooleanOperation::SourceId::region_id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2328,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2329,1
    - Dst: S2BooleanOperation::SourceId::shape_id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2329,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2330,1
    - Dst: S2BooleanOperation::SourceId::edge_id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2324
    functionDepth: 1
    functionLinenumber: 2324
    functionLinenumberEnd: 2331
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2BooleanOperation::SourceId::region_id
    - S2BooleanOperation::SourceId::shape_id
    - S2BooleanOperation::SourceId::edge_id
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperationSourceIdTest, Accessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2335,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2335,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2335,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2337,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2337,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2337,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2338,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2338,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2338,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2339,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2339,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2340
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - Id
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperationSourceIdTest, Equality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2344,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2344,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2344,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2345,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2345,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2345,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2346,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2346,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2346,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2347,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2347,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2342
    functionDepth: 0
    functionLinenumber: 2342
    functionLinenumberEnd: 2348
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Id
    - EXPECT_LT
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperationSourceIdTest, LessThan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:121,1
    - Dst: make_unique<IndexMatchingLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:121,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:125,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:126,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:126,1
    - Dst: S2BooleanOperation::OpTypeToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:127,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:132,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:132,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - op_type
    - ' options'
    - ' a'
    - ' b'
    - ' expected'
    argTypes:
    - S2BooleanOperation::OpType
    - S2BooleanOperation::Options
    - S2ShapeIndex
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: ExpectResult
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 50
    functionsReached:
    - make_unique<IndexMatchingLayer>
    - vector::push_back
    - S2BooleanOperation::IsEmpty
    - s2textformat::ToString
    - num_shape_ids
    - S2BooleanOperation::Build
    - ASSERT_TRUE
    - S2BooleanOperation::OpTypeToString
    - EXPECT_EQ
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ExpectResult(S2BooleanOperation::OpType op_type,\n                  const
      S2BooleanOperation::Options& options,\n                  const S2ShapeIndex&
      a, const S2ShapeIndex& b,\n                  const S2ShapeIndex& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:139,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:140,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:141,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - op_type
    - ' options'
    - a_str
    - b_str
    - expected_str
    argTypes:
    - S2BooleanOperation::OpType
    - S2BooleanOperation::Options
    - string_view
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: ExpectResult
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 51
    functionsReached:
    - s2textformat::MakeIndexOrDie
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: "void ExpectResult(S2BooleanOperation::OpType op_type,\n                  const
      S2BooleanOperation::Options& options, string_view a_str,\n                  string_view
      b_str, string_view expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:151,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exp
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: RoundToE
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 11
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - S2BooleanOperation::Options::set_snap_function
    linkageType: ''
    returnType: S2BooleanOperation::Options
    signature: S2BooleanOperation::Options RoundToE(int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:159,1
    - Dst: S2BooleanOperation::op_type
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2BooleanOperation::op_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, OpTypeAccessor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:208,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:209,1
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:210,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:211,1
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:212,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, DegeneratePolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:222,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:223,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:224,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:225,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:226,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, DegeneratePolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:236,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:238,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:240,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 244
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:257,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:260,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:263,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:265,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 270
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointOpenPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:276,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:277,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:280,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:283,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:285,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 290
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointOpenPolylineLoopBoundariesFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:299,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:301,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:304,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:306,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:308,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 313
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointSemiOpenPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:324,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:326,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:329,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:331,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:333,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 338
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointClosedPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:345,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:347,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:349,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointPolygonInterior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:357,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:361,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:363,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:365,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 369
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:373,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:377,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:378,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:378,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:378,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:379,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:379,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:379,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:382,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:384,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:386,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 390
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    - auto::Contains
    - s2textformat::MakePointOrDie
    - S2BooleanOperation::Options::set_polygon_model
    - ASSERT_TRUE
    - ASSERT_FALSE
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointSemiOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:394,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:398,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:400,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:402,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PointClosedPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:414,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:418,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:426,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:432,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 437
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexOpenPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:443,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:444,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:448,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:455,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:459,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 464
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexOpenPolylineVertexLoopBoundariesFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:469,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:471,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:475,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:478,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:481,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 487
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexSemiOpenPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:491,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:495,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:502,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:507,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 512
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexClosedPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:517,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:518,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:522,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:529,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:533,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 538
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: "void TEST(S2BooleanOperation,\n     PolylineVertexClosedPolylineVertexLoopBoundariesFalse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 543
    functionName: kVertexTestPolygonStr
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string kVertexTestPolygonStr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:548,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:548,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:549,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:549,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:549,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:550,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:550,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:550,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:551,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:551,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:551,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:552,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:552,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:552,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:553,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:553,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:553,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:554,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:554,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:554,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:555,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:555,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:555,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:556,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:556,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 557
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - EXPECT_TRUE
    - auto::Contains
    - s2textformat::MakePointOrDie
    - s2textformat::MakePolygonOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, TestSemiOpenPolygonVerticesContained)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:565,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:573,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:578,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:579,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:580,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:582,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:583,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 585
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:594,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:597,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:604,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:608,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:613,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 616
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexOpenPolygonClosedPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:620,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:629,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:632,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:633,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:634,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:637,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:638,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 640
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexSemiOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:644,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:650,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:653,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:654,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:655,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:658,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:659,1
    - Dst: kVertexTestPolygonStr
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 661
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - kVertexTestPolygonStr
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineVertexClosedPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:665,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:668,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:670,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:672,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 676
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgePolylineEdgeCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:683,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:689,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:692,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:695,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 699
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgePolylineEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:707,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:710,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:713,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:715,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 719
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineLoopMultipleOpenPolylineEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:727,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:730,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:733,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:736,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 740
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineLoopMultipleSemiOpenPolylineEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:747,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:750,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:753,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:756,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 760
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineLoopMultipleClosedPolylineEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:771,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:772,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:775,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:778,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:781,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 786
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: "void TEST(S2BooleanOperation,\n     PolylineLoopMultiplePolylineEdgeLoopBoundariesFalse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:790,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:795,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:797,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:799,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 803
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgeOpenPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:806,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:807,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:807,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:807,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:808,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:808,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:808,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:809,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:809,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:809,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:810,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:810,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:810,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:812,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:815,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:817,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:819,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 823
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    - auto::Contains
    - s2textformat::MakePointOrDie
    - ASSERT_FALSE
    - ASSERT_TRUE
    - S2BooleanOperation::Options::set_polygon_model
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgeSemiOpenPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:827,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:830,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:832,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:834,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 838
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgeClosedPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:846,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:847,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 851
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - S2BooleanOperation::Options::set_polyline_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonVertexMatching)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:859,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:861,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:863,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 867
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgePolygonInterior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:879,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 884
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEdgeIsolatedStartVertexPlusInteriorCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:893,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:894,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 899
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgeIsolatedStartVertexPlusInteriorCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:903,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:906,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:908,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:910,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 914
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonVertexOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:918,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:921,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:923,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:925,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 916
    functionDepth: 2
    functionLinenumber: 916
    functionLinenumberEnd: 929
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonVertexSemiOpenPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:933,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:936,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:938,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:940,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:942,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 931
    functionDepth: 2
    functionLinenumber: 931
    functionLinenumberEnd: 946
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonVertexClosedPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:950,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:953,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:955,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:957,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 962
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgePolygonEdgeCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:970,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:973,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:975,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:977,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 981
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgeOpenPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:985,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:988,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:990,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:992,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 999
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgeSemiOpenPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1003,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1006,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1008,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1010,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1016
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Options::set_polygon_model
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgeClosedPolygonEdgeOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1023,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1025,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1027,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1032
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonPolygonInterior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1035,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1043,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1046,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1048,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1053
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolygonEdgesDegenerateAfterSnapping)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1153,1
    - Dst: absl::Span<const string>::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1153,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1153,1
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1177,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1178,1
    - Dst: StrSplit
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1180,1
    - Dst: SkipEmpty
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1180,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1182,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1183,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1184,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1184,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1184,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1185,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1186,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1186,1
    - Dst: StrContains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1190,1
    - Dst: StrContains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1191,1
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1193,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1198,1
    - Dst: StrSplit
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1201,1
    - Dst: ByAnyChar
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1201,1
    - Dst: SkipEmpty
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1202,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1204,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1205,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1205,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1209,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1209,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1210,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1211,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1211,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1212,1
    - Dst: StrContains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1216,1
    - Dst: StrContains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1217,1
    - Dst: StrSplit
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1222,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1223,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1224,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1225,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1225,1
    - Dst: DegeneracyCoverageTest::TestResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1228,1
    - Dst: DegeneracyCoverageTest::TestResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - op_type
    - polygon_model
    - rules
    argTypes:
    - OpType
    - PolygonModel
    - absl::Span<const string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1151
    functionDepth: 3
    functionLinenumber: 1151
    functionLinenumberEnd: 1236
    functionName: DegeneracyCoverageTest::Run
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - StrSplit
    - vector::erase
    - StrContains
    - size
    - S2BooleanOperation::Contains
    - ABSL_CHECK_EQ
    - DegeneracyCoverageTest::TestResult
    - vector::size
    - vector::begin
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::Options::set_polygon_model
    - SkipEmpty
    - DegeneracyCoverageTest::MakeIndex
    - absl::Span<const string>::size
    - S2BooleanOperation::Options::set_polyline_model
    - ByAnyChar
    linkageType: ''
    returnType: void
    signature: "void DegeneracyCoverageTest::Run(OpType op_type, PolygonModel polygon_model,\n
      \                                absl::Span<const string> rules)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1241,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1242,1
    - Dst: DegeneracyCoverageTest::MakeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1243,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1244,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1244,1
    - Dst: S2BooleanOperation::OpTypeToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1245,1
    - Dst: S2BooleanOperation::PolygonModelToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1247,1
    - Dst: polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1247,1
    - Dst: S2BooleanOperation::PolylineModelToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1249,1
    - Dst: polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1249,1
    - Dst: polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1251,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - op_type
    - ' options'
    - ch0
    - ch1
    - result
    argTypes:
    - OpType
    - S2BooleanOperation::Options
    - char
    - char
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1255
    functionName: DegeneracyCoverageTest::TestResult
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 2
    functionsReached:
    - polyline_loops_have_boundaries
    - ExpectResult
    - absl::StrCat
    - polygon_model
    - S2BooleanOperation::PolygonModelToString
    - SCOPED_TRACE
    - S2BooleanOperation::OpTypeToString
    - polyline_model
    - DegeneracyCoverageTest::MakeIndex
    - S2BooleanOperation::PolylineModelToString
    linkageType: ''
    returnType: void
    signature: "void DegeneracyCoverageTest::TestResult(\n    OpType op_type, const
      S2BooleanOperation::Options& options,\n    char ch0, char ch1, string_view result)
      const"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1263,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1264,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1269,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1269,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1271,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1271,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1273,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1273,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1275,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1275,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1277,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1277,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1279,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1279,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1281,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1281,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1283,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1283,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1285,1
    - Dst: ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1285,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1285,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1286,1
    - Dst: ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1286,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1286,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1288,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1288,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1290,1
    - Dst: ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1290,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1290,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1291,1
    - Dst: ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1291,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1291,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1295,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1295,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1297,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1297,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1299,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1303,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1303,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1305,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1305,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1307,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1307,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1309,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1309,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1311,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - chars
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1315
    functionName: DegeneracyCoverageTest::MakeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 4
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - auto::Add
    - ContainsBruteForce
    - make_unique<S2LaxPolygonShape>
    - ABSL_CHECK
    - auto::shape
    - make_unique<S2PointVectorShape>
    - make_unique<S2LaxPolylineShape>
    - ABSL_LOG
    - string_view::size
    linkageType: ''
    returnType: unique_ptr<MutableS2ShapeIndex>
    signature: "unique_ptr<MutableS2ShapeIndex> DegeneracyCoverageTest::MakeIndex(\n
      \   string_view chars) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1335
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, OpenIntersection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1355
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, SemiOpenIntersection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1375
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, ClosedIntersection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1395
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, OpenUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1423
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, SemiOpenUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1443
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, ClosedUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1463
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, OpenDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1484
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, SemiOpenDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1504
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, ClosedDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1524
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, OpenSymmetricDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1545
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, SemiOpenSymmetricDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1547
    functionDepth: 0
    functionLinenumber: 1547
    functionLinenumberEnd: 1569
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(DegeneracyCoverageTest, ClosedSymmetricDifference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1581,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1584,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1586,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1588,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1595
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, ThreeOverlappingBars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1602,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1605,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1610,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1613,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1597
    functionDepth: 2
    functionLinenumber: 1597
    functionLinenumberEnd: 1624
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, FourOverlappingBars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1632,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1637,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1641,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1644,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1626
    functionDepth: 2
    functionLinenumber: 1626
    functionLinenumberEnd: 1654
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, OverlappingDoughnuts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1658,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1661,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1663,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1665,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1669
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineEnteringRectangle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1678,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1681,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1684,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1686,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1671
    functionDepth: 2
    functionLinenumber: 1671
    functionLinenumberEnd: 1691
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, PolylineCrossingRectangleTwice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1699,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1702,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1704,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1706,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1708,1
    - Dst: S2BooleanOperation::Options::set_split_all_crossing_polyline_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1711,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1712,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1715,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1717,1
    - Dst: ExpectResult
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1693
    functionDepth: 2
    functionLinenumber: 1693
    functionLinenumberEnd: 1722
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - RoundToE
    - ExpectResult
    - S2BooleanOperation::Options::set_split_all_crossing_polyline_edges
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, SelfIntersectingPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1728,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1729,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1730,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1730,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1731,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1731,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1732,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1732,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1733,1
    - Dst: make_unique<s2builderutil::IndexedS2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1735,1
    - Dst: make_unique<s2builderutil::IndexedS2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1737,1
    - Dst: make_unique<s2builderutil::IndexedLaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1738,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1740,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1741,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1741,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1742,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - input_str
    - expected_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1743
    functionName: TestMeridianSplitting
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 1
    functionsReached:
    - make_unique<s2builderutil::IndexedLaxPolygonLayer>
    - make_unique<s2builderutil::IndexedS2PolylineVectorLayer>
    - make_unique<S2LaxPolygonShape>
    - S2Point
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2BooleanOperation::Build
    - ASSERT_TRUE
    - make_unique<s2builderutil::IndexedS2PointVectorLayer>
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TestMeridianSplitting(string_view input_str, string_view expected_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1755,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1758,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1763,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1769,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1777,1
    - Dst: TestMeridianSplitting
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1753
    functionDepth: 2
    functionLinenumber: 1753
    functionLinenumberEnd: 1794
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestMeridianSplitting
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, MeridianSplitting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1799,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1800,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1800,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1801,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1801,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1806,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1807,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1807,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1808,1
    - Dst: S2LaxPolygonShape*::is_empty
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1808,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1809,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' a_loops'
    - ' b_loops'
    - snap_radius
    - result
    argTypes:
    - vector<vector<S2Point>>
    - vector<vector<S2Point>>
    - S1Angle
    - S2LaxPolygonShape*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1811
    functionName: ComputeTestUnion
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 6
    functionsReached:
    - Add
    - make_unique<S2LaxPolygonShape>
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2BooleanOperation::Build
    - ASSERT_TRUE
    - S2LaxPolygonShape*::is_empty
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ComputeTestUnion(const vector<vector<S2Point>>& a_loops,\n                      const
      vector<vector<S2Point>>& b_loops,\n                      S1Angle snap_radius,
      S2LaxPolygonShape* result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1837,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1813
    functionDepth: 2
    functionLinenumber: 1813
    functionLinenumberEnd: 1840
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1886,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1842
    functionDepth: 2
    functionLinenumber: 1842
    functionLinenumberEnd: 1889
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1914,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1915,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1891
    functionDepth: 2
    functionLinenumber: 1891
    functionLinenumberEnd: 1916
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S1Angle::Zero
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1942,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1949,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1950,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1952,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1953,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1918
    functionDepth: 2
    functionLinenumber: 1918
    functionLinenumberEnd: 1954
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - s2textformat::MakePointOrDie
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2016,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2017,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1956
    functionDepth: 2
    functionLinenumber: 1956
    functionLinenumberEnd: 2018
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S1Angle::Zero
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2079,1
    - Dst: ComputeTestUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2080,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2020
    functionDepth: 2
    functionLinenumber: 2020
    functionLinenumberEnd: 2081
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ComputeTestUnion
    - S1Angle::Zero
    - S2LaxPolygonShape::S2LaxPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, GetCrossedVertexIndexBug6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2087,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2087,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2088,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2088,1
    - Dst: s2builderutil::LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2090,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2091,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2094,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2096,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2097,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2098,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2098,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2099,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - op_type
    - a_str
    - b_str
    - expected_str
    argTypes:
    - S2BooleanOperation::OpType
    - string_view
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2100
    functionName: ExpectPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 1
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - StrCat
    - S2LaxPolygonShape::S2LaxPolygonShape
    - s2textformat::ToString
    - S1Angle::Degrees
    - s2builderutil::LaxPolygonLayer::Options::set_degenerate_boundaries
    - S2BooleanOperation::Build
    - ASSERT_TRUE
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ExpectPolygon(S2BooleanOperation::OpType op_type, string_view
      a_str,\n                   string_view b_str, string_view expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2144,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2146,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2148,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2152,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2153,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2154,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2156,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2157,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2158,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2160,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2161,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2165,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2166,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2167,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2169,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2170,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2171,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2173,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2175,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2177,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2181,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2183,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2187,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2188,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2189,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2191,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2192,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2193,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2194,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2196,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2198,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2200,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2204,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2206,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2210,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2211,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2213,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2214,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2217,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2220,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2223,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2225,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2230,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2231,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2233,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2234,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2237,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2238,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2242,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2245,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2253,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2254,1
    - Dst: ExpectPolygon
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2102
    functionDepth: 2
    functionLinenumber: 2102
    functionLinenumberEnd: 2259
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, FullAndEmptyResults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2264,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2265,1
    - Dst: S2BooleanOperation::Equals
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_str
    - b_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2263
    functionDepth: 2
    functionLinenumber: 2263
    functionLinenumberEnd: 2267
    functionName: TestEqual
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 1
    functionsReached:
    - S2BooleanOperation::Equals
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: bool
    signature: bool TestEqual(string_view a_str, string_view b_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2275,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2275,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2276,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2276,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2278,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2278,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2279,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2279,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2280,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2280,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2281,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2281,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2282,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2282,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2283,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2283,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2284,1
    - Dst: TestEqual
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2274
    functionDepth: 3
    functionLinenumber: 2274
    functionLinenumberEnd: 2285
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestEqual
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, Equals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2289,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2290,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2291,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2291,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2292,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2292,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2293,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2293,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2294,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2288
    functionDepth: 2
    functionLinenumber: 2288
    functionLinenumberEnd: 2295
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2BooleanOperation::Contains
    - s2textformat::MakeIndexOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, ContainsEmptyAndFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2299,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2300,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2301,1
    - Dst: S2BooleanOperation::Intersects
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2301,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2302,1
    - Dst: S2BooleanOperation::Intersects
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2302,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2303,1
    - Dst: S2BooleanOperation::Intersects
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2303,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2304,1
    - Dst: S2BooleanOperation::Intersects
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2298
    functionDepth: 2
    functionLinenumber: 2298
    functionLinenumberEnd: 2305
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2BooleanOperation::Intersects
    - s2textformat::MakeIndexOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, IntersectsEmptyAndFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2311,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2315,1
    - Dst: S2BooleanOperation::options
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2315,1
    - Dst: S2BooleanOperation::Options::set_polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2317,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2321,1
    - Dst: S2BooleanOperation::options
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2307
    functionDepth: 0
    functionLinenumber: 2307
    functionLinenumberEnd: 2322
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2BooleanOperation::Options::set_polyline_loops_have_boundaries
    - S2BooleanOperation::options
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperation, OptionsFieldsCopied)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2328,1
    - Dst: S2BooleanOperation::SourceId::region_id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2328,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2329,1
    - Dst: S2BooleanOperation::SourceId::shape_id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2329,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2330,1
    - Dst: S2BooleanOperation::SourceId::edge_id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2324
    functionDepth: 1
    functionLinenumber: 2324
    functionLinenumberEnd: 2331
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2BooleanOperation::SourceId::region_id
    - S2BooleanOperation::SourceId::shape_id
    - S2BooleanOperation::SourceId::edge_id
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperationSourceIdTest, Accessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2335,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2335,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2335,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2337,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2337,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2337,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2338,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2338,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2338,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2339,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2339,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2340
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - Id
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperationSourceIdTest, Equality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2344,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2344,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2344,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2345,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2345,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2345,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2346,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2346,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2346,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2347,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2347,1
    - Dst: Id
      Src: /src/s2geometry/src/s2/s2boolean_operation_test.cc:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2342
    functionDepth: 0
    functionLinenumber: 2342
    functionLinenumberEnd: 2348
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation_test.cc
    functionUses: 0
    functionsReached:
    - Id
    - EXPECT_LT
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2BooleanOperationSourceIdTest, LessThan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2internal::BTreeMultimap::tree_::bytes_used
      Src: /src/s2geometry/src/s2/s2point_index.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: s2internal::BTreeMultimap::bytes_used
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - s2internal::BTreeMultimap::tree_::bytes_used
    linkageType: ''
    returnType: size_t
    signature: size_t bytes_used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2internal::BTreeMultimap::tree_::bytes_used
      Src: /src/s2geometry/src/s2/s2point_index.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: s2internal::BTreeMultimap::bytes_used
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - s2internal::BTreeMultimap::tree_::bytes_used
    linkageType: ''
    returnType: size_t
    signature: size_t bytes_used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: S2PointIndex::PointData::PointData
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PointData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' point'
    - ' data'
    argTypes:
    - S2Point
    - Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: S2PointIndex::PointData::PointData
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PointData(const S2Point& point, const Data& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/s2geometry/src/s2/s2point_index.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: '& point() const'
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - std::get<0>
    linkageType: ''
    returnType: S2Point
    signature: S2Point & point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<1>
      Src: /src/s2geometry/src/s2/s2point_index.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& data() const'
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - std::get<1>
    linkageType: ''
    returnType: Data
    signature: Data & data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - PointData
    - PointData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: operator==(const PointData& x, const PointData& y)
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const PointData& x, const PointData& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - PointData
    - PointData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: operator<(const PointData& x, const PointData& y)
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const PointData& x, const PointData& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: S2PointIndex::S2PointIndex
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/s2point_index.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: S2PointIndex::Iterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: bool
    signature: bool Locate(const S2Point& target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/s2point_index.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: S2PointIndex::Iterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: S2CellRelation
    signature: S2CellRelation Locate(S2CellId target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: S2PointIndex::S2PointIndex
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointIndex(const S2PointIndex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    functionName: operator=(const S2PointIndex&)
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2PointIndex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_index.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: S2PointIndex<Data>::num_points
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int S2PointIndex<Data>::num_points() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: point
      Src: /src/s2geometry/src/s2/s2point_index.h:259,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2point_index.h:260,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2point_index.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point_data'
    argTypes:
    - PointData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: S2PointIndex<Data>::Add
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - point
    - insert
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Add(const PointData& point_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndex<Data>::Add
      Src: /src/s2geometry/src/s2/s2point_index.h:265,1
    - Dst: PointData
      Src: /src/s2geometry/src/s2/s2point_index.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' point'
    - ' data'
    argTypes:
    - S2Point
    - Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: S2PointIndex<Data>::Add
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 1
    functionsReached:
    - PointData
    - S2PointIndex<Data>::Add
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Add(const S2Point& point, const Data& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndex<Data>::Add
      Src: /src/s2geometry/src/s2/s2point_index.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: S2PointIndex<Data>::Add
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 2
    functionsReached:
    - S2PointIndex<Data>::Add
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Add(const S2Point& point)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: point
      Src: /src/s2geometry/src/s2/s2point_index.h:276,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2point_index.h:277,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2point_index.h:277,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2point_index.h:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' point_data'
    argTypes:
    - PointData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: S2PointIndex<Data>::Remove
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - end
    - point
    - erase
    - lower_bound
    linkageType: ''
    returnType: bool
    signature: bool S2PointIndex<Data>::Remove(const PointData& point_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndex<Data>::Remove
      Src: /src/s2geometry/src/s2/s2point_index.h:289,1
    - Dst: PointData
      Src: /src/s2geometry/src/s2/s2point_index.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' point'
    - ' data'
    argTypes:
    - S2Point
    - Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: S2PointIndex<Data>::Remove
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 1
    functionsReached:
    - PointData
    - S2PointIndex<Data>::Remove
    linkageType: ''
    returnType: bool
    signature: bool S2PointIndex<Data>::Remove(const S2Point& point, const Data& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndex<Data>::Remove
      Src: /src/s2geometry/src/s2/s2point_index.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: S2PointIndex<Data>::Remove
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 2
    functionsReached:
    - S2PointIndex<Data>::Remove
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Remove(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2point_index.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: S2PointIndex<Data>::Clear
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes_used
      Src: /src/s2geometry/src/s2/s2point_index.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: S2PointIndex<Data>::SpaceUsed
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - bytes_used
    linkageType: ''
    returnType: size_t
    signature: size_t S2PointIndex<Data>::SpaceUsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: S2PointIndex<Data>::Iterator::Iterator()
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Iterator::Iterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2point_index.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2PointIndex<Data>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: "S2PointIndex<Data>::Iterator::Iterator(\n    const S2PointIndex<Data>*
      index)"
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: "void S2PointIndex<Data>::Iterator::Iterator(\n    const S2PointIndex<Data>*
      index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2point_index.h:321,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2point_index.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2PointIndex<Data>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: "S2PointIndex<Data>::Iterator::Init(\n    const S2PointIndex<Data>*
      index)"
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: "void S2PointIndex<Data>::Iterator::Init(\n    const S2PointIndex<Data>*
      index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2point_index.h:327,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2point_index.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: S2PointIndex<Data>::Iterator::id() const
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2PointIndex<Data>::Iterator::id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2point_index.h:333,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2point_index.h:333,1
    - Dst: second::point
      Src: /src/s2geometry/src/s2/s2point_index.h:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: '& S2PointIndex<Data>::Iterator::point() const'
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - done
    - second::point
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point & S2PointIndex<Data>::Iterator::point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2point_index.h:339,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2point_index.h:339,1
    - Dst: second::data
      Src: /src/s2geometry/src/s2/s2point_index.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: '& S2PointIndex<Data>::Iterator::data() const'
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - done
    - second::data
    - ABSL_DCHECK
    linkageType: ''
    returnType: Data
    signature: Data & S2PointIndex<Data>::Iterator::data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2point_index.h:346,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2point_index.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: '&

      S2PointIndex<Data>::Iterator::point_data() const'
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: typename S2PointIndex<Data>::PointData
    signature: 'typename S2PointIndex<Data>::PointData &

      S2PointIndex<Data>::Iterator::point_data() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: S2PointIndex<Data>::Iterator::done() const
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2PointIndex<Data>::Iterator::done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2point_index.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: S2PointIndex<Data>::Iterator::Begin()
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - begin
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Iterator::Begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: S2PointIndex<Data>::Iterator::Finish()
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Iterator::Finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2point_index.h:367,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2point_index.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: S2PointIndex<Data>::Iterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Iterator::Next()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2point_index.h:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: S2PointIndex<Data>::Iterator::Prev()
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - begin
    linkageType: ''
    returnType: bool
    signature: bool S2PointIndex<Data>::Iterator::Prev()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2point_index.h:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: S2PointIndex<Data>::Iterator::Seek(S2CellId target)
    functionSourceFile: /src/s2geometry/src/s2/s2point_index.h
    functionUses: 0
    functionsReached:
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void S2PointIndex<Data>::Iterator::Seek(S2CellId target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: S2ShapeNestingQuery::Options::FirstChain
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int FirstChain(const S2Shape*)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: S2ShapeNestingQuery::Options::Options
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: S2ShapeNestingQuery::Options::datum_strategy
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2DatumStrategy
    signature: S2DatumStrategy datum_strategy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - strategy
    argTypes:
    - S2DatumStrategy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: '& set_datum_strategy(S2DatumStrategy strategy)'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & set_datum_strategy(S2DatumStrategy strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainRelation::AddHole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: S2ShapeNestingQuery::ChainRelation::MakeShell
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached:
    - ChainRelation::AddHole
    linkageType: ''
    returnType: ChainRelation
    signature: ChainRelation MakeShell(absl::Span<const int32_t> holes = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: S2ShapeNestingQuery::ChainRelation::ChainRelation
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChainRelation(int32_t parent = -1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: S2ShapeNestingQuery::ChainRelation::parent_id
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t parent_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::ChainRelation::parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: S2ShapeNestingQuery::ChainRelation::is_shell
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached:
    - S2ShapeNestingQuery::ChainRelation::parent_id
    linkageType: ''
    returnType: bool
    signature: bool is_shell() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::ChainRelation::is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: S2ShapeNestingQuery::ChainRelation::is_hole
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached:
    - S2ShapeNestingQuery::ChainRelation::is_shell
    linkageType: ''
    returnType: bool
    signature: bool is_hole() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: S2ShapeNestingQuery::ChainRelation::num_holes
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_holes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const int32_t>
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: S2ShapeNestingQuery::ChainRelation::holes
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached:
    - absl::Span<const int32_t>
    linkageType: ''
    returnType: absl::Span<const int32_t>
    signature: absl::Span<const int32_t> holes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: S2ShapeNestingQuery::ChainRelation::AddHole
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddHole(int32_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: S2ShapeNestingQuery::ChainRelation::SetParent
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetParent(int32_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: S2ShapeNestingQuery::ChainRelation::ClearParent
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClearParent()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: S2ShapeNestingQuery::S2ShapeNestingQuery
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeNestingQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: '& index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex & index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: '& mutable_options()'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & mutable_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:38,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:38,1
    - Dst: S2LatLngRectBounder::AddInternal
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:39,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: S2LatLngRectBounder::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc
    functionUses: 3
    functionsReached:
    - S2LatLngRectBounder::AddInternal
    - S2::IsUnitLength
    - S2LatLng
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectBounder::AddPoint(const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRectBounder::AddInternal
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:43,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b_latlng'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: S2LatLngRectBounder::AddLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc
    functionUses: 1
    functionsReached:
    - S2LatLngRectBounder::AddInternal
    - ToPoint
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectBounder::AddLatLng(const S2LatLng& b_latlng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:50,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:50,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:50,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:52,1
    - Dst: S2LatLngRectBounder::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:53,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:59,1
    - Dst: Vector3_d::Norm
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:73,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:77,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:81,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:87,1
    - Dst: S2LatLngRect::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:87,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:91,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:91,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:92,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:93,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:100,1
    - Dst: R1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:105,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:105,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:106,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:113,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:113,1
    - Dst: Vector3_d::DotProd
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:114,1
    - Dst: Vector3_d::DotProd
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:115,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:125,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:125,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:145,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:146,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:146,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:146,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:164,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:164,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:165,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:165,1
    - Dst: R1Interval::GetLength
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:167,1
    - Dst: R1Interval::set_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:174,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:174,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:174,1
    - Dst: R1Interval::set_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:177,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:177,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:177,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:180,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:180,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - ' b'
    - ' b_latlng'
    argTypes:
    - S2Point
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 185
    functionName: S2LatLngRectBounder::AddInternal
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc
    functionUses: 2
    functionsReached:
    - DotProd
    - ToPoint
    - Vector3_d::DotProd
    - S2Point
    - S2LatLngRectBounder::AddPoint
    - sqrt
    - CrossProd
    - Union
    - ABSL_DCHECK
    - R1Interval::GetLength
    - R1Interval::FromPointPair
    - min
    - S1Interval::GetLength
    - S1Interval::FromPointPair
    - S1Interval::Full
    - sin
    - S2LatLngRect
    - atan2
    - R1Interval::set_hi
    - fabs
    - R1Interval::set_lo
    - S2LatLngRect::FromPointPair
    - is_empty
    - Vector3_d::CrossProd
    - max
    - Norm
    - R1Interval::lo
    - Vector3_d::Norm
    - S2::ApproxEquals
    - asin
    - lng
    - R1Interval::hi
    - lat
    - S2LatLngRect::Full
    linkageType: ''
    returnType: void
    signature: "void S2LatLngRectBounder::AddInternal(const S2Point& b,\n                                      const
      S2LatLng& b_latlng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:210,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 212
    functionName: S2LatLngRectBounder::GetBound
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc
    functionUses: 4
    functionsReached:
    - S2LatLng::FromRadians
    - Expanded
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRectBounder::GetBound() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:217,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:236,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:236,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:240,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:240,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:240,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:244,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:245,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:271,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:291,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:320,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:321,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:341,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' bound'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 343
    functionName: S2LatLngRectBounder::ExpandForSubregions
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc
    functionUses: 6
    functionsReached:
    - S2LatLng::FromRadians
    - lng
    - max
    - S2LatLngRect::Full
    - Expanded
    - lat
    - is_empty
    linkageType: ''
    returnType: S2LatLngRect
    signature: "S2LatLngRect S2LatLngRectBounder::ExpandForSubregions(\n    const
      S2LatLngRect& bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: S2LatLngRectBounder::MaxErrorForTests
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromRadians
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2LatLngRectBounder::MaxErrorForTests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:254,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:255,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:256,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:256,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:257,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:258,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:258,1
    - Dst: Equals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: TestEncodeDecode
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Equals
    - ABSL_CHECK
    - Encoder::length
    - S2Polygon::Decode
    - Encoder::base
    - Encode
    - S2Polygon::S2Polygon
    - Encoder::Encoder
    linkageType: ''
    returnType: bool
    signature: bool TestEncodeDecode(const S2Polygon& src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:266,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:267,1
    - Dst: InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:268,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:269,1
    - Dst: S2Polygon::Equals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:269,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:272,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 262
    functionDepth: 5
    functionLinenumber: 262
    functionLinenumberEnd: 274
    functionName: MakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 1
    functionsReached:
    - S2Polygon::Equals
    - S2Polygon::InitToSnapped
    - EXPECT_TRUE
    - InitToSnapped
    - S2Polygon::S2Polygon
    - TestEncodeDecode
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> MakePolygon(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:277,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:278,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:279,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:279,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:280,1
    - Dst: unique_ptr::ApproxContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:280,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:280,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:281,1
    - Dst: unique_ptr::ApproxDisjoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:281,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a_str
    - b_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: CheckContains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - unique_ptr::ApproxDisjoint
    - EXPECT_TRUE
    - S1Angle::Radians
    - unique_ptr::Contains
    - unique_ptr::ApproxContains
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void CheckContains(string_view a_str, string_view b_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:286,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:286,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_str
    - b_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: CheckContainsPoint
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakePointOrDie
    - unique_ptr::Contains
    linkageType: ''
    returnType: void
    signature: void CheckContainsPoint(string_view a_str, string_view b_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:291,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:292,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:293,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:294,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:295,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:296,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:297,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:298,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:299,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:300,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:301,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:302,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:303,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:304,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:305,1
    - Dst: CheckContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:306,1
    - Dst: CheckContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:308,1
    - Dst: CheckContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:309,1
    - Dst: CheckContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:310,1
    - Dst: CheckContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:311,1
    - Dst: CheckContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:312,1
    - Dst: CheckContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:313,1
    - Dst: CheckContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:314,1
    - Dst: CheckContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:315,1
    - Dst: CheckContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 317
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - CheckContains
    - CheckContainsPoint
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::GetOverlapFractions
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:322,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:323,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:324,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:326,1
    - Dst: S2Polygon::GetOverlapFractions
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:327,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:328,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:329,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:331,1
    - Dst: S2Polygon::GetOverlapFractions
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:332,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:333,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 335
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - S2Polygon::GetOverlapFractions
    - MakePolygon
    - EXPECT_DOUBLE_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, OverlapFractions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:343,1
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:343,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GE
    - S2::Origin
    - S2LatLng::Latitude
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, OriginNearPole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:347,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:348,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:349,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:350,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:350,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:351,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:351,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:352,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:352,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:353,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:353,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:355,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:355,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:357,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:357,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:358,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:358,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:359,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:359,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:360,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:360,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:361,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:361,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:363,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:363,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:364,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:365,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:365,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:366,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:366,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:367,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:368,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:371,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:371,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:375,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:375,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:378,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:378,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:379,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:379,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:381,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:382,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:382,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:383,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:383,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:384,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:385,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:385,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:386,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:386,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:388,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:389,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:389,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:390,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:390,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:391,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:392,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:392,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:393,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:393,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:395,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:396,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 397
    functionName: S2PolygonTestBase::S2PolygonTestBase
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - StrCat
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void S2PolygonTestBase::S2PolygonTestBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:400,1
    - Dst: BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:401,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:402,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:403,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:404,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:404,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:405,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:406,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:407,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:407,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:408,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:408,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:409,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:410,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:410,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:411,1
    - Dst: S2Polygon::BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:411,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:412,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:413,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:414,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 416
    functionName: CheckEqual
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Polygon::BoundaryApproxEquals
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - BoundaryApproxEquals
    - S1Angle::Zero
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void CheckEqual(const S2Polygon& a, const S2Polygon& b,\n                       S1Angle
      max_error = S1Angle::Zero())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:419,1
    - Dst: S2Polygon::InitToComplement
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:420,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 422
    functionName: CheckComplementary
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToComplement
    - CheckEqual
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void CheckComplementary(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - num_trials
    - z
    argTypes:
    - double
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: ConfidenceBound
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double ConfidenceBound(double p, int num_trials, double z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:445,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:446,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:448,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:449,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:450,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:450,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:455,1
    - Dst: S2Polygon::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:456,1
    - Dst: S2Polygon::Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:457,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:460,1
    - Dst: S2Polygon::ApproxContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:460,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:463,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:463,1
    - Dst: S2Polygon::Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:464,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:467,1
    - Dst: S2Polygon::ApproxDisjoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:467,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:498,1
    - Dst: ConfidenceBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:498,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:499,1
    - Dst: ConfidenceBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:499,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:501,1
    - Dst: ConfidenceBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:501,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:502,1
    - Dst: ConfidenceBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 503
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::ApproxContains
    - EXPECT_GT
    - S2Polygon::ApproxDisjoint
    - S2Polygon::InitToIntersection
    - EXPECT_TRUE
    - EXPECT_LT
    - S2Polygon::Contains
    - ConfidenceBound
    - s2random::CellId
    - S2Cell
    - S2Polygon::Intersects
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2Polygon::S2Polygon
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, TestApproxContainsAndDisjoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:508,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:508,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:509,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:509,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:509,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:510,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:510,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:510,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:512,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:513,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:514,1
    - Dst: InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:516,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:517,1
    - Dst: InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:519,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:520,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:520,1
    - Dst: InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:522,1
    - Dst: InitToSymmetricDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:523,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 525
    functionName: TestOneNestedPair
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Intersects
    - InitToDifference
    - EXPECT_TRUE
    - is_empty
    - InitToIntersection
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Polygon::InitToUnion
    - Contains
    - CheckEqual
    - InitToSymmetricDifference
    linkageType: ''
    returnType: void
    signature: void TestOneNestedPair(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:530,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:530,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:531,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:531,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:532,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:532,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:532,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:533,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:533,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:533,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:535,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:536,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:537,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:537,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:538,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:539,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:540,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:541,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:541,1
    - Dst: InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:543,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:544,1
    - Dst: InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:546,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:547,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:547,1
    - Dst: InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:549,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:550,1
    - Dst: InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:552,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:553,1
    - Dst: InitToSymmetricDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:555,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 557
    functionName: TestOneDisjointPair
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - Intersects
    - InitToIntersection
    - S2Error::S2Error
    - InitToUnion
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - CheckEqual
    - S2Builder::StartLayer
    - EXPECT_TRUE
    - Contains
    - InitToDifference
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - is_empty
    - EXPECT_FALSE
    - InitToSymmetricDifference
    linkageType: ''
    returnType: void
    signature: void TestOneDisjointPair(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:562,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:562,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:562,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:563,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:563,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:563,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:565,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:566,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:567,1
    - Dst: S2Polygon::is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 568
    functionName: TestOneCoveringPair
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - is_full
    - EXPECT_TRUE
    - S2Polygon::is_full
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Polygon::InitToUnion
    - Contains
    linkageType: ''
    returnType: void
    signature: void TestOneCoveringPair(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:574,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:574,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:575,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:575,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:576,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:576,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:578,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:579,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:580,1
    - Dst: S2Polygon::is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:580,1
    - Dst: InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:582,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:583,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:583,1
    - Dst: InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:585,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:586,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:586,1
    - Dst: InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:588,1
    - Dst: InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:589,1
    - Dst: InitToSymmetricDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:590,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 592
    functionName: TestOneOverlappingPair
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Intersects
    - InitToDifference
    - InitToUnion
    - EXPECT_TRUE
    - S2Polygon::is_full
    - CheckEqual
    - InitToIntersection
    - S2Polygon::S2Polygon
    - Contains
    - S2Polygon::InitToUnion
    - is_empty
    - EXPECT_FALSE
    - InitToSymmetricDifference
    linkageType: ''
    returnType: void
    signature: void TestOneOverlappingPair(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:597,1
    - Dst: S2Polygon::InitToComplement
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:598,1
    - Dst: InitToComplement
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:599,1
    - Dst: TestOneNestedPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:601,1
    - Dst: TestOneNestedPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:602,1
    - Dst: TestOneDisjointPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:603,1
    - Dst: TestOneCoveringPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 605
    functionName: TestNestedPair
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - InitToComplement
    - S2Polygon::InitToComplement
    - TestOneCoveringPair
    - TestOneNestedPair
    - TestOneDisjointPair
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TestNestedPair(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:610,1
    - Dst: S2Polygon::InitToComplement
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:611,1
    - Dst: InitToComplement
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:612,1
    - Dst: TestOneDisjointPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:614,1
    - Dst: TestOneCoveringPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:615,1
    - Dst: TestOneNestedPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:616,1
    - Dst: TestOneNestedPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 609
    functionDepth: 4
    functionLinenumber: 609
    functionLinenumberEnd: 618
    functionName: TestDisjointPair
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - InitToComplement
    - S2Polygon::InitToComplement
    - TestOneCoveringPair
    - TestOneNestedPair
    - TestOneDisjointPair
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TestDisjointPair(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:623,1
    - Dst: S2Polygon::InitToComplement
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:624,1
    - Dst: InitToComplement
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:625,1
    - Dst: TestOneOverlappingPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:627,1
    - Dst: TestOneOverlappingPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:628,1
    - Dst: TestOneOverlappingPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:629,1
    - Dst: TestOneOverlappingPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 622
    functionDepth: 4
    functionLinenumber: 622
    functionLinenumberEnd: 631
    functionName: TestOverlappingPair
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - InitToComplement
    - S2Polygon::InitToComplement
    - TestOneOverlappingPair
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TestOverlappingPair(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:640,1
    - Dst: InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:641,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:642,1
    - Dst: InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:643,1
    - Dst: CheckComplementary
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:645,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' a'
    - ' a1'
    - ' b'
    - ' b1'
    argTypes:
    - S2Polygon
    - S2Polygon
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 634
    functionDepth: 5
    functionLinenumber: 634
    functionLinenumberEnd: 647
    functionName: TestOneComplementPair
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - InitToDifference
    - InitToIntersection
    - CheckComplementary
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - CheckEqual
    linkageType: ''
    returnType: void
    signature: "void TestOneComplementPair(const S2Polygon& a, const S2Polygon& a1,\n
      \                                 const S2Polygon& b, const S2Polygon& b1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:652,1
    - Dst: S2Polygon::InitToComplement
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:653,1
    - Dst: InitToComplement
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:654,1
    - Dst: TestOneComplementPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:656,1
    - Dst: TestOneComplementPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:657,1
    - Dst: TestOneComplementPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:658,1
    - Dst: TestOneComplementPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:659,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:663,1
    - Dst: S2Polygon::InitToSymmetricDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:664,1
    - Dst: InitToSymmetricDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:665,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 651
    functionDepth: 6
    functionLinenumber: 651
    functionLinenumberEnd: 667
    functionName: TestComplements
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - InitToComplement
    - S2Polygon::InitToComplement
    - TestOneComplementPair
    - InitToSymmetricDifference
    - S2Polygon::S2Polygon
    - CheckEqual
    - S2Polygon::InitToSymmetricDifference
    linkageType: ''
    returnType: void
    signature: void TestComplements(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:670,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:671,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:673,1
    - Dst: std::make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:673,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:674,1
    - Dst: std::make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:674,1
    - Dst: S2Polygon::DestructiveUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:676,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:676,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polygon
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: TestDestructiveUnion
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - std::move
    - S2Polygon::DestructiveUnion
    - std::make_unique<S2Polygon>
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - CheckEqual
    linkageType: ''
    returnType: void
    signature: void TestDestructiveUnion(const S2Polygon& a, const S2Polygon& b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:683,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:684,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:684,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:685,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:685,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:686,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:686,1
    - Dst: TestNestedPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:687,1
    - Dst: TestNestedPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:688,1
    - Dst: TestDisjointPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:689,1
    - Dst: TestOverlappingPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:691,1
    - Dst: TestDestructiveUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:693,1
    - Dst: TestComplements
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - contains
    - contained
    - intersects
    - description
    argTypes:
    - S2Polygon
    - S2Polygon
    - bool
    - bool
    - bool
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 680
    functionDepth: 7
    functionLinenumber: 680
    functionLinenumberEnd: 695
    functionName: TestRelationWithDesc
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Intersects
    - TestDestructiveUnion
    - TestComplements
    - TestOverlappingPair
    - TestNestedPair
    - SCOPED_TRACE
    - EXPECT_EQ
    - Contains
    - TestDisjointPair
    linkageType: ''
    returnType: void
    signature: "void TestRelationWithDesc(const S2Polygon& a, const S2Polygon& b,\n
      \                                bool contains, bool contained, bool intersects,\n
      \                                string_view description)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:702,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:703,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:704,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:705,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:706,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:707,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:708,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:709,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:710,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:711,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:712,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:713,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:714,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:716,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:717,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:718,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:719,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:720,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:721,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:722,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:723,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:724,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:725,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:727,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:728,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:729,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:730,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:731,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:732,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:733,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:734,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:735,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:736,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:738,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:739,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:740,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:741,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:742,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:744,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:745,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:746,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:747,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:748,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:750,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:751,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:752,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:753,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:754,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:755,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:756,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:757,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:758,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:762,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:763,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:764,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:765,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:766,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:767,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:768,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:770,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 775
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - TestRelation
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, Relations)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - contains
    - ','
    - contained
    - ','
    - intersects
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: TestRelation
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TestRelation(a, b, contains, contained, intersects)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:778,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:778,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:779,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:779,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:780,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:780,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:781,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:781,1
    - Dst: TestNestedPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:783,1
    - Dst: TestNestedPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:784,1
    - Dst: TestNestedPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 786
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - is_full
    - EXPECT_TRUE
    - TestNestedPair
    - is_empty
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, EmptyAndFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:789,1
    - Dst: unique_ptr::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:790,1
    - Dst: unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: MakePolygonWithNonDefaultFields
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::set_s2debug_override
    - MakePolygon
    - unique_ptr::ForceBuildIndex
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> MakePolygonWithNonDefaultFields()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:796,1
    - Dst: unique_ptr::Clone
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:797,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:798,1
    - Dst: PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygonWithNonDefaultFields
    - unique_ptr::Clone
    - EXPECT_THAT
    - PolygonIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, CloneResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:802,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:804,1
    - Dst: PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 805
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygonWithNonDefaultFields
    - EXPECT_THAT
    - PolygonIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, CopyConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:808,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:809,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:811,1
    - Dst: PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 812
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygonWithNonDefaultFields
    - EXPECT_THAT
    - PolygonIdenticalTo
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, CopyAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:815,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:818,1
    - Dst: PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 819
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygonWithNonDefaultFields
    - EXPECT_THAT
    - PolygonIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, CopyAssignmentToSelfIsNoOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:822,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:824,1
    - Dst: PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 825
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - PolygonIdenticalTo
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, CopyConstructionFromEmptyIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:828,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:829,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:831,1
    - Dst: PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 832
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - PolygonIdenticalTo
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, CopyAssignmentFromEmptyIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:835,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:839,1
    - Dst: PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 840
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygonWithNonDefaultFields
    - EXPECT_THAT
    - PolygonIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, MoveConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:843,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:846,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:847,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:848,1
    - Dst: PolygonIdenticalTo
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 849
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - PolygonIdenticalTo
    - MakePolygonWithNonDefaultFields
    - std::move
    - EXPECT_THAT
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, MoveAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:960,1
    - Dst: S2Polygon::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:961,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:962,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:962,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:966,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:966,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:967,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:968,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:969,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:970,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:971,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:972,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:987,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:989,1
    - Dst: S2Polygon::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:990,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:991,1
    - Dst: InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:992,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:993,1
    - Dst: TestDestructiveUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:994,1
    - Dst: InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:995,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:996,1
    - Dst: InitToSymmetricDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:997,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 959
    functionDepth: 4
    functionLinenumber: 959
    functionLinenumberEnd: 1000
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - StrCat
    - InitToUnion
    - InitToDifference
    - TestDestructiveUnion
    - S1Angle::Radians
    - SCOPED_TRACE
    - S2Polygon::S2Polygon
    - S2Polygon::InitToIntersection
    - CheckEqual
    - InitToSymmetricDifference
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, Operations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1005,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1006,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1007,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1008,1
    - Dst: S2Polygon::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1009,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1009,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1011
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - IntLatLngSnapFunction
    - S2Polygon::S2Polygon
    - S2Polygon::InitToIntersection
    - CheckEqual
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, IntersectionSnapFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1014,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1015,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1016,1
    - Dst: S2Polygon::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1017,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1018,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1018,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1019
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - s2textformat::ToString
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Polygon::InitToIntersection
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, IntersectionPreservesLoopOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1025,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1026,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1030,1
    - Dst: unique_ptr::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1031,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1032,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1032,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1035,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1036,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1037,1
    - Dst: unique_ptr::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1037,1
    - Dst: s2builderutil::IdentitySnapFunction::IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1038,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1038,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1039,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1040
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - EXPECT_TRUE
    - unique_ptr::InitToIntersection
    - unique_ptr::is_empty
    - s2builderutil::IdentitySnapFunction::IdentitySnapFunction
    - S1Angle::Zero
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, EmptyIntersectionClearsResult)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1046,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1046,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1047,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1047,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1048,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1048,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1049,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1049,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1050,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1050,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1051,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1051,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1052,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1052,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1056,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1056,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1062,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1063,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1063,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1065,1
    - Dst: UnorderedElementsAreArray
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1066
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - S2Polygon::num_loops
    - s2textformat::MakeLoopOrDie
    - vector::emplace_back
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, LoopPointers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1072,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1072,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1073,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1074,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1074,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - loop_vertices
    argTypes:
    - absl::Span<const vector<S2Point>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1078
    functionName: MakeLoops
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - vector::back
    - vector::emplace_back
    - vector::size
    - EXPECT_FALSE
    - S2Error::S2Error
    linkageType: ''
    returnType: vector<unique_ptr<S2Loop>>
    signature: "vector<unique_ptr<S2Loop>> MakeLoops(\n    absl::Span<const vector<S2Point>>
      loop_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1104,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1105,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1107,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1107,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1108,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1131,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1132,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1134,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1134,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1135,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1174,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1175,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1177,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1177,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1178,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1180
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1213,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1214,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1216,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1216,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1217,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1182
    functionDepth: 2
    functionLinenumber: 1182
    functionLinenumberEnd: 1219
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1248,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1249,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1251,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1251,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1252,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1254
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1283,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1284,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1286,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1286,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1287,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1256
    functionDepth: 2
    functionLinenumber: 1256
    functionLinenumberEnd: 1289
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1365,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1366,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1368,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1368,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1369,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1371
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1400,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1400,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1401,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1401,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1402,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1403,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1405,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1373
    functionDepth: 2
    functionLinenumber: 1373
    functionLinenumberEnd: 1406
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_VLOG
    - s2textformat::ToString
    - S2Polygon::InitToUnion
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1427,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1428,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1430,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1430,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1431,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1408
    functionDepth: 2
    functionLinenumber: 1408
    functionLinenumberEnd: 1433
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug9)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1549,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1549,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1550,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1550,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1551,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1552,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1554,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1435
    functionDepth: 2
    functionLinenumber: 1435
    functionLinenumberEnd: 1555
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_VLOG
    - s2textformat::ToString
    - S2Polygon::InitToUnion
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1621,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1622,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1624,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1624,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1625,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1557
    functionDepth: 2
    functionLinenumber: 1557
    functionLinenumberEnd: 1627
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug11)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1648,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1649,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1651,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1651,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1652,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1629
    functionDepth: 2
    functionLinenumber: 1629
    functionLinenumberEnd: 1654
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Bug12)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1659,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1659,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1662,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1663,1
    - Dst: IntersectWithPolyline
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1667,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1668,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1668,1
    - Dst: SubtractFromPolyline
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1669,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1670,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1670,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1671,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1671,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1672,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1672,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1673,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1673,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1674,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1674,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1675,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1675,1
    - Dst: IntersectWithPolyline
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1677,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1678,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1678,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1679,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1679,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1680,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1680,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1681,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1681,1
    - Dst: SubtractFromPolyline
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1682,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1683,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1683,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1684,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1684,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1685,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - ' p'
    - start_vertex
    - direction
    argTypes:
    - S2Polygon
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1687
    functionName: PolylineIntersectionSharedEdgeTest
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Intersects
    - num_vertices
    - StrCat
    - EXPECT_TRUE
    - IntersectWithPolyline
    - SubtractFromPolyline
    - SCOPED_TRACE
    - vertex
    - EXPECT_EQ
    - Contains
    - vector::size
    - EXPECT_FALSE
    - loop
    linkageType: ''
    returnType: void
    signature: "void PolylineIntersectionSharedEdgeTest(const S2Polygon& p,\n                                               int
      start_vertex,\n                                               int direction)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PolylineIntersectionSharedEdgeTest
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1694,1
    - Dst: PolylineIntersectionSharedEdgeTest
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1695,1
    - Dst: PolylineIntersectionSharedEdgeTest
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1696,1
    - Dst: PolylineIntersectionSharedEdgeTest
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1697,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1701,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1710,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1710,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1711,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1712,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1713,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1718,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1718,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1719,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1719,1
    - Dst: S2Polygon*::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1720,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1721,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1722,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1723,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1724,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1724,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1727,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1728,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1728,1
    - Dst: S2Polygon*::IntersectWithPolyline
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1733,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1734,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1734,1
    - Dst: std::make_move_iterator
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1735,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1735,1
    - Dst: std::make_move_iterator
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1736,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1736,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1740,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1741,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1742,1
    - Dst: make_unique<s2builderutil::S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1742,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1744,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1747,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1748,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1748,1
    - Dst: CheckEqual
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1749,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1692
    functionDepth: 3
    functionLinenumber: 1692
    functionLinenumberEnd: 1751
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::AddPolyline
    - vector::end
    - vector::insert
    - S2Error::S2Error
    - S2Polygon*::loop
    - S1Angle::Radians
    - S2Polygon::S2Polygon
    - vector::begin
    - CheckEqual
    - S2Builder::StartLayer
    - vector::push_back
    - PolylineIntersectionSharedEdgeTest
    - make_unique<s2builderutil::S2PolygonLayer>
    - vector::clear
    - MakePolygon
    - StrCat
    - S2ShapeNestingQuery::Options::Options
    - unique_ptr::get
    - S2Polygon*::IntersectWithPolyline
    - SCOPED_TRACE
    - ASSERT_TRUE
    - S2Builder::Build
    - std::make_move_iterator
    - S2Polygon*::num_loops
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, PolylineIntersection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1769,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1773,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1777,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1778,1
    - Dst: make_unique<S2Polyline::Shape>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1778,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1778,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1779,1
    - Dst: unique_ptr::index
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1781,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1782,1
    - Dst: unique_ptr::IntersectWithPolyline
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1788,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1789,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1789,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1795,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1767
    functionDepth: 1
    functionLinenumber: 1767
    functionLinenumberEnd: 1796
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2BooleanOperation::IsEmpty
    - MakePolygon
    - ASSERT_EQ
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2Polyline::Shape>
    - unique_ptr::get
    - vector::size
    - unique_ptr::Intersects
    - s2textformat::MakePolylineOrDie
    - unique_ptr::index
    - MutableS2ShapeIndex::Add
    - unique_ptr::IntersectWithPolyline
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, DegeneratePointIntersection)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1817,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1818,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1818,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1820,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1821,1
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' polygon'
    - cells
    argTypes:
    - S2Polygon
    - absl::Span<const S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1824
    functionName: CheckCoveringIsConservative
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Contains
    - Intersects
    - EXPECT_TRUE
    - MayIntersect
    linkageType: ''
    returnType: void
    signature: "void CheckCoveringIsConservative(const S2Polygon& polygon,\n                                        absl::Span<const
      S2CellId> cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<int>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1829,1
    - Dst: vector<unique_ptr<S2Polygon>>*::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1829,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1830,1
    - Dst: vector<unique_ptr<S2Polygon>>*::erase
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1831,1
    - Dst: vector<unique_ptr<S2Polygon>>*::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitgen
    - pieces
    argTypes:
    - absl::BitGenRef
    - vector<unique_ptr<S2Polygon>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1827
    functionDepth: 0
    functionLinenumber: 1827
    functionLinenumberEnd: 1833
    functionName: ChoosePiece
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - vector<unique_ptr<S2Polygon>>*::erase
    - absl::Uniform<int>
    - vector<unique_ptr<S2Polygon>>*::begin
    - vector<unique_ptr<S2Polygon>>*::size
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: "unique_ptr<S2Polygon> ChoosePiece(\n    absl::BitGenRef bitgen, vector<unique_ptr<S2Polygon>>*
      pieces)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1837,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1838,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1839,1
    - Dst: make_unique<s2builderutil::S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1839,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1840,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1842,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1843,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1843,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1846,1
    - Dst: GetCapBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1849,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1850,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1853,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1854,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1855,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1856,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1859,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1860,1
    - Dst: S2CellUnion::Init
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1861,1
    - Dst: S2Testing::CheckCovering
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1862,1
    - Dst: CheckCoveringIsConservative
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1863,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1864,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1864,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1870,1
    - Dst: auto::InitToIntersection
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1871,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1872,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1873,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1874,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1875,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1875,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1886,1
    - Dst: ChoosePiece
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1887,1
    - Dst: ChoosePiece
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1888,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1889,1
    - Dst: auto::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1890,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1891,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1891,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1892,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1893,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1894,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1894,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1897,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1900,1
    - Dst: S2Polygon::BoundaryNear
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1900,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1900,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1901,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1902,1
    - Dst: S2Polygon::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1905,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1906,1
    - Dst: S2Polygon::InitToSymmetricDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1907,1
    - Dst: s2builderutil::IdentitySnapFunction::IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1909,1
    - Dst: ADD_FAILURE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1910,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - bitgen
    - ' polygon'
    argTypes:
    - absl::BitGenRef
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1835
    functionDepth: 7
    functionLinenumber: 1835
    functionLinenumberEnd: 1913
    functionName: SplitAndAssemble
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - auto::InitToIntersection
    - ChoosePiece
    - S2CellUnion::Init
    - auto::InitToUnion
    - S2RegionCoverer::mutable_options
    - s2builderutil::IdentitySnapFunction::IdentitySnapFunction
    - vector::size
    - S2Error::S2Error
    - S2Polygon::InitToSymmetricDifference
    - GetLevelForMaxValue
    - S1Angle::Radians
    - GetCapBound
    - make_unique<S2Polygon>
    - S2Polygon::S2Polygon
    - S2Builder::StartLayer
    - vector::push_back
    - EXPECT_TRUE
    - std::move
    - make_unique<s2builderutil::S2PolygonLayer>
    - s2textformat::ToString
    - S2Polygon::BoundaryNear
    - S2CellUnion::S2CellUnion
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::S2RegionCoverer
    - S2Testing::CheckCovering
    - CheckCoveringIsConservative
    - vector::pop_back
    - S2ShapeNestingQuery::Options::Options
    - ADD_FAILURE
    - S2Polygon::ApproxEquals
    - ABSL_VLOG
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - s2random::LogUniform
    linkageType: ''
    returnType: void
    signature: void SplitAndAssemble(absl::BitGenRef bitgen, const S2Polygon& polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1920,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1920,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1921,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1922,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1923,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1924,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1925,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1926,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1927,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1928,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1929,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1930,1
    - Dst: SplitAndAssemble
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1915
    functionDepth: 8
    functionLinenumber: 1915
    functionLinenumberEnd: 1932
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Testing::MakeTaggedSeedSeq
    - SplitAndAssemble
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, Splitting)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1939,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1940,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1942,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1942,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1946,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1946,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1949,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1949,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1950,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1950,1
    - Dst: S2CellId::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1952,1
    - Dst: absl::Uniform<int>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1955,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1955,1
    - Dst: S2CellId::GetEdgeNeighbors
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1958,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1961,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1965,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1968,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1973,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1974,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1975,1
    - Dst: S2CellUnion::Init
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1976,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1977,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1977,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1978,1
    - Dst: S2Polygon::InitToCellUnionBorder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1979,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1980,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1980,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1984,1
    - Dst: S2Polygon::MayIntersect
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1984,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1984,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1985,1
    - Dst: S2Polygon::MayIntersect
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1985,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1985,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1934
    functionDepth: 4
    functionLinenumber: 1934
    functionLinenumberEnd: 1987
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Init
    - S2CellUnion::num_cells
    - s2random::CellId
    - vector::size
    - S2Polygon::MayIntersect
    - min
    - S2Polygon::num_loops
    - S2CellId::AppendAllNeighbors
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Cell
    - vector::push_back
    - EXPECT_TRUE
    - S2CellId::level
    - S2CellUnion::S2CellUnion
    - absl::Uniform<int>
    - S2Testing::MakeTaggedSeedSeq
    - S2Polygon::InitToCellUnionBorder
    - StrCat
    - S2CellId::GetEdgeNeighbors
    - ABSL_VLOG
    - SCOPED_TRACE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, InitToCellUnionBorder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1991,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1992,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1993,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1996,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1997,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:1998,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2002,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2003,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2004,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1989
    functionDepth: 2
    functionLinenumber: 1989
    functionLinenumberEnd: 2005
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2Polygon::is_empty
    - S2Polygon::S2Polygon
    - S2Polygon::InitToUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, UnionWithAmbgiuousCrossings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2008,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2009,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 2007
    functionDepth: 5
    functionLinenumber: 2007
    functionLinenumberEnd: 2011
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, InitToSnappedSupportsEmptyPolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2016,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2021,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2022,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2025,1
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2025,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2025,1
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2026,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2026,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2027,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2027,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2027,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2028,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2028,1
    - Dst: InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2031,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2032,1
    - Dst: S2Polygon::Equals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2013
    functionDepth: 5
    functionLinenumber: 2013
    functionLinenumberEnd: 2033
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - S2Polygon::Equals
    - EXPECT_TRUE
    - unique_ptr::loop
    - S2LatLng::Longitude
    - InitToSnapped
    - S2LatLng::Latitude
    - EXPECT_EQ
    - s2textformat::MakePolygonOrDie
    - S2Polygon::S2Polygon
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, InitToSnappedDoesNotRotateVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2037,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2039,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2040,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2041,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2041,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2042,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2042,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2042,1
    - Dst: S2Builder::SnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2043,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2044,1
    - Dst: S2Polygon::ApproxContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2035
    functionDepth: 5
    functionLinenumber: 2035
    functionLinenumberEnd: 2046
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::ApproxContains
    - S2Polygon::InitToSnapped
    - EXPECT_TRUE
    - S2Builder::SnapFunction::kMaxSnapRadius
    - S1Angle::Radians
    - min
    - GetValue
    - S2Polygon::IsValid
    - s2textformat::MakePolygonOrDie
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, InitToSnappedWithSnapLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2049,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2053,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2053,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2054,1
    - Dst: unique_ptr::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2054,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2055,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2056,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2057,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2058,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2058,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2059,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2060,1
    - Dst: S2Polygon::FindValidationError
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2048
    functionDepth: 5
    functionLinenumber: 2048
    functionLinenumberEnd: 2061
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - unique_ptr::IsValid
    - EXPECT_TRUE
    - s2textformat::ToString
    - S2Polygon::FindValidationError
    - S2Polygon::S2Polygon
    - ABSL_LOG
    - s2textformat::MakePolygonOrDie
    - EXPECT_FALSE
    - S2Polygon::set_s2debug_override
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, InitToSnappedIsValid_A)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2064,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2078,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2078,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2079,1
    - Dst: unique_ptr::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2079,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2080,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2081,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2082,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2083,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2083,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2084,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2085,1
    - Dst: S2Polygon::FindValidationError
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2063
    functionDepth: 5
    functionLinenumber: 2063
    functionLinenumberEnd: 2086
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - unique_ptr::IsValid
    - EXPECT_TRUE
    - s2textformat::ToString
    - S2Polygon::FindValidationError
    - S2Polygon::S2Polygon
    - ABSL_LOG
    - s2textformat::MakePolygonOrDie
    - EXPECT_FALSE
    - S2Polygon::set_s2debug_override
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, InitToSnappedIsValid_B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2089,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2097,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2097,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2098,1
    - Dst: unique_ptr::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2098,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2099,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2100,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2101,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2102,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2102,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2103,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2104,1
    - Dst: S2Polygon::FindValidationError
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2088
    functionDepth: 5
    functionLinenumber: 2088
    functionLinenumberEnd: 2105
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - unique_ptr::IsValid
    - EXPECT_TRUE
    - s2textformat::ToString
    - S2Polygon::FindValidationError
    - S2Polygon::S2Polygon
    - ABSL_LOG
    - s2textformat::MakePolygonOrDie
    - EXPECT_FALSE
    - S2Polygon::set_s2debug_override
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, InitToSnappedIsValid_C)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2108,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2112,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2112,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2113,1
    - Dst: unique_ptr::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2113,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2114,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2115,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2116,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2117,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2117,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2118,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2119,1
    - Dst: S2Polygon::FindValidationError
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2107
    functionDepth: 5
    functionLinenumber: 2107
    functionLinenumberEnd: 2120
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - unique_ptr::IsValid
    - EXPECT_TRUE
    - s2textformat::ToString
    - S2Polygon::FindValidationError
    - S2Polygon::S2Polygon
    - ABSL_LOG
    - s2textformat::MakePolygonOrDie
    - EXPECT_FALSE
    - S2Polygon::set_s2debug_override
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, InitToSnappedIsValid_D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2124,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2124,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2130,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2130,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2137,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2137,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2140,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2141,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2143,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2144,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2146,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2146,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2147,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2148,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2122
    functionDepth: 1
    functionLinenumber: 2122
    functionLinenumberEnd: 2149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::set_s2debug_override
    - make_unique<S2Loop>
    - vector::emplace_back
    - S2Polygon::S2Polygon
    - Encoder::length
    - S2Polygon::Encode
    - S2Polygon::Decode
    - Encoder::base
    - S2Polygon::IsValid
    - EXPECT_FALSE
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, DuplicateEdgesAreInvalid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2152,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2153,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2153,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2154,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2154,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2157,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2157,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2158,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2151
    functionDepth: 1
    functionLinenumber: 2151
    functionLinenumberEnd: 2159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Polygon::is_empty
    - S2Polygon::IsValid
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, DefaultPolygonAndEmptyLoopBothValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2165,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2167,1
    - Dst: std::make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2167,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2167,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2169,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2170,1
    - Dst: S2Polygon::InitNested
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2171,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2171,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2173,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2173,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2174,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2174,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2175,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2161
    functionDepth: 3
    functionLinenumber: 2161
    functionLinenumberEnd: 2176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::move
    - std::make_unique<S2Loop>
    - S2Polygon::num_loops
    - S2LatLng::FromDegrees
    - S2Polygon::IsValid
    - std::vector::emplace_back
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Polygon::is_empty
    - S2Polygon::set_s2debug_override
    - S2Polygon::InitNested
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, ShortNonEmptyChainRemoved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2180,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2181,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2182,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2182,1
    - Dst: unique_ptr::GetRectBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2183,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2186,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2186,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2187,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2187,1
    - Dst: unique_ptr::InitNested
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2188,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2188,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2189,1
    - Dst: unique_ptr::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2189,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2190,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2190,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2191,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2191,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2192,1
    - Dst: unique_ptr::GetRectBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2193
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - unique_ptr::num_loops
    - unique_ptr::IsValid
    - unique_ptr::num_vertices
    - EXPECT_TRUE
    - std::move
    - s2textformat::MakeLoopOrDie
    - EXPECT_EQ
    - unique_ptr::InitNested
    - s2textformat::MakePolygonOrDie
    - unique_ptr::GetRectBound
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, MultipleInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2197,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2197,1
    - Dst: S2Polygon::Init
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2198,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2198,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2198,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2199,1
    - Dst: S2Polygon::is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2199,1
    - Dst: S2Polygon::Init
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2200,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2200,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2201,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2195
    functionDepth: 3
    functionLinenumber: 2195
    functionLinenumberEnd: 2202
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kFull
    - make_unique<S2Loop>
    - EXPECT_TRUE
    - S2Polygon::num_vertices
    - S2Polygon::is_empty
    - S2Polygon::is_full
    - s2textformat::MakeLoopOrDie
    - EXPECT_EQ
    - S2Polygon::Init
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, InitSingleLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2205,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2206,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2207,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2207,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2208,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2209,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2209,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2210,1
    - Dst: BoundaryEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2210,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2211,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2211,1
    - Dst: S2Polygon::GetRectBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2212
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetRectBound
    - Encoder::length
    - S2Polygon::Decode
    - Encoder::base
    - BoundaryEquals
    - Encode
    - ASSERT_TRUE
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Polygon::GetRectBound
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, TestSimpleEncodeDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2215,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2216,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2214
    functionDepth: 2
    functionLinenumber: 2214
    functionLinenumberEnd: 2217
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestEncodeDecode
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, TestEncodeDecodeDefaultPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2220,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2221,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2223,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2224,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2226,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2228,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2228,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2230,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2230,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2231,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2231,1
    - Dst: S2Polygon::GetRectBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2219
    functionDepth: 5
    functionLinenumber: 2219
    functionLinenumberEnd: 2232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - S2Polygon::GetRectBound
    - EXPECT_TRUE
    - Encoder::length
    - S2Polygon::Encode
    - S2LatLngRect::Empty
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Polygon::is_empty
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, CompressedEmptyPolygonRequires3Bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2236,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2238,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2239,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2241,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2242,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2252,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2234
    functionDepth: 5
    functionLinenumber: 2234
    functionLinenumberEnd: 2253
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - Encoder::length
    - S2Polygon::Encode
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - s2textformat::MakePolygonOrDie
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, CompressedEncodedPolygonRequires69Bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2257,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2258,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2259,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2259,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2260,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2260,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2261,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2261,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2263,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2264,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2266,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2266,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2268,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2269,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2269,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2270,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2270,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2271,1
    - Dst: S2Polygon::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2271,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2272,1
    - Dst: S2Polygon::GetRectBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2272,1
    - Dst: S2Polygon::GetRectBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2272,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2273,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2273,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2273,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2274,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2274,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2275,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2275,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2276,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2255
    functionDepth: 5
    functionLinenumber: 2255
    functionLinenumberEnd: 2277
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2Polygon::InitToSnapped
    - EXPECT_TRUE
    - S2Polygon::num_vertices
    - S2Polygon::BoundaryEquals
    - S2Polygon::num_loops
    - Encoder::length
    - S2Polygon::Encode
    - S2Polygon::Decode
    - Encoder::base
    - ASSERT_TRUE
    - S2Polygon::IsValid
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Polygon::GetRectBound
    - Encoder::Encoder
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, CompressedEncodedPolygonDecodesApproxEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2285,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2285,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2288,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2289,1
    - Dst: S2Polygon::InitToUnion
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2290,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2291,1
    - Dst: S2Polygon::Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2291,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2292,1
    - Dst: S2Polygon::Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2284
    functionDepth: 2
    functionLinenumber: 2284
    functionLinenumberEnd: 2293
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S1Angle::E6
    - S2Polygon::Contains
    - S2Polygon::InitToUnion
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, TestS2CellConstructorAndContains)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2297,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2298,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2301,1
    - Dst: unique_ptr::Project
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2302,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2303,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2303,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2306,1
    - Dst: unique_ptr::Project
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2307,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2308,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2309,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2309,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2312,1
    - Dst: unique_ptr::Project
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2313,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2314,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2314,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2314,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2315,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2317,1
    - Dst: unique_ptr::Project
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2318,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2319,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2320,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2320,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2325,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2325,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2326,1
    - Dst: S2Polygon::Project
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2326,1
    - Dst: S2Polygon::Init
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2327,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2327,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2327,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2328,1
    - Dst: S2Polygon::is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2328,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2329,1
    - Dst: S2Polygon::Project
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2295
    functionDepth: 3
    functionLinenumber: 2295
    functionLinenumberEnd: 2330
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kFull
    - make_unique<S2Loop>
    - EXPECT_TRUE
    - S1Angle::Radians
    - S2::ApproxEquals
    - S2Point::S2Point
    - S2Polygon::is_full
    - s2textformat::MakePointOrDie
    - S2Polygon::Init
    - S2Polygon::is_empty
    - S2Polygon::Project
    - unique_ptr::Project
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonTest, Project)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2338,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2340,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2341,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2341,1
    - Dst: ProjectToBoundary
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2341,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2343,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2343,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2344,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2344,1
    - Dst: GetDistanceToBoundary
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2344,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2347,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2347,1
    - Dst: GetDistanceToBoundary
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2348,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2349,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2351,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2352,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2352,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2352,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2353,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2353,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2355,1
    - Dst: GetDistanceToBoundary
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2355,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2355,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2356,1
    - Dst: ProjectToBoundary
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2356,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ' polygon'
    - ' x'
    - boundary_x
    argTypes:
    - S2Polygon
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2335
    functionDepth: 1
    functionLinenumber: 2335
    functionLinenumberEnd: 2358
    functionName: TestDistanceMethods
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Contains
    - is_full
    - S1Angle::Zero
    - EXPECT_NEAR
    - S2Point
    - S1Angle::Radians
    - ProjectToBoundary
    - S1Angle
    - EXPECT_LE
    - GetDistance
    - EXPECT_EQ
    - S1Angle::Infinity
    - S1Angle::degrees
    - is_empty
    - GetDistanceToBoundary
    - Project
    linkageType: ''
    returnType: void
    signature: "void TestDistanceMethods(const S2Polygon& polygon, const S2Point&
      x,\n                                S2Point boundary_x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2362,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2362,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2362,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2363,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2363,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2363,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2370,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2374,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2375,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2376,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2377,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2378,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2380,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2380,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2380,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2382,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2383,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2383,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2383,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2384,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2385,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2389,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2389,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2390,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2392,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2392,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2393,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2395,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2395,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2396,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2398,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2398,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2399,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2401,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2401,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2360
    functionDepth: 1
    functionLinenumber: 2360
    functionLinenumberEnd: 2403
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_loops
    - S2::Interpolate
    - S2Loop*::num_vertices
    - S2Point
    - TestDistanceMethods
    - unique_ptr::loop
    - S2LatLng::FromDegrees
    - s2random::LogUniform
    - s2textformat::MakePolygonOrDie
    - S2Loop*::vertex
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, GetDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2406,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2406,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2407,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2407,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2408,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2408,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2409,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2409,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2413,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2414,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2414,1
    - Dst: unique_ptr::GetArea
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2415,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2419,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2420,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2420,1
    - Dst: unique_ptr::GetArea
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2405
    functionDepth: 0
    functionLinenumber: 2405
    functionLinenumberEnd: 2422
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - GetArea
    - unique_ptr::loop
    - EXPECT_DOUBLE_EQ
    - unique_ptr::GetArea
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, Area)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2425,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2426,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2424
    functionDepth: 1
    functionLinenumber: 2424
    functionLinenumberEnd: 2427
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Polygon::IsValid
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, UninitializedIsValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2431
    functionDepth: 0
    functionLinenumber: 2431
    functionLinenumberEnd: 2434
    functionName: IsValidTest::IsValidTest
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsValidTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2436
    functionDepth: 0
    functionLinenumber: 2436
    functionLinenumberEnd: 2436
    functionName: ~IsValidTest() override
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: void ~IsValidTest() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2439,1
    - Dst: make_unique<vector<S2Point>>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2439,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2438
    functionDepth: 0
    functionLinenumber: 2438
    functionLinenumberEnd: 2441
    functionName: IsValidTest::AddLoop
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - back
    - push_back
    - make_unique<vector<S2Point>>
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> * AddLoop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2451,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2452,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2453,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2455,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2455,1
    - Dst: IsValidTest::AddLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2456,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bitgen
    - num_loops
    - min_vertices
    argTypes:
    - absl::BitGenRef
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2458
    functionName: IsValidTest::AddConcentricLoops
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - ABSL_DCHECK_LE
    - S1Angle::Degrees
    - pow
    - IsValidTest::AddLoop
    - s2random::LogUniform
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: "void AddConcentricLoops(absl::BitGenRef bitgen, int num_loops,\n                          int
      min_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2460
    functionDepth: 0
    functionLinenumber: 2460
    functionLinenumberEnd: 2462
    functionName: IsValidTest::Reset
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2468,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2468,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2470,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2471,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2472,1
    - Dst: S2Polygon::InitOriented
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2474,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2474,1
    - Dst: S2Polygon::InitNested
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2476,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2465
    functionDepth: 4
    functionLinenumber: 2465
    functionLinenumberEnd: 2481
    functionName: IsValidTest::MakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2Loop>
    - std::move
    - absl::c_shuffle
    - S2Polygon::InitOriented
    - S2Polygon::S2Polygon
    - S2Polygon::set_s2debug_override
    - S2Polygon::InitNested
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon MakePolygon(absl::BitGenRef bitgen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2485,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2486,1
    - Dst: IsValidTest::MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2486,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2487,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2488,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2488,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2488,1
    - Dst: IsValidTest::Reset
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2483
    functionDepth: 1
    functionLinenumber: 2483
    functionLinenumberEnd: 2491
    functionName: IsValidTest::CheckInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - IsValidTest::Reset
    - EXPECT_THAT
    - IsValidTest::MakePolygon
    - S2Error::code
    - empty
    - Contains
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void CheckInvalid(absl::BitGenRef bitgen,\n                    absl::flat_hash_set<S2Error::Code>
      codes = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsValidTest::CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - code
    argTypes:
    - absl::BitGenRef
    - S2Error::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2493
    functionDepth: 1
    functionLinenumber: 2493
    functionLinenumberEnd: 2495
    functionName: IsValidTest::CheckInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 1
    functionsReached:
    - IsValidTest::CheckInvalid
    linkageType: ''
    returnType: void
    signature: void CheckInvalid(absl::BitGenRef bitgen, S2Error::Code code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsValidTest::MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2498,1
    - Dst: IsValidTest::CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2497
    functionDepth: 2
    functionLinenumber: 2497
    functionLinenumberEnd: 2502
    functionName: IsValidTest::CheckInvalidOrEmpty
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - IsValidTest::MakePolygon
    - IsValidTest::CheckInvalid
    linkageType: ''
    returnType: void
    signature: void CheckInvalidOrEmpty(absl::BitGenRef bitgen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2520,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2520,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2522,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2522,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2524,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2524,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2524,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2525,1
    - Dst: vector*::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2525,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2526,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2527,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2529,1
    - Dst: numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2531,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2531,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2512
    functionDepth: 1
    functionLinenumber: 2512
    functionLinenumberEnd: 2537
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - AddConcentricLoops
    - get
    - numeric_limits<double>::quiet_NaN
    - size
    - S2Point
    - absl::Uniform<size_t>
    - vector*::size
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - CheckInvalid
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, UnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2540,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2541,1
    - Dst: AddLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2543,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2544,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2544,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2545,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2545,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2539
    functionDepth: 1
    functionLinenumber: 2539
    functionLinenumberEnd: 2548
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - AddLoop
    - absl::LogInfoStreamer
    - CheckInvalid
    - S2Testing::MakeTaggedSeedSeq
    - vector*::push_back
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, VertexCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2551,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2552,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2554,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2555,1
    - Dst: vector*::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2556,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2557,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2558,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2550
    functionDepth: 1
    functionLinenumber: 2550
    functionLinenumberEnd: 2567
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - AddConcentricLoops
    - get
    - vector*::size
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - CheckInvalid
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, DuplicateVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2570,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2571,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2576,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2576,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2578,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2578,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2578,1
    - Dst: vector*::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2579,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2580,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2581,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2569
    functionDepth: 1
    functionLinenumber: 2569
    functionLinenumberEnd: 2586
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - AddConcentricLoops
    - get
    - size
    - absl::Uniform<size_t>
    - vector*::size
    - swap
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - CheckInvalid
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, SelfIntersection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2589,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2592,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2592,1
    - Dst: Reset
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2594,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2595,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2596,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2599,1
    - Dst: AddLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2601,1
    - Dst: absl::Span::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2601,1
    - Dst: absl::Span::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2601,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2604,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2605,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2605,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2606,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2588
    functionDepth: 1
    functionLinenumber: 2588
    functionLinenumberEnd: 2608
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - AddConcentricLoops
    - AddLoop
    - EXPECT_TRUE
    - S2Polygon::num_loops
    - EXPECT_EQ
    - absl::Span::begin
    - s2random::LogUniform
    - S2Loop::kEmpty
    - S2Polygon::IsValid
    - absl::Span::end
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - Reset
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2612,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2612,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2615,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2615,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2616,1
    - Dst: AddLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2617,1
    - Dst: absl::Span::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2617,1
    - Dst: absl::Span::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2617,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2610
    functionDepth: 1
    functionLinenumber: 2610
    functionLinenumberEnd: 2625
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kFull
    - AddConcentricLoops
    - AddLoop
    - absl::Span::begin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - CheckInvalid
    - absl::Span::end
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, FullLoop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2628,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2629,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2631,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2635,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2636,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2637,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2638,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2627
    functionDepth: 1
    functionLinenumber: 2627
    functionLinenumberEnd: 2648
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - AddConcentricLoops
    - absl::Bernoulli
    - size
    - swap
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - CheckInvalid
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, LoopsCrossing)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2651,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2652,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2654,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2655,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2656,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2658,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2665,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2666,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2667,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2669,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2671,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2650
    functionDepth: 1
    functionLinenumber: 2650
    functionLinenumberEnd: 2678
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - AddConcentricLoops
    - absl::Bernoulli
    - size
    - clear
    - push_back
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - resize
    - S2Testing::MakeTaggedSeedSeq
    - CheckInvalid
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, DuplicateEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2681,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2682,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2684,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2684,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2680
    functionDepth: 1
    functionLinenumber: 2680
    functionLinenumberEnd: 2688
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - AddConcentricLoops
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - CheckInvalid
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, InconsistentOrientations)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<int>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2691,1
    - Dst: S2Polygon*::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2691,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2692,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2693,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2695,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bitgen
    - polygon
    argTypes:
    - absl::BitGenRef
    - S2Polygon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2697
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2697
    functionName: SetInvalidLoopDepth
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - absl::Uniform<int>
    - S2Polygon*::loop
    - S2Polygon*::num_loops
    - absl::Bernoulli
    linkageType: ''
    returnType: void
    signature: void SetInvalidLoopDepth(absl::BitGenRef bitgen, S2Polygon* polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2701,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2702,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2704,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2704,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2699
    functionDepth: 1
    functionLinenumber: 2699
    functionLinenumberEnd: 2707
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - AddConcentricLoops
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - CheckInvalid
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, LoopDepthNegative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<int>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2710,1
    - Dst: S2Polygon*::num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2710,1
    - Dst: S2Polygon*::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - polygon
    argTypes:
    - absl::BitGenRef
    - S2Polygon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2709
    functionDepth: 0
    functionLinenumber: 2709
    functionLinenumberEnd: 2712
    functionName: SetInvalidLoopNesting
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - absl::Uniform<int>
    - S2Polygon*::num_loops
    - S2Polygon*::loop
    linkageType: ''
    returnType: void
    signature: void SetInvalidLoopNesting(absl::BitGenRef bitgen, S2Polygon* polygon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2716,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2717,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2719,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2719,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2723,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2725,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2725,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2725,1
    - Dst: CheckInvalid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2728,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2731
      start: 2714
    functionDepth: 1
    functionLinenumber: 2714
    functionLinenumberEnd: 2731
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - AddConcentricLoops
    - std::reverse
    - absl::Bernoulli
    - end
    - begin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - CheckInvalid
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, LoopNestingInvalid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2741,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2741,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2743,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2745,1
    - Dst: AddLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2746,1
    - Dst: vector*::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2747,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2753,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2755,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2755,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2756,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2758,1
    - Dst: numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2758,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2758,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2759,1
    - Dst: vector*::empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2759,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2761,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2762,1
    - Dst: vector*::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2762,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2763,1
    - Dst: vector*::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2764,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2767,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2767,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2767,1
    - Dst: vector*::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2768,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2770,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2772,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2773,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2775,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2776,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2780,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2781,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2781,1
    - Dst: CheckInvalidOrEmpty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2785,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2787
      start: 2733
    functionDepth: 1
    functionLinenumber: 2733
    functionLinenumberEnd: 2787
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - absl::Bernoulli
    - AddLoop
    - numeric_limits<double>::quiet_NaN
    - S2Point
    - size
    - absl::Uniform<size_t>
    - get
    - vector*::size
    - swap
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - CheckInvalidOrEmpty
    - vector*::empty
    - vector*::push_back
    linkageType: ''
    returnType: void
    signature: void TEST_F(IsValidTest, FuzzTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2792,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2793,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2794,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2795,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2796,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2797,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2797,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2802
    functionName: LoopDiameter
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - S2::GetDistance
    - S1Angle::S1Angle
    - vertex
    - max
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle LoopDiameter(const S2Loop& loop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2815,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2816,1
    - Dst: LoopDiameter
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2817,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2821,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2822,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2822,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - ' poly_a'
    - ' poly_b'
    - min_diameter_in_degrees
    argTypes:
    - S2Polygon
    - S2Polygon
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2810
    functionDepth: 1
    functionLinenumber: 2810
    functionLinenumberEnd: 2833
    functionName: MaximumDistanceInDegrees
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - num_loops
    - S2Loop*::num_vertices
    - GetDistance
    - S2Loop*::vertex
    - LoopDiameter
    - loop
    linkageType: ''
    returnType: double
    signature: "double MaximumDistanceInDegrees(const S2Polygon& poly_a,\n                                const
      S2Polygon& poly_b,\n                                double min_diameter_in_degrees)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2838,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2840,1
    - Dst: InitToSimplified
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2841,1
    - Dst: s2builderutil::IdentitySnapFunction::IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2842,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - poly
    - tolerance_in_degrees
    argTypes:
    - unique_ptr<S2Polygon>
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2837
    functionDepth: 1
    functionLinenumber: 2837
    functionLinenumberEnd: 2844
    functionName: S2PolygonSimplifierTest::SetInput
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S1Angle::Degrees
    - s2builderutil::IdentitySnapFunction::IdentitySnapFunction
    - make_unique<S2Polygon>
    - InitToSimplified
    linkageType: ''
    returnType: void
    signature: void SetInput(unique_ptr<S2Polygon> poly, double tolerance_in_degrees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolygonSimplifierTest::SetInput
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2847,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poly
    - tolerance_in_degrees
    argTypes:
    - string_view
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2846
    functionDepth: 1
    functionLinenumber: 2846
    functionLinenumberEnd: 2848
    functionName: S2PolygonSimplifierTest::SetInput
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 1
    functionsReached:
    - S2PolygonSimplifierTest::SetInput
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void SetInput(string_view poly, double tolerance_in_degrees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetInput
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2855,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2856,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2856,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2858,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2858,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2859,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2854
    functionDepth: 2
    functionLinenumber: 2854
    functionLinenumberEnd: 2860
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - SetInput
    - MaximumDistanceInDegrees
    - EXPECT_EQ
    - num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonSimplifierTest, NoSimplification)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetInput
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2865,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2869,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2869,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2870,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2870,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2871,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2864
    functionDepth: 2
    functionLinenumber: 2864
    functionLinenumberEnd: 2872
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - num_loops
    - SetInput
    - EXPECT_GE
    - EXPECT_EQ
    - MaximumDistanceInDegrees
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonSimplifierTest, SimplifiedLoopSelfIntersects)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetInput
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2875,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2877,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2877,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2878,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2874
    functionDepth: 2
    functionLinenumber: 2874
    functionLinenumberEnd: 2879
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - SetInput
    - MaximumDistanceInDegrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonSimplifierTest, NoSimplificationManyLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetInput
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2882,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2883,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2884
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - SetInput
    - EXPECT_TRUE
    - is_empty
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonSimplifierTest, TinyLoopDisappears)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetInput
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2887,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2889,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2886
    functionDepth: 0
    functionLinenumber: 2886
    functionLinenumberEnd: 2890
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - SetInput
    - EXPECT_EQ
    - num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonSimplifierTest, StraightLinesAreSimplified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetInput
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2901,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2903,1
    - Dst: IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2903,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2904,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2904,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2905,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2905,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2909,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2892
    functionDepth: 2
    functionLinenumber: 2892
    functionLinenumberEnd: 2910
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - num_loops
    - EXPECT_TRUE
    - IsValid
    - SetInput
    - EXPECT_GE
    - EXPECT_EQ
    - MaximumDistanceInDegrees
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonSimplifierTest, EdgeSplitInManyPieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetInput
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2915,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2917,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2918,1
    - Dst: BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2918,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2912
    functionDepth: 1
    functionLinenumber: 2912
    functionLinenumberEnd: 2920
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S1Angle::Radians
    - SetInput
    - BoundaryApproxEquals
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonSimplifierTest, EdgesOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParseLatLngsOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2929,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2931,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2933,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2933,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2934,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2935,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2935,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2939,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2939,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2941,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' cell'
    - strs
    argTypes:
    - S2Cell
    - absl::Span<const string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2942
      start: 2925
    functionDepth: 1
    functionLinenumber: 2925
    functionLinenumberEnd: 2942
    functionName: MakeCellPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Loop::S2Loop
    - std::move
    - face
    - lng
    - make_unique<S2Polygon>
    - s2textformat::ParseLatLngsOrDie
    - vector::emplace_back
    - lat
    - GetBoundUV
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: "unique_ptr<S2Polygon> MakeCellPolygon(const S2Cell& cell,\n                                      absl::Span<const
      string_view> strs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2945,1
    - Dst: MakeCellPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2946,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2948,1
    - Dst: auto::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2948,1
    - Dst: auto::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2948,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2949,1
    - Dst: S2Polygon::InitToSimplified
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2950,1
    - Dst: s2builderutil::IdentitySnapFunction::IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2951,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2952,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2952,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2953,1
    - Dst: S2Polygon::InitToSimplifiedInCell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2954,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2955,1
    - Dst: S2Polygon::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2955,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2956,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2956,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2957,1
    - Dst: S2Polygon::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2944
    functionDepth: 5
    functionLinenumber: 2944
    functionLinenumberEnd: 2958
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Polygon::num_vertices
    - S2Polygon::is_empty
    - S2Polygon::BoundaryEquals
    - s2builderutil::IdentitySnapFunction::IdentitySnapFunction
    - S1Angle
    - EXPECT_EQ
    - S2Polygon::GetSnapLevel
    - S2Polygon::S2Polygon
    - S2Polygon::InitToSimplified
    - auto::loop
    - S2CellId::FromToken
    - S2Polygon::InitToSimplifiedInCell
    - MakeCellPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(InitToSimplifiedInCell, PointsOnCellBoundaryKept)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2961,1
    - Dst: MakeCellPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2963,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2966,1
    - Dst: auto::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2966,1
    - Dst: auto::loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2966,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2967,1
    - Dst: S2Polygon::InitToSimplifiedInCell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2968,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2969,1
    - Dst: S2Polygon::BoundaryNear
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2969,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2969,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2970,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2970,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2971,1
    - Dst: S2Polygon::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2972
      start: 2960
    functionDepth: 4
    functionLinenumber: 2960
    functionLinenumberEnd: 2972
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Polygon::num_vertices
    - S2Polygon::BoundaryNear
    - S1Angle::Radians
    - S2Polygon::GetSnapLevel
    - S1Angle
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - auto::loop
    - S2CellId::FromToken
    - S2Polygon::InitToSimplifiedInCell
    - MakeCellPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(InitToSimplifiedInCell, PointsInsideCellSimplified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2975,1
    - Dst: MakeCellPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2976,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2977,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2977,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2977,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2978,1
    - Dst: S2Polygon::InitToSimplifiedInCell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2979,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2980,1
    - Dst: S2Polygon::BoundaryNear
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2980,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2981
      start: 2974
    functionDepth: 4
    functionLinenumber: 2974
    functionLinenumberEnd: 2981
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Polygon::BoundaryNear
    - S1Angle::Radians
    - S1Angle
    - S2Polygon::S2Polygon
    - S2Cell::GetVertex
    - S2CellId::FromToken
    - S2Polygon::InitToSimplifiedInCell
    - MakeCellPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(InitToSimplifiedInCell, CellCornerKept)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2984,1
    - Dst: MakeCellPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2985,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2986,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2986,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2986,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2987,1
    - Dst: S2Polygon::InitToSimplifiedInCell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2988,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2989,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2983
    functionDepth: 4
    functionLinenumber: 2983
    functionLinenumberEnd: 2990
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S1Angle
    - S2Polygon::S2Polygon
    - S2Cell::GetVertex
    - S2Polygon::is_empty
    - S2CellId::FromToken
    - S2Polygon::InitToSimplifiedInCell
    - MakeCellPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(InitToSimplifiedInCell, NarrowStripRemoved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2993,1
    - Dst: MakeCellPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2994,1
    - Dst: MakeCellPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2996,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2997,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2997,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2997,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2998,1
    - Dst: S2Polygon::InitToSimplifiedInCell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:2999,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3000,1
    - Dst: S2Polygon::BoundaryNear
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3000,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2992
    functionDepth: 4
    functionLinenumber: 2992
    functionLinenumberEnd: 3001
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Polygon::BoundaryNear
    - S1Angle::Radians
    - S1Angle
    - S2Polygon::S2Polygon
    - S2Cell::GetVertex
    - S2CellId::FromToken
    - S2Polygon::InitToSimplifiedInCell
    - MakeCellPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(InitToSimplifiedInCell, NarrowGapRemoved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3004,1
    - Dst: MakeCellPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3005,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3007,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3007,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3007,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3008,1
    - Dst: S2Polygon::InitToSimplifiedInCell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3009,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3010,1
    - Dst: S2Polygon::BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3010,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3011
      start: 3003
    functionDepth: 4
    functionLinenumber: 3003
    functionLinenumberEnd: 3011
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::BoundaryApproxEquals
    - EXPECT_TRUE
    - S1Angle::Radians
    - S1Angle
    - S2Polygon::S2Polygon
    - S2Cell::GetVertex
    - S2CellId::FromToken
    - S2Polygon::InitToSimplifiedInCell
    - MakeCellPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(InitToSimplifiedInCell, CloselySpacedEdgeVerticesKept)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3014,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3015,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3022,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3023,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3024,1
    - Dst: S2Polygon::InitToSimplifiedInCell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3025,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3027,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3013
    functionDepth: 4
    functionLinenumber: 3013
    functionLinenumberEnd: 3028
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - MakePolygon
    - S1Angle::Radians
    - S2Polygon::S2Polygon
    - S2Polygon::is_empty
    - S2CellId::FromToken
    - S2Polygon::InitToSimplifiedInCell
    linkageType: ''
    returnType: void
    signature: void TEST(InitToSimplifiedInCell, PolylineAssemblyBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3031,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3036,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3037,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3039,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3039,1
    - Dst: s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3040,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3041,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3042,1
    - Dst: S2Polygon::InitToSimplifiedInCell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3043,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3045,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3046,1
    - Dst: S2Polygon::FindValidationError
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3030
    functionDepth: 4
    functionLinenumber: 3030
    functionLinenumberEnd: 3047
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S1Angle::Radians
    - S2Testing::MetersToAngle
    - GetValue
    - S2Polygon::FindValidationError
    - S2CellId::FromDebugString
    - S2Polygon::S2Polygon
    - s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
    - s2textformat::MakePolygonOrDie
    - S2Polygon::InitToSimplifiedInCell
    - S2Polygon::set_s2debug_override
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(InitToSimplifiedInCell, InteriorEdgesSnappedToBoundary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3051,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3052,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3052,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - center
    - num_points
    - radius_in_degrees
    argTypes:
    - string_view
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3049
    functionDepth: 1
    functionLinenumber: 3049
    functionLinenumberEnd: 3054
    functionName: MakeRegularPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::MakeRegularLoop
    - make_unique<S2Polygon>
    - S1Angle::Degrees
    - s2textformat::MakePointOrDie
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: "unique_ptr<S2Polygon> MakeRegularPolygon(string_view center, int num_points,\n
      \                                        double radius_in_degrees)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3062,1
    - Dst: SetInput
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3064,1
    - Dst: MakeRegularPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3064,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3066,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3066,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3067,1
    - Dst: MaximumDistanceInDegrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3067,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3068,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3068,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3069,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3058
    functionDepth: 2
    functionLinenumber: 3058
    functionLinenumberEnd: 3070
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - MaximumDistanceInDegrees
    - SetInput
    - EXPECT_GE
    - EXPECT_LE
    - MakeRegularPolygon
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonSimplifierTest, LargeRegularPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3075,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3074
    functionDepth: 0
    functionLinenumber: 3074
    functionLinenumberEnd: 3076
    functionName: S2PolygonDecodeTest::S2PolygonDecodeTest
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - data
    - reset
    linkageType: ''
    returnType: void
    signature: void S2PolygonDecodeTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3078
    functionDepth: 0
    functionLinenumber: 3078
    functionLinenumberEnd: 3078
    functionName: ~S2PolygonDecodeTest() override
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2PolygonDecodeTest() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put8
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3082
      start: 3080
    functionDepth: 0
    functionLinenumber: 3080
    functionLinenumberEnd: 3082
    functionName: S2PolygonDecodeTest::AppendByte
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - put8
    linkageType: ''
    returnType: void
    signature: void AppendByte(int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put32
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3084
    functionDepth: 0
    functionLinenumber: 3084
    functionLinenumberEnd: 3086
    functionName: S2PolygonDecodeTest::AppendInt32
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - put32
    linkageType: ''
    returnType: void
    signature: void AppendInt32(int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avail
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3089,1
    - Dst: S2PolygonDecodeTest::AppendByte
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3090,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bitgen
    - size
    argTypes:
    - absl::BitGenRef
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3092
      start: 3088
    functionDepth: 1
    functionLinenumber: 3088
    functionLinenumberEnd: 3092
    functionName: S2PolygonDecodeTest::AppendRandomData
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2PolygonDecodeTest::AppendByte
    - s2random::LogUniform
    - avail
    linkageType: ''
    returnType: void
    signature: void AppendRandomData(absl::BitGenRef bitgen, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolygonDecodeTest::AppendRandomData
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3095,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3096
      start: 3094
    functionDepth: 1
    functionLinenumber: 3094
    functionLinenumberEnd: 3096
    functionName: S2PolygonDecodeTest::AppendRandomData
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 1
    functionsReached:
    - S2PolygonDecodeTest::AppendRandomData
    - s2random::LogUniform
    linkageType: ''
    returnType: void
    signature: void AppendRandomData(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolygonDecodeTest::AppendByte
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3099,1
    - Dst: S2PolygonDecodeTest::AppendByte
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3100,1
    - Dst: S2PolygonDecodeTest::AppendByte
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3101,1
    - Dst: S2PolygonDecodeTest::AppendInt32
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3102,1
    - Dst: S2PolygonDecodeTest::PickRandomCount
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3102,1
    - Dst: S2PolygonDecodeTest::AppendByte
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3103,1
    - Dst: S2PolygonDecodeTest::AppendInt32
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3104,1
    - Dst: S2PolygonDecodeTest::PickRandomCount
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3104,1
    - Dst: S2PolygonDecodeTest::AppendRandomData
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3098
    functionDepth: 2
    functionLinenumber: 3098
    functionLinenumberEnd: 3106
    functionName: S2PolygonDecodeTest::AppendFakeUncompressedEncodingData
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2PolygonDecodeTest::PickRandomCount
    - S2PolygonDecodeTest::AppendRandomData
    - S2PolygonDecodeTest::AppendByte
    - S2PolygonDecodeTest::AppendInt32
    linkageType: ''
    returnType: void
    signature: void AppendFakeUncompressedEncodingData(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolygonDecodeTest::AppendByte
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3109,1
    - Dst: S2PolygonDecodeTest::AppendByte
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3110,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3110,1
    - Dst: S2PolygonDecodeTest::AppendInt32
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3111,1
    - Dst: S2PolygonDecodeTest::PickRandomCount
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3111,1
    - Dst: S2PolygonDecodeTest::AppendInt32
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3112,1
    - Dst: S2PolygonDecodeTest::PickRandomCount
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3112,1
    - Dst: S2PolygonDecodeTest::AppendRandomData
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3108
    functionDepth: 2
    functionLinenumber: 3108
    functionLinenumberEnd: 3114
    functionName: S2PolygonDecodeTest::AppendFakeCompressedEncodingData
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2PolygonDecodeTest::PickRandomCount
    - S2PolygonDecodeTest::AppendRandomData
    - S2PolygonDecodeTest::AppendByte
    - s2random::LogUniform
    - S2PolygonDecodeTest::AppendInt32
    linkageType: ''
    returnType: void
    signature: void AppendFakeCompressedEncodingData(absl::BitGenRef bitgen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3117,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3120,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3123,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3126,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3127,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3130
      start: 3116
    functionDepth: 1
    functionLinenumber: 3116
    functionLinenumberEnd: 3130
    functionName: S2PolygonDecodeTest::PickRandomCount
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 2
    functionsReached:
    - s2random::LogUniform
    - absl::Bernoulli
    linkageType: ''
    returnType: int32_t
    signature: int32_t PickRandomCount(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3133,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3133,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3133,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3134,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3135,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3136,1
    - Dst: static_cast<void>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3139,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3132
    functionDepth: 1
    functionLinenumber: 3132
    functionLinenumberEnd: 3140
    functionName: S2PolygonDecodeTest::Test
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - data
    - clear
    - S2Polygon::Decode
    - reset
    - S2Polygon::S2Polygon
    - length
    - S2Polygon::set_s2debug_override
    linkageType: ''
    returnType: void
    signature: void Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3160,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3161,1
    - Dst: AppendFakeUncompressedEncodingData
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3163,1
    - Dst: Test
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3167
      start: 3155
    functionDepth: 1
    functionLinenumber: 3155
    functionLinenumberEnd: 3167
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Test
    - S2Testing::MakeTaggedSeedSeq
    - AppendFakeUncompressedEncodingData
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonDecodeTest, FuzzUncompressedEncoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3176,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3177,1
    - Dst: AppendFakeCompressedEncodingData
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3179,1
    - Dst: Test
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3171
    functionDepth: 1
    functionLinenumber: 3171
    functionLinenumberEnd: 3183
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Test
    - S2Testing::MakeTaggedSeedSeq
    - AppendFakeCompressedEncodingData
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonDecodeTest, FuzzCompressedEncoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3191,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3192,1
    - Dst: AppendRandomData
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3194,1
    - Dst: Test
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3186
    functionDepth: 1
    functionLinenumber: 3186
    functionLinenumberEnd: 3198
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Test
    - S2Testing::MakeTaggedSeedSeq
    - AppendRandomData
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonDecodeTest, FuzzEverything)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3201,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3202,1
    - Dst: S2Polygon::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3202,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3203,1
    - Dst: S2Polygon::Shape::dimension
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3203,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3204,1
    - Dst: S2Polygon::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3204,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3205,1
    - Dst: S2Polygon::Shape::is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3205,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3206,1
    - Dst: S2Polygon::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3206,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3207,1
    - Dst: S2Polygon::Shape::chain
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3207,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3208,1
    - Dst: S2Polygon::Shape::chain
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3208,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3209,1
    - Dst: S2Polygon::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3200
    functionDepth: 1
    functionLinenumber: 3200
    functionLinenumberEnd: 3210
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::Shape::num_edges
    - S2Polygon::Shape::GetReferencePoint
    - get
    - S2Polygon::Shape::is_empty
    - EXPECT_TRUE
    - S2Polygon::Shape::is_full
    - S2Polygon::Shape::num_chains
    - S2Polygon::Shape::chain
    - EXPECT_EQ
    - S2Polygon::Shape::dimension
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, FullPolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3213,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3214,1
    - Dst: S2Polygon::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3214,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3215,1
    - Dst: S2Polygon::Shape::dimension
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3215,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3216,1
    - Dst: S2Polygon::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3216,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3217,1
    - Dst: S2Polygon::Shape::is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3218,1
    - Dst: S2Polygon::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3218,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3219,1
    - Dst: S2Polygon::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3212
    functionDepth: 1
    functionLinenumber: 3212
    functionLinenumberEnd: 3220
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::Shape::num_edges
    - S2Polygon::Shape::GetReferencePoint
    - get
    - EXPECT_TRUE
    - S2Polygon::Shape::is_empty
    - S2Polygon::Shape::is_full
    - S2Polygon::Shape::num_chains
    - EXPECT_EQ
    - S2Polygon::Shape::dimension
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, EmptyPolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3223,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3225,1
    - Dst: S2Polygon::Shape::polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3225,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3226,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3226,1
    - Dst: S2Polygon::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3226,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3227,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3227,1
    - Dst: S2Polygon::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3227,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3228,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3229,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3230,1
    - Dst: S2Polygon::Shape::chain
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3230,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3231,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3231,1
    - Dst: S2Polygon::Shape::chain
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3231,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3232,1
    - Dst: S2Polygon::Shape::edge
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3233,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3234,1
    - Dst: S2Loop*::oriented_vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3234,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3235,1
    - Dst: S2Loop*::oriented_vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3235,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3238,1
    - Dst: S2Polygon::Shape::dimension
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3238,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3239,1
    - Dst: S2Polygon::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3239,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3240,1
    - Dst: S2Polygon::Shape::is_full
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3240,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3241,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3241,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3241,1
    - Dst: S2Polygon::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' polygon'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3243
      start: 3222
    functionDepth: 1
    functionLinenumber: 3222
    functionLinenumberEnd: 3243
    functionName: TestPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - is_full
    - S2Polygon::Shape::is_full
    - S2Polygon::Shape::chain
    - loop
    - ABSL_DCHECK
    - S2Polygon::Shape::num_edges
    - num_vertices
    - num_loops
    - S2Polygon::Shape::edge
    - EXPECT_EQ
    - S2Polygon::Shape::polygon
    - S2::Origin
    - S2Polygon::Shape::GetReferencePoint
    - S2Loop*::num_vertices
    - S2Polygon::Shape::num_chains
    - S2Polygon::Shape::is_empty
    - Contains
    - S2Polygon::Shape::dimension
    - S2Loop*::oriented_vertex
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TestPolygonShape(const S2Polygon& polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestPolygonShape
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3245
    functionDepth: 2
    functionLinenumber: 3245
    functionLinenumberEnd: 3247
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - TestPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, OneLoopPolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestPolygonShape
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3249
    functionDepth: 2
    functionLinenumber: 3249
    functionLinenumberEnd: 3251
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - TestPolygonShape
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, SeveralLoopPolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3256,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3257,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3257,1
    - Dst: TestPolygonShape
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3260
      start: 3253
    functionDepth: 2
    functionLinenumber: 3253
    functionLinenumberEnd: 3260
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - TestPolygonShape
    - S2Testing::ConcentricLoopsPolygon
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, ManyLoopPolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3265,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3262
    functionDepth: 0
    functionLinenumber: 3262
    functionLinenumberEnd: 3267
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - make_unique<S2Polygon>
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonOwningShape, Ownership)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3271,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3272,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3273,1
    - Dst: S2LatLng::ToPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3273,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3274,1
    - Dst: S2Polygon::MayIntersect
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3274,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3274,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3269
    functionDepth: 1
    functionLinenumber: 3269
    functionLinenumberEnd: 3275
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::ToPoint
    - EXPECT_TRUE
    - S2CellId
    - S2Loop::MakeRegularLoop
    - S1Angle::Degrees
    - S2LatLng::FromRadians
    - S2Cell
    - S2Polygon::MayIntersect
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, PointInBigLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3279,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3280,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3281,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3282,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3284,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3285,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3277
    functionDepth: 0
    functionLinenumber: 3277
    functionLinenumberEnd: 3287
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, Sizes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3290,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3291,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3291,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3293,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3293,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3294,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3294,1
    - Dst: S2Polygon::Shape*::polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3295
      start: 3289
    functionDepth: 1
    functionLinenumber: 3289
    functionLinenumberEnd: 3295
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - index
    - get
    - num_shape_ids
    - shape
    - down_cast
    - S2Polygon::Shape*::polygon
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, IndexContainsOnePolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3301,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3302,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3303,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3304,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3304,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3305
      start: 3297
    functionDepth: 1
    functionLinenumber: 3297
    functionLinenumberEnd: 3305
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - index
    - EXPECT_GT
    - S2ClosestEdgeQuery::GetDistance
    - S1Angle::Degrees
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PolygonTestBase, PolygonPolygonDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3312,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3313,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3313,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3316,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3317,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3317,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3319,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3319,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3320
      start: 3307
    functionDepth: 1
    functionLinenumber: 3307
    functionLinenumberEnd: 3320
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - s2coding::RoundTrip
    - S2Point
    - S2Testing::ConcentricLoopsPolygon
    - s2coding::S2HintCoder::S2HintCoder
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polygon, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3325,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num_vertices_per_loop
    - polygon
    argTypes:
    - int
    - S2Polygon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3328
      start: 3322
    functionDepth: 1
    functionLinenumber: 3322
    functionLinenumberEnd: 3328
    functionName: GeneratePolygonForBenchmark
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakePointOrDie
    - S2Testing::ConcentricLoopsPolygon
    linkageType: ''
    returnType: void
    signature: "void GeneratePolygonForBenchmark(int num_vertices_per_loop,\n                                        S2Polygon*
      polygon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3331,1
    - Dst: GeneratePolygonForBenchmark
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3332,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3333,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3334,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3335,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num_vertices_per_loop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3330
    functionDepth: 2
    functionLinenumber: 3330
    functionLinenumberEnd: 3337
    functionName: GenerateInputForBenchmark
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - GeneratePolygonForBenchmark
    - Encoder::length
    - S2Polygon::Encode
    - Encoder::base
    - S2Polygon::S2Polygon
    - Encoder::Encoder
    linkageType: ''
    returnType: string
    signature: string GenerateInputForBenchmark(int num_vertices_per_loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3340,1
    - Dst: GeneratePolygonForBenchmark
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3341,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3342,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3343,1
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3344,1
    - Dst: S2Polygon::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3344,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3347,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3348,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3349,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - num_vertices_per_loop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3352
      start: 3339
    functionDepth: 5
    functionLinenumber: 3339
    functionLinenumberEnd: 3352
    functionName: GenerateCompressedInputForBenchmark
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - ABSL_CHECK_GE
    - GeneratePolygonForBenchmark
    - Encoder::length
    - S2Polygon::Encode
    - Encoder::base
    - S2Polygon::GetSnapLevel
    - S2Polygon::S2Polygon
    - Encoder::Encoder
    linkageType: ''
    returnType: string
    signature: string GenerateCompressedInputForBenchmark(int num_vertices_per_loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3355,1
    - Dst: GenerateInputForBenchmark
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3356,1
    - Dst: string::data
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3358,1
    - Dst: string::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3358,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3359,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3360,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3362
      start: 3354
    functionDepth: 3
    functionLinenumber: 3354
    functionLinenumberEnd: 3362
    functionName: BM_S2Decoding
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - string::size
    - range
    - string::data
    - ABSL_CHECK
    - S2Polygon::Decode
    - S2Polygon::S2Polygon
    - GenerateInputForBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_S2Decoding(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3366,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3368,1
    - Dst: GeneratePolygonForBenchmark
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3369,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3370,1
    - Dst: S2Polygon::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3371,1
    - Dst: S2Polygon::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3373,1
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3374,1
    - Dst: S2Polygon::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3374,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3376,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3379
      start: 3365
    functionDepth: 5
    functionLinenumber: 3365
    functionLinenumberEnd: 3379
    functionName: BM_S2EncodingCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToSnapped
    - S2Polygon::ForceBuildIndex
    - range
    - ABSL_CHECK_GE
    - GeneratePolygonForBenchmark
    - S2Polygon::GetSnapLevel
    - S2Polygon::Encode
    - S2Polygon::S2Polygon
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_S2EncodingCompressed(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3383,1
    - Dst: GenerateCompressedInputForBenchmark
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3384,1
    - Dst: string::data
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3386,1
    - Dst: string::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3386,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3387,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3388,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3382
    functionDepth: 6
    functionLinenumber: 3382
    functionLinenumberEnd: 3390
    functionName: BM_S2DecodingCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - string::size
    - GenerateCompressedInputForBenchmark
    - range
    - string::data
    - ABSL_CHECK
    - S2Polygon::Decode
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void BM_S2DecodingCompressed(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3394,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3393
    functionDepth: 1
    functionLinenumber: 3393
    functionLinenumberEnd: 3395
    functionName: GetDefaultRadius
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Testing::KmToAngle
    - absl::GetFlag
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetDefaultRadius()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3399
      start: 3399
    functionDepth: 0
    functionLinenumber: 3399
    functionLinenumberEnd: 3399
    functionName: PolygonFactory::PolygonFactory
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolygonFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3400
      start: 3400
    functionDepth: 0
    functionLinenumber: 3400
    functionLinenumberEnd: 3400
    functionName: ~PolygonFactory()
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PolygonFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3403
      start: 3403
    functionDepth: 0
    functionLinenumber: 3403
    functionLinenumberEnd: 3403
    functionName: PolygonFactory::PolygonFactory
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolygonFactory(const PolygonFactory&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3404
      start: 3404
    functionDepth: 0
    functionLinenumber: 3404
    functionLinenumberEnd: 3404
    functionName: operator=(const PolygonFactory&)
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const PolygonFactory&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3413,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3414,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3415,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3415,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3415,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3412
    functionDepth: 1
    functionLinenumber: 3412
    functionLinenumberEnd: 3422
    functionName: CheckEdgeLength
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - S2Testing::MetersToAngle
    - vertex
    - S1Angle
    - ABSL_LOG
    linkageType: ''
    returnType: void
    signature: void CheckEdgeLength(const S2Loop& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3431,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3432,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3433,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3433,1
    - Dst: seed
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num_loops
    - total_num_vertices
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3429
    functionDepth: 0
    functionLinenumber: 3429
    functionLinenumberEnd: 3435
    functionName: NestedLoopsPolygonFactory::NestedLoopsPolygonFactory
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - string::end
    - seed
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void NestedLoopsPolygonFactory(int num_loops, int total_num_vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3438,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3443,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3444,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3445,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3446,1
    - Dst: CheckEdgeLength
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3450,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3451,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3451,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3454,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3455
      start: 3436
    functionDepth: 2
    functionLinenumber: 3436
    functionLinenumberEnd: 3455
    functionName: NestedLoopsPolygonFactory::New
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - CheckEdgeLength
    - s2random::Point
    - GetDefaultRadius
    - std::move
    - make_unique<S2Polygon>
    - max
    - absl::GetFlag
    - cos
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> New() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3469,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3470,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3471,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3471,1
    - Dst: seed
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num_loops
    - total_num_vertices
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3473
      start: 3467
    functionDepth: 0
    functionLinenumber: 3467
    functionLinenumberEnd: 3473
    functionName: NestedFractalsPolygonFactory::NestedFractalsPolygonFactory
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - string::end
    - seed
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void NestedFractalsPolygonFactory(int num_loops, int total_num_vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3476,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3478,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3479,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3480,1
    - Dst: S2Fractal::min_radius_factor
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3483,1
    - Dst: S2Fractal::max_radius_factor
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3483,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3484,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3485,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3486,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3489,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3489,1
    - Dst: CheckEdgeLength
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3490,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3491,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3491,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3494,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3474
    functionDepth: 2
    functionLinenumber: 3474
    functionLinenumberEnd: 3495
    functionName: NestedFractalsPolygonFactory::New
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::min_radius_factor
    - s2random::FrameAt
    - s2random::Point
    - S2Fractal::SetLevelForApproxMaxEdges
    - CheckEdgeLength
    - S2Fractal::MakeLoop
    - GetDefaultRadius
    - vector::push_back
    - std::move
    - S2Fractal::set_fractal_dimension
    - make_unique<S2Polygon>
    - max
    - absl::GetFlag
    - S2Fractal::max_radius_factor
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> New() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3507,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3508,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3509,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3509,1
    - Dst: seed
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num_loops
    - total_num_vertices
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3505
    functionDepth: 0
    functionLinenumber: 3505
    functionLinenumberEnd: 3511
    functionName: LoopGridPolygonFactory::LoopGridPolygonFactory
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - string::end
    - seed
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void LoopGridPolygonFactory(int num_loops, int total_num_vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceil
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3518,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3518,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3520,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3521,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3522,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3524,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3529,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3530,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3534,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3535,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3536,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3537,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3537,1
    - Dst: CheckEdgeLength
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3539,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3540,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3540,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3543,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3544
      start: 3512
    functionDepth: 2
    functionLinenumber: 3512
    functionLinenumberEnd: 3544
    functionName: LoopGridPolygonFactory::New
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - CheckEdgeLength
    - GetDefaultRadius
    - s2random::Frame
    - S2Loop::MakeRegularLoop
    - S1Angle::Radians
    - std::move
    - min
    - sqrt
    - S2::FromFrame
    - tan
    - make_unique<S2Polygon>
    - max
    - absl::GetFlag
    - ceil
    - cos
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> New() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3552,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3553,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3554,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3554,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3556,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3557,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3558,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_vertices
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3559
      start: 3551
    functionDepth: 1
    functionLinenumber: 3551
    functionLinenumberEnd: 3559
    functionName: ConstructorBenchmarkSingleLoop
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - s2random::Point
    - StrCat
    - string::end
    - S2Loop::MakeRegularLoop
    - S1Angle::Degrees
    - make_unique<S2Polygon>
    - absl::GetFlag
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> ConstructorBenchmarkSingleLoop(int num_vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoopGridPolygonFactory::New
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_loops
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3565
      start: 3561
    functionDepth: 3
    functionLinenumber: 3561
    functionLinenumberEnd: 3565
    functionName: ConstructorBenchmarkLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - LoopGridPolygonFactory::New
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> ConstructorBenchmarkLoopGrid(int num_loops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3575,1
    - Dst: S2Polygon::Release
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3577,1
    - Dst: ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3579,1
    - Dst: S2Polygon::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3582,1
    - Dst: S2Polygon::Release
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' state'
    - ' input'
    argTypes:
    - benchmark::State
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3585
      start: 3572
    functionDepth: 2
    functionLinenumber: 3572
    functionLinenumberEnd: 3585
    functionName: BenchmarkConstructor
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - ForceBuildIndex
    - S2Polygon::Release
    - S2Polygon::ForceBuildIndex
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: "void BenchmarkConstructor(benchmark::State& state,\n                                 const
      S2Polygon& input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3594,1
    - Dst: S2Testing::AppendLoopVertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3597,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3597,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3602,1
    - Dst: ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3603,1
    - Dst: S2Polygon::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' state'
    - ' input'
    argTypes:
    - benchmark::State
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3592
    functionDepth: 2
    functionLinenumber: 3592
    functionLinenumberEnd: 3608
    functionName: BenchmarkFullConstructor
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - num_loops
    - make_unique<S2Loop>
    - S2Polygon::ForceBuildIndex
    - ForceBuildIndex
    - S2Testing::AppendLoopVertices
    - loop
    linkageType: ''
    returnType: void
    signature: "void BenchmarkFullConstructor(benchmark::State& state,\n                                     const
      S2Polygon& input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3612,1
    - Dst: BenchmarkConstructor
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3615
      start: 3611
    functionDepth: 3
    functionLinenumber: 3611
    functionLinenumberEnd: 3615
    functionName: BM_ConstructorSingleLoop
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkConstructor
    - range
    linkageType: ''
    returnType: void
    signature: void BM_ConstructorSingleLoop(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3620,1
    - Dst: BenchmarkConstructor
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3623
      start: 3619
    functionDepth: 3
    functionLinenumber: 3619
    functionLinenumberEnd: 3623
    functionName: BM_ConstructorLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkConstructor
    - range
    linkageType: ''
    returnType: void
    signature: void BM_ConstructorLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3628,1
    - Dst: BenchmarkFullConstructor
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3631
      start: 3627
    functionDepth: 3
    functionLinenumber: 3627
    functionLinenumberEnd: 3631
    functionName: BM_FullConstructorSingleLoop
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFullConstructor
    - range
    linkageType: ''
    returnType: void
    signature: void BM_FullConstructorSingleLoop(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3636,1
    - Dst: BenchmarkFullConstructor
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3640
      start: 3635
    functionDepth: 3
    functionLinenumber: 3635
    functionLinenumberEnd: 3640
    functionName: BM_FullConstructorLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFullConstructor
    - range
    linkageType: ''
    returnType: void
    signature: void BM_FullConstructorLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3644,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3645,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3647,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3648,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3649,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3649,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3653,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3654,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3654,1
    - Dst: S2Polygon::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3657,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3659,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3662
      start: 3643
    functionDepth: 2
    functionLinenumber: 3643
    functionLinenumberEnd: 3662
    functionName: BM_IsValidConcentricLoops
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - s2random::Point
    - StrCat
    - S2Polygon::ForceBuildIndex
    - string::end
    - range
    - S2Testing::ConcentricLoopsPolygon
    - ABSL_CHECK
    - S2Polygon::IsValid
    - S2Polygon::S2Polygon
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_IsValidConcentricLoops(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3672,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3672,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3673,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3673,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3681,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3683,1
    - Dst: PolygonFactory*::New
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3685,1
    - Dst: unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3687,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3689,1
    - Dst: unique_ptr::GetRectBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3689,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3691,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3693,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3694,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' state'
    - factory
    argTypes:
    - benchmark::State
    - PolygonFactory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3696
      start: 3669
    functionDepth: 1
    functionLinenumber: 3669
    functionLinenumberEnd: 3696
    functionName: BenchmarkContainsPoint
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - PauseTiming
    - StrCat
    - ResumeTiming
    - string::end
    - iterations
    - s2random::SamplePoint
    - unique_ptr::ForceBuildIndex
    - unique_ptr::Contains
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - PolygonFactory*::New
    - unique_ptr::GetRectBound
    linkageType: ''
    returnType: void
    signature: "void BenchmarkContainsPoint(benchmark::State& state,\n                                   PolygonFactory*
      factory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3700,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3701,1
    - Dst: BenchmarkContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3704
      start: 3699
    functionDepth: 2
    functionLinenumber: 3699
    functionLinenumberEnd: 3704
    functionName: BM_ContainsPointLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkContainsPoint
    linkageType: ''
    returnType: void
    signature: void BM_ContainsPointLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3711,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3712,1
    - Dst: BenchmarkContainsPoint
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3715
      start: 3710
    functionDepth: 2
    functionLinenumber: 3710
    functionLinenumberEnd: 3715
    functionName: BM_ContainsPointNestedFractals
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkContainsPoint
    linkageType: ''
    returnType: void
    signature: void BM_ContainsPointNestedFractals(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3723,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3724,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3728,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3730,1
    - Dst: PolygonFactory*::New
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3732,1
    - Dst: unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3734,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3735,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' state'
    - max_cells
    - factory
    argTypes:
    - benchmark::State
    - int
    - PolygonFactory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3721
    functionDepth: 7
    functionLinenumber: 3721
    functionLinenumberEnd: 3740
    functionName: BenchmarkCovering
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - PauseTiming
    - ResumeTiming
    - S2RegionCoverer::mutable_options
    - S2RegionCoverer::GetCovering
    - unique_ptr::ForceBuildIndex
    - S2RegionCoverer::S2RegionCoverer
    - absl::GetFlag
    - PolygonFactory*::New
    linkageType: ''
    returnType: void
    signature: "void BenchmarkCovering(benchmark::State& state, int max_cells,\n                              PolygonFactory*
      factory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::ArgPair
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3750
      start: 3744
    functionDepth: 0
    functionLinenumber: 3744
    functionLinenumberEnd: 3750
    functionName: CoveringBenchmarkArgs
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::ArgPair
    linkageType: ''
    returnType: void
    signature: void CoveringBenchmarkArgs(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3753,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3754,1
    - Dst: BenchmarkCovering
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3752
    functionDepth: 8
    functionLinenumber: 3752
    functionLinenumberEnd: 3757
    functionName: BM_FractalCovering
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkCovering
    - range
    linkageType: ''
    returnType: void
    signature: void BM_FractalCovering(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3761,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3762,1
    - Dst: BenchmarkCovering
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3765
      start: 3760
    functionDepth: 8
    functionLinenumber: 3760
    functionLinenumberEnd: 3765
    functionName: BM_AnnulusCovering
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkCovering
    - range
    linkageType: ''
    returnType: void
    signature: void BM_AnnulusCovering(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3786,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3786,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3787,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3787,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3792,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3798,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3801,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3804,1
    - Dst: vector<unique_ptr<S2Polygon>>*::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3805,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3806,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3805,1
    - Dst: vector<unique_ptr<S2Polygon>>*::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3807,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3807,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3808,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3808,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3807,1
    - Dst: vector<unique_ptr<S2Polygon>>*::back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3810,1
    - Dst: vector<unique_ptr<S2Polygon>>*::back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - outer_radius
    - gap_edge_multiple
    - num_vertices
    - outer_loops
    - inner_loops
    argTypes:
    - S1Angle
    - double
    - int
    - vector<unique_ptr<S2Polygon>>*
    - vector<unique_ptr<S2Polygon>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3781
    functionDepth: 1
    functionLinenumber: 3781
    functionLinenumberEnd: 3813
    functionName: GetNestedLoopPairs
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - string::begin
    - Matrix3x3_d::Col
    - StrCat
    - string::end
    - s2random::Frame
    - S2Loop::MakeRegularLoop
    - S2Polygon::S2Polygon
    - vector<unique_ptr<S2Polygon>>*::back
    - vector<unique_ptr<S2Polygon>>*::emplace_back
    - max
    - absl::GetFlag
    - cos
    linkageType: ''
    returnType: void
    signature: "void GetNestedLoopPairs(S1Angle outer_radius, double gap_edge_multiple,\n
      \                              int num_vertices,\n                               vector<unique_ptr<S2Polygon>>*
      outer_loops,\n                               vector<unique_ptr<S2Polygon>>*
      inner_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3825,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3825,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3826,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3826,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3833,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3834,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3838,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3839,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3849,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3850,1
    - Dst: vector<unique_ptr<S2Polygon>>*::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3851,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3852,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3851,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3853,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3854,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3854,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3855,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3856,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3856,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3856,1
    - Dst: vector<unique_ptr<S2Polygon>>*::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3857,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3857,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3858,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3857,1
    - Dst: vector<unique_ptr<S2Polygon>>*::back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3860,1
    - Dst: vector<unique_ptr<S2Polygon>>*::back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - a_radius
    - b_radius
    - num_vertices
    - a_loops
    - b_loops
    argTypes:
    - S1Angle
    - S1Angle
    - int
    - vector<unique_ptr<S2Polygon>>*
    - vector<unique_ptr<S2Polygon>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3863
      start: 3820
    functionDepth: 1
    functionLinenumber: 3820
    functionLinenumberEnd: 3863
    functionName: GetCrossingLoopPairs
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - string::end
    - vector<unique_ptr<S2Polygon>>*::back
    - cos
    - string::begin
    - s2random::Frame
    - S1Angle::Radians
    - min
    - S2Polygon::S2Polygon
    - Matrix3x3_d::Col
    - S2::GetPointOnLine
    - S1Angle::radians
    - max
    - s2random::FrameAt
    - StrCat
    - S2Loop::MakeRegularLoop
    - ABSL_CHECK_GT
    - s2random::LogUniform
    - vector<unique_ptr<S2Polygon>>*::emplace_back
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void GetCrossingLoopPairs(S1Angle a_radius, S1Angle b_radius,\n                                 int
      num_vertices,\n                                 vector<unique_ptr<S2Polygon>>*
      a_loops,\n                                 vector<unique_ptr<S2Polygon>>* b_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3876,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3877,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3878,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3878,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3881,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3884,1
    - Dst: vector<unique_ptr<S2Polygon>>*::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3885,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3886,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3885,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3888,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3888,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3888,1
    - Dst: vector<unique_ptr<S2Polygon>>*::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3890,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3890,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3891,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3890,1
    - Dst: vector<unique_ptr<S2Polygon>>*::back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3893,1
    - Dst: vector<unique_ptr<S2Polygon>>*::back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - radius
    - loop_separation_fraction
    - num_vertices
    - a_loops
    - b_loops
    argTypes:
    - S1Angle
    - double
    - int
    - vector<unique_ptr<S2Polygon>>*
    - vector<unique_ptr<S2Polygon>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3896
      start: 3872
    functionDepth: 1
    functionLinenumber: 3872
    functionLinenumberEnd: 3896
    functionName: GetDisjointEasyLoopPairs
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - Matrix3x3_d::Col
    - string::begin
    - s2random::Point
    - StrCat
    - S2::GetPointOnLine
    - s2random::FrameAt
    - string::end
    - s2random::Frame
    - S2Loop::MakeRegularLoop
    - S2Polygon::S2Polygon
    - vector<unique_ptr<S2Polygon>>*::back
    - vector<unique_ptr<S2Polygon>>*::emplace_back
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void GetDisjointEasyLoopPairs(\n    S1Angle radius, double loop_separation_fraction,
      int num_vertices,\n    vector<unique_ptr<S2Polygon>>* a_loops,\n    vector<unique_ptr<S2Polygon>>*
      b_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3919,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3920,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3921,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3921,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3927,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3929,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3932,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3934,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3935,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3939,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3939,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3940,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3941,1
    - Dst: S2Testing::AppendLoopVertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3942,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3943,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3943,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3943,1
    - Dst: S2Testing::AppendLoopVertices
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3944,1
    - Dst: vector<unique_ptr<S2Polygon>>*::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3945,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3945,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3945,1
    - Dst: vector<unique_ptr<S2Polygon>>*::emplace_back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3948,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3948,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3949,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3949,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3948,1
    - Dst: vector<unique_ptr<S2Polygon>>*::back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3951,1
    - Dst: vector<unique_ptr<S2Polygon>>*::back
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - outer_radius
    - gap_edge_multiple
    - num_vertices
    - outer_loops
    - inner_loops
    argTypes:
    - S1Angle
    - double
    - int
    - vector<unique_ptr<S2Polygon>>*
    - vector<unique_ptr<S2Polygon>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3954
      start: 3915
    functionDepth: 1
    functionLinenumber: 3915
    functionLinenumberEnd: 3954
    functionName: GetDisjointHardLoopPairs
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - string::begin
    - S2Testing::AppendLoopVertices
    - StrCat
    - std::reverse
    - make_unique<S2Loop>
    - Matrix3x3_d::Col
    - string::end
    - s2random::Frame
    - S2Loop::MakeRegularLoop
    - vector::end
    - vector::begin
    - S2Polygon::S2Polygon
    - vector<unique_ptr<S2Polygon>>*::back
    - vector<unique_ptr<S2Polygon>>*::emplace_back
    - max
    - absl::GetFlag
    - cos
    linkageType: ''
    returnType: void
    signature: "void GetDisjointHardLoopPairs(\n    S1Angle outer_radius, double gap_edge_multiple,
      int num_vertices,\n    vector<unique_ptr<S2Polygon>>* outer_loops,\n    vector<unique_ptr<S2Polygon>>*
      inner_loops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3967,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3968,1
    - Dst: vector<unique_ptr<S2Polygon>>*::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' state'
    - expected_result
    - a_loops
    - b_loops
    argTypes:
    - benchmark::State
    - bool
    - vector<unique_ptr<S2Polygon>>*
    - vector<unique_ptr<S2Polygon>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3971
      start: 3959
    functionDepth: 0
    functionLinenumber: 3959
    functionLinenumberEnd: 3971
    functionName: BenchmarkRelation
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - get
    - vector<unique_ptr<S2Polygon>>*::size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void BenchmarkRelation(benchmark::State& state,\n                              bool
      (S2Polygon::*method)(const S2Polygon& b)\n                                  const,\n
      \                             bool expected_result,\n                              vector<unique_ptr<S2Polygon>>*
      a_loops,\n                              vector<unique_ptr<S2Polygon>>* b_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNestedLoopPairs
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3981,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3981,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3982,1
    - Dst: BenchmarkRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' state'
    - expected_result
    - num_vertices
    argTypes:
    - benchmark::State
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3985
      start: 3976
    functionDepth: 1
    functionLinenumber: 3976
    functionLinenumberEnd: 3985
    functionName: BenchmarkRelationContains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelation
    - GetNestedLoopPairs
    - absl::GetFlag
    - GetDefaultRadius
    linkageType: ''
    returnType: void
    signature: "void BenchmarkRelationContains(\n    benchmark::State& state,\n    bool
      (S2Polygon::*method)(const S2Polygon& b) const, bool expected_result,\n    int
      num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDisjointEasyLoopPairs
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3996,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3996,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3997,1
    - Dst: BenchmarkRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:3999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' state'
    - expected_result
    - num_vertices
    argTypes:
    - benchmark::State
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4000
      start: 3991
    functionDepth: 2
    functionLinenumber: 3991
    functionLinenumberEnd: 4000
    functionName: BenchmarkRelationDisjointEasy
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelation
    - GetDisjointEasyLoopPairs
    - absl::GetFlag
    - GetDefaultRadius
    linkageType: ''
    returnType: void
    signature: "void BenchmarkRelationDisjointEasy(\n    benchmark::State& state,\n
      \   bool (S2Polygon::*method)(const S2Polygon& b) const, bool expected_result,\n
      \   int num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDisjointHardLoopPairs
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4011,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4011,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4012,1
    - Dst: BenchmarkRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' state'
    - expected_result
    - num_vertices
    argTypes:
    - benchmark::State
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4015
      start: 4006
    functionDepth: 2
    functionLinenumber: 4006
    functionLinenumberEnd: 4015
    functionName: BenchmarkRelationDisjointHard
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelation
    - absl::GetFlag
    - GetDisjointHardLoopPairs
    - GetDefaultRadius
    linkageType: ''
    returnType: void
    signature: "void BenchmarkRelationDisjointHard(\n    benchmark::State& state,\n
      \   bool (S2Polygon::*method)(const S2Polygon& b) const, bool expected_result,\n
      \   int num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4025,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4027,1
    - Dst: GetCrossingLoopPairs
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4030,1
    - Dst: BenchmarkRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' state'
    - expected_result
    - num_vertices
    argTypes:
    - benchmark::State
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4020
    functionDepth: 1
    functionLinenumber: 4020
    functionLinenumberEnd: 4032
    functionName: BenchmarkRelationCrosses
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelation
    - GetCrossingLoopPairs
    - absl::GetFlag
    - GetDefaultRadius
    linkageType: ''
    returnType: void
    signature: "void BenchmarkRelationCrosses(\n    benchmark::State& state,\n    bool
      (S2Polygon::*method)(const S2Polygon& b) const, bool expected_result,\n    int
      num_vertices)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4043,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4045,1
    - Dst: PolygonFactory*::New
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4047,1
    - Dst: std::make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4050,1
    - Dst: unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4052,1
    - Dst: ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4053,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4054,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' state'
    - expected_result
    - factory
    argTypes:
    - benchmark::State
    - bool
    - PolygonFactory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4036
    functionDepth: 0
    functionLinenumber: 4036
    functionLinenumberEnd: 4058
    functionName: BenchmarkRelationToSelf
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - PauseTiming
    - ResumeTiming
    - ABSL_CHECK_EQ
    - unique_ptr::ForceBuildIndex
    - std::make_unique<S2Polygon>
    - ForceBuildIndex
    - absl::GetFlag
    - PolygonFactory*::New
    linkageType: ''
    returnType: void
    signature: "void BenchmarkRelationToSelf(\n    benchmark::State& state,\n    bool
      (S2Polygon::*method)(const S2Polygon& b) const, bool expected_result,\n    PolygonFactory*
      factory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4062,1
    - Dst: BenchmarkRelationContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4064
      start: 4061
    functionDepth: 0
    functionLinenumber: 4061
    functionLinenumberEnd: 4064
    functionName: BM_ContainsContains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelationContains
    - range
    linkageType: ''
    returnType: void
    signature: void BM_ContainsContains(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4069,1
    - Dst: BenchmarkRelationDisjointEasy
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4072
      start: 4068
    functionDepth: 3
    functionLinenumber: 4068
    functionLinenumberEnd: 4072
    functionName: BM_ContainsDisjointEasy
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationDisjointEasy
    linkageType: ''
    returnType: void
    signature: void BM_ContainsDisjointEasy(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4078,1
    - Dst: BenchmarkRelationDisjointHard
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4081
      start: 4077
    functionDepth: 3
    functionLinenumber: 4077
    functionLinenumberEnd: 4081
    functionName: BM_ContainsDisjointHard
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationDisjointHard
    linkageType: ''
    returnType: void
    signature: void BM_ContainsDisjointHard(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4086,1
    - Dst: BenchmarkRelationCrosses
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4088
      start: 4085
    functionDepth: 0
    functionLinenumber: 4085
    functionLinenumberEnd: 4088
    functionName: BM_ContainsCrosses
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationCrosses
    linkageType: ''
    returnType: void
    signature: void BM_ContainsCrosses(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4093,1
    - Dst: BenchmarkRelationContains
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4095
      start: 4092
    functionDepth: 0
    functionLinenumber: 4092
    functionLinenumberEnd: 4095
    functionName: BM_IntersectsContains
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelationContains
    - range
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsContains(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4100,1
    - Dst: BenchmarkRelationDisjointEasy
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4103
      start: 4099
    functionDepth: 3
    functionLinenumber: 4099
    functionLinenumberEnd: 4103
    functionName: BM_IntersectsDisjointEasy
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationDisjointEasy
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsDisjointEasy(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4109,1
    - Dst: BenchmarkRelationDisjointHard
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4112
      start: 4108
    functionDepth: 3
    functionLinenumber: 4108
    functionLinenumberEnd: 4112
    functionName: BM_IntersectsDisjointHard
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationDisjointHard
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsDisjointHard(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4117,1
    - Dst: BenchmarkRelationCrosses
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4119
      start: 4116
    functionDepth: 0
    functionLinenumber: 4116
    functionLinenumberEnd: 4119
    functionName: BM_IntersectsCrosses
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationCrosses
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsCrosses(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4126,1
    - Dst: GetNestedLoopPairs
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4128,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4128,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4129,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4130,1
    - Dst: BenchmarkRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4133
      start: 4125
    functionDepth: 1
    functionLinenumber: 4125
    functionLinenumberEnd: 4133
    functionName: BM_ContainsVsRadiusMeters
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - GetNestedLoopPairs
    - S2Testing::MetersToAngle
    - range
    - BenchmarkRelation
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_ContainsVsRadiusMeters(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4142,1
    - Dst: GetNestedLoopPairs
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4144,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4144,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4145,1
    - Dst: BenchmarkRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4148
      start: 4141
    functionDepth: 1
    functionLinenumber: 4141
    functionLinenumberEnd: 4148
    functionName: BM_ContainsVsEdgeGapMultiple
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - GetNestedLoopPairs
    - GetDefaultRadius
    - range
    - BenchmarkRelation
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_ContainsVsEdgeGapMultiple(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4157,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4159,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4160,1
    - Dst: GetCrossingLoopPairs
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4161,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4162,1
    - Dst: BenchmarkRelation
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4165
      start: 4156
    functionDepth: 1
    functionLinenumber: 4156
    functionLinenumberEnd: 4165
    functionName: BM_IntersectsCrossesVsLogRadiusRatio
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - GetDefaultRadius
    - range
    - pow
    - BenchmarkRelation
    - GetCrossingLoopPairs
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsCrossesVsLogRadiusRatio(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4170,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4171,1
    - Dst: BenchmarkRelationToSelf
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4174
      start: 4169
    functionDepth: 1
    functionLinenumber: 4169
    functionLinenumberEnd: 4174
    functionName: BM_ContainsSelfLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelationToSelf
    - range
    linkageType: ''
    returnType: void
    signature: void BM_ContainsSelfLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4180,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4181,1
    - Dst: BenchmarkRelationToSelf
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4184
      start: 4179
    functionDepth: 1
    functionLinenumber: 4179
    functionLinenumberEnd: 4184
    functionName: BM_ContainsSelfNestedFractals
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelationToSelf
    - range
    linkageType: ''
    returnType: void
    signature: void BM_ContainsSelfNestedFractals(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4188,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4189,1
    - Dst: BenchmarkRelationToSelf
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4192
      start: 4187
    functionDepth: 1
    functionLinenumber: 4187
    functionLinenumberEnd: 4192
    functionName: BM_IntersectsSelfLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelationToSelf
    - range
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsSelfLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCapBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4200,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4201,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4201,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4202,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4202,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' polygon'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4203
      start: 4198
    functionDepth: 1
    functionLinenumber: 4198
    functionLinenumberEnd: 4203
    functionName: GetBoundingPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - S2Loop::MakeRegularLoop
    - GetCapBound
    - make_unique<S2Polygon>
    - S2Cap::GetRadius
    - cos
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> GetBoundingPolygon(const S2Polygon& polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolygonFactory*::New
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4214,1
    - Dst: GetBoundingPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4215,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4216,1
    - Dst: S2Polygon::InitToDifference
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4217,1
    - Dst: unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4220,1
    - Dst: S2Polygon::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4221,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4224,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' state'
    - factory
    argTypes:
    - benchmark::State
    - PolygonFactory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4226
      start: 4212
    functionDepth: 2
    functionLinenumber: 4212
    functionLinenumberEnd: 4226
    functionName: BenchmarkIntersectsCmpl
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::InitToDifference
    - S2Polygon::ForceBuildIndex
    - GetBoundingPolygon
    - ABSL_CHECK
    - unique_ptr::Intersects
    - unique_ptr::ForceBuildIndex
    - S2Polygon::S2Polygon
    - PolygonFactory*::New
    linkageType: ''
    returnType: void
    signature: "void BenchmarkIntersectsCmpl(benchmark::State& state,\n                                    PolygonFactory*
      factory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4229,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4230,1
    - Dst: BenchmarkIntersectsCmpl
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4233
      start: 4228
    functionDepth: 3
    functionLinenumber: 4228
    functionLinenumberEnd: 4233
    functionName: BM_IntersectsCmplLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkIntersectsCmpl
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsCmplLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4239,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4240,1
    - Dst: BenchmarkIntersectsCmpl
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4243
      start: 4238
    functionDepth: 3
    functionLinenumber: 4238
    functionLinenumberEnd: 4243
    functionName: BM_IntersectsCmplNestedFractals
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkIntersectsCmpl
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsCmplNestedFractals(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4253,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4254,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4260,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4262,1
    - Dst: PolygonFactory*::New
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4264,1
    - Dst: unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4266,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4267,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4268,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4270,1
    - Dst: S2Polygon::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4274,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ' state'
    - max_cells
    - factory
    argTypes:
    - benchmark::State
    - int
    - PolygonFactory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4279
      start: 4250
    functionDepth: 7
    functionLinenumber: 4250
    functionLinenumberEnd: 4279
    functionName: BenchmarkOpWithCovering
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - PauseTiming
    - ResumeTiming
    - S2Polygon::ForceBuildIndex
    - S2RegionCoverer::mutable_options
    - vector::size
    - S2RegionCoverer::GetCovering
    - unique_ptr::ForceBuildIndex
    - S2Polygon::S2Polygon
    - S2RegionCoverer::S2RegionCoverer
    - absl::GetFlag
    - PolygonFactory*::New
    linkageType: ''
    returnType: void
    signature: "void BenchmarkOpWithCovering(\n    benchmark::State& state, int max_cells,
      PolygonFactory* factory,\n    void (S2Polygon::*method)(const S2Polygon& a,
      const S2Polygon& b))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4284,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4285,1
    - Dst: BenchmarkOpWithCovering
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4289
      start: 4283
    functionDepth: 8
    functionLinenumber: 4283
    functionLinenumberEnd: 4289
    functionName: BM_IntersectFractalWithCovering
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkOpWithCovering
    linkageType: ''
    returnType: void
    signature: void BM_IntersectFractalWithCovering(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4297,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4298,1
    - Dst: BenchmarkOpWithCovering
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4304
      start: 4296
    functionDepth: 8
    functionLinenumber: 4296
    functionLinenumberEnd: 4304
    functionName: BM_IntersectLoopGridWithCovering
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkOpWithCovering
    linkageType: ''
    returnType: void
    signature: void BM_IntersectLoopGridWithCovering(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4317,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4319,1
    - Dst: PolygonFactory*::New
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4321,1
    - Dst: std::make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4324,1
    - Dst: unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4326,1
    - Dst: ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4327,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4328,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' state'
    - factory
    argTypes:
    - benchmark::State
    - PolygonFactory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4333
      start: 4310
    functionDepth: 1
    functionLinenumber: 4310
    functionLinenumberEnd: 4333
    functionName: BenchmarkOpWithSelf
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - PauseTiming
    - ResumeTiming
    - unique_ptr::ForceBuildIndex
    - std::make_unique<S2Polygon>
    - S2Polygon::S2Polygon
    - ForceBuildIndex
    - absl::GetFlag
    - PolygonFactory*::New
    linkageType: ''
    returnType: void
    signature: "void BenchmarkOpWithSelf(benchmark::State& state,\n                                PolygonFactory*
      factory,\n                                void (S2Polygon::*method)(const S2Polygon&
      a,\n                                                          const S2Polygon&
      b))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4336,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4337,1
    - Dst: BenchmarkOpWithSelf
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4335
    functionDepth: 2
    functionLinenumber: 4335
    functionLinenumberEnd: 4340
    functionName: BM_UnionNestedFractalWithSelf
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkOpWithSelf
    - range
    linkageType: ''
    returnType: void
    signature: void BM_UnionNestedFractalWithSelf(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4344,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4345,1
    - Dst: BenchmarkOpWithSelf
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4348
      start: 4343
    functionDepth: 2
    functionLinenumber: 4343
    functionLinenumberEnd: 4348
    functionName: BM_IntersectNestedFractalWithSelf
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkOpWithSelf
    - range
    linkageType: ''
    returnType: void
    signature: void BM_IntersectNestedFractalWithSelf(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4352,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4353,1
    - Dst: BenchmarkOpWithSelf
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4351
    functionDepth: 2
    functionLinenumber: 4351
    functionLinenumberEnd: 4356
    functionName: BM_SubtractNestedFractalFromSelf
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkOpWithSelf
    - range
    linkageType: ''
    returnType: void
    signature: void BM_SubtractNestedFractalFromSelf(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4367,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4369,1
    - Dst: PolygonFactory*::New
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4371,1
    - Dst: GetBoundingPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4372,1
    - Dst: unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4374,1
    - Dst: ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4375,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4376,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' state'
    - factory
    argTypes:
    - benchmark::State
    - PolygonFactory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4381
      start: 4361
    functionDepth: 2
    functionLinenumber: 4361
    functionLinenumberEnd: 4381
    functionName: BenchmarkOpWithBound
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - PauseTiming
    - ResumeTiming
    - GetBoundingPolygon
    - unique_ptr::ForceBuildIndex
    - S2Polygon::S2Polygon
    - ForceBuildIndex
    - absl::GetFlag
    - PolygonFactory*::New
    linkageType: ''
    returnType: void
    signature: "void BenchmarkOpWithBound(\n    benchmark::State& state, PolygonFactory*
      factory,\n    void (S2Polygon::*method)(const S2Polygon& a, const S2Polygon&
      b))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4384,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4385,1
    - Dst: BenchmarkOpWithBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4388
      start: 4383
    functionDepth: 3
    functionLinenumber: 4383
    functionLinenumberEnd: 4388
    functionName: BM_UnionLoopGridWithBound
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkOpWithBound
    linkageType: ''
    returnType: void
    signature: void BM_UnionLoopGridWithBound(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4392,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4393,1
    - Dst: BenchmarkOpWithBound
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4396
      start: 4391
    functionDepth: 3
    functionLinenumber: 4391
    functionLinenumberEnd: 4396
    functionName: BM_SubtractBoundFromLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkOpWithBound
    linkageType: ''
    returnType: void
    signature: void BM_SubtractBoundFromLoopGrid(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4400,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4401,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4403,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4403,1
    - Dst: S2Polygon::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4406,1
    - Dst: S2Polygon::Shape::edge
      Src: /src/s2geometry/src/s2/s2polygon_test.cc:4411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4399
    functionDepth: 2
    functionLinenumber: 4399
    functionLinenumberEnd: 4413
    functionName: BM_ShapeGetEdge
    functionSourceFile: /src/s2geometry/src/s2/s2polygon_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::Shape::edge
    - S2Polygon::ForceBuildIndex
    - S2Point
    - S2Testing::ConcentricLoopsPolygon
    - range
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void BM_ShapeGetEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: s2builderutil::GraphClone::GraphClone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GraphClone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GraphClone::Init
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - S2Builder::Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: s2builderutil::GraphClone::GraphClone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached:
    - s2builderutil::GraphClone::Init
    linkageType: ''
    returnType: void
    signature: void GraphClone(const S2Builder::Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& graph()'
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::Graph
    signature: S2Builder::Graph & graph()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' graph_options'
    - gc
    argTypes:
    - S2Builder::GraphOptions
    - GraphClone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: s2builderutil::GraphCloningLayer::GraphCloningLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GraphCloningLayer(const S2Builder::GraphOptions& graph_options,\n
      \                   GraphClone* gc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: s2builderutil::GraphCloningLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions
    signature: S2Builder::GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Builder::Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: s2builderutil::GraphCloningLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: void Build(const S2Builder::Graph& g, S2Error* absl_nonnull error)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' graph_options'
    - graphs
    - clones
    argTypes:
    - S2Builder::GraphOptions
    - std::vector<S2Builder::Graph>*
    - std::vector<std::unique_ptr<GraphClone>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: s2builderutil::GraphAppendingLayer::GraphAppendingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GraphAppendingLayer(\n      const S2Builder::GraphOptions& graph_options,\n
      \     std::vector<S2Builder::Graph>* graphs,\n      std::vector<std::unique_ptr<GraphClone>>*
      clones)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: s2builderutil::GraphAppendingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions
    signature: S2Builder::GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:95,1
    - Dst: std::make_unique<GraphClone>
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:95,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:96,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Builder::Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: s2builderutil::GraphAppendingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached:
    - std::make_unique<GraphClone>
    - push_back
    - back
    linkageType: ''
    returnType: void
    signature: void Build(const S2Builder::Graph& g, S2Error* absl_nonnull error)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' graph_options'
    - index
    argTypes:
    - S2Builder::GraphOptions
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: s2builderutil::IndexMatchingLayer::IndexMatchingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void IndexMatchingLayer(const S2Builder::GraphOptions& graph_options,\n
      \                             const S2ShapeIndex* index, int dimension = -1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: s2builderutil::IndexMatchingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: s2builderutil::GraphClone::GraphClone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GraphClone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GraphClone::Init
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - S2Builder::Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: s2builderutil::GraphClone::GraphClone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached:
    - s2builderutil::GraphClone::Init
    linkageType: ''
    returnType: void
    signature: void GraphClone(const S2Builder::Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& graph()'
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::Graph
    signature: S2Builder::Graph & graph()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' graph_options'
    - gc
    argTypes:
    - S2Builder::GraphOptions
    - GraphClone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: s2builderutil::GraphCloningLayer::GraphCloningLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GraphCloningLayer(const S2Builder::GraphOptions& graph_options,\n
      \                   GraphClone* gc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: s2builderutil::GraphCloningLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions
    signature: S2Builder::GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Builder::Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: s2builderutil::GraphCloningLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: void Build(const S2Builder::Graph& g, S2Error* absl_nonnull error)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' graph_options'
    - graphs
    - clones
    argTypes:
    - S2Builder::GraphOptions
    - std::vector<S2Builder::Graph>*
    - std::vector<std::unique_ptr<GraphClone>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: s2builderutil::GraphAppendingLayer::GraphAppendingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GraphAppendingLayer(\n      const S2Builder::GraphOptions& graph_options,\n
      \     std::vector<S2Builder::Graph>* graphs,\n      std::vector<std::unique_ptr<GraphClone>>*
      clones)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: s2builderutil::GraphAppendingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions
    signature: S2Builder::GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:95,1
    - Dst: std::make_unique<GraphClone>
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:95,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:96,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Builder::Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: s2builderutil::GraphAppendingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached:
    - std::make_unique<GraphClone>
    - push_back
    - back
    linkageType: ''
    returnType: void
    signature: void Build(const S2Builder::Graph& g, S2Error* absl_nonnull error)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' graph_options'
    - index
    argTypes:
    - S2Builder::GraphOptions
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: s2builderutil::IndexMatchingLayer::IndexMatchingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void IndexMatchingLayer(const S2Builder::GraphOptions& graph_options,\n
      \                             const S2ShapeIndex* index, int dimension = -1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: s2builderutil::IndexMatchingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: S2Error::S2Error
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - code
    - message
    argTypes:
    - Code
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: S2Error::S2Error
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Error(Code code, absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: S2Error::ok
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ok() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: S2Error::code
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Code
    signature: Code code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: S2Error::ABSL_ATTRIBUTE_LIFETIME_BOUND
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view ABSL_ATTRIBUTE_LIFETIME_BOUND
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: S2Error::Ok
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 1
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error Ok()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: S2Error::Unknown
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error Unknown(absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: S2Error::Unimplemented
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error Unimplemented(absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: S2Error::OutOfRange
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error OutOfRange(absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: S2Error::InvalidArgument
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error InvalidArgument(absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: S2Error::FailedPrecondition
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error FailedPrecondition(absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: S2Error::Internal
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error Internal(absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: S2Error::DataLoss
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error DataLoss(absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: S2Error::ResourceExhausted
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error ResourceExhausted(absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: S2Error::Cancelled
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error Cancelled(absl::string_view message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' error'
    argTypes:
    - std::ostream
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: '& operator<<(std::ostream& os, const S2Error& error)'
    functionSourceFile: /src/s2geometry/src/s2/s2error.h
    functionUses: 0
    functionsReached:
    - message
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:35,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:35,1
    - Dst: PlateCarreeProjection::Interpolate
      Src: /src/s2geometry/src/s2/s2projections_test.cc:36,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:36,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: PlateCarreeProjection::Interpolate
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:43,1
    - Dst: PlateCarreeProjection::Interpolate
      Src: /src/s2geometry/src/s2/s2projections_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:44,1
    - Dst: PlateCarreeProjection::Interpolate
      Src: /src/s2geometry/src/s2/s2projections_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2projections_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - PlateCarreeProjection::Interpolate
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(PlateCarreeProjection, Interpolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:51,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2projections_test.cc:51,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2projections_test.cc:51,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2projections_test.cc:52,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2projections_test.cc:52,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:52,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' projection'
    - ' px'
    - ' x'
    argTypes:
    - Projection
    - R2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: S2::TestProjectUnproject
    functionSourceFile: /src/s2geometry/src/s2/s2projections_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2::ApproxEquals
    - Unproject
    - EXPECT_EQ
    - S2::Project
    linkageType: ''
    returnType: void
    signature: "void TestProjectUnproject(const Projection& projection,\n                          const
      R2Point& px, const S2Point& x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:58,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:58,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:58,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:59,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:59,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:59,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:60,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:60,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:60,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:61,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:61,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:61,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:62,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:62,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:62,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:63,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:63,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2projections_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2::TestProjectUnproject
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(PlateCarreeProjection, ProjectUnproject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2projections_test.cc:68,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:69,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:69,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:69,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:70,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:70,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:70,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:71,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:71,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:71,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:72,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:72,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:72,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:73,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:73,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:73,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:74,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:74,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:74,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:77,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:77,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2projections_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2projections_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::is_infinity
    - S2Point
    - S2::TestProjectUnproject
    - S2LatLng::FromRadians
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(MercatorProjection, ProjectUnproject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:35,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:35,1
    - Dst: PlateCarreeProjection::Interpolate
      Src: /src/s2geometry/src/s2/s2projections_test.cc:36,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:36,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: PlateCarreeProjection::Interpolate
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:43,1
    - Dst: PlateCarreeProjection::Interpolate
      Src: /src/s2geometry/src/s2/s2projections_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:44,1
    - Dst: PlateCarreeProjection::Interpolate
      Src: /src/s2geometry/src/s2/s2projections_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2projections_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - PlateCarreeProjection::Interpolate
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(PlateCarreeProjection, Interpolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2projections_test.cc:51,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2projections_test.cc:51,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2projections_test.cc:51,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2projections_test.cc:52,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2projections_test.cc:52,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:52,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' projection'
    - ' px'
    - ' x'
    argTypes:
    - Projection
    - R2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: S2::TestProjectUnproject
    functionSourceFile: /src/s2geometry/src/s2/s2projections_test.cc
    functionUses: 2
    functionsReached:
    - EXPECT_TRUE
    - S2::ApproxEquals
    - Unproject
    - EXPECT_EQ
    - S2::Project
    linkageType: ''
    returnType: void
    signature: "void TestProjectUnproject(const Projection& projection,\n                          const
      R2Point& px, const S2Point& x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:58,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:58,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:58,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:59,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:59,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:59,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:60,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:60,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:60,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:61,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:61,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:61,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:62,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:62,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:62,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:63,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:63,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2projections_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2::TestProjectUnproject
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(PlateCarreeProjection, ProjectUnproject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2projections_test.cc:68,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:69,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:69,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:69,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:70,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:70,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:70,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:71,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:71,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:71,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:72,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:72,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:72,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:73,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:73,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:73,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:74,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:74,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:74,1
    - Dst: S2::TestProjectUnproject
      Src: /src/s2geometry/src/s2/s2projections_test.cc:77,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2projections_test.cc:77,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2projections_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: S2::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2projections_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::is_infinity
    - S2Point
    - S2::TestProjectUnproject
    - S2LatLng::FromRadians
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(MercatorProjection, ProjectUnproject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:30,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:33,1
    - Dst: auto::num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:34,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:34,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:35,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:35,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:36,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:36,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:37,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:39,1
    - Dst: s2shapeutil::CountEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:40,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:41,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:42,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:43,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - auto::num_shape_ids
    - auto::shape
    - EXPECT_EQ
    - s2shapeutil::CountEdgesUpTo
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::CountEdges
    linkageType: ''
    returnType: void
    signature: void TEST(CountEdgesUpTo, StopsEarly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:30,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:33,1
    - Dst: auto::num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:34,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:34,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:35,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:35,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:36,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:36,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:37,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:39,1
    - Dst: s2shapeutil::CountEdges
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:40,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:41,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:42,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:43,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - auto::num_shape_ids
    - auto::shape
    - EXPECT_EQ
    - s2shapeutil::CountEdgesUpTo
    - s2textformat::MakeIndexOrDie
    - s2shapeutil::CountEdges
    linkageType: ''
    returnType: void
    signature: void TEST(CountEdgesUpTo, StopsEarly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:38,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:39,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:40,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:41,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:42,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:43,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:44,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:45,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:46,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:47,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:48,1
    - Dst: ValueLexicon::size
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:49,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:50,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:51,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:52,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:53,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ValueLexicon::size
    - ValueLexicon::Add
    - ValueLexicon::value
    linkageType: ''
    returnType: void
    signature: void TEST(ValueLexicon, DuplicateValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:58,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:59,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:60,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:60,1
    - Dst: ValueLexicon::Clear
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:62,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:63,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:64,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ValueLexicon::Clear
    - ValueLexicon::Add
    linkageType: ''
    returnType: void
    signature: void TEST(ValueLexicon, Clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:72,1
    - Dst: memcmp
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:72,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:73,1
    - Dst: memcmp
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:73,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:74,1
    - Dst: memcmp
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:75,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:76,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:77,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:78,1
    - Dst: ValueLexicon::size
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:79,1
    - Dst: memcmp
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:79,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - memcmp
    - ValueLexicon::value
    - EXPECT_NE
    - EXPECT_EQ
    - ValueLexicon::size
    - ValueLexicon::Add
    linkageType: ''
    returnType: void
    signature: void TEST(ValueLexicon, FloatEquality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<ValueLexicon<int64_t>>
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:84,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:84,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:87,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:88,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:89,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - auto::reset
    - auto::value
    - make_unique<ValueLexicon<int64_t>>
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ValueLexicon, CopyConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<ValueLexicon<int64_t>>
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:94,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:94,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:95,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:97,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:98,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:99,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - auto::reset
    - std::move
    - auto::value
    - make_unique<ValueLexicon<int64_t>>
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ValueLexicon, MoveConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<ValueLexicon<int64_t>>
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:104,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:106,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:107,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:107,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:111,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:112,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:113,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - auto::reset
    - ValueLexicon::value
    - make_unique<ValueLexicon<int64_t>>
    - EXPECT_EQ
    - ValueLexicon::Add
    linkageType: ''
    returnType: void
    signature: void TEST(ValueLexicon, CopyAssignmentOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<ValueLexicon<int64_t>>
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:118,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:120,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:121,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:121,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:122,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:124,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:125,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:126,1
    - Dst: ValueLexicon::value
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - auto::reset
    - std::move
    - ValueLexicon::value
    - make_unique<ValueLexicon<int64_t>>
    - EXPECT_EQ
    - ValueLexicon::Add
    linkageType: ''
    returnType: void
    signature: void TEST(ValueLexicon, MoveAssignmentOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:133,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: BM_AddInt64
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - KeepRunningBatch
    - ValueLexicon::Add
    linkageType: ''
    returnType: void
    signature: void BM_AddInt64(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:143,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:146,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: BM_AddS2Point
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - KeepRunningBatch
    - ValueLexicon::Add
    linkageType: ''
    returnType: void
    signature: void BM_AddS2Point(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:153,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:156,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:156,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:157,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: BM_AddS2PointPairs
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - KeepRunningBatch
    - ValueLexicon::Add
    linkageType: ''
    returnType: void
    signature: void BM_AddS2PointPairs(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:166,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:166,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:168,1
    - Dst: ValueLexicon::Add
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:170,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/value_lexicon_test.cc:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: BM_FindS2Point
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - KeepRunningBatch
    - ValueLexicon::Add
    linkageType: ''
    returnType: void
    signature: void BM_FindS2Point(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::LaxPolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polyline
    - ' options'
    argTypes:
    - S2LaxPolylineShape*
    - LaxPolylineLayer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: s2builderutil::LaxPolylineLayer::LaxPolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: "void LaxPolylineLayer::LaxPolylineLayer(S2LaxPolylineShape* polyline,\n
      \                                  const LaxPolylineLayer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::LaxPolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polyline
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2LaxPolylineShape*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: s2builderutil::LaxPolylineLayer::LaxPolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: "void LaxPolylineLayer::LaxPolylineLayer(\n    S2LaxPolylineShape*
      polyline, LabelSetIds* label_set_ids,\n    IdSetLexicon* label_set_lexicon,
      const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - polyline
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2LaxPolylineShape*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: s2builderutil::LaxPolylineLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void LaxPolylineLayer::Init(S2LaxPolylineShape* polyline,\n                            LabelSetIds*
      label_set_ids,\n                            IdSetLexicon* label_set_lexicon,\n
      \                           const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:71,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: s2builderutil::LaxPolylineLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - edge_type
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions LaxPolylineLayer::graph_options() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:76,1
    - Dst: s2builderutil::LaxPolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:77,1
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:81,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:82,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:83,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:89,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:89,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:90,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:90,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:90,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:92,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:92,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:92,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:95,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:97,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:97,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:99,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:100,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:100,1
    - Dst: s2builderutil::LaxPolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 104
    functionName: s2builderutil::LaxPolylineLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Add
    - edge_type
    - reserve
    - S2Error
    - num_edges
    - size
    - vector::reserve
    - Graph::LabelFetcher::Fetch
    - push_back
    - vertex
    - edge
    - GetPolylines
    - vector::size
    - s2builderutil::LaxPolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: void LaxPolylineLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::LaxPolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polyline
    - ' options'
    argTypes:
    - S2LaxPolylineShape*
    - LaxPolylineLayer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: s2builderutil::LaxPolylineLayer::LaxPolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: "void LaxPolylineLayer::LaxPolylineLayer(S2LaxPolylineShape* polyline,\n
      \                                  const LaxPolylineLayer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::LaxPolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polyline
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2LaxPolylineShape*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: s2builderutil::LaxPolylineLayer::LaxPolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: "void LaxPolylineLayer::LaxPolylineLayer(\n    S2LaxPolylineShape*
      polyline, LabelSetIds* label_set_ids,\n    IdSetLexicon* label_set_lexicon,
      const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - polyline
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2LaxPolylineShape*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: s2builderutil::LaxPolylineLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 5
    functionsReached:
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void LaxPolylineLayer::Init(S2LaxPolylineShape* polyline,\n                            LabelSetIds*
      label_set_ids,\n                            IdSetLexicon* label_set_lexicon,\n
      \                           const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:71,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: s2builderutil::LaxPolylineLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - edge_type
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions LaxPolylineLayer::graph_options() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:76,1
    - Dst: s2builderutil::LaxPolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:77,1
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:81,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:82,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:83,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:89,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:89,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:90,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:90,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:90,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:92,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:92,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:92,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:95,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:97,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:97,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:99,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:100,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:100,1
    - Dst: s2builderutil::LaxPolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 104
    functionName: s2builderutil::LaxPolylineLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Add
    - edge_type
    - reserve
    - S2Error
    - num_edges
    - size
    - vector::reserve
    - Graph::LabelFetcher::Fetch
    - push_back
    - vertex
    - edge
    - GetPolylines
    - vector::size
    - s2builderutil::LaxPolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: void LaxPolylineLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: s2builderutil::IndexedS2PolylineVectorLayer::IndexedS2PolylineVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached:
    - Options
    linkageType: ''
    returnType: void
    signature: "void IndexedS2PolylineVectorLayer(MutableS2ShapeIndex* index,\n                                        const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolylineVectorLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: s2builderutil::IndexedS2PolylineVectorLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 1
    functionsReached:
    - s2builderutil::IndexedS2PolylineVectorLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolylineVectorLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:199,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:200,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:202,1
    - Dst: std::make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:203,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: s2builderutil::IndexedS2PolylineVectorLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 1
    functionsReached:
    - Add
    - std::make_unique<S2Polyline::OwningShape>
    - std::move
    - s2builderutil::IndexedS2PolylineVectorLayer::Build
    - ok
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: S2PolylineVectorLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineVectorLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: S2PolylineVectorLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineVectorLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: S2PolylineVectorLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType S2PolylineVectorLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: "S2PolylineVectorLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: S2PolylineVectorLayer::Options::polyline_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PolylineVectorLayer::Options::PolylineType
    signature: S2PolylineVectorLayer::Options::PolylineType S2PolylineVectorLayer::Options::polyline_type()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - polyline_type
    argTypes:
    - PolylineType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: "S2PolylineVectorLayer::Options::set_polyline_type(\n    PolylineType
      polyline_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_polyline_type(\n    PolylineType
      polyline_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: S2PolylineVectorLayer::Options::duplicate_edges() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PolylineVectorLayer::Options::DuplicateEdges
    signature: S2PolylineVectorLayer::Options::DuplicateEdges S2PolylineVectorLayer::Options::duplicate_edges()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duplicate_edges
    argTypes:
    - DuplicateEdges
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: "S2PolylineVectorLayer::Options::set_duplicate_edges(\n    DuplicateEdges
      duplicate_edges)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_duplicate_edges(\n    DuplicateEdges
      duplicate_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: S2PolylineVectorLayer::Options::sibling_pairs() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PolylineVectorLayer::Options::SiblingPairs
    signature: S2PolylineVectorLayer::Options::SiblingPairs S2PolylineVectorLayer::Options::sibling_pairs()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sibling_pairs
    argTypes:
    - SiblingPairs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: "S2PolylineVectorLayer::Options::set_sibling_pairs(\n    SiblingPairs
      sibling_pairs)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_sibling_pairs(\n    SiblingPairs
      sibling_pairs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: S2PolylineVectorLayer::Options::validate() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2PolylineVectorLayer::Options::validate() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - validate
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: S2PolylineVectorLayer::Options::set_validate(bool validate)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached:
    - set_s2debug_override
    linkageType: ''
    returnType: void
    signature: void S2PolylineVectorLayer::Options::set_validate(bool validate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: S2PolylineVectorLayer::Options::s2debug_override() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Debug
    signature: S2Debug S2PolylineVectorLayer::Options::s2debug_override() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s2debug_override
    argTypes:
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: "S2PolylineVectorLayer::Options::set_s2debug_override(\n    S2Debug
      s2debug_override)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_s2debug_override(\n    S2Debug
      s2debug_override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: s2builderutil::IndexedS2PolylineVectorLayer::IndexedS2PolylineVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached:
    - Options
    linkageType: ''
    returnType: void
    signature: "void IndexedS2PolylineVectorLayer(MutableS2ShapeIndex* index,\n                                        const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolylineVectorLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: s2builderutil::IndexedS2PolylineVectorLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 2
    functionsReached:
    - s2builderutil::IndexedS2PolylineVectorLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolylineVectorLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:199,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:200,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:202,1
    - Dst: std::make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:203,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: s2builderutil::IndexedS2PolylineVectorLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 2
    functionsReached:
    - Add
    - std::make_unique<S2Polyline::OwningShape>
    - std::move
    - s2builderutil::IndexedS2PolylineVectorLayer::Build
    - ok
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: S2PolylineVectorLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineVectorLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: S2PolylineVectorLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineVectorLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: S2PolylineVectorLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType S2PolylineVectorLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: "S2PolylineVectorLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: S2PolylineVectorLayer::Options::polyline_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PolylineVectorLayer::Options::PolylineType
    signature: S2PolylineVectorLayer::Options::PolylineType S2PolylineVectorLayer::Options::polyline_type()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - polyline_type
    argTypes:
    - PolylineType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: "S2PolylineVectorLayer::Options::set_polyline_type(\n    PolylineType
      polyline_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_polyline_type(\n    PolylineType
      polyline_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: S2PolylineVectorLayer::Options::duplicate_edges() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PolylineVectorLayer::Options::DuplicateEdges
    signature: S2PolylineVectorLayer::Options::DuplicateEdges S2PolylineVectorLayer::Options::duplicate_edges()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duplicate_edges
    argTypes:
    - DuplicateEdges
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: "S2PolylineVectorLayer::Options::set_duplicate_edges(\n    DuplicateEdges
      duplicate_edges)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_duplicate_edges(\n    DuplicateEdges
      duplicate_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: S2PolylineVectorLayer::Options::sibling_pairs() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PolylineVectorLayer::Options::SiblingPairs
    signature: S2PolylineVectorLayer::Options::SiblingPairs S2PolylineVectorLayer::Options::sibling_pairs()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sibling_pairs
    argTypes:
    - SiblingPairs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: "S2PolylineVectorLayer::Options::set_sibling_pairs(\n    SiblingPairs
      sibling_pairs)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_sibling_pairs(\n    SiblingPairs
      sibling_pairs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: S2PolylineVectorLayer::Options::validate() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2PolylineVectorLayer::Options::validate() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - validate
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: S2PolylineVectorLayer::Options::set_validate(bool validate)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached:
    - set_s2debug_override
    linkageType: ''
    returnType: void
    signature: void S2PolylineVectorLayer::Options::set_validate(bool validate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: S2PolylineVectorLayer::Options::s2debug_override() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Debug
    signature: S2Debug S2PolylineVectorLayer::Options::s2debug_override() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s2debug_override
    argTypes:
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: "S2PolylineVectorLayer::Options::set_s2debug_override(\n    S2Debug
      s2debug_override)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Options::set_s2debug_override(\n    S2Debug
      s2debug_override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: S2::STtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double STtoUV(double s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: S2::UVtoST
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double UVtoST(double u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2coords.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: S2::STtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - tan
    linkageType: ''
    returnType: double
    signature: double STtoUV(double s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atan
      Src: /src/s2geometry/src/s2/s2coords.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: S2::UVtoST
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - std::atan
    linkageType: ''
    returnType: double
    signature: double UVtoST(double u)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: S2::STtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double STtoUV(double s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/s2geometry/src/s2/s2coords.h:330,1
    - Dst: std::sqrt
      Src: /src/s2geometry/src/s2/s2coords.h:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - u
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: S2::UVtoST
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double UVtoST(double u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: S2::IJtoSTMin
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double IJtoSTMin(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:346,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/s2coords.h:346,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/s2coords.h:349,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2coords.h:355,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2coords.h:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: S2::STtoIJ
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_FALSE
    - min
    - std::isnan
    - static_cast<int>
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int STtoIJ(double s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2coords.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - si
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: S2::SiTitoST
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    linkageType: ''
    returnType: double
    signature: double SiTitoST(unsigned int si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/s2geometry/src/s2/s2coords.h:365,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2coords.h:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: S2::STtoSiTi
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - MathUtil::Round<int64_t>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int STtoSiTi(double s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:371,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:372,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:373,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:374,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:375,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:379,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.h:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - face
    - u
    - v
    argTypes:
    - int
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 383
    functionName: S2::FaceUVtoXYZ
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 2
    functionsReached:
    - S2Point
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point FaceUVtoXYZ(int face, double u, double v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - face
    - ' uv'
    argTypes:
    - int
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: S2::FaceUVtoXYZ
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 3
    functionsReached:
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point FaceUVtoXYZ(int face, const R2Point& uv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2coords.h:391,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2coords.h:391,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2coords.h:391,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.h:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - face
    - ' p'
    - pu
    - pv
    argTypes:
    - int
    - S2Point
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 403
    functionName: S2::ValidFaceXYZtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - DotProd
    - ABSL_DCHECK_GT
    - S2::GetNorm
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void ValidFaceXYZtoUV(int face, const S2Point& p,\n                             double*
      pu, double* pv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2coords.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - face
    - ' p'
    - puv
    argTypes:
    - int
    - S2Point
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: S2::ValidFaceXYZtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - S2::ValidFaceXYZtoUV
    linkageType: ''
    returnType: void
    signature: void ValidFaceXYZtoUV(int face, const S2Point& p, R2Point* puv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LargestAbsComponent
      Src: /src/s2geometry/src/s2/s2coords.h:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: S2::GetFace
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - LargestAbsComponent
    linkageType: ''
    returnType: int
    signature: int GetFace(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2coords.h:416,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2coords.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' p'
    - pu
    - pv
    argTypes:
    - S2Point
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: S2::XYZtoFaceUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - S2::ValidFaceXYZtoUV
    - S2::GetFace
    linkageType: ''
    returnType: int
    signature: int XYZtoFaceUV(const S2Point& p, double* pu, double* pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2coords.h:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - puv
    argTypes:
    - S2Point
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: S2::XYZtoFaceUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - S2::XYZtoFaceUV
    linkageType: ''
    returnType: int
    signature: int XYZtoFaceUV(const S2Point& p, R2Point* puv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2coords.h:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - face
    - ' p'
    - pu
    - pv
    argTypes:
    - int
    - S2Point
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 434
    functionName: S2::FaceXYZtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 2
    functionsReached:
    - S2::ValidFaceXYZtoUV
    linkageType: ''
    returnType: bool
    signature: "bool FaceXYZtoUV(int face, const S2Point& p,\n                        double*
      pu, double* pv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2coords.h:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - face
    - ' p'
    - puv
    argTypes:
    - int
    - S2Point
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: S2::FaceXYZtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 3
    functionsReached:
    - S2::FaceXYZtoUV
    linkageType: ''
    returnType: bool
    signature: bool FaceXYZtoUV(int face, const S2Point& p, R2Point* puv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:443,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:444,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:445,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:446,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:447,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:448,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.h:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - face
    - u
    argTypes:
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 452
    functionName: S2::GetUNorm
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - S2Point
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetUNorm(int face, double u)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:457,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:460,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:462,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.h:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - face
    - v
    argTypes:
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 466
    functionName: S2::GetVNorm
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - S2Point
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetVNorm(int face, double v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 470
    functionName: S2::GetNorm
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 2
    functionsReached:
    - S2::GetUVWAxis
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetNorm(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: S2::GetUAxis
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - S2::GetUVWAxis
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetUAxis(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 478
    functionName: S2::GetVAxis
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - S2::GetUVWAxis
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetVAxis(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - face
    - axis
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: S2::GetUVWAxis
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 3
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetUVWAxis(int face, int axis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:486,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:487,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - face
    - axis
    - direction
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: S2::GetUVWFace
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int GetUVWFace(int face, int axis, int direction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: S2::STtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double STtoUV(double s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: S2::UVtoST
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double UVtoST(double u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2coords.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: S2::STtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - tan
    linkageType: ''
    returnType: double
    signature: double STtoUV(double s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atan
      Src: /src/s2geometry/src/s2/s2coords.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: S2::UVtoST
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - std::atan
    linkageType: ''
    returnType: double
    signature: double UVtoST(double u)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: S2::STtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double STtoUV(double s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/s2geometry/src/s2/s2coords.h:330,1
    - Dst: std::sqrt
      Src: /src/s2geometry/src/s2/s2coords.h:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - u
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: S2::UVtoST
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double UVtoST(double u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: S2::IJtoSTMin
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double IJtoSTMin(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:346,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/s2coords.h:346,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/s2coords.h:349,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2coords.h:355,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2coords.h:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: S2::STtoIJ
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_FALSE
    - min
    - std::isnan
    - static_cast<int>
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int STtoIJ(double s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2coords.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - si
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: S2::SiTitoST
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    linkageType: ''
    returnType: double
    signature: double SiTitoST(unsigned int si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/s2geometry/src/s2/s2coords.h:365,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2coords.h:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: S2::STtoSiTi
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - MathUtil::Round<int64_t>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int STtoSiTi(double s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:371,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:372,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:373,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:374,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:375,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:379,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.h:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - face
    - u
    - v
    argTypes:
    - int
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 383
    functionName: S2::FaceUVtoXYZ
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 3
    functionsReached:
    - S2Point
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point FaceUVtoXYZ(int face, double u, double v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - face
    - ' uv'
    argTypes:
    - int
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: S2::FaceUVtoXYZ
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 4
    functionsReached:
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point FaceUVtoXYZ(int face, const R2Point& uv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2coords.h:391,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2coords.h:391,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2coords.h:391,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.h:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - face
    - ' p'
    - pu
    - pv
    argTypes:
    - int
    - S2Point
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 403
    functionName: S2::ValidFaceXYZtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 3
    functionsReached:
    - DotProd
    - ABSL_DCHECK_GT
    - S2::GetNorm
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void ValidFaceXYZtoUV(int face, const S2Point& p,\n                             double*
      pu, double* pv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2coords.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - face
    - ' p'
    - puv
    argTypes:
    - int
    - S2Point
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: S2::ValidFaceXYZtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 4
    functionsReached:
    - S2::ValidFaceXYZtoUV
    linkageType: ''
    returnType: void
    signature: void ValidFaceXYZtoUV(int face, const S2Point& p, R2Point* puv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LargestAbsComponent
      Src: /src/s2geometry/src/s2/s2coords.h:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: S2::GetFace
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - LargestAbsComponent
    linkageType: ''
    returnType: int
    signature: int GetFace(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2coords.h:416,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2coords.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' p'
    - pu
    - pv
    argTypes:
    - S2Point
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: S2::XYZtoFaceUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 1
    functionsReached:
    - S2::ValidFaceXYZtoUV
    - S2::GetFace
    linkageType: ''
    returnType: int
    signature: int XYZtoFaceUV(const S2Point& p, double* pu, double* pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2coords.h:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - puv
    argTypes:
    - S2Point
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: S2::XYZtoFaceUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 2
    functionsReached:
    - S2::XYZtoFaceUV
    linkageType: ''
    returnType: int
    signature: int XYZtoFaceUV(const S2Point& p, R2Point* puv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2coords.h:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - face
    - ' p'
    - pu
    - pv
    argTypes:
    - int
    - S2Point
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 434
    functionName: S2::FaceXYZtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 3
    functionsReached:
    - S2::ValidFaceXYZtoUV
    linkageType: ''
    returnType: bool
    signature: "bool FaceXYZtoUV(int face, const S2Point& p,\n                        double*
      pu, double* pv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2coords.h:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - face
    - ' p'
    - puv
    argTypes:
    - int
    - S2Point
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: S2::FaceXYZtoUV
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 4
    functionsReached:
    - S2::FaceXYZtoUV
    linkageType: ''
    returnType: bool
    signature: bool FaceXYZtoUV(int face, const S2Point& p, R2Point* puv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:443,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:444,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:445,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:446,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:447,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:448,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.h:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - face
    - u
    argTypes:
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 452
    functionName: S2::GetUNorm
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - S2Point
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetUNorm(int face, double u)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:457,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:460,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:462,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.h:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - face
    - v
    argTypes:
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 466
    functionName: S2::GetVNorm
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - S2Point
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetVNorm(int face, double v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 470
    functionName: S2::GetNorm
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 3
    functionsReached:
    - S2::GetUVWAxis
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetNorm(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: S2::GetUAxis
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - S2::GetUVWAxis
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetUAxis(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 478
    functionName: S2::GetVAxis
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - S2::GetUVWAxis
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetVAxis(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - face
    - axis
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: S2::GetUVWAxis
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 6
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetUVWAxis(int face, int axis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:486,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:487,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2coords.h:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - face
    - axis
    - direction
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: S2::GetUVWFace
    functionSourceFile: /src/s2geometry/src/s2/s2coords.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int GetUVWFace(int face, int axis, int direction)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:109,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:109,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:110,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:110,1
    - Dst: InputVertexEdgeMap*::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:115,1
    - Dst: InputVertexEdgeMap*::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:116,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:119,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:119,1
    - Dst: InputVertexEdgeMap*::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:123,1
    - Dst: InputVertexEdgeMap*::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:125,1
    - Dst: InputVertexEdgeMap*::erase
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:128,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:130,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:131,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:132,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:132,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:135,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:135,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:141,1
    - Dst: vector<S2Point>*::front
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:141,1
    - Dst: InputVertexEdgeMap*::equal_range
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:142,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:142,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:144,1
    - Dst: InputVertexEdgeMap*::erase
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:149,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:150,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:153,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:153,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - ref_v
    - ' g'
    - input_vertex_edge_map
    - chain_in
    - chain_out
    - absl_nonnull
    argTypes:
    - VertexId
    - Graph
    - InputVertexEdgeMap*
    - vector<S2Point>*
    - vector<S2Point>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 158
    functionName: s2builderutil::BuildChain
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - InputVertexEdgeMap*::end
    - InputVertexEdgeMap*::equal_range
    - vector<S2Point>*::push_back
    - InputVertexEdgeMap*::erase
    - InputVertexEdgeMap*::begin
    - S2Error::InvalidArgument
    - vector<S2Point>*::empty
    - vertex
    - vector<S2Point>*::back
    - vector<S2Point>*::front
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool BuildChain(VertexId ref_v, const Graph& g,\n                InputVertexEdgeMap*
      input_vertex_edge_map,\n                vector<S2Point>* chain_in, vector<S2Point>*
      chain_out,\n                S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:164,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:164,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:168,1
    - Dst: S2EdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - chain
    argTypes:
    - S2Point
    - S2Point
    - absl::Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: s2builderutil::GetEdgeWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::SignedEdgeOrVertexCrossing
    - ABSL_DCHECK_GT
    - absl::Span<const S2Point>::size
    linkageType: ''
    returnType: int
    signature: "int GetEdgeWindingDelta(const S2Point& a, const S2Point& b,\n                        absl::Span<const
      S2Point> chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:183,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:187,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:188,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' b0'
    - ' b1'
    - ' b1_snapped'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: s2builderutil::GetConnector
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - S2::RobustCrossProd
    - S2Point::DotProd
    - S2::Interpolate
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetConnector(const S2Point& b0, const S2Point& b1,\n                     const
      S2Point& b1_snapped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:197,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:198,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:198,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - v
    - ' g'
    argTypes:
    - VertexId
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: s2builderutil::GetIncidentEdgesBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - vector::push_back
    - edge
    linkageType: ''
    returnType: vector<EdgeId>
    signature: vector<EdgeId> GetIncidentEdgesBruteForce(VertexId v, const Graph&
      g)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:109,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:109,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:110,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:110,1
    - Dst: InputVertexEdgeMap*::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:115,1
    - Dst: InputVertexEdgeMap*::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:116,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:119,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:119,1
    - Dst: InputVertexEdgeMap*::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:123,1
    - Dst: InputVertexEdgeMap*::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:125,1
    - Dst: InputVertexEdgeMap*::erase
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:128,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:130,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:131,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:132,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:132,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:135,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:135,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:141,1
    - Dst: vector<S2Point>*::front
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:141,1
    - Dst: InputVertexEdgeMap*::equal_range
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:142,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:142,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:144,1
    - Dst: InputVertexEdgeMap*::erase
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:149,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:150,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:153,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:153,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - ref_v
    - ' g'
    - input_vertex_edge_map
    - chain_in
    - chain_out
    - absl_nonnull
    argTypes:
    - VertexId
    - Graph
    - InputVertexEdgeMap*
    - vector<S2Point>*
    - vector<S2Point>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 158
    functionName: s2builderutil::BuildChain
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - InputVertexEdgeMap*::end
    - InputVertexEdgeMap*::equal_range
    - vector<S2Point>*::push_back
    - InputVertexEdgeMap*::erase
    - InputVertexEdgeMap*::begin
    - S2Error::InvalidArgument
    - vector<S2Point>*::empty
    - vertex
    - vector<S2Point>*::back
    - vector<S2Point>*::front
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool BuildChain(VertexId ref_v, const Graph& g,\n                InputVertexEdgeMap*
      input_vertex_edge_map,\n                vector<S2Point>* chain_in, vector<S2Point>*
      chain_out,\n                S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:164,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:164,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:168,1
    - Dst: S2EdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - chain
    argTypes:
    - S2Point
    - S2Point
    - absl::Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: s2builderutil::GetEdgeWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::SignedEdgeOrVertexCrossing
    - ABSL_DCHECK_GT
    - absl::Span<const S2Point>::size
    linkageType: ''
    returnType: int
    signature: "int GetEdgeWindingDelta(const S2Point& a, const S2Point& b,\n                        absl::Span<const
      S2Point> chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:183,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:187,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:188,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' b0'
    - ' b1'
    - ' b1_snapped'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: s2builderutil::GetConnector
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - S2::RobustCrossProd
    - S2Point::DotProd
    - S2::Interpolate
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetConnector(const S2Point& b0, const S2Point& b1,\n                     const
      S2Point& b1_snapped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:197,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:198,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:198,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - v
    - ' g'
    argTypes:
    - VertexId
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: s2builderutil::GetIncidentEdgesBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - vector::push_back
    - edge
    linkageType: ''
    returnType: vector<EdgeId>
    signature: vector<EdgeId> GetIncidentEdgesBruteForce(VertexId v, const Graph&
      g)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:212,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:212,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:213,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:213,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:214,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:214,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:216,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:217,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:218,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:219,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:225,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:226,1
    - Dst: input_edge_filter
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:227,1
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:229,1
    - Dst: InputVertexEdgeMap::insert
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:240,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:240,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:245,1
    - Dst: InputVertexEdgeMap::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:269,1
    - Dst: s2builderutil::BuildChain
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:271,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:275,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:287,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:288,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:288,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:289,1
    - Dst: s2builderutil::GetEdgeWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:290,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:330,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:330,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:331,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:339,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:340,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:340,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:340,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:342,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:343,1
    - Dst: s2builderutil::GetConnector
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:370,1
    - Dst: s2builderutil::GetConnector
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:372,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:372,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:372,1
    - Dst: s2builderutil::GetEdgeWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:380,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:390,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:391,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:391,1
    - Dst: vector::rbegin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:391,1
    - Dst: vector::rend
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:391,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:392,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:393,1
    - Dst: s2builderutil::GetEdgeWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:394,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:398,1
    - Dst: s2builderutil::GetEdgeWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:399,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 7
    argNames:
    - ' ref_in'
    - ref_v
    - incident_edges
    - ' input_edge_filter'
    - ' builder'
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Point
    - VertexId
    - Span<const EdgeId>
    - InputEdgeFilter
    - S2Builder
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 403
    functionName: s2builderutil::GetSnappedWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - S2::Ortho
    - input_edge_ids
    - vector::end
    - vector::back
    - vector::insert
    - InputVertexEdgeMap::insert
    - vector::rend
    - ABSL_DCHECK
    - S2Point::DotProd
    - options
    - make_pair
    - s2builderutil::GetEdgeWindingDelta
    - input_edge_filter
    - s2builderutil::BuildChain
    - vector::push_back
    - s2builderutil::GetConnector
    - ABSL_DCHECK_EQ
    - input_edge
    - InputVertexEdgeMap::empty
    - vector::rbegin
    - size
    - vertex
    - edge
    - S2::RobustCrossProd
    linkageType: ''
    returnType: int
    signature: "int GetSnappedWindingDelta(const S2Point& ref_in, VertexId ref_v,\n
      \                          Span<const EdgeId> incident_edges,\n                           const
      InputEdgeFilter& input_edge_filter,\n                           const S2Builder&
      builder, const Graph& g,\n                           S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GetSnappedWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:410,1
    - Dst: s2builderutil::GetIncidentEdgesBruteForce
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' ref_in'
    - ref_v
    - ' input_edge_filter'
    - ' builder'
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Point
    - S2Builder::Graph::VertexId
    - InputEdgeFilter
    - S2Builder
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 413
    functionName: s2builderutil::GetSnappedWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - s2builderutil::GetIncidentEdgesBruteForce
    - s2builderutil::GetSnappedWindingDelta
    linkageType: ''
    returnType: int
    signature: "int GetSnappedWindingDelta(const S2Point& ref_in,\n                           S2Builder::Graph::VertexId
      ref_v,\n                           const InputEdgeFilter& input_edge_filter,\n
      \                          const S2Builder& builder, const Graph& g,\n                           S2Error*
      absl_nonnull error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:425,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:426,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:429,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:430,1
    - Dst: absl::btree_map::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:435,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:442,1
    - Dst: absl::btree_map::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:442,1
    - Dst: absl::btree_map::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:443,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - input_edge_id
    - ' g'
    argTypes:
    - InputEdgeId
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 444
    functionName: s2builderutil::FindFirstVertexId
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - absl::btree_map::size
    - ABSL_DCHECK_EQ
    - input_edge_ids
    - num_edges
    - absl::btree_map::empty
    - absl::btree_map::begin
    - edge
    linkageType: ''
    returnType: VertexId
    signature: VertexId FindFirstVertexId(InputEdgeId input_edge_id, const Graph&
      g)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:109,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:109,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:110,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:110,1
    - Dst: InputVertexEdgeMap*::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:115,1
    - Dst: InputVertexEdgeMap*::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:116,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:119,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:119,1
    - Dst: InputVertexEdgeMap*::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:123,1
    - Dst: InputVertexEdgeMap*::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:125,1
    - Dst: InputVertexEdgeMap*::erase
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:128,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:130,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:131,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:132,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:132,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:135,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:135,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:141,1
    - Dst: vector<S2Point>*::front
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:141,1
    - Dst: InputVertexEdgeMap*::equal_range
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:142,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:142,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:144,1
    - Dst: InputVertexEdgeMap*::erase
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:149,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:150,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:153,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:153,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - ref_v
    - ' g'
    - input_vertex_edge_map
    - chain_in
    - chain_out
    - absl_nonnull
    argTypes:
    - VertexId
    - Graph
    - InputVertexEdgeMap*
    - vector<S2Point>*
    - vector<S2Point>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 158
    functionName: s2builderutil::BuildChain
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - InputVertexEdgeMap*::end
    - InputVertexEdgeMap*::equal_range
    - vector<S2Point>*::push_back
    - InputVertexEdgeMap*::erase
    - InputVertexEdgeMap*::begin
    - S2Error::InvalidArgument
    - vector<S2Point>*::empty
    - vertex
    - vector<S2Point>*::back
    - vector<S2Point>*::front
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool BuildChain(VertexId ref_v, const Graph& g,\n                InputVertexEdgeMap*
      input_vertex_edge_map,\n                vector<S2Point>* chain_in, vector<S2Point>*
      chain_out,\n                S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:164,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:164,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:168,1
    - Dst: S2EdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - chain
    argTypes:
    - S2Point
    - S2Point
    - absl::Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: s2builderutil::GetEdgeWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - S2EdgeCrosser::SignedEdgeOrVertexCrossing
    - ABSL_DCHECK_GT
    - absl::Span<const S2Point>::size
    linkageType: ''
    returnType: int
    signature: "int GetEdgeWindingDelta(const S2Point& a, const S2Point& b,\n                        absl::Span<const
      S2Point> chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:183,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:187,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:188,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' b0'
    - ' b1'
    - ' b1_snapped'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: s2builderutil::GetConnector
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - S2::RobustCrossProd
    - S2Point::DotProd
    - S2::Interpolate
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetConnector(const S2Point& b0, const S2Point& b1,\n                     const
      S2Point& b1_snapped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:197,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:198,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:198,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - v
    - ' g'
    argTypes:
    - VertexId
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: s2builderutil::GetIncidentEdgesBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - num_edges
    - vector::push_back
    - edge
    linkageType: ''
    returnType: vector<EdgeId>
    signature: vector<EdgeId> GetIncidentEdgesBruteForce(VertexId v, const Graph&
      g)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:109,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:109,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:110,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:110,1
    - Dst: InputVertexEdgeMap*::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:115,1
    - Dst: InputVertexEdgeMap*::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:116,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:119,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:119,1
    - Dst: InputVertexEdgeMap*::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:123,1
    - Dst: InputVertexEdgeMap*::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:125,1
    - Dst: InputVertexEdgeMap*::erase
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:128,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:130,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:131,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:132,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:132,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:135,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:135,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:141,1
    - Dst: vector<S2Point>*::front
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:141,1
    - Dst: InputVertexEdgeMap*::equal_range
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:142,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:142,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:144,1
    - Dst: InputVertexEdgeMap*::erase
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:149,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:150,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:153,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:153,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - ref_v
    - ' g'
    - input_vertex_edge_map
    - chain_in
    - chain_out
    - absl_nonnull
    argTypes:
    - VertexId
    - Graph
    - InputVertexEdgeMap*
    - vector<S2Point>*
    - vector<S2Point>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 158
    functionName: s2builderutil::BuildChain
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - InputVertexEdgeMap*::end
    - InputVertexEdgeMap*::equal_range
    - vector<S2Point>*::push_back
    - InputVertexEdgeMap*::erase
    - InputVertexEdgeMap*::begin
    - S2Error::InvalidArgument
    - vector<S2Point>*::empty
    - vertex
    - vector<S2Point>*::back
    - vector<S2Point>*::front
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool BuildChain(VertexId ref_v, const Graph& g,\n                InputVertexEdgeMap*
      input_vertex_edge_map,\n                vector<S2Point>* chain_in, vector<S2Point>*
      chain_out,\n                S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:164,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:164,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:168,1
    - Dst: S2EdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - chain
    argTypes:
    - S2Point
    - S2Point
    - absl::Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: s2builderutil::GetEdgeWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - S2EdgeCrosser::SignedEdgeOrVertexCrossing
    - ABSL_DCHECK_GT
    - absl::Span<const S2Point>::size
    linkageType: ''
    returnType: int
    signature: "int GetEdgeWindingDelta(const S2Point& a, const S2Point& b,\n                        absl::Span<const
      S2Point> chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:183,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:187,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:188,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' b0'
    - ' b1'
    - ' b1_snapped'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: s2builderutil::GetConnector
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - S2::RobustCrossProd
    - S2Point::DotProd
    - S2::Interpolate
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetConnector(const S2Point& b0, const S2Point& b1,\n                     const
      S2Point& b1_snapped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:197,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:198,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:198,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - v
    - ' g'
    argTypes:
    - VertexId
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: s2builderutil::GetIncidentEdgesBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - num_edges
    - vector::push_back
    - edge
    linkageType: ''
    returnType: vector<EdgeId>
    signature: vector<EdgeId> GetIncidentEdgesBruteForce(VertexId v, const Graph&
      g)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:212,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:212,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:213,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:213,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:214,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:214,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:216,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:217,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:218,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:219,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:225,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:226,1
    - Dst: input_edge_filter
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:227,1
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:229,1
    - Dst: InputVertexEdgeMap::insert
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:240,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:240,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:245,1
    - Dst: InputVertexEdgeMap::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:269,1
    - Dst: s2builderutil::BuildChain
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:271,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:275,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:287,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:288,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:288,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:289,1
    - Dst: s2builderutil::GetEdgeWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:290,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:330,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:330,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:331,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:339,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:340,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:340,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:340,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:342,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:343,1
    - Dst: s2builderutil::GetConnector
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:370,1
    - Dst: s2builderutil::GetConnector
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:372,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:372,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:372,1
    - Dst: s2builderutil::GetEdgeWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:380,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:390,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:391,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:391,1
    - Dst: vector::rbegin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:391,1
    - Dst: vector::rend
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:391,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:392,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:393,1
    - Dst: s2builderutil::GetEdgeWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:394,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:398,1
    - Dst: s2builderutil::GetEdgeWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:399,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 7
    argNames:
    - ' ref_in'
    - ref_v
    - incident_edges
    - ' input_edge_filter'
    - ' builder'
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Point
    - VertexId
    - Span<const EdgeId>
    - InputEdgeFilter
    - S2Builder
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 403
    functionName: s2builderutil::GetSnappedWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 1
    functionsReached:
    - S2::Ortho
    - input_edge_ids
    - vector::end
    - vector::back
    - vector::insert
    - InputVertexEdgeMap::insert
    - vector::rend
    - ABSL_DCHECK
    - S2Point::DotProd
    - options
    - make_pair
    - s2builderutil::GetEdgeWindingDelta
    - input_edge_filter
    - s2builderutil::BuildChain
    - vector::push_back
    - s2builderutil::GetConnector
    - ABSL_DCHECK_EQ
    - input_edge
    - InputVertexEdgeMap::empty
    - vector::rbegin
    - size
    - vertex
    - edge
    - S2::RobustCrossProd
    linkageType: ''
    returnType: int
    signature: "int GetSnappedWindingDelta(const S2Point& ref_in, VertexId ref_v,\n
      \                          Span<const EdgeId> incident_edges,\n                           const
      InputEdgeFilter& input_edge_filter,\n                           const S2Builder&
      builder, const Graph& g,\n                           S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GetSnappedWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:410,1
    - Dst: s2builderutil::GetIncidentEdgesBruteForce
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' ref_in'
    - ref_v
    - ' input_edge_filter'
    - ' builder'
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Point
    - S2Builder::Graph::VertexId
    - InputEdgeFilter
    - S2Builder
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 413
    functionName: s2builderutil::GetSnappedWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 2
    functionsReached:
    - s2builderutil::GetIncidentEdgesBruteForce
    - s2builderutil::GetSnappedWindingDelta
    linkageType: ''
    returnType: int
    signature: "int GetSnappedWindingDelta(const S2Point& ref_in,\n                           S2Builder::Graph::VertexId
      ref_v,\n                           const InputEdgeFilter& input_edge_filter,\n
      \                          const S2Builder& builder, const Graph& g,\n                           S2Error*
      absl_nonnull error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:425,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:426,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:429,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:430,1
    - Dst: absl::btree_map::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:435,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:442,1
    - Dst: absl::btree_map::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:442,1
    - Dst: absl::btree_map::begin
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc:443,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - input_edge_id
    - ' g'
    argTypes:
    - InputEdgeId
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 444
    functionName: s2builderutil::FindFirstVertexId
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    functionUses: 0
    functionsReached:
    - absl::btree_map::size
    - ABSL_DCHECK_EQ
    - input_edge_ids
    - num_edges
    - absl::btree_map::empty
    - absl::btree_map::begin
    - edge
    linkageType: ''
    returnType: VertexId
    signature: VertexId FindFirstVertexId(InputEdgeId input_edge_id, const Graph&
      g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:34,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:34,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:37,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:38,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:38,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:44,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:44,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:47,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:48,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:48,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:51,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:52,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 53
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2textformat::MakeIndexOrDie
    - CountVertices
    linkageType: ''
    returnType: void
    signature: void TEST(CountVertices, CountsCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:34,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:34,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:37,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:38,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:38,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:44,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:44,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:47,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:48,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:48,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:51,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:52,1
    - Dst: CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 53
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2textformat::MakeIndexOrDie
    - CountVertices
    linkageType: ''
    returnType: void
    signature: void TEST(CountVertices, CountsCorrectly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2ShapeIndex::kUndecodedShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:46,1
    - Dst: compare_exchange_strong
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:47,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:47,1
    - Dst: unique_ptr::release
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: EncodedS2ShapeIndex::GetShape
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::release
    - unique_ptr::get
    - EncodedS2ShapeIndex::kUndecodedShape
    - compare_exchange_strong
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape * EncodedS2ShapeIndex::GetShape(int id) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2ShapeIndex::cell_decoded
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:73,1
    - Dst: make_unique<S2ShapeIndexCell>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:77,1
    - Dst: GetDecoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:78,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:79,1
    - Dst: EncodedS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:79,1
    - Dst: EncodedS2ShapeIndex::cell_decoded
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:85,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:88,1
    - Dst: EncodedS2ShapeIndex::set_cell_decoded
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:89,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:90,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:90,1
    - Dst: EncodedS2ShapeIndex::max_cell_cache_size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:90,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:91,1
    - Dst: auto::release
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 94
    functionName: EncodedS2ShapeIndex::GetCell
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - GetDecoder
    - auto::get
    - EncodedS2ShapeIndex::max_cell_cache_size
    - static_cast<size_t>
    - auto::Decode
    - size
    - push_back
    - make_unique<S2ShapeIndexCell>
    - EncodedS2ShapeIndex::num_shape_ids
    - EncodedS2ShapeIndex::cell_decoded
    - EncodedS2ShapeIndex::set_cell_decoded
    - auto::release
    linkageType: ''
    returnType: S2ShapeIndexCell
    signature: S2ShapeIndexCell * EncodedS2ShapeIndex::GetCell(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: EncodedS2ShapeIndex::EncodedS2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex::EncodedS2ShapeIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2ShapeIndex::Minimize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: EncodedS2ShapeIndex::~EncodedS2ShapeIndex()
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - EncodedS2ShapeIndex::Minimize
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex::~EncodedS2ShapeIndex()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2ShapeIndex::Minimize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:107,1
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:109,1
    - Dst: set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:114,1
    - Dst: vector<AtomicShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:119,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:119,1
    - Dst: Clone
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:120,1
    - Dst: EncodedS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:121,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:141,1
    - Dst: S2ShapeIndexCell::S2ShapeIndexCell
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:141,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:141,1
    - Dst: vector<std::atomic<uint64_t>>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:142,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:142,1
    - Dst: EncodedS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - decoder
    - ' shape_factory'
    argTypes:
    - Decoder*
    - ShapeFactory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 145
    functionName: EncodedS2ShapeIndex::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - EncodedS2ShapeIndex::Init
    - vector<AtomicShape>
    - set_max_edges_per_cell
    - EncodedS2ShapeIndex::Minimize
    - vector<std::atomic<uint64_t>>
    - size
    - Clone
    - S2ShapeIndexCell::S2ShapeIndexCell
    - Decoder*::get_varint64
    - reset
    linkageType: ''
    returnType: bool
    signature: "bool EncodedS2ShapeIndex::Init(Decoder* decoder,\n                               const
      ShapeFactory& shape_factory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:149,1
    - Dst: max_edges_per_cell
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:150,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:151,1
    - Dst: EncodedS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:154,1
    - Dst: EncodedS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: EncodedS2ShapeIndex::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - Encoder*::Ensure
    - EncodedS2ShapeIndex::Encode
    - Encoder*::put_varint64
    - max_edges_per_cell
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex::Encode(Encoder* encoder) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:162,1
    - Dst: EncodedS2ShapeIndex::kUndecodedShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:163,1
    - Dst: store
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:164,1
    - Dst: EncodedS2ShapeIndex::kUndecodedShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:164,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:168,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:168,1
    - Dst: EncodedS2ShapeIndex::max_cell_cache_size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:168,1
    - Dst: store
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:174,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:179,1
    - Dst: load
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:180,1
    - Dst: ABSL_ASSUME
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:183,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:184,1
    - Dst: store
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:188,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 192
    functionName: EncodedS2ShapeIndex::Minimize
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.cc
    functionUses: 2
    functionsReached:
    - EncodedS2ShapeIndex::kUndecodedShape
    - EncodedS2ShapeIndex::max_cell_cache_size
    - load
    - static_cast<size_t>
    - size
    - exactfloat_internal::countr_zero
    - clear
    - ABSL_ASSUME
    - store
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex::Minimize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: capacity
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:198,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:199,1
    - Dst: capacity
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:200,1
    - Dst: capacity
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: EncodedS2ShapeIndex::SpaceUsed
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - size
    - capacity
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedS2ShapeIndex::SpaceUsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:41,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:42,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:42,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - MakePointOrDie
    - s2shapeutil::ContainsBruteForce
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ContainsBruteForce, NoInterior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:47,1
    - Dst: auto::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:49,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::GetReferencePoint
    - s2shapeutil::ContainsBruteForce
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ContainsBruteForce, ContainsReferencePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:54,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:54,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:55,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:56,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:58,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:58,1
    - Dst: auto::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:58,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:59,1
    - Dst: auto::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - auto::vertex
    - S2Loop::MakeRegularLoop
    - S1Angle::Degrees
    - auto::Contains
    - MakePointOrDie
    - s2shapeutil::ContainsBruteForce
    - EXPECT_EQ
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(ContainsBruteForce, ConsistentWithS2Loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:41,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:42,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:42,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - MakePointOrDie
    - s2shapeutil::ContainsBruteForce
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ContainsBruteForce, NoInterior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:47,1
    - Dst: auto::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:49,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::GetReferencePoint
    - s2shapeutil::ContainsBruteForce
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ContainsBruteForce, ContainsReferencePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:54,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:54,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:55,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:56,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:58,1
    - Dst: auto::Contains
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:58,1
    - Dst: auto::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:58,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:59,1
    - Dst: auto::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - auto::vertex
    - S2Loop::MakeRegularLoop
    - S1Angle::Degrees
    - auto::Contains
    - MakePointOrDie
    - s2shapeutil::ContainsBruteForce
    - EXPECT_EQ
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(ContainsBruteForce, ConsistentWithS2Loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: ~SnapFunction()
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SnapFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 527
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 991
    functionName: S2Builder::S2Builder
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Builder(const S2Builder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 992
    functionName: '& operator=(const S2Builder&)'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder
    signature: S2Builder & operator=(const S2Builder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - edge_type
    - degenerate_edges
    - duplicate_edges
    - sibling_pairs
    argTypes:
    - EdgeType
    - DegenerateEdges
    - DuplicateEdges
    - SiblingPairs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1016
    functionName: S2Builder::GraphOptions::GraphOptions
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GraphOptions(EdgeType edge_type, DegenerateEdges degenerate_edges,\n
      \              DuplicateEdges duplicate_edges, SiblingPairs sibling_pairs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1026
    functionName: S2Builder::GraphOptions::GraphOptions
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GraphOptions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder.h:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1194
    functionName: S2Builder::SnapFunction::kMaxSnapRadius()
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached:
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Builder::SnapFunction::kMaxSnapRadius()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1199
    functionName: "& S2Builder::Options::snap_function()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::SnapFunction
    signature: "S2Builder::SnapFunction & S2Builder::Options::snap_function()\n    const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/s2builder.h:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' snap_function'
    argTypes:
    - SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1204
    functionName: "S2Builder::Options::set_snap_function(\n    const SnapFunction&
      snap_function)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: "void S2Builder::Options::set_snap_function(\n    const SnapFunction&
      snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1208
    functionName: S2Builder::Options::split_crossing_edges() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2Builder::Options::split_crossing_edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - split_crossing_edges
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1213
    functionName: "S2Builder::Options::set_split_crossing_edges(\n    bool split_crossing_edges)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Builder::Options::set_split_crossing_edges(\n    bool split_crossing_edges)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder.h:1216,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2builder.h:1217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1218
    functionName: S2Builder::Options::intersection_tolerance() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached:
    - split_crossing_edges
    - std::max
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Builder::Options::intersection_tolerance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builder.h:1222,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2builder.h:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - intersection_tolerance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1224
    functionName: "S2Builder::Options::set_intersection_tolerance(\n    S1Angle intersection_tolerance)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached:
    - S1Angle::Zero
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: "void S2Builder::Options::set_intersection_tolerance(\n    S1Angle
      intersection_tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1228
    functionName: S2Builder::Options::simplify_edge_chains() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2Builder::Options::simplify_edge_chains() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_idempotent
      Src: /src/s2geometry/src/s2/s2builder.h:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - simplify_edge_chains
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1240
    functionName: "S2Builder::Options::set_simplify_edge_chains(\n    bool simplify_edge_chains)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached:
    - set_idempotent
    linkageType: ''
    returnType: void
    signature: "void S2Builder::Options::set_simplify_edge_chains(\n    bool simplify_edge_chains)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1244
    functionName: S2Builder::Options::idempotent() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2Builder::Options::idempotent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idempotent
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1248
    functionName: S2Builder::Options::set_idempotent(bool idempotent)
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Builder::Options::set_idempotent(bool idempotent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1252
    functionName: '* S2Builder::Options::memory_tracker() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2MemoryTracker
    signature: S2MemoryTracker * S2Builder::Options::memory_tracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - S2MemoryTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1257
    functionName: "S2Builder::Options::set_memory_tracker(\n    S2MemoryTracker* tracker)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Builder::Options::set_memory_tracker(\n    S2MemoryTracker*
      tracker)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1262
    functionName: S2Builder::GraphOptions::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions::EdgeType
    signature: S2Builder::GraphOptions::EdgeType S2Builder::GraphOptions::edge_type()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1266
    functionName: S2Builder::GraphOptions::set_edge_type(EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Builder::GraphOptions::set_edge_type(EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1271
    functionName: S2Builder::GraphOptions::degenerate_edges() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions::DegenerateEdges
    signature: S2Builder::GraphOptions::DegenerateEdges S2Builder::GraphOptions::degenerate_edges()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - degenerate_edges
    argTypes:
    - DegenerateEdges
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1276
    functionName: "S2Builder::GraphOptions::set_degenerate_edges(\n    DegenerateEdges
      degenerate_edges)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Builder::GraphOptions::set_degenerate_edges(\n    DegenerateEdges
      degenerate_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1281
    functionName: S2Builder::GraphOptions::duplicate_edges() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions::DuplicateEdges
    signature: S2Builder::GraphOptions::DuplicateEdges S2Builder::GraphOptions::duplicate_edges()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duplicate_edges
    argTypes:
    - DuplicateEdges
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1286
    functionName: "S2Builder::GraphOptions::set_duplicate_edges(\n    DuplicateEdges
      duplicate_edges)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Builder::GraphOptions::set_duplicate_edges(\n    DuplicateEdges
      duplicate_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1291
    functionName: S2Builder::GraphOptions::sibling_pairs() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions::SiblingPairs
    signature: S2Builder::GraphOptions::SiblingPairs S2Builder::GraphOptions::sibling_pairs()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sibling_pairs
    argTypes:
    - SiblingPairs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1296
    functionName: "S2Builder::GraphOptions::set_sibling_pairs(\n    SiblingPairs sibling_pairs)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Builder::GraphOptions::set_sibling_pairs(\n    SiblingPairs
      sibling_pairs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1300
    functionName: S2Builder::GraphOptions::allow_vertex_filtering() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2Builder::GraphOptions::allow_vertex_filtering() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allow_vertex_filtering
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1302
    functionDepth: 0
    functionLinenumber: 1302
    functionLinenumberEnd: 1305
    functionName: "S2Builder::GraphOptions::set_allow_vertex_filtering(\n    bool
      allow_vertex_filtering)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Builder::GraphOptions::set_allow_vertex_filtering(\n    bool
      allow_vertex_filtering)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SiteId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1309
    functionName: S2Builder::is_forced
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2Builder::is_forced(SiteId v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder.h:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1313
    functionName: S2Builder::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached:
    - S2Builder::AddEdge
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddPoint(const S2Point& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.h:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1317
    functionName: S2Builder::num_input_edges
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int S2Builder::num_input_edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Edge
      Src: /src/s2geometry/src/s2/s2builder.h:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_edge_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1323
    functionName: S2Builder::input_edge
    functionSourceFile: /src/s2geometry/src/s2/s2builder.h
    functionUses: 0
    functionsReached:
    - S2Shape::Edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2Builder::input_edge(int input_edge_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::LaxPolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polygon
    - ' options'
    argTypes:
    - S2LaxPolygonShape*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: s2builderutil::LaxPolygonLayer::LaxPolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolygonLayer::Init
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::LaxPolygonLayer(S2LaxPolygonShape* polygon,\n
      \                                const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::LaxPolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polygon
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2LaxPolygonShape*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: s2builderutil::LaxPolygonLayer::LaxPolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolygonLayer::Init
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::LaxPolygonLayer(\n    S2LaxPolygonShape* polygon,
      LabelSetIds* label_set_ids,\n    IdSetLexicon* label_set_lexicon, const Options&
      options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - polygon
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2LaxPolygonShape*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: s2builderutil::LaxPolygonLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::Init(\n    S2LaxPolygonShape* polygon, LabelSetIds*
      label_set_ids,\n    IdSetLexicon* label_set_lexicon, const Options& options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:78,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:81,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:81,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:85,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: s2builderutil::LaxPolygonLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - edge_type
    - degenerate_boundaries
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions LaxPolygonLayer::graph_options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:95,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:95,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:97,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:97,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:97,1
    - Dst: vector<vector<S2Point>>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:99,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' g'
    - edge_loops
    - loops
    argTypes:
    - Graph
    - absl::Span<const Graph::EdgeLoop>
    - vector<vector<S2Point>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: s2builderutil::LaxPolygonLayer::AppendPolygonLoops
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - size
    - vector::reserve
    - vector<vector<S2Point>>*::push_back
    - std::move
    - vertex
    - edge
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::AppendPolygonLoops(\n    const Graph& g, absl::Span<const
      Graph::EdgeLoop> edge_loops,\n    vector<vector<S2Point>>* loops) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:108,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:111,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:111,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:113,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:114,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:114,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:116,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' g'
    - edge_loops
    argTypes:
    - Graph
    - absl::Span<const Graph::EdgeLoop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: s2builderutil::LaxPolygonLayer::AppendEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Add
    - edge_type
    - size
    - Graph::LabelFetcher::Fetch
    - vector::reserve
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::AppendEdgeLabels(\n    const Graph& g, absl::Span<const
      Graph::EdgeLoop> edge_loops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:125,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:125,1
    - Dst: absl::Span<const EdgeId>::begin
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:125,1
    - Dst: absl::Span<const EdgeId>::end
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:125,1
    - Dst: vector<Edge>*::clear
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:126,1
    - Dst: vector<InputEdgeIdSetId>*::clear
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:127,1
    - Dst: vector<Edge>*::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:128,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:128,1
    - Dst: vector<InputEdgeIdSetId>*::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:129,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:129,1
    - Dst: absl::Span<const EdgeId>::begin
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:130,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:131,1
    - Dst: absl::Span<const EdgeId>::end
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:132,1
    - Dst: vector<Edge>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:135,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:135,1
    - Dst: vector<InputEdgeIdSetId>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:136,1
    - Dst: input_edge_id_set_id
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:136,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:139,1
    - Dst: absl::Span<const EdgeId>::end
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ' g'
    - edges_to_discard
    - new_edges
    - new_input_edge_id_set_ids
    argTypes:
    - Graph
    - absl::Span<const EdgeId>
    - vector<Edge>*
    - vector<InputEdgeIdSetId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 140
    functionName: s2builderutil::DiscardEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - input_edge_id_set_id
    - vector<Edge>*::clear
    - absl::Span<const EdgeId>::end
    - vector<InputEdgeIdSetId>*::clear
    - vector<Edge>*::push_back
    - vector<InputEdgeIdSetId>*::push_back
    - num_edges
    - vector<Edge>*::reserve
    - edge
    - vector<InputEdgeIdSetId>*::reserve
    - absl::Span<const EdgeId>::begin
    - std::is_sorted
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void DiscardEdges(const Graph& g,\n                         absl::Span<const
      EdgeId> edges_to_discard,\n                         vector<Edge>* new_edges,\n
      \                        vector<InputEdgeIdSetId>* new_input_edge_id_set_ids)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsFullPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:144,1
    - Dst: vector<vector<S2Point>>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' g'
    - loops
    - absl_nonnull
    argTypes:
    - Graph
    - vector<vector<S2Point>>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: s2builderutil::MaybeAddFullLoop
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - vector<vector<S2Point>>*::push_back
    - IsFullPolygon
    linkageType: ''
    returnType: void
    signature: "void MaybeAddFullLoop(const Graph& g, vector<vector<S2Point>>* loops,\n
      \                            S2Error* absl_nonnull error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:155,1
    - Dst: Graph::num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:158,1
    - Dst: MaybeAddFullLoop
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:158,1
    - Dst: s2builderutil::IsFullyDegenerate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:164,1
    - Dst: MaybeAddFullLoop
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:165,1
    - Dst: s2builderutil::FindPolygonDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:173,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:174,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:175,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:175,1
    - Dst: Graph::num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:175,1
    - Dst: auto::empty
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:176,1
    - Dst: MaybeAddFullLoop
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:177,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:179,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:185,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:188,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:190,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:190,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:190,1
    - Dst: DiscardEdges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:191,1
    - Dst: Graph
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:192,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:192,1
    - Dst: Graph::vertices
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:192,1
    - Dst: Graph::input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:194,1
    - Dst: Graph::label_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:194,1
    - Dst: Graph::label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:195,1
    - Dst: Graph::is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:195,1
    - Dst: Graph::GetDirectedLoops
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:199,1
    - Dst: s2builderutil::LaxPolygonLayer::AppendPolygonLoops
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:202,1
    - Dst: s2builderutil::LaxPolygonLayer::AppendEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:203,1
    - Dst: vector<Graph::EdgeLoop>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:204,1
    - Dst: vector<Edge>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:205,1
    - Dst: vector<InputEdgeIdSetId>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:206,1
    - Dst: s2builderutil::LaxPolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:207,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - g
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 208
    functionName: s2builderutil::LaxPolygonLayer::BuildDirected
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - degenerate_boundaries
    - Graph::vertices
    - Graph::GetDirectedLoops
    - Graph::label_set_ids
    - vector::end
    - s2builderutil::IsFullyDegenerate
    - auto::size
    - vector<Edge>
    - Graph::input_edge_id_set_lexicon
    - s2builderutil::LaxPolygonLayer::AppendPolygonLoops
    - ok
    - s2builderutil::LaxPolygonLayer::Init
    - Graph::num_edges
    - Graph::is_full_polygon_predicate
    - Graph
    - MaybeAddFullLoop
    - s2builderutil::LaxPolygonLayer::AppendEdgeLabels
    - Graph::options
    - vector<Graph::EdgeLoop>
    - vector::begin
    - vector::push_back
    - s2builderutil::FindPolygonDegeneracies
    - vector::empty
    - DiscardEdges
    - auto::empty
    - static_cast<size_t>
    - vector<InputEdgeIdSetId>
    - std::sort
    - Graph::label_set_lexicon
    linkageType: ''
    returnType: void
    signature: void LaxPolygonLayer::BuildDirected(Graph g, S2Error* absl_nonnull
      error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:211,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:212,1
    - Dst: s2builderutil::LaxPolygonLayer::BuildDirected
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:213,1
    - Dst: S2Error::Unimplemented
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: s2builderutil::LaxPolygonLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolygonLayer::BuildDirected
    - options
    - S2Error::Unimplemented
    - clear
    linkageType: ''
    returnType: void
    signature: void LaxPolygonLayer::Build(const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::LaxPolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polygon
    - ' options'
    argTypes:
    - S2LaxPolygonShape*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: s2builderutil::LaxPolygonLayer::LaxPolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolygonLayer::Init
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::LaxPolygonLayer(S2LaxPolygonShape* polygon,\n
      \                                const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::LaxPolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polygon
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2LaxPolygonShape*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: s2builderutil::LaxPolygonLayer::LaxPolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolygonLayer::Init
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::LaxPolygonLayer(\n    S2LaxPolygonShape* polygon,
      LabelSetIds* label_set_ids,\n    IdSetLexicon* label_set_lexicon, const Options&
      options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - polygon
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2LaxPolygonShape*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: s2builderutil::LaxPolygonLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 5
    functionsReached:
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::Init(\n    S2LaxPolygonShape* polygon, LabelSetIds*
      label_set_ids,\n    IdSetLexicon* label_set_lexicon, const Options& options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:78,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:81,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:81,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:85,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: s2builderutil::LaxPolygonLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - edge_type
    - degenerate_boundaries
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions LaxPolygonLayer::graph_options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:95,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:95,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:97,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:97,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:97,1
    - Dst: vector<vector<S2Point>>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:99,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' g'
    - edge_loops
    - loops
    argTypes:
    - Graph
    - absl::Span<const Graph::EdgeLoop>
    - vector<vector<S2Point>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: s2builderutil::LaxPolygonLayer::AppendPolygonLoops
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - size
    - vector::reserve
    - vector<vector<S2Point>>*::push_back
    - std::move
    - vertex
    - edge
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::AppendPolygonLoops(\n    const Graph& g, absl::Span<const
      Graph::EdgeLoop> edge_loops,\n    vector<vector<S2Point>>* loops) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:108,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:111,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:111,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:113,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:114,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:114,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:116,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' g'
    - edge_loops
    argTypes:
    - Graph
    - absl::Span<const Graph::EdgeLoop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: s2builderutil::LaxPolygonLayer::AppendEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - Add
    - edge_type
    - size
    - Graph::LabelFetcher::Fetch
    - vector::reserve
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::AppendEdgeLabels(\n    const Graph& g, absl::Span<const
      Graph::EdgeLoop> edge_loops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:125,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:125,1
    - Dst: absl::Span<const EdgeId>::begin
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:125,1
    - Dst: absl::Span<const EdgeId>::end
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:125,1
    - Dst: vector<Edge>*::clear
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:126,1
    - Dst: vector<InputEdgeIdSetId>*::clear
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:127,1
    - Dst: vector<Edge>*::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:128,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:128,1
    - Dst: vector<InputEdgeIdSetId>*::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:129,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:129,1
    - Dst: absl::Span<const EdgeId>::begin
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:130,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:131,1
    - Dst: absl::Span<const EdgeId>::end
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:132,1
    - Dst: vector<Edge>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:135,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:135,1
    - Dst: vector<InputEdgeIdSetId>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:136,1
    - Dst: input_edge_id_set_id
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:136,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:139,1
    - Dst: absl::Span<const EdgeId>::end
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ' g'
    - edges_to_discard
    - new_edges
    - new_input_edge_id_set_ids
    argTypes:
    - Graph
    - absl::Span<const EdgeId>
    - vector<Edge>*
    - vector<InputEdgeIdSetId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 140
    functionName: s2builderutil::DiscardEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - input_edge_id_set_id
    - vector<Edge>*::clear
    - absl::Span<const EdgeId>::end
    - vector<InputEdgeIdSetId>*::clear
    - vector<Edge>*::push_back
    - vector<InputEdgeIdSetId>*::push_back
    - num_edges
    - vector<Edge>*::reserve
    - edge
    - vector<InputEdgeIdSetId>*::reserve
    - absl::Span<const EdgeId>::begin
    - std::is_sorted
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void DiscardEdges(const Graph& g,\n                         absl::Span<const
      EdgeId> edges_to_discard,\n                         vector<Edge>* new_edges,\n
      \                        vector<InputEdgeIdSetId>* new_input_edge_id_set_ids)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsFullPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:144,1
    - Dst: vector<vector<S2Point>>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' g'
    - loops
    - absl_nonnull
    argTypes:
    - Graph
    - vector<vector<S2Point>>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: s2builderutil::MaybeAddFullLoop
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - vector<vector<S2Point>>*::push_back
    - IsFullPolygon
    linkageType: ''
    returnType: void
    signature: "void MaybeAddFullLoop(const Graph& g, vector<vector<S2Point>>* loops,\n
      \                            S2Error* absl_nonnull error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:155,1
    - Dst: Graph::num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:158,1
    - Dst: MaybeAddFullLoop
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:158,1
    - Dst: s2builderutil::IsFullyDegenerate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:164,1
    - Dst: MaybeAddFullLoop
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:165,1
    - Dst: s2builderutil::FindPolygonDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:173,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:174,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:175,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:175,1
    - Dst: Graph::num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:175,1
    - Dst: auto::empty
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:176,1
    - Dst: MaybeAddFullLoop
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:177,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:179,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:185,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:188,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:190,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:190,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:190,1
    - Dst: DiscardEdges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:191,1
    - Dst: Graph
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:192,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:192,1
    - Dst: Graph::vertices
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:192,1
    - Dst: Graph::input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:194,1
    - Dst: Graph::label_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:194,1
    - Dst: Graph::label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:195,1
    - Dst: Graph::is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:195,1
    - Dst: Graph::GetDirectedLoops
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:199,1
    - Dst: s2builderutil::LaxPolygonLayer::AppendPolygonLoops
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:202,1
    - Dst: s2builderutil::LaxPolygonLayer::AppendEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:203,1
    - Dst: vector<Graph::EdgeLoop>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:204,1
    - Dst: vector<Edge>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:205,1
    - Dst: vector<InputEdgeIdSetId>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:206,1
    - Dst: s2builderutil::LaxPolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:207,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - g
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 208
    functionName: s2builderutil::LaxPolygonLayer::BuildDirected
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 1
    functionsReached:
    - degenerate_boundaries
    - Graph::vertices
    - Graph::GetDirectedLoops
    - Graph::label_set_ids
    - vector::end
    - s2builderutil::IsFullyDegenerate
    - auto::size
    - vector<Edge>
    - Graph::input_edge_id_set_lexicon
    - s2builderutil::LaxPolygonLayer::AppendPolygonLoops
    - ok
    - s2builderutil::LaxPolygonLayer::Init
    - Graph::num_edges
    - Graph::is_full_polygon_predicate
    - Graph
    - MaybeAddFullLoop
    - s2builderutil::LaxPolygonLayer::AppendEdgeLabels
    - Graph::options
    - vector<Graph::EdgeLoop>
    - vector::begin
    - vector::push_back
    - s2builderutil::FindPolygonDegeneracies
    - vector::empty
    - DiscardEdges
    - auto::empty
    - static_cast<size_t>
    - vector<InputEdgeIdSetId>
    - std::sort
    - Graph::label_set_lexicon
    linkageType: ''
    returnType: void
    signature: void LaxPolygonLayer::BuildDirected(Graph g, S2Error* absl_nonnull
      error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:211,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:212,1
    - Dst: s2builderutil::LaxPolygonLayer::BuildDirected
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:213,1
    - Dst: S2Error::Unimplemented
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: s2builderutil::LaxPolygonLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::LaxPolygonLayer::BuildDirected
    - options
    - S2Error::Unimplemented
    - clear
    linkageType: ''
    returnType: void
    signature: void LaxPolygonLayer::Build(const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:62,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cell_id
    - label
    argTypes:
    - S2CellId
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: S2CellIndexTest::Add
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 1
    functionsReached:
    - S2CellIndexTest::Add
    - push_back
    linkageType: ''
    returnType: void
    signature: void Add(S2CellId cell_id, Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:67,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cell_str
    - label
    argTypes:
    - string_view
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: S2CellIndexTest::Add
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 2
    functionsReached:
    - S2CellId::FromDebugString
    - S2CellIndexTest::Add
    linkageType: ''
    returnType: void
    signature: void Add(string_view cell_str, Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:71,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' cell_union'
    - label
    argTypes:
    - S2CellUnion
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: S2CellIndexTest::Add
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 3
    functionsReached:
    - S2CellIndexTest::Add
    - push_back
    linkageType: ''
    returnType: void
    signature: void Add(const S2CellUnion& cell_union, Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: S2CellIndexTest::Build
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 1
    functionsReached:
    - S2CellIndexTest::Build
    linkageType: ''
    returnType: void
    signature: void Build()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:97,1
    - Dst: S2CellIndexTest::VerifyCellIterator
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:98,1
    - Dst: S2CellIndexTest::VerifyIndexContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:99,1
    - Dst: S2CellIndexTest::VerifyRangeIterators
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: S2CellIndexTest::QuadraticValidate
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIndexTest::VerifyRangeIterators
    - S2CellIndexTest::Build
    - S2CellIndexTest::VerifyCellIterator
    - S2CellIndexTest::VerifyIndexContents
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::QuadraticValidate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:106,1
    - Dst: vector<LabelledCell>::begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:106,1
    - Dst: vector<LabelledCell>::end
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:106,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:107,1
    - Dst: vector<LabelledCell>::begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:107,1
    - Dst: vector<LabelledCell>::end
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - vector<LabelledCell>
    - vector<LabelledCell>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: ExpectEqual
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 5
    functionsReached:
    - vector<LabelledCell>::begin
    - EXPECT_EQ
    - vector<LabelledCell>::end
    - std::sort
    linkageType: ''
    returnType: void
    signature: void ExpectEqual(vector<LabelledCell> expected, vector<LabelledCell>
      actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::CellIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:115,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:116,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:116,1
    - Dst: S2CellIndex::CellIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:116,1
    - Dst: S2CellIndex::CellIterator::labelled_cell
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:116,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:117,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:117,1
    - Dst: S2CellIndex::CellIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:117,1
    - Dst: ExpectEqual
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:119,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: S2CellIndexTest::VerifyCellIterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 1
    functionsReached:
    - S2CellIndex::CellIterator::cell_id
    - vector::push_back
    - S2CellIndex::CellIterator::Next
    - S2CellIndex::CellIterator::labelled_cell
    - S2CellIndex::CellIterator::label
    - std::move
    - ExpectEqual
    - S2CellIndex::CellIterator::done
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::VerifyCellIterator() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::RangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:125,1
    - Dst: S2CellIndex::RangeIterator::Finish
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:126,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:127,1
    - Dst: S2CellIndex::RangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:127,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:131,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Finish
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:132,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:133,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:133,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:137,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:138,1
    - Dst: S2CellIndex::RangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:139,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:139,1
    - Dst: S2CellIndex::RangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:139,1
    - Dst: S2CellIndex::RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:139,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:142,1
    - Dst: S2CellIndex::RangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:143,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:144,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:144,1
    - Dst: S2CellIndex::RangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:145,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:146,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:146,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:150,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:151,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:152,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:152,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:153,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:154,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:154,1
    - Dst: S2CellIndex::RangeIterator::Prev
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:158,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:158,1
    - Dst: S2CellIndex::RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:160,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:162,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:163,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:163,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Prev
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:168,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:168,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:170,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:172,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:173,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:173,1
    - Dst: S2CellIndex::RangeIterator::is_empty
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:178,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:178,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:179,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:179,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:180,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:180,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:182,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:187,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 188
    functionName: S2CellIndexTest::VerifyRangeIterators
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 1
    functionsReached:
    - S2CellIndex::RangeIterator::Begin
    - S2CellIndex::NonEmptyRangeIterator::Begin
    - S2CellIndex::RangeIterator::start_id
    - S2CellIndex::RangeIterator::is_empty
    - S2CellIndex::RangeIterator::Prev
    - S2CellIndex::NonEmptyRangeIterator::start_id
    - S2CellIndex::RangeIterator::Seek
    - S2CellIndex::RangeIterator::limit_id
    - EXPECT_EQ
    - S2CellIndex::NonEmptyRangeIterator::Next
    - S2CellId::None
    - EXPECT_TRUE
    - S2CellIndex::NonEmptyRangeIterator::Seek
    - S2CellIndex::RangeIterator::done
    - S2CellIndex::NonEmptyRangeIterator::done
    - S2CellIndex::NonEmptyRangeIterator::limit_id
    - S2CellIndex::NonEmptyRangeIterator::Finish
    - S2CellIndex::RangeIterator::Next
    - S2CellIndex::NonEmptyRangeIterator::Prev
    - S2CellIndex::RangeIterator::Finish
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::VerifyRangeIterators() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:194,1
    - Dst: S2CellIndex::RangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:196,1
    - Dst: S2CellIndex::RangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:196,1
    - Dst: S2CellIndex::RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:196,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:197,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:197,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:198,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:198,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:199,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:199,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:200,1
    - Dst: cell_id::range_min
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:205,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:205,1
    - Dst: cell_id::range_max
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:206,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:206,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:208,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:211,1
    - Dst: cell_id::range_min
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:211,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:211,1
    - Dst: cell_id::range_max
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:212,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:212,1
    - Dst: S2CellIndex::ContentsIterator::StartUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:217,1
    - Dst: S2CellIndex::ContentsIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:217,1
    - Dst: S2CellIndex::ContentsIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:217,1
    - Dst: S2CellIndex::ContentsIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:218,1
    - Dst: S2CellIndex::ContentsIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:219,1
    - Dst: S2CellIndex::ContentsIterator::labelled_cell
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:219,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:220,1
    - Dst: ExpectEqual
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:222,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:222,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:224,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 225
    functionName: S2CellIndexTest::VerifyIndexContents
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 1
    functionsReached:
    - cell_id::range_min
    - S2CellIndex::RangeIterator::Begin
    - S2CellIndex::ContentsIterator::label
    - S2CellIndex::RangeIterator::start_id
    - S2CellIndex::ContentsIterator::labelled_cell
    - EXPECT_LT
    - S2CellIndex::RangeIterator::limit_id
    - EXPECT_EQ
    - S2CellIndex::ContentsIterator::cell_id
    - S2CellIndex::ContentsIterator::Next
    - vector::push_back
    - EXPECT_TRUE
    - std::move
    - S2CellIndex::ContentsIterator::done
    - S2CellIndex::ContentsIterator::StartUnion
    - S2CellIndex::RangeIterator::done
    - S2CellIndex::RangeIterator::Next
    - ExpectEqual
    - S2CellId::Begin
    - S2CellId::End
    - cell_id::range_max
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::VerifyIndexContents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:232,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, OneFaceCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:237,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, OneLeafCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:242,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:243,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:244,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:245,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, DuplicateValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:250,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:251,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, DisjointCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:258,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:259,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:260,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:261,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:262,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:263,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:264,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:265,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:266,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:267,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:268,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:269,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:270,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:271,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 273
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, NestedCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:279,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:279,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:281,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: GetRandomCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - vector::push_back
    - s2random::CellId
    - S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion GetRandomCellUnion(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:285,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:286,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:291,1
    - Dst: GetRandomCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:291,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - GetRandomCellUnion
    - absl::LogInfoStreamer
    - QuadraticValidate
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, RandomCellUnions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::RangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:303,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:303,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:306,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:307,1
    - Dst: S2CellIndex::ContentsIterator*::StartUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:309,1
    - Dst: S2CellIndex::ContentsIterator*::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:309,1
    - Dst: S2CellIndex::ContentsIterator*::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:309,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:310,1
    - Dst: S2CellIndex::ContentsIterator*::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:310,1
    - Dst: S2CellIndex::ContentsIterator*::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:310,1
    - Dst: ExpectEqual
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target_str
    - contents
    - expected_strs
    argTypes:
    - string_view
    - S2CellIndex::ContentsIterator*
    - absl::Span<const pair<string, Label>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: S2CellIndexTest::ExpectContents
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIndex::ContentsIterator*::cell_id
    - vector::push_back
    - S2CellIndex::ContentsIterator*::label
    - S2CellIndex::RangeIterator::Seek
    - push_back
    - S2CellId::FromDebugString
    - ExpectEqual
    - S2CellIndex::ContentsIterator*::done
    - S2CellIndex::ContentsIterator*::StartUnion
    - S2CellIndex::ContentsIterator*::Next
    linkageType: ''
    returnType: void
    signature: "void S2CellIndexTest::ExpectContents(\n    string_view target_str,
      S2CellIndex::ContentsIterator* contents,\n    absl::Span<const pair<string,
      Label>> expected_strs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:318,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:319,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:320,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:321,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:322,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:323,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:324,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:325,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:326,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:327,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:328,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:329,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:330,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:333,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:334,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:337,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:339,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:341,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:343,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:345,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:347,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:348,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:349,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:350,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:354,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 356
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    - ExpectContents
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, ContentsIteratorSuppressesDuplicates)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::CellIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:363,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:363,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:364,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:364,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:365,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:365,1
    - Dst: S2CellIndex::CellIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:365,1
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:366,1
    - Dst: S2CellIndex::CellIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:366,1
    - Dst: VisitIntersectingCells
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:369,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:371,1
    - Dst: ExpectEqual
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:374,1
    - Dst: GetIntersectingLabels
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 377
    functionName: S2CellIndexTest::TestIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIndex::CellIterator::cell_id
    - Intersects
    - vector::push_back
    - S2CellIndex::CellIterator::Next
    - S2CellIndex::CellIterator::label
    - VisitIntersectingCells
    - push_back
    - GetIntersectingLabels
    - ExpectEqual
    - S2CellIndex::CellIterator::done
    - flat_hash_set::insert
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::TestIntersection(const S2CellUnion& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:382,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:382,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:384,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - strs
    argTypes:
    - absl::Span<const string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: MakeCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromDebugString
    - vector::push_back
    - std::move
    - S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion MakeCellUnion(absl::Span<const string> strs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:391,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:392,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:393,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:394,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:395,1
    - Dst: TestIntersection
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:396,1
    - Dst: MakeCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:396,1
    - Dst: TestIntersection
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:397,1
    - Dst: MakeCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 398
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - TestIntersection
    - Add
    - MakeCellUnion
    - Build
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, IntersectionOptimization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:401,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:402,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:407,1
    - Dst: GetRandomCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:407,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:409,1
    - Dst: TestIntersection
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:412,1
    - Dst: GetRandomCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 414
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - GetRandomCellUnion
    - Build
    - absl::LogInfoStreamer
    - TestIntersection
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, IntersectionRandomUnions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:419,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:420,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:422,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:423,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:426,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:426,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:427,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:427,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:428,1
    - Dst: S2CellId::next_wrap
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:428,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:429,1
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:429,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:429,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:430,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:430,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:431,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:433,1
    - Dst: TestIntersection
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:434,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:434,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:434,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 436
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Add
    - S2CellId::is_leaf
    - absl::Bernoulli
    - S2CellId::next_wrap
    - Build
    - std::move
    - S2CellId::FromDebugString
    - Clear
    - S2CellId::parent
    - S2CellId::is_face
    - S2CellId::child_begin
    - absl::LogInfoStreamer
    - TestIntersection
    - S2Testing::MakeTaggedSeedSeq
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, IntersectionSemiRandomUnions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::FromCenterArea
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:443,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:443,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:444,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:445,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:446,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bitgen
    - ' query_cap'
    - area_fraction
    - num_cells_per_cap
    argTypes:
    - absl::BitGenRef
    - S2Cap
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 448
    functionName: GetCapCovering
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::FromCenterArea
    - S2RegionCoverer::mutable_options
    - s2random::SamplePoint
    - GetArea
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::S2RegionCoverer
    linkageType: ''
    returnType: S2CellUnion
    signature: "S2CellUnion GetCapCovering(absl::BitGenRef bitgen, const S2Cap& query_cap,\n
      \                          double area_fraction, int num_cells_per_cap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:456,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:457,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:458,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:458,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:461,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:462,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:463,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:467,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:468,1
    - Dst: GetCapCovering
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:469,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:471,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:474,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:475,1
    - Dst: GetCapCovering
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:476,1
    - Dst: S2CellIndex::GetIntersectingLabels
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:481,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:483,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:485,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:486,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 455
    functionDepth: 8
    functionLinenumber: 455
    functionLinenumberEnd: 487
    functionName: BM_FindIntersectingCapCoverings
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - string::begin
    - S2CellIndex::GetIntersectingLabels
    - absl::StrFormat
    - string::end
    - absl::StrCat
    - range
    - static_cast<double>
    - vector::size
    - S2CellIndex::Add
    - s2random::LogUniform
    - S2CellIndex::Build
    - SetLabel
    - GetCapCovering
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindIntersectingCapCoverings(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:62,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cell_id
    - label
    argTypes:
    - S2CellId
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: S2CellIndexTest::Add
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 4
    functionsReached:
    - S2CellIndexTest::Add
    - push_back
    linkageType: ''
    returnType: void
    signature: void Add(S2CellId cell_id, Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:67,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cell_str
    - label
    argTypes:
    - string_view
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: S2CellIndexTest::Add
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 5
    functionsReached:
    - S2CellId::FromDebugString
    - S2CellIndexTest::Add
    linkageType: ''
    returnType: void
    signature: void Add(string_view cell_str, Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:71,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' cell_union'
    - label
    argTypes:
    - S2CellUnion
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: S2CellIndexTest::Add
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 6
    functionsReached:
    - S2CellIndexTest::Add
    - push_back
    linkageType: ''
    returnType: void
    signature: void Add(const S2CellUnion& cell_union, Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: S2CellIndexTest::Build
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 3
    functionsReached:
    - S2CellIndexTest::Build
    linkageType: ''
    returnType: void
    signature: void Build()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndexTest::Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:97,1
    - Dst: S2CellIndexTest::VerifyCellIterator
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:98,1
    - Dst: S2CellIndexTest::VerifyIndexContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:99,1
    - Dst: S2CellIndexTest::VerifyRangeIterators
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: S2CellIndexTest::QuadraticValidate
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIndexTest::VerifyRangeIterators
    - S2CellIndexTest::Build
    - S2CellIndexTest::VerifyCellIterator
    - S2CellIndexTest::VerifyIndexContents
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::QuadraticValidate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:106,1
    - Dst: vector<LabelledCell>::begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:106,1
    - Dst: vector<LabelledCell>::end
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:106,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:107,1
    - Dst: vector<LabelledCell>::begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:107,1
    - Dst: vector<LabelledCell>::end
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - vector<LabelledCell>
    - vector<LabelledCell>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: ExpectEqual
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 9
    functionsReached:
    - vector<LabelledCell>::begin
    - EXPECT_EQ
    - vector<LabelledCell>::end
    - std::sort
    linkageType: ''
    returnType: void
    signature: void ExpectEqual(vector<LabelledCell> expected, vector<LabelledCell>
      actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::CellIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:115,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:116,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:116,1
    - Dst: S2CellIndex::CellIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:116,1
    - Dst: S2CellIndex::CellIterator::labelled_cell
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:116,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:117,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:117,1
    - Dst: S2CellIndex::CellIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:117,1
    - Dst: ExpectEqual
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:119,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: S2CellIndexTest::VerifyCellIterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 2
    functionsReached:
    - S2CellIndex::CellIterator::cell_id
    - vector::push_back
    - S2CellIndex::CellIterator::Next
    - S2CellIndex::CellIterator::labelled_cell
    - S2CellIndex::CellIterator::label
    - std::move
    - ExpectEqual
    - S2CellIndex::CellIterator::done
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::VerifyCellIterator() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::RangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:125,1
    - Dst: S2CellIndex::RangeIterator::Finish
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:126,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:127,1
    - Dst: S2CellIndex::RangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:127,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:131,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Finish
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:132,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:133,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:133,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:137,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:138,1
    - Dst: S2CellIndex::RangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:139,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:139,1
    - Dst: S2CellIndex::RangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:139,1
    - Dst: S2CellIndex::RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:139,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:142,1
    - Dst: S2CellIndex::RangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:143,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:144,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:144,1
    - Dst: S2CellIndex::RangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:145,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:146,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:146,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:150,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:151,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:152,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:152,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:153,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:154,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:154,1
    - Dst: S2CellIndex::RangeIterator::Prev
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:158,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:158,1
    - Dst: S2CellIndex::RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:160,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:162,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:163,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:163,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Prev
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:168,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:168,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:170,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:172,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:173,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:173,1
    - Dst: S2CellIndex::RangeIterator::is_empty
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:178,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:178,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:179,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:179,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:180,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:180,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:182,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:187,1
    - Dst: S2CellIndex::NonEmptyRangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 188
    functionName: S2CellIndexTest::VerifyRangeIterators
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 2
    functionsReached:
    - S2CellIndex::RangeIterator::Begin
    - S2CellIndex::NonEmptyRangeIterator::Begin
    - S2CellIndex::RangeIterator::start_id
    - S2CellIndex::RangeIterator::is_empty
    - S2CellIndex::RangeIterator::Prev
    - S2CellIndex::NonEmptyRangeIterator::start_id
    - S2CellIndex::RangeIterator::Seek
    - S2CellIndex::RangeIterator::limit_id
    - EXPECT_EQ
    - S2CellIndex::NonEmptyRangeIterator::Next
    - S2CellId::None
    - EXPECT_TRUE
    - S2CellIndex::NonEmptyRangeIterator::Seek
    - S2CellIndex::RangeIterator::done
    - S2CellIndex::NonEmptyRangeIterator::done
    - S2CellIndex::NonEmptyRangeIterator::limit_id
    - S2CellIndex::NonEmptyRangeIterator::Finish
    - S2CellIndex::RangeIterator::Next
    - S2CellIndex::NonEmptyRangeIterator::Prev
    - S2CellIndex::RangeIterator::Finish
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::VerifyRangeIterators() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:194,1
    - Dst: S2CellIndex::RangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:196,1
    - Dst: S2CellIndex::RangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:196,1
    - Dst: S2CellIndex::RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:196,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:197,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:197,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:198,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:198,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:199,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:199,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:200,1
    - Dst: cell_id::range_min
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:205,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:205,1
    - Dst: cell_id::range_max
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:206,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:206,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:208,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:211,1
    - Dst: cell_id::range_min
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:211,1
    - Dst: S2CellIndex::RangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:211,1
    - Dst: cell_id::range_max
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:212,1
    - Dst: S2CellIndex::RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:212,1
    - Dst: S2CellIndex::ContentsIterator::StartUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:217,1
    - Dst: S2CellIndex::ContentsIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:217,1
    - Dst: S2CellIndex::ContentsIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:217,1
    - Dst: S2CellIndex::ContentsIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:218,1
    - Dst: S2CellIndex::ContentsIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:219,1
    - Dst: S2CellIndex::ContentsIterator::labelled_cell
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:219,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:220,1
    - Dst: ExpectEqual
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:222,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:222,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:224,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 225
    functionName: S2CellIndexTest::VerifyIndexContents
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 2
    functionsReached:
    - cell_id::range_min
    - S2CellIndex::RangeIterator::Begin
    - S2CellIndex::ContentsIterator::label
    - S2CellIndex::RangeIterator::start_id
    - S2CellIndex::ContentsIterator::labelled_cell
    - EXPECT_LT
    - S2CellIndex::RangeIterator::limit_id
    - EXPECT_EQ
    - S2CellIndex::ContentsIterator::cell_id
    - S2CellIndex::ContentsIterator::Next
    - vector::push_back
    - EXPECT_TRUE
    - std::move
    - S2CellIndex::ContentsIterator::done
    - S2CellIndex::ContentsIterator::StartUnion
    - S2CellIndex::RangeIterator::done
    - S2CellIndex::RangeIterator::Next
    - ExpectEqual
    - S2CellId::Begin
    - S2CellId::End
    - cell_id::range_max
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::VerifyIndexContents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:232,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, OneFaceCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:237,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, OneLeafCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:242,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:243,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:244,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:245,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, DuplicateValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:250,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:251,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, DisjointCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:258,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:259,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:260,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:261,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:262,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:263,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:264,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:265,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:266,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:267,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:268,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:269,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:270,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:271,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 273
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, NestedCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:279,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:279,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:281,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: GetRandomCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 2
    functionsReached:
    - std::move
    - vector::push_back
    - s2random::CellId
    - S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion GetRandomCellUnion(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:285,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:286,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:291,1
    - Dst: GetRandomCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:291,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - GetRandomCellUnion
    - absl::LogInfoStreamer
    - QuadraticValidate
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, RandomCellUnions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::RangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:303,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:303,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:306,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:307,1
    - Dst: S2CellIndex::ContentsIterator*::StartUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:309,1
    - Dst: S2CellIndex::ContentsIterator*::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:309,1
    - Dst: S2CellIndex::ContentsIterator*::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:309,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:310,1
    - Dst: S2CellIndex::ContentsIterator*::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:310,1
    - Dst: S2CellIndex::ContentsIterator*::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:310,1
    - Dst: ExpectEqual
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target_str
    - contents
    - expected_strs
    argTypes:
    - string_view
    - S2CellIndex::ContentsIterator*
    - absl::Span<const pair<string, Label>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: S2CellIndexTest::ExpectContents
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIndex::ContentsIterator*::cell_id
    - vector::push_back
    - S2CellIndex::ContentsIterator*::label
    - S2CellIndex::RangeIterator::Seek
    - push_back
    - S2CellId::FromDebugString
    - ExpectEqual
    - S2CellIndex::ContentsIterator*::done
    - S2CellIndex::ContentsIterator*::StartUnion
    - S2CellIndex::ContentsIterator*::Next
    linkageType: ''
    returnType: void
    signature: "void S2CellIndexTest::ExpectContents(\n    string_view target_str,
      S2CellIndex::ContentsIterator* contents,\n    absl::Span<const pair<string,
      Label>> expected_strs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:318,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:319,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:320,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:321,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:322,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:323,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:324,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:325,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:326,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:327,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:328,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:329,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:330,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:333,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:334,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:337,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:339,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:341,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:343,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:345,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:347,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:348,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:349,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:350,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:354,1
    - Dst: ExpectContents
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 356
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - QuadraticValidate
    - ExpectContents
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, ContentsIteratorSuppressesDuplicates)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::CellIterator::done
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:363,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:363,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:364,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:364,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:365,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:365,1
    - Dst: S2CellIndex::CellIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:365,1
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:366,1
    - Dst: S2CellIndex::CellIterator::label
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:366,1
    - Dst: VisitIntersectingCells
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:369,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:371,1
    - Dst: ExpectEqual
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:374,1
    - Dst: GetIntersectingLabels
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 377
    functionName: S2CellIndexTest::TestIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIndex::CellIterator::cell_id
    - Intersects
    - vector::push_back
    - S2CellIndex::CellIterator::Next
    - S2CellIndex::CellIterator::label
    - VisitIntersectingCells
    - push_back
    - GetIntersectingLabels
    - ExpectEqual
    - S2CellIndex::CellIterator::done
    - flat_hash_set::insert
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void S2CellIndexTest::TestIntersection(const S2CellUnion& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:382,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:382,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:384,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - strs
    argTypes:
    - absl::Span<const string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: MakeCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 1
    functionsReached:
    - S2CellId::FromDebugString
    - vector::push_back
    - std::move
    - S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion MakeCellUnion(absl::Span<const string> strs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:391,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:392,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:393,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:394,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:395,1
    - Dst: TestIntersection
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:396,1
    - Dst: MakeCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:396,1
    - Dst: TestIntersection
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:397,1
    - Dst: MakeCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 398
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - TestIntersection
    - Add
    - MakeCellUnion
    - Build
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, IntersectionOptimization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:401,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:402,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:407,1
    - Dst: GetRandomCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:407,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:409,1
    - Dst: TestIntersection
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:412,1
    - Dst: GetRandomCellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 414
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - GetRandomCellUnion
    - Build
    - absl::LogInfoStreamer
    - TestIntersection
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, IntersectionRandomUnions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:419,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:420,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:422,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:423,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:426,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:426,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:427,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:427,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:428,1
    - Dst: S2CellId::next_wrap
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:428,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:429,1
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:429,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:429,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:430,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:430,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:431,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:433,1
    - Dst: TestIntersection
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:434,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:434,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:434,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 436
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Add
    - S2CellId::is_leaf
    - absl::Bernoulli
    - S2CellId::next_wrap
    - Build
    - std::move
    - S2CellId::FromDebugString
    - Clear
    - S2CellId::parent
    - S2CellId::is_face
    - S2CellId::child_begin
    - absl::LogInfoStreamer
    - TestIntersection
    - S2Testing::MakeTaggedSeedSeq
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2CellIndexTest, IntersectionSemiRandomUnions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::FromCenterArea
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:443,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:443,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:444,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:445,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:446,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bitgen
    - ' query_cap'
    - area_fraction
    - num_cells_per_cap
    argTypes:
    - absl::BitGenRef
    - S2Cap
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 448
    functionName: GetCapCovering
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 1
    functionsReached:
    - S2Cap::FromCenterArea
    - S2RegionCoverer::mutable_options
    - s2random::SamplePoint
    - GetArea
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::S2RegionCoverer
    linkageType: ''
    returnType: S2CellUnion
    signature: "S2CellUnion GetCapCovering(absl::BitGenRef bitgen, const S2Cap& query_cap,\n
      \                          double area_fraction, int num_cells_per_cap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:456,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:457,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:458,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:458,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:461,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:462,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:463,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:467,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:468,1
    - Dst: GetCapCovering
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:469,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:471,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:474,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:475,1
    - Dst: GetCapCovering
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:476,1
    - Dst: S2CellIndex::GetIntersectingLabels
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:481,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:483,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:485,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:486,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2cell_index_test.cc:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 455
    functionDepth: 8
    functionLinenumber: 455
    functionLinenumberEnd: 487
    functionName: BM_FindIntersectingCapCoverings
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - string::begin
    - S2CellIndex::GetIntersectingLabels
    - absl::StrFormat
    - string::end
    - absl::StrCat
    - range
    - static_cast<double>
    - vector::size
    - S2CellIndex::Add
    - s2random::LogUniform
    - S2CellIndex::Build
    - SetLabel
    - GetCapCovering
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindIntersectingCapCoverings(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: s2polyline_alignment::InRange
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool InRange(const int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment_internal.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2polyline_alignment::All
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    functionUses: 0
    functionsReached:
    - Stats::max
    linkageType: ''
    returnType: ColumnStride
    signature: ColumnStride All()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: s2polyline_alignment::Window::GetColumnStride
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColumnStride
    signature: ColumnStride GetColumnStride(const int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::All
      Src: /src/s2geometry/src/s2/s2polyline_alignment_internal.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: s2polyline_alignment::Window::GetCheckedColumnStride
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::All
    linkageType: ''
    returnType: ColumnStride
    signature: ColumnStride GetCheckedColumnStride(const int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: s2polyline_alignment::InRange
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool InRange(const int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment_internal.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2polyline_alignment::All
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    functionUses: 1
    functionsReached:
    - Stats::max
    linkageType: ''
    returnType: ColumnStride
    signature: ColumnStride All()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: s2polyline_alignment::Window::GetColumnStride
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColumnStride
    signature: ColumnStride GetColumnStride(const int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::All
      Src: /src/s2geometry/src/s2/s2polyline_alignment_internal.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: s2polyline_alignment::Window::GetCheckedColumnStride
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::All
    linkageType: ''
    returnType: ColumnStride
    signature: ColumnStride GetCheckedColumnStride(const int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: S2PointRegion::S2PointRegion
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointRegion(const S2PointRegion&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: '& operator=(const S2PointRegion&)'
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PointRegion
    signature: S2PointRegion & operator=(const S2PointRegion&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: S2PointRegion::S2PointRegion
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PointRegion(S2PointRegion&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operator=(S2PointRegion&&)'
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PointRegion
    signature: S2PointRegion & operator=(S2PointRegion&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: ~S2PointRegion() override
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2PointRegion() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& point() const'
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: S2PointRegion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Contains(const S2Cell& cell) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: S2PointRegion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Contains(const S2Point& p) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2point_region.h:85,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2point_region.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: S2PointRegion::S2PointRegion
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.h
    functionUses: 0
    functionsReached:
    - S2::IsUnitLength
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2PointRegion::S2PointRegion(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: s2shapeutil::ShapeEdgeId
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShapeEdgeId()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h:49,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - id
    argTypes:
    - H
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2shapeutil::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, ShapeEdgeId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _shape_id
    - _edge_id
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: s2shapeutil::ShapeEdgeId::ShapeEdgeId
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShapeEdgeId::ShapeEdgeId(int32_t _shape_id, int32_t _edge_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: ShapeEdgeId::operator==(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator==(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: ShapeEdgeId::operator!=(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator!=(ShapeEdgeId other) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ShapeEdgeId::operator<(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator<(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: ShapeEdgeId::operator>(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator>(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: ShapeEdgeId::operator<=(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator<=(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: ShapeEdgeId::operator>=(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator>=(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - id
    argTypes:
    - std::ostream
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: '& operator<<(std::ostream& os, ShapeEdgeId id)'
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, ShapeEdgeId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: s2shapeutil::ShapeEdgeId
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShapeEdgeId()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h:49,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - id
    argTypes:
    - H
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2shapeutil::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, ShapeEdgeId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _shape_id
    - _edge_id
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: s2shapeutil::ShapeEdgeId::ShapeEdgeId
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShapeEdgeId::ShapeEdgeId(int32_t _shape_id, int32_t _edge_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: ShapeEdgeId::operator==(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator==(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: ShapeEdgeId::operator!=(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator!=(ShapeEdgeId other) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ShapeEdgeId::operator<(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator<(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: ShapeEdgeId::operator>(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator>(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: ShapeEdgeId::operator<=(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator<=(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: ShapeEdgeId::operator>=(ShapeEdgeId other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShapeEdgeId::operator>=(ShapeEdgeId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - id
    argTypes:
    - std::ostream
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: '& operator<<(std::ostream& os, ShapeEdgeId id)'
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, ShapeEdgeId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:120,1
    - Dst: Equals
      Src: /src/s2geometry/src/s2/s2builder_test.cc:120,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:122,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ExpectPolygonsEqual
    argTypes:
    - void
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: ABSL_FLAG
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::ToString
    - Equals
    linkageType: ''
    returnType: void
    signature: "void ABSL_FLAG(int32_t, iteration_multiplier, 1,\n          \"Iteration
      multiplier for randomized tests\");\n\nnamespace {\n\nvoid ExpectPolygonsEqual(const
      S2Polygon& expected,\n                         const S2Polygon& actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:129,1
    - Dst: BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2builder_test.cc:129,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:130,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:131,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' expected'
    - ' actual'
    - tolerance
    argTypes:
    - S2Polygon
    - S2Polygon
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: ExpectPolygonsApproxEqual
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::ToString
    - BoundaryApproxEquals
    - S1Angle::degrees
    linkageType: ''
    returnType: void
    signature: "void ExpectPolygonsApproxEqual(const S2Polygon& expected,\n                               const
      S2Polygon& actual,\n                               S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:137,1
    - Dst: Equals
      Src: /src/s2geometry/src/s2/s2builder_test.cc:137,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:139,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' expected'
    - ' actual'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: ExpectPolylinesEqual
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::ToString
    - Equals
    linkageType: ''
    returnType: void
    signature: "void ExpectPolylinesEqual(const S2Polyline& expected,\n                          const
      S2Polyline& actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:144,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:145,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:146,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:146,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:147,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_test.cc:148,1
    - Dst: auto::index
      Src: /src/s2geometry/src/s2/s2builder_test.cc:148,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:149,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:150,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:150,1
    - Dst: ExpectPolygonsEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - ExpectPolygonsEqual
    - S2ShapeNestingQuery::Options::Options
    - MakePolygonOrDie
    - S2Builder::AddShape
    - auto::index
    - ASSERT_TRUE
    - S2Polygon::S2Polygon
    - S2Builder::Build
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, AddShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:159,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:160,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:160,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:161,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:162,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:162,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:163,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:165,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:166,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:167,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:167,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:168,1
    - Dst: ExpectPolygonsApproxEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 170
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - IdentitySnapFunction
    - S2ShapeNestingQuery::Options::Options
    - S1Angle::Degrees
    - MakePolygonOrDie
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - ExpectPolygonsApproxEqual
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimpleVertexMerging)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builder_test.cc:176,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:176,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:178,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:179,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:180,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:180,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:181,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:183,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:184,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:185,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:185,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:186,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:186,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:187,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:189,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2builder_test.cc:189,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:189,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:190,1
    - Dst: ExpectPolygonsApproxEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:192,1
    - Dst: S2CellIdSnapFunction::snap_radius
      Src: /src/s2geometry/src/s2/s2builder_test.cc:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
    - S2CellId
    - ExpectPolygonsApproxEqual
    - S2Polygon::loop
    - S2Error::S2Error
    - S2CellIdSnapFunction::snap_radius
    - MakePolygonOrDie
    - S2Polygon::num_loops
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Loop*::vertex
    - S2Builder::StartLayer
    - S2Loop*::num_vertices
    - S1Angle::Degrees
    - ASSERT_EQ
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimpleS2CellIdSnapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:196,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:196,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:197,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:198,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:198,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:199,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:202,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:204,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:205,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:206,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:206,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:207,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:207,1
    - Dst: ExpectPolygonsEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - ASSERT_EQ
    - ExpectPolygonsEqual
    - S2ShapeNestingQuery::Options::Options
    - MakePolygonOrDie
    - S2Polygon::num_loops
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - IntLatLngSnapFunction
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimpleIntLatLngSnapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:215,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:216,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:217,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:218,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:218,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:223,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:223,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:223,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:224,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:225,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:226,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:226,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:227,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:227,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:228,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:228,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:229,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:229,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:230,1
    - Dst: S2Polygon::BoundaryNear
      Src: /src/s2geometry/src/s2/s2builder_test.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 231
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - ASSERT_EQ
    - S2Polygon::loop
    - IdentitySnapFunction
    - EXPECT_TRUE
    - S2Point
    - S2Loop::MakeRegularLoop
    - S2Polygon::BoundaryNear
    - S1Angle::Degrees
    - S2Polygon::num_loops
    - EXPECT_GE
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - EXPECT_LE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, VerticesMoveLessThanSnapRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:247,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:249,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:251,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:251,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:253,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:254,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:254,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:255,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:256,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:257,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:257,1
    - Dst: ExpectPolygonsApproxEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:258,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builder_test.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 259
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - IdentitySnapFunction
    - S1Angle::Radians
    - S1Angle::Degrees
    - MakePolygonOrDie
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - ExpectPolygonsApproxEqual
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, MinEdgeVertexSeparation)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:272,1
    - Dst: S2Builder::Options::set_idempotent
      Src: /src/s2geometry/src/s2/s2builder_test.cc:273,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:278,1
    - Dst: S2Builder::options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:278,1
    - Dst: S2Builder::options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:279,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2builder_test.cc:280,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2builder_test.cc:286,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:287,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builder_test.cc:289,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:290,1
    - Dst: make_unique<LaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:290,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:291,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:298,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:300,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2builder_test.cc:300,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:303,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2builder_test.cc:303,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:305,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:306,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:307,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:308,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:308,1
    - Dst: S2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:309,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:310,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:311,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:311,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:313,1
    - Dst: S2::IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2builder_test.cc:313,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:313,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:314,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:315,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:316,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2builder_test.cc:316,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:317,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 323
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2::IsEdgeBNearEdgeA
    - S2Error::S2Error
    - S2::Interpolate
    - S2Builder::Options::set_split_crossing_edges
    - S2Point::S2Point
    - EXPECT_GE
    - EXPECT_EQ
    - S2Builder::StartLayer
    - make_unique<LaxPolylineLayer>
    - S2Builder::Options::set_idempotent
    - S2Builder::AddEdge
    - S2Builder::ForceVertex
    - EXPECT_TRUE
    - s2textformat::ToString
    - S2LaxPolylineShape::S2LaxPolylineShape
    - S2Testing::MakeTaggedSeedSeq
    - S2Builder::options
    - S2LaxPolylineShape::vertex
    - Normalize
    - ASSERT_TRUE
    - S2Builder::Build
    - absl::LogInfoStreamer
    - absl::GetFlag
    - S2LaxPolylineShape::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, MaxEdgeDeviation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:329,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:329,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:331,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:332,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:332,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:333,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:333,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:334,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:335,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:337,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - IdentitySnapFunction
    - S2Polyline::S2Polyline
    - s2textformat::ToString
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - S1Angle::Degrees
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, IdempotencySnapsInadequatelySeparatedVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:343,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:344,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:345,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:345,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:346,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:346,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:347,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:347,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:348,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:348,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:348,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:349,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:349,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:350,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:351,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:353,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 354
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Builder::AddEdge
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, IdempotencySnapsIdenticalVerticesWithZeroSnapRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:361,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:363,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:364,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:364,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:365,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:365,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:366,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:366,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:367,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:367,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:367,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:368,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:368,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:369,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:370,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:372,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 373
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Builder::AddEdge
    - s2textformat::ToString
    - S2Builder::Options::set_split_crossing_edges
    - S2Builder::AddPolyline
    - MakePolylineOrDie
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TEST(S2Builder,\n     IdempotencySnapsIdenticalVerticesWithZeroSnapRadiusEdgeSplitting)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:390,1
    - Dst: IntLatLngSnapFunction::snap_radius
      Src: /src/s2geometry/src/s2/s2builder_test.cc:390,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:390,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:391,1
    - Dst: IntLatLngSnapFunction::min_vertex_separation
      Src: /src/s2geometry/src/s2/s2builder_test.cc:391,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:391,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:392,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:398,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:399,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2builder_test.cc:400,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2builder_test.cc:400,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2builder_test.cc:400,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:402,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:402,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:403,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:404,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:405,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:406,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:406,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:411,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:412,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2builder_test.cc:413,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2builder_test.cc:413,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2builder_test.cc:413,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:415,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:415,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:416,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:417,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:417,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:418,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 419
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - IntLatLngSnapFunction::min_vertex_separation
    - S2CellId
    - EXPECT_LT
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - IntLatLngSnapFunction::snap_radius
    - S2Builder::AddPolyline
    - S1Angle::Degrees
    - EXPECT_GE
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - ASSERT_TRUE
    - make_unique<S2PolylineLayer>
    - S2Builder::Build
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, IdempotencySnapsUnsnappedVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:437,1
    - Dst: S2PolylineVectorLayer::Options::set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:439,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:443,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:444,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:445,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:445,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:446,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:446,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:447,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:448,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:448,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:449,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:449,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:450,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 451
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - IdentitySnapFunction
    - s2textformat::ToString
    - make_unique<S2PolylineVectorLayer>
    - S2Builder::AddPolyline
    - MakePolylineOrDie
    - S2PolylineVectorLayer::Options::set_duplicate_edges
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - vector::size
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, IdempotencySnapsEdgesWithTinySnapRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:458,1
    - Dst: S2Builder::Options::set_idempotent
      Src: /src/s2geometry/src/s2/s2builder_test.cc:459,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:461,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:462,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:462,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:463,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:463,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:464,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:465,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:465,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:467,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:467,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:468,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:468,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:469,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:470,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:470,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:471,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 472
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Builder::Options::set_idempotent
    - s2textformat::ToString
    - MakePolygonOrDie
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - IntLatLngSnapFunction
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, IdempotencyDoesNotSnapAdequatelySeparatedEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:482,1
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:485,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:487,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:488,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:489,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:489,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:493,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:493,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:494,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:494,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:495,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:496,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:496,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:497,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:499,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:500,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:500,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:501,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 502
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineVectorLayer::Options::set_polyline_type
    - s2textformat::ToString
    - S2Builder::Options::set_split_crossing_edges
    - make_unique<S2PolylineVectorLayer>
    - S2Builder::AddPolyline
    - MakePolylineOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - vector::size
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, NearbyVerticesSnappedWithZeroSnapRadiusEdgeSplitting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_intersection_tolerance
      Src: /src/s2geometry/src/s2/s2builder_test.cc:508,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:510,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:511,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:511,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:512,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:512,1
    - Dst: S2Builder::AddIntersection
      Src: /src/s2geometry/src/s2/s2builder_test.cc:513,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:513,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:514,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:515,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:515,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:516,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 517
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - S2Builder::AddIntersection
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - s2textformat::ToString
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::Options::set_intersection_tolerance
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, NearbyIntersectionSnappedWithZeroSnapRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:548,1
    - Dst: S2Builder::Options::set_idempotent
      Src: /src/s2geometry/src/s2/s2builder_test.cc:549,1
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:552,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:554,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:555,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:556,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:557,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:558,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:559,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:560,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:561,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:562,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:564,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:565,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:566,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:567,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:568,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:569,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:569,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:570,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:570,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:571,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:573,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:574,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:576,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2builder_test.cc:577,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2builder_test.cc:577,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:577,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:577,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:578,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 579
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineVectorLayer::Options::set_polyline_type
    - S2Builder::Options::set_idempotent
    - S2Builder::AddEdge
    - S2Builder::ForceVertex
    - EXPECT_LT
    - s2textformat::ToString
    - make_unique<S2PolylineVectorLayer>
    - S2Builder::Options::set_split_crossing_edges
    - S2::CrossingSign
    - vertex
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - ASSERT_TRUE
    - S2Builder::Build
    - degrees
    - vector::size
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, TopologyPreservedWithZeroSnapRadiusEdgeSplitting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:590,1
    - Dst: S2Builder::Options::set_idempotent
      Src: /src/s2geometry/src/s2/s2builder_test.cc:591,1
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:594,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:596,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:597,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:598,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:599,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:600,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:601,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:602,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:603,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:604,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:605,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:606,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:607,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:608,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:609,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:610,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:611,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:611,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:612,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:612,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:613,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:615,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:616,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:618,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2builder_test.cc:619,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2builder_test.cc:619,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:619,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:619,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:620,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 621
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineVectorLayer::Options::set_polyline_type
    - IdentitySnapFunction
    - S2Builder::Options::set_idempotent
    - S2Builder::AddEdge
    - S2Builder::ForceVertex
    - EXPECT_LT
    - s2textformat::ToString
    - make_unique<S2PolylineVectorLayer>
    - S2::CrossingSign
    - vertex
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - ASSERT_TRUE
    - S2Builder::Build
    - degrees
    - vector::size
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, TopologyPreservedWithForcedVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:625,1
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builder_test.cc:625,1
    - Dst: S2Builder::SnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builder_test.cc:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::SnapFunction::kMaxSnapRadius
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - EXPECT_LE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, kMaxSnapRadiusCanSnapAtLevel0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:630,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:634,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:635,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:636,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:636,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:637,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:638,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:639,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:639,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:640,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2builder_test.cc:640,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builder_test.cc:652,1
    - Dst: S2CellIdSnapFunction::snap_radius
      Src: /src/s2geometry/src/s2/s2builder_test.cc:652,1
    - Dst: S2CellIdSnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builder_test.cc:653,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:654,1
    - Dst: S2Polygon::ApproxContains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:654,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2builder_test.cc:654,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:655,1
    - Dst: unique_ptr::ApproxContains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 657
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Polygon::ApproxContains
    - S2CellIdSnapFunction::snap_radius
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - S2CellIdSnapFunction::kMaxSnapRadius
    - MakePolygonOrDie
    - min
    - unique_ptr::get
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - S2Polygon::IsValid
    - unique_ptr::ApproxContains
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, S2CellIdSnappingAtAllLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:661,1
    - Dst: S2CellIdSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:666,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:668,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:669,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:669,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:670,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:671,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:672,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:672,1
    - Dst: ExpectPolygonsApproxEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:675,1
    - Dst: S2Builder::Options::snap_function
      Src: /src/s2geometry/src/s2/s2builder_test.cc:676,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:680,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:680,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:681,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:682,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:682,1
    - Dst: ExpectPolygonsEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 684
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2CellIdSnapFunction
    - ExpectPolygonsEqual
    - S2Builder::Options::snap_function
    - MakePolygonOrDie
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - ExpectPolygonsApproxEqual
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SnappingDoesNotRotateVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builder_test.cc:692,1
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:693,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:695,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:696,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:696,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:697,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:699,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:700,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:701,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:702,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:702,1
    - Dst: ExpectPolylinesEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 704
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - ExpectPolylinesEqual
    - S2Polyline::S2Polyline
    - S2Builder::Options::set_split_crossing_edges
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - S2Builder::Options::set_snap_function
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SelfIntersectingPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builder_test.cc:713,1
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:714,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:716,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:717,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:717,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:718,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:719,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:720,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:721,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:722,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:723,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:723,1
    - Dst: ExpectPolygonsEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 725
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - ExpectPolygonsEqual
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::Options::set_split_crossing_edges
    - MakePolylineOrDie
    - MakePolygonOrDie
    - S2Builder::Options::set_snap_function
    - S2Builder::AddPolyline
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SelfIntersectingPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:731,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:731,1
    - Dst: S2Builder::Options::set_idempotent
      Src: /src/s2geometry/src/s2/s2builder_test.cc:732,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:734,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:734,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:735,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:735,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:736,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:737,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:737,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:738,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:738,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:739,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:739,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:740,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:740,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:741,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:742,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:742,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:743,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:743,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:744,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:744,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:746,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:746,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 748
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::vertex
    - IdentitySnapFunction
    - S2Builder::Options::set_idempotent
    - S2Builder::ForceVertex
    - num_vertices
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - S1Angle::Degrees
    - S2Polyline::num_vertices
    - vertex
    - S2LatLng::FromDegrees
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, TieBreakingIsConsistent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:753,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:753,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:753,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:754,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:754,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:754,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:755,1
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builder_test.cc:755,1
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builder_test.cc:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' expected'
    - ' actual'
    argTypes:
    - S2Builder::Graph
    - S2Builder::Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 757
    functionName: ExpectGraphsEqual
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - input_edge_id_set_ids
    - ASSERT_EQ
    - vertices
    - edges
    linkageType: ''
    returnType: void
    signature: "void ExpectGraphsEqual(const S2Builder::Graph& expected,\n                       const
      S2Builder::Graph& actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' graph_options'
    - graphs
    - clones
    argTypes:
    - S2Builder::GraphOptions
    - vector<S2Builder::Graph>*
    - vector<unique_ptr<GraphClone>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 768
    functionName: GraphPersistenceLayer::GraphPersistenceLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GraphPersistenceLayer(const S2Builder::GraphOptions& graph_options,\n
      \                       vector<S2Builder::Graph>* graphs,\n                        vector<unique_ptr<GraphClone>>*
      clones)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    functionName: GraphPersistenceLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions
    signature: S2Builder::GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:776,1
    - Dst: ExpectGraphsEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:777,1
    - Dst: graph
      Src: /src/s2geometry/src/s2/s2builder_test.cc:777,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:779,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:780,1
    - Dst: make_unique<GraphClone>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Builder::Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 781
    functionName: GraphPersistenceLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - size
    - make_unique<GraphClone>
    - push_back
    - ExpectGraphsEqual
    - graph
    linkageType: ''
    returnType: void
    signature: void Build(const S2Builder::Graph& g, S2Error* absl_nonnull error)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2builder_test.cc:792,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:793,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:796,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:798,1
    - Dst: make_unique<GraphPersistenceLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:798,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builder_test.cc:799,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:800,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:801,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:801,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:801,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:804,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:805,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 806
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2Builder::AddEdge
    - GraphOptions
    - S2ShapeNestingQuery::Options::Options
    - EXPECT_TRUE
    - make_unique<GraphPersistenceLayer>
    - S2Builder::Build
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, GraphPersistence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:812,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:813,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:813,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:818,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:818,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:819,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:819,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:819,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:821,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:821,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:823,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:824,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:824,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:827,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:827,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:829,1
    - Dst: absl::StrJoin
      Src: /src/s2geometry/src/s2/s2builder_test.cc:829,1
    - Dst: absl::StrJoin
      Src: /src/s2geometry/src/s2/s2builder_test.cc:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - input_strs
    - ' expected_strs'
    - ' layer_options'
    argTypes:
    - absl::Span<const string_view>
    - vector<string_view>
    - S2PolylineLayer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 831
    functionName: TestPolylineLayers
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - edge_type
    - S2ShapeNestingQuery::Options::Options
    - S2Polyline::S2Polyline
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - s2textformat::ToString
    - vector::back
    - SCOPED_TRACE
    - EXPECT_EQ
    - absl::StrJoin
    - make_unique<S2PolylineLayer>
    - ASSERT_TRUE
    - vector::emplace_back
    - S2Builder::Build
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestPolylineLayers(\n    absl::Span<const string_view> input_strs,\n
      \   const vector<string_view>& expected_strs,\n    const S2PolylineLayer::Options&
      layer_options,\n    const S2Builder::Options& builder_options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:837,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:840,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:841,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:843,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:843,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:845,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:846,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:846,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:849,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:849,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:851,1
    - Dst: absl::StrJoin
      Src: /src/s2geometry/src/s2/s2builder_test.cc:851,1
    - Dst: absl::StrJoin
      Src: /src/s2geometry/src/s2/s2builder_test.cc:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - input_strs
    - ' expected_strs'
    - ' layer_options'
    argTypes:
    - absl::Span<const string_view>
    - vector<string_view>
    - S2PolylineVectorLayer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 853
    functionName: TestPolylineVector
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - make_unique<S2PolylineVectorLayer>
    - S2Builder::AddPolyline
    - MakePolylineOrDie
    - absl::StrJoin
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestPolylineVector(\n    absl::Span<const string_view> input_strs,\n
      \   const vector<string_view>& expected_strs,\n    const S2PolylineVectorLayer::Options&
      layer_options,\n    const S2Builder::Options& builder_options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:859,1
    - Dst: S2PolylineLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:860,1
    - Dst: TestPolylineLayers
      Src: /src/s2geometry/src/s2/s2builder_test.cc:861,1
    - Dst: S2PolylineLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:862,1
    - Dst: TestPolylineLayers
      Src: /src/s2geometry/src/s2/s2builder_test.cc:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - input_strs
    - ' expected_strs'
    - layer_options
    argTypes:
    - absl::Span<const string_view>
    - vector<string_view>
    - S2PolylineLayer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 864
    functionName: TestPolylineLayersBothEdgeTypes
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineLayer::Options::set_edge_type
    - S2ShapeNestingQuery::Options::Options
    - TestPolylineLayers
    linkageType: ''
    returnType: void
    signature: "void TestPolylineLayersBothEdgeTypes(\n    absl::Span<const string_view>
      input_strs,\n    const vector<string_view>& expected_strs,\n    S2PolylineLayer::Options
      layer_options,  // by value\n    const S2Builder::Options& builder_options =
      S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:869,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:869,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:870,1
    - Dst: TestPolylineLayersBothEdgeTypes
      Src: /src/s2geometry/src/s2/s2builder_test.cc:871,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 866
    functionDepth: 3
    functionLinenumber: 866
    functionLinenumberEnd: 874
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineLayersBothEdgeTypes
    - S2Builder::Options::set_simplify_edge_chains
    - IdentitySnapFunction
    - S2ShapeNestingQuery::Options::Options
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyOneEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:880,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:880,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:881,1
    - Dst: TestPolylineLayersBothEdgeTypes
      Src: /src/s2geometry/src/s2/s2builder_test.cc:882,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 876
    functionDepth: 3
    functionLinenumber: 876
    functionLinenumberEnd: 885
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineLayersBothEdgeTypes
    - S2Builder::Options::set_simplify_edge_chains
    - IdentitySnapFunction
    - S2ShapeNestingQuery::Options::Options
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyNearlyAntipodal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:892,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:892,1
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:893,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:894,1
    - Dst: TestPolylineLayersBothEdgeTypes
      Src: /src/s2geometry/src/s2/s2builder_test.cc:895,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 887
    functionDepth: 3
    functionLinenumber: 887
    functionLinenumberEnd: 899
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineLayersBothEdgeTypes
    - S2Builder::Options::set_simplify_edge_chains
    - IdentitySnapFunction
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::Options::set_split_crossing_edges
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyTwoLayers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<EdgeType>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:910,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:911,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:912,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:913,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:915,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:916,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:916,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:917,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:920,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:920,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:920,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:921,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:922,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:923,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:923,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:924,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:924,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:925,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:925,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:926,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:926,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:927,1
    - Dst: S2Polygon::BoundaryNear
      Src: /src/s2geometry/src/s2/s2builder_test.cc:927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 929
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Builder::Options::set_simplify_edge_chains
    - S2Point
    - S2Polygon::loop
    - S2Error::S2Error
    - S2Polygon::num_loops
    - EXPECT_GE
    - S2Polygon::S2Polygon
    - S2Builder::StartLayer
    - EXPECT_TRUE
    - S2Polygon::BoundaryNear
    - S1Angle::Degrees
    - EXPECT_LE
    - static_cast<EdgeType>
    - ASSERT_EQ
    - IdentitySnapFunction
    - S2ShapeNestingQuery::Options::Options
    - S2Loop::MakeRegularLoop
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyOneLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:938,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:938,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:939,1
    - Dst: TestPolylineLayersBothEdgeTypes
      Src: /src/s2geometry/src/s2/s2builder_test.cc:940,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 945
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineLayersBothEdgeTypes
    - S2Builder::Options::set_simplify_edge_chains
    - IdentitySnapFunction
    - S2ShapeNestingQuery::Options::Options
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyOppositeDirections)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:952,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:952,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:953,1
    - Dst: TestPolylineLayersBothEdgeTypes
      Src: /src/s2geometry/src/s2/s2builder_test.cc:954,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 947
    functionDepth: 3
    functionLinenumber: 947
    functionLinenumberEnd: 958
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineLayersBothEdgeTypes
    - S2Builder::Options::set_simplify_edge_chains
    - IdentitySnapFunction
    - S2ShapeNestingQuery::Options::Options
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyKeepsEdgeVertexSeparation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:965,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:965,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:966,1
    - Dst: TestPolylineLayersBothEdgeTypes
      Src: /src/s2geometry/src/s2/s2builder_test.cc:967,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 960
    functionDepth: 3
    functionLinenumber: 960
    functionLinenumberEnd: 972
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineLayersBothEdgeTypes
    - S2Builder::Options::set_simplify_edge_chains
    - IdentitySnapFunction
    - S2ShapeNestingQuery::Options::Options
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyBacktrackingEdgeChain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:986,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:986,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:987,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2builder_test.cc:988,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2builder_test.cc:988,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:988,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:988,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:989,1
    - Dst: S2Builder::Options::snap_function
      Src: /src/s2geometry/src/s2/s2builder_test.cc:990,1
    - Dst: TestPolylineLayersBothEdgeTypes
      Src: /src/s2geometry/src/s2/s2builder_test.cc:991,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 974
    functionDepth: 3
    functionLinenumber: 974
    functionLinenumberEnd: 995
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineLayersBothEdgeTypes
    - S2Builder::Options::set_simplify_edge_chains
    - IdentitySnapFunction
    - S2::GetDistance
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::Options::snap_function
    - S1Angle::Degrees
    - MakePointOrDie
    - ABSL_CHECK_LT
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyAvoidsBacktrackingVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1013,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1014,1
    - Dst: TestPolylineLayersBothEdgeTypes
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1015,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 997
    functionDepth: 3
    functionLinenumber: 997
    functionLinenumberEnd: 1018
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineLayersBothEdgeTypes
    - S2Builder::Options::set_simplify_edge_chains
    - IntLatLngSnapFunction
    - S2ShapeNestingQuery::Options::Options
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyLimitsEdgeDeviation)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1026,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1027,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1028,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1029,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1035,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1035,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1036,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1035,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1037,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1037,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1038,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1038,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1038,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1039,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1039,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1041,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1042,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1042,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1044,1
    - Dst: BoundaryNear
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1044,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1045,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1045,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1047
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Builder::Options::set_simplify_edge_chains
    - S2Point
    - vector::back
    - vector::emplace_back
    - S2Error::S2Error
    - BoundaryNear
    - S2Polygon::S2Polygon
    - S2Builder::StartLayer
    - EXPECT_TRUE
    - S1Angle::Degrees
    - back
    - Contains
    - IdentitySnapFunction
    - emplace_back
    - get
    - S2Loop::MakeRegularLoop
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyPreservesTopology)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1050,1
    - Dst: S2PolylineVectorLayer::Options::set_sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1052,1
    - Dst: TestPolylineVector
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1055,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1061,1
    - Dst: TestPolylineVector
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1049
    functionDepth: 2
    functionLinenumber: 1049
    functionLinenumberEnd: 1065
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::Options::set_simplify_edge_chains
    - S2PolylineVectorLayer::Options::set_sibling_pairs
    - IntLatLngSnapFunction
    - TestPolylineVector
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyRemovesSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1068,1
    - Dst: S2PolylineVectorLayer::Options::set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1070,1
    - Dst: TestPolylineVector
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1073,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1079,1
    - Dst: TestPolylineVector
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1083
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::Options::set_simplify_edge_chains
    - S2PolylineVectorLayer::Options::set_duplicate_edges
    - IntLatLngSnapFunction
    - TestPolylineVector
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyMergesDuplicateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1086,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1086,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1087,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1089,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1090,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1090,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1091,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1091,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1092,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1092,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1093,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1094,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1094,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1095,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1096
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::Options::set_simplify_edge_chains
    - IdentitySnapFunction
    - S2Builder::ForceVertex
    - S2Polyline::S2Polyline
    - s2textformat::ToString
    - S1Angle::Radians
    - S2Builder::AddPolyline
    - MakePolylineOrDie
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyKeepsForcedVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - ' graph_options'
    argTypes:
    - EdgeInputEdgeIds
    - GraphOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1110
    functionName: InputEdgeIdCheckingLayer::InputEdgeIdCheckingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void InputEdgeIdCheckingLayer(const EdgeInputEdgeIds& expected,\n
      \                          const GraphOptions& graph_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1111
    functionName: InputEdgeIdCheckingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1116,1
    - Dst: second::empty
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1117,1
    - Dst: StrAppend
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1119,1
    - Dst: string::erase
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1121,1
    - Dst: string::size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - pair<string, vector<int>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1125
    functionName: InputEdgeIdCheckingLayer::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - string::size
    - StrAppend
    - string::erase
    - second::empty
    linkageType: ''
    returnType: string
    signature: string ToString(const pair<string, vector<int>>& p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1134,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1135,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1136,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1136,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1137,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1137,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1138,1
    - Dst: EdgeInputEdgeIds::push_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1139,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1139,1
    - Dst: vector<InputEdgeId>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1140,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1140,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1140,1
    - Dst: std::count
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1145,1
    - Dst: EdgeInputEdgeIds::begin
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1145,1
    - Dst: EdgeInputEdgeIds::end
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1145,1
    - Dst: InputEdgeIdCheckingLayer::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1146,1
    - Dst: std::count
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1149,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1149,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1149,1
    - Dst: InputEdgeIdCheckingLayer::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1150,1
    - Dst: string::empty
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1152,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1152,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1154,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1157
    functionName: InputEdgeIdCheckingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - input_edge_ids
    - num_edges
    - end
    - begin
    - EdgeInputEdgeIds::begin
    - absl::StrFormat
    - auto::end
    - EdgeInputEdgeIds::push_back
    - InputEdgeIdCheckingLayer::ToString
    - make_pair
    - empty
    - string::empty
    - EdgeInputEdgeIds::end
    - S2Error
    - s2textformat::ToString
    - std::count
    - vector<InputEdgeId>
    - vertex
    - edge
    - auto::begin
    linkageType: ''
    returnType: void
    signature: "void InputEdgeIdCheckingLayer::Build(const Graph& g,\n                                     S2Error*
      absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1164,1
    - Dst: make_unique<InputEdgeIdCheckingLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1164,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1167,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1167,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1169,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1170,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - input_strs
    - ' expected'
    - ' graph_options'
    - ' options'
    argTypes:
    - absl::Span<const string_view>
    - EdgeInputEdgeIds
    - GraphOptions
    - S2Builder::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1171
    functionName: TestInputEdgeIds
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - make_unique<InputEdgeIdCheckingLayer>
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestInputEdgeIds(absl::Span<const string_view> input_strs,\n
      \                     const EdgeInputEdgeIds& expected,\n                      const
      GraphOptions& graph_options,\n                      const S2Builder::Options&
      options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1175,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1176,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1177
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestInputEdgeIds
    - GraphOptions
    - S2ShapeNestingQuery::Options::Options
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, InputEdgeIdAssignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1182,1
    - Dst: TestInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1183,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1189
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestInputEdgeIds
    - S2ShapeNestingQuery::Options::Options
    - GraphOptions::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, UndirectedSiblingsDontHaveInputEdgeIds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions::set_sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1195,1
    - Dst: TestInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1196,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1202
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestInputEdgeIds
    - S2ShapeNestingQuery::Options::Options
    - GraphOptions::set_sibling_pairs
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, CreatedSiblingsDontHaveInputEdgeIds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions::set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1207,1
    - Dst: TestInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1208,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1204
    functionDepth: 2
    functionLinenumber: 1204
    functionLinenumberEnd: 1210
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestInputEdgeIds
    - GraphOptions::set_duplicate_edges
    - S2ShapeNestingQuery::Options::Options
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, EdgeMergingDirected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions::set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1215,1
    - Dst: GraphOptions::set_sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1216,1
    - Dst: TestInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1217,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1212
    functionDepth: 2
    functionLinenumber: 1212
    functionLinenumberEnd: 1220
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - TestInputEdgeIds
    - GraphOptions::set_duplicate_edges
    - GraphOptions::set_sibling_pairs
    - S2ShapeNestingQuery::Options::Options
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, EdgeMergingUndirected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions::set_degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1237,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1238,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1239,1
    - Dst: TestInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1222
    functionDepth: 2
    functionLinenumber: 1222
    functionLinenumberEnd: 1243
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::Options::set_simplify_edge_chains
    - TestInputEdgeIds
    - GraphOptions::set_degenerate_edges
    - IntLatLngSnapFunction
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyDegenerateEdgeMergingEasy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1253,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1254,1
    - Dst: TestInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1265,1
    - Dst: EdgeInputEdgeIds::insert
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1269,1
    - Dst: EdgeInputEdgeIds::end
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1269,1
    - Dst: GraphOptions::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1272,1
    - Dst: TestInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1274
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::Options::set_simplify_edge_chains
    - EdgeInputEdgeIds::end
    - GraphOptions::set_edge_type
    - TestInputEdgeIds
    - EdgeInputEdgeIds::insert
    - IntLatLngSnapFunction
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyDegenerateEdgeMergingHard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1282,1
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1283,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1308,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1309,1
    - Dst: make_unique<InputEdgeIdCheckingLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1309,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1312,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1312,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1315,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1316,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1317
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::Options::set_simplify_edge_chains
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - make_unique<InputEdgeIdCheckingLayer>
    - ASSERT_TRUE
    - IntLatLngSnapFunction
    - S2Builder::Build
    - vector::size
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SimplifyDegenerateEdgeMergingMultipleLayers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1330,1
    - Dst: S2Builder::Options::set_idempotent
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1331,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1333,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1334,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1334,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1335,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1335,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1337,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1338,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1339,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1340
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - IdentitySnapFunction
    - S2Builder::Options::set_idempotent
    - S2Builder::ForceVertex
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2Point
    - S2Builder::AddPolyline
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, HighPrecisionPredicates)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1346,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1348,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1349,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1353
    functionName: ChoosePoint
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Point::Normalize
    - s2random::Point
    - s2random::LogUniform
    - absl::Bernoulli
    linkageType: ''
    returnType: S2Point
    signature: S2Point ChoosePoint(absl::BitGenRef bitgen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1364,1
    - Dst: S1ChordAngle::GetS1AngleConstructorMaxError
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1365,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1366,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1368,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1369,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1371,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1381,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1382,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1383,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1384,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1384,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1385,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1385,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1385,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1386,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1386,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1387,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1387,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1389,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1389,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1395,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1396,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1397,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1398,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1399,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1400,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1401,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1401,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1403,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1403,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1407,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1407,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1409,1
    - Dst: S2Builder::Options::set_idempotent
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1410,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1412,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1413,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1414,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1414,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1415,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1416,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1417,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1418,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1419,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1420,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1421,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1423,1
    - Dst: S2Polygon::is_empty
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1423,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1424,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1424,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1425,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1426,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1426,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1427,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1427,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1427,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1433,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1434,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1435
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - absl::Bernoulli
    - S2::GetUpdateMinDistanceMaxError
    - pow
    - ABSL_LOG
    - S2Error::S2Error
    - S2Polygon::loop
    - S1ChordAngle::PlusError
    - S2::Interpolate
    - S1Angle::Radians
    - S2Cap
    - S2Polygon::num_loops
    - S2Point::S2Point
    - EXPECT_GE
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Polygon::IsValid
    - S2Error::ok
    - S2Builder::StartLayer
    - S2Builder::Options::set_idempotent
    - S2::GetPointOnLine
    - S2Builder::ForceVertex
    - ChoosePoint
    - S2Builder::AddEdge
    - EXPECT_TRUE
    - S2Testing::MakeTaggedSeedSeq
    - S2Polygon::set_s2debug_override
    - IdentitySnapFunction
    - s2pred::Sign
    - S1ChordAngle::GetS1AngleConstructorMaxError
    - s2random::SamplePoint
    - swap
    - S2Builder::Build
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2::RobustCrossProd
    - S2Polygon::is_empty
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, HighPrecisionStressTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1438,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1439,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1440,1
    - Dst: CycleTimer::CycleTimer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1442,1
    - Dst: CycleTimer::Start
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1443,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1448,1
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1451,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1452,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1453,1
    - Dst: s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1454,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1455,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1456,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1457,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1457,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1464,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1465,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1465,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1466,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1469,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1471,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1471,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1473,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1474,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1475,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1475,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1476,1
    - Dst: S2Polygon::FindValidationError
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1476,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1478,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1479,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1482,1
    - Dst: CycleTimer::GetInMs
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1483,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1483,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1484,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1487
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
    - absl::Bernoulli
    - S2Polygon::FindValidationError
    - S2Builder::AddPolyline
    - S2Builder::Options::set_snap_function
    - vector::back
    - S2Error::S2Error
    - s2random::Cap
    - CycleTimer::CycleTimer
    - S2Builder::Options::set_split_crossing_edges
    - min
    - S2Polygon::num_loops
    - absl::PrintF
    - S2Polygon::S2Polygon
    - IntLatLngSnapFunction
    - S2Builder::StartLayer
    - vector::front
    - CycleTimer::GetInMs
    - EXPECT_TRUE
    - s2textformat::ToString
    - S2Cap::GetRadius
    - S2Testing::MakeTaggedSeedSeq
    - S2ShapeNestingQuery::Options::Options
    - S2Polygon::num_vertices
    - CycleTimer::Start
    - s2random::SamplePoint
    - S2Builder::Build
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - absl::GetFlag
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SelfIntersectionStressTest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1490,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1491,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1493,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1496,1
    - Dst: S2Fractal::SetLevelForApproxMinEdges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1497,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1498,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1498,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1500,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1500,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1500,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1502,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1503,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1504,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1504,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1505,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1506,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1507,1
    - Dst: S2CellIdSnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1507,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1509,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1509,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1510,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1510,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1513,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1514,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1514,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1515,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1516,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1517,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1517,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1518,1
    - Dst: S2Polygon::FindValidationError
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1518,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1520,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1521,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1524,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1525,1
    - Dst: S2Polygon::num_vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1489
    functionDepth: 1
    functionLinenumber: 1489
    functionLinenumberEnd: 1528
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - absl::Bernoulli
    - S2Polygon::FindValidationError
    - S2Builder::Options::set_snap_function
    - S2Fractal::SetLevelForApproxMinEdges
    - S2Error::S2Error
    - s2random::Frame
    - absl::PrintF
    - S2Polygon::S2Polygon
    - IntLatLngSnapFunction
    - S2Builder::StartLayer
    - S2CellIdSnapFunction
    - EXPECT_TRUE
    - s2textformat::ToString
    - S1Angle::Degrees
    - S2Testing::MakeTaggedSeedSeq
    - IdentitySnapFunction
    - S2Polygon::num_vertices
    - S2Fractal::set_fractal_dimension
    - S2Builder::AddPolygon
    - S2Builder::Build
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - absl::GetFlag
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, FractalStressTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1533,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1534,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1536,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1538,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1539,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1539,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1540,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1540,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1541,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1542,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1542,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1543,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - input_str
    - snap_radius
    - vertices_str
    - expected_str
    argTypes:
    - string_view
    - S1Angle
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1544
    functionName: TestSnappingWithForcedVertices
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - IdentitySnapFunction
    - S2Builder::ForceVertex
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - s2textformat::ToString
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - s2textformat::ParsePointsOrDie
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestSnappingWithForcedVertices(string_view input_str, S1Angle
      snap_radius,\n                                    string_view vertices_str,\n
      \                                   string_view expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSnappingWithForcedVertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1559,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1559,1
    - Dst: TestSnappingWithForcedVertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1561,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1561,1
    - Dst: TestSnappingWithForcedVertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1563,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1563,1
    - Dst: TestSnappingWithForcedVertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1571,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1571,1
    - Dst: TestSnappingWithForcedVertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1577,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1577,1
    - Dst: TestSnappingWithForcedVertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1587,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1546
    functionDepth: 2
    functionLinenumber: 1546
    functionLinenumberEnd: 1590
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Degrees
    - TestSnappingWithForcedVertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, AdjacentCoverageIntervalsSpanMoreThan90Degrees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1601,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1603,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1604,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1604,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1605,1
    - Dst: S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1605,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1611,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1612,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1612,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1613,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1614
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S1Angle::Radians
    - S2Builder::AddShape
    - ASSERT_FALSE
    - S2Builder::Build
    - EXPECT_EQ
    - S2LaxPolygonShape
    - S2LaxPolygonShape::num_loops
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, NaNVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1620,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1630,1
    - Dst: unique_ptr::IsValid
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1630,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1632,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1633,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1633,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1634,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1635,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1635,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1636,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1637,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1638,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1638,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1639,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1639,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1640,1
    - Dst: ExpectPolygonsEqual
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1645
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - IdentitySnapFunction
    - unique_ptr::IsValid
    - ExpectPolygonsEqual
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - S2Testing::MetersToAngle
    - MakePolygonOrDie
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - S2Polygon::IsValid
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, OldS2PolygonBuilderBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1653,1
    - Dst: S2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1656,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1658,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1659,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1682,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1683,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1686,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1687,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1647
    functionDepth: 1
    functionLinenumber: 1647
    functionLinenumberEnd: 1688
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineVectorLayer::Options::set_polyline_type
    - S2Builder::AddEdge
    - size
    - S2Builder::Options::set_split_crossing_edges
    - make_unique<S2PolylineVectorLayer>
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SeparationSitesRegressionBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1694,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1694,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1696,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1697,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1697,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1700,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1700,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1701,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1701,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1702,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1702,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1703,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1704,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1704,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1706,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1707
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - IdentitySnapFunction
    - S2Builder::ForceVertex
    - S2Polyline::S2Polyline
    - s2textformat::ToString
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - S1Angle::Degrees
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, VoronoiSiteExclusionBug1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1713,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1713,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1715,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1716,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1716,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1717,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1717,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1718,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1718,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1719,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1719,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1720,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1721,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1721,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1733,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1734
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - IdentitySnapFunction
    - S2Builder::ForceVertex
    - S2Polyline::S2Polyline
    - s2textformat::ToString
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - S1Angle::Degrees
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, VoronoiSiteExclusionBug2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1740,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1740,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1742,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1743,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1743,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1744,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1744,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1746,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1747,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1747,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1748,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1736
    functionDepth: 1
    functionLinenumber: 1736
    functionLinenumberEnd: 1749
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - IdentitySnapFunction
    - s2textformat::MakeLaxPolygonOrDie
    - S1Angle::Degrees
    - S2Polygon::num_loops
    - S2Builder::AddShape
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, HausdorffDistanceBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_idempotent
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1755,1
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1756,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1758,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1759,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1759,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1760,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1760,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1761,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1762,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1762,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1763,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1764,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1765,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1766,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 1767
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::Options::set_idempotent
    - S2Builder::AddEdge
    - S2Builder::ForceVertex
    - S2Polyline::S2Polyline
    - S2Point
    - S2Builder::Options::set_split_crossing_edges
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, IncorrectSeparationSiteBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::S2Builder
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1771,1
    - Dst: S2Builder::push_label
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1772,1
    - Dst: S2Builder::pop_label
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1774
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::S2Builder
    - S2Builder::push_label
    - S2Builder::pop_label
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, PushPopLabel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1783,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1784,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1784,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1785,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1790,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1790,1
    - Dst: S2PolylineVectorLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1794,1
    - Dst: S2PolylineVectorLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1795,1
    - Dst: S2PolygonLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1798,1
    - Dst: S2PolygonLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1799,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1803,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1805,1
    - Dst: make_unique<S2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1805,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1806,1
    - Dst: make_unique<S2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1807,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1808,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1808,1
    - Dst: S2Builder::AddLoop
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1809,1
    - Dst: S2Builder::AddIsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1810,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1813,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1814,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1815,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1815,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1817,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1817,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1818,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1818,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1819,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1776
    functionDepth: 1
    functionLinenumber: 1776
    functionLinenumberEnd: 1820
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - make_unique<S2PolylineVectorLayer>
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2PolylineVectorLayer::Options::set_validate
    - S2Error::S2Error
    - S2ConvexHullQuery::GetConvexHull
    - std::vector::size
    - S1Angle::Radians
    - S2PolygonLayer::Options::set_validate
    - S2ConvexHullQuery::AddPoint
    - S2Polygon::num_loops
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Builder::StartLayer
    - EXPECT_TRUE
    - S2Builder::AddIsFullPolygonPredicate
    - S2Builder::AddLoop
    - S2PolygonLayer::Options::set_edge_type
    - IdentitySnapFunction
    - S2LatLng::FromDegrees
    - S2Builder::Build
    - S2Error::ok
    - make_unique<S2PointVectorLayer>
    - S2PolylineVectorLayer::Options::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(S2Builder, SnappingTinyLoopRegression)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1839,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1840,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1841,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1841,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1843,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1844,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1845,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1846,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1847,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1848,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1849,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1849,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1852,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1852,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1852,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1853,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1853,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1853,1
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1857,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1858,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1861,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1861,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1862,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1863,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1864,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1864,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1866,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2builder_test.cc:1866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1822
    functionDepth: 1
    functionLinenumber: 1822
    functionLinenumberEnd: 1867
    functionName: BM_NearlyParallelCrossingEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - string::end
    - S2Polyline::num_vertices
    - S2Builder::AddPolyline
    - ABSL_LOG
    - S2Error::S2Error
    - string::begin
    - S2Testing::MetersToAngle
    - S2Cap
    - S2Builder::Options::set_split_crossing_edges
    - make_unique<S2PolylineLayer>
    - S2Builder::StartLayer
    - vector::push_back
    - S2::GetPointOnLine
    - S2Polyline::S2Polyline
    - StrCat
    - range
    - s2random::SamplePoint
    - S2Builder::Build
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_NearlyParallelCrossingEdges(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: S2CellUnion::S2CellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::S2CellUnion(const S2CellUnion&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: S2CellUnion::S2CellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::S2CellUnion(S2CellUnion&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2cell_union.cc:59,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.cc:59,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:60,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_union.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - vector<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: S2CellUnion::ToS2CellIds
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - vector::reserve
    - S2CellUnion::size
    - S2CellId
    linkageType: ''
    returnType: vector<S2CellId>
    signature: vector<S2CellId> S2CellUnion::ToS2CellIds(const vector<uint64_t>& ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::ToS2CellIds
      Src: /src/s2geometry/src/s2/s2cell_union.cc:65,1
    - Dst: S2CellUnion::Normalize
      Src: /src/s2geometry/src/s2/s2cell_union.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell_ids'
    argTypes:
    - vector<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: S2CellUnion::S2CellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 2
    functionsReached:
    - S2CellUnion::Normalize
    - S2CellUnion::ToS2CellIds
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::S2CellUnion(const vector<uint64_t>& cell_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union.cc:70,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union.cc:70,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union.cc:70,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union.cc:71,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union.cc:71,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union.cc:72,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: S2CellUnion::WholeSphere
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromFace
    - S2CellUnion::S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2CellUnion::WholeSphere()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union.cc:76,1
    - Dst: S2CellUnion::InitFromMinMax
      Src: /src/s2geometry/src/s2/s2cell_union.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - min_id
    - max_id
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: S2CellUnion::FromMinMax
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::InitFromMinMax
    - S2CellUnion::S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2CellUnion::FromMinMax(S2CellId min_id, S2CellId max_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union.cc:82,1
    - Dst: S2CellUnion::InitFromBeginEnd
      Src: /src/s2geometry/src/s2/s2cell_union.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: S2CellUnion::FromBeginEnd
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::InitFromBeginEnd
    - S2CellUnion::S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2CellUnion::FromBeginEnd(S2CellId begin, S2CellId end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::ToS2CellIds
      Src: /src/s2geometry/src/s2/s2cell_union.cc:88,1
    - Dst: S2CellUnion::Normalize
      Src: /src/s2geometry/src/s2/s2cell_union.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cell_ids'
    argTypes:
    - vector<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: S2CellUnion::Init
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 2
    functionsReached:
    - S2CellUnion::Normalize
    - S2CellUnion::ToS2CellIds
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Init(const vector<uint64_t>& cell_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:93,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_union.cc:93,1
    - Dst: S2CellUnion::InitFromBeginEnd
      Src: /src/s2geometry/src/s2/s2cell_union.cc:94,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_union.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - min_id
    - max_id
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: S2CellUnion::InitFromMinMax
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 1
    functionsReached:
    - S2CellId::is_valid
    - S2CellId::next
    - S2CellUnion::InitFromBeginEnd
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::InitFromMinMax(S2CellId min_id, S2CellId max_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:98,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_union.cc:98,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:99,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_union.cc:99,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_union.cc:100,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:101,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_union.cc:101,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:102,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_union.cc:102,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2cell_union.cc:103,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2cell_union.cc:106,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_union.cc:107,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_union.cc:108,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:109,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:112,1
    - Dst: S2CellUnion::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union.cc:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: S2CellUnion::InitFromBeginEnd
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 2
    functionsReached:
    - S2CellId::is_leaf
    - S2CellUnion::IsNormalized
    - ABSL_DCHECK_LE
    - clear
    - S2CellId::next
    - push_back
    - S2CellId::is_valid
    - S2CellId::End
    - S2CellId::maximum_tile
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::InitFromBeginEnd(S2CellId begin, S2CellId end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: capacity
      Src: /src/s2geometry/src/s2/s2cell_union.cc:116,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.cc:116,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2cell_union.cc:116,1
    - Dst: shrink_to_fit
      Src: /src/s2geometry/src/s2/s2cell_union.cc:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - excess
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: S2CellUnion::Pack
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - S2CellUnion::size
    - shrink_to_fit
    - capacity
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Pack(int excess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: S2CellUnion::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::S2CellUnion
    linkageType: ''
    returnType: S2Region
    signature: S2Region * S2CellUnion::Clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:130,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:130,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:130,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:130,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_union.cc:136,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:138,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:139,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:140,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:141,1
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/s2cell_union.cc:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - a
    - b
    - c
    - d
    argTypes:
    - S2CellId
    - S2CellId
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: AreSiblings
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellId::lsb
    - S2CellId::id
    - S2CellId::is_face
    linkageType: ''
    returnType: bool
    signature: bool AreSiblings(S2CellId a, S2CellId b, S2CellId c, S2CellId d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union.cc:146,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:146,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union.cc:147,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:148,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:149,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: S2CellUnion::IsValid
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::cell_id
    - S2CellUnion::num_cells
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::IsValid() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union.cc:155,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:155,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union.cc:156,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:157,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:158,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:158,1
    - Dst: AreSiblings
      Src: /src/s2geometry/src/s2/s2cell_union.cc:159,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:159,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:159,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:160,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: S2CellUnion::IsNormalized
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 1
    functionsReached:
    - AreSiblings
    - S2CellUnion::cell_id
    - S2CellUnion::num_cells
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::IsNormalized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::Normalize
      Src: /src/s2geometry/src/s2/s2cell_union.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: S2CellUnion::Normalize
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 5
    functionsReached:
    - S2CellUnion::Normalize
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Normalize()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_union.cc:175,1
    - Dst: vector<S2CellId>*::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:175,1
    - Dst: vector<S2CellId>*::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:175,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:178,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2cell_union.cc:178,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_union.cc:180,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_union.cc:183,1
    - Dst: AreSiblings
      Src: /src/s2geometry/src/s2/s2cell_union.cc:187,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2cell_union.cc:190,1
    - Dst: vector<S2CellId>*::size
      Src: /src/s2geometry/src/s2/s2cell_union.cc:195,1
    - Dst: vector<S2CellId>*::resize
      Src: /src/s2geometry/src/s2/s2cell_union.cc:196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 197
    functionName: S2CellUnion::Normalize
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 5
    functionsReached:
    - vector<S2CellId>*::end
    - vector<S2CellId>*::size
    - AreSiblings
    - vector<S2CellId>*::resize
    - is_valid
    - vector<S2CellId>*::begin
    - std::sort
    - parent
    - contains
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Normalize(vector<S2CellId>* ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::Denormalize
      Src: /src/s2geometry/src/s2/s2cell_union.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - min_level
    - level_mod
    - out
    argTypes:
    - int
    - int
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: S2CellUnion::Denormalize
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 3
    functionsReached:
    - S2CellUnion::Denormalize
    linkageType: ''
    returnType: void
    signature: "void S2CellUnion::Denormalize(int min_level, int level_mod,\n                              vector<S2CellId>*
      out) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_union.cc:207,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2cell_union.cc:208,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_union.cc:209,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2cell_union.cc:210,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2cell_union.cc:211,1
    - Dst: vector<S2CellId>*::clear
      Src: /src/s2geometry/src/s2/s2cell_union.cc:213,1
    - Dst: vector<S2CellId>*::reserve
      Src: /src/s2geometry/src/s2/s2cell_union.cc:214,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.cc:214,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_union.cc:216,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_union.cc:217,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_union.cc:222,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:225,1
    - Dst: child_end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:227,1
    - Dst: child_begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:228,1
    - Dst: next
      Src: /src/s2geometry/src/s2/s2cell_union.cc:228,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - ' in'
    - min_level
    - level_mod
    - out
    argTypes:
    - vector<S2CellId>
    - int
    - int
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 233
    functionName: S2CellUnion::Denormalize
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 3
    functionsReached:
    - child_end
    - vector<S2CellId>*::clear
    - level
    - vector<S2CellId>*::push_back
    - ABSL_DCHECK_LE
    - ABSL_DCHECK_NE
    - min
    - S2CellUnion::size
    - next
    - max
    - vector<S2CellId>*::reserve
    - child_begin
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: "void S2CellUnion::Denormalize(const vector<S2CellId>& in,\n                              int
      min_level, int level_mod,\n                              vector<S2CellId>* out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union.cc:238,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cell_union.cc:238,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2cell_union.cc:241,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_union.cc:241,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2cell_union.cc:242,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_union.cc:244,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_union.cc:245,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2cell_union.cc:247,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2cell_union.cc:254,1
    - Dst: S2Cap::AddCap
      Src: /src/s2geometry/src/s2/s2cell_union.cc:256,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_union.cc:256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: S2CellUnion::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - ToPoint
    - S2Cell::AverageArea
    - level
    - S2Point
    - S2CellUnion::empty
    - S2Point::Normalize
    - S2Cap::FromPoint
    - S2Cap::AddCap
    - S2Cell
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2CellUnion::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2cell_union.cc:262,1
    - Dst: S2LatLngRect::Union
      Src: /src/s2geometry/src/s2/s2cell_union.cc:264,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_union.cc:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: S2CellUnion::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2Cell
    - S2LatLngRect::Empty
    - S2LatLngRect::Union
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2CellUnion::GetRectBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::GetCapBound
      Src: /src/s2geometry/src/s2/s2cell_union.cc:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: S2CellUnion::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::GetCapBound
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_union.cc:286,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_union.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: EntirelyPrecedes
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellId::range_max
    - S2CellId::range_min
    linkageType: ''
    returnType: bool
    signature: bool EntirelyPrecedes(S2CellId a, S2CellId b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:296,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_union.cc:296,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2cell_union.cc:298,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:298,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:298,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:299,1
    - Dst: auto::contains
      Src: /src/s2geometry/src/s2/s2cell_union.cc:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: S2CellUnion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::begin
    - S2CellUnion::end
    - auto::contains
    - std::lower_bound
    - S2CellId::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Contains(S2CellId id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:304,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_union.cc:304,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2cell_union.cc:306,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:306,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:306,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:307,1
    - Dst: auto::intersects
      Src: /src/s2geometry/src/s2/s2cell_union.cc:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: S2CellUnion::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::begin
    - S2CellUnion::end
    - auto::intersects
    - std::lower_bound
    - S2CellId::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Intersects(S2CellId id) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union.cc:311,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union.cc:312,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:313,1
    - Dst: EntirelyPrecedes
      Src: /src/s2geometry/src/s2/s2cell_union.cc:317,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2cell_union.cc:318,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:318,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:320,1
    - Dst: auto::contains
      Src: /src/s2geometry/src/s2/s2cell_union.cc:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: S2CellUnion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::begin
    - S2CellUnion::end
    - S2CellUnion::empty
    - auto::contains
    - std::lower_bound
    - EntirelyPrecedes
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Contains(const S2CellUnion& y) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:329,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:329,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:329,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:329,1
    - Dst: EntirelyPrecedes
      Src: /src/s2geometry/src/s2/s2cell_union.cc:330,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2cell_union.cc:332,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:332,1
    - Dst: EntirelyPrecedes
      Src: /src/s2geometry/src/s2/s2cell_union.cc:335,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2cell_union.cc:337,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:337,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:341,1
    - Dst: auto::intersects
      Src: /src/s2geometry/src/s2/s2cell_union.cc:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 345
    functionName: S2CellUnion::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::begin
    - S2CellUnion::end
    - auto::intersects
    - std::lower_bound
    - EntirelyPrecedes
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Intersects(const S2CellUnion& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2cell_union.cc:349,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union.cc:349,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union.cc:349,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2cell_union.cc:351,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:351,1
    - Dst: cell_ids_::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:351,1
    - Dst: cell_ids_::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:351,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union.cc:352,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: S2CellUnion::Union
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::num_cells
    - std::move
    - vector::reserve
    - vector::end
    - S2CellUnion::S2CellUnion
    - cell_ids_::begin
    - vector::insert
    - cell_ids_::end
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2CellUnion::Union(const S2CellUnion& y) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:356,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_union.cc:356,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union.cc:357,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union.cc:358,1
    - Dst: S2CellUnion::cell_ids_::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:359,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2cell_union.cc:361,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:362,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:362,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_union.cc:362,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_union.cc:363,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:364,1
    - Dst: S2CellUnion::cell_ids_::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:365,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:367,1
    - Dst: S2CellUnion::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union.cc:367,1
    - Dst: S2CellUnion::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union.cc:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 369
    functionName: S2CellUnion::Intersection
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::begin
    - S2CellId::range_max
    - S2CellUnion::IsNormalized
    - S2CellUnion::end
    - S2CellId::range_min
    - S2CellUnion::S2CellUnion
    - std::lower_bound
    - S2CellId::is_valid
    - S2CellUnion::Contains
    - S2CellUnion::cell_ids_::push_back
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2CellUnion::Intersection(S2CellId id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union.cc:372,1
    - Dst: S2CellUnion::GetIntersection
      Src: /src/s2geometry/src/s2/s2cell_union.cc:373,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:375,1
    - Dst: S2CellUnion::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union.cc:375,1
    - Dst: S2CellUnion::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union.cc:375,1
    - Dst: S2CellUnion::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union.cc:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: S2CellUnion::Intersection
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::GetIntersection
    - S2CellUnion::IsNormalized
    - ABSL_DCHECK
    - S2CellUnion::S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2CellUnion::Intersection(const S2CellUnion& y) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2cell_union.cc:382,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2cell_union.cc:383,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:384,1
    - Dst: is_sorted
      Src: /src/s2geometry/src/s2/s2cell_union.cc:384,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:384,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:384,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:385,1
    - Dst: is_sorted
      Src: /src/s2geometry/src/s2/s2cell_union.cc:385,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:385,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:385,1
    - Dst: vector<S2CellId>*::clear
      Src: /src/s2geometry/src/s2/s2cell_union.cc:391,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:392,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:393,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:394,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:394,1
    - Dst: vector<S2CellId>::const_iterator::range_min
      Src: /src/s2geometry/src/s2/s2cell_union.cc:395,1
    - Dst: vector<S2CellId>::const_iterator::range_min
      Src: /src/s2geometry/src/s2/s2cell_union.cc:396,1
    - Dst: vector<S2CellId>::const_iterator::range_max
      Src: /src/s2geometry/src/s2/s2cell_union.cc:399,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:400,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2cell_union.cc:403,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:403,1
    - Dst: vector<S2CellId>::const_iterator::range_max
      Src: /src/s2geometry/src/s2/s2cell_union.cc:407,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:408,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2cell_union.cc:410,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:410,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:415,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:417,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:421,1
    - Dst: is_sorted
      Src: /src/s2geometry/src/s2/s2cell_union.cc:421,1
    - Dst: vector<S2CellId>*::begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:421,1
    - Dst: vector<S2CellId>*::end
      Src: /src/s2geometry/src/s2/s2cell_union.cc:421,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - out
    argTypes:
    - vector<S2CellId>
    - vector<S2CellId>
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 422
    functionName: S2CellUnion::GetIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 1
    functionsReached:
    - S2CellUnion::begin
    - vector<S2CellId>*::clear
    - vector<S2CellId>*::push_back
    - S2CellUnion::end
    - is_sorted
    - vector<S2CellId>*::end
    - ABSL_DCHECK_NE
    - vector<S2CellId>::const_iterator::range_min
    - vector<S2CellId>::const_iterator::range_max
    - std::lower_bound
    - vector<S2CellId>*::begin
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void S2CellUnion::GetIntersection(const vector<S2CellId>& x,\n                                             const
      vector<S2CellId>& y,\n                                             vector<S2CellId>*
      out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2cell_union.cc:429,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:430,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_union.cc:431,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_union.cc:432,1
    - Dst: GetDifferenceInternal
      Src: /src/s2geometry/src/s2/s2cell_union.cc:434,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_union.cc:436,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - cell
    - ' y'
    - cell_ids
    argTypes:
    - S2CellId
    - S2CellUnion
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 439
    functionName: GetDifferenceInternal
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 1
    functionsReached:
    - Intersects
    - vector<S2CellId>*::push_back
    - GetDifferenceInternal
    - S2CellId::next
    - S2CellId::child_begin
    - Contains
    linkageType: ''
    returnType: void
    signature: "void GetDifferenceInternal(S2CellId cell,\n                                  const
      S2CellUnion& y,\n                                  vector<S2CellId>* cell_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union.cc:445,1
    - Dst: GetDifferenceInternal
      Src: /src/s2geometry/src/s2/s2cell_union.cc:447,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.cc:450,1
    - Dst: S2CellUnion::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union.cc:450,1
    - Dst: S2CellUnion::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union.cc:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 452
    functionName: S2CellUnion::Difference
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - GetDifferenceInternal
    - S2CellUnion::IsNormalized
    - ABSL_DCHECK
    - S2CellUnion::S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2CellUnion::Difference(const S2CellUnion& y) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::lsb_for_level
      Src: /src/s2geometry/src/s2/s2cell_union.cc:456,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union.cc:457,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:458,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_union.cc:459,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_union.cc:460,1
    - Dst: S2CellId::contains
      Src: /src/s2geometry/src/s2/s2cell_union.cc:463,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:463,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union.cc:465,1
    - Dst: S2CellId::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2cell_union.cc:466,1
    - Dst: S2CellUnion::Init
      Src: /src/s2geometry/src/s2/s2cell_union.cc:468,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union.cc:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - expand_level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: S2CellUnion::Expand
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2CellUnion::num_cells
    - S2CellUnion::Init
    - std::move
    - S2CellUnion::cell_id
    - S2CellId::contains
    - S2CellId::lsb
    - S2CellId::parent
    - S2CellId::AppendAllNeighbors
    - S2CellId::lsb_for_level
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Expand(int expand_level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_union.cc:474,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_union.cc:474,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2cell_union.cc:477,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_union.cc:477,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_union.cc:478,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_union.cc:478,1
    - Dst: S2CellUnion::Expand
      Src: /src/s2geometry/src/s2/s2cell_union.cc:481,1
    - Dst: S2CellUnion::Expand
      Src: /src/s2geometry/src/s2/s2cell_union.cc:483,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_union.cc:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - min_radius
    - max_level_diff
    argTypes:
    - S1Angle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 484
    functionName: S2CellUnion::Expand
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 1
    functionsReached:
    - level
    - GetValue
    - min
    - S1Angle::radians
    - GetLevelForMinValue
    - S2CellUnion::Expand
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Expand(S1Angle min_radius, int max_level_diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_union.cc:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 493
    functionName: S2CellUnion::LeafCellsCovered
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - level
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t S2CellUnion::LeafCellsCovered() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2cell_union.cc:496,1
    - Dst: S2CellUnion::LeafCellsCovered
      Src: /src/s2geometry/src/s2/s2cell_union.cc:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 497
    functionName: S2CellUnion::AverageBasedArea
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::LeafCellsCovered
    - S2Cell::AverageArea
    linkageType: ''
    returnType: double
    signature: double S2CellUnion::AverageBasedArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_union.cc:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 505
    functionName: S2CellUnion::ApproxArea
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2Cell
    linkageType: ''
    returnType: double
    signature: double S2CellUnion::ApproxArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_union.cc:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 513
    functionName: S2CellUnion::ExactArea
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2Cell
    linkageType: ''
    returnType: double
    signature: double S2CellUnion::ExactArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union.cc:516,1
    - Dst: cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union.cc:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2CellUnion
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: operator==(const S2CellUnion& x, const S2CellUnion& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - cell_ids
    linkageType: ''
    returnType: bool
    signature: bool operator==(const S2CellUnion& x, const S2CellUnion& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union.cc:520,1
    - Dst: cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union.cc:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2CellUnion
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 521
    functionName: operator!=(const S2CellUnion& x, const S2CellUnion& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - cell_ids
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const S2CellUnion& x, const S2CellUnion& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union.cc:524,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 525
    functionName: S2CellUnion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 2
    functionsReached:
    - S2CellUnion::Contains
    - id
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Contains(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union.cc:528,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: S2CellUnion::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Intersects
    - id
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::MayIntersect(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2cell_union.cc:534,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.cc:535,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2cell_union.cc:537,1
    - Dst: Encoder*::put64
      Src: /src/s2geometry/src/s2/s2cell_union.cc:538,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.cc:538,1
    - Dst: S2CellUnion::Encode
      Src: /src/s2geometry/src/s2/s2cell_union.cc:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 542
    functionName: S2CellUnion::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 1
    functionsReached:
    - Encoder*::put8
    - S2CellUnion::Encode
    - S2CellUnion::size
    - Encoder*::Ensure
    - Encoder*::put64
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Encode(Encoder* const encoder) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2cell_union.cc:546,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2cell_union.cc:547,1
    - Dst: Decoder*::get64
      Src: /src/s2geometry/src/s2/s2cell_union.cc:550,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2cell_union.cc:551,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union.cc:552,1
    - Dst: S2CellUnion::Decode
      Src: /src/s2geometry/src/s2/s2cell_union.cc:558,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2cell_union.cc:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 562
    functionName: S2CellUnion::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - S2CellUnion::Decode
    - swap
    - Decoder*::avail
    - Decoder*::get8
    - absl::GetFlag
    - Decoder*::get64
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Decode(Decoder* const decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union.cc:565,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_union.cc:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 566
    functionName: S2CellUnion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 3
    functionsReached:
    - S2CellUnion::Contains
    - S2CellId
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Contains(const S2Point& p) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2cell_union.cc:570,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.cc:570,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_union.cc:571,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.cc:571,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union.cc:573,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.cc:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 577
    functionName: S2CellUnion::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - S2CellUnion::size
    - S2CellUnion::cell_id
    - min
    linkageType: ''
    returnType: std::string
    signature: std::string S2CellUnion::ToString() const
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' os'
    - r
    argTypes:
    - std::ostream
    - S2CellRelation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 48
    functionName: '& operator<<(std::ostream& os, S2CellRelation r)'
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, S2CellRelation r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: S2CellIterator::S2CellIterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: ~S2CellIterator()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2CellIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: S2CellIterator::S2CellIterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellIterator(const S2CellIterator&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: '& operator=(const S2CellIterator&)'
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellIterator
    signature: S2CellIterator & operator=(const S2CellIterator&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:148,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:149,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:149,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:153,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' iter'
    - ' point'
    argTypes:
    - Iterator
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 157
    functionName: S2CellIterator::LocateImpl
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator.h
    functionUses: 0
    functionsReached:
    - id
    - Prev
    - done
    - Seek
    linkageType: ''
    returnType: bool
    signature: bool S2CellIterator::LocateImpl(Iterator& iter, const S2Point& point)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:170,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:170,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:171,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:173,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:173,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:178,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:178,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:185,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator.h:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ' iter'
    - target
    argTypes:
    - Iterator
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 189
    functionName: S2CellIterator::LocateImpl
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator.h
    functionUses: 0
    functionsReached:
    - S2CellId::range_max
    - done
    - S2CellId::range_min
    - Seek
    - id
    - Prev
    linkageType: ''
    returnType: S2CellRelation
    signature: "S2CellRelation S2CellIterator::LocateImpl(Iterator& iter,\n                                                 S2CellId
      target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: S2RegionCoverer::Options::max_cells
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_cells() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: S2RegionCoverer::Options::min_level
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int min_level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: S2RegionCoverer::Options::max_level
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: S2RegionCoverer::Options::level_mod
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level_mod() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: S2RegionCoverer::S2RegionCoverer
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionCoverer(const S2RegionCoverer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: '& operator=(const S2RegionCoverer&)'
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2RegionCoverer
    signature: S2RegionCoverer & operator=(const S2RegionCoverer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: S2RegionCoverer::mutable_options
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options * mutable_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator new
      Src: /src/s2geometry/src/s2/s2region_coverer.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - max_children
    argTypes:
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: '* operator new(std::size_t size, std::size_t max_children)'
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached:
    - ::operator new
    linkageType: ''
    returnType: void
    signature: void * operator new(std::size_t size, std::size_t max_children)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete
      Src: /src/s2geometry/src/s2/s2region_coverer.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: operator delete(void* p)
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached:
    - ::operator delete
    linkageType: ''
    returnType: void
    signature: void operator delete(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill_n
      Src: /src/s2geometry/src/s2/s2region_coverer.h:262,1
    - Dst: absl::implicit_cast<Candidate*>
      Src: /src/s2geometry/src/s2/s2region_coverer.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' cell'
    - max_children
    argTypes:
    - S2Cell
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: S2RegionCoverer::Candidate
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached:
    - absl::implicit_cast<Candidate*>
    - std::fill_n
    linkageType: ''
    returnType: void
    signature: void Candidate(const S2Cell& cell, const std::size_t max_children)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: ~Candidate()
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Candidate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2region_coverer.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 282
    functionName: S2RegionCoverer::max_children_shift
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 2
    functionsReached:
    - options
    linkageType: ''
    returnType: int
    signature: int max_children_shift() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - QueueEntry
    - QueueEntry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: operator()(const QueueEntry& x, const QueueEntry& y) const
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(const QueueEntry& x, const QueueEntry& y) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClippedShape::num_edges
      Src: /src/s2geometry/src/s2/s2shape_index.cc:32,1
    - Dst: S2ClippedShape::edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: S2ClippedShape::ContainsEdge
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.cc
    functionUses: 0
    functionsReached:
    - S2ClippedShape::num_edges
    - S2ClippedShape::edge
    linkageType: ''
    returnType: bool
    signature: bool S2ClippedShape::ContainsEdge(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Destruct
      Src: /src/s2geometry/src/s2/s2shape_index.cc:41,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2shape_index.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: S2ShapeIndexCell::~S2ShapeIndexCell()
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.cc
    functionUses: 0
    functionsReached:
    - Destruct
    - clear
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexCell::~S2ShapeIndexCell()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shape_index.cc:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: S2ShapeIndexCell::find_clipped
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.cc
    functionUses: 0
    functionsReached:
    - shape_id
    linkageType: ''
    returnType: S2ClippedShape
    signature: 'S2ClippedShape *

      S2ShapeIndexCell::find_clipped(int shape_id) const'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shape_index.cc:62,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2shape_index.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: S2ShapeIndexCell::add_shapes
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.cc
    functionUses: 0
    functionsReached:
    - resize
    - size
    linkageType: ''
    returnType: S2ClippedShape
    signature: S2ClippedShape * S2ShapeIndexCell::add_shapes(int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shape_index.cc:93,1
    - Dst: S2ShapeIndexCell::num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index.cc:93,1
    - Dst: S2ShapeIndexCell::clipped
      Src: /src/s2geometry/src/s2/s2shape_index.cc:94,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shape_index.cc:95,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shape_index.cc:95,1
    - Dst: S2ShapeIndexCell::num_edges
      Src: /src/s2geometry/src/s2/s2shape_index.cc:96,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2shape_index.cc:97,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:98,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:98,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/s2shape_index.cc:108,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2shape_index.cc:108,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:108,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:109,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/s2shape_index.cc:117,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2shape_index.cc:117,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:117,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:118,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/s2shape_index.cc:125,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2shape_index.cc:125,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:126,1
    - Dst: S2ShapeIndexCell::EncodeEdges
      Src: /src/s2geometry/src/s2/s2shape_index.cc:127,1
    - Dst: S2ShapeIndexCell::num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index.cc:130,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2shape_index.cc:134,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:135,1
    - Dst: S2ShapeIndexCell::num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index.cc:135,1
    - Dst: S2ShapeIndexCell::num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index.cc:139,1
    - Dst: S2ShapeIndexCell::clipped
      Src: /src/s2geometry/src/s2/s2shape_index.cc:140,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shape_index.cc:141,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shape_index.cc:141,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shape_index.cc:142,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shape_index.cc:143,1
    - Dst: S2ShapeIndexCell::num_edges
      Src: /src/s2geometry/src/s2/s2shape_index.cc:147,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2shape_index.cc:148,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:149,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:149,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:158,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:158,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:159,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:160,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:173,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:174,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:183,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:184,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:185,1
    - Dst: S2ShapeIndexCell::EncodeEdges
      Src: /src/s2geometry/src/s2/s2shape_index.cc:186,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - num_shape_ids
    - encoder
    argTypes:
    - int
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 190
    functionName: S2ShapeIndexCell::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.cc
    functionUses: 0
    functionsReached:
    - S2ShapeIndexCell::num_edges
    - Encoder*::put_varint64
    - ABSL_DCHECK_EQ
    - static_cast<uint64_t>
    - Encoder*::put_varint32
    - shape_id
    - S2ShapeIndexCell::EncodeEdges
    - S2ShapeIndexCell::clipped
    - S2ShapeIndexCell::num_clipped
    - edge
    - Encoder*::Ensure
    - contains_center
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexCell::Encode(int num_shape_ids, Encoder* encoder)
      const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexCell::add_shapes
      Src: /src/s2geometry/src/s2/s2shape_index.cc:196,1
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/s2shape_index.cc:198,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/s2shape_index.cc:202,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:203,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index.cc:206,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2shape_index.cc:207,1
    - Dst: S2ClippedShape*::set_edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:212,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2shape_index.cc:212,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/s2shape_index.cc:218,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:219,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index.cc:221,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2shape_index.cc:221,1
    - Dst: S2ClippedShape*::set_edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:224,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/s2shape_index.cc:229,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:230,1
    - Dst: S2ShapeIndexCell::DecodeEdges
      Src: /src/s2geometry/src/s2/s2shape_index.cc:231,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:235,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:240,1
    - Dst: S2ShapeIndexCell::add_shapes
      Src: /src/s2geometry/src/s2/s2shape_index.cc:243,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2shape_index.cc:246,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:250,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:254,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/s2shape_index.cc:257,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:258,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index.cc:260,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2shape_index.cc:261,1
    - Dst: S2ClippedShape*::set_edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:265,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2shape_index.cc:265,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/s2shape_index.cc:270,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:271,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:279,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/s2shape_index.cc:282,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/s2shape_index.cc:283,1
    - Dst: S2ShapeIndexCell::DecodeEdges
      Src: /src/s2geometry/src/s2/s2shape_index.cc:284,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 2
    argNames:
    - num_shape_ids
    - decoder
    argTypes:
    - int
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 288
    functionName: S2ShapeIndexCell::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.cc
    functionUses: 0
    functionsReached:
    - S2ClippedShape*::set_edge
    - S2ShapeIndexCell::DecodeEdges
    - S2ShapeIndexCell::add_shapes
    - ABSL_PREDICT_FALSE
    - Stats::max
    - S2ClippedShape*::set_contains_center
    - Decoder*::get_varint32
    - Decoder*::get_varint64
    - static_cast<int>
    - S2ClippedShape*::Init
    linkageType: ''
    returnType: bool
    signature: bool S2ShapeIndexCell::Decode(int num_shape_ids, Decoder* decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexCell::num_edges
      Src: /src/s2geometry/src/s2/s2shape_index.cc:304,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:306,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shape_index.cc:307,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:311,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:315,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:320,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:323,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' clipped'
    - encoder
    argTypes:
    - S2ClippedShape
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 329
    functionName: S2ShapeIndexCell::EncodeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.cc
    functionUses: 1
    functionsReached:
    - Encoder*::put_varint32
    - S2ShapeIndexCell::num_edges
    - edge
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: "void S2ShapeIndexCell::EncodeEdges(const S2ClippedShape& clipped,\n
      \                                         Encoder* encoder)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:338,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index.cc:342,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2shape_index.cc:342,1
    - Dst: S2ClippedShape*::set_edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:345,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2shape_index.cc:352,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index.cc:356,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2shape_index.cc:356,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index.cc:362,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2shape_index.cc:363,1
    - Dst: S2ClippedShape*::set_edge
      Src: /src/s2geometry/src/s2/s2shape_index.cc:367,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - num_edges
    - clipped
    - decoder
    argTypes:
    - int
    - S2ClippedShape*
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 372
    functionName: S2ShapeIndexCell::DecodeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.cc
    functionUses: 1
    functionsReached:
    - S2ClippedShape*::set_edge
    - static_cast<uint32_t>
    - ABSL_PREDICT_FALSE
    - Stats::max
    - Decoder*::get_varint32
    linkageType: ''
    returnType: bool
    signature: "bool S2ShapeIndexCell::DecodeEdges(int num_edges,\n                                          S2ClippedShape*
      clipped,\n                                          Decoder* decoder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:47,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:48,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:49,1
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:50,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:51,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:52,1
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:53,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:54,1
    - Dst: Graph::Graph
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: s2builderutil::GraphClone::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.cc
    functionUses: 2
    functionsReached:
    - input_edge_id_set_ids
    - label_set_ids
    - input_edge_id_set_lexicon
    - is_full_polygon_predicate
    - edges
    - vertices
    - options
    - label_set_lexicon
    - Graph::Graph
    linkageType: ''
    returnType: void
    signature: void GraphClone::Init(const Graph& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string::empty
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:65,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' edges'
    argTypes:
    - EdgeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: s2builderutil::IndexMatchingLayer::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - string::empty
    linkageType: ''
    returnType: string
    signature: string IndexMatchingLayer::ToString(const EdgeVector& edges)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:73,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:74,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:75,1
    - Dst: S2Shape::Edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:75,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:75,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:76,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:80,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:81,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:82,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:82,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:85,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:85,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:85,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:86,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:86,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:86,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:90,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:90,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:91,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:91,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:92,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:92,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:93,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:94,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:95,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:101,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:101,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:105,1
    - Dst: S2Error::FailedPrecondition
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:106,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:106,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:107,1
    - Dst: s2builderutil::IndexMatchingLayer::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:108,1
    - Dst: s2builderutil::IndexMatchingLayer::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:108,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 110
    functionName: s2builderutil::IndexMatchingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - absl::StrFormat
    - S2Error::FailedPrecondition
    - num_edges
    - end
    - vector::end
    - push_back
    - dimension
    - message
    - vertex
    - edge
    - vector::empty
    - s2builderutil::IndexMatchingLayer::ToString
    - begin
    - std::sort
    - empty
    - vector::begin
    - S2Shape::Edge
    linkageType: ''
    returnType: void
    signature: void IndexMatchingLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:47,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:48,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:49,1
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:50,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:51,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:52,1
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:53,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:54,1
    - Dst: Graph::Graph
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: s2builderutil::GraphClone::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.cc
    functionUses: 2
    functionsReached:
    - input_edge_id_set_ids
    - label_set_ids
    - input_edge_id_set_lexicon
    - is_full_polygon_predicate
    - edges
    - vertices
    - options
    - label_set_lexicon
    - Graph::Graph
    linkageType: ''
    returnType: void
    signature: void GraphClone::Init(const Graph& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string::empty
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:65,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' edges'
    argTypes:
    - EdgeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: s2builderutil::IndexMatchingLayer::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.cc
    functionUses: 1
    functionsReached:
    - s2textformat::ToString
    - string::empty
    linkageType: ''
    returnType: string
    signature: string IndexMatchingLayer::ToString(const EdgeVector& edges)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:73,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:74,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:75,1
    - Dst: S2Shape::Edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:75,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:75,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:76,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:80,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:81,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:82,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:82,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:85,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:85,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:85,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:86,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:86,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:86,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:90,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:90,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:91,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:91,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:92,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:92,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:93,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:94,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:95,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:101,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:101,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:105,1
    - Dst: S2Error::FailedPrecondition
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:106,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:106,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:107,1
    - Dst: s2builderutil::IndexMatchingLayer::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:108,1
    - Dst: s2builderutil::IndexMatchingLayer::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_testing.cc:108,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 110
    functionName: s2builderutil::IndexMatchingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - absl::StrFormat
    - S2Error::FailedPrecondition
    - num_edges
    - end
    - vector::end
    - push_back
    - dimension
    - message
    - vertex
    - edge
    - vector::empty
    - s2builderutil::IndexMatchingLayer::ToString
    - begin
    - std::sort
    - empty
    - vector::begin
    - S2Shape::Edge
    linkageType: ''
    returnType: void
    signature: void IndexMatchingLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - deriv
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: S2::Metric::Metric
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Metric(double deriv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: S2::Metric::deriv
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double deriv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2metrics.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: S2::Metric::GetValue
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached:
    - ldexp
    linkageType: ''
    returnType: double
    signature: double GetValue(int level) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: S2::Metric::Metric
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Metric(const Metric&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: operator=(const Metric&)
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Metric&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:170,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/s2metrics.h:170,1
    - Dst: ilogb
      Src: /src/s2geometry/src/s2/s2metrics.h:178,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/s2metrics.h:179,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:180,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2metrics.h:180,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:181,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2metrics.h:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: S2::Metric<dim>::GetLevelForMaxValue(double value) const
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached:
    - clamp
    - GetValue
    - std::isnan
    - ilogb
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int S2::Metric<dim>::GetLevelForMaxValue(double value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:187,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/s2metrics.h:187,1
    - Dst: ilogb
      Src: /src/s2geometry/src/s2/s2metrics.h:195,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/s2metrics.h:196,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:197,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2metrics.h:197,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:198,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2metrics.h:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: S2::Metric<dim>::GetLevelForMinValue(double value) const
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached:
    - clamp
    - GetValue
    - std::isnan
    - ilogb
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int S2::Metric<dim>::GetLevelForMinValue(double value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: S2::Metric<dim>::GetClosestLevel
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached:
    - GetLevelForMaxValue
    linkageType: ''
    returnType: int
    signature: int Metric<dim>::GetClosestLevel(double value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - deriv
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: S2::Metric::Metric
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Metric(double deriv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: S2::Metric::deriv
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double deriv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2metrics.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: S2::Metric::GetValue
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached:
    - ldexp
    linkageType: ''
    returnType: double
    signature: double GetValue(int level) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: S2::Metric::Metric
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Metric(const Metric&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: operator=(const Metric&)
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Metric&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:170,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/s2metrics.h:170,1
    - Dst: ilogb
      Src: /src/s2geometry/src/s2/s2metrics.h:178,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/s2metrics.h:179,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:180,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2metrics.h:180,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:181,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2metrics.h:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: S2::Metric<dim>::GetLevelForMaxValue(double value) const
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached:
    - clamp
    - GetValue
    - std::isnan
    - ilogb
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int S2::Metric<dim>::GetLevelForMaxValue(double value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:187,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/s2metrics.h:187,1
    - Dst: ilogb
      Src: /src/s2geometry/src/s2/s2metrics.h:195,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/s2metrics.h:196,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:197,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2metrics.h:197,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2metrics.h:198,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2metrics.h:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: S2::Metric<dim>::GetLevelForMinValue(double value) const
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached:
    - clamp
    - GetValue
    - std::isnan
    - ilogb
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int S2::Metric<dim>::GetLevelForMinValue(double value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: S2::Metric<dim>::GetClosestLevel
    functionSourceFile: /src/s2geometry/src/s2/s2metrics.h
    functionUses: 0
    functionsReached:
    - GetLevelForMaxValue
    linkageType: ''
    returnType: int
    signature: int Metric<dim>::GetClosestLevel(double value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - limit
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: S2::IsDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.h
    functionUses: 0
    functionsReached:
    - S2::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool IsDistanceLess(const S2Point& x, const S2Point& a,\n                           const
      S2Point& b, S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - limit
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: S2::IsInteriorDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.h
    functionUses: 0
    functionsReached:
    - S2::UpdateMinInteriorDistance
    linkageType: ''
    returnType: bool
    signature: "bool IsInteriorDistanceLess(const S2Point& x, const S2Point& a,\n
      \                                  const S2Point& b, S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.h:267,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.h:267,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.h:268,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.h:268,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2edge_distances.h:270,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.h:270,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_distances.h:271,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2edge_distances.h:280,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2edge_distances.h:280,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' origin'
    - ' dir'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 281
    functionName: S2::GetPointOnRay
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.h
    functionUses: 0
    functionsReached:
    - DotProd
    - ABSL_DCHECK_LE
    - S2::IsUnitLength
    - Normalize
    - radians
    - sin
    - cos
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetPointOnRay(const S2Point& origin, const S2Point& dir,\n
      \                            S1ChordAngle r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.h:286,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.h:286,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.h:287,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.h:287,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2edge_distances.h:288,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.h:288,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_distances.h:289,1
    - Dst: S1Angle::SinCos
      Src: /src/s2geometry/src/s2/s2edge_distances.h:291,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' origin'
    - ' dir'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: S2::GetPointOnRay
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.h
    functionUses: 0
    functionsReached:
    - DotProd
    - ABSL_DCHECK_LE
    - S1Angle::SinCos
    - S2::IsUnitLength
    - Normalize
    - radians
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetPointOnRay(const S2Point& origin, const S2Point& dir,\n
      \                            const S1Angle r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - limit
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: S2::IsDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.h
    functionUses: 0
    functionsReached:
    - S2::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool IsDistanceLess(const S2Point& x, const S2Point& a,\n                           const
      S2Point& b, S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - limit
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: S2::IsInteriorDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.h
    functionUses: 0
    functionsReached:
    - S2::UpdateMinInteriorDistance
    linkageType: ''
    returnType: bool
    signature: "bool IsInteriorDistanceLess(const S2Point& x, const S2Point& a,\n
      \                                  const S2Point& b, S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.h:267,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.h:267,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.h:268,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.h:268,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2edge_distances.h:270,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.h:270,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_distances.h:271,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2edge_distances.h:280,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2edge_distances.h:280,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' origin'
    - ' dir'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 281
    functionName: S2::GetPointOnRay
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.h
    functionUses: 0
    functionsReached:
    - DotProd
    - ABSL_DCHECK_LE
    - S2::IsUnitLength
    - Normalize
    - radians
    - sin
    - cos
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetPointOnRay(const S2Point& origin, const S2Point& dir,\n
      \                            S1ChordAngle r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.h:286,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.h:286,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.h:287,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.h:287,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2edge_distances.h:288,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.h:288,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_distances.h:289,1
    - Dst: S1Angle::SinCos
      Src: /src/s2geometry/src/s2/s2edge_distances.h:291,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' origin'
    - ' dir'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: S2::GetPointOnRay
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.h
    functionUses: 0
    functionsReached:
    - DotProd
    - ABSL_DCHECK_LE
    - S1Angle::SinCos
    - S2::IsUnitLength
    - Normalize
    - radians
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetPointOnRay(const S2Point& origin, const S2Point& dir,\n
      \                            const S1Angle r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:50,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:51,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:51,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:52,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:52,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:55,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:55,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:56,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:56,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:57,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:57,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:59,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:60,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:60,1
    - Dst: S2LatLng::Normalized
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:62,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:63,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:63,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:63,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:64,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:64,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:64,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:67,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:67,1
    - Dst: S2LatLng::Normalized
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:69,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:70,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:70,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:70,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:71,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:71,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:73,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:73,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:73,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:73,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:75,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:75,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:75,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:75,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:76,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:77,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:77,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:77,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:78,1
    - Dst: S2LatLng::Invalid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:81,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:82,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:82,1
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:86,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:87,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:88,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 89
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::Invalid
    - S2LatLng::is_valid
    - S2LatLng::lng
    - S2LatLng::lat
    - EXPECT_DOUBLE_EQ
    - ApproxEquals
    - EXPECT_TRUE
    - S1Angle::Degrees
    - S2LatLng::FromRadians
    - S2LatLng::S2LatLng
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2LatLng::Normalized
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, TestBasic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:93,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:94,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:94,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:96,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:97,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:97,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:97,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:99,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:100,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:100,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:100,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:102,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:103,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:103,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:103,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:103,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:107,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:108,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:110,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:111,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:111,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:111,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 113
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - EXPECT_DOUBLE_EQ
    - fabs
    - EXPECT_TRUE
    - S2Point
    - S2LatLng
    - S2::ApproxEquals
    - S2LatLng::FromRadians
    - S2LatLng::FromDegrees
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, TestConversion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signbit
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:116,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: IsIdentical
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - signbit
    linkageType: ''
    returnType: bool
    signature: bool IsIdentical(double x, double y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:120,1
    - Dst: IsIdentical
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:120,1
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:121,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:121,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:122,1
    - Dst: IsIdentical
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:122,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:123,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:123,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:124,1
    - Dst: IsIdentical
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:124,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:125,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:125,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:126,1
    - Dst: IsIdentical
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:126,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:127,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:128,1
    - Dst: IsIdentical
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:128,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:129,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Point
    - IsIdentical
    - S2LatLng::Longitude
    - S2LatLng::Latitude
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, NegativeZeros)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:133,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:134,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:134,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:136,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:137,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:137,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:141,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:142,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:142,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:145,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:146,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromDegrees
    - S1ChordAngle::is_infinity
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, InfIsInvalid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:152,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:153,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:153,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:155,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:156,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:156,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:160,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:161,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:161,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:164,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:165,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 168
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::quiet_NaN
    - S2LatLng::FromDegrees
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, NanIsInvalid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:171,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:172,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:173,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:174,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:175,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:176,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:178,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:179,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:180,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:182,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:183,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 186
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NEAR
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, TestDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:196,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:196,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:202,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:202,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:203,1
    - Dst: S2LatLng::ToStringInDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:204,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:207,1
    - Dst: std::sscanf
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:207,1
    - Dst: string::c_str
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:207,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:208,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 211
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - StrCat
    - EXPECT_NEAR
    - string::c_str
    - sqrt
    - SCOPED_TRACE
    - S2LatLng::FromDegrees
    - S2LatLng::ToStringInDegrees
    - std::sscanf
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, TestToString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:215,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:216,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:217,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:218,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:220,1
    - Dst: absl::flat_hash_map::size
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:221,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:222,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:223,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:224,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:225,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - absl::flat_hash_map::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, TestHashCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:229,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:231,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:232,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::RoundTrip
    - s2coding::S2HintCoder::S2HintCoder
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:237,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:237,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:238,1
    - Dst: S2LatLng::Invalid
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:239,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:240,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:241,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:242,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:243,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:244,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:245,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 248
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLng
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - S2LatLng::FromDegrees
    - S2LatLng::Invalid
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLng, SupportsAbslHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:251,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:251,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:253,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:254,1
    - Dst: S2LatLng::ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: BM_ToPoint
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::E7
    - benchmark::DoNotOptimize
    - S2LatLng::ToPoint
    linkageType: ''
    returnType: void
    signature: void BM_ToPoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:260,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:261,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:263,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:264,1
    - Dst: S2LatLng::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_test.cc:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: BM_GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::GetDistance
    - S2LatLng::FromDegrees
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_GetDistance(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CellMap*::begin
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:40,1
    - Dst: CellMap*::end
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:40,1
    - Dst: MockS2CellIterator::Begin
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - CellMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: MockS2CellIterator::MockS2CellIterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 0
    functionsReached:
    - CellMap*::end
    - MockS2CellIterator::Begin
    - CellMap*::begin
    linkageType: ''
    returnType: void
    signature: void MockS2CellIterator(const CellMap* map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:48,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: '& value() const'
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: T
    signature: T & value() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MockS2CellIterator::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:54,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: MockS2CellIterator::id
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - MockS2CellIterator::done
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId id() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: MockS2CellIterator::done
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: MockS2CellIterator::Begin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Begin() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: MockS2CellIterator::Finish
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:73,1
    - Dst: MockS2CellIterator::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: MockS2CellIterator::Next
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 0
    functionsReached:
    - MockS2CellIterator::done
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: MockS2CellIterator::Prev
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Prev() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: MockS2CellIterator::Seek
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 1
    functionsReached:
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void Seek(S2CellId target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: MockS2CellIterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 0
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: bool
    signature: bool Locate(const S2Point& target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: MockS2CellIterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 0
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: S2CellRelation
    signature: S2CellRelation Locate(S2CellId target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MockS2CellIterator<T>
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - absl::btree_map<S2CellId, T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: MakeMockS2CellIterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing.h
    functionUses: 10
    functionsReached:
    - MockS2CellIterator<T>
    linkageType: ''
    returnType: MockS2CellIterator<T>
    signature: "MockS2CellIterator<T> MakeMockS2CellIterator(\n    const absl::btree_map<S2CellId,
      T>* map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: s2testing::ReaderWriterTest::ReaderWriterTest
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReaderWriterTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: ~ReaderWriterTest()
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReaderWriterTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: s2testing::ReaderWriterTest::ReaderWriterTest
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReaderWriterTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: ~ReaderWriterTest()
    functionSourceFile: /src/s2geometry/src/s2/thread_testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReaderWriterTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2pointutil.cc:39,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2pointutil.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: S2::IsUnitLength
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 26
    functionsReached:
    - fabs
    - Norm2
    linkageType: ''
    returnType: bool
    signature: bool IsUnitLength(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2pointutil.cc:43,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil.cc:43,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2pointutil.cc:44,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil.cc:44,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2pointutil.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - max_error
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: S2::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 12
    functionsReached:
    - S2Point
    - ABSL_DCHECK_NE
    - S1Angle
    linkageType: ''
    returnType: bool
    signature: bool ApproxEquals(const S2Point& a, const S2Point& b, S1Angle max_error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2pointutil.cc:52,1
    - Dst: LargestAbsComponent
      Src: /src/s2geometry/src/s2/s2pointutil.cc:54,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2pointutil.cc:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: S2::Ortho
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 3
    functionsReached:
    - CrossProd
    - S2::Ortho
    - LargestAbsComponent
    linkageType: ''
    returnType: S2Point
    signature: S2Point Ortho(const S2Point& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2pointutil.cc:63,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2pointutil.cc:63,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2pointutil.cc:64,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2pointutil.cc:64,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2pointutil.cc:70,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2pointutil.cc:72,1
    - Dst: S1Angle::SinCos
      Src: /src/s2geometry/src/s2/s2pointutil.cc:75,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2pointutil.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' p'
    - ' axis'
    - angle
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: S2::Rotate
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - S1Angle::SinCos
    - CrossProd
    - S2::IsUnitLength
    - Normalize
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point Rotate(const S2Point& p, const S2Point& axis, const S1Angle
      angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2pointutil.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' z'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: S2::GetFrame
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 4
    functionsReached:
    - S2::GetFrame
    linkageType: ''
    returnType: Matrix3x3_d
    signature: Matrix3x3_d GetFrame(const S2Point& z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2pointutil.cc:86,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2pointutil.cc:86,1
    - Dst: Matrix3x3_d*::SetCol
      Src: /src/s2geometry/src/s2/s2pointutil.cc:87,1
    - Dst: Matrix3x3_d*::SetCol
      Src: /src/s2geometry/src/s2/s2pointutil.cc:88,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2pointutil.cc:88,1
    - Dst: Matrix3x3_d*::SetCol
      Src: /src/s2geometry/src/s2/s2pointutil.cc:89,1
    - Dst: Matrix3x3_d*::Col
      Src: /src/s2geometry/src/s2/s2pointutil.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' z'
    - m
    argTypes:
    - S2Point
    - Matrix3x3_d*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: S2::GetFrame
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 4
    functionsReached:
    - S2::Ortho
    - Matrix3x3_d*::SetCol
    - S2::IsUnitLength
    - Matrix3x3_d*::Col
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void GetFrame(const S2Point& z, Matrix3x3_d* m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Transpose
      Src: /src/s2geometry/src/s2/s2pointutil.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' m'
    - ' p'
    argTypes:
    - Matrix3x3_d
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: S2::ToFrame
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 1
    functionsReached:
    - Transpose
    linkageType: ''
    returnType: S2Point
    signature: S2Point ToFrame(const Matrix3x3_d& m, const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' m'
    - ' q'
    argTypes:
    - Matrix3x3_d
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: S2::FromFrame
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point FromFrame(const Matrix3x3_d& m, const S2Point& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2pointutil.cc:39,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2pointutil.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: S2::IsUnitLength
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 28
    functionsReached:
    - fabs
    - Norm2
    linkageType: ''
    returnType: bool
    signature: bool IsUnitLength(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2pointutil.cc:43,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil.cc:43,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2pointutil.cc:44,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil.cc:44,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2pointutil.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - max_error
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: S2::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 12
    functionsReached:
    - S2Point
    - ABSL_DCHECK_NE
    - S1Angle
    linkageType: ''
    returnType: bool
    signature: bool ApproxEquals(const S2Point& a, const S2Point& b, S1Angle max_error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2pointutil.cc:52,1
    - Dst: LargestAbsComponent
      Src: /src/s2geometry/src/s2/s2pointutil.cc:54,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2pointutil.cc:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: S2::Ortho
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 5
    functionsReached:
    - CrossProd
    - S2::Ortho
    - LargestAbsComponent
    linkageType: ''
    returnType: S2Point
    signature: S2Point Ortho(const S2Point& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2pointutil.cc:63,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2pointutil.cc:63,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2pointutil.cc:64,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2pointutil.cc:64,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2pointutil.cc:70,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2pointutil.cc:72,1
    - Dst: S1Angle::SinCos
      Src: /src/s2geometry/src/s2/s2pointutil.cc:75,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2pointutil.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' p'
    - ' axis'
    - angle
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: S2::Rotate
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - S1Angle::SinCos
    - CrossProd
    - S2::IsUnitLength
    - Normalize
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point Rotate(const S2Point& p, const S2Point& axis, const S1Angle
      angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2pointutil.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' z'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: S2::GetFrame
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 5
    functionsReached:
    - S2::GetFrame
    linkageType: ''
    returnType: Matrix3x3_d
    signature: Matrix3x3_d GetFrame(const S2Point& z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2pointutil.cc:86,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2pointutil.cc:86,1
    - Dst: Matrix3x3_d*::SetCol
      Src: /src/s2geometry/src/s2/s2pointutil.cc:87,1
    - Dst: Matrix3x3_d*::SetCol
      Src: /src/s2geometry/src/s2/s2pointutil.cc:88,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2pointutil.cc:88,1
    - Dst: Matrix3x3_d*::SetCol
      Src: /src/s2geometry/src/s2/s2pointutil.cc:89,1
    - Dst: Matrix3x3_d*::Col
      Src: /src/s2geometry/src/s2/s2pointutil.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' z'
    - m
    argTypes:
    - S2Point
    - Matrix3x3_d*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: S2::GetFrame
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 5
    functionsReached:
    - S2::Ortho
    - Matrix3x3_d*::SetCol
    - S2::IsUnitLength
    - Matrix3x3_d*::Col
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void GetFrame(const S2Point& z, Matrix3x3_d* m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Transpose
      Src: /src/s2geometry/src/s2/s2pointutil.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' m'
    - ' p'
    argTypes:
    - Matrix3x3_d
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: S2::ToFrame
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 1
    functionsReached:
    - Transpose
    linkageType: ''
    returnType: S2Point
    signature: S2Point ToFrame(const Matrix3x3_d& m, const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' m'
    - ' q'
    argTypes:
    - Matrix3x3_d
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: S2::FromFrame
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point FromFrame(const Matrix3x3_d& m, const S2Point& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointRegion::S2PointRegion
      Src: /src/s2geometry/src/s2/s2point_region.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: S2PointRegion::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.cc
    functionUses: 0
    functionsReached:
    - S2PointRegion::S2PointRegion
    linkageType: ''
    returnType: S2Region
    signature: S2Region * S2PointRegion::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2point_region.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: S2PointRegion::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.cc
    functionUses: 0
    functionsReached:
    - S2Cap::FromPoint
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2PointRegion::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2point_region.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: S2PointRegion::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2PointRegion::GetRectBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointRegion::GetCapBound
      Src: /src/s2geometry/src/s2/s2point_region.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: S2PointRegion::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.cc
    functionUses: 0
    functionsReached:
    - S2PointRegion::GetCapBound
    linkageType: ''
    returnType: void
    signature: void S2PointRegion::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointRegion::Contains
      Src: /src/s2geometry/src/s2/s2point_region.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: S2PointRegion::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.cc
    functionUses: 0
    functionsReached:
    - S2PointRegion::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2PointRegion::MayIntersect(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2point_region.cc:56,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2point_region.cc:58,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2point_region.cc:60,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_region.cc:62,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_region.cc:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: S2PointRegion::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.cc
    functionUses: 0
    functionsReached:
    - Encoder*::put8
    - Encoder*::putdouble
    - Encoder*::Ensure
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: void S2PointRegion::Encode(Encoder* encoder) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2point_region.cc:66,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2point_region.cc:68,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2point_region.cc:72,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2point_region.cc:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: S2PointRegion::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2point_region.cc
    functionUses: 0
    functionsReached:
    - Decoder*::avail
    - S2::IsUnitLength
    - Decoder*::get8
    - Decoder*::getdouble
    linkageType: ''
    returnType: bool
    signature: bool S2PointRegion::Decode(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: S2Point::S2Point
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' base'
    argTypes:
    - Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: S2Point::S2Point
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point(const Base& base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2point.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' base'
    argTypes:
    - Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: S2Point::S2Point
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 27
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void S2Point(Base&& base) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2point.h:79,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2point.h:80,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2point.h:84,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2point.h:84,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2point.h:85,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2point.h:85,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2point.h:86,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2point.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: S2Point::Init
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - S2Error::DataLoss
    - z
    - Decoder*::avail
    - y
    - x
    - Decoder*::getdouble
    linkageType: ''
    returnType: bool
    signature: bool Init(Decoder* decoder, S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator=
      Src: /src/s2geometry/src/s2/s2point.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' base'
    argTypes:
    - Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: '& operator=(const Base& base)'
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Base::operator=
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator=(const Base& base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator=
      Src: /src/s2geometry/src/s2/s2point.h:96,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2point.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' base'
    argTypes:
    - Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: '& operator=(Base&& base) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - std::move
    - Base::operator=
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator=(Base&& base) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator+=
      Src: /src/s2geometry/src/s2/s2point.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: '& operator+=(const S2Point& b)'
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Base::operator+=
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator+=(const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator-=
      Src: /src/s2geometry/src/s2/s2point.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: '& operator-=(const S2Point& b)'
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Base::operator-=
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator-=(const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator*=
      Src: /src/s2geometry/src/s2/s2point.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - ValType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: '& operator*=(const ValType& v)'
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Base::operator*=
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator*=(const ValType& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator/=
      Src: /src/s2geometry/src/s2/s2point.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - ValType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: '& operator/=(const ValType& v)'
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Base::operator/=
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator/=(const ValType& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator+
      Src: /src/s2geometry/src/s2/s2point.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: operator+(const S2Point& b) const
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Base::operator+
    linkageType: ''
    returnType: S2Point
    signature: S2Point operator+(const S2Point& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator-
      Src: /src/s2geometry/src/s2/s2point.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: operator-(const S2Point& b) const
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Base::operator-
    linkageType: ''
    returnType: S2Point
    signature: S2Point operator-(const S2Point& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator*
      Src: /src/s2geometry/src/s2/s2point.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - ValType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: operator*(const ValType& v) const
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Base::operator*
    linkageType: ''
    returnType: S2Point
    signature: S2Point operator*(const ValType& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::operator/
      Src: /src/s2geometry/src/s2/s2point.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - ValType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: operator/(const ValType& v) const
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Base::operator/
    linkageType: ''
    returnType: S2Point
    signature: S2Point operator/(const ValType& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const Base&>
      Src: /src/s2geometry/src/s2/s2point.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pnt'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: operator-(const S2Point& pnt)
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - static_cast<const Base&>
    linkageType: ''
    returnType: S2Point
    signature: S2Point operator-(const S2Point& pnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2point.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: S2Point::Cast
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 5
    functionsReached:
    - S2Point::Cast
    linkageType: ''
    returnType: S2Point
    signature: S2Point Cast(const Vector3<T>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::MulComponents
      Src: /src/s2geometry/src/s2/s2point.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: S2Point::MulComponents
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 1
    functionsReached:
    - S2Point::MulComponents
    linkageType: ''
    returnType: S2Point
    signature: S2Point MulComponents(const S2Point& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::DivComponents
      Src: /src/s2geometry/src/s2/s2point.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: S2Point::DivComponents
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 1
    functionsReached:
    - S2Point::DivComponents
    linkageType: ''
    returnType: S2Point
    signature: S2Point DivComponents(const S2Point& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Max
      Src: /src/s2geometry/src/s2/s2point.h:150,1
    - Dst: static_cast<const Base&>
      Src: /src/s2geometry/src/s2/s2point.h:150,1
    - Dst: static_cast<const Base&>
      Src: /src/s2geometry/src/s2/s2point.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: S2Point::Max
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 1
    functionsReached:
    - static_cast<const Base&>
    - S2Point::Max
    linkageType: ''
    returnType: S2Point
    signature: S2Point Max(const S2Point& a, const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Min
      Src: /src/s2geometry/src/s2/s2point.h:154,1
    - Dst: static_cast<const Base&>
      Src: /src/s2geometry/src/s2/s2point.h:154,1
    - Dst: static_cast<const Base&>
      Src: /src/s2geometry/src/s2/s2point.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: S2Point::Min
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 1
    functionsReached:
    - static_cast<const Base&>
    - S2Point::Min
    linkageType: ''
    returnType: S2Point
    signature: S2Point Min(const S2Point& a, const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::Normalize
      Src: /src/s2geometry/src/s2/s2point.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: S2Point::Normalize
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 7
    functionsReached:
    - S2CellUnion::Normalize
    linkageType: ''
    returnType: S2Point
    signature: S2Point Normalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Sqrt
      Src: /src/s2geometry/src/s2/s2point.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: S2Point::Sqrt
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 1
    functionsReached:
    - S2Point::Sqrt
    linkageType: ''
    returnType: S2Point
    signature: S2Point Sqrt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Floor
      Src: /src/s2geometry/src/s2/s2point.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: S2Point::Floor
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 1
    functionsReached:
    - S2Point::Floor
    linkageType: ''
    returnType: S2Point
    signature: S2Point Floor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Ceil
      Src: /src/s2geometry/src/s2/s2point.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: S2Point::Ceil
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 1
    functionsReached:
    - S2Point::Ceil
    linkageType: ''
    returnType: S2Point
    signature: S2Point Ceil() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::FRound
      Src: /src/s2geometry/src/s2/s2point.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: S2Point::FRound
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 1
    functionsReached:
    - S2Point::FRound
    linkageType: ''
    returnType: S2Point
    signature: S2Point FRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::NaN
      Src: /src/s2geometry/src/s2/s2point.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: S2Point::NaN
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 1
    functionsReached:
    - S2Point::NaN
    linkageType: ''
    returnType: S2Point
    signature: S2Point NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2point.h:165,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/s2point.h:166,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/s2point.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: S2Point::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point.h
    functionUses: 0
    functionsReached:
    - Encoder*::Ensure
    - Encoder*::putn
    - Data
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder* encoder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:49,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:50,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:51,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - unique_ptr::is_empty
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::GetConvexHull
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, NoPoints)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:55,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' loop'
    - ' p'
    argTypes:
    - S2Loop
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: LoopHasVertex
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - vertex
    - num_vertices
    linkageType: ''
    returnType: bool
    signature: bool LoopHasVertex(const S2Loop& loop, const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:62,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:64,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:66,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:66,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:67,1
    - Dst: unique_ptr::IsNormalized
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:67,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:68,1
    - Dst: LoopHasVertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:68,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:70,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:71,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:73,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:73,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Equals
    - unique_ptr::num_vertices
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - LoopHasVertex
    - unique_ptr::get
    - unique_ptr::IsNormalized
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, OnePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:77,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:80,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:81,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:83,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:83,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:84,1
    - Dst: unique_ptr::IsNormalized
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:84,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:85,1
    - Dst: LoopHasVertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:86,1
    - Dst: LoopHasVertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:86,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:88,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:89,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:90,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:92,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:92,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Equals
    - unique_ptr::num_vertices
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - LoopHasVertex
    - unique_ptr::get
    - unique_ptr::IsNormalized
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, TwoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:96,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:97,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:97,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:98,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:98,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:99,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:100,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2Point
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - unique_ptr::is_full
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, TwoAntipodalPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:104,1
    - Dst: S2ConvexHullQuery::AddLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:106,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:107,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:108,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::is_empty
    - S2ConvexHullQuery::AddLoop
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:112,1
    - Dst: S2ConvexHullQuery::AddLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:114,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:115,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:116,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::is_full
    - S2ConvexHullQuery::AddLoop
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, FullLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:120,1
    - Dst: S2ConvexHullQuery::AddPolygon
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:123,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:124,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:125,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::is_empty
    - S2ConvexHullQuery::AddPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:133,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:135,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:135,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:137,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:138,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - unique_ptr::is_full
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, NonConvexPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:144,1
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:146,1
    - Dst: S2ConvexHullQuery::AddPolyline
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:147,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:148,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:151,1
    - Dst: unique_ptr::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:151,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::BoundaryEquals
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::AddPolyline
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::get
    - s2textformat::MakeLoopOrDie
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, SimplePolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:159,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:160,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:160,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:161,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:161,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:162,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:162,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:163,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:164,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - unique_ptr::is_full
    - MakePointOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, CapBoundExpandedToHemisphere)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:170,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:170,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:170,1
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:172,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:174,1
    - Dst: S2ConvexHullQuery::AddLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:175,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:176,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:178,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:180,1
    - Dst: unique_ptr::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:180,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - radius
    - num_vertices
    argTypes:
    - S1Angle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: TestNorthPoleLoop
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::BoundaryEquals
    - fabs
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2Point
    - S2Loop::MakeRegularLoop
    - S1Angle::Radians
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::is_full
    - unique_ptr::get
    - S1Angle::radians
    - S2ConvexHullQuery::AddLoop
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void TestNorthPoleLoop(S1Angle radius, int num_vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:186,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:186,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:187,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:187,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:190,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:190,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:191,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:191,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:193,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:193,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:194,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 195
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - TestNorthPoleLoop
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, LoopsAroundNorthPole)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:198,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:199,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:209,1
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:210,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:211,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:213,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:213,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:215,1
    - Dst: unique_ptr::GetCapBound
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:230,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:235,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:236,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:237,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:241,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:242,1
    - Dst: unique_ptr::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:242,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 244
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::BoundaryEquals
    - s2random::Cap
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - unique_ptr::GetCapBound
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - unique_ptr::get
    - s2random::SamplePoint
    - unique_ptr::Contains
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, PointsInsideHull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:49,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:50,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:51,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - unique_ptr::is_empty
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::GetConvexHull
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, NoPoints)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:55,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' loop'
    - ' p'
    argTypes:
    - S2Loop
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: LoopHasVertex
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 2
    functionsReached:
    - vertex
    - num_vertices
    linkageType: ''
    returnType: bool
    signature: bool LoopHasVertex(const S2Loop& loop, const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:62,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:64,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:66,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:66,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:67,1
    - Dst: unique_ptr::IsNormalized
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:67,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:68,1
    - Dst: LoopHasVertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:68,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:70,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:71,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:73,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:73,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Equals
    - unique_ptr::num_vertices
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - LoopHasVertex
    - unique_ptr::get
    - unique_ptr::IsNormalized
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, OnePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:77,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:80,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:81,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:83,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:83,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:84,1
    - Dst: unique_ptr::IsNormalized
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:84,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:85,1
    - Dst: LoopHasVertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:86,1
    - Dst: LoopHasVertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:86,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:88,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:89,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:90,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:92,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:92,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Equals
    - unique_ptr::num_vertices
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - LoopHasVertex
    - unique_ptr::get
    - unique_ptr::IsNormalized
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, TwoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:96,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:97,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:97,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:98,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:98,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:99,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:100,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2Point
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - unique_ptr::is_full
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, TwoAntipodalPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:104,1
    - Dst: S2ConvexHullQuery::AddLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:106,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:107,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:108,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::is_empty
    - S2ConvexHullQuery::AddLoop
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:112,1
    - Dst: S2ConvexHullQuery::AddLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:114,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:115,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:116,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::is_full
    - S2ConvexHullQuery::AddLoop
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, FullLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:120,1
    - Dst: S2ConvexHullQuery::AddPolygon
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:123,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:124,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:125,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::is_empty
    - S2ConvexHullQuery::AddPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:133,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:135,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:135,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:137,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:138,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - unique_ptr::is_full
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, NonConvexPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:144,1
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:146,1
    - Dst: S2ConvexHullQuery::AddPolyline
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:147,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:148,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:151,1
    - Dst: unique_ptr::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:151,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::BoundaryEquals
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::AddPolyline
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::get
    - s2textformat::MakeLoopOrDie
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, SimplePolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:159,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:160,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:160,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:161,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:161,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:162,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:162,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:163,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:164,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - unique_ptr::is_full
    - MakePointOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, CapBoundExpandedToHemisphere)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:170,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:170,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:170,1
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:172,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:174,1
    - Dst: S2ConvexHullQuery::AddLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:175,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:176,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:178,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:180,1
    - Dst: unique_ptr::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:180,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - radius
    - num_vertices
    argTypes:
    - S1Angle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: TestNorthPoleLoop
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 1
    functionsReached:
    - unique_ptr::BoundaryEquals
    - fabs
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - S2Point
    - S2Loop::MakeRegularLoop
    - S1Angle::Radians
    - S2ConvexHullQuery::S2ConvexHullQuery
    - unique_ptr::is_full
    - unique_ptr::get
    - S1Angle::radians
    - S2ConvexHullQuery::AddLoop
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void TestNorthPoleLoop(S1Angle radius, int num_vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:186,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:186,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:187,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:187,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:190,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:190,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:191,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:191,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:193,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:193,1
    - Dst: TestNorthPoleLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:194,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 195
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - TestNorthPoleLoop
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, LoopsAroundNorthPole)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:198,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:199,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:209,1
    - Dst: S2ConvexHullQuery::S2ConvexHullQuery
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:210,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:211,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:213,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:213,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:215,1
    - Dst: unique_ptr::GetCapBound
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:230,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:235,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:236,1
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:237,1
    - Dst: S2ConvexHullQuery::GetConvexHull
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:241,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:242,1
    - Dst: unique_ptr::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:242,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2convex_hull_query_test.cc:242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 244
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::BoundaryEquals
    - s2random::Cap
    - S2ConvexHullQuery::GetConvexHull
    - EXPECT_TRUE
    - unique_ptr::GetCapBound
    - S2ConvexHullQuery::S2ConvexHullQuery
    - S2ConvexHullQuery::AddPoint
    - unique_ptr::get
    - s2random::SamplePoint
    - unique_ptr::Contains
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2ConvexHullQuery, PointsInsideHull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string::reserve
      Src: /src/s2geometry/src/s2/s2region_test.cc:183,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2region_test.cc:183,1
    - Dst: string_view::length
      Src: /src/s2geometry/src/s2/s2region_test.cc:184,1
    - Dst: string::push_back
      Src: /src/s2geometry/src/s2/s2region_test.cc:186,1
    - Dst: string::push_back
      Src: /src/s2geometry/src/s2/s2region_test.cc:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: HexEncodeStr
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - string::reserve
    - string_view::length
    - string::push_back
    - string_view::size
    linkageType: ''
    returnType: string
    signature: string HexEncodeStr(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2region_test.cc:198,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2region_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:201,1
    - Dst: HexEncodeStr
      Src: /src/s2geometry/src/s2/s2region_test.cc:202,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/s2region_test.cc:202,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2region_test.cc:202,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2region_test.cc:202,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2region_test.cc:204,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2region_test.cc:204,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:205,1
    - Dst: Region*::Decode
      Src: /src/s2geometry/src/s2/s2region_test.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - golden
    - ' src'
    - dst
    argTypes:
    - string_view
    - Region
    - Region*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: S2RegionEncodeDecodeTest::TestEncodeDecode
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - string_view
    - Encoder::length
    - HexEncodeStr
    - Encoder::base
    - Encode
    - ASSERT_TRUE
    - Region*::Decode
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TestEncodeDecode(string_view golden, const Region& src, Region*
      dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2region_test.cc:210,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2region_test.cc:211,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2region_test.cc:212,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2region_test.cc:213,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2region_test.cc:213,1
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2region_test.cc:215,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2region_test.cc:215,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:217,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:218,1
    - Dst: S2Cap::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:218,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:219,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:220,1
    - Dst: S2Cap::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:220,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:221,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:222,1
    - Dst: S2Cap::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:222,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:223,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:224,1
    - Dst: S2Cap::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - EXPECT_TRUE
    - S2Point
    - S2Cap::ApproxEquals
    - S2Cap::FromPoint
    - S2Cap::FromCenterHeight
    - S2Cap::S2Cap
    - TestEncodeDecode
    - S2Cap::Full
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::S2Cell
      Src: /src/s2geometry/src/s2/s2region_test.cc:228,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2region_test.cc:229,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:230,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_test.cc:232,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2region_test.cc:233,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:236,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:238,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:240,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:241,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 243
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2Cell::S2Cell
    - S2Cell::FromFacePosLevel
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - TestEncodeDecode
    - S2Cell::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_test.cc:246,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_test.cc:247,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2region_test.cc:248,1
    - Dst: S2CellUnion::FromNormalized
      Src: /src/s2geometry/src/s2/s2region_test.cc:251,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2region_test.cc:251,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2region_test.cc:252,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2region_test.cc:253,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:256,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:257,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:258,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 261
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - S2CellUnion::FromNormalized
    - S2CellUnion::S2CellUnion
    - EXPECT_EQ
    - S2CellId::FromFace
    - TestEncodeDecode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2CellUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2region_test.cc:264,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2region_test.cc:265,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2region_test.cc:266,1
    - Dst: S2LatLngRect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2region_test.cc:267,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:268,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:268,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:270,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:271,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:271,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:272,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:273,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:273,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:274,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:275,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::ApproxEquals
    - S2LatLngRect::S2LatLngRect
    - S2LatLngRect::FromCenterSize
    - S2LatLngRect::Empty
    - S2LatLng::FromDegrees
    - TestEncodeDecode
    - S2LatLngRect::Full
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2LatLngRect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2region_test.cc:282,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:285,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:287,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:288,1
    - Dst: S2Loop::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:288,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:289,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:290,1
    - Dst: S2Loop::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:290,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:291,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:292,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 293
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::Equals
    - unique_ptr::Equals
    - S2Loop::S2Loop
    - EXPECT_TRUE
    - s2textformat::MakeLoopOrDie
    - TestEncodeDecode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2region_test.cc:299,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:301,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 303
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - TestEncodeDecode
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2PointRegion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2region_test.cc:309,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:310,1
    - Dst: s2textformat::MakeVerbatimPolygonOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:312,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:313,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:315,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:317,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:318,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:318,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:319,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:320,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:320,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:321,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:322,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:322,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:323,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:324,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 325
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Equals
    - EXPECT_TRUE
    - TestEncodeDecode
    - S2Polygon::S2Polygon
    - s2textformat::MakeVerbatimPolygonOrDie
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2region_test.cc:328,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:331,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:332,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:333,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:336,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:338,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:339,1
    - Dst: S2Polyline::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:339,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:340,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:341,1
    - Dst: S2Polyline::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:341,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:342,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:343,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 344
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Equals
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2LatLng::FromDegrees
    - TestEncodeDecode
    - s2textformat::MakePolylineOrDie
    - S2Polyline::Equals
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string::reserve
      Src: /src/s2geometry/src/s2/s2region_test.cc:183,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2region_test.cc:183,1
    - Dst: string_view::length
      Src: /src/s2geometry/src/s2/s2region_test.cc:184,1
    - Dst: string::push_back
      Src: /src/s2geometry/src/s2/s2region_test.cc:186,1
    - Dst: string::push_back
      Src: /src/s2geometry/src/s2/s2region_test.cc:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: HexEncodeStr
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 1
    functionsReached:
    - string::reserve
    - string_view::length
    - string::push_back
    - string_view::size
    linkageType: ''
    returnType: string
    signature: string HexEncodeStr(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2region_test.cc:198,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2region_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:201,1
    - Dst: HexEncodeStr
      Src: /src/s2geometry/src/s2/s2region_test.cc:202,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/s2region_test.cc:202,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2region_test.cc:202,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2region_test.cc:202,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2region_test.cc:204,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2region_test.cc:204,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:205,1
    - Dst: Region*::Decode
      Src: /src/s2geometry/src/s2/s2region_test.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - golden
    - ' src'
    - dst
    argTypes:
    - string_view
    - Region
    - Region*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: S2RegionEncodeDecodeTest::TestEncodeDecode
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - string_view
    - Encoder::length
    - HexEncodeStr
    - Encoder::base
    - Encode
    - ASSERT_TRUE
    - Region*::Decode
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TestEncodeDecode(string_view golden, const Region& src, Region*
      dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2region_test.cc:210,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2region_test.cc:211,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2region_test.cc:212,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2region_test.cc:213,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2region_test.cc:213,1
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2region_test.cc:215,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2region_test.cc:215,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:217,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:218,1
    - Dst: S2Cap::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:218,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:219,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:220,1
    - Dst: S2Cap::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:220,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:221,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:222,1
    - Dst: S2Cap::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:222,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:223,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:224,1
    - Dst: S2Cap::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - EXPECT_TRUE
    - S2Point
    - S2Cap::ApproxEquals
    - S2Cap::FromPoint
    - S2Cap::FromCenterHeight
    - S2Cap::S2Cap
    - TestEncodeDecode
    - S2Cap::Full
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::S2Cell
      Src: /src/s2geometry/src/s2/s2region_test.cc:228,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2region_test.cc:229,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:230,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_test.cc:232,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2region_test.cc:233,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:236,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:238,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:240,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:241,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 243
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2Cell::S2Cell
    - S2Cell::FromFacePosLevel
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - TestEncodeDecode
    - S2Cell::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_test.cc:246,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_test.cc:247,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2region_test.cc:248,1
    - Dst: S2CellUnion::FromNormalized
      Src: /src/s2geometry/src/s2/s2region_test.cc:251,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2region_test.cc:251,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2region_test.cc:252,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2region_test.cc:253,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:256,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:257,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:258,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_test.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 261
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - S2CellUnion::FromNormalized
    - S2CellUnion::S2CellUnion
    - EXPECT_EQ
    - S2CellId::FromFace
    - TestEncodeDecode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2CellUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2region_test.cc:264,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2region_test.cc:265,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2region_test.cc:266,1
    - Dst: S2LatLngRect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2region_test.cc:267,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:268,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:268,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:270,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:271,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:271,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:272,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:273,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:273,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:274,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:275,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2region_test.cc:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::ApproxEquals
    - S2LatLngRect::S2LatLngRect
    - S2LatLngRect::FromCenterSize
    - S2LatLngRect::Empty
    - S2LatLng::FromDegrees
    - TestEncodeDecode
    - S2LatLngRect::Full
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2LatLngRect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2region_test.cc:282,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:285,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:287,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:288,1
    - Dst: S2Loop::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:288,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:289,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:290,1
    - Dst: S2Loop::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:290,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:291,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:292,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 293
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::Equals
    - unique_ptr::Equals
    - S2Loop::S2Loop
    - EXPECT_TRUE
    - s2textformat::MakeLoopOrDie
    - TestEncodeDecode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2region_test.cc:299,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:301,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 303
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - TestEncodeDecode
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2PointRegion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2region_test.cc:309,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:310,1
    - Dst: s2textformat::MakeVerbatimPolygonOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:312,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:313,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:315,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:317,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:318,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:318,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:319,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:320,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:320,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:321,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:322,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:322,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:323,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:324,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 325
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Equals
    - EXPECT_TRUE
    - TestEncodeDecode
    - S2Polygon::S2Polygon
    - s2textformat::MakeVerbatimPolygonOrDie
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2region_test.cc:328,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:331,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:332,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_test.cc:333,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2region_test.cc:336,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:338,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:339,1
    - Dst: S2Polyline::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:339,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:340,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:341,1
    - Dst: S2Polyline::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:341,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/s2region_test.cc:342,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_test.cc:343,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2region_test.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 344
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Equals
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2LatLng::FromDegrees
    - TestEncodeDecode
    - s2textformat::MakePolylineOrDie
    - S2Polyline::Equals
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionEncodeDecodeTest, S2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: S2::internal::S2Point_PointerRep::S2Point_PointerRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_PointerRep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: S2::internal::S2Point_PointerRep::S2Point_PointerRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_PointerRep(const S2Point* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(const S2Point* p)'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point_PointerRep
    signature: S2Point_PointerRep & operator=(const S2Point* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator const S2Point*() const
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const S2Point*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: '* operator->() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: S2::internal::S2Point_ValueRep::S2Point_ValueRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_ValueRep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: S2::internal::S2Point_ValueRep::S2Point_ValueRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_ValueRep(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& operator=(const S2Point& p)'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point_ValueRep
    signature: S2Point_ValueRep & operator=(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: operator const S2Point&() const
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const S2Point&() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '* operator->() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: S2::internal::S2Point_PointerRep::S2Point_PointerRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_PointerRep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: S2::internal::S2Point_PointerRep::S2Point_PointerRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_PointerRep(const S2Point* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(const S2Point* p)'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point_PointerRep
    signature: S2Point_PointerRep & operator=(const S2Point* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator const S2Point*() const
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const S2Point*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: '* operator->() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: S2::internal::S2Point_ValueRep::S2Point_ValueRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_ValueRep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: S2::internal::S2Point_ValueRep::S2Point_ValueRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_ValueRep(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& operator=(const S2Point& p)'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point_ValueRep
    signature: S2Point_ValueRep & operator=(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: operator const S2Point&() const
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const S2Point&() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '* operator->() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: S2::internal::S2Point_PointerRep::S2Point_PointerRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_PointerRep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: S2::internal::S2Point_PointerRep::S2Point_PointerRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_PointerRep(const S2Point* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(const S2Point* p)'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point_PointerRep
    signature: S2Point_PointerRep & operator=(const S2Point* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator const S2Point*() const
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const S2Point*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: '* operator->() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: S2::internal::S2Point_ValueRep::S2Point_ValueRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_ValueRep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: S2::internal::S2Point_ValueRep::S2Point_ValueRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_ValueRep(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& operator=(const S2Point& p)'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point_ValueRep
    signature: S2Point_ValueRep & operator=(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: operator const S2Point&() const
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const S2Point&() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '* operator->() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: S2::internal::S2Point_PointerRep::S2Point_PointerRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_PointerRep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: S2::internal::S2Point_PointerRep::S2Point_PointerRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_PointerRep(const S2Point* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(const S2Point* p)'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point_PointerRep
    signature: S2Point_PointerRep & operator=(const S2Point* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator const S2Point*() const
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const S2Point*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: '* operator->() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: S2::internal::S2Point_ValueRep::S2Point_ValueRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_ValueRep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: S2::internal::S2Point_ValueRep::S2Point_ValueRep
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Point_ValueRep(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& operator=(const S2Point& p)'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point_ValueRep
    signature: S2Point_ValueRep & operator=(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: operator const S2Point&() const
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const S2Point&() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '* operator->() const'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - index
    - radius
    argTypes:
    - S2ShapeIndex*
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexBufferedRegion(const S2ShapeIndex* index, S1Angle
      radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexBufferedRegion(const S2ShapeIndexBufferedRegion&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: '& operator=(const S2ShapeIndexBufferedRegion&)'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndexBufferedRegion
    signature: S2ShapeIndexBufferedRegion & operator=(const S2ShapeIndexBufferedRegion&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexBufferedRegion(S2ShapeIndexBufferedRegion&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& operator=(S2ShapeIndexBufferedRegion&&)'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndexBufferedRegion
    signature: S2ShapeIndexBufferedRegion & operator=(S2ShapeIndexBufferedRegion&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.h:136,1
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - radius
    argTypes:
    - S2ShapeIndex*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.h
    functionUses: 0
    functionsReached:
    - mutable_options
    - S1ChordAngle::Successor
    linkageType: ''
    returnType: void
    signature: "void S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion(\n    const
      S2ShapeIndex* index, S1ChordAngle radius)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: '& S2ShapeIndexBufferedRegion::index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.h
    functionUses: 0
    functionsReached:
    - index
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex & S2ShapeIndexBufferedRegion::index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: S2ShapeIndexBufferedRegion::radius
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2ShapeIndexBufferedRegion::radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:41,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:42,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: S2::GetDistanceFraction
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - S2::Angle
    linkageType: ''
    returnType: double
    signature: "double GetDistanceFraction(const S2Point& x,\n                           const
      S2Point& a, const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:51,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: S2::GetPointOnLine
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 8
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetPointOnLine(const S2Point& a, const S2Point& b,\n                      S1ChordAngle
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:57,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: S2::GetPointOnLine
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 8
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointOnLine(const S2Point& a, const S2Point& b, S1Angle
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:62,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: S2::GetPointToLeft
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointToLeft(const S2Point& a, const S2Point& b, S1Angle
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:66,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: S2::GetPointToLeft
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointToLeft(const S2Point& a, const S2Point& b, S1ChordAngle
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:70,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: S2::GetPointToRight
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointToRight(const S2Point& a, const S2Point& b, S1Angle
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:74,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: S2::GetPointToRight
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointToRight(const S2Point& a, const S2Point& b, S1ChordAngle
      r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:80,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - t
    argTypes:
    - S2Point
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: S2::Interpolate
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 7
    functionsReached:
    - S1Angle
    - S2::GetPointOnLine
    linkageType: ''
    returnType: S2Point
    signature: S2Point Interpolate(const S2Point& a, const S2Point& b, double t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:97,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:97,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:97,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:98,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:99,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:99,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:100,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:100,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:140,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:143,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:160,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:161,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:162,1
    - Dst: S1ChordAngle*::length2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:164,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:177,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:178,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:178,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:186,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:186,1
    - Dst: S1ChordAngle*::length2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:188,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:191,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 6
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - xa2
    - xb2
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - double
    - double
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 194
    functionName: S2::AlwaysUpdateMinInteriorDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - Norm2
    - ABSL_DCHECK_EQ
    - S1ChordAngle::FromLength2
    - sqrt
    - S2::IsUnitLength
    - std::fabs
    - S2Point::CrossProd
    - S2::RobustCrossProd
    - S2Point::Norm2
    - S1ChordAngle*::length2
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool AlwaysUpdateMinInteriorDistance(\n    const S2Point& x, const
      S2Point& a, const S2Point& b,\n    double xa2, double xb2, S1ChordAngle* min_dist)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:208,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:208,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:208,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:209,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:211,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:211,1
    - Dst: S2::AlwaysUpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:212,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:217,1
    - Dst: S1ChordAngle*::length2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:218,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: S2::AlwaysUpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - Norm2
    - S1ChordAngle::FromLength2
    - min
    - S2::IsUnitLength
    - S2::AlwaysUpdateMinInteriorDistance
    - S1ChordAngle*::length2
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool AlwaysUpdateMinDistance(const S2Point& x,\n                                    const
      S2Point& a, const S2Point& b,\n                                    S1ChordAngle*
      min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:226,1
    - Dst: S2::AlwaysUpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:227,1
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: S2::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 2
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    - S2::AlwaysUpdateMinDistance
    - S1ChordAngle::ToAngle
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetDistance(const S2Point& x, const S2Point& a, const S2Point&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::AlwaysUpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: S2::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 2
    functionsReached:
    - S2::AlwaysUpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool UpdateMinDistance(const S2Point& x, const S2Point& a, const S2Point&
      b,\n                       S1ChordAngle* min_dist)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:238,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:238,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:238,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:239,1
    - Dst: S2::AlwaysUpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:240,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - max_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: S2::UpdateMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::AlwaysUpdateMinDistance
    - S1ChordAngle::Straight
    - max
    - S1ChordAngle
    - S1ChordAngle::Right
    linkageType: ''
    returnType: bool
    signature: "bool UpdateMaxDistance(const S2Point& x, const S2Point& a, const S2Point&
      b,\n                       S1ChordAngle* max_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:255,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:255,1
    - Dst: S2::AlwaysUpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: S2::UpdateMinInteriorDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 2
    functionsReached:
    - S2::AlwaysUpdateMinInteriorDistance
    - Norm2
    linkageType: ''
    returnType: bool
    signature: "bool UpdateMinInteriorDistance(const S2Point& x,\n                               const
      S2Point& a, const S2Point& b,\n                               S1ChordAngle*
      min_dist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:266,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:272,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:272,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:273,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:274,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:275,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dist
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 277
    functionName: S2::GetUpdateMinInteriorDistanceMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    - min
    - S1ChordAngle::Right
    - sqrt
    linkageType: ''
    returnType: double
    signature: double GetUpdateMinInteriorDistanceMaxError(S1ChordAngle dist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:282,1
    - Dst: S2::GetUpdateMinInteriorDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:282,1
    - Dst: S1ChordAngle::GetS2PointConstructorMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dist
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: S2::GetUpdateMinDistanceMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 1
    functionsReached:
    - max
    - S2::GetUpdateMinInteriorDistanceMaxError
    - S1ChordAngle::GetS2PointConstructorMaxError
    linkageType: ''
    returnType: double
    signature: double GetUpdateMinDistanceMaxError(S1ChordAngle dist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:288,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:288,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:289,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:289,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:290,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:290,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:310,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:311,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:314,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:315,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:315,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:320,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - ' a_cross_b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 321
    functionName: S2::Project
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 2
    functionsReached:
    - Norm2
    - s2pred::Sign
    - S2::IsUnitLength
    - Normalize
    - S2Point::CrossProd
    - S2::RobustCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point Project(const S2Point& x, const S2Point& a, const S2Point&
      b,\n                const Vector3_d& a_cross_b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:324,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: S2::Project
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 3
    functionsReached:
    - S2::Project
    - S2::RobustCrossProd
    linkageType: ''
    returnType: S2Point
    signature: S2Point Project(const S2Point& x, const S2Point& a, const S2Point&
      b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:331,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:334,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:335,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:347,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:348,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:349,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 327
    functionDepth: 5
    functionLinenumber: 327
    functionLinenumberEnd: 351
    functionName: S2::UpdateEdgePairMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::UpdateMinDistance
    - S2::CrossingSign
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: bool
    signature: "bool UpdateEdgePairMinDistance(\n    const S2Point& a0, const S2Point&
      a1,\n    const S2Point& b0, const S2Point& b1,\n    S1ChordAngle* min_dist)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:357,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:360,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:361,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:373,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:374,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:375,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - max_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 377
    functionName: S2::UpdateEdgePairMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::CrossingSign
    - S1ChordAngle::Straight
    - S2::UpdateMaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool UpdateEdgePairMaxDistance(\n    const S2Point& a0, const S2Point&
      a1,\n    const S2Point& b0, const S2Point& b1,\n    S1ChordAngle* max_dist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:383,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:384,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:389,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:390,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:391,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - distance
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 394
    functionName: S2::IsEdgePairDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::IsDistanceLess
    - S2::CrossingSign
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: bool
    signature: "bool IsEdgePairDistanceLess(const S2Point& a0, const S2Point& a1,\n
      \                           const S2Point& b0, const S2Point& b1,\n                            S1ChordAngle
      distance)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:399,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:400,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:401,1
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:405,1
    - Dst: S2::AlwaysUpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:406,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:408,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:409,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:410,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:412,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:412,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:413,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:413,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:414,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:414,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:415,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:415,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 396
    functionDepth: 5
    functionLinenumber: 396
    functionLinenumberEnd: 418
    functionName: S2::GetEdgePairClosestPoints
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::AlwaysUpdateMinDistance
    - ABSL_UNREACHABLE
    - S2::CrossingSign
    - S2::UpdateMinDistance
    - std::make_pair
    - S2::Project
    - S1ChordAngle::S1ChordAngle
    - S2::GetIntersection
    linkageType: ''
    returnType: std::pair<S2Point, S2Point>
    signature: "std::pair<S2Point, S2Point> GetEdgePairClosestPoints(\n      const
      S2Point& a0, const S2Point& a1,\n      const S2Point& b0, const S2Point& b1)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:424,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:424,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:425,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:425,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:433,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:434,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:435,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:442,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:457,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:478,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:479,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:479,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:480,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:480,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:493,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:493,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:500,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:501,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:502,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:503,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - tolerance
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 504
    functionName: S2::IsEdgeBNearEdgeA
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 1
    functionsReached:
    - s2pred::Sign
    - S1Angle::Radians
    - S1Angle
    - S1Angle::radians
    - S2::RobustCrossProd
    - ABSL_DCHECK_LT
    - S2::Project
    - ABSL_DCHECK_GT
    - Vector3_d::CrossProd
    linkageType: ''
    returnType: bool
    signature: "bool IsEdgeBNearEdgeA(const S2Point& a0, const S2Point& a1,\n                      const
      S2Point& b0, const S2Point& b1,\n                      S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:41,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:42,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: S2::GetDistanceFraction
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - S2::Angle
    linkageType: ''
    returnType: double
    signature: "double GetDistanceFraction(const S2Point& x,\n                           const
      S2Point& a, const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:51,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: S2::GetPointOnLine
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 9
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetPointOnLine(const S2Point& a, const S2Point& b,\n                      S1ChordAngle
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:57,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: S2::GetPointOnLine
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 9
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointOnLine(const S2Point& a, const S2Point& b, S1Angle
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:62,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: S2::GetPointToLeft
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointToLeft(const S2Point& a, const S2Point& b, S1Angle
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:66,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: S2::GetPointToLeft
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointToLeft(const S2Point& a, const S2Point& b, S1ChordAngle
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:70,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: S2::GetPointToRight
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointToRight(const S2Point& a, const S2Point& b, S1Angle
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:74,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: S2::GetPointToRight
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2::GetPointOnRay
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetPointToRight(const S2Point& a, const S2Point& b, S1ChordAngle
      r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:80,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - t
    argTypes:
    - S2Point
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: S2::Interpolate
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 7
    functionsReached:
    - S1Angle
    - S2::GetPointOnLine
    linkageType: ''
    returnType: S2Point
    signature: S2Point Interpolate(const S2Point& a, const S2Point& b, double t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:97,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:97,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:97,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:98,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:99,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:99,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:100,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:100,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:140,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:143,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:160,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:161,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:162,1
    - Dst: S1ChordAngle*::length2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:164,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:177,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:178,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:178,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:186,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:186,1
    - Dst: S1ChordAngle*::length2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:188,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:191,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 6
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - xa2
    - xb2
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - double
    - double
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 194
    functionName: S2::AlwaysUpdateMinInteriorDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 2
    functionsReached:
    - DotProd
    - Norm2
    - ABSL_DCHECK_EQ
    - S1ChordAngle::FromLength2
    - sqrt
    - S2::IsUnitLength
    - std::fabs
    - S2Point::CrossProd
    - S2::RobustCrossProd
    - S2Point::Norm2
    - S1ChordAngle*::length2
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool AlwaysUpdateMinInteriorDistance(\n    const S2Point& x, const
      S2Point& a, const S2Point& b,\n    double xa2, double xb2, S1ChordAngle* min_dist)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:208,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:208,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:208,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:209,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:211,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:211,1
    - Dst: S2::AlwaysUpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:212,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:217,1
    - Dst: S1ChordAngle*::length2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:218,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: S2::AlwaysUpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 4
    functionsReached:
    - Norm2
    - S1ChordAngle::FromLength2
    - min
    - S2::IsUnitLength
    - S2::AlwaysUpdateMinInteriorDistance
    - S1ChordAngle*::length2
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool AlwaysUpdateMinDistance(const S2Point& x,\n                                    const
      S2Point& a, const S2Point& b,\n                                    S1ChordAngle*
      min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:226,1
    - Dst: S2::AlwaysUpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:227,1
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: S2::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 2
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    - S2::AlwaysUpdateMinDistance
    - S1ChordAngle::ToAngle
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetDistance(const S2Point& x, const S2Point& a, const S2Point&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::AlwaysUpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: S2::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 4
    functionsReached:
    - S2::AlwaysUpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool UpdateMinDistance(const S2Point& x, const S2Point& a, const S2Point&
      b,\n                       S1ChordAngle* min_dist)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:238,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:238,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:238,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:239,1
    - Dst: S2::AlwaysUpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:240,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - max_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: S2::UpdateMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 1
    functionsReached:
    - S2::AlwaysUpdateMinDistance
    - S1ChordAngle::Straight
    - max
    - S1ChordAngle
    - S1ChordAngle::Right
    linkageType: ''
    returnType: bool
    signature: "bool UpdateMaxDistance(const S2Point& x, const S2Point& a, const S2Point&
      b,\n                       S1ChordAngle* max_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:255,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:255,1
    - Dst: S2::AlwaysUpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: S2::UpdateMinInteriorDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 2
    functionsReached:
    - S2::AlwaysUpdateMinInteriorDistance
    - Norm2
    linkageType: ''
    returnType: bool
    signature: "bool UpdateMinInteriorDistance(const S2Point& x,\n                               const
      S2Point& a, const S2Point& b,\n                               S1ChordAngle*
      min_dist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:266,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:272,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:272,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:273,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:274,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:275,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dist
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 277
    functionName: S2::GetUpdateMinInteriorDistanceMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 1
    functionsReached:
    - S1ChordAngle::length2
    - min
    - S1ChordAngle::Right
    - sqrt
    linkageType: ''
    returnType: double
    signature: double GetUpdateMinInteriorDistanceMaxError(S1ChordAngle dist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:282,1
    - Dst: S2::GetUpdateMinInteriorDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:282,1
    - Dst: S1ChordAngle::GetS2PointConstructorMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dist
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: S2::GetUpdateMinDistanceMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 1
    functionsReached:
    - max
    - S2::GetUpdateMinInteriorDistanceMaxError
    - S1ChordAngle::GetS2PointConstructorMaxError
    linkageType: ''
    returnType: double
    signature: double GetUpdateMinDistanceMaxError(S1ChordAngle dist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:288,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:288,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:289,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:289,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:290,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:290,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:310,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:311,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:314,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:315,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:315,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:320,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' x'
    - ' a'
    - ' b'
    - ' a_cross_b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 321
    functionName: S2::Project
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 5
    functionsReached:
    - Norm2
    - s2pred::Sign
    - S2::IsUnitLength
    - Normalize
    - S2Point::CrossProd
    - S2::RobustCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point Project(const S2Point& x, const S2Point& a, const S2Point&
      b,\n                const Vector3_d& a_cross_b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:324,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: S2::Project
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 6
    functionsReached:
    - S2::Project
    - S2::RobustCrossProd
    linkageType: ''
    returnType: S2Point
    signature: S2Point Project(const S2Point& x, const S2Point& a, const S2Point&
      b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:331,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:334,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:335,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:347,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:348,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:349,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 327
    functionDepth: 5
    functionLinenumber: 327
    functionLinenumberEnd: 351
    functionName: S2::UpdateEdgePairMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::UpdateMinDistance
    - S2::CrossingSign
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: bool
    signature: "bool UpdateEdgePairMinDistance(\n    const S2Point& a0, const S2Point&
      a1,\n    const S2Point& b0, const S2Point& b1,\n    S1ChordAngle* min_dist)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:357,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:360,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:361,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:373,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:374,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:375,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - max_dist
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 377
    functionName: S2::UpdateEdgePairMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::CrossingSign
    - S1ChordAngle::Straight
    - S2::UpdateMaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool UpdateEdgePairMaxDistance(\n    const S2Point& a0, const S2Point&
      a1,\n    const S2Point& b0, const S2Point& b1,\n    S1ChordAngle* max_dist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:383,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:384,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:389,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:390,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:391,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - distance
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 394
    functionName: S2::IsEdgePairDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::IsDistanceLess
    - S2::CrossingSign
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: bool
    signature: "bool IsEdgePairDistanceLess(const S2Point& a0, const S2Point& a1,\n
      \                           const S2Point& b0, const S2Point& b1,\n                            S1ChordAngle
      distance)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:399,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:400,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:401,1
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:405,1
    - Dst: S2::AlwaysUpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:406,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:408,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:409,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:410,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:412,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:412,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:413,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:413,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:414,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:414,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:415,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:415,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 396
    functionDepth: 5
    functionLinenumber: 396
    functionLinenumberEnd: 418
    functionName: S2::GetEdgePairClosestPoints
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 0
    functionsReached:
    - S2::AlwaysUpdateMinDistance
    - ABSL_UNREACHABLE
    - S2::CrossingSign
    - S2::UpdateMinDistance
    - std::make_pair
    - S2::Project
    - S1ChordAngle::S1ChordAngle
    - S2::GetIntersection
    linkageType: ''
    returnType: std::pair<S2Point, S2Point>
    signature: "std::pair<S2Point, S2Point> GetEdgePairClosestPoints(\n      const
      S2Point& a0, const S2Point& a1,\n      const S2Point& b0, const S2Point& b1)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:424,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:424,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:425,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:425,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:433,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:434,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:435,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:442,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:457,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:478,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:479,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:479,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:480,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:480,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:493,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:493,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:500,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:501,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:502,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_distances.cc:503,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - tolerance
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 504
    functionName: S2::IsEdgeBNearEdgeA
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances.cc
    functionUses: 1
    functionsReached:
    - s2pred::Sign
    - S1Angle::Radians
    - S1Angle
    - S1Angle::radians
    - S2::RobustCrossProd
    - ABSL_DCHECK_LT
    - S2::Project
    - ABSL_DCHECK_GT
    - Vector3_d::CrossProd
    linkageType: ''
    returnType: bool
    signature: "bool IsEdgeBNearEdgeA(const S2Point& a0, const S2Point& a1,\n                      const
      S2Point& b0, const S2Point& b1,\n                      S1Angle tolerance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:94,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:96,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:98,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 7
    argNames:
    - level
    - i
    - j
    - orig_orientation
    - pos
    - orientation
    - ' lookup'
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - LookupTables
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: InitLookupCell
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 1
    functionsReached:
    - InitLookupCell
    linkageType: ''
    returnType: void
    signature: "void InitLookupCell(int level, int i, int j, int orig_orientation,\n
      \                             int pos, int orientation, LookupTables& lookup)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:107,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:108,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:109,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: MakeLookupTables
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - InitLookupCell
    linkageType: ''
    returnType: LookupTables
    signature: LookupTables MakeLookupTables()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:94,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:96,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:98,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 7
    argNames:
    - level
    - i
    - j
    - orig_orientation
    - pos
    - orientation
    - ' lookup'
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - LookupTables
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: InitLookupCell
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 3
    functionsReached:
    - InitLookupCell
    linkageType: ''
    returnType: void
    signature: "void InitLookupCell(int level, int i, int j, int orig_orientation,\n
      \                             int pos, int orientation, LookupTables& lookup)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:107,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:108,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:109,1
    - Dst: InitLookupCell
      Src: /src/s2geometry/src/s2/s2cell_id.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: MakeLookupTables
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - InitLookupCell
    linkageType: ''
    returnType: LookupTables
    signature: LookupTables MakeLookupTables()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.cc:126,1
    - Dst: static_cast<int64_t>
      Src: /src/s2geometry/src/s2/s2cell_id.cc:128,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:129,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.cc:131,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_id.cc:132,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.cc:136,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2cell_id.cc:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - steps
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: S2CellId::advance
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - static_cast<uint64_t>
    - S2CellId::level
    - min
    - S2CellId::lsb
    - S2CellId::S2CellId
    - max
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::advance(int64_t steps) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: S2CellId::distance_from_begin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::level
    linkageType: ''
    returnType: int64_t
    signature: int64_t S2CellId::distance_from_begin() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.cc:145,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.cc:145,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.cc:148,1
    - Dst: static_cast<int64_t>
      Src: /src/s2geometry/src/s2/s2cell_id.cc:150,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.cc:165,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2cell_id.cc:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - steps
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 166
    functionName: S2CellId::advance_wrap
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - static_cast<uint64_t>
    - S2CellId::level
    - S2CellId::S2CellId
    - S2CellId::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::advance_wrap(int64_t steps) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_id.cc:170,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_id.cc:171,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:173,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id.cc:179,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:180,1
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/s2cell_id.cc:185,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id.cc:186,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_id.cc:187,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - limit
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: S2CellId::maximum_tile
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 1
    functionsReached:
    - S2CellId::range_max
    - S2CellId::range_min
    - S2CellId::parent
    - S2CellId::is_face
    - S2CellId::child
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::maximum_tile(const S2CellId limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:197,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.cc:197,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.cc:197,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:197,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.cc:197,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.cc:197,1
    - Dst: ABSL_ASSUME
      Src: /src/s2geometry/src/s2/s2cell_id.cc:198,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:206,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2cell_id.cc:206,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/s2cell_id.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: S2CellId::GetCommonAncestorLevel
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::id
    - S2CellId::lsb
    - ABSL_ASSUME
    - static_cast<int>
    - max
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: int
    signature: int S2CellId::GetCommonAncestorLevel(S2CellId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - val
    - num_digits
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: HexFormatString
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string HexFormatString(uint64_t val, size_t num_digits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/s2cell_id.cc:231,1
    - Dst: HexFormatString
      Src: /src/s2geometry/src/s2/s2cell_id.cc:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: S2CellId::ToToken
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - HexFormatString
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: string
    signature: string S2CellId::ToToken() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::length
      Src: /src/s2geometry/src/s2/s2cell_id.cc:236,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id.cc:236,1
    - Dst: string_view::length
      Src: /src/s2geometry/src/s2/s2cell_id.cc:240,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id.cc:249,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.cc:253,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - token
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 254
    functionName: S2CellId::FromToken
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 12
    functionsReached:
    - S2CellId::S2CellId
    - string_view::length
    - S2CellId::None
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::FromToken(const string_view token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2cell_id.cc:257,1
    - Dst: Encoder*::put64
      Src: /src/s2geometry/src/s2/s2cell_id.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: S2CellId::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - Encoder*::Ensure
    - Encoder*::put64
    linkageType: ''
    returnType: void
    signature: void S2CellId::Encode(Encoder* const encoder) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2cell_id.cc:262,1
    - Dst: Decoder*::get64
      Src: /src/s2geometry/src/s2/s2cell_id.cc:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: S2CellId::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - Decoder*::avail
    - Decoder*::get64
    linkageType: ''
    returnType: bool
    signature: bool S2CellId::Decode(Decoder* const decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::implicit_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2cell_id.cc:274,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:296,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:297,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:298,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:299,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:300,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:301,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:302,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:303,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.cc:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - face
    - i
    - j
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 307
    functionName: S2CellId::FromFaceIJ
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 1
    functionsReached:
    - S2CellId::S2CellId
    - absl::implicit_cast<uint64_t>
    - GET_BITS
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::FromFaceIJ(int face, int i, int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: GET_BITS
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BITS(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2cell_id.cc:311,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:312,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2cell_id.cc:312,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:313,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2cell_id.cc:313,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: S2CellId::S2CellId
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 7
    functionsReached:
    - S2::STtoIJ
    - S2CellId::FromFaceIJ
    - S2::UVtoST
    - S2::XYZtoFaceUV
    linkageType: ''
    returnType: void
    signature: void S2CellId::S2CellId(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2cell_id.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: S2CellId::S2CellId
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 7
    functionsReached:
    - S2CellId::ToPoint
    linkageType: ''
    returnType: void
    signature: void S2CellId::S2CellId(const S2LatLng& ll)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::face
      Src: /src/s2geometry/src/s2/s2cell_id.cc:321,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:344,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:345,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:346,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:347,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:348,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:349,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:350,1
    - Dst: GET_BITS
      Src: /src/s2geometry/src/s2/s2cell_id.cc:351,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:365,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:366,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.cc:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - pi
    - pj
    - orientation
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 373
    functionName: S2CellId::ToFaceIJOrientation
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::lsb
    - ABSL_DCHECK_EQ
    - GET_BITS
    - S2CellId::face
    linkageType: ''
    returnType: int
    signature: int S2CellId::ToFaceIJOrientation(int* pi, int* pj, int* orientation)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: GET_BITS
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BITS(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetCenterSiTi
      Src: /src/s2geometry/src/s2/s2cell_id.cc:377,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: S2CellId::ToPointRaw
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::GetCenterSiTi
    - S2::FaceSiTitoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2CellId::ToPointRaw() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2cell_id.cc:381,1
    - Dst: S2CellId::ToPointRaw
      Src: /src/s2geometry/src/s2/s2cell_id.cc:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: S2CellId::ToLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2LatLng
    - S2CellId::ToPointRaw
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2CellId::ToLatLng() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetCenterSiTi
      Src: /src/s2geometry/src/s2/s2cell_id.cc:385,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_id.cc:386,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2cell_id.cc:386,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2cell_id.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 387
    functionName: S2CellId::GetCenterST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::GetCenterSiTi
    - R2Point
    - S2::SiTitoST
    linkageType: ''
    returnType: R2Point
    signature: R2Point S2CellId::GetCenterST() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetCenterSiTi
      Src: /src/s2geometry/src/s2/s2cell_id.cc:391,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_id.cc:392,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2cell_id.cc:392,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2cell_id.cc:392,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2cell_id.cc:392,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2cell_id.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: S2CellId::GetCenterUV
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2::STtoUV
    - S2CellId::GetCenterSiTi
    - R2Point
    - S2::SiTitoST
    linkageType: ''
    returnType: R2Point
    signature: R2Point S2CellId::GetCenterUV() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/s2cell_id.cc:396,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:397,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2cell_id.cc:401,1
    - Dst: S2::IJtoSTMin
      Src: /src/s2geometry/src/s2/s2cell_id.cc:401,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2cell_id.cc:402,1
    - Dst: S2::IJtoSTMin
      Src: /src/s2geometry/src/s2/s2cell_id.cc:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ij
    - level
    argTypes:
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 405
    functionName: S2CellId::IJLevelToBoundUV
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2::IJtoSTMin
    - S2::STtoUV
    - R2Rect::R2Rect
    - S2CellId::GetSizeIJ
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect S2CellId::IJLevelToBoundUV(int ij[2], int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetSizeST
      Src: /src/s2geometry/src/s2/s2cell_id.cc:408,1
    - Dst: R2Rect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2cell_id.cc:409,1
    - Dst: S2CellId::GetCenterST
      Src: /src/s2geometry/src/s2/s2cell_id.cc:409,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_id.cc:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: S2CellId::GetBoundST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::GetCenterST
    - R2Rect::FromCenterSize
    - S2CellId::GetSizeST
    - R2Point
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect S2CellId::GetBoundST() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2cell_id.cc:414,1
    - Dst: S2CellId::IJLevelToBoundUV
      Src: /src/s2geometry/src/s2/s2cell_id.cc:415,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.cc:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 416
    functionName: S2CellId::GetBoundUV
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::IJLevelToBoundUV
    - S2CellId::level
    - S2CellId::ToFaceIJOrientation
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect S2CellId::GetBoundUV() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2cell_id.cc:428,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2cell_id.cc:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - u
    - max_v
    - sin_dist
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 432
    functionName: ExpandEndpoint
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double ExpandEndpoint(double u, double max_v, double sin_dist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:440,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_id.cc:440,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_id.cc:440,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:441,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_id.cc:441,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_id.cc:441,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2cell_id.cc:442,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell_id.cc:444,1
    - Dst: ExpandEndpoint
      Src: /src/s2geometry/src/s2/s2cell_id.cc:444,1
    - Dst: ExpandEndpoint
      Src: /src/s2geometry/src/s2/s2cell_id.cc:445,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell_id.cc:446,1
    - Dst: ExpandEndpoint
      Src: /src/s2geometry/src/s2/s2cell_id.cc:446,1
    - Dst: ExpandEndpoint
      Src: /src/s2geometry/src/s2/s2cell_id.cc:447,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2cell_id.cc:452,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2cell_id.cc:452,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/s2cell_id.cc:453,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell_id.cc:453,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell_id.cc:453,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/s2cell_id.cc:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' uv'
    - distance
    argTypes:
    - R2Rect
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 456
    functionName: S2CellId::ExpandedByDistanceUV
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - fabs
    - R2Rect
    - R1Interval
    - sin
    - ExpandEndpoint
    - max
    - R1Interval::is_empty
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect S2CellId::ExpandedByDistanceUV(const R2Rect& uv, S1Angle distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:462,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_id.cc:462,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:463,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_id.cc:463,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:481,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:482,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_id.cc:482,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_id.cc:483,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_id.cc:483,1
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2cell_id.cc:487,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:487,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:488,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:488,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - face
    - i
    - j
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 489
    functionName: S2CellId::FromFaceIJWrap
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    - min
    - S2::XYZtoFaceUV
    - S2::STtoIJ
    - max
    - S2::FaceUVtoXYZ
    - S2CellId::FromFaceIJ
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::FromFaceIJWrap(int face, int i, int j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:494,1
    - Dst: S2CellId::FromFaceIJWrap
      Src: /src/s2geometry/src/s2/s2cell_id.cc:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - face
    - i
    - j
    - same_face
    argTypes:
    - int
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 4
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: S2CellId::FromFaceIJSame
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromFaceIJWrap
    - S2CellId::FromFaceIJ
    linkageType: ''
    returnType: S2CellId
    signature: "S2CellId S2CellId::FromFaceIJSame(int face, int i, int j,\n                                         bool
      same_face)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.cc:501,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:502,1
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2cell_id.cc:503,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:506,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:508,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:510,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - neighbors
    argTypes:
    - S2CellId[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 499
    functionDepth: 5
    functionLinenumber: 499
    functionLinenumberEnd: 512
    functionName: S2CellId::GetEdgeNeighbors
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 2
    functionsReached:
    - S2CellId::FromFaceIJSame
    - S2CellId::ToFaceIJOrientation
    - S2CellId::level
    - S2CellId::GetSizeIJ
    linkageType: ''
    returnType: void
    signature: void S2CellId::GetEdgeNeighbors(S2CellId neighbors[4]) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2cell_id.cc:518,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.cc:518,1
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2cell_id.cc:520,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:525,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_id.cc:544,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id.cc:544,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_id.cc:545,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:545,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_id.cc:546,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:546,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_id.cc:550,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - level
    - output
    argTypes:
    - int
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 514
    functionDepth: 5
    functionLinenumber: 514
    functionLinenumberEnd: 554
    functionName: S2CellId::AppendVertexNeighbors
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - vector<S2CellId>*::push_back
    - S2CellId::FromFaceIJSame
    - S2CellId::level
    - S2CellId::GetSizeIJ
    - S2CellId::parent
    - S2CellId::ToFaceIJOrientation
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: "void S2CellId::AppendVertexNeighbors(int level,\n                                     vector<S2CellId>*
      output) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_id.cc:558,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.cc:558,1
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2cell_id.cc:560,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:565,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_id.cc:569,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2cell_id.cc:570,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_id.cc:583,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:583,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_id.cc:585,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:586,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_id.cc:590,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:591,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_id.cc:593,1
    - Dst: S2CellId::FromFaceIJSame
      Src: /src/s2geometry/src/s2/s2cell_id.cc:594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - nbr_level
    - output
    argTypes:
    - int
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 556
    functionDepth: 5
    functionLinenumber: 556
    functionLinenumberEnd: 598
    functionName: S2CellId::AppendAllNeighbors
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 2
    functionsReached:
    - vector<S2CellId>*::push_back
    - ABSL_DCHECK_LE
    - S2CellId::FromFaceIJSame
    - S2CellId::level
    - S2CellId::GetSizeIJ
    - S2CellId::ToFaceIJOrientation
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: "void S2CellId::AppendAllNeighbors(int nbr_level,\n                                  vector<S2CellId>*
      output) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.cc:601,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_id.cc:602,1
    - Dst: absl::Hex
      Src: /src/s2geometry/src/s2/s2cell_id.cc:602,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.cc:602,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_id.cc:604,1
    - Dst: S2CellId::face
      Src: /src/s2geometry/src/s2/s2cell_id.cc:604,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.cc:605,1
    - Dst: S2CellId::child_position
      Src: /src/s2geometry/src/s2/s2cell_id.cc:608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 611
    functionName: S2CellId::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 2
    functionsReached:
    - StrCat
    - S2CellId::child_position
    - S2CellId::id
    - S2CellId::level
    - absl::Hex
    - S2CellId::face
    - S2CellId::is_valid
    linkageType: ''
    returnType: string
    signature: string S2CellId::ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToString
      Src: /src/s2geometry/src/s2/s2cell_id.cc:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - id
    argTypes:
    - std::ostream
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 615
    functionName: '& operator<<(std::ostream& os, S2CellId id)'
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, S2CellId id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2cell_id.cc:620,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2cell_id.cc:620,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id.cc:621,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id.cc:623,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id.cc:624,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2cell_id.cc:627,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id.cc:629,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id.cc:630,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 633
    functionName: S2CellId::FromDebugString
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 9
    functionsReached:
    - S2CellId::None
    - static_cast<int>
    - S2CellId::FromFace
    - string_view::size
    - S2CellId::child
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::FromDebugString(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToToken
      Src: /src/s2geometry/src/s2/s2cell_id.cc:636,1
    - Dst: Ensure
      Src: /src/s2geometry/src/s2/s2cell_id.cc:639,1
    - Dst: string::length
      Src: /src/s2geometry/src/s2/s2cell_id.cc:639,1
    - Dst: puts
      Src: /src/s2geometry/src/s2/s2cell_id.cc:640,1
    - Dst: string::c_str
      Src: /src/s2geometry/src/s2/s2cell_id.cc:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 641
    functionName: S2CellId::Coder::Encode(Encoder& encoder, const S2CellId& v) const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - ToToken
    - string::c_str
    - Ensure
    - string::length
    - puts
    linkageType: ''
    returnType: void
    signature: void S2CellId::Coder::Encode(Encoder& encoder, const S2CellId& v) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pos
      Src: /src/s2geometry/src/s2/s2cell_id.cc:649,1
    - Dst: getcn
      Src: /src/s2geometry/src/s2/s2cell_id.cc:650,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_id.cc:650,1
    - Dst: avail
      Src: /src/s2geometry/src/s2/s2cell_id.cc:650,1
    - Dst: pos
      Src: /src/s2geometry/src/s2/s2cell_id.cc:651,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2cell_id.cc:655,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id.cc:660,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id.cc:663,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2cell_id.cc:664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - S2CellId
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 668
    functionName: "S2CellId::Coder::Decode(Decoder& decoder, S2CellId& v,\n                             S2Error&
      error) const"
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2Error::DataLoss
    - avail
    - getcn
    - S2CellId::None
    - min
    - pos
    - S2CellId::FromToken
    linkageType: ''
    returnType: bool
    signature: "bool S2CellId::Coder::Decode(Decoder& decoder, S2CellId& v,\n                             S2Error&
      error) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id.cc:671,1
    - Dst: S2CellId*::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.cc:672,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2cell_id.cc:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - input
    - id
    - error
    argTypes:
    - string_view
    - S2CellId*
    - string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 677
    functionName: AbslParseFlag
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - S2CellId::FromToken
    - S2CellId*::is_valid
    linkageType: ''
    returnType: bool
    signature: bool AbslParseFlag(string_view input, S2CellId* id, string* error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2cell_id.cc:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 679
    functionName: AbslUnparseFlag
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToToken
    linkageType: ''
    returnType: string
    signature: string AbslUnparseFlag(S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polygon
    - ' options'
    argTypes:
    - S2Polygon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: s2builderutil::S2PolygonLayer::S2PolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolygonLayer::Init
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::S2PolygonLayer(S2Polygon* polygon, const Options&
      options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polygon
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2Polygon*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: s2builderutil::S2PolygonLayer::S2PolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolygonLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::S2PolygonLayer(\n    S2Polygon* polygon, LabelSetIds*
      label_set_ids,\n    IdSetLexicon* label_set_lexicon, const Options& options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:72,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:78,1
    - Dst: set_s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - polygon
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2Polygon*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: s2builderutil::S2PolygonLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 2
    functionsReached:
    - set_s2debug_override
    - ABSL_DCHECK_EQ
    - validate
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::Init(\n    S2Polygon* polygon, LabelSetIds* label_set_ids,\n
      \   IdSetLexicon* label_set_lexicon, const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:87,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: s2builderutil::S2PolygonLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - edge_type
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions S2PolygonLayer::graph_options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:96,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:96,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:98,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:98,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:98,1
    - Dst: vector<unique_ptr<S2Loop>>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:100,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:101,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:101,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' g'
    - edge_loops
    - loops
    argTypes:
    - Graph
    - absl::Span<const Graph::EdgeLoop>
    - vector<unique_ptr<S2Loop>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: s2builderutil::S2PolygonLayer::AppendS2Loops
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2Loop>
    - size
    - vector::reserve
    - vertex
    - edge
    - vector<unique_ptr<S2Loop>>*::push_back
    - vector::clear
    - s2debug_override
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::AppendS2Loops(const Graph& g,\n                                   absl::Span<const
      Graph::EdgeLoop> edge_loops,\n                                   vector<unique_ptr<S2Loop>>*
      loops) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:111,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:114,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:114,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:116,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:117,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:117,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:119,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' g'
    - edge_loops
    argTypes:
    - Graph
    - absl::Span<const Graph::EdgeLoop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: s2builderutil::S2PolygonLayer::AppendEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Add
    - edge_type
    - size
    - Graph::LabelFetcher::Fetch
    - vector::reserve
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::AppendEdgeLabels(\n    const Graph& g, absl::Span<const
      Graph::EdgeLoop> edge_loops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:128,1
    - Dst: contains_origin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - loops
    - loop_map
    argTypes:
    - absl::Span<const unique_ptr<S2Loop>>
    - LoopMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: s2builderutil::S2PolygonLayer::InitLoopMap
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - contains_origin
    - make_pair
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::InitLoopMap(absl::Span<const unique_ptr<S2Loop>>
      loops,\n                                 LoopMap* loop_map) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:134,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:135,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:136,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:137,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:138,1
    - Dst: S2Loop*::contains_origin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:139,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:143,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:143,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:143,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' loop_map'
    argTypes:
    - LoopMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 147
    functionName: s2builderutil::S2PolygonLayer::ReorderEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - num_loops
    - std::reverse
    - end
    - find
    - size
    - S2Loop*::contains_origin
    - swap
    - begin
    - loop
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::ReorderEdgeLabels(const LoopMap& loop_map)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:150,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:158,1
    - Dst: IsFullPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:160,1
    - Dst: s2builderutil::S2PolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:161,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:161,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:161,1
    - Dst: InitNested
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:163,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:165,1
    - Dst: GetDirectedLoops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:167,1
    - Dst: s2builderutil::S2PolygonLayer::AppendS2Loops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:171,1
    - Dst: s2builderutil::S2PolygonLayer::AppendEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:172,1
    - Dst: vector<Graph::EdgeLoop>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:173,1
    - Dst: s2builderutil::S2PolygonLayer::InitLoopMap
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:174,1
    - Dst: InitOriented
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:175,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:175,1
    - Dst: GetUndirectedComponents
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:178,1
    - Dst: s2builderutil::S2PolygonLayer::AppendS2Loops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:191,1
    - Dst: s2builderutil::S2PolygonLayer::AppendEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:192,1
    - Dst: vector<Graph::UndirectedComponent>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:194,1
    - Dst: s2builderutil::S2PolygonLayer::InitLoopMap
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:195,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:196,1
    - Dst: InitNested
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:197,1
    - Dst: s2builderutil::S2PolygonLayer::ReorderEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:199,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:200,1
    - Dst: FindValidationError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:201,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 203
    functionName: s2builderutil::S2PolygonLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - s2builderutil::S2PolygonLayer::ReorderEdgeLabels
    - s2builderutil::S2PolygonLayer::InitLoopMap
    - make_unique<S2Loop>
    - s2builderutil::S2PolygonLayer::AppendS2Loops
    - vector<Graph::EdgeLoop>
    - options
    - validate
    - InitOriented
    - vector<Graph::UndirectedComponent>
    - GetUndirectedComponents
    - S2Loop::kFull
    - std::move
    - IsFullPolygon
    - InitNested
    - FindValidationError
    - s2builderutil::S2PolygonLayer::Init
    - GetDirectedLoops
    - clear
    - Normalize
    - s2builderutil::S2PolygonLayer::AppendEdgeLabels
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::Build(const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polygon
    - ' options'
    argTypes:
    - S2Polygon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: s2builderutil::S2PolygonLayer::S2PolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolygonLayer::Init
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::S2PolygonLayer(S2Polygon* polygon, const Options&
      options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polygon
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2Polygon*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: s2builderutil::S2PolygonLayer::S2PolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolygonLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::S2PolygonLayer(\n    S2Polygon* polygon, LabelSetIds*
      label_set_ids,\n    IdSetLexicon* label_set_lexicon, const Options& options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:72,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:78,1
    - Dst: set_s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - polygon
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2Polygon*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: s2builderutil::S2PolygonLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 5
    functionsReached:
    - set_s2debug_override
    - ABSL_DCHECK_EQ
    - validate
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::Init(\n    S2Polygon* polygon, LabelSetIds* label_set_ids,\n
      \   IdSetLexicon* label_set_lexicon, const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:87,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: s2builderutil::S2PolygonLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - edge_type
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions S2PolygonLayer::graph_options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:96,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:96,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:98,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:98,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:98,1
    - Dst: vector<unique_ptr<S2Loop>>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:100,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:101,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:101,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' g'
    - edge_loops
    - loops
    argTypes:
    - Graph
    - absl::Span<const Graph::EdgeLoop>
    - vector<unique_ptr<S2Loop>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: s2builderutil::S2PolygonLayer::AppendS2Loops
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - make_unique<S2Loop>
    - size
    - vector::reserve
    - vertex
    - edge
    - vector<unique_ptr<S2Loop>>*::push_back
    - vector::clear
    - s2debug_override
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::AppendS2Loops(const Graph& g,\n                                   absl::Span<const
      Graph::EdgeLoop> edge_loops,\n                                   vector<unique_ptr<S2Loop>>*
      loops) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:111,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:114,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:114,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:116,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:117,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:117,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:119,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' g'
    - edge_loops
    argTypes:
    - Graph
    - absl::Span<const Graph::EdgeLoop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: s2builderutil::S2PolygonLayer::AppendEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - Add
    - edge_type
    - size
    - Graph::LabelFetcher::Fetch
    - vector::reserve
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::AppendEdgeLabels(\n    const Graph& g, absl::Span<const
      Graph::EdgeLoop> edge_loops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:128,1
    - Dst: contains_origin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - loops
    - loop_map
    argTypes:
    - absl::Span<const unique_ptr<S2Loop>>
    - LoopMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: s2builderutil::S2PolygonLayer::InitLoopMap
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 1
    functionsReached:
    - contains_origin
    - make_pair
    linkageType: ''
    returnType: void
    signature: "void S2PolygonLayer::InitLoopMap(absl::Span<const unique_ptr<S2Loop>>
      loops,\n                                 LoopMap* loop_map) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:134,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:135,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:136,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:137,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:138,1
    - Dst: S2Loop*::contains_origin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:139,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:143,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:143,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:143,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' loop_map'
    argTypes:
    - LoopMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 147
    functionName: s2builderutil::S2PolygonLayer::ReorderEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 1
    functionsReached:
    - num_loops
    - std::reverse
    - end
    - find
    - size
    - S2Loop*::contains_origin
    - swap
    - begin
    - loop
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::ReorderEdgeLabels(const LoopMap& loop_map)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:150,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:158,1
    - Dst: IsFullPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:160,1
    - Dst: s2builderutil::S2PolygonLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:161,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:161,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:161,1
    - Dst: InitNested
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:163,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:165,1
    - Dst: GetDirectedLoops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:167,1
    - Dst: s2builderutil::S2PolygonLayer::AppendS2Loops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:171,1
    - Dst: s2builderutil::S2PolygonLayer::AppendEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:172,1
    - Dst: vector<Graph::EdgeLoop>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:173,1
    - Dst: s2builderutil::S2PolygonLayer::InitLoopMap
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:174,1
    - Dst: InitOriented
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:175,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:175,1
    - Dst: GetUndirectedComponents
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:178,1
    - Dst: s2builderutil::S2PolygonLayer::AppendS2Loops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:191,1
    - Dst: s2builderutil::S2PolygonLayer::AppendEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:192,1
    - Dst: vector<Graph::UndirectedComponent>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:194,1
    - Dst: s2builderutil::S2PolygonLayer::InitLoopMap
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:195,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:196,1
    - Dst: InitNested
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:197,1
    - Dst: s2builderutil::S2PolygonLayer::ReorderEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:199,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:200,1
    - Dst: FindValidationError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc:201,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 203
    functionName: s2builderutil::S2PolygonLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - s2builderutil::S2PolygonLayer::ReorderEdgeLabels
    - s2builderutil::S2PolygonLayer::InitLoopMap
    - make_unique<S2Loop>
    - s2builderutil::S2PolygonLayer::AppendS2Loops
    - vector<Graph::EdgeLoop>
    - options
    - validate
    - InitOriented
    - vector<Graph::UndirectedComponent>
    - GetUndirectedComponents
    - S2Loop::kFull
    - std::move
    - IsFullPolygon
    - InitNested
    - FindValidationError
    - s2builderutil::S2PolygonLayer::Init
    - GetDirectedLoops
    - clear
    - Normalize
    - s2builderutil::S2PolygonLayer::AppendEdgeLabels
    linkageType: ''
    returnType: void
    signature: void S2PolygonLayer::Build(const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: S1Angle::S1Angle
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S1Angle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:148,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: operator<=>(S1Angle x, S1Angle y)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: auto
    signature: auto operator<=>(S1Angle x, S1Angle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:152,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: operator!=(S1Angle x, S1Angle y)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: bool
    signature: bool operator!=(S1Angle x, S1Angle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:155,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: operator<(S1Angle x, S1Angle y)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: bool
    signature: bool operator<(S1Angle x, S1Angle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:158,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: operator>(S1Angle x, S1Angle y)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: bool
    signature: bool operator>(S1Angle x, S1Angle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:161,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: operator<=(S1Angle x, S1Angle y)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: bool
    signature: bool operator<=(S1Angle x, S1Angle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:164,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: operator>=(S1Angle x, S1Angle y)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: bool
    signature: bool operator>=(S1Angle x, S1Angle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - radians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: S1Angle::S1Angle
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S1Angle(double radians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s1angle.h:228,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s1angle.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: S1Angle::Infinity
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 5
    functionsReached:
    - S1Angle::S1Angle
    - S1ChordAngle::is_infinity
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::Infinity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s1angle.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: S1Angle::Zero
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 72
    functionsReached:
    - S1Angle::S1Angle
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::Zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: S1Angle::radians
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double S1Angle::radians() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: S1Angle::degrees
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double S1Angle::degrees() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s1angle.h:250,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s1angle.h:250,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.h:250,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s1angle.h:251,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.h:251,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s1angle.h:251,1
    - Dst: MathUtil::Round<int32_t>
      Src: /src/s2geometry/src/s2/s1angle.h:252,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: S1Angle::e5
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S2CellId::range_min
    - ABSL_DCHECK_LE
    - Stats::max
    - MathUtil::Round<int32_t>
    - S1Angle::degrees
    linkageType: ''
    returnType: int32_t
    signature: int32_t S1Angle::e5() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s1angle.h:256,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s1angle.h:256,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.h:256,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s1angle.h:257,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.h:257,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s1angle.h:257,1
    - Dst: MathUtil::Round<int32_t>
      Src: /src/s2geometry/src/s2/s1angle.h:258,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: S1Angle::e6
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S2CellId::range_min
    - ABSL_DCHECK_LE
    - Stats::max
    - MathUtil::Round<int32_t>
    - S1Angle::degrees
    linkageType: ''
    returnType: int32_t
    signature: int32_t S1Angle::e6() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s1angle.h:262,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s1angle.h:262,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.h:262,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s1angle.h:263,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.h:263,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s1angle.h:263,1
    - Dst: MathUtil::Round<int32_t>
      Src: /src/s2geometry/src/s2/s1angle.h:264,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: S1Angle::e7
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S2CellId::range_min
    - ABSL_DCHECK_LE
    - Stats::max
    - MathUtil::Round<int32_t>
    - S1Angle::degrees
    linkageType: ''
    returnType: int32_t
    signature: int32_t S1Angle::e7() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:268,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: S1Angle::IsNormalized
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: bool
    signature: bool S1Angle::IsNormalized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s1angle.h:272,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s1angle.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: S1Angle::abs
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::S1Angle
    - std::fabs
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::abs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1angle.h:276,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s1angle.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: abs
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 33
    functionsReached:
    - S1Angle
    - std::fabs
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle abs(S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:280,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: operator==(S1Angle x, S1Angle y)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: bool
    signature: bool operator==(S1Angle x, S1Angle y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle.h:284,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: operator-(S1Angle a)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - S1Angle::radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle operator-(S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle.h:288,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:288,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: operator+(S1Angle a, S1Angle b)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - S1Angle::radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle operator+(S1Angle a, S1Angle b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle.h:292,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:292,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: operator-(S1Angle a, S1Angle b)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - S1Angle::radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle operator-(S1Angle a, S1Angle b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle.h:296,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - a
    argTypes:
    - double
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: operator*(double m, S1Angle a)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - S1Angle::radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle operator*(double m, S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle.h:300,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - m
    argTypes:
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: operator*(S1Angle a, double m)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - S1Angle::radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle operator*(S1Angle a, double m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1angle.h:304,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - m
    argTypes:
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: operator/(S1Angle a, double m)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - S1Angle::radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle operator/(S1Angle a, double m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:308,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: operator/(S1Angle a, S1Angle b)
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: double
    signature: double operator/(S1Angle a, S1Angle b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: '& S1Angle::operator+=(S1Angle a)'
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle & S1Angle::operator+=(S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: '& S1Angle::operator-=(S1Angle a)'
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle & S1Angle::operator-=(S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: '& S1Angle::operator*=(double m)'
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle & S1Angle::operator*=(double m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: '& S1Angle::operator/=(double m)'
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle & S1Angle::operator/=(double m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1angle.h:332,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: sin
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 20
    functionsReached:
    - S1Angle::radians
    - sin
    linkageType: ''
    returnType: double
    signature: double sin(S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/s2geometry/src/s2/s1angle.h:336,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: cos
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 16
    functionsReached:
    - S1Angle::radians
    - cos
    linkageType: ''
    returnType: double
    signature: double cos(S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tan
      Src: /src/s2geometry/src/s2/s1angle.h:340,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: tan
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 10
    functionsReached:
    - S1Angle::radians
    - tan
    linkageType: ''
    returnType: double
    signature: double tan(S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sincos
      Src: /src/s2geometry/src/s2/s1angle.h:352,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:352,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1angle.h:355,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:355,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s1angle.h:355,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 357
    functionName: S1Angle::SinCos
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 5
    functionsReached:
    - S1Angle::radians
    - sincos
    - sin
    - cos
    linkageType: ''
    returnType: S1Angle::SinCosPair
    signature: S1Angle::SinCosPair S1Angle::SinCos() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s1angle.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - radians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: S1Angle::Radians
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 67
    functionsReached:
    - S1Angle::S1Angle
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::Radians(double radians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s1angle.h:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - degrees
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: S1Angle::Degrees
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 87
    functionsReached:
    - S1Angle::S1Angle
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::Degrees(double degrees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle.h:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e5
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: S1Angle::E5
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 2
    functionsReached:
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::E5(int32_t e5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e6
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: S1Angle::E6
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 6
    functionsReached:
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::E6(int32_t e6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1angle.h:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e7
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: S1Angle::E7
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 5
    functionsReached:
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::E7(int32_t e7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s1angle.h:380,1
    - Dst: static_cast<int32_t>
      Src: /src/s2geometry/src/s2/s1angle.h:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e6
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: S1Angle::UnsignedE6
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 1
    functionsReached:
    - static_cast<int32_t>
    - S1Angle::E6
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::UnsignedE6(uint32_t e6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s1angle.h:384,1
    - Dst: static_cast<int32_t>
      Src: /src/s2geometry/src/s2/s1angle.h:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e7
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: S1Angle::UnsignedE7
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 1
    functionsReached:
    - S1Angle::E7
    - static_cast<int32_t>
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::UnsignedE7(uint32_t e7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s1angle.h:393,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s1angle.h:393,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s1angle.h:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - angle
    argTypes:
    - H
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s1angle.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    - S1Angle::radians
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, S1Angle angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:43,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:43,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetDimension
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetDimension, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:47,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:47,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:47,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:50,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:51,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:52,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2PointVectorShape>
    - S2::GetDimension
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetDimension, Points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:56,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:56,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:60,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:60,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetDimension
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetDimension, PointsAndLines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:64,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:64,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:67,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:67,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetDimension
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetDimension, PointsLinesAndPolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:71,1
    - Dst: S2::GetNumPoints
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:71,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetNumPoints
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetNumPoints, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:75,1
    - Dst: S2::GetNumPoints
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:75,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetNumPoints
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetNumPoints, TwoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:79,1
    - Dst: S2::GetNumPoints
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:79,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetNumPoints
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetNumPoints, LineAndPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:84,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:84,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:84,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::Zero
    - S2::GetLength
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:88,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:88,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:88,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::Degrees
    - S2::GetLength
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, TwoLines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:93,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:93,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:93,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:97,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:97,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPerimeter
    - EXPECT_DOUBLE_EQ
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, DegeneratePolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:102,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:102,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:106,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:106,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, TwoFullPolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:110,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:110,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetApproxArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetApproxArea, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:114,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:114,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetApproxArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetApproxArea, TwoFullPolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:118,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:118,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:118,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:122,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:122,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:123,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:128,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:128,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:129,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:130,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:135,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:135,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:136,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:137,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:43,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:43,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetDimension
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetDimension, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:47,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:47,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:47,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:50,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:51,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:52,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2PointVectorShape>
    - S2::GetDimension
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetDimension, Points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:56,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:56,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:60,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:60,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetDimension
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetDimension, PointsAndLines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:64,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:64,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:67,1
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:67,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetDimension
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetDimension, PointsLinesAndPolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:71,1
    - Dst: S2::GetNumPoints
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:71,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetNumPoints
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetNumPoints, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:75,1
    - Dst: S2::GetNumPoints
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:75,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetNumPoints
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetNumPoints, TwoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:79,1
    - Dst: S2::GetNumPoints
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:79,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetNumPoints
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetNumPoints, LineAndPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:84,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:84,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:84,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::Zero
    - S2::GetLength
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:88,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:88,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:88,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::Degrees
    - S2::GetLength
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, TwoLines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:93,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:93,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:93,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:97,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:97,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPerimeter
    - EXPECT_DOUBLE_EQ
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, DegeneratePolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:102,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:102,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:106,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:106,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, TwoFullPolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:110,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:110,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetApproxArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetApproxArea, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:114,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:114,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetApproxArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetApproxArea, TwoFullPolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:118,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:118,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:118,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:122,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:122,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:123,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:128,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:128,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:129,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:130,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:135,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:135,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:136,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:137,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_measures_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_span.h:53,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2point_span.h:54,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2point_span.h:54,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_span.h:54,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2point_span.h:55,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_span.h:55,1
    - Dst: S2PointSpan::operator[]
      Src: /src/s2geometry/src/s2/s2point_span.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: operator[](int i) const noexcept
    functionSourceFile: /src/s2geometry/src/s2/s2point_span.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - ABSL_DCHECK_LT
    - S2PointSpan::operator[]
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: reference
    signature: reference operator[](int i) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:33,1
    - Dst: S2Earth::MetersToAngle
      Src: /src/s2geometry/src/s2/s2earth_test.cc:33,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:33,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:35,1
    - Dst: S2Earth::MetersToChordAngle
      Src: /src/s2geometry/src/s2/s2earth_test.cc:36,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:36,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:37,1
    - Dst: S2Earth::MetersToRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:37,1
    - Dst: S2Earth::RadiansToKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:37,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:39,1
    - Dst: S2Earth::ToMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:39,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:39,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:40,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:41,1
    - Dst: S2Earth::ToMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:41,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:41,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:42,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:43,1
    - Dst: S2Earth::RadiansToMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:43,1
    - Dst: S2Earth::KmToRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:43,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:46,1
    - Dst: S2Earth::KmToAngle
      Src: /src/s2geometry/src/s2/s2earth_test.cc:46,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:46,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:47,1
    - Dst: S2Earth::KmToChordAngle
      Src: /src/s2geometry/src/s2/s2earth_test.cc:47,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:47,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:48,1
    - Dst: S2Earth::KmToRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:48,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:48,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:49,1
    - Dst: S2Earth::ToKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:49,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:49,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:50,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:51,1
    - Dst: S2Earth::ToKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:51,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:51,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:52,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:53,1
    - Dst: S2Earth::RadiansToKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:53,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:53,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:57,1
    - Dst: S2Earth::ToAngle
      Src: /src/s2geometry/src/s2/s2earth_test.cc:57,1
    - Dst: S2Earth::Radius
      Src: /src/s2geometry/src/s2/s2earth_test.cc:57,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:58,1
    - Dst: S2Earth::ToChordAngle
      Src: /src/s2geometry/src/s2/s2earth_test.cc:58,1
    - Dst: S2Earth::Radius
      Src: /src/s2geometry/src/s2/s2earth_test.cc:58,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:59,1
    - Dst: S2Earth::ToRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:59,1
    - Dst: S2Earth::Radius
      Src: /src/s2geometry/src/s2/s2earth_test.cc:59,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:60,1
    - Dst: S2Earth::ToDistance
      Src: /src/s2geometry/src/s2/s2earth_test.cc:60,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:60,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:61,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:62,1
    - Dst: S2Earth::ToDistance
      Src: /src/s2geometry/src/s2/s2earth_test.cc:62,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:62,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:63,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:64,1
    - Dst: S2Earth::RadiansToDistance
      Src: /src/s2geometry/src/s2/s2earth_test.cc:64,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2earth_test.cc
    functionUses: 0
    functionsReached:
    - S2Earth::Radius
    - S2Earth::ToMeters
    - S2Earth::RadiusMeters
    - S2Earth::KmToRadians
    - S2Earth::KmToAngle
    - EXPECT_FLOAT_EQ
    - S1Angle::Radians
    - S1ChordAngle::Degrees
    - S2Earth::MetersToRadians
    - S2Earth::RadiansToMeters
    - S2Earth::ToChordAngle
    - S2Earth::ToDistance
    - S2Earth::MetersToChordAngle
    - S2Earth::RadiansToKm
    - S1Angle::Degrees
    - S2Earth::ToKm
    - S2Earth::KmToChordAngle
    - S1ChordAngle::Radians
    - S2Earth::ToAngle
    - S2Earth::ToRadians
    - EXPECT_DOUBLE_EQ
    - S2Earth::MetersToAngle
    - S2Earth::RadiansToDistance
    - S2Earth::RadiusKm
    linkageType: ''
    returnType: void
    signature: void TEST(S2EarthTest, TestAngleConversion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:69,1
    - Dst: S2Earth::SquareKmToSteradians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:69,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2earth_test.cc:70,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:70,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:71,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2earth_test.cc:71,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:71,1
    - Dst: S2Earth::SteradiansToSquareKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:72,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2earth_test.cc:72,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:73,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2earth_test.cc:73,1
    - Dst: S2Earth::SquareMetersToSteradians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:73,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2earth_test.cc:73,1
    - Dst: S2Earth::RadiansToKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:74,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:75,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2earth_test.cc:75,1
    - Dst: S2Earth::SteradiansToSquareMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:76,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2earth_test.cc:77,1
    - Dst: S2Earth::KmToRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2earth_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - S2Earth::SquareKmToSteradians
    - S2Earth::RadiansToKm
    - S2Earth::RadiusMeters
    - S2Earth::SteradiansToSquareMeters
    - S2Earth::KmToRadians
    - S2Earth::SteradiansToSquareKm
    - S2Earth::RadiusKm
    - std::pow
    - S2Earth::SquareMetersToSteradians
    linkageType: ''
    returnType: void
    signature: void TEST(S2EarthTest, TestSolidAngleConversion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::Radius
      Src: /src/s2geometry/src/s2/s2earth_test.cc:81,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:84,1
    - Dst: S2Earth::ToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:84,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2earth_test.cc:88,1
    - Dst: S2Earth::ToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:88,1
    - Dst: S2Earth::ToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:89,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:92,1
    - Dst: S2Earth::ToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:92,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:96,1
    - Dst: S2Earth::ToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:100,1
    - Dst: S2Earth::ToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:100,1
    - Dst: S2Earth::MetersToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:101,1
    - Dst: util::units::Meters::value
      Src: /src/s2geometry/src/s2/s2earth_test.cc:101,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:102,1
    - Dst: S2Earth::ToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:103,1
    - Dst: S2Earth::KmToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:104,1
    - Dst: util::units::Meters::value
      Src: /src/s2geometry/src/s2/s2earth_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2earth_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - EXPECT_DOUBLE_EQ
    - S2Earth::Radius
    - S2Earth::ToLongitudeRadians
    - util::units::Meters::value
    - EXPECT_EQ
    - S2Earth::MetersToLongitudeRadians
    - S2Earth::KmToLongitudeRadians
    linkageType: ''
    returnType: void
    signature: void TEST(S2EarthTest, TestToLongitudeRadians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:114,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:115,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:115,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:116,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:117,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:117,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:118,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:119,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:119,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:120,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:121,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:121,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:122,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:123,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:123,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:124,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:125,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:125,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:126,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:127,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:127,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:128,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:129,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:129,1
    - Dst: S2Earth::GetInitialBearing
      Src: /src/s2geometry/src/s2/s2earth_test.cc:133,1
    - Dst: Normalized
      Src: /src/s2geometry/src/s2/s2earth_test.cc:134,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2earth_test.cc:135,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 139
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2earth_test.cc
    functionUses: 0
    functionsReached:
    - S2Earth::GetInitialBearing
    - Normalized
    - S1Angle::Degrees
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - S1Angle::degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2EarthTest, TestGetInitialBearing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:146,1
    - Dst: util::units::GetMiles
      Src: /src/s2geometry/src/s2/s2earth_test.cc:147,1
    - Dst: S2Earth::GetDistance
      Src: /src/s2geometry/src/s2/s2earth_test.cc:147,1
    - Dst: util::units::GetMiles
      Src: /src/s2geometry/src/s2/s2earth_test.cc:148,1
    - Dst: S2Earth::Radius
      Src: /src/s2geometry/src/s2/s2earth_test.cc:148,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:149,1
    - Dst: S2Earth::GetDistanceKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:149,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:150,1
    - Dst: S2Earth::GetDistanceMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:150,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:151,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:153,1
    - Dst: util::units::GetFeet
      Src: /src/s2geometry/src/s2/s2earth_test.cc:154,1
    - Dst: S2Earth::GetDistance
      Src: /src/s2geometry/src/s2/s2earth_test.cc:154,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:154,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:155,1
    - Dst: util::units::GetFeet
      Src: /src/s2geometry/src/s2/s2earth_test.cc:157,1
    - Dst: S2Earth::GetDistance
      Src: /src/s2geometry/src/s2/s2earth_test.cc:157,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:159,1
    - Dst: S2Earth::GetDistanceKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:159,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:159,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2earth_test.cc:160,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:161,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2earth_test.cc:163,1
    - Dst: S2Earth::GetDistanceMeters
      Src: /src/s2geometry/src/s2/s2earth_test.cc:163,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:163,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2earth_test.cc:164,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 166
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2earth_test.cc
    functionUses: 0
    functionsReached:
    - util::units::GetMiles
    - S2Earth::GetDistanceKm
    - S2Earth::GetDistanceMeters
    - EXPECT_DOUBLE_EQ
    - S2Earth::Radius
    - S2Earth::RadiusMeters
    - util::units::GetFeet
    - S2LatLng::FromRadians
    - S2LatLng::FromDegrees
    - S2Earth::GetDistance
    - S2Earth::RadiusKm
    - EXPECT_FLOAT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2EarthTest, TestGetDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: S2ClosestEdgeQueryBase::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached:
    - S2MinDistance::Infinity
    linkageType: ''
    returnType: void
    signature: void Result()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - distance
    - shape_id
    - edge_id
    argTypes:
    - Distance
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: S2ClosestEdgeQueryBase::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Result(Distance distance, int32_t shape_id, int32_t edge_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: S2ClosestEdgeQueryBase::Result::distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Distance
    signature: Distance distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: S2ClosestEdgeQueryBase::Result::shape_id
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t shape_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: S2ClosestEdgeQueryBase::Result::edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: S2ClosestEdgeQueryBase::Result::is_interior
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_interior() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: S2ClosestEdgeQueryBase::Result::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: operator==(const Result& x, const Result& y)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Result& x, const Result& y)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: operator<(const Result& x, const Result& y)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Result& x, const Result& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: S2ClosestEdgeQueryBase::S2ClosestEdgeQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase(const S2ClosestEdgeQueryBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: operator=(const S2ClosestEdgeQueryBase&)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2ClosestEdgeQueryBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:324,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:325,1
    - Dst: auto::distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:325,1
    - Dst: auto::shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:327,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:328,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - visitor
    - ' cell_distance'
    argTypes:
    - ResultVisitor
    - Distance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 335
    functionName: S2ClosestEdgeQueryBase::ReportResults
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached:
    - auto::shape_id
    - end
    - visitor
    - erase
    - begin
    - auto::distance
    linkageType: ''
    returnType: bool
    signature: bool ReportResults(ResultVisitor visitor, const Distance& cell_distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - _distance
    - _id
    - _index_cell
    argTypes:
    - Distance
    - S2CellId
    - S2ShapeIndexCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: S2ClosestEdgeQueryBase::QueueEntry
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void QueueEntry(Distance _distance, S2CellId _id,\n               const
      S2ShapeIndexCell* _index_cell)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - QueueEntry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: operator<(const QueueEntry& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const QueueEntry& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 461
    functionName: S2ClosestEdgeQueryBase<Distance>::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase<Distance>::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: S2ClosestEdgeQueryBase<Distance>::Options::max_results() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestEdgeQueryBase<Distance>::Options::max_results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - max_results
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: "S2ClosestEdgeQueryBase<Distance>::Options::set_max_results(\n    int
      max_results)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::Options::set_max_results(\n
      \   int max_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: "S2ClosestEdgeQueryBase<Distance>::Options::max_distance()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Distance
    signature: "Distance S2ClosestEdgeQueryBase<Distance>::Options::max_distance()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - Distance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: "S2ClosestEdgeQueryBase<Distance>::Options::set_max_distance(\n
      \   Distance max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::Options::set_max_distance(\n
      \   Distance max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: S2ClosestEdgeQueryBase<Distance>::Options::max_error() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename Distance::Delta
    signature: typename Distance::Delta S2ClosestEdgeQueryBase<Distance>::Options::max_error()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_error
    argTypes:
    - Delta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: "S2ClosestEdgeQueryBase<Distance>::Options::set_max_error(\n    Delta
      max_error)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::Options::set_max_error(\n    Delta
      max_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: "S2ClosestEdgeQueryBase<Distance>::Options::include_interiors()\n
      \   const"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestEdgeQueryBase<Distance>::Options::include_interiors()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - include_interiors
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: "S2ClosestEdgeQueryBase<Distance>::Options::set_include_interiors(\n
      \   bool include_interiors)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::Options::set_include_interiors(\n
      \   bool include_interiors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 514
    functionName: S2ClosestEdgeQueryBase<Distance>::Options::use_brute_force() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2ClosestEdgeQueryBase<Distance>::Options::use_brute_force() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - use_brute_force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: "S2ClosestEdgeQueryBase<Distance>::Options::set_use_brute_force(\n
      \   bool use_brute_force)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::Options::set_use_brute_force(\n
      \   bool use_brute_force)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: S2ClosestEdgeQueryBase<Distance>::S2ClosestEdgeQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase<Distance>::S2ClosestEdgeQueryBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: S2ClosestEdgeQueryBase<Distance>::~S2ClosestEdgeQueryBase()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase<Distance>::~S2ClosestEdgeQueryBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQueryBase<Distance>::Init
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: S2ClosestEdgeQueryBase<Distance>::S2ClosestEdgeQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQueryBase<Distance>::Init
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::S2ClosestEdgeQueryBase(\n    const
      S2ShapeIndex* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQueryBase<Distance>::ReInit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: S2ClosestEdgeQueryBase<Distance>::Init
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQueryBase<Distance>::ReInit
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase<Distance>::Init(const S2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:547,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 551
    functionName: S2ClosestEdgeQueryBase<Distance>::ReInit
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase<Distance>::ReInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: '& S2ClosestEdgeQueryBase<Distance>::index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex & S2ClosestEdgeQueryBase<Distance>::index() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:565,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:567,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - target
    - ' options'
    - filter
    argTypes:
    - Target*
    - Options
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 570
    functionName: S2ClosestEdgeQueryBase<Distance>::FindClosestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQueryBase<Distance>::FindClosestEdges
    - emplace
    - reset
    linkageType: ''
    returnType: std::vector<typename S2ClosestEdgeQueryBase<Distance>::Result>
    signature: "std::vector<typename S2ClosestEdgeQueryBase<Distance>::Result> S2ClosestEdgeQueryBase<Distance>::FindClosestEdges(Target*
      target,\n                                                   const Options& options,\n
      \                                                  ShapeFilter filter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:578,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:581,1
    - Dst: Options::max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:586,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesInternal
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:587,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:588,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - target
    - options
    - visitor
    - filter
    argTypes:
    - Target*
    - Options
    - ResultVisitor
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 594
    functionName: S2ClosestEdgeQueryBase<Distance>::VisitClosestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesInternal
    - emplace
    - Options::max_results
    - clear
    - visitor
    - reset
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::VisitClosestEdges(\n    Target*
      target, Options options, ResultVisitor visitor,\n    ShapeFilter filter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:601,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:601,1
    - Dst: emplace
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:603,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesInternal
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:605,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - target
    - ' options'
    - filter
    argTypes:
    - Target*
    - Options
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 608
    functionName: S2ClosestEdgeQueryBase<Distance>::FindClosestEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesInternal
    - emplace
    - ABSL_DCHECK_EQ
    - reset
    - max_results
    linkageType: ''
    returnType: typename S2ClosestEdgeQueryBase<Distance>::Result
    signature: "typename S2ClosestEdgeQueryBase<Distance>::Result S2ClosestEdgeQueryBase<Distance>::FindClosestEdge(Target*
      target,\n                                                  const Options& options,\n
      \                                                 ShapeFilter filter)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:615,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesInternal
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:617,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:618,1
    - Dst: std::vector<Result>*::clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:620,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:621,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:622,1
    - Dst: std::vector<Result>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:623,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:625,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:626,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:626,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:626,1
    - Dst: std::unique_copy
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:627,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:627,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:627,1
    - Dst: std::back_inserter
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:628,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:629,1
    - Dst: std::vector<Result>*::assign
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:631,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:631,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:631,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - target
    - ' options'
    - results
    - filter
    argTypes:
    - Target*
    - Options
    - std::vector<Result>*
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 634
    functionName: S2ClosestEdgeQueryBase<Distance>::FindClosestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesInternal
    - std::vector<Result>*::push_back
    - emplace
    - std::vector<Result>*::clear
    - end
    - std::back_inserter
    - shape_id
    - clear
    - begin
    - reset
    - std::sort
    - std::unique_copy
    - std::vector<Result>*::assign
    - max_results
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::FindClosestEdges(\n    Target*
      target, const Options& options, std::vector<Result>* results,\n    ShapeFilter
      filter)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:643,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:644,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:645,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:646,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:646,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:647,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:647,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:648,1
    - Dst: Target*::max_brute_force_index_size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:648,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:649,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:651,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:652,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:652,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:653,1
    - Dst: include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:657,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:660,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:660,1
    - Dst: Target*::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:663,1
    - Dst: absl::btree_set::insert
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:665,1
    - Dst: absl::btree_set::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:666,1
    - Dst: Target*::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:670,1
    - Dst: absl::btree_set::insert
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:673,1
    - Dst: absl::btree_set::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:675,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:679,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::AddResult
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:681,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:681,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:707,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:707,1
    - Dst: set_max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:708,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:708,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:713,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:714,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:714,1
    - Dst: max_brute_force_index_size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:720,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:723,1
    - Dst: use_brute_force
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:728,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesBruteForce
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:731,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:737,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesOptimized
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:738,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 3
    argNames:
    - target
    - ' options'
    - visitor
    argTypes:
    - Target*
    - Options
    - std::optional<ResultVisitor>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 740
    functionName: S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesInternal
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 3
    functionsReached:
    - Target*::VisitContainingShapeIds
    - Result
    - ABSL_LOG
    - absl::btree_set::size
    - absl::btree_set::insert
    - s2shapeutil::CountEdgesUpTo
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    - max_distance
    - S2MinDistance::Infinity
    - empty
    - S2ClosestEdgeQueryBase<Distance>::AddResult
    - max_error
    - S2MinDistance::Zero
    - set_max_error
    - use_brute_force
    - S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesBruteForce
    - S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesOptimized
    - max_brute_force_index_size
    - Target*::max_brute_force_index_size
    - static_cast<size_t>
    - clear
    - S1ChordAngle::Zero
    - include_interiors
    - max_results
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesInternal(\n
      \   Target* target, const Options& options,\n    std::optional<ResultVisitor>
      visitor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:745,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:746,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:752,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::MaybeAddResult
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:754,1
    - Dst: ReportResults
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:761,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:761,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - std::optional<ResultVisitor>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 763
    functionName: S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - ReportResults
    - num_shape_ids
    - shape
    - S2Shape*::num_edges
    - S2MinDistance::Infinity
    - S2ClosestEdgeQueryBase<Distance>::MaybeAddResult
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesBruteForce(\n
      \   std::optional<ResultVisitor> visitor)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:768,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::InitQueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:770,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:773,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:776,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:777,1
    - Dst: CellQueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:779,1
    - Dst: ReportResults
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:787,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:794,1
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:802,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:802,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:803,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:803,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:803,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:804,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:804,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:806,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:806,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:806,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:807,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:807,1
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:809,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:809,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:810,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:810,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:810,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:811,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:811,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:813,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:813,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:813,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:814,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:814,1
    - Dst: ReportResults
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:820,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:820,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - std::optional<ResultVisitor>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 822
    functionName: S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesOptimized
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - CellQueue
    - pop
    - S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
    - done
    - S2CellId::range_max
    - top
    - Seek
    - S2MinDistance::Zero
    - ReportResults
    - id
    - Prev
    - S2ClosestEdgeQueryBase<Distance>::InitQueue
    - S2CellId::range_min
    - S2ClosestEdgeQueryBase<Distance>::ProcessEdges
    - S2MinDistance::Infinity
    - empty
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesOptimized(\n
      \   std::optional<ResultVisitor> visitor)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:826,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:826,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:827,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::Init
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:830,1
    - Dst: GetCapBound
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:844,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:845,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:846,1
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:846,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:846,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:847,1
    - Dst: QueueEntry
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:847,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:847,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:847,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:847,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:849,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:851,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::InitCovering
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:851,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:852,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:854,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:855,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:860,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:861,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:862,1
    - Dst: GetChordAngleBound
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:862,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:863,1
    - Dst: S2RegionCoverer::GetFastCovering
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:864,1
    - Dst: S2CellUnion::GetIntersection
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:865,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:871,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:874,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:879,1
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:884,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:888,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:888,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:888,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:889,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:890,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:894,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 900
    functionName: S2ClosestEdgeQueryBase<Distance>::InitQueue
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - S2Cap::center
    - S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
    - S2RegionCoverer::mutable_options
    - range_max
    - ABSL_DCHECK
    - GetChordAngleBound
    - S2Cap::is_empty
    - id
    - GetCapBound
    - options
    - S2MinDistance::Infinity
    - empty
    - S2RegionCoverer::GetFastCovering
    - S2Cap::radius
    - cell
    - S2MinDistance::Zero
    - S2ClosestEdgeQueryBase<Distance>::Init
    - S2ClosestEdgeQueryBase<Distance>::InitCovering
    - S2RegionCoverer::S2RegionCoverer
    - size
    - QueueEntry
    - Locate
    - S2ClosestEdgeQueryBase<Distance>::ProcessEdges
    - S2CellUnion::GetIntersection
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase<Distance>::InitQueue()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:922,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:928,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:929,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:929,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:933,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:933,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:936,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:937,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:937,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:939,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:939,1
    - Dst: S2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:944,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:944,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:946,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::AddInitialRange
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:947,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::AddInitialRange
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 951
    functionName: S2ClosestEdgeQueryBase<Distance>::InitCovering
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - S2ShapeIndex::Iterator::Seek
    - S2CellId::range_max
    - reserve
    - S2ShapeIndex::Iterator::id
    - S2ShapeIndex::Iterator::Prev
    - S2CellId::next
    - S2ClosestEdgeQueryBase<Distance>::AddInitialRange
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase<Distance>::InitCovering()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:961,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:961,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:963,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:963,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:964,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:964,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:967,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:967,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:968,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:969,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:969,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' first'
    - ' last'
    argTypes:
    - S2ShapeIndex::Iterator
    - S2ShapeIndex::Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 972
    functionName: S2ClosestEdgeQueryBase<Distance>::AddInitialRange
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - id
    - ABSL_DCHECK_GE
    - cell
    - push_back
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::AddInitialRange(\n    const
      S2ShapeIndex::Iterator& first,\n    const S2ShapeIndex::Iterator& last)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:979,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:979,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:983,1
    - Dst: UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:985,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::AddResult
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:986,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' shape'
    - shape_id
    - edge_id
    argTypes:
    - S2Shape
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 988
    functionName: S2ClosestEdgeQueryBase<Distance>::MaybeAddResult
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 1
    functionsReached:
    - ShapeEdgeId
    - Result
    - UpdateMinDistance
    - edge
    - insert
    - S2ClosestEdgeQueryBase<Distance>::AddResult
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::MaybeAddResult(const S2Shape&
      shape,\n                                                      int shape_id,\n
      \                                                     int edge_id)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:993,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:996,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:996,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:998,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:999,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1007,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1008,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1009,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1010,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1011,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1011,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1013,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1013,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1013,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 1015
    functionName: S2ClosestEdgeQueryBase<Distance>::AddResult
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 2
    functionsReached:
    - end
    - size
    - push_back
    - options
    - distance
    - erase
    - insert
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase<Distance>::AddResult(const Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexCell*::num_clipped
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1020,1
    - Dst: S2ShapeIndexCell*::clipped
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cell
    argTypes:
    - S2ShapeIndexCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1024
    functionName: CountEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 4
    functionsReached:
    - S2ShapeIndexCell*::num_clipped
    - S2ShapeIndexCell*::clipped
    linkageType: ''
    returnType: int
    signature: int CountEdges(const S2ShapeIndexCell* cell)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexCell*::num_clipped
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1031,1
    - Dst: S2ShapeIndexCell*::clipped
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1032,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1034,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1036,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1037,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::MaybeAddResult
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1038,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' entry'
    argTypes:
    - QueueEntry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1042
    functionName: S2ClosestEdgeQueryBase<Distance>::ProcessEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 2
    functionsReached:
    - num_edges
    - shape_id
    - shape
    - edge
    - S2ShapeIndexCell*::num_clipped
    - S2ClosestEdgeQueryBase<Distance>::MaybeAddResult
    - S2ShapeIndexCell*::clipped
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQueryBase<Distance>::ProcessEdges(const QueueEntry&
      entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1049,1
    - Dst: S2CellId::contains
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1049,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1049,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1050,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1051,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1051,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1055
    functionName: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 3
    functionsReached:
    - S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
    - id
    - S2CellId::contains
    - cell
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue(\n    S2CellId
      id)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CountEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1069,1
    - Dst: S2ClosestEdgeQueryBase<Distance>::ProcessEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1073,1
    - Dst: QueueEntry
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1073,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1073,1
    - Dst: S2ShapeIndexCell*::clipped_shapes
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1081,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1082,1
    - Dst: UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1098,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1101,1
    - Dst: push
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1103,1
    - Dst: QueueEntry
      Src: /src/s2geometry/src/s2/s2closest_edge_query_base.h:1103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - id
    - index_cell
    argTypes:
    - S2CellId
    - S2ShapeIndexCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1062
    functionDepth: 3
    functionLinenumber: 1062
    functionLinenumberEnd: 1104
    functionName: S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    functionUses: 3
    functionsReached:
    - S2MinDistance::Zero
    - shape_id
    - CountEdges
    - QueueEntry
    - UpdateMinDistance
    - S2ClosestEdgeQueryBase<Distance>::ProcessEdges
    - options
    - S2ShapeIndexCell*::clipped_shapes
    - push
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue(\n    S2CellId
      id, const S2ShapeIndexCell* index_cell)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:49,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:52,1
    - Dst: S2ContainsPointQuery::options
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::get
    - S2ContainsPointQuery::options
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsPointQuery, Options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:56,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:58,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:59,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:59,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:59,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:60,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:60,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:60,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:61,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:61,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:61,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:62,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:62,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:62,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:63,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:63,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:63,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:64,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:64,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:64,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:65,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:65,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:65,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:66,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:66,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:66,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:67,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:67,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:67,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:68,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:68,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:68,1
    - Dst: S2ContainsPointQuery::Init
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:72,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:72,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:73,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:73,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:74,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:74,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:74,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:75,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:75,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:76,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:76,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - EXPECT_TRUE
    - MakePointOrDie
    - S2ContainsPointQuery::ShapeContains
    - S2ContainsPointQuery::Init
    - S2ContainsPointQuery::Contains
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsPointQuery, VertexModelOpen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:80,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:82,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:83,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:83,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:83,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:84,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:84,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:84,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:85,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:85,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:85,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:86,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:86,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:86,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:87,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:87,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:87,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:88,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:88,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:88,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:89,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:89,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:89,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:90,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:90,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:90,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:91,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:91,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:91,1
    - Dst: S2ContainsPointQuery::Init
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:95,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:95,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:96,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:96,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:96,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:97,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:97,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:97,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:98,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:98,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:99,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:99,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - EXPECT_TRUE
    - MakePointOrDie
    - S2ContainsPointQuery::ShapeContains
    - S2ContainsPointQuery::Init
    - S2ContainsPointQuery::Contains
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsPointQuery, VertexModelSemiOpen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:103,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:106,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:106,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:107,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:107,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:107,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:108,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:108,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:108,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:109,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:109,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:110,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:110,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:110,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:111,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:111,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:112,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:112,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:113,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:113,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:113,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:114,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:114,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:114,1
    - Dst: S2ContainsPointQuery::Init
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:118,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:118,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:119,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:119,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:119,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:120,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:120,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:120,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:121,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:121,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:121,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:122,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:122,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - EXPECT_TRUE
    - MakePointOrDie
    - S2ContainsPointQuery::ShapeContains
    - S2ContainsPointQuery::Init
    - S2ContainsPointQuery::Contains
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsPointQuery, VertexModelClosed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:126,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:127,1
    - Dst: S2ContainsPointQueryOptions::S2ContainsPointQueryOptions
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:130,1
    - Dst: S2ContainsPointQueryOptions::set_vertex_model
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:131,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:132,1
    - Dst: S2ContainsPointQuery::VisitContainingShapes
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:136,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S2ContainsPointQueryOptions::S2ContainsPointQueryOptions
    - S2ContainsPointQuery::VisitContainingShapes
    - S2LatLng::FromDegrees
    - S2ContainsPointQueryOptions::set_vertex_model
    - EXPECT_EQ
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsPointQuery, VisitContainingShapesCanStopEarly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:146,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:147,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:149,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:151,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:153,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:154,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:155,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:156,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:156,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:156,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:160,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:167,1
    - Dst: S2Loop*::Contains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:168,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:169,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:169,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:170,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:171,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:173,1
    - Dst: S2ContainsPointQuery::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:177,1
    - Dst: S2ContainsPointQuery::GetContainingShapes
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:178,1
    - Dst: S2ContainsPointQuery::GetContainingShapeIds
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 180
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ContainsPointQuery::GetContainingShapeIds
    - make_unique<S2Loop::OwningShape>
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    - vector::push_back
    - EXPECT_TRUE
    - std::move
    - S2ContainsPointQuery::GetContainingShapes
    - S2Testing::KmToAngle
    - S2ContainsPointQuery::ShapeContains
    - S2Testing::MakeTaggedSeedSeq
    - S2Loop::MakeRegularLoop
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - down_cast
    - s2random::SamplePoint
    - S2Loop*::Contains
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsPointQuery, GetContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:188,1
    - Dst: S2ContainsPointQuery::VisitIncidentEdges
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:189,1
    - Dst: EdgeIdVector::push_back
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:190,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:190,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' expected'
    - ' index'
    - ' p'
    argTypes:
    - EdgeIdVector
    - MutableS2ShapeIndex
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: ExpectIncidentEdgeIds
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query_test.cc
    functionUses: 0
    functionsReached:
    - EdgeIdVector::push_back
    - EXPECT_TRUE
    - id
    - EXPECT_EQ
    - S2ContainsPointQuery::VisitIncidentEdges
    linkageType: ''
    returnType: void
    signature: "void ExpectIncidentEdgeIds(const EdgeIdVector& expected,\n                           const
      MutableS2ShapeIndex& index, const S2Point& p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:197,1
    - Dst: ExpectIncidentEdgeIds
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:198,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:198,1
    - Dst: ExpectIncidentEdgeIds
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:199,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:199,1
    - Dst: ExpectIncidentEdgeIds
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:200,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:201,1
    - Dst: ExpectIncidentEdgeIds
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:202,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:202,1
    - Dst: ExpectIncidentEdgeIds
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:203,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_point_query_test.cc:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectIncidentEdgeIds
    - MakePointOrDie
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsPointQuery, VisitIncidentEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionIntersection::Init
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:34,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regions
    argTypes:
    - vector<unique_ptr<S2Region>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: S2RegionIntersection::S2RegionIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S2RegionIntersection::Init
    linkageType: ''
    returnType: void
    signature: "void S2RegionIntersection::S2RegionIntersection(\n    vector<unique_ptr<S2Region>>
      regions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:38,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:38,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regions
    argTypes:
    - vector<unique_ptr<S2Region>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: S2RegionIntersection::Init
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 1
    functionsReached:
    - std::move
    - empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2RegionIntersection::Init(vector<unique_ptr<S2Region>> regions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionIntersection::num_regions
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:43,1
    - Dst: S2RegionIntersection::num_regions
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:44,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:45,1
    - Dst: S2RegionIntersection::region
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2RegionIntersection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: S2RegionIntersection::S2RegionIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - S2RegionIntersection::num_regions
    - S2RegionIntersection::region
    - reset
    linkageType: ''
    returnType: void
    signature: void S2RegionIntersection::S2RegionIntersection(const S2RegionIntersection&
      src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:52,1
    - Dst: num_regions
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:52,1
    - Dst: num_regions
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:53,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:54,1
    - Dst: region
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2RegionIntersection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: "& S2RegionIntersection::operator=(\n    const S2RegionIntersection&
      src)"
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - resize
    - num_regions
    - reset
    - region
    linkageType: ''
    returnType: S2RegionIntersection
    signature: "S2RegionIntersection & S2RegionIntersection::operator=(\n    const
      S2RegionIntersection& src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2RegionIntersection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: S2RegionIntersection::S2RegionIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void S2RegionIntersection::S2RegionIntersection(S2RegionIntersection&&
      src) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2RegionIntersection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: "& S2RegionIntersection::operator=(\n    S2RegionIntersection&&
      src) noexcept"
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: S2RegionIntersection
    signature: "S2RegionIntersection & S2RegionIntersection::operator=(\n    S2RegionIntersection&&
      src) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::swap
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: S2RegionIntersection::Release
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - vector::swap
    linkageType: ''
    returnType: vector<unique_ptr<S2Region>>
    signature: vector<unique_ptr<S2Region>> S2RegionIntersection::Release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionIntersection::S2RegionIntersection
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: S2RegionIntersection::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - S2RegionIntersection::S2RegionIntersection
    linkageType: ''
    returnType: S2RegionIntersection
    signature: S2RegionIntersection * S2RegionIntersection::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionIntersection::GetRectBound
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: S2RegionIntersection::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - S2RegionIntersection::GetRectBound
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2RegionIntersection::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:85,1
    - Dst: S2RegionIntersection::num_regions
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:86,1
    - Dst: S2LatLngRect::Intersection
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:87,1
    - Dst: S2RegionIntersection::region
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: S2RegionIntersection::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 1
    functionsReached:
    - S2RegionIntersection::num_regions
    - S2RegionIntersection::region
    - S2LatLngRect::Full
    - S2LatLngRect::Intersection
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2RegionIntersection::GetRectBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionIntersection::GetCapBound
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: S2RegionIntersection::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - S2RegionIntersection::GetCapBound
    linkageType: ''
    returnType: void
    signature: void S2RegionIntersection::GetCellUnionBound(vector<S2CellId>* cell_ids)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionIntersection::num_regions
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:97,1
    - Dst: S2RegionIntersection::region
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: S2RegionIntersection::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - S2RegionIntersection::num_regions
    - S2RegionIntersection::region
    linkageType: ''
    returnType: bool
    signature: bool S2RegionIntersection::Contains(const S2Cell& cell) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionIntersection::num_regions
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:104,1
    - Dst: S2RegionIntersection::region
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: S2RegionIntersection::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - S2RegionIntersection::num_regions
    - S2RegionIntersection::region
    linkageType: ''
    returnType: bool
    signature: bool S2RegionIntersection::Contains(const S2Point& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionIntersection::num_regions
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:111,1
    - Dst: S2RegionIntersection::region
      Src: /src/s2geometry/src/s2/s2region_intersection.cc:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: S2RegionIntersection::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.cc
    functionUses: 0
    functionsReached:
    - S2RegionIntersection::num_regions
    - S2RegionIntersection::region
    linkageType: ''
    returnType: bool
    signature: bool S2RegionIntersection::MayIntersect(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: ~S2Coder()
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2Coder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2coder.h:63,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2coder.h:64,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2coder.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' decoder'
    - ' v'
    argTypes:
    - Decoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: s2coding::S2Coder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached:
    - Init
    - ToStatus
    - S2Error::S2Error
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Decode(Decoder& decoder, T& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& operator=(const S2Coder&)'
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Coder
    signature: S2Coder & operator=(const S2Coder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& operator=(S2Coder&&)'
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Coder
    signature: S2Coder & operator=(S2Coder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::S2BasicCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: s2coding::S2BasicCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 1
    functionsReached:
    - s2coding::S2BasicCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2coder.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: s2coding::S2BasicCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: s2coding::S2HintCoder::S2HintCoder
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2HintCoder(CodingHint hint = CodingHint::FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::S2HintCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: s2coding::S2HintCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 1
    functionsReached:
    - s2coding::S2HintCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2coder.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: s2coding::S2HintCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: s2coding::internal::S2LegacyCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 1
    functionsReached:
    - s2coding::internal::S2LegacyCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyCoder::Decode
      Src: /src/s2geometry/src/s2/s2coder.h:124,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2coder.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: s2coding::internal::S2LegacyCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 1
    functionsReached:
    - S2Error::DataLoss
    - s2coding::internal::S2LegacyCoder::Decode
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: s2coding::internal::S2LegacyHintCoder::S2LegacyHintCoder
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LegacyHintCoder(CodingHint hint = CodingHint::FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyHintCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: s2coding::internal::S2LegacyHintCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 1
    functionsReached:
    - s2coding::internal::S2LegacyHintCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyHintCoder::Decode
      Src: /src/s2geometry/src/s2/s2coder.h:145,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2coder.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: s2coding::internal::S2LegacyHintCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 1
    functionsReached:
    - S2Error::DataLoss
    - s2coding::internal::S2LegacyHintCoder::Decode
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: s2coding::internal::S2LegacyCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 2
    functionsReached:
    - s2coding::internal::S2LegacyCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyCoder::Decode
      Src: /src/s2geometry/src/s2/s2coder.h:124,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2coder.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: s2coding::internal::S2LegacyCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 2
    functionsReached:
    - S2Error::DataLoss
    - s2coding::internal::S2LegacyCoder::Decode
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: s2coding::internal::S2LegacyHintCoder::S2LegacyHintCoder
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LegacyHintCoder(CodingHint hint = CodingHint::FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyHintCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: s2coding::internal::S2LegacyHintCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 2
    functionsReached:
    - s2coding::internal::S2LegacyHintCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyHintCoder::Decode
      Src: /src/s2geometry/src/s2/s2coder.h:145,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2coder.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: s2coding::internal::S2LegacyHintCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 2
    functionsReached:
    - S2Error::DataLoss
    - s2coding::internal::S2LegacyHintCoder::Decode
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: ~S2Coder()
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2Coder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2coder.h:63,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2coder.h:64,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2coder.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' decoder'
    - ' v'
    argTypes:
    - Decoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: s2coding::S2Coder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached:
    - Init
    - ToStatus
    - S2Error::S2Error
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Decode(Decoder& decoder, T& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& operator=(const S2Coder&)'
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Coder
    signature: S2Coder & operator=(const S2Coder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& operator=(S2Coder&&)'
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Coder
    signature: S2Coder & operator=(S2Coder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::S2BasicCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: s2coding::S2BasicCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 2
    functionsReached:
    - s2coding::S2BasicCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2coder.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: s2coding::S2BasicCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: s2coding::S2HintCoder::S2HintCoder
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2HintCoder(CodingHint hint = CodingHint::FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::S2HintCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: s2coding::S2HintCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 2
    functionsReached:
    - s2coding::S2HintCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2coder.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: s2coding::S2HintCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: s2coding::internal::S2LegacyCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 3
    functionsReached:
    - s2coding::internal::S2LegacyCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyCoder::Decode
      Src: /src/s2geometry/src/s2/s2coder.h:124,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2coder.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: s2coding::internal::S2LegacyCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 3
    functionsReached:
    - S2Error::DataLoss
    - s2coding::internal::S2LegacyCoder::Decode
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: s2coding::internal::S2LegacyHintCoder::S2LegacyHintCoder
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LegacyHintCoder(CodingHint hint = CodingHint::FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyHintCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: s2coding::internal::S2LegacyHintCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 3
    functionsReached:
    - s2coding::internal::S2LegacyHintCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyHintCoder::Decode
      Src: /src/s2geometry/src/s2/s2coder.h:145,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2coder.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: s2coding::internal::S2LegacyHintCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 3
    functionsReached:
    - S2Error::DataLoss
    - s2coding::internal::S2LegacyHintCoder::Decode
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: s2coding::internal::S2LegacyCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 4
    functionsReached:
    - s2coding::internal::S2LegacyCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyCoder::Decode
      Src: /src/s2geometry/src/s2/s2coder.h:124,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2coder.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: s2coding::internal::S2LegacyCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 4
    functionsReached:
    - S2Error::DataLoss
    - s2coding::internal::S2LegacyCoder::Decode
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: s2coding::internal::S2LegacyHintCoder::S2LegacyHintCoder
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LegacyHintCoder(CodingHint hint = CodingHint::FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyHintCoder::Encode
      Src: /src/s2geometry/src/s2/s2coder.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' encoder'
    - ' v'
    argTypes:
    - Encoder
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: s2coding::internal::S2LegacyHintCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 4
    functionsReached:
    - s2coding::internal::S2LegacyHintCoder::Encode
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder& encoder, const T& v) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::internal::S2LegacyHintCoder::Decode
      Src: /src/s2geometry/src/s2/s2coder.h:145,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2coder.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' decoder'
    - ' v'
    - ' error'
    argTypes:
    - Decoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: s2coding::internal::S2LegacyHintCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2coder.h
    functionUses: 4
    functionsReached:
    - S2Error::DataLoss
    - s2coding::internal::S2LegacyHintCoder::Decode
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder& decoder, T& v, S2Error& error) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ref_input_edge_id
    - builder
    - expected_winding_delta
    argTypes:
    - InputEdgeId
    - S2Builder*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: WindingNumberComparingLayer::WindingNumberComparingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void WindingNumberComparingLayer(InputEdgeId ref_input_edge_id,\n
      \                                      const S2Builder* builder,\n                                       int
      expected_winding_delta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: WindingNumberComparingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:93,1
    - Dst: s2builderutil::FindFirstVertexId
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:94,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:95,1
    - Dst: s2builderutil::GetSnappedWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:96,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:98,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: WindingNumberComparingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - input_edge
    - s2builderutil::GetSnappedWindingDelta
    - ABSL_CHECK
    - EXPECT_EQ
    - ok
    - s2builderutil::FindFirstVertexId
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:118,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:119,1
    - Dst: make_unique<WindingNumberComparingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:119,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:121,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:122,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:124,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:124,1
    - Dst: S2Builder::input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:125,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:126,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:128,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - loops_str
    - forced_vertices_str
    - snap_radius_degrees
    - ref_input_edge_id
    - expected_winding_delta
    argTypes:
    - string_view
    - string_view
    - double
    - InputEdgeId
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: ExpectWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<WindingNumberComparingLayer>
    - S2Builder::input_edge
    - S2Builder::ForceVertex
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygonOrDie
    - S1Angle::Degrees
    - S2Builder::AddShape
    - s2textformat::ParsePointsOrDie
    - S2Builder::Build
    - S2Error::S2Error
    - S2Builder::StartLayer
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void ExpectWindingDelta(string_view loops_str, string_view forced_vertices_str,\n
      \                       double snap_radius_degrees,\n                        InputEdgeId
      ref_input_edge_id,\n                        int expected_winding_delta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, NoOtherEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, DegenerateInputLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, DuplicateDegenerateInputLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CollapsingShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CollapsingHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CollapsingDoubleShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopRefVertexStaysOutside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopRefVertexStaysInside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopRefVertexMovesInside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CrossingEdgeRefVertexStaysOutside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CrossingEdgeRefVertexMovesOutside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopDoubleHoleToSingleHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopDoubleHoleToSingleShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalEdgesCrossSnapToSameVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalEdgesCrossSnapToDifferentVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:255,1
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:259,1
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:263,1
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ReferencePointWindingNumbersChange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:284,1
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ReferenceLoopsTopologicallyConsistent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 302
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ComplexExample)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, EnsureZaZbNotInVoronoiRegion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, EnsureChainDiffLoopIsClosed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, VoronoiExclusionBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - bitgen
    - ref_input_edge_id
    - isolated_input_edge_id
    - builder
    - winding_tally
    argTypes:
    - absl::BitGenRef
    - InputEdgeId
    - InputEdgeId
    - S2Builder*
    - WindingTally*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: WindingNumberCheckingLayer::WindingNumberCheckingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void WindingNumberCheckingLayer(absl::BitGenRef bitgen,\n                             InputEdgeId
      ref_input_edge_id,\n                             InputEdgeId isolated_input_edge_id,\n
      \                            const S2Builder* builder,\n                             WindingTally*
      winding_tally)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:360,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:363,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 368
    functionName: WindingNumberCheckingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - absl::Bernoulli
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:383,1
    - Dst: s2builderutil::FindFirstVertexId
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:384,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:385,1
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:387,1
    - Dst: s2builderutil::FindFirstVertexId
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:388,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:389,1
    - Dst: Graph::VertexOutMap::degree
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:394,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:395,1
    - Dst: Graph::VertexOutMap::edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:395,1
    - Dst: S2Error::FailedPrecondition
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:396,1
    - Dst: num_input_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:408,1
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:409,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:410,1
    - Dst: S2CopyingEdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:413,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:414,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:415,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:416,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:417,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:417,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:418,1
    - Dst: s2builderutil::GetSnappedWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:423,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:425,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:425,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 428
    functionName: WindingNumberCheckingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::FailedPrecondition
    - input_edge_ids
    - num_edges
    - input_edge
    - s2builderutil::GetSnappedWindingDelta
    - ABSL_CHECK
    - S2CopyingEdgeCrosser::Init
    - vertex
    - S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
    - edge
    - Graph::VertexOutMap::edge_ids
    - num_input_edges
    - EXPECT_EQ
    - ok
    - s2builderutil::FindFirstVertexId
    - Graph::VertexOutMap::degree
    linkageType: ''
    returnType: void
    signature: "void WindingNumberCheckingLayer::Build(const Graph& g,\n                                       S2Error*
      absl_nonnull error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:437,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:438,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:440,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:440,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:443,1
    - Dst: S2Builder::SnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:444,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:447,1
    - Dst: make_unique<WindingNumberCheckingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:447,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:454,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:455,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:455,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:456,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:457,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:467,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:468,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:470,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:470,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:471,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:471,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:472,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:473,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:474,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:475,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:475,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:476,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:477,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:479,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:479,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:480,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:481,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:484,1
    - Dst: S2LaxLoopShape
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:484,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:485,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:487,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:488,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 496
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - S2::Ortho
    - s2random::Point
    - absl::Bernoulli
    - S2Builder::SnapFunction::kMaxSnapRadius
    - vector::size
    - S2Error::S2Error
    - S2Cap
    - S1Angle::Radians
    - S2Builder::StartLayer
    - vector::push_back
    - S2Builder::AddEdge
    - S2LaxLoopShape
    - absl::Uniform<size_t>
    - push_back
    - vector::empty
    - EXPECT_LE
    - make_unique<WindingNumberCheckingLayer>
    - S2Testing::MakeTaggedSeedSeq
    - StrCat
    - clear
    - SCOPED_TRACE
    - s2random::SamplePoint
    - Normalize
    - S2Builder::AddShape
    - S2Builder::Build
    - s2random::LogUniform
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, RandomLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ref_input_edge_id
    - builder
    - expected_winding_delta
    argTypes:
    - InputEdgeId
    - S2Builder*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: WindingNumberComparingLayer::WindingNumberComparingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void WindingNumberComparingLayer(InputEdgeId ref_input_edge_id,\n
      \                                      const S2Builder* builder,\n                                       int
      expected_winding_delta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: WindingNumberComparingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:93,1
    - Dst: s2builderutil::FindFirstVertexId
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:94,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:95,1
    - Dst: s2builderutil::GetSnappedWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:96,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:98,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: WindingNumberComparingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - input_edge
    - s2builderutil::GetSnappedWindingDelta
    - ABSL_CHECK
    - EXPECT_EQ
    - ok
    - s2builderutil::FindFirstVertexId
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:118,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:119,1
    - Dst: make_unique<WindingNumberComparingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:119,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:121,1
    - Dst: S2Builder::ForceVertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:122,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:124,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:124,1
    - Dst: S2Builder::input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:125,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:126,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:128,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - loops_str
    - forced_vertices_str
    - snap_radius_degrees
    - ref_input_edge_id
    - expected_winding_delta
    argTypes:
    - string_view
    - string_view
    - double
    - InputEdgeId
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: ExpectWindingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 21
    functionsReached:
    - make_unique<WindingNumberComparingLayer>
    - S2Builder::input_edge
    - S2Builder::ForceVertex
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygonOrDie
    - S1Angle::Degrees
    - S2Builder::AddShape
    - s2textformat::ParsePointsOrDie
    - S2Builder::Build
    - S2Error::S2Error
    - S2Builder::StartLayer
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void ExpectWindingDelta(string_view loops_str, string_view forced_vertices_str,\n
      \                       double snap_radius_degrees,\n                        InputEdgeId
      ref_input_edge_id,\n                        int expected_winding_delta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, NoOtherEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, DegenerateInputLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, DuplicateDegenerateInputLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CollapsingShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CollapsingHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CollapsingDoubleShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopRefVertexStaysOutside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopRefVertexStaysInside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopRefVertexMovesInside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CrossingEdgeRefVertexStaysOutside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, CrossingEdgeRefVertexMovesOutside)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopDoubleHoleToSingleHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalLoopDoubleHoleToSingleShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalEdgesCrossSnapToSameVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ExternalEdgesCrossSnapToDifferentVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:255,1
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:259,1
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:263,1
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ReferencePointWindingNumbersChange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:284,1
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ReferenceLoopsTopologicallyConsistent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 302
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, ComplexExample)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, EnsureZaZbNotInVoronoiRegion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, EnsureChainDiffLoopIsClosed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingDelta
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, VoronoiExclusionBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - bitgen
    - ref_input_edge_id
    - isolated_input_edge_id
    - builder
    - winding_tally
    argTypes:
    - absl::BitGenRef
    - InputEdgeId
    - InputEdgeId
    - S2Builder*
    - WindingTally*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: WindingNumberCheckingLayer::WindingNumberCheckingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void WindingNumberCheckingLayer(absl::BitGenRef bitgen,\n                             InputEdgeId
      ref_input_edge_id,\n                             InputEdgeId isolated_input_edge_id,\n
      \                            const S2Builder* builder,\n                             WindingTally*
      winding_tally)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:360,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:363,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 368
    functionName: WindingNumberCheckingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - absl::Bernoulli
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:383,1
    - Dst: s2builderutil::FindFirstVertexId
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:384,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:385,1
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:387,1
    - Dst: s2builderutil::FindFirstVertexId
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:388,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:389,1
    - Dst: Graph::VertexOutMap::degree
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:394,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:395,1
    - Dst: Graph::VertexOutMap::edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:395,1
    - Dst: S2Error::FailedPrecondition
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:396,1
    - Dst: num_input_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:408,1
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:409,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:410,1
    - Dst: S2CopyingEdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:413,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:414,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:415,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:416,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:417,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:417,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:418,1
    - Dst: s2builderutil::GetSnappedWindingDelta
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:423,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:425,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:425,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 428
    functionName: WindingNumberCheckingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::FailedPrecondition
    - input_edge_ids
    - num_edges
    - input_edge
    - s2builderutil::GetSnappedWindingDelta
    - ABSL_CHECK
    - S2CopyingEdgeCrosser::Init
    - vertex
    - S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
    - edge
    - Graph::VertexOutMap::edge_ids
    - num_input_edges
    - EXPECT_EQ
    - ok
    - s2builderutil::FindFirstVertexId
    - Graph::VertexOutMap::degree
    linkageType: ''
    returnType: void
    signature: "void WindingNumberCheckingLayer::Build(const Graph& g,\n                                       S2Error*
      absl_nonnull error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:437,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:438,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:440,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:440,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:443,1
    - Dst: S2Builder::SnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:444,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:447,1
    - Dst: make_unique<WindingNumberCheckingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:447,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:454,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:455,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:455,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:456,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:457,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:467,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:468,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:470,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:470,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:471,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:471,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:472,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:473,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:474,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:475,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:475,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:476,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:477,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:479,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:479,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:480,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:481,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:484,1
    - Dst: S2LaxLoopShape
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:484,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:485,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:487,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:488,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc:491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 496
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
    functionUses: 0
    functionsReached:
    - S2::Ortho
    - s2random::Point
    - absl::Bernoulli
    - S2Builder::SnapFunction::kMaxSnapRadius
    - vector::size
    - S2Error::S2Error
    - S2Cap
    - S1Angle::Radians
    - S2Builder::StartLayer
    - vector::push_back
    - S2Builder::AddEdge
    - S2LaxLoopShape
    - absl::Uniform<size_t>
    - push_back
    - vector::empty
    - EXPECT_LE
    - make_unique<WindingNumberCheckingLayer>
    - S2Testing::MakeTaggedSeedSeq
    - StrCat
    - clear
    - SCOPED_TRACE
    - s2random::SamplePoint
    - Normalize
    - S2Builder::AddShape
    - S2Builder::Build
    - s2random::LogUniform
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(GetSnappedWindingDelta, RandomLoops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:60,1
    - Dst: s2coding::EncodeS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:63,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:63,1
    - Dst: make_unique<double[]>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:69,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:69,1
    - Dst: std::memcpy
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:70,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:70,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:70,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:70,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:74,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:76,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:77,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:77,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:82,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:82,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:86,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:86,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:87,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:87,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:88,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:88,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:89,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:89,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:89,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - ' expected'
    - hint
    - expected_bytes
    argTypes:
    - vector<S2Point>
    - CodingHint
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 93
    functionName: s2coding::TestEncodedS2PointVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - auto::get
    - std::memcpy
    - EXPECT_TRUE
    - make_unique<double[]>
    - Encoder::length
    - Encoder::base
    - EncodedS2PointVector::Decode
    - EXPECT_EQ
    - S2Error::ok
    - s2coding::EncodeS2PointVector
    - EncodedS2PointVector::Init
    - Encoder::Encoder
    - S2Error::S2Error
    linkageType: ''
    returnType: size_t
    signature: "size_t TestEncodedS2PointVector(const vector<S2Point>& expected,\n
      \                               CodingHint hint, int64_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::DeinterleaveUint32
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:100,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:105,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:105,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:105,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:106,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - level
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: s2coding::EncodedValueToPoint
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2::SiTitoST
    - util_bits::DeinterleaveUint32
    - S2::STtoUV
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point EncodedValueToPoint(uint64_t value, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:110,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2PointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:117,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:117,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:121,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2coding::TestEncodedS2PointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, OnePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:134,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2coding::TestEncodedS2PointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, OnePointWithExceptionsNoOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:150,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:151,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:153,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2coding::TestEncodedS2PointVector
    - S2CellId
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, OnePointWithExceptionsWithOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:165,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:166,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2coding::TestEncodedS2PointVector
    - MakeCellIdOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, CellIdWithException)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:182,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:183,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:184,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:185,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:186,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 189
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2PointVector
    - MakeCellIdOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, PointsAtMultipleLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:209,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:210,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:210,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:211,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:211,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:212,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:212,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:213,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:213,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 215
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, NoOverlapOrExtraDeltaBitsNeeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:231,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:232,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:232,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:233,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:233,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:234,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:234,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:235,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:235,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 237
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, OverlapNeeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:252,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:253,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:253,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:254,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:254,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:255,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:255,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:256,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:256,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 258
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, ExtraDeltaBitsNeeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:276,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:277,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:277,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:278,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:278,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:279,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:279,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:280,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:280,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 282
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, ExtraDeltaBitsAndOverlapNeeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:291,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:292,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:292,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:293,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:293,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - S2CellId::Begin
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, SixtyFourBitOffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:301,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:302,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:302,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:303,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:303,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:307,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 311
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, AllExceptionsBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:318,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:318,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:319,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 322
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - SCOPED_TRACE
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - S2CellId::Begin
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, FirstAtAllLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:330,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:330,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:334,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - SCOPED_TRACE
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, LastAtAllLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:345,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:345,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:346,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:356,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 359
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToPoint
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - SCOPED_TRACE
    - S2CellId::FromFaceIJ
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, MaxFaceSiTiAtAllLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:364,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:364,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:365,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:371,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:371,1
    - Dst: S2CellId::prev
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 374
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToPoint
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - SCOPED_TRACE
    - S2CellId::prev
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, LastTwoPointsAtAllLevels)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:381,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:381,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:382,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:390,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToPoint
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - SCOPED_TRACE
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, ManyDuplicatePointsAtAllLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:396,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:397,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:403,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:404,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:405,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:405,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:407,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:408,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:408,1
    - Dst: auto::vertex
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:408,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:411,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:412,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:413,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:416,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 421
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - auto::vertex
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - S2CellId
    - s2random::Frame
    - s2coding::TestEncodedS2PointVector
    - Encoder::length
    - S2Polygon::Encode
    - S2Testing::KmToAngle
    - absl::PrintF
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - Encoder::Encoder
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, SnappedFractalLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:427,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:428,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:428,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:429,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:429,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:430,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:430,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:431,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:431,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:434,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:437,1
    - Dst: s2coding::EncodeS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:441,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:442,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:442,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:443,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:443,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:445,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:445,1
    - Dst: EncodedS2PointVector::Encode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:449,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:450,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:450,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:451,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:451,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:453,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - hint
    argTypes:
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 454
    functionName: s2coding::TestRoundtripEncoding
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - ASSERT_EQ
    - EncodedS2PointVector::Encode
    - Encoder::length
    - Encoder::base
    - EncodedS2PointVector::Decode
    - ASSERT_TRUE
    - EXPECT_EQ
    - s2coding::EncodedValueToPoint
    - s2coding::EncodeS2PointVector
    - EncodedS2PointVector::Init
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TestRoundtripEncoding(s2coding::CodingHint hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestRoundtripEncoding
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestRoundtripEncoding
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, RoundtripEncodingFast)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestRoundtripEncoding
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestRoundtripEncoding
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, RoundtripEncodingCompact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:465,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:466,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:466,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:468,1
    - Dst: s2coding::EncodeS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - num_points
    - hint
    - encoder
    argTypes:
    - int
    - CodingHint
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 471
    functionName: s2coding::EncodePoints
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - S2Testing::KmToAngle
    - MakePointOrDie
    - s2coding::EncodeS2PointVector
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void EncodePoints(int num_points, CodingHint hint, Encoder* encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:476,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:477,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:478,1
    - Dst: s2coding::EncodePoints
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:479,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:481,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:481,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:482,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:482,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:485,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:490,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:491,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 492
    functionName: s2coding::BM_DecodePointSequentially
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - KeepRunningBatch
    - s2coding::EncodePoints
    - range
    - ABSL_CHECK
    - Encoder::length
    - SetItemsProcessed
    - iterations
    - Encoder::base
    - benchmark::DoNotOptimize
    - EncodedS2PointVector::Init
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_DecodePointSequentially(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:504,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:505,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:506,1
    - Dst: s2coding::EncodePoints
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:507,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:509,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:509,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:510,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:510,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:513,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:519,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:520,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 521
    functionName: s2coding::BM_GetEdgeSequentially
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - KeepRunningBatch
    - s2coding::EncodePoints
    - range
    - ABSL_CHECK
    - Encoder::length
    - SetItemsProcessed
    - iterations
    - Encoder::base
    - benchmark::DoNotOptimize
    - EncodedS2PointVector::Init
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_GetEdgeSequentially(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:529,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:529,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:530,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:531,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 534
    functionName: s2coding::DecodePointVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - std::string::size
    - EncodedS2PointVector::Decode
    - std::string::data
    - EncodedS2PointVector::Init
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void DecodePointVector(std::string data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::DecodePointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 538
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::DecodePointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, DecodeNeverCrashesRegression1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::DecodePointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::DecodePointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, DecodeNeverCrashesRegression2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::DecodePointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::DecodePointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, DecodeNeverCrashesRegression3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::DecodePointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::DecodePointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, DecodeNeverCrashesRegression4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:60,1
    - Dst: s2coding::EncodeS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:63,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:63,1
    - Dst: make_unique<double[]>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:69,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:69,1
    - Dst: std::memcpy
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:70,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:70,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:70,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:70,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:74,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:76,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:77,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:77,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:82,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:82,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:86,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:86,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:87,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:87,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:88,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:88,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:89,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:89,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:89,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - ' expected'
    - hint
    - expected_bytes
    argTypes:
    - vector<S2Point>
    - CodingHint
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 93
    functionName: s2coding::TestEncodedS2PointVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 18
    functionsReached:
    - S2Error::message
    - auto::get
    - std::memcpy
    - EXPECT_TRUE
    - make_unique<double[]>
    - Encoder::length
    - Encoder::base
    - EncodedS2PointVector::Decode
    - EXPECT_EQ
    - S2Error::ok
    - s2coding::EncodeS2PointVector
    - EncodedS2PointVector::Init
    - Encoder::Encoder
    - S2Error::S2Error
    linkageType: ''
    returnType: size_t
    signature: "size_t TestEncodedS2PointVector(const vector<S2Point>& expected,\n
      \                               CodingHint hint, int64_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::DeinterleaveUint32
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:100,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:105,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:105,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:105,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:106,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - level
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: s2coding::EncodedValueToPoint
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 6
    functionsReached:
    - S2::SiTitoST
    - util_bits::DeinterleaveUint32
    - S2::STtoUV
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point EncodedValueToPoint(uint64_t value, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:110,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2PointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:117,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:117,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:121,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2coding::TestEncodedS2PointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, OnePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:134,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2coding::TestEncodedS2PointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, OnePointWithExceptionsNoOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:150,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:151,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:153,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2coding::TestEncodedS2PointVector
    - S2CellId
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, OnePointWithExceptionsWithOverlap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:165,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:166,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2coding::TestEncodedS2PointVector
    - MakeCellIdOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, CellIdWithException)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:182,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:183,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:184,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:185,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:186,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 189
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2PointVector
    - MakeCellIdOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, PointsAtMultipleLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:209,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:210,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:210,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:211,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:211,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:212,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:212,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:213,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:213,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 215
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, NoOverlapOrExtraDeltaBitsNeeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:231,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:232,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:232,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:233,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:233,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:234,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:234,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:235,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:235,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 237
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, OverlapNeeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:252,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:253,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:253,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:254,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:254,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:255,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:255,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:256,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:256,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 258
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, ExtraDeltaBitsNeeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:276,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:277,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:277,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:278,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:278,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:279,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:279,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:280,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:280,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 282
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, ExtraDeltaBitsAndOverlapNeeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:291,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:292,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:292,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:293,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:293,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - S2CellId::Begin
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, SixtyFourBitOffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:301,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:302,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:302,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:303,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:303,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:307,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 311
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2PointVector
    - s2coding::EncodedValueToPoint
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, AllExceptionsBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:318,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:318,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:319,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 322
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - SCOPED_TRACE
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - S2CellId::Begin
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, FirstAtAllLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:330,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:330,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:334,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - SCOPED_TRACE
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, LastAtAllLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:345,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:345,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:346,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:356,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 359
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToPoint
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - SCOPED_TRACE
    - S2CellId::FromFaceIJ
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, MaxFaceSiTiAtAllLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:364,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:364,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:365,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:371,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:371,1
    - Dst: S2CellId::prev
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 374
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToPoint
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - SCOPED_TRACE
    - S2CellId::prev
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, LastTwoPointsAtAllLevels)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:381,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:381,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:382,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:390,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToPoint
    - absl::StrCat
    - s2coding::TestEncodedS2PointVector
    - SCOPED_TRACE
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, ManyDuplicatePointsAtAllLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:396,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:397,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:403,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:404,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:405,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:405,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:407,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:408,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:408,1
    - Dst: auto::vertex
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:408,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:411,1
    - Dst: S2Polygon::Encode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:412,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:413,1
    - Dst: s2coding::TestEncodedS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:416,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 421
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - auto::vertex
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - S2CellId
    - s2random::Frame
    - s2coding::TestEncodedS2PointVector
    - Encoder::length
    - S2Polygon::Encode
    - S2Testing::KmToAngle
    - absl::PrintF
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - Encoder::Encoder
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, SnappedFractalLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:427,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:428,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:428,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:429,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:429,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:430,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:430,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:431,1
    - Dst: s2coding::EncodedValueToPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:431,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:434,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:437,1
    - Dst: s2coding::EncodeS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:441,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:442,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:442,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:443,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:443,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:445,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:445,1
    - Dst: EncodedS2PointVector::Encode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:449,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:450,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:450,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:451,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:451,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:453,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - hint
    argTypes:
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 454
    functionName: s2coding::TestRoundtripEncoding
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 2
    functionsReached:
    - vector::push_back
    - ASSERT_EQ
    - EncodedS2PointVector::Encode
    - Encoder::length
    - Encoder::base
    - EncodedS2PointVector::Decode
    - ASSERT_TRUE
    - EXPECT_EQ
    - s2coding::EncodedValueToPoint
    - s2coding::EncodeS2PointVector
    - EncodedS2PointVector::Init
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TestRoundtripEncoding(s2coding::CodingHint hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestRoundtripEncoding
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestRoundtripEncoding
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, RoundtripEncodingFast)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestRoundtripEncoding
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestRoundtripEncoding
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, RoundtripEncodingCompact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:465,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:466,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:466,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:468,1
    - Dst: s2coding::EncodeS2PointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - num_points
    - hint
    - encoder
    argTypes:
    - int
    - CodingHint
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 471
    functionName: s2coding::EncodePoints
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 2
    functionsReached:
    - S2CellId
    - S2Testing::KmToAngle
    - MakePointOrDie
    - s2coding::EncodeS2PointVector
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void EncodePoints(int num_points, CodingHint hint, Encoder* encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:476,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:477,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:478,1
    - Dst: s2coding::EncodePoints
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:479,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:481,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:481,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:482,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:482,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:485,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:490,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:491,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 492
    functionName: s2coding::BM_DecodePointSequentially
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - KeepRunningBatch
    - s2coding::EncodePoints
    - range
    - ABSL_CHECK
    - Encoder::length
    - SetItemsProcessed
    - iterations
    - Encoder::base
    - benchmark::DoNotOptimize
    - EncodedS2PointVector::Init
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_DecodePointSequentially(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:504,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:505,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:506,1
    - Dst: s2coding::EncodePoints
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:507,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:509,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:509,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:510,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:510,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:513,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:519,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:520,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 521
    functionName: s2coding::BM_GetEdgeSequentially
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - KeepRunningBatch
    - s2coding::EncodePoints
    - range
    - ABSL_CHECK
    - Encoder::length
    - SetItemsProcessed
    - iterations
    - Encoder::base
    - benchmark::DoNotOptimize
    - EncodedS2PointVector::Init
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_GetEdgeSequentially(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:529,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:529,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:530,1
    - Dst: EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:531,1
    - Dst: EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 534
    functionName: s2coding::DecodePointVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 4
    functionsReached:
    - std::string::size
    - EncodedS2PointVector::Decode
    - std::string::data
    - EncodedS2PointVector::Init
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void DecodePointVector(std::string data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::DecodePointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 538
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::DecodePointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, DecodeNeverCrashesRegression1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::DecodePointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::DecodePointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, DecodeNeverCrashesRegression2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::DecodePointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::DecodePointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, DecodeNeverCrashesRegression3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::DecodePointVector
      Src: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::DecodePointVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2PointVectorTest, DecodeNeverCrashesRegression4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2Point>*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:59,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:64,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:65,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:65,1
    - Dst: vector<Edge>*::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:65,1
    - Dst: vector<Edge>*::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:65,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:66,1
    - Dst: vector<Edge>*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:66,1
    - Dst: vector<InputEdgeIdSetId>*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - ' options'
    - vertices
    - edges
    - input_edge_id_set_ids
    - input_edge_id_set_lexicon
    - label_set_ids
    - label_set_lexicon
    - is_full_polygon_predicate
    argTypes:
    - GraphOptions
    - vector<S2Point>*
    - vector<Edge>*
    - vector<InputEdgeIdSetId>*
    - IdSetLexicon*
    - vector<LabelSetId>*
    - IdSetLexicon*
    - IsFullPolygonPredicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: Graph::Graph
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 2
    functionsReached:
    - vector<Edge>*::size
    - ABSL_DCHECK_EQ
    - std::move
    - vector<Edge>*::end
    - std::is_sorted
    - vector<S2Point>*::size
    - vector<InputEdgeIdSetId>*::size
    - vector<Edge>*::begin
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void Graph::Graph(const GraphOptions& options,\n             const
      vector<S2Point>* vertices,\n             const vector<Edge>* edges,\n             const
      vector<InputEdgeIdSetId>* input_edge_id_set_ids,\n             const IdSetLexicon*
      input_edge_id_set_lexicon,\n             const vector<LabelSetId>* label_set_ids,\n
      \            const IdSetLexicon* label_set_lexicon,\n             IsFullPolygonPredicate
      is_full_polygon_predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::iota
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:71,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:71,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:71,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:72,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:72,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:72,1
    - Dst: StableLessThan
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:74,1
    - Dst: reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:74,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:74,1
    - Dst: reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:74,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: Graph::GetInEdgeIds
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - reverse
    - vector::end
    - StableLessThan
    - edge
    - std::iota
    - std::sort
    - vector::begin
    linkageType: ''
    returnType: vector<Graph::EdgeId>
    signature: vector<Graph::EdgeId> Graph::GetInEdgeIds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Graph::GetInEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:80,1
    - Dst: Graph::MakeSiblingMap
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:81,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:85,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: Graph::GetSiblingMap
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - Graph::MakeSiblingMap
    - Graph::GetInEdgeIds
    - ABSL_DCHECK
    linkageType: ''
    returnType: vector<Graph::EdgeId>
    signature: vector<Graph::EdgeId> Graph::GetSiblingMap() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:92,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:92,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:93,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:94,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:95,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:96,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:96,1
    - Dst: reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:96,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:96,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:98,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:99,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:101,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:102,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:103,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:104,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:104,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:105,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:105,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:106,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:106,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:107,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - in_edge_ids
    argTypes:
    - vector<Graph::EdgeId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 114
    functionName: Graph::MakeSiblingMap
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 1
    functionsReached:
    - reverse
    - edge_type
    - ABSL_DCHECK_EQ
    - num_edges
    - edge
    - degenerate_edges
    - ABSL_DCHECK_LT
    - sibling_pairs
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void Graph::MakeSiblingMap(vector<Graph::EdgeId>* in_edge_ids) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:117,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:118,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:118,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:120,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:121,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:121,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: Graph::VertexOutMap::Init(const Graph& g)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - reserve
    - num_edges
    - edges
    - push_back
    - edge
    linkageType: ''
    returnType: void
    signature: void Graph::VertexOutMap::Init(const Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:127,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:128,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:128,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:130,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:131,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:131,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: Graph::VertexInMap::Init(const Graph& g)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - reserve
    - num_edges
    - GetInEdgeIds
    - push_back
    - edge
    linkageType: ''
    returnType: void
    signature: void Graph::VertexInMap::Init(const Graph& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSiblingMap
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - edge_type
    argTypes:
    - Graph
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: Graph::LabelFetcher::Init(const Graph& g, S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - GetSiblingMap
    linkageType: ''
    returnType: void
    signature: void Graph::LabelFetcher::Init(const Graph& g, S2Builder::EdgeType
      edge_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2Builder::Label>*::clear
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:143,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:144,1
    - Dst: labels
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:145,1
    - Dst: vector<S2Builder::Label>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:146,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:150,1
    - Dst: labels
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:151,1
    - Dst: vector<S2Builder::Label>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:152,1
    - Dst: vector<S2Builder::Label>*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:156,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:157,1
    - Dst: vector<S2Builder::Label>*::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:157,1
    - Dst: vector<S2Builder::Label>*::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:157,1
    - Dst: vector<S2Builder::Label>*::erase
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:158,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:158,1
    - Dst: vector<S2Builder::Label>*::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:158,1
    - Dst: vector<S2Builder::Label>*::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:158,1
    - Dst: vector<S2Builder::Label>*::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - e
    - labels
    argTypes:
    - EdgeId
    - vector<S2Builder::Label>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 160
    functionName: Graph::LabelFetcher::Fetch(EdgeId e, vector<S2Builder::Label>* labels)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector<S2Builder::Label>*::end
    - vector<S2Builder::Label>*::push_back
    - input_edge_ids
    - vector<S2Builder::Label>*::begin
    - labels
    - vector<S2Builder::Label>*::erase
    - vector<S2Builder::Label>*::clear
    - std::sort
    - vector<S2Builder::Label>*::size
    - std::unique
    linkageType: ''
    returnType: void
    signature: void Graph::LabelFetcher::Fetch(EdgeId e, vector<S2Builder::Label>*
      labels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:163,1
    - Dst: IdSetLexicon::IdSet::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:164,1
    - Dst: IdSetLexicon::IdSet::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: Graph::min_input_edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - IdSetLexicon::IdSet::size
    - IdSetLexicon::IdSet::begin
    - input_edge_ids
    linkageType: ''
    returnType: S2Builder::InputEdgeId
    signature: S2Builder::InputEdgeId Graph::min_input_edge_id(EdgeId e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:169,1
    - Dst: Graph::min_input_edge_id
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: Graph::GetMinInputEdgeIds
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - Graph::min_input_edge_id
    linkageType: ''
    returnType: vector<S2Builder::InputEdgeId>
    signature: vector<S2Builder::InputEdgeId> Graph::GetMinInputEdgeIds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const InputEdgeId>::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:177,1
    - Dst: std::iota
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:178,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:178,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:178,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:179,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:179,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:179,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:181,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - input_ids
    argTypes:
    - absl::Span<const InputEdgeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: Graph::GetInputEdgeOrder
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector::end
    - absl::Span<const InputEdgeId>::size
    - std::iota
    - make_pair
    - std::sort
    - vector::begin
    linkageType: ''
    returnType: vector<Graph::EdgeId>
    signature: "vector<Graph::EdgeId> Graph::GetInputEdgeOrder(\n    absl::Span<const
      InputEdgeId> input_ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - _incoming
    - _index
    - _endpoint
    - _rank
    argTypes:
    - bool
    - Graph::EdgeId
    - Graph::VertexId
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: VertexEdge
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VertexEdge(bool _incoming, Graph::EdgeId _index, Graph::VertexId
      _endpoint,\n             int32_t _rank)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<VertexEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:223,1
    - Dst: VertexEdge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:223,1
    - Dst: vector<VertexEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:227,1
    - Dst: VertexEdge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:227,1
    - Dst: vector<VertexEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:228,1
    - Dst: VertexEdge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:228,1
    - Dst: vector<VertexEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:232,1
    - Dst: VertexEdge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - out_begin
    - out_end
    - in_begin
    - in_end
    - v1
    - v0_edges
    argTypes:
    - Graph::EdgeId
    - Graph::EdgeId
    - Graph::EdgeId
    - Graph::EdgeId
    - Graph::VertexId
    - vector<VertexEdge>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: AddVertexEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - VertexEdge
    - vector<VertexEdge>*::push_back
    linkageType: ''
    returnType: void
    signature: "void AddVertexEdges(Graph::EdgeId out_begin, Graph::EdgeId out_end,\n
      \                          Graph::EdgeId in_begin, Graph::EdgeId in_end,\n                           Graph::VertexId
      v1, vector<VertexEdge>* v0_edges)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: vector<EdgeId>*::assign
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:239,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:239,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:240,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:251,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:252,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:254,1
    - Dst: reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:254,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:258,1
    - Dst: reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:258,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:263,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:263,1
    - Dst: reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:265,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:266,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:266,1
    - Dst: AddVertexEdges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:269,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:277,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:280,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:281,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:281,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:281,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:287,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:287,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:287,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:288,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:288,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:296,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:297,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:298,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:299,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:301,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:305,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:305,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:305,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:306,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:306,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:306,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:306,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:307,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:307,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:311,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:311,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:312,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:315,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:316,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:317,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:319,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - in_edge_ids
    - left_turn_map
    - absl_nonnull
    argTypes:
    - absl::Span<const EdgeId>
    - vector<EdgeId>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 320
    functionName: Graph::GetLeftTurnMap
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector<EdgeId>*::assign
    - num_edges
    - end
    - s2pred::OrderedCCW
    - vector::end
    - vector::back
    - begin
    - ok
    - pop_back
    - min
    - empty
    - vector::begin
    - AddVertexEdges
    - reverse
    - vector::push_back
    - vector::front
    - std::reverse
    - S2Error
    - push_back
    - back
    - vector::empty
    - vector::clear
    - vector::pop_back
    - clear
    - vertex
    - edge
    - std::sort
    linkageType: ''
    returnType: bool
    signature: "bool Graph::GetLeftTurnMap(absl::Span<const EdgeId> in_edge_ids,\n
      \                          vector<EdgeId>* left_turn_map,\n                           S2Error*
      absl_nonnull error) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vector<EdgeId>*::empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:324,1
    - Dst: vector<EdgeId>*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:343,1
    - Dst: vector<EdgeId>*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:352,1
    - Dst: std::rotate
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:353,1
    - Dst: vector<EdgeId>*::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:353,1
    - Dst: vector<EdgeId>*::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:353,1
    - Dst: vector<EdgeId>*::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - min_input_ids
    - loop
    argTypes:
    - absl::Span<const InputEdgeId>
    - vector<EdgeId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 354
    functionName: Graph::CanonicalizeLoopOrder
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - std::rotate
    - vector<EdgeId>*::begin
    - vector<EdgeId>*::empty
    - vector<EdgeId>*::end
    - vector<EdgeId>*::size
    linkageType: ''
    returnType: void
    signature: "void Graph::CanonicalizeLoopOrder(absl::Span<const InputEdgeId> min_input_ids,\n
      \                                 vector<EdgeId>* loop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:358,1
    - Dst: vector<vector<EdgeId>>*::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:359,1
    - Dst: vector<vector<EdgeId>>*::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:359,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:362,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - min_input_ids
    - chains
    argTypes:
    - absl::Span<const InputEdgeId>
    - vector<vector<EdgeId>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 365
    functionName: Graph::CanonicalizeVectorOrder
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector<vector<EdgeId>>*::end
    - vector<vector<EdgeId>>*::begin
    - make_pair
    - std::sort
    linkageType: ''
    returnType: void
    signature: "void Graph::CanonicalizeVectorOrder(absl::Span<const InputEdgeId>
      min_input_ids,\n                                    vector<vector<EdgeId>>*
      chains)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:369,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:369,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:370,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:371,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:371,1
    - Dst: Graph::GetLeftTurnMap
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:374,1
    - Dst: Graph::GetInEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:374,1
    - Dst: Graph::GetMinInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:375,1
    - Dst: vector::assign
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:380,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:380,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:384,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:394,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:398,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:398,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:399,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:402,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:402,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:403,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:403,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:403,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:404,1
    - Dst: Graph::CanonicalizeLoopOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:405,1
    - Dst: vector<EdgeLoop>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:406,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:406,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:410,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:410,1
    - Dst: Graph::CanonicalizeLoopOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:412,1
    - Dst: vector<EdgeLoop>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:413,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:413,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:414,1
    - Dst: Graph::CanonicalizeVectorOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:417,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - loop_type
    - loops
    - absl_nonnull
    argTypes:
    - LoopType
    - vector<EdgeLoop>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 419
    functionName: Graph::GetDirectedLoops
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 2
    functionsReached:
    - vector::erase
    - num_edges
    - Graph::CanonicalizeVectorOrder
    - vector::end
    - vector::size
    - ABSL_DCHECK
    - edge_type
    - num_vertices
    - Graph::GetInEdgeIds
    - Graph::GetLeftTurnMap
    - degenerate_edges
    - vector::begin
    - vector<EdgeLoop>*::push_back
    - vector::push_back
    - Graph::GetMinInputEdgeIds
    - std::move
    - vector::empty
    - vector::clear
    - edge
    - vector::assign
    - Graph::CanonicalizeLoopOrder
    linkageType: ''
    returnType: bool
    signature: "bool Graph::GetDirectedLoops(LoopType loop_type, vector<EdgeLoop>*
      loops,\n                             S2Error* absl_nonnull error) const"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:424,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:424,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:425,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:427,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:427,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:428,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:429,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:429,1
    - Dst: Graph::GetSiblingMap
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:431,1
    - Dst: Graph::GetLeftTurnMap
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:433,1
    - Dst: Graph::GetMinInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:434,1
    - Dst: vector::assign
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:441,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:441,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:443,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:449,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:450,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:451,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:452,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:461,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:467,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:470,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:476,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:476,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:477,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:483,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:483,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:484,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:484,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:484,1
    - Dst: Graph::CanonicalizeLoopOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:487,1
    - Dst: DirectedComponent::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:488,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:488,1
    - Dst: Graph::CanonicalizeLoopOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:495,1
    - Dst: DirectedComponent::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:496,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:496,1
    - Dst: Graph::CanonicalizeVectorOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:498,1
    - Dst: vector<DirectedComponent>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:499,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:499,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:502,1
    - Dst: vector<DirectedComponent>*::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:502,1
    - Dst: vector<DirectedComponent>*::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:502,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 3
    argNames:
    - degenerate_boundaries
    - components
    - absl_nonnull
    argTypes:
    - DegenerateBoundaries
    - vector<DirectedComponent>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 508
    functionName: Graph::GetDirectedComponents
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector::erase
    - num_edges
    - Graph::CanonicalizeVectorOrder
    - vector::end
    - vector::back
    - vector<DirectedComponent>*::begin
    - vector::size
    - ABSL_DCHECK
    - edge_type
    - DirectedComponent::push_back
    - Graph::GetLeftTurnMap
    - vector::resize
    - degenerate_edges
    - vector<DirectedComponent>*::end
    - vector::begin
    - vector::push_back
    - Graph::GetMinInputEdgeIds
    - Graph::GetSiblingMap
    - std::move
    - vector::empty
    - vector<DirectedComponent>*::push_back
    - vector::pop_back
    - static_cast<size_t>
    - vector::assign
    - std::sort
    - sibling_pairs
    - Graph::CanonicalizeLoopOrder
    linkageType: ''
    returnType: bool
    signature: "bool Graph::GetDirectedComponents(DegenerateBoundaries degenerate_boundaries,\n
      \                                 vector<DirectedComponent>* components,\n                                  S2Error*
      absl_nonnull error) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 512
    functionName: MarkEdgeUsed
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Graph::EdgeId
    signature: Graph::EdgeId MarkEdgeUsed(int slot)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:517,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:517,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:518,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:519,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:519,1
    - Dst: Graph::GetInEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:521,1
    - Dst: Graph::GetLeftTurnMap
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:523,1
    - Dst: Graph::MakeSiblingMap
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:524,1
    - Dst: Graph::GetMinInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:525,1
    - Dst: vector::assign
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:534,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:534,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:536,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:542,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:542,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:543,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:544,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:545,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:546,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:555,1
    - Dst: MarkEdgeUsed
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:557,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:561,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:561,1
    - Dst: MarkEdgeUsed
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:562,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:565,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:572,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:572,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:573,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:575,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:575,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:576,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:576,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:576,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:578,1
    - Dst: Graph::CanonicalizeLoopOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:579,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:580,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:580,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:584,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:584,1
    - Dst: Graph::CanonicalizeLoopOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:586,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:587,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:587,1
    - Dst: Graph::CanonicalizeVectorOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:590,1
    - Dst: Graph::CanonicalizeVectorOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:591,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:597,1
    - Dst: vector<UndirectedComponent>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:599,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:599,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:602,1
    - Dst: vector<UndirectedComponent>*::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:602,1
    - Dst: vector<UndirectedComponent>*::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:602,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - loop_type
    - components
    - absl_nonnull
    argTypes:
    - LoopType
    - vector<UndirectedComponent>*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 608
    functionName: Graph::GetUndirectedComponents
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - Graph::MakeSiblingMap
    - vector::erase
    - vector<UndirectedComponent>*::end
    - num_edges
    - Graph::CanonicalizeVectorOrder
    - vector::end
    - vector::back
    - vector::size
    - ABSL_DCHECK
    - edge_type
    - num_vertices
    - Graph::GetInEdgeIds
    - MarkEdgeUsed
    - Graph::GetLeftTurnMap
    - degenerate_edges
    - make_pair
    - vector<UndirectedComponent>*::begin
    - vector::begin
    - vector::push_back
    - Graph::GetMinInputEdgeIds
    - S2Error
    - std::move
    - push_back
    - vector::empty
    - vector<UndirectedComponent>*::push_back
    - vector::pop_back
    - edge
    - swap
    - vector::assign
    - std::sort
    - Graph::CanonicalizeLoopOrder
    linkageType: ''
    returnType: bool
    signature: "bool Graph::GetUndirectedComponents(LoopType loop_type,\n                                    vector<UndirectedComponent>*
      components,\n                                    S2Error* absl_nonnull error)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:637,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:637,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:638,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:639,1
    - Dst: PolylineBuilder::BuildPaths
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:642,1
    - Dst: PolylineBuilder::BuildWalks
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - polyline_type
    argTypes:
    - PolylineType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 646
    functionName: Graph::GetPolylines
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - PolylineBuilder::BuildWalks
    - sibling_pairs
    - PolylineBuilder::BuildPaths
    - ABSL_DCHECK
    linkageType: ''
    returnType: vector<Graph::EdgePolyline>
    signature: "vector<Graph::EdgePolyline> Graph::GetPolylines(\n    PolylineType
      polyline_type) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMinInputEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:650,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:651,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:652,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:653,1
    - Dst: in_edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:655,1
    - Dst: MakeSiblingMap
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 658
    functionName: Graph::PolylineBuilder::PolylineBuilder(const Graph& g)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - MakeSiblingMap
    - options
    - GetMinInputEdgeIds
    - in_edge_ids
    linkageType: ''
    returnType: void
    signature: void Graph::PolylineBuilder::PolylineBuilder(const Graph& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:662,1
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:662,1
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 666
    functionName: Graph::PolylineBuilder::is_interior(VertexId v)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - degree
    linkageType: ''
    returnType: bool
    signature: bool Graph::PolylineBuilder::is_interior(VertexId v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:669,1
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:669,1
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 670
    functionName: Graph::PolylineBuilder::excess_degree(VertexId v)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - degree
    linkageType: ''
    returnType: int
    signature: int Graph::PolylineBuilder::excess_degree(VertexId v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetInputEdgeOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:681,1
    - Dst: is_interior
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:683,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:683,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:684,1
    - Dst: BuildPath
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:684,1
    - Dst: BuildPath
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:696,1
    - Dst: CanonicalizeLoopOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:697,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:698,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:698,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:700,1
    - Dst: CanonicalizeVectorOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:703,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 705
    functionName: Graph::PolylineBuilder::BuildPaths()
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - CanonicalizeLoopOrder
    - ABSL_DCHECK_EQ
    - std::move
    - CanonicalizeVectorOrder
    - BuildPath
    - edge
    - is_interior
    - GetInputEdgeOrder
    linkageType: ''
    returnType: vector<Graph::EdgePolyline>
    signature: vector<Graph::EdgePolyline> Graph::PolylineBuilder::BuildPaths()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:712,1
    - Dst: EdgePolyline::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:714,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:715,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:719,1
    - Dst: is_interior
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:720,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:722,1
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:722,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:723,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:725,1
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:725,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:726,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - e
    argTypes:
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 730
    functionName: Graph::PolylineBuilder::BuildPath(EdgeId e)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - degree
    - ABSL_DCHECK_EQ
    - EdgePolyline::push_back
    - edge
    - is_interior
    - edge_ids
    - ABSL_DCHECK
    linkageType: ''
    returnType: Graph::EdgePolyline
    signature: Graph::EdgePolyline Graph::PolylineBuilder::BuildPath(EdgeId e)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GetInputEdgeOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:742,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:745,1
    - Dst: excess_degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:746,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:751,1
    - Dst: BuildWalk
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:751,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:752,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:752,1
    - Dst: MaximizeWalk
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:760,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:768,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:776,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:779,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:783,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:784,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:787,1
    - Dst: BuildWalk
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:788,1
    - Dst: MaximizeWalk
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:789,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:790,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:790,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:793,1
    - Dst: CanonicalizeVectorOrder
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:796,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 798
    functionName: Graph::PolylineBuilder::BuildWalks()
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - BuildWalk
    - ABSL_DCHECK_EQ
    - std::move
    - CanonicalizeVectorOrder
    - vector::back
    - edge
    - excess_degree
    - MaximizeWalk
    - GetInputEdgeOrder
    - vector::size
    linkageType: ''
    returnType: vector<Graph::EdgePolyline>
    signature: vector<Graph::EdgePolyline> Graph::PolylineBuilder::BuildWalks()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:805,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:806,1
    - Dst: excess_degree
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:815,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:817,1
    - Dst: EdgePolyline::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:823,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:827,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 829
    functionName: Graph::PolylineBuilder::BuildWalk(VertexId v)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - EdgePolyline::push_back
    - Stats::max
    - edge
    - excess_degree
    - edge_ids
    linkageType: ''
    returnType: Graph::EdgePolyline
    signature: Graph::EdgePolyline Graph::PolylineBuilder::BuildWalk(VertexId v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EdgePolyline*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:837,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:838,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:839,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:840,1
    - Dst: BuildWalk
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:842,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:843,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:843,1
    - Dst: EdgePolyline::back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:843,1
    - Dst: EdgePolyline*::insert
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:844,1
    - Dst: EdgePolyline*::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:844,1
    - Dst: EdgePolyline::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:844,1
    - Dst: EdgePolyline::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:844,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - EdgePolyline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 850
    functionName: Graph::PolylineBuilder::MaximizeWalk(EdgePolyline* polyline)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - BuildWalk
    - EdgePolyline::begin
    - ABSL_DCHECK_EQ
    - EdgePolyline*::size
    - EdgePolyline::back
    - EdgePolyline*::insert
    - edge
    - EdgePolyline::end
    - edge_ids
    - EdgePolyline*::begin
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void Graph::PolylineBuilder::MaximizeWalk(EdgePolyline* polyline)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::Client*::TallyTemp
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:902,1
    - Dst: vector<Edge>*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:902,1
    - Dst: S2MemoryTracker::Client*::Tally
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:903,1
    - Dst: vector<Edge>*::capacity
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:903,1
    - Dst: S2MemoryTracker::Client*::ok
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:905,1
    - Dst: EdgeProcessor::Run
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:907,1
    - Dst: GraphOptions*::sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:911,1
    - Dst: GraphOptions*::sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:912,1
    - Dst: GraphOptions*::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:913,1
    - Dst: S2MemoryTracker::Client*::Tally
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:915,1
    - Dst: vector<Edge>*::capacity
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:915,1
    - Dst: S2MemoryTracker::Client*::error
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:916,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 6
    argNames:
    - options
    - edges
    - input_ids
    - id_set_lexicon
    - absl_nonnull
    - tracker
    argTypes:
    - GraphOptions*
    - vector<Edge>*
    - vector<InputEdgeIdSetId>*
    - IdSetLexicon*
    - S2Error*
    - S2MemoryTracker::Client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 918
    functionName: Graph::ProcessEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector<Edge>*::size
    - S2MemoryTracker::Client*::error
    - GraphOptions*::sibling_pairs
    - EdgeProcessor::Run
    - S2MemoryTracker::Client*::ok
    - GraphOptions*::set_edge_type
    - S2MemoryTracker::Client*::TallyTemp
    - vector<Edge>*::capacity
    - S2MemoryTracker::Client*::Tally
    linkageType: ''
    returnType: void
    signature: "void Graph::ProcessEdges(GraphOptions* options, vector<Edge>* edges,\n
      \                        vector<InputEdgeIdSetId>* input_ids,\n                         IdSetLexicon*
      id_set_lexicon,\n                         S2Error* absl_nonnull error,\n                         S2MemoryTracker::Client*
      tracker)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:926,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:926,1
    - Dst: std::iota
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:930,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:930,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:930,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:931,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:931,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:931,1
    - Dst: StableLessThan
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:932,1
    - Dst: std::iota
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:934,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:934,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:934,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:935,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:935,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:935,1
    - Dst: StableLessThan
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:936,1
    - Dst: reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:936,1
    - Dst: reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:936,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:938,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:938,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:939,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - ' options'
    - edges
    - input_ids
    - id_set_lexicon
    argTypes:
    - GraphOptions
    - vector<Edge>*
    - vector<InputEdgeIdSetId>*
    - IdSetLexicon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 940
    functionName: "Graph::EdgeProcessor::EdgeProcessor(const GraphOptions& options,\n
      \                                   vector<Edge>* edges,\n                                    vector<InputEdgeIdSetId>*
      input_ids,\n                                    IdSetLexicon* id_set_lexicon)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - reverse
    - reserve
    - end
    - size
    - StableLessThan
    - std::iota
    - begin
    - std::sort
    linkageType: ''
    returnType: void
    signature: "void Graph::EdgeProcessor::EdgeProcessor(const GraphOptions& options,\n
      \                                   vector<Edge>* edges,\n                                    vector<InputEdgeIdSetId>*
      input_ids,\n                                    IdSetLexicon* id_set_lexicon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:944,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' edge'
    - input_edge_id_set_id
    argTypes:
    - Edge
    - InputEdgeIdSetId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 946
    functionName: "Graph::EdgeProcessor::AddEdge(\n    const Edge& edge, InputEdgeIdSetId
      input_edge_id_set_id)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Graph::EdgeProcessor::AddEdge(\n    const Edge& edge, InputEdgeIdSetId
      input_edge_id_set_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddEdge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - num_edges
    - ' edge'
    - input_edge_id_set_id
    argTypes:
    - int
    - Edge
    - InputEdgeIdSetId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 953
    functionName: "Graph::EdgeProcessor::AddEdges(int num_edges, const Edge& edge,\n
      \                                   InputEdgeIdSetId input_edge_id_set_id)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - AddEdge
    linkageType: ''
    returnType: void
    signature: "void Graph::EdgeProcessor::AddEdges(int num_edges, const Edge& edge,\n
      \                                   InputEdgeIdSetId input_edge_id_set_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddEdge
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out_begin
    - out_end
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 959
    functionName: Graph::EdgeProcessor::CopyEdges(int out_begin, int out_end)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - AddEdge
    linkageType: ''
    returnType: void
    signature: void Graph::EdgeProcessor::CopyEdges(int out_begin, int out_end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:966,1
    - Dst: id_set
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:968,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:969,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - out_begin
    - out_end
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 973
    functionName: "Graph::EdgeProcessor::MergeInputIds(\n    int out_begin, int out_end)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - Add
    - id_set
    - push_back
    - clear
    linkageType: ''
    returnType: S2Builder::InputEdgeIdSetId
    signature: "S2Builder::InputEdgeIdSetId Graph::EdgeProcessor::MergeInputIds(\n
      \   int out_begin, int out_end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1105,1
    - Dst: vector<Edge>*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1105,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1107,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1108,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1111,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1111,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1111,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1112,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1112,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1112,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1112,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1112,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1117,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1117,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1118,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - vertices
    - edges
    - tmp
    argTypes:
    - absl::Span<const S2Point>
    - vector<Edge>*
    - vector<VertexId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1129
    functionName: Graph::FilterVertices
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector<Edge>*::size
    - vector::push_back
    - absl::Span<const S2Point>::size
    - vector::erase
    - vector::reserve
    - vector::end
    - vector::size
    - std::sort
    - resize
    - vector::begin
    - std::unique
    linkageType: ''
    returnType: vector<S2Point>
    signature: "vector<S2Point> Graph::FilterVertices(absl::Span<const S2Point> vertices,\n
      \                                     vector<Edge>* edges,\n                                      vector<VertexId>*
      tmp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1138,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1139,1
    - Dst: vector<Edge>*::size
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1141,1
    - Dst: vector<Edge>*::reserve
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1143,1
    - Dst: vector<InputEdgeIdSetId>*::reserve
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1144,1
    - Dst: S2MemoryTracker::Client*::AddSpaceExact
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1145,1
    - Dst: S2MemoryTracker::Client*::AddSpaceExact
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1146,1
    - Dst: S2MemoryTracker::Client*::error
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1147,1
    - Dst: Graph::Graph
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1148,1
    - Dst: vector<Edge>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1151,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1151,1
    - Dst: vector<InputEdgeIdSetId>*::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1152,1
    - Dst: IdSetLexicon::EmptySetId
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1152,1
    - Dst: Graph::ProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1155,1
    - Dst: S2MemoryTracker::Client*::ok
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1157,1
    - Dst: Graph::Graph
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1157,1
    - Dst: Graph::Graph
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1158,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1158,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1159,1
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1160,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder_graph.cc:1160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 7
    argNames:
    - new_options
    - new_edges
    - new_input_edge_id_set_ids
    - new_input_edge_id_set_lexicon
    - is_full_polygon_predicate
    - absl_nonnull
    - tracker
    argTypes:
    - GraphOptions
    - vector<Edge>*
    - vector<InputEdgeIdSetId>*
    - IdSetLexicon*
    - IsFullPolygonPredicate
    - S2Error*
    - S2MemoryTracker::Client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1161
    functionName: Graph::MakeSubgraph
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.cc
    functionUses: 0
    functionsReached:
    - vector<Edge>*::size
    - vector<InputEdgeIdSetId>*::push_back
    - vector<Edge>*::push_back
    - Graph::ProcessEdges
    - label_set_ids
    - S2MemoryTracker::Client*::error
    - std::move
    - vector<Edge>*::reserve
    - BUF_reverse
    - GraphOptions::edge_type
    - options
    - vertices
    - vector<InputEdgeIdSetId>*::reserve
    - S2MemoryTracker::Client*::AddSpaceExact
    - S2MemoryTracker::Client*::ok
    - Graph::Graph
    - label_set_lexicon
    - IdSetLexicon::EmptySetId
    linkageType: ''
    returnType: Graph
    signature: "Graph Graph::MakeSubgraph(GraphOptions new_options, vector<Edge>*
      new_edges,\n                          vector<InputEdgeIdSetId>* new_input_edge_id_set_ids,\n
      \                         IdSetLexicon* new_input_edge_id_set_lexicon,\n                          IsFullPolygonPredicate
      is_full_polygon_predicate,\n                          S2Error* absl_nonnull
      error,\n                          S2MemoryTracker::Client* tracker) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: S2RegionTermIndexer::Options::index_contains_points_only
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool index_contains_points_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: S2RegionTermIndexer::Options::set_index_contains_points_only
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_index_contains_points_only(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: S2RegionTermIndexer::Options::optimize_for_space
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool optimize_for_space() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: S2RegionTermIndexer::Options::set_optimize_for_space
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_optimize_for_space(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/s2region_term_indexer.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: S2RegionTermIndexer::Options::marker
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 0
    functionsReached:
    - absl::string_view
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view marker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: S2RegionTermIndexer::Options::marker_character
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char marker_character() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: S2RegionTermIndexer::S2RegionTermIndexer
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionTermIndexer(const S2RegionTermIndexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: '& operator=(const S2RegionTermIndexer&)'
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2RegionTermIndexer
    signature: S2RegionTermIndexer & operator=(const S2RegionTermIndexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 247
    functionName: S2RegionTermIndexer::mutable_options
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options * mutable_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: S2Polygon::Copy
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Copy(const S2Polygon& src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2polygon.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: S2Polygon::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 27
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2polygon.h:245,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2polygon.h:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: S2Polygon::is_full
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 7
    functionsReached:
    - S2Polygon::num_loops
    - S2Polygon::loop
    linkageType: ''
    returnType: bool
    signature: bool is_full() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polygon.h:248,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polygon.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 248
    functionName: S2Polygon::num_loops
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 36
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int num_loops() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: S2Polygon::num_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: S2Polygon::loop
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 25
    functionsReached:
    - get
    linkageType: ''
    returnType: S2Loop
    signature: S2Loop * loop(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: S2Polygon::loop
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 25
    functionsReached:
    - get
    linkageType: ''
    returnType: S2Loop
    signature: S2Loop * loop(int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 647
    functionName: S2Polygon::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect GetRectBound() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: S2Polygon::Shape::Shape
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 710
    functionName: S2Polygon::Shape::polygon
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon * polygon() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.h:714,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.h:714,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2polygon.h:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 717
    functionName: S2Polygon::Shape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 3
    functionsReached:
    - is_full
    - num_vertices
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: S2Polygon::Shape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 725
    functionName: S2Polygon::Shape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polygon.h:729,1
    - Dst: S2Polygon::Shape::Encode
      Src: /src/s2geometry/src/s2/s2polygon.h:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - encoder
    - hint
    argTypes:
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 733
    functionName: S2Polygon::Shape::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 1
    functionsReached:
    - S2Polygon::Shape::Encode
    - EncodeUncompressed
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder* encoder, s2coding::CodingHint hint) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 755
    functionName: S2Polygon::OwningShape::OwningShape
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OwningShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<const S2Polygon>::get
      Src: /src/s2geometry/src/s2/s2polygon.h:758,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.h:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - polygon
    argTypes:
    - std::unique_ptr<const S2Polygon>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 758
    functionName: S2Polygon::OwningShape::OwningShape
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::unique_ptr<const S2Polygon>::get
    linkageType: ''
    returnType: void
    signature: void OwningShape(std::unique_ptr<const S2Polygon> polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2polygon.h:761,1
    - Dst: std::unique_ptr<const S2Polygon>::get
      Src: /src/s2geometry/src/s2/s2polygon.h:761,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.h:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - polygon
    argTypes:
    - std::unique_ptr<const S2Polygon>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 763
    functionName: S2Polygon::OwningShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::unique_ptr<const S2Polygon>::get
    - S2LaxPolygonShape::Init
    linkageType: ''
    returnType: void
    signature: void Init(std::unique_ptr<const S2Polygon> polygon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2polygon.h:766,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/s2polygon.h:767,1
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2polygon.h:768,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2polygon.h:768,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polygon.h:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 771
    functionName: S2Polygon::OwningShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached:
    - auto::get
    - S2LaxPolygonShape::Init
    - std::move
    - auto::Decode
    - std::make_unique<S2Polygon>
    linkageType: ''
    returnType: bool
    signature: bool Init(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 788
    functionName: '& index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MutableS2ShapeIndex
    signature: MutableS2ShapeIndex & index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2polygon.h:914,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2polygon.h:914,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon.h:915,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2polygon.h:916,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2polygon.h:916,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2polygon.h:917,1
    - Dst: S2Loop*::oriented_vertex
      Src: /src/s2geometry/src/s2/s2polygon.h:917,1
    - Dst: S2Loop*::oriented_vertex
      Src: /src/s2geometry/src/s2/s2polygon.h:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 918
    functionName: S2Shape::Edge S2Polygon::Shape::chain_edge(int i, int j) const
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached:
    - S2Loop*::num_vertices
    - S2LaxPolygonShape::num_chains
    - S2Loop*::oriented_vertex
    - ABSL_DCHECK_LT
    - Edge
    - loop
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: ABSL_ATTRIBUTE_ALWAYS_INLINE S2Shape::Edge S2Polygon::Shape::chain_edge(int
      i, int j) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2polygon.h:922,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2polygon.h:922,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polygon.h:924,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon.h:928,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2polygon.h:929,1
    - Dst: load
      Src: /src/s2geometry/src/s2/s2polygon.h:932,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2polygon.h:933,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2polygon.h:934,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2polygon.h:937,1
    - Dst: std::upper_bound
      Src: /src/s2geometry/src/s2/s2polygon.h:943,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2polygon.h:943,1
    - Dst: store
      Src: /src/s2geometry/src/s2/s2polygon.h:946,1
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2polygon.h:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 951
    functionName: S2Shape::ChainPosition S2Polygon::Shape::chain_position(int e) const
    functionSourceFile: /src/s2geometry/src/s2/s2polygon.h
    functionUses: 0
    functionsReached:
    - num_loops
    - ChainPosition
    - std::upper_bound
    - get
    - num_edges
    - load
    - static_cast<uint32_t>
    - ABSL_DCHECK_LT
    - store
    - loop
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: ABSL_ATTRIBUTE_ALWAYS_INLINE S2Shape::ChainPosition S2Polygon::Shape::chain_position(int
      e) const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:133,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:135,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:138,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:139,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:140,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:141,1
    - Dst: S2CellUnion::InitFromBeginEnd
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:142,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:142,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:143,1
    - Dst: S2CellUnion::InitFromBeginEnd
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:146,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:146,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:153,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:154,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:156,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:156,1
    - Dst: MutableS2ShapeIndexTest::ValidateInterior
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:160,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:162,1
    - Dst: S2ClippedShape*::contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:163,1
    - Dst: MutableS2ShapeIndexTest::ValidateInterior
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:164,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:164,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:165,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:168,1
    - Dst: S2PaddedCell::GetEntryVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:173,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:177,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:178,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:179,1
    - Dst: MutableS2ShapeIndexTest::ValidateEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:180,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:180,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:182,1
    - Dst: S2ClippedShape*::ContainsEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:183,1
    - Dst: MutableS2ShapeIndexTest::ValidateEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:184,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:184,1
    - Dst: GetEdgeMaxLevel
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:185,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:188,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:196,1
    - Dst: options
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:197,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:198,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:199,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:201,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:202,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 204
    functionName: MutableS2ShapeIndexTest::QuadraticValidate
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndexTest::ValidateInterior
    - S2CellId::range_min
    - S2CellUnion::num_cells
    - shape
    - S2Shape*::num_edges
    - MutableS2ShapeIndex::Iterator::cell
    - s2shapeutil::ContainsBruteForce
    - std::max
    - S2CellId::range_max
    - MutableS2ShapeIndexTest::ValidateEdge
    - num_shape_ids
    - S2CellUnion::cell_id
    - S2Shape*::edge
    - EXPECT_GE
    - S2ClippedShape*::ContainsEdge
    - options
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - EXPECT_EQ
    - S2PaddedCell::GetEntryVertex
    - S2ClippedShape*::contains_center
    - GetEdgeMaxLevel
    - S2CellUnion::S2CellUnion
    - static_cast<int>
    - EXPECT_LE
    - MutableS2ShapeIndex::Iterator::id
    - S2CellId::Begin
    - S2CellId::End
    - absl::GetFlag
    - S2CellUnion::InitFromBeginEnd
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndexTest::QuadraticValidate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetBoundUV
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:216,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:216,1
    - Dst: S2CellId::face
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:216,1
    - Dst: S2::IntersectsRect
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - id
    - index_has_edge
    argTypes:
    - S2Point
    - S2Point
    - S2CellId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: MutableS2ShapeIndexTest::ValidateEdge
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 1
    functionsReached:
    - S2CellId::face
    - S2::IntersectsRect
    - S2::ClipToPaddedFace
    - EXPECT_EQ
    - S2CellId::GetBoundUV
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndexTest::ValidateEdge(const S2Point& a, const
      S2Point& b,\n                                           S2CellId id, bool index_has_edge)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:226,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:226,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - shape
    - id
    - index_contains_center
    argTypes:
    - S2Shape*
    - S2CellId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: MutableS2ShapeIndexTest::ValidateInterior
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_EQ
    - S2CellId::ToPoint
    - s2shapeutil::ContainsBruteForce
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndexTest::ValidateInterior(\n    const S2Shape*
      shape, S2CellId id, bool index_contains_center)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:232,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:233,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:234,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:234,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:235,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:236,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:236,1
    - Dst: s2shapeutil::WrappedShapeFactory::WrappedShapeFactory
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:236,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: MutableS2ShapeIndexTest::TestEncodeDecode
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - s2shapeutil::WrappedShapeFactory::WrappedShapeFactory
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - Encoder::length
    - Encoder::base
    - MutableS2ShapeIndex::Init
    - Encode
    - ASSERT_TRUE
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndexTest::TestEncodeDecode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string::empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:244,1
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - batches
    argTypes:
    - absl::Span<const BatchDescriptor>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: MutableS2ShapeIndexTest::ToString
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - string::empty
    - absl::StrAppendFormat
    linkageType: ''
    returnType: string
    signature: "string MutableS2ShapeIndexTest::ToString(\n    absl::Span<const BatchDescriptor>
      batches)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::SetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:258,1
    - Dst: absl::Span<const int>::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:264,1
    - Dst: MutableS2ShapeIndex::BatchGenerator::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:265,1
    - Dst: MutableS2ShapeIndex::BatchGenerator::Finish
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:268,1
    - Dst: MutableS2ShapeIndexTest::ToString
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:268,1
    - Dst: MutableS2ShapeIndexTest::ToString
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - num_edges_removed
    - shape_edges_added
    - tmp_memory_budget
    - shape_id_begin
    - expected_batches
    argTypes:
    - int
    - absl::Span<const int>
    - int64_t
    - int
    - absl::Span<const BatchDescriptor>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: MutableS2ShapeIndexTest::TestBatchGenerator
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::BatchGenerator::AddShape
    - absl::SetFlag
    - absl::Span<const int>::size
    - EXPECT_EQ
    - MutableS2ShapeIndex::BatchGenerator::Finish
    - MutableS2ShapeIndexTest::ToString
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndexTest::TestBatchGenerator(\n    int num_edges_removed,
      absl::Span<const int> shape_edges_added,\n    int64_t tmp_memory_budget, int
      shape_id_begin,\n    absl::Span<const BatchDescriptor> expected_batches)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:275,1
    - Dst: MutableS2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:275,1
    - Dst: MutableS2ShapeIndex::Iterator::Finish
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:276,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:277,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:277,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:280,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:281,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:281,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:281,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:282,1
    - Dst: S2CellUnion::FromBeginEnd
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:283,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:283,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:285,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:285,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:286,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:286,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:287,1
    - Dst: MutableS2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:289,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:289,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:291,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:293,1
    - Dst: MutableS2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:294,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:294,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:294,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:295,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:296,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:296,1
    - Dst: MutableS2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:297,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:298,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:298,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:298,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:300,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:301,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:301,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:301,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:302,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:302,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:303,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:303,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:305,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:305,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:306,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:306,1
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:307,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:308,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:309,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:309,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:309,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:310,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:310,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:311,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:311,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:311,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:313,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:316,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:316,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:316,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:317,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:317,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:320,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 323
    functionName: TestIteratorMethods
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::FromBeginEnd
    - ToPoint
    - S2CellId::range_min
    - vector::back
    - MutableS2ShapeIndex::Iterator::Prev
    - MutableS2ShapeIndex::Iterator::Finish
    - S2CellId::is_leaf
    - S2CellId::range_max
    - MutableS2ShapeIndex::Iterator::Locate
    - EXPECT_GE
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - EXPECT_EQ
    - S2CellId::child
    - vector::push_back
    - EXPECT_TRUE
    - vector::empty
    - S2CellId::is_face
    - EXPECT_LE
    - MutableS2ShapeIndex::Iterator::id
    - MutableS2ShapeIndex::Iterator::Seek
    - S2CellId::ToPoint
    - S2CellId::parent
    - S2CellId::Begin
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Iterator::Begin
    linkageType: ''
    returnType: void
    signature: void TestIteratorMethods(const MutableS2ShapeIndex& index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveFullPolygonBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, AddFullPolygonBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveManyEdgesInOneBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveAndAddEdgesInOneBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveAndAddEdgesInTwoBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveAndAddEdgesAndFullPolygonsInTwoBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SeveralShapesInOneBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, GroupSmallShapesIntoBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 390
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, AvoidPartialShapeInBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SplitShapeIntoTwoBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveEdgesAndAddPartialShapeInSameBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 436
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SplitShapeIntoManyBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:439,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:439,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:439,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:440,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:441,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:441,1
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:442,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:443,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:443,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:445,1
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:446,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:448,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:448,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 451
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - EXPECT_TRUE
    - S2Point
    - is_fresh
    - make_unique<S2EdgeVectorShape>
    - SpaceUsed
    - QuadraticValidate
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SpaceUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:455,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:455,1
    - Dst: TestIteratorMethods
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:456,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestEncodeDecode
    - MutableS2ShapeIndex::Iterator::done
    - TestIteratorMethods
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:461,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:461,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:462,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:463,1
    - Dst: TestIteratorMethods
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:464,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - make_unique<S2EdgeVectorShape>
    - TestEncodeDecode
    - TestIteratorMethods
    - EXPECT_EQ
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, OneEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:475,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:476,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:476,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:477,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:477,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:477,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:478,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 480
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - S2Loop::MakeRegularLoop
    - S1Angle::Degrees
    - unique_ptr::get
    - make_unique<S2Loop::Shape>
    - TestEncodeDecode
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, ShrinkToFitOptimization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:483,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:487,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:487,1
    - Dst: S2Polygon::Release
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:489,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:491,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:491,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:493,1
    - Dst: TestIteratorMethods
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:494,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 496
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - S2Testing::ConcentricLoopsPolygon
    - make_unique<S2Loop::Shape>
    - QuadraticValidate
    - S2Polygon::S2Polygon
    - TestEncodeDecode
    - TestIteratorMethods
    - S2Polygon::Release
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, LoopsSpanningThreeFaces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:503,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:503,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:503,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:505,1
    - Dst: TestIteratorMethods
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:506,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:507,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:511,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:511,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:512,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 514
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - make_unique<S2EdgeVectorShape>
    - TestEncodeDecode
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - TestIteratorMethods
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::id
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, ManyIdenticalEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:519,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:520,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:521,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:522,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:522,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:523,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:524,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:528,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:528,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:529,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:529,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:530,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:530,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:531,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:531,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 534
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - Add
    - EXPECT_TRUE
    - S2Point
    - std::move
    - make_unique<S2EdgeVectorShape>
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::cell
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - TestEncodeDecode
    - MutableS2ShapeIndex::Iterator::id
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, DegenerateEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:542,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:542,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:543,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:545,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:547,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:547,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:548,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:549,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:552,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:552,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:553,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:553,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:554,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:555,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 556
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - Add
    - S2CellId
    - EXPECT_TRUE
    - S2Point
    - std::move
    - make_unique<S2EdgeVectorShape>
    - Normalize
    - ASSERT_TRUE
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - TestEncodeDecode
    - MutableS2ShapeIndex::Iterator::id
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, ManyTinyEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:561,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:562,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:562,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:563,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:564,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:564,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:564,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:565,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:567,1
    - Dst: Release
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:569,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:569,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:570,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 573
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - S2Testing::ConcentricLoopsPolygon
    - S2Polygon::num_loops
    - Release
    - shape
    - TestEncodeDecode
    - make_unique<S2Loop::Shape>
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - QuadraticValidate
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SimpleUpdates)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::SetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:580,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:583,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:584,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:587,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:587,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:588,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:589,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:589,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:590,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:591,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:591,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:592,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:595,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:595,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:595,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:596,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:596,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:599,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:600,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:600,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:602,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:603,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:603,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:603,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:607,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:607,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:607,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:608,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:608,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:609,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:609,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:609,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:610,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:610,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:613,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:613,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:614,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:614,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:617,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:617,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:618,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:618,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:621,1
    - Dst: std::iota
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:622,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:622,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:622,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:623,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:624,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:626,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:628,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:630,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:630,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:631,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:631,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:632,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:633,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:634,1
    - Dst: Release
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:634,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:635,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:635,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:636,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:637,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:637,1
    - Dst: get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:638,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:639,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:639,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:640,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:640,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:641,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:642,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:645,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 648
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::erase
    - absl::Bernoulli
    - S2Point
    - vector::end
    - shape
    - S2Loop::kEmpty
    - vector::size
    - S2Polygon::loop
    - make_unique<S2Loop>
    - S1Angle::Radians
    - make_unique<S2Loop::OwningShape>
    - S2Polygon::num_loops
    - num_shape_ids
    - Release
    - std::iota
    - S2Polygon::S2Polygon
    - TestEncodeDecode
    - QuadraticValidate
    - vector::begin
    - vector::push_back
    - S2Loop::kFull
    - std::move
    - absl::Uniform<size_t>
    - S2Testing::ConcentricLoopsPolygon
    - S1Angle::Degrees
    - vector::empty
    - make_unique<S2Polyline::OwningShape>
    - S2Testing::MakeTaggedSeedSeq
    - Add
    - get
    - S2Loop::MakeRegularLoop
    - MakePolylineOrDie
    - absl::SetFlag
    - ABSL_VLOG
    - s2random::SkewedInt
    - make_unique<S2Loop::Shape>
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RandomUpdates)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 659
    functionName: LazyUpdatesTest::LazyUpdatesTest
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LazyUpdatesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_random::SharedBitGen::SharedBitGen
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:662,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:663,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:665,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:666,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:667,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:667,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:668,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:668,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 669
    functionName: LazyUpdatesTest::WriteOp
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - s2random::Point
    - std::move
    - S2Loop::MakeRegularLoop
    - make_unique<S2Loop::OwningShape>
    - util_random::SharedBitGen::SharedBitGen
    - Clear
    - S2Testing::KmToAngle
    - s2random::SkewedInt
    linkageType: ''
    returnType: void
    signature: void WriteOp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:673,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 676
    functionName: LazyUpdatesTest::ReadOp
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    linkageType: ''
    returnType: void
    signature: void ReadOp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LazyUpdatesTest::LazyUpdatesTest
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:686,1
    - Dst: LazyUpdatesTest::Run
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 693
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - LazyUpdatesTest::LazyUpdatesTest
    - LazyUpdatesTest::Run
    linkageType: ''
    returnType: void
    signature: void TEST(MutableS2ShapeIndex, ConstMethodsThreadSafe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:701,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:701,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:702,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:702,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:703,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:703,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:704,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:706,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:706,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:706,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:709,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:709,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:712,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:712,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 713
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - MutableS2ShapeIndex::Iterator::Locate
    - std::move
    - MakePolylineOrDie
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2Loop::Shape>
    - S2CellId::FromFace
    - EXPECT_EQ
    - make_unique<S2Polyline::OwningShape>
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(MutableS2ShapeIndex, MixedGeometry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Options::set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:725,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:726,1
    - Dst: MutableS2ShapeIndex::Options::max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:734,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:740,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:740,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:744,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:746,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:746,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:748,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:753,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:753,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 715
    functionDepth: 4
    functionLinenumber: 715
    functionLinenumberEnd: 757
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2::Interpolate
    - MutableS2ShapeIndex::Options::max_edges_per_cell
    - make_unique<S2EdgeVectorShape>
    - make_unique<S2PointVectorShape>
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - MutableS2ShapeIndex::Options::set_max_edges_per_cell
    - EXPECT_LE
    - Init
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, LinearSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Options::set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:766,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:767,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:772,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:773,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:775,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:775,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:777,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:777,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:782,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:782,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:783,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:786,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:787,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 791
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2::FaceSiTitoXYZ
    - make_unique<S2LaxPolygonShape>
    - MutableS2ShapeIndex::Iterator::id
    - make_unique<S2EdgeVectorShape>
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - MutableS2ShapeIndex::Options::set_max_edges_per_cell
    - ABSL_LOG
    - Init
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, LongIndexEntriesBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:795,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:796,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:796,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:797,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:797,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:800,1
    - Dst: Remove
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:803,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:806,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:810,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 811
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - ForceBuild
    - EXPECT_TRUE
    - S2Loop::MakeRegularLoop
    - make_unique<S2Loop::OwningShape>
    - S1Angle::Degrees
    - MutableS2ShapeIndex::Iterator::done
    - Remove
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, AddRemoveShapeContainingOrigin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:817,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:817,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:818,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:820,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:820,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 822
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::FullDecodeShapeFactory
    - std::string::size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Init
    - std::string::data
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, DecoderCatchesInvalidIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MyData
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:840,1
    - Dst: static_cast<MyData*>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:841,1
    - Dst: MyEdgeVectorShape::mutable_user_data
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:841,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:842,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:844,1
    - Dst: static_cast<const MyData*>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:844,1
    - Dst: MyEdgeVectorShape::user_data
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 845
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - static_cast<MyData*>
    - static_cast<const MyData*>
    - MyData
    - ABSL_DCHECK_EQ
    - MyEdgeVectorShape::mutable_user_data
    - MyEdgeVectorShape::user_data
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 827
    functionName: MyData
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MyData(int _x, int _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - MyData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 833
    functionName: MyEdgeVectorShape::MyEdgeVectorShape
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MyEdgeVectorShape(const MyData& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 834
    functionName: MyEdgeVectorShape::user_data
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * user_data() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 835
    functionName: MyEdgeVectorShape::mutable_user_data
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * mutable_user_data() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:851,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:854,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:855,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:856,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:856,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:860,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:862,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:863,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:864,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:864,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:865,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:866,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:866,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:866,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:867,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:868,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 872
    functionName: BenchmarkConstruction
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - PauseTiming
    - s2random::Point
    - ResumeTiming
    - MutableS2ShapeIndex::ForceBuild
    - string::end
    - absl::StrCat
    - S2Loop::MakeRegularLoop
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - unique_ptr::get
    - S2Testing::KmToAngle
    - make_unique<S2Loop::Shape>
    - absl::GetFlag
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BenchmarkConstruction(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkConstruction
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 876
    functionName: BM_Construction
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkConstruction
    linkageType: ''
    returnType: void
    signature: void BM_Construction(benchmark::State& state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:275,1
    - Dst: MutableS2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:275,1
    - Dst: MutableS2ShapeIndex::Iterator::Finish
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:276,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:277,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:277,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:280,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:281,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:281,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:281,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:282,1
    - Dst: S2CellUnion::FromBeginEnd
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:283,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:283,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:285,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:285,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:286,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:286,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:287,1
    - Dst: MutableS2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:289,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:289,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:291,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:293,1
    - Dst: MutableS2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:294,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:294,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:294,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:295,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:296,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:296,1
    - Dst: MutableS2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:297,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:298,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:298,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:298,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:300,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:301,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:301,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:301,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:302,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:302,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:303,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:303,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:305,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:305,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:306,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:306,1
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:307,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:308,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:309,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:309,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:309,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:310,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:310,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:311,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:311,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:311,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:313,1
    - Dst: MutableS2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:316,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:316,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:316,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:317,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:317,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:320,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 323
    functionName: TestIteratorMethods
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 4
    functionsReached:
    - S2CellUnion::FromBeginEnd
    - ToPoint
    - S2CellId::range_min
    - vector::back
    - MutableS2ShapeIndex::Iterator::Prev
    - MutableS2ShapeIndex::Iterator::Finish
    - S2CellId::is_leaf
    - S2CellId::range_max
    - MutableS2ShapeIndex::Iterator::Locate
    - EXPECT_GE
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - EXPECT_EQ
    - S2CellId::child
    - vector::push_back
    - EXPECT_TRUE
    - vector::empty
    - S2CellId::is_face
    - EXPECT_LE
    - MutableS2ShapeIndex::Iterator::id
    - MutableS2ShapeIndex::Iterator::Seek
    - S2CellId::ToPoint
    - S2CellId::parent
    - S2CellId::Begin
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Iterator::Begin
    linkageType: ''
    returnType: void
    signature: void TestIteratorMethods(const MutableS2ShapeIndex& index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveFullPolygonBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, AddFullPolygonBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveManyEdgesInOneBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveAndAddEdgesInOneBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveAndAddEdgesInTwoBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveAndAddEdgesAndFullPolygonsInTwoBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SeveralShapesInOneBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, GroupSmallShapesIntoBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 390
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, AvoidPartialShapeInBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SplitShapeIntoTwoBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RemoveEdgesAndAddPartialShapeInSameBatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBatchGenerator
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 436
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestBatchGenerator
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SplitShapeIntoManyBatches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:439,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:439,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:439,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:440,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:441,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:441,1
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:442,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:443,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:443,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:445,1
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:446,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:448,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:448,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 451
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - EXPECT_TRUE
    - S2Point
    - is_fresh
    - make_unique<S2EdgeVectorShape>
    - SpaceUsed
    - QuadraticValidate
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SpaceUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:455,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:455,1
    - Dst: TestIteratorMethods
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:456,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestEncodeDecode
    - MutableS2ShapeIndex::Iterator::done
    - TestIteratorMethods
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:461,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:461,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:462,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:463,1
    - Dst: TestIteratorMethods
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:464,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - make_unique<S2EdgeVectorShape>
    - TestEncodeDecode
    - TestIteratorMethods
    - EXPECT_EQ
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, OneEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:475,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:476,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:476,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:477,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:477,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:477,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:478,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 480
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - S2Loop::MakeRegularLoop
    - S1Angle::Degrees
    - unique_ptr::get
    - make_unique<S2Loop::Shape>
    - TestEncodeDecode
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, ShrinkToFitOptimization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:483,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:487,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:487,1
    - Dst: S2Polygon::Release
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:489,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:491,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:491,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:493,1
    - Dst: TestIteratorMethods
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:494,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 496
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - S2Testing::ConcentricLoopsPolygon
    - make_unique<S2Loop::Shape>
    - QuadraticValidate
    - S2Polygon::S2Polygon
    - TestEncodeDecode
    - TestIteratorMethods
    - S2Polygon::Release
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, LoopsSpanningThreeFaces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:503,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:503,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:503,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:505,1
    - Dst: TestIteratorMethods
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:506,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:507,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:511,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:511,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:512,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 514
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - make_unique<S2EdgeVectorShape>
    - TestEncodeDecode
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - TestIteratorMethods
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::id
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, ManyIdenticalEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:519,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:520,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:521,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:522,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:522,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:523,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:524,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:528,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:528,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:529,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:529,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:530,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:530,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:531,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:531,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 534
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - Add
    - EXPECT_TRUE
    - S2Point
    - std::move
    - make_unique<S2EdgeVectorShape>
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::cell
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - TestEncodeDecode
    - MutableS2ShapeIndex::Iterator::id
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, DegenerateEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:542,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:542,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:543,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:545,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:547,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:547,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:548,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:549,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:552,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:552,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:553,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:553,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:554,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:555,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 556
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - Add
    - S2CellId
    - EXPECT_TRUE
    - S2Point
    - std::move
    - make_unique<S2EdgeVectorShape>
    - Normalize
    - ASSERT_TRUE
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - TestEncodeDecode
    - MutableS2ShapeIndex::Iterator::id
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, ManyTinyEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:561,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:562,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:562,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:563,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:564,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:564,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:564,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:565,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:567,1
    - Dst: Release
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:569,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:569,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:570,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 573
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2Point
    - S2Testing::ConcentricLoopsPolygon
    - S2Polygon::num_loops
    - Release
    - shape
    - TestEncodeDecode
    - make_unique<S2Loop::Shape>
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - QuadraticValidate
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, SimpleUpdates)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::SetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:580,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:583,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:584,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:587,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:587,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:588,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:589,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:589,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:590,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:591,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:591,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:592,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:595,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:595,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:595,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:596,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:596,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:599,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:600,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:600,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:602,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:603,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:603,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:603,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:607,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:607,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:607,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:608,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:608,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:609,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:609,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:609,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:610,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:610,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:613,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:613,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:614,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:614,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:617,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:617,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:618,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:618,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:621,1
    - Dst: std::iota
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:622,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:622,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:622,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:623,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:624,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:626,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:628,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:630,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:630,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:631,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:631,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:632,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:633,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:634,1
    - Dst: Release
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:634,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:635,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:635,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:636,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:637,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:637,1
    - Dst: get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:638,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:639,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:639,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:640,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:640,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:641,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:642,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:645,1
    - Dst: TestEncodeDecode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 648
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::erase
    - absl::Bernoulli
    - S2Point
    - vector::end
    - shape
    - S2Loop::kEmpty
    - vector::size
    - S2Polygon::loop
    - make_unique<S2Loop>
    - S1Angle::Radians
    - make_unique<S2Loop::OwningShape>
    - S2Polygon::num_loops
    - num_shape_ids
    - Release
    - std::iota
    - S2Polygon::S2Polygon
    - TestEncodeDecode
    - QuadraticValidate
    - vector::begin
    - vector::push_back
    - S2Loop::kFull
    - std::move
    - absl::Uniform<size_t>
    - S2Testing::ConcentricLoopsPolygon
    - S1Angle::Degrees
    - vector::empty
    - make_unique<S2Polyline::OwningShape>
    - S2Testing::MakeTaggedSeedSeq
    - Add
    - get
    - S2Loop::MakeRegularLoop
    - MakePolylineOrDie
    - absl::SetFlag
    - ABSL_VLOG
    - s2random::SkewedInt
    - make_unique<S2Loop::Shape>
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, RandomUpdates)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 659
    functionName: LazyUpdatesTest::LazyUpdatesTest
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LazyUpdatesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_random::SharedBitGen::SharedBitGen
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:662,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:663,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:665,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:666,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:667,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:667,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:668,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:668,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 669
    functionName: LazyUpdatesTest::WriteOp
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - s2random::Point
    - std::move
    - S2Loop::MakeRegularLoop
    - make_unique<S2Loop::OwningShape>
    - util_random::SharedBitGen::SharedBitGen
    - Clear
    - S2Testing::KmToAngle
    - s2random::SkewedInt
    linkageType: ''
    returnType: void
    signature: void WriteOp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:673,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 676
    functionName: LazyUpdatesTest::ReadOp
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    linkageType: ''
    returnType: void
    signature: void ReadOp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LazyUpdatesTest::LazyUpdatesTest
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:686,1
    - Dst: LazyUpdatesTest::Run
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 693
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - LazyUpdatesTest::LazyUpdatesTest
    - LazyUpdatesTest::Run
    linkageType: ''
    returnType: void
    signature: void TEST(MutableS2ShapeIndex, ConstMethodsThreadSafe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:701,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:701,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:702,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:702,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:703,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:703,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:704,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:706,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:706,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:706,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:709,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:709,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:712,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:712,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 713
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - MutableS2ShapeIndex::Iterator::Locate
    - std::move
    - MakePolylineOrDie
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2Loop::Shape>
    - S2CellId::FromFace
    - EXPECT_EQ
    - make_unique<S2Polyline::OwningShape>
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(MutableS2ShapeIndex, MixedGeometry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Options::set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:725,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:726,1
    - Dst: MutableS2ShapeIndex::Options::max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:734,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:740,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:740,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:744,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:746,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:746,1
    - Dst: QuadraticValidate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:748,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:753,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:753,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 715
    functionDepth: 4
    functionLinenumber: 715
    functionLinenumberEnd: 757
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2::Interpolate
    - MutableS2ShapeIndex::Options::max_edges_per_cell
    - make_unique<S2EdgeVectorShape>
    - make_unique<S2PointVectorShape>
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - MutableS2ShapeIndex::Options::set_max_edges_per_cell
    - EXPECT_LE
    - Init
    - QuadraticValidate
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, LinearSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Options::set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:766,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:767,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:772,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:773,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:775,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:775,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:777,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:777,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:782,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:782,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:783,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:786,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:787,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 791
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - S2::FaceSiTitoXYZ
    - make_unique<S2LaxPolygonShape>
    - MutableS2ShapeIndex::Iterator::id
    - make_unique<S2EdgeVectorShape>
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - MutableS2ShapeIndex::Options::set_max_edges_per_cell
    - ABSL_LOG
    - Init
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, LongIndexEntriesBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:795,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:796,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:796,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:797,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:797,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:800,1
    - Dst: Remove
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:803,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:806,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:810,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 811
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - ForceBuild
    - EXPECT_TRUE
    - S2Loop::MakeRegularLoop
    - make_unique<S2Loop::OwningShape>
    - S1Angle::Degrees
    - MutableS2ShapeIndex::Iterator::done
    - Remove
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, AddRemoveShapeContainingOrigin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:817,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:817,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:818,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:820,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:820,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 822
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::FullDecodeShapeFactory
    - std::string::size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Init
    - std::string::data
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(MutableS2ShapeIndexTest, DecoderCatchesInvalidIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MyData
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:840,1
    - Dst: static_cast<MyData*>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:841,1
    - Dst: MyEdgeVectorShape::mutable_user_data
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:841,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:842,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:844,1
    - Dst: static_cast<const MyData*>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:844,1
    - Dst: MyEdgeVectorShape::user_data
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 845
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - static_cast<MyData*>
    - static_cast<const MyData*>
    - MyData
    - ABSL_DCHECK_EQ
    - MyEdgeVectorShape::mutable_user_data
    - MyEdgeVectorShape::user_data
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 827
    functionName: MyData
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MyData(int _x, int _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - MyData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 833
    functionName: MyEdgeVectorShape::MyEdgeVectorShape
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MyEdgeVectorShape(const MyData& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 834
    functionName: MyEdgeVectorShape::user_data
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * user_data() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 835
    functionName: MyEdgeVectorShape::mutable_user_data
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * mutable_user_data() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:851,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:854,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:855,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:856,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:856,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:860,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:862,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:863,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:864,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:864,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:865,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:866,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:866,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:866,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:867,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:868,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 872
    functionName: BenchmarkConstruction
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 1
    functionsReached:
    - string::begin
    - PauseTiming
    - s2random::Point
    - ResumeTiming
    - MutableS2ShapeIndex::ForceBuild
    - string::end
    - absl::StrCat
    - S2Loop::MakeRegularLoop
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - unique_ptr::get
    - S2Testing::KmToAngle
    - make_unique<S2Loop::Shape>
    - absl::GetFlag
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BenchmarkConstruction(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkConstruction
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 876
    functionName: BM_Construction
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkConstruction
    linkageType: ''
    returnType: void
    signature: void BM_Construction(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:891,1
    - Dst: range
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:892,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:893,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:896,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:897,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:898,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:898,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:901,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:901,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:902,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:906,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:907,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:909,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:915,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:918,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:919,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:921,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:921,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:921,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:922,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:923,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:924,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:927,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:929,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:932,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:932,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:933,1
    - Dst: const_cast<S2Shape*>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:933,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:933,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:934,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:935,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:939,1
    - Dst: MutableS2ShapeIndex::Release
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:941,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:943,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:946,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:948,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:948,1
    - Dst: WrapUnique
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:948,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:950,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - ' state'
    - num_edges_per_loop
    - benchmark_release
    argTypes:
    - benchmark::State
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 952
    functionName: BenchmarkLoopGridAddRelease
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::back
    - sqrt
    - vector::emplace_back
    - vector::size
    - cos
    - s2random::Frame
    - S1Angle::Radians
    - make_unique<S2Loop::OwningShape>
    - MutableS2ShapeIndex::Add
    - MutableS2ShapeIndex::shape
    - vector::push_back
    - ResumeTiming
    - std::string::end
    - absl::Uniform<size_t>
    - ABSL_CHECK_LE
    - S2Testing::KmToAngle
    - S2::FromFrame
    - std::string::begin
    - WrapUnique
    - tan
    - ceil
    - PauseTiming
    - MutableS2ShapeIndex::ForceBuild
    - const_cast<S2Shape*>
    - vector::pop_back
    - MutableS2ShapeIndex::Release
    - absl::StrCat
    - S2Loop::MakeRegularLoop
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void BenchmarkLoopGridAddRelease(benchmark::State& state,\n                                        int
      num_edges_per_loop,\n                                        bool benchmark_release)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkLoopGridAddRelease
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:955,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 957
    functionName: BM_IncrementalAddLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - absl::GetFlag
    - BenchmarkLoopGridAddRelease
    linkageType: ''
    returnType: void
    signature: void BM_IncrementalAddLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkLoopGridAddRelease
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:965,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 967
    functionName: BM_IncrementalReleaseLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - absl::GetFlag
    - BenchmarkLoopGridAddRelease
    linkageType: ''
    returnType: void
    signature: void BM_IncrementalReleaseLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:976,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:977,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:978,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:978,1
    - Dst: absl::SetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:981,1
    - Dst: static_cast<int64_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:982,1
    - Dst: range
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:982,1
    - Dst: S2Fractal::set_max_level
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:984,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:985,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:986,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:986,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:986,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:989,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:990,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:990,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:991,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:992,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 996
    functionName: BM_BigFractalConstruction
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - string::begin
    - make_unique<S2Polygon::Shape>
    - MutableS2ShapeIndex::ForceBuild
    - PauseTiming
    - S2Fractal::MakeLoop
    - static_cast<int64_t>
    - ResumeTiming
    - string::end
    - absl::StrCat
    - S2Point
    - range
    - S1Angle::Degrees
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - absl::SetFlag
    - S2Fractal::set_max_level
    - absl::GetFlag
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_BigFractalConstruction(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:891,1
    - Dst: range
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:892,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:893,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:896,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:897,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:898,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:898,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:901,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:901,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:902,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:906,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:907,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:909,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:915,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:918,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:919,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:921,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:921,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:921,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:922,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:923,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:924,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:927,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:929,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:932,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:932,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:933,1
    - Dst: const_cast<S2Shape*>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:933,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:933,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:934,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:935,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:939,1
    - Dst: MutableS2ShapeIndex::Release
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:941,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:943,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:946,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:948,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:948,1
    - Dst: WrapUnique
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:948,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:950,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - ' state'
    - num_edges_per_loop
    - benchmark_release
    argTypes:
    - benchmark::State
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 952
    functionName: BenchmarkLoopGridAddRelease
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 2
    functionsReached:
    - vector::back
    - sqrt
    - vector::emplace_back
    - vector::size
    - cos
    - s2random::Frame
    - S1Angle::Radians
    - make_unique<S2Loop::OwningShape>
    - MutableS2ShapeIndex::Add
    - MutableS2ShapeIndex::shape
    - vector::push_back
    - ResumeTiming
    - std::string::end
    - absl::Uniform<size_t>
    - ABSL_CHECK_LE
    - S2Testing::KmToAngle
    - S2::FromFrame
    - std::string::begin
    - WrapUnique
    - tan
    - ceil
    - PauseTiming
    - MutableS2ShapeIndex::ForceBuild
    - const_cast<S2Shape*>
    - vector::pop_back
    - MutableS2ShapeIndex::Release
    - absl::StrCat
    - S2Loop::MakeRegularLoop
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void BenchmarkLoopGridAddRelease(benchmark::State& state,\n                                        int
      num_edges_per_loop,\n                                        bool benchmark_release)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkLoopGridAddRelease
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:955,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 957
    functionName: BM_IncrementalAddLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - absl::GetFlag
    - BenchmarkLoopGridAddRelease
    linkageType: ''
    returnType: void
    signature: void BM_IncrementalAddLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkLoopGridAddRelease
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:965,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 967
    functionName: BM_IncrementalReleaseLoopGrid
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - absl::GetFlag
    - BenchmarkLoopGridAddRelease
    linkageType: ''
    returnType: void
    signature: void BM_IncrementalReleaseLoopGrid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:976,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:977,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:978,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:978,1
    - Dst: absl::SetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:981,1
    - Dst: static_cast<int64_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:982,1
    - Dst: range
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:982,1
    - Dst: S2Fractal::set_max_level
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:984,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:985,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:986,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:986,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:986,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:989,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:990,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:990,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:991,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:992,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc:994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 996
    functionName: BM_BigFractalConstruction
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - string::begin
    - make_unique<S2Polygon::Shape>
    - MutableS2ShapeIndex::ForceBuild
    - PauseTiming
    - S2Fractal::MakeLoop
    - static_cast<int64_t>
    - ResumeTiming
    - string::end
    - absl::StrCat
    - S2Point
    - range
    - S1Angle::Degrees
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - absl::SetFlag
    - S2Fractal::set_max_level
    - absl::GetFlag
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_BigFractalConstruction(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: S2PaddedCell::id
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: S2PaddedCell::padding
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double padding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: S2PaddedCell::level
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: '& bound() const'
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect & bound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pos
    - i
    - j
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: S2PaddedCell::GetChildIJ
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PaddedCell::GetChildIJ(int pos, int* i, int* j) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:69,1
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:72,1
    - Dst: index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:74,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:75,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:75,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:76,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:76,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:79,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:79,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:79,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:80,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:80,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:81,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:83,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:84,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:84,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:86,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:88,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:90,1
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:93,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:96,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:96,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:97,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:97,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:100,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:100,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:100,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:101,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:101,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:102,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:105,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:107,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:108,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:109,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:113,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:113,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:115,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:116,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:118,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:119,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:119,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:120,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - bitgen
    - ' options'
    - query_type
    argTypes:
    - absl::BitGenRef
    - S2RegionTermIndexer::Options
    - QueryType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 121
    functionName: TestRandomCaps
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - S2RegionTermIndexer::GetQueryTerms
    - s2random::Point
    - S2RegionTermIndexer::GetIndexTerms
    - end
    - static_cast<double>
    - max_level
    - begin
    - insert
    - vector::size
    - s2random::Cap
    - S2Cell::AverageArea
    - absl::PrintF
    - EXPECT_EQ
    - vector::push_back
    - S2CellUnion::Intersects
    - S2Cap::FromPoint
    - push_back
    - index_contains_points_only
    - S2RegionCoverer::GetCovering
    - absl::flat_hash_set::insert
    - S2Cap::S2Cap
    - absl::GetFlag
    - min_level
    linkageType: ''
    returnType: void
    signature: "void TestRandomCaps(absl::BitGenRef bitgen,\n                    const
      S2RegionTermIndexer::Options& options,\n                    QueryType query_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:128,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:129,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:132,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:133,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:134,1
    - Dst: S2RegionTermIndexer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:135,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_max_cells
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexRegionsQueryRegionsOptimizeTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:141,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:142,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:145,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:146,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:147,1
    - Dst: S2RegionTermIndexer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:148,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 8
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_max_cells
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexRegionsQueryPointsOptimizeTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:153,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:155,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:158,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:159,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:160,1
    - Dst: S2RegionTermIndexer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:161,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 8
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - S2RegionTermIndexer::Options::set_level_mod
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexRegionsQueryRegionsOptimizeTimeWithLevelMod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:167,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:168,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:171,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:172,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:173,1
    - Dst: S2RegionTermIndexer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:174,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 8
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_max_cells
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexRegionsQueryRegionsOptimizeSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:180,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:181,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:184,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:185,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:186,1
    - Dst: S2RegionTermIndexer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:187,1
    - Dst: S2RegionTermIndexer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:188,1
    - Dst: S2RegionTermIndexer::Options::set_index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:189,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 178
    functionDepth: 8
    functionLinenumber: 178
    functionLinenumberEnd: 191
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - S2RegionTermIndexer::Options::set_level_mod
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_max_cells
    - S2RegionTermIndexer::Options::set_index_contains_points_only
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexPointsQueryRegionsOptimizeTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:195,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:196,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:199,1
    - Dst: S2RegionTermIndexer::Options::set_index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:200,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 8
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_index_contains_points_only
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexPointsQueryRegionsOptimizeSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:207,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:208,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:212,1
    - Dst: S2RegionTermIndexer::options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:213,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:213,1
    - Dst: vector<string>
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:214,1
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:217,1
    - Dst: S2RegionTermIndexer::options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:218,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:218,1
    - Dst: vector<string>
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::GetQueryTerms
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - S2RegionTermIndexer::mutable_options
    - S2LatLng::FromDegrees
    - S2RegionTermIndexer::options
    - EXPECT_EQ
    - vector<string>
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, MarkerCharacter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:226,1
    - Dst: S2RegionTermIndexer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:227,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:228,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:230,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:233,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:234,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:237,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:237,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:239,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:239,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:240,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:243,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:243,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:245,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:245,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 247
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::GetQueryTerms
    - S2RegionTermIndexer::Options::set_max_level
    - s2random::Cap
    - s2random::Point
    - S2RegionTermIndexer::Options::set_min_level
    - S2RegionTermIndexer::GetIndexTerms
    - S2RegionTermIndexer::Options::set_level_mod
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, MaxLevelSetLoosely)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::S2RegionTermIndexer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:250,1
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:251,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:252,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:253,1
    - Dst: S2RegionTermIndexer::options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::mutable_options
    - S2RegionTermIndexer::S2RegionTermIndexer
    - std::move
    - S2RegionTermIndexer::options
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, MoveConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::S2RegionTermIndexer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:257,1
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:258,1
    - Dst: S2RegionTermIndexer::S2RegionTermIndexer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:259,1
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:260,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:262,1
    - Dst: S2RegionTermIndexer::options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::mutable_options
    - S2RegionTermIndexer::S2RegionTermIndexer
    - std::move
    - S2RegionTermIndexer::options
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, MoveAssignmentOperator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:69,1
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:72,1
    - Dst: index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:74,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:75,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:75,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:76,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:76,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:79,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:79,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:79,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:80,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:80,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:81,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:83,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:84,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:84,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:86,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:88,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:90,1
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:93,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:96,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:96,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:97,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:97,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:100,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:100,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:100,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:101,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:101,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:102,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:105,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:107,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:108,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:109,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:113,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:113,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:115,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:116,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:118,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:119,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:119,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:120,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - bitgen
    - ' options'
    - query_type
    argTypes:
    - absl::BitGenRef
    - S2RegionTermIndexer::Options
    - QueryType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 121
    functionName: TestRandomCaps
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 6
    functionsReached:
    - S2Cap::center
    - S2RegionTermIndexer::GetQueryTerms
    - s2random::Point
    - S2RegionTermIndexer::GetIndexTerms
    - end
    - static_cast<double>
    - max_level
    - begin
    - insert
    - vector::size
    - s2random::Cap
    - S2Cell::AverageArea
    - absl::PrintF
    - EXPECT_EQ
    - vector::push_back
    - S2CellUnion::Intersects
    - S2Cap::FromPoint
    - push_back
    - index_contains_points_only
    - S2RegionCoverer::GetCovering
    - absl::flat_hash_set::insert
    - S2Cap::S2Cap
    - absl::GetFlag
    - min_level
    linkageType: ''
    returnType: void
    signature: "void TestRandomCaps(absl::BitGenRef bitgen,\n                    const
      S2RegionTermIndexer::Options& options,\n                    QueryType query_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:128,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:129,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:132,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:133,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:134,1
    - Dst: S2RegionTermIndexer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:135,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_max_cells
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexRegionsQueryRegionsOptimizeTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:141,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:142,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:145,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:146,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:147,1
    - Dst: S2RegionTermIndexer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:148,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 8
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_max_cells
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexRegionsQueryPointsOptimizeTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:153,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:155,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:158,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:159,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:160,1
    - Dst: S2RegionTermIndexer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:161,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 8
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - S2RegionTermIndexer::Options::set_level_mod
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexRegionsQueryRegionsOptimizeTimeWithLevelMod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:167,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:168,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:171,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:172,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:173,1
    - Dst: S2RegionTermIndexer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:174,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 8
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_max_cells
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexRegionsQueryRegionsOptimizeSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:180,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:181,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:184,1
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:185,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:186,1
    - Dst: S2RegionTermIndexer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:187,1
    - Dst: S2RegionTermIndexer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:188,1
    - Dst: S2RegionTermIndexer::Options::set_index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:189,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 178
    functionDepth: 8
    functionLinenumber: 178
    functionLinenumberEnd: 191
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - S2RegionTermIndexer::Options::set_level_mod
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_max_cells
    - S2RegionTermIndexer::Options::set_index_contains_points_only
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexPointsQueryRegionsOptimizeTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:195,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:196,1
    - Dst: S2RegionTermIndexer::Options::set_optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:199,1
    - Dst: S2RegionTermIndexer::Options::set_index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:200,1
    - Dst: TestRandomCaps
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 8
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - TestRandomCaps
    - S2RegionTermIndexer::Options::set_index_contains_points_only
    - S2RegionTermIndexer::Options::set_optimize_for_space
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, IndexPointsQueryRegionsOptimizeSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:207,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:208,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:212,1
    - Dst: S2RegionTermIndexer::options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:213,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:213,1
    - Dst: vector<string>
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:214,1
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:217,1
    - Dst: S2RegionTermIndexer::options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:218,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:218,1
    - Dst: vector<string>
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::GetQueryTerms
    - S2RegionTermIndexer::Options::set_max_level
    - S2RegionTermIndexer::Options::set_min_level
    - S2RegionTermIndexer::mutable_options
    - S2LatLng::FromDegrees
    - S2RegionTermIndexer::options
    - EXPECT_EQ
    - vector<string>
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, MarkerCharacter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:226,1
    - Dst: S2RegionTermIndexer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:227,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:228,1
    - Dst: S2RegionTermIndexer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:230,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:233,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:234,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:237,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:237,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:239,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:239,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:240,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:243,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:243,1
    - Dst: S2RegionTermIndexer::GetIndexTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:245,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:245,1
    - Dst: S2RegionTermIndexer::GetQueryTerms
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 247
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::GetQueryTerms
    - S2RegionTermIndexer::Options::set_max_level
    - s2random::Cap
    - s2random::Point
    - S2RegionTermIndexer::Options::set_min_level
    - S2RegionTermIndexer::GetIndexTerms
    - S2RegionTermIndexer::Options::set_level_mod
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, MaxLevelSetLoosely)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::S2RegionTermIndexer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:250,1
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:251,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:252,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:253,1
    - Dst: S2RegionTermIndexer::options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::mutable_options
    - S2RegionTermIndexer::S2RegionTermIndexer
    - std::move
    - S2RegionTermIndexer::options
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, MoveConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::S2RegionTermIndexer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:257,1
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:258,1
    - Dst: S2RegionTermIndexer::S2RegionTermIndexer
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:259,1
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:260,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:262,1
    - Dst: S2RegionTermIndexer::options
      Src: /src/s2geometry/src/s2/s2region_term_indexer_test.cc:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionTermIndexer::mutable_options
    - S2RegionTermIndexer::S2RegionTermIndexer
    - std::move
    - S2RegionTermIndexer::options
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionTermIndexer, MoveAssignmentOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: S2PolylineSimplifier::S2PolylineSimplifier
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineSimplifier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: S2PolylineSimplifier::src
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point src() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unique_ptr<T>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:60,1
    - Dst: typename absl::remove_extent_t<T>::remove_extent_t<T>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: make_unique_for_overwrite
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - unique_ptr<T>
    - typename absl::remove_extent_t<T>::remove_extent_t<T>
    linkageType: ''
    returnType: unique_ptr<T>
    signature: unique_ptr<T> make_unique_for_overwrite(size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unique_ptr<T>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:60,1
    - Dst: typename absl::remove_extent_t<T>::remove_extent_t<T>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: make_unique_for_overwrite
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - unique_ptr<T>
    - typename absl::remove_extent_t<T>::remove_extent_t<T>
    linkageType: ''
    returnType: unique_ptr<T>
    signature: unique_ptr<T> make_unique_for_overwrite(size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loops
    argTypes:
    - absl::Span<const S2LaxPolygonShape::Loop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: S2LaxPolygonShape::S2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 19
    functionsReached:
    - S2LaxPolygonShape::Init
    linkageType: ''
    returnType: void
    signature: "void S2LaxPolygonShape::S2LaxPolygonShape(\n    absl::Span<const S2LaxPolygonShape::Loop>
      loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loops
    argTypes:
    - Span<const Span<const S2Point>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: S2LaxPolygonShape::S2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 19
    functionsReached:
    - S2LaxPolygonShape::Init
    linkageType: ''
    returnType: void
    signature: void S2LaxPolygonShape::S2LaxPolygonShape(Span<const Span<const S2Point>>
      loops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' polygon'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: S2LaxPolygonShape::S2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 19
    functionsReached:
    - S2LaxPolygonShape::Init
    linkageType: ''
    returnType: void
    signature: void S2LaxPolygonShape::S2LaxPolygonShape(const S2Polygon& polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:83,1
    - Dst: prev_loop_::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:84,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:85,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:86,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2LaxPolygonShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: S2LaxPolygonShape::S2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 19
    functionsReached:
    - std::move
    - prev_loop_::exchange
    - std::exchange
    linkageType: ''
    returnType: void
    signature: void S2LaxPolygonShape::S2LaxPolygonShape(S2LaxPolygonShape&& b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:93,1
    - Dst: store
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:94,1
    - Dst: prev_loop_::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:94,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:96,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:97,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2LaxPolygonShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: "& S2LaxPolygonShape::operator=(\n    S2LaxPolygonShape&& b) noexcept"
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - prev_loop_::exchange
    - store
    - std::exchange
    - std::move
    linkageType: ''
    returnType: S2LaxPolygonShape
    signature: "S2LaxPolygonShape & S2LaxPolygonShape::operator=(\n    S2LaxPolygonShape&&
      b) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:104,1
    - Dst: absl::Span<const S2LaxPolygonShape::Loop>::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:104,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:106,1
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - loops
    argTypes:
    - absl::Span<const S2LaxPolygonShape::Loop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: S2LaxPolygonShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 11
    functionsReached:
    - vector::reserve
    - S2LaxPolygonShape::Init
    - absl::Span<const S2LaxPolygonShape::Loop>::size
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void S2LaxPolygonShape::Init(absl::Span<const S2LaxPolygonShape::Loop>
      loops)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:113,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:114,1
    - Dst: S2Loop*::is_full
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:115,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:116,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:118,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:118,1
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:118,1
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:121,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:125,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:126,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:128,1
    - Dst: S2LaxPolygonShape::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' polygon'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: S2LaxPolygonShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 12
    functionsReached:
    - S2Loop*::is_full
    - S2LaxPolygonShape::Init
    - std::reverse
    - S2Loop*::num_vertices
    - S2LaxPolygonShape::num_loop_vertices
    - vector::emplace_back
    - S2Loop*::vertex
    - S2LaxPolygonShape::num_loops
    - loop
    linkageType: ''
    returnType: void
    signature: void S2LaxPolygonShape::Init(const S2Polygon& polygon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Span<const Span<const S2Point>>::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:134,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:138,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:139,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:140,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:140,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:140,1
    - Dst: make_unique_for_overwrite
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:143,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:147,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:150,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:152,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:152,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - loops
    argTypes:
    - Span<const Span<const S2Point>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 156
    functionName: S2LaxPolygonShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 12
    functionsReached:
    - MakeS2PointArrayForOverwrite
    - get
    - make_unique_for_overwrite
    - size
    - data
    - Span<const Span<const S2Point>>::size
    - std::copy_n
    linkageType: ''
    returnType: void
    signature: void S2LaxPolygonShape::Init(Span<const Span<const S2Point>> loops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:159,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:159,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: S2LaxPolygonShape::num_loop_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 4
    functionsReached:
    - S2LaxPolygonShape::num_loops
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: int
    signature: int S2LaxPolygonShape::num_loop_vertices(int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:168,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:168,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:169,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: '& S2LaxPolygonShape::loop_vertex(int i, int j) const'
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - num_loops
    - num_loop_vertices
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Point
    signature: S2Point & S2LaxPolygonShape::loop_vertex(int i, int j) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:179,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:180,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:181,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:181,1
    - Dst: s2coding::EncodeS2PointVector
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:182,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:182,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:182,1
    - Dst: S2LaxPolygonShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:182,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:184,1
    - Dst: s2coding::EncodeUintVector<uint32_t>
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:185,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:186,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:186,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - encoder
    - hint
    argTypes:
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: S2LaxPolygonShape::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - get
    - Encoder*::put_varint32
    - Encoder*::put8
    - S2LaxPolygonShape::num_vertices
    - s2coding::EncodeUintVector<uint32_t>
    - MakeSpan
    - S2LaxPolygonShape::num_loops
    - Encoder*::Ensure
    - s2coding::EncodeS2PointVector
    linkageType: ''
    returnType: void
    signature: "void S2LaxPolygonShape::Encode(Encoder* encoder,\n                               s2coding::CodingHint
      hint) const"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:193,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:198,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:199,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:202,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:204,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:208,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:209,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:213,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:214,1
    - Dst: s2coding::EncodedS2PointVector::EncodedS2PointVector
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:218,1
    - Dst: s2coding::EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:219,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:220,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:226,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:227,1
    - Dst: s2coding::EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:231,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:231,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:231,1
    - Dst: s2coding::EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:233,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:233,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:233,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:234,1
    - Dst: s2coding::EncodedUintVector::EncodedUintVector
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:240,1
    - Dst: s2coding::EncodedUintVector::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:241,1
    - Dst: s2coding::EncodedUintVector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:241,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:242,1
    - Dst: make_unique_for_overwrite
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:245,1
    - Dst: s2coding::EncodedUintVector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:245,1
    - Dst: s2coding::EncodedUintVector::size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:246,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - decoder
    - absl_nullable
    argTypes:
    - Decoder*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 253
    functionName: S2LaxPolygonShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 12
    functionsReached:
    - S2Error::DataLoss
    - s2coding::EncodedS2PointVector::Decode
    - absl::MakeSpan
    - MakeS2PointArrayForOverwrite
    - s2coding::EncodedUintVector::EncodedUintVector
    - get
    - make_unique_for_overwrite
    - Stats::max
    - Error
    - s2coding::EncodedS2PointVector::size
    - s2coding::EncodedUintVector::size
    - Decoder*::get_varint32
    - s2coding::EncodedUintVector::Init
    - s2coding::EncodedS2PointVector::Init
    - Decoder*::avail
    - ok
    - Decoder*::get8
    - s2coding::EncodedS2PointVector::EncodedS2PointVector
    linkageType: ''
    returnType: bool
    signature: bool S2LaxPolygonShape::Init(Decoder* decoder, S2Error* absl_nullable
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointVectorShape::chain_position
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:257,1
    - Dst: S2PointVectorShape::chain_edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: S2LaxPolygonShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 4
    functionsReached:
    - S2PointVectorShape::chain_position
    - S2PointVectorShape::chain_edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2LaxPolygonShape::edge(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: S2LaxPolygonShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 4
    functionsReached:
    - s2shapeutil::GetReferencePoint
    linkageType: ''
    returnType: S2Shape::ReferencePoint
    signature: S2Shape::ReferencePoint S2LaxPolygonShape::GetReferencePoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:266,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:266,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:267,1
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:268,1
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: S2LaxPolygonShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 4
    functionsReached:
    - Chain
    - S2LaxPolygonShape::num_loops
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Shape::Chain
    signature: S2Shape::Chain S2LaxPolygonShape::chain(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:277,1
    - Dst: prev_loop_::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:278,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:279,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - EncodedS2LaxPolygonShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 1
    functionsReached:
    - std::move
    - prev_loop_::exchange
    - std::exchange
    linkageType: ''
    returnType: void
    signature: "void EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape(\n    EncodedS2LaxPolygonShape&&
      b) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:284,1
    - Dst: store
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:285,1
    - Dst: prev_loop_::exchange
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:285,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:287,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - EncodedS2LaxPolygonShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 290
    functionName: "& EncodedS2LaxPolygonShape::operator=(\n    EncodedS2LaxPolygonShape&&
      b) noexcept"
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - prev_loop_::exchange
    - store
    - std::exchange
    - std::move
    linkageType: ''
    returnType: EncodedS2LaxPolygonShape
    signature: "EncodedS2LaxPolygonShape & EncodedS2LaxPolygonShape::operator=(\n
      \   EncodedS2LaxPolygonShape&& b) noexcept"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:293,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:294,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:298,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:301,1
    - Dst: EncodedS2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:304,1
    - Dst: EncodedS2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:307,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: EncodedS2LaxPolygonShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 2
    functionsReached:
    - Stats::max
    - Decoder*::get_varint32
    - Decoder*::avail
    - Decoder*::get8
    - EncodedS2LaxPolygonShape::Init
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2LaxPolygonShape::Init(Decoder* decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:315,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:316,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:317,1
    - Dst: EncodedS2LaxPolygonShape::Encode
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:318,1
    - Dst: EncodedS2LaxPolygonShape::Encode
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 322
    functionName: EncodedS2LaxPolygonShape::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 1
    functionsReached:
    - Encoder*::Ensure
    - Encoder*::put8
    - Encoder*::put_varint32
    - EncodedS2LaxPolygonShape::Encode
    linkageType: ''
    returnType: void
    signature: "void EncodedS2LaxPolygonShape::Encode(Encoder* encoder,\n                                      s2coding::CodingHint)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:325,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:326,1
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: EncodedS2LaxPolygonShape::num_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 1
    functionsReached:
    - size
    - EncodedS2LaxPolygonShape::num_loops
    linkageType: ''
    returnType: int
    signature: int EncodedS2LaxPolygonShape::num_vertices() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:333,1
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:333,1
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:334,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: EncodedS2LaxPolygonShape::num_loop_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - size
    - EncodedS2LaxPolygonShape::num_loops
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: int
    signature: int EncodedS2LaxPolygonShape::num_loop_vertices(int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:342,1
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:342,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:343,1
    - Dst: EncodedS2LaxPolygonShape::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:343,1
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 349
    functionName: EncodedS2LaxPolygonShape::loop_vertex
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - EncodedS2LaxPolygonShape::num_loops
    - EncodedS2LaxPolygonShape::num_loop_vertices
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Point
    signature: S2Point EncodedS2LaxPolygonShape::loop_vertex(int i, int j) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:352,1
    - Dst: EncodedS2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:352,1
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:354,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:355,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:356,1
    - Dst: S2PointVectorShape::chain_position
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:359,1
    - Dst: S2PointVectorShape::chain_edge
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: EncodedS2LaxPolygonShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - EncodedS2LaxPolygonShape::num_loops
    - size
    - EncodedS2LaxPolygonShape::num_edges
    - S2PointVectorShape::chain_position
    - S2PointVectorShape::chain_edge
    - ABSL_DCHECK_LT
    - Edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge EncodedS2LaxPolygonShape::edge(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: EncodedS2LaxPolygonShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::GetReferencePoint
    linkageType: ''
    returnType: S2Shape::ReferencePoint
    signature: S2Shape::ReferencePoint EncodedS2LaxPolygonShape::GetReferencePoint()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:369,1
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:369,1
    - Dst: EncodedS2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:370,1
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:371,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:371,1
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2lax_polygon_shape.cc:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 376
    functionName: EncodedS2LaxPolygonShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
    functionUses: 0
    functionsReached:
    - Chain
    - size
    - EncodedS2LaxPolygonShape::num_loops
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Shape::Chain
    signature: S2Shape::Chain EncodedS2LaxPolygonShape::chain(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges.h:44,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: s2shapeutil::CountEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_edges.h
    functionUses: 4
    functionsReached:
    - Stats::max
    - s2shapeutil::CountEdgesUpTo
    linkageType: ''
    returnType: int
    signature: int CountEdges(const S2ShapeIndexType& index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges.h:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' index'
    - max_edges
    argTypes:
    - S2ShapeIndexType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: s2shapeutil::CountEdgesUpTo
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_edges.h
    functionUses: 4
    functionsReached:
    - num_edges
    linkageType: ''
    returnType: int
    signature: int CountEdgesUpTo(const S2ShapeIndexType& index, int max_edges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges.h:44,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: s2shapeutil::CountEdges
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_edges.h
    functionUses: 4
    functionsReached:
    - Stats::max
    - s2shapeutil::CountEdgesUpTo
    linkageType: ''
    returnType: int
    signature: int CountEdges(const S2ShapeIndexType& index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_count_edges.h:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' index'
    - max_edges
    argTypes:
    - S2ShapeIndexType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: s2shapeutil::CountEdgesUpTo
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_edges.h
    functionUses: 5
    functionsReached:
    - num_edges
    linkageType: ''
    returnType: int
    signature: int CountEdgesUpTo(const S2ShapeIndexType& index, int max_edges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:53,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:55,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - expected
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: TestCrossingSignInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CopyingEdgeCrosser::CrossingSign
    - S2EdgeCrosser::CrossingSign
    linkageType: ''
    returnType: void
    signature: void TestCrossingSignInvalid(const S2Point& point, int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:60,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:62,1
    - Dst: S2CopyingEdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: TestEdgeOrVertexCrossingInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2EdgeCrosser::EdgeOrVertexCrossing
    - S2CopyingEdgeCrosser::EdgeOrVertexCrossing
    linkageType: ''
    returnType: void
    signature: void TestEdgeOrVertexCrossingInvalid(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:67,1
    - Dst: S2EdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:69,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: TestSignedEdgeOrVertexCrossingInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2EdgeCrosser::SignedEdgeOrVertexCrossing
    - S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
    linkageType: ''
    returnType: void
    signature: void TestSignedEdgeOrVertexCrossingInvalid(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCrossingSignInvalid
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:75,1
    - Dst: TestEdgeOrVertexCrossingInvalid
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:76,1
    - Dst: TestSignedEdgeOrVertexCrossingInvalid
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - TestCrossingSignInvalid
    - TestEdgeOrVertexCrossingInvalid
    - TestSignedEdgeOrVertexCrossingInvalid
    linkageType: ''
    returnType: void
    signature: void TEST(S2, InvalidDefaultPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:82,1
    - Dst: TestCrossingSignInvalid
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:84,1
    - Dst: TestEdgeOrVertexCrossingInvalid
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:85,1
    - Dst: TestSignedEdgeOrVertexCrossingInvalid
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - TestCrossingSignInvalid
    - TestEdgeOrVertexCrossingInvalid
    - TestSignedEdgeOrVertexCrossingInvalid
    - std::numeric_limits<double>::quiet_NaN
    linkageType: ''
    returnType: void
    signature: void TEST(S2, InvalidNanPoints)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:103,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:108,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:110,1
    - Dst: S2::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:113,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:114,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:115,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:116,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:116,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:119,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:120,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:121,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:122,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:122,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:125,1
    - Dst: S2EdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:126,1
    - Dst: S2EdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:127,1
    - Dst: S2EdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:128,1
    - Dst: S2EdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:128,1
    - Dst: S2EdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:131,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:133,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:134,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:138,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:139,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:140,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:141,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:141,1
    - Dst: S2CopyingEdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:144,1
    - Dst: S2CopyingEdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:145,1
    - Dst: S2CopyingEdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:146,1
    - Dst: S2CopyingEdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:147,1
    - Dst: S2CopyingEdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:147,1
    - Dst: S2CopyingEdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:150,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:151,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:152,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:153,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:153,1
    - Dst: S2CopyingEdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:156,1
    - Dst: S2CopyingEdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:158,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:159,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - crossing_sign
    - signed_crossing_sign
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 160
    functionName: TestCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::Init
    - S2EdgeCrosser::CrossingSign
    - S2CopyingEdgeCrosser::EdgeOrVertexCrossing
    - s2pred::Sign
    - S2::CrossingSign
    - S2::EdgeOrVertexCrossing
    - S2CopyingEdgeCrosser::Init
    - S2EdgeCrosser::SignedEdgeOrVertexCrossing
    - S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
    - S2CopyingEdgeCrosser::RestartAt
    - S2EdgeCrosser::EdgeOrVertexCrossing
    - S2CopyingEdgeCrosser::CrossingSign
    - S2EdgeCrosser::RestartAt
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestCrossing(const S2Point& a, const S2Point& b,\n                  const
      S2Point& c, const S2Point& d,\n                  int crossing_sign, int signed_crossing_sign)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:164,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:165,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:166,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:167,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:168,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:169,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:170,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:171,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:172,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:173,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:174,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:175,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:180,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:181,1
    - Dst: TestCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 6
    argNames:
    - a
    - b
    - c
    - d
    - crossing_sign
    - signed_crossing_sign
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 186
    functionName: TestCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - S2Point::Normalize
    - TestCrossing
    - ABSL_DCHECK_NE
    linkageType: ''
    returnType: void
    signature: "void TestCrossings(S2Point a, S2Point b, S2Point c, S2Point d,\n                   int
      crossing_sign, int signed_crossing_sign)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:193,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:193,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:193,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:194,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:194,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:197,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:197,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:197,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:198,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:198,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:201,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:201,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:201,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:202,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:202,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:205,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:205,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:205,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:206,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:206,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:210,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:210,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:210,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:211,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:211,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:215,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:215,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:215,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:216,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:216,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:221,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:221,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:221,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:221,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:222,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:222,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:225,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:225,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:225,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:225,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:226,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:226,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:231,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:231,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:231,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:232,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:232,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:235,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:235,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:235,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:236,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:236,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:241,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:241,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:241,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:242,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:242,1
    - Dst: TestCrossings
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:246,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:246,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:246,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:247,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 249
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2::Origin
    - TestCrossings
    - nextafter
    linkageType: ''
    returnType: void
    signature: void TEST(S2, Crossings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:252,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:253,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:256,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:257,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:258,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:259,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:260,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:260,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:261,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:261,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:263,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:263,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:264,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 266
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - s2random::Point
    - S2::Interpolate
    - S2EdgeCrosser::CrossingSign
    - S2::CrossingSign
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, CollinearEdgesThatDontTouch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:287,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:288,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:292,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:294,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:295,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:299,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:300,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:311,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:311,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:316,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:316,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:318,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:318,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:319,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 321
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - S2EdgeCrosser::CrossingSign
    - S2Point
    - S2Point::Normalize
    - S2::CrossingSign
    - S2Point::S2Point
    - pow
    - s2random::SkewedInt
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, CoincidentZeroLengthEdgesThatDontTouch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:330,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:330,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:331,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:331,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:336,1
    - Dst: crossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:346,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:350,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:351,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:352,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' state'
    - crossing
    argTypes:
    - benchmark::State
    - CrossingFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 353
    functionName: BenchmarkCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - crossing
    - s2random::Point
    - std::string::end
    - absl::StrCat
    - ABSL_VLOG
    - iterations
    - std::string::begin
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BenchmarkCrossing(benchmark::State& state, CrossingFunction crossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 357
    functionName: BM_EdgeOrVertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkCrossing
    linkageType: ''
    returnType: void
    signature: void BM_EdgeOrVertexCrossing(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: CrossingSignBool
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - S2::CrossingSign
    linkageType: ''
    returnType: bool
    signature: "bool CrossingSignBool(const S2Point& a, const S2Point& b, const S2Point&
      c,\n                      const S2Point& d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: BM_CrossingSign
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkCrossing
    linkageType: ''
    returnType: void
    signature: void BM_CrossingSign(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:371,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:372,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:373,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:373,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:377,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:379,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:380,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:380,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:387,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:391,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:392,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2edge_crosser_test.cc:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 394
    functionName: BM_RobustCrosserEdgesCross
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - std::string::end
    - S2EdgeCrosser::CrossingSign
    - S2Point
    - absl::StrCat
    - ABSL_VLOG
    - iterations
    - Normalize
    - std::string::begin
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_RobustCrosserEdgesCross(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: FurthestPointTarget::FurthestPointTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FurthestPointTarget(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: FurthestPointTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_brute_force_index_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:55,1
    - Dst: MakeCellUnionOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:55,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:56,1
    - Dst: FurthestCellQuery::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:59,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:60,1
    - Dst: FurthestCellQuery::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:61,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:62,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:63,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:64,1
    - Dst: label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:65,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:65,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - FurthestCellQuery::Options::set_max_results
    - MakeCellIdOrDie
    - auto::size
    - MakeCellUnionOrDie
    - label
    - cell_id
    - S2CellIndex::Add
    - S2CellIndex::Build
    - distance
    - EXPECT_EQ
    - S1ChordAngle
    - FurthestCellQuery::FindClosestCells
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQueryBase, MaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: FurthestPointTarget::FurthestPointTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FurthestPointTarget(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: FurthestPointTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_brute_force_index_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:55,1
    - Dst: MakeCellUnionOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:55,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:56,1
    - Dst: FurthestCellQuery::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:59,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:60,1
    - Dst: FurthestCellQuery::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:61,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:62,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:63,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:64,1
    - Dst: label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:65,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:65,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - FurthestCellQuery::Options::set_max_results
    - MakeCellIdOrDie
    - auto::size
    - MakeCellUnionOrDie
    - label
    - cell_id
    - S2CellIndex::Add
    - S2CellIndex::Build
    - distance
    - EXPECT_EQ
    - S1ChordAngle
    - FurthestCellQuery::FindClosestCells
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQueryBase, MaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:74,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lat_degrees
    - lng_degrees
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: GetCellId
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - S2CellId::id
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId GetCellId(double lat_degrees, double lng_degrees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:80,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:81,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::id
    - S2CellId::S2CellId
    - S2CellId::is_valid
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, DefaultConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:85,1
    - Dst: S2CellIdHash
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:85,1
    - Dst: GetCellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:85,1
    - Dst: S2CellIdHash
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:86,1
    - Dst: GetCellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellIdHash
    - GetCellId
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, S2CellIdHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:90,1
    - Dst: GetCellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:91,1
    - Dst: GetCellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:92,1
    - Dst: GetCellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:93,1
    - Dst: GetCellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:94,1
    - Dst: GetCellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:95,1
    - Dst: GetCellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetCellId
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, FaceDefinitions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:100,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:100,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellId::FromFacePosLevel
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, FromFace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:106,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:110,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:111,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:112,1
    - Dst: S2CellId::face
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellId::face
    - S2CellId::FromFacePosLevel
    - S2CellId::is_valid
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, MaxPositionIsValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:126,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_valid
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, PositionAboveMaxIsInvalid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:130,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:132,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:133,1
    - Dst: S2CellId::face
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:134,1
    - Dst: S2CellId::pos
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:135,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:135,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:136,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:138,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:138,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:139,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:140,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:141,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:141,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:141,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:144,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:144,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:145,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:146,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:146,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:147,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:147,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:148,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:148,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:152,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:152,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:152,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_leaf
    - EXPECT_GT
    - S2CellId::range_max
    - S2CellId::range_min
    - S2CellId::pos
    - EXPECT_TRUE
    - EXPECT_LT
    - S2CellId::id
    - S2CellId::level
    - S2CellId::face
    - S2CellId::parent
    - S2CellId::FromFacePosLevel
    - S2CellId::is_valid
    - S2CellId::child_begin
    - EXPECT_EQ
    - S2CellId::child_end
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, ParentChildRelationships)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:156,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:156,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:157,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:157,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellId::Sentinel
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, SentinelRangeMinMax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:161,1
    - Dst: S2CellId::GetCenterSiTi
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:168,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:169,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:170,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:173,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:174,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:175,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:178,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:179,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:180,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:183,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:184,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:185,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:188,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:189,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:190,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:193,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:194,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 196
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::GetCenterSiTi
    - S2CellId::parent
    - S2CellId::FromFacePosLevel
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, CenterSiTi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:200,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:200,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:202,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:202,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:204,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:205,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:205,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:209,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:209,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:210,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:210,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:212,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:212,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:214,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:214,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellId::End
    - S2CellId::FromFacePosLevel
    - S2CellId::Begin
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, Wrapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:222,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:222,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:223,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:223,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:224,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:224,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:225,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:225,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:227,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:227,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:229,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:229,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:231,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:231,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:236,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:236,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:237,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:237,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:238,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:238,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:239,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:239,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:240,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:240,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:241,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:242,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:242,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:243,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:244,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:244,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 247
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::next
    - S2CellId::FromFacePosLevel
    - S2CellId::Begin
    - S2CellId::child_begin
    - EXPECT_EQ
    - S2CellId::End
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, Advance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:250,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:251,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:251,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:252,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:255,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:256,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:256,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:260,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:260,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:260,1
    - Dst: S2CellId::distance_from_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::level
    - S2CellId::distance_from_begin
    - S2CellId::FromFacePosLevel
    - S2CellId::Begin
    - EXPECT_EQ
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, DistanceFromBegin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:264,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:265,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:270,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:271,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:272,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:272,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:273,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:273,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:274,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:274,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:274,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:277,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:277,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:278,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:278,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:279,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:279,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:280,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:280,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:281,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:281,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:284,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:284,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:284,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:284,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:285,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:285,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:285,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:286,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:286,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:286,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:287,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:287,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:288,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:289,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:289,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:290,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:293,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:293,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:294,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:294,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:295,1
    - Dst: S2CellId::maximum_tile
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:295,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 297
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::child
    - S2CellId::next
    - s2random::CellId
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - S2CellId::maximum_tile
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, MaximumTile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:301,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:301,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:303,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:303,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:307,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:307,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:308,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:309,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:309,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:313,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:313,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:314,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:315,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:315,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:316,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:319,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:319,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:321,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:322,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:322,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 325
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, GetCommonAncestorLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:330,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:330,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:332,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:333,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:333,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:334,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:334,1
    - Dst: S2CellId::ToLatLng
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:336,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:336,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 338
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_leaf
    - S2CellId
    - EXPECT_TRUE
    - S2CellId::id
    - S2CellId::level
    - S2CellId::ToLatLng
    - s2random::CellId
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, Inverses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:343,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:343,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:345,1
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:346,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:347,1
    - Dst: string::size
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:347,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:348,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:348,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:353,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:353,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:353,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:357,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:357,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:357,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:360,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:361,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:361,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:361,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:365,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:365,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:366,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:366,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:367,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:367,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:367,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:368,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:368,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 369
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToToken
    - string::size
    - S2CellId::None
    - s2random::CellId
    - S2CellId::Sentinel
    - EXPECT_LE
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2CellId::FromFace
    - S2CellId::FromToken
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, Tokens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:373,1
    - Dst: S2CellId::Encode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:374,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:375,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:375,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:376,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:377,1
    - Dst: S2CellId::Decode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Encode
    - EXPECT_TRUE
    - Encoder::length
    - Encoder::base
    - S2CellId::S2CellId
    - EXPECT_EQ
    - Encoder::Encoder
    - S2CellId::Decode
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, EncodeDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:382,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:383,1
    - Dst: S2CellId::Encode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:384,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:385,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:385,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:386,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:387,1
    - Dst: S2CellId::Decode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:387,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Encode
    - S2CellId::None
    - EXPECT_TRUE
    - Encoder::length
    - Encoder::base
    - S2CellId::S2CellId
    - EXPECT_EQ
    - Encoder::Encoder
    - S2CellId::Decode
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, EncodeDecodeNoneCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:393,1
    - Dst: S2CellId::Encode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:394,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:397,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:397,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:398,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:399,1
    - Dst: S2CellId::Decode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 400
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Encode
    - Encoder::length
    - Encoder::base
    - S2CellId::S2CellId
    - EXPECT_FALSE
    - Encoder::Encoder
    - S2CellId::Decode
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, DecodeFailsWithTruncatedBuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:404,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:405,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:406,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:407,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:407,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:408,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:409,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:409,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 411
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Encoder::length
    - s2coding::S2HintCoder::S2HintCoder
    - Encoder::base
    - S2CellId::S2CellId
    - EXPECT_EQ
    - Encoder::Encoder
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, LegacyCoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::data
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:416,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:416,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:417,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:418,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:419,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:419,1
    - Dst: Decoder::reset
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:423,1
    - Dst: string_view::data
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:423,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:423,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:424,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:424,1
    - Dst: Decoder::reset
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:428,1
    - Dst: string_view::data
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:428,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:428,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:429,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:429,1
    - Dst: Decoder::reset
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:433,1
    - Dst: string_view::data
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:433,1
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:433,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:434,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 435
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - string_view::data
    - s2coding::S2HintCoder::S2HintCoder
    - ASSERT_FALSE
    - S2CellId::S2CellId
    - string_view::size
    - Decoder::reset
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, LegacyCoderTokenInvalid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:438,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:439,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:440,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:441,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:442,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:442,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:443,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:444,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:444,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 446
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - EXPECT_TRUE
    - Encoder::length
    - s2coding::S2HintCoder::S2HintCoder
    - Encoder::base
    - S2CellId::S2CellId
    - EXPECT_EQ
    - Encoder::Encoder
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, LegacyCoderNoneCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:449,1
    - Dst: S2CellId::Coder::Encode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:456,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:456,1
    - Dst: S2CellId::Coder::Encode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:457,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:457,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:460,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:460,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:462,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:463,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:465,1
    - Dst: S2CellId::Coder::Decode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:465,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:466,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:466,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:468,1
    - Dst: S2CellId::Coder::Decode
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:468,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:469,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 471
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2CellId::Coder::Encode
    - S2CellId::None
    - Encoder::length
    - Encoder::base
    - S2CellId::FromFacePosLevel
    - S2CellId::S2CellId
    - ASSERT_TRUE
    - S2CellId::Coder::Decode
    - Encoder::Encoder
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, LegacyCoderMany)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:477,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:478,1
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:481,1
    - Dst: S2CellId::face
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:481,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:483,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:484,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:484,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:487,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:488,1
    - Dst: S2CellId::child_position
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:488,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:490,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:492,1
    - Dst: S2CellId::child_position
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:492,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:492,1
    - Dst: S2CellId::child_position
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:495,1
    - Dst: S2CellId::child_position
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:495,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:495,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:496,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:496,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:496,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:497,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:499,1
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:500,1
    - Dst: ExpandCell
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - parent
    - cells
    - parent_map
    argTypes:
    - S2CellId
    - vector<S2CellId>*
    - flat_hash_map<S2CellId, S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 503
    functionName: ExpandCell
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 1
    functionsReached:
    - S2CellId::is_leaf
    - vector<S2CellId>*::push_back
    - S2CellId::child_position
    - ExpandCell
    - S2CellId::level
    - S2CellId::face
    - S2CellId::next
    - S2CellId::ToFaceIJOrientation
    - S2CellId::child_begin
    - EXPECT_EQ
    - S2CellId::child_end
    - EXPECT_FALSE
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: "void ExpandCell(S2CellId parent, vector<S2CellId>* cells,\n                       flat_hash_map<S2CellId,
      S2CellId>* parent_map)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExpandCell
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:510,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:510,1
    - Dst: flat_hash_map::find
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:516,1
    - Dst: flat_hash_map::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:521,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:521,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:522,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:523,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:524,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:525,1
    - Dst: intersects
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:525,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:526,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:526,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 529
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - ExpandCell
    - flat_hash_map::find
    - range_min
    - range_max
    - flat_hash_map::end
    - EXPECT_EQ
    - S2CellId::FromFace
    - intersects
    - contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, Containment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:538,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:539,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:540,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:541,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:542,1
    - Dst: S2CellId::ToPointRaw
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:542,1
    - Dst: S2CellId::next_wrap
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:543,1
    - Dst: S2CellId::next_wrap
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:543,1
    - Dst: S2CellId::advance_wrap
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:543,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:544,1
    - Dst: S2CellId::next_wrap
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:544,1
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:549,1
    - Dst: S2CellId::ToPointRaw
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:549,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:551,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:551,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:551,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:552,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:552,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 554
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::advance_wrap
    - EXPECT_NEAR
    - S2CellId::next_wrap
    - GetValue
    - S2::UVtoST
    - S2CellId::next
    - S2::XYZtoFaceUV
    - remainder
    - EXPECT_LE
    - S2CellId::Begin
    - S2CellId::ToPointRaw
    - EXPECT_EQ
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, Continuity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:564,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:564,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:566,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:568,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:569,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:570,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 572
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2CellId
    - GetValue
    - S2Point::Angle
    - EXPECT_LE
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, Coverage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:575,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:575,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:576,1
    - Dst: S2CellId::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:583,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:584,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:585,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:585,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:586,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:586,1
    - Dst: S2CellId::AppendVertexNeighbors
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:587,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:590,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:590,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:590,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:591,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:591,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:591,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:592,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:592,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:592,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:592,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:592,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:593,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:593,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:593,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:593,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:593,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - id
    - level
    argTypes:
    - S2CellId
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 574
    functionDepth: 6
    functionLinenumber: 574
    functionLinenumberEnd: 595
    functionName: TestAllNeighbors
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - vector::erase
    - end
    - vector::end
    - begin
    - ABSL_DCHECK_GE
    - std::unique
    - S2CellId::next
    - S2CellId::AppendAllNeighbors
    - ABSL_DCHECK_LT
    - EXPECT_EQ
    - vector::begin
    - vector::push_back
    - S2CellId::level
    - erase
    - S2CellId::AppendVertexNeighbors
    - S2CellId::parent
    - S2CellId::child_begin
    - std::sort
    - S2CellId::child_end
    linkageType: ''
    returnType: void
    signature: void TestAllNeighbors(S2CellId id, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:601,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:603,1
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:603,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:604,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:604,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:611,1
    - Dst: S2CellId::GetEdgeNeighbors
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:613,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:616,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:617,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:617,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:618,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:618,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:619,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:619,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:620,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:620,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:625,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:625,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:626,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:626,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:626,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:628,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:628,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:633,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:636,1
    - Dst: S2CellId::AppendVertexNeighbors
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:637,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:638,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:638,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:638,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:639,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:639,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:640,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:640,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:641,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:641,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:642,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:642,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:647,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:647,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:649,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:650,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:650,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:654,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:654,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:655,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:655,1
    - Dst: TestAllNeighbors
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 597
    functionDepth: 7
    functionLinenumber: 597
    functionLinenumberEnd: 658
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - S2Point
    - vector::end
    - s2random::CellId
    - vector::size
    - S2CellId::is_leaf
    - min
    - S2CellId::FromFacePosLevel
    - EXPECT_EQ
    - vector::begin
    - S2CellId::FromFaceIJ
    - is_face
    - EXPECT_TRUE
    - S2CellId::level
    - face
    - S2CellId::AppendVertexNeighbors
    - S2CellId::FromFace
    - S2Testing::MakeTaggedSeedSeq
    - vector::clear
    - ASSERT_EQ
    - TestAllNeighbors
    - S2CellId::GetEdgeNeighbors
    - S2CellId::GetSizeIJ
    - S2CellId::parent
    - s2random::LogUniform
    - std::sort
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, Neighbors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:663,1
    - Dst: auto::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:665,1
    - Dst: auto::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:665,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:666,1
    - Dst: UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:667,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:667,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:668,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:669,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:670,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:671,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:672,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:673,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - auto::AppendAllNeighbors
    - EXPECT_THAT
    - UnorderedElementsAre
    - S2CellId::FromDebugString
    - auto::level
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, CornerCellHas7Neighbors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:678,1
    - Dst: auto::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:680,1
    - Dst: auto::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:680,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:681,1
    - Dst: UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:683,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:684,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:684,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:685,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:685,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:686,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:686,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:687,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 688
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - auto::AppendAllNeighbors
    - EXPECT_THAT
    - UnorderedElementsAre
    - S2CellId::FromDebugString
    - auto::level
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, AllTopLevelFaceNeighbors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:691,1
    - Dst: auto::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:693,1
    - Dst: auto::level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:693,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:694,1
    - Dst: UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:694,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:695,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:696,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:697,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:698,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:699,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:700,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:701,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 703
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - auto::AppendAllNeighbors
    - EXPECT_THAT
    - UnorderedElementsAre
    - S2CellId::FromDebugString
    - auto::level
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, AllNeighborsForZurich)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:708,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:709,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitgen
    - ' rect'
    argTypes:
    - absl::BitGenRef
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 712
    functionName: SampleBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 2
    functionsReached:
    - s2random::LogUniform
    - absl::Bernoulli
    linkageType: ''
    returnType: R2Point
    signature: R2Point SampleBoundary(absl::BitGenRef bitgen, const R2Rect& rect)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:716,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:717,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:718,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:719,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:720,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:721,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:721,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:722,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:722,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:723,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:723,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:724,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:725,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' uv'
    - ' rect'
    argTypes:
    - R2Point
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 726
    functionName: ProjectToBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 2
    functionsReached:
    - fabs
    - min
    - ABSL_CHECK_EQ
    - R2Point
    - Project
    linkageType: ''
    returnType: R2Point
    signature: R2Point ProjectToBoundary(const R2Point& uv, const R2Rect& rect)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:730,1
    - Dst: S2CellId::ExpandedByDistanceUV
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:731,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:734,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:735,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:736,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:740,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:740,1
    - Dst: S1Angle::abs
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:740,1
    - Dst: S2::FaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:744,1
    - Dst: ProjectToBoundary
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:745,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:746,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:747,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:749,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:752,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:753,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:753,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:759,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:759,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - bitgen
    - id
    - distance
    argTypes:
    - absl::BitGenRef
    - S2CellId
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 728
    functionDepth: 4
    functionLinenumber: 728
    functionLinenumberEnd: 763
    functionName: TestExpandedByDistanceUV
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ExpandedByDistanceUV
    - SampleBoundary
    - R2Rect::Contains
    - S1Angle::abs
    - EXPECT_TRUE
    - S2Cap
    - S2::FaceXYZtoUV
    - ProjectToBoundary
    - s2random::SamplePoint
    - S1Angle
    - s2random::LogUniform
    - S2CellId::GetBoundUV
    - S1Angle::Zero
    - EXPECT_FALSE
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: void
    signature: "void TestExpandedByDistanceUV(absl::BitGenRef bitgen, S2CellId id,\n
      \                             S1Angle distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:766,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:767,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:770,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:772,1
    - Dst: TestExpandedByDistanceUV
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:773,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 765
    functionDepth: 5
    functionLinenumber: 765
    functionLinenumberEnd: 775
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - TestExpandedByDistanceUV
    - S1Angle::Degrees
    - s2random::CellId
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, ExpandedByDistanceUV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:778,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:778,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:779,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:780,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:781,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 782
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellId::None
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, ToString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:785,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:785,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:785,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:786,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:786,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:787,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:788,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:788,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:789,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:790,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:790,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:791,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:792,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:792,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:792,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:793,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:793,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:793,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:794,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:794,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:794,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:795,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:795,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:795,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:796,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:796,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:796,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:797,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:797,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 798
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellId::FromDebugString
    - S2CellId::None
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, FromDebugString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:804,1
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 805
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ostringstream::str
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, OutputOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:810,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:811,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:811,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 813
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2coding::S2HintCoder::S2HintCoder
    - s2coding::RoundTrip
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:816,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:818,1
    - Dst: AbslParseFlag
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:818,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:819,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:819,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:820,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 821
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - AbslParseFlag
    - EXPECT_THAT
    - IsEmpty
    - S2CellId::S2CellId
    - S2CellId::FromToken
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, AbslParseFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:824,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:826,1
    - Dst: AbslParseFlag
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:826,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:827,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:827,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 828
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - AbslParseFlag
    - EXPECT_THAT
    - IsEmpty
    - S2CellId::S2CellId
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, AbslParseFlagError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:831,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:832,1
    - Dst: AbslUnparseFlag
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:832,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:832,1
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 833
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToToken
    - Eq
    - EXPECT_THAT
    - AbslUnparseFlag
    - S2CellId::FromToken
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, AbslUnparseFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:836,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:836,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:837,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:838,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:839,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:840,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:841,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:842,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:843,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:844,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:845,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 848
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - S2CellId::Sentinel
    - S2CellId::FromFacePosLevel
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, SupportsAbslHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:852,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:853,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:854,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:854,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:859,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:860,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 862
    functionName: BM_ToPointControl
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - S2CellId::id
    - S2CellId::Begin
    - S2CellId::End
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_ToPointControl(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:866,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:867,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:868,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:868,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:873,1
    - Dst: S2CellId::ToPointRaw
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:873,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:874,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 876
    functionName: BM_ToPointRaw
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - S2CellId::id
    - S2CellId::ToPointRaw
    - S2CellId::Begin
    - S2CellId::End
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_ToPointRaw(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:880,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:881,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:882,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:882,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:887,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:887,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:888,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 890
    functionName: BM_ToPoint
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToPoint
    - S2CellId
    - S2CellId::id
    - S2CellId::Begin
    - S2CellId::End
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_ToPoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::z
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:899,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:907,1
    - Dst: S2Point::y
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:907,1
    - Dst: S2Point::x
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:907,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 910
    functionName: BM_FromPointControl
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2Point::z
    - S2Point::x
    - S2Point::y
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_FromPointControl(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::z
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:915,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:920,1
    - Dst: S2Point::y
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:920,1
    - Dst: S2Point::x
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:920,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:921,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 923
    functionName: BM_FromPoint
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - S2Point
    - S2Point::z
    - S2Point::x
    - S2Point::y
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_FromPoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:928,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:928,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:929,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:929,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:934,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:936,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:937,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:939,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:940,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 942
    functionName: BM_FromFaceIJ
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - string::end
    - absl::StrCat
    - s2random::LogUniform
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - S2CellId::FromFaceIJ
    linkageType: ''
    returnType: void
    signature: void BM_FromFaceIJ(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:947,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:947,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:948,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:948,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:951,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:957,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:959,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:961,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:961,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 964
    functionName: BM_level
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - KeepRunningBatch
    - level
    - string::end
    - absl::StrCat
    - range
    - s2random::CellId
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_level(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:969,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:969,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:970,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:970,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:973,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:979,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:981,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:983,1
    - Dst: child_position
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 985
    functionName: BM_child_position
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - KeepRunningBatch
    - child_position
    - string::end
    - absl::StrCat
    - range
    - s2random::CellId
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_child_position(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:990,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:990,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:991,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:991,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:994,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:995,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:997,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:998,1
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1000
    functionName: BM_ToToken
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToToken
    - string::begin
    - string::end
    - absl::StrCat
    - range
    - s2random::CellId
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_ToToken(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:1005,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:1005,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:1006,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:1006,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:1009,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:1010,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:1012,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:1013,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_id_test.cc:1013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1015
    functionName: BM_FromToken
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - S2CellId::FromToken
    - string::end
    - absl::StrCat
    - range
    - s2random::CellId
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FromToken(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - points
    - ' options'
    argTypes:
    - vector<S2Point>*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: s2builderutil::S2PointVectorLayer::S2PointVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PointVectorLayer::S2PointVectorLayer(vector<S2Point>* points,\n
      \                                      const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - points
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - vector<S2Point>*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: s2builderutil::S2PointVectorLayer::S2PointVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PointVectorLayer::S2PointVectorLayer(vector<S2Point>* points,\n
      \                                      LabelSetIds* label_set_ids,\n                                       IdSetLexicon*
      label_set_lexicon,\n                                       const Options& options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:63,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:63,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:65,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:67,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:70,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:70,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:72,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:73,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 77
    functionName: s2builderutil::S2PointVectorLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc
    functionUses: 0
    functionsReached:
    - Add
    - static_cast<size_t>
    - Graph::LabelFetcher::Fetch
    - edges
    - S2Error::InvalidArgument
    - push_back
    - vertex
    - edge
    linkageType: ''
    returnType: void
    signature: void S2PointVectorLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:80,1
    - Dst: duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: s2builderutil::S2PointVectorLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - duplicate_edges
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions S2PointVectorLayer::graph_options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - points
    - ' options'
    argTypes:
    - vector<S2Point>*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: s2builderutil::S2PointVectorLayer::S2PointVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PointVectorLayer::S2PointVectorLayer(vector<S2Point>* points,\n
      \                                      const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - points
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - vector<S2Point>*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: s2builderutil::S2PointVectorLayer::S2PointVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PointVectorLayer::S2PointVectorLayer(vector<S2Point>* points,\n
      \                                      LabelSetIds* label_set_ids,\n                                       IdSetLexicon*
      label_set_lexicon,\n                                       const Options& options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:63,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:63,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:65,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:67,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:70,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:70,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:72,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:73,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 77
    functionName: s2builderutil::S2PointVectorLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc
    functionUses: 0
    functionsReached:
    - Add
    - static_cast<size_t>
    - Graph::LabelFetcher::Fetch
    - edges
    - S2Error::InvalidArgument
    - push_back
    - vertex
    - edge
    linkageType: ''
    returnType: void
    signature: void S2PointVectorLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:80,1
    - Dst: duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: s2builderutil::S2PointVectorLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - duplicate_edges
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions S2PointVectorLayer::graph_options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: S2EdgeTessellator::kMinTolerance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2EdgeTessellator::kMinTolerance()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeTessellator::kMinTolerance
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:193,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:193,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:197,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:198,1
    - Dst: S2EdgeTessellator::kMinTolerance
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - projection
    - tolerance
    argTypes:
    - S2::Projection*
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 199
    functionName: S2EdgeTessellator::S2EdgeTessellator
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - S2EdgeTessellator::kMinTolerance
    - S1ChordAngle
    - std::max
    linkageType: ''
    returnType: void
    signature: "void S2EdgeTessellator::S2EdgeTessellator(const S2::Projection* projection,\n
      \                                    S1Angle tolerance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:208,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:208,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:212,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:213,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:214,1
    - Dst: Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:214,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:215,1
    - Dst: Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:215,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:216,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:216,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' pa'
    - ' a'
    - ' pb'
    - ' b'
    argTypes:
    - R2Point
    - S2Point
    - R2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: S2EdgeTessellator::EstimateMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - S2::Interpolate
    - Unproject
    - S1ChordAngle::Infinity
    - std::max
    - Interpolate
    - S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle S2EdgeTessellator::EstimateMaxError(\n    const R2Point&
      pa, const S2Point& a, const R2Point& pb, const S2Point& b)\n    const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:221,1
    - Dst: vector<R2Point>*::empty
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:222,1
    - Dst: vector<R2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:223,1
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:225,1
    - Dst: vector<R2Point>*::back
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:225,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:226,1
    - Dst: vector<R2Point>*::back
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:226,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:228,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - vertices
    argTypes:
    - S2Point
    - S2Point
    - vector<R2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: S2EdgeTessellator::AppendProjected
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator.cc
    functionUses: 1
    functionsReached:
    - vector<R2Point>*::empty
    - ABSL_DCHECK_EQ
    - vector<R2Point>*::back
    - vector<R2Point>*::push_back
    - S2EdgeTessellator::AppendProjected
    - WrapDestination
    - Project
    linkageType: ''
    returnType: void
    signature: "void S2EdgeTessellator::AppendProjected(\n    const S2Point& a, const
      S2Point& b, vector<R2Point>* vertices) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:240,1
    - Dst: S2EdgeTessellator::EstimateMaxError
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:241,1
    - Dst: vector<R2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:242,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:244,1
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:245,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:245,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:246,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ' pa'
    - ' a'
    - ' pb_in'
    - ' b'
    - vertices
    argTypes:
    - R2Point
    - S2Point
    - R2Point
    - S2Point
    - vector<R2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 237
    functionDepth: 5
    functionLinenumber: 237
    functionLinenumberEnd: 249
    functionName: S2EdgeTessellator::AppendProjected
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator.cc
    functionUses: 2
    functionsReached:
    - vector<R2Point>*::push_back
    - Normalize
    - S2EdgeTessellator::AppendProjected
    - S2EdgeTessellator::EstimateMaxError
    - WrapDestination
    - Project
    linkageType: ''
    returnType: void
    signature: "void S2EdgeTessellator::AppendProjected(const R2Point& pa, const S2Point&
      a,\n                                        const R2Point& pb_in, const S2Point&
      b,\n                                        vector<R2Point>* vertices) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:253,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:254,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:255,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:256,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:263,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:263,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:263,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' pa'
    - ' pb'
    - vertices
    argTypes:
    - R2Point
    - R2Point
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 267
    functionName: S2EdgeTessellator::AppendUnprojected
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator.cc
    functionUses: 1
    functionsReached:
    - vector<S2Point>*::push_back
    - S2::ApproxEquals
    - vector<S2Point>*::empty
    - vector<S2Point>*::back
    - Unproject
    - S2EdgeTessellator::AppendUnprojected
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void S2EdgeTessellator::AppendUnprojected(\n    const R2Point& pa,
      const R2Point& pb, vector<S2Point>* vertices) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:275,1
    - Dst: S2EdgeTessellator::EstimateMaxError
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:276,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:277,1
    - Dst: Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:279,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:280,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:281,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator.cc:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ' pa'
    - ' a'
    - ' pb_in'
    - ' b'
    - vertices
    argTypes:
    - R2Point
    - S2Point
    - R2Point
    - S2Point
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: S2EdgeTessellator::AppendUnprojected
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator.cc
    functionUses: 2
    functionsReached:
    - vector<S2Point>*::push_back
    - Unproject
    - S2EdgeTessellator::EstimateMaxError
    - Interpolate
    - WrapDestination
    - S2EdgeTessellator::AppendUnprojected
    linkageType: ''
    returnType: void
    signature: "void S2EdgeTessellator::AppendUnprojected(\n    const R2Point& pa,
      const S2Point& a,\n    const R2Point& pb_in, const S2Point& b, vector<S2Point>*
      vertices) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:66,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:67,1
    - Dst: std::string::erase
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:70,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:73,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:75,1
    - Dst: std::string::erase
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:77,1
    - Dst: std::string::erase
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 88
    functionName: BruteForceQuadraticPrune
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::string::erase
    linkageType: ''
    returnType: std::string
    signature: std::string BruteForceQuadraticPrune(const string_view s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:93,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:94,1
    - Dst: string_view::substr
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:94,1
    - Dst: string_view::substr
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: BruteForceQuadraticCyclicallyCanonicalize
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - string_view::substr
    - string_view::size
    linkageType: ''
    returnType: std::string
    signature: std::string BruteForceQuadraticCyclicallyCanonicalize(const string_view
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:107,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - loop_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: MakeTestLoop
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Point
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> MakeTestLoop(string_view loop_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeTestLoop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:117,1
    - Dst: S2::PruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:120,1
    - Dst: string::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:121,1
    - Dst: static_cast<char>
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:123,1
    - Dst: BruteForceQuadraticCyclicallyCanonicalize
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:123,1
    - Dst: BruteForceQuadraticCyclicallyCanonicalize
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input_str
    - expected_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: TestPruneDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestLoop
    - static_cast<char>
    - string::push_back
    - S2::PruneDegeneracies
    - EXPECT_EQ
    - BruteForceQuadraticCyclicallyCanonicalize
    linkageType: ''
    returnType: std::string
    signature: "std::string TestPruneDegeneracies(string_view input_str,\n                                  string_view
      expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:130,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:131,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:132,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:133,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:134,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:135,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:136,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:137,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:138,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:139,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 141
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - TestPruneDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(PruneDegeneracies, CompletelyDegenerate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:144,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:145,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:146,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:147,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:148,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:149,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:150,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:151,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:152,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:153,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:154,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:155,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:156,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:157,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - TestPruneDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(PruneDegeneracies, PartiallyDegenerate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:167,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:172,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:184,1
    - Dst: static_cast<char>
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:184,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:187,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:190,1
    - Dst: BruteForceQuadraticPrune
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:190,1
    - Dst: ABSL_VLOG_IS_ON
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:196,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:207,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 215
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_VLOG_IS_ON
    - ABSL_CHECK_EQ
    - static_cast<char>
    - ABSL_VLOG
    - BruteForceQuadraticPrune
    - std::string::push_back
    - ABSL_LOG
    - std::pow
    - TestPruneDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(PruneDegeneracies, AllSmallCases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:221,1
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:221,1
    - Dst: MakeTestLoop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input_str
    - expected_order
    argTypes:
    - string_view
    - S2::LoopOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: TestCanonicalLoopOrder
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - MakeTestLoop
    - S2::GetCanonicalLoopOrder
    linkageType: ''
    returnType: void
    signature: "void TestCanonicalLoopOrder(string_view input_str,\n                            S2::LoopOrder
      expected_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:225,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:225,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:226,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:226,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:227,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:227,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:228,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:228,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:229,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:229,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:230,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:230,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:231,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - TestCanonicalLoopOrder
    - S2::LoopOrder
    linkageType: ''
    returnType: void
    signature: void TEST(GetCanonicalLoopOrder, AllDegeneracies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:235,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:235,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:239,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:240,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPerimeter
    - EXPECT_DOUBLE_EQ
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, Octant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:246,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:247,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPerimeter
    - EXPECT_DOUBLE_EQ
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, MoreThanTwoPi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:251,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:252,1
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetSignedArea
    - EXPECT_GT
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetSignedArea, Underflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GTEST_SKIP
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:257,1
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:267,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:271,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:273,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:275,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:276,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:277,1
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:279,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:286,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 288
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2::GetSignedArea
    - EXPECT_NEAR
    - GTEST_SKIP
    - vector::reserve
    - ABSL_CHECK_EQ
    - std::fabs
    linkageType: ''
    returnType: void
    signature: void TEST(GetSignedArea, ErrorAccumulation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:311,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:314,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:317,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:320,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:323,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:326,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:331,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:336,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:339,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 345
    functionName: LoopTestBase::LoopTestBase
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void LoopTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:352,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:353,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:355,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:355,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - vector<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 358
    functionName: TestAreaConsistentWithCurvature
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetCurvature
    - fabs
    - s2textformat::ToString
    - S2::GetArea
    - EXPECT_LE
    linkageType: ''
    returnType: void
    signature: void TestAreaConsistentWithCurvature(const vector<S2Point>& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:361,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:362,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:363,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:364,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:365,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:366,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:367,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:368,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:369,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 371
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - TestAreaConsistentWithCurvature
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetAreaConsistentWithCurvature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:381,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:384,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:384,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:385,1
    - Dst: S2::GetSurfaceIntegral
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:385,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 387
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - S2Loop
    - TestAreaConsistentWithCurvature
    - Normalize
    - S2::GetSurfaceIntegral
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetSurfaceIntegralGreaterThan4Pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:395,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:396,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:399,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:404,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:408,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:409,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:409,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:412,1
    - Dst: S2::IsNormalized
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:413,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:415,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:415,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:416,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:417,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:417,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 419
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Loop
    - EXPECT_NEAR
    - S2Point
    - s2textformat::ToString
    - S2LatLng::FromRadians
    - S2::IsNormalized
    - S2::GetArea
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - vector::clear
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetAreaConsistentWithOrientation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetAreaAccuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:427,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:427,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:428,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:428,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:428,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:430,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:430,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:431,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:431,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:436,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:437,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:440,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:441,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:452,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:453,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:455,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:459,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:460,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:460,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:460,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:461,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:461,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:462,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:464,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:465,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:467,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:467,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:469,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 471
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - cos
    - EXPECT_NEAR
    - s2random::Frame
    - min
    - S2Point::S2Point
    - sin
    - EXPECT_EQ
    - S2::GetCentroid
    - vector::push_back
    - fabs
    - S2::GetArea
    - EXPECT_LE
    - acos
    - S2Testing::MakeTaggedSeedSeq
    - tan
    - Norm
    - EXPECT_DOUBLE_EQ
    - asin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetAreaAndCentroid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:475,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:475,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:475,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:478,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - loop1
    - order1
    - loop2
    - order2
    argTypes:
    - S2PointLoopSpan
    - S2::LoopOrder
    - S2PointLoopSpan
    - S2::LoopOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 483
    functionName: ExpectSameOrder
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2PointLoopSpan::size
    - ASSERT_EQ
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void ExpectSameOrder(S2PointLoopSpan loop1, S2::LoopOrder order1,\n
      \                           S2PointLoopSpan loop2, S2::LoopOrder order2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:488,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:490,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:491,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:492,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:492,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:492,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:493,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:494,1
    - Dst: ExpectSameOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:495,1
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:495,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:496,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:496,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:496,1
    - Dst: std::rotate
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:497,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:497,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:497,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:498,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:498,1
    - Dst: ExpectSameOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:499,1
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' loop_in'
    argTypes:
    - vector<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 501
    functionName: CheckCurvatureInvariants
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - std::rotate
    - S2::GetCurvature
    - std::reverse
    - auto::end
    - S2::GetCanonicalLoopOrder
    - auto::size
    - auto::begin
    - ExpectSameOrder
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void CheckCurvatureInvariants(const vector<S2Point>& loop_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:504,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:504,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:506,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:506,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:507,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:510,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:510,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:511,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:513,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:513,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:514,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:518,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:519,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:521,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:521,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:522,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:524,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:524,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:525,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:535,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:538,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:539,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:542,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:543,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:552,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:552,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:552,1
    - Dst: S2::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 554
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - CheckCurvatureInvariants
    - S2::GetCurvature
    - EXPECT_DOUBLE_EQ
    - S2::GetCurvatureMaxError
    - EXPECT_NEAR
    - S2Point
    - S2::GetArea
    - sin
    - EXPECT_EQ
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetCurvature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:558,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:559,1
    - Dst: S2::internal::KahanSum<double>::Compensation
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::internal::KahanSum<double>::Compensation
    linkageType: ''
    returnType: void
    signature: void TEST(KahanSum, DefaultValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:566,1
    - Dst: S2::internal::KahanSum<double>::Compensation
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 567
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::internal::KahanSum<double>::Compensation
    linkageType: ''
    returnType: void
    signature: void TEST(KahanSum, SingleValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:583,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:583,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:585,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 587
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_GE
    - fabs
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(KahanSum, SumOfSquares)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:66,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:67,1
    - Dst: std::string::erase
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:70,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:73,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:75,1
    - Dst: std::string::erase
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:77,1
    - Dst: std::string::erase
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 88
    functionName: BruteForceQuadraticPrune
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 1
    functionsReached:
    - std::string::size
    - std::string::erase
    linkageType: ''
    returnType: std::string
    signature: std::string BruteForceQuadraticPrune(const string_view s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:93,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:94,1
    - Dst: string_view::substr
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:94,1
    - Dst: string_view::substr
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: BruteForceQuadraticCyclicallyCanonicalize
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 1
    functionsReached:
    - absl::StrCat
    - string_view::substr
    - string_view::size
    linkageType: ''
    returnType: std::string
    signature: std::string BruteForceQuadraticCyclicallyCanonicalize(const string_view
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:107,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - loop_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: MakeTestLoop
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 2
    functionsReached:
    - vector::push_back
    - S2Point
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> MakeTestLoop(string_view loop_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeTestLoop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:117,1
    - Dst: S2::PruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:120,1
    - Dst: string::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:121,1
    - Dst: static_cast<char>
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:123,1
    - Dst: BruteForceQuadraticCyclicallyCanonicalize
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:123,1
    - Dst: BruteForceQuadraticCyclicallyCanonicalize
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input_str
    - expected_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: TestPruneDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 3
    functionsReached:
    - MakeTestLoop
    - static_cast<char>
    - string::push_back
    - S2::PruneDegeneracies
    - EXPECT_EQ
    - BruteForceQuadraticCyclicallyCanonicalize
    linkageType: ''
    returnType: std::string
    signature: "std::string TestPruneDegeneracies(string_view input_str,\n                                  string_view
      expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:130,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:131,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:132,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:133,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:134,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:135,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:136,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:137,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:138,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:139,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 141
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - TestPruneDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(PruneDegeneracies, CompletelyDegenerate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:144,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:145,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:146,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:147,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:148,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:149,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:150,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:151,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:152,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:153,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:154,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:155,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:156,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:157,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - TestPruneDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(PruneDegeneracies, PartiallyDegenerate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:167,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:172,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:184,1
    - Dst: static_cast<char>
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:184,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:187,1
    - Dst: TestPruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:190,1
    - Dst: BruteForceQuadraticPrune
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:190,1
    - Dst: ABSL_VLOG_IS_ON
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:196,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:207,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 215
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_VLOG_IS_ON
    - ABSL_CHECK_EQ
    - static_cast<char>
    - ABSL_VLOG
    - BruteForceQuadraticPrune
    - std::string::push_back
    - ABSL_LOG
    - std::pow
    - TestPruneDegeneracies
    linkageType: ''
    returnType: void
    signature: void TEST(PruneDegeneracies, AllSmallCases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:221,1
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:221,1
    - Dst: MakeTestLoop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input_str
    - expected_order
    argTypes:
    - string_view
    - S2::LoopOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: TestCanonicalLoopOrder
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_EQ
    - MakeTestLoop
    - S2::GetCanonicalLoopOrder
    linkageType: ''
    returnType: void
    signature: "void TestCanonicalLoopOrder(string_view input_str,\n                            S2::LoopOrder
      expected_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:225,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:225,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:226,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:226,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:227,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:227,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:228,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:228,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:229,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:229,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:230,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:230,1
    - Dst: TestCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:231,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - TestCanonicalLoopOrder
    - S2::LoopOrder
    linkageType: ''
    returnType: void
    signature: void TEST(GetCanonicalLoopOrder, AllDegeneracies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:235,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:235,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:239,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:240,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPerimeter
    - EXPECT_DOUBLE_EQ
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, Octant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:246,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:247,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPerimeter
    - EXPECT_DOUBLE_EQ
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, MoreThanTwoPi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:251,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:252,1
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetSignedArea
    - EXPECT_GT
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetSignedArea, Underflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GTEST_SKIP
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:257,1
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:267,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:271,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:273,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:275,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:276,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:277,1
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:279,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:286,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 288
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2::GetSignedArea
    - EXPECT_NEAR
    - GTEST_SKIP
    - vector::reserve
    - ABSL_CHECK_EQ
    - std::fabs
    linkageType: ''
    returnType: void
    signature: void TEST(GetSignedArea, ErrorAccumulation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:311,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:314,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:317,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:320,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:323,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:326,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:331,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:336,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:339,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 345
    functionName: LoopTestBase::LoopTestBase
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void LoopTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:352,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:353,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:355,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:355,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - vector<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 358
    functionName: TestAreaConsistentWithCurvature
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 2
    functionsReached:
    - S2::GetCurvature
    - fabs
    - s2textformat::ToString
    - S2::GetArea
    - EXPECT_LE
    linkageType: ''
    returnType: void
    signature: void TestAreaConsistentWithCurvature(const vector<S2Point>& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:361,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:362,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:363,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:364,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:365,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:366,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:367,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:368,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:369,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 371
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - TestAreaConsistentWithCurvature
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetAreaConsistentWithCurvature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:381,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:384,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:384,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:385,1
    - Dst: S2::GetSurfaceIntegral
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:385,1
    - Dst: TestAreaConsistentWithCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 387
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - S2Loop
    - TestAreaConsistentWithCurvature
    - Normalize
    - S2::GetSurfaceIntegral
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetSurfaceIntegralGreaterThan4Pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:395,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:396,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:399,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:404,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:408,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:409,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:409,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:412,1
    - Dst: S2::IsNormalized
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:413,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:415,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:415,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:416,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:417,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:417,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 419
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Loop
    - EXPECT_NEAR
    - S2Point
    - s2textformat::ToString
    - S2LatLng::FromRadians
    - S2::IsNormalized
    - S2::GetArea
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - vector::clear
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetAreaConsistentWithOrientation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetAreaAccuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:427,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:427,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:428,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:428,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:428,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:430,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:430,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:431,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:431,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:436,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:437,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:440,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:441,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:452,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:453,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:454,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:455,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:459,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:460,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:460,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:460,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:461,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:461,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:462,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:464,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:465,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:467,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:467,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:469,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 471
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - cos
    - EXPECT_NEAR
    - s2random::Frame
    - min
    - S2Point::S2Point
    - sin
    - EXPECT_EQ
    - S2::GetCentroid
    - vector::push_back
    - fabs
    - S2::GetArea
    - EXPECT_LE
    - acos
    - S2Testing::MakeTaggedSeedSeq
    - tan
    - Norm
    - EXPECT_DOUBLE_EQ
    - asin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetAreaAndCentroid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:475,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:475,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:475,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:478,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - loop1
    - order1
    - loop2
    - order2
    argTypes:
    - S2PointLoopSpan
    - S2::LoopOrder
    - S2PointLoopSpan
    - S2::LoopOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 483
    functionName: ExpectSameOrder
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 1
    functionsReached:
    - S2PointLoopSpan::size
    - ASSERT_EQ
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void ExpectSameOrder(S2PointLoopSpan loop1, S2::LoopOrder order1,\n
      \                           S2PointLoopSpan loop2, S2::LoopOrder order2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:488,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:490,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:491,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:492,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:492,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:492,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:493,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:494,1
    - Dst: ExpectSameOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:495,1
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:495,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:496,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:496,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:496,1
    - Dst: std::rotate
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:497,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:497,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:497,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:498,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:498,1
    - Dst: ExpectSameOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:499,1
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' loop_in'
    argTypes:
    - vector<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 501
    functionName: CheckCurvatureInvariants
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 1
    functionsReached:
    - std::rotate
    - S2::GetCurvature
    - std::reverse
    - auto::end
    - S2::GetCanonicalLoopOrder
    - auto::size
    - auto::begin
    - ExpectSameOrder
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void CheckCurvatureInvariants(const vector<S2Point>& loop_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:504,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:504,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:506,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:506,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:507,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:510,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:510,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:511,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:513,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:513,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:514,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:518,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:519,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:521,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:521,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:522,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:524,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:524,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:525,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:535,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:538,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:539,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:542,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:543,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:552,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:552,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:552,1
    - Dst: S2::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 554
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - CheckCurvatureInvariants
    - S2::GetCurvature
    - EXPECT_DOUBLE_EQ
    - S2::GetCurvatureMaxError
    - EXPECT_NEAR
    - S2Point
    - S2::GetArea
    - sin
    - EXPECT_EQ
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST_F(LoopTestBase, GetCurvature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:558,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:559,1
    - Dst: S2::internal::KahanSum<double>::Compensation
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::internal::KahanSum<double>::Compensation
    linkageType: ''
    returnType: void
    signature: void TEST(KahanSum, DefaultValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:566,1
    - Dst: S2::internal::KahanSum<double>::Compensation
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 567
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::internal::KahanSum<double>::Compensation
    linkageType: ''
    returnType: void
    signature: void TEST(KahanSum, SingleValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:583,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:583,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:585,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures_test.cc:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 587
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_GE
    - fabs
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(KahanSum, SumOfSquares)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:66,1
    - Dst: absl::SkipWhitespace
      Src: /src/s2geometry/src/s2/s2text_format.cc:66,1
    - Dst: absl::StripAsciiWhitespace
      Src: /src/s2geometry/src/s2/s2text_format.cc:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - separator
    argTypes:
    - string_view
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: s2textformat::SplitString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - absl::StripAsciiWhitespace
    - absl::SkipWhitespace
    - absl::StrSplit
    linkageType: ''
    returnType: vector<string_view>
    signature: vector<string_view> SplitString(string_view str, char separator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:66,1
    - Dst: absl::SkipWhitespace
      Src: /src/s2geometry/src/s2/s2text_format.cc:66,1
    - Dst: absl::StripAsciiWhitespace
      Src: /src/s2geometry/src/s2/s2text_format.cc:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - separator
    argTypes:
    - string_view
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: s2textformat::SplitString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - absl::StripAsciiWhitespace
    - absl::SkipWhitespace
    - absl::StrSplit
    linkageType: ''
    returnType: vector<string_view>
    signature: vector<string_view> SplitString(string_view str, char separator)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:77,1
    - Dst: absl::SkipEmpty
      Src: /src/s2geometry/src/s2/s2text_format.cc:77,1
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:79,1
    - Dst: absl::InlinedVector::size
      Src: /src/s2geometry/src/s2/s2text_format.cc:80,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:81,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:81,1
    - Dst: absl::SimpleAtod
      Src: /src/s2geometry/src/s2/s2text_format.cc:85,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:86,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:87,1
    - Dst: absl::SimpleAtod
      Src: /src/s2geometry/src/s2/s2text_format.cc:89,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:90,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:91,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format.cc:93,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2text_format.cc:94,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:95,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:96,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 101
    functionName: s2textformat::ParseLatLngs
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - absl::InvalidArgumentError
    - S2LatLng::is_valid
    - vector::push_back
    - absl::SkipEmpty
    - absl::StrCat
    - absl::SimpleAtod
    - S2LatLng::FromDegrees
    - absl::InlinedVector::size
    - absl::StrSplit
    linkageType: ''
    returnType: absl::StatusOr<vector<S2LatLng>>
    signature: absl::StatusOr<vector<S2LatLng>> ParseLatLngs(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:104,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.cc:104,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2text_format.cc:106,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:106,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:108,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2text_format.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: s2textformat::ParsePoints
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - ToPoint
    - size
    - vector::reserve
    - ASSIGN_OR_RETURN
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: absl::StatusOr<vector<S2Point>>
    signature: absl::StatusOr<vector<S2Point>> ParsePoints(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:114,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:114,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:115,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:116,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:117,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: s2textformat::MakePoint
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - absl::InvalidArgumentError
    - s2textformat::ParsePoints
    - size
    - absl::StrCat
    - ASSIGN_OR_RETURN
    linkageType: ''
    returnType: absl::StatusOr<S2Point>
    signature: absl::StatusOr<S2Point> MakePoint(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:123,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.cc:123,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:124,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:125,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:126,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: s2textformat::MakeLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - absl::InvalidArgumentError
    - size
    - absl::StrCat
    - ASSIGN_OR_RETURN
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: absl::StatusOr<S2LatLng>
    signature: absl::StatusOr<S2LatLng> MakeLatLng(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:132,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.cc:132,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:133,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:134,1
    - Dst: S2LatLngRect::FromPoint
      Src: /src/s2geometry/src/s2/s2text_format.cc:137,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:138,1
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2text_format.cc:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: s2textformat::MakeLatLngRect
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - absl::InvalidArgumentError
    - S2LatLngRect::AddPoint
    - size
    - ASSIGN_OR_RETURN
    - empty
    - s2textformat::ParseLatLngs
    - S2LatLngRect::FromPoint
    linkageType: ''
    returnType: absl::StatusOr<S2LatLngRect>
    signature: absl::StatusOr<S2LatLngRect> MakeLatLngRect(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2text_format.cc:145,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2text_format.cc:146,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:147,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: s2textformat::MakeCellId
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromDebugString
    - absl::InvalidArgumentError
    - absl::StrCat
    - S2CellId::None
    linkageType: ''
    returnType: absl::StatusOr<S2CellId>
    signature: absl::StatusOr<S2CellId> MakeCellId(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:154,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:156,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2text_format.cc:158,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: s2textformat::MakeCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - std::move
    - vector::push_back
    - s2textformat::SplitString
    - S2CellUnion
    linkageType: ''
    returnType: absl::StatusOr<S2CellUnion>
    signature: absl::StatusOr<S2CellUnion> MakeCellUnion(string_view str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2text_format.cc:164,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2text_format.cc:164,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2text_format.cc:167,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2text_format.cc:167,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:169,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:169,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2text_format.cc:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - debug_override
    argTypes:
    - string_view
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: s2textformat::MakeLoop
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePoints
    - S2Loop::kFull
    - make_unique<S2Loop>
    - ASSIGN_OR_RETURN
    - S2Loop::kEmpty
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Loop>>
    signature: "absl::StatusOr<unique_ptr<S2Loop>> MakeLoop(string_view str,\n                                            S2Debug
      debug_override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:175,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:175,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2text_format.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - debug_override
    argTypes:
    - string_view
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: s2textformat::MakePolyline
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    - s2textformat::ParsePoints
    - ASSIGN_OR_RETURN
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Polyline>>
    signature: "absl::StatusOr<unique_ptr<S2Polyline>> MakePolyline(string_view str,\n
      \                                                   S2Debug debug_override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:181,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:181,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2text_format.cc:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: s2textformat::MakeLaxPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2LaxPolylineShape>
    - s2textformat::ParsePoints
    - ASSIGN_OR_RETURN
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2LaxPolylineShape>>
    signature: "absl::StatusOr<unique_ptr<S2LaxPolylineShape>> MakeLaxPolyline(\n
      \   string_view str)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:188,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:191,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format.cc:192,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2text_format.cc:194,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2text_format.cc:194,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:195,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:195,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2text_format.cc:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - str
    - debug_override
    - normalize_loops
    argTypes:
    - string_view
    - S2Debug
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 198
    functionName: s2textformat::InternalMakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - is_full
    - vector::push_back
    - s2textformat::SplitString
    - std::move
    - ASSIGN_OR_RETURN
    - s2textformat::MakeLoop
    - Normalize
    - make_unique<S2Polygon>
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Polygon>>
    signature: "absl::StatusOr<unique_ptr<S2Polygon>> InternalMakePolygon(\n    string_view
      str, S2Debug debug_override, bool normalize_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::InternalMakePolygon
      Src: /src/s2geometry/src/s2/s2text_format.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - debug_override
    argTypes:
    - string_view
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: s2textformat::MakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - s2textformat::InternalMakePolygon
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Polygon>>
    signature: "absl::StatusOr<unique_ptr<S2Polygon>> MakePolygon(string_view str,\n
      \                                                 S2Debug debug_override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::InternalMakePolygon
      Src: /src/s2geometry/src/s2/s2text_format.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: s2textformat::MakeVerbatimPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - s2textformat::InternalMakePolygon
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Polygon>>
    signature: absl::StatusOr<unique_ptr<S2Polygon>> MakeVerbatimPolygon(string_view
      str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:210,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:214,1
    - Dst: vector<S2Point>
      Src: /src/s2geometry/src/s2/s2text_format.cc:214,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:216,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:216,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:217,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:217,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2text_format.cc:220,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: s2textformat::MakeLaxPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2textformat::ParsePoints
    - s2textformat::SplitString
    - make_unique<S2LaxPolygonShape>
    - std::move
    - ASSIGN_OR_RETURN
    - vector<S2Point>
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2LaxPolygonShape>>
    signature: absl::StatusOr<unique_ptr<S2LaxPolygonShape>> MakeLaxPolygon(string_view
      str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:224,1
    - Dst: absl::InlinedVector::size
      Src: /src/s2geometry/src/s2/s2text_format.cc:225,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:226,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:227,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2text_format.cc:229,1
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:231,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:233,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:235,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2text_format.cc:236,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2text_format.cc:236,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:236,1
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:238,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:239,1
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format.cc:240,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2text_format.cc:241,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:241,1
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:243,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:244,1
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format.cc:245,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2text_format.cc:246,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 249
    functionName: s2textformat::MakeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 2
    functionsReached:
    - absl::InvalidArgumentError
    - make_unique<MutableS2ShapeIndex>
    - vector::push_back
    - s2textformat::SplitString
    - auto::Add
    - s2textformat::MakeLaxPolyline
    - std::move
    - absl::StrCat
    - s2textformat::MakeLaxPolygon
    - ASSIGN_OR_RETURN
    - make_unique<S2PointVectorShape>
    - vector::empty
    - absl::InlinedVector::size
    - absl::StrSplit
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<MutableS2ShapeIndex>>
    signature: absl::StatusOr<unique_ptr<MutableS2ShapeIndex>> MakeIndex(string_view
      str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2text_format.cc:254,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2text_format.cc:254,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2text_format.cc:255,1
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2text_format.cc:257,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2text_format.cc:257,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2text_format.cc:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ll'
    - out
    argTypes:
    - S2LatLng
    - string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: s2textformat::AppendVertex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - lat
    - lng
    - absl::StrAppendFormat
    linkageType: ''
    returnType: void
    signature: "void AppendVertex(const S2LatLng& ll, string* out,\n                         bool
      roundtrip_precision = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - out
    argTypes:
    - S2Point
    - string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: s2textformat::AppendVertex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 1
    functionsReached:
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: void
    signature: "void AppendVertex(const S2Point& p, string* out,\n                         bool
      roundtrip_precision = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - v
    - n
    - out
    argTypes:
    - S2Point*
    - int
    - string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: s2textformat::AppendVertices
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: void
    signature: void AppendVertices(const S2Point* v, int n, string* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 85
    functionsReached:
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' latlng'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 85
    functionsReached:
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2LatLng& latlng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:289,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2text_format.cc:289,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:291,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2text_format.cc:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' rect'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 85
    functionsReached:
    - lo
    - s2textformat::AppendVertex
    - hi
    linkageType: ''
    returnType: string
    signature: string ToString(const S2LatLngRect& rect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToString
      Src: /src/s2geometry/src/s2/s2text_format.cc:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 85
    functionsReached:
    - S2CellId::ToString
    linkageType: ''
    returnType: string
    signature: string ToString(const S2CellId cell_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string::empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:302,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format.cc:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' cell_union'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - s2textformat::ToString
    - string::empty
    linkageType: ''
    returnType: string
    signature: string ToString(const S2CellUnion& cell_union)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:309,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2text_format.cc:311,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:315,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:316,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:316,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - is_full
    - num_vertices
    - vertex
    - s2textformat::AppendVertices
    - is_empty
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Loop& loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:323,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:324,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:324,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' polyline'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - s2textformat::AppendVertices
    - num_vertices
    - vertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Polyline& polyline)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:330,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2text_format.cc:332,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2text_format.cc:336,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2text_format.cc:337,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2text_format.cc:338,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:339,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' polygon'
    - loop_separator
    argTypes:
    - S2Polygon
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 342
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - is_full
    - num_loops
    - num_vertices
    - absl::StrAppend
    - vertex
    - s2textformat::AppendVertices
    - is_empty
    - loop
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Polygon& polygon, string_view loop_separator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:346,1
    - Dst: Span<const S2Point>::data
      Src: /src/s2geometry/src/s2/s2text_format.cc:346,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2text_format.cc:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - points
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - Span<const S2Point>::size
    - s2textformat::AppendVertices
    - Span<const S2Point>::data
    linkageType: ''
    returnType: string
    signature: string ToString(Span<const S2Point> points)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Span<const S2LatLng>::size
      Src: /src/s2geometry/src/s2/s2text_format.cc:352,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - latlngs
    argTypes:
    - Span<const S2LatLng>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - Span<const S2LatLng>::size
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: string
    signature: string ToString(Span<const S2LatLng> latlngs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:361,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:364,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:365,1
    - Dst: chains
      Src: /src/s2geometry/src/s2/s2text_format.cc:368,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:374,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:378,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:382,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 385
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - s2textformat::AppendVertex
    - vertices
    - chains
    - dimension
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Shape& shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:389,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:390,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:390,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' polyline'
    argTypes:
    - S2LaxPolylineShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 393
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - s2textformat::AppendVertices
    - num_vertices
    - vertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2LaxPolylineShape& polyline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2text_format.cc:397,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2text_format.cc:398,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:399,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:403,1
    - Dst: loop_vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' polygon'
    - loop_separator
    argTypes:
    - S2LaxPolygonShape
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - num_loops
    - num_loop_vertices
    - absl::StrAppend
    - loop_vertex
    - s2textformat::AppendVertices
    linkageType: ''
    returnType: string
    signature: string ToString(const S2LaxPolygonShape& polygon, string_view loop_separator)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:415,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2text_format.cc:417,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2text_format.cc:419,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2text_format.cc:421,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:424,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2text_format.cc:424,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:430,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2text_format.cc:430,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 2
    argNames:
    - ' index'
    - roundtrip_precision
    argTypes:
    - S2ShapeIndex
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 438
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - ABSL_DCHECK_EQ
    - dimension
    - num_chains
    - chain
    - edge
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2ShapeIndex& index, bool roundtrip_precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:66,1
    - Dst: absl::SkipWhitespace
      Src: /src/s2geometry/src/s2/s2text_format.cc:66,1
    - Dst: absl::StripAsciiWhitespace
      Src: /src/s2geometry/src/s2/s2text_format.cc:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - separator
    argTypes:
    - string_view
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: s2textformat::SplitString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 4
    functionsReached:
    - absl::StripAsciiWhitespace
    - absl::SkipWhitespace
    - absl::StrSplit
    linkageType: ''
    returnType: vector<string_view>
    signature: vector<string_view> SplitString(string_view str, char separator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:66,1
    - Dst: absl::SkipWhitespace
      Src: /src/s2geometry/src/s2/s2text_format.cc:66,1
    - Dst: absl::StripAsciiWhitespace
      Src: /src/s2geometry/src/s2/s2text_format.cc:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - separator
    argTypes:
    - string_view
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: s2textformat::SplitString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 4
    functionsReached:
    - absl::StripAsciiWhitespace
    - absl::SkipWhitespace
    - absl::StrSplit
    linkageType: ''
    returnType: vector<string_view>
    signature: vector<string_view> SplitString(string_view str, char separator)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:77,1
    - Dst: absl::SkipEmpty
      Src: /src/s2geometry/src/s2/s2text_format.cc:77,1
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:79,1
    - Dst: absl::InlinedVector::size
      Src: /src/s2geometry/src/s2/s2text_format.cc:80,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:81,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:81,1
    - Dst: absl::SimpleAtod
      Src: /src/s2geometry/src/s2/s2text_format.cc:85,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:86,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:87,1
    - Dst: absl::SimpleAtod
      Src: /src/s2geometry/src/s2/s2text_format.cc:89,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:90,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:91,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format.cc:93,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2text_format.cc:94,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:95,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:96,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 101
    functionName: s2textformat::ParseLatLngs
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 3
    functionsReached:
    - absl::InvalidArgumentError
    - S2LatLng::is_valid
    - vector::push_back
    - absl::SkipEmpty
    - absl::StrCat
    - absl::SimpleAtod
    - S2LatLng::FromDegrees
    - absl::InlinedVector::size
    - absl::StrSplit
    linkageType: ''
    returnType: absl::StatusOr<vector<S2LatLng>>
    signature: absl::StatusOr<vector<S2LatLng>> ParseLatLngs(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:104,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.cc:104,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2text_format.cc:106,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:106,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:108,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2text_format.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: s2textformat::ParsePoints
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 5
    functionsReached:
    - vector::push_back
    - ToPoint
    - size
    - vector::reserve
    - ASSIGN_OR_RETURN
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: absl::StatusOr<vector<S2Point>>
    signature: absl::StatusOr<vector<S2Point>> ParsePoints(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:114,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:114,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:115,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:116,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:117,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: s2textformat::MakePoint
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - absl::InvalidArgumentError
    - s2textformat::ParsePoints
    - size
    - absl::StrCat
    - ASSIGN_OR_RETURN
    linkageType: ''
    returnType: absl::StatusOr<S2Point>
    signature: absl::StatusOr<S2Point> MakePoint(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:123,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.cc:123,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:124,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:125,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:126,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: s2textformat::MakeLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - absl::InvalidArgumentError
    - size
    - absl::StrCat
    - ASSIGN_OR_RETURN
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: absl::StatusOr<S2LatLng>
    signature: absl::StatusOr<S2LatLng> MakeLatLng(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:132,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.cc:132,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:133,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:134,1
    - Dst: S2LatLngRect::FromPoint
      Src: /src/s2geometry/src/s2/s2text_format.cc:137,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format.cc:138,1
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2text_format.cc:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: s2textformat::MakeLatLngRect
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - absl::InvalidArgumentError
    - S2LatLngRect::AddPoint
    - size
    - ASSIGN_OR_RETURN
    - empty
    - s2textformat::ParseLatLngs
    - S2LatLngRect::FromPoint
    linkageType: ''
    returnType: absl::StatusOr<S2LatLngRect>
    signature: absl::StatusOr<S2LatLngRect> MakeLatLngRect(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2text_format.cc:145,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2text_format.cc:146,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:147,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: s2textformat::MakeCellId
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromDebugString
    - absl::InvalidArgumentError
    - absl::StrCat
    - S2CellId::None
    linkageType: ''
    returnType: absl::StatusOr<S2CellId>
    signature: absl::StatusOr<S2CellId> MakeCellId(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:154,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:156,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2text_format.cc:158,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: s2textformat::MakeCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - std::move
    - vector::push_back
    - s2textformat::SplitString
    - S2CellUnion
    linkageType: ''
    returnType: absl::StatusOr<S2CellUnion>
    signature: absl::StatusOr<S2CellUnion> MakeCellUnion(string_view str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2text_format.cc:164,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2text_format.cc:164,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2text_format.cc:167,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2text_format.cc:167,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:169,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:169,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2text_format.cc:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - debug_override
    argTypes:
    - string_view
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: s2textformat::MakeLoop
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 1
    functionsReached:
    - s2textformat::ParsePoints
    - S2Loop::kFull
    - make_unique<S2Loop>
    - ASSIGN_OR_RETURN
    - S2Loop::kEmpty
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Loop>>
    signature: "absl::StatusOr<unique_ptr<S2Loop>> MakeLoop(string_view str,\n                                            S2Debug
      debug_override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:175,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:175,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2text_format.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - debug_override
    argTypes:
    - string_view
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: s2textformat::MakePolyline
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    - s2textformat::ParsePoints
    - ASSIGN_OR_RETURN
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Polyline>>
    signature: "absl::StatusOr<unique_ptr<S2Polyline>> MakePolyline(string_view str,\n
      \                                                   S2Debug debug_override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:181,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:181,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2text_format.cc:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: s2textformat::MakeLaxPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 1
    functionsReached:
    - make_unique<S2LaxPolylineShape>
    - s2textformat::ParsePoints
    - ASSIGN_OR_RETURN
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2LaxPolylineShape>>
    signature: "absl::StatusOr<unique_ptr<S2LaxPolylineShape>> MakeLaxPolyline(\n
      \   string_view str)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:188,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:191,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format.cc:192,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2text_format.cc:194,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2text_format.cc:194,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:195,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:195,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2text_format.cc:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - str
    - debug_override
    - normalize_loops
    argTypes:
    - string_view
    - S2Debug
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 198
    functionName: s2textformat::InternalMakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 2
    functionsReached:
    - is_full
    - vector::push_back
    - s2textformat::SplitString
    - std::move
    - ASSIGN_OR_RETURN
    - s2textformat::MakeLoop
    - Normalize
    - make_unique<S2Polygon>
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Polygon>>
    signature: "absl::StatusOr<unique_ptr<S2Polygon>> InternalMakePolygon(\n    string_view
      str, S2Debug debug_override, bool normalize_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::InternalMakePolygon
      Src: /src/s2geometry/src/s2/s2text_format.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - debug_override
    argTypes:
    - string_view
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: s2textformat::MakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - s2textformat::InternalMakePolygon
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Polygon>>
    signature: "absl::StatusOr<unique_ptr<S2Polygon>> MakePolygon(string_view str,\n
      \                                                 S2Debug debug_override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::InternalMakePolygon
      Src: /src/s2geometry/src/s2/s2text_format.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: s2textformat::MakeVerbatimPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 0
    functionsReached:
    - s2textformat::InternalMakePolygon
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2Polygon>>
    signature: absl::StatusOr<unique_ptr<S2Polygon>> MakeVerbatimPolygon(string_view
      str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:210,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:214,1
    - Dst: vector<S2Point>
      Src: /src/s2geometry/src/s2/s2text_format.cc:214,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:216,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.cc:216,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:217,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:217,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2text_format.cc:220,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: s2textformat::MakeLaxPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - s2textformat::ParsePoints
    - s2textformat::SplitString
    - make_unique<S2LaxPolygonShape>
    - std::move
    - ASSIGN_OR_RETURN
    - vector<S2Point>
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<S2LaxPolygonShape>>
    signature: absl::StatusOr<unique_ptr<S2LaxPolygonShape>> MakeLaxPolygon(string_view
      str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format.cc:224,1
    - Dst: absl::InlinedVector::size
      Src: /src/s2geometry/src/s2/s2text_format.cc:225,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2text_format.cc:226,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2text_format.cc:227,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2text_format.cc:229,1
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:231,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2text_format.cc:233,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:235,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2text_format.cc:236,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2text_format.cc:236,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:236,1
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:238,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:239,1
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format.cc:240,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2text_format.cc:241,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:241,1
    - Dst: s2textformat::SplitString
      Src: /src/s2geometry/src/s2/s2text_format.cc:243,1
    - Dst: ASSIGN_OR_RETURN
      Src: /src/s2geometry/src/s2/s2text_format.cc:244,1
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format.cc:245,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2text_format.cc:246,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.cc:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 249
    functionName: s2textformat::MakeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 2
    functionsReached:
    - absl::InvalidArgumentError
    - make_unique<MutableS2ShapeIndex>
    - vector::push_back
    - s2textformat::SplitString
    - auto::Add
    - s2textformat::MakeLaxPolyline
    - std::move
    - absl::StrCat
    - s2textformat::MakeLaxPolygon
    - ASSIGN_OR_RETURN
    - make_unique<S2PointVectorShape>
    - vector::empty
    - absl::InlinedVector::size
    - absl::StrSplit
    linkageType: ''
    returnType: absl::StatusOr<unique_ptr<MutableS2ShapeIndex>>
    signature: absl::StatusOr<unique_ptr<MutableS2ShapeIndex>> MakeIndex(string_view
      str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2text_format.cc:254,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2text_format.cc:254,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2text_format.cc:255,1
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2text_format.cc:257,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2text_format.cc:257,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2text_format.cc:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ll'
    - out
    argTypes:
    - S2LatLng
    - string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: s2textformat::AppendVertex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 8
    functionsReached:
    - lat
    - lng
    - absl::StrAppendFormat
    linkageType: ''
    returnType: void
    signature: "void AppendVertex(const S2LatLng& ll, string* out,\n                         bool
      roundtrip_precision = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - out
    argTypes:
    - S2Point
    - string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: s2textformat::AppendVertex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 9
    functionsReached:
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: void
    signature: "void AppendVertex(const S2Point& p, string* out,\n                         bool
      roundtrip_precision = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - v
    - n
    - out
    argTypes:
    - S2Point*
    - int
    - string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: s2textformat::AppendVertices
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 6
    functionsReached:
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: void
    signature: void AppendVertices(const S2Point* v, int n, string* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' latlng'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2LatLng& latlng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:289,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2text_format.cc:289,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:291,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2text_format.cc:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' rect'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - lo
    - s2textformat::AppendVertex
    - hi
    linkageType: ''
    returnType: string
    signature: string ToString(const S2LatLngRect& rect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToString
      Src: /src/s2geometry/src/s2/s2text_format.cc:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 86
    functionsReached:
    - S2CellId::ToString
    linkageType: ''
    returnType: string
    signature: string ToString(const S2CellId cell_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string::empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:302,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format.cc:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' cell_union'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - s2textformat::ToString
    - string::empty
    linkageType: ''
    returnType: string
    signature: string ToString(const S2CellUnion& cell_union)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:309,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2text_format.cc:311,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:315,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:316,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:316,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - is_full
    - num_vertices
    - vertex
    - s2textformat::AppendVertices
    - is_empty
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Loop& loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:323,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:324,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:324,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' polyline'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - s2textformat::AppendVertices
    - num_vertices
    - vertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Polyline& polyline)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2text_format.cc:330,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2text_format.cc:332,1
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2text_format.cc:336,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2text_format.cc:337,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2text_format.cc:338,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:339,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' polygon'
    - loop_separator
    argTypes:
    - S2Polygon
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 342
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - is_full
    - num_loops
    - num_vertices
    - absl::StrAppend
    - vertex
    - s2textformat::AppendVertices
    - is_empty
    - loop
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Polygon& polygon, string_view loop_separator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:346,1
    - Dst: Span<const S2Point>::data
      Src: /src/s2geometry/src/s2/s2text_format.cc:346,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2text_format.cc:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - points
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - Span<const S2Point>::size
    - s2textformat::AppendVertices
    - Span<const S2Point>::data
    linkageType: ''
    returnType: string
    signature: string ToString(Span<const S2Point> points)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Span<const S2LatLng>::size
      Src: /src/s2geometry/src/s2/s2text_format.cc:352,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - latlngs
    argTypes:
    - Span<const S2LatLng>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - Span<const S2LatLng>::size
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: string
    signature: string ToString(Span<const S2LatLng> latlngs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:361,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:364,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:365,1
    - Dst: chains
      Src: /src/s2geometry/src/s2/s2text_format.cc:368,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:374,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:378,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:382,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 385
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - s2textformat::AppendVertex
    - vertices
    - chains
    - dimension
    linkageType: ''
    returnType: string
    signature: string ToString(const S2Shape& shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:389,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:390,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:390,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' polyline'
    argTypes:
    - S2LaxPolylineShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 393
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - s2textformat::AppendVertices
    - num_vertices
    - vertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2LaxPolylineShape& polyline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2text_format.cc:397,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2text_format.cc:398,1
    - Dst: num_loop_vertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:399,1
    - Dst: s2textformat::AppendVertices
      Src: /src/s2geometry/src/s2/s2text_format.cc:403,1
    - Dst: loop_vertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' polygon'
    - loop_separator
    argTypes:
    - S2LaxPolygonShape
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - num_loops
    - num_loop_vertices
    - absl::StrAppend
    - loop_vertex
    - s2textformat::AppendVertices
    linkageType: ''
    returnType: string
    signature: string ToString(const S2LaxPolygonShape& polygon, string_view loop_separator)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2text_format.cc:415,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2text_format.cc:417,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2text_format.cc:419,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2text_format.cc:421,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:424,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2text_format.cc:424,1
    - Dst: s2textformat::AppendVertex
      Src: /src/s2geometry/src/s2/s2text_format.cc:430,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2text_format.cc:430,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 2
    argNames:
    - ' index'
    - roundtrip_precision
    argTypes:
    - S2ShapeIndex
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 438
    functionName: s2textformat::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.cc
    functionUses: 87
    functionsReached:
    - ABSL_DCHECK_EQ
    - dimension
    - num_chains
    - chain
    - edge
    - s2textformat::AppendVertex
    linkageType: ''
    returnType: string
    signature: string ToString(const S2ShapeIndex& index, bool roundtrip_precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: S2FurthestEdgeQuery::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: void Result()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:229,1
    - Dst: S2FurthestEdgeQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:229,1
    - Dst: S2FurthestEdgeQuery::Result::shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:229,1
    - Dst: S2FurthestEdgeQuery::Result::edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' base'
    argTypes:
    - Base::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: S2FurthestEdgeQuery::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2FurthestEdgeQuery::Result::distance
    - S2FurthestEdgeQuery::Result::shape_id
    - S2FurthestEdgeQuery::Result::edge_id
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void Result(const Base::Result& base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - distance
    - _shape_id
    - _edge_id
    argTypes:
    - S1ChordAngle
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: S2FurthestEdgeQuery::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Result(S1ChordAngle distance, int32_t _shape_id, int32_t _edge_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: S2FurthestEdgeQuery::Result::distance
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: S2FurthestEdgeQuery::Result::shape_id
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t shape_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: S2FurthestEdgeQuery::Result::edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: S2FurthestEdgeQuery::Result::is_interior
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_interior() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: S2FurthestEdgeQuery::Result::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: operator==(const Result& x, const Result& y)
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Result& x, const Result& y)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: operator<(const Result& x, const Result& y)
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Result& x, const Result& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: S2FurthestEdgeQuery::S2FurthestEdgeQuery
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2FurthestEdgeQuery(const S2FurthestEdgeQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: operator=(const S2FurthestEdgeQuery&)
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2FurthestEdgeQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: S2FurthestEdgeQuery::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2FurthestEdgeQuery::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:369,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: S2FurthestEdgeQuery::Options::min_distance() const
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle
    - max_distance
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2FurthestEdgeQuery::Options::min_distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:374,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - min_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: "S2FurthestEdgeQuery::Options::set_min_distance(\n    S1ChordAngle
      min_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - Distance
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::Options::set_min_distance(\n    S1ChordAngle
      min_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:379,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:379,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - min_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: "S2FurthestEdgeQuery::Options::set_min_distance(\n    S1Angle min_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - Distance
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::Options::set_min_distance(\n    S1Angle
      min_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:384,1
    - Dst: S1ChordAngle::Predecessor
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - min_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: "S2FurthestEdgeQuery::Options::set_inclusive_min_distance(\n    S1ChordAngle
      min_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - set_min_distance
    - S1ChordAngle::Predecessor
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::Options::set_inclusive_min_distance(\n    S1ChordAngle
      min_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_inclusive_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:389,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - min_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: "S2FurthestEdgeQuery::Options::set_inclusive_min_distance(\n    S1Angle
      min_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - set_inclusive_min_distance
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::Options::set_inclusive_min_distance(\n    S1Angle
      min_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:393,1
    - Dst: S2ClosestPointQueryOptions::set_max_error
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: S2FurthestEdgeQuery::Options::max_error() const
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_error
    - S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2FurthestEdgeQuery::Options::max_error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_error
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_error
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: "S2FurthestEdgeQuery::Options::set_max_error(\n    S1ChordAngle
      max_error)"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_error
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::Options::set_max_error(\n    S1ChordAngle
      max_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_error
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:402,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_error
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: S2FurthestEdgeQuery::Options::set_max_error(S1Angle max_error)
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_error
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void S2FurthestEdgeQuery::Options::set_max_error(S1Angle max_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: S2FurthestEdgeQuery::PointTarget::PointTarget(const S2Point& point)
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2FurthestEdgeQuery::PointTarget::PointTarget(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: "S2FurthestEdgeQuery::EdgeTarget::EdgeTarget(const S2Point& a,\n
      \                                                 const S2Point& b)"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::EdgeTarget::EdgeTarget(const S2Point& a,\n
      \                                                 const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 416
    functionName: S2FurthestEdgeQuery::CellTarget::CellTarget(const S2Cell& cell)
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2FurthestEdgeQuery::CellTarget::CellTarget(const S2Cell& cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: "S2FurthestEdgeQuery::ShapeIndexTarget::ShapeIndexTarget(\n    const
      S2ShapeIndex* index)"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::ShapeIndexTarget::ShapeIndexTarget(\n    const
      S2ShapeIndex* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2FurthestEdgeQuery::Init
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - S2ShapeIndex*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: S2FurthestEdgeQuery::S2FurthestEdgeQuery
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2FurthestEdgeQuery::Init
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::S2FurthestEdgeQuery(const S2ShapeIndex*
      index,\n                                                const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2FurthestEdgeQuery::Init
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - S2ShapeIndex*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: S2FurthestEdgeQuery::Init
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 2
    functionsReached:
    - S2FurthestEdgeQuery::Init
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::Init(const S2ShapeIndex* index,\n                                      const
      Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2FurthestEdgeQuery::ReInit
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: S2FurthestEdgeQuery::ReInit
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 1
    functionsReached:
    - S2FurthestEdgeQuery::ReInit
    linkageType: ''
    returnType: void
    signature: void S2FurthestEdgeQuery::ReInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: '& S2FurthestEdgeQuery::index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - index
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex & S2FurthestEdgeQuery::index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: "&\n    S2FurthestEdgeQuery::options() const"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2FurthestEdgeQuery::Options
    signature: "S2FurthestEdgeQuery::Options &\n    S2FurthestEdgeQuery::options()
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: S2FurthestEdgeQuery::mutable_options
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2FurthestEdgeQuery::Options
    signature: S2FurthestEdgeQuery::Options * S2FurthestEdgeQuery::mutable_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2FurthestEdgeQuery::FindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - target
    argTypes:
    - Target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 456
    functionName: S2FurthestEdgeQuery::FindFurthestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 1
    functionsReached:
    - S2FurthestEdgeQuery::FindFurthestEdges
    linkageType: ''
    returnType: std::vector<S2FurthestEdgeQuery::Result>
    signature: std::vector<S2FurthestEdgeQuery::Result> S2FurthestEdgeQuery::FindFurthestEdges(Target*
      target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2FurthestEdgeQuery::FindFurthestEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - Target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: S2FurthestEdgeQuery::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2FurthestEdgeQuery::FindFurthestEdge
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2FurthestEdgeQuery::GetDistance(Target* target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:463,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:463,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: S2FurthestEdgeQuery::GetEdge
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.h
    functionUses: 0
    functionsReached:
    - edge_id
    - index
    - shape_id
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2FurthestEdgeQuery::GetEdge(const Result& result) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:79,1
    - Dst: s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:80,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:80,1
    - Dst: s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:83,1
    - Dst: s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:84,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:86,1
    - Dst: s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:87,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - S1Angle::Radians
    - min
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdSnapFunction, LevelToFromSnapRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:92,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:93,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:100,1
    - Dst: S2CellIdSnapFunction::SnapPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdSnapFunction::SnapPoint
    - s2random::CellId
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdSnapFunction, SnapPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:109,1
    - Dst: s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:111,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:111,1
    - Dst: s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:114,1
    - Dst: s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:115,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:117,1
    - Dst: s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:118,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
    - S1Angle::Radians
    - min
    - EXPECT_EQ
    - s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
    linkageType: ''
    returnType: void
    signature: void TEST(IntLatLngSnapFunction, ExponentToFromSnapRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:123,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:124,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:129,1
    - Dst: S2LatLng::FromE5
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:131,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:131,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:132,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:132,1
    - Dst: S2LatLng::FromE6
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:133,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:133,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:134,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:134,1
    - Dst: S2LatLng::FromE7
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:135,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:135,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:136,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:136,1
    - Dst: S2LatLng::FromE7
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:139,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:139,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:140,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:141,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 143
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromE6
    - s2random::Point
    - S2LatLng::lat
    - S2LatLng::lng
    - S2LatLng::FromE5
    - EXPECT_NE
    - S2LatLng::FromE7
    - IntLatLngSnapFunction
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(IntLatLngSnapFunction, SnapPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:154,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:154,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:154,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:154,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:154,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:155,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:155,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:155,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - id
    argTypes:
    - S2Point
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: GetMaxVertexDistance
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetVertex
    - S1Angle
    - max
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetMaxVertexDistance(const S2Point& p, S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:162,1
    - Dst: S2CellId::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:164,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:164,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:166,1
    - Dst: GetMaxVertexDistance
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:168,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:169,1
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:170,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:170,1
    - Dst: vector<pair<double, S2CellId>>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:172,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - id0
    - scores
    argTypes:
    - S2CellId
    - vector<pair<double, S2CellId>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: UpdateS2CellIdMinVertexSeparation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - ToPoint
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - S2CellId::ToPoint
    - GetMaxVertexDistance
    - S2CellId::level
    - vector<pair<double, S2CellId>>*::push_back
    - S2CellId::AppendAllNeighbors
    - make_pair
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: "void UpdateS2CellIdMinVertexSeparation(\n    S2CellId id0, vector<pair<double,
      S2CellId>>* scores)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UpdateS2CellIdMinVertexSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:188,1
    - Dst: child_begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:191,1
    - Dst: child_end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:192,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:192,1
    - Dst: UpdateS2CellIdMinVertexSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:193,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:199,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:199,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:199,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:200,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:200,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:200,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:200,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:200,1
    - Dst: flat_hash_set<S2CellId>*::clear
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:201,1
    - Dst: S2CellId::GetCenterUV
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:207,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:208,1
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:209,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:211,1
    - Dst: S2CellId::contains
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:211,1
    - Dst: flat_hash_set<S2CellId>*::insert
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:212,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - level
    - best_cells
    argTypes:
    - int
    - flat_hash_set<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 176
    functionDepth: 7
    functionLinenumber: 176
    functionLinenumberEnd: 216
    functionName: GetS2CellIdMinVertexSeparation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToToken
    - child_end
    - vector::erase
    - S2CellId::GetCenterUV
    - S2CellId::contains
    - vector::end
    - contains
    - S2CellId::next
    - flat_hash_set<S2CellId>*::insert
    - absl::PrintF
    - std::sort
    - flat_hash_set<S2CellId>*::clear
    - vector::begin
    - child_begin
    - UpdateS2CellIdMinVertexSeparation
    - std::unique
    linkageType: ''
    returnType: double
    signature: "double GetS2CellIdMinVertexSeparation(\n    int level, flat_hash_set<S2CellId>*
      best_cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetS2CellIdMinVertexSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:241,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:242,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:244,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 218
    functionDepth: 8
    functionLinenumber: 218
    functionLinenumberEnd: 249
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - absl::PrintF
    - GetS2CellIdMinVertexSeparation
    - min
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdSnapFunction, MinVertexSeparationSnapRadiusRatio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:254,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:255,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:256,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:256,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:258,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:259,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:260,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 267
    functionName: GetCircumRadius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - fabs
    - Norm2
    - S1Angle::Radians
    - S2::TurnAngle
    - remainder
    - S1Angle
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle GetCircumRadius(const S2Point& a, const S2Point& b,\n                               const
      S2Point& c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:272,1
    - Dst: AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:276,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:276,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:278,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:278,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:278,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:278,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:279,1
    - Dst: std::remove
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:279,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:279,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:279,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:279,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:280,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:280,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:280,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:281,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:281,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:281,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:281,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 284
    functionName: GetNeighbors
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - vector::erase
    - std::sort
    - S2CellId::level
    - vector::end
    - vector::insert
    - AppendAllNeighbors
    - std::remove
    - vector::begin
    - std::unique
    linkageType: ''
    returnType: vector<S2CellId>
    signature: vector<S2CellId> GetNeighbors(S2CellId id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: child_begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:336,1
    - Dst: child_end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:337,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:337,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:338,1
    - Dst: GetNeighbors
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:339,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:341,1
    - Dst: GetMaxVertexDistance
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:342,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:345,1
    - Dst: GetCircumRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:346,1
    - Dst: S2Builder::SnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:347,1
    - Dst: GetMaxVertexDistance
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:353,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:354,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:356,1
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:357,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:360,1
    - Dst: objective
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:361,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:366,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:382,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:382,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:384,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:384,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:384,1
    - Dst: flat_hash_set<S2CellId>*::clear
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:385,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:386,1
    - Dst: S2CellId::GetCenterUV
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:390,1
    - Dst: flat_hash_map::find
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:391,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:392,1
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:393,1
    - Dst: vector::first::ToToken
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:394,1
    - Dst: vector::second::ToToken
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:394,1
    - Dst: S2CellId::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:397,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:397,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:402,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:402,1
    - Dst: flat_hash_set<S2CellId>*::insert
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:403,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 35
    argCount: 4
    argNames:
    - label
    - objective
    - level
    - best_cells
    argTypes:
    - string_view
    - S2CellIdMinEdgeSeparationFunction
    - int
    - flat_hash_set<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 303
    functionDepth: 6
    functionLinenumber: 303
    functionLinenumberEnd: 410
    functionName: GetS2CellIdMinEdgeSeparation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - ToPoint
    - child_end
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - GetMaxVertexDistance
    - S2Builder::SnapFunction::kMaxSnapRadius
    - vector::end
    - objective
    - ABSL_DCHECK_GE
    - S2CellId::ToToken
    - S2::GetDistance
    - min
    - flat_hash_map::find
    - S2CellId::next
    - absl::PrintF
    - S2CellId::AppendAllNeighbors
    - make_pair
    - vector::first::ToToken
    - vector::begin
    - vector::push_back
    - S2CellId::GetCenterUV
    - S2CellId::level
    - GetNeighbors
    - vector::second::ToToken
    - child_begin
    - flat_hash_set<S2CellId>*::clear
    - S2CellId::ToPoint
    - GetCircumRadius
    - std::sort
    - flat_hash_set<S2CellId>*::insert
    - contains
    linkageType: ''
    returnType: double
    signature: "double GetS2CellIdMinEdgeSeparation(\n    string_view label, S2CellIdMinEdgeSeparationFunction
      objective, int level,\n    flat_hash_set<S2CellId>* best_cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:416,1
    - Dst: GetS2CellIdMinEdgeSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:418,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - label
    - objective
    argTypes:
    - string_view
    - S2CellIdMinEdgeSeparationFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: GetS2CellIdMinEdgeSeparation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 1
    functionsReached:
    - GetS2CellIdMinEdgeSeparation
    - min
    - flat_hash_set::insert
    linkageType: ''
    returnType: double
    signature: "double GetS2CellIdMinEdgeSeparation(\n    string_view label, S2CellIdMinEdgeSeparationFunction
      objective)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetS2CellIdMinEdgeSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:428,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:432,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:432,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:434,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 425
    functionDepth: 7
    functionLinenumber: 425
    functionLinenumberEnd: 439
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - GetS2CellIdMinEdgeSeparation
    - GetValue
    - absl::PrintF
    - radians
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdSnapFunction, MinEdgeVertexSeparationForLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetS2CellIdMinEdgeSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:444,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:448,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:449,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:450,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:450,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:453,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 459
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - GetS2CellIdMinEdgeSeparation
    - GetValue
    - absl::PrintF
    - radians
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdSnapFunction, MinEdgeVertexSeparationAtMinSnapRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetS2CellIdMinEdgeSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:464,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:468,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:468,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:470,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 461
    functionDepth: 7
    functionLinenumber: 461
    functionLinenumberEnd: 476
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - absl::PrintF
    - EXPECT_NEAR
    - GetS2CellIdMinEdgeSeparation
    - radians
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellIdSnapFunction, MinEdgeVertexSeparationSnapRadiusRatio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:484,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' ll'
    - scale
    argTypes:
    - IntLatLng
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: IsValid
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 19
    functionsReached:
    - abs
    linkageType: ''
    returnType: bool
    signature: bool IsValid(const IntLatLng& ll, int64_t scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:490,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' ll'
    - scale
    argTypes:
    - IntLatLng
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 491
    functionName: HasValidVertices
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: bool
    signature: bool HasValidVertices(const IntLatLng& ll, int64_t scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntLatLng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:494,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:494,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ll
    - scale_factor
    argTypes:
    - IntLatLng
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: Rescale
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - IntLatLng
    - MathUtil::Round<int64_t>
    linkageType: ''
    returnType: IntLatLng
    signature: IntLatLng Rescale(const IntLatLng&ll, double scale_factor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ll'
    - scale
    argTypes:
    - IntLatLng
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: ToPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 34
    functionsReached:
    - S2LatLng::FromRadians
    linkageType: ''
    returnType: S2Point
    signature: S2Point ToPoint(const IntLatLng& ll, int64_t scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:507,1
    - Dst: IntLatLng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - ' ll'
    - scale
    - i
    argTypes:
    - IntLatLng
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 508
    functionName: GetVertex
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 12
    functionsReached:
    - IntLatLng
    - ToPoint
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetVertex(const IntLatLng& ll, int64_t scale, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:512,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:512,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:512,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:513,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:513,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:514,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:514,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:515,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' p'
    - ' ll'
    - scale
    argTypes:
    - S2Point
    - IntLatLng
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 516
    functionName: GetMaxVertexDistance
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 2
    functionsReached:
    - GetVertex
    - S1Angle
    - max
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle GetMaxVertexDistance(const S2Point& p, const IntLatLng& ll,\n
      \                                   int64_t scale)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:528,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:530,1
    - Dst: Rescale
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:532,1
    - Dst: IntLatLng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:534,1
    - Dst: IsValid
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:535,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:536,1
    - Dst: IntLatLng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:539,1
    - Dst: HasValidVertices
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:540,1
    - Dst: GetMaxVertexDistance
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:541,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:543,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:546,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:546,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:553,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:553,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:553,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:554,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:554,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:554,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:554,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:554,1
    - Dst: flat_hash_set<IntLatLng>*::clear
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:555,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:560,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:562,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:562,1
    - Dst: flat_hash_set<IntLatLng>*::insert
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:564,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 25
    argCount: 3
    argNames:
    - old_scale
    - scale
    - best_configs
    argTypes:
    - int64_t
    - int64_t
    - flat_hash_set<IntLatLng>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 567
    functionName: GetLatLngMinVertexSeparation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - IntLatLng
    - ToPoint
    - vector::erase
    - GetMaxVertexDistance
    - static_cast<double>
    - vector::end
    - flat_hash_set<IntLatLng>*::insert
    - std::unique
    - HasValidVertices
    - S1Angle::Radians
    - absl::PrintF
    - make_pair
    - vector::begin
    - vector::push_back
    - Rescale
    - s2textformat::ToString
    - IsValid
    - std::sort
    - flat_hash_set<IntLatLng>*::clear
    linkageType: ''
    returnType: double
    signature: "double GetLatLngMinVertexSeparation(\n    int64_t old_scale, int64_t
      scale, flat_hash_set<IntLatLng>* best_configs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:574,1
    - Dst: IntLatLng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:574,1
    - Dst: GetLatLngMinVertexSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:577,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:579,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:581,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 569
    functionDepth: 4
    functionLinenumber: 569
    functionLinenumberEnd: 586
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - IntLatLng
    - EXPECT_NEAR
    - min
    - absl::PrintF
    - flat_hash_set::insert
    - GetLatLngMinVertexSeparation
    linkageType: ''
    returnType: void
    signature: void TEST(IntLatLngSnapFunction, MinVertexSeparationSnapRadiusRatio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - _scale
    - ' _ll0'
    - ' _ll1'
    - ' _ll2'
    argTypes:
    - int64_t
    - IntLatLng
    - IntLatLng
    - IntLatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 596
    functionName: LatLngConfig
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void LatLngConfig(int64_t _scale, const IntLatLng& _ll0, const IntLatLng&
      _ll1,\n               const IntLatLng& _ll2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:598,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:599,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:599,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:600,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - LatLngConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: operator<(const LatLngConfig& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - make_pair
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool operator<(const LatLngConfig& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - LatLngConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 604
    functionName: operator==(const LatLngConfig& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const LatLngConfig& other) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:613,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:617,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:618,1
    - Dst: Rescale
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:619,1
    - Dst: Rescale
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:620,1
    - Dst: Rescale
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:621,1
    - Dst: IntLatLng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:623,1
    - Dst: IsValid
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:625,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:626,1
    - Dst: IntLatLng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:629,1
    - Dst: HasValidVertices
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:630,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:632,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:634,1
    - Dst: GetMaxVertexDistance
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:635,1
    - Dst: IntLatLng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:638,1
    - Dst: HasValidVertices
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:639,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:641,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:648,1
    - Dst: GetCircumRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:649,1
    - Dst: S2Builder::SnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:650,1
    - Dst: GetMaxVertexDistance
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:656,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:657,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:662,1
    - Dst: objective
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:663,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:665,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:665,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:674,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:674,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:674,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:675,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:675,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:675,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:675,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:675,1
    - Dst: vector<LatLngConfig>*::clear
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:676,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:679,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:684,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:685,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:685,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:686,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:686,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:687,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:687,1
    - Dst: vector<LatLngConfig>*::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:691,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 48
    argCount: 4
    argNames:
    - label
    - objective
    - scale
    - best_configs
    argTypes:
    - string_view
    - LatLngMinEdgeSeparationFunction
    - int64_t
    - vector<LatLngConfig>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 695
    functionName: GetLatLngMinEdgeSeparation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - IntLatLng
    - ToPoint
    - vector::erase
    - GetMaxVertexDistance
    - S2Builder::SnapFunction::kMaxSnapRadius
    - static_cast<double>
    - vector::end
    - objective
    - vector<LatLngConfig>*::push_back
    - std::unique
    - HasValidVertices
    - S2::GetDistance
    - S1Angle::Radians
    - vector<LatLngConfig>*::clear
    - min
    - absl::PrintF
    - make_pair
    - vector::begin
    - abs
    - vector::push_back
    - ABSL_DCHECK_EQ
    - Rescale
    - s2textformat::ToString
    - IsValid
    - GetCircumRadius
    - std::sort
    linkageType: ''
    returnType: double
    signature: "double GetLatLngMinEdgeSeparation(\n    string_view label, LatLngMinEdgeSeparationFunction
      objective, int64_t scale,\n    vector<LatLngConfig>* best_configs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:705,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:707,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:713,1
    - Dst: LatLngConfig
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:713,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:719,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:719,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:724,1
    - Dst: static_cast<int64_t>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:724,1
    - Dst: GetLatLngMinEdgeSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:725,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:728,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - label
    - objective
    argTypes:
    - string_view
    - LatLngMinEdgeSeparationFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 733
    functionName: GetLatLngMinEdgeSeparation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - static_cast<int64_t>
    - LatLngConfig
    - GetLatLngMinEdgeSeparation
    - min
    - ABSL_LOG
    - vector::size
    linkageType: ''
    returnType: double
    signature: "double GetLatLngMinEdgeSeparation(\n    string_view label, LatLngMinEdgeSeparationFunction
      objective)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLatLngMinEdgeSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:738,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:742,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:744,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 735
    functionDepth: 4
    functionLinenumber: 735
    functionLinenumberEnd: 749
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - absl::PrintF
    - GetLatLngMinEdgeSeparation
    - radians
    linkageType: ''
    returnType: void
    signature: void TEST(IntLatLngSnapFunction, MinEdgeVertexSeparationForLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLatLngMinEdgeSeparation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:754,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:757,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:757,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:759,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 765
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - absl::PrintF
    - GetLatLngMinEdgeSeparation
    - radians
    linkageType: ''
    returnType: void
    signature: void TEST(IntLatLngSnapFunction, MinEdgeVertexSeparationSnapRadiusRatio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ReversibleBytes::ReversibleBytes
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReversibleBytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ReversibleBytes::Clear
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:43,1
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:43,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: ReversibleBytes::AppendBytes
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    - append
    linkageType: ''
    returnType: void
    signature: void AppendBytes(absl::string_view bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Append64
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: ReversibleBytes::AppendVarint64
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 0
    functionsReached:
    - Varint::Append64
    linkageType: ''
    returnType: void
    signature: void AppendVarint64(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:48,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:48,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - start
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: ReversibleBytes::ReverseFrom
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 0
    functionsReached:
    - end
    - std::reverse
    - begin
    linkageType: ''
    returnType: void
    signature: void ReverseFrom(size_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReversibleBytes::size
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: ReversibleBytes::size
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 1
    functionsReached:
    - ReversibleBytes::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:54,1
    - Dst: rbegin
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:54,1
    - Dst: rend
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: ReversibleBytes::Reversed
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 0
    functionsReached:
    - rbegin
    - std::string
    - rend
    linkageType: ''
    returnType: std::string
    signature: std::string Reversed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - output
    argTypes:
    - ReversibleBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: ReversedCellEncoder::ReversedCellEncoder
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void ReversedCellEncoder(ReversibleBytes* output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:75,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:75,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:76,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: ReversedCellEncoder::Next
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 0
    functionsReached:
    - size
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AppendVarint64
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:84,1
    - Dst: AppendVarint64
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:89,1
    - Dst: ReverseFrom
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:95,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree_internal.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: ReversedCellEncoder::Finish
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_internal.h
    functionUses: 0
    functionsReached:
    - ReverseFrom
    - size
    - AppendVarint64
    linkageType: ''
    returnType: void
    signature: void Finish(uint64_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:32,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:33,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:34,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: S2::GetDimension
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 8
    functionsReached:
    - S2Shape*::dimension
    - num_shape_ids
    - shape
    - std::max
    linkageType: ''
    returnType: int
    signature: int GetDimension(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:41,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:42,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:43,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: S2::GetNumPoints
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 6
    functionsReached:
    - S2Shape*::num_edges
    - num_shape_ids
    - shape
    - S2Shape*::dimension
    linkageType: ''
    returnType: int
    signature: int GetNumPoints(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:51,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:52,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:53,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: S2::GetLength
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 7
    functionsReached:
    - S1Angle::S1Angle
    - num_shape_ids
    - S2::GetLength
    - shape
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetLength(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:60,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:61,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:62,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: S2::GetPerimeter
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 13
    functionsReached:
    - S1Angle::S1Angle
    - S2::GetPerimeter
    - num_shape_ids
    - shape
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetPerimeter(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:70,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:71,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: S2::GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 13
    functionsReached:
    - S2::GetArea
    - num_shape_ids
    - shape
    linkageType: ''
    returnType: double
    signature: double GetArea(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:79,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:80,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: S2::GetApproxArea
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 7
    functionsReached:
    - num_shape_ids
    - S2::GetApproxArea
    - shape
    linkageType: ''
    returnType: double
    signature: double GetApproxArea(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:87,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:88,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:89,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:90,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:91,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: S2::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 13
    functionsReached:
    - S2Shape*::dimension
    - num_shape_ids
    - shape
    - S2Point::S2Point
    - S2::GetDimension
    - S2::GetCentroid
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetCentroid(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:32,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:33,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:34,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: S2::GetDimension
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 9
    functionsReached:
    - S2Shape*::dimension
    - num_shape_ids
    - shape
    - std::max
    linkageType: ''
    returnType: int
    signature: int GetDimension(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:41,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:42,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:43,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: S2::GetNumPoints
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 6
    functionsReached:
    - S2Shape*::num_edges
    - num_shape_ids
    - shape
    - S2Shape*::dimension
    linkageType: ''
    returnType: int
    signature: int GetNumPoints(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:51,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:52,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:53,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: S2::GetLength
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 8
    functionsReached:
    - S1Angle::S1Angle
    - num_shape_ids
    - S2::GetLength
    - shape
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetLength(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:60,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:61,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:62,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: S2::GetPerimeter
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 14
    functionsReached:
    - S1Angle::S1Angle
    - S2::GetPerimeter
    - num_shape_ids
    - shape
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetPerimeter(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:70,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:71,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: S2::GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 14
    functionsReached:
    - S2::GetArea
    - num_shape_ids
    - shape
    linkageType: ''
    returnType: double
    signature: double GetArea(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:79,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:80,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: S2::GetApproxArea
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 8
    functionsReached:
    - num_shape_ids
    - S2::GetApproxArea
    - shape
    linkageType: ''
    returnType: double
    signature: double GetApproxArea(const S2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetDimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:87,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:88,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:89,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:90,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:91,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_index_measures.cc:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: S2::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_measures.cc
    functionUses: 14
    functionsReached:
    - S2Shape*::dimension
    - num_shape_ids
    - shape
    - S2Point::S2Point
    - S2::GetDimension
    - S2::GetCentroid
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetCentroid(const S2ShapeIndex& index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::Empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:41,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 70
    functionName: S1IntervalTestBase::S1IntervalTestBase
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - S1Interval::Full
    - S1Interval::Empty
    linkageType: ''
    returnType: void
    signature: void S1IntervalTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:83,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:84,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:87,1
    - Dst: bounds
      Src: /src/s2geometry/src/s2/s1interval_test.cc:87,1
    - Dst: Vector2_d
      Src: /src/s2geometry/src/s2/s1interval_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:88,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:89,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:92,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:93,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:94,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:95,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:95,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:99,1
    - Dst: S1Interval::is_valid
      Src: /src/s2geometry/src/s2/s1interval_test.cc:99,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:100,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:101,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:101,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:102,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:102,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - S1Interval::is_valid
    - EXPECT_TRUE
    - Vector2_d
    - bounds
    - S1Interval::is_empty
    - S1Interval::S1Interval
    - lo
    - S1Interval::hi
    - EXPECT_EQ
    - hi
    - S1Interval::lo
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, ConstructorsAndAccessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:107,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s1interval_test.cc:107,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:107,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:107,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:108,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s1interval_test.cc:108,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:108,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:108,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:109,1
    - Dst: is_inverted
      Src: /src/s2geometry/src/s2/s1interval_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:110,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s1interval_test.cc:110,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:110,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:110,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:111,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:111,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:111,1
    - Dst: is_inverted
      Src: /src/s2geometry/src/s2/s1interval_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:112,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:112,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:112,1
    - Dst: is_inverted
      Src: /src/s2geometry/src/s2/s1interval_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:113,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s1interval_test.cc:113,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:113,1
    - Dst: is_inverted
      Src: /src/s2geometry/src/s2/s1interval_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:114,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s1interval_test.cc:114,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:114,1
    - Dst: is_inverted
      Src: /src/s2geometry/src/s2/s1interval_test.cc:114,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - is_full
    - EXPECT_TRUE
    - is_valid
    - is_inverted
    - is_empty
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, SimplePredicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:119,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:119,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:120,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:120,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:121,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:121,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:124,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:124,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:125,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:125,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:126,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:126,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:127,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - S1Interval::IsValidPoint
    linkageType: ''
    returnType: void
    signature: void TEST(S1IntervalTest, IsValidPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:135,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:135,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:136,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:136,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:137,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:137,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:138,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S1Interval
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, AlmostEmptyOrFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:142,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s1interval_test.cc:142,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:143,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:143,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:144,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:144,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:145,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:146,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s1interval_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:147,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s1interval_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:148,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s1interval_test.cc:148,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s1interval_test.cc:148,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:149,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s1interval_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - fabs
    - EXPECT_DOUBLE_EQ
    - S1Interval
    - EXPECT_EQ
    - GetCenter
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, GetCenter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:153,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s1interval_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:154,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s1interval_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:155,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s1interval_test.cc:155,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:156,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s1interval_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:157,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s1interval_test.cc:157,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s1interval_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:158,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s1interval_test.cc:158,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s1interval_test.cc:159,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s1interval_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - GetLength
    - fabs
    - EXPECT_DOUBLE_EQ
    - EXPECT_LT
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, GetLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:163,1
    - Dst: Complement
      Src: /src/s2geometry/src/s2/s1interval_test.cc:163,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:164,1
    - Dst: Complement
      Src: /src/s2geometry/src/s2/s1interval_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:165,1
    - Dst: Complement
      Src: /src/s2geometry/src/s2/s1interval_test.cc:165,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:166,1
    - Dst: Complement
      Src: /src/s2geometry/src/s2/s1interval_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:167,1
    - Dst: Complement
      Src: /src/s2geometry/src/s2/s1interval_test.cc:167,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:168,1
    - Dst: Complement
      Src: /src/s2geometry/src/s2/s1interval_test.cc:168,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:169,1
    - Dst: Complement
      Src: /src/s2geometry/src/s2/s1interval_test.cc:169,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:170,1
    - Dst: Complement
      Src: /src/s2geometry/src/s2/s1interval_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Complement
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, Complement)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:175,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:175,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:175,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:177,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:177,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:178,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:178,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:178,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:179,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:179,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:179,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:180,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:180,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:180,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:182,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:182,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:182,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:183,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:183,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:184,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:185,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:185,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:185,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:186,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:186,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:186,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:187,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:187,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:188,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:188,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:189,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:190,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:190,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:190,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:191,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:191,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:192,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:192,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:192,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:192,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:193,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:193,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:193,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:194,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:194,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:194,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:194,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:195,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:195,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:195,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:196,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:196,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:196,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Contains
    - InteriorContains
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, Contains)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:208,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:209,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:210,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s1interval_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:211,1
    - Dst: InteriorIntersects
      Src: /src/s2geometry/src/s2/s1interval_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:215,1
    - Dst: Vector2_d
      Src: /src/s2geometry/src/s2/s1interval_test.cc:215,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s1interval_test.cc:215,1
    - Dst: bounds
      Src: /src/s2geometry/src/s2/s1interval_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:216,1
    - Dst: Vector2_d
      Src: /src/s2geometry/src/s2/s1interval_test.cc:216,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s1interval_test.cc:216,1
    - Dst: bounds
      Src: /src/s2geometry/src/s2/s1interval_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:219,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s1interval_test.cc:219,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s1interval_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:220,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s1interval_test.cc:220,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s1interval_test.cc:220,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:222,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:222,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:224,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:225,1
    - Dst: S1Interval::bounds
      Src: /src/s2geometry/src/s2/s1interval_test.cc:225,1
    - Dst: bounds
      Src: /src/s2geometry/src/s2/s1interval_test.cc:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ' x'
    - ' y'
    - expected_relation
    - ' expected_union'
    - ' expected_intersection'
    argTypes:
    - S1Interval
    - S1Interval
    - string_view
    - S1Interval
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 227
    functionName: TestIntervalOps
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 1
    functionsReached:
    - Intersection
    - Intersects
    - S1Interval::bounds
    - S1Interval::AddPoint
    - Vector2_d
    - lo
    - Union
    - hi
    - InteriorContains
    - EXPECT_EQ
    - InteriorIntersects
    - Contains
    - bounds
    linkageType: ''
    returnType: void
    signature: "void TestIntervalOps(const S1Interval& x, const S1Interval& y,\n                            string_view
      expected_relation,\n                            const S1Interval& expected_union,\n
      \                           const S1Interval& expected_intersection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:232,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:233,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:234,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:235,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:236,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:238,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:239,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:240,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:241,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:242,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:243,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:244,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:246,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:247,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:248,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:249,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:249,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:250,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:251,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:252,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:253,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:254,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:256,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:257,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:258,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:259,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:259,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:260,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:261,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:262,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:263,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:264,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:266,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:267,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:268,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:268,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:269,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:270,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:270,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:271,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:272,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:273,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:273,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:274,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:276,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:277,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:278,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:279,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:280,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:281,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:282,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:282,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:283,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:284,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:286,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:287,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:288,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:289,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:290,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:291,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:292,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:293,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:295,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:296,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:297,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:298,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:299,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:300,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:301,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:302,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:302,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:304,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:304,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:305,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:306,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:307,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:308,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:309,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:310,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:312,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:313,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:315,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:315,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:316,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:316,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:317,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:318,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:323,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:323,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:324,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:325,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:327,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:327,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:328,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:328,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:329,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:330,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:332,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:332,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:333,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:333,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:334,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:334,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:335,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:335,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:336,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:336,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:337,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:338,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:339,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:340,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:341,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:342,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:343,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s1interval_test.cc:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 345
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - lo
    - TestIntervalOps
    - hi
    - S1Interval
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, IntervalOps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:348,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:349,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:351,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:353,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:354,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:355,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:356,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:357,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:358,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:358,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:358,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:358,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:359,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:360,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:360,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:360,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:360,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:361,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:362,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:362,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:363,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:364,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:365,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:365,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:366,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:367,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:367,1
    - Dst: S1Interval::AddPoint
      Src: /src/s2geometry/src/s2/s1interval_test.cc:368,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:369,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 370
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - S1Interval::AddPoint
    - EXPECT_TRUE
    - lo
    - S1Interval::is_full
    - EXPECT_EQ
    - hi
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, AddPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:374,1
    - Dst: S1Interval::Project
      Src: /src/s2geometry/src/s2/s1interval_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:375,1
    - Dst: S1Interval::Project
      Src: /src/s2geometry/src/s2/s1interval_test.cc:375,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:377,1
    - Dst: S1Interval::Project
      Src: /src/s2geometry/src/s2/s1interval_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:378,1
    - Dst: S1Interval::Project
      Src: /src/s2geometry/src/s2/s1interval_test.cc:378,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:379,1
    - Dst: S1Interval::Project
      Src: /src/s2geometry/src/s2/s1interval_test.cc:379,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:381,1
    - Dst: S1Interval::Project
      Src: /src/s2geometry/src/s2/s1interval_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:382,1
    - Dst: S1Interval::Project
      Src: /src/s2geometry/src/s2/s1interval_test.cc:382,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:383,1
    - Dst: S1Interval::Project
      Src: /src/s2geometry/src/s2/s1interval_test.cc:383,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:384,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:385,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:385,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:386,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 387
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Interval::Full
    - S1Interval::Project
    - S1Interval
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, Project)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:390,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s1interval_test.cc:390,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:391,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s1interval_test.cc:391,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:392,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s1interval_test.cc:392,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:392,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:392,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:393,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s1interval_test.cc:393,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval_test.cc:393,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval_test.cc:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - lo
    - S1Interval::FromPointPair
    - hi
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, FromPointPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:397,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:397,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:398,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:398,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:399,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:399,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:399,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:400,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:400,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:401,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:402,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:403,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:403,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:404,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:406,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:407,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:408,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:408,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:409,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:409,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:410,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:410,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:411,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:412,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s1interval_test.cc:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 413
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Expanded
    - S1Interval
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, Expanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:422,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:422,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:423,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:423,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:423,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:424,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:424,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:424,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:425,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:425,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:425,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:426,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:426,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:427,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:427,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:427,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:428,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:428,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:428,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:429,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:429,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:432,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:432,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:433,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:433,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:434,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:434,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:435,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:435,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:436,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:436,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:436,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:437,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:437,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:437,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:438,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:438,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:439,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:439,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:442,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:442,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:442,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:443,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:443,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:443,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:444,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:444,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:444,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:445,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:445,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:445,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:446,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:446,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:446,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:447,1
    - Dst: ApproxEquals
      Src: /src/s2geometry/src/s2/s1interval_test.cc:447,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:448,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s1interval_test.cc:448,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:449,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s1interval_test.cc:449,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:450,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s1interval_test.cc:450,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:454,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:454,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:454,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:455,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:455,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:456,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:459,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:459,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:459,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:460,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:460,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:460,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:461,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:461,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:461,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:462,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:462,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:462,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:463,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:463,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:463,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:464,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:464,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:464,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:465,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:465,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:465,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:466,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:466,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:466,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:467,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:467,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:467,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:468,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:468,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:468,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:469,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:469,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:469,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:470,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:470,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 471
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - Intersection
    - ApproxEquals
    - EXPECT_TRUE
    - S1Interval
    - Union
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, ApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:475,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, OperatorEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:480,1
    - Dst: GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s1interval_test.cc:480,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:481,1
    - Dst: GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s1interval_test.cc:481,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:482,1
    - Dst: GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s1interval_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:484,1
    - Dst: GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s1interval_test.cc:484,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:486,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:487,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:488,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:489,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s1interval_test.cc:490,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FLOAT_EQ
    - S1Interval
    - GetDirectedHausdorffDistance
    linkageType: ''
    returnType: void
    signature: void TEST_F(S1IntervalTestBase, GetDirectedHausdorffDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1interval_test.cc:495,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/s2geometry/src/s2/s1interval_test.cc:495,1
    - Dst: S1Interval::Empty
      Src: /src/s2geometry/src/s2/s1interval_test.cc:496,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s1interval_test.cc:497,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:498,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:499,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:500,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:501,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s1interval_test.cc:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 504
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1interval_test.cc
    functionUses: 0
    functionsReached:
    - S1Interval::Empty
    - EXPECT_TRUE
    - S1Interval
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - S1Interval::Full
    linkageType: ''
    returnType: void
    signature: void TEST(S1Interval, SupportsAbslHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: S2ContainsVertexQuery::S2ContainsVertexQuery
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ContainsVertexQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsVertexQuery::Init
      Src: /src/s2geometry/src/s2/s2contains_vertex_query.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: S2ContainsVertexQuery::S2ContainsVertexQuery
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query.h
    functionUses: 0
    functionsReached:
    - S2ContainsVertexQuery::Init
    linkageType: ''
    returnType: void
    signature: void S2ContainsVertexQuery(const S2Point& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2contains_vertex_query.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: S2ContainsVertexQuery::Init
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query.h
    functionUses: 1
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Init(const S2Point& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' v'
    - direction
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: S2ContainsVertexQuery::AddEdge
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AddEdge(const S2Point& v, int direction)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2contains_vertex_query.h:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: S2ContainsVertexQuery::DuplicateEdges
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query.h
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: bool
    signature: bool DuplicateEdges() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:62,1
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:63,1
    - Dst: absl::SkipEmpty
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:64,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:64,1
    - Dst: absl::StrContains
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:67,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:68,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:68,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:69,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:69,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' ll'
    - max_digits
    argTypes:
    - S2LatLng
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: ExpectMaxDigits
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrContains
    - absl::SkipEmpty
    - s2textformat::ToString
    - size
    - find
    - back
    - vector::size
    - EXPECT_LE
    - EXPECT_NE
    - EXPECT_EQ
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: void ExpectMaxDigits(const S2LatLng& ll, int max_digits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:76,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - ' ll'
    argTypes:
    - string_view
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: ExpectString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void ExpectString(string_view expected, const S2LatLng& ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:80,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:80,1
    - Dst: ExpectString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:81,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:81,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:81,1
    - Dst: ExpectString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:82,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - ExpectString
    - S2LatLng
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, SpecialCases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:93,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:93,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:94,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:94,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:95,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:95,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:96,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:96,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:97,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:97,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:98,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:98,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:99,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:99,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:100,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:100,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:101,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:101,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, NegativeZeros)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:105,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:106,1
    - Dst: S2LatLng::FromE5
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:109,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:109,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:109,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::lng
    - S2LatLng::lat
    - S2LatLng::FromE5
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - ExpectMaxDigits
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, MinimalDigitsE5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:115,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:116,1
    - Dst: S2LatLng::FromE6
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:119,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:119,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:119,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromE6
    - S2LatLng::lng
    - S2LatLng::lat
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - ExpectMaxDigits
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, MinimalDigitsE6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:125,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:126,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:127,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:127,1
    - Dst: S2LatLng::FromE7
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:130,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:130,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:130,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::lat
    - S2LatLng::lng
    - S2LatLng::FromDegrees
    - S2LatLng::FromE7
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - ExpectMaxDigits
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, MinimalDigitsE7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:136,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:137,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:142,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:143,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:144,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:145,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:146,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:147,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:148,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:148,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:149,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - MathUtil::Round<int64_t>
    - static_cast<double>
    - pow
    - S2LatLng::FromDegrees
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - ExpectMaxDigits
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, MinimalDigitsDoubleConstants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:155,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:155,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, FaceCellId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:159,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:159,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, Level3CellId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:165,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - s2textformat::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, UninitializedLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:170,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:175,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, FullLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:180,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Polyline::S2Polyline
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, EmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:185,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, EmptyPointVector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:189,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:190,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:195,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:201,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:201,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakeIndexOrDie
    - auto::shape
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, PointShapeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:207,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:207,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakeIndexOrDie
    - auto::shape
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, PolylineShapeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:213,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:213,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakeIndexOrDie
    - auto::shape
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, PolygonShapeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:220,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:221,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, S2PolygonLoopSeparator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:228,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:229,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::MakeLaxPolygonOrDie
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, LaxPolygonLoopSeparator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParseLatLngsOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:234,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:235,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::ParseLatLngsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, S2LatLngSpan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:241,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:241,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:243,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::MakeLaxPolygonOrDie
    - auto::num_loops
    linkageType: ''
    returnType: void
    signature: void TEST(MakeLaxPolygon, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:248,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:249,1
    - Dst: auto::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::MakeLaxPolygonOrDie
    - auto::num_loops
    - auto::num_loop_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(MakeLaxPolygon, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:254,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:255,1
    - Dst: auto::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:256,1
    - Dst: auto::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:256,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:257,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - auto::num_loop_vertices
    - s2textformat::MakeLaxPolygonOrDie
    - auto::num_loops
    - EXPECT_EQ
    - auto::num_edges
    linkageType: ''
    returnType: void
    signature: void TEST(MakeLaxPolygon, FullWithHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:261,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:261,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: TestS2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TestS2ShapeIndex(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:265,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:266,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:267,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:268,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:269,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:270,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:271,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:272,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:273,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:274,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - TestS2ShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, S2ShapeIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:279,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:280,1
    - Dst: s2textformat::MakePoint
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:281,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakePoint
    - EXPECT_TRUE
    - S2Point::S2Point
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(MakePoint, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:285,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:286,1
    - Dst: s2textformat::MakePoint
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakePoint
    - EXPECT_FALSE
    - S2Point::S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(MakePoint, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:291,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:292,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:293,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:294,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:295,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:295,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:296,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_TRUE
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - vector::size
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: void
    signature: void TEST(SafeParseLatLngs, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:301,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:301,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:304,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:304,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:305,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:305,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:306,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:306,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:307,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: void
    signature: void TEST(SafeParseLatLngs, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:312,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:313,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:314,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:314,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:315,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:316,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:316,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:317,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 318
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2textformat::ParsePoints
    - EXPECT_TRUE
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(SafeParsePoints, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:322,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePoints
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeParsePoints, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:326,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:327,1
    - Dst: s2textformat::MakeLatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:328,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:328,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:328,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLatLngRect
    - EXPECT_TRUE
    - S2LatLngRect::S2LatLngRect
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2LatLngRect
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLatLngRect, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:333,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:334,1
    - Dst: s2textformat::MakeLatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2LatLngRect::S2LatLngRect
    - s2textformat::MakeLatLngRect
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLatLngRect, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:338,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:339,1
    - Dst: s2textformat::MakeLatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:339,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:340,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:340,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLng
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - s2textformat::MakeLatLng
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLatLng, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:344,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:345,1
    - Dst: s2textformat::MakeLatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - s2textformat::MakeLatLng
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLatLng, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:350,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:351,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellId::S2CellId
    - S2CellId::FromFace
    - EXPECT_EQ
    - s2textformat::MakeCellId
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeCellId, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:355,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:356,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:356,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:357,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:357,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:358,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 359
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeCellId
    - S2CellId::S2CellId
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeCellId, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:362,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:363,1
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:363,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:364,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakeCellUnion
    - S2CellUnion::S2CellUnion
    - S2CellId::FromFace
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeCellUnion, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:369,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:370,1
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:370,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:371,1
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeCellUnion
    - EXPECT_FALSE
    - S2CellUnion::S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeCellUnion, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:376,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:376,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:377,1
    - Dst: unique_ptr::BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:377,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:378,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:378,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:379,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop
    - EXPECT_TRUE
    - s2textformat::MakeLoop
    - S2LatLng::FromDegrees
    - unique_ptr::BoundaryApproxEquals
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLoop, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:385,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLoop
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLoop, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:391,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:391,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:392,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakeLoop
    - unique_ptr::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLoop, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:398,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:398,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:399,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakeLoop
    - unique_ptr::is_full
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLoop, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:404,1
    - Dst: s2textformat::MakePolyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:405,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:406,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:407,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:408,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:409,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - unique_ptr::Equals
    - s2textformat::MakePolyline
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolyline, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:414,1
    - Dst: s2textformat::MakePolyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakePolyline
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolyline, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:419,1
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:419,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:422,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:422,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:423,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:423,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:423,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:424,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:425,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:425,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:425,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:426,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:427,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:427,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:427,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 429
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2textformat::MakeLaxPolyline
    - EXPECT_TRUE
    - S2LatLng
    - S2LatLng::FromDegrees
    - unique_ptr::vertex
    - unique_ptr::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLaxPolyline, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:433,1
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLaxPolyline
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLaxPolyline, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:438,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:438,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:439,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:440,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:441,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:443,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 444
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakePolygon
    - unique_ptr::Equals
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolygon, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:448,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakePolygon
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolygon, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:454,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:454,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:455,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:455,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:456,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:456,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:457,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakePolygon
    - unique_ptr::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolygon, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:463,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:463,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:464,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakePolygon
    - unique_ptr::is_full
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolygon, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:469,1
    - Dst: s2textformat::MakeVerbatimPolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:470,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:471,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:472,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:473,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:475,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - unique_ptr::Equals
    - s2textformat::MakeVerbatimPolygon
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeVerbatimPolygon, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:480,1
    - Dst: s2textformat::MakeVerbatimPolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeVerbatimPolygon
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeVerbatimPolygon, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:485,1
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:486,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:490,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:490,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:491,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:491,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:492,1
    - Dst: unique_ptr::num_edges
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:492,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:493,1
    - Dst: unique_ptr::num_chains
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:493,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:495,1
    - Dst: unique_ptr::chain
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:495,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:500,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 501
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - unique_ptr::num_loops
    - unique_ptr::num_edges
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygon
    - unique_ptr::num_chains
    - s2textformat::ToString
    - EXPECT_EQ
    - unique_ptr::num_vertices
    - unique_ptr::chain
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLaxPolygon, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:505,1
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLaxPolygon
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLaxPolygon, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:509,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:510,1
    - Dst: s2textformat::MakeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:510,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:511,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - EXPECT_TRUE
    - s2textformat::ToString
    - EXPECT_EQ
    - s2textformat::MakeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeIndex, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:516,1
    - Dst: s2textformat::MakeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - s2textformat::MakeIndex
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeIndex, InvalidInput)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:62,1
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:63,1
    - Dst: absl::SkipEmpty
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:64,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:64,1
    - Dst: absl::StrContains
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:67,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:68,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:68,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:69,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:69,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' ll'
    - max_digits
    argTypes:
    - S2LatLng
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: ExpectMaxDigits
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 4
    functionsReached:
    - absl::StrContains
    - absl::SkipEmpty
    - s2textformat::ToString
    - size
    - find
    - back
    - vector::size
    - EXPECT_LE
    - EXPECT_NE
    - EXPECT_EQ
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: void ExpectMaxDigits(const S2LatLng& ll, int max_digits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:76,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - ' ll'
    argTypes:
    - string_view
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: ExpectString
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void ExpectString(string_view expected, const S2LatLng& ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:80,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:80,1
    - Dst: ExpectString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:81,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:81,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:81,1
    - Dst: ExpectString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:82,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - ExpectString
    - S2LatLng
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, SpecialCases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:93,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:93,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:94,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:94,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:95,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:95,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:96,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:96,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:97,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:97,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:98,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:98,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:99,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:99,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:100,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:100,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:101,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:101,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, NegativeZeros)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:105,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:106,1
    - Dst: S2LatLng::FromE5
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:109,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:109,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:109,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::lng
    - S2LatLng::lat
    - S2LatLng::FromE5
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - ExpectMaxDigits
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, MinimalDigitsE5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:115,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:116,1
    - Dst: S2LatLng::FromE6
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:119,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:119,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:119,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromE6
    - S2LatLng::lng
    - S2LatLng::lat
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - ExpectMaxDigits
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, MinimalDigitsE6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:125,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:126,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:127,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:127,1
    - Dst: S2LatLng::FromE7
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:130,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:130,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:130,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::lat
    - S2LatLng::lng
    - S2LatLng::FromDegrees
    - S2LatLng::FromE7
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - ExpectMaxDigits
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, MinimalDigitsE7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:136,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:137,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:142,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:143,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:144,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:145,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:146,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:147,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:148,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:148,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:149,1
    - Dst: ExpectMaxDigits
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - MathUtil::Round<int64_t>
    - static_cast<double>
    - pow
    - S2LatLng::FromDegrees
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - ExpectMaxDigits
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, MinimalDigitsDoubleConstants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:155,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:155,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, FaceCellId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:159,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:159,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, Level3CellId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:165,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - s2textformat::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, UninitializedLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:170,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:175,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, FullLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:180,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Polyline::S2Polyline
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, EmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:185,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, EmptyPointVector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:189,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:190,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - S2Polygon::S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:195,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:201,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:201,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakeIndexOrDie
    - auto::shape
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, PointShapeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:207,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:207,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakeIndexOrDie
    - auto::shape
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, PolylineShapeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:213,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:213,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakeIndexOrDie
    - auto::shape
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, PolygonShapeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:220,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:221,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, S2PolygonLoopSeparator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:228,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:229,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::MakeLaxPolygonOrDie
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, LaxPolygonLoopSeparator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParseLatLngsOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:234,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:235,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::ParseLatLngsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, S2LatLngSpan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:241,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:241,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:243,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::MakeLaxPolygonOrDie
    - auto::num_loops
    linkageType: ''
    returnType: void
    signature: void TEST(MakeLaxPolygon, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:248,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:249,1
    - Dst: auto::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::MakeLaxPolygonOrDie
    - auto::num_loops
    - auto::num_loop_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(MakeLaxPolygon, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:254,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:255,1
    - Dst: auto::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:256,1
    - Dst: auto::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:256,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:257,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - auto::num_loop_vertices
    - s2textformat::MakeLaxPolygonOrDie
    - auto::num_loops
    - EXPECT_EQ
    - auto::num_edges
    linkageType: ''
    returnType: void
    signature: void TEST(MakeLaxPolygon, FullWithHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:261,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:261,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: TestS2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TestS2ShapeIndex(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:265,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:266,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:267,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:268,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:269,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:270,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:271,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:272,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:273,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:274,1
    - Dst: TestS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - TestS2ShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(ToString, S2ShapeIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:279,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:280,1
    - Dst: s2textformat::MakePoint
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:281,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakePoint
    - EXPECT_TRUE
    - S2Point::S2Point
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(MakePoint, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:285,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:286,1
    - Dst: s2textformat::MakePoint
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakePoint
    - EXPECT_FALSE
    - S2Point::S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(MakePoint, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:291,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:292,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:293,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:294,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:295,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:295,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:296,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_TRUE
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - vector::size
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: void
    signature: void TEST(SafeParseLatLngs, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:301,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:301,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:304,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:304,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:305,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:305,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:306,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:306,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:307,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: void
    signature: void TEST(SafeParseLatLngs, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:312,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:313,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:314,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:314,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:315,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:316,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:316,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:317,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 318
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2textformat::ParsePoints
    - EXPECT_TRUE
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(SafeParsePoints, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:322,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePoints
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeParsePoints, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:326,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:327,1
    - Dst: s2textformat::MakeLatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:328,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:328,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:328,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLatLngRect
    - EXPECT_TRUE
    - S2LatLngRect::S2LatLngRect
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2LatLngRect
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLatLngRect, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:333,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:334,1
    - Dst: s2textformat::MakeLatLngRect
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2LatLngRect::S2LatLngRect
    - s2textformat::MakeLatLngRect
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLatLngRect, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:338,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:339,1
    - Dst: s2textformat::MakeLatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:339,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:340,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:340,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLng
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - s2textformat::MakeLatLng
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLatLng, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:344,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:345,1
    - Dst: s2textformat::MakeLatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - s2textformat::MakeLatLng
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLatLng, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:350,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:351,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellId::S2CellId
    - S2CellId::FromFace
    - EXPECT_EQ
    - s2textformat::MakeCellId
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeCellId, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:355,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:356,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:356,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:357,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:357,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:358,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 359
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeCellId
    - S2CellId::S2CellId
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeCellId, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:362,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:363,1
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:363,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:364,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakeCellUnion
    - S2CellUnion::S2CellUnion
    - S2CellId::FromFace
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeCellUnion, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:369,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:370,1
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:370,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:371,1
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeCellUnion
    - EXPECT_FALSE
    - S2CellUnion::S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeCellUnion, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:376,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:376,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:377,1
    - Dst: unique_ptr::BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:377,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:378,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:378,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:379,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop
    - EXPECT_TRUE
    - s2textformat::MakeLoop
    - S2LatLng::FromDegrees
    - unique_ptr::BoundaryApproxEquals
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLoop, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:385,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLoop
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLoop, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:391,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:391,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:392,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakeLoop
    - unique_ptr::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLoop, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:398,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:398,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:399,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakeLoop
    - unique_ptr::is_full
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLoop, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:404,1
    - Dst: s2textformat::MakePolyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:405,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:406,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:407,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:408,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:409,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - unique_ptr::Equals
    - s2textformat::MakePolyline
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolyline, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:414,1
    - Dst: s2textformat::MakePolyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakePolyline
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolyline, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:419,1
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:419,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:422,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:422,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:423,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:423,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:423,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:424,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:425,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:425,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:425,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:426,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:427,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:427,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:427,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 429
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2textformat::MakeLaxPolyline
    - EXPECT_TRUE
    - S2LatLng
    - S2LatLng::FromDegrees
    - unique_ptr::vertex
    - unique_ptr::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLaxPolyline, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:433,1
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLaxPolyline
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLaxPolyline, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:438,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:438,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:439,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:440,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:441,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:443,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 444
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakePolygon
    - unique_ptr::Equals
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolygon, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:448,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakePolygon
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolygon, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:454,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:454,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:455,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:455,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:456,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:456,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:457,1
    - Dst: unique_ptr::is_empty
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakePolygon
    - unique_ptr::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolygon, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:463,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:463,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:464,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - s2textformat::MakePolygon
    - unique_ptr::is_full
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakePolygon, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:469,1
    - Dst: s2textformat::MakeVerbatimPolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:470,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:471,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:472,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:473,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:475,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - unique_ptr::Equals
    - s2textformat::MakeVerbatimPolygon
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeVerbatimPolygon, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:480,1
    - Dst: s2textformat::MakeVerbatimPolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeVerbatimPolygon
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeVerbatimPolygon, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:485,1
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:486,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:490,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:490,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:491,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:491,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:492,1
    - Dst: unique_ptr::num_edges
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:492,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:493,1
    - Dst: unique_ptr::num_chains
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:493,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:495,1
    - Dst: unique_ptr::chain
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:495,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:500,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 501
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - unique_ptr::num_loops
    - unique_ptr::num_edges
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygon
    - unique_ptr::num_chains
    - s2textformat::ToString
    - EXPECT_EQ
    - unique_ptr::num_vertices
    - unique_ptr::chain
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLaxPolygon, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:505,1
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLaxPolygon
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeLaxPolygon, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:509,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:510,1
    - Dst: s2textformat::MakeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:510,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:511,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - EXPECT_TRUE
    - s2textformat::ToString
    - EXPECT_EQ
    - s2textformat::MakeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeIndex, ValidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:516,1
    - Dst: s2textformat::MakeIndex
      Src: /src/s2geometry/src/s2/s2text_format_test.cc:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2text_format_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - s2textformat::MakeIndex
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SafeMakeIndex, InvalidInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:73,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:75,1
    - Dst: S2FurthestEdgeQuery::FindFurthestEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:77,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:77,1
    - Dst: auto::distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:78,1
    - Dst: auto::edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:79,1
    - Dst: auto::shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:79,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:80,1
    - Dst: auto::is_interior
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:81,1
    - Dst: auto::is_empty
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:82,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:82,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2FurthestEdgeQuery::FindFurthestEdge
    - auto::shape_id
    - EXPECT_TRUE
    - S2Point
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - auto::is_interior
    - S2FurthestEdgeQuery::GetDistance
    - EXPECT_EQ
    - auto::distance
    - auto::edge_id
    - S1ChordAngle::Negative
    - auto::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2FurthestEdgeQuery::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:90,1
    - Dst: S2FurthestEdgeQuery::Options::set_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:91,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:91,1
    - Dst: S2FurthestEdgeQuery::Options::set_max_error
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:92,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:92,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:93,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:94,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:96,1
    - Dst: S2FurthestEdgeQuery::FindFurthestEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:96,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:97,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:97,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:98,1
    - Dst: S2FurthestEdgeQuery::IsDistanceGreater
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:98,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:101,1
    - Dst: S2FurthestEdgeQuery::Options::max_results
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:101,1
    - Dst: S2FurthestEdgeQuery::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:102,1
    - Dst: S2FurthestEdgeQuery::Options::min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:102,1
    - Dst: S2FurthestEdgeQuery::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:103,1
    - Dst: S2FurthestEdgeQuery::Options::max_error
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:103,1
    - Dst: S2FurthestEdgeQuery::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 104
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2FurthestEdgeQuery::FindFurthestEdge
    - auto::get
    - S2FurthestEdgeQuery::options
    - EXPECT_NEAR
    - EXPECT_TRUE
    - S2FurthestEdgeQuery::Options::set_max_results
    - S2FurthestEdgeQuery::Options::max_error
    - S1ChordAngle::Degrees
    - MakeIndexOrDie
    - MakePointOrDie
    - EXPECT_EQ
    - S2FurthestEdgeQuery::GetDistance
    - S2FurthestEdgeQuery::Options::set_min_distance
    - S2FurthestEdgeQuery::IsDistanceGreater
    - S2FurthestEdgeQuery::Options::max_results
    - S2FurthestEdgeQuery::Options::min_distance
    - S2FurthestEdgeQuery::Options::set_max_error
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, OptionsNotModified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2FurthestEdgeQuery::Options::set_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:111,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:111,1
    - Dst: set_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:112,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:113,1
    - Dst: min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:113,1
    - Dst: S2FurthestEdgeQuery::Options::min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:113,1
    - Dst: S2FurthestEdgeQuery::Options::set_inclusive_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:115,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:115,1
    - Dst: set_inclusive_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:116,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:117,1
    - Dst: min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:117,1
    - Dst: S2FurthestEdgeQuery::Options::min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:117,1
    - Dst: S2FurthestEdgeQuery::Options::set_conservative_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:119,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:119,1
    - Dst: set_conservative_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:120,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:121,1
    - Dst: min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:121,1
    - Dst: S2FurthestEdgeQuery::Options::min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - set_min_distance
    - min_distance
    - S1Angle::Degrees
    - EXPECT_EQ
    - S1ChordAngle::Degrees
    - S2FurthestEdgeQuery::Options::set_conservative_min_distance
    - S2FurthestEdgeQuery::Options::set_min_distance
    - S2FurthestEdgeQuery::Options::set_inclusive_min_distance
    - S2FurthestEdgeQuery::Options::min_distance
    - set_inclusive_min_distance
    - set_conservative_min_distance
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, OptionsS1AngleSetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:128,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y0'
    - ' y1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: GetMaxDistanceToEdge
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::Negative
    - S2::UpdateMaxDistance
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle GetMaxDistanceToEdge(\n    const S2Point& x, const S2Point&
      y0, const S2Point& y1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:137,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:138,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:140,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:141,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:141,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:146,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:147,1
    - Dst: S2FurthestEdgeQuery::IsDistanceGreater
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:147,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:148,1
    - Dst: S2FurthestEdgeQuery::IsDistanceGreaterOrEqual
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:148,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:149,1
    - Dst: S2FurthestEdgeQuery::IsConservativeDistanceGreaterOrEqual
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:149,1
    - Dst: GetMaxDistanceToEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:153,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:154,1
    - Dst: S2FurthestEdgeQuery::IsDistanceGreater
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:154,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:155,1
    - Dst: S2FurthestEdgeQuery::IsDistanceGreaterOrEqual
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:155,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:156,1
    - Dst: S2FurthestEdgeQuery::IsConservativeDistanceGreaterOrEqual
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 157
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2FurthestEdgeQuery::IsConservativeDistanceGreaterOrEqual
    - EXPECT_TRUE
    - S2FurthestEdgeQuery::IsDistanceGreaterOrEqual
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2PointVectorShape>
    - GetMaxDistanceToEdge
    - MakePointOrDie
    - S1ChordAngle::Straight
    - S2FurthestEdgeQuery::IsDistanceGreater
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, DistanceEqualToLimit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetMaxDistanceToEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:168,1
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:169,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:170,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:170,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:174,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:175,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:178,1
    - Dst: S2FurthestEdgeQuery::IsDistanceGreater
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:178,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:179,1
    - Dst: S2FurthestEdgeQuery::IsDistanceGreaterOrEqual
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:179,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:180,1
    - Dst: S2FurthestEdgeQuery::IsConservativeDistanceGreaterOrEqual
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 181
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2FurthestEdgeQuery::IsConservativeDistanceGreaterOrEqual
    - S1ChordAngle::Successor
    - EXPECT_TRUE
    - S2FurthestEdgeQuery::IsDistanceGreaterOrEqual
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2pred::CompareDistance
    - make_unique<S2PointVectorShape>
    - ASSERT_GT
    - GetMaxDistanceToEdge
    - S2FurthestEdgeQuery::IsDistanceGreater
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, TrueDistanceGreaterThanS1ChordAngleDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:186,1
    - Dst: S2FurthestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:190,1
    - Dst: S2FurthestEdgeQuery::Options::set_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:191,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:191,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:192,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:193,1
    - Dst: S2FurthestEdgeQuery::FindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:194,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:195,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:196,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:196,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:196,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:198,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:200,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:200,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:201,1
    - Dst: is_interior
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:201,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:202,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:202,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:206,1
    - Dst: S2FurthestEdgeQuery::FindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:207,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:208,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:208,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:209,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:209,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:210,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:212,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:212,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:213,1
    - Dst: is_interior
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:213,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:214,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:214,1
    - Dst: S2FurthestEdgeQuery::GetEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:215,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:216,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:216,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:216,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:217,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:218,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:218,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:218,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 220
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - S2FurthestEdgeQuery::mutable_options
    - shape_id
    - S2FurthestEdgeQuery::GetEdge
    - auto::size
    - ASSERT_GT
    - is_interior
    - MakeIndexOrDie
    - S2FurthestEdgeQuery::Options::set_min_distance
    - EXPECT_EQ
    - auto::get
    - EXPECT_TRUE
    - S2LatLng
    - S1Angle::Degrees
    - S2FurthestEdgeQuery::Options::set_include_interiors
    - EXPECT_LE
    - S2::ApproxEquals
    - S2LatLng::FromDegrees
    - MakePointOrDie
    - distance
    - S1ChordAngle::Straight
    - is_empty
    - EXPECT_FALSE
    - S2FurthestEdgeQuery::FindFurthestEdges
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, AntipodalPointInsideIndexedPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:226,1
    - Dst: S2FurthestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:228,1
    - Dst: S2FurthestEdgeQuery::Options::set_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:229,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:229,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:230,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:231,1
    - Dst: S2FurthestEdgeQuery::FindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:233,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S1Angle::Degrees
    - auto::size
    - S2FurthestEdgeQuery::Options::set_include_interiors
    - EXPECT_EQ
    - MakePointOrDie
    - S2FurthestEdgeQuery::FindFurthestEdges
    - S2FurthestEdgeQuery::Options::set_min_distance
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, AntipodalPointOutsideIndexedPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:239,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:240,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:241,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:242,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:244,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:245,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::set_use_brute_force
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:246,1
    - Dst: S2FurthestEdgeQuery::FindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:247,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:249,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:249,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:250,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:250,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:251,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:251,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:252,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:252,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:253,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:253,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:254,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:255,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 256
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - ASSERT_EQ
    - auto::get
    - S2FurthestEdgeQuery::mutable_options
    - shape_id
    - EXPECT_NE
    - S1ChordAngle::Zero
    - auto::size
    - distance
    - S2FurthestEdgeQuery::ShapeIndexTarget::set_use_brute_force
    - EXPECT_EQ
    - S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - S2FurthestEdgeQuery::FindFurthestEdges
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, TargetPolygonContainingIndexedPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:261,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:262,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:265,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:267,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:267,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:267,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:269,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:270,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:270,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:271,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:273,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:274,1
    - Dst: S2FurthestEdgeQuery::FindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:275,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:276,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:277,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:277,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:278,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:279,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:280,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:280,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:281,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:282,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - S2FurthestEdgeQuery::mutable_options
    - shape_id
    - auto::size
    - MakeIndexOrDie
    - S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - make_unique<S2PointVectorShape>
    - EXPECT_EQ
    - make_unique<MutableS2ShapeIndex>
    - vector::push_back
    - auto::Add
    - auto::get
    - std::move
    - S1Angle::Degrees
    - ASSERT_EQ
    - ParsePointsOrDie
    - distance
    - S1ChordAngle::Straight
    - S2FurthestEdgeQuery::FindFurthestEdges
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, AntipodalPolygonContainingIndexedPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:287,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:288,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:289,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:290,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:291,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:293,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:295,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:295,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:295,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:297,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:298,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:299,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:299,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:299,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:301,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:303,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:303,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 304
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S2FurthestEdgeQuery::mutable_options
    - S2FurthestEdgeQuery::GetDistance
    - EXPECT_EQ
    - S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - S1ChordAngle::Negative
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, EmptyPolygonTarget)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:308,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:309,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:310,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:311,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:312,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:314,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:316,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:316,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:316,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:318,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:319,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:320,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:320,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:320,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:322,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:324,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:324,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 325
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S2FurthestEdgeQuery::mutable_options
    - S2FurthestEdgeQuery::GetDistance
    - S1ChordAngle::Straight
    - EXPECT_EQ
    - S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - S1ChordAngle::Negative
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, FullLaxPolygonTarget)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:330,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:331,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:332,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:333,1
    - Dst: make_unique<S2Polygon::OwningShape>
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:333,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:334,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:336,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:337,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:339,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:341,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:341,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:341,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:343,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:345,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:345,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:345,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:347,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:348,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:349,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:349,1
    - Dst: S2FurthestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 350
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - auto::get
    - S2FurthestEdgeQuery::mutable_options
    - make_unique<S2Polygon::OwningShape>
    - S2FurthestEdgeQuery::GetDistance
    - S1ChordAngle::Straight
    - EXPECT_EQ
    - S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - s2textformat::MakePolygonOrDie
    - S1ChordAngle::Negative
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, FullS2PolygonTarget)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:353,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:354,1
    - Dst: make_unique<S2Polygon::OwningShape>
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:354,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:355,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:357,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:358,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::set_use_brute_force
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:359,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:361,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:361,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:362,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::use_brute_force
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - S2FurthestEdgeQuery::ShapeIndexTarget::use_brute_force
    - auto::get
    - S2FurthestEdgeQuery::ShapeIndexTarget::include_interiors
    - make_unique<S2Polygon::OwningShape>
    - EXPECT_TRUE
    - S2FurthestEdgeQuery::ShapeIndexTarget::set_use_brute_force
    - S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - s2textformat::MakePolygonOrDie
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, CheckSettings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:382,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:383,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:383,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:383,1
    - Dst: s2shapeutil::ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:384,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:384,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - edges
    argTypes:
    - absl::Span<const S2FurthestEdgeQuery::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 388
    functionName: ConvertResults
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - vector::push_back
    - shape_id
    - distance
    - make_pair
    - S2MaxDistance
    - s2shapeutil::ShapeEdgeId
    linkageType: ''
    returnType: vector<Result>
    signature: "vector<Result> ConvertResults(\n    absl::Span<const S2FurthestEdgeQuery::Result>
      edges)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2FurthestEdgeQuery*::FindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:395,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:396,1
    - Dst: vector<S2FurthestEdgeQuery::Result>*::size
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:396,1
    - Dst: S2FurthestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:396,1
    - Dst: S2FurthestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:397,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:397,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:398,1
    - Dst: S2FurthestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:398,1
    - Dst: s2shapeutil::CountEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:399,1
    - Dst: S2FurthestEdgeQuery*::index
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:399,1
    - Dst: S2FurthestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:402,1
    - Dst: vector<S2FurthestEdgeQuery::Result>*::size
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:402,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:405,1
    - Dst: vector<S2FurthestEdgeQuery::Result>*::size
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:405,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:410,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:410,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:410,1
    - Dst: S2FurthestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - target
    - query
    - edges
    argTypes:
    - S2FurthestEdgeQuery::Target*
    - S2FurthestEdgeQuery*
    - vector<S2FurthestEdgeQuery::Result>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 412
    functionName: GetFurthestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::CountEdges
    - S2FurthestEdgeQuery*::FindFurthestEdges
    - min
    - S2FurthestEdgeQuery*::index
    - EXPECT_GE
    - EXPECT_LE
    - S1ChordAngle::Negative
    - distance
    - EXPECT_EQ
    - S1ChordAngle
    - S2FurthestEdgeQuery*::options
    - vector<S2FurthestEdgeQuery::Result>*::size
    linkageType: ''
    returnType: void
    signature: "void GetFurthestEdges(S2FurthestEdgeQuery::Target* target,\n                            S2FurthestEdgeQuery
      *query,\n                            vector<S2FurthestEdgeQuery::Result>* edges)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2FurthestEdgeQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:417,1
    - Dst: GetFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:418,1
    - Dst: S2FurthestEdgeQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:419,1
    - Dst: GetFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:420,1
    - Dst: S2FurthestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:422,1
    - Dst: S2FurthestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:423,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:424,1
    - Dst: CheckDistanceResults
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:424,1
    - Dst: ConvertResults
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:425,1
    - Dst: ConvertResults
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:426,1
    - Dst: S2FurthestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:427,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:428,1
    - Dst: S2FurthestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:430,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:431,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:434,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:444,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:445,1
    - Dst: S2FurthestEdgeQuery*::GetDistance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:445,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:448,1
    - Dst: S2FurthestEdgeQuery*::IsDistanceGreater
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:448,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:450,1
    - Dst: S2FurthestEdgeQuery*::IsDistanceGreater
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:450,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - target
    - query
    argTypes:
    - S2FurthestEdgeQuery::Target*
    - S2FurthestEdgeQuery*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 452
    functionName: TestFindFurthestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - GetFurthestEdges
    - EXPECT_TRUE
    - S2FurthestEdgeQuery*::options
    - ConvertResults
    - S2FurthestEdgeQuery*::IsDistanceGreater
    - S2FurthestEdgeQuery*::GetDistance
    - EXPECT_GE
    - S2FurthestEdgeQuery*::mutable_options
    - vector::empty
    - distance
    - S2MaxDistance
    - S1ChordAngle
    - CheckDistanceResults
    linkageType: ''
    returnType: void
    signature: "void TestFindFurthestEdges(\n    S2FurthestEdgeQuery::Target* target,
      S2FurthestEdgeQuery *query)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:464,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:464,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:464,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:465,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:465,1
    - Dst: AddEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:466,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:466,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:466,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:470,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:475,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:476,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:479,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:480,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:484,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:485,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:485,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:488,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:489,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:490,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:492,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:495,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:495,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:496,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:496,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:498,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:499,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:500,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:503,1
    - Dst: TestFindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:505,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:508,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:509,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:511,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:511,1
    - Dst: TestFindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:513,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:516,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:516,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:517,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:519,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:520,1
    - Dst: TestFindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:522,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:524,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:526,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:527,1
    - Dst: S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:528,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:528,1
    - Dst: TestFindFurthestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:529,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - ' factory'
    - num_indexes
    - num_edges
    - num_queries
    - bitgen
    argTypes:
    - s2testing::ShapeIndexFactory
    - int
    - int
    - int
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 532
    functionName: TestWithIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - TestFindFurthestEdges
    - s2random::Point
    - absl::Bernoulli
    - S2FurthestEdgeQuery::mutable_options
    - S2CellId
    - vector::back
    - center
    - vector::emplace_back
    - S2FurthestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - GetLevelForMaxValue
    - S2Cap
    - S1Angle::Radians
    - GetRadius
    - vector::push_back
    - ABSL_DCHECK_EQ
    - S1Angle::radians
    - get
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2random::SamplePoint
    - AddEdges
    - s2random::LogUniform
    linkageType: ''
    returnType: void
    signature: "void TestWithIndexFactory(const s2testing::ShapeIndexFactory& factory,\n
      \                                int num_indexes, int num_edges,\n                                 int
      num_queries, absl::BitGenRef bitgen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:539,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:540,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:541,1
    - Dst: s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, CircleEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:546,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:547,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:548,1
    - Dst: s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, FractalEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:553,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:554,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:555,1
    - Dst: s2testing::PointCloudShapeIndexFactory::PointCloudShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 557
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - s2testing::PointCloudShapeIndexFactory::PointCloudShapeIndexFactory
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2FurthestEdgeQuery, PointCloudEdges)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:596,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:598,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:599,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:601,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:601,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:603,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:606,1
    - Dst: S2FurthestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:608,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:609,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:628,1
    - Dst: s2testing::S2ClosestEdgeQueryBenchmarkHarness::GenerateEdgeQueryWithTargets
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:630,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:632,1
    - Dst: S2FurthestEdgeQuery::FindFurthestEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:634,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:634,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 12
    argNames:
    - bitgen
    - ' state'
    - ' factory'
    - num_index_edges
    - include_interiors
    - target_type
    - num_target_edges
    - min_distance_fraction
    - max_error_fraction
    - choose_target_from_index
    - target_radius_fraction
    - center_separation_fraction
    argTypes:
    - absl::BitGenRef
    - benchmark::State
    - s2testing::ShapeIndexFactory
    - int
    - bool
    - s2testing::TargetType
    - int
    - double
    - double
    - bool
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 637
    functionName: BenchmarkFindFurthest
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - PauseTiming
    - ResumeTiming
    - S2FurthestEdgeQuery::FindFurthestEdge
    - S2FurthestEdgeQuery::mutable_options
    - get
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - vector::size
    - S2Testing::KmToAngle
    - s2testing::S2ClosestEdgeQueryBenchmarkHarness::GenerateEdgeQueryWithTargets
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void BenchmarkFindFurthest(\n    absl::BitGenRef bitgen, benchmark::State&
      state,\n    const s2testing::ShapeIndexFactory& factory, int num_index_edges,\n
      \   bool include_interiors, s2testing::TargetType target_type,\n    int num_target_edges,
      double min_distance_fraction,\n    double max_error_fraction, bool choose_target_from_index,\n
      \   double target_radius_fraction, double center_separation_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:654,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:654,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:655,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:655,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:657,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:658,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 653
    functionDepth: 3
    functionLinenumber: 653
    functionLinenumberEnd: 660
    functionName: BM_FindFurthest
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthest(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:665,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:665,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:666,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:666,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:668,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:669,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 671
    functionName: BM_FindFurthestInterior
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestInterior(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:677,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:677,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:678,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:678,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:680,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:681,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:682,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 676
    functionDepth: 3
    functionLinenumber: 676
    functionLinenumberEnd: 685
    functionName: BM_FindFurthestMaxErrorPct
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestMaxErrorPct(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:694,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:694,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:695,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:695,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:697,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:698,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 700
    functionName: BM_FindFurthestToEdge
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestToEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:704,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:704,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:705,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:705,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:707,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:708,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 710
    functionName: BM_FindFurthestToEdgeInterior
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestToEdgeInterior(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:716,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:716,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:717,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:717,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:719,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:720,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 722
    functionName: BM_FindFurthestToCell
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestToCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:726,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:726,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:727,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:727,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:729,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:730,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 732
    functionName: BM_FindFurthestToCellInterior
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestToCellInterior(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:738,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:738,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:739,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:739,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:741,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:744,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 746
    functionName: BM_FindFurthestToSmallAbuttingIndex
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestToSmallAbuttingIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:750,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:750,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:751,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:751,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:753,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:757,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 749
    functionDepth: 3
    functionLinenumber: 749
    functionLinenumberEnd: 759
    functionName: BM_FindFurthestFromSmallAbuttingIndex
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestFromSmallAbuttingIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:763,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:763,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:764,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:764,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:766,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:769,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 771
    functionName: BM_FindFurthestToSameSizeAbuttingIndex
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestToSameSizeAbuttingIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:775,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:775,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:776,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:776,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:778,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:781,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 783
    functionName: BM_FindFurthestToSameSizeDistantIndex
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindFurthestToSameSizeDistantIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:788,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:788,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:789,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:789,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:791,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:796,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 799
    functionName: BM_IsDistanceGreaterSameSizeDistantIndexFalse
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void BM_IsDistanceGreaterSameSizeDistantIndexFalse(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:804,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:804,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:805,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:805,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:807,1
    - Dst: BenchmarkFindFurthest
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:813,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 802
    functionDepth: 3
    functionLinenumber: 802
    functionLinenumberEnd: 816
    functionName: BM_IsDistanceGreaterSameSizeDistantIndexTrue
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindFurthest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void BM_IsDistanceGreaterSameSizeDistantIndexTrue(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:27,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:27,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:27,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: "S2ClosestCellQuery::Options::set_conservative_max_distance(\n    S1ChordAngle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached:
    - Distance
    - S1ChordAngle::PlusError
    - S2::GetUpdateMinDistanceMaxError
    - set_max_distance
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::Options::set_conservative_max_distance(\n
      \   S1ChordAngle max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:33,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: "S2ClosestCellQuery::Options::set_conservative_max_distance(\n    S1Angle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached:
    - set_conservative_max_distance
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::Options::set_conservative_max_distance(\n
      \   S1Angle max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: S2ClosestCellQuery::PointTarget::max_brute_force_index_size() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestCellQuery::PointTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: S2ClosestCellQuery::EdgeTarget::max_brute_force_index_size() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestCellQuery::EdgeTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: S2ClosestCellQuery::CellTarget::max_brute_force_index_size() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestCellQuery::CellTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: S2ClosestCellQuery::CellUnionTarget::max_brute_force_index_size()
      const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestCellQuery::CellUnionTarget::max_brute_force_index_size()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: S2ClosestCellQuery::ShapeIndexTarget::max_brute_force_index_size()
      const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestCellQuery::ShapeIndexTarget::max_brute_force_index_size()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: S2ClosestCellQuery::S2ClosestCellQuery
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQuery::S2ClosestCellQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: S2ClosestCellQuery::~S2ClosestCellQuery()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQuery::~S2ClosestCellQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:93,1
    - Dst: Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:94,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:95,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:95,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - target
    - limit
    argTypes:
    - Target*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: S2ClosestCellQuery::IsDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached:
    - Options::set_max_error
    - Options::set_max_results
    - Options::set_max_distance
    - S1ChordAngle::Straight
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: bool
    signature: bool S2ClosestCellQuery::IsDistanceLess(Target* target, S1ChordAngle
      limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:103,1
    - Dst: Options::set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:104,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:105,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:105,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - target
    - limit
    argTypes:
    - Target*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: S2ClosestCellQuery::IsDistanceLessOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached:
    - Options::set_max_error
    - Options::set_inclusive_max_distance
    - Options::set_max_results
    - S1ChordAngle::Straight
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestCellQuery::IsDistanceLessOrEqual(Target* target,\n                                               S1ChordAngle
      limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:113,1
    - Dst: Options::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:114,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:115,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:115,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - target
    - limit
    argTypes:
    - Target*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: S2ClosestCellQuery::IsConservativeDistanceLessOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.cc
    functionUses: 0
    functionsReached:
    - Options::set_max_error
    - Options::set_max_results
    - S1ChordAngle::Straight
    - Options::set_conservative_max_distance
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestCellQuery::IsConservativeDistanceLessOrEqual(\n    Target*
      target, S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: s2coding::StringVectorEncoder::StringVectorEncoder
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringVectorEncoder::StringVectorEncoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:42,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:42,1
    - Dst: EncodeUintVector<uint64_t>
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:44,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:45,1
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:45,1
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:45,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:45,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:47,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:47,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:48,1
    - Dst: base
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:48,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: s2coding::StringVectorEncoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 0
    functionsReached:
    - size
    - Encoder*::putn
    - EncodeUintVector<uint64_t>
    - data
    - push_back
    - MakeSpan
    - Encoder*::Ensure
    - length
    - base
    linkageType: ''
    returnType: void
    signature: void StringVectorEncoder::Encode(Encoder* encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringVectorEncoder::Add
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:53,1
    - Dst: StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - encoder
    argTypes:
    - Span<const string>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: s2coding::StringVectorEncoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 0
    functionsReached:
    - StringVectorEncoder::Encode
    - StringVectorEncoder::Add
    linkageType: ''
    returnType: void
    signature: void StringVectorEncoder::Encode(Span<const string> v, Encoder* encoder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:58,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:59,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:60,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:61,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:62,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:62,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:63,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: s2coding::EncodedStringVector::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 1
    functionsReached:
    - Decoder*::skip
    - absl::string_view
    - s2coding::EncodedStringVector::Init
    - Decoder*::avail
    - s2coding::EncodedStringVector::size
    linkageType: ''
    returnType: bool
    signature: bool EncodedStringVector::Init(Decoder* decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:71,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:78,1
    - Dst: substr
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: s2coding::EncodedStringVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 0
    functionsReached:
    - substr
    - s2coding::EncodedStringVector::size
    linkageType: ''
    returnType: vector<string_view>
    signature: vector<string_view> EncodedStringVector::Decode() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:88,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:90,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:91,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:91,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:91,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:92,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:92,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:93,1
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:93,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: s2coding::EncodedStringVector::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_EQ
    - Encoder*::putn
    - data
    - s2coding::EncodedStringVector::Encode
    - Encoder*::Ensure
    - s2coding::EncodedStringVector::size
    linkageType: ''
    returnType: void
    signature: void EncodedStringVector::Encode(Encoder* encoder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: s2coding::StringVectorEncoder::StringVectorEncoder
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringVectorEncoder::StringVectorEncoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:42,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:42,1
    - Dst: EncodeUintVector<uint64_t>
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:44,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:45,1
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:45,1
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:45,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:45,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:47,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:47,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:48,1
    - Dst: base
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:48,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: s2coding::StringVectorEncoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 0
    functionsReached:
    - size
    - Encoder*::putn
    - EncodeUintVector<uint64_t>
    - data
    - push_back
    - MakeSpan
    - Encoder*::Ensure
    - length
    - base
    linkageType: ''
    returnType: void
    signature: void StringVectorEncoder::Encode(Encoder* encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringVectorEncoder::Add
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:53,1
    - Dst: StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - encoder
    argTypes:
    - Span<const string>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: s2coding::StringVectorEncoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 0
    functionsReached:
    - StringVectorEncoder::Encode
    - StringVectorEncoder::Add
    linkageType: ''
    returnType: void
    signature: void StringVectorEncoder::Encode(Span<const string> v, Encoder* encoder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:58,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:59,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:60,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:61,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:62,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:62,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:63,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: s2coding::EncodedStringVector::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 2
    functionsReached:
    - Decoder*::skip
    - absl::string_view
    - s2coding::EncodedStringVector::Init
    - Decoder*::avail
    - s2coding::EncodedStringVector::size
    linkageType: ''
    returnType: bool
    signature: bool EncodedStringVector::Init(Decoder* decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:71,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:78,1
    - Dst: substr
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: s2coding::EncodedStringVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 0
    functionsReached:
    - substr
    - s2coding::EncodedStringVector::size
    linkageType: ''
    returnType: vector<string_view>
    signature: vector<string_view> EncodedStringVector::Decode() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:88,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:90,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:91,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:91,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:91,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:92,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:92,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:93,1
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:93,1
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: s2coding::EncodedStringVector::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_EQ
    - Encoder*::putn
    - data
    - s2coding::EncodedStringVector::Encode
    - Encoder*::Ensure
    - s2coding::EncodedStringVector::size
    linkageType: ''
    returnType: void
    signature: void EncodedStringVector::Encode(Encoder* encoder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: S2ConvexHullQuery::S2ConvexHullQuery
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 25
    functionsReached:
    - S2LatLngRect::Empty
    linkageType: ''
    returnType: void
    signature: void S2ConvexHullQuery::S2ConvexHullQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::AddPoint
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:53,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: S2ConvexHullQuery::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 14
    functionsReached:
    - push_back
    - S2ConvexHullQuery::AddPoint
    linkageType: ''
    returnType: void
    signature: void S2ConvexHullQuery::AddPoint(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:58,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:58,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:59,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:60,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' polyline'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: S2ConvexHullQuery::AddPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 2
    functionsReached:
    - num_vertices
    - push_back
    - GetRectBound
    - vertex
    - Union
    linkageType: ''
    returnType: void
    signature: void S2ConvexHullQuery::AddPolyline(const S2Polyline& polyline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:65,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:65,1
    - Dst: is_empty_or_full
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:66,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:71,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:72,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: S2ConvexHullQuery::AddLoop
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 6
    functionsReached:
    - num_vertices
    - push_back
    - GetRectBound
    - vertex
    - Union
    - is_empty_or_full
    linkageType: ''
    returnType: void
    signature: void S2ConvexHullQuery::AddLoop(const S2Loop& loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:77,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:78,1
    - Dst: depth
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:80,1
    - Dst: S2ConvexHullQuery::AddLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' polygon'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: S2ConvexHullQuery::AddPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 2
    functionsReached:
    - depth
    - num_loops
    - S2ConvexHullQuery::AddLoop
    - loop
    linkageType: ''
    returnType: void
    signature: void S2ConvexHullQuery::AddPolygon(const S2Polygon& polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::GetCapBound
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 101
    functionName: S2ConvexHullQuery::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 1
    functionsReached:
    - S2ConvexHullQuery::GetCapBound
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2ConvexHullQuery::GetCapBound()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' center'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: OrderedCcwAround::OrderedCcwAround
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OrderedCcwAround(const S2Point& center)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: operator()(const S2Point& x, const S2Point& y) const
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 0
    functionsReached:
    - s2pred::Sign
    linkageType: ''
    returnType: bool
    signature: bool operator()(const S2Point& x, const S2Point& y) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2ConvexHullQuery::GetCapBound
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:119,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:120,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:121,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:121,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:130,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:131,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:131,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:131,1
    - Dst: OrderedCcwAround
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:131,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:135,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:135,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:135,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:135,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:135,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:138,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:139,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:140,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:140,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:141,1
    - Dst: S2ConvexHullQuery::GetSinglePointLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:142,1
    - Dst: S2ConvexHullQuery::GetSingleEdgeLoop
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:144,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:149,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:149,1
    - Dst: front
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:149,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:149,1
    - Dst: S2ConvexHullQuery::GetMonotoneChain
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:155,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:156,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:156,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:156,1
    - Dst: S2ConvexHullQuery::GetMonotoneChain
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:157,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:160,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:160,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:160,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:161,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:161,1
    - Dst: front
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:161,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:162,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:163,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:164,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:164,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:164,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:164,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 166
    functionName: S2ConvexHullQuery::GetConvexHull
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 25
    functionsReached:
    - S2Cap::center
    - S2ConvexHullQuery::GetSinglePointLoop
    - end
    - S2Cap::height
    - vector::end
    - vector::back
    - begin
    - S2Loop::kEmpty
    - vector::insert
    - pop_back
    - ABSL_DCHECK_GE
    - std::unique
    - make_unique<S2Loop>
    - S2ConvexHullQuery::GetCapBound
    - front
    - OrderedCcwAround
    - S2ConvexHullQuery::GetMonotoneChain
    - empty
    - S2Loop::kFull
    - std::reverse
    - ABSL_DCHECK_EQ
    - S2ConvexHullQuery::GetSingleEdgeLoop
    - vector::front
    - back
    - erase
    - s2pred::Sign
    - vector::pop_back
    - size
    - std::sort
    linkageType: ''
    returnType: unique_ptr<S2Loop>
    signature: unique_ptr<S2Loop> S2ConvexHullQuery::GetConvexHull()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:171,1
    - Dst: vector<S2Point>*::empty
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:171,1
    - Dst: vector<S2Point>*::size
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:174,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:175,1
    - Dst: vector<S2Point>*::end
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:175,1
    - Dst: vector<S2Point>*::back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:175,1
    - Dst: vector<S2Point>*::pop_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:176,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - output
    argTypes:
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: S2ConvexHullQuery::GetMonotoneChain
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 1
    functionsReached:
    - vector<S2Point>*::end
    - vector<S2Point>*::push_back
    - s2pred::Sign
    - vector<S2Point>*::empty
    - vector<S2Point>*::back
    - vector<S2Point>*::pop_back
    - vector<S2Point>*::size
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2ConvexHullQuery::GetMonotoneChain(vector<S2Point>* output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:187,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:188,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:190,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:191,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:191,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:192,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:192,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: S2ConvexHullQuery::GetSinglePointLoop
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 1
    functionsReached:
    - S2::Ortho
    - vector::push_back
    - make_unique<S2Loop>
    - CrossProd
    - Normalize
    linkageType: ''
    returnType: unique_ptr<S2Loop>
    signature: unique_ptr<S2Loop> S2ConvexHullQuery::GetSinglePointLoop(const S2Point&
      p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:208,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:208,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:214,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:215,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:216,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:216,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:217,1
    - Dst: auto::Normalize
      Src: /src/s2geometry/src/s2/s2convex_hull_query.cc:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 221
    functionName: S2ConvexHullQuery::GetSingleEdgeLoop
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - S2Loop::kFull
    - S2::Interpolate
    - make_unique<S2Loop>
    - auto::Normalize
    linkageType: ''
    returnType: unique_ptr<S2Loop>
    signature: "unique_ptr<S2Loop> S2ConvexHullQuery::GetSingleEdgeLoop(const S2Point&
      a,\n                                                        const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: S2RegionSharder::S2RegionSharder
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionSharder(const S2CellIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: S2RegionSharder::S2RegionSharder
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionSharder(const S2RegionSharder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& operator=(const S2RegionSharder&)'
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2RegionSharder
    signature: S2RegionSharder & operator=(const S2RegionSharder&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder.h:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2RegionSharder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: S2RegionSharder::S2RegionSharder
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void S2RegionSharder(S2RegionSharder&& b) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder.h:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2RegionSharder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: '& operator=(S2RegionSharder&& b) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: S2RegionSharder
    signature: S2RegionSharder & operator=(S2RegionSharder&& b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2coder_testing.h:32,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2coder_testing.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' coder'
    - ' shape'
    argTypes:
    - S2Coder<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: s2coding::EncodeToEncoder
    functionSourceFile: /src/s2geometry/src/s2/s2coder_testing.h
    functionUses: 0
    functionsReached:
    - Encode
    - Encoder::Encoder
    linkageType: ''
    returnType: Encoder
    signature: Encoder EncodeToEncoder(const S2Coder<T>& coder, const T& shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base
      Src: /src/s2geometry/src/s2/s2coder_testing.h:41,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2coder_testing.h:41,1
    - Dst: Decode
      Src: /src/s2geometry/src/s2/s2coder_testing.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' coder'
    - ' encoder'
    - ' value'
    - ' error'
    argTypes:
    - S2Coder<T>
    - Encoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: s2coding::DecodeFromEncoded
    functionSourceFile: /src/s2geometry/src/s2/s2coder_testing.h
    functionUses: 0
    functionsReached:
    - Decode
    - length
    - base
    linkageType: ''
    returnType: bool
    signature: "bool DecodeFromEncoded(const S2Coder<T>& coder, Encoder& encoder,
      T& value,\n                       S2Error& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeToEncoder
      Src: /src/s2geometry/src/s2/s2coder_testing.h:48,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2coder_testing.h:50,1
    - Dst: s2coding::DecodeFromEncoded
      Src: /src/s2geometry/src/s2/s2coder_testing.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' coder'
    - ' shape'
    - ' error'
    argTypes:
    - S2Coder<T>
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: s2coding::RoundTrip
    functionSourceFile: /src/s2geometry/src/s2/s2coder_testing.h
    functionUses: 6
    functionsReached:
    - s2coding::DecodeFromEncoded
    - ABSL_CHECK
    - s2coding::EncodeToEncoder
    linkageType: ''
    returnType: T
    signature: T RoundTrip(const S2Coder<T>& coder, const T& shape, S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2coder_testing.h:32,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2coder_testing.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' coder'
    - ' shape'
    argTypes:
    - S2Coder<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: s2coding::EncodeToEncoder
    functionSourceFile: /src/s2geometry/src/s2/s2coder_testing.h
    functionUses: 1
    functionsReached:
    - Encode
    - Encoder::Encoder
    linkageType: ''
    returnType: Encoder
    signature: Encoder EncodeToEncoder(const S2Coder<T>& coder, const T& shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base
      Src: /src/s2geometry/src/s2/s2coder_testing.h:41,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2coder_testing.h:41,1
    - Dst: Decode
      Src: /src/s2geometry/src/s2/s2coder_testing.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' coder'
    - ' encoder'
    - ' value'
    - ' error'
    argTypes:
    - S2Coder<T>
    - Encoder
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: s2coding::DecodeFromEncoded
    functionSourceFile: /src/s2geometry/src/s2/s2coder_testing.h
    functionUses: 1
    functionsReached:
    - Decode
    - length
    - base
    linkageType: ''
    returnType: bool
    signature: "bool DecodeFromEncoded(const S2Coder<T>& coder, Encoder& encoder,
      T& value,\n                       S2Error& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeToEncoder
      Src: /src/s2geometry/src/s2/s2coder_testing.h:48,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2coder_testing.h:50,1
    - Dst: s2coding::DecodeFromEncoded
      Src: /src/s2geometry/src/s2/s2coder_testing.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' coder'
    - ' shape'
    - ' error'
    argTypes:
    - S2Coder<T>
    - T
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: s2coding::RoundTrip
    functionSourceFile: /src/s2geometry/src/s2/s2coder_testing.h
    functionUses: 6
    functionsReached:
    - s2coding::DecodeFromEncoded
    - ABSL_CHECK
    - s2coding::EncodeToEncoder
    linkageType: ''
    returnType: T
    signature: T RoundTrip(const S2Coder<T>& coder, const T& shape, S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:60,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:62,1
    - Dst: absl::Span<const vector<int32_t>>::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:62,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:62,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:64,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:65,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:65,1
    - Dst: id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:66,1
    - Dst: id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - ' label_set_ids'
    - ' label_set_lexicon'
    - output
    - str_expected_points
    - expected_labels
    argTypes:
    - S2PointVectorLayer::LabelSetIds
    - IdSetLexicon
    - absl::Span<const S2Point>
    - string_view
    - absl::Span<const vector<int32_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: VerifyS2PointVectorLayerResults
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - absl::Span<const S2Point>::size
    - id_set
    - size
    - s2textformat::ParsePointsOrDie
    - absl::Span<const vector<int32_t>>::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void VerifyS2PointVectorLayerResults(\n    const S2PointVectorLayer::LabelSetIds&
      label_set_ids,\n    const IdSetLexicon& label_set_lexicon, absl::Span<const
      S2Point> output,\n    string_view str_expected_points,\n    absl::Span<const
      vector<int32_t>> expected_labels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder*::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - builder
    argTypes:
    - S2Point
    - S2Builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 26
    functionsReached:
    - S2Builder*::AddEdge
    linkageType: ''
    returnType: void
    signature: void AddPoint(S2Point p, S2Builder* builder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:77,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:79,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:81,1
    - Dst: make_unique<S2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:81,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:83,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:86,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:87,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:87,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:88,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:88,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:89,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:90,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:90,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:91,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:91,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:92,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:92,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:93,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:94,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:94,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:95,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:95,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:96,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:97,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:97,1
    - Dst: VerifyS2PointVectorLayerResults
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 104
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - S2Builder::clear_labels
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PointVectorLayer>
    - VerifyS2PointVectorLayerResults
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorLayer, MergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:107,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:109,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:111,1
    - Dst: make_unique<S2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:111,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:113,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:116,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:117,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:117,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:118,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:118,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:119,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:120,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:120,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:121,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:121,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:122,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:122,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:123,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:124,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:124,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:125,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:125,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:126,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:127,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:127,1
    - Dst: VerifyS2PointVectorLayerResults
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 134
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - S2Builder::clear_labels
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PointVectorLayer>
    - VerifyS2PointVectorLayerResults
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorLayer, KeepDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:137,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:139,1
    - Dst: make_unique<S2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:139,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:140,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:143,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:143,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:144,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:144,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:144,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:145,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:145,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:146,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:147,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:148,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:149,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:151,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:152,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:153,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 154
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - S2Error::message
    - S2Builder::AddEdge
    - S2ShapeNestingQuery::Options::Options
    - MakePointOrDie
    - S2Builder::Build
    - S2Error::code
    - EXPECT_EQ
    - make_unique<S2PointVectorLayer>
    - vector::size
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorLayer, Error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:157,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:158,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:159,1
    - Dst: make_unique<IndexedS2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:159,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:162,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:162,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:163,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:163,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:164,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:165,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:166,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:166,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:167,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:168,1
    - Dst: auto::num_points
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:169,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:169,1
    - Dst: auto::point
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:170,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:170,1
    - Dst: auto::point
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - auto::point
    - make_unique<IndexedS2PointVectorLayer>
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - auto::num_points
    - down_cast
    - s2textformat::MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::AddPoint
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PointVectorLayer, AddsShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:174,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:175,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:176,1
    - Dst: make_unique<IndexedS2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:176,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:177,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:178,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:179,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<IndexedS2PointVectorLayer>
    - S2ShapeNestingQuery::Options::Options
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PointVectorLayer, DoesNotAddEmptyShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:60,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:62,1
    - Dst: absl::Span<const vector<int32_t>>::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:62,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:62,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:64,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:65,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:65,1
    - Dst: id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:66,1
    - Dst: id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - ' label_set_ids'
    - ' label_set_lexicon'
    - output
    - str_expected_points
    - expected_labels
    argTypes:
    - S2PointVectorLayer::LabelSetIds
    - IdSetLexicon
    - absl::Span<const S2Point>
    - string_view
    - absl::Span<const vector<int32_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: VerifyS2PointVectorLayerResults
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 2
    functionsReached:
    - ASSERT_EQ
    - absl::Span<const S2Point>::size
    - id_set
    - size
    - s2textformat::ParsePointsOrDie
    - absl::Span<const vector<int32_t>>::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void VerifyS2PointVectorLayerResults(\n    const S2PointVectorLayer::LabelSetIds&
      label_set_ids,\n    const IdSetLexicon& label_set_lexicon, absl::Span<const
      S2Point> output,\n    string_view str_expected_points,\n    absl::Span<const
      vector<int32_t>> expected_labels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder*::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - builder
    argTypes:
    - S2Point
    - S2Builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 30
    functionsReached:
    - S2Builder*::AddEdge
    linkageType: ''
    returnType: void
    signature: void AddPoint(S2Point p, S2Builder* builder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:77,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:79,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:81,1
    - Dst: make_unique<S2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:81,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:83,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:86,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:87,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:87,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:88,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:88,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:89,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:90,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:90,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:91,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:91,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:92,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:92,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:93,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:94,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:94,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:95,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:95,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:96,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:97,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:97,1
    - Dst: VerifyS2PointVectorLayerResults
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 104
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - S2Builder::clear_labels
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PointVectorLayer>
    - VerifyS2PointVectorLayerResults
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorLayer, MergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:107,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:109,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:111,1
    - Dst: make_unique<S2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:111,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:113,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:116,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:117,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:117,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:118,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:118,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:119,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:120,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:120,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:121,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:121,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:122,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:122,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:123,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:124,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:124,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:125,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:125,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:126,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:127,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:127,1
    - Dst: VerifyS2PointVectorLayerResults
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 134
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - S2Builder::clear_labels
    - MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PointVectorLayer>
    - VerifyS2PointVectorLayerResults
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorLayer, KeepDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:137,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:139,1
    - Dst: make_unique<S2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:139,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:140,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:143,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:143,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:144,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:144,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:144,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:145,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:145,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:146,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:147,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:148,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:149,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:151,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:152,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:153,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 154
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - S2Error::message
    - S2Builder::AddEdge
    - S2ShapeNestingQuery::Options::Options
    - MakePointOrDie
    - S2Builder::Build
    - S2Error::code
    - EXPECT_EQ
    - make_unique<S2PointVectorLayer>
    - vector::size
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorLayer, Error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:157,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:158,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:159,1
    - Dst: make_unique<IndexedS2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:159,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:162,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:162,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:163,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:163,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:164,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:165,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:166,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:166,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:167,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:168,1
    - Dst: auto::num_points
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:169,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:169,1
    - Dst: auto::point
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:170,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:170,1
    - Dst: auto::point
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - auto::point
    - make_unique<IndexedS2PointVectorLayer>
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - auto::num_points
    - down_cast
    - s2textformat::MakePointOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::AddPoint
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PointVectorLayer, AddsShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:174,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:175,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:176,1
    - Dst: make_unique<IndexedS2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:176,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:177,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:178,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:179,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<IndexedS2PointVectorLayer>
    - S2ShapeNestingQuery::Options::Options
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PointVectorLayer, DoesNotAddEmptyShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - precision
    argTypes:
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: PrecisionStats::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Tally(Precision precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: PrecisionStats::PrecisionStats
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrecisionStats::PrecisionStats()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:99,1
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: PrecisionStats::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppendFormat
    linkageType: ''
    returnType: string
    signature: string PrecisionStats::ToString()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:120,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:122,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:132,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:134,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:134,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:135,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:135,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:136,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:136,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:137,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:137,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:138,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:138,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:141,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:141,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:143,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:144,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:144,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:146,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:150,1
    - Dst: ExactCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:156,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:156,1
    - Dst: GetStableCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:160,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:160,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:160,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:162,1
    - Dst: GetStableCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:163,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:165,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:167,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:168,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:168,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:171,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:173,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:174,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 180
    functionName: TestRobustCrossProdError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - S2::Ortho
    - S2Point::Cast
    - s2pred::CompareDistance
    - EXPECT_LT
    - S1Angle::Radians
    - S2Point::DotProd
    - S2Point::S2Point
    - EXPECT_EQ
    - EXPECT_TRUE
    - S2Point::Normalize
    - radians
    - S2Point::CrossProd
    - ExactCrossProd
    - EXPECT_GT
    - GetStableCrossProd
    - s2pred::Sign
    - ToExact
    - s2pred::IsZero
    - S2::RobustCrossProd
    - ToLD
    linkageType: ''
    returnType: Precision
    signature: Precision TestRobustCrossProdError(const S2Point& a, const S2Point&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:185,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:186,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:187,1
    - Dst: TestRobustCrossProdError
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' expected_result'
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: TestRobustCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::RobustCrossProd
    - TestRobustCrossProdError
    - s2pred::Sign
    linkageType: ''
    returnType: void
    signature: "void TestRobustCrossProd(const S2Point& a, const S2Point& b,\n                         const
      S2Point& expected_result,\n                         Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:199,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:199,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:199,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:200,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:201,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:201,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:201,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:202,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:207,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:207,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:207,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:208,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:211,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:211,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:211,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:212,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:213,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:213,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:213,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:214,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:217,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:217,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:217,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:218,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:221,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:221,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:221,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:222,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:225,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:225,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:225,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:226,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:227,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:227,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:227,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:228,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:229,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:229,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:229,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:234,1
    - Dst: SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:234,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:234,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:234,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:236,1
    - Dst: SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:236,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:236,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:236,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:238,1
    - Dst: SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:238,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:238,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:238,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 191
    functionDepth: 5
    functionLinenumber: 191
    functionLinenumberEnd: 240
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - SymbolicCrossProd
    - TestRobustCrossProd
    linkageType: ''
    returnType: void
    signature: void TEST(S2, RobustCrossProdCoverage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:251,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:252,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:255,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:255,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:256,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:256,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - s2pred::Sign
    - S2Point
    - S2::IsUnitLength
    - S2::RobustCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void TEST(S2, SymbolicCrossProdConsistentWithSign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:272,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:272,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:272,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:273,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:274,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:274,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:279,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:279,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:279,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:280,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:281,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:281,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 284
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::RobustCrossProd
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(S2, RobustCrossProdMagnitude)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:290,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:292,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:293,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:293,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:294,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:295,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:295,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:296,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:297,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:297,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:300,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:300,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:301,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 304
    functionName: ChoosePoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 2
    functionsReached:
    - s2random::Point
    - absl::Bernoulli
    - ChoosePoint
    - S2Point::Normalize
    - pow
    - s2random::LogUniform
    - ldexp
    - S2Point::Norm2
    linkageType: ''
    returnType: S2Point
    signature: S2Point ChoosePoint(absl::BitGenRef bitgen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:309,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:317,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bitgen
    - ' p'
    argTypes:
    - absl::BitGenRef
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: PerturbLength
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - absl::Uniform<double>
    - fabs
    - ToExact
    linkageType: ''
    returnType: S2Point
    signature: S2Point PerturbLength(absl::BitGenRef bitgen, const S2Point& p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:322,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:323,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:328,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:330,1
    - Dst: PerturbLength
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:332,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:332,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:333,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:334,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:335,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:335,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:337,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:338,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:338,1
    - Dst: PerturbLength
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:339,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:339,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:340,1
    - Dst: TestRobustCrossProdError
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:342,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:343,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:346,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 347
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointOnLine
    - absl::Bernoulli
    - ChoosePoint
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - S2Point::S2Point
    - TestRobustCrossProdError
    - PrecisionStats::Tally
    - pow
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - S2Testing::MakeTaggedSeedSeq
    - PerturbLength
    linkageType: ''
    returnType: void
    signature: void TEST(S2, RobustCrossProdError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:351,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:354,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:354,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:357,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:357,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:360,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:360,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:364,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:364,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:367,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:368,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 371
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - S2::AngleContainsVertex
    - S2PointLoopSpan::size
    - EXPECT_TRUE
    - S1Angle::Degrees
    - S2::RefDir
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST(S2, AngleContainsVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: GetIntersectionStats::GetIntersectionStats
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetIntersectionStats()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: ~GetIntersectionStats()
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~GetIntersectionStats()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:400,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:404,1
    - Dst: S2::internal::GetIntersectionMethodName
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:405,1
    - Dst: static_cast<IntersectionMethod>
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 411
    functionName: GetIntersectionStats::Print
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - static_cast<IntersectionMethod>
    - absl::PrintF
    - S2::internal::GetIntersectionMethodName
    linkageType: ''
    returnType: void
    signature: void Print()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::internal::GetIntersectionExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:424,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: GetIntersectionExact
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 1
    functionsReached:
    - S2::internal::GetIntersectionExact
    - S2Point::DotProd
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetIntersectionExact(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetIntersectionStats::GetIntersectionStats
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:437,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:438,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:439,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:440,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:453,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:454,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:455,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:456,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:457,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:459,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:460,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:461,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:462,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:463,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:464,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:465,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:466,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:467,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:468,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:469,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:473,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:473,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:474,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:475,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:475,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:476,1
    - Dst: GetIntersectionExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:481,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:482,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:482,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:483,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:484,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:484,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:485,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:486,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:486,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:487,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:491,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:492,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:493,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:494,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:495,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:496,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:496,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:498,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:499,1
    - Dst: GetIntersectionStats::Print
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:501,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:502,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:503,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:504,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 506
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - absl::Bernoulli
    - GetIntersectionStats::GetIntersectionStats
    - S2::CrossingSign
    - S1Angle
    - ABSL_LOG
    - GetIntersectionExact
    - S2::GetDistance
    - GetIntersectionStats::Print
    - S1Angle::S1Angle
    - s2random::Frame
    - S1Angle::Radians
    - S2Point::S2Point
    - radians
    - EXPECT_LE
    - S1Angle::radians
    - max
    - S2::GetIntersection
    - S2Testing::MakeTaggedSeedSeq
    - Normalize
    - s2random::LogUniform
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2, IntersectionError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:514,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:515,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bitgen
    - ' x'
    - ' y'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: ChooseSemicirclePoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - Normalize
    - s2random::LogUniform
    linkageType: ''
    returnType: S2Point
    signature: "S2Point ChooseSemicirclePoint(absl::BitGenRef bitgen, const S2Point&
      x,\n                              const S2Point& y)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:524,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:525,1
    - Dst: GetIntersectionStats::GetIntersectionStats
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:526,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:528,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:529,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:530,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:532,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:533,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:534,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:535,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:536,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:537,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:538,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:539,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:540,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:541,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:542,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:545,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:546,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:547,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:547,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:547,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:548,1
    - Dst: GetIntersectionStats::Print
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 552
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - GetIntersectionStats::Print
    - s2pred::Sign
    - ChooseSemicirclePoint
    - GetIntersectionStats::GetIntersectionStats
    - s2random::Frame
    - S2::CrossingSign
    - S2Point::S2Point
    - CrossProd
    - S1Angle
    - S2::GetIntersection
    - Normalize
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - Norm
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GrazingIntersections)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:560,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:560,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetIntersection
    linkageType: ''
    returnType: void
    signature: void TEST(S2, ExactIntersectionUnderflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:570,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:570,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 572
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetIntersection
    linkageType: ''
    returnType: void
    signature: void TEST(S2, ExactIntersectionSign)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:575,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:576,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:584,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:591,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:592,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:593,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:594,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:595,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:596,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:596,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:596,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:600,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:601,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:602,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:604,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:605,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:607,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:608,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:609,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:611,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:611,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 613
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - Norm2
    - absl::Bernoulli
    - S2::CrossingSign
    - S2Point::S2Point
    - S2::GetIntersection
    - swap
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetIntersectionInvariants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:618,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:618,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:619,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:619,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:620,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:620,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:621,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 622
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - S2::internal::CompareEdges
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2, CompareEdgesOrderInvariant)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - precision
    argTypes:
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: PrecisionStats::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Tally(Precision precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: PrecisionStats::PrecisionStats
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrecisionStats::PrecisionStats()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:99,1
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: PrecisionStats::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 1
    functionsReached:
    - absl::StrAppendFormat
    linkageType: ''
    returnType: string
    signature: string PrecisionStats::ToString()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:120,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:122,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:132,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:134,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:134,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:135,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:135,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:136,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:136,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:137,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:137,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:138,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:138,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:141,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:141,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:143,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:144,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:144,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:146,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:150,1
    - Dst: ExactCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:156,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:156,1
    - Dst: GetStableCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:160,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:160,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:160,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:162,1
    - Dst: GetStableCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:163,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:165,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:167,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:168,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:168,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:171,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:173,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:174,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 180
    functionName: TestRobustCrossProdError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 2
    functionsReached:
    - S2::Ortho
    - S2Point::Cast
    - s2pred::CompareDistance
    - EXPECT_LT
    - S1Angle::Radians
    - S2Point::DotProd
    - S2Point::S2Point
    - EXPECT_EQ
    - EXPECT_TRUE
    - S2Point::Normalize
    - radians
    - S2Point::CrossProd
    - ExactCrossProd
    - EXPECT_GT
    - GetStableCrossProd
    - s2pred::Sign
    - ToExact
    - s2pred::IsZero
    - S2::RobustCrossProd
    - ToLD
    linkageType: ''
    returnType: Precision
    signature: Precision TestRobustCrossProdError(const S2Point& a, const S2Point&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:185,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:186,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:187,1
    - Dst: TestRobustCrossProdError
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' expected_result'
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: TestRobustCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_EQ
    - S2::RobustCrossProd
    - TestRobustCrossProdError
    - s2pred::Sign
    linkageType: ''
    returnType: void
    signature: "void TestRobustCrossProd(const S2Point& a, const S2Point& b,\n                         const
      S2Point& expected_result,\n                         Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:199,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:199,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:199,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:200,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:201,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:201,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:201,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:202,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:207,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:207,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:207,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:208,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:211,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:211,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:211,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:212,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:213,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:213,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:213,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:214,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:217,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:217,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:217,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:218,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:221,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:221,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:221,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:222,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:225,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:225,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:225,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:226,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:227,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:227,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:227,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:228,1
    - Dst: TestRobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:229,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:229,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:229,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:234,1
    - Dst: SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:234,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:234,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:234,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:236,1
    - Dst: SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:236,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:236,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:236,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:238,1
    - Dst: SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:238,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:238,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:238,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 191
    functionDepth: 5
    functionLinenumber: 191
    functionLinenumberEnd: 240
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - SymbolicCrossProd
    - TestRobustCrossProd
    linkageType: ''
    returnType: void
    signature: void TEST(S2, RobustCrossProdCoverage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:251,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:252,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:255,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:255,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:256,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:256,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - s2pred::Sign
    - S2Point
    - S2::IsUnitLength
    - S2::RobustCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void TEST(S2, SymbolicCrossProdConsistentWithSign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:272,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:272,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:272,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:273,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:274,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:274,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:279,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:279,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:279,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:280,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:281,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:281,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 284
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::RobustCrossProd
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(S2, RobustCrossProdMagnitude)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:290,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:292,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:293,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:293,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:294,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:295,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:295,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:296,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:297,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:297,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:300,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:300,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:301,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 304
    functionName: ChoosePoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 4
    functionsReached:
    - s2random::Point
    - absl::Bernoulli
    - ChoosePoint
    - S2Point::Normalize
    - pow
    - s2random::LogUniform
    - ldexp
    - S2Point::Norm2
    linkageType: ''
    returnType: S2Point
    signature: S2Point ChoosePoint(absl::BitGenRef bitgen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:309,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:317,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bitgen
    - ' p'
    argTypes:
    - absl::BitGenRef
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: PerturbLength
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 1
    functionsReached:
    - absl::Uniform<double>
    - fabs
    - ToExact
    linkageType: ''
    returnType: S2Point
    signature: S2Point PerturbLength(absl::BitGenRef bitgen, const S2Point& p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:322,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:323,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:328,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:330,1
    - Dst: PerturbLength
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:332,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:332,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:333,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:334,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:335,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:335,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:337,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:338,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:338,1
    - Dst: PerturbLength
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:339,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:339,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:340,1
    - Dst: TestRobustCrossProdError
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:342,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:343,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:346,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 347
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointOnLine
    - absl::Bernoulli
    - ChoosePoint
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - S2Point::S2Point
    - TestRobustCrossProdError
    - PrecisionStats::Tally
    - pow
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - S2Testing::MakeTaggedSeedSeq
    - PerturbLength
    linkageType: ''
    returnType: void
    signature: void TEST(S2, RobustCrossProdError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:351,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:354,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:354,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:357,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:357,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:360,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:360,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:364,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:364,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:367,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:368,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 371
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - S2::AngleContainsVertex
    - S2PointLoopSpan::size
    - EXPECT_TRUE
    - S1Angle::Degrees
    - S2::RefDir
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST(S2, AngleContainsVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: GetIntersectionStats::GetIntersectionStats
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetIntersectionStats()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: ~GetIntersectionStats()
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~GetIntersectionStats()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:400,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:404,1
    - Dst: S2::internal::GetIntersectionMethodName
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:405,1
    - Dst: static_cast<IntersectionMethod>
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 411
    functionName: GetIntersectionStats::Print
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 2
    functionsReached:
    - static_cast<IntersectionMethod>
    - absl::PrintF
    - S2::internal::GetIntersectionMethodName
    linkageType: ''
    returnType: void
    signature: void Print()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::internal::GetIntersectionExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:424,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: GetIntersectionExact
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 3
    functionsReached:
    - S2::internal::GetIntersectionExact
    - S2Point::DotProd
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetIntersectionExact(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetIntersectionStats::GetIntersectionStats
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:437,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:438,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:439,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:440,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:453,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:454,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:455,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:456,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:457,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:459,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:460,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:461,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:462,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:463,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:464,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:465,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:466,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:467,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:468,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:469,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:473,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:473,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:474,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:475,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:475,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:476,1
    - Dst: GetIntersectionExact
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:481,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:482,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:482,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:483,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:484,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:484,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:485,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:486,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:486,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:487,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:491,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:492,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:493,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:494,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:495,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:496,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:496,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:498,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:499,1
    - Dst: GetIntersectionStats::Print
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:501,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:502,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:503,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:504,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 506
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - absl::Bernoulli
    - GetIntersectionStats::GetIntersectionStats
    - S2::CrossingSign
    - S1Angle
    - ABSL_LOG
    - GetIntersectionExact
    - S2::GetDistance
    - GetIntersectionStats::Print
    - S1Angle::S1Angle
    - s2random::Frame
    - S1Angle::Radians
    - S2Point::S2Point
    - radians
    - EXPECT_LE
    - S1Angle::radians
    - max
    - S2::GetIntersection
    - S2Testing::MakeTaggedSeedSeq
    - Normalize
    - s2random::LogUniform
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2, IntersectionError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:514,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:515,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bitgen
    - ' x'
    - ' y'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: ChooseSemicirclePoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 1
    functionsReached:
    - Normalize
    - s2random::LogUniform
    linkageType: ''
    returnType: S2Point
    signature: "S2Point ChooseSemicirclePoint(absl::BitGenRef bitgen, const S2Point&
      x,\n                              const S2Point& y)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:524,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:525,1
    - Dst: GetIntersectionStats::GetIntersectionStats
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:526,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:528,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:529,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:530,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:532,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:533,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:534,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:535,1
    - Dst: ChooseSemicirclePoint
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:536,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:537,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:538,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:539,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:540,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:541,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:542,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:545,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:546,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:547,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:547,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:547,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:548,1
    - Dst: GetIntersectionStats::Print
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 552
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - GetIntersectionStats::Print
    - s2pred::Sign
    - ChooseSemicirclePoint
    - GetIntersectionStats::GetIntersectionStats
    - s2random::Frame
    - S2::CrossingSign
    - S2Point::S2Point
    - CrossProd
    - S1Angle
    - S2::GetIntersection
    - Normalize
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - Norm
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GrazingIntersections)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:560,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:560,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetIntersection
    linkageType: ''
    returnType: void
    signature: void TEST(S2, ExactIntersectionUnderflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:570,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:570,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 572
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetIntersection
    linkageType: ''
    returnType: void
    signature: void TEST(S2, ExactIntersectionSign)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:575,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:576,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:584,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:591,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:592,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:593,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:594,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:595,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:596,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:596,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:596,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:600,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:601,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:602,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:604,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:605,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:607,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:608,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:609,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:611,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:611,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 613
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - Norm2
    - absl::Bernoulli
    - S2::CrossingSign
    - S2Point::S2Point
    - S2::GetIntersection
    - swap
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetIntersectionInvariants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:618,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:618,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:619,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:619,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:620,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:620,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:621,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 622
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - S2::internal::CompareEdges
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2, CompareEdgesOrderInvariant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:638,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:638,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:639,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:639,1
    - Dst: GetIntersectionStats::GetIntersectionStats
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:642,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:648,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:649,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:650,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:651,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:653,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:654,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:654,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:655,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:656,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:656,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:657,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:663,1
    - Dst: Func
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 668
    functionName: BM_GetIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - s2random::Point
    - Func
    - string::end
    - absl::StrCat
    - GetIntersectionStats::GetIntersectionStats
    - Normalize
    - s2random::LogUniform
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_GetIntersection(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:675,1
    - Dst: S2::internal::GetIntersectionStableLD
      Src: /src/s2geometry/src/s2/s2edge_crossings_test.cc:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 678
    functionName: GetIntersectionStableLDIgnoreValidity
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    functionUses: 0
    functionsReached:
    - S2::internal::GetIntersectionStableLD
    - S2Point::S2Point
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetIntersectionStableLDIgnoreValidity(const S2Point& a,\n
      \                                             const S2Point& b,\n                                              const
      S2Point& c,\n                                              const S2Point& d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:70,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:71,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:71,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:72,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:72,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:73,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:73,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:74,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:74,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:75,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:75,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ldexp
    - s2pred::epsilon_for_digits
    linkageType: ''
    returnType: void
    signature: void TEST(epsilon_for_digits, recursion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:83,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:83,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:85,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:85,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: void
    signature: void TEST(rounding_epsilon, vs_numeric_limits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:97,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:98,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:99,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:99,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:100,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:100,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:109,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:110,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:110,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:111,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:112,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:112,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:113,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:113,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:113,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:119,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:120,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:120,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:121,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:122,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:122,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:127,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:128,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:129,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:131,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:131,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:132,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:133,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:133,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:134,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:134,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 135
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::Sign
    - S2Point
    - S2Point::Normalize
    - EXPECT_NE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(Sign, CollinearPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:144,1
    - Dst: s2pred::StableSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:145,1
    - Dst: s2pred::ExactSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:146,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2pred::ExactSign
    - s2pred::StableSign
    - s2pred::Sign
    linkageType: ''
    returnType: void
    signature: void TEST(Sign, StableSignUnderflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' origin'
    - ' start'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: s2pred::SignTest::LessCCW::LessCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LessCCW(const S2Point& origin, const S2Point& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: operator()(const S2Point& a, const S2Point& b) const
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: bool
    signature: bool operator()(const S2Point& a, const S2Point& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2Point>*::clear
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:183,1
    - Dst: std::remove_copy
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:184,1
    - Dst: absl::Span<const S2Point>::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:184,1
    - Dst: absl::Span<const S2Point>::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:184,1
    - Dst: back_inserter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:184,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:189,1
    - Dst: vector<S2Point>*::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:189,1
    - Dst: vector<S2Point>*::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - points
    - ' origin'
    - sorted
    argTypes:
    - absl::Span<const S2Point>
    - S2Point
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: s2pred::SignTest::SortCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const S2Point>::begin
    - vector<S2Point>*::end
    - vector<S2Point>*::clear
    - std::remove_copy
    - vector<S2Point>*::begin
    - back_inserter
    - std::sort
    - absl::Span<const S2Point>::end
    linkageType: ''
    returnType: void
    signature: "void SortCCW(absl::Span<const S2Point> points, const S2Point& origin,\n
      \                     vector<S2Point>* sorted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:200,1
    - Dst: Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:202,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:203,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - sorted
    - ' origin'
    - start
    argTypes:
    - absl::Span<const S2Point>
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: s2pred::SignTest::CountCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const S2Point>::size
    - EXPECT_FALSE
    - Sign
    - EXPECT_NE
    linkageType: ''
    returnType: int
    signature: "int CountCCW(absl::Span<const S2Point> sorted, const S2Point& origin,\n
      \                     int start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:218,1
    - Dst: s2pred::SignTest::CountCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:220,1
    - Dst: s2pred::SignTest::CountCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:222,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sorted
    - ' origin'
    argTypes:
    - absl::Span<const S2Point>
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 232
    functionName: s2pred::SignTest::TestCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_GE
    - s2pred::SignTest::CountCCW
    - absl::Span<const S2Point>::size
    linkageType: ''
    returnType: void
    signature: void TestCCW(absl::Span<const S2Point> sorted, const S2Point& origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:235,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - points
    argTypes:
    - S2Point
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: s2pred::SignTest::AddNormalized
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - Normalize
    - vector<S2Point>*::push_back
    linkageType: ''
    returnType: void
    signature: void AddNormalized(const S2Point& a, vector<S2Point>* points)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:244,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:246,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:256,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:258,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:258,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:259,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - bitgen
    - ' a'
    - ' b'
    - points
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 264
    functionName: s2pred::SignTest::MaybeAddTangentPoints
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - S2::IsUnitLength
    - vector<S2Point>*::push_back
    - s2random::LogUniform
    linkageType: ''
    returnType: void
    signature: "void MaybeAddTangentPoints(absl::BitGenRef bitgen, const S2Point&
      a,\n                                    const S2Point& b, vector<S2Point>* points)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:269,1
    - Dst: vector<S2Point>*::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:269,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:270,1
    - Dst: vector<S2Point>*::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:270,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:271,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:272,1
    - Dst: s2pred::SignTest::AddNormalized
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:276,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:276,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:277,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:282,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:282,1
    - Dst: s2pred::SignTest::AddNormalized
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:283,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:287,1
    - Dst: s2pred::SignTest::AddNormalized
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:288,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:293,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:294,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:294,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:299,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:300,1
    - Dst: Vector3_d::Norm2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:301,1
    - Dst: s2pred::SignTest::AddNormalized
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:302,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:302,1
    - Dst: s2pred::SignTest::MaybeAddTangentPoints
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:309,1
    - Dst: s2pred::SignTest::MaybeAddTangentPoints
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:314,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:314,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:318,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - bitgen
    - points
    argTypes:
    - absl::BitGenRef
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 321
    functionName: s2pred::SignTest::AddDegeneracy
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - Vector3_d::Norm2
    - vector<S2Point>*::push_back
    - absl::Bernoulli
    - S2Point
    - absl::Uniform<size_t>
    - s2pred::SignTest::AddNormalized
    - nextafter
    - S2::IsUnitLength
    - S2::RobustCrossProd
    - s2random::LogUniform
    - vector<S2Point>*::size
    - s2pred::SignTest::MaybeAddTangentPoints
    linkageType: ''
    returnType: void
    signature: void AddDegeneracy(absl::BitGenRef bitgen, vector<S2Point>* points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::SignTest::SortCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:328,1
    - Dst: s2pred::SignTest::TestCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - points
    - ' origin'
    argTypes:
    - absl::Span<const S2Point>
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: s2pred::SignTest::SortAndTest
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::SignTest::SortCCW
    - s2pred::SignTest::TestCCW
    linkageType: ''
    returnType: void
    signature: "void SortAndTest(absl::Span<const S2Point> points,\n                          const
      S2Point& origin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:336,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:337,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:339,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:340,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:341,1
    - Dst: s2pred::SignTest::AddDegeneracy
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:342,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: std::remove
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:347,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:348,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:348,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:348,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:350,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:350,1
    - Dst: s2pred::SignTest::SortAndTest
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:352,1
    - Dst: s2pred::SignTest::SortAndTest
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:353,1
    - Dst: s2pred::SignTest::SortAndTest
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - bitgen
    - a
    - b
    - n
    - min_unique_points
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 357
    functionName: s2pred::SignTest::TestGreatCircle
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - vector::erase
    - std::unique
    - S2Point
    - S2Point::Normalize
    - s2pred::SignTest::SortAndTest
    - vector::end
    - EXPECT_GE
    - vector::begin
    - std::sort
    - std::remove
    - vector::size
    - s2pred::SignTest::AddDegeneracy
    linkageType: ''
    returnType: void
    signature: "void TestGreatCircle(absl::BitGenRef bitgen, S2Point a, S2Point b,\n
      \                             int n, int min_unique_points)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:362,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:362,1
    - Dst: TestGreatCircle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:379,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:379,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:379,1
    - Dst: TestGreatCircle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:381,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:381,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:381,1
    - Dst: TestGreatCircle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:383,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:383,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:383,1
    - Dst: TestGreatCircle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:390,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:390,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 393
    functionName: s2pred::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - TestGreatCircle
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(SignTest, StressTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:401,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:402,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:405,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:405,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:407,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:408,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:409,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:410,1
    - Dst: s2pred::StableSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:413,1
    - Dst: s2pred::ExactSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:413,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:418,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - km
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 421
    functionName: s2pred::StableSignTest::GetFailureRate
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - s2random::Frame
    - static_cast<double>
    - S2Point::S2Point
    - S2Testing::KmToAngle
    - Normalize
    - s2pred::StableSign
    - s2pred::ExactSign
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - tan
    linkageType: ''
    returnType: double
    signature: double GetFailureRate(double km)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:434,1
    - Dst: GetFailureRate
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:434,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:435,1
    - Dst: GetFailureRate
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 436
    functionName: s2pred::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - GetFailureRate
    linkageType: ''
    returnType: void
    signature: void TEST_F(StableSignTest, FailureRate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:446,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:447,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:448,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:448,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:448,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:451,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:451,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:452,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:452,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:453,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:453,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:454,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:454,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:455,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:455,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:456,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - expected
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - int
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 457
    functionName: s2pred::CheckSymbolicSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - ASSERT_EQ
    - ABSL_CHECK_EQ
    - CrossProd
    - ABSL_CHECK_LT
    - s2pred::ExpensiveSign
    linkageType: ''
    returnType: void
    signature: "void CheckSymbolicSign(int expected, const S2Point& a,\n                              const
      S2Point& b, const S2Point& c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:474,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:475,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:475,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:475,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:478,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:479,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:479,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:479,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:482,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:486,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:489,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:490,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:490,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:490,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:493,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:496,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:497,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:497,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:497,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:500,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:504,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:504,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:504,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:504,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:507,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:508,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:508,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:508,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:511,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:514,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:515,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:515,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:515,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:518,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:518,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:518,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 519
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2pred::CheckSymbolicSign
    linkageType: ''
    returnType: void
    signature: void TEST(Sign, SymbolicPerturbationCodeCoverage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - precision
    argTypes:
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 536
    functionName: s2pred::PrecisionStats::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Tally(Precision precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 545
    functionName: s2pred::PrecisionStats::PrecisionStats
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrecisionStats::PrecisionStats()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:551,1
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 556
    functionName: s2pred::PrecisionStats::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppendFormat
    linkageType: ''
    returnType: string
    signature: string PrecisionStats::ToString()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:562,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:564,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:565,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 569
    functionName: s2pred::ChoosePoint
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point::Normalize
    - s2random::Point
    - s2random::LogUniform
    - absl::Bernoulli
    linkageType: ''
    returnType: S2Point
    signature: S2Point ChoosePoint(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: s2pred::Sin2Distances::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - TriageCompareSin2Distances
    linkageType: ''
    returnType: int
    signature: "int Triage(const Vector3<T>& x,\n                    const Vector3<T>&
      a, const Vector3<T>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareCosDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: s2pred::CosDistances::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - TriageCompareCosDistances
    linkageType: ''
    returnType: int
    signature: "int Triage(const Vector3<T>& x,\n                    const Vector3<T>&
      a, const Vector3<T>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: s2pred::MinusSin2Distances::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - TriageCompareSin2Distances
    linkageType: ''
    returnType: int
    signature: "int Triage(const Vector3<T>& x,\n                    const Vector3<T>&
      a, const Vector3<T>& b)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:609,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:609,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:610,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:610,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:611,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:611,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:613,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:614,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:614,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:614,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:614,1
    - Dst: s2pred::ExactCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:615,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:615,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:615,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:615,1
    - Dst: s2pred::SymbolicCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:617,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:621,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:622,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:623,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:624,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:629,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:632,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:632,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:635,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - x
    - a
    - b
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 636
    functionName: s2pred::TestCompareDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ExactCompareDistances
    - s2pred::SymbolicCompareDistances
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::CompareDistances
    - s2pred::ToExact
    - S2::IsUnitLength
    - s2pred::Sin2Distances::Triage
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestCompareDistances(S2Point x, S2Point a, S2Point b,\n                          int
      expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:642,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:643,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:643,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:643,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:645,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:646,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:646,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:646,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:648,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:649,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:649,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:649,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:651,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:652,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:652,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:652,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:654,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:655,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:655,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:655,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:657,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:658,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:658,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:658,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:662,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:663,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:663,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:663,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:665,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:666,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:666,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:666,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:668,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:669,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:669,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:669,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:671,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:672,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:672,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:672,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:674,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:675,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:675,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:675,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:677,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:678,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:678,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:678,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:682,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:683,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:683,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:683,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:685,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:686,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:686,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:687,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:688,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:689,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:689,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:689,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:691,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:692,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:692,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:692,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:694,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:695,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:695,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 697
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2pred::TestCompareDistances
    linkageType: ''
    returnType: void
    signature: void TEST(CompareDistances, Coverage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:705,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:706,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:706,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:706,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:706,1
    - Dst: s2pred::ExactCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:707,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:707,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:707,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:707,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:708,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:709,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:711,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:711,1
    - Dst: s2pred::SymbolicCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:716,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:717,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 720
    functionName: s2pred::TestCompareDistancesConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ExactCompareDistances
    - s2pred::SymbolicCompareDistances
    - s2pred::ToLD
    - s2pred::CompareDistances
    - s2pred::ToExact
    - s2pred::Sin2Distances::Triage
    - EXPECT_EQ
    linkageType: ''
    returnType: Precision
    signature: "Precision TestCompareDistancesConsistency(const S2Point& x, const
      S2Point& a,\n                                          const S2Point& b)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareDistancesConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:736,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:737,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:737,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:737,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:738,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:739,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:740,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:741,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:742,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:743,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:745,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:745,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:746,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:746,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:747,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:747,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:748,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:749,1
    - Dst: s2pred::TestCompareDistancesConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:750,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:751,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:751,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:751,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:756,1
    - Dst: s2pred::TestCompareDistancesConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:757,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:758,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:761,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:763,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:766,1
    - Dst: s2pred::TestCompareDistancesConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:767,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:768,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:768,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:771,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:771,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:772,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:773,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 774
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - absl::Bernoulli
    - s2pred::TestCompareDistancesConsistency
    - S2Point
    - PrecisionStats::Tally
    - ABSL_LOG
    - s2pred::ChoosePoint
    - ToString
    - S1Angle::Radians
    - EXPECT_EQ
    - S2::GetPointOnLine
    - Tally
    - S1Angle::radians
    - S2Testing::MakeTaggedSeedSeq
    - PrecisionStats::ToString
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - S1Angle::degrees
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CompareDistances, Consistency)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:781,1
    - Dst: absl::implicit_cast<T>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:781,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 782
    functionName: s2pred::Sin2Distance::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    - TriageCompareSin2Distance
    - absl::implicit_cast<T>
    linkageType: ''
    returnType: int
    signature: int Triage(const Vector3<T>& x, const Vector3<T>& y, S1ChordAngle r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:789,1
    - Dst: absl::implicit_cast<T>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:789,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 790
    functionName: s2pred::CosDistance::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - TriageCompareCosDistance
    - absl::implicit_cast<T>
    - S1ChordAngle::length2
    linkageType: ''
    returnType: int
    signature: int Triage(const Vector3<T>& x, const Vector3<T>& y, S1ChordAngle r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:801,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:801,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:802,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:802,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:804,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:805,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:805,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:805,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:806,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:806,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:806,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:806,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:810,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:811,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:812,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:815,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:818,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:818,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:824,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:825,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:826,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:826,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - x
    - y
    - r
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 797
    functionDepth: 3
    functionLinenumber: 797
    functionLinenumberEnd: 827
    functionName: s2pred::TestCompareDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::CompareDistance
    - s2pred::ToExact
    - S2::IsUnitLength
    - EXPECT_EQ
    - S1ChordAngle::Straight
    - s2pred::Sin2Distances::Triage
    - S1ChordAngle::length2
    - s2pred::ExactCompareDistance
    linkageType: ''
    returnType: void
    signature: "void TestCompareDistance(S2Point x, S2Point y, S1ChordAngle r,\n                         int
      expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:831,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:832,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:832,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:833,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:834,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:835,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:835,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:836,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:837,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:838,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:838,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:839,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:840,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:841,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:841,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:842,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:843,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:844,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:844,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:845,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:848,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:849,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:849,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:850,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:851,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:852,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:852,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:853,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:854,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:855,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:855,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:856,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:857,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:858,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:858,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:859,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:860,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:861,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:861,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:862,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:864,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:865,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:865,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 829
    functionDepth: 4
    functionLinenumber: 829
    functionLinenumberEnd: 867
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S1ChordAngle::FromLength2
    - s2pred::TestCompareDistance
    - S1ChordAngle::Zero
    - S1ChordAngle::Radians
    - S1ChordAngle::Right
    linkageType: ''
    returnType: void
    signature: void TEST(CompareDistance, Coverage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:875,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:876,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:876,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:876,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:877,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:877,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:877,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:877,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:878,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:878,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:879,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 882
    functionName: s2pred::TestCompareDistanceConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ToLD
    - s2pred::CompareDistance
    - s2pred::ToExact
    - EXPECT_EQ
    - s2pred::Sin2Distances::Triage
    - S1ChordAngle::length2
    - s2pred::ExactCompareDistance
    linkageType: ''
    returnType: Precision
    signature: "Precision TestCompareDistanceConsistency(const S2Point& x, const S2Point&
      y,\n                                         S1ChordAngle r)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:890,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:891,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:892,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:893,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:894,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:895,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:897,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:897,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:898,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:898,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:899,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:899,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:900,1
    - Dst: s2pred::TestCompareDistanceConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:901,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:902,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:903,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:903,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:904,1
    - Dst: s2pred::TestCompareDistanceConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:905,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:906,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:907,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:907,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:910,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:910,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:911,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 884
    functionDepth: 3
    functionLinenumber: 884
    functionLinenumberEnd: 912
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - S2::GetPointOnLine
    - absl::Bernoulli
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - s2pred::TestCompareDistanceConsistency
    - Tally
    - PrecisionStats::Tally
    - S1Angle::radians
    - S1Angle::degrees
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - s2pred::ChoosePoint
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(CompareDistance, Consistency)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:920,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:920,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:921,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:921,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:922,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:922,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:924,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:924,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:925,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:925,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:925,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:925,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:926,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:926,1
    - Dst: s2pred::ExactCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:927,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:931,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:932,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:933,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:936,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:939,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - x
    - a0
    - a1
    - r
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 940
    functionName: s2pred::TestCompareEdgeDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TriageCompareEdgeDistance
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::CompareEdgeDistance
    - S2::IsUnitLength
    - EXPECT_EQ
    - s2pred::ExactCompareEdgeDistance
    - S1ChordAngle::length2
    linkageType: ''
    returnType: void
    signature: "void TestCompareEdgeDistance(S2Point x, S2Point a0, S2Point a1, S1ChordAngle
      r,\n                             int expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:944,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:945,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:945,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:945,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:946,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:947,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:948,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:948,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:948,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:949,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:950,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:951,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:951,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:951,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:952,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:953,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:954,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:954,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:954,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:955,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:958,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:959,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:959,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:959,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:960,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:962,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:963,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:963,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:963,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:964,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:966,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:967,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:967,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:967,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:968,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:969,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:970,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:970,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:970,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:971,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:974,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:975,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:975,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:975,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:976,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:977,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:978,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:978,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:978,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:979,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:980,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:981,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:981,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:981,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:982,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:983,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:984,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:984,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:984,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:985,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:986,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:987,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:987,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:987,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:988,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:991,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:992,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:992,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:992,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:993,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:994,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:995,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:995,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:995,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:996,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:997,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:998,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:998,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:998,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:999,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1000,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1001,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1001,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1001,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 942
    functionDepth: 4
    functionLinenumber: 942
    functionLinenumberEnd: 1003
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestCompareEdgeDistance
    - S2Point
    - S1ChordAngle::Zero
    - S1ChordAngle::Radians
    - S1ChordAngle::Right
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgeDistance, Coverage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1010,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1010,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1011,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1011,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1011,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1011,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1012,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1012,1
    - Dst: s2pred::ExactCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1013,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1014,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1014,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1015,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1018
    functionName: s2pred::TestCompareEdgeDistanceConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TriageCompareEdgeDistance
    - s2pred::ToLD
    - s2pred::CompareEdgeDistance
    - EXPECT_EQ
    - s2pred::ExactCompareEdgeDistance
    - S1ChordAngle::length2
    linkageType: ''
    returnType: Precision
    signature: "Precision TestCompareEdgeDistanceConsistency(\n    const S2Point&
      x, const S2Point& a0, const S2Point& a1, S1ChordAngle r)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1026,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1027,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1028,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1029,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1030,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1032,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1032,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1033,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1033,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1034,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1036,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1037,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1038,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1040,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1040,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1041,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1041,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1042,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1043,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1046,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1047,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1048,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1049,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1049,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1049,1
    - Dst: s2pred::TestCompareEdgeDistanceConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1051,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1052,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1053,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1055,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1055,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1056
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - absl::Bernoulli
    - PrecisionStats::Tally
    - S1Angle
    - ABSL_LOG
    - s2pred::ChoosePoint
    - s2pred::CompareEdgeDirections
    - S1Angle::Radians
    - min
    - S1ChordAngle
    - s2pred::TestCompareEdgeDistanceConsistency
    - S2::GetPointOnLine
    - S2Testing::MakeTaggedSeedSeq
    - PrecisionStats::ToString
    - Normalize
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - S2::RobustCrossProd
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgeDistance, Consistency)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1065,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1065,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1065,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1066,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1066,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1066,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1067,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1067,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1067,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1070,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1070,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1070,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1071,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1071,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1071,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1072,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1072,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1072,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1073,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1073,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1073,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1076,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1076,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1076,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1077,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1077,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1077,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1078,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1078,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1078,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1079,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1079,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1079,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1082,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1082,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1082,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1083,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1083,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1083,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1087,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1088,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1089,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1089,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1090,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1090,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1091,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1091,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1092,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1092,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1093,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1093,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1094,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1094,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1095,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1095,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1096,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1097
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2pred::CompareEdgePairDistance
    - S1ChordAngle::Zero
    - S1ChordAngle::Radians
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgePairDistance, Coverage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1105,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1105,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1106,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1106,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1107,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1107,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1108,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1108,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1110,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1111,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1111,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1111,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1112,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1112,1
    - Dst: s2pred::ExactCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1113,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1113,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1113,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1114,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1118,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1123,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1126,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1129,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1130,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1131,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1132,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1132,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1133,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1134,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1134,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1135,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1136,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1137,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - a0
    - a1
    - b0
    - b1
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1101
    functionDepth: 3
    functionLinenumber: 1101
    functionLinenumberEnd: 1138
    functionName: s2pred::TestCompareEdgeDirections
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ExactCompareEdgeDirections
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::TriageCompareEdgeDirections
    - s2pred::ToExact
    - S2::IsUnitLength
    - EXPECT_EQ
    - s2pred::CompareEdgeDirections
    linkageType: ''
    returnType: void
    signature: "void TestCompareEdgeDirections(S2Point a0, S2Point a1, S2Point b0,
      S2Point b1,\n                               int expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1141,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1141,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1141,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1142,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1142,1
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1145,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1145,1
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1147,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1147,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1147,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1148,1
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1151,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1151,1
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1153,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1153,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1153,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1140
    functionDepth: 4
    functionLinenumber: 1140
    functionLinenumberEnd: 1156
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2pred::TestCompareEdgeDirections
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgeDirections, Coverage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::SignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1162,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1163,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1163,1
    - Dst: s2pred::TriageSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1167,1
    - Dst: s2pred::TriageSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1170,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1170,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1170,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1174,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - a
    - b
    - expected
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1175
    functionName: s2pred::TestSignDotProd
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - s2pred::ToLD
    - s2pred::TriageSignDotProd
    - EXPECT_THAT
    - s2pred::SignDotProd
    linkageType: ''
    returnType: void
    signature: "void TestSignDotProd(S2Point a, S2Point b, int expected,\n                     Precision
      expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1177
    functionDepth: 3
    functionLinenumber: 1177
    functionLinenumberEnd: 1181
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestSignDotProd
    linkageType: ''
    returnType: void
    signature: void TEST(SignDotProd, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1187,1
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1183
    functionDepth: 3
    functionLinenumber: 1183
    functionLinenumberEnd: 1191
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestSignDotProd
    linkageType: ''
    returnType: void
    signature: void TEST(SignDotProd, NearlyOrthogonalPositive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1197,1
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1193
    functionDepth: 3
    functionLinenumber: 1193
    functionLinenumberEnd: 1201
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestSignDotProd
    linkageType: ''
    returnType: void
    signature: void TEST(SignDotProd, NearlyOrthogonalNegative)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CircleEdgeIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1207,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1208,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1208,1
    - Dst: s2pred::TriageIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1213,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1221,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1222,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1223,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1224,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1225,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1226,1
    - Dst: s2pred::TriageIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1227,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1232,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 8
    argNames:
    - a
    - b
    - c
    - d
    - m
    - n
    - expected
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1204
    functionDepth: 2
    functionLinenumber: 1204
    functionLinenumberEnd: 1233
    functionName: s2pred::TestIntersectionOrdering
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - s2pred::ToLD
    - s2pred::TriageIntersectionOrdering
    - EXPECT_THAT
    - s2pred::CircleEdgeIntersectionOrdering
    linkageType: ''
    returnType: void
    signature: "void TestIntersectionOrdering(S2Point a, S2Point b, S2Point c, S2Point
      d,\n                              S2Point m, S2Point n, int expected,\n                              Precision
      expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1239,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1240,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1243,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1244,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1245,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1248,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1249,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1250,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1251,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1252,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1255,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1258,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1259,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1259,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1262,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1263,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1263,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1266,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1267,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1267,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1268,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1269,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1269,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1273,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1274,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1275,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1276,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1278
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestIntersectionOrdering
    - S2Cell::GetEdgeRaw
    - S2Cell::GetCenter
    - S2Point
    - S2Cell::GetVertex
    - S2CellId::FromToken
    linkageType: ''
    returnType: void
    signature: void TEST(CircleEdgeIntersectionOrdering, Works)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1284,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1285,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1285,1
    - Dst: s2pred::TriageCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1290,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1293,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1294,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1295,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1296,1
    - Dst: s2pred::TriageCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1297,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1301,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - a
    - b
    - n
    - x
    - expected
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1302
    functionName: s2pred::TestCircleEdgeIntersectionSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::CircleEdgeIntersectionSign
    - Eq
    - s2pred::ToLD
    - s2pred::TriageCircleEdgeIntersectionSign
    - EXPECT_THAT
    linkageType: ''
    returnType: void
    signature: "void TestCircleEdgeIntersectionSign(S2Point a, S2Point b, S2Point
      n, S2Point x,\n                                    int expected, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1306,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1307,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1310,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1311,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1312,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1316,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1317,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1318,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1319,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1321,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1321,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1322,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1322,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1324,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1324,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1325,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1325,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1327,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1327,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1328,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1328,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1330,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1330,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1331,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1331,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1336,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1337,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1338,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1339,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1341,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1341,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1342,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1304
    functionDepth: 3
    functionLinenumber: 1304
    functionLinenumberEnd: 1344
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetEdgeRaw
    - S2Cell::GetCenter
    - S2Cell::GetVertex
    - S2CellId::FromToken
    - s2pred::TestCircleEdgeIntersectionSign
    linkageType: ''
    returnType: void
    signature: void TEST(CircleEdgeIntersectionSign, Works)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1352,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1353,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1353,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1353,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1354,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1354,1
    - Dst: s2pred::ExactCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1355,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1355,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1355,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1356,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1356,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1357,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1357,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1358,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1349
    functionDepth: 2
    functionLinenumber: 1349
    functionLinenumberEnd: 1361
    functionName: s2pred::TestCompareEdgeDirectionsConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ExactCompareEdgeDirections
    - s2pred::ToLD
    - s2pred::TriageCompareEdgeDirections
    - s2pred::ToExact
    - EXPECT_EQ
    - s2pred::CompareEdgeDirections
    linkageType: ''
    returnType: Precision
    signature: "Precision TestCompareEdgeDirectionsConsistency(\n    const S2Point&
      a0, const S2Point& a1,\n    const S2Point& b0, const S2Point& b1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1368,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1369,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1370,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1371,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1372,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1374,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1374,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1375,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1375,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1376,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1377,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1379,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1379,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1380,1
    - Dst: s2pred::TestCompareEdgeDirectionsConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1382,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1385,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1387,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1390,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1363
    functionDepth: 3
    functionLinenumber: 1363
    functionLinenumberEnd: 1391
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestCompareEdgeDirectionsConsistency
    - S2::GetPointOnLine
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - PrecisionStats::Tally
    - EXPECT_EQ
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - S2::RobustCrossProd
    - s2pred::ChoosePoint
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgeDirections, Consistency)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1400,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1400,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1401,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1401,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1402,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1402,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1403,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1403,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1404,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1404,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1406,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1407,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1408,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ExactEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1410,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::SymbolicEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1413,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1417,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1418,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1419,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1420,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1425,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1428,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1428,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1431,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1431,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1432,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1432,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1433,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1433,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1434,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1434,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1435,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1435,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1436,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1436,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1437,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1437,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1441,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1441,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 7
    argNames:
    - x0
    - x1
    - a
    - b
    - c
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1395
    functionDepth: 3
    functionLinenumber: 1395
    functionLinenumberEnd: 1443
    functionName: s2pred::TestEdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ToLD
    - s2pred::Sign
    - s2pred::EdgeCircumcenterSign
    - S2Point::Normalize
    - s2pred::ToExact
    - S2::IsUnitLength
    - s2pred::ExactEdgeCircumcenterSign
    - EXPECT_EQ
    - s2pred::SymbolicEdgeCircumcenterSign
    - s2pred::TriageEdgeCircumcenterSign
    linkageType: ''
    returnType: void
    signature: "void TestEdgeCircumcenterSign(\n    S2Point x0, S2Point x1, S2Point
      a, S2Point b, S2Point c,\n    int expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1446,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1447,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1447,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1448,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1448,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1448,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1450,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1451,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1451,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1452,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1452,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1452,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1454,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1455,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1455,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1456,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1456,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1456,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1460,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1460,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1460,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1462,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1463,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1463,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1464,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1464,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1464,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1466,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1467,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1467,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1468,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1468,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1468,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1472,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1473,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1473,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1474,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1474,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1474,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1478,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1479,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1479,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1480,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1480,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1445
    functionDepth: 4
    functionLinenumber: 1445
    functionLinenumberEnd: 1482
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestEdgeCircumcenterSign
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeCircumcenterSign, Coverage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1490,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1491,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1492,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ExactEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1494,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1496,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1499,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1499,1
    - Dst: s2pred::SymbolicEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1504,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1505,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ' x0'
    - ' x1'
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1487
    functionDepth: 2
    functionLinenumber: 1487
    functionLinenumberEnd: 1508
    functionName: s2pred::TestEdgeCircumcenterSignConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ToLD
    - s2pred::Sign
    - s2pred::EdgeCircumcenterSign
    - s2pred::ToExact
    - s2pred::ExactEdgeCircumcenterSign
    - EXPECT_EQ
    - s2pred::SymbolicEdgeCircumcenterSign
    - s2pred::TriageEdgeCircumcenterSign
    linkageType: ''
    returnType: Precision
    signature: "Precision TestEdgeCircumcenterSignConsistency(\n    const S2Point&
      x0, const S2Point& x1,\n    const S2Point& a, const S2Point& b, const S2Point&
      c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1516,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1517,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1518,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1519,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1520,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1521,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1523,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1524,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1525,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1526,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1527,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1529,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1529,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1530,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1530,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1531,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1531,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1532,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1532,1
    - Dst: s2pred::TestEdgeCircumcenterSignConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1533,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1537,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1539,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1541,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1544,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1544,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1510
    functionDepth: 3
    functionLinenumber: 1510
    functionLinenumberEnd: 1545
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointOnLine
    - absl::Bernoulli
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - PrecisionStats::Tally
    - s2pred::TestEdgeCircumcenterSignConsistency
    - Normalize
    - EXPECT_EQ
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - s2pred::ChoosePoint
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeCircumcenterSign, Consistency)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1556,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1556,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1557,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1557,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1558,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1558,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1559,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1559,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1567,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1568,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1571,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1573,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1573,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1574,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ExactVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1576,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1581,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1582,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1583,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1587,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1590,1
    - Dst: s2pred::GetVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1590,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1597,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1598,1
    - Dst: s2pred::GetVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1598,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 7
    argNames:
    - a
    - b
    - x0
    - x1
    - r
    - expected_result
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    - Excluded
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1549
    functionDepth: 3
    functionLinenumber: 1549
    functionLinenumberEnd: 1600
    functionName: s2pred::TestVoronoiSiteExclusion
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ExactVoronoiSiteExclusion
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::CompareDistances
    - S1ChordAngle::length2
    - s2pred::ToExact
    - s2pred::TriageVoronoiSiteExclusion
    - S2::IsUnitLength
    - EXPECT_EQ
    - s2pred::GetVoronoiSiteExclusion
    linkageType: ''
    returnType: void
    signature: "void TestVoronoiSiteExclusion(\n    S2Point a, S2Point b, S2Point
      x0, S2Point x1, S1ChordAngle r,\n    Excluded expected_result, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1604,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1605,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1605,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1606,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1606,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1606,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1610,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1611,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1611,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1612,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1612,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1612,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1616,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1617,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1617,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1618,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1618,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1618,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1620,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1621,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1621,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1622,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1622,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1622,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1624,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1625,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1625,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1626,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1626,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1626,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1628,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1629,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1629,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1630,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1630,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1630,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1635,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1636,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1636,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1637,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1637,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1637,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1639,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1640,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1640,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1641,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1641,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1641,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1643,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1644,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1644,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1645,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1645,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1645,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1647,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1648,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1648,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1649,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1649,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1649,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1651,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1652,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1652,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1653,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1653,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1653,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1664,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1665,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1665,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1666,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1666,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1666,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1669,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1670,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1670,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1671,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1671,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1671,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1675,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1676,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1676,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1677,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1677,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1677,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1680,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1681,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1681,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1682,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1682,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1682,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1691,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1692,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1692,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1693,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1693,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1693,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1701,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1702,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1702,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1703,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1703,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1703,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1706,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1707,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1707,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1708,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1708,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1708,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1717,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1718,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1718,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1719,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1719,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1719,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1724,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1725,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1725,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1726,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1726,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1602
    functionDepth: 4
    functionLinenumber: 1602
    functionLinenumberEnd: 1728
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S1ChordAngle::FromLength2
    - s2pred::TestVoronoiSiteExclusion
    - S1ChordAngle::Degrees
    - S1ChordAngle::Radians
    linkageType: ''
    returnType: void
    signature: void TEST(VoronoiSiteExclusion, Coverage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1739,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1741,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1741,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1742,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ExactVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1744,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1746,1
    - Dst: s2pred::GetVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1746,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1748,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1750,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1753,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' x0'
    - ' x1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1733
    functionDepth: 2
    functionLinenumber: 1733
    functionLinenumberEnd: 1759
    functionName: s2pred::TestVoronoiSiteExclusionConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::ExactVoronoiSiteExclusion
    - s2pred::ToLD
    - s2pred::CompareDistances
    - s2pred::ToExact
    - s2pred::TriageVoronoiSiteExclusion
    - EXPECT_EQ
    - EXPECT_NE
    - S1ChordAngle::length2
    - s2pred::GetVoronoiSiteExclusion
    linkageType: ''
    returnType: Precision
    signature: "Precision TestVoronoiSiteExclusionConsistency(\n    const S2Point&
      a, const S2Point& b, const S2Point& x0, const S2Point& x1,\n    S1ChordAngle
      r)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1762,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1763,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1770,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1771,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1772,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1773,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1775,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1776,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1778,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1778,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1779,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1779,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1780,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1780,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1783,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1784,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1785,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1785,1
    - Dst: s2pred::TestVoronoiSiteExclusionConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1788,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1791,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1793,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1796,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1796,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1761
    functionDepth: 3
    functionLinenumber: 1761
    functionLinenumberEnd: 1797
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointOnLine
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - s2pred::CompareDistances
    - PrecisionStats::Tally
    - s2pred::TestVoronoiSiteExclusionConsistency
    - s2pred::CompareEdgeDistance
    - EXPECT_EQ
    - Normalize
    - swap
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - s2pred::ChoosePoint
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(VoronoiSiteExclusion, Consistency)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:70,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:71,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:71,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:72,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:72,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:73,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:73,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:74,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:74,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:75,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:75,1
    - Dst: s2pred::epsilon_for_digits
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ldexp
    - s2pred::epsilon_for_digits
    linkageType: ''
    returnType: void
    signature: void TEST(epsilon_for_digits, recursion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:83,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:83,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:85,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:85,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: void
    signature: void TEST(rounding_epsilon, vs_numeric_limits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:97,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:98,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:99,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:99,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:100,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:100,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:109,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:110,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:110,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:111,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:112,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:112,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:113,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:113,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:113,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:119,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:120,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:120,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:121,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:122,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:122,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:127,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:128,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:129,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:131,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:131,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:132,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:133,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:133,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:134,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:134,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 135
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::Sign
    - S2Point
    - S2Point::Normalize
    - EXPECT_NE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(Sign, CollinearPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:144,1
    - Dst: s2pred::StableSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:145,1
    - Dst: s2pred::ExactSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:146,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2pred::ExactSign
    - s2pred::StableSign
    - s2pred::Sign
    linkageType: ''
    returnType: void
    signature: void TEST(Sign, StableSignUnderflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' origin'
    - ' start'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: s2pred::SignTest::LessCCW::LessCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LessCCW(const S2Point& origin, const S2Point& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: operator()(const S2Point& a, const S2Point& b) const
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: bool
    signature: bool operator()(const S2Point& a, const S2Point& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2Point>*::clear
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:183,1
    - Dst: std::remove_copy
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:184,1
    - Dst: absl::Span<const S2Point>::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:184,1
    - Dst: absl::Span<const S2Point>::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:184,1
    - Dst: back_inserter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:184,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:189,1
    - Dst: vector<S2Point>*::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:189,1
    - Dst: vector<S2Point>*::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - points
    - ' origin'
    - sorted
    argTypes:
    - absl::Span<const S2Point>
    - S2Point
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: s2pred::SignTest::SortCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - absl::Span<const S2Point>::begin
    - vector<S2Point>*::end
    - vector<S2Point>*::clear
    - std::remove_copy
    - vector<S2Point>*::begin
    - back_inserter
    - std::sort
    - absl::Span<const S2Point>::end
    linkageType: ''
    returnType: void
    signature: "void SortCCW(absl::Span<const S2Point> points, const S2Point& origin,\n
      \                     vector<S2Point>* sorted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:200,1
    - Dst: Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:202,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:203,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - sorted
    - ' origin'
    - start
    argTypes:
    - absl::Span<const S2Point>
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: s2pred::SignTest::CountCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - absl::Span<const S2Point>::size
    - EXPECT_FALSE
    - Sign
    - EXPECT_NE
    linkageType: ''
    returnType: int
    signature: "int CountCCW(absl::Span<const S2Point> sorted, const S2Point& origin,\n
      \                     int start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:218,1
    - Dst: s2pred::SignTest::CountCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:220,1
    - Dst: s2pred::SignTest::CountCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:222,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sorted
    - ' origin'
    argTypes:
    - absl::Span<const S2Point>
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 232
    functionName: s2pred::SignTest::TestCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_EQ
    - EXPECT_GE
    - s2pred::SignTest::CountCCW
    - absl::Span<const S2Point>::size
    linkageType: ''
    returnType: void
    signature: void TestCCW(absl::Span<const S2Point> sorted, const S2Point& origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:235,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - points
    argTypes:
    - S2Point
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: s2pred::SignTest::AddNormalized
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - Normalize
    - vector<S2Point>*::push_back
    linkageType: ''
    returnType: void
    signature: void AddNormalized(const S2Point& a, vector<S2Point>* points)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:244,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:246,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:256,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:258,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:258,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:259,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - bitgen
    - ' a'
    - ' b'
    - points
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 264
    functionName: s2pred::SignTest::MaybeAddTangentPoints
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - S2::RobustCrossProd
    - S2::IsUnitLength
    - vector<S2Point>*::push_back
    - s2random::LogUniform
    linkageType: ''
    returnType: void
    signature: "void MaybeAddTangentPoints(absl::BitGenRef bitgen, const S2Point&
      a,\n                                    const S2Point& b, vector<S2Point>* points)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:269,1
    - Dst: vector<S2Point>*::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:269,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:270,1
    - Dst: vector<S2Point>*::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:270,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:271,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:272,1
    - Dst: s2pred::SignTest::AddNormalized
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:276,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:276,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:277,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:282,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:282,1
    - Dst: s2pred::SignTest::AddNormalized
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:283,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:287,1
    - Dst: s2pred::SignTest::AddNormalized
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:288,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:293,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:294,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:294,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:299,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:300,1
    - Dst: Vector3_d::Norm2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:301,1
    - Dst: s2pred::SignTest::AddNormalized
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:302,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:302,1
    - Dst: s2pred::SignTest::MaybeAddTangentPoints
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:309,1
    - Dst: s2pred::SignTest::MaybeAddTangentPoints
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:314,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:314,1
    - Dst: vector<S2Point>*::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:318,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - bitgen
    - points
    argTypes:
    - absl::BitGenRef
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 321
    functionName: s2pred::SignTest::AddDegeneracy
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - Vector3_d::Norm2
    - vector<S2Point>*::push_back
    - absl::Bernoulli
    - S2Point
    - absl::Uniform<size_t>
    - s2pred::SignTest::AddNormalized
    - nextafter
    - S2::IsUnitLength
    - S2::RobustCrossProd
    - s2random::LogUniform
    - vector<S2Point>*::size
    - s2pred::SignTest::MaybeAddTangentPoints
    linkageType: ''
    returnType: void
    signature: void AddDegeneracy(absl::BitGenRef bitgen, vector<S2Point>* points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::SignTest::SortCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:328,1
    - Dst: s2pred::SignTest::TestCCW
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - points
    - ' origin'
    argTypes:
    - absl::Span<const S2Point>
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: s2pred::SignTest::SortAndTest
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::SignTest::SortCCW
    - s2pred::SignTest::TestCCW
    linkageType: ''
    returnType: void
    signature: "void SortAndTest(absl::Span<const S2Point> points,\n                          const
      S2Point& origin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:336,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:337,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:339,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:340,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:341,1
    - Dst: s2pred::SignTest::AddDegeneracy
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:342,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: std::remove
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:346,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:347,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:348,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:348,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:348,1
    - Dst: vector::erase
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:349,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:350,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:350,1
    - Dst: s2pred::SignTest::SortAndTest
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:352,1
    - Dst: s2pred::SignTest::SortAndTest
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:353,1
    - Dst: s2pred::SignTest::SortAndTest
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - bitgen
    - a
    - b
    - n
    - min_unique_points
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 357
    functionName: s2pred::SignTest::TestGreatCircle
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - vector::erase
    - std::unique
    - S2Point
    - S2Point::Normalize
    - s2pred::SignTest::SortAndTest
    - vector::end
    - EXPECT_GE
    - vector::begin
    - std::sort
    - std::remove
    - vector::size
    - s2pred::SignTest::AddDegeneracy
    linkageType: ''
    returnType: void
    signature: "void TestGreatCircle(absl::BitGenRef bitgen, S2Point a, S2Point b,\n
      \                             int n, int min_unique_points)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:362,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:362,1
    - Dst: TestGreatCircle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:379,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:379,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:379,1
    - Dst: TestGreatCircle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:381,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:381,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:381,1
    - Dst: TestGreatCircle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:383,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:383,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:383,1
    - Dst: TestGreatCircle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:390,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:390,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 393
    functionName: s2pred::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - TestGreatCircle
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(SignTest, StressTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:401,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:402,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:405,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:405,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:407,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:408,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:409,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:410,1
    - Dst: s2pred::StableSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:413,1
    - Dst: s2pred::ExactSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:413,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:418,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - km
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 421
    functionName: s2pred::StableSignTest::GetFailureRate
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - s2random::Frame
    - static_cast<double>
    - S2Point::S2Point
    - S2Testing::KmToAngle
    - Normalize
    - s2pred::StableSign
    - s2pred::ExactSign
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - tan
    linkageType: ''
    returnType: double
    signature: double GetFailureRate(double km)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:434,1
    - Dst: GetFailureRate
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:434,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:435,1
    - Dst: GetFailureRate
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 436
    functionName: s2pred::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - GetFailureRate
    linkageType: ''
    returnType: void
    signature: void TEST_F(StableSignTest, FailureRate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:446,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:447,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:448,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:448,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:448,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:451,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:451,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:452,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:452,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:453,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:453,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:454,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:454,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:455,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:455,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:456,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - expected
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - int
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 457
    functionName: s2pred::CheckSymbolicSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - ASSERT_EQ
    - ABSL_CHECK_EQ
    - CrossProd
    - ABSL_CHECK_LT
    - s2pred::ExpensiveSign
    linkageType: ''
    returnType: void
    signature: "void CheckSymbolicSign(int expected, const S2Point& a,\n                              const
      S2Point& b, const S2Point& c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:474,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:475,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:475,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:475,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:478,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:479,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:479,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:479,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:482,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:486,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:489,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:490,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:490,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:490,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:493,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:496,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:497,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:497,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:497,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:500,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:504,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:504,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:504,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:504,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:507,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:508,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:508,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:508,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:511,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:514,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:515,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:515,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:515,1
    - Dst: s2pred::CheckSymbolicSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:518,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:518,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:518,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 519
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2pred::CheckSymbolicSign
    linkageType: ''
    returnType: void
    signature: void TEST(Sign, SymbolicPerturbationCodeCoverage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - precision
    argTypes:
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 536
    functionName: s2pred::PrecisionStats::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Tally(Precision precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 545
    functionName: s2pred::PrecisionStats::PrecisionStats
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrecisionStats::PrecisionStats()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:551,1
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 556
    functionName: s2pred::PrecisionStats::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppendFormat
    linkageType: ''
    returnType: string
    signature: string PrecisionStats::ToString()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:562,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:564,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:565,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 569
    functionName: s2pred::ChoosePoint
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 6
    functionsReached:
    - S2Point::Normalize
    - s2random::Point
    - s2random::LogUniform
    - absl::Bernoulli
    linkageType: ''
    returnType: S2Point
    signature: S2Point ChoosePoint(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: s2pred::Sin2Distances::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 4
    functionsReached:
    - TriageCompareSin2Distances
    linkageType: ''
    returnType: int
    signature: "int Triage(const Vector3<T>& x,\n                    const Vector3<T>&
      a, const Vector3<T>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareCosDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: s2pred::CosDistances::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - TriageCompareCosDistances
    linkageType: ''
    returnType: int
    signature: "int Triage(const Vector3<T>& x,\n                    const Vector3<T>&
      a, const Vector3<T>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: s2pred::MinusSin2Distances::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - TriageCompareSin2Distances
    linkageType: ''
    returnType: int
    signature: "int Triage(const Vector3<T>& x,\n                    const Vector3<T>&
      a, const Vector3<T>& b)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:609,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:609,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:610,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:610,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:611,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:611,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:613,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:614,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:614,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:614,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:614,1
    - Dst: s2pred::ExactCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:615,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:615,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:615,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:615,1
    - Dst: s2pred::SymbolicCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:617,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:621,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:622,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:623,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:624,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:629,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:632,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:632,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:635,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - x
    - a
    - b
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 636
    functionName: s2pred::TestCompareDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ExactCompareDistances
    - s2pred::SymbolicCompareDistances
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::CompareDistances
    - s2pred::ToExact
    - S2::IsUnitLength
    - s2pred::Sin2Distances::Triage
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestCompareDistances(S2Point x, S2Point a, S2Point b,\n                          int
      expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:642,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:643,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:643,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:643,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:645,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:646,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:646,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:646,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:648,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:649,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:649,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:649,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:651,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:652,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:652,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:652,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:654,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:655,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:655,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:655,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:657,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:658,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:658,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:658,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:662,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:663,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:663,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:663,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:665,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:666,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:666,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:666,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:668,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:669,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:669,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:669,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:671,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:672,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:672,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:672,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:674,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:675,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:675,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:675,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:677,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:678,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:678,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:678,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:682,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:683,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:683,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:683,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:685,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:686,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:686,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:687,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:688,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:689,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:689,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:689,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:691,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:692,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:692,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:692,1
    - Dst: s2pred::TestCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:694,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:695,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:695,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 697
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2pred::TestCompareDistances
    linkageType: ''
    returnType: void
    signature: void TEST(CompareDistances, Coverage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:705,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:706,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:706,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:706,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:706,1
    - Dst: s2pred::ExactCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:707,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:707,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:707,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:707,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:708,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:709,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:711,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:711,1
    - Dst: s2pred::SymbolicCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:716,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:717,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 720
    functionName: s2pred::TestCompareDistancesConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ExactCompareDistances
    - s2pred::SymbolicCompareDistances
    - s2pred::ToLD
    - s2pred::CompareDistances
    - s2pred::ToExact
    - s2pred::Sin2Distances::Triage
    - EXPECT_EQ
    linkageType: ''
    returnType: Precision
    signature: "Precision TestCompareDistancesConsistency(const S2Point& x, const
      S2Point& a,\n                                          const S2Point& b)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareDistancesConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:736,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:737,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:737,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:737,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:738,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:739,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:740,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:741,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:742,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:743,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:745,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:745,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:746,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:746,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:747,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:747,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:748,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:749,1
    - Dst: s2pred::TestCompareDistancesConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:750,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:751,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:751,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:751,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:756,1
    - Dst: s2pred::TestCompareDistancesConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:757,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:758,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:761,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:763,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:766,1
    - Dst: s2pred::TestCompareDistancesConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:767,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:768,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:768,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:771,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:771,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:772,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:773,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 774
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - absl::Bernoulli
    - s2pred::TestCompareDistancesConsistency
    - S2Point
    - PrecisionStats::Tally
    - ABSL_LOG
    - s2pred::ChoosePoint
    - ToString
    - S1Angle::Radians
    - EXPECT_EQ
    - S2::GetPointOnLine
    - Tally
    - S1Angle::radians
    - S2Testing::MakeTaggedSeedSeq
    - PrecisionStats::ToString
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - S1Angle::degrees
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CompareDistances, Consistency)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:781,1
    - Dst: absl::implicit_cast<T>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:781,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 782
    functionName: s2pred::Sin2Distance::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    - TriageCompareSin2Distance
    - absl::implicit_cast<T>
    linkageType: ''
    returnType: int
    signature: int Triage(const Vector3<T>& x, const Vector3<T>& y, S1ChordAngle r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:789,1
    - Dst: absl::implicit_cast<T>
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:789,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 790
    functionName: s2pred::CosDistance::Triage
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - TriageCompareCosDistance
    - absl::implicit_cast<T>
    - S1ChordAngle::length2
    linkageType: ''
    returnType: int
    signature: int Triage(const Vector3<T>& x, const Vector3<T>& y, S1ChordAngle r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:801,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:801,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:802,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:802,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:804,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:805,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:805,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:805,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:806,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:806,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:806,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:806,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:810,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:811,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:812,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:815,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:818,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:818,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:824,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:825,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:826,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:826,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - x
    - y
    - r
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 797
    functionDepth: 3
    functionLinenumber: 797
    functionLinenumberEnd: 827
    functionName: s2pred::TestCompareDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::CompareDistance
    - s2pred::ToExact
    - S2::IsUnitLength
    - EXPECT_EQ
    - S1ChordAngle::Straight
    - s2pred::Sin2Distances::Triage
    - S1ChordAngle::length2
    - s2pred::ExactCompareDistance
    linkageType: ''
    returnType: void
    signature: "void TestCompareDistance(S2Point x, S2Point y, S1ChordAngle r,\n                         int
      expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:831,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:832,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:832,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:833,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:834,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:835,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:835,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:836,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:837,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:838,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:838,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:839,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:840,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:841,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:841,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:842,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:843,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:844,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:844,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:845,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:848,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:849,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:849,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:850,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:851,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:852,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:852,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:853,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:854,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:855,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:855,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:856,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:857,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:858,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:858,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:859,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:860,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:861,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:861,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:862,1
    - Dst: s2pred::TestCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:864,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:865,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:865,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 829
    functionDepth: 4
    functionLinenumber: 829
    functionLinenumberEnd: 867
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S1ChordAngle::FromLength2
    - s2pred::TestCompareDistance
    - S1ChordAngle::Zero
    - S1ChordAngle::Radians
    - S1ChordAngle::Right
    linkageType: ''
    returnType: void
    signature: void TEST(CompareDistance, Coverage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:875,1
    - Dst: s2pred::Sin2Distances::Triage
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:876,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:876,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:876,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:877,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:877,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:877,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:877,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:878,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:878,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:879,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 882
    functionName: s2pred::TestCompareDistanceConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ToLD
    - s2pred::CompareDistance
    - s2pred::ToExact
    - EXPECT_EQ
    - s2pred::Sin2Distances::Triage
    - S1ChordAngle::length2
    - s2pred::ExactCompareDistance
    linkageType: ''
    returnType: Precision
    signature: "Precision TestCompareDistanceConsistency(const S2Point& x, const S2Point&
      y,\n                                         S1ChordAngle r)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:890,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:891,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:892,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:893,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:894,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:895,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:897,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:897,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:898,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:898,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:899,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:899,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:900,1
    - Dst: s2pred::TestCompareDistanceConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:901,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:902,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:903,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:903,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:904,1
    - Dst: s2pred::TestCompareDistanceConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:905,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:906,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:907,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:907,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:910,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:910,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:911,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 884
    functionDepth: 3
    functionLinenumber: 884
    functionLinenumberEnd: 912
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - S2::GetPointOnLine
    - absl::Bernoulli
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - s2pred::TestCompareDistanceConsistency
    - Tally
    - PrecisionStats::Tally
    - S1Angle::radians
    - S1Angle::degrees
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - s2pred::ChoosePoint
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(CompareDistance, Consistency)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:920,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:920,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:921,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:921,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:922,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:922,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:924,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:924,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:925,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:925,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:925,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:925,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:926,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:926,1
    - Dst: s2pred::ExactCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:927,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:931,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:932,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:933,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:936,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:939,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - x
    - a0
    - a1
    - r
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 940
    functionName: s2pred::TestCompareEdgeDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::TriageCompareEdgeDistance
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::CompareEdgeDistance
    - S2::IsUnitLength
    - EXPECT_EQ
    - s2pred::ExactCompareEdgeDistance
    - S1ChordAngle::length2
    linkageType: ''
    returnType: void
    signature: "void TestCompareEdgeDistance(S2Point x, S2Point a0, S2Point a1, S1ChordAngle
      r,\n                             int expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:944,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:945,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:945,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:945,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:946,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:947,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:948,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:948,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:948,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:949,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:950,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:951,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:951,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:951,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:952,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:953,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:954,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:954,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:954,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:955,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:958,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:959,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:959,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:959,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:960,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:962,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:963,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:963,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:963,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:964,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:966,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:967,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:967,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:967,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:968,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:969,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:970,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:970,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:970,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:971,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:974,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:975,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:975,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:975,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:976,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:977,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:978,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:978,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:978,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:979,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:980,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:981,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:981,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:981,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:982,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:983,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:984,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:984,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:984,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:985,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:986,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:987,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:987,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:987,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:988,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:991,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:992,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:992,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:992,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:993,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:994,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:995,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:995,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:995,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:996,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:997,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:998,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:998,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:998,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:999,1
    - Dst: s2pred::TestCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1000,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1001,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1001,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1001,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 942
    functionDepth: 4
    functionLinenumber: 942
    functionLinenumberEnd: 1003
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestCompareEdgeDistance
    - S2Point
    - S1ChordAngle::Zero
    - S1ChordAngle::Radians
    - S1ChordAngle::Right
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgeDistance, Coverage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1010,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1010,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1011,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1011,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1011,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1011,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1012,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1012,1
    - Dst: s2pred::ExactCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1013,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1014,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1014,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1015,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1018
    functionName: s2pred::TestCompareEdgeDistanceConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::TriageCompareEdgeDistance
    - s2pred::ToLD
    - s2pred::CompareEdgeDistance
    - EXPECT_EQ
    - s2pred::ExactCompareEdgeDistance
    - S1ChordAngle::length2
    linkageType: ''
    returnType: Precision
    signature: "Precision TestCompareEdgeDistanceConsistency(\n    const S2Point&
      x, const S2Point& a0, const S2Point& a1, S1ChordAngle r)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1026,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1027,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1028,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1029,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1030,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1032,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1032,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1033,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1033,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1034,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1036,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1037,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1038,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1040,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1040,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1041,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1041,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1042,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1043,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1046,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1047,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1048,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1049,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1049,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1049,1
    - Dst: s2pred::TestCompareEdgeDistanceConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1051,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1052,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1053,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1055,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1055,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1056
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - absl::Bernoulli
    - PrecisionStats::Tally
    - S1Angle
    - ABSL_LOG
    - s2pred::ChoosePoint
    - s2pred::CompareEdgeDirections
    - S1Angle::Radians
    - min
    - S1ChordAngle
    - s2pred::TestCompareEdgeDistanceConsistency
    - S2::GetPointOnLine
    - S2Testing::MakeTaggedSeedSeq
    - PrecisionStats::ToString
    - Normalize
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - S2::RobustCrossProd
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgeDistance, Consistency)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1065,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1065,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1065,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1066,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1066,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1066,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1067,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1067,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1067,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1070,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1070,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1070,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1071,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1071,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1071,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1072,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1072,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1072,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1073,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1073,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1073,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1076,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1076,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1076,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1077,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1077,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1077,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1078,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1078,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1078,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1079,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1079,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1079,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1082,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1082,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1082,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1083,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1083,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1083,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1087,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1088,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1089,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1089,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1090,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1090,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1091,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1091,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1092,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1092,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1093,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1093,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1094,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1094,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1095,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1095,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1096,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1097
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2pred::CompareEdgePairDistance
    - S1ChordAngle::Zero
    - S1ChordAngle::Radians
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgePairDistance, Coverage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1105,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1105,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1106,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1106,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1107,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1107,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1108,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1108,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1110,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1111,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1111,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1111,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1112,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1112,1
    - Dst: s2pred::ExactCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1113,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1113,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1113,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1114,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1118,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1123,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1126,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1129,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1130,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1131,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1132,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1132,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1133,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1134,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1134,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1135,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1136,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1137,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - a0
    - a1
    - b0
    - b1
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1101
    functionDepth: 3
    functionLinenumber: 1101
    functionLinenumberEnd: 1138
    functionName: s2pred::TestCompareEdgeDirections
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ExactCompareEdgeDirections
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::TriageCompareEdgeDirections
    - s2pred::ToExact
    - S2::IsUnitLength
    - EXPECT_EQ
    - s2pred::CompareEdgeDirections
    linkageType: ''
    returnType: void
    signature: "void TestCompareEdgeDirections(S2Point a0, S2Point a1, S2Point b0,
      S2Point b1,\n                               int expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1141,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1141,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1141,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1142,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1142,1
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1145,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1145,1
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1147,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1147,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1147,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1148,1
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1151,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1151,1
    - Dst: s2pred::TestCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1153,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1153,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1153,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1140
    functionDepth: 4
    functionLinenumber: 1140
    functionLinenumberEnd: 1156
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - s2pred::TestCompareEdgeDirections
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgeDirections, Coverage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::SignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1162,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1163,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1163,1
    - Dst: s2pred::TriageSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1167,1
    - Dst: s2pred::TriageSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1170,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1170,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1170,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1174,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - a
    - b
    - expected
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1175
    functionName: s2pred::TestSignDotProd
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 3
    functionsReached:
    - Eq
    - s2pred::ToLD
    - s2pred::TriageSignDotProd
    - EXPECT_THAT
    - s2pred::SignDotProd
    linkageType: ''
    returnType: void
    signature: "void TestSignDotProd(S2Point a, S2Point b, int expected,\n                     Precision
      expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1177
    functionDepth: 3
    functionLinenumber: 1177
    functionLinenumberEnd: 1181
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestSignDotProd
    linkageType: ''
    returnType: void
    signature: void TEST(SignDotProd, Orthogonal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1187,1
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1183
    functionDepth: 3
    functionLinenumber: 1183
    functionLinenumberEnd: 1191
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestSignDotProd
    linkageType: ''
    returnType: void
    signature: void TEST(SignDotProd, NearlyOrthogonalPositive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1197,1
    - Dst: s2pred::TestSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1193
    functionDepth: 3
    functionLinenumber: 1193
    functionLinenumberEnd: 1201
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestSignDotProd
    linkageType: ''
    returnType: void
    signature: void TEST(SignDotProd, NearlyOrthogonalNegative)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CircleEdgeIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1207,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1208,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1208,1
    - Dst: s2pred::TriageIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1213,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1221,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1222,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1223,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1224,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1225,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1226,1
    - Dst: s2pred::TriageIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1227,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1232,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 8
    argNames:
    - a
    - b
    - c
    - d
    - m
    - n
    - expected
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1204
    functionDepth: 2
    functionLinenumber: 1204
    functionLinenumberEnd: 1233
    functionName: s2pred::TestIntersectionOrdering
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - Eq
    - s2pred::ToLD
    - s2pred::TriageIntersectionOrdering
    - EXPECT_THAT
    - s2pred::CircleEdgeIntersectionOrdering
    linkageType: ''
    returnType: void
    signature: "void TestIntersectionOrdering(S2Point a, S2Point b, S2Point c, S2Point
      d,\n                              S2Point m, S2Point n, int expected,\n                              Precision
      expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1239,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1240,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1243,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1244,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1245,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1248,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1249,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1250,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1251,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1252,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1255,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1258,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1259,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1259,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1262,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1263,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1263,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1266,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1267,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1267,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1268,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1269,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1269,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1273,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1274,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1275,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1276,1
    - Dst: s2pred::TestIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1278
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestIntersectionOrdering
    - S2Cell::GetEdgeRaw
    - S2Cell::GetCenter
    - S2Point
    - S2Cell::GetVertex
    - S2CellId::FromToken
    linkageType: ''
    returnType: void
    signature: void TEST(CircleEdgeIntersectionOrdering, Works)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1284,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1285,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1285,1
    - Dst: s2pred::TriageCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1290,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1293,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1294,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1295,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1296,1
    - Dst: s2pred::TriageCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1297,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1301,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - a
    - b
    - n
    - x
    - expected
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1302
    functionName: s2pred::TestCircleEdgeIntersectionSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::CircleEdgeIntersectionSign
    - Eq
    - s2pred::ToLD
    - s2pred::TriageCircleEdgeIntersectionSign
    - EXPECT_THAT
    linkageType: ''
    returnType: void
    signature: "void TestCircleEdgeIntersectionSign(S2Point a, S2Point b, S2Point
      n, S2Point x,\n                                    int expected, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1306,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1307,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1310,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1311,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1312,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1316,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1317,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1318,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1319,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1321,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1321,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1322,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1322,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1324,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1324,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1325,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1325,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1327,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1327,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1328,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1328,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1330,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1330,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1331,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1331,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1336,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1337,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1338,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1339,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1341,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1341,1
    - Dst: s2pred::TestCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1342,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1304
    functionDepth: 3
    functionLinenumber: 1304
    functionLinenumberEnd: 1344
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetEdgeRaw
    - S2Cell::GetCenter
    - S2Cell::GetVertex
    - S2CellId::FromToken
    - s2pred::TestCircleEdgeIntersectionSign
    linkageType: ''
    returnType: void
    signature: void TEST(CircleEdgeIntersectionSign, Works)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1352,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1353,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1353,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1353,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1354,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1354,1
    - Dst: s2pred::ExactCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1355,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1355,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1355,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1356,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1356,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1357,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1357,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1358,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1349
    functionDepth: 2
    functionLinenumber: 1349
    functionLinenumberEnd: 1361
    functionName: s2pred::TestCompareEdgeDirectionsConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ExactCompareEdgeDirections
    - s2pred::ToLD
    - s2pred::TriageCompareEdgeDirections
    - s2pred::ToExact
    - EXPECT_EQ
    - s2pred::CompareEdgeDirections
    linkageType: ''
    returnType: Precision
    signature: "Precision TestCompareEdgeDirectionsConsistency(\n    const S2Point&
      a0, const S2Point& a1,\n    const S2Point& b0, const S2Point& b1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1368,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1369,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1370,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1371,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1372,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1374,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1374,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1375,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1375,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1376,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1377,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1379,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1379,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1380,1
    - Dst: s2pred::TestCompareEdgeDirectionsConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1382,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1385,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1387,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1390,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1363
    functionDepth: 3
    functionLinenumber: 1363
    functionLinenumberEnd: 1391
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestCompareEdgeDirectionsConsistency
    - S2::GetPointOnLine
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - PrecisionStats::Tally
    - EXPECT_EQ
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - S2::RobustCrossProd
    - s2pred::ChoosePoint
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(CompareEdgeDirections, Consistency)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1400,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1400,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1401,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1401,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1402,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1402,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1403,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1403,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1404,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1404,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1406,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1407,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1408,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1409,1
    - Dst: s2pred::ExactEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1410,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1411,1
    - Dst: s2pred::SymbolicEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1413,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1417,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1418,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1419,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1420,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1425,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1428,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1428,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1431,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1431,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1432,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1432,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1433,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1433,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1434,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1434,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1435,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1435,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1436,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1436,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1437,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1437,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1441,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1441,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 7
    argNames:
    - x0
    - x1
    - a
    - b
    - c
    - expected_sign
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - int
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1395
    functionDepth: 3
    functionLinenumber: 1395
    functionLinenumberEnd: 1443
    functionName: s2pred::TestEdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ToLD
    - s2pred::Sign
    - s2pred::EdgeCircumcenterSign
    - S2Point::Normalize
    - s2pred::ToExact
    - S2::IsUnitLength
    - s2pred::ExactEdgeCircumcenterSign
    - EXPECT_EQ
    - s2pred::SymbolicEdgeCircumcenterSign
    - s2pred::TriageEdgeCircumcenterSign
    linkageType: ''
    returnType: void
    signature: "void TestEdgeCircumcenterSign(\n    S2Point x0, S2Point x1, S2Point
      a, S2Point b, S2Point c,\n    int expected_sign, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1446,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1447,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1447,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1448,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1448,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1448,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1450,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1451,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1451,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1452,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1452,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1452,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1454,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1455,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1455,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1456,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1456,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1456,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1460,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1460,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1460,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1462,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1463,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1463,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1464,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1464,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1464,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1466,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1467,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1467,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1468,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1468,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1468,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1472,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1473,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1473,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1474,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1474,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1474,1
    - Dst: s2pred::TestEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1478,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1479,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1479,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1480,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1480,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1445
    functionDepth: 4
    functionLinenumber: 1445
    functionLinenumberEnd: 1482
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::TestEdgeCircumcenterSign
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeCircumcenterSign, Coverage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1490,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1491,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1492,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1493,1
    - Dst: s2pred::ExactEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1494,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1495,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1496,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1499,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1499,1
    - Dst: s2pred::SymbolicEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1504,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1505,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ' x0'
    - ' x1'
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1487
    functionDepth: 2
    functionLinenumber: 1487
    functionLinenumberEnd: 1508
    functionName: s2pred::TestEdgeCircumcenterSignConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ToLD
    - s2pred::Sign
    - s2pred::EdgeCircumcenterSign
    - s2pred::ToExact
    - s2pred::ExactEdgeCircumcenterSign
    - EXPECT_EQ
    - s2pred::SymbolicEdgeCircumcenterSign
    - s2pred::TriageEdgeCircumcenterSign
    linkageType: ''
    returnType: Precision
    signature: "Precision TestEdgeCircumcenterSignConsistency(\n    const S2Point&
      x0, const S2Point& x1,\n    const S2Point& a, const S2Point& b, const S2Point&
      c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1516,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1517,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1518,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1519,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1520,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1521,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1523,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1524,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1525,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1526,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1527,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1529,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1529,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1530,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1530,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1531,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1531,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1532,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1532,1
    - Dst: s2pred::TestEdgeCircumcenterSignConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1533,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1537,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1539,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1541,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1544,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1544,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1510
    functionDepth: 3
    functionLinenumber: 1510
    functionLinenumberEnd: 1545
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointOnLine
    - absl::Bernoulli
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - PrecisionStats::Tally
    - s2pred::TestEdgeCircumcenterSignConsistency
    - Normalize
    - EXPECT_EQ
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - s2pred::ChoosePoint
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeCircumcenterSign, Consistency)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1556,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1556,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1557,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1557,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1558,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1558,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1559,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1559,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1567,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1568,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1571,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1573,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1573,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1574,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1575,1
    - Dst: s2pred::ExactVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1576,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1577,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1581,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1582,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1583,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1587,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1590,1
    - Dst: s2pred::GetVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1590,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1597,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1598,1
    - Dst: s2pred::GetVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1598,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 7
    argNames:
    - a
    - b
    - x0
    - x1
    - r
    - expected_result
    - expected_prec
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    - Excluded
    - Precision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1549
    functionDepth: 3
    functionLinenumber: 1549
    functionLinenumberEnd: 1600
    functionName: s2pred::TestVoronoiSiteExclusion
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ExactVoronoiSiteExclusion
    - s2pred::ToLD
    - S2Point::Normalize
    - s2pred::CompareDistances
    - S1ChordAngle::length2
    - s2pred::ToExact
    - s2pred::TriageVoronoiSiteExclusion
    - S2::IsUnitLength
    - EXPECT_EQ
    - s2pred::GetVoronoiSiteExclusion
    linkageType: ''
    returnType: void
    signature: "void TestVoronoiSiteExclusion(\n    S2Point a, S2Point b, S2Point
      x0, S2Point x1, S1ChordAngle r,\n    Excluded expected_result, Precision expected_prec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1604,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1605,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1605,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1606,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1606,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1606,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1610,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1611,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1611,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1612,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1612,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1612,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1616,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1617,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1617,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1618,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1618,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1618,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1620,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1621,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1621,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1622,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1622,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1622,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1624,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1625,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1625,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1626,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1626,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1626,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1628,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1629,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1629,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1630,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1630,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1630,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1635,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1636,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1636,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1637,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1637,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1637,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1639,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1640,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1640,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1641,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1641,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1641,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1643,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1644,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1644,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1645,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1645,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1645,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1647,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1648,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1648,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1649,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1649,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1649,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1651,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1652,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1652,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1653,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1653,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1653,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1664,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1665,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1665,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1666,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1666,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1666,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1669,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1670,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1670,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1671,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1671,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1671,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1675,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1676,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1676,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1677,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1677,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1677,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1680,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1681,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1681,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1682,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1682,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1682,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1691,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1692,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1692,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1693,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1693,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1693,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1701,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1702,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1702,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1703,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1703,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1703,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1706,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1707,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1707,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1708,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1708,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1708,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1717,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1718,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1718,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1719,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1719,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1719,1
    - Dst: s2pred::TestVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1724,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1725,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1725,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1726,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1726,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1602
    functionDepth: 4
    functionLinenumber: 1602
    functionLinenumberEnd: 1728
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S1ChordAngle::FromLength2
    - s2pred::TestVoronoiSiteExclusion
    - S1ChordAngle::Degrees
    - S1ChordAngle::Radians
    linkageType: ''
    returnType: void
    signature: void TEST(VoronoiSiteExclusion, Coverage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1739,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1741,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1741,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1742,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1743,1
    - Dst: s2pred::ExactVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1744,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1745,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1746,1
    - Dst: s2pred::GetVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1746,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1748,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1750,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1753,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' x0'
    - ' x1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1733
    functionDepth: 2
    functionLinenumber: 1733
    functionLinenumberEnd: 1759
    functionName: s2pred::TestVoronoiSiteExclusionConsistency
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::ExactVoronoiSiteExclusion
    - s2pred::ToLD
    - s2pred::CompareDistances
    - s2pred::ToExact
    - s2pred::TriageVoronoiSiteExclusion
    - EXPECT_EQ
    - EXPECT_NE
    - S1ChordAngle::length2
    - s2pred::GetVoronoiSiteExclusion
    linkageType: ''
    returnType: Precision
    signature: "Precision TestVoronoiSiteExclusionConsistency(\n    const S2Point&
      a, const S2Point& b, const S2Point& x0, const S2Point& x1,\n    S1ChordAngle
      r)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1762,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1763,1
    - Dst: PrecisionStats::PrecisionStats
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1770,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1771,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1772,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1773,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1775,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1776,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1778,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1778,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1779,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1779,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1780,1
    - Dst: s2pred::ChoosePoint
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1780,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1783,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1784,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1785,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1785,1
    - Dst: s2pred::TestVoronoiSiteExclusionConsistency
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1788,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1791,1
    - Dst: PrecisionStats::Tally
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1793,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1796,1
    - Dst: PrecisionStats::ToString
      Src: /src/s2geometry/src/s2/s2predicates_test.cc:1796,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1761
    functionDepth: 3
    functionLinenumber: 1761
    functionLinenumberEnd: 1797
    functionName: s2pred::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2predicates_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointOnLine
    - ABSL_LOG
    - PrecisionStats::ToString
    - S1Angle::Radians
    - s2pred::CompareDistances
    - PrecisionStats::Tally
    - s2pred::TestVoronoiSiteExclusionConsistency
    - s2pred::CompareEdgeDistance
    - EXPECT_EQ
    - Normalize
    - swap
    - PrecisionStats::PrecisionStats
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - s2pred::ChoosePoint
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(VoronoiSiteExclusion, Consistency)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:76,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:78,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:80,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:80,1
    - Dst: auto::distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:81,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:81,1
    - Dst: auto::cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:82,1
    - Dst: auto::label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:83,1
    - Dst: auto::is_empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:84,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:84,1
    - Dst: S2ClosestCellQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::label
    - auto::is_empty
    - S2CellId::None
    - auto::cell_id
    - EXPECT_TRUE
    - S2Point
    - S1ChordAngle::Infinity
    - S2CellIndex::Build
    - EXPECT_EQ
    - auto::distance
    - S2ClosestCellQuery::GetDistance
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, NoCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:92,1
    - Dst: S2ClosestCellQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:93,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:93,1
    - Dst: S2ClosestCellQuery::Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:94,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:94,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:96,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:96,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:96,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:97,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:97,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:97,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:98,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:98,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:98,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:99,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:102,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:102,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:103,1
    - Dst: S2ClosestCellQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:103,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:104,1
    - Dst: S2ClosestCellQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:104,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:107,1
    - Dst: S2ClosestCellQuery::Options::max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:107,1
    - Dst: S2ClosestCellQuery::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:108,1
    - Dst: S2ClosestCellQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:108,1
    - Dst: S2ClosestCellQuery::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:109,1
    - Dst: S2ClosestCellQuery::Options::max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:109,1
    - Dst: S2ClosestCellQuery::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestCellQuery::Options::max_results
    - S2ClosestCellQuery::GetDistance
    - S2CellId
    - EXPECT_NEAR
    - EXPECT_TRUE
    - S2ClosestCellQuery::options
    - S2ClosestCellQuery::Options::set_max_distance
    - S2ClosestCellQuery::Options::max_distance
    - S2ClosestCellQuery::Options::max_error
    - S1ChordAngle::Degrees
    - EXPECT_EQ
    - MakePointOrDie
    - S2CellIndex::Add
    - S2CellIndex::Build
    - S2ClosestCellQuery::Options::set_max_results
    - S2ClosestCellQuery::Options::set_max_error
    - S2ClosestCellQuery::IsDistanceLess
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, OptionsNotModified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:117,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:117,1
    - Dst: set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:118,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:119,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:119,1
    - Dst: S2ClosestCellQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:119,1
    - Dst: S2ClosestCellQuery::Options::set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:121,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:121,1
    - Dst: set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:122,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:123,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:123,1
    - Dst: S2ClosestCellQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:123,1
    - Dst: S2ClosestCellQuery::Options::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:125,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:125,1
    - Dst: set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:126,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:127,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:127,1
    - Dst: S2ClosestCellQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - set_conservative_max_distance
    - max_distance
    - set_inclusive_max_distance
    - S2ClosestCellQuery::Options::set_max_distance
    - S1Angle::Degrees
    - set_max_distance
    - S2ClosestCellQuery::Options::max_distance
    - S2ClosestCellQuery::Options::set_inclusive_max_distance
    - S1ChordAngle::Degrees
    - S2ClosestCellQuery::Options::set_conservative_max_distance
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, OptionsS1AngleSetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:134,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:134,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:136,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:137,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:142,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:143,1
    - Dst: S2ClosestCellQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:143,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:144,1
    - Dst: S2ClosestCellQuery::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:144,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:145,1
    - Dst: S2ClosestCellQuery::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:145,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:149,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:150,1
    - Dst: S2ClosestCellQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:151,1
    - Dst: S2ClosestCellQuery::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:151,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:152,1
    - Dst: S2ClosestCellQuery::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestCellQuery::IsDistanceLessOrEqual
    - EXPECT_TRUE
    - S2Cell
    - S1ChordAngle::Zero
    - S2ClosestCellQuery::IsDistanceLess
    - MakePointOrDie
    - S2CellIndex::Add
    - S2CellIndex::Build
    - S2ClosestCellQuery::IsConservativeDistanceLessOrEqual
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, DistanceEqualToLimit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:157,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:159,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:160,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:162,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:164,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:164,1
    - Dst: auto::distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:165,1
    - Dst: auto::cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:166,1
    - Dst: auto::label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::label
    - S2CellId::ToPoint
    - auto::cell_id
    - S1ChordAngle::Zero
    - MakeCellIdOrDie
    - S2CellIndex::Add
    - S2CellIndex::Build
    - EXPECT_EQ
    - auto::distance
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, TargetPointInsideIndexedCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:172,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:173,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:176,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:176,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:178,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:180,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:180,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:183,1
    - Dst: S2ClosestCellQuery::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestCellQuery::FindClosestCells
    - S1Angle::Radians
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2random::CellId
    - S2CellIndex::Add
    - S2CellIndex::Build
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - S2ClosestCellQuery::mutable_options
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, EmptyTargetOptimized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:194,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:194,1
    - Dst: S2ClosestCellQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:194,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:197,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:197,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:200,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:200,1
    - Dst: S2ClosestCellQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - MakeCellIdOrDie
    - S2CellIndex::Add
    - S1ChordAngle::Infinity
    - S2CellIndex::Build
    - EXPECT_EQ
    - S2ClosestCellQuery::GetDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, EmptyCellUnionTarget)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: ~CellIndexFactory()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~CellIndexFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:221,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:221,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' index_cap'
    - num_cells
    - bitgen
    - index
    argTypes:
    - S2Cap
    - int
    - absl::BitGenRef
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: PointCloudCellIndexFactory::AddCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - s2random::SamplePoint
    - S2CellIndex*::Add
    - S2CellId
    linkageType: ''
    returnType: void
    signature: "void AddCells(const S2Cap& index_cap, int num_cells, absl::BitGenRef
      bitgen,\n                S2CellIndex* index) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - max_cells_per_cap
    - cap_density
    argTypes:
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: CapsCellIndexFactory::CapsCellIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CapsCellIndexFactory(int max_cells_per_cap, double cap_density)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:244,1
    - Dst: S2Cap::FromCenterArea
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:248,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:248,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:249,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:250,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:251,1
    - Dst: S2CellIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:252,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' index_cap'
    - num_cells
    - bitgen
    - index
    argTypes:
    - S2Cap
    - int
    - absl::BitGenRef
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 239
    functionDepth: 7
    functionLinenumber: 239
    functionLinenumberEnd: 254
    functionName: CapsCellIndexFactory::AddCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::FromCenterArea
    - S2RegionCoverer::mutable_options
    - GetArea
    - s2random::SamplePoint
    - S2RegionCoverer::GetCovering
    - S2CellIndex*::Add
    - s2random::LogUniform
    - S2RegionCoverer::S2RegionCoverer
    linkageType: ''
    returnType: void
    signature: "void AddCells(const S2Cap& index_cap, int num_cells, absl::BitGenRef
      bitgen,\n                S2CellIndex* index) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery*::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:272,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:273,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:273,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:273,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:274,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:275,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:277,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:277,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:277,1
    - Dst: S2ClosestCellQuery*::index
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:278,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:279,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:283,1
    - Dst: S2Region*::MayIntersect
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:283,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:283,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:283,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:286,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:286,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:286,1
    - Dst: vector<TestingResult>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:287,1
    - Dst: TestingResult
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:287,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:288,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:288,1
    - Dst: label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - target
    - query
    - results
    argTypes:
    - S2ClosestCellQuery::Target*
    - S2ClosestCellQuery*
    - vector<TestingResult>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 290
    functionName: GetClosestCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - vector<TestingResult>*::push_back
    - S2ClosestCellQuery*::options
    - S2ClosestCellQuery*::index
    - EXPECT_TRUE
    - EXPECT_LT
    - min
    - TestingResult
    - auto::size
    - S2ClosestCellQuery*::FindClosestCells
    - label
    - cell_id
    - S1ChordAngle::Infinity
    - EXPECT_LE
    - S2Cell
    - EXPECT_EQ
    - distance
    - S2Region*::MayIntersect
    linkageType: ''
    returnType: void
    signature: "void GetClosestCells(S2ClosestCellQuery::Target* target,\n                            S2ClosestCellQuery*
      query,\n                            vector<TestingResult>* results)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:295,1
    - Dst: GetClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:296,1
    - Dst: S2ClosestCellQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:297,1
    - Dst: GetClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:298,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:299,1
    - Dst: CheckDistanceResults
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:299,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:300,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:301,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:302,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:303,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:304,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:305,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:307,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:315,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:317,1
    - Dst: S2ClosestCellQuery*::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:317,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:320,1
    - Dst: S2ClosestCellQuery*::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:320,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:321,1
    - Dst: S2ClosestCellQuery*::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - target
    - query
    argTypes:
    - S2ClosestCellQuery::Target*
    - S2ClosestCellQuery*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 322
    functionName: TestFindClosestCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2ClosestCellQuery*::options
    - EXPECT_TRUE
    - S2ClosestCellQuery*::GetDistance
    - S2ClosestCellQuery*::IsConservativeDistanceLessOrEqual
    - vector::empty
    - GetClosestCells
    - EXPECT_LE
    - S2ClosestCellQuery*::IsDistanceLess
    - S2ClosestCellQuery*::mutable_options
    - CheckDistanceResults
    linkageType: ''
    returnType: void
    signature: "void TestFindClosestCells(S2ClosestCellQuery::Target* target,\n                                 S2ClosestCellQuery
      *query)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:334,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:334,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:334,1
    - Dst: make_unique<S2CellIndex>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:335,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:336,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:336,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:336,1
    - Dst: auto::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:337,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:338,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:338,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:341,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:346,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:347,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:348,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:352,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:353,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:353,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:356,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:357,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:358,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:360,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:363,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:363,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:364,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:364,1
    - Dst: S2LatLngRect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:366,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:367,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:367,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:368,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:368,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:369,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:370,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:371,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:373,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:376,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:378,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:381,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:382,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:384,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:384,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:386,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:389,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:389,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:390,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:392,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:393,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:395,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:398,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:399,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:400,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:401,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:402,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:403,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:405,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:406,1
    - Dst: s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:407,1
    - Dst: S2ClosestCellQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:410,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:410,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:411,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - ' factory'
    - num_indexes
    - num_cells
    - num_queries
    - bitgen
    argTypes:
    - CellIndexFactory
    - int
    - int
    - int
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 327
    functionDepth: 7
    functionLinenumber: 327
    functionLinenumberEnd: 414
    functionName: TestWithIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 3
    functionsReached:
    - auto::Build
    - s2random::Point
    - absl::Bernoulli
    - S2CellId
    - S2RegionCoverer::mutable_options
    - vector::back
    - TestFindClosestCells
    - center
    - AddCells
    - GetLevelForMaxValue
    - S2Cap
    - S1Angle::Radians
    - GetRadius
    - vector::push_back
    - auto::get
    - ABSL_DCHECK_EQ
    - std::move
    - S2LatLng
    - s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
    - S2RegionCoverer::GetCovering
    - S1Angle::radians
    - S2RegionCoverer::S2RegionCoverer
    - make_unique<S2CellIndex>
    - get
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLngRect::FromCenterSize
    - s2random::SamplePoint
    - s2random::LogUniform
    - S2ClosestCellQuery::mutable_options
    - S2ClosestCellQuery::ShapeIndexTarget::set_include_interiors
    linkageType: ''
    returnType: void
    signature: "void TestWithIndexFactory(const CellIndexFactory& factory,\n                                 int
      num_indexes, int num_cells,\n                                 int num_queries,
      absl::BitGenRef bitgen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:421,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:422,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:423,1
    - Dst: PointCloudCellIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - PointCloudCellIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, PointCloudCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:429,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:429,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:430,1
    - Dst: CapsCellIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 433
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - CapsCellIndexFactory
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, CapsCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:436,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:437,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:438,1
    - Dst: PointCloudCellIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - PointCloudCellIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, ConservativeCellDistanceIsUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:76,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:78,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:80,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:80,1
    - Dst: auto::distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:81,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:81,1
    - Dst: auto::cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:82,1
    - Dst: auto::label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:83,1
    - Dst: auto::is_empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:84,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:84,1
    - Dst: S2ClosestCellQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::label
    - auto::is_empty
    - S2CellId::None
    - auto::cell_id
    - EXPECT_TRUE
    - S2Point
    - S1ChordAngle::Infinity
    - S2CellIndex::Build
    - EXPECT_EQ
    - auto::distance
    - S2ClosestCellQuery::GetDistance
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, NoCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:92,1
    - Dst: S2ClosestCellQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:93,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:93,1
    - Dst: S2ClosestCellQuery::Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:94,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:94,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:96,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:96,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:96,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:97,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:97,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:97,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:98,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:98,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:98,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:99,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:102,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:102,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:103,1
    - Dst: S2ClosestCellQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:103,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:104,1
    - Dst: S2ClosestCellQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:104,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:107,1
    - Dst: S2ClosestCellQuery::Options::max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:107,1
    - Dst: S2ClosestCellQuery::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:108,1
    - Dst: S2ClosestCellQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:108,1
    - Dst: S2ClosestCellQuery::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:109,1
    - Dst: S2ClosestCellQuery::Options::max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:109,1
    - Dst: S2ClosestCellQuery::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestCellQuery::Options::max_results
    - S2ClosestCellQuery::GetDistance
    - S2CellId
    - EXPECT_NEAR
    - EXPECT_TRUE
    - S2ClosestCellQuery::options
    - S2ClosestCellQuery::Options::set_max_distance
    - S2ClosestCellQuery::Options::max_distance
    - S2ClosestCellQuery::Options::max_error
    - S1ChordAngle::Degrees
    - EXPECT_EQ
    - MakePointOrDie
    - S2CellIndex::Add
    - S2CellIndex::Build
    - S2ClosestCellQuery::Options::set_max_results
    - S2ClosestCellQuery::Options::set_max_error
    - S2ClosestCellQuery::IsDistanceLess
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, OptionsNotModified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:117,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:117,1
    - Dst: set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:118,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:119,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:119,1
    - Dst: S2ClosestCellQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:119,1
    - Dst: S2ClosestCellQuery::Options::set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:121,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:121,1
    - Dst: set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:122,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:123,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:123,1
    - Dst: S2ClosestCellQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:123,1
    - Dst: S2ClosestCellQuery::Options::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:125,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:125,1
    - Dst: set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:126,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:127,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:127,1
    - Dst: S2ClosestCellQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - set_conservative_max_distance
    - max_distance
    - set_inclusive_max_distance
    - S2ClosestCellQuery::Options::set_max_distance
    - S1Angle::Degrees
    - set_max_distance
    - S2ClosestCellQuery::Options::max_distance
    - S2ClosestCellQuery::Options::set_inclusive_max_distance
    - S1ChordAngle::Degrees
    - S2ClosestCellQuery::Options::set_conservative_max_distance
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, OptionsS1AngleSetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:134,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:134,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:136,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:137,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:142,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:143,1
    - Dst: S2ClosestCellQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:143,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:144,1
    - Dst: S2ClosestCellQuery::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:144,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:145,1
    - Dst: S2ClosestCellQuery::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:145,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:149,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:150,1
    - Dst: S2ClosestCellQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:151,1
    - Dst: S2ClosestCellQuery::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:151,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:152,1
    - Dst: S2ClosestCellQuery::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestCellQuery::IsDistanceLessOrEqual
    - EXPECT_TRUE
    - S2Cell
    - S1ChordAngle::Zero
    - S2ClosestCellQuery::IsDistanceLess
    - MakePointOrDie
    - S2CellIndex::Add
    - S2CellIndex::Build
    - S2ClosestCellQuery::IsConservativeDistanceLessOrEqual
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, DistanceEqualToLimit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:157,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:159,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:160,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:162,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:164,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:164,1
    - Dst: auto::distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:165,1
    - Dst: auto::cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:166,1
    - Dst: auto::label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::label
    - S2CellId::ToPoint
    - auto::cell_id
    - S1ChordAngle::Zero
    - MakeCellIdOrDie
    - S2CellIndex::Add
    - S2CellIndex::Build
    - EXPECT_EQ
    - auto::distance
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, TargetPointInsideIndexedCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:172,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:173,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:176,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:176,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:178,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:180,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:180,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:183,1
    - Dst: S2ClosestCellQuery::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestCellQuery::FindClosestCells
    - S1Angle::Radians
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2random::CellId
    - S2CellIndex::Add
    - S2CellIndex::Build
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - S2ClosestCellQuery::mutable_options
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, EmptyTargetOptimized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:194,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:194,1
    - Dst: S2ClosestCellQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:194,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:197,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:197,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:200,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:200,1
    - Dst: S2ClosestCellQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - MakeCellIdOrDie
    - S2CellIndex::Add
    - S1ChordAngle::Infinity
    - S2CellIndex::Build
    - EXPECT_EQ
    - S2ClosestCellQuery::GetDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, EmptyCellUnionTarget)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: ~CellIndexFactory()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~CellIndexFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:221,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:221,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' index_cap'
    - num_cells
    - bitgen
    - index
    argTypes:
    - S2Cap
    - int
    - absl::BitGenRef
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: PointCloudCellIndexFactory::AddCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - s2random::SamplePoint
    - S2CellIndex*::Add
    - S2CellId
    linkageType: ''
    returnType: void
    signature: "void AddCells(const S2Cap& index_cap, int num_cells, absl::BitGenRef
      bitgen,\n                S2CellIndex* index) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - max_cells_per_cap
    - cap_density
    argTypes:
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: CapsCellIndexFactory::CapsCellIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CapsCellIndexFactory(int max_cells_per_cap, double cap_density)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:244,1
    - Dst: S2Cap::FromCenterArea
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:248,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:248,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:249,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:250,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:251,1
    - Dst: S2CellIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:252,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' index_cap'
    - num_cells
    - bitgen
    - index
    argTypes:
    - S2Cap
    - int
    - absl::BitGenRef
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 239
    functionDepth: 7
    functionLinenumber: 239
    functionLinenumberEnd: 254
    functionName: CapsCellIndexFactory::AddCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::FromCenterArea
    - S2RegionCoverer::mutable_options
    - GetArea
    - s2random::SamplePoint
    - S2RegionCoverer::GetCovering
    - S2CellIndex*::Add
    - s2random::LogUniform
    - S2RegionCoverer::S2RegionCoverer
    linkageType: ''
    returnType: void
    signature: "void AddCells(const S2Cap& index_cap, int num_cells, absl::BitGenRef
      bitgen,\n                S2CellIndex* index) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery*::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:272,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:273,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:273,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:273,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:274,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:275,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:277,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:277,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:277,1
    - Dst: S2ClosestCellQuery*::index
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:278,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:279,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:283,1
    - Dst: S2Region*::MayIntersect
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:283,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:283,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:283,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:286,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:286,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:286,1
    - Dst: vector<TestingResult>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:287,1
    - Dst: TestingResult
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:287,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:288,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:288,1
    - Dst: label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - target
    - query
    - results
    argTypes:
    - S2ClosestCellQuery::Target*
    - S2ClosestCellQuery*
    - vector<TestingResult>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 290
    functionName: GetClosestCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 1
    functionsReached:
    - vector<TestingResult>*::push_back
    - S2ClosestCellQuery*::options
    - S2ClosestCellQuery*::index
    - EXPECT_TRUE
    - EXPECT_LT
    - min
    - TestingResult
    - auto::size
    - S2ClosestCellQuery*::FindClosestCells
    - label
    - cell_id
    - S1ChordAngle::Infinity
    - EXPECT_LE
    - S2Cell
    - EXPECT_EQ
    - distance
    - S2Region*::MayIntersect
    linkageType: ''
    returnType: void
    signature: "void GetClosestCells(S2ClosestCellQuery::Target* target,\n                            S2ClosestCellQuery*
      query,\n                            vector<TestingResult>* results)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:295,1
    - Dst: GetClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:296,1
    - Dst: S2ClosestCellQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:297,1
    - Dst: GetClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:298,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:299,1
    - Dst: CheckDistanceResults
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:299,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:300,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:301,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:302,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:303,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:304,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:305,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:307,1
    - Dst: S2ClosestCellQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:315,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:317,1
    - Dst: S2ClosestCellQuery*::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:317,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:320,1
    - Dst: S2ClosestCellQuery*::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:320,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:321,1
    - Dst: S2ClosestCellQuery*::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - target
    - query
    argTypes:
    - S2ClosestCellQuery::Target*
    - S2ClosestCellQuery*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 322
    functionName: TestFindClosestCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_FALSE
    - S2ClosestCellQuery*::options
    - EXPECT_TRUE
    - S2ClosestCellQuery*::GetDistance
    - S2ClosestCellQuery*::IsConservativeDistanceLessOrEqual
    - vector::empty
    - GetClosestCells
    - EXPECT_LE
    - S2ClosestCellQuery*::IsDistanceLess
    - S2ClosestCellQuery*::mutable_options
    - CheckDistanceResults
    linkageType: ''
    returnType: void
    signature: "void TestFindClosestCells(S2ClosestCellQuery::Target* target,\n                                 S2ClosestCellQuery
      *query)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:334,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:334,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:334,1
    - Dst: make_unique<S2CellIndex>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:335,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:336,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:336,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:336,1
    - Dst: auto::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:337,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:338,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:338,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:341,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:346,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:347,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:348,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:352,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:353,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:353,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:356,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:357,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:358,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:360,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:363,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:363,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:364,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:364,1
    - Dst: S2LatLngRect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:366,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:367,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:367,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:368,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:368,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:369,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:370,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:371,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:373,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:376,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:378,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:381,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:382,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:384,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:384,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:386,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:389,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:389,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:390,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:392,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:393,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:395,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:398,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:399,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:400,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:401,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:402,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:403,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:405,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:406,1
    - Dst: s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:407,1
    - Dst: S2ClosestCellQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:410,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:410,1
    - Dst: TestFindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:411,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - ' factory'
    - num_indexes
    - num_cells
    - num_queries
    - bitgen
    argTypes:
    - CellIndexFactory
    - int
    - int
    - int
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 327
    functionDepth: 7
    functionLinenumber: 327
    functionLinenumberEnd: 414
    functionName: TestWithIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 6
    functionsReached:
    - auto::Build
    - s2random::Point
    - absl::Bernoulli
    - S2CellId
    - S2RegionCoverer::mutable_options
    - vector::back
    - TestFindClosestCells
    - center
    - AddCells
    - GetLevelForMaxValue
    - S2Cap
    - S1Angle::Radians
    - GetRadius
    - vector::push_back
    - auto::get
    - ABSL_DCHECK_EQ
    - std::move
    - S2LatLng
    - s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
    - S2RegionCoverer::GetCovering
    - S1Angle::radians
    - S2RegionCoverer::S2RegionCoverer
    - make_unique<S2CellIndex>
    - get
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLngRect::FromCenterSize
    - s2random::SamplePoint
    - s2random::LogUniform
    - S2ClosestCellQuery::mutable_options
    - S2ClosestCellQuery::ShapeIndexTarget::set_include_interiors
    linkageType: ''
    returnType: void
    signature: "void TestWithIndexFactory(const CellIndexFactory& factory,\n                                 int
      num_indexes, int num_cells,\n                                 int num_queries,
      absl::BitGenRef bitgen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:421,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:422,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:423,1
    - Dst: PointCloudCellIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - PointCloudCellIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, PointCloudCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:429,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:429,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:430,1
    - Dst: CapsCellIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 433
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - CapsCellIndexFactory
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, CapsCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:436,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:437,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:438,1
    - Dst: PointCloudCellIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - PointCloudCellIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestCellQuery, ConservativeCellDistanceIsUsed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:510,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:512,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bitgen
    - fraction
    argTypes:
    - absl::BitGenRef
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: FractionToRadius
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - S2Testing::KmToAngle
    - absl::GetFlag
    - s2random::LogUniform
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle FractionToRadius(absl::BitGenRef bitgen, double fraction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:516,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:516,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:516,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - ' cap'
    argTypes:
    - absl::BitGenRef
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: SampleBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 3
    functionsReached:
    - center
    - s2random::Point
    - S2::GetPointOnLine
    - GetRadius
    linkageType: ''
    returnType: S2Point
    signature: S2Point SampleBoundary(absl::BitGenRef bitgen, const S2Cap& cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::CellIterator::done
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:522,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:522,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:525,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:527,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:527,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - bitgen
    - ' index'
    argTypes:
    - absl::BitGenRef
    - S2CellIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: SampleCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - S2CellIndex::CellIterator::cell_id
    - S2CellIndex::CellIterator::Next
    - S2CellIndex::CellIterator::done
    - s2random::LogUniform
    - ABSL_DCHECK_GT
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId SampleCell(absl::BitGenRef bitgen, const S2CellIndex& index)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:568,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:569,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:570,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:570,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:582,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:584,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:584,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:586,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:589,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:591,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:592,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:606,1
    - Dst: S2CellIndex::Clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:608,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:610,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:611,1
    - Dst: S2ClosestCellQuery::ReInit
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:612,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:613,1
    - Dst: FractionToRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:620,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:622,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:622,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:622,1
    - Dst: FractionToRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:623,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:626,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:628,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:630,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:632,1
    - Dst: make_unique<S2ClosestCellQuery::PointTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:632,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:635,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:637,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:638,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:640,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:641,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:643,1
    - Dst: make_unique<S2ClosestCellQuery::EdgeTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:643,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:647,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:649,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:651,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:651,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:652,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:652,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:654,1
    - Dst: make_unique<S2ClosestCellQuery::CellTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:654,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:655,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:660,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:660,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:660,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:664,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:666,1
    - Dst: S2CellIndex::CellIterator::done
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:669,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:669,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:670,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:670,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:672,1
    - Dst: make_unique<S2ClosestCellQuery::CellUnionTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:672,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:673,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:673,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:676,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:679,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:679,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:679,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:681,1
    - Dst: FractalLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:682,1
    - Dst: auto::ForceBuild
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:684,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:685,1
    - Dst: make_unique<S2ClosestCellQuery::ShapeIndexTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:685,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:687,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:687,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:690,1
    - Dst: S2ClosestCellQuery::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:692,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:692,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:693,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:694,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:696,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:696,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:697,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:697,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 11
    argNames:
    - ' state'
    - ' factory'
    - num_index_cells
    - max_results
    - max_distance_fraction
    - max_error_fraction
    - target_type
    - num_target_objects
    - choose_target_from_index
    - target_radius_fraction
    - center_separation_fraction
    argTypes:
    - benchmark::State
    - CellIndexFactory
    - int
    - int
    - double
    - double
    - TargetType
    - int
    - bool
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 698
    functionName: BenchmarkFindClosest
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - S2CellId
    - S2ClosestCellQuery::FindClosestCells
    - static_cast<double>
    - FractalLoopShapeIndexFactory
    - S2CellIndex::CellIterator::done
    - SetLabel
    - vector::size
    - ABSL_DCHECK
    - FractionToRadius
    - absl::StrFormat
    - S2CellIndex::Clear
    - S2CellIndex::CellIterator::Next
    - AddCells
    - make_unique<S2ClosestCellQuery::CellTarget>
    - S2Cap
    - S2Point::S2Point
    - GetClosestLevel
    - make_unique<S2ClosestCellQuery::CellUnionTarget>
    - make_unique<S2ClosestCellQuery::PointTarget>
    - S2Cell
    - S2Cap::radius
    - S2CellUnion
    - auto::ForceBuild
    - S2CellIndex::CellIterator::cell_id
    - vector::push_back
    - make_unique<MutableS2ShapeIndex>
    - SampleBoundary
    - std::string::end
    - ResumeTiming
    - std::move
    - SampleCell
    - iterations
    - S2Testing::KmToAngle
    - S2CellId::S2CellId
    - S2CellIndex::Build
    - std::string::begin
    - make_unique<S2ClosestCellQuery::EdgeTarget>
    - S2Cap::GetRadius
    - vector::clear
    - PauseTiming
    - get
    - absl::StrCat
    - make_unique<S2ClosestCellQuery::ShapeIndexTarget>
    - S2ClosestCellQuery::mutable_options
    - absl::GetFlag
    - S2ClosestCellQuery::ReInit
    linkageType: ''
    returnType: void
    signature: "void BenchmarkFindClosest(\n    benchmark::State& state, const CellIndexFactory&
      factory,\n    int num_index_cells, int max_results, double max_distance_fraction,\n
      \   double max_error_fraction, TargetType target_type, int num_target_objects,\n
      \   bool choose_target_from_index, double target_radius_fraction,\n    double
      center_separation_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:714,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:715,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 717
    functionName: BM_FindClosest
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosest(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:725,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:726,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: BM_FindClosestWhenZero
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestWhenZero(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:737,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:738,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:742,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:742,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:743,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 745
    functionName: BM_IsDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLess(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:758,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:759,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:760,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:760,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:762,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 765
    functionName: BM_FindCellsNearby
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearby(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:777,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:778,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: BM_FindClosestToLongEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToLongEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:787,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:788,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 790
    functionName: BM_FindClosestWhenZeroToLongEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestWhenZeroToLongEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:796,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:797,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:798,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:798,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:799,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 801
    functionName: BM_IsDistanceLessToLongEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToLongEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:810,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:811,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:812,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:812,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:814,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 817
    functionName: BM_FindCellsNearbyLongEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbyLongEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:826,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:827,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 829
    functionName: BM_FindClosestToSmallCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:836,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:837,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 839
    functionName: BM_FindClosestWhenZeroToSmallCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestWhenZeroToSmallCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:845,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:846,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:847,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:847,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:848,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 850
    functionName: BM_IsDistanceLessToSmallCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:859,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:860,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:861,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:861,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:863,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 866
    functionName: BM_FindCellsNearbySmallCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:878,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:879,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_cells
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 882
    functionName: BM_FindClosestToSmallCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestToSmallCellUnion(benchmark::State& state,\n                                           int
      num_target_cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 887
    functionName: BM_FindClosestToSmallCoarseCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestToSmallCellUnion
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallCoarseCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: BM_FindClosestToSmallFineCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestToSmallCellUnion
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallFineCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:903,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:904,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_cells
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 907
    functionName: BM_FindClosestWhenZeroToSmallCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallCellUnion(benchmark::State& state,\n
      \                                                  int num_target_cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestWhenZeroToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 913
    functionName: BM_FindClosestWhenZeroToSmallCoarseCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestWhenZeroToSmallCellUnion
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallCoarseCellUnion(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestWhenZeroToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 921
    functionName: BM_FindClosestWhenZeroToSmallFineCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestWhenZeroToSmallCellUnion
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallFineCellUnion(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:930,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:930,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:931,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' state'
    - num_cells
    - num_target_cells
    - log2_num_results
    argTypes:
    - benchmark::State
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 934
    functionName: BM_IsDistanceLessToSmallCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - Factory
    - pow
    - BenchmarkFindClosest
    - sqrt
    linkageType: ''
    returnType: void
    signature: "void BM_IsDistanceLessToSmallCellUnion(benchmark::State& state,\n
      \                                             int num_cells,\n                                              int
      num_target_cells,\n                                              int log2_num_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:938,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:939,1
    - Dst: BM_IsDistanceLessToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 942
    functionName: BM_IsDistanceLessToSmallCoarseCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_IsDistanceLessToSmallCellUnion
    - range
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallCoarseCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:950,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:951,1
    - Dst: BM_IsDistanceLessToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 954
    functionName: BM_IsDistanceLessToSmallFineCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_IsDistanceLessToSmallCellUnion
    - range
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallFineCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:963,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:964,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:965,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:965,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:967,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_cells
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 970
    functionName: BM_FindCellsNearbySmallCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindCellsNearbySmallCellUnion(benchmark::State& state,\n                                             int
      num_target_cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindCellsNearbySmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 975
    functionName: BM_FindCellsNearbySmallCoarseCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindCellsNearbySmallCellUnion
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallCoarseCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindCellsNearbySmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 982
    functionName: BM_FindCellsNearbySmallFineCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindCellsNearbySmallCellUnion
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallFineCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:995,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:996,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_edges
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 999
    functionName: BM_FindClosestToSmallShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestToSmallShapeIndex(benchmark::State& state,\n                                            int
      num_target_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1004
    functionName: BM_FindClosestToSmallCoarseShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallCoarseShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1012
    functionName: BM_FindClosestToSmallFineShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallFineShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1020,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1021,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_edges
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1024
    functionName: BM_FindClosestWhenZeroToSmallShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallShapeIndex(benchmark::State& state,\n
      \                                                   int num_target_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestWhenZeroToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1030
    functionName: BM_FindClosestWhenZeroToSmallCoarseShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestWhenZeroToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallCoarseShapeIndex(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestWhenZeroToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1038
    functionName: BM_FindClosestWhenZeroToSmallFineShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestWhenZeroToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallFineShapeIndex(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1045,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1046,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1047,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1047,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1048,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_edges
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1051
    functionName: BM_IsDistanceLessToSmallShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_IsDistanceLessToSmallShapeIndex(benchmark::State& state,\n
      \                                              int num_target_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_IsDistanceLessToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1056
    functionName: BM_IsDistanceLessToSmallCoarseShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_IsDistanceLessToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallCoarseShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_IsDistanceLessToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1065
    functionName: BM_IsDistanceLessToSmallFineShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_IsDistanceLessToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallFineShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1074,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1075,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1076,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1076,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1078,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_edges
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1081
    functionName: BM_FindCellsNearbySmallShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindCellsNearbySmallShapeIndex(benchmark::State& state,\n
      \                                             int num_target_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindCellsNearbySmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1086
    functionName: BM_FindCellsNearbySmallCoarseShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindCellsNearbySmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallCoarseShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindCellsNearbySmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1093
    functionName: BM_FindCellsNearbySmallFineShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindCellsNearbySmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallFineShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1108
    functionName: CoarseCaps::CoarseCaps
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CoarseCaps()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:510,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:512,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bitgen
    - fraction
    argTypes:
    - absl::BitGenRef
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: FractionToRadius
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 3
    functionsReached:
    - S2Testing::KmToAngle
    - absl::GetFlag
    - s2random::LogUniform
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle FractionToRadius(absl::BitGenRef bitgen, double fraction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:516,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:516,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:516,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - ' cap'
    argTypes:
    - absl::BitGenRef
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: SampleBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 4
    functionsReached:
    - center
    - s2random::Point
    - S2::GetPointOnLine
    - GetRadius
    linkageType: ''
    returnType: S2Point
    signature: S2Point SampleBoundary(absl::BitGenRef bitgen, const S2Cap& cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::CellIterator::done
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:522,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:522,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:525,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:527,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:527,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - bitgen
    - ' index'
    argTypes:
    - absl::BitGenRef
    - S2CellIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: SampleCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 3
    functionsReached:
    - S2CellIndex::CellIterator::cell_id
    - S2CellIndex::CellIterator::Next
    - S2CellIndex::CellIterator::done
    - s2random::LogUniform
    - ABSL_DCHECK_GT
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId SampleCell(absl::BitGenRef bitgen, const S2CellIndex& index)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:568,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:569,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:570,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:570,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:582,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:584,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:584,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:586,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:589,1
    - Dst: S2ClosestCellQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:591,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:592,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:606,1
    - Dst: S2CellIndex::Clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:608,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:610,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:611,1
    - Dst: S2ClosestCellQuery::ReInit
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:612,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:613,1
    - Dst: FractionToRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:620,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:622,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:622,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:622,1
    - Dst: FractionToRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:623,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:626,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:628,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:630,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:632,1
    - Dst: make_unique<S2ClosestCellQuery::PointTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:632,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:635,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:637,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:638,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:640,1
    - Dst: SampleBoundary
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:641,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:643,1
    - Dst: make_unique<S2ClosestCellQuery::EdgeTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:643,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:647,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:649,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:651,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:651,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:652,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:652,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:654,1
    - Dst: make_unique<S2ClosestCellQuery::CellTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:654,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:655,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:660,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:660,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:660,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:664,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:666,1
    - Dst: S2CellIndex::CellIterator::done
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:669,1
    - Dst: S2CellIndex::CellIterator::Next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:669,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:670,1
    - Dst: S2CellIndex::CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:670,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:672,1
    - Dst: make_unique<S2ClosestCellQuery::CellUnionTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:672,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:673,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:673,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:676,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:679,1
    - Dst: SampleCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:679,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:679,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:681,1
    - Dst: FractalLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:682,1
    - Dst: auto::ForceBuild
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:684,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:685,1
    - Dst: make_unique<S2ClosestCellQuery::ShapeIndexTarget>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:685,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:687,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:687,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:690,1
    - Dst: S2ClosestCellQuery::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:692,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:692,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:693,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:694,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:696,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:696,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:697,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:697,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 11
    argNames:
    - ' state'
    - ' factory'
    - num_index_cells
    - max_results
    - max_distance_fraction
    - max_error_fraction
    - target_type
    - num_target_objects
    - choose_target_from_index
    - target_radius_fraction
    - center_separation_fraction
    argTypes:
    - benchmark::State
    - CellIndexFactory
    - int
    - int
    - double
    - double
    - TargetType
    - int
    - bool
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 698
    functionName: BenchmarkFindClosest
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 20
    functionsReached:
    - S2Cap::center
    - S2CellId
    - S2ClosestCellQuery::FindClosestCells
    - static_cast<double>
    - FractalLoopShapeIndexFactory
    - S2CellIndex::CellIterator::done
    - SetLabel
    - vector::size
    - ABSL_DCHECK
    - FractionToRadius
    - absl::StrFormat
    - S2CellIndex::Clear
    - S2CellIndex::CellIterator::Next
    - AddCells
    - make_unique<S2ClosestCellQuery::CellTarget>
    - S2Cap
    - S2Point::S2Point
    - GetClosestLevel
    - make_unique<S2ClosestCellQuery::CellUnionTarget>
    - make_unique<S2ClosestCellQuery::PointTarget>
    - S2Cell
    - S2Cap::radius
    - S2CellUnion
    - auto::ForceBuild
    - S2CellIndex::CellIterator::cell_id
    - vector::push_back
    - make_unique<MutableS2ShapeIndex>
    - SampleBoundary
    - std::string::end
    - ResumeTiming
    - std::move
    - SampleCell
    - iterations
    - S2Testing::KmToAngle
    - S2CellId::S2CellId
    - S2CellIndex::Build
    - std::string::begin
    - make_unique<S2ClosestCellQuery::EdgeTarget>
    - S2Cap::GetRadius
    - vector::clear
    - PauseTiming
    - get
    - absl::StrCat
    - make_unique<S2ClosestCellQuery::ShapeIndexTarget>
    - S2ClosestCellQuery::mutable_options
    - absl::GetFlag
    - S2ClosestCellQuery::ReInit
    linkageType: ''
    returnType: void
    signature: "void BenchmarkFindClosest(\n    benchmark::State& state, const CellIndexFactory&
      factory,\n    int num_index_cells, int max_results, double max_distance_fraction,\n
      \   double max_error_fraction, TargetType target_type, int num_target_objects,\n
      \   bool choose_target_from_index, double target_radius_fraction,\n    double
      center_separation_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:714,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:715,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 717
    functionName: BM_FindClosest
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosest(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:725,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:726,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: BM_FindClosestWhenZero
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestWhenZero(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:737,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:738,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:742,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:742,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:743,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 745
    functionName: BM_IsDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLess(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:758,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:759,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:760,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:760,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:762,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 765
    functionName: BM_FindCellsNearby
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearby(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:777,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:778,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: BM_FindClosestToLongEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToLongEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:787,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:788,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 790
    functionName: BM_FindClosestWhenZeroToLongEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestWhenZeroToLongEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:796,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:797,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:798,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:798,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:799,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 801
    functionName: BM_IsDistanceLessToLongEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToLongEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:810,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:811,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:812,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:812,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:814,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 817
    functionName: BM_FindCellsNearbyLongEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbyLongEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:826,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:827,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 829
    functionName: BM_FindClosestToSmallCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:836,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:837,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 839
    functionName: BM_FindClosestWhenZeroToSmallCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestWhenZeroToSmallCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:845,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:846,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:847,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:847,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:848,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 850
    functionName: BM_IsDistanceLessToSmallCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:859,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:860,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:861,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:861,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:863,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 866
    functionName: BM_FindCellsNearbySmallCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:878,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:879,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_cells
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 882
    functionName: BM_FindClosestToSmallCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestToSmallCellUnion(benchmark::State& state,\n                                           int
      num_target_cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 887
    functionName: BM_FindClosestToSmallCoarseCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestToSmallCellUnion
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallCoarseCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: BM_FindClosestToSmallFineCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestToSmallCellUnion
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallFineCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:903,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:904,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_cells
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 907
    functionName: BM_FindClosestWhenZeroToSmallCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallCellUnion(benchmark::State& state,\n
      \                                                  int num_target_cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestWhenZeroToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 913
    functionName: BM_FindClosestWhenZeroToSmallCoarseCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestWhenZeroToSmallCellUnion
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallCoarseCellUnion(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestWhenZeroToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 921
    functionName: BM_FindClosestWhenZeroToSmallFineCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestWhenZeroToSmallCellUnion
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallFineCellUnion(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:930,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:930,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:931,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' state'
    - num_cells
    - num_target_cells
    - log2_num_results
    argTypes:
    - benchmark::State
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 934
    functionName: BM_IsDistanceLessToSmallCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - Factory
    - pow
    - BenchmarkFindClosest
    - sqrt
    linkageType: ''
    returnType: void
    signature: "void BM_IsDistanceLessToSmallCellUnion(benchmark::State& state,\n
      \                                             int num_cells,\n                                              int
      num_target_cells,\n                                              int log2_num_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:938,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:939,1
    - Dst: BM_IsDistanceLessToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 942
    functionName: BM_IsDistanceLessToSmallCoarseCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_IsDistanceLessToSmallCellUnion
    - range
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallCoarseCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:950,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:951,1
    - Dst: BM_IsDistanceLessToSmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 954
    functionName: BM_IsDistanceLessToSmallFineCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_IsDistanceLessToSmallCellUnion
    - range
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallFineCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:963,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:964,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:965,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:965,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:967,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_cells
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 970
    functionName: BM_FindCellsNearbySmallCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindCellsNearbySmallCellUnion(benchmark::State& state,\n                                             int
      num_target_cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindCellsNearbySmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 975
    functionName: BM_FindCellsNearbySmallCoarseCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindCellsNearbySmallCellUnion
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallCoarseCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindCellsNearbySmallCellUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 982
    functionName: BM_FindCellsNearbySmallFineCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindCellsNearbySmallCellUnion
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallFineCellUnion(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:995,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:996,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_edges
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 999
    functionName: BM_FindClosestToSmallShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestToSmallShapeIndex(benchmark::State& state,\n                                            int
      num_target_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1004
    functionName: BM_FindClosestToSmallCoarseShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallCoarseShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1012
    functionName: BM_FindClosestToSmallFineShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallFineShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1020,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1021,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_edges
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1024
    functionName: BM_FindClosestWhenZeroToSmallShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallShapeIndex(benchmark::State& state,\n
      \                                                   int num_target_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestWhenZeroToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1030
    functionName: BM_FindClosestWhenZeroToSmallCoarseShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestWhenZeroToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallCoarseShapeIndex(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindClosestWhenZeroToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1038
    functionName: BM_FindClosestWhenZeroToSmallFineShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindClosestWhenZeroToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: "void BM_FindClosestWhenZeroToSmallFineShapeIndex(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1045,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1046,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1047,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1047,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1048,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_edges
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1051
    functionName: BM_IsDistanceLessToSmallShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_IsDistanceLessToSmallShapeIndex(benchmark::State& state,\n
      \                                              int num_target_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_IsDistanceLessToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1056
    functionName: BM_IsDistanceLessToSmallCoarseShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_IsDistanceLessToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallCoarseShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_IsDistanceLessToSmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1065
    functionName: BM_IsDistanceLessToSmallFineShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_IsDistanceLessToSmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessToSmallFineShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1074,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1075,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1076,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1076,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1078,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - num_target_edges
    argTypes:
    - benchmark::State
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1081
    functionName: BM_FindCellsNearbySmallShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 2
    functionsReached:
    - BenchmarkFindClosest
    - range
    - sqrt
    - pow
    - Factory
    linkageType: ''
    returnType: void
    signature: "void BM_FindCellsNearbySmallShapeIndex(benchmark::State& state,\n
      \                                             int num_target_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindCellsNearbySmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1086
    functionName: BM_FindCellsNearbySmallCoarseShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindCellsNearbySmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallCoarseShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_FindCellsNearbySmallShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_cell_query_test.cc:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1093
    functionName: BM_FindCellsNearbySmallFineShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached:
    - BM_FindCellsNearbySmallShapeIndex
    linkageType: ''
    returnType: void
    signature: void BM_FindCellsNearbySmallFineShapeIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1108
    functionName: CoarseCaps::CoarseCaps
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CoarseCaps()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:44,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: S2MinDistancePointTarget::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2Cap
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2MinDistancePointTarget::GetCapBound()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:49,1
    - Dst: S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:49,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - min_dist
    argTypes:
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: S2MinDistancePointTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle
    - S2MinDistance
    - S2MinDistance*::UpdateMin
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistancePointTarget::UpdateMinDistance(\n    const S2Point&
      p, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' v0'
    - ' v1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: S2MinDistancePointTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistancePointTarget::UpdateMinDistance(\n    const S2Point&
      v0, const S2Point& v1, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:59,1
    - Dst: S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:59,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' cell'
    - min_dist
    argTypes:
    - S2Cell
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: S2MinDistancePointTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MinDistance
    - S2MinDistance*::UpdateMin
    - GetDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistancePointTarget::UpdateMinDistance(\n    const S2Cell&
      cell, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:66,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(int shape_id, const S2Point& target_point)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: S2MinDistancePointTarget::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - visitor
    - S2ContainsPointQuery
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistancePointTarget::VisitContainingShapeIds(\n    const
      S2ShapeIndex& index,\n    absl::FunctionRef<bool(int shape_id, const S2Point&
      target_point)>\n        visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:74,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:75,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:76,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:76,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: S2MinDistanceEdgeTarget::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::FromLength2
    - S2Cap
    - sqrt
    - Normalize
    - S1ChordAngle
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2MinDistanceEdgeTarget::GetCapBound()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - min_dist
    argTypes:
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: S2MinDistanceEdgeTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceEdgeTarget::UpdateMinDistance(\n    const S2Point&
      p, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' v0'
    - ' v1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 6
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: S2MinDistanceEdgeTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2::UpdateEdgePairMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceEdgeTarget::UpdateMinDistance(\n    const S2Point&
      v0, const S2Point& v1, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:91,1
    - Dst: S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:91,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' cell'
    - min_dist
    argTypes:
    - S2Cell
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: S2MinDistanceEdgeTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MinDistance
    - S2MinDistance*::UpdateMin
    - GetDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceEdgeTarget::UpdateMinDistance(\n    const S2Cell&
      cell, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:102,1
    - Dst: S2MinDistancePointTarget::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(int shape_id, const S2Point& target_point)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: S2MinDistanceEdgeTarget::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MinDistancePointTarget::VisitContainingShapeIds
    - Normalize
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceEdgeTarget::VisitContainingShapeIds(\n    const
      S2ShapeIndex& index,\n    absl::FunctionRef<bool(int shape_id, const S2Point&
      target_point)>\n        visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: S2MinDistanceCellTarget::S2MinDistanceCellTarget
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MinDistanceCellTarget::S2MinDistanceCellTarget(const S2Cell&
      cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistanceCellTarget::GetCapBound
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: S2MinDistanceCellTarget::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 1
    functionsReached:
    - S2MinDistanceCellTarget::GetCapBound
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2MinDistanceCellTarget::GetCapBound()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:116,1
    - Dst: S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:116,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - min_dist
    argTypes:
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: S2MinDistanceCellTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MinDistance
    - S2MinDistance*::UpdateMin
    - GetDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellTarget::UpdateMinDistance(const S2Point& p,\n
      \                                               S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:121,1
    - Dst: S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:121,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' v0'
    - ' v1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: S2MinDistanceCellTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MinDistance
    - S2MinDistance*::UpdateMin
    - GetDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellTarget::UpdateMinDistance(\n    const S2Point&
      v0, const S2Point& v1, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:126,1
    - Dst: S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:126,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' cell'
    - min_dist
    argTypes:
    - S2Cell
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: S2MinDistanceCellTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MinDistance
    - S2MinDistance*::UpdateMin
    - GetDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellTarget::UpdateMinDistance(\n    const S2Cell&
      cell, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:141,1
    - Dst: S2MinDistancePointTarget::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(int shape_id, const S2Point& target_point)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 143
    functionName: S2MinDistanceCellTarget::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MinDistancePointTarget::VisitContainingShapeIds
    - GetCenter
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellTarget::VisitContainingShapeIds(\n    const
      S2ShapeIndex& index,\n    absl::FunctionRef<bool(int shape_id, const S2Point&
      target_point)>\n        visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:147,1
    - Dst: make_unique<S2ClosestCellQuery>
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:148,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:150,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cell_union
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: S2MinDistanceCellUnionTarget::S2MinDistanceCellUnionTarget
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - std::move
    - Add
    - make_unique<S2ClosestCellQuery>
    - Build
    linkageType: ''
    returnType: void
    signature: "void S2MinDistanceCellUnionTarget::S2MinDistanceCellUnionTarget(\n
      \   S2CellUnion cell_union)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: S2MinDistanceCellUnionTarget::~S2MinDistanceCellUnionTarget()
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MinDistanceCellUnionTarget::~S2MinDistanceCellUnionTarget()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: S2MinDistanceCellUnionTarget::use_brute_force
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: bool
    signature: bool S2MinDistanceCellUnionTarget::use_brute_force() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - use_brute_force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: S2MinDistanceCellUnionTarget::set_use_brute_force
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    linkageType: ''
    returnType: void
    signature: "void S2MinDistanceCellUnionTarget::set_use_brute_force(\n    bool
      use_brute_force)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' max_error'
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: S2MinDistanceCellUnionTarget::set_max_error
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellUnionTarget::set_max_error(\n    const S1ChordAngle&
      max_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistanceCellUnionTarget::GetCapBound
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: S2MinDistanceCellUnionTarget::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 1
    functionsReached:
    - S2MinDistanceCellUnionTarget::GetCapBound
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2MinDistanceCellUnionTarget::GetCapBound()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:178,1
    - Dst: FindClosestCell
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:179,1
    - Dst: S2ClosestCellQuery::Result::is_empty
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:180,1
    - Dst: S2ClosestCellQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - target
    - min_dist
    argTypes:
    - S2MinDistanceTarget*
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: S2MinDistanceCellUnionTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    - S2ClosestCellQuery::Result::is_empty
    - S2ClosestCellQuery::Result::distance
    - FindClosestCell
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellUnionTarget::UpdateMinDistance(\n    S2MinDistanceTarget*
      target, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistanceCellUnionTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - min_dist
    argTypes:
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: S2MinDistanceCellUnionTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 1
    functionsReached:
    - S2MinDistanceCellUnionTarget::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellUnionTarget::UpdateMinDistance(\n    const S2Point&
      p, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistanceCellUnionTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' v0'
    - ' v1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: S2MinDistanceCellUnionTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 2
    functionsReached:
    - S2MinDistanceCellUnionTarget::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellUnionTarget::UpdateMinDistance(\n    const S2Point&
      v0, const S2Point& v1, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistanceCellUnionTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' cell'
    - min_dist
    argTypes:
    - S2Cell
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: S2MinDistanceCellUnionTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 3
    functionsReached:
    - S2MinDistanceCellUnionTarget::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellUnionTarget::UpdateMinDistance(\n    const S2Cell&
      cell, S2MinDistance* min_dist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:208,1
    - Dst: S2MinDistancePointTarget::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' query_index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(int shape_id, const S2Point& target_point)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: S2MinDistanceCellUnionTarget::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MinDistancePointTarget::VisitContainingShapeIds
    - ToPoint
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceCellUnionTarget::VisitContainingShapeIds(\n    const
      S2ShapeIndex& query_index,\n    absl::FunctionRef<bool(int shape_id, const S2Point&
      target_point)>\n        visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2ClosestEdgeQuery>
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: S2MinDistanceShapeIndexTarget::S2MinDistanceShapeIndexTarget
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2ClosestEdgeQuery>
    linkageType: ''
    returnType: void
    signature: "void S2MinDistanceShapeIndexTarget::S2MinDistanceShapeIndexTarget(\n
      \   const S2ShapeIndex* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: S2MinDistanceShapeIndexTarget::~S2MinDistanceShapeIndexTarget()
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MinDistanceShapeIndexTarget::~S2MinDistanceShapeIndexTarget()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: S2MinDistanceShapeIndexTarget::include_interiors
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: bool
    signature: bool S2MinDistanceShapeIndexTarget::include_interiors() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - include_interiors
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: S2MinDistanceShapeIndexTarget::set_include_interiors
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    linkageType: ''
    returnType: void
    signature: "void S2MinDistanceShapeIndexTarget::set_include_interiors(\n    bool
      include_interiors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: S2MinDistanceShapeIndexTarget::use_brute_force
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: bool
    signature: bool S2MinDistanceShapeIndexTarget::use_brute_force() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - use_brute_force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: S2MinDistanceShapeIndexTarget::set_use_brute_force
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    linkageType: ''
    returnType: void
    signature: "void S2MinDistanceShapeIndexTarget::set_use_brute_force(\n    bool
      use_brute_force)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' max_error'
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: S2MinDistanceShapeIndexTarget::set_max_error
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceShapeIndexTarget::set_max_error(\n    const S1ChordAngle&
      max_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: S2MinDistanceShapeIndexTarget::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2ShapeIndexRegion
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2MinDistanceShapeIndexTarget::GetCapBound()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:252,1
    - Dst: FindClosestEdge
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:253,1
    - Dst: S2ClosestEdgeQuery::Result::is_empty
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:254,1
    - Dst: S2ClosestEdgeQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - target
    - min_dist
    argTypes:
    - S2MinDistanceTarget*
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: S2MinDistanceShapeIndexTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    - S2ClosestEdgeQuery::Result::distance
    - S2ClosestEdgeQuery::Result::is_empty
    - FindClosestEdge
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceShapeIndexTarget::UpdateMinDistance(\n    S2MinDistanceTarget*
      target, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - min_dist
    argTypes:
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: S2MinDistanceShapeIndexTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 1
    functionsReached:
    - S2MinDistanceShapeIndexTarget::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceShapeIndexTarget::UpdateMinDistance(\n    const
      S2Point& p, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' v0'
    - ' v1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: S2MinDistanceShapeIndexTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 2
    functionsReached:
    - S2MinDistanceShapeIndexTarget::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceShapeIndexTarget::UpdateMinDistance(\n    const
      S2Point& v0, const S2Point& v1, S2MinDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' cell'
    - min_dist
    argTypes:
    - S2Cell
    - S2MinDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: S2MinDistanceShapeIndexTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 3
    functionsReached:
    - S2MinDistanceShapeIndexTarget::UpdateMinDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceShapeIndexTarget::UpdateMinDistance(\n    const
      S2Cell& cell, S2MinDistance* min_dist)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:290,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:294,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:297,1
    - Dst: S2MinDistancePointTarget::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:299,1
    - Dst: GetReferencePoint
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:305,1
    - Dst: S2MinDistancePointTarget::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2min_distance_targets.cc:308,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - ' query_index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(int shape_id, const S2Point& target_point)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 314
    functionName: S2MinDistanceShapeIndexTarget::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MinDistancePointTarget::VisitContainingShapeIds
    - GetReferencePoint
    - chain_edge
    - num_chains
    - chain
    linkageType: ''
    returnType: bool
    signature: "bool S2MinDistanceShapeIndexTarget::VisitContainingShapeIds(\n    const
      S2ShapeIndex& query_index,\n    absl::FunctionRef<bool(int shape_id, const S2Point&
      target_point)>\n        visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxLoopShape::S2LaxLoopShape
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:41,1
    - Dst: S2LaxLoopShape::Init
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:42,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:42,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:43,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:44,1
    - Dst: S2LaxLoopShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:45,1
    - Dst: S2LaxLoopShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:46,1
    - Dst: S2LaxLoopShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:46,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:47,1
    - Dst: S2LaxLoopShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:47,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:48,1
    - Dst: S2LaxLoopShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:48,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:49,1
    - Dst: S2LaxLoopShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxLoopShape::S2LaxLoopShape
    - EXPECT_FALSE
    - S2Loop
    - S2LaxLoopShape::is_full
    - S2LaxLoopShape::dimension
    - EXPECT_TRUE
    - S2LaxLoopShape::GetReferencePoint
    - S2LaxLoopShape::num_vertices
    - S2LaxLoopShape::Init
    - S2Loop::kEmpty
    - EXPECT_EQ
    - S2LaxLoopShape::is_empty
    - S2LaxLoopShape::num_edges
    - S2LaxLoopShape::num_chains
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxLoopShape, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:56,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:62,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:63,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:63,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:63,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:65,1
    - Dst: S2LaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:65,1
    - Dst: S2LaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:65,1
    - Dst: S2LaxLoopShape::S2LaxLoopShape
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:70,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:71,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:72,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:72,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:72,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:74,1
    - Dst: S2LaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:74,1
    - Dst: S2LaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 76
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - ASSERT_EQ
    - S2LaxLoopShape::S2LaxLoopShape
    - std::move
    - S2LaxLoopShape::num_vertices
    - s2textformat::ParsePointsOrDie
    - EXPECT_EQ
    - S2LaxLoopShape::vertex
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxLoopShape, Move)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:83,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:83,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:84,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:84,1
    - Dst: S2LaxLoopShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:85,1
    - Dst: S2LaxLoopShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:86,1
    - Dst: S2LaxLoopShape::chain
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:87,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:87,1
    - Dst: S2LaxLoopShape::chain
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:87,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:89,1
    - Dst: S2LaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:89,1
    - Dst: S2LaxLoopShape::edge
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:92,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:94,1
    - Dst: S2LaxLoopShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:94,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:95,1
    - Dst: S2LaxLoopShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:95,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:96,1
    - Dst: S2LaxLoopShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:97,1
    - Dst: S2LaxLoopShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxLoopShape::edge
    - EXPECT_FALSE
    - S2LaxLoopShape::is_full
    - S2LaxLoopShape::dimension
    - S2LaxLoopShape::GetReferencePoint
    - S2LaxLoopShape::chain
    - S2LaxLoopShape::num_vertices
    - s2textformat::ParsePointsOrDie
    - S2LaxLoopShape::vertex
    - EXPECT_EQ
    - S2LaxLoopShape::is_empty
    - vector::size
    - S2LaxLoopShape::num_edges
    - S2LaxLoopShape::num_chains
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxLoopShape, NonEmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:104,1
    - Dst: S2LaxClosedPolylineShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:104,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:105,1
    - Dst: S2LaxClosedPolylineShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:105,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:106,1
    - Dst: S2LaxClosedPolylineShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:106,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:107,1
    - Dst: S2LaxClosedPolylineShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxClosedPolylineShape::GetReferencePoint
    - S2LaxClosedPolylineShape::is_full
    - s2textformat::ParsePointsOrDie
    - S2LaxClosedPolylineShape::dimension
    - S2LaxClosedPolylineShape::is_empty
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LaxClosedPolylineShape, NoInterior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:112,1
    - Dst: S2VertexIdLaxLoopShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:113,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:114,1
    - Dst: S2VertexIdLaxLoopShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:115,1
    - Dst: S2VertexIdLaxLoopShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:115,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:116,1
    - Dst: S2VertexIdLaxLoopShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:116,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:117,1
    - Dst: S2VertexIdLaxLoopShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:117,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:118,1
    - Dst: S2VertexIdLaxLoopShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2VertexIdLaxLoopShape::num_edges
    - S2VertexIdLaxLoopShape::is_full
    - EXPECT_TRUE
    - S2VertexIdLaxLoopShape::GetReferencePoint
    - S2VertexIdLaxLoopShape::num_vertices
    - S2VertexIdLaxLoopShape::num_chains
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2VertexIdLaxLoopShape::dimension
    - S2VertexIdLaxLoopShape::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2VertexIdLaxLoopShape, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:125,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:132,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:133,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:133,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:133,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:135,1
    - Dst: S2VertexIdLaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:135,1
    - Dst: S2VertexIdLaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:135,1
    - Dst: S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:139,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:140,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:141,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:142,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:142,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:142,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:144,1
    - Dst: S2VertexIdLaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:144,1
    - Dst: S2VertexIdLaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 146
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - ASSERT_EQ
    - std::move
    - S2VertexIdLaxLoopShape::vertex
    - s2textformat::ParsePointsOrDie
    - S2VertexIdLaxLoopShape::num_vertices
    - EXPECT_EQ
    - S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2VertexIdLaxLoopShape, Move)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:153,1
    - Dst: S2VertexIdLaxLoopShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:154,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:155,1
    - Dst: S2VertexIdLaxLoopShape::num_chains
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:156,1
    - Dst: S2VertexIdLaxLoopShape::chain
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:157,1
    - Dst: S2VertexIdLaxLoopShape::chain
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:158,1
    - Dst: S2VertexIdLaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:159,1
    - Dst: S2VertexIdLaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:160,1
    - Dst: S2VertexIdLaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:161,1
    - Dst: S2VertexIdLaxLoopShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:162,1
    - Dst: S2VertexIdLaxLoopShape::dimension
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:163,1
    - Dst: S2VertexIdLaxLoopShape::is_empty
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:164,1
    - Dst: S2VertexIdLaxLoopShape::is_full
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:165,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:165,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2VertexIdLaxLoopShape::num_edges
    - S2::Origin
    - S2VertexIdLaxLoopShape::is_full
    - EXPECT_TRUE
    - S2VertexIdLaxLoopShape::vertex
    - S2VertexIdLaxLoopShape::chain
    - s2textformat::ParsePointsOrDie
    - S2VertexIdLaxLoopShape::num_vertices
    - S2VertexIdLaxLoopShape::num_chains
    - s2shapeutil::ContainsBruteForce
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2VertexIdLaxLoopShape::dimension
    - S2VertexIdLaxLoopShape::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2VertexIdLaxLoopShape, InvertedLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:42,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: S2MaxDistancePointTarget::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2Cap
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2MaxDistancePointTarget::GetCapBound()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:47,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:47,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - min_dist
    argTypes:
    - S2Point
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: S2MaxDistancePointTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistance*::UpdateMin
    - S1ChordAngle
    - S2MaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistancePointTarget::UpdateMinDistance(\n    const S2Point&
      p, S2MaxDistance* min_dist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:53,1
    - Dst: S2MaxDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:54,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' v0'
    - ' v1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: S2MaxDistancePointTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistance*::UpdateMin
    - S2::UpdateMaxDistance
    - S2MaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistancePointTarget::UpdateMinDistance(\n    const S2Point&
      v0, const S2Point& v1, S2MaxDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:62,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:62,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' cell'
    - min_dist
    argTypes:
    - S2Cell
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: S2MaxDistancePointTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistance*::UpdateMin
    - GetMaxDistance
    - S2MaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistancePointTarget::UpdateMinDistance(\n    const S2Cell&
      cell, S2MaxDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:71,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(int id, const S2Point& target)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: S2MaxDistancePointTarget::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - visitor
    - S2ContainsPointQuery
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistancePointTarget::VisitContainingShapeIds(\n    const
      S2ShapeIndex& index,\n    absl::FunctionRef<bool(int id, const S2Point& target)>
      visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:84,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:85,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:86,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:86,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: S2MaxDistanceEdgeTarget::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::FromLength2
    - S2Cap
    - sqrt
    - Normalize
    - S1ChordAngle
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2MaxDistanceEdgeTarget::GetCapBound()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:92,1
    - Dst: S2MaxDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:93,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' p'
    - min_dist
    argTypes:
    - S2Point
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: S2MaxDistanceEdgeTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistance*::UpdateMin
    - S2::UpdateMaxDistance
    - S2MaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceEdgeTarget::UpdateMinDistance(\n    const S2Point&
      p, S2MaxDistance* min_dist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::UpdateEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:102,1
    - Dst: S2MaxDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:103,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' v0'
    - ' v1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: S2MaxDistanceEdgeTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistance
    - S2MaxDistance*::UpdateMin
    - S2::UpdateEdgePairMaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceEdgeTarget::UpdateMinDistance(\n    const S2Point&
      v0, const S2Point& v1, S2MaxDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:111,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:111,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' cell'
    - min_dist
    argTypes:
    - S2Cell
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: S2MaxDistanceEdgeTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistance*::UpdateMin
    - GetMaxDistance
    - S2MaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceEdgeTarget::UpdateMinDistance(\n    const S2Cell&
      cell, S2MaxDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:124,1
    - Dst: S2MaxDistancePointTarget::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(int id, const S2Point& target)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: S2MaxDistanceEdgeTarget::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistancePointTarget::VisitContainingShapeIds
    - Normalize
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceEdgeTarget::VisitContainingShapeIds(\n    const
      S2ShapeIndex& index,\n    absl::FunctionRef<bool(int id, const S2Point& target)>
      visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistanceCellTarget::GetCapBound
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:134,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:135,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:135,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: S2MaxDistanceCellTarget::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 1
    functionsReached:
    - S2Cap::center
    - S2Cap
    - S2Cap::radius
    - S2MaxDistanceCellTarget::GetCapBound
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2MaxDistanceCellTarget::GetCapBound()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:140,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:140,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - min_dist
    argTypes:
    - S2Point
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: S2MaxDistanceCellTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistance*::UpdateMin
    - GetMaxDistance
    - S2MaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceCellTarget::UpdateMinDistance(\n    const S2Point&
      p, S2MaxDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:145,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:145,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' v0'
    - ' v1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: S2MaxDistanceCellTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistance*::UpdateMin
    - GetMaxDistance
    - S2MaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceCellTarget::UpdateMinDistance(\n    const S2Point&
      v0, const S2Point& v1, S2MaxDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance*::UpdateMin
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:150,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:150,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' cell'
    - min_dist
    argTypes:
    - S2Cell
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: S2MaxDistanceCellTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistance*::UpdateMin
    - GetMaxDistance
    - S2MaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceCellTarget::UpdateMinDistance(\n    const S2Cell&
      cell, S2MaxDistance* min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:158,1
    - Dst: S2MaxDistancePointTarget::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(int id, const S2Point& target)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: S2MaxDistanceCellTarget::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistancePointTarget::VisitContainingShapeIds
    - GetCenter
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceCellTarget::VisitContainingShapeIds(\n    const
      S2ShapeIndex& index,\n    absl::FunctionRef<bool(int id, const S2Point& target)>
      visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2FurthestEdgeQuery>
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: S2MaxDistanceShapeIndexTarget::S2MaxDistanceShapeIndexTarget
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2FurthestEdgeQuery>
    linkageType: ''
    returnType: void
    signature: "void S2MaxDistanceShapeIndexTarget::S2MaxDistanceShapeIndexTarget(\n
      \   const S2ShapeIndex* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: S2MaxDistanceShapeIndexTarget::~S2MaxDistanceShapeIndexTarget()
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MaxDistanceShapeIndexTarget::~S2MaxDistanceShapeIndexTarget()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: S2MaxDistanceShapeIndexTarget::include_interiors
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: bool
    signature: bool S2MaxDistanceShapeIndexTarget::include_interiors() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - include_interiors
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: S2MaxDistanceShapeIndexTarget::set_include_interiors
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    linkageType: ''
    returnType: void
    signature: "void S2MaxDistanceShapeIndexTarget::set_include_interiors(\n    bool
      include_interiors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: S2MaxDistanceShapeIndexTarget::use_brute_force
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: bool
    signature: bool S2MaxDistanceShapeIndexTarget::use_brute_force() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - use_brute_force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: S2MaxDistanceShapeIndexTarget::set_use_brute_force
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    linkageType: ''
    returnType: void
    signature: "void S2MaxDistanceShapeIndexTarget::set_use_brute_force(\n    bool
      use_brute_force)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' max_error'
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: S2MaxDistanceShapeIndexTarget::set_max_error
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceShapeIndexTarget::set_max_error(\n    const S1ChordAngle&
      max_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:198,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:199,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:199,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: S2MaxDistanceShapeIndexTarget::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - S2Cap
    - S2Cap::radius
    - S2ShapeIndexRegion
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2MaxDistanceShapeIndexTarget::GetCapBound()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:204,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:204,1
    - Dst: FindFurthestEdge
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:206,1
    - Dst: S2FurthestEdgeQuery::Result::is_empty
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:207,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:208,1
    - Dst: S2FurthestEdgeQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' p'
    - min_dist
    argTypes:
    - S2Point
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: S2MaxDistanceShapeIndexTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    - FindFurthestEdge
    - S2FurthestEdgeQuery::Result::distance
    - S2MaxDistance
    - S1ChordAngle
    - S2FurthestEdgeQuery::Result::is_empty
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceShapeIndexTarget::UpdateMinDistance(\n    const
      S2Point& p, S2MaxDistance* min_dist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:214,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:214,1
    - Dst: FindFurthestEdge
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:216,1
    - Dst: S2FurthestEdgeQuery::Result::is_empty
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:217,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:218,1
    - Dst: S2FurthestEdgeQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' v0'
    - ' v1'
    - min_dist
    argTypes:
    - S2Point
    - S2Point
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: S2MaxDistanceShapeIndexTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    - FindFurthestEdge
    - S2FurthestEdgeQuery::Result::distance
    - S2MaxDistance
    - S1ChordAngle
    - S2FurthestEdgeQuery::Result::is_empty
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceShapeIndexTarget::UpdateMinDistance(\n    const
      S2Point& v0, const S2Point& v1, S2MaxDistance* min_dist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:224,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:224,1
    - Dst: FindFurthestEdge
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:226,1
    - Dst: S2FurthestEdgeQuery::Result::is_empty
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:227,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:228,1
    - Dst: S2FurthestEdgeQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' cell'
    - min_dist
    argTypes:
    - S2Cell
    - S2MaxDistance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: S2MaxDistanceShapeIndexTarget::UpdateMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - mutable_options
    - FindFurthestEdge
    - S2FurthestEdgeQuery::Result::distance
    - S2MaxDistance
    - S1ChordAngle
    - S2FurthestEdgeQuery::Result::is_empty
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceShapeIndexTarget::UpdateMinDistance(\n    const
      S2Cell& cell, S2MaxDistance* min_dist)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:249,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:253,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:256,1
    - Dst: S2MaxDistancePointTarget::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:257,1
    - Dst: GetReferencePoint
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:263,1
    - Dst: S2MaxDistancePointTarget::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2max_distance_targets.cc:266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - ' query_index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(int id, const S2Point& target)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 272
    functionName: S2MaxDistanceShapeIndexTarget::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.cc
    functionUses: 0
    functionsReached:
    - GetReferencePoint
    - chain_edge
    - num_chains
    - chain
    - S2MaxDistancePointTarget::VisitContainingShapeIds
    linkageType: ''
    returnType: bool
    signature: "bool S2MaxDistanceShapeIndexTarget::VisitContainingShapeIds(\n    const
      S2ShapeIndex& query_index,\n    absl::FunctionRef<bool(int id, const S2Point&
      target)> visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2random.cc:34,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2random.cc:35,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2random.cc:36,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2random.cc:36,1
    - Dst: std::exp2
      Src: /src/s2geometry/src/s2/s2random.cc:37,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:37,1
    - Dst: std::log2
      Src: /src/s2geometry/src/s2/s2random.cc:37,1
    - Dst: std::log2
      Src: /src/s2geometry/src/s2/s2random.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - bitgen
    - lo
    - hi
    argTypes:
    - absl::BitGenRef
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: s2random::LogUniform
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 108
    functionsReached:
    - S1ChordAngle::is_infinity
    - s2random::LogUniform
    - ABSL_DCHECK_LT
    - std::log2
    - std::exp2
    linkageType: ''
    returnType: double
    signature: double LogUniform(absl::BitGenRef bitgen, double lo, double hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2random.cc:41,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2random.cc:42,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:43,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitgen
    - max_log
    argTypes:
    - absl::BitGenRef
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: s2random::SkewedInt
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 7
    functionsReached:
    - s2random::LogUniform
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: int
    signature: int SkewedInt(absl::BitGenRef bitgen, int max_log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:51,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:52,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:53,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2random.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: s2random::Point
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 66
    functionsReached:
    - S2Point
    - s2random::LogUniform
    linkageType: ''
    returnType: S2Point
    signature: S2Point Point(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random.cc:58,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bitgen
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: s2random::Frame
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 34
    functionsReached:
    - s2random::FrameAt
    - s2random::Point
    linkageType: ''
    returnType: void
    signature: void Frame(absl::BitGenRef bitgen, S2Point& x, S2Point& y, S2Point&
      z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random.cc:63,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: s2random::Frame
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 34
    functionsReached:
    - s2random::FrameAt
    - s2random::Point
    linkageType: ''
    returnType: Matrix3x3_d
    signature: Matrix3x3_d Frame(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2random.cc:69,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random.cc:69,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2random.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bitgen
    - ' z'
    - ' x'
    - ' y'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: s2random::FrameAt
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 26
    functionsReached:
    - S2::RobustCrossProd
    - s2random::Point
    linkageType: ''
    returnType: void
    signature: "void FrameAt(absl::BitGenRef bitgen, const S2Point& z,  //\n             S2Point&
      x, S2Point& y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random.cc:74,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random.cc:75,1
    - Dst: Matrix3x3::FromCols
      Src: /src/s2geometry/src/s2/s2random.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitgen
    - ' z'
    argTypes:
    - absl::BitGenRef
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: s2random::FrameAt
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 27
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3::FromCols
    - S2Point::S2Point
    linkageType: ''
    returnType: Matrix3x3_d
    signature: Matrix3x3_d FrameAt(absl::BitGenRef bitgen, const S2Point& z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:80,1
    - Dst: absl::Uniform<uint64_t>
      Src: /src/s2geometry/src/s2/s2random.cc:82,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2random.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - level
    argTypes:
    - absl::BitGenRef
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: s2random::CellId
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 21
    functionsReached:
    - absl::Uniform<uint64_t>
    - S2CellId::FromFacePosLevel
    - s2random::LogUniform
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId CellId(absl::BitGenRef bitgen, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:88,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2random.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: s2random::CellId
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 22
    functionsReached:
    - s2random::CellId
    - s2random::LogUniform
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId CellId(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2random.cc:95,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2random.cc:96,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2random.cc:97,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:98,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2random.cc:99,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2random.cc:100,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2random.cc:101,1
    - Dst: S2Cap::FromCenterArea
      Src: /src/s2geometry/src/s2/s2random.cc:104,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - bitgen
    - min_area
    - max_area
    argTypes:
    - absl::BitGenRef
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: s2random::Cap
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 11
    functionsReached:
    - S2Cap::FromCenterArea
    - s2random::Point
    - ABSL_DCHECK_LE
    - pow
    - s2random::LogUniform
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap Cap(absl::BitGenRef bitgen, double min_area, double max_area)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2random.cc:108,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2random.cc:108,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2random.cc:113,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2random.cc:113,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:120,1
    - Dst: height
      Src: /src/s2geometry/src/s2/s2random.cc:120,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:121,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2random.cc:122,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2random.cc:126,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2random.cc:126,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2random.cc:126,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2random.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitgen
    - ' cap'
    argTypes:
    - absl::BitGenRef
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: s2random::SamplePoint
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 28
    functionsReached:
    - height
    - S2::GetFrame
    - S2Point
    - sqrt
    - S2::FromFrame
    - center
    - sin
    - s2random::LogUniform
    - is_empty
    - cos
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point SamplePoint(absl::BitGenRef bitgen, const S2Cap& cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2random.cc:131,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2random.cc:131,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2random.cc:133,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2random.cc:133,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2random.cc:134,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2random.cc:134,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2random.cc:136,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:136,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:140,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2random.cc:141,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2random.cc:141,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2random.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitgen
    - ' rect'
    argTypes:
    - absl::BitGenRef
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: s2random::SamplePoint
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 28
    functionsReached:
    - asin
    - S2LatLng::FromRadians
    - lng
    - sin
    - s2random::LogUniform
    - lat
    - is_empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point SamplePoint(absl::BitGenRef bitgen, const S2LatLngRect& rect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2random.cc:34,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2random.cc:35,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2random.cc:36,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2random.cc:36,1
    - Dst: std::exp2
      Src: /src/s2geometry/src/s2/s2random.cc:37,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:37,1
    - Dst: std::log2
      Src: /src/s2geometry/src/s2/s2random.cc:37,1
    - Dst: std::log2
      Src: /src/s2geometry/src/s2/s2random.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - bitgen
    - lo
    - hi
    argTypes:
    - absl::BitGenRef
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: s2random::LogUniform
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 116
    functionsReached:
    - S1ChordAngle::is_infinity
    - s2random::LogUniform
    - ABSL_DCHECK_LT
    - std::log2
    - std::exp2
    linkageType: ''
    returnType: double
    signature: double LogUniform(absl::BitGenRef bitgen, double lo, double hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2random.cc:41,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2random.cc:42,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:43,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitgen
    - max_log
    argTypes:
    - absl::BitGenRef
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: s2random::SkewedInt
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 7
    functionsReached:
    - s2random::LogUniform
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: int
    signature: int SkewedInt(absl::BitGenRef bitgen, int max_log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:51,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:52,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:53,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2random.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: s2random::Point
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 70
    functionsReached:
    - S2Point
    - s2random::LogUniform
    linkageType: ''
    returnType: S2Point
    signature: S2Point Point(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random.cc:58,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bitgen
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: s2random::Frame
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 34
    functionsReached:
    - s2random::FrameAt
    - s2random::Point
    linkageType: ''
    returnType: void
    signature: void Frame(absl::BitGenRef bitgen, S2Point& x, S2Point& y, S2Point&
      z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random.cc:63,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: s2random::Frame
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 34
    functionsReached:
    - s2random::FrameAt
    - s2random::Point
    linkageType: ''
    returnType: Matrix3x3_d
    signature: Matrix3x3_d Frame(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2random.cc:69,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random.cc:69,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2random.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bitgen
    - ' z'
    - ' x'
    - ' y'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: s2random::FrameAt
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 29
    functionsReached:
    - S2::RobustCrossProd
    - s2random::Point
    linkageType: ''
    returnType: void
    signature: "void FrameAt(absl::BitGenRef bitgen, const S2Point& z,  //\n             S2Point&
      x, S2Point& y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2random.cc:74,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2random.cc:75,1
    - Dst: Matrix3x3::FromCols
      Src: /src/s2geometry/src/s2/s2random.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitgen
    - ' z'
    argTypes:
    - absl::BitGenRef
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: s2random::FrameAt
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 30
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3::FromCols
    - S2Point::S2Point
    linkageType: ''
    returnType: Matrix3x3_d
    signature: Matrix3x3_d FrameAt(absl::BitGenRef bitgen, const S2Point& z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:80,1
    - Dst: absl::Uniform<uint64_t>
      Src: /src/s2geometry/src/s2/s2random.cc:82,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2random.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - level
    argTypes:
    - absl::BitGenRef
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: s2random::CellId
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 22
    functionsReached:
    - absl::Uniform<uint64_t>
    - S2CellId::FromFacePosLevel
    - s2random::LogUniform
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId CellId(absl::BitGenRef bitgen, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:88,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2random.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: s2random::CellId
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 23
    functionsReached:
    - s2random::CellId
    - s2random::LogUniform
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId CellId(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2random.cc:95,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2random.cc:96,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2random.cc:97,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:98,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2random.cc:99,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2random.cc:100,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2random.cc:101,1
    - Dst: S2Cap::FromCenterArea
      Src: /src/s2geometry/src/s2/s2random.cc:104,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2random.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - bitgen
    - min_area
    - max_area
    argTypes:
    - absl::BitGenRef
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: s2random::Cap
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 11
    functionsReached:
    - S2Cap::FromCenterArea
    - s2random::Point
    - ABSL_DCHECK_LE
    - pow
    - s2random::LogUniform
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap Cap(absl::BitGenRef bitgen, double min_area, double max_area)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2random.cc:108,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2random.cc:108,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2random.cc:113,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2random.cc:113,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:120,1
    - Dst: height
      Src: /src/s2geometry/src/s2/s2random.cc:120,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:121,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2random.cc:122,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2random.cc:126,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2random.cc:126,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2random.cc:126,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2random.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitgen
    - ' cap'
    argTypes:
    - absl::BitGenRef
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: s2random::SamplePoint
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 28
    functionsReached:
    - height
    - S2::GetFrame
    - S2Point
    - sqrt
    - S2::FromFrame
    - center
    - sin
    - s2random::LogUniform
    - is_empty
    - cos
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point SamplePoint(absl::BitGenRef bitgen, const S2Cap& cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2random.cc:131,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2random.cc:131,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2random.cc:133,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2random.cc:133,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2random.cc:134,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2random.cc:134,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2random.cc:136,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:136,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2random.cc:140,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2random.cc:141,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2random.cc:141,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2random.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitgen
    - ' rect'
    argTypes:
    - absl::BitGenRef
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: s2random::SamplePoint
    functionSourceFile: /src/s2geometry/src/s2/s2random.cc
    functionUses: 28
    functionsReached:
    - asin
    - S2LatLng::FromRadians
    - lng
    - sin
    - s2random::LogUniform
    - lat
    - is_empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point SamplePoint(absl::BitGenRef bitgen, const S2LatLngRect& rect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionUnion::Init
      Src: /src/s2geometry/src/s2/s2region_union.cc:34,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_union.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regions
    argTypes:
    - vector<unique_ptr<S2Region>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: S2RegionUnion::S2RegionUnion
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - S2RegionUnion::Init
    - std::move
    linkageType: ''
    returnType: void
    signature: void S2RegionUnion::S2RegionUnion(vector<unique_ptr<S2Region>> regions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2region_union.cc:38,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2region_union.cc:38,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_union.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regions
    argTypes:
    - vector<unique_ptr<S2Region>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: S2RegionUnion::Init
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 1
    functionsReached:
    - std::move
    - empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2RegionUnion::Init(vector<unique_ptr<S2Region>> regions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union.cc:43,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union.cc:44,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2region_union.cc:45,1
    - Dst: S2RegionUnion::region
      Src: /src/s2geometry/src/s2/s2region_union.cc:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2RegionUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: S2RegionUnion::S2RegionUnion
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - S2RegionUnion::num_regions
    - S2RegionUnion::region
    - reset
    linkageType: ''
    returnType: void
    signature: void S2RegionUnion::S2RegionUnion(const S2RegionUnion& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2region_union.cc:51,1
    - Dst: num_regions
      Src: /src/s2geometry/src/s2/s2region_union.cc:51,1
    - Dst: num_regions
      Src: /src/s2geometry/src/s2/s2region_union.cc:52,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2region_union.cc:53,1
    - Dst: region
      Src: /src/s2geometry/src/s2/s2region_union.cc:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2RegionUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: '& S2RegionUnion::operator=(const S2RegionUnion& src)'
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - resize
    - num_regions
    - reset
    - region
    linkageType: ''
    returnType: S2RegionUnion
    signature: S2RegionUnion & S2RegionUnion::operator=(const S2RegionUnion& src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_union.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2RegionUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: S2RegionUnion::S2RegionUnion
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void S2RegionUnion::S2RegionUnion(S2RegionUnion&& src) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_union.cc:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2RegionUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: '& S2RegionUnion::operator=(S2RegionUnion&& src) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: S2RegionUnion
    signature: S2RegionUnion & S2RegionUnion::operator=(S2RegionUnion&& src) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::swap
      Src: /src/s2geometry/src/s2/s2region_union.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: S2RegionUnion::Release
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - vector::swap
    linkageType: ''
    returnType: vector<unique_ptr<S2Region>>
    signature: vector<unique_ptr<S2Region>> S2RegionUnion::Release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2region_union.cc:73,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_union.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - region
    argTypes:
    - unique_ptr<S2Region>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: S2RegionUnion::Add
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void S2RegionUnion::Add(unique_ptr<S2Region> region)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionUnion::S2RegionUnion
      Src: /src/s2geometry/src/s2/s2region_union.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: S2RegionUnion::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - S2RegionUnion::S2RegionUnion
    linkageType: ''
    returnType: S2RegionUnion
    signature: S2RegionUnion * S2RegionUnion::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionUnion::GetRectBound
      Src: /src/s2geometry/src/s2/s2region_union.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: S2RegionUnion::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - S2RegionUnion::GetRectBound
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2RegionUnion::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2region_union.cc:87,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union.cc:88,1
    - Dst: S2LatLngRect::Union
      Src: /src/s2geometry/src/s2/s2region_union.cc:89,1
    - Dst: S2RegionUnion::region
      Src: /src/s2geometry/src/s2/s2region_union.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: S2RegionUnion::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 1
    functionsReached:
    - S2LatLngRect::Empty
    - S2RegionUnion::num_regions
    - S2RegionUnion::region
    - S2LatLngRect::Union
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2RegionUnion::GetRectBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionUnion::GetCapBound
      Src: /src/s2geometry/src/s2/s2region_union.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: S2RegionUnion::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - S2RegionUnion::GetCapBound
    linkageType: ''
    returnType: void
    signature: void S2RegionUnion::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union.cc:101,1
    - Dst: S2RegionUnion::region
      Src: /src/s2geometry/src/s2/s2region_union.cc:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: S2RegionUnion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - S2RegionUnion::num_regions
    - S2RegionUnion::region
    linkageType: ''
    returnType: bool
    signature: bool S2RegionUnion::Contains(const S2Cell& cell) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union.cc:108,1
    - Dst: S2RegionUnion::region
      Src: /src/s2geometry/src/s2/s2region_union.cc:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: S2RegionUnion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - S2RegionUnion::num_regions
    - S2RegionUnion::region
    linkageType: ''
    returnType: bool
    signature: bool S2RegionUnion::Contains(const S2Point& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union.cc:115,1
    - Dst: S2RegionUnion::region
      Src: /src/s2geometry/src/s2/s2region_union.cc:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: S2RegionUnion::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2region_union.cc
    functionUses: 0
    functionsReached:
    - S2RegionUnion::num_regions
    - S2RegionUnion::region
    linkageType: ''
    returnType: bool
    signature: bool S2RegionUnion::MayIntersect(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: S2MinDistance::S2MinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MinDistance()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: S2MinDistance::S2MinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MinDistance(S1Angle x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: S2MinDistance::S2MinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MinDistance(S1ChordAngle x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance::S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:246,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: S2MinDistance::Zero
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 4
    functionsReached:
    - S2MinDistance::S2MinDistance
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: S2MinDistance
    signature: S2MinDistance S2MinDistance::Zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance::S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:250,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: S2MinDistance::Infinity
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 5
    functionsReached:
    - S2MinDistance::S2MinDistance
    - S1ChordAngle::Infinity
    linkageType: ''
    returnType: S2MinDistance
    signature: S2MinDistance S2MinDistance::Infinity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance::S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:254,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: S2MinDistance::Negative
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 0
    functionsReached:
    - S2MinDistance::S2MinDistance
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: S2MinDistance
    signature: S2MinDistance S2MinDistance::Negative()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:258,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - delta
    argTypes:
    - S2MinDistance
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: operator-(S2MinDistance x, S1ChordAngle delta)
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle
    - S2MinDistance
    linkageType: ''
    returnType: S2MinDistance
    signature: S2MinDistance operator-(S2MinDistance x, S1ChordAngle delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusError
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:262,1
    - Dst: GetS1AngleConstructorMaxError
      Src: /src/s2geometry/src/s2/s2min_distance_targets.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: S2MinDistance::GetChordAngleBound
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 0
    functionsReached:
    - PlusError
    - GetS1AngleConstructorMaxError
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2MinDistance::GetChordAngleBound() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' dist'
    argTypes:
    - S2MinDistance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: S2MinDistance::UpdateMin
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2MinDistance::UpdateMin(const S2MinDistance& dist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: S2MinDistancePointTarget::S2MinDistancePointTarget
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MinDistancePointTarget::S2MinDistancePointTarget(const S2Point&
      point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: S2MinDistanceEdgeTarget::S2MinDistanceEdgeTarget
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2MinDistanceEdgeTarget::S2MinDistanceEdgeTarget(const S2Point&
      a,\n                                                        const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:171,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: S2LoopTestBase::AddLoop
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 1
    functionsReached:
    - S2LoopTestBase::AddLoop
    - MakeLoopOrDie
    linkageType: ''
    returnType: unique_ptr<const S2Loop>
    signature: unique_ptr<const S2Loop> AddLoop(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - loop
    argTypes:
    - unique_ptr<const S2Loop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: S2LoopTestBase::AddLoop
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 1
    functionsReached:
    - push_back
    linkageType: ''
    returnType: unique_ptr<const S2Loop>
    signature: unique_ptr<const S2Loop> AddLoop(unique_ptr<const S2Loop> loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:182,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:182,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:182,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:185,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:185,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2loop_test.cc:185,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:188,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:191,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:194,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:197,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:200,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:203,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:206,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:209,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:212,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:215,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:218,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:222,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:227,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:230,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:233,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:236,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:239,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:242,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:245,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:249,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:253,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:278,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:279,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:280,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:282,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:284,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2loop_test.cc:287,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:287,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2loop_test.cc:288,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:288,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2loop_test.cc:289,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:289,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2loop_test.cc:290,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:290,1
    - Dst: S2LoopTestBase::AddLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:291,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 292
    functionName: S2LoopTestBase::S2LoopTestBase
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kFull
    - make_unique<S2Loop>
    - S2CellId
    - S2LoopTestBase::AddLoop
    - s2textformat::MakePointOrDie
    - S2Loop::kEmpty
    linkageType: ''
    returnType: void
    signature: void S2LoopTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:297,1
    - Dst: GetXYZFaceSiTiVertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:298,1
    - Dst: absl::FixedArray::data
      Src: /src/s2geometry/src/s2/s2loop_test.cc:298,1
    - Dst: EncodeCompressed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:299,1
    - Dst: absl::FixedArray::data
      Src: /src/s2geometry/src/s2/s2loop_test.cc:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' loop'
    - level
    - encoder
    argTypes:
    - S2Loop
    - int
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: S2LoopTestBase::TestEncodeCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - GetXYZFaceSiTiVertices
    - EncodeCompressed
    - absl::FixedArray::data
    - num_vertices
    linkageType: ''
    returnType: void
    signature: void TestEncodeCompressed(const S2Loop& loop, int level, Encoder* encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base
      Src: /src/s2geometry/src/s2/s2loop_test.cc:305,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2loop_test.cc:305,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:306,1
    - Dst: S2Loop*::DecodeCompressed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' encoder'
    - level
    - loop
    argTypes:
    - Encoder
    - int
    - S2Loop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: S2LoopTestBase::TestDecodeCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop*::DecodeCompressed
    - length
    - ASSERT_TRUE
    - base
    linkageType: ''
    returnType: void
    signature: void TestDecodeCompressed(const Encoder& encoder, int level, S2Loop*
      loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2loop_test.cc:310,1
    - Dst: index_::shape
      Src: /src/s2geometry/src/s2/s2loop_test.cc:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: S2LoopTestBase::GetLoopIndexPtr
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - index_::shape
    - down_cast
    linkageType: ''
    returnType: S2Loop
    signature: S2Loop * GetLoopIndexPtr(S2Loop& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:317,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:317,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:318,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:318,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:319,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:319,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:320,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:320,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:321,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:321,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:322,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:322,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:323,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:323,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2loop_test.cc:324,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:324,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:325,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:326,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:326,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2loop_test.cc:327,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:327,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:328,1
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:332,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:334,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:334,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_test.cc:335,1
    - Dst: S2Loop::GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:335,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:336,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:336,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:338,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:338,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:339,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:339,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2loop_test.cc:340,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 341
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::vertex
    - EXPECT_GT
    - S2Loop::Invert
    - EXPECT_TRUE
    - EXPECT_LT
    - EXPECT_NEAR
    - S2LatLng
    - R1Interval
    - GetRectBound
    - S2Loop::GetRectBound
    - S2LatLng::FromDegrees
    - lat
    - S2LatLngRect
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, GetRectBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop*::num_vertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:345,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:346,1
    - Dst: S2Loop*::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:346,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:348,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop_test.cc:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2Loop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: Rotate
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 2
    functionsReached:
    - vector::push_back
    - S2Loop
    - S2Loop*::num_vertices
    - std::move
    - S2Loop*::vertex
    linkageType: ''
    returnType: void
    signature: void Rotate(S2Loop* loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2loop_test.cc:357,1
    - Dst: GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:358,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:360,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:360,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2loop_test.cc:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 364
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - fabs
    - s2textformat::ToString
    - GetArea
    - EXPECT_LE
    - GetCurvature
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, AreaConsistentWithCurvature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2loop_test.cc:370,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2loop_test.cc:371,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_test.cc:375,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:378,1
    - Dst: S2Loop::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2loop_test.cc:379,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:385,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2loop_test.cc:386,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_test.cc:386,1
    - Dst: S2Loop::Init
      Src: /src/s2geometry/src/s2/s2loop_test.cc:389,1
    - Dst: S2Loop::IsValid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:390,1
    - Dst: S2Loop::IsNormalized
      Src: /src/s2geometry/src/s2/s2loop_test.cc:391,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_test.cc:392,1
    - Dst: S2Loop::GetArea
      Src: /src/s2geometry/src/s2/s2loop_test.cc:392,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2loop_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:394,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:394,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 396
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Loop::IsValid
    - S2Loop::Init
    - S2Loop::S2Loop
    - S2Loop::set_s2debug_override
    - EXPECT_NEAR
    - s2textformat::ToString
    - S2Point
    - S2LatLng::FromRadians
    - S2Loop::IsNormalized
    - S2Loop::Contains
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Loop::GetArea
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, GetAreaConsistentWithSign)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, GetAreaAccuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:404,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2loop_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:405,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2loop_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:406,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:406,1
    - Dst: GetCentroid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:407,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:407,1
    - Dst: GetCentroid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:407,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:409,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2loop_test.cc:409,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_test.cc:410,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2loop_test.cc:410,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2loop_test.cc:416,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2loop_test.cc:417,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:420,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2loop_test.cc:421,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_test.cc:432,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:433,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2loop_test.cc:434,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2loop_test.cc:434,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:434,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2loop_test.cc:434,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:434,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2loop_test.cc:435,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_test.cc:439,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:440,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_test.cc:441,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_test.cc:441,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:441,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_test.cc:441,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:441,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:441,1
    - Dst: S2Loop::GetArea
      Src: /src/s2geometry/src/s2/s2loop_test.cc:445,1
    - Dst: S2Loop::GetCentroid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:446,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:448,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:448,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:450,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2loop_test.cc:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 403
    functionDepth: 5
    functionLinenumber: 403
    functionLinenumberEnd: 452
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - cos
    - EXPECT_NEAR
    - s2random::Frame
    - min
    - S2Point::S2Point
    - GetArea
    - sin
    - EXPECT_EQ
    - S2Loop::GetCentroid
    - vector::push_back
    - fabs
    - EXPECT_LE
    - acos
    - S2Loop::GetArea
    - S2Testing::MakeTaggedSeedSeq
    - GetCentroid
    - tan
    - Norm
    - EXPECT_DOUBLE_EQ
    - asin
    - Normalize
    - s2random::LogUniform
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, GetAreaAndCentroid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:457,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:459,1
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:460,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:461,1
    - Dst: S2Loop::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:461,1
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:462,1
    - Dst: Rotate
      Src: /src/s2geometry/src/s2/s2loop_test.cc:463,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:464,1
    - Dst: S2Loop::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 466
    functionName: CheckCurvatureInvariants
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 2
    functionsReached:
    - S2Loop::Invert
    - num_vertices
    - Rotate
    - EXPECT_EQ
    - S2Loop::GetCurvature
    - GetCurvature
    linkageType: ''
    returnType: void
    signature: void CheckCurvatureInvariants(const S2Loop& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:469,1
    - Dst: GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:469,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:470,1
    - Dst: GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:470,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_test.cc:472,1
    - Dst: GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:472,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_test.cc:473,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_test.cc:475,1
    - Dst: GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:475,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_test.cc:476,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_test.cc:480,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:482,1
    - Dst: GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:482,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_test.cc:483,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:485,1
    - Dst: GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:485,1
    - Dst: CheckCurvatureInvariants
      Src: /src/s2geometry/src/s2/s2loop_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:495,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_test.cc:498,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:499,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:502,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:503,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_test.cc:515,1
    - Dst: S2Loop::GetArea
      Src: /src/s2geometry/src/s2/s2loop_test.cc:515,1
    - Dst: S2Loop::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_test.cc:515,1
    - Dst: S2Loop::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2loop_test.cc:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 517
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - GetCurvature
    - CheckCurvatureInvariants
    - EXPECT_DOUBLE_EQ
    - EXPECT_NEAR
    - S2Point
    - sin
    - S2Loop::GetCurvature
    - EXPECT_EQ
    - S2Loop::GetArea
    - S2Loop::GetCurvatureMaxError
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, GetCurvature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:522,1
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:525,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:526,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/s2loop_test.cc:526,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:526,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:527,1
    - Dst: S2Loop::IsNormalized
      Src: /src/s2geometry/src/s2/s2loop_test.cc:527,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:527,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:529,1
    - Dst: IsNormalized
      Src: /src/s2geometry/src/s2/s2loop_test.cc:529,1
    - Dst: S2Loop::IsNormalized
      Src: /src/s2geometry/src/s2/s2loop_test.cc:529,1
    - Dst: S2Loop::Normalize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:531,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:532,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: CheckNormalizeAndContains
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::Invert
    - S2Loop::Normalize
    - EXPECT_TRUE
    - s2textformat::MakePointOrDie
    - S2Loop::IsNormalized
    - Contains
    - IsNormalized
    - S2Loop::Contains
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void CheckNormalizeAndContains(const S2Loop& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckNormalizeAndContains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:536,1
    - Dst: CheckNormalizeAndContains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - CheckNormalizeAndContains
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, NormalizedCompatibleWithContains)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:543,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:543,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:543,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:544,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:544,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2loop_test.cc:544,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:546,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:546,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:546,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:554,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:554,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:554,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:555,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:555,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:555,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:556,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:556,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:556,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:557,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:557,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:557,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:558,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:558,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:558,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:559,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:559,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:559,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:560,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:560,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:560,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:561,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:561,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:561,1
    - Dst: Rotate
      Src: /src/s2geometry/src/s2/s2loop_test.cc:562,1
    - Dst: Rotate
      Src: /src/s2geometry/src/s2/s2loop_test.cc:563,1
    - Dst: Rotate
      Src: /src/s2geometry/src/s2/s2loop_test.cc:564,1
    - Dst: Rotate
      Src: /src/s2geometry/src/s2/s2loop_test.cc:565,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:574,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2loop_test.cc:575,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2loop_test.cc:575,1
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:577,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2loop_test.cc:577,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:579,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:579,1
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:580,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:580,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:582,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:582,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:583,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:588,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:590,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 593
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2Cell::GetCenter
    - S2CellId::End
    - S2Loop::kEmpty
    - make_unique<S2Loop>
    - S2CellId::next
    - flat_hash_set::insert
    - EXPECT_EQ
    - vector::push_back
    - S2Loop::kFull
    - EXPECT_TRUE
    - Contains
    - vector::clear
    - S2LatLng::FromDegrees
    - S2CellId::Begin
    - Rotate
    - S2Cell::GetVertex
    - S2Loop::Contains
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, Contains)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:596,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:597,1
    - Dst: S2Loop::IsValid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - S2Loop::IsValid
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, DefaultLoopIsInvalid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2loop_test.cc:611,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:611,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2loop_test.cc:614,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2loop_test.cc:621,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2loop_test.cc:644,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:645,1
    - Dst: ASSERT_NE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:648,1
    - Dst: std::setprecision
      Src: /src/s2geometry/src/s2/s2loop_test.cc:651,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:655,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2loop_test.cc:655,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:655,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:656,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:656,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:657,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2loop_test.cc:657,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:657,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:658,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:658,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:659,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2loop_test.cc:659,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:659,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:660,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:660,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:661,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2loop_test.cc:661,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:661,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:662,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:662,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:665,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:665,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:665,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:666,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:666,1
    - Dst: S2Loop::GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:669,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:670,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 671
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - Contains
    - S2Loop::vertex
    - S2::Origin
    - std::setprecision
    - S2CellId
    - EXPECT_TRUE
    - S2Point
    - ASSERT_NE
    - S2::CrossingSign
    - S2Loop::GetRectBound
    - S2Cell
    - EXPECT_EQ
    - S2Cell::GetVertex
    - S2Loop::Contains
    - EXPECT_FALSE
    - GetCenter
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, ContainsMatchesCrossingSign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:675,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:675,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:676,1
    - Dst: BoundaryEquals
      Src: /src/s2geometry/src/s2/s2loop_test.cc:676,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:676,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:677,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:677,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2loop_test.cc:677,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:678,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:678,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2loop_test.cc:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Loop
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: TestOneNestedPair
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 2
    functionsReached:
    - Intersects
    - EXPECT_TRUE
    - is_empty
    - BoundaryEquals
    - EXPECT_EQ
    - Contains
    linkageType: ''
    returnType: void
    signature: void TestOneNestedPair(const S2Loop& a, const S2Loop& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:683,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2loop_test.cc:683,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:684,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2loop_test.cc:684,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:685,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:685,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:685,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:686,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:686,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Loop
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 687
    functionName: TestOneDisjointPair
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 2
    functionsReached:
    - Intersects
    - is_empty
    - EXPECT_EQ
    - Contains
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TestOneDisjointPair(const S2Loop& a, const S2Loop& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:691,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2loop_test.cc:691,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:691,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:692,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2loop_test.cc:692,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:692,1
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:694,1
    - Dst: S2Loop::BoundaryEquals
      Src: /src/s2geometry/src/s2/s2loop_test.cc:695,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:696,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2loop_test.cc:696,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:697,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2loop_test.cc:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Loop
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 698
    functionName: TestOneCoveringPair
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 2
    functionsReached:
    - S2Loop::BoundaryEquals
    - is_full
    - S2Loop::Invert
    - Intersects
    - EXPECT_EQ
    - Contains
    linkageType: ''
    returnType: void
    signature: void TestOneCoveringPair(const S2Loop& a, const S2Loop& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:703,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:703,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:704,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:704,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:705,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2loop_test.cc:705,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:706,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2loop_test.cc:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Loop
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 707
    functionName: TestOneOverlappingPair
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 1
    functionsReached:
    - Contains
    - Intersects
    - EXPECT_TRUE
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TestOneOverlappingPair(const S2Loop& a, const S2Loop& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:714,1
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:715,1
    - Dst: TestOneNestedPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:716,1
    - Dst: TestOneNestedPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:717,1
    - Dst: TestOneDisjointPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:718,1
    - Dst: TestOneCoveringPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Loop
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 720
    functionName: TestNestedPair
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 2
    functionsReached:
    - TestOneNestedPair
    - S2Loop::Invert
    - TestOneDisjointPair
    - TestOneCoveringPair
    linkageType: ''
    returnType: void
    signature: void TestNestedPair(const S2Loop& a, const S2Loop& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:726,1
    - Dst: TestNestedPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Loop
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: TestDisjointPair
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 1
    functionsReached:
    - S2Loop::Invert
    - TestNestedPair
    linkageType: ''
    returnType: void
    signature: void TestDisjointPair(const S2Loop& a, const S2Loop& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:734,1
    - Dst: TestNestedPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Loop
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 736
    functionName: TestCoveringPair
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::Invert
    - TestNestedPair
    linkageType: ''
    returnType: void
    signature: void TestCoveringPair(const S2Loop& a, const S2Loop& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:743,1
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:744,1
    - Dst: TestOneOverlappingPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:745,1
    - Dst: TestOneOverlappingPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:746,1
    - Dst: TestOneOverlappingPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:747,1
    - Dst: TestOneOverlappingPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Loop
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 749
    functionName: TestOverlappingPair
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 1
    functionsReached:
    - S2Loop::Invert
    - TestOneOverlappingPair
    linkageType: ''
    returnType: void
    signature: void TestOverlappingPair(const S2Loop& a, const S2Loop& b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:764,1
    - Dst: TestNestedPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:766,1
    - Dst: TestNestedPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:769,1
    - Dst: TestCoveringPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:772,1
    - Dst: TestDisjointPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:775,1
    - Dst: TestOverlappingPair
      Src: /src/s2geometry/src/s2/s2loop_test.cc:777,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:780,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:780,1
    - Dst: ContainsNested
      Src: /src/s2geometry/src/s2/s2loop_test.cc:780,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:797,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:797,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:798,1
    - Dst: CompareBoundary
      Src: /src/s2geometry/src/s2/s2loop_test.cc:798,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - flags
    - shared_edge
    - test_description
    argTypes:
    - S2Loop
    - S2Loop
    - int
    - bool
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 800
    functionName: TestRelationWithDesc
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - ContainsNested
    - is_empty
    - TestOverlappingPair
    - TestCoveringPair
    - TestNestedPair
    - SCOPED_TRACE
    - CompareBoundary
    - EXPECT_EQ
    - Contains
    - TestDisjointPair
    linkageType: ''
    returnType: void
    signature: "void TestRelationWithDesc(const S2Loop& a, const S2Loop& b, int flags,\n
      \                                bool shared_edge,\n                                 string_view
      test_description)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - flags
    - ','
    - shared_edge
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 804
    functionName: TestRelation
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TestRelation(a, b, flags, shared_edge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:807,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:808,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:809,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:810,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:811,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:812,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:813,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:814,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:816,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:817,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:818,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:819,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:820,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:821,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:825,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:826,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:827,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:828,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:829,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:831,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:832,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:833,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:834,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:835,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:836,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:838,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:839,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:840,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:841,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:842,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:844,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:846,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:847,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:849,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:850,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:852,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:853,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:854,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:855,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:856,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:857,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:859,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:860,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:861,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:862,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:863,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:864,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:866,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:867,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:868,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:869,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:870,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:871,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:873,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:874,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:875,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:876,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:877,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:878,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:880,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:881,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:882,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:883,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:884,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:885,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:887,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:888,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:889,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:890,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:891,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 893
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - TestRelation
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, LoopRelations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:898,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:899,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:900,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:901,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:902,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:903,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:904,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:905,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:906,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:907,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:908,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:909,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:910,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:911,1
    - Dst: TestRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 913
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - TestRelation
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, LoopRelationsWhenSameExceptPiecesStickingOutAndIn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2loop_test.cc:923,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:926,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:927,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2loop_test.cc:928,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2loop_test.cc:929,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:930,1
    - Dst: flat_hash_map::erase
      Src: /src/s2geometry/src/s2/s2loop_test.cc:931,1
    - Dst: flat_hash_map::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:940,1
    - Dst: flat_hash_map::empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:941,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:942,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:942,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:943,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:944,1
    - Dst: flat_hash_map::erase
      Src: /src/s2geometry/src/s2/s2loop_test.cc:945,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:949,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 950
    functionName: MakeCellLoop
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - flat_hash_map::empty
    - vector::push_back
    - flat_hash_map::erase
    - ABSL_DCHECK_EQ
    - make_unique<S2Loop>
    - size
    - flat_hash_map::begin
    - S2CellId::next
    - erase
    - begin
    - empty
    - S2Cell::GetVertex
    - insert
    linkageType: ''
    returnType: unique_ptr<S2Loop>
    signature: unique_ptr<S2Loop> MakeCellLoop(S2CellId begin, S2CellId end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2loop_test.cc:956,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2loop_test.cc:957,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2loop_test.cc:959,1
    - Dst: absl::Uniform<uint64_t>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:959,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:960,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2loop_test.cc:961,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_test.cc:961,1
    - Dst: S2CellId::advance
      Src: /src/s2geometry/src/s2/s2loop_test.cc:962,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2loop_test.cc:962,1
    - Dst: S2CellId::advance
      Src: /src/s2geometry/src/s2/s2loop_test.cc:963,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2loop_test.cc:963,1
    - Dst: S2CellId::advance
      Src: /src/s2geometry/src/s2/s2loop_test.cc:964,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2loop_test.cc:964,1
    - Dst: S2CellId::advance
      Src: /src/s2geometry/src/s2/s2loop_test.cc:965,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2loop_test.cc:965,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:966,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:966,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2loop_test.cc:970,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2loop_test.cc:970,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2loop_test.cc:973,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:973,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:974,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:976,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:976,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2loop_test.cc:976,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:977,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2loop_test.cc:977,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2loop_test.cc:977,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2loop_test.cc:979,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 952
    functionDepth: 4
    functionLinenumber: 952
    functionLinenumberEnd: 982
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - absl::Uniform<uint64_t>
    - unique_ptr::num_vertices
    - S2CellId
    - unique_ptr::get
    - ABSL_VLOG
    - S2CellId::parent
    - EXPECT_EQ
    - s2random::SkewedInt
    - unique_ptr::Contains
    - unique_ptr::Intersects
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2CellId::is_valid
    - S2Testing::MakeTaggedSeedSeq
    - S2CellId::advance
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, LoopRelations2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2loop_test.cc:988,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2loop_test.cc:989,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:995,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:995,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:995,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2loop_test.cc:996,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:996,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2loop_test.cc:997,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_test.cc:997,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2loop_test.cc:998,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_test.cc:998,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2loop_test.cc:999,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1004,1
    - Dst: S2Point::x
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1004,1
    - Dst: S2Point::y
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1004,1
    - Dst: vector<S2Point>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1006,1
    - Dst: vector<S2Point>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1007,1
    - Dst: S2Loop::GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1012,1
    - Dst: S2Loop::GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1012,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1015,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1015,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 984
    functionDepth: 4
    functionLinenumber: 984
    functionLinenumberEnd: 1017
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2::Interpolate
    - s2pred::Sign
    - EXPECT_TRUE
    - S2Point
    - S2Point::x
    - S2Loop::GetRectBound
    - Normalize
    - S2Loop::Contains
    - S2Point::CrossProd
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Point::y
    - vector<S2Point>
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, BoundsForLoopContainment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1023,1
    - Dst: unique_ptr::BoundaryNear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1023,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1024,1
    - Dst: unique_ptr::BoundaryNear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a_str
    - b_str
    - max_error
    - expected
    argTypes:
    - string_view
    - string_view
    - S1Angle
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1025
    functionName: TestNear
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - unique_ptr::BoundaryNear
    linkageType: ''
    returnType: void
    signature: "void TestNear(string_view a_str, string_view b_str, S1Angle max_error,\n
      \                    bool expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1028,1
    - Dst: TestNear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1030,1
    - Dst: TestNear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1033,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1035,1
    - Dst: TestNear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1038,1
    - Dst: TestNear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1050,1
    - Dst: TestNear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1052
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - S1Angle::Degrees
    - TestNear
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, BoundaryNear)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1055,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1056,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1057,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1057,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1058,1
    - Dst: S2Loop::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1059,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1059,1
    - Dst: S2Loop::Decode
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1060,1
    - Dst: absl::InternalError
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1064
    functionName: EncodeDecode
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 36
    functionsReached:
    - absl::InternalError
    - S2Loop::S2Loop
    - S2Loop::set_s2debug_override
    - Encoder::length
    - Encoder::base
    - Encode
    - S2Loop::Decode
    - Encoder::Encoder
    - s2debug_override
    linkageType: ''
    returnType: absl::StatusOr<S2Loop>
    signature: absl::StatusOr<S2Loop> EncodeDecode(const S2Loop& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1068,1
    - Dst: EncodeDecode
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1068,1
    - Dst: IsOkAndHolds
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1068,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1069
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - LoopIdenticalTo
    - EXPECT_THAT
    - IsOkAndHolds
    - EncodeDecode
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, EncodeDecodeEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1073,1
    - Dst: EncodeDecode
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1073,1
    - Dst: IsOkAndHolds
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1073,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1074
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - LoopIdenticalTo
    - EXPECT_THAT
    - IsOkAndHolds
    - EncodeDecode
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, EncodeDecodeFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1077,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1078,1
    - Dst: EncodeDecode
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1078,1
    - Dst: IsOkAndHolds
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1079,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1076
    functionDepth: 2
    functionLinenumber: 1076
    functionLinenumberEnd: 1080
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - LoopIdenticalTo
    - EXPECT_THAT
    - EncodeDecode
    - IsOkAndHolds
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, EncodeDecodeUninitialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1083,1
    - Dst: unique_ptr::set_depth
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1084,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1085,1
    - Dst: EncodeDecode
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1085,1
    - Dst: IsOkAndHolds
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1085,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1086
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - MakeLoopOrDie
    - LoopIdenticalTo
    - EXPECT_THAT
    - unique_ptr::set_depth
    - EncodeDecode
    - IsOkAndHolds
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, EncodeDecodeFourVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1090,1
    - Dst: unique_ptr::set_depth
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1092,1
    - Dst: unique_ptr::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1095
    functionName: MakeLoopWithNonDefaultFields
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::set_s2debug_override
    - unique_ptr::set_depth
    - MakeLoopOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2Loop>
    signature: std::unique_ptr<S2Loop> MakeLoopWithNonDefaultFields()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1098,1
    - Dst: unique_ptr::Clone
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1099,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1100,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1101
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - LoopIdenticalTo
    - unique_ptr::Clone
    - EXPECT_THAT
    - MakeLoopWithNonDefaultFields
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, CloneResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1104,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1106,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1107
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - LoopIdenticalTo
    - EXPECT_THAT
    - MakeLoopWithNonDefaultFields
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, CopyConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1110,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1111,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1113,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1114
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - EXPECT_THAT
    - LoopIdenticalTo
    - MakeLoopWithNonDefaultFields
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, CopyAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1117,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1120,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1121
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - LoopIdenticalTo
    - EXPECT_THAT
    - MakeLoopWithNonDefaultFields
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, CopyAssignmentToSelfIsNoOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1127,1
    - Dst: S2Loop::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1128,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1130,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1131
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - S2Loop::set_s2debug_override
    - EXPECT_THAT
    - LoopIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, CopyConstructionFromZeroVerticesIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1134,1
    - Dst: S2Loop::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1135,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1136,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1138,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1139
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - S2Loop::set_s2debug_override
    - EXPECT_THAT
    - LoopIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, CopyAssignmentFromZeroVerticesIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1144,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1141
    functionDepth: 0
    functionLinenumber: 1141
    functionLinenumberEnd: 1145
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - LoopIdenticalTo
    - EXPECT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, CopyConstructionFromEmptyIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1149,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1151,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - EXPECT_THAT
    - LoopIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, CopyAssignmentFromEmptyIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1155,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1158,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1159
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - LoopIdenticalTo
    - EXPECT_THAT
    - MakeLoopWithNonDefaultFields
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, MoveConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1162,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1164,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1165,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1166,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1167
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - std::move
    - LoopIdenticalTo
    - EXPECT_THAT
    - MakeLoopWithNonDefaultFields
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, MoveAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1170,1
    - Dst: is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1170,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1171,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1171,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1172,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1174,1
    - Dst: BoundaryEquals
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1174,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1175,1
    - Dst: BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1175,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1176,1
    - Dst: BoundaryNear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' loop'
    - level
    argTypes:
    - S2Loop
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1177
    functionName: TestEmptyFullSnapped
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToPoint
    - S2CellId
    - EXPECT_TRUE
    - ABSL_CHECK
    - BoundaryNear
    - vertex
    - BoundaryEquals
    - BoundaryApproxEquals
    - is_empty_or_full
    linkageType: ''
    returnType: void
    signature: void TestEmptyFullSnapped(const S2Loop& loop, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1182,1
    - Dst: is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1182,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1183,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1183,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1185,1
    - Dst: BoundaryEquals
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1185,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1186,1
    - Dst: BoundaryApproxEquals
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1186,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1187,1
    - Dst: BoundaryNear
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1188
    functionName: TestEmptyFullLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLng
    - ABSL_CHECK
    - BoundaryNear
    - vertex
    - BoundaryEquals
    - BoundaryApproxEquals
    - is_empty_or_full
    linkageType: ''
    returnType: void
    signature: void TestEmptyFullLatLng(const S2Loop& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEmptyFullSnapped
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1191,1
    - Dst: TestEmptyFullSnapped
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1192,1
    - Dst: TestEmptyFullSnapped
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1193,1
    - Dst: TestEmptyFullLatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1195
    functionName: TestEmptyFullConversions
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - TestEmptyFullSnapped
    - TestEmptyFullLatLng
    linkageType: ''
    returnType: void
    signature: void TestEmptyFullConversions(const S2Loop& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEmptyFullConversions
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1200,1
    - Dst: TestEmptyFullConversions
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1204
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - TestEmptyFullConversions
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, EmptyFullLossyConversions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1207,1
    - Dst: TestEncodeCompressed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1218,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1219
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Encoder::length
    - Encoder::Encoder
    - TestEncodeCompressed
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, FourVertexCompressedLoopRequires36Bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::set_depth
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1223,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1225,1
    - Dst: TestEncodeCompressed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1226,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1227,1
    - Dst: TestDecodeCompressed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1228,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1229,1
    - Dst: LoopIdenticalTo
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1230
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    - LoopIdenticalTo
    - EXPECT_THAT
    - TestDecodeCompressed
    - S2Loop::set_depth
    - TestEncodeCompressed
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, CompressedEncodedLoopDecodesApproxEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1238,1
    - Dst: S2LatLng::FromE6
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1238,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1242,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1243,1
    - Dst: S2Loop::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1243,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1246,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1246,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1247,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1247,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1251,1
    - Dst: S2Loop::GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1251,1
    - Dst: S2Cell::GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1252
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::vertex
    - vector::push_back
    - S2LatLng::FromE6
    - S2CellId
    - EXPECT_TRUE
    - S2Loop::GetRectBound
    - S2Loop::num_vertices
    - S2Cell::GetRectBound
    - S2Loop::Contains
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, S2CellConstructorAndContains)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1258,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1259,1
    - Dst: unique_ptr::FindValidationError
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1259,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1260,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1260,1
    - Dst: testing::HasSubstr
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - snippet
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1261
    functionName: CheckLoopIsInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - unique_ptr::FindValidationError
    - EXPECT_TRUE
    - EXPECT_THAT
    - testing::HasSubstr
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void CheckLoopIsInvalid(string_view str, string_view snippet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1266,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1267,1
    - Dst: S2Loop::FindValidationError
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1267,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1268,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1268,1
    - Dst: testing::HasSubstr
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - points
    - snippet
    argTypes:
    - absl::Span<const S2Point>
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1269
    functionName: CheckLoopIsInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - S2Loop::FindValidationError
    - EXPECT_TRUE
    - EXPECT_THAT
    - testing::HasSubstr
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void CheckLoopIsInvalid(absl::Span<const S2Point> points,\n                               string_view
      snippet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckLoopIsInvalid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1274,1
    - Dst: CheckLoopIsInvalid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1275,1
    - Dst: CheckLoopIsInvalid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1278,1
    - Dst: CheckLoopIsInvalid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1279,1
    - Dst: CheckLoopIsInvalid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1282,1
    - Dst: CheckLoopIsInvalid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1285,1
    - Dst: CheckLoopIsInvalid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1288,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1288,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1288,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1290
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - CheckLoopIsInvalid
    linkageType: ''
    returnType: void
    signature: void TEST(S2Loop, IsValidDetectsInvalidLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertices_span
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1293,1
    - Dst: S2Loop::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1294,1
    - Dst: S2Loop::InitIndex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1295,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1296,1
    - Dst: GetLoopIndexPtr
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1296,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1298,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1299,1
    - Dst: GetLoopIndexPtr
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1300
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - vertices_span
    - S2Loop::set_s2debug_override
    - std::move
    - S2Loop::InitIndex
    - GetLoopIndexPtr
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, PointersCorrectAfterMove)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEBUG_DEATH
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1305,1
    - Dst: CheckLoopIsInvalid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1306,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1306,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1306,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1309
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - EXPECT_DEBUG_DEATH
    - CheckLoopIsInvalid
    linkageType: ''
    returnType: void
    signature: void TEST(S2LoopDeathTest, IsValidDetectsInvalidLoops)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1318,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1320,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1321,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1321,1
    - Dst: ProjectToBoundary
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1321,1
    - Dst: is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1323,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1324,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1324,1
    - Dst: GetDistanceToBoundary
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1324,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1327,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1327,1
    - Dst: GetDistanceToBoundary
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1328,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1328,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1330,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1331,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1331,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1331,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1332,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1332,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1334,1
    - Dst: GetDistanceToBoundary
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1334,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1334,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1335,1
    - Dst: ProjectToBoundary
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1335,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' loop'
    - ' x'
    - boundary_x
    argTypes:
    - S2Loop
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1315
    functionDepth: 3
    functionLinenumber: 1315
    functionLinenumberEnd: 1337
    functionName: TestDistanceMethods
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 1
    functionsReached:
    - Contains
    - S1Angle::Zero
    - EXPECT_NEAR
    - S2Point
    - S1Angle::Radians
    - ProjectToBoundary
    - S1Angle
    - EXPECT_LE
    - GetDistance
    - EXPECT_EQ
    - S1Angle::Infinity
    - S1Angle::degrees
    - is_empty_or_full
    - GetDistanceToBoundary
    - Project
    linkageType: ''
    returnType: void
    signature: "void TestDistanceMethods(const S2Loop& loop, const S2Point& x,\n                                S2Point
      boundary_x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1343,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1343,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1343,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1344,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1344,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1344,1
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1350,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1351,1
    - Dst: unique_ptr::IsNormalized
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1351,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1354,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1354,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1355,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1357,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1357,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1358,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1360,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1360,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1361,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1363,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1363,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1364,1
    - Dst: TestDistanceMethods
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1366,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1366,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1368
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - MakeLoopOrDie
    - EXPECT_TRUE
    - S2Point
    - TestDistanceMethods
    - unique_ptr::IsNormalized
    - S2LatLng::FromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, DistanceMethods)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1371,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1372,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1373,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1375,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1375,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1376,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1377,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1378,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1379,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1381,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1381,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1381,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1382,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1382,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1382,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1383,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1383,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1383,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1384,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1384,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1384,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1386,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1386,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1387,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1387,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1388,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1388,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1389,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1389,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1391,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1392,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1392,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1393,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1394,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1394,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1395,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1396,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1396,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1397,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1398,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1398,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1402,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1402,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1403,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1403,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1404,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1404,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1405,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1405,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1406,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1406,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1407,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1407,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1408,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1408,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1409,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1370
    functionDepth: 1
    functionLinenumber: 1370
    functionLinenumberEnd: 1410
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_DOUBLE_EQ
    - S2Loop::MakeRegularLoop
    - S2LatLng
    - S1Angle::Degrees
    - Angle
    - S2LatLng::FromDegrees
    - unique_ptr::vertex
    - unique_ptr::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2LoopTestBase, MakeRegularLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1413,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1414,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1415,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1415,1
    - Dst: S2Loop::Shape::loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1415,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1416,1
    - Dst: S2Loop::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1416,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1417,1
    - Dst: S2Loop::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1417,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1418,1
    - Dst: S2Loop::Shape::chain
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1418,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1419,1
    - Dst: S2Loop::Shape::chain
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1419,1
    - Dst: S2Loop::Shape::edge
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1420,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1421,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1421,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1422,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1422,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1423,1
    - Dst: S2Loop::Shape::dimension
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1423,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1424,1
    - Dst: S2Loop::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1424,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1425,1
    - Dst: S2Loop::Shape::is_full
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1425,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1426,1
    - Dst: S2Loop::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1427
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::Shape::GetReferencePoint
    - MakeLoopOrDie
    - S2Loop::Shape::chain
    - s2textformat::ToString
    - S2Loop::Shape::num_edges
    - unique_ptr::get
    - S2Loop::Shape::is_empty
    - S2Loop::Shape::is_full
    - S2Loop::Shape::num_chains
    - EXPECT_EQ
    - S2Loop::Shape::edge
    - S2Loop::Shape::dimension
    - EXPECT_FALSE
    - S2Loop::Shape::loop
    linkageType: ''
    returnType: void
    signature: void TEST(S2LoopShape, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1432,1
    - Dst: S2Loop::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1432,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1433,1
    - Dst: S2Loop::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1433,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1434,1
    - Dst: S2Loop::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1434,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1435,1
    - Dst: S2Loop::Shape::is_full
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1435,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1436,1
    - Dst: S2Loop::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1437
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::Shape::GetReferencePoint
    - EXPECT_TRUE
    - S2Loop::Shape::num_edges
    - S2Loop::Shape::is_empty
    - S2Loop::Shape::is_full
    - S2Loop::Shape::num_chains
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LoopShape, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1442,1
    - Dst: S2Loop::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1442,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1443,1
    - Dst: S2Loop::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1443,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1444,1
    - Dst: S2Loop::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1444,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1445,1
    - Dst: S2Loop::Shape::is_full
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1445,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1446,1
    - Dst: S2Loop::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1447
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::Shape::GetReferencePoint
    - EXPECT_TRUE
    - S2Loop::Shape::num_edges
    - S2Loop::Shape::is_empty
    - S2Loop::Shape::is_full
    - S2Loop::Shape::num_chains
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LoopShape, FullLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1451,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1453
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kEmpty
    - make_unique<S2Loop>
    linkageType: ''
    returnType: void
    signature: void TEST(S2LoopOwningShape, Ownership)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::OwningShape::OwningShape
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1456,1
    - Dst: S2Loop::OwningShape::Init
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1457,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1457,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1458
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kEmpty
    - S2Loop::OwningShape::Init
    - make_unique<S2Loop>
    - S2Loop::OwningShape::OwningShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2LoopOwningShape, Init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1461,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1460
    functionDepth: 1
    functionLinenumber: 1460
    functionLinenumberEnd: 1462
    functionName: GetDefaultRadius
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 9
    functionsReached:
    - S2Testing::KmToAngle
    - absl::GetFlag
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetDefaultRadius()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1467,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1469,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1469,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1470,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1470,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1473,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1474,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1474,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1475,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1475,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1477,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1477,1
    - Dst: S2Loop::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1480,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1466
    functionDepth: 4
    functionLinenumber: 1466
    functionLinenumberEnd: 1484
    functionName: BM_Constructor
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - string::begin
    - s2random::Point
    - StrCat
    - KeepRunningBatch
    - GetDefaultRadius
    - string::end
    - range
    - vector::size
    - S2Loop::ForceBuildIndex
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void BM_Constructor(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1489,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1490,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1491,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1491,1
    - Dst: std::unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1492,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1500,1
    - Dst: std::memcpy
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1501,1
    - Dst: UniqueS2PointArray::get
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1501,1
    - Dst: std::unique_ptr::vertices_span
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1501,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1503,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1505,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1506
    functionName: BM_AllocCopyVertices
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::ForceBuildIndex
    - MakeS2PointArrayForOverwrite
    - std::memcpy
    - UniqueS2PointArray::get
    - S2Point
    - S2Loop::MakeRegularLoop
    - range
    - SetItemsProcessed
    - iterations
    - S2Testing::KmToAngle
    - benchmark::DoNotOptimize
    - std::unique_ptr::vertices_span
    linkageType: ''
    returnType: void
    signature: void BM_AllocCopyVertices(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1515,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1516,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1517,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1517,1
    - Dst: std::unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1518,1
    - Dst: std::unique_ptr::Clone
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1521,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1522,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1524,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1525
    functionName: BM_Clone
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::ForceBuildIndex
    - std::unique_ptr::Clone
    - S2Point
    - S2Loop::MakeRegularLoop
    - range
    - SetItemsProcessed
    - iterations
    - S2Testing::KmToAngle
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_Clone(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1529,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1530,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1531,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1531,1
    - Dst: std::unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1532,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1535,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1537,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1538
    functionName: BM_CopyConstruct
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::ForceBuildIndex
    - S2Point
    - S2Loop::MakeRegularLoop
    - range
    - SetItemsProcessed
    - iterations
    - S2Testing::KmToAngle
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_CopyConstruct(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1542,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1543,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1544,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1544,1
    - Dst: std::unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1545,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1546,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1549,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1551,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1552
    functionName: BM_CopyAssign
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::ForceBuildIndex
    - S2Loop::S2Loop
    - S2Point
    - S2Loop::MakeRegularLoop
    - range
    - SetItemsProcessed
    - iterations
    - S2Testing::KmToAngle
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_CopyAssign(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1556,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1557,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1558,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1558,1
    - Dst: std::unique_ptr::ForceBuildIndex
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1559,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1561,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1563,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1564,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1566,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1567,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1570,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1571
    functionName: BM_MoveAssign
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::ForceBuildIndex
    - S2Loop::S2Loop
    - S2Point
    - S2Loop::MakeRegularLoop
    - std::move
    - range
    - SetItemsProcessed
    - iterations
    - S2Testing::KmToAngle
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_MoveAssign(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1581,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1583,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1585,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1586,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1586,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bitgen
    - radius
    - num_vertices
    argTypes:
    - absl::BitGenRef
    - S1Angle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1578
    functionDepth: 4
    functionLinenumber: 1578
    functionLinenumberEnd: 1590
    functionName: GetRegularLoops
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2random::Point
    - vector::reserve
    - S2Loop::MakeRegularLoop
    - vector::back
    - absl::GetFlag
    linkageType: ''
    returnType: vector<unique_ptr<S2Loop>>
    signature: "vector<unique_ptr<S2Loop>> GetRegularLoops(absl::BitGenRef bitgen,\n
      \                                                 S1Angle radius,\n                                                  int
      num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1595,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1595,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1596,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1596,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1599,1
    - Dst: GetRegularLoops
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1601,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1601,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1602,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1603,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1603,1
    - Dst: IsValid
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1605,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1593
    functionDepth: 5
    functionLinenumber: 1593
    functionLinenumberEnd: 1609
    functionName: BM_IsValid
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - GetRegularLoops
    - string::begin
    - StrCat
    - KeepRunningBatch
    - GetDefaultRadius
    - string::end
    - IsValid
    - range
    - ABSL_VLOG
    - vector::size
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_IsValid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1620,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1620,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1621,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1621,1
    - Dst: GetRegularLoops
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1625,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1625,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1625,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1626,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1626,1
    - Dst: GetArea
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1628,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1618
    functionDepth: 5
    functionLinenumber: 1618
    functionLinenumberEnd: 1632
    functionName: BM_GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - GetRegularLoops
    - string::begin
    - StrCat
    - KeepRunningBatch
    - GetDefaultRadius
    - string::end
    - range
    - vector::size
    - GetArea
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_GetArea(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1640,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1640,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1641,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1641,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1644,1
    - Dst: GetRegularLoops
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1646,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1646,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1647,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1649,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1651,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1652,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1652,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1656,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1656,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1657,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1659,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1638
    functionDepth: 5
    functionLinenumber: 1638
    functionLinenumberEnd: 1664
    functionName: BM_ContainsPoint
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - GetRegularLoops
    - string::begin
    - StrCat
    - KeepRunningBatch
    - GetDefaultRadius
    - string::end
    - range
    - push_back
    - GetRectBound
    - vector::size
    - s2random::SamplePoint
    - Contains
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_ContainsPoint(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1676,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1676,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1677,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1677,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1682,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1683,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1684,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1686,1
    - Dst: S2Loop::Encode
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1687,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1688,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1689,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1691,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1691,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1692,1
    - Dst: S2Loop::Decode
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1692,1
    - Dst: S2Loop::Init
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1694,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1697,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ' state'
    - num_vertices
    - num_calls
    - should_contain
    - decode
    argTypes:
    - benchmark::State
    - int
    - int
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1672
    functionDepth: 4
    functionLinenumber: 1672
    functionLinenumberEnd: 1700
    functionName: BenchmarkConstructAndContains
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - s2random::Point
    - StrCat
    - KeepRunningBatch
    - S2Loop::Init
    - GetDefaultRadius
    - S2Loop::S2Loop
    - string::end
    - ABSL_CHECK
    - ABSL_CHECK_EQ
    - Encoder::length
    - Encoder::base
    - Encoder::Encoder
    - S2Loop::Decode
    - S2Loop::Contains
    - absl::GetFlag
    - S2Loop::Encode
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: "void BenchmarkConstructAndContains(benchmark::State& state,\n                                          int
      num_vertices, int num_calls,\n                                          bool
      should_contain, bool decode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1703,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1704,1
    - Dst: BenchmarkConstructAndContains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1702
    functionDepth: 5
    functionLinenumber: 1702
    functionLinenumberEnd: 1707
    functionName: BM_ConstructAndContainsTrue
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkConstructAndContains
    - range
    linkageType: ''
    returnType: void
    signature: void BM_ConstructAndContainsTrue(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1712,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1713,1
    - Dst: BenchmarkConstructAndContains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1711
    functionDepth: 5
    functionLinenumber: 1711
    functionLinenumberEnd: 1716
    functionName: BM_ConstructAndContainsFalse
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkConstructAndContains
    - range
    linkageType: ''
    returnType: void
    signature: void BM_ConstructAndContainsFalse(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1721,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1722,1
    - Dst: BenchmarkConstructAndContains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1720
    functionDepth: 5
    functionLinenumber: 1720
    functionLinenumberEnd: 1725
    functionName: BM_DecodeAndContainsTrue
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkConstructAndContains
    - range
    linkageType: ''
    returnType: void
    signature: void BM_DecodeAndContainsTrue(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1730,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1731,1
    - Dst: BenchmarkConstructAndContains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1729
    functionDepth: 5
    functionLinenumber: 1729
    functionLinenumberEnd: 1734
    functionName: BM_DecodeAndContainsFalse
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkConstructAndContains
    - range
    linkageType: ''
    returnType: void
    signature: void BM_DecodeAndContainsFalse(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1758,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1764,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1767,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1770,1
    - Dst: vector<unique_ptr<S2Loop>>*::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1771,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1772,1
    - Dst: vector<unique_ptr<S2Loop>>*::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1773,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1773,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1774,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1774,1
    - Dst: vector<unique_ptr<S2Loop>>*::back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1775,1
    - Dst: vector<unique_ptr<S2Loop>>*::back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - bitgen
    - outer_radius
    - gap_edge_multiple
    - num_vertices
    - outer_loops
    - inner_loops
    argTypes:
    - absl::BitGenRef
    - S1Angle
    - double
    - int
    - vector<unique_ptr<S2Loop>>*
    - vector<unique_ptr<S2Loop>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1751
    functionDepth: 5
    functionLinenumber: 1751
    functionLinenumberEnd: 1778
    functionName: GetNestedLoopPairs
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 3
    functionsReached:
    - s2random::FrameAt
    - Matrix3x3_d::Col
    - s2random::Frame
    - S2Loop::MakeRegularLoop
    - vector<unique_ptr<S2Loop>>*::push_back
    - vector<unique_ptr<S2Loop>>*::back
    - max
    - absl::GetFlag
    - cos
    linkageType: ''
    returnType: void
    signature: "void GetNestedLoopPairs(absl::BitGenRef bitgen,  //\n                               S1Angle
      outer_radius, double gap_edge_multiple,\n                               int
      num_vertices,\n                               vector<unique_ptr<S2Loop>>* outer_loops,\n
      \                              vector<unique_ptr<S2Loop>>* inner_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1794,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1795,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1799,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1800,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1810,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1811,1
    - Dst: vector<unique_ptr<S2Loop>>*::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1812,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1812,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1813,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1814,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1814,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1815,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1816,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1816,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1816,1
    - Dst: vector<unique_ptr<S2Loop>>*::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1817,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1817,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1818,1
    - Dst: vector<unique_ptr<S2Loop>>*::back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1819,1
    - Dst: vector<unique_ptr<S2Loop>>*::back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - bitgen
    - a_radius
    - b_radius
    - num_vertices
    - a_loops
    - b_loops
    argTypes:
    - absl::BitGenRef
    - S1Angle
    - S1Angle
    - int
    - vector<unique_ptr<S2Loop>>*
    - vector<unique_ptr<S2Loop>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1785
    functionDepth: 5
    functionLinenumber: 1785
    functionLinenumberEnd: 1822
    functionName: GetCrossingLoopPairs
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 2
    functionsReached:
    - Matrix3x3_d::Col
    - s2random::FrameAt
    - s2random::Point
    - S2::GetPointOnLine
    - s2random::Frame
    - S2Loop::MakeRegularLoop
    - S1Angle::Radians
    - min
    - ABSL_CHECK_GT
    - vector<unique_ptr<S2Loop>>*::push_back
    - S1Angle::radians
    - s2random::LogUniform
    - vector<unique_ptr<S2Loop>>*::back
    - max
    - absl::GetFlag
    - cos
    linkageType: ''
    returnType: void
    signature: "void GetCrossingLoopPairs(absl::BitGenRef bitgen,  //\n                                 S1Angle
      a_radius, S1Angle b_radius,\n                                 int num_vertices,\n
      \                                vector<unique_ptr<S2Loop>>* a_loops,\n                                 vector<unique_ptr<S2Loop>>*
      b_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1849,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1851,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1854,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1856,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1857,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1861,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1861,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1862,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1863,1
    - Dst: S2Testing::AppendLoopVertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1864,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1865,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1865,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1865,1
    - Dst: S2Testing::AppendLoopVertices
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1866,1
    - Dst: vector<unique_ptr<S2Loop>>*::emplace_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1867,1
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1867,1
    - Dst: vector<unique_ptr<S2Loop>>*::push_back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1870,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1870,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1871,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1871,1
    - Dst: vector<unique_ptr<S2Loop>>*::back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1872,1
    - Dst: vector<unique_ptr<S2Loop>>*::back
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - bitgen
    - outer_radius
    - gap_edge_multiple
    - num_vertices
    - outer_loops
    - inner_loops
    argTypes:
    - absl::BitGenRef
    - S1Angle
    - double
    - int
    - vector<unique_ptr<S2Loop>>*
    - vector<unique_ptr<S2Loop>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1842
    functionDepth: 5
    functionLinenumber: 1842
    functionLinenumberEnd: 1875
    functionName: GetDisjointLoopPairs
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - S2Testing::AppendLoopVertices
    - Matrix3x3_d::Col
    - std::reverse
    - S2Loop::S2Loop
    - s2random::Frame
    - S2Loop::MakeRegularLoop
    - vector<unique_ptr<S2Loop>>*::emplace_back
    - vector::end
    - vector<unique_ptr<S2Loop>>*::push_back
    - vector::begin
    - vector<unique_ptr<S2Loop>>*::back
    - max
    - absl::GetFlag
    - cos
    linkageType: ''
    returnType: void
    signature: "void GetDisjointLoopPairs(absl::BitGenRef bitgen, S1Angle outer_radius,\n
      \                                double gap_edge_multiple, int num_vertices,\n
      \                                vector<unique_ptr<S2Loop>>* outer_loops,\n
      \                                vector<unique_ptr<S2Loop>>* inner_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1886,1
    - Dst: vector<unique_ptr<S2Loop>>*::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1886,1
    - Dst: vector<unique_ptr<S2Loop>>*::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1886,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1887,1
    - Dst: vector<unique_ptr<S2Loop>>*::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1887,1
    - Dst: vector<unique_ptr<S2Loop>>*::size
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1888,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' state'
    - expected_result
    - a_loops
    - b_loops
    argTypes:
    - benchmark::State
    - T
    - vector<unique_ptr<S2Loop>>*
    - vector<unique_ptr<S2Loop>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1881
    functionDepth: 0
    functionLinenumber: 1881
    functionLinenumberEnd: 1894
    functionName: BenchmarkLoopRelation
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - vector<unique_ptr<S2Loop>>*::size
    - KeepRunningBatch
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void BenchmarkLoopRelation(benchmark::State& state,\n                                  T
      (S2Loop::*method)(const S2Loop& b) const,\n                                  T
      expected_result,\n                                  vector<unique_ptr<S2Loop>>*
      a_loops,\n                                  vector<unique_ptr<S2Loop>>* b_loops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1904,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1905,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1906,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1906,1
    - Dst: GetNestedLoopPairs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1910,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1910,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1911,1
    - Dst: BenchmarkLoopRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' state'
    - expected_result
    - num_vertices
    argTypes:
    - benchmark::State
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1900
    functionDepth: 1
    functionLinenumber: 1900
    functionLinenumberEnd: 1914
    functionName: BenchmarkRelationContains
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 2
    functionsReached:
    - GetNestedLoopPairs
    - string::begin
    - StrCat
    - GetDefaultRadius
    - string::end
    - absl::GetFlag
    - BenchmarkLoopRelation
    linkageType: ''
    returnType: void
    signature: "void BenchmarkRelationContains(benchmark::State& state,\n                                      T
      (S2Loop::*method)(const S2Loop& b)\n                                          const,\n
      \                                     T expected_result, int num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1924,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1925,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1926,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1926,1
    - Dst: GetDisjointLoopPairs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1930,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1930,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1931,1
    - Dst: BenchmarkLoopRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' state'
    - expected_result
    - num_vertices
    argTypes:
    - benchmark::State
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1920
    functionDepth: 6
    functionLinenumber: 1920
    functionLinenumberEnd: 1934
    functionName: BenchmarkRelationDisjoint
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - GetDefaultRadius
    - string::end
    - GetDisjointLoopPairs
    - absl::GetFlag
    - BenchmarkLoopRelation
    linkageType: ''
    returnType: void
    signature: "void BenchmarkRelationDisjoint(benchmark::State& state,\n                                      T
      (S2Loop::*method)(const S2Loop& b)\n                                          const,\n
      \                                     T expected_result, int num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1944,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1944,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1945,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1945,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1949,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1951,1
    - Dst: GetCrossingLoopPairs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1952,1
    - Dst: BenchmarkLoopRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' state'
    - expected_result
    - num_vertices
    argTypes:
    - benchmark::State
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 1955
    functionName: BenchmarkRelationCrosses
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 2
    functionsReached:
    - string::begin
    - StrCat
    - GetDefaultRadius
    - string::end
    - GetCrossingLoopPairs
    - absl::GetFlag
    - BenchmarkLoopRelation
    linkageType: ''
    returnType: void
    signature: "void BenchmarkRelationCrosses(benchmark::State& state,\n                                     T
      (S2Loop::*method)(const S2Loop& b) const,\n                                     T
      expected_result, int num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1964,1
    - Dst: BenchmarkRelationContains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1963
    functionDepth: 0
    functionLinenumber: 1963
    functionLinenumberEnd: 1966
    functionName: BM_CompareBoundaryContains
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelationContains
    - range
    linkageType: ''
    returnType: void
    signature: void BM_CompareBoundaryContains(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1971,1
    - Dst: BenchmarkRelationDisjoint
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1970
    functionDepth: 7
    functionLinenumber: 1970
    functionLinenumberEnd: 1973
    functionName: BM_CompareBoundaryDisjoint
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationDisjoint
    linkageType: ''
    returnType: void
    signature: void BM_CompareBoundaryDisjoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1978,1
    - Dst: BenchmarkRelationCrosses
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1977
    functionDepth: 0
    functionLinenumber: 1977
    functionLinenumberEnd: 1980
    functionName: BM_CompareBoundaryCrosses
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationCrosses
    linkageType: ''
    returnType: void
    signature: void BM_CompareBoundaryCrosses(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1985,1
    - Dst: BenchmarkRelationContains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1984
    functionDepth: 0
    functionLinenumber: 1984
    functionLinenumberEnd: 1987
    functionName: BM_ContainsContains
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelationContains
    - range
    linkageType: ''
    returnType: void
    signature: void BM_ContainsContains(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1992,1
    - Dst: BenchmarkRelationDisjoint
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1991
    functionDepth: 7
    functionLinenumber: 1991
    functionLinenumberEnd: 1994
    functionName: BM_ContainsDisjoint
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationDisjoint
    linkageType: ''
    returnType: void
    signature: void BM_ContainsDisjoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:1999,1
    - Dst: BenchmarkRelationCrosses
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2001
    functionName: BM_ContainsCrosses
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationCrosses
    linkageType: ''
    returnType: void
    signature: void BM_ContainsCrosses(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2006,1
    - Dst: BenchmarkRelationContains
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 2005
    functionDepth: 0
    functionLinenumber: 2005
    functionLinenumberEnd: 2008
    functionName: BM_IntersectsContains
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkRelationContains
    - range
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsContains(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2014,1
    - Dst: BenchmarkRelationDisjoint
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2013
    functionDepth: 7
    functionLinenumber: 2013
    functionLinenumberEnd: 2016
    functionName: BM_IntersectsDisjoint
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationDisjoint
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsDisjoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2022,1
    - Dst: BenchmarkRelationCrosses
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2024
    functionName: BM_IntersectsCrosses
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - range
    - BenchmarkRelationCrosses
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsCrosses(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2031,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2032,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2033,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2034,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2034,1
    - Dst: GetNestedLoopPairs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2037,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2037,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2038,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2039,1
    - Dst: BenchmarkLoopRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2030
    functionDepth: 1
    functionLinenumber: 2030
    functionLinenumberEnd: 2042
    functionName: BM_ContainsVsRadiusMeters
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - GetNestedLoopPairs
    - StrCat
    - string::end
    - S2Testing::MetersToAngle
    - range
    - absl::GetFlag
    - BenchmarkLoopRelation
    linkageType: ''
    returnType: void
    signature: void BM_ContainsVsRadiusMeters(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2051,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2052,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2053,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2054,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2054,1
    - Dst: GetNestedLoopPairs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2057,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2057,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2058,1
    - Dst: BenchmarkLoopRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2050
    functionDepth: 1
    functionLinenumber: 2050
    functionLinenumberEnd: 2061
    functionName: BM_ContainsVsEdgeGapMultiple
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - GetNestedLoopPairs
    - StrCat
    - GetDefaultRadius
    - string::end
    - range
    - absl::GetFlag
    - BenchmarkLoopRelation
    linkageType: ''
    returnType: void
    signature: void BM_ContainsVsEdgeGapMultiple(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2070,1
    - Dst: GetDefaultRadius
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2072,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2073,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2074,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2075,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2076,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2076,1
    - Dst: GetCrossingLoopPairs
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2078,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2079,1
    - Dst: BenchmarkLoopRelation
      Src: /src/s2geometry/src/s2/s2loop_test.cc:2081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2069
    functionDepth: 1
    functionLinenumber: 2069
    functionLinenumberEnd: 2082
    functionName: BM_IntersectsCrossesVsLogRadiusRatio
    functionSourceFile: /src/s2geometry/src/s2/s2loop_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - GetDefaultRadius
    - string::end
    - range
    - pow
    - GetCrossingLoopPairs
    - absl::GetFlag
    - BenchmarkLoopRelation
    linkageType: ''
    returnType: void
    signature: void BM_IntersectsCrossesVsLogRadiusRatio(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polyline
    - ' options'
    argTypes:
    - S2Polyline*
    - S2PolylineLayer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: s2builderutil::S2PolylineLayer::S2PolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolylineLayer::S2PolylineLayer(S2Polyline* polyline,\n                                 const
      S2PolylineLayer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polyline
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2Polyline*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: s2builderutil::S2PolylineLayer::S2PolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolylineLayer::S2PolylineLayer(\n    S2Polyline* polyline,
      LabelSetIds* label_set_ids,\n    IdSetLexicon* label_set_lexicon, const Options&
      options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:63,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:69,1
    - Dst: set_s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - polyline
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2Polyline*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: s2builderutil::S2PolylineLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 2
    functionsReached:
    - set_s2debug_override
    - ABSL_DCHECK_EQ
    - validate
    linkageType: ''
    returnType: void
    signature: "void S2PolylineLayer::Init(S2Polyline* polyline, LabelSetIds* label_set_ids,\n
      \                          IdSetLexicon* label_set_lexicon,\n                           const
      Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:78,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: s2builderutil::S2PolylineLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - edge_type
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions S2PolylineLayer::graph_options() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:83,1
    - Dst: s2builderutil::S2PolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:84,1
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:88,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:89,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:90,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:96,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:96,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:97,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:97,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:97,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:99,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:99,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:99,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:102,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:104,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:104,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:106,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:107,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:107,1
    - Dst: s2builderutil::S2PolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:110,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:111,1
    - Dst: FindValidationError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 114
    functionName: s2builderutil::S2PolylineLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Add
    - edge_type
    - reserve
    - S2Error
    - FindValidationError
    - num_edges
    - size
    - vector::reserve
    - Graph::LabelFetcher::Fetch
    - push_back
    - vertex
    - edge
    - validate
    - GetPolylines
    - s2builderutil::S2PolylineLayer::Init
    - vector::size
    linkageType: ''
    returnType: void
    signature: void S2PolylineLayer::Build(const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polyline
    - ' options'
    argTypes:
    - S2Polyline*
    - S2PolylineLayer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: s2builderutil::S2PolylineLayer::S2PolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolylineLayer::S2PolylineLayer(S2Polyline* polyline,\n                                 const
      S2PolylineLayer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polyline
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2Polyline*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: s2builderutil::S2PolylineLayer::S2PolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolylineLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolylineLayer::S2PolylineLayer(\n    S2Polyline* polyline,
      LabelSetIds* label_set_ids,\n    IdSetLexicon* label_set_lexicon, const Options&
      options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:63,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:69,1
    - Dst: set_s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - polyline
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - S2Polyline*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: s2builderutil::S2PolylineLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 5
    functionsReached:
    - set_s2debug_override
    - ABSL_DCHECK_EQ
    - validate
    linkageType: ''
    returnType: void
    signature: "void S2PolylineLayer::Init(S2Polyline* polyline, LabelSetIds* label_set_ids,\n
      \                          IdSetLexicon* label_set_lexicon,\n                           const
      Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:78,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: s2builderutil::S2PolylineLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - edge_type
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions S2PolylineLayer::graph_options() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:83,1
    - Dst: s2builderutil::S2PolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:84,1
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:88,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:89,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:90,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:96,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:96,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:97,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:97,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:97,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:99,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:99,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:99,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:102,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:104,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:104,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:106,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:107,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:107,1
    - Dst: s2builderutil::S2PolylineLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:110,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:111,1
    - Dst: FindValidationError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 114
    functionName: s2builderutil::S2PolylineLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Add
    - edge_type
    - reserve
    - S2Error
    - FindValidationError
    - num_edges
    - size
    - vector::reserve
    - Graph::LabelFetcher::Fetch
    - push_back
    - vertex
    - edge
    - validate
    - GetPolylines
    - s2builderutil::S2PolylineLayer::Init
    - vector::size
    linkageType: ''
    returnType: void
    signature: void S2PolylineLayer::Build(const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:40,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LaxPolylineShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: S2LaxPolylineShape::S2LaxPolylineShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 3
    functionsReached:
    - std::move
    - std::exchange
    linkageType: ''
    returnType: void
    signature: void S2LaxPolylineShape::S2LaxPolylineShape(S2LaxPolylineShape&& other)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:45,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LaxPolylineShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: "& S2LaxPolylineShape::operator=(\n    S2LaxPolylineShape&& other)
      noexcept"
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 0
    functionsReached:
    - std::move
    - std::exchange
    linkageType: ''
    returnType: S2LaxPolylineShape
    signature: "S2LaxPolylineShape & S2LaxPolylineShape::operator=(\n    S2LaxPolylineShape&&
      other) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolylineShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: S2LaxPolylineShape::S2LaxPolylineShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 3
    functionsReached:
    - S2LaxPolylineShape::Init
    linkageType: ''
    returnType: void
    signature: void S2LaxPolylineShape::S2LaxPolylineShape(Span<const S2Point> vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolylineShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' polyline'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: S2LaxPolylineShape::S2LaxPolylineShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 3
    functionsReached:
    - S2LaxPolylineShape::Init
    linkageType: ''
    returnType: void
    signature: void S2LaxPolylineShape::S2LaxPolylineShape(const S2Polyline& polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:59,1
    - Dst: ABSL_LOG_IF
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:60,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:62,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:63,1
    - Dst: Span<const S2Point>::data
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:63,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: S2LaxPolylineShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 3
    functionsReached:
    - Span<const S2Point>::size
    - MakeS2PointArrayForOverwrite
    - get
    - Span<const S2Point>::data
    - ABSL_LOG_IF
    - std::copy_n
    linkageType: ''
    returnType: void
    signature: void S2LaxPolylineShape::Init(Span<const S2Point> vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:67,1
    - Dst: ABSL_LOG_IF
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:68,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:70,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:71,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:71,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' polyline'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: S2LaxPolylineShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 3
    functionsReached:
    - MakeS2PointArrayForOverwrite
    - get
    - S2LaxPolylineShape::num_vertices
    - vertex
    - ABSL_LOG_IF
    - std::copy_n
    linkageType: ''
    returnType: void
    signature: void S2LaxPolylineShape::Init(const S2Polyline& polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeS2PointVector
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:76,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:76,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - encoder
    - hint
    argTypes:
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: S2LaxPolylineShape::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 1
    functionsReached:
    - MakeSpan
    - s2coding::EncodeS2PointVector
    - get
    linkageType: ''
    returnType: void
    signature: "void S2LaxPolylineShape::Encode(Encoder* encoder,\n                                s2coding::CodingHint
      hint) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2PointVector::EncodedS2PointVector
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:81,1
    - Dst: s2coding::EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:82,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:83,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:84,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:84,1
    - Dst: s2coding::EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:85,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:85,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:85,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: S2LaxPolylineShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 3
    functionsReached:
    - absl::MakeSpan
    - s2coding::EncodedS2PointVector::Decode
    - MakeS2PointArrayForOverwrite
    - get
    - s2coding::EncodedS2PointVector::size
    - s2coding::EncodedS2PointVector::Init
    - s2coding::EncodedS2PointVector::EncodedS2PointVector
    linkageType: ''
    returnType: bool
    signature: bool S2LaxPolylineShape::Init(Decoder* decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2PointVector::EncodedS2PointVector
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:89,1
    - Dst: s2coding::EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:90,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:91,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:92,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:92,1
    - Dst: s2coding::EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:93,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:93,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:93,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:93,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: S2LaxPolylineShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 3
    functionsReached:
    - absl::MakeSpan
    - s2coding::EncodedS2PointVector::Decode
    - MakeS2PointArrayForOverwrite
    - get
    - s2coding::EncodedS2PointVector::size
    - s2coding::EncodedS2PointVector::Init
    - ok
    - s2coding::EncodedS2PointVector::EncodedS2PointVector
    linkageType: ''
    returnType: bool
    signature: bool S2LaxPolylineShape::Init(Decoder* decoder, S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:98,1
    - Dst: S2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:98,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:99,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:99,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: S2LaxPolylineShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 1
    functionsReached:
    - S2LaxPolylineShape::num_edges
    - vertex
    - Edge
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2LaxPolylineShape::edge(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:103,1
    - Dst: S2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: S2LaxPolylineShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 3
    functionsReached:
    - S2LaxPolylineShape::num_edges
    - min
    linkageType: ''
    returnType: int
    signature: int S2LaxPolylineShape::num_chains() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:107,1
    - Dst: S2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: S2LaxPolylineShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 1
    functionsReached:
    - Chain
    - S2LaxPolylineShape::num_edges
    linkageType: ''
    returnType: S2Shape::Chain
    signature: S2Shape::Chain S2LaxPolylineShape::chain(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:111,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:112,1
    - Dst: S2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:112,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:113,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:113,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: S2LaxPolylineShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    - S2LaxPolylineShape::num_edges
    - vertex
    - ABSL_DCHECK_LT
    - Edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2LaxPolylineShape::chain_edge(int i, int j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: S2LaxPolylineShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 0
    functionsReached:
    - S2Shape::ChainPosition
    linkageType: ''
    returnType: S2Shape::ChainPosition
    signature: S2Shape::ChainPosition S2LaxPolylineShape::chain_position(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2LaxPolylineShape::Init
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: EncodedS2LaxPolylineShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 2
    functionsReached:
    - EncodedS2LaxPolylineShape::Init
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2LaxPolylineShape::Init(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2LaxPolylineShape::Encode
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: EncodedS2LaxPolylineShape::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 2
    functionsReached:
    - EncodedS2LaxPolylineShape::Encode
    linkageType: ''
    returnType: void
    signature: "void EncodedS2LaxPolylineShape::Encode(Encoder* encoder,\n                                       s2coding::CodingHint)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:131,1
    - Dst: EncodedS2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:131,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:132,1
    - Dst: EncodedS2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:132,1
    - Dst: EncodedS2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: EncodedS2LaxPolylineShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 0
    functionsReached:
    - Edge
    - EncodedS2LaxPolylineShape::vertex
    - EncodedS2LaxPolylineShape::num_edges
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge EncodedS2LaxPolylineShape::edge(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:136,1
    - Dst: EncodedS2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: EncodedS2LaxPolylineShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 0
    functionsReached:
    - EncodedS2LaxPolylineShape::num_edges
    - min
    linkageType: ''
    returnType: int
    signature: int EncodedS2LaxPolylineShape::num_chains() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:140,1
    - Dst: EncodedS2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: EncodedS2LaxPolylineShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 0
    functionsReached:
    - Chain
    - EncodedS2LaxPolylineShape::num_edges
    linkageType: ''
    returnType: S2Shape::Chain
    signature: S2Shape::Chain EncodedS2LaxPolylineShape::chain(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:144,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:145,1
    - Dst: EncodedS2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:145,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:146,1
    - Dst: EncodedS2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:146,1
    - Dst: EncodedS2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: EncodedS2LaxPolylineShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    - EncodedS2LaxPolylineShape::num_edges
    - EncodedS2LaxPolylineShape::vertex
    - ABSL_DCHECK_LT
    - Edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge EncodedS2LaxPolylineShape::chain_edge(int i, int j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: EncodedS2LaxPolylineShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
    functionUses: 0
    functionsReached:
    - S2Shape::ChainPosition
    linkageType: ''
    returnType: S2Shape::ChainPosition
    signature: S2Shape::ChainPosition EncodedS2LaxPolylineShape::chain_position(int
      e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete
      Src: /src/s2geometry/src/s2/s2point_array.h:35,1
    - Dst: std::align_val_t
      Src: /src/s2geometry/src/s2/s2point_array.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: operator()(S2Point* p) const
    functionSourceFile: /src/s2geometry/src/s2/s2point_array.h
    functionUses: 0
    functionsReached:
    - std::align_val_t
    - ::operator delete
    linkageType: ''
    returnType: void
    signature: void operator()(S2Point* p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_array.h:47,1
    - Dst: static_cast<S2Point*>
      Src: /src/s2geometry/src/s2/s2point_array.h:48,1
    - Dst: ::operator new
      Src: /src/s2geometry/src/s2/s2point_array.h:48,1
    - Dst: std::align_val_t
      Src: /src/s2geometry/src/s2/s2point_array.h:49,1
    - Dst: UniqueS2PointArray
      Src: /src/s2geometry/src/s2/s2point_array.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: s2internal::MakeS2PointArrayForOverwrite
    functionSourceFile: /src/s2geometry/src/s2/s2point_array.h
    functionUses: 0
    functionsReached:
    - UniqueS2PointArray
    - static_cast<S2Point*>
    - std::align_val_t
    - ::operator new
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: UniqueS2PointArray
    signature: UniqueS2PointArray MakeS2PointArrayForOverwrite(int32_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete
      Src: /src/s2geometry/src/s2/s2point_array.h:35,1
    - Dst: std::align_val_t
      Src: /src/s2geometry/src/s2/s2point_array.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: operator()(S2Point* p) const
    functionSourceFile: /src/s2geometry/src/s2/s2point_array.h
    functionUses: 0
    functionsReached:
    - std::align_val_t
    - ::operator delete
    linkageType: ''
    returnType: void
    signature: void operator()(S2Point* p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_array.h:47,1
    - Dst: static_cast<S2Point*>
      Src: /src/s2geometry/src/s2/s2point_array.h:48,1
    - Dst: ::operator new
      Src: /src/s2geometry/src/s2/s2point_array.h:48,1
    - Dst: std::align_val_t
      Src: /src/s2geometry/src/s2/s2point_array.h:49,1
    - Dst: UniqueS2PointArray
      Src: /src/s2geometry/src/s2/s2point_array.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: s2internal::MakeS2PointArrayForOverwrite
    functionSourceFile: /src/s2geometry/src/s2/s2point_array.h
    functionUses: 0
    functionsReached:
    - UniqueS2PointArray
    - static_cast<S2Point*>
    - std::align_val_t
    - ::operator new
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: UniqueS2PointArray
    signature: UniqueS2PointArray MakeS2PointArrayForOverwrite(int32_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: S2CellUnion::Iterator::Iterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Iterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2cell_union.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_union
    argTypes:
    - S2CellUnion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: S2CellUnion::Iterator::Iterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - Begin
    linkageType: ''
    returnType: void
    signature: void Iterator(const S2CellUnion* cell_union)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: S2CellUnion::S2CellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellUnion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2cell_union.h:176,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: S2CellUnion::num_cells
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 6
    functionsReached:
    - S2CellUnion::size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int num_cells() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: S2CellUnion::cell_id
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId cell_id(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: S2CellUnion::size
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 7
    functionsReached:
    - S2CellUnion::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: S2CellUnion::empty
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 3
    functionsReached:
    - S2CellUnion::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: operator[](int i) const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::data
      Src: /src/s2geometry/src/s2/s2cell_union.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: S2CellUnion::data
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 1
    functionsReached:
    - S2CellUnion::data
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId * data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::data
      Src: /src/s2geometry/src/s2/s2cell_union.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: S2CellUnion::data
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 2
    functionsReached:
    - S2CellUnion::data
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: '& cell_ids() const'
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<S2CellId>
    signature: std::vector<S2CellId> & cell_ids() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cell_ids
    - verbatim
    argTypes:
    - std::vector<S2CellId>
    - VerbatimFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 403
    functionName: S2CellUnion::S2CellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 17
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void S2CellUnion(std::vector<S2CellId> cell_ids, VerbatimFlag verbatim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union.h:416,1
    - Dst: S2CellUnion::Normalize
      Src: /src/s2geometry/src/s2/s2cell_union.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - std::vector<S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: S2CellUnion::S2CellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 17
    functionsReached:
    - std::move
    - S2CellUnion::Normalize
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::S2CellUnion(std::vector<S2CellId> cell_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.h:422,1
    - Dst: S2CellUnion::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union.h:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - std::vector<S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: S2CellUnion::FromNormalized
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 2
    functionsReached:
    - S2CellUnion::IsNormalized
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2CellUnion::FromNormalized(std::vector<S2CellId> cell_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.h:428,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union.h:428,1
    - Dst: S2CellUnion::IsValid
      Src: /src/s2geometry/src/s2/s2cell_union.h:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - std::vector<S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: S2CellUnion::FromVerbatim
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 2
    functionsReached:
    - S2CellUnion::IsValid
    - absl::GetFlag
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion S2CellUnion::FromVerbatim(std::vector<S2CellId> cell_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union.h:433,1
    - Dst: S2CellUnion::Normalize
      Src: /src/s2geometry/src/s2/s2cell_union.h:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - std::vector<S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: S2CellUnion::Init
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 3
    functionsReached:
    - std::move
    - S2CellUnion::Normalize
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Init(std::vector<S2CellId> cell_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<S2CellId>
      Src: /src/s2geometry/src/s2/s2cell_union.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: S2CellUnion::Clear
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - std::vector<S2CellId>
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2cell_union.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 449
    functionName: S2CellUnion::Release
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: std::vector<S2CellId>
    signature: std::vector<S2CellId> S2CellUnion::Release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: S2CellUnion::begin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 7
    functionsReached:
    - S2CellUnion::begin
    linkageType: ''
    returnType: std::vector<S2CellId>::const_iterator
    signature: std::vector<S2CellId>::const_iterator S2CellUnion::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union.h:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 457
    functionName: S2CellUnion::end
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 7
    functionsReached:
    - S2CellUnion::end
    linkageType: ''
    returnType: std::vector<S2CellId>::const_iterator
    signature: std::vector<S2CellId>::const_iterator S2CellUnion::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2cell_union.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' u'
    argTypes:
    - std::ostream
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: '& operator<<(std::ostream& os, const S2CellUnion& u)'
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const S2CellUnion& u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2cell_union.h:466,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union.h:466,1
    - Dst: absl::HashOf
      Src: /src/s2geometry/src/s2/s2cell_union.h:466,1
    - Dst: cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' u'
    argTypes:
    - H
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 467
    functionName: AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - cell_ids
    - std::move
    - H::combine
    - absl::HashOf
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const S2CellUnion& u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union.h:470,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_union.h:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: S2CellUnion::Iterator::id() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellUnion::Iterator::id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2cell_union.h:475,1
    - Dst: cell_ids_::end
      Src: /src/s2geometry/src/s2/s2cell_union.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: S2CellUnion::Iterator::done() const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - cell_ids_::end
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Iterator::done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2cell_union.h:480,1
    - Dst: cell_ids_::begin
      Src: /src/s2geometry/src/s2/s2cell_union.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: S2CellUnion::Iterator::Begin()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - cell_ids_::begin
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Iterator::Begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2cell_union.h:485,1
    - Dst: cell_ids_::end
      Src: /src/s2geometry/src/s2/s2cell_union.h:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: S2CellUnion::Iterator::Finish()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - cell_ids_::end
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Iterator::Finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: S2CellUnion::Iterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Iterator::Next()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2cell_union.h:492,1
    - Dst: cell_ids_::begin
      Src: /src/s2geometry/src/s2/s2cell_union.h:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 498
    functionName: S2CellUnion::Iterator::Prev()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - cell_ids_::begin
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Iterator::Prev()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2cell_union.h:501,1
    - Dst: absl::c_lower_bound
      Src: /src/s2geometry/src/s2/s2cell_union.h:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: S2CellUnion::Iterator::Seek(S2CellId target)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - absl::c_lower_bound
    linkageType: ''
    returnType: void
    signature: void S2CellUnion::Iterator::Seek(S2CellId target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/s2cell_union.h:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: S2CellUnion::Iterator::Locate(const S2Point& target)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: bool
    signature: bool S2CellUnion::Iterator::Locate(const S2Point& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/s2cell_union.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 511
    functionName: S2CellUnion::Iterator::Locate(S2CellId target)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union.h
    functionUses: 0
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: S2CellRelation
    signature: S2CellRelation S2CellUnion::Iterator::Locate(S2CellId target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:45,1
    - Dst: s2shapeutil::ShapeToS2Points
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:48,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:49,1
    - Dst: testing::ElementsAreArray
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAreArray
    - EXPECT_THAT
    - s2shapeutil::ShapeToS2Points
    - s2textformat::ParsePointsOrDie
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, PointVectorShapeToPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:55,1
    - Dst: s2shapeutil::ShapeToS2Polyline
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:58,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:58,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:60,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_vertices
    - s2shapeutil::ShapeToS2Polyline
    - s2textformat::ParsePointsOrDie
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, LineToS2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:66,1
    - Dst: s2shapeutil::ShapeToS2Polyline
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:69,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:69,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:71,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_vertices
    - s2shapeutil::ShapeToS2Polyline
    - s2textformat::ParsePointsOrDie
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, ClosedLineToS2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::ShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:84,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:85,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:85,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:86,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:87,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:89,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - loops
    - expected_num_loops
    - expected_num_vertices
    argTypes:
    - absl::Span<const S2LaxPolygonShape::Loop>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: s2shapeutil::VerifyShapeToS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_loops
    - num_vertices
    - unique_ptr::num_vertices
    - unique_ptr::loop
    - s2shapeutil::ShapeToS2Polygon
    - EXPECT_EQ
    - oriented_vertex
    linkageType: ''
    returnType: void
    signature: "void VerifyShapeToS2Polygon(absl::Span<const S2LaxPolygonShape::Loop>
      loops,\n                            int expected_num_loops, int expected_num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:97,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:99,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, PolygonWithHoleToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:108,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:110,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, MultiPolygonToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:118,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:120,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:122,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, TwoHolesToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:131,1
    - Dst: absl::Span::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:132,1
    - Dst: absl::Span::end
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:132,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:135,1
    - Dst: s2shapeutil::ShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:137,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:138,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:139,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:139,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:140,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:141,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:143,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kFull
    - unique_ptr::num_loops
    - num_vertices
    - unique_ptr::num_vertices
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygonOrDie
    - unique_ptr::is_full
    - unique_ptr::loop
    - absl::Span::begin
    - s2shapeutil::ShapeToS2Polygon
    - EXPECT_EQ
    - oriented_vertex
    - absl::Span::end
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, FullPolygonToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:45,1
    - Dst: s2shapeutil::ShapeToS2Points
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:48,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:49,1
    - Dst: testing::ElementsAreArray
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAreArray
    - EXPECT_THAT
    - s2shapeutil::ShapeToS2Points
    - s2textformat::ParsePointsOrDie
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, PointVectorShapeToPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:55,1
    - Dst: s2shapeutil::ShapeToS2Polyline
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:58,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:58,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:60,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_vertices
    - s2shapeutil::ShapeToS2Polyline
    - s2textformat::ParsePointsOrDie
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, LineToS2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:66,1
    - Dst: s2shapeutil::ShapeToS2Polyline
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:69,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:69,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:71,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_vertices
    - s2shapeutil::ShapeToS2Polyline
    - s2textformat::ParsePointsOrDie
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, ClosedLineToS2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::ShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:84,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:85,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:85,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:86,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:87,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:89,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - loops
    - expected_num_loops
    - expected_num_vertices
    argTypes:
    - absl::Span<const S2LaxPolygonShape::Loop>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: s2shapeutil::VerifyShapeToS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 3
    functionsReached:
    - unique_ptr::num_loops
    - num_vertices
    - unique_ptr::num_vertices
    - unique_ptr::loop
    - s2shapeutil::ShapeToS2Polygon
    - EXPECT_EQ
    - oriented_vertex
    linkageType: ''
    returnType: void
    signature: "void VerifyShapeToS2Polygon(absl::Span<const S2LaxPolygonShape::Loop>
      loops,\n                            int expected_num_loops, int expected_num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:97,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:99,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, PolygonWithHoleToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:108,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:110,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, MultiPolygonToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:118,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:120,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:122,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, TwoHolesToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:131,1
    - Dst: absl::Span::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:132,1
    - Dst: absl::Span::end
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:132,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:135,1
    - Dst: s2shapeutil::ShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:137,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:138,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:139,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:139,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:140,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:141,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:143,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kFull
    - unique_ptr::num_loops
    - num_vertices
    - unique_ptr::num_vertices
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygonOrDie
    - unique_ptr::is_full
    - unique_ptr::loop
    - absl::Span::begin
    - s2shapeutil::ShapeToS2Polygon
    - EXPECT_EQ
    - oriented_vertex
    - absl::Span::end
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, FullPolygonToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:45,1
    - Dst: s2shapeutil::ShapeToS2Points
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:48,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:49,1
    - Dst: testing::ElementsAreArray
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAreArray
    - EXPECT_THAT
    - s2shapeutil::ShapeToS2Points
    - s2textformat::ParsePointsOrDie
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, PointVectorShapeToPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:55,1
    - Dst: s2shapeutil::ShapeToS2Polyline
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:58,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:58,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:60,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_vertices
    - s2shapeutil::ShapeToS2Polyline
    - s2textformat::ParsePointsOrDie
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, LineToS2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:66,1
    - Dst: s2shapeutil::ShapeToS2Polyline
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:69,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:69,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:71,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_vertices
    - s2shapeutil::ShapeToS2Polyline
    - s2textformat::ParsePointsOrDie
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, ClosedLineToS2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::ShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:84,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:85,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:85,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:86,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:87,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:89,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - loops
    - expected_num_loops
    - expected_num_vertices
    argTypes:
    - absl::Span<const S2LaxPolygonShape::Loop>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: s2shapeutil::VerifyShapeToS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 6
    functionsReached:
    - unique_ptr::num_loops
    - num_vertices
    - unique_ptr::num_vertices
    - unique_ptr::loop
    - s2shapeutil::ShapeToS2Polygon
    - EXPECT_EQ
    - oriented_vertex
    linkageType: ''
    returnType: void
    signature: "void VerifyShapeToS2Polygon(absl::Span<const S2LaxPolygonShape::Loop>
      loops,\n                            int expected_num_loops, int expected_num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:97,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:99,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, PolygonWithHoleToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:108,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:110,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, MultiPolygonToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:118,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:120,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:122,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, TwoHolesToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:131,1
    - Dst: absl::Span::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:132,1
    - Dst: absl::Span::end
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:132,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:135,1
    - Dst: s2shapeutil::ShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:137,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:138,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:139,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:139,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:140,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:141,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:143,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kFull
    - unique_ptr::num_loops
    - num_vertices
    - unique_ptr::num_vertices
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygonOrDie
    - unique_ptr::is_full
    - unique_ptr::loop
    - absl::Span::begin
    - s2shapeutil::ShapeToS2Polygon
    - EXPECT_EQ
    - oriented_vertex
    - absl::Span::end
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, FullPolygonToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:45,1
    - Dst: s2shapeutil::ShapeToS2Points
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:48,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:49,1
    - Dst: testing::ElementsAreArray
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAreArray
    - EXPECT_THAT
    - s2shapeutil::ShapeToS2Points
    - s2textformat::ParsePointsOrDie
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, PointVectorShapeToPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:55,1
    - Dst: s2shapeutil::ShapeToS2Polyline
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:58,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:58,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:60,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_vertices
    - s2shapeutil::ShapeToS2Polyline
    - s2textformat::ParsePointsOrDie
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, LineToS2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:66,1
    - Dst: s2shapeutil::ShapeToS2Polyline
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:69,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:69,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:71,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::num_vertices
    - s2shapeutil::ShapeToS2Polyline
    - s2textformat::ParsePointsOrDie
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, ClosedLineToS2Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::ShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:84,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:85,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:85,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:86,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:87,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:89,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - loops
    - expected_num_loops
    - expected_num_vertices
    argTypes:
    - absl::Span<const S2LaxPolygonShape::Loop>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: s2shapeutil::VerifyShapeToS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 9
    functionsReached:
    - unique_ptr::num_loops
    - num_vertices
    - unique_ptr::num_vertices
    - unique_ptr::loop
    - s2shapeutil::ShapeToS2Polygon
    - EXPECT_EQ
    - oriented_vertex
    linkageType: ''
    returnType: void
    signature: "void VerifyShapeToS2Polygon(absl::Span<const S2LaxPolygonShape::Loop>
      loops,\n                            int expected_num_loops, int expected_num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:97,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:99,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, PolygonWithHoleToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:108,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:110,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, MultiPolygonToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:118,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:120,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:122,1
    - Dst: s2shapeutil::VerifyShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::VerifyShapeToS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, TwoHolesToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:131,1
    - Dst: absl::Span::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:132,1
    - Dst: absl::Span::end
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:132,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:135,1
    - Dst: s2shapeutil::ShapeToS2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:137,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:138,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:139,1
    - Dst: unique_ptr::is_full
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:139,1
    - Dst: unique_ptr::num_loops
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:140,1
    - Dst: unique_ptr::loop
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:141,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:143,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop::kFull
    - unique_ptr::num_loops
    - num_vertices
    - unique_ptr::num_vertices
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygonOrDie
    - unique_ptr::is_full
    - unique_ptr::loop
    - absl::Span::begin
    - s2shapeutil::ShapeToS2Polygon
    - EXPECT_EQ
    - oriented_vertex
    - absl::Span::end
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeConversionUtilTest, FullPolygonToS2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - g
    argTypes:
    - S2Builder::Graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: s2builderutil::DegeneracyFinder::DegeneracyFinder
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DegeneracyFinder(const S2Builder::Graph* g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:186,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:186,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:187,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:187,1
    - Dst: in_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:189,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:190,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:192,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:197,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:197,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:200,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 214
    functionName: s2builderutil::DegeneracyFinder::ComputeDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - num_edges
    - BUF_reverse
    - edge
    - resize
    - in_edge_ids
    linkageType: ''
    returnType: int
    signature: int DegeneracyFinder::ComputeDegeneracies()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:227,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:227,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:229,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:230,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:231,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:232,1
    - Dst: s2builderutil::DegeneracyFinder::ContainsVertexSign
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:234,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:235,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:238,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:239,1
    - Dst: s2builderutil::DegeneracyFinder::CrossingParity
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:240,1
    - Dst: Component::degeneracies::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:242,1
    - Dst: PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:242,1
    - Dst: s2builderutil::DegeneracyFinder::CrossingParity
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:245,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:246,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - root
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 251
    functionName: s2builderutil::DegeneracyFinder::BuildComponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - PolygonDegeneracy
    - vector::push_back
    - Component::degeneracies::push_back
    - vector::pop_back
    - ABSL_DCHECK_NE
    - vector::back
    - edge
    - vector::empty
    - s2builderutil::DegeneracyFinder::ContainsVertexSign
    - make_pair
    - s2builderutil::DegeneracyFinder::CrossingParity
    - edge_ids
    linkageType: ''
    returnType: Component
    signature: Component DegeneracyFinder::BuildComponent(VertexId root)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:264,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:265,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:266,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:267,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:270,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:270,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:274,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:275,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:278,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - v0
    - v1
    - include_same
    argTypes:
    - VertexId
    - VertexId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: s2builderutil::DegeneracyFinder::CrossingParity
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 1
    functionsReached:
    - s2pred::OrderedCCW
    - edges
    - vertex
    - S2::RefDir
    - edge
    - edge_ids
    linkageType: ''
    returnType: bool
    signature: "bool DegeneracyFinder::CrossingParity(VertexId v0, VertexId v1,\n
      \                                     bool include_same) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:286,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: s2builderutil::DegeneracyFinder::FindUnbalancedVertex
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - num_vertices
    linkageType: ''
    returnType: VertexId
    signature: VertexId DegeneracyFinder::FindUnbalancedVertex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:294,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:295,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:296,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:296,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:298,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v0
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: s2builderutil::DegeneracyFinder::ContainsVertexSign
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 1
    functionsReached:
    - S2ContainsVertexQuery::ContainsSign
    - edges
    - vertex
    - edge
    - S2ContainsVertexQuery::AddEdge
    - edge_ids
    linkageType: ''
    returnType: int
    signature: int DegeneracyFinder::ContainsVertexSign(VertexId v0) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:315,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:317,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:318,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:318,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - known_vertex
    - known_vertex_sign
    - components
    argTypes:
    - VertexId
    - int
    - vector<Component>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: s2builderutil::DegeneracyFinder::ComputeUnknownSignsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::Init
    - num_edges
    - vertex
    - edge
    - S2EdgeCrosser::EdgeOrVertexCrossing
    linkageType: ''
    returnType: void
    signature: "void DegeneracyFinder::ComputeUnknownSignsBruteForce(\n    VertexId
      known_vertex, int known_vertex_sign,\n    vector<Component>* components) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:330,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:331,1
    - Dst: make_unique<GraphShape>
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:331,1
    - Dst: S2EdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:340,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:345,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - known_vertex
    - known_vertex_sign
    - components
    argTypes:
    - VertexId
    - int
    - vector<Component>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 349
    functionName: s2builderutil::DegeneracyFinder::ComputeUnknownSignsIndexed
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2EdgeCrosser::Init
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - vertex
    - S2CrossingEdgeQuery::GetCandidates
    - make_unique<GraphShape>
    - S2EdgeCrosser::EdgeOrVertexCrossing
    - edge
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void DegeneracyFinder::ComputeUnknownSignsIndexed(\n    VertexId known_vertex,
      int known_vertex_sign,\n    vector<Component>* components) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:358,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:361,1
    - Dst: PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:361,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - components
    argTypes:
    - absl::Span<const Component>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 366
    functionName: s2builderutil::DegeneracyFinder::MergeDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - PolygonDegeneracy
    - vector::push_back
    - ABSL_DCHECK_NE
    - vector::end
    - std::sort
    - vector::begin
    linkageType: ''
    returnType: vector<PolygonDegeneracy>
    signature: "vector<PolygonDegeneracy> DegeneracyFinder::MergeDegeneracies(\n    absl::Span<const
      Component> components) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:369,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:369,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:370,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:370,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:371,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:373,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:373,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: s2builderutil::CheckGraphOptions
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - options
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void CheckGraphOptions(const Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - g
    argTypes:
    - S2Builder::Graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: s2builderutil::DegeneracyFinder::DegeneracyFinder
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DegeneracyFinder(const S2Builder::Graph* g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:186,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:186,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:187,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:187,1
    - Dst: in_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:189,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:190,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:192,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:197,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:197,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:200,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 214
    functionName: s2builderutil::DegeneracyFinder::ComputeDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - num_edges
    - BUF_reverse
    - edge
    - resize
    - in_edge_ids
    linkageType: ''
    returnType: int
    signature: int DegeneracyFinder::ComputeDegeneracies()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:227,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:227,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:229,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:230,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:231,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:232,1
    - Dst: s2builderutil::DegeneracyFinder::ContainsVertexSign
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:234,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:235,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:238,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:239,1
    - Dst: s2builderutil::DegeneracyFinder::CrossingParity
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:240,1
    - Dst: Component::degeneracies::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:242,1
    - Dst: PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:242,1
    - Dst: s2builderutil::DegeneracyFinder::CrossingParity
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:245,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:246,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - root
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 251
    functionName: s2builderutil::DegeneracyFinder::BuildComponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - PolygonDegeneracy
    - vector::push_back
    - Component::degeneracies::push_back
    - vector::pop_back
    - ABSL_DCHECK_NE
    - vector::back
    - edge
    - vector::empty
    - s2builderutil::DegeneracyFinder::ContainsVertexSign
    - make_pair
    - s2builderutil::DegeneracyFinder::CrossingParity
    - edge_ids
    linkageType: ''
    returnType: Component
    signature: Component DegeneracyFinder::BuildComponent(VertexId root)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:264,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:265,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:266,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:267,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:270,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:270,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:274,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:275,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:278,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - v0
    - v1
    - include_same
    argTypes:
    - VertexId
    - VertexId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: s2builderutil::DegeneracyFinder::CrossingParity
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 2
    functionsReached:
    - s2pred::OrderedCCW
    - edges
    - vertex
    - S2::RefDir
    - edge
    - edge_ids
    linkageType: ''
    returnType: bool
    signature: "bool DegeneracyFinder::CrossingParity(VertexId v0, VertexId v1,\n
      \                                     bool include_same) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:286,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: s2builderutil::DegeneracyFinder::FindUnbalancedVertex
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - num_vertices
    linkageType: ''
    returnType: VertexId
    signature: VertexId DegeneracyFinder::FindUnbalancedVertex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:294,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:295,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:296,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:296,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:298,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v0
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: s2builderutil::DegeneracyFinder::ContainsVertexSign
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 2
    functionsReached:
    - S2ContainsVertexQuery::ContainsSign
    - edges
    - vertex
    - edge
    - S2ContainsVertexQuery::AddEdge
    - edge_ids
    linkageType: ''
    returnType: int
    signature: int DegeneracyFinder::ContainsVertexSign(VertexId v0) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:315,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:317,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:318,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:318,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - known_vertex
    - known_vertex_sign
    - components
    argTypes:
    - VertexId
    - int
    - vector<Component>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: s2builderutil::DegeneracyFinder::ComputeUnknownSignsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::Init
    - num_edges
    - vertex
    - edge
    - S2EdgeCrosser::EdgeOrVertexCrossing
    linkageType: ''
    returnType: void
    signature: "void DegeneracyFinder::ComputeUnknownSignsBruteForce(\n    VertexId
      known_vertex, int known_vertex_sign,\n    vector<Component>* components) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:330,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:331,1
    - Dst: make_unique<GraphShape>
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:331,1
    - Dst: S2EdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:340,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:345,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - known_vertex
    - known_vertex_sign
    - components
    argTypes:
    - VertexId
    - int
    - vector<Component>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 349
    functionName: s2builderutil::DegeneracyFinder::ComputeUnknownSignsIndexed
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2EdgeCrosser::Init
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - vertex
    - S2CrossingEdgeQuery::GetCandidates
    - make_unique<GraphShape>
    - S2EdgeCrosser::EdgeOrVertexCrossing
    - edge
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void DegeneracyFinder::ComputeUnknownSignsIndexed(\n    VertexId known_vertex,
      int known_vertex_sign,\n    vector<Component>* components) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:358,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:361,1
    - Dst: PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:361,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - components
    argTypes:
    - absl::Span<const Component>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 366
    functionName: s2builderutil::DegeneracyFinder::MergeDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - PolygonDegeneracy
    - vector::push_back
    - ABSL_DCHECK_NE
    - vector::end
    - std::sort
    - vector::begin
    linkageType: ''
    returnType: vector<PolygonDegeneracy>
    signature: "vector<PolygonDegeneracy> DegeneracyFinder::MergeDegeneracies(\n    absl::Span<const
      Component> components) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:369,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:369,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:370,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:370,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:371,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:373,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:373,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: s2builderutil::CheckGraphOptions
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - options
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void CheckGraphOptions(const Graph& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::CheckGraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:381,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:382,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:383,1
    - Dst: DegeneracyFinder
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: s2builderutil::FindPolygonDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 2
    functionsReached:
    - DegeneracyFinder
    - s2builderutil::CheckGraphOptions
    - options
    linkageType: ''
    returnType: vector<PolygonDegeneracy>
    signature: "vector<PolygonDegeneracy> FindPolygonDegeneracies(const Graph& g,\n
      \                                                 S2Error* absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::CheckGraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:390,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:391,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:392,1
    - Dst: std::binary_search
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:395,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:395,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:395,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - S2Builder::Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 400
    functionName: s2builderutil::IsFullyDegenerate
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 2
    functionsReached:
    - num_edges
    - end
    - std::binary_search
    - edges
    - BUF_reverse
    - begin
    - s2builderutil::CheckGraphOptions
    linkageType: ''
    returnType: bool
    signature: bool IsFullyDegenerate(const S2Builder::Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - g
    argTypes:
    - S2Builder::Graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: s2builderutil::DegeneracyFinder::DegeneracyFinder
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DegeneracyFinder(const S2Builder::Graph* g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:186,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:186,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:187,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:187,1
    - Dst: in_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:189,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:190,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:192,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:197,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:197,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:200,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 214
    functionName: s2builderutil::DegeneracyFinder::ComputeDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - num_edges
    - BUF_reverse
    - edge
    - resize
    - in_edge_ids
    linkageType: ''
    returnType: int
    signature: int DegeneracyFinder::ComputeDegeneracies()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:227,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:227,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:229,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:230,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:231,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:232,1
    - Dst: s2builderutil::DegeneracyFinder::ContainsVertexSign
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:234,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:235,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:238,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:239,1
    - Dst: s2builderutil::DegeneracyFinder::CrossingParity
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:240,1
    - Dst: Component::degeneracies::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:242,1
    - Dst: PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:242,1
    - Dst: s2builderutil::DegeneracyFinder::CrossingParity
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:245,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:246,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - root
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 251
    functionName: s2builderutil::DegeneracyFinder::BuildComponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - PolygonDegeneracy
    - vector::push_back
    - Component::degeneracies::push_back
    - vector::pop_back
    - ABSL_DCHECK_NE
    - vector::back
    - edge
    - vector::empty
    - s2builderutil::DegeneracyFinder::ContainsVertexSign
    - make_pair
    - s2builderutil::DegeneracyFinder::CrossingParity
    - edge_ids
    linkageType: ''
    returnType: Component
    signature: Component DegeneracyFinder::BuildComponent(VertexId root)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:264,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:265,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:266,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:267,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:270,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:270,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:274,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:275,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:278,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - v0
    - v1
    - include_same
    argTypes:
    - VertexId
    - VertexId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: s2builderutil::DegeneracyFinder::CrossingParity
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 3
    functionsReached:
    - s2pred::OrderedCCW
    - edges
    - vertex
    - S2::RefDir
    - edge
    - edge_ids
    linkageType: ''
    returnType: bool
    signature: "bool DegeneracyFinder::CrossingParity(VertexId v0, VertexId v1,\n
      \                                     bool include_same) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:286,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: s2builderutil::DegeneracyFinder::FindUnbalancedVertex
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - num_vertices
    linkageType: ''
    returnType: VertexId
    signature: VertexId DegeneracyFinder::FindUnbalancedVertex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:294,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:295,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:296,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:296,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:298,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v0
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: s2builderutil::DegeneracyFinder::ContainsVertexSign
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 3
    functionsReached:
    - S2ContainsVertexQuery::ContainsSign
    - edges
    - vertex
    - edge
    - S2ContainsVertexQuery::AddEdge
    - edge_ids
    linkageType: ''
    returnType: int
    signature: int DegeneracyFinder::ContainsVertexSign(VertexId v0) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:315,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:317,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:318,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:318,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - known_vertex
    - known_vertex_sign
    - components
    argTypes:
    - VertexId
    - int
    - vector<Component>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: s2builderutil::DegeneracyFinder::ComputeUnknownSignsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::Init
    - num_edges
    - vertex
    - edge
    - S2EdgeCrosser::EdgeOrVertexCrossing
    linkageType: ''
    returnType: void
    signature: "void DegeneracyFinder::ComputeUnknownSignsBruteForce(\n    VertexId
      known_vertex, int known_vertex_sign,\n    vector<Component>* components) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:330,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:331,1
    - Dst: make_unique<GraphShape>
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:331,1
    - Dst: S2EdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:340,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:345,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - known_vertex
    - known_vertex_sign
    - components
    argTypes:
    - VertexId
    - int
    - vector<Component>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 349
    functionName: s2builderutil::DegeneracyFinder::ComputeUnknownSignsIndexed
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2EdgeCrosser::Init
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - vertex
    - S2CrossingEdgeQuery::GetCandidates
    - make_unique<GraphShape>
    - S2EdgeCrosser::EdgeOrVertexCrossing
    - edge
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void DegeneracyFinder::ComputeUnknownSignsIndexed(\n    VertexId known_vertex,
      int known_vertex_sign,\n    vector<Component>* components) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:358,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:361,1
    - Dst: PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:361,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - components
    argTypes:
    - absl::Span<const Component>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 366
    functionName: s2builderutil::DegeneracyFinder::MergeDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - PolygonDegeneracy
    - vector::push_back
    - ABSL_DCHECK_NE
    - vector::end
    - std::sort
    - vector::begin
    linkageType: ''
    returnType: vector<PolygonDegeneracy>
    signature: "vector<PolygonDegeneracy> DegeneracyFinder::MergeDegeneracies(\n    absl::Span<const
      Component> components) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:369,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:369,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:370,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:370,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:371,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:373,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:373,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: s2builderutil::CheckGraphOptions
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 2
    functionsReached:
    - options
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void CheckGraphOptions(const Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - g
    argTypes:
    - S2Builder::Graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: s2builderutil::DegeneracyFinder::DegeneracyFinder
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DegeneracyFinder(const S2Builder::Graph* g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:186,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:186,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:187,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:187,1
    - Dst: in_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:189,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:190,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:192,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:197,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:197,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:200,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 214
    functionName: s2builderutil::DegeneracyFinder::ComputeDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - num_edges
    - BUF_reverse
    - edge
    - resize
    - in_edge_ids
    linkageType: ''
    returnType: int
    signature: int DegeneracyFinder::ComputeDegeneracies()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:227,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:227,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:229,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:230,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:231,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:232,1
    - Dst: s2builderutil::DegeneracyFinder::ContainsVertexSign
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:234,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:235,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:238,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:239,1
    - Dst: s2builderutil::DegeneracyFinder::CrossingParity
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:240,1
    - Dst: Component::degeneracies::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:242,1
    - Dst: PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:242,1
    - Dst: s2builderutil::DegeneracyFinder::CrossingParity
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:245,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:246,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - root
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 251
    functionName: s2builderutil::DegeneracyFinder::BuildComponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - PolygonDegeneracy
    - vector::push_back
    - Component::degeneracies::push_back
    - vector::pop_back
    - ABSL_DCHECK_NE
    - vector::back
    - edge
    - vector::empty
    - s2builderutil::DegeneracyFinder::ContainsVertexSign
    - make_pair
    - s2builderutil::DegeneracyFinder::CrossingParity
    - edge_ids
    linkageType: ''
    returnType: Component
    signature: Component DegeneracyFinder::BuildComponent(VertexId root)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:264,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:265,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:266,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:267,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:270,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:270,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:274,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:275,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:278,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - v0
    - v1
    - include_same
    argTypes:
    - VertexId
    - VertexId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: s2builderutil::DegeneracyFinder::CrossingParity
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 4
    functionsReached:
    - s2pred::OrderedCCW
    - edges
    - vertex
    - S2::RefDir
    - edge
    - edge_ids
    linkageType: ''
    returnType: bool
    signature: "bool DegeneracyFinder::CrossingParity(VertexId v0, VertexId v1,\n
      \                                     bool include_same) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:286,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: s2builderutil::DegeneracyFinder::FindUnbalancedVertex
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - num_vertices
    linkageType: ''
    returnType: VertexId
    signature: VertexId DegeneracyFinder::FindUnbalancedVertex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:294,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:295,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:296,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:296,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:298,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:299,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v0
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: s2builderutil::DegeneracyFinder::ContainsVertexSign
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 4
    functionsReached:
    - S2ContainsVertexQuery::ContainsSign
    - edges
    - vertex
    - edge
    - S2ContainsVertexQuery::AddEdge
    - edge_ids
    linkageType: ''
    returnType: int
    signature: int DegeneracyFinder::ContainsVertexSign(VertexId v0) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:314,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:315,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:317,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:318,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:318,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - known_vertex
    - known_vertex_sign
    - components
    argTypes:
    - VertexId
    - int
    - vector<Component>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: s2builderutil::DegeneracyFinder::ComputeUnknownSignsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosser::Init
    - num_edges
    - vertex
    - edge
    - S2EdgeCrosser::EdgeOrVertexCrossing
    linkageType: ''
    returnType: void
    signature: "void DegeneracyFinder::ComputeUnknownSignsBruteForce(\n    VertexId
      known_vertex, int known_vertex_sign,\n    vector<Component>* components) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:330,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:331,1
    - Dst: make_unique<GraphShape>
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:331,1
    - Dst: S2EdgeCrosser::Init
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:338,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:339,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:340,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:345,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - known_vertex
    - known_vertex_sign
    - components
    argTypes:
    - VertexId
    - int
    - vector<Component>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 349
    functionName: s2builderutil::DegeneracyFinder::ComputeUnknownSignsIndexed
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2EdgeCrosser::Init
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - vertex
    - S2CrossingEdgeQuery::GetCandidates
    - make_unique<GraphShape>
    - S2EdgeCrosser::EdgeOrVertexCrossing
    - edge
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void DegeneracyFinder::ComputeUnknownSignsIndexed(\n    VertexId known_vertex,
      int known_vertex_sign,\n    vector<Component>* components) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:358,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:361,1
    - Dst: PolygonDegeneracy
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:361,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - components
    argTypes:
    - absl::Span<const Component>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 366
    functionName: s2builderutil::DegeneracyFinder::MergeDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 0
    functionsReached:
    - PolygonDegeneracy
    - vector::push_back
    - ABSL_DCHECK_NE
    - vector::end
    - std::sort
    - vector::begin
    linkageType: ''
    returnType: vector<PolygonDegeneracy>
    signature: "vector<PolygonDegeneracy> DegeneracyFinder::MergeDegeneracies(\n    absl::Span<const
      Component> components) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:369,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:369,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:370,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:370,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:371,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:373,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:373,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: s2builderutil::CheckGraphOptions
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 2
    functionsReached:
    - options
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void CheckGraphOptions(const Graph& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::CheckGraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:381,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:382,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:383,1
    - Dst: DegeneracyFinder
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: s2builderutil::FindPolygonDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 2
    functionsReached:
    - DegeneracyFinder
    - s2builderutil::CheckGraphOptions
    - options
    linkageType: ''
    returnType: vector<PolygonDegeneracy>
    signature: "vector<PolygonDegeneracy> FindPolygonDegeneracies(const Graph& g,\n
      \                                                 S2Error* absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::CheckGraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:390,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:391,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:392,1
    - Dst: std::binary_search
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:395,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:395,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:395,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - S2Builder::Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 400
    functionName: s2builderutil::IsFullyDegenerate
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    functionUses: 2
    functionsReached:
    - num_edges
    - end
    - std::binary_search
    - edges
    - BUF_reverse
    - begin
    - s2builderutil::CheckGraphOptions
    linkageType: ''
    returnType: bool
    signature: bool IsFullyDegenerate(const S2Builder::Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2cell.cc:67,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell.cc:69,1
    - Dst: S2CellId::IJLevelToBoundUV
      Src: /src/s2geometry/src/s2/s2cell.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: S2Cell::S2Cell
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 2
    functionsReached:
    - S2CellId::IJLevelToBoundUV
    - S2CellId::level
    - S2CellId::ToFaceIJOrientation
    linkageType: ''
    returnType: void
    signature: void S2Cell::S2Cell(S2CellId id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetVNorm
      Src: /src/s2geometry/src/s2/s2cell.cc:76,1
    - Dst: S2::GetUNorm
      Src: /src/s2geometry/src/s2/s2cell.cc:77,1
    - Dst: S2::GetVNorm
      Src: /src/s2geometry/src/s2/s2cell.cc:78,1
    - Dst: S2::GetUNorm
      Src: /src/s2geometry/src/s2/s2cell.cc:79,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2cell.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: S2Cell::GetEdgeRaw
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 4
    functionsReached:
    - S2::GetVNorm
    - ABSL_UNREACHABLE
    - S2::GetUNorm
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Cell::GetEdgeRaw(int k) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::is_leaf
      Src: /src/s2geometry/src/s2/s2cell.cc:89,1
    - Dst: GetCenterUV
      Src: /src/s2geometry/src/s2/s2cell.cc:92,1
    - Dst: child_begin
      Src: /src/s2geometry/src/s2/s2cell.cc:95,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell.cc:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - children
    argTypes:
    - S2Cell[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 114
    functionName: S2Cell::Subdivide
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::is_leaf
    - GetCenterUV
    - child_begin
    - S2CellId::next
    linkageType: ''
    returnType: bool
    signature: bool S2Cell::Subdivide(S2Cell children[4]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToPointRaw
      Src: /src/s2geometry/src/s2/s2cell.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: S2Cell::GetCenterRaw
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - ToPointRaw
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Cell::GetCenterRaw() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: S2Cell::AverageArea
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 5
    functionsReached:
    - GetValue
    linkageType: ''
    returnType: double
    signature: double S2Cell::AverageArea(int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2cell.cc:126,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:131,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:131,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2cell.cc:131,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:132,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:132,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2cell.cc:140,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell.cc:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: S2Cell::ApproxArea
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::AverageArea
    - min
    - sqrt
    - CrossProd
    - S2Cell::GetVertex
    linkageType: ''
    returnType: double
    signature: double S2Cell::ApproxArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:148,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:149,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:150,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:151,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2cell.cc:152,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2cell.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: S2Cell::ExactArea
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetVertex
    - S2::Area
    linkageType: ''
    returnType: double
    signature: double S2Cell::ExactArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::S2Cell
      Src: /src/s2geometry/src/s2/s2cell.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: S2Cell::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::S2Cell
    linkageType: ''
    returnType: S2Region
    signature: S2Region * S2Cell::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2cell.cc:169,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2cell.cc:169,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2cell.cc:170,1
    - Dst: S2Cap::AddPoint
      Src: /src/s2geometry/src/s2/s2cell.cc:172,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: S2Cell::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 1
    functionsReached:
    - S2Cap::AddPoint
    - S2Cell::GetCenter
    - S2Cap::FromPoint
    - S2Cell::GetVertex
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cell::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2cell.cc:178,1
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2cell.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: S2Cell::GetLatitude
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2::FaceUVtoXYZ
    - S2LatLng::Latitude
    linkageType: ''
    returnType: double
    signature: double S2Cell::GetLatitude(int i, int j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2cell.cc:183,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2cell.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: S2Cell::GetLongitude
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::Longitude
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: double
    signature: double S2Cell::GetLongitude(int i, int j) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetUAxis
      Src: /src/s2geometry/src/s2/s2cell.cc:202,1
    - Dst: S2::GetVAxis
      Src: /src/s2geometry/src/s2/s2cell.cc:203,1
    - Dst: R1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2cell.cc:204,1
    - Dst: S2Cell::GetLatitude
      Src: /src/s2geometry/src/s2/s2cell.cc:204,1
    - Dst: S2Cell::GetLatitude
      Src: /src/s2geometry/src/s2/s2cell.cc:205,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2cell.cc:206,1
    - Dst: S2Cell::GetLongitude
      Src: /src/s2geometry/src/s2/s2cell.cc:206,1
    - Dst: S2Cell::GetLongitude
      Src: /src/s2geometry/src/s2/s2cell.cc:207,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2cell.cc:225,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2cell.cc:226,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2cell.cc:234,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2cell.cc:234,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell.cc:237,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2cell.cc:237,1
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2cell.cc:239,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2cell.cc:243,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:243,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:244,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2cell.cc:247,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:247,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:248,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2cell.cc:251,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:251,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2cell.cc:252,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2cell.cc:255,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:255,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:256,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2cell.cc:259,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:259,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:260,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2cell.cc:263,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cell.cc:263,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2cell.cc:264,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2cell.cc:266,1
    - Dst: S2LatLngRect::Expanded
      Src: /src/s2geometry/src/s2/s2cell.cc:276,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2cell.cc:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 277
    functionName: S2Cell::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 1
    functionsReached:
    - S2LatLngRect::Expanded
    - ABSL_DCHECK_EQ
    - S2::GetVAxis
    - R1Interval::FromPointPair
    - S2::GetNorm
    - S2LatLngRect::S2LatLngRect
    - asin
    - sqrt
    - S2Cell::GetLatitude
    - S1Interval::FromPointPair
    - S2LatLng::FromRadians
    - R1Interval
    - S1Interval
    - S1Interval::Full
    - S2Cell::GetLongitude
    - S2::GetUAxis
    - ABSL_UNREACHABLE
    - S2LatLngRect
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2Cell::GetRectBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: S2Cell::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Cell::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intersects
      Src: /src/s2geometry/src/s2/s2cell.cc:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: S2Cell::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - intersects
    linkageType: ''
    returnType: bool
    signature: bool S2Cell::MayIntersect(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: S2Cell::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool S2Cell::Contains(const S2Cell& cell) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2cell.cc:305,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s2cell.cc:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 320
    functionName: S2Cell::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - Expanded
    - S2::FaceXYZtoUV
    linkageType: ''
    returnType: bool
    signature: bool S2Cell::Contains(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::Encode
      Src: /src/s2geometry/src/s2/s2cell.cc:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: S2Cell::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 1
    functionsReached:
    - S2Cell::Encode
    linkageType: ''
    returnType: void
    signature: void S2Cell::Encode(Encoder* const encoder) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell.cc:327,1
    - Dst: S2CellId::Decode
      Src: /src/s2geometry/src/s2/s2cell.cc:328,1
    - Dst: S2Cell::~S2Cell
      Src: /src/s2geometry/src/s2/s2cell.cc:329,1
    - Dst: S2Cell::S2Cell
      Src: /src/s2geometry/src/s2/s2cell.cc:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: S2Cell::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::S2Cell
    - S2CellId::S2CellId
    - S2Cell::~S2Cell
    - S2CellId::Decode
    linkageType: ''
    returnType: bool
    signature: bool S2Cell::Decode(Decoder* const decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell.cc:337,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2cell.cc:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' p'
    - i
    - j
    argTypes:
    - S2Point
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: S2Cell::VertexChordDist
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle S2Cell::VertexChordDist(\n    const S2Point& p, int i,
      int j) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2cell.cc:350,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2cell.cc:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - v_end
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 351
    functionName: S2Cell::UEdgeIsClosest
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - DotProd
    linkageType: ''
    returnType: bool
    signature: bool S2Cell::UEdgeIsClosest(const S2Point& p, int v_end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2cell.cc:361,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2cell.cc:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - u_end
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: S2Cell::VEdgeIsClosest
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - DotProd
    linkageType: ''
    returnType: bool
    signature: bool S2Cell::VEdgeIsClosest(const S2Point& p, int u_end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2cell.cc:378,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2cell.cc:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dirIJ
    - uv
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 380
    functionName: EdgeDistance
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 8
    functionsReached:
    - S1ChordAngle::FromLength2
    - sqrt
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle EdgeDistance(double dirIJ, double uv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2cell.cc:385,1
    - Dst: S2Cell::VEdgeIsClosest
      Src: /src/s2geometry/src/s2/s2cell.cc:398,1
    - Dst: EdgeDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:398,1
    - Dst: S2Cell::VEdgeIsClosest
      Src: /src/s2geometry/src/s2/s2cell.cc:402,1
    - Dst: EdgeDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:402,1
    - Dst: S2Cell::UEdgeIsClosest
      Src: /src/s2geometry/src/s2/s2cell.cc:406,1
    - Dst: EdgeDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:406,1
    - Dst: S2Cell::UEdgeIsClosest
      Src: /src/s2geometry/src/s2/s2cell.cc:410,1
    - Dst: EdgeDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:410,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell.cc:413,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell.cc:418,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell.cc:418,1
    - Dst: EdgeDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:418,1
    - Dst: EdgeDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:419,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell.cc:420,1
    - Dst: EdgeDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:420,1
    - Dst: EdgeDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:421,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell.cc:428,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell.cc:428,1
    - Dst: S2Cell::VertexChordDist
      Src: /src/s2geometry/src/s2/s2cell.cc:428,1
    - Dst: S2Cell::VertexChordDist
      Src: /src/s2geometry/src/s2/s2cell.cc:429,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell.cc:430,1
    - Dst: S2Cell::VertexChordDist
      Src: /src/s2geometry/src/s2/s2cell.cc:430,1
    - Dst: S2Cell::VertexChordDist
      Src: /src/s2geometry/src/s2/s2cell.cc:431,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - ' target_xyz'
    - to_interior
    argTypes:
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 432
    functionName: S2Cell::GetDistanceInternal
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::VEdgeIsClosest
    - S2Cell::VertexChordDist
    - S2Cell::UEdgeIsClosest
    - min
    - S1ChordAngle::Zero
    - S2::FaceXYZtoUVW
    - EdgeDistance
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle S2Cell::GetDistanceInternal(const S2Point& target_xyz,\n
      \                                        bool to_interior) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetDistanceInternal
      Src: /src/s2geometry/src/s2/s2cell.cc:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: S2Cell::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetDistanceInternal
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Cell::GetDistance(const S2Point& target) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetDistanceInternal
      Src: /src/s2geometry/src/s2/s2cell.cc:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 4
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: S2Cell::GetBoundaryDistance
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetDistanceInternal
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Cell::GetBoundaryDistance(const S2Point& target) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2cell.cc:445,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell.cc:446,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell.cc:446,1
    - Dst: S2Cell::VertexChordDist
      Src: /src/s2geometry/src/s2/s2cell.cc:446,1
    - Dst: S2Cell::VertexChordDist
      Src: /src/s2geometry/src/s2/s2cell.cc:447,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell.cc:448,1
    - Dst: S2Cell::VertexChordDist
      Src: /src/s2geometry/src/s2/s2cell.cc:448,1
    - Dst: S2Cell::VertexChordDist
      Src: /src/s2geometry/src/s2/s2cell.cc:449,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2cell.cc:451,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell.cc:457,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 458
    functionName: S2Cell::GetMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::VertexChordDist
    - S2Cell::GetDistance
    - S1ChordAngle::Straight
    - max
    - S2::FaceXYZtoUVW
    - S1ChordAngle::Right
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Cell::GetMaxDistance(const S2Point& target) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell.cc:473,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:473,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:473,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell.cc:474,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:480,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2cell.cc:484,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell.cc:485,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:496,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 460
    functionDepth: 5
    functionLinenumber: 460
    functionLinenumberEnd: 499
    functionName: S2Cell::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 2
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    - min
    - S1ChordAngle::Zero
    - S2::UpdateMinDistance
    - S2Cell::GetDistance
    - S2Cell::GetVertex
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Cell::GetDistance(const S2Point& a, const S2Point& b)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell.cc:505,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:505,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:505,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2cell.cc:506,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell.cc:510,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 511
    functionName: S2Cell::GetMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 1
    functionsReached:
    - S2Cell::GetMaxDistance
    - S1ChordAngle::Straight
    - S2Cell::GetDistance
    - max
    - S1ChordAngle::Right
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Cell::GetMaxDistance(const S2Point& a, const S2Point&
      b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell.cc:532,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell.cc:533,1
    - Dst: check_edge
      Src: /src/s2geometry/src/s2/s2cell.cc:534,1
    - Dst: check_edge
      Src: /src/s2geometry/src/s2/s2cell.cc:535,1
    - Dst: check_edge
      Src: /src/s2geometry/src/s2/s2cell.cc:536,1
    - Dst: check_edge
      Src: /src/s2geometry/src/s2/s2cell.cc:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 539
    functionName: FindFurthestEdge
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 7
    functionsReached:
    - GetBoundUV
    - check_edge
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE FindFurthestEdge(const S2Cell& a,\n                                                  const
      S2Cell& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell.cc:532,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell.cc:533,1
    - Dst: check_edge
      Src: /src/s2geometry/src/s2/s2cell.cc:534,1
    - Dst: check_edge
      Src: /src/s2geometry/src/s2/s2cell.cc:535,1
    - Dst: check_edge
      Src: /src/s2geometry/src/s2/s2cell.cc:536,1
    - Dst: check_edge
      Src: /src/s2geometry/src/s2/s2cell.cc:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 539
    functionName: FindFurthestEdge
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 7
    functionsReached:
    - GetBoundUV
    - check_edge
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE FindFurthestEdge(const S2Cell& a,\n                                                  const
      S2Cell& b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2cell.cc:543,1
    - Dst: FindFurthestEdge
      Src: /src/s2geometry/src/s2/s2cell.cc:552,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell.cc:555,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:561,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:562,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:563,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:564,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:565,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:566,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:569,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:570,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:579,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:580,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:584,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:585,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 589
    functionName: S2Cell::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 3
    functionsReached:
    - S2::UpdateMinInteriorDistance
    - FindFurthestEdge
    - S1ChordAngle::Zero
    - S2::UpdateMinDistance
    - S1ChordAngle::Infinity
    - S2Cell::GetVertex
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Cell::GetDistance(const S2Cell& target) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: OppositeFace
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OppositeFace(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/s2cell.cc:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' uv'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: OppositeUV
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - R2Rect
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect OppositeUV(const R2Rect& uv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OppositeFace
      Src: /src/s2geometry/src/s2/s2cell.cc:604,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2cell.cc:605,1
    - Dst: OppositeUV
      Src: /src/s2geometry/src/s2/s2cell.cc:605,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell.cc:606,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:618,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:619,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2cell.cc:621,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:624,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 629
    functionName: S2Cell::GetMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 1
    functionsReached:
    - Intersects
    - OppositeUV
    - S2::UpdateMaxDistance
    - S1ChordAngle::Straight
    - OppositeFace
    - S2Cell::GetVertex
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Cell::GetMaxDistance(const S2Cell& target) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/s2cell.cc:638,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell.cc:638,1
    - Dst: FindFurthestEdge
      Src: /src/s2geometry/src/s2/s2cell.cc:644,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:649,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:650,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:651,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:652,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:656,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:657,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:658,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:659,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:667,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.cc:668,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:673,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:674,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - ' target'
    - limit
    argTypes:
    - S2Cell
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 631
    functionDepth: 5
    functionLinenumber: 631
    functionLinenumberEnd: 680
    functionName: S2Cell::IsDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_FALSE
    - S2::UpdateMinInteriorDistance
    - FindFurthestEdge
    - S1ChordAngle::Zero
    - S2::UpdateMinDistance
    - S2Cell::GetVertex
    linkageType: ''
    returnType: bool
    signature: bool S2Cell::IsDistanceLess(const S2Cell& target, S1ChordAngle limit)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - limit
    argTypes:
    - S2Cell
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: S2Cell::IsDistanceLessOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2Cell::IsDistanceLessOrEqual(const S2Cell& target,\n                                   S1ChordAngle
      limit) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - limit
    argTypes:
    - S2Cell
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 691
    functionName: S2Cell::IsMaxDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetMaxDistance
    linkageType: ''
    returnType: bool
    signature: bool S2Cell::IsMaxDistanceLess(const S2Cell& target, S1ChordAngle limit)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell.cc:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - limit
    argTypes:
    - S2Cell
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 697
    functionName: S2Cell::IsMaxDistanceLessOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2cell.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetMaxDistance
    linkageType: ''
    returnType: bool
    signature: "bool S2Cell::IsMaxDistanceLessOrEqual(const S2Cell& target,\n                                      S1ChordAngle
      limit) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:36,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:37,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:37,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:38,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:38,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:39,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:40,1
    - Dst: auto::Relation
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:40,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:40,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:41,1
    - Dst: auto::Relation
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:41,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:41,1
    - Dst: auto::Prev
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:42,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:43,1
    - Dst: auto::Relation
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:43,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:43,1
    - Dst: auto::Finish
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:44,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:45,1
    - Dst: auto::Relation
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:45,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - auto::get
    - MakeS2CellRangeIterator
    - auto::Prev
    - EXPECT_THAT
    - auto::Next
    - auto::Relation
    - auto::Finish
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellRangeIterator, Relation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:50,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:51,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:51,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:52,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:52,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:52,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:53,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:54,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:54,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:54,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:56,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:56,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:56,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:57,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:58,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:58,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:58,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:59,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:59,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - auto::get
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - IsTrue
    - auto::done
    - auto::Next
    - auto::id
    - S2CellId::Sentinel
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellRangeIterator, Next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:64,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:65,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:66,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:66,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:67,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:67,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:68,1
    - Dst: auto::Locate
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:69,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:70,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:70,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:70,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - auto::get
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - auto::Locate
    - auto::Next
    - auto::id
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellRangeIterator, Locate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:74,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:75,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:76,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:76,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:77,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:78,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:78,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:78,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:79,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:79,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:79,1
    - Dst: auto::SeekTo
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:81,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:82,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:82,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:82,1
    - Dst: auto::SeekBeyond
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:84,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:85,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:85,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:85,1
    - Dst: auto::SeekTo
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:87,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:88,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:88,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:88,1
    - Dst: auto::SeekBeyond
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:91,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:91,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 92
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - IsTrue
    - auto::done
    - auto::SeekTo
    - auto::SeekBeyond
    - IsFalse
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellRangeIterator, EmptyIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:36,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:37,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:37,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:38,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:38,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:39,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:40,1
    - Dst: auto::Relation
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:40,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:40,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:41,1
    - Dst: auto::Relation
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:41,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:41,1
    - Dst: auto::Prev
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:42,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:43,1
    - Dst: auto::Relation
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:43,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:43,1
    - Dst: auto::Finish
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:44,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:45,1
    - Dst: auto::Relation
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:45,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - auto::get
    - MakeS2CellRangeIterator
    - auto::Prev
    - EXPECT_THAT
    - auto::Next
    - auto::Relation
    - auto::Finish
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellRangeIterator, Relation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:50,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:51,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:51,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:52,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:52,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:52,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:53,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:54,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:54,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:54,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:56,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:56,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:56,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:57,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:58,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:58,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:58,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:59,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:59,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - auto::get
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - IsTrue
    - auto::done
    - auto::Next
    - auto::id
    - S2CellId::Sentinel
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellRangeIterator, Next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:64,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:65,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:66,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:66,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:67,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:67,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:68,1
    - Dst: auto::Locate
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:69,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:70,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:70,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:70,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - auto::get
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - auto::Locate
    - auto::Next
    - auto::id
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellRangeIterator, Locate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:74,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:75,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:76,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:76,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:77,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:78,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:78,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:78,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:79,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:79,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:79,1
    - Dst: auto::SeekTo
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:81,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:82,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:82,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:82,1
    - Dst: auto::SeekBeyond
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:84,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:85,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:85,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:85,1
    - Dst: auto::SeekTo
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:87,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:88,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:88,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:88,1
    - Dst: auto::SeekBeyond
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:91,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:91,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 92
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - IsTrue
    - auto::done
    - auto::SeekTo
    - auto::SeekBeyond
    - IsFalse
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellRangeIterator, EmptyIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolylineVectorLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polylines
    - ' options'
    argTypes:
    - vector<unique_ptr<S2Polyline>>*
    - S2PolylineVectorLayer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: s2builderutil::S2PolylineVectorLayer::S2PolylineVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolylineVectorLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::S2PolylineVectorLayer(\n    vector<unique_ptr<S2Polyline>>*
      polylines,\n    const S2PolylineVectorLayer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolylineVectorLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polylines
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - vector<unique_ptr<S2Polyline>>*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: s2builderutil::S2PolylineVectorLayer::S2PolylineVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolylineVectorLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::S2PolylineVectorLayer(\n    vector<unique_ptr<S2Polyline>>*
      polylines, LabelSetIds* label_set_ids,\n    IdSetLexicon* label_set_lexicon,
      const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - polylines
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - vector<unique_ptr<S2Polyline>>*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: s2builderutil::S2PolylineVectorLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Init(vector<unique_ptr<S2Polyline>>* polylines,\n
      \                                LabelSetIds* label_set_ids,\n                                 IdSetLexicon*
      label_set_lexicon,\n                                 const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:74,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:74,1
    - Dst: duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:75,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: s2builderutil::S2PolylineVectorLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - sibling_pairs
    - edge_type
    - duplicate_edges
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions S2PolylineVectorLayer::graph_options() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:79,1
    - Dst: polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:80,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:81,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:81,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:82,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:82,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:86,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:86,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:86,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:88,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:88,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:88,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:91,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:90,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:92,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:93,1
    - Dst: S2Polyline*::FindValidationError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:94,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:96,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:98,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:100,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:100,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:102,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:103,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:103,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:105,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 108
    functionName: s2builderutil::S2PolylineVectorLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 0
    functionsReached:
    - vector::reserve
    - vector::size
    - s2debug_override
    - edge_type
    - reserve
    - validate
    - polyline_type
    - vector::push_back
    - S2Polyline::S2Polyline
    - Graph::LabelFetcher::Fetch
    - std::move
    - push_back
    - S2Polyline*::FindValidationError
    - GetPolylines
    - vector::clear
    - Add
    - emplace_back
    - size
    - vertex
    - edge
    linkageType: ''
    returnType: void
    signature: void S2PolylineVectorLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolylineVectorLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polylines
    - ' options'
    argTypes:
    - vector<unique_ptr<S2Polyline>>*
    - S2PolylineVectorLayer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: s2builderutil::S2PolylineVectorLayer::S2PolylineVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolylineVectorLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::S2PolylineVectorLayer(\n    vector<unique_ptr<S2Polyline>>*
      polylines,\n    const S2PolylineVectorLayer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2PolylineVectorLayer::Init
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - polylines
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - vector<unique_ptr<S2Polyline>>*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: s2builderutil::S2PolylineVectorLayer::S2PolylineVectorLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2PolylineVectorLayer::Init
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::S2PolylineVectorLayer(\n    vector<unique_ptr<S2Polyline>>*
      polylines, LabelSetIds* label_set_ids,\n    IdSetLexicon* label_set_lexicon,
      const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - polylines
    - label_set_ids
    - label_set_lexicon
    - ' options'
    argTypes:
    - vector<unique_ptr<S2Polyline>>*
    - LabelSetIds*
    - IdSetLexicon*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: s2builderutil::S2PolylineVectorLayer::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 4
    functionsReached:
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void S2PolylineVectorLayer::Init(vector<unique_ptr<S2Polyline>>* polylines,\n
      \                                LabelSetIds* label_set_ids,\n                                 IdSetLexicon*
      label_set_lexicon,\n                                 const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:74,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:74,1
    - Dst: duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:75,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: s2builderutil::S2PolylineVectorLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - sibling_pairs
    - edge_type
    - duplicate_edges
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions S2PolylineVectorLayer::graph_options() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:79,1
    - Dst: polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:80,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:81,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:81,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:82,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:82,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:86,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:86,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:86,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:88,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:88,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:88,1
    - Dst: s2debug_override
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:91,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:90,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:92,1
    - Dst: validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:93,1
    - Dst: S2Polyline*::FindValidationError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:94,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:96,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:98,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:100,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:100,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:102,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:103,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:103,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:105,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 108
    functionName: s2builderutil::S2PolylineVectorLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
    functionUses: 0
    functionsReached:
    - vector::reserve
    - vector::size
    - s2debug_override
    - edge_type
    - reserve
    - validate
    - polyline_type
    - vector::push_back
    - S2Polyline::S2Polyline
    - Graph::LabelFetcher::Fetch
    - std::move
    - push_back
    - S2Polyline*::FindValidationError
    - GetPolylines
    - vector::clear
    - Add
    - emplace_back
    - size
    - vertex
    - edge
    linkageType: ''
    returnType: void
    signature: void S2PolylineVectorLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: S2Cell::S2Cell
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Cell()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: S2Cell::S2Cell
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 4
    functionsReached:
    - S2CellId
    linkageType: ''
    returnType: void
    signature: void S2Cell(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: S2Cell::S2Cell
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 4
    functionsReached:
    - S2CellId
    linkageType: ''
    returnType: void
    signature: void S2Cell(const S2LatLng& ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::S2Cell
      Src: /src/s2geometry/src/s2/s2cell.h:82,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: S2Cell::FromFace
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 8
    functionsReached:
    - S2Cell::S2Cell
    - S2CellId::FromFace
    linkageType: ''
    returnType: S2Cell
    signature: S2Cell FromFace(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::S2Cell
      Src: /src/s2geometry/src/s2/s2cell.h:92,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - face
    - pos
    - level
    argTypes:
    - int
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: S2Cell::FromFacePosLevel
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 5
    functionsReached:
    - S2CellId::FromFacePosLevel
    - S2Cell::S2Cell
    linkageType: ''
    returnType: S2Cell
    signature: S2Cell FromFacePosLevel(int face, uint64_t pos, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: S2Cell::id
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: S2Cell::face
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int face() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: S2Cell::level
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: S2Cell::orientation
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int orientation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: S2Cell::is_leaf
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:107,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator<=>(const S2Cell& x, const S2Cell& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - id
    linkageType: ''
    returnType: auto
    signature: auto operator<=>(const S2Cell& x, const S2Cell& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:111,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: operator!=(const S2Cell& x, const S2Cell& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - id
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const S2Cell& x, const S2Cell& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:114,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: operator<(const S2Cell& x, const S2Cell& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - id
    linkageType: ''
    returnType: bool
    signature: bool operator<(const S2Cell& x, const S2Cell& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:117,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: operator>(const S2Cell& x, const S2Cell& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - id
    linkageType: ''
    returnType: bool
    signature: bool operator>(const S2Cell& x, const S2Cell& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:120,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: operator<=(const S2Cell& x, const S2Cell& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - id
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const S2Cell& x, const S2Cell& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:123,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: operator>=(const S2Cell& x, const S2Cell& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - id
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const S2Cell& x, const S2Cell& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: S2Cell::GetVertex
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 20
    functionsReached:
    - S2Cell::GetVertexRaw
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetVertex(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2cell.h:138,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: S2Cell::GetVertexRaw
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 1
    functionsReached:
    - S2Cell::GetVertex
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetVertexRaw(int k) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell.h:151,1
    - Dst: S2Cell::GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: S2Cell::GetUVCoordOfEdge
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - S2Cell::GetBoundUV
    linkageType: ''
    returnType: double
    signature: double GetUVCoordOfEdge(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::round
      Src: /src/s2geometry/src/s2/s2cell.h:180,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2cell.h:180,1
    - Dst: S2Cell::GetUVCoordOfEdge
      Src: /src/s2geometry/src/s2/s2cell.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: S2Cell::GetIJCoordOfEdge
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - std::round
    - S2Cell::GetUVCoordOfEdge
    - S2::UVtoST
    linkageType: ''
    returnType: int32_t
    signature: int32_t GetIJCoordOfEdge(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cell.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: S2Cell::GetEdge
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - S2Cell::GetEdgeRaw
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetEdge(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetCenterRaw
      Src: /src/s2geometry/src/s2/s2cell.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: S2Cell::GetCenter
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 8
    functionsReached:
    - S2Cell::GetCenterRaw
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetCenter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2cell.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: S2Cell::AverageArea
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 7
    functionsReached:
    - S2Cell::AverageArea
    linkageType: ''
    returnType: double
    signature: double AverageArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: S2Cell::GetBoundUV
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect GetBoundUV() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:347,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: operator==(const S2Cell& x, const S2Cell& y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - id
    linkageType: ''
    returnType: bool
    signature: bool operator==(const S2Cell& x, const S2Cell& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell.h:351,1
    - Dst: S2Cell::level
      Src: /src/s2geometry/src/s2/s2cell.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: S2Cell::GetSizeIJ
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - S2Cell::level
    - S2CellId::GetSizeIJ
    linkageType: ''
    returnType: int
    signature: int S2Cell::GetSizeIJ() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetSizeST
      Src: /src/s2geometry/src/s2/s2cell.h:355,1
    - Dst: S2Cell::level
      Src: /src/s2geometry/src/s2/s2cell.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: S2Cell::GetSizeST
    functionSourceFile: /src/s2geometry/src/s2/s2cell.h
    functionUses: 0
    functionsReached:
    - S2Cell::level
    - S2CellId::GetSizeST
    linkageType: ''
    returnType: double
    signature: double S2Cell::GetSizeST() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2internal::BTreeMap::tree_::bytes_used
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: s2internal::BTreeMap::bytes_used
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - s2internal::BTreeMap::tree_::bytes_used
    linkageType: ''
    returnType: size_t
    signature: size_t bytes_used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2internal::BTreeMap::tree_::bytes_used
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: s2internal::BTreeMap::bytes_used
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - s2internal::BTreeMap::tree_::bytes_used
    linkageType: ''
    returnType: size_t
    signature: size_t bytes_used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: MutableS2ShapeIndex::Options::max_edges_per_cell
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_edges_per_cell() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: MutableS2ShapeIndex::memory_tracker
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - tracker
    linkageType: ''
    returnType: S2MemoryTracker
    signature: S2MemoryTracker * memory_tracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:246,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: MutableS2ShapeIndex::num_shape_ids
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 6
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int num_shape_ids() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: MutableS2ShapeIndex::shape
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 10
    functionsReached:
    - get
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape * shape(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: MutableS2ShapeIndex::Iterator::Iterator
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Iterator()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:327,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: MutableS2ShapeIndex::Iterator::id
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 15
    functionsReached:
    - S2CellId::Sentinel
    - MutableS2ShapeIndex::Iterator::done
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId id() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:335,1
    - Dst: done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: '& cell() const override'
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2ShapeIndexCell
    signature: S2ShapeIndexCell & cell() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: MutableS2ShapeIndex::Iterator::done
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: MutableS2ShapeIndex::Iterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 4
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: bool
    signature: bool Locate(const S2Point& target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: MutableS2ShapeIndex::Iterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 4
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: S2CellRelation
    signature: S2CellRelation Locate(S2CellId target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Iterator>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: MutableS2ShapeIndex::Iterator::Clone
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Iterator>
    linkageType: ''
    returnType: std::unique_ptr<IteratorBase>
    signature: std::unique_ptr<IteratorBase> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 584
    functionName: ~UpdateState()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: void ~UpdateState()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 596
    functionName: MutableS2ShapeIndex::MutableS2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex(const MutableS2ShapeIndex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 597
    functionName: '& operator=(const MutableS2ShapeIndex&)'
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MutableS2ShapeIndex
    signature: MutableS2ShapeIndex & operator=(const MutableS2ShapeIndex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 655
    functionName: MutableS2ShapeIndex::BatchGenerator::max_batch_size
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_batch_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 658
    functionName: MutableS2ShapeIndex::BatchGenerator::next_max_batch_size
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int next_max_batch_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_edges
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 663
    functionName: MutableS2ShapeIndex::BatchGenerator::ExtendBatch
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExtendBatch(int num_edges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - pos
    argTypes:
    - MutableS2ShapeIndex*
    - InitialPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 695
    functionName: "MutableS2ShapeIndex::Iterator::Iterator(\n    const MutableS2ShapeIndex*
      index, InitialPosition pos)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::Iterator::Iterator(\n    const MutableS2ShapeIndex*
      index, InitialPosition pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex*::MaybeApplyUpdates
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:699,1
    - Dst: InitStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - pos
    argTypes:
    - MutableS2ShapeIndex*
    - InitialPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 701
    functionName: "MutableS2ShapeIndex::Iterator::Init(\n    const MutableS2ShapeIndex*
      index, InitialPosition pos)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex*::MaybeApplyUpdates
    - InitStale
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::Iterator::Init(\n    const MutableS2ShapeIndex*
      index, InitialPosition pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cell_map_::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:706,1
    - Dst: cell_map_::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - index
    - pos
    argTypes:
    - MutableS2ShapeIndex*
    - InitialPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 712
    functionName: "MutableS2ShapeIndex::Iterator::InitStale(\n    const MutableS2ShapeIndex*
      index, InitialPosition pos)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - cell_map_::begin
    - cell_map_::end
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::Iterator::InitStale(\n    const MutableS2ShapeIndex*
      index, InitialPosition pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:716,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:716,1
    - Dst: cell_map_::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 718
    functionName: MutableS2ShapeIndex::Iterator::Begin()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - cell_map_::begin
    - is_fresh
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Iterator::Begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 722
    functionName: MutableS2ShapeIndex::Iterator::Finish()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Iterator::Finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:725,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: MutableS2ShapeIndex::Iterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Iterator::done
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Iterator::Next()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cell_map_::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 735
    functionName: MutableS2ShapeIndex::Iterator::Prev()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - cell_map_::begin
    linkageType: ''
    returnType: bool
    signature: bool MutableS2ShapeIndex::Iterator::Prev()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cell_map_::lower_bound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 739
    functionName: MutableS2ShapeIndex::Iterator::Seek(S2CellId target)
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - cell_map_::lower_bound
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Iterator::Seek(S2CellId target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Iterator>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - InitialPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 744
    functionName: MutableS2ShapeIndex::NewIterator
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Iterator>
    linkageType: ''
    returnType: std::unique_ptr<MutableS2ShapeIndex::IteratorBase>
    signature: std::unique_ptr<MutableS2ShapeIndex::IteratorBase> MutableS2ShapeIndex::NewIterator(InitialPosition
      pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MaybeApplyUpdates
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 748
    functionName: MutableS2ShapeIndex::ForceBuild
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 6
    functionsReached:
    - MutableS2ShapeIndex::MaybeApplyUpdates
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::ForceBuild() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 752
    functionName: MutableS2ShapeIndex::is_fresh
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: bool
    signature: bool MutableS2ShapeIndex::is_fresh() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 759
    functionName: MutableS2ShapeIndex::is_shape_being_removed
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool MutableS2ShapeIndex::is_shape_being_removed(int shape_id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:771,1
    - Dst: const_cast<MutableS2ShapeIndex*>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.h:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 774
    functionName: MutableS2ShapeIndex::MaybeApplyUpdates
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.h
    functionUses: 1
    functionsReached:
    - const_cast<MutableS2ShapeIndex*>
    - load
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::MaybeApplyUpdates() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vector<vector<S2Shape*>>*::clear
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:40,1
    - Dst: absl::Span<const vector<S2Shape*>>::empty
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:41,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:64,1
    - Dst: absl::Span<const vector<S2Shape*>>::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:68,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:71,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:72,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:72,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:74,1
    - Dst: WrapUnique
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:74,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:75,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:77,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:81,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:81,1
    - Dst: absl::Span<const vector<S2Shape*>>::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:85,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:87,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:89,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:89,1
    - Dst: S2ContainsPointQuery::GetContainingShapeIds
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:90,1
    - Dst: auto::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:90,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:95,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:97,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:100,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:101,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:105,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:108,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:109,1
    - Dst: vector<vector<S2Shape*>>*::resize
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:113,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:113,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:114,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:116,1
    - Dst: absl::flat_hash_map::find
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:117,1
    - Dst: absl::flat_hash_map::end
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:118,1
    - Dst: auto::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:121,1
    - Dst: const_cast<S2Shape*>
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:121,1
    - Dst: vector<vector<S2Shape*>>*::back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:123,1
    - Dst: MutableS2ShapeIndex::ReleaseAll
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:126,1
    - Dst: release
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - components
    - polygons
    argTypes:
    - absl::Span<const vector<S2Shape*>>
    - vector<vector<S2Shape*>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 127
    functionName: s2shapeutil::BuildPolygonBoundaries
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::num_shape_ids
    - s2shapeutil::ContainsBruteForce
    - S2ContainsPointQuery::GetContainingShapeIds
    - vector<vector<S2Shape*>>*::resize
    - vector::size
    - ABSL_DCHECK_GE
    - absl::Span<const vector<S2Shape*>>::empty
    - MutableS2ShapeIndex::ReleaseAll
    - ABSL_DCHECK_GT
    - vector<vector<S2Shape*>>*::back
    - absl::flat_hash_map::find
    - MutableS2ShapeIndex::shape
    - MutableS2ShapeIndex::Add
    - vector::push_back
    - S2::Origin
    - ABSL_DCHECK_EQ
    - push_back
    - WrapUnique
    - auto::push_back
    - const_cast<S2Shape*>
    - vector<vector<S2Shape*>>*::clear
    - absl::Span<const vector<S2Shape*>>::size
    - absl::flat_hash_map::end
    - size
    - auto::edge
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - release
    - auto::num_edges
    linkageType: ''
    returnType: void
    signature: "void BuildPolygonBoundaries(absl::Span<const vector<S2Shape*>> components,\n
      \                           vector<vector<S2Shape*>>* polygons)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vector<vector<S2Shape*>>*::clear
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:40,1
    - Dst: absl::Span<const vector<S2Shape*>>::empty
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:41,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:64,1
    - Dst: absl::Span<const vector<S2Shape*>>::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:68,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:71,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:72,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:72,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:74,1
    - Dst: WrapUnique
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:74,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:75,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:77,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:81,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:81,1
    - Dst: absl::Span<const vector<S2Shape*>>::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:85,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:87,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:89,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:89,1
    - Dst: S2ContainsPointQuery::GetContainingShapeIds
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:90,1
    - Dst: auto::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:90,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:95,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:97,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:100,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:101,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:105,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:108,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:109,1
    - Dst: vector<vector<S2Shape*>>*::resize
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:113,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:113,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:114,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:116,1
    - Dst: absl::flat_hash_map::find
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:117,1
    - Dst: absl::flat_hash_map::end
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:118,1
    - Dst: auto::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:121,1
    - Dst: const_cast<S2Shape*>
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:121,1
    - Dst: vector<vector<S2Shape*>>*::back
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:123,1
    - Dst: MutableS2ShapeIndex::ReleaseAll
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:126,1
    - Dst: release
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - components
    - polygons
    argTypes:
    - absl::Span<const vector<S2Shape*>>
    - vector<vector<S2Shape*>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 127
    functionName: s2shapeutil::BuildPolygonBoundaries
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::num_shape_ids
    - s2shapeutil::ContainsBruteForce
    - S2ContainsPointQuery::GetContainingShapeIds
    - vector<vector<S2Shape*>>*::resize
    - vector::size
    - ABSL_DCHECK_GE
    - absl::Span<const vector<S2Shape*>>::empty
    - MutableS2ShapeIndex::ReleaseAll
    - ABSL_DCHECK_GT
    - vector<vector<S2Shape*>>*::back
    - absl::flat_hash_map::find
    - MutableS2ShapeIndex::shape
    - MutableS2ShapeIndex::Add
    - vector::push_back
    - S2::Origin
    - ABSL_DCHECK_EQ
    - push_back
    - WrapUnique
    - auto::push_back
    - const_cast<S2Shape*>
    - vector<vector<S2Shape*>>*::clear
    - absl::Span<const vector<S2Shape*>>::size
    - absl::flat_hash_map::end
    - size
    - auto::edge
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - release
    - auto::num_edges
    linkageType: ''
    returnType: void
    signature: "void BuildPolygonBoundaries(absl::Span<const vector<S2Shape*>> components,\n
      \                           vector<vector<S2Shape*>>* polygons)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: S2Shape::Edge
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Edge()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' _v0'
    - ' _v1'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: S2Shape::Edge
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Edge(const S2Point& _v0, const S2Point& _v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: S2Shape::Reversed
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: Edge Reversed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: S2Shape::IsDegenerate
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDegenerate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: S2Shape::Incoming
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Incoming(const S2Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: S2Shape::Outgoing
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Outgoing(const S2Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Incoming
      Src: /src/s2geometry/src/s2/s2shape.h:87,1
    - Dst: S2Shape::Outgoing
      Src: /src/s2geometry/src/s2/s2shape.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: S2Shape::IncidentOn
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - S2Shape::Incoming
    - S2Shape::Outgoing
    linkageType: ''
    returnType: bool
    signature: bool IncidentOn(const S2Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Edge
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: operator==(const Edge& x, const Edge& y)
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Edge& x, const Edge& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Edge
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: operator!=(const Edge& x, const Edge& y)
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Edge& x, const Edge& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Edge
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: operator<(const Edge& x, const Edge& y)
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Edge& x, const Edge& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2shape.h:103,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' e'
    argTypes:
    - H
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: S2Shape::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Edge& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: S2Shape::Chain
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Chain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _start
    - _length
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: S2Shape::Chain
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Chain(int32_t _start, int32_t _length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Chain
    - Chain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: operator==(const Chain& x, const Chain& y)
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Chain& x, const Chain& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: S2Shape::ChainPosition
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChainPosition()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _chain_id
    - _offset
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: S2Shape::ChainPosition
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChainPosition(int32_t _chain_id, int32_t _offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - ChainPosition
    - ChainPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: operator==(const ChainPosition& x, const ChainPosition& y)
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ChainPosition& x, const ChainPosition& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: S2Shape::ReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReferencePoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _point
    - _contained
    argTypes:
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: S2Shape::ReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReferencePoint(S2Point _point, bool _contained)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::ReferencePoint
      Src: /src/s2geometry/src/s2/s2shape.h:147,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2shape.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _contained
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: S2Shape::Contained
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 2
    functionsReached:
    - S2::Origin
    - S2Shape::ReferencePoint
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint Contained(bool _contained)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - ReferencePoint
    - ReferencePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: operator==(const ReferencePoint& x, const ReferencePoint& y)
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ReferencePoint& x, const ReferencePoint& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: S2Shape::S2Shape
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Shape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: ~S2Shape()
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2Shape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shape.h:212,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape.h:212,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape.h:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: S2Shape::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - num_edges
    - num_chains
    - dimension
    linkageType: ''
    returnType: bool
    signature: bool is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shape.h:217,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape.h:217,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape.h:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: S2Shape::is_full
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - num_edges
    - num_chains
    - dimension
    linkageType: ''
    returnType: bool
    signature: bool is_full() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: S2Shape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG
      Src: /src/s2geometry/src/s2/s2shape.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - encoder
    - hint
    argTypes:
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: S2Shape::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - ABSL_DLOG
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder* encoder, s2coding::CodingHint hint) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: S2Shape::user_data
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * user_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: S2Shape::mutable_user_data
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * mutable_user_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 346
    functionName: S2Shape::ChainVertexIterator::ChainVertexIterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChainVertexIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: S2Shape::ChainVertexRange::ChainVertexRange
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChainVertexRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    functionName: S2Shape::ChainIterator::ChainIterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChainIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - shape
    - chain_id
    argTypes:
    - S2Shape*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: S2Shape::ChainIterator::ChainIterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChainIterator(const S2Shape* shape, int chain_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 481
    functionName: S2Shape::ChainRange::ChainRange
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChainRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - shape
    argTypes:
    - S2Shape*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 484
    functionName: S2Shape::ChainRange::ChainRange
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChainRange(const S2Shape* shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: S2Shape::S2Shape
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Shape(S2Shape&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 512
    functionName: S2Shape::S2Shape
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Shape(const S2Shape&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 513
    functionName: '& operator=(const S2Shape&) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape & operator=(const S2Shape&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 514
    functionName: '& operator=(S2Shape&&) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape & operator=(S2Shape&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shape.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: "S2Shape::ChainIterator::operator*()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - chain
    linkageType: ''
    returnType: S2Shape::ChainIterator::reference
    signature: "S2Shape::ChainIterator::reference S2Shape::ChainIterator::operator*()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: '& S2Shape::ChainIterator::operator++()'
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Shape::ChainIterator
    signature: S2Shape::ChainIterator & S2Shape::ChainIterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::ChainIterator::ChainIterator
      Src: /src/s2geometry/src/s2/s2shape.h:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 535
    functionName: S2Shape::ChainIterator::operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - S2Shape::ChainIterator::ChainIterator
    linkageType: ''
    returnType: S2Shape::ChainIterator
    signature: S2Shape::ChainIterator S2Shape::ChainIterator::operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - ChainIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 539
    functionName: S2Shape::ChainIterator::operator==(ChainIterator it) const
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2Shape::ChainIterator::operator==(ChainIterator it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - ChainIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 543
    functionName: S2Shape::ChainIterator::operator!=(ChainIterator it) const
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2Shape::ChainIterator::operator!=(ChainIterator it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainRange
      Src: /src/s2geometry/src/s2/s2shape.h:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 545
    functionName: S2Shape::chains
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - ChainRange
    linkageType: ''
    returnType: S2Shape::ChainRange
    signature: S2Shape::ChainRange S2Shape::chains() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainIterator
      Src: /src/s2geometry/src/s2/s2shape.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 549
    functionName: S2Shape::ChainRange::begin() const
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - ChainIterator
    linkageType: ''
    returnType: S2Shape::ChainIterator
    signature: S2Shape::ChainIterator S2Shape::ChainRange::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainIterator
      Src: /src/s2geometry/src/s2/s2shape.h:552,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shape.h:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 553
    functionName: S2Shape::ChainRange::end() const
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - num_chains
    - ChainIterator
    linkageType: ''
    returnType: S2Shape::ChainIterator
    signature: S2Shape::ChainIterator S2Shape::ChainRange::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UpdateCurrentEdge
      Src: /src/s2geometry/src/s2/s2shape.h:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - shape
    - ' chain'
    - vertex_index
    argTypes:
    - S2Shape*
    - Chain
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: "S2Shape::ChainVertexIterator::ChainVertexIterator(const S2Shape*
      shape,\n                                                         const Chain&
      chain,\n                                                         int vertex_index)"
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - UpdateCurrentEdge
    linkageType: ''
    returnType: void
    signature: "void S2Shape::ChainVertexIterator::ChainVertexIterator(const S2Shape*
      shape,\n                                                         const Chain&
      chain,\n                                                         int vertex_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: S2Shape::ChainVertexIterator::operator*() const
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Shape::ChainVertexIterator::reference
    signature: S2Shape::ChainVertexIterator::reference S2Shape::ChainVertexIterator::operator*()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: S2Shape::ChainVertexIterator::operator->() const
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Shape::ChainVertexIterator::pointer
    signature: S2Shape::ChainVertexIterator::pointer S2Shape::ChainVertexIterator::operator->()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UpdateCurrentEdge
      Src: /src/s2geometry/src/s2/s2shape.h:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: '&

      S2Shape::ChainVertexIterator::operator++()'
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - UpdateCurrentEdge
    linkageType: ''
    returnType: S2Shape::ChainVertexIterator
    signature: 'S2Shape::ChainVertexIterator &

      S2Shape::ChainVertexIterator::operator++()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UpdateCurrentEdge
      Src: /src/s2geometry/src/s2/s2shape.h:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 585
    functionName: "S2Shape::ChainVertexIterator::operator++(\n    int)"
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - UpdateCurrentEdge
    linkageType: ''
    returnType: S2Shape::ChainVertexIterator
    signature: "S2Shape::ChainVertexIterator S2Shape::ChainVertexIterator::operator++(\n
      \   int)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - S2Shape::ChainVertexIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 591
    functionName: "S2Shape::ChainVertexIterator::operator==(\n    S2Shape::ChainVertexIterator
      it) const"
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool S2Shape::ChainVertexIterator::operator==(\n    S2Shape::ChainVertexIterator
      it) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - S2Shape::ChainVertexIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: "S2Shape::ChainVertexIterator::operator!=(\n    S2Shape::ChainVertexIterator
      it) const"
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool S2Shape::ChainVertexIterator::operator!=(\n    S2Shape::ChainVertexIterator
      it) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape.h:617,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape.h:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 637
    functionName: S2Shape::ChainVertexIterator::UpdateCurrentEdge()
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - edge
    - dimension
    linkageType: ''
    returnType: void
    signature: void S2Shape::ChainVertexIterator::UpdateCurrentEdge()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - shape
    - ' chain'
    argTypes:
    - S2Shape*
    - Chain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 641
    functionName: "S2Shape::ChainVertexRange::ChainVertexRange(const S2Shape* shape,\n
      \                                                  const Chain& chain)"
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Shape::ChainVertexRange::ChainVertexRange(const S2Shape* shape,\n
      \                                                  const Chain& chain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainVertexIterator
      Src: /src/s2geometry/src/s2/s2shape.h:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 645
    functionName: S2Shape::ChainVertexRange::begin() const
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - ChainVertexIterator
    linkageType: ''
    returnType: S2Shape::ChainVertexIterator
    signature: S2Shape::ChainVertexIterator S2Shape::ChainVertexRange::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainVertexIterator
      Src: /src/s2geometry/src/s2/s2shape.h:648,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2shape.h:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 649
    functionName: S2Shape::ChainVertexRange::end() const
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - num_vertices
    - ChainVertexIterator
    linkageType: ''
    returnType: S2Shape::ChainVertexIterator
    signature: S2Shape::ChainVertexIterator S2Shape::ChainVertexRange::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shape.h:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 663
    functionName: S2Shape::ChainVertexRange::num_vertices() const
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - dimension
    linkageType: ''
    returnType: int
    signature: int S2Shape::ChainVertexRange::num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainVertexRange
      Src: /src/s2geometry/src/s2/s2shape.h:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' chain'
    argTypes:
    - S2Shape::Chain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: S2Shape::vertices
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 0
    functionsReached:
    - ChainVertexRange
    linkageType: ''
    returnType: S2Shape::ChainVertexRange
    signature: "S2Shape::ChainVertexRange S2Shape::vertices(\n    const S2Shape::Chain&
      chain) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::vertices
      Src: /src/s2geometry/src/s2/s2shape.h:671,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shape.h:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chain_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 672
    functionName: S2Shape::vertices
    functionSourceFile: /src/s2geometry/src/s2/s2shape.h
    functionUses: 1
    functionsReached:
    - chain
    - S2Shape::vertices
    linkageType: ''
    returnType: S2Shape::ChainVertexRange
    signature: S2Shape::ChainVertexRange S2Shape::vertices(int chain_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: R2Edge
    functionSourceFile: /src/s2geometry/src/s2/r2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void R2Edge()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' v0'
    - ' v1'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: R2Edge
    functionSourceFile: /src/s2geometry/src/s2/r2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void R2Edge(const R2Point& v0, const R2Point& v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - R2Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: operator==(const R2Edge& b) const
    functionSourceFile: /src/s2geometry/src/s2/r2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const R2Edge& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/r2.h:35,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/r2.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' e'
    argTypes:
    - H
    - R2Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/r2.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const R2Edge& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: S2ClosestEdgeQuery::S2ClosestEdgeQuery
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQuery(const S2ClosestEdgeQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    functionName: operator=(const S2ClosestEdgeQuery&)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2ClosestEdgeQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:357,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: "S2ClosestEdgeQuery::Options::set_max_distance(\n    S1ChordAngle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - Distance
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::Options::set_max_distance(\n    S1ChordAngle
      max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:362,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: "S2ClosestEdgeQuery::Options::set_max_distance(\n    S1Angle max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - Distance
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::Options::set_max_distance(\n    S1Angle max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:367,1
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: "S2ClosestEdgeQuery::Options::set_inclusive_max_distance(\n    S1ChordAngle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::Successor
    - set_max_distance
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::Options::set_inclusive_max_distance(\n    S1ChordAngle
      max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:372,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: "S2ClosestEdgeQuery::Options::set_inclusive_max_distance(\n    S1Angle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached:
    - set_inclusive_max_distance
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::Options::set_inclusive_max_distance(\n    S1Angle
      max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:376,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_error
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: S2ClosestEdgeQuery::Options::set_max_error(S1Angle max_error)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_error
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQuery::Options::set_max_error(S1Angle max_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: S2ClosestEdgeQuery::PointTarget::PointTarget(const S2Point& point)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQuery::PointTarget::PointTarget(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: "S2ClosestEdgeQuery::EdgeTarget::EdgeTarget(const S2Point& a,\n
      \                                                 const S2Point& b)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::EdgeTarget::EdgeTarget(const S2Point& a,\n
      \                                                 const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: S2ClosestEdgeQuery::CellTarget::CellTarget(const S2Cell& cell)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQuery::CellTarget::CellTarget(const S2Cell& cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: "S2ClosestEdgeQuery::ShapeIndexTarget::ShapeIndexTarget(\n    const
      S2ShapeIndex* index)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::ShapeIndexTarget::ShapeIndexTarget(\n    const
      S2ShapeIndex* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Init
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - S2ShapeIndex*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: S2ClosestEdgeQuery::S2ClosestEdgeQuery
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::Init
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::S2ClosestEdgeQuery(const S2ShapeIndex* index,\n
      \                                             const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Init
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - S2ShapeIndex*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: S2ClosestEdgeQuery::Init
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 2
    functionsReached:
    - S2ClosestEdgeQuery::Init
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::Init(const S2ShapeIndex* index,\n                                     const
      Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::ReInit
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: S2ClosestEdgeQuery::ReInit
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQuery::ReInit
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQuery::ReInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: '& S2ClosestEdgeQuery::index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached:
    - index
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex & S2ClosestEdgeQuery::index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: '& S2ClosestEdgeQuery::options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ClosestEdgeQuery::Options
    signature: S2ClosestEdgeQuery::Options & S2ClosestEdgeQuery::options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: S2ClosestEdgeQuery::mutable_options
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ClosestEdgeQuery::Options
    signature: S2ClosestEdgeQuery::Options * S2ClosestEdgeQuery::mutable_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - filter
    argTypes:
    - Target*
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: S2ClosestEdgeQuery::FindClosestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQuery::FindClosestEdges
    linkageType: ''
    returnType: std::vector<S2ClosestEdgeQuery::Result>
    signature: std::vector<S2ClosestEdgeQuery::Result> S2ClosestEdgeQuery::FindClosestEdges(Target*
      target, ShapeFilter filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - target
    - results
    - filter
    argTypes:
    - Target*
    - std::vector<Result>*
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: S2ClosestEdgeQuery::FindClosestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 2
    functionsReached:
    - S2ClosestEdgeQuery::FindClosestEdges
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::FindClosestEdges(Target* target,\n                                                 std::vector<Result>*
      results,\n                                                 ShapeFilter filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:439,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - target
    - filter
    argTypes:
    - Target*
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: S2ClosestEdgeQuery::FindClosestEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 2
    functionsReached:
    - S2ClosestEdgeQuery::FindClosestEdge
    - Options::set_max_results
    linkageType: ''
    returnType: S2ClosestEdgeQuery::Result
    signature: "S2ClosestEdgeQuery::Result S2ClosestEdgeQuery::FindClosestEdge(\n
      \   Target* target, ShapeFilter filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::VisitClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:446,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - target
    - options
    - visitor
    - filter
    argTypes:
    - Target*
    - Options
    - ResultVisitor
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 449
    functionName: S2ClosestEdgeQuery::VisitClosestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQuery::VisitClosestEdges
    - visitor
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::VisitClosestEdges(  //\n    Target* target,
      Options options, ResultVisitor visitor,\n    ShapeFilter filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - filter
    argTypes:
    - Target*
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: S2ClosestEdgeQuery::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQuery::FindClosestEdge
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle S2ClosestEdgeQuery::GetDistance(Target* target,\n                                                    ShapeFilter
      filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:457,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:457,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: S2ClosestEdgeQuery::GetEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 0
    functionsReached:
    - edge_id
    - index
    - shape_id
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2ClosestEdgeQuery::GetEdge(const Result& result) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:462,1
    - Dst: S2ClosestEdgeQuery::GetEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:463,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2closest_edge_query.h:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' point'
    - ' result'
    argTypes:
    - S2Point
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: S2ClosestEdgeQuery::Project
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.h
    functionUses: 1
    functionsReached:
    - edge_id
    - S2::Project
    - S2ClosestEdgeQuery::GetEdge
    linkageType: ''
    returnType: S2Point
    signature: "S2Point S2ClosestEdgeQuery::Project(const S2Point& point,\n                                           const
      Result& result) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:31,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:32,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:32,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:33,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:34,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:34,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:35,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ContainsVertexQuery::ContainsSign
    - MakePointOrDie
    - S2ContainsVertexQuery::AddEdge
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2ContainsVertexQuery::DuplicateEdges
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsVertexQuery, Undetermined)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:41,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:42,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:42,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:43,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:43,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:44,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:44,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:45,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:46,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:46,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:47,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:47,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:50,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:50,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:51,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:51,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:54,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:55,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ContainsVertexQuery::ContainsSign
    - EXPECT_TRUE
    - MakePointOrDie
    - S2ContainsVertexQuery::AddEdge
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2ContainsVertexQuery::DuplicateEdges
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsVertexQuery, ContainedWithDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:61,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:62,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:62,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:63,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:63,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:64,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:64,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:65,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:66,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:67,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:67,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:70,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:70,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:71,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:71,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:74,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:75,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 76
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ContainsVertexQuery::ContainsSign
    - EXPECT_TRUE
    - MakePointOrDie
    - S2ContainsVertexQuery::AddEdge
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2ContainsVertexQuery::DuplicateEdges
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsVertexQuery, NotContainedWithDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:80,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:80,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:81,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:83,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:88,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:90,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:90,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:90,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:91,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ContainsVertexQuery::ContainsSign
    - S2ContainsVertexQuery::DuplicateEdges
    - S2PointLoopSpan::size
    - S2::AngleContainsVertex
    - S1Angle::Degrees
    - MakePointOrDie
    - S2ContainsVertexQuery::AddEdge
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsVertexQuery, CompatibleWithAngleContainsVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:99,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:101,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:101,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:101,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:102,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ContainsVertexQuery::ContainsSign
    - S2::AngleContainsVertex
    - S2ContainsVertexQuery::AddEdge
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2ContainsVertexQuery::DuplicateEdges
    linkageType: ''
    returnType: void
    signature: void TEST(S2ContainsVertexQuery, CompatibleWithAngleContainsVertexDegenerate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:63,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:63,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: Stats::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 14
    functionsReached:
    - ABSL_LOG
    - Stats::max
    - std::isnan
    linkageType: ''
    returnType: void
    signature: void Tally(double v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Stats::max
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double max() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Stats::avg
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double avg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:73,1
    - Dst: Stats::avg
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:73,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Stats::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 14
    functionsReached:
    - Stats::max
    - Stats::avg
    - StrCat
    linkageType: ''
    returnType: string
    signature: string ToString() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:92,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:94,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:95,1
    - Dst: Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:95,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:97,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:99,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:100,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:100,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:107,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:108,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ' proj'
    - ' px'
    - ' x'
    - ' py'
    - ' y'
    argTypes:
    - S2::Projection
    - R2Point
    - S2Point
    - R2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 109
    functionName: GetMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 8
    functionsReached:
    - S1ChordAngle::PlusError
    - S2::Interpolate
    - S2::GetUpdateMinDistanceMaxError
    - S1ChordAngle::Zero
    - S2::UpdateMinDistance
    - S1Angle
    - Unproject
    - S1ChordAngle::Infinity
    - Interpolate
    - S1ChordAngle
    - ABSL_DCHECK
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle GetMaxDistance(const S2::Projection& proj,\n                       const
      R2Point& px, const S2Point& x,\n                       const R2Point& py, const
      S2Point& y,\n                       DistType dist_type = DistType::GEOMETRIC)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:124,1
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:125,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:126,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:126,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:126,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:126,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:127,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:127,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:127,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:130,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:130,1
    - Dst: Ortho
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:134,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:136,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:137,1
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:139,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:139,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:143,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:143,1
    - Dst: R2Point::Norm
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:143,1
    - Dst: Stats::Tally
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:144,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:144,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:149,1
    - Dst: Stats::ToString
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ' proj'
    - tolerance
    - ' pa'
    - ' pb_in'
    - log_stats
    argTypes:
    - S2::Projection
    - S1Angle
    - R2Point
    - R2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 153
    functionName: TestUnprojected
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - Stats::Tally
    - R2Point::Norm
    - GetMaxDistance
    - vector::front
    - Stats::ToString
    - vector::back
    - vector::size
    - S1Angle
    - Unproject
    - EXPECT_LE
    - Ortho
    - EXPECT_EQ
    - WrapDestination
    - S2EdgeTessellator::AppendUnprojected
    - Project
    linkageType: ''
    returnType: Stats
    signature: "Stats TestUnprojected(const S2::Projection& proj, S1Angle tolerance,\n
      \                     const R2Point& pa, const R2Point& pb_in, bool log_stats)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:161,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:164,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:164,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:164,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:164,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:165,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:166,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:166,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:166,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:166,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:170,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:170,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:174,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:175,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:177,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:182,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:182,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:183,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:183,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:184,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:185,1
    - Dst: Stats::Tally
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:186,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:186,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:191,1
    - Dst: Stats::ToString
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ' proj'
    - tolerance
    - ' a'
    - ' b'
    - log_stats
    argTypes:
    - S2::Projection
    - S1Angle
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 6
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: TestProjected
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - GetMaxDistance
    - vector::front
    - S2::GetDistance
    - S2::IsDistanceLess
    - EXPECT_TRUE
    - S1Angle::Radians
    - S2LatLng
    - Stats::ToString
    - vector::back
    - S1Angle
    - Unproject
    - radians
    - EXPECT_LE
    - S2EdgeTessellator::AppendProjected
    - Stats::Tally
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: Stats
    signature: "Stats TestProjected(const S2::Projection& proj, S1Angle tolerance,\n
      \                   const S2Point& a, const S2Point& b, bool log_stats)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:199,1
    - Dst: S2EdgeTessellator
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:202,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S2EdgeTessellator
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, IsAssignable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:207,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:209,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:209,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:210,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S1Angle::Degrees
    - S2EdgeTessellator::AppendProjected
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedNoTessellation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:215,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:217,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:217,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:218,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S2EdgeTessellator::AppendUnprojected
    - S1Angle::Degrees
    - R2Point
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedNoTessellation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:226,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:228,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:228,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:228,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:230,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:230,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - fabs
    - S1Angle::Degrees
    - EXPECT_GE
    - R2Point
    - S2LatLng::Longitude
    - S2EdgeTessellator::AppendUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedWrapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:240,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:242,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:242,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:243,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:245,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 247
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Degrees
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - S2EdgeTessellator::AppendProjected
    - x
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedWrapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:254,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:257,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:257,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:258,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:259,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:259,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:260,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:263,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:263,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - fabs
    - S1Angle::Degrees
    - EXPECT_GE
    - R2Point
    - S2LatLng::Longitude
    - S2EdgeTessellator::AppendUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedWrappingMultipleCrossings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:270,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:273,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:276,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:279,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:279,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:279,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:282,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:283,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:285,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:285,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:286,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 290
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - vector::front
    - min
    - ParsePointsOrDie
    - auto::size
    - vector::back
    - S2EdgeTessellator::AppendProjected
    - EXPECT_EQ
    - S1Angle::E7
    - max
    - x
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedWrappingMultipleCrossings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:294,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:297,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:297,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:298,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:299,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 300
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - S2LatLng::FromDegrees
    - S2EdgeTessellator::AppendProjected
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, InfiniteRecursionBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:304,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:306,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:307,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 7
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LE
    - Stats::max
    - S1Angle::Degrees
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedAccuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:313,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:315,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:316,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 7
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - Stats::max
    - S1Angle::Degrees
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedAccuracyCrossEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:321,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:322,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:323,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:324,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:325,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 319
    functionDepth: 7
    functionLinenumber: 319
    functionLinenumberEnd: 326
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - S1Angle::E7
    - TestProjected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:330,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:332,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:333,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - S2Testing::MetersToAngle
    - EXPECT_LE
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedAccuracyMidpointEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:338,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:339,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:340,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:341,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:342,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 7
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - S2Testing::MetersToAngle
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - TestProjected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracyMidpointEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:348,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:349,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:350,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:351,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:352,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 7
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - Stats::max
    - S2LatLng::FromDegrees
    - S1Angle::E7
    - TestProjected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracyCrossEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:357,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:358,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:359,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:360,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:361,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 7
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - S2Testing::MetersToAngle
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - TestProjected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracySeattleToNewYork)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:386,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:387,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:388,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:391,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:391,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:392,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:392,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:392,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:392,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:398,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:399,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:401,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:408,1
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:409,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:409,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:410,1
    - Dst: S2EdgeTessellator::kMinTolerance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:413,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:414,1
    - Dst: S2EdgeTessellator::kMinTolerance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:416,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:419,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:419,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:420,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:421,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:422,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:422,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:422,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:434,1
    - Dst: Stats::Tally
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:436,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:437,1
    - Dst: Stats::ToString
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:440,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:440,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:441,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - bitgen
    - ' proj'
    - t
    argTypes:
    - absl::BitGenRef
    - S2::Projection
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 379
    functionDepth: 6
    functionLinenumber: 379
    functionLinenumberEnd: 442
    functionName: TestEdgeError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - sqrt
    - Unproject
    - ToString
    - S2::Interpolate
    - S2Point::DotProd
    - S1Angle::Radians
    - sin
    - Stats::Tally
    - WrapDestination
    - GetMaxDistance
    - Stats::max
    - Stats::ToString
    - Tally
    - EXPECT_LE
    - S2EdgeTessellator::kMinTolerance
    - max
    - asin
    - S1Angle::degrees
    - Project
    linkageType: ''
    returnType: void
    signature: "void TestEdgeError(absl::BitGenRef bitgen, const S2::Projection& proj,\n
      \                  double t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:448,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:449,1
    - Dst: TestEdgeError
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - TestEdgeError
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, MaxEdgeErrorPlateCarree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:458,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:459,1
    - Dst: TestEdgeError
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 7
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - TestEdgeError
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, MaxEdgeErrorMercator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:474,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:475,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:476,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:476,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:477,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:478,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:479,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:479,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:482,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - bitgen
    - ' proj'
    - tolerance
    argTypes:
    - absl::BitGenRef
    - S2::Projection
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 469
    functionDepth: 7
    functionLinenumber: 469
    functionLinenumberEnd: 484
    functionName: TestRandomEdges
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - EXPECT_LE
    - max
    - TestProjected
    - Project
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: "void TestRandomEdges(absl::BitGenRef bitgen, const S2::Projection&
      proj,\n                     S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:487,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:488,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:490,1
    - Dst: TestRandomEdges
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 8
    functionLinenumber: 486
    functionLinenumberEnd: 492
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - TestRandomEdges
    - S2Testing::MetersToAngle
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, RandomEdgesPlateCarree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:496,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:497,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:499,1
    - Dst: TestRandomEdges
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 494
    functionDepth: 8
    functionLinenumber: 494
    functionLinenumberEnd: 501
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - TestRandomEdges
    - S2Testing::MetersToAngle
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, RandomEdgesMercator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:505,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:506,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:508,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:511,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:512,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:513,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:516,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:517,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 504
    functionDepth: 7
    functionLinenumber: 504
    functionLinenumberEnd: 519
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - Stats::max
    - S1Angle::Degrees
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedAccuracyRandomCheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:523,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:524,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:526,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:529,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:530,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:531,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:533,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:534,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:535,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:536,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 522
    functionDepth: 7
    functionLinenumber: 522
    functionLinenumberEnd: 538
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - Stats::max
    - S1Angle::Degrees
    - S2LatLng::FromDegrees
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - TestProjected
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracyRandomCheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:565,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:569,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:570,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:571,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:574,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 575
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromDegrees
    - S2EdgeTessellator::AppendProjected
    - EXPECT_EQ
    - S1Angle::E7
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnwrappingDcheckRegression)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:63,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:63,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: Stats::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 17
    functionsReached:
    - ABSL_LOG
    - Stats::max
    - std::isnan
    linkageType: ''
    returnType: void
    signature: void Tally(double v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Stats::max
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double max() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Stats::avg
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double avg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:73,1
    - Dst: Stats::avg
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:73,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Stats::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 17
    functionsReached:
    - Stats::max
    - Stats::avg
    - StrCat
    linkageType: ''
    returnType: string
    signature: string ToString() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:92,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:94,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:95,1
    - Dst: Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:95,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:97,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:99,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:100,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:100,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:107,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:108,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ' proj'
    - ' px'
    - ' x'
    - ' py'
    - ' y'
    argTypes:
    - S2::Projection
    - R2Point
    - S2Point
    - R2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 109
    functionName: GetMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 11
    functionsReached:
    - S1ChordAngle::PlusError
    - S2::Interpolate
    - S2::GetUpdateMinDistanceMaxError
    - S1ChordAngle::Zero
    - S2::UpdateMinDistance
    - S1Angle
    - Unproject
    - S1ChordAngle::Infinity
    - Interpolate
    - S1ChordAngle
    - ABSL_DCHECK
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle GetMaxDistance(const S2::Projection& proj,\n                       const
      R2Point& px, const S2Point& x,\n                       const R2Point& py, const
      S2Point& y,\n                       DistType dist_type = DistType::GEOMETRIC)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:124,1
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:125,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:126,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:126,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:126,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:126,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:127,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:127,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:127,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:130,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:130,1
    - Dst: Ortho
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:134,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:136,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:137,1
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:139,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:139,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:143,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:143,1
    - Dst: R2Point::Norm
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:143,1
    - Dst: Stats::Tally
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:144,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:144,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:149,1
    - Dst: Stats::ToString
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ' proj'
    - tolerance
    - ' pa'
    - ' pb_in'
    - log_stats
    argTypes:
    - S2::Projection
    - S1Angle
    - R2Point
    - R2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 153
    functionName: TestUnprojected
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 5
    functionsReached:
    - DotProd
    - Stats::Tally
    - R2Point::Norm
    - GetMaxDistance
    - vector::front
    - Stats::ToString
    - vector::back
    - vector::size
    - S1Angle
    - Unproject
    - EXPECT_LE
    - Ortho
    - EXPECT_EQ
    - WrapDestination
    - S2EdgeTessellator::AppendUnprojected
    - Project
    linkageType: ''
    returnType: Stats
    signature: "Stats TestUnprojected(const S2::Projection& proj, S1Angle tolerance,\n
      \                     const R2Point& pa, const R2Point& pb_in, bool log_stats)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:161,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:164,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:164,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:164,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:164,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:165,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:166,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:166,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:166,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:166,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:170,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:170,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:174,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:175,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:177,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:182,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:182,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:183,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:183,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:184,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:185,1
    - Dst: Stats::Tally
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:186,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:186,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:191,1
    - Dst: Stats::ToString
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ' proj'
    - tolerance
    - ' a'
    - ' b'
    - log_stats
    argTypes:
    - S2::Projection
    - S1Angle
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 6
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: TestProjected
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 6
    functionsReached:
    - GetMaxDistance
    - vector::front
    - S2::GetDistance
    - S2::IsDistanceLess
    - EXPECT_TRUE
    - S1Angle::Radians
    - S2LatLng
    - Stats::ToString
    - vector::back
    - S1Angle
    - Unproject
    - radians
    - EXPECT_LE
    - S2EdgeTessellator::AppendProjected
    - Stats::Tally
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: Stats
    signature: "Stats TestProjected(const S2::Projection& proj, S1Angle tolerance,\n
      \                   const S2Point& a, const S2Point& b, bool log_stats)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:199,1
    - Dst: S2EdgeTessellator
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:202,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S2EdgeTessellator
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, IsAssignable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:207,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:209,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:209,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:210,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S1Angle::Degrees
    - S2EdgeTessellator::AppendProjected
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedNoTessellation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:215,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:217,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:217,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:218,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S2EdgeTessellator::AppendUnprojected
    - S1Angle::Degrees
    - R2Point
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedNoTessellation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:226,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:228,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:228,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:228,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:230,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:230,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - fabs
    - S1Angle::Degrees
    - EXPECT_GE
    - R2Point
    - S2LatLng::Longitude
    - S2EdgeTessellator::AppendUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedWrapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:240,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:242,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:242,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:243,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:245,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 247
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Degrees
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - S2EdgeTessellator::AppendProjected
    - x
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedWrapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:254,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:257,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:257,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:258,1
    - Dst: S2EdgeTessellator::AppendUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:259,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:259,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:260,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:263,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:263,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - fabs
    - S1Angle::Degrees
    - EXPECT_GE
    - R2Point
    - S2LatLng::Longitude
    - S2EdgeTessellator::AppendUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedWrappingMultipleCrossings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:270,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:273,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:276,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:279,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:279,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:279,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:282,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:283,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:285,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:285,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:286,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 290
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - vector::front
    - min
    - ParsePointsOrDie
    - auto::size
    - vector::back
    - S2EdgeTessellator::AppendProjected
    - EXPECT_EQ
    - S1Angle::E7
    - max
    - x
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedWrappingMultipleCrossings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:294,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:297,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:297,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:298,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:299,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 300
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - S2LatLng::FromDegrees
    - S2EdgeTessellator::AppendProjected
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, InfiniteRecursionBug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:304,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:306,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:307,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 7
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LE
    - Stats::max
    - S1Angle::Degrees
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedAccuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:313,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:315,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:316,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 7
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - Stats::max
    - S1Angle::Degrees
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedAccuracyCrossEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:321,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:322,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:323,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:324,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:325,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 319
    functionDepth: 7
    functionLinenumber: 319
    functionLinenumberEnd: 326
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - S1Angle::E7
    - TestProjected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:330,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:332,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:333,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - S2Testing::MetersToAngle
    - EXPECT_LE
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedAccuracyMidpointEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:338,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:339,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:340,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:341,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:342,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 7
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - S2Testing::MetersToAngle
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - TestProjected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracyMidpointEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:348,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:349,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:350,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:351,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:352,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 7
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - Stats::max
    - S2LatLng::FromDegrees
    - S1Angle::E7
    - TestProjected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracyCrossEquator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:357,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:358,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:359,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:360,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:361,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 7
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - Stats::max
    - S2Testing::MetersToAngle
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - TestProjected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracySeattleToNewYork)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:386,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:387,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:388,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:391,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:391,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:392,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:392,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:392,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:392,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:398,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:399,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:401,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:408,1
    - Dst: WrapDestination
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:409,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:409,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:410,1
    - Dst: S2EdgeTessellator::kMinTolerance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:413,1
    - Dst: GetMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:414,1
    - Dst: S2EdgeTessellator::kMinTolerance
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:416,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:419,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:419,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:420,1
    - Dst: Unproject
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:421,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:422,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:422,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:422,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:434,1
    - Dst: Stats::Tally
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:436,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:437,1
    - Dst: Stats::ToString
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:440,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:440,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:441,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - bitgen
    - ' proj'
    - t
    argTypes:
    - absl::BitGenRef
    - S2::Projection
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 379
    functionDepth: 6
    functionLinenumber: 379
    functionLinenumberEnd: 442
    functionName: TestEdgeError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 2
    functionsReached:
    - s2random::Point
    - sqrt
    - Unproject
    - ToString
    - S2::Interpolate
    - S2Point::DotProd
    - S1Angle::Radians
    - sin
    - Stats::Tally
    - WrapDestination
    - GetMaxDistance
    - Stats::max
    - Stats::ToString
    - Tally
    - EXPECT_LE
    - S2EdgeTessellator::kMinTolerance
    - max
    - asin
    - S1Angle::degrees
    - Project
    linkageType: ''
    returnType: void
    signature: "void TestEdgeError(absl::BitGenRef bitgen, const S2::Projection& proj,\n
      \                  double t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:448,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:449,1
    - Dst: TestEdgeError
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - TestEdgeError
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, MaxEdgeErrorPlateCarree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:458,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:459,1
    - Dst: TestEdgeError
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 7
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - TestEdgeError
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, MaxEdgeErrorMercator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:474,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:475,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:476,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:476,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:477,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:478,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:479,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:479,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:482,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - bitgen
    - ' proj'
    - tolerance
    argTypes:
    - absl::BitGenRef
    - S2::Projection
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 469
    functionDepth: 7
    functionLinenumber: 469
    functionLinenumberEnd: 484
    functionName: TestRandomEdges
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 2
    functionsReached:
    - s2random::Point
    - EXPECT_LE
    - max
    - TestProjected
    - Project
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: "void TestRandomEdges(absl::BitGenRef bitgen, const S2::Projection&
      proj,\n                     S1Angle tolerance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:487,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:488,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:490,1
    - Dst: TestRandomEdges
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 8
    functionLinenumber: 486
    functionLinenumberEnd: 492
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - TestRandomEdges
    - S2Testing::MetersToAngle
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, RandomEdgesPlateCarree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:496,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:497,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:499,1
    - Dst: TestRandomEdges
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 494
    functionDepth: 8
    functionLinenumber: 494
    functionLinenumberEnd: 501
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - TestRandomEdges
    - S2Testing::MetersToAngle
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, RandomEdgesMercator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:505,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:506,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:508,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:511,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:512,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:513,1
    - Dst: TestUnprojected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:516,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:517,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 504
    functionDepth: 7
    functionLinenumber: 504
    functionLinenumberEnd: 519
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - Stats::max
    - S1Angle::Degrees
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - TestUnprojected
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnprojectedAccuracyRandomCheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:523,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:524,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:526,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:529,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:530,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:531,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:533,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:534,1
    - Dst: TestProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:535,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:536,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 522
    functionDepth: 7
    functionLinenumber: 522
    functionLinenumberEnd: 538
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - Stats::max
    - S1Angle::Degrees
    - S2LatLng::FromDegrees
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - TestProjected
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, ProjectedAccuracyRandomCheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:565,1
    - Dst: S2EdgeTessellator::AppendProjected
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:569,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:570,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:571,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:574,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2edge_tessellator_test.cc:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 575
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromDegrees
    - S2EdgeTessellator::AppendProjected
    - EXPECT_EQ
    - S1Angle::E7
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeTessellator, UnwrappingDcheckRegression)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:32,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:32,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:32,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:32,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:33,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:33,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:33,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:33,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:34,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:34,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:34,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:34,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:35,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:35,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:35,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:35,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:36,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:36,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:36,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:36,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:37,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:37,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:37,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:37,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - face
    - ' p'
    argTypes:
    - int
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: S2::FaceXYZtoUVW
    functionSourceFile: /src/s2geometry/src/s2/s2coords.cc
    functionUses: 2
    functionsReached:
    - x
    - z
    - S2Point
    - y
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point FaceXYZtoUVW(int face, const S2Point& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2coords.cc:46,1
    - Dst: S2::STtoSiTi
      Src: /src/s2geometry/src/s2/s2coords.cc:47,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2coords.cc:47,1
    - Dst: S2::STtoSiTi
      Src: /src/s2geometry/src/s2/s2coords.cc:48,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2coords.cc:48,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/s2coords.cc:53,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/s2coords.cc:55,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2coords.cc:58,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/s2coords.cc:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' p'
    - face
    - si
    - ti
    argTypes:
    - S2Point
    - int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: S2::XYZtoFaceSiTi
    functionSourceFile: /src/s2geometry/src/s2/s2coords.cc
    functionUses: 1
    functionsReached:
    - S2::FaceSiTitoXYZ
    - exactfloat_internal::countr_zero
    - ABSL_DCHECK_LE
    - S2::UVtoST
    - S2::XYZtoFaceUV
    - S2::STtoSiTi
    linkageType: ''
    returnType: int
    signature: "int XYZtoFaceSiTi(const S2Point& p, int* face, unsigned int* si,\n
      \                 unsigned int* ti)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2coords.cc:69,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2coords.cc:69,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2coords.cc:70,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2coords.cc:70,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - face
    - si
    - ti
    argTypes:
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: S2::FaceSiTitoXYZ
    functionSourceFile: /src/s2geometry/src/s2/s2coords.cc
    functionUses: 4
    functionsReached:
    - S2::FaceUVtoXYZ
    - S2::STtoUV
    - S2::SiTitoST
    linkageType: ''
    returnType: S2Point
    signature: S2Point FaceSiTitoXYZ(int face, unsigned int si, unsigned int ti)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:32,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:32,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:32,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:32,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:33,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:33,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:33,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:33,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:34,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:34,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:34,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:34,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:35,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:35,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:35,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:35,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:36,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:36,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:36,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:36,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords.cc:37,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2coords.cc:37,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2coords.cc:37,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2coords.cc:37,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2coords.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - face
    - ' p'
    argTypes:
    - int
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: S2::FaceXYZtoUVW
    functionSourceFile: /src/s2geometry/src/s2/s2coords.cc
    functionUses: 2
    functionsReached:
    - x
    - z
    - S2Point
    - y
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point FaceXYZtoUVW(int face, const S2Point& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2coords.cc:46,1
    - Dst: S2::STtoSiTi
      Src: /src/s2geometry/src/s2/s2coords.cc:47,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2coords.cc:47,1
    - Dst: S2::STtoSiTi
      Src: /src/s2geometry/src/s2/s2coords.cc:48,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2coords.cc:48,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/s2coords.cc:53,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/s2coords.cc:55,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2coords.cc:58,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/s2coords.cc:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' p'
    - face
    - si
    - ti
    argTypes:
    - S2Point
    - int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: S2::XYZtoFaceSiTi
    functionSourceFile: /src/s2geometry/src/s2/s2coords.cc
    functionUses: 1
    functionsReached:
    - S2::FaceSiTitoXYZ
    - exactfloat_internal::countr_zero
    - ABSL_DCHECK_LE
    - S2::UVtoST
    - S2::XYZtoFaceUV
    - S2::STtoSiTi
    linkageType: ''
    returnType: int
    signature: "int XYZtoFaceSiTi(const S2Point& p, int* face, unsigned int* si,\n
      \                 unsigned int* ti)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2coords.cc:69,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2coords.cc:69,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2coords.cc:70,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2coords.cc:70,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - face
    - si
    - ti
    argTypes:
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: S2::FaceSiTitoXYZ
    functionSourceFile: /src/s2geometry/src/s2/s2coords.cc
    functionUses: 5
    functionsReached:
    - S2::FaceUVtoXYZ
    - S2::STtoUV
    - S2::SiTitoST
    linkageType: ''
    returnType: S2Point
    signature: S2Point FaceSiTitoXYZ(int face, unsigned int si, unsigned int ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2testing.cc:74,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2testing.cc:75,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2testing.cc:76,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2testing.cc:76,1
    - Dst: vector<S2Point>*::insert
      Src: /src/s2geometry/src/s2/s2testing.cc:77,1
    - Dst: vector<S2Point>*::end
      Src: /src/s2geometry/src/s2/s2testing.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' loop'
    - vertices
    argTypes:
    - S2Loop
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: S2Testing::AppendLoopVertices
    functionSourceFile: /src/s2geometry/src/s2/s2testing.cc
    functionUses: 3
    functionsReached:
    - num_vertices
    - vector<S2Point>*::end
    - ABSL_DCHECK_EQ
    - vertex
    - vector<S2Point>*::insert
    linkageType: ''
    returnType: void
    signature: "void S2Testing::AppendLoopVertices(const S2Loop& loop,\n                                   vector<S2Point>*
      vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2testing.cc:86,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2testing.cc:86,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2testing.cc:87,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2testing.cc:88,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2testing.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' center'
    - radius
    - num_vertices
    argTypes:
    - S2Point
    - S1Angle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: S2Testing::MakeRegularPoints
    functionSourceFile: /src/s2geometry/src/s2/s2testing.cc
    functionUses: 10
    functionsReached:
    - unique_ptr::num_vertices
    - vector::push_back
    - vector::reserve
    - unique_ptr::vertex
    linkageType: ''
    returnType: vector<S2Point>
    signature: "vector<S2Point> S2Testing::MakeRegularPoints(const S2Point& center,\n
      \                                            S1Angle radius,\n                                             int
      num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2testing.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meters
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: S2Testing::MetersToAngle
    functionSourceFile: /src/s2geometry/src/s2/s2testing.cc
    functionUses: 16
    functionsReached:
    - S2Testing::KmToAngle
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Testing::MetersToAngle(double meters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2testing.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - km
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: S2Testing::KmToAngle
    functionSourceFile: /src/s2geometry/src/s2/s2testing.cc
    functionUses: 29
    functionsReached:
    - S1Angle::Radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Testing::KmToAngle(double km)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::AreaToKm2
      Src: /src/s2geometry/src/s2/s2testing.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - steradians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: S2Testing::AreaToMeters2
    functionSourceFile: /src/s2geometry/src/s2/s2testing.cc
    functionUses: 0
    functionsReached:
    - S2Testing::AreaToKm2
    linkageType: ''
    returnType: double
    signature: double S2Testing::AreaToMeters2(double steradians)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - steradians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: S2Testing::AreaToKm2
    functionSourceFile: /src/s2geometry/src/s2/s2testing.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double S2Testing::AreaToKm2(double steradians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2testing.cc:114,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2testing.cc:122,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2testing.cc:122,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2testing.cc:123,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2testing.cc:123,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2testing.cc:123,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2testing.cc:125,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2testing.cc:125,1
    - Dst: S2Polygon*::InitNested
      Src: /src/s2geometry/src/s2/s2testing.cc:127,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2testing.cc:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' center'
    - num_loops
    - num_vertices_per_loop
    - polygon
    argTypes:
    - S2Point
    - int
    - int
    - S2Polygon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: S2Testing::ConcentricLoopsPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2testing.cc
    functionUses: 11
    functionsReached:
    - vector::push_back
    - S2::GetFrame
    - make_unique<S2Loop>
    - std::move
    - S2Point::Normalize
    - S2Polygon*::InitNested
    - S2::FromFrame
    - sin
    - cos
    linkageType: ''
    returnType: void
    signature: "void S2Testing::ConcentricLoopsPolygon(const S2Point& center,\n                                       int
      num_loops,\n                                       int num_vertices_per_loop,\n
      \                                      S2Polygon* polygon)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2testing.cc:133,1
    - Dst: S2Testing::CheckCovering
      Src: /src/s2geometry/src/s2/s2testing.cc:135,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2testing.cc:135,1
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2testing.cc:140,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2testing.cc:140,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2testing.cc:142,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2testing.cc:142,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2testing.cc:144,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2testing.cc:148,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2testing.cc:148,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2testing.cc:148,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2testing.cc:149,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2testing.cc:149,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/s2testing.cc:150,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2testing.cc:151,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2testing.cc:152,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2testing.cc:152,1
    - Dst: S2Testing::CheckCovering
      Src: /src/s2geometry/src/s2/s2testing.cc:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - ' region'
    - ' covering'
    - check_tight
    - id
    argTypes:
    - S2Region
    - S2CellUnion
    - bool
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 156
    functionName: S2Testing::CheckCovering
    functionSourceFile: /src/s2geometry/src/s2/s2testing.cc
    functionUses: 2
    functionsReached:
    - Intersects
    - S2CellId::is_leaf
    - MayIntersect
    - ABSL_CHECK
    - S2CellId::next
    - S2CellId::S2CellId
    - S2CellId::child_begin
    - S2Cell
    - S2CellId::is_valid
    - S2CellId::FromFace
    - S2Testing::CheckCovering
    - S2CellId::child_end
    - Contains
    linkageType: ''
    returnType: void
    signature: "void S2Testing::CheckCovering(const S2Region& region,\n                              const
      S2CellUnion& covering,\n                              bool check_tight, S2CellId
      id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2testing.cc:159,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2testing.cc:160,1
    - Dst: std::seed_seq
      Src: /src/s2geometry/src/s2/s2testing.cc:162,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2testing.cc:162,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2testing.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - ' strm'
    argTypes:
    - string_view
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: S2Testing::MakeTaggedSeedSeq
    functionSourceFile: /src/s2geometry/src/s2/s2testing.cc
    functionUses: 187
    functionsReached:
    - string::begin
    - string::end
    - absl::StrCat
    - std::seed_seq
    - absl::GetFlag
    linkageType: ''
    returnType: std::seed_seq
    signature: "std::seed_seq S2Testing::MakeTaggedSeedSeq(string_view name,\n                                           std::ostream&
      strm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - face
    - a_uv
    - b_uv
    argTypes:
    - S2Point
    - S2Point
    - int
    - R2Point*
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: S2::ClipToFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.h
    functionUses: 0
    functionsReached:
    - S2::ClipToPaddedFace
    linkageType: ''
    returnType: bool
    signature: "bool ClipToFace(const S2Point& a, const S2Point& b, int face,\n                       R2Point*
      a_uv, R2Point* b_uv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:182,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:186,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:189,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - x
    - a
    - b
    - a1
    - b1
    argTypes:
    - double
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: S2::InterpolateDouble
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - std::fabs
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: "double InterpolateDouble(double x, double a, double b,\n                                double
      a1, double b1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - face
    - a_uv
    - b_uv
    argTypes:
    - S2Point
    - S2Point
    - int
    - R2Point*
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: S2::ClipToFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.h
    functionUses: 0
    functionsReached:
    - S2::ClipToPaddedFace
    linkageType: ''
    returnType: bool
    signature: "bool ClipToFace(const S2Point& a, const S2Point& b, int face,\n                       R2Point*
      a_uv, R2Point* b_uv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:182,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:186,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:189,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.h:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - x
    - a
    - b
    - a1
    - b1
    argTypes:
    - double
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: S2::InterpolateDouble
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - std::fabs
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: "double InterpolateDouble(double x, double a, double b,\n                                double
      a1, double b1)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - degenerate_boundaries
    argTypes:
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: ToString
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 170
    functionsReached:
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: string
    signature: string ToString(DegenerateBoundaries degenerate_boundaries)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:79,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:80,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:80,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:81,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:82,1
    - Dst: LaxPolygonLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:84,1
    - Dst: LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:85,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:86,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:86,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:88,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:89,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:95,1
    - Dst: auto::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:96,1
    - Dst: S2Builder::AddIsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:98,1
    - Dst: S2Builder::IsFullPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:98,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:99,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:100,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:100,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - input_str
    - expected_str
    - edge_type
    - degenerate_boundaries
    argTypes:
    - string_view
    - string_view
    - EdgeType
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 103
    functionName: TestLaxPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - LaxPolygonLayer::Options::set_edge_type
    - S2Error::S2Error
    - ToString
    - LaxPolygonLayer::Options::set_degenerate_boundaries
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2LaxPolygonShape::S2LaxPolygonShape
    - auto::num_loop_vertices
    - s2textformat::ToString
    - S2Builder::AddIsFullPolygonPredicate
    - make_unique<LaxPolygonLayer>
    - S2Builder::IsFullPolygon
    - MakeLaxPolygonOrDie
    - S2ShapeNestingQuery::Options::Options
    - SCOPED_TRACE
    - S2Builder::AddShape
    - auto::num_loops
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: "void TestLaxPolygon(string_view input_str, string_view expected_str,\n
      \                   EdgeType edge_type,\n                    DegenerateBoundaries
      degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:108,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - input_str
    - expected_str
    - degenerate_boundaries
    argTypes:
    - string_view
    - string_view
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: TestLaxPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 1
    functionsReached:
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: "void TestLaxPolygon(string_view input_str,\n                    string_view
      expected_str,\n                    DegenerateBoundaries degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input_str
    - degenerate_boundaries
    argTypes:
    - string_view
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: TestLaxPolygonUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: "void TestLaxPolygonUnchanged(string_view input_str,\n                             DegenerateBoundaries
      degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: kAllDegenerateBoundaries
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<DegenerateBoundaries>
    signature: vector<DegenerateBoundaries> kAllDegenerateBoundaries()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:128,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestLaxPolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:134,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestLaxPolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:140,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestLaxPolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, OneNormalShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:148,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:149,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:150,1
    - Dst: LaxPolygonLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:152,1
    - Dst: LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:153,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:154,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:154,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:155,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:156,1
    - Dst: S2Builder::AddIsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:158,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:159,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:160,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 162
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - LaxPolygonLayer::Options::set_degenerate_boundaries
    - S2LaxPolygonShape::S2LaxPolygonShape
    - MakeLaxPolygonOrDie
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::AddIsFullPolygonPredicate
    - make_unique<LaxPolygonLayer>
    - S2Builder::AddShape
    - ASSERT_TRUE
    - S2Builder::Build
    - LaxPolygonLayer::Options::set_edge_type
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, IsFullPolygonPredicateNotCalled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:167,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestLaxPolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, TwoNormalShellsOneNormalHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:177,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygonUnchanged
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, AllDegenerateShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:188,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygonUnchanged
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, AllDegenerateHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:199,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:200,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:201,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 203
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygonUnchanged
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, SomeDegenerateShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:208,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygonUnchanged
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, SomeDegenerateHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:232,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:233,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:235,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, NormalAndDegenerateShellsAndHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:241,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:242,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:243,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:243,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:244,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:244,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:245,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:246,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:247,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:247,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:248,1
    - Dst: S2LaxPolygonShape::is_empty
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::is_empty
    - S2LaxPolygonShape::S2LaxPolygonShape
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - make_unique<LaxPolygonLayer>
    - S2Builder::Build
    - S2Error::code
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, PartialLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:254,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:255,1
    - Dst: LaxPolygonLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:257,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:258,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:258,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:259,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:259,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:260,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:261,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:262,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2ShapeNestingQuery::Options::Options
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - make_unique<LaxPolygonLayer>
    - LaxPolygonLayer::Options::set_validate
    - S2Builder::Build
    - S2Error::code
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, InvalidPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:269,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:270,1
    - Dst: LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:272,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:273,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:273,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:274,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:274,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:275,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:275,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:276,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:276,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:277,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:277,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:278,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:278,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:279,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:279,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:280,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:281,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:282,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - LaxPolygonLayer::Options::set_degenerate_boundaries
    - S2LaxPolygonShape::S2LaxPolygonShape
    - MakeLaxPolygonOrDie
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - make_unique<LaxPolygonLayer>
    - S2Builder::AddShape
    - MakePointOrDie
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::AddPoint
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, DuplicateInputEdges)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - edge
    - edge_type
    argTypes:
    - S2Shape::Edge
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: GetKey
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge GetKey(S2Shape::Edge edge, EdgeType edge_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:300,1
    - Dst: S2Builder*::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:302,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:304,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:306,1
    - Dst: S2Builder*::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:308,1
    - Dst: GetKey
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:309,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - ' shape'
    - edge_type
    - builder
    - edge_label_map
    argTypes:
    - S2Shape
    - EdgeType
    - S2Builder*
    - EdgeLabelMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 311
    functionName: AddShapeWithLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder*::set_label
    - num_edges
    - GetKey
    - S2Builder*::AddEdge
    - edge
    - swap
    - insert
    linkageType: ''
    returnType: void
    signature: "void AddShapeWithLabels(const S2Shape& shape, EdgeType edge_type,\n
      \                       S2Builder* builder, EdgeLabelMap *edge_label_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:319,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:320,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:322,1
    - Dst: LaxPolygonLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:324,1
    - Dst: LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:325,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:326,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:326,1
    - Dst: AddShapeWithLabels
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:330,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:330,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:332,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:333,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:333,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:334,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:335,1
    - Dst: S2LaxPolygonShape::chain_edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:336,1
    - Dst: GetKey
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:338,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:339,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:339,1
    - Dst: testing::ElementsAreArray
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - input_str
    - edge_type
    - degenerate_boundaries
    argTypes:
    - string_view
    - EdgeType
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 343
    functionName: TestEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::chain_edge
    - S2LaxPolygonShape::num_chains
    - S2LaxPolygonShape::chain
    - IdSetLexicon::id_set
    - LaxPolygonLayer::Options::set_edge_type
    - S2Error::S2Error
    - LaxPolygonLayer::Options::set_degenerate_boundaries
    - S2Builder::StartLayer
    - S2LaxPolygonShape::S2LaxPolygonShape
    - AddShapeWithLabels
    - make_unique<LaxPolygonLayer>
    - IdSetLexicon::IdSetLexicon
    - MakeLaxPolygonOrDie
    - testing::ElementsAreArray
    - S2ShapeNestingQuery::Options::Options
    - GetKey
    - EXPECT_THAT
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: "void TestEdgeLabels(string_view input_str, EdgeType edge_type,\n                           DegenerateBoundaries
      degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:348,1
    - Dst: TestEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestEdgeLabels
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, EdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:359,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:360,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:361,1
    - Dst: make_unique<IndexedLaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:361,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:363,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:363,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:364,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:365,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:366,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:366,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:367,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:367,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:368,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - down_cast
    - make_unique<IndexedLaxPolygonLayer>
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - s2textformat::MakePolygonOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedLaxPolygonLayer, AddsShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:372,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:373,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:374,1
    - Dst: make_unique<IndexedLaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:374,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:375,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:376,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:377,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<IndexedLaxPolygonLayer>
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedLaxPolygonLayer, IgnoresEmptyShape)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - degenerate_boundaries
    argTypes:
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: ToString
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 173
    functionsReached:
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: string
    signature: string ToString(DegenerateBoundaries degenerate_boundaries)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:79,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:80,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:80,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:81,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:82,1
    - Dst: LaxPolygonLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:84,1
    - Dst: LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:85,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:86,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:86,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:88,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:89,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:95,1
    - Dst: auto::num_loop_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:96,1
    - Dst: S2Builder::AddIsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:98,1
    - Dst: S2Builder::IsFullPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:98,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:99,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:100,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:100,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - input_str
    - expected_str
    - edge_type
    - degenerate_boundaries
    argTypes:
    - string_view
    - string_view
    - EdgeType
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 103
    functionName: TestLaxPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 7
    functionsReached:
    - LaxPolygonLayer::Options::set_edge_type
    - S2Error::S2Error
    - ToString
    - LaxPolygonLayer::Options::set_degenerate_boundaries
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2LaxPolygonShape::S2LaxPolygonShape
    - auto::num_loop_vertices
    - s2textformat::ToString
    - S2Builder::AddIsFullPolygonPredicate
    - make_unique<LaxPolygonLayer>
    - S2Builder::IsFullPolygon
    - MakeLaxPolygonOrDie
    - S2ShapeNestingQuery::Options::Options
    - SCOPED_TRACE
    - S2Builder::AddShape
    - auto::num_loops
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: "void TestLaxPolygon(string_view input_str, string_view expected_str,\n
      \                   EdgeType edge_type,\n                    DegenerateBoundaries
      degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:108,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - input_str
    - expected_str
    - degenerate_boundaries
    argTypes:
    - string_view
    - string_view
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: TestLaxPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 8
    functionsReached:
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: "void TestLaxPolygon(string_view input_str,\n                    string_view
      expected_str,\n                    DegenerateBoundaries degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input_str
    - degenerate_boundaries
    argTypes:
    - string_view
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: TestLaxPolygonUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 8
    functionsReached:
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: "void TestLaxPolygonUnchanged(string_view input_str,\n                             DegenerateBoundaries
      degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: kAllDegenerateBoundaries
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: vector<DegenerateBoundaries>
    signature: vector<DegenerateBoundaries> kAllDegenerateBoundaries()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:128,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestLaxPolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:134,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestLaxPolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:140,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestLaxPolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, OneNormalShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:148,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:149,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:150,1
    - Dst: LaxPolygonLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:152,1
    - Dst: LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:153,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:154,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:154,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:155,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:156,1
    - Dst: S2Builder::AddIsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:158,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:159,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:160,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 162
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - LaxPolygonLayer::Options::set_degenerate_boundaries
    - S2LaxPolygonShape::S2LaxPolygonShape
    - MakeLaxPolygonOrDie
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::AddIsFullPolygonPredicate
    - make_unique<LaxPolygonLayer>
    - S2Builder::AddShape
    - ASSERT_TRUE
    - S2Builder::Build
    - LaxPolygonLayer::Options::set_edge_type
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, IsFullPolygonPredicateNotCalled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:167,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestLaxPolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, TwoNormalShellsOneNormalHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:177,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygonUnchanged
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, AllDegenerateShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:188,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygonUnchanged
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, AllDegenerateHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:199,1
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:200,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:201,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 203
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygonUnchanged
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, SomeDegenerateShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:208,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygonUnchanged
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, SomeDegenerateHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:232,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:233,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:235,1
    - Dst: TestLaxPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestLaxPolygon
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, NormalAndDegenerateShellsAndHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:241,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:242,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:243,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:243,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:244,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:244,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:245,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:246,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:247,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:247,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:248,1
    - Dst: S2LaxPolygonShape::is_empty
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::is_empty
    - S2LaxPolygonShape::S2LaxPolygonShape
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - make_unique<LaxPolygonLayer>
    - S2Builder::Build
    - S2Error::code
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, PartialLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:254,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:255,1
    - Dst: LaxPolygonLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:257,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:258,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:258,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:259,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:259,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:260,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:261,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:262,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2ShapeNestingQuery::Options::Options
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - make_unique<LaxPolygonLayer>
    - LaxPolygonLayer::Options::set_validate
    - S2Builder::Build
    - S2Error::code
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, InvalidPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:269,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:270,1
    - Dst: LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:272,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:273,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:273,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:274,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:274,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:275,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:275,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:276,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:276,1
    - Dst: S2Builder::AddPoint
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:277,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:277,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:278,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:278,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:279,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:279,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:280,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:281,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:282,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - LaxPolygonLayer::Options::set_degenerate_boundaries
    - S2LaxPolygonShape::S2LaxPolygonShape
    - MakeLaxPolygonOrDie
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - make_unique<LaxPolygonLayer>
    - S2Builder::AddShape
    - MakePointOrDie
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::AddPoint
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, DuplicateInputEdges)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - edge
    - edge_type
    argTypes:
    - S2Shape::Edge
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: GetKey
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 2
    functionsReached:
    - swap
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge GetKey(S2Shape::Edge edge, EdgeType edge_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:300,1
    - Dst: S2Builder*::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:302,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:304,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:306,1
    - Dst: S2Builder*::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:308,1
    - Dst: GetKey
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:309,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - ' shape'
    - edge_type
    - builder
    - edge_label_map
    argTypes:
    - S2Shape
    - EdgeType
    - S2Builder*
    - EdgeLabelMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 311
    functionName: AddShapeWithLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 1
    functionsReached:
    - S2Builder*::set_label
    - num_edges
    - GetKey
    - S2Builder*::AddEdge
    - edge
    - swap
    - insert
    linkageType: ''
    returnType: void
    signature: "void AddShapeWithLabels(const S2Shape& shape, EdgeType edge_type,\n
      \                       S2Builder* builder, EdgeLabelMap *edge_label_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:319,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:320,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:322,1
    - Dst: LaxPolygonLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:324,1
    - Dst: LaxPolygonLayer::Options::set_degenerate_boundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:325,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:326,1
    - Dst: make_unique<LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:326,1
    - Dst: AddShapeWithLabels
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:330,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:330,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:332,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:333,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:333,1
    - Dst: S2LaxPolygonShape::num_chains
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:334,1
    - Dst: S2LaxPolygonShape::chain
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:335,1
    - Dst: S2LaxPolygonShape::chain_edge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:336,1
    - Dst: GetKey
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:338,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:339,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:339,1
    - Dst: testing::ElementsAreArray
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - input_str
    - edge_type
    - degenerate_boundaries
    argTypes:
    - string_view
    - EdgeType
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 343
    functionName: TestEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 1
    functionsReached:
    - S2LaxPolygonShape::chain_edge
    - S2LaxPolygonShape::num_chains
    - S2LaxPolygonShape::chain
    - IdSetLexicon::id_set
    - LaxPolygonLayer::Options::set_edge_type
    - S2Error::S2Error
    - LaxPolygonLayer::Options::set_degenerate_boundaries
    - S2Builder::StartLayer
    - S2LaxPolygonShape::S2LaxPolygonShape
    - AddShapeWithLabels
    - make_unique<LaxPolygonLayer>
    - IdSetLexicon::IdSetLexicon
    - MakeLaxPolygonOrDie
    - testing::ElementsAreArray
    - S2ShapeNestingQuery::Options::Options
    - GetKey
    - EXPECT_THAT
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: "void TestEdgeLabels(string_view input_str, EdgeType edge_type,\n                           DegenerateBoundaries
      degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kAllDegenerateBoundaries
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:348,1
    - Dst: TestEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - kAllDegenerateBoundaries
    - TestEdgeLabels
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolygonLayer, EdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:359,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:360,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:361,1
    - Dst: make_unique<IndexedLaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:361,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:363,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:363,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:364,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:365,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:366,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:366,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:367,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:367,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:368,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - down_cast
    - make_unique<IndexedLaxPolygonLayer>
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - s2textformat::MakePolygonOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedLaxPolygonLayer, AddsShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:372,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:373,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:374,1
    - Dst: make_unique<IndexedLaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:374,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:375,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:376,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:377,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<IndexedLaxPolygonLayer>
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedLaxPolygonLayer, IgnoresEmptyShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: S2CellIteratorJoin::S2CellIteratorJoin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellIteratorJoin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:111,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' iter_a'
    - ' iter_b'
    argTypes:
    - IteratorA
    - IteratorB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: S2CellIteratorJoin::S2CellIteratorJoin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 0
    functionsReached:
    - MakeS2CellRangeIterator
    linkageType: ''
    returnType: void
    signature: "void S2CellIteratorJoin(const IteratorA& iter_a, const IteratorB&
      iter_b,\n                     S1ChordAngle tolerance = {})"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:129,1
    - Dst: ExactJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:130,1
    - Dst: TolerantJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - Visitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: S2CellIteratorJoin::Join
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 0
    functionsReached:
    - ExactJoin
    - TolerantJoin
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: bool
    signature: bool Join(Visitor visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' iter_a'
    - ' iter_b'
    argTypes:
    - IterA
    - IterB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: MakeS2CellIteratorJoin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: S2CellIteratorJoin<IterA, IterB>
    signature: "S2CellIteratorJoin<IterA, IterB> MakeS2CellIteratorJoin(\n    const
      IterA& iter_a, const IterB& iter_b, S1ChordAngle tolerance = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeS2CellIteratorJoin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:217,1
    - Dst: S2CellIndexTest::VerifyCellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:217,1
    - Dst: S2CellIndexTest::VerifyCellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IterableA*
    - IterableB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: MakeS2CellIteratorJoin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 27
    functionsReached:
    - MakeS2CellIteratorJoin
    - S2CellIndexTest::VerifyCellIterator
    linkageType: ''
    returnType: S2CellIteratorJoin<typename IterableA::Iterator, typename IterableB::Iterator>
    signature: "S2CellIteratorJoin<typename IterableA::Iterator, typename IterableB::Iterator>
      MakeS2CellIteratorJoin(\n  const IterableA* a, const IterableB* b, S1ChordAngle
      tolerance = {})"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:227,1
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:228,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:231,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:231,1
    - Dst: Relation
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:232,1
    - Dst: SeekTo
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:236,1
    - Dst: SeekTo
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:241,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:247,1
    - Dst: iterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:247,1
    - Dst: iterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:247,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:252,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:253,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:255,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:257,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:261,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:262,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - Visitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 269
    functionName: S2CellIteratorJoin<A, B>::ExactJoin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 0
    functionsReached:
    - done
    - id
    - iterator
    - visitor
    - SeekTo
    - Next
    - Relation
    - Begin
    linkageType: ''
    returnType: bool
    signature: bool S2CellIteratorJoin<A, B>::ExactJoin(Visitor& visitor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:275,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:276,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:276,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:276,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ' iter'
    - id
    - ' visitor'
    argTypes:
    - Iterator
    - S2CellId
    - Visitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: S2CellIteratorJoin<A, B>::ScanCellRange
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 0
    functionsReached:
    - done
    - id
    - visitor
    - Locate
    - Next
    linkageType: ''
    returnType: bool
    signature: "bool S2CellIteratorJoin<A, B>::ScanCellRange(Iterator& iter, S2CellId
      id,\n                                                    Visitor&& visitor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:288,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:289,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:293,1
    - Dst: Finish
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:294,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:295,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:298,1
    - Dst: S2CellUnion::FromMinMax
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:301,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:302,1
    - Dst: S2CellIteratorJoin<A, B>::ProcessNearby
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:309,1
    - Dst: Covering
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:309,1
    - Dst: Covering
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - Visitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 310
    functionName: S2CellIteratorJoin<A, B>::TolerantJoin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 0
    functionsReached:
    - done
    - S2CellUnion::FromMinMax
    - Prev
    - S2CellIteratorJoin<A, B>::ProcessNearby
    - range_min
    - range_max
    - std::vector::emplace_back
    - Covering
    - Finish
    - Begin
    linkageType: ''
    returnType: bool
    signature: bool S2CellIteratorJoin<A, B>::TolerantJoin(Visitor& visitor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::clear
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:319,1
    - Dst: IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:321,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:322,1
    - Dst: std::vector::empty
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:326,1
    - Dst: S2CellIteratorJoin<A, B>::ProcessCellPairs
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - cells_a
    - cells_b
    - ' visitor'
    argTypes:
    - absl::Span<const S2Cell>
    - absl::Span<const S2Cell>
    - Visitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 333
    functionName: S2CellIteratorJoin<A, B>::ProcessNearby
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 1
    functionsReached:
    - std::vector::clear
    - std::vector::emplace_back
    - std::vector::empty
    - S2CellIteratorJoin<A, B>::ProcessCellPairs
    - IsDistanceLessOrEqual
    linkageType: ''
    returnType: bool
    signature: "bool S2CellIteratorJoin<A, B>::ProcessNearby(absl::Span<const S2Cell>
      cells_a,\n                                             absl::Span<const S2Cell>
      cells_b,\n                                             Visitor& visitor)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIteratorJoin<A, B>::EstimateCoveredCells
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:340,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:340,1
    - Dst: absl::InlinedVector::resize
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:348,1
    - Dst: Subdivide
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:349,1
    - Dst: S2CellIteratorJoin<A, B>::EstimateCoveredCells
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:357,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:357,1
    - Dst: absl::InlinedVector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:361,1
    - Dst: Subdivide
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:364,1
    - Dst: absl::InlinedVector::insert
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:365,1
    - Dst: absl::InlinedVector::end
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:365,1
    - Dst: S2CellIteratorJoin<A, B>::ProcessNearby
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:373,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:380,1
    - Dst: S2CellIteratorJoin<A, B>::ScanCellRange
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:382,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:382,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:383,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:383,1
    - Dst: S2CellIteratorJoin<A, B>::ScanCellRange
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:388,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:388,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:391,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:391,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:395,1
    - Dst: absl::Span<const S2Cell>::size
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:402,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:403,1
    - Dst: S2CellIteratorJoin<A, B>::ScanCellRange
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:404,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:405,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:407,1
    - Dst: iterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:407,1
    - Dst: iterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:407,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - ' cell_a'
    - cells_b
    - ' visitor'
    argTypes:
    - S2Cell
    - absl::Span<const S2Cell>
    - Visitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 416
    functionName: S2CellIteratorJoin<A, B>::ProcessCellPairs
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 1
    functionsReached:
    - absl::InlinedVector::resize
    - absl::Span<const S2Cell>::size
    - S2CellIteratorJoin<A, B>::EstimateCoveredCells
    - absl::InlinedVector::end
    - emplace_back
    - id
    - absl::InlinedVector::insert
    - S2CellIteratorJoin<A, B>::ProcessNearby
    - Subdivide
    - clear
    - S2Cell::IsDistanceLessOrEqual
    - visitor
    - iterator
    - absl::InlinedVector::emplace_back
    - S2CellIteratorJoin<A, B>::ScanCellRange
    linkageType: ''
    returnType: bool
    signature: "bool S2CellIteratorJoin<A, B>::ProcessCellPairs(\n    const S2Cell&
      cell_a, absl::Span<const S2Cell> cells_b, Visitor& visitor)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:422,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:433,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:435,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:435,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:435,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2cell_iterator_join.h:447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ' iter'
    - cell
    argTypes:
    - Iterator
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 448
    functionName: S2CellIteratorJoin<A, B>::EstimateCoveredCells
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_join.h
    functionUses: 1
    functionsReached:
    - S2CellId::range_max
    - done
    - id
    - Locate
    - Next
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int S2CellIteratorJoin<A, B>::EstimateCoveredCells(Iterator& iter,\n
      \                                                  S2CellId cell)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.cc:26,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.cc:26,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2closest_point_query.cc:26,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2closest_point_query.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: S2ClosestPointQueryOptions::set_conservative_max_distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.cc
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - Distance
    - S1ChordAngle::PlusError
    - S2::GetUpdateMinDistanceMaxError
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryOptions::set_conservative_max_distance(\n
      \   S1ChordAngle max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query.cc:32,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_point_query.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: S2ClosestPointQueryOptions::set_conservative_max_distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.cc
    functionUses: 1
    functionsReached:
    - S2ClosestPointQueryOptions::set_conservative_max_distance
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryOptions::set_conservative_max_distance(\n
      \   S1Angle max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: S2ClosestPointQueryPointTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestPointQueryPointTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: S2ClosestPointQueryEdgeTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestPointQueryEdgeTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: S2ClosestPointQueryCellTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestPointQueryCellTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: S2ClosestPointQueryShapeIndexTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestPointQueryShapeIndexTarget::max_brute_force_index_size()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: S2ClippedShape::S2ClippedShape
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClippedShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: S2ShapeIndexCell::S2ShapeIndexCell
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexCell()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shape_index.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: S2ShapeIndexCell::num_clipped
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_clipped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: '& clipped(int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ClippedShape
    signature: S2ClippedShape & clipped(int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2shape_index.h:153,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shape_index.h:154,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shape_index.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: S2ShapeIndexCell::clipped_shapes
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - size
    - begin
    - empty
    linkageType: ''
    returnType: absl::Span<const S2ClippedShape>
    signature: absl::Span<const S2ClippedShape> clipped_shapes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: S2ShapeIndexCell::S2ShapeIndexCell
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexCell(const S2ShapeIndexCell&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: operator=(const S2ShapeIndexCell&)
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2ShapeIndexCell&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: S2ShapeIndex::IteratorBase::IteratorBase
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IteratorBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: S2ShapeIndex::IteratorBase::IteratorBase
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IteratorBase(const IteratorBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: '& operator=(const IteratorBase&)'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IteratorBase
    signature: IteratorBase & operator=(const IteratorBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 306
    functionName: S2ShapeIndex::IteratorBase::IteratorBase
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IteratorBase(IteratorBase&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: '& operator=(IteratorBase&&) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IteratorBase
    signature: IteratorBase & operator=(IteratorBase&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 324
    functionName: ~S2ShapeIndex()
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2ShapeIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: S2ShapeIndex::ShapeIterator::ShapeIterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShapeIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - index
    - shape_id
    argTypes:
    - S2ShapeIndex*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: S2ShapeIndex::ShapeIterator::ShapeIterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShapeIterator(const S2ShapeIndex* index, int shape_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: S2ShapeIndex::Iterator::Iterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Iterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::Init
      Src: /src/s2geometry/src/s2/s2shape_index.h:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: S2ShapeIndex::Iterator::Iterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - S2ShapeIndex::Iterator::Init
    linkageType: ''
    returnType: void
    signature: "void Iterator(const S2ShapeIndex* index,\n                      InitialPosition
      pos = UNPOSITIONED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex*::NewIterator
      Src: /src/s2geometry/src/s2/s2shape_index.h:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: S2ShapeIndex::Iterator::Init
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 1
    functionsReached:
    - S2ShapeIndex*::NewIterator
    linkageType: ''
    returnType: void
    signature: "void Init(const S2ShapeIndex* index,\n              InitialPosition
      pos = UNPOSITIONED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 424
    functionName: S2ShapeIndex::Iterator::Iterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Iterator(Iterator&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 425
    functionName: '& operator=(Iterator&&) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iterator
    signature: Iterator & operator=(Iterator&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shape_index.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 429
    functionName: S2ShapeIndex::Iterator::id
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 17
    functionsReached:
    - S2ShapeIndex::Iterator::id
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId id() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shape_index.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: S2ShapeIndex::Iterator::center
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - S2ShapeIndex::Iterator::id
    linkageType: ''
    returnType: S2Point
    signature: S2Point center() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2shape_index.h:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: '& cell() const override'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - cell
    linkageType: ''
    returnType: S2ShapeIndexCell
    signature: S2ShapeIndexCell & cell() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shape_index.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 440
    functionName: S2ShapeIndex::Iterator::done
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 28
    functionsReached:
    - S2ShapeIndex::Iterator::done
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/s2shape_index.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 443
    functionName: S2ShapeIndex::Iterator::Begin
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 5
    functionsReached:
    - S2ShapeIndex::Iterator::Begin
    linkageType: ''
    returnType: void
    signature: void Begin() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::Finish
      Src: /src/s2geometry/src/s2/s2shape_index.h:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 446
    functionName: S2ShapeIndex::Iterator::Finish
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 3
    functionsReached:
    - S2ShapeIndex::Iterator::Finish
    linkageType: ''
    returnType: void
    signature: void Finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shape_index.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 450
    functionName: S2ShapeIndex::Iterator::Next
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 22
    functionsReached:
    - S2ShapeIndex::Iterator::Next
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2shape_index.h:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: S2ShapeIndex::Iterator::Prev
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 4
    functionsReached:
    - S2ShapeIndex::Iterator::Prev
    linkageType: ''
    returnType: bool
    signature: bool Prev() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2shape_index.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: S2ShapeIndex::Iterator::Seek
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 4
    functionsReached:
    - S2ShapeIndex::Iterator::Seek
    linkageType: ''
    returnType: void
    signature: void Seek(S2CellId target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/s2shape_index.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 465
    functionName: S2ShapeIndex::Iterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 4
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: bool
    signature: bool Locate(const S2Point& target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/s2shape_index.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 475
    functionName: S2ShapeIndex::Iterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 4
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: S2CellRelation
    signature: S2CellRelation Locate(S2CellId target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Iterator>
      Src: /src/s2geometry/src/s2/s2shape_index.h:479,1
    - Dst: S2ShapeIndex::Iterator::Iterator
      Src: /src/s2geometry/src/s2/s2shape_index.h:479,1
    - Dst: S2ShapeIndex::Iterator::Clone
      Src: /src/s2geometry/src/s2/s2shape_index.h:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 480
    functionName: S2ShapeIndex::Iterator::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 1
    functionsReached:
    - std::make_unique<Iterator>
    - S2ShapeIndex::Iterator::Clone
    - S2ShapeIndex::Iterator::Iterator
    linkageType: ''
    returnType: std::unique_ptr<IteratorBase>
    signature: std::unique_ptr<IteratorBase> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: S2ShapeIndex::Iterator::Iterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Iterator(const T* index, InitialPosition pos = UNPOSITIONED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape_index.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iter
    argTypes:
    - std::unique_ptr<IteratorBase>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 496
    functionName: S2ShapeIndex::Iterator::Iterator
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Iterator(std::unique_ptr<IteratorBase> iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 506
    functionName: ~ShapeFactory()
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ShapeFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 525
    functionName: S2ShapeIndex::S2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 526
    functionName: S2ShapeIndex::S2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndex(const S2ShapeIndex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 527
    functionName: S2ShapeIndex::S2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndex(S2ShapeIndex&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 528
    functionName: '& operator=(const S2ShapeIndex&)'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex & operator=(const S2ShapeIndex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 529
    functionName: '& operator=(S2ShapeIndex&&)'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex & operator=(S2ShapeIndex&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: S2ClippedShape::shape_id
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClippedShape::shape_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 541
    functionName: S2ClippedShape::contains_center
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2ClippedShape::contains_center() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 545
    functionName: S2ClippedShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClippedShape::num_edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClippedShape::is_inline
      Src: /src/s2geometry/src/s2/s2shape_index.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 549
    functionName: S2ClippedShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 1
    functionsReached:
    - S2ClippedShape::is_inline
    linkageType: ''
    returnType: int
    signature: int S2ClippedShape::edge(int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClippedShape::is_inline
      Src: /src/s2geometry/src/s2/s2shape_index.h:556,1
    - Dst: int32_t::int32_t
      Src: /src/s2geometry/src/s2/s2shape_index.h:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - shape_id
    - num_edges
    argTypes:
    - int32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 559
    functionName: S2ClippedShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - S2ClippedShape::is_inline
    - int32_t::int32_t
    linkageType: ''
    returnType: void
    signature: void S2ClippedShape::Init(int32_t shape_id, uint32_t num_edges)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClippedShape::is_inline
      Src: /src/s2geometry/src/s2/s2shape_index.h:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 567
    functionName: S2ClippedShape::Destruct
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - S2ClippedShape::is_inline
    linkageType: ''
    returnType: void
    signature: void S2ClippedShape::Destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 571
    functionName: S2ClippedShape::is_inline
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2ClippedShape::is_inline() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - contains_center
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 577
    functionName: S2ClippedShape::set_contains_center
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClippedShape::set_contains_center(bool contains_center)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClippedShape::is_inline
      Src: /src/s2geometry/src/s2/s2shape_index.h:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - i
    - edge
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 587
    functionName: S2ClippedShape::set_edge
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - S2ClippedShape::is_inline
    linkageType: ''
    returnType: void
    signature: void S2ClippedShape::set_edge(int i, int edge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexCell::num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index.h:592,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shape_index.h:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: S2ShapeIndexCell::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 2
    functionsReached:
    - S2ShapeIndexCell::num_clipped
    - clipped
    linkageType: ''
    returnType: int
    signature: int S2ShapeIndexCell::num_edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index.h:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 598
    functionName: '* S2ShapeIndex::ShapeIterator::operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - shape
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape * S2ShapeIndex::ShapeIterator::operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: '& S2ShapeIndex::ShapeIterator::operator++()'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndex::ShapeIterator
    signature: S2ShapeIndex::ShapeIterator & S2ShapeIndex::ShapeIterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::ShapeIterator::ShapeIterator
      Src: /src/s2geometry/src/s2/s2shape_index.h:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: "S2ShapeIndex::ShapeIterator::operator++(\n    int)"
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - S2ShapeIndex::ShapeIterator::ShapeIterator
    linkageType: ''
    returnType: S2ShapeIndex::ShapeIterator
    signature: "S2ShapeIndex::ShapeIterator S2ShapeIndex::ShapeIterator::operator++(\n
      \   int)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shape_index.h:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - ShapeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: S2ShapeIndex::ShapeIterator::operator==(ShapeIterator it) const
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool S2ShapeIndex::ShapeIterator::operator==(ShapeIterator it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shape_index.h:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - ShapeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 618
    functionName: S2ShapeIndex::ShapeIterator::operator!=(ShapeIterator it) const
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool S2ShapeIndex::ShapeIterator::operator!=(ShapeIterator it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShapeIterator
      Src: /src/s2geometry/src/s2/s2shape_index.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 622
    functionName: S2ShapeIndex::begin
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - ShapeIterator
    linkageType: ''
    returnType: S2ShapeIndex::ShapeIterator
    signature: S2ShapeIndex::ShapeIterator S2ShapeIndex::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShapeIterator
      Src: /src/s2geometry/src/s2/s2shape_index.h:625,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index.h:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 626
    functionName: S2ShapeIndex::end
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - ShapeIterator
    - num_shape_ids
    linkageType: ''
    returnType: S2ShapeIndex::ShapeIterator
    signature: S2ShapeIndex::ShapeIterator S2ShapeIndex::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iter_::Clone
      Src: /src/s2geometry/src/s2/s2shape_index.h:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 630
    functionName: S2ShapeIndex::Iterator::Iterator(const Iterator& other)
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - iter_::Clone
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndex::Iterator::Iterator(const Iterator& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iter_::Clone
      Src: /src/s2geometry/src/s2/s2shape_index.h:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: "& S2ShapeIndex::Iterator::operator=(\n    const Iterator& other)"
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index.h
    functionUses: 0
    functionsReached:
    - iter_::Clone
    linkageType: ''
    returnType: S2ShapeIndex::Iterator
    signature: "S2ShapeIndex::Iterator & S2ShapeIndex::Iterator::operator=(\n    const
      Iterator& other)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: S2Polyline::num_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2polyline.h:147,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2polyline.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: '& vertex(int k) const'
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointSpan
      Src: /src/s2geometry/src/s2/s2polyline.h:154,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polyline.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: S2Polyline::vertices_span
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - S2PointSpan
    - get
    linkageType: ''
    returnType: S2PointSpan
    signature: S2PointSpan vertices_span() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: S2Polyline::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Contains(const S2Cell& cell) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: S2Polyline::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Contains(const S2Point& p) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: S2Polyline::Shape::Shape
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2polyline.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - S2Polyline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: S2Polyline::Shape::Shape
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: void Shape(const S2Polyline* polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: S2Polyline::Shape::polyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Polyline
    signature: S2Polyline * polyline() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline.h:357,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: S2Polyline::Shape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - num_vertices
    - std::max
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2polyline.h:360,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.h:360,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: S2Polyline::Shape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - Edge
    - vertex
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: S2Polyline::Shape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2polyline.h:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: S2Polyline::Shape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2polyline.h:369,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2polyline.h:370,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.h:370,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.h:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: S2Polyline::Shape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - Edge
    - vertex
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2polyline.h:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: S2Polyline::Shape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 375
    functionName: S2Polyline::Shape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polyline.h:379,1
    - Dst: EncodeMostCompact
      Src: /src/s2geometry/src/s2/s2polyline.h:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - encoder
    - hint
    argTypes:
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: S2Polyline::Shape::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - EncodeMostCompact
    - EncodeUncompressed
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder* encoder, s2coding::CodingHint hint) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: S2Polyline::OwningShape::OwningShape
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OwningShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<const S2Polyline>::get
      Src: /src/s2geometry/src/s2/s2polyline.h:398,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline.h:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - std::unique_ptr<const S2Polyline>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    functionName: S2Polyline::OwningShape::OwningShape
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<const S2Polyline>::get
    - std::move
    linkageType: ''
    returnType: void
    signature: void OwningShape(std::unique_ptr<const S2Polyline> polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2polyline.h:405,1
    - Dst: std::unique_ptr<const S2Polyline>::get
      Src: /src/s2geometry/src/s2/s2polyline.h:405,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - std::unique_ptr<const S2Polyline>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: S2Polyline::OwningShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<const S2Polyline>::get
    - std::move
    - S2LaxPolygonShape::Init
    linkageType: ''
    returnType: void
    signature: void Init(std::unique_ptr<const S2Polyline> polyline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline.h:410,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/s2polyline.h:411,1
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2polyline.h:412,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2polyline.h:412,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline.h:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: S2Polyline::OwningShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.h
    functionUses: 0
    functionsReached:
    - auto::get
    - S2LaxPolygonShape::Init
    - auto::Decode
    - std::move
    - std::make_unique<S2Polyline>
    linkageType: ''
    returnType: bool
    signature: bool Init(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cost
    - ' path'
    argTypes:
    - double
    - WarpPath
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: s2polyline_alignment::VertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VertexAlignment(const double cost, const WarpPath& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: s2polyline_alignment::MedoidOptions::approx
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool approx() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - approx
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: s2polyline_alignment::MedoidOptions::set_approx
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_approx(bool approx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: s2polyline_alignment::ConsensusOptions::approx
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool approx() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - approx
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: s2polyline_alignment::ConsensusOptions::set_approx
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_approx(bool approx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: s2polyline_alignment::ConsensusOptions::seed_medoid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool seed_medoid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed_medoid
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: s2polyline_alignment::ConsensusOptions::set_seed_medoid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_seed_medoid(bool seed_medoid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: s2polyline_alignment::ConsensusOptions::iteration_cap
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int iteration_cap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iteration_cap
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: s2polyline_alignment::ConsensusOptions::set_iteration_cap
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_iteration_cap(int iteration_cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cost
    - ' path'
    argTypes:
    - double
    - WarpPath
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: s2polyline_alignment::VertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VertexAlignment(const double cost, const WarpPath& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: s2polyline_alignment::MedoidOptions::approx
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool approx() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - approx
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: s2polyline_alignment::MedoidOptions::set_approx
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_approx(bool approx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: s2polyline_alignment::ConsensusOptions::approx
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool approx() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - approx
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: s2polyline_alignment::ConsensusOptions::set_approx
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_approx(bool approx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: s2polyline_alignment::ConsensusOptions::seed_medoid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool seed_medoid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed_medoid
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: s2polyline_alignment::ConsensusOptions::set_seed_medoid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_seed_medoid(bool seed_medoid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: s2polyline_alignment::ConsensusOptions::iteration_cap
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int iteration_cap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iteration_cap
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: s2polyline_alignment::ConsensusOptions::set_iteration_cap
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_iteration_cap(int iteration_cap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:66,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:67,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:68,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:69,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:69,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:70,1
    - Dst: string
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:73,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:74,1
    - Dst: s2textformat::MakeVerbatimPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:74,1
    - Dst: S2Builder::AddIsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:76,1
    - Dst: S2Builder::IsFullPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:76,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:78,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:82,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:82,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - input_strs
    - expected_str
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - string_view
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: TestS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - string
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - S2Builder::AddIsFullPolygonPredicate
    - SCOPED_TRACE
    - EXPECT_EQ
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - s2textformat::MakeVerbatimPolygonOrDie
    - S2Builder::IsFullPolygon
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2Polygon(absl::Span<const string_view> input_strs,\n                   string_view
      expected_str, EdgeType edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:88,1
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_str
    argTypes:
    - absl::Span<const string_view>
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: TestS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 1
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: "void TestS2Polygon(absl::Span<const string_view> input_strs,\n                   string_view
      expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: TestS2PolygonUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: void TestS2PolygonUnchanged(string_view input_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:100,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:101,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:102,1
    - Dst: S2PolygonLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:104,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:105,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:105,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:107,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:107,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:109,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:110,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:110,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:111,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:111,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - input_strs
    - expected_codes
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - absl::Span<const S2Error::Code>
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: TestS2PolygonError
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2ShapeNestingQuery::Options::Options
    - EXPECT_THAT
    - S2Builder::AddPolyline
    - S2PolygonLayer::Options::set_validate
    - S2Error::code
    - SCOPED_TRACE
    - ASSERT_FALSE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - Contains
    - s2textformat::MakePolylineOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2PolygonError(absl::Span<const string_view> input_strs,\n
      \                       absl::Span<const S2Error::Code> expected_codes,\n                        EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2Error::Code>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:116,1
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:117,1
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_code
    argTypes:
    - absl::Span<const string_view>
    - S2Error::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: TestS2PolygonError
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 1
    functionsReached:
    - absl::Span<const S2Error::Code>
    - TestS2PolygonError
    linkageType: ''
    returnType: void
    signature: "void TestS2PolygonError(absl::Span<const string_view> input_strs,\n
      \                       S2Error::Code expected_code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:123,1
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_codes
    argTypes:
    - absl::Span<const string_view>
    - absl::Span<const S2Error::Code>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: TestS2PolygonError
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 2
    functionsReached:
    - TestS2PolygonError
    linkageType: ''
    returnType: void
    signature: "void TestS2PolygonError(absl::Span<const string_view> input_strs,\n
      \                       absl::Span<const S2Error::Code> expected_codes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, SmallLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, ThreeLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonError
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, PartialLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonError
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, InvalidPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:161,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:162,1
    - Dst: S2PolygonLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:164,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:165,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:165,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:166,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:166,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:168,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:169,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:169,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:175,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:175,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:175,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:176,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:176,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:177,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:179,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:179,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:179,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:180,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:180,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 181
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Builder::AddPolyline
    - S2Error::code
    - S2Polygon::loop
    - S2Error::S2Error
    - S2PolygonLayer::Options::set_validate
    - S2Polygon::num_loops
    - s2textformat::MakeLoopOrDie
    - S2Polygon::S2Polygon
    - S2Builder::StartLayer
    - unique_ptr::Equals
    - EXPECT_TRUE
    - Contains
    - ASSERT_EQ
    - S2ShapeNestingQuery::Options::Options
    - MakePolylineOrDie
    - EXPECT_THAT
    - S2Builder::Build
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, DuplicateInputEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:191,1
    - Dst: S2Builder*::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:193,1
    - Dst: S2Builder*::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:196,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:196,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:196,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:197,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:197,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' polyline'
    - edge_type
    - label_begin
    - builder
    - edge_label_map
    argTypes:
    - S2Polyline
    - EdgeType
    - int32_t
    - S2Builder*
    - EdgeLabelMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: AddPolylineWithLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - S2Builder*::set_label
    - S2Builder*::AddEdge
    - vertex
    - insert
    linkageType: ''
    returnType: void
    signature: "void AddPolylineWithLabels(const S2Polyline& polyline, EdgeType edge_type,\n
      \                          int32_t label_begin, S2Builder* builder,\n                           EdgeLabelMap*
      edge_label_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:203,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:204,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:206,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:207,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:207,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:209,1
    - Dst: AddPolylineWithLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:214,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:214,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:217,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:218,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:218,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:220,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:220,1
    - Dst: S2PolygonLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:220,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:221,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:222,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:222,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:223,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:224,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:224,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:226,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:226,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:228,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:228,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:229,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:229,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: TestEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 2
    functionsReached:
    - make_unique<S2PolygonLayer>
    - end
    - IdSetLexicon::id_set
    - begin
    - equal
    - vector::size
    - S2Polygon::loop
    - S2Error::S2Error
    - S2PolygonLayer::LabelSetIds::size
    - AddPolylineWithLabels
    - S2Polygon::S2Polygon
    - S2Builder::StartLayer
    - EXPECT_TRUE
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - size
    - MakePolylineOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: void TestEdgeLabels(EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestEdgeLabels
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, DirectedEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestEdgeLabels
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, UndirectedEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:245,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:246,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:248,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:249,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:249,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:251,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:251,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:252,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:253,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:254,1
    - Dst: S2PolygonLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:255,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:257,1
    - Dst: IdSetLexicon::EmptySetId
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 259
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2PolygonLayer::LabelSetIds::size
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - size
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - IdSetLexicon::EmptySetId
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, LabelsRequestedButNotProvided)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, ThreeLoopsIntoOne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, TrianglePyramid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, ComplexNesting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 309
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, FiveLoopsTouchingAtOneCommonPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, FourNestedDiamondsTouchingAtTwoPointsPerPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 337
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, SevenDiamondsTouchingAtOnePointPerPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:340,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:341,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:342,1
    - Dst: make_unique<IndexedS2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:342,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:344,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:344,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:345,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:346,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:346,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:347,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:347,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:348,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:349,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:350,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - make_unique<IndexedS2PolygonLayer>
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - down_cast
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - s2textformat::MakePolygonOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolygonLayer, AddsShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:354,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:355,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:356,1
    - Dst: make_unique<IndexedS2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:356,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:357,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:358,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:358,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:359,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - make_unique<IndexedS2PolygonLayer>
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolygonLayer, IgnoresEmptyShape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:66,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:67,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:68,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:69,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:69,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:70,1
    - Dst: string
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:73,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:74,1
    - Dst: s2textformat::MakeVerbatimPolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:74,1
    - Dst: S2Builder::AddIsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:76,1
    - Dst: S2Builder::IsFullPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:76,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:78,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:82,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:82,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - input_strs
    - expected_str
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - string_view
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: TestS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 5
    functionsReached:
    - make_unique<S2PolygonLayer>
    - string
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - S2Builder::AddIsFullPolygonPredicate
    - SCOPED_TRACE
    - EXPECT_EQ
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - s2textformat::MakeVerbatimPolygonOrDie
    - S2Builder::IsFullPolygon
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2Polygon(absl::Span<const string_view> input_strs,\n                   string_view
      expected_str, EdgeType edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:88,1
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_str
    argTypes:
    - absl::Span<const string_view>
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: TestS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 6
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: "void TestS2Polygon(absl::Span<const string_view> input_strs,\n                   string_view
      expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: TestS2PolygonUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 7
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: void TestS2PolygonUnchanged(string_view input_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:100,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:101,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:102,1
    - Dst: S2PolygonLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:104,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:105,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:105,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:107,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:107,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:109,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:110,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:110,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:111,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:111,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - input_strs
    - expected_codes
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - absl::Span<const S2Error::Code>
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: TestS2PolygonError
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 4
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2ShapeNestingQuery::Options::Options
    - EXPECT_THAT
    - S2Builder::AddPolyline
    - S2PolygonLayer::Options::set_validate
    - S2Error::code
    - SCOPED_TRACE
    - ASSERT_FALSE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - Contains
    - s2textformat::MakePolylineOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2PolygonError(absl::Span<const string_view> input_strs,\n
      \                       absl::Span<const S2Error::Code> expected_codes,\n                        EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2Error::Code>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:116,1
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:117,1
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_code
    argTypes:
    - absl::Span<const string_view>
    - S2Error::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: TestS2PolygonError
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 5
    functionsReached:
    - absl::Span<const S2Error::Code>
    - TestS2PolygonError
    linkageType: ''
    returnType: void
    signature: "void TestS2PolygonError(absl::Span<const string_view> input_strs,\n
      \                       S2Error::Code expected_code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:123,1
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_codes
    argTypes:
    - absl::Span<const string_view>
    - absl::Span<const S2Error::Code>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: TestS2PolygonError
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 6
    functionsReached:
    - TestS2PolygonError
    linkageType: ''
    returnType: void
    signature: "void TestS2PolygonError(absl::Span<const string_view> input_strs,\n
      \                       absl::Span<const S2Error::Code> expected_codes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, Full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, SmallLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, ThreeLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonError
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, PartialLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonError
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonError
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, InvalidPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:161,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:162,1
    - Dst: S2PolygonLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:164,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:165,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:165,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:166,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:166,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:168,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:169,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:169,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:175,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:175,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:175,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:176,1
    - Dst: S2Polygon::num_loops
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:176,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:177,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:179,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:179,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:179,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:180,1
    - Dst: unique_ptr::Equals
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:180,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 181
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2Builder::AddPolyline
    - S2Error::code
    - S2Polygon::loop
    - S2Error::S2Error
    - S2PolygonLayer::Options::set_validate
    - S2Polygon::num_loops
    - s2textformat::MakeLoopOrDie
    - S2Polygon::S2Polygon
    - S2Builder::StartLayer
    - unique_ptr::Equals
    - EXPECT_TRUE
    - Contains
    - ASSERT_EQ
    - S2ShapeNestingQuery::Options::Options
    - MakePolylineOrDie
    - EXPECT_THAT
    - S2Builder::Build
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, DuplicateInputEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:191,1
    - Dst: S2Builder*::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:193,1
    - Dst: S2Builder*::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:196,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:196,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:196,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:197,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:197,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' polyline'
    - edge_type
    - label_begin
    - builder
    - edge_label_map
    argTypes:
    - S2Polyline
    - EdgeType
    - int32_t
    - S2Builder*
    - EdgeLabelMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: AddPolylineWithLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 1
    functionsReached:
    - num_vertices
    - S2Builder*::set_label
    - S2Builder*::AddEdge
    - vertex
    - insert
    linkageType: ''
    returnType: void
    signature: "void AddPolylineWithLabels(const S2Polyline& polyline, EdgeType edge_type,\n
      \                          int32_t label_begin, S2Builder* builder,\n                           EdgeLabelMap*
      edge_label_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:203,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:204,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:206,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:207,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:207,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:209,1
    - Dst: AddPolylineWithLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:214,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:214,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:217,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:218,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:218,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:220,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:220,1
    - Dst: S2PolygonLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:220,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:221,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:222,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:222,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:223,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:224,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:224,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:226,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:226,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:228,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:228,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:229,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:229,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: TestEdgeLabels
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 4
    functionsReached:
    - make_unique<S2PolygonLayer>
    - end
    - IdSetLexicon::id_set
    - begin
    - equal
    - vector::size
    - S2Polygon::loop
    - S2Error::S2Error
    - S2PolygonLayer::LabelSetIds::size
    - AddPolylineWithLabels
    - S2Polygon::S2Polygon
    - S2Builder::StartLayer
    - EXPECT_TRUE
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - size
    - MakePolylineOrDie
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: void TestEdgeLabels(EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestEdgeLabels
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, DirectedEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEdgeLabels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestEdgeLabels
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, UndirectedEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:245,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:246,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:248,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:249,1
    - Dst: make_unique<S2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:249,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:251,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:251,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:252,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:253,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:254,1
    - Dst: S2PolygonLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:255,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:257,1
    - Dst: IdSetLexicon::EmptySetId
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 259
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2PolygonLayer>
    - S2PolygonLayer::LabelSetIds::size
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - size
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - IdSetLexicon::EmptySetId
    - ASSERT_TRUE
    - S2Builder::Build
    - S2Polygon::S2Polygon
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, LabelsRequestedButNotProvided)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, ThreeLoopsIntoOne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, TrianglePyramid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, ComplexNesting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 309
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, FiveLoopsTouchingAtOneCommonPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, FourNestedDiamondsTouchingAtTwoPointsPerPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolygonUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 337
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolygonUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolygonLayer, SevenDiamondsTouchingAtOnePointPerPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:340,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:341,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:342,1
    - Dst: make_unique<IndexedS2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:342,1
    - Dst: S2Builder::AddPolygon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:344,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:344,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:345,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:346,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:346,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:347,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:347,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:348,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:349,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:350,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - make_unique<IndexedS2PolygonLayer>
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - down_cast
    - S2Builder::AddPolygon
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - s2textformat::MakePolygonOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolygonLayer, AddsShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:354,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:355,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:356,1
    - Dst: make_unique<IndexedS2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:356,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:357,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:358,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:358,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:359,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - make_unique<IndexedS2PolygonLayer>
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolygonLayer, IgnoresEmptyShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: S2CrossingEdgeQuery::S2CrossingEdgeQuery
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CrossingEdgeQuery::S2CrossingEdgeQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: S2CrossingEdgeQuery::~S2CrossingEdgeQuery()
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CrossingEdgeQuery::~S2CrossingEdgeQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CrossingEdgeQuery::Init
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: S2CrossingEdgeQuery::Init
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 1
    functionsReached:
    - S2CrossingEdgeQuery::Init
    linkageType: ''
    returnType: void
    signature: void S2CrossingEdgeQuery::Init(const S2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' a0'
    - ' a1'
    - type
    argTypes:
    - S2Point
    - S2Point
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: S2CrossingEdgeQuery::GetCrossingEdges
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 1
    functionsReached:
    - S2CrossingEdgeQuery::GetCrossingEdges
    linkageType: ''
    returnType: vector<s2shapeutil::ShapeEdge>
    signature: "vector<s2shapeutil::ShapeEdge> S2CrossingEdgeQuery::GetCrossingEdges(\n
      \   const S2Point& a0, const S2Point& a1, CrossingType type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - shape_id
    - ' shape'
    - type
    argTypes:
    - S2Point
    - S2Point
    - int
    - S2Shape
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: S2CrossingEdgeQuery::GetCrossingEdges
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 2
    functionsReached:
    - S2CrossingEdgeQuery::GetCrossingEdges
    linkageType: ''
    returnType: vector<s2shapeutil::ShapeEdge>
    signature: "vector<s2shapeutil::ShapeEdge> S2CrossingEdgeQuery::GetCrossingEdges(\n
      \   const S2Point& a0, const S2Point& a1, int shape_id, const S2Shape& shape,\n
      \   CrossingType type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector<ShapeEdge>*::clear
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:73,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:74,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:82,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:85,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:86,1
    - Dst: vector<ShapeEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:87,1
    - Dst: ShapeEdge
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - type
    - edges
    argTypes:
    - S2Point
    - S2Point
    - CrossingType
    - vector<ShapeEdge>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 90
    functionName: S2CrossingEdgeQuery::GetCrossingEdges
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 2
    functionsReached:
    - vector<ShapeEdge>*::clear
    - S2Shape*::edge
    - shape
    - S2CrossingEdgeQuery::GetCandidates
    - ShapeEdge
    - S2CopyingEdgeCrosser::CrossingSign
    - vector<ShapeEdge>*::push_back
    linkageType: ''
    returnType: void
    signature: "void S2CrossingEdgeQuery::GetCrossingEdges(\n    const S2Point& a0,
      const S2Point& a1, CrossingType type,\n    vector<ShapeEdge>* edges)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector<ShapeEdge>*::clear
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:96,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:97,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:102,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:103,1
    - Dst: vector<ShapeEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:104,1
    - Dst: ShapeEdge
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - ' a0'
    - ' a1'
    - shape_id
    - ' shape'
    - type
    - edges
    argTypes:
    - S2Point
    - S2Point
    - int
    - S2Shape
    - CrossingType
    - vector<ShapeEdge>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: S2CrossingEdgeQuery::GetCrossingEdges
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 2
    functionsReached:
    - vector<ShapeEdge>*::clear
    - S2CrossingEdgeQuery::GetCandidates
    - edge
    - ShapeEdge
    - S2CopyingEdgeCrosser::CrossingSign
    - vector<ShapeEdge>*::push_back
    linkageType: ''
    returnType: void
    signature: "void S2CrossingEdgeQuery::GetCrossingEdges(const S2Point& a0, const
      S2Point& a1,\n                                           int shape_id, const
      S2Shape& shape,\n                                           CrossingType type,\n
      \                                          vector<ShapeEdge>* edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a0'
    - ' a1'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: S2CrossingEdgeQuery::GetCandidates
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 7
    functionsReached:
    - S2CrossingEdgeQuery::GetCandidates
    linkageType: ''
    returnType: vector<ShapeEdgeId>
    signature: "vector<ShapeEdgeId> S2CrossingEdgeQuery::GetCandidates(\n    const
      S2Point& a0, const S2Point& a1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - shape_id
    - ' shape'
    argTypes:
    - S2Point
    - S2Point
    - int
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: S2CrossingEdgeQuery::GetCandidates
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 8
    functionsReached:
    - S2CrossingEdgeQuery::GetCandidates
    linkageType: ''
    returnType: vector<ShapeEdgeId>
    signature: "vector<ShapeEdgeId> S2CrossingEdgeQuery::GetCandidates(const S2Point&
      a0,\n                                                       const S2Point& a1,\n
      \                                                      int shape_id,\n                                                       const
      S2Shape& shape)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector<ShapeEdgeId>*::clear
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:127,1
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:128,1
    - Dst: vector<ShapeEdgeId>*::reserve
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:130,1
    - Dst: S2CrossingEdgeQuery::VisitRawCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:132,1
    - Dst: vector<ShapeEdgeId>*::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:133,1
    - Dst: vector<ShapeEdgeId>*::size
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:136,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:137,1
    - Dst: vector<ShapeEdgeId>*::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:137,1
    - Dst: vector<ShapeEdgeId>*::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:137,1
    - Dst: vector<ShapeEdgeId>*::erase
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:138,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:138,1
    - Dst: vector<ShapeEdgeId>*::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:138,1
    - Dst: vector<ShapeEdgeId>*::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:138,1
    - Dst: vector<ShapeEdgeId>*::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' a0'
    - ' a1'
    - edges
    argTypes:
    - S2Point
    - S2Point
    - vector<ShapeEdgeId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: S2CrossingEdgeQuery::GetCandidates
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 8
    functionsReached:
    - vector<ShapeEdgeId>*::clear
    - vector<ShapeEdgeId>*::begin
    - S2CrossingEdgeQuery::VisitRawCandidates
    - std::unique
    - vector<ShapeEdgeId>*::erase
    - vector<ShapeEdgeId>*::size
    - vector<ShapeEdgeId>*::reserve
    - std::sort
    - s2shapeutil::CountEdgesUpTo
    - vector<ShapeEdgeId>*::push_back
    - vector<ShapeEdgeId>*::end
    linkageType: ''
    returnType: void
    signature: "void S2CrossingEdgeQuery::GetCandidates(const S2Point& a0, const S2Point&
      a1,\n                                        vector<ShapeEdgeId>* edges)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector<ShapeEdgeId>*::clear
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:145,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:146,1
    - Dst: vector<ShapeEdgeId>*::reserve
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:148,1
    - Dst: S2CrossingEdgeQuery::VisitRawCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:150,1
    - Dst: vector<ShapeEdgeId>*::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:151,1
    - Dst: vector<ShapeEdgeId>*::size
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:154,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:155,1
    - Dst: vector<ShapeEdgeId>*::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:155,1
    - Dst: vector<ShapeEdgeId>*::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:155,1
    - Dst: vector<ShapeEdgeId>*::erase
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:156,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:156,1
    - Dst: vector<ShapeEdgeId>*::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:156,1
    - Dst: vector<ShapeEdgeId>*::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:156,1
    - Dst: vector<ShapeEdgeId>*::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - shape_id
    - ' shape'
    - edges
    argTypes:
    - S2Point
    - S2Point
    - int
    - S2Shape
    - vector<ShapeEdgeId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: S2CrossingEdgeQuery::GetCandidates
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 8
    functionsReached:
    - vector<ShapeEdgeId>*::clear
    - vector<ShapeEdgeId>*::begin
    - num_edges
    - S2CrossingEdgeQuery::VisitRawCandidates
    - std::unique
    - vector<ShapeEdgeId>*::erase
    - vector<ShapeEdgeId>*::size
    - vector<ShapeEdgeId>*::reserve
    - std::sort
    - vector<ShapeEdgeId>*::push_back
    - vector<ShapeEdgeId>*::end
    linkageType: ''
    returnType: void
    signature: "void S2CrossingEdgeQuery::GetCandidates(const S2Point& a0, const S2Point&
      a1,\n                                        int shape_id, const S2Shape& shape,\n
      \                                       vector<ShapeEdgeId>* edges)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::CountEdgesUpTo
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:162,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:164,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:166,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:168,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:170,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:170,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:175,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:176,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:177,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:178,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:179,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:179,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:179,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:179,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - ' a0'
    - ' a1'
    - ' visitor'
    argTypes:
    - S2Point
    - S2Point
    - ShapeEdgeIdVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 186
    functionName: S2CrossingEdgeQuery::VisitRawCandidates
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 2
    functionsReached:
    - num_edges
    - shape_id
    - num_shape_ids
    - ShapeEdgeId
    - shape
    - S2Shape*::num_edges
    - S2CrossingEdgeQuery::VisitCells
    - visitor
    - edge
    - clipped
    - s2shapeutil::CountEdgesUpTo
    - num_clipped
    linkageType: ''
    returnType: bool
    signature: "bool S2CrossingEdgeQuery::VisitRawCandidates(\n    const S2Point&
      a0, const S2Point& a1, const ShapeEdgeIdVisitor& visitor)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:191,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:194,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:194,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:198,1
    - Dst: find_clipped
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:199,1
    - Dst: S2ClippedShape*::num_edges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:201,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:202,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:202,1
    - Dst: S2ClippedShape*::edge
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - shape_id
    - ' shape'
    - ' visitor'
    argTypes:
    - S2Point
    - S2Point
    - int
    - S2Shape
    - ShapeEdgeIdVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: S2CrossingEdgeQuery::VisitRawCandidates
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 2
    functionsReached:
    - num_edges
    - S2ClippedShape*::num_edges
    - ShapeEdgeId
    - S2CrossingEdgeQuery::VisitCells
    - visitor
    - S2ClippedShape*::edge
    - find_clipped
    linkageType: ''
    returnType: bool
    signature: "bool S2CrossingEdgeQuery::VisitRawCandidates(\n    const S2Point&
      a0, const S2Point& a1, int shape_id, const S2Shape& shape,\n    const ShapeEdgeIdVisitor&
      visitor)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetFaceSegments
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:212,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:221,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:222,1
    - Dst: S2PaddedCell::ShrinkToFit
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:223,1
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:234,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:237,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:237,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:238,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:238,1
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:242,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:242,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - ' a0'
    - ' a1'
    - ' visitor'
    argTypes:
    - S2Point
    - S2Point
    - CellVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 247
    functionName: S2CrossingEdgeQuery::VisitCells
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 3
    functionsReached:
    - S2::GetFaceSegments
    - S2PaddedCell
    - R2Rect::FromPointPair
    - S2PaddedCell::ShrinkToFit
    - id
    - S2CrossingEdgeQuery::VisitCells
    - visitor
    - Locate
    - S2CellId::is_face
    - S2CellId::FromFace
    - cell
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool S2CrossingEdgeQuery::VisitCells(const S2Point& a0, const S2Point&
      a1,\n                                     const CellVisitor& visitor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:252,1
    - Dst: padding
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:252,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:256,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:256,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:258,1
    - Dst: bound
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:259,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' root'
    - ' visitor'
    argTypes:
    - S2Point
    - S2Point
    - S2PaddedCell
    - CellVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 264
    functionName: S2CrossingEdgeQuery::VisitCells
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 4
    functionsReached:
    - padding
    - ABSL_DCHECK_EQ
    - id
    - R2Rect::FromPointPair
    - S2CrossingEdgeQuery::VisitCells
    - S2::ClipToPaddedFace
    - bound
    linkageType: ''
    returnType: bool
    signature: "bool S2CrossingEdgeQuery::VisitCells(\n    const S2Point& a0, const
      S2Point& a1, const S2PaddedCell& root,\n    const CellVisitor& visitor)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:277,1
    - Dst: padding
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:277,1
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:279,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:279,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:280,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:280,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:280,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:284,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:284,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:285,1
    - Dst: middle
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:289,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:290,1
    - Dst: S2CrossingEdgeQuery::ClipVAxis
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:292,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:293,1
    - Dst: S2CrossingEdgeQuery::ClipVAxis
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:295,1
    - Dst: S2CrossingEdgeQuery::SplitUBound
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:298,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:299,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:301,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:301,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:302,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:302,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:303,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:305,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:305,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:306,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:306,1
    - Dst: S2CrossingEdgeQuery::ClipVAxis
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:310,1
    - Dst: S2CrossingEdgeQuery::ClipVAxis
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:311,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - ' pcell'
    - ' edge_bound'
    argTypes:
    - S2PaddedCell
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 314
    functionName: S2CrossingEdgeQuery::VisitCells
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 5
    functionsReached:
    - padding
    - done
    - ABSL_DCHECK_EQ
    - Seek
    - middle
    - id
    - S2CrossingEdgeQuery::SplitUBound
    - S2CrossingEdgeQuery::VisitCells
    - lo
    - S2PaddedCell
    - S2CrossingEdgeQuery::ClipVAxis
    - hi
    - cell
    linkageType: ''
    returnType: bool
    signature: "bool S2CrossingEdgeQuery::VisitCells(const S2PaddedCell& pcell,\n
      \                                    const R2Rect& edge_bound)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:323,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:325,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:325,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:326,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:328,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:328,1
    - Dst: S2CrossingEdgeQuery::SplitVBound
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:332,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:333,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:333,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:334,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ' edge_bound'
    - center
    - i
    - ' pcell'
    argTypes:
    - R2Rect
    - double
    - int
    - S2PaddedCell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: S2CrossingEdgeQuery::ClipVAxis
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 1
    functionsReached:
    - S2CrossingEdgeQuery::SplitVBound
    - S2CrossingEdgeQuery::VisitCells
    - lo
    - S2PaddedCell
    - hi
    linkageType: ''
    returnType: bool
    signature: "bool S2CrossingEdgeQuery::ClipVAxis(const R2Rect& edge_bound,\n                                           double
      center, int i,\n                                           const S2PaddedCell&
      pcell)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:343,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:344,1
    - Dst: S2CrossingEdgeQuery::SplitBound
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' edge_bound'
    - u
    - child_bounds
    argTypes:
    - R2Rect
    - double
    - R2Rect[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: S2CrossingEdgeQuery::SplitUBound
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 1
    functionsReached:
    - S2::InterpolateDouble
    - S2CrossingEdgeQuery::SplitBound
    - Project
    linkageType: ''
    returnType: void
    signature: "void S2CrossingEdgeQuery::SplitUBound(const R2Rect& edge_bound, double
      u,\n                                      R2Rect child_bounds[2]) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:356,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:357,1
    - Dst: S2CrossingEdgeQuery::SplitBound
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' edge_bound'
    - v
    - child_bounds
    argTypes:
    - R2Rect
    - double
    - R2Rect[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: S2CrossingEdgeQuery::SplitVBound
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 1
    functionsReached:
    - S2::InterpolateDouble
    - S2CrossingEdgeQuery::SplitBound
    - Project
    linkageType: ''
    returnType: void
    signature: "void S2CrossingEdgeQuery::SplitVBound(const R2Rect& edge_bound, double
      v,\n                                      R2Rect child_bounds[2]) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:371,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:371,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:372,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:372,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:377,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:377,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:378,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 6
    argNames:
    - ' edge_bound'
    - u_end
    - u
    - v_end
    - v
    - child_bounds
    argTypes:
    - R2Rect
    - int
    - double
    - int
    - double
    - R2Rect[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 379
    functionName: S2CrossingEdgeQuery::SplitBound
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 2
    functionsReached:
    - Contains
    - is_empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void S2CrossingEdgeQuery::SplitBound(const R2Rect& edge_bound, int
      u_end,\n                                            double u, int v_end, double
      v,\n                                            R2Rect child_bounds[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<const S2ShapeIndexCell*>*::clear
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:384,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:385,1
    - Dst: vector<const S2ShapeIndexCell*>*::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' root'
    - cells
    argTypes:
    - S2Point
    - S2Point
    - S2PaddedCell
    - vector<const S2ShapeIndexCell*>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: S2CrossingEdgeQuery::GetCells
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.cc
    functionUses: 0
    functionsReached:
    - vector<const S2ShapeIndexCell*>*::push_back
    - S2CrossingEdgeQuery::VisitCells
    - vector<const S2ShapeIndexCell*>*::clear
    linkageType: ''
    returnType: void
    signature: "void S2CrossingEdgeQuery::GetCells(const S2Point& a0, const S2Point&
      a1,\n                                   const S2PaddedCell& root,\n                                   vector<const
      S2ShapeIndexCell*>* cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/r2rect.cc:26,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect.cc:26,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:26,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:26,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:27,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:27,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect.cc:28,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:28,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:28,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:29,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' center'
    - ' size'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: R2Rect::FromCenterSize
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 3
    functionsReached:
    - y
    - R1Interval
    - x
    - R2Rect::R2Rect
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect R2Rect::FromCenterSize(const R2Point& center, const R2Point&
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:33,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:33,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:33,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: R2Rect::Contains
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 2
    functionsReached:
    - y
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::Contains(const R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:37,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:37,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:37,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: R2Rect::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 1
    functionsReached:
    - y
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::InteriorContains(const R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:41,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:41,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:41,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: R2Rect::Intersects
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 0
    functionsReached:
    - y
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::Intersects(const R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:45,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:45,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:45,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: R2Rect::InteriorIntersects
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 0
    functionsReached:
    - y
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::InteriorIntersects(const R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/r2rect.cc:49,1
    - Dst: R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/r2rect.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: R2Rect::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 3
    functionsReached:
    - R2Rect::AddPoint
    linkageType: ''
    returnType: void
    signature: void R2Rect::AddPoint(const R2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddInterval
      Src: /src/s2geometry/src/s2/r2rect.cc:54,1
    - Dst: AddInterval
      Src: /src/s2geometry/src/s2/r2rect.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: R2Rect::AddRect
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 0
    functionsReached:
    - AddInterval
    linkageType: ''
    returnType: void
    signature: void R2Rect::AddRect(const R2Rect& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect.cc:59,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:59,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:59,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:59,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: R2Rect::Project
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 1
    functionsReached:
    - y
    - x
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point R2Rect::Project(const R2Point& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:63,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:63,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:64,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:64,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r2rect.cc:65,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r2rect.cc:65,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect.cc:65,1
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/r2rect.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' margin'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: R2Rect::Expanded
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 2
    functionsReached:
    - R2Rect::Empty
    - R2Rect::R2Rect
    - R1Interval::is_empty
    - y
    - x
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect R2Rect::Expanded(const R2Point& margin) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/r2rect.cc:70,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:70,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:70,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:70,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: R2Rect::Union
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 0
    functionsReached:
    - y
    - x
    - R2Rect::R2Rect
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect R2Rect::Union(const R2Rect& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:74,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:74,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:75,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:75,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r2rect.cc:76,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r2rect.cc:76,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect.cc:76,1
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/r2rect.cc:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: R2Rect::Intersection
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Empty
    - R2Rect::R2Rect
    - R1Interval::is_empty
    - y
    - x
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect R2Rect::Intersection(const R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:81,1
    - Dst: x
      Src: /src/s2geometry/src/s2/r2rect.cc:81,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:82,1
    - Dst: y
      Src: /src/s2geometry/src/s2/r2rect.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' other'
    - max_error
    argTypes:
    - R2Rect
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: R2Rect::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 0
    functionsReached:
    - y
    - x
    linkageType: ''
    returnType: bool
    signature: bool R2Rect::ApproxEquals(const R2Rect& other, double max_error) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/s2geometry/src/s2/r2rect.cc:86,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/r2rect.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' r'
    argTypes:
    - std::ostream
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: '& operator<<(std::ostream& os, const R2Rect& r)'
    functionSourceFile: /src/s2geometry/src/s2/r2rect.cc
    functionUses: 0
    functionsReached:
    - lo
    - hi
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const R2Rect& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:31,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b0'
    - ' b2'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: S2::WedgeContains
    functionSourceFile: /src/s2geometry/src/s2/s2wedge_relations.cc
    functionUses: 0
    functionsReached:
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: bool
    signature: "bool WedgeContains(\n    const S2Point& a0, const S2Point& ab1, const
      S2Point& a2,\n    const S2Point& b0, const S2Point& b2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:43,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b0'
    - ' b2'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: S2::WedgeIntersects
    functionSourceFile: /src/s2geometry/src/s2/s2wedge_relations.cc
    functionUses: 0
    functionsReached:
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: bool
    signature: "bool WedgeIntersects(\n    const S2Point& a0, const S2Point& ab1,
      const S2Point& a2,\n    const S2Point& b0, const S2Point& b2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:66,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:69,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:76,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b0'
    - ' b2'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 79
    functionName: S2::GetWedgeRelation
    functionSourceFile: /src/s2geometry/src/s2/s2wedge_relations.cc
    functionUses: 2
    functionsReached:
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: WedgeRelation
    signature: "WedgeRelation GetWedgeRelation(\n    const S2Point& a0, const S2Point&
      ab1, const S2Point& a2,\n    const S2Point& b0, const S2Point& b2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:31,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b0'
    - ' b2'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: S2::WedgeContains
    functionSourceFile: /src/s2geometry/src/s2/s2wedge_relations.cc
    functionUses: 0
    functionsReached:
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: bool
    signature: "bool WedgeContains(\n    const S2Point& a0, const S2Point& ab1, const
      S2Point& a2,\n    const S2Point& b0, const S2Point& b2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:43,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b0'
    - ' b2'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: S2::WedgeIntersects
    functionSourceFile: /src/s2geometry/src/s2/s2wedge_relations.cc
    functionUses: 0
    functionsReached:
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: bool
    signature: "bool WedgeIntersects(\n    const S2Point& a0, const S2Point& ab1,
      const S2Point& a2,\n    const S2Point& b0, const S2Point& b2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:66,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:69,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:76,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2wedge_relations.cc:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b0'
    - ' b2'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 79
    functionName: S2::GetWedgeRelation
    functionSourceFile: /src/s2geometry/src/s2/s2wedge_relations.cc
    functionUses: 2
    functionsReached:
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: WedgeRelation
    signature: "WedgeRelation GetWedgeRelation(\n    const S2Point& a0, const S2Point&
      ab1, const S2Point& a2,\n    const S2Point& b0, const S2Point& b2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Fractal::ComputeOffsets
      Src: /src/s2geometry/src/s2/s2fractal.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: S2Fractal::S2Fractal
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::ComputeOffsets
    linkageType: ''
    returnType: void
    signature: void S2Fractal::S2Fractal(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2fractal.cc:36,1
    - Dst: S2Fractal::ComputeMinLevel
      Src: /src/s2geometry/src/s2/s2fractal.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - max_level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: S2Fractal::set_max_level
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 3
    functionsReached:
    - S2Fractal::ComputeMinLevel
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2Fractal::set_max_level(int max_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2fractal.cc:42,1
    - Dst: S2Fractal::ComputeMinLevel
      Src: /src/s2geometry/src/s2/s2fractal.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - min_level_arg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: S2Fractal::set_min_level
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::ComputeMinLevel
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2Fractal::set_min_level(int min_level_arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: S2Fractal::ComputeMinLevel
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Fractal::ComputeMinLevel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2fractal.cc:56,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2fractal.cc:57,1
    - Dst: S2Fractal::ComputeOffsets
      Src: /src/s2geometry/src/s2/s2fractal.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dimension
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: S2Fractal::set_fractal_dimension
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 3
    functionsReached:
    - S2Fractal::ComputeOffsets
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void S2Fractal::set_fractal_dimension(double dimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2fractal.cc:63,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2fractal.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: S2Fractal::ComputeOffsets
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 2
    functionsReached:
    - pow
    - sqrt
    linkageType: ''
    returnType: void
    signature: void S2Fractal::ComputeOffsets()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Fractal::set_min_level
      Src: /src/s2geometry/src/s2/s2fractal.cc:69,1
    - Dst: round
      Src: /src/s2geometry/src/s2/s2fractal.cc:69,1
    - Dst: log2
      Src: /src/s2geometry/src/s2/s2fractal.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - min_edges
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: S2Fractal::SetLevelForApproxMinEdges
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 1
    functionsReached:
    - S2Fractal::set_min_level
    - log2
    - round
    linkageType: ''
    returnType: void
    signature: void S2Fractal::SetLevelForApproxMinEdges(int min_edges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Fractal::set_max_level
      Src: /src/s2geometry/src/s2/s2fractal.cc:74,1
    - Dst: round
      Src: /src/s2geometry/src/s2/s2fractal.cc:74,1
    - Dst: log2
      Src: /src/s2geometry/src/s2/s2fractal.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_edges
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: S2Fractal::SetLevelForApproxMaxEdges
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 22
    functionsReached:
    - S2Fractal::set_max_level
    - log2
    - round
    linkageType: ''
    returnType: void
    signature: void S2Fractal::SetLevelForApproxMaxEdges(int max_edges)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2fractal.cc:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 97
    functionName: S2Fractal::min_radius_factor
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 1
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double S2Fractal::min_radius_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2fractal.cc:102,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2fractal.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: S2Fractal::max_radius_factor
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 1
    functionsReached:
    - max
    - sqrt
    linkageType: ''
    returnType: double
    signature: double S2Fractal::max_radius_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2fractal.cc:110,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2fractal.cc:111,1
    - Dst: S2Fractal::GetR2VerticesHelper
      Src: /src/s2geometry/src/s2/s2fractal.cc:112,1
    - Dst: S2Fractal::GetR2VerticesHelper
      Src: /src/s2geometry/src/s2/s2fractal.cc:113,1
    - Dst: S2Fractal::GetR2VerticesHelper
      Src: /src/s2geometry/src/s2/s2fractal.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: S2Fractal::GetR2Vertices
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::GetR2VerticesHelper
    - sqrt
    linkageType: ''
    returnType: vector<R2Point>
    signature: vector<R2Point> S2Fractal::GetR2Vertices()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2fractal.cc:125,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2fractal.cc:127,1
    - Dst: Vector2_d::Ortho
      Src: /src/s2geometry/src/s2/s2fractal.cc:133,1
    - Dst: S2Fractal::GetR2VerticesHelper
      Src: /src/s2geometry/src/s2/s2fractal.cc:137,1
    - Dst: S2Fractal::GetR2VerticesHelper
      Src: /src/s2geometry/src/s2/s2fractal.cc:138,1
    - Dst: S2Fractal::GetR2VerticesHelper
      Src: /src/s2geometry/src/s2/s2fractal.cc:139,1
    - Dst: S2Fractal::GetR2VerticesHelper
      Src: /src/s2geometry/src/s2/s2fractal.cc:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' v0'
    - ' v4'
    - level
    - ' vertices'
    argTypes:
    - R2Point
    - R2Point
    - int
    - vector<R2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: S2Fractal::GetR2VerticesHelper
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 2
    functionsReached:
    - Vector2_d::Ortho
    - S2Fractal::GetR2VerticesHelper
    - push_back
    - absl::Bernoulli
    linkageType: ''
    returnType: void
    signature: "void S2Fractal::GetR2VerticesHelper(const R2Point& v0, const R2Point&
      v4,\n                                    int level, vector<R2Point>& vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Fractal::GetR2Vertices
      Src: /src/s2geometry/src/s2/s2fractal.cc:145,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2fractal.cc:147,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2fractal.cc:147,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2fractal.cc:148,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2fractal.cc:151,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2fractal.cc:151,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2fractal.cc:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' frame'
    - nominal_radius
    argTypes:
    - Matrix3x3_d
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: S2Fractal::MakeLoop
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.cc
    functionUses: 25
    functionsReached:
    - vector::push_back
    - make_unique<S2Loop>
    - vector::reserve
    - S2::FromFrame
    - S1Angle::radians
    - S2Fractal::GetR2Vertices
    - vector::size
    linkageType: ''
    returnType: unique_ptr<S2Loop>
    signature: "unique_ptr<S2Loop> S2Fractal::MakeLoop(const Matrix3x3_d& frame,\n
      \                                      S1Angle nominal_radius)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::is_negative
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:35,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:35,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:36,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:36,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:37,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:37,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: S1ChordAngle::ToAngle
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 7
    functionsReached:
    - S1ChordAngle::is_infinity
    - S1Angle::Radians
    - S1ChordAngle::is_negative
    - asin
    - sqrt
    - S1Angle::Infinity
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1ChordAngle::ToAngle() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:41,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:42,1
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:43,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: S1ChordAngle::Successor
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 4
    functionsReached:
    - nextafter
    - S1ChordAngle::S1ChordAngle
    - S1ChordAngle::Infinity
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::Successor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:47,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:48,1
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:49,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: S1ChordAngle::Predecessor
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 1
    functionsReached:
    - nextafter
    - S1ChordAngle::S1ChordAngle
    - S1ChordAngle::Negative
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::Predecessor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::is_special
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:55,1
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:56,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:56,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - error
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: S1ChordAngle::PlusError
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 6
    functionsReached:
    - S1ChordAngle::S1ChordAngle
    - max
    - min
    - S1ChordAngle::is_special
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S1ChordAngle::PlusError(double error) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: S1ChordAngle::GetS2PointConstructorMaxError
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double S1ChordAngle::GetS2PointConstructorMaxError() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: S1ChordAngle::GetS1AngleConstructorMaxError
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double S1ChordAngle::GetS1AngleConstructorMaxError() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:92,1
    - Dst: S1ChordAngle::is_special
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:92,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:93,1
    - Dst: S1ChordAngle::is_special
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:93,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:97,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:97,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:101,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:111,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:111,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - S1ChordAngle
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 112
    functionName: operator+(S1ChordAngle a, S1ChordAngle b)
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 0
    functionsReached:
    - min
    - sqrt
    - S1ChordAngle::Straight
    - S1ChordAngle::is_special
    - S1ChordAngle::length2
    - S1ChordAngle
    - ABSL_DCHECK
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle operator+(S1ChordAngle a, S1ChordAngle b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:116,1
    - Dst: S1ChordAngle::is_special
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:116,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:117,1
    - Dst: S1ChordAngle::is_special
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:117,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:118,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:118,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:120,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:127,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:127,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:127,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - S1ChordAngle
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: operator-(S1ChordAngle a, S1ChordAngle b)
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::Zero
    - sqrt
    - S1ChordAngle::is_special
    - S1ChordAngle::length2
    - max
    - S1ChordAngle
    - ABSL_DCHECK
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle operator-(S1ChordAngle a, S1ChordAngle b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:132,1
    - Dst: S1ChordAngle::is_special
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:132,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:138,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: sin2
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::length2
    - S1ChordAngle::is_special
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double sin2(S1ChordAngle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:142,1
    - Dst: sin2
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: sin
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 36
    functionsReached:
    - sin2
    - sqrt
    linkageType: ''
    returnType: double
    signature: double sin(S1ChordAngle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:147,1
    - Dst: S1ChordAngle::is_special
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:147,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: cos
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 31
    functionsReached:
    - S1ChordAngle::length2
    - S1ChordAngle::is_special
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double cos(S1ChordAngle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:152,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: tan
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 17
    functionsReached:
    - sin
    - cos
    linkageType: ''
    returnType: double
    signature: double tan(S1ChordAngle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s1chord_angle.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - a
    argTypes:
    - std::ostream
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: '& operator<<(std::ostream& os, S1ChordAngle a)'
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::ToAngle
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, S1ChordAngle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:42,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:42,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:43,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:46,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:47,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:48,1
    - Dst: s2polyline_alignment::Window::IsValid
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' strides'
    argTypes:
    - vector<ColumnStride>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: s2polyline_alignment::Window::Window
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::Window::IsValid
    - size
    - back
    - empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void Window::Window(const vector<ColumnStride>& strides)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:52,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:52,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:54,1
    - Dst: front
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:54,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:54,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:56,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:57,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:58,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:59,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:60,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:75,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:77,1
    - Dst: s2polyline_alignment::Window::IsValid
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' warp_path'
    argTypes:
    - WarpPath
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 78
    functionName: s2polyline_alignment::Window::Window
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    - s2polyline_alignment::Window::IsValid
    - back
    - front
    - std::make_pair
    - empty
    - resize
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void Window::Window(const WarpPath& warp_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:81,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:82,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:83,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:84,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:88,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:89,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:90,1
    - Dst: s2polyline_alignment::Window::Window
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - new_rows
    - new_cols
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: s2polyline_alignment::Window::Upsample
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::Window::Window
    - static_cast<int>
    - static_cast<double>
    - ABSL_DCHECK
    linkageType: ''
    returnType: Window
    signature: Window Window::Upsample(const int new_rows, const int new_cols) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:103,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:107,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:108,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:109,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:110,1
    - Dst: s2polyline_alignment::Window::Window
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - radius
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: s2polyline_alignment::Window::Dilate
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - std::max
    - s2polyline_alignment::Window::Window
    - min
    - ABSL_DCHECK
    linkageType: ''
    returnType: Window
    signature: Window Window::Dilate(const int radius) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InRange
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:120,1
    - Dst: std::stringstream::str
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: s2polyline_alignment::Window::DebugString
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - InRange
    linkageType: ''
    returnType: string
    signature: string Window::DebugString() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:137,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: s2polyline_alignment::Window::IsValid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 2
    functionsReached:
    - front
    - back
    linkageType: ''
    returnType: bool
    signature: bool Window::IsValid() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::InRange
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - row
    - col
    - ' stride'
    - ' table'
    argTypes:
    - int
    - int
    - ColumnStride
    - CostTable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: s2polyline_alignment::BoundsCheckedTableCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::InRange
    linkageType: ''
    returnType: double
    signature: "double BoundsCheckedTableCost(const int row, const int col,\n                                     const
      ColumnStride& stride,\n                                     const CostTable&
      table)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:189,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:190,1
    - Dst: CostTable
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:191,1
    - Dst: vector<double>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:191,1
    - Dst: s2polyline_alignment::All
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:194,1
    - Dst: GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:196,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:202,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:203,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:204,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:205,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:206,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:206,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:206,1
    - Dst: WarpPath::reserve
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:221,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:221,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:221,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:221,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:222,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:223,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:224,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:225,1
    - Dst: WarpPath::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:227,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:228,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:229,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:230,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:234,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:235,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:238,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:239,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:244,1
    - Dst: WarpPath::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:244,1
    - Dst: WarpPath::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:244,1
    - Dst: s2polyline_alignment::VertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:245,1
    - Dst: auto::back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' w'
    argTypes:
    - S2Polyline
    - S2Polyline
    - Window
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 246
    functionName: s2polyline_alignment::DynamicTimewarp
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - WarpPath::reserve
    - std::reverse
    - s2polyline_alignment::BoundsCheckedTableCost
    - s2polyline_alignment::VertexAlignment
    - vector<double>
    - WarpPath::begin
    - min
    - GetColumnStride
    - s2polyline_alignment::All
    - WarpPath::end
    - vertex
    - std::max
    - CostTable
    - GetCheckedColumnStride
    - Norm
    - WarpPath::push_back
    - auto::back
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment DynamicTimewarp(const S2Polyline& a, const S2Polyline&
      b,\n                                const Window& w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:249,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:251,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:253,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:253,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: s2polyline_alignment::HalfResolution
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    - vector::push_back
    - num_vertices
    - vector::reserve
    - vertex
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: unique_ptr<S2Polyline> HalfResolution(const S2Polyline& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:261,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - approx
    argTypes:
    - S2Polyline
    - S2Polyline
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: s2polyline_alignment::CostFn
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::GetApproxVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignmentCost
    linkageType: ''
    returnType: double
    signature: double CostFn(const S2Polyline& a, const S2Polyline& b, bool approx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:267,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - approx
    argTypes:
    - S2Polyline
    - S2Polyline
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: s2polyline_alignment::AlignmentFn
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::GetApproxVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignment
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment AlignmentFn(const S2Polyline& a, const S2Polyline&
      b,\n                            bool approx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:276,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:277,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:278,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:279,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:285,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:286,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:286,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:286,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:287,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 292
    functionName: s2polyline_alignment::GetExactVertexAlignmentCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 1
    functionsReached:
    - num_vertices
    - min
    - ABSL_CHECK
    - vector::back
    - vertex
    - Norm
    linkageType: ''
    returnType: double
    signature: double GetExactVertexAlignmentCost(const S2Polyline& a, const S2Polyline&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:296,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:297,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:298,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:299,1
    - Dst: Window
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:300,1
    - Dst: vector<ColumnStride>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:300,1
    - Dst: s2polyline_alignment::DynamicTimewarp
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: s2polyline_alignment::GetExactVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 1
    functionsReached:
    - num_vertices
    - s2polyline_alignment::DynamicTimewarp
    - ABSL_CHECK
    - Window
    - vector<ColumnStride>
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment GetExactVertexAlignment(const S2Polyline& a,\n                                        const
      S2Polyline& b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:312,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:313,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:314,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:315,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:316,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:321,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:326,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:327,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:333,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:334,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:335,1
    - Dst: Window
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:336,1
    - Dst: s2polyline_alignment::DynamicTimewarp
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - radius
    argTypes:
    - S2Polyline
    - S2Polyline
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 338
    functionName: s2polyline_alignment::GetApproxVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 3
    functionsReached:
    - num_vertices
    - s2polyline_alignment::DynamicTimewarp
    - s2polyline_alignment::GetApproxVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignment
    - ABSL_CHECK
    - Window
    - s2polyline_alignment::HalfResolution
    - std::max
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment GetApproxVertexAlignment(const S2Polyline& a,\n                                         const
      S2Polyline& b,\n                                         const int radius)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:343,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:343,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:343,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:344,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:344,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: s2polyline_alignment::GetApproxVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 4
    functionsReached:
    - num_vertices
    - s2polyline_alignment::GetApproxVertexAlignment
    - static_cast<int>
    - std::max
    - std::pow
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment GetApproxVertexAlignment(const S2Polyline& a,\n                                         const
      S2Polyline& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const unique_ptr<S2Polyline>>::size
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:354,1
    - Dst: MedoidOptions::approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:355,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:356,1
    - Dst: s2polyline_alignment::CostFn
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:362,1
    - Dst: std::min_element
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:367,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:367,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:367,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - polylines
    - options
    argTypes:
    - absl::Span<const unique_ptr<S2Polyline>>
    - MedoidOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 368
    functionName: s2polyline_alignment::GetMedoidPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const unique_ptr<S2Polyline>>::size
    - s2polyline_alignment::CostFn
    - MedoidOptions::approx
    - vector::end
    - ABSL_CHECK_GT
    - std::min_element
    - vector::begin
    linkageType: ''
    returnType: int
    signature: "int GetMedoidPolyline(absl::Span<const unique_ptr<S2Polyline>> polylines,\n
      \                     const MedoidOptions options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const unique_ptr<S2Polyline>>::size
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:392,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:393,1
    - Dst: ConsensusOptions::approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:394,1
    - Dst: ConsensusOptions::seed_medoid
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:399,1
    - Dst: MedoidOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:401,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:402,1
    - Dst: unique_ptr<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:404,1
    - Dst: Clone
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:404,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:405,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:406,1
    - Dst: ConsensusOptions::iteration_cap
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:410,1
    - Dst: s2polyline_alignment::AlignmentFn
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:413,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:415,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:419,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:423,1
    - Dst: auto::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:424,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - polylines
    - options
    argTypes:
    - absl::Span<const unique_ptr<S2Polyline>>
    - ConsensusOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 428
    functionName: s2polyline_alignment::GetConsensusPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    - auto::ApproxEquals
    - absl::Span<const unique_ptr<S2Polyline>>::size
    - MedoidOptions::set_approx
    - ConsensusOptions::iteration_cap
    - std::move
    - Clone
    - ABSL_CHECK_GT
    - ConsensusOptions::seed_medoid
    - vertex
    - Normalize
    - s2polyline_alignment::AlignmentFn
    - unique_ptr<S2Polyline>
    - ABSL_DCHECK_GT
    - s2polyline_alignment::GetMedoidPolyline
    - ConsensusOptions::approx
    - auto::num_vertices
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: "unique_ptr<S2Polyline> GetConsensusPolyline(\n    absl::Span<const
      unique_ptr<S2Polyline>> polylines,\n    const ConsensusOptions options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:42,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:42,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:43,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:46,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:47,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:48,1
    - Dst: s2polyline_alignment::Window::IsValid
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' strides'
    argTypes:
    - vector<ColumnStride>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: s2polyline_alignment::Window::Window
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 2
    functionsReached:
    - s2polyline_alignment::Window::IsValid
    - size
    - back
    - empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void Window::Window(const vector<ColumnStride>& strides)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:52,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:52,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:54,1
    - Dst: front
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:54,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:54,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:56,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:57,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:58,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:59,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:60,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:75,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:77,1
    - Dst: s2polyline_alignment::Window::IsValid
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' warp_path'
    argTypes:
    - WarpPath
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 78
    functionName: s2polyline_alignment::Window::Window
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_EQ
    - s2polyline_alignment::Window::IsValid
    - back
    - front
    - std::make_pair
    - empty
    - resize
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void Window::Window(const WarpPath& warp_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:81,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:82,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:83,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:84,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:88,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:89,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:90,1
    - Dst: s2polyline_alignment::Window::Window
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - new_rows
    - new_cols
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: s2polyline_alignment::Window::Upsample
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::Window::Window
    - static_cast<int>
    - static_cast<double>
    - ABSL_DCHECK
    linkageType: ''
    returnType: Window
    signature: Window Window::Upsample(const int new_rows, const int new_cols) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:103,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:107,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:108,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:109,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:110,1
    - Dst: s2polyline_alignment::Window::Window
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - radius
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: s2polyline_alignment::Window::Dilate
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - std::max
    - s2polyline_alignment::Window::Window
    - min
    - ABSL_DCHECK
    linkageType: ''
    returnType: Window
    signature: Window Window::Dilate(const int radius) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InRange
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:120,1
    - Dst: std::stringstream::str
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: s2polyline_alignment::Window::DebugString
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - InRange
    linkageType: ''
    returnType: string
    signature: string Window::DebugString() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:137,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: s2polyline_alignment::Window::IsValid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 4
    functionsReached:
    - front
    - back
    linkageType: ''
    returnType: bool
    signature: bool Window::IsValid() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::InRange
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - row
    - col
    - ' stride'
    - ' table'
    argTypes:
    - int
    - int
    - ColumnStride
    - CostTable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: s2polyline_alignment::BoundsCheckedTableCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 1
    functionsReached:
    - s2polyline_alignment::InRange
    linkageType: ''
    returnType: double
    signature: "double BoundsCheckedTableCost(const int row, const int col,\n                                     const
      ColumnStride& stride,\n                                     const CostTable&
      table)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:189,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:190,1
    - Dst: CostTable
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:191,1
    - Dst: vector<double>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:191,1
    - Dst: s2polyline_alignment::All
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:194,1
    - Dst: GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:196,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:202,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:203,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:204,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:205,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:206,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:206,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:206,1
    - Dst: WarpPath::reserve
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:221,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:221,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:221,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:221,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:222,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:223,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:224,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:225,1
    - Dst: WarpPath::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:227,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:228,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:229,1
    - Dst: s2polyline_alignment::BoundsCheckedTableCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:230,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:234,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:235,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:238,1
    - Dst: GetCheckedColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:239,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:244,1
    - Dst: WarpPath::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:244,1
    - Dst: WarpPath::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:244,1
    - Dst: s2polyline_alignment::VertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:245,1
    - Dst: auto::back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' w'
    argTypes:
    - S2Polyline
    - S2Polyline
    - Window
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 246
    functionName: s2polyline_alignment::DynamicTimewarp
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 2
    functionsReached:
    - num_vertices
    - WarpPath::reserve
    - std::reverse
    - s2polyline_alignment::BoundsCheckedTableCost
    - s2polyline_alignment::VertexAlignment
    - vector<double>
    - WarpPath::begin
    - min
    - GetColumnStride
    - s2polyline_alignment::All
    - WarpPath::end
    - vertex
    - std::max
    - CostTable
    - GetCheckedColumnStride
    - Norm
    - WarpPath::push_back
    - auto::back
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment DynamicTimewarp(const S2Polyline& a, const S2Polyline&
      b,\n                                const Window& w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:249,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:251,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:253,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:253,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: s2polyline_alignment::HalfResolution
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 1
    functionsReached:
    - make_unique<S2Polyline>
    - vector::push_back
    - num_vertices
    - vector::reserve
    - vertex
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: unique_ptr<S2Polyline> HalfResolution(const S2Polyline& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:261,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - approx
    argTypes:
    - S2Polyline
    - S2Polyline
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: s2polyline_alignment::CostFn
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 1
    functionsReached:
    - s2polyline_alignment::GetApproxVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignmentCost
    linkageType: ''
    returnType: double
    signature: double CostFn(const S2Polyline& a, const S2Polyline& b, bool approx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:267,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - approx
    argTypes:
    - S2Polyline
    - S2Polyline
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 5
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: s2polyline_alignment::AlignmentFn
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 1
    functionsReached:
    - s2polyline_alignment::GetApproxVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignment
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment AlignmentFn(const S2Polyline& a, const S2Polyline&
      b,\n                            bool approx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:276,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:277,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:278,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:279,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:285,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:286,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:286,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:286,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:287,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 292
    functionName: s2polyline_alignment::GetExactVertexAlignmentCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 2
    functionsReached:
    - num_vertices
    - min
    - ABSL_CHECK
    - vector::back
    - vertex
    - Norm
    linkageType: ''
    returnType: double
    signature: double GetExactVertexAlignmentCost(const S2Polyline& a, const S2Polyline&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:296,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:297,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:298,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:299,1
    - Dst: Window
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:300,1
    - Dst: vector<ColumnStride>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:300,1
    - Dst: s2polyline_alignment::DynamicTimewarp
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: s2polyline_alignment::GetExactVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 3
    functionsReached:
    - num_vertices
    - s2polyline_alignment::DynamicTimewarp
    - ABSL_CHECK
    - Window
    - vector<ColumnStride>
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment GetExactVertexAlignment(const S2Polyline& a,\n                                        const
      S2Polyline& b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:312,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:313,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:314,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:315,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:316,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:321,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:326,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:327,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:333,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:334,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:335,1
    - Dst: Window
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:336,1
    - Dst: s2polyline_alignment::DynamicTimewarp
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - radius
    argTypes:
    - S2Polyline
    - S2Polyline
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 338
    functionName: s2polyline_alignment::GetApproxVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 7
    functionsReached:
    - num_vertices
    - s2polyline_alignment::DynamicTimewarp
    - s2polyline_alignment::GetApproxVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignment
    - ABSL_CHECK
    - Window
    - s2polyline_alignment::HalfResolution
    - std::max
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment GetApproxVertexAlignment(const S2Polyline& a,\n                                         const
      S2Polyline& b,\n                                         const int radius)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:343,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:343,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:343,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:344,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:344,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: s2polyline_alignment::GetApproxVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 8
    functionsReached:
    - num_vertices
    - s2polyline_alignment::GetApproxVertexAlignment
    - static_cast<int>
    - std::max
    - std::pow
    linkageType: ''
    returnType: VertexAlignment
    signature: "VertexAlignment GetApproxVertexAlignment(const S2Polyline& a,\n                                         const
      S2Polyline& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const unique_ptr<S2Polyline>>::size
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:354,1
    - Dst: MedoidOptions::approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:355,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:356,1
    - Dst: s2polyline_alignment::CostFn
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:362,1
    - Dst: std::min_element
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:367,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:367,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:367,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - polylines
    - options
    argTypes:
    - absl::Span<const unique_ptr<S2Polyline>>
    - MedoidOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 368
    functionName: s2polyline_alignment::GetMedoidPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 1
    functionsReached:
    - absl::Span<const unique_ptr<S2Polyline>>::size
    - s2polyline_alignment::CostFn
    - MedoidOptions::approx
    - vector::end
    - ABSL_CHECK_GT
    - std::min_element
    - vector::begin
    linkageType: ''
    returnType: int
    signature: "int GetMedoidPolyline(absl::Span<const unique_ptr<S2Polyline>> polylines,\n
      \                     const MedoidOptions options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const unique_ptr<S2Polyline>>::size
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:392,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:393,1
    - Dst: ConsensusOptions::approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:394,1
    - Dst: ConsensusOptions::seed_medoid
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:399,1
    - Dst: MedoidOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:401,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:402,1
    - Dst: unique_ptr<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:404,1
    - Dst: Clone
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:404,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:405,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:406,1
    - Dst: ConsensusOptions::iteration_cap
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:410,1
    - Dst: s2polyline_alignment::AlignmentFn
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:413,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:415,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:419,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:423,1
    - Dst: auto::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:424,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline_alignment.cc:425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - polylines
    - options
    argTypes:
    - absl::Span<const unique_ptr<S2Polyline>>
    - ConsensusOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 428
    functionName: s2polyline_alignment::GetConsensusPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    - auto::ApproxEquals
    - absl::Span<const unique_ptr<S2Polyline>>::size
    - MedoidOptions::set_approx
    - ConsensusOptions::iteration_cap
    - std::move
    - Clone
    - ABSL_CHECK_GT
    - ConsensusOptions::seed_medoid
    - vertex
    - Normalize
    - s2polyline_alignment::AlignmentFn
    - unique_ptr<S2Polyline>
    - ABSL_DCHECK_GT
    - s2polyline_alignment::GetMedoidPolyline
    - ConsensusOptions::approx
    - auto::num_vertices
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: "unique_ptr<S2Polyline> GetConsensusPolyline(\n    absl::Span<const
      unique_ptr<S2Polyline>> polylines,\n    const ConsensusOptions options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageSign
      Src: /src/s2geometry/src/s2/s2predicates.h:367,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates.h:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' a_cross_b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: s2pred::Sign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.h
    functionUses: 28
    functionsReached:
    - s2pred::TriageSign
    - s2pred::ExpensiveSign
    linkageType: ''
    returnType: int
    signature: "int Sign(const S2Point& a, const S2Point& b, const S2Point& c,\n                const
      Vector3_d& a_cross_b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.h:394,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.h:394,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.h:395,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.h:395,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.h:396,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.h:396,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2predicates.h:397,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.h:397,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.h:398,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.h:401,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates.h:401,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.h:401,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.h:402,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates.h:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' a_cross_b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 408
    functionName: s2pred::TriageSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.h
    functionUses: 2
    functionsReached:
    - DotProd
    - ABSL_DCHECK_EQ
    - Norm2
    - ABSL_DCHECK_LE
    - CrossProd
    - std::fabs
    - absl::GetFlag
    - s2pred::ExpensiveSign
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int TriageSign(const S2Point& a, const S2Point& b,\n                      const
      S2Point& c, const Vector3_d& a_cross_b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageSign
      Src: /src/s2geometry/src/s2/s2predicates.h:417,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.h:417,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates.h:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: s2pred::UnperturbedSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.h
    functionUses: 0
    functionsReached:
    - CrossProd
    - s2pred::TriageSign
    - s2pred::ExpensiveSign
    linkageType: ''
    returnType: int
    signature: "int UnperturbedSign(const S2Point& a, const S2Point& b,\n                           const
      S2Point& c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageSign
      Src: /src/s2geometry/src/s2/s2predicates.h:367,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates.h:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' a_cross_b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: s2pred::Sign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.h
    functionUses: 28
    functionsReached:
    - s2pred::TriageSign
    - s2pred::ExpensiveSign
    linkageType: ''
    returnType: int
    signature: "int Sign(const S2Point& a, const S2Point& b, const S2Point& c,\n                const
      Vector3_d& a_cross_b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.h:394,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.h:394,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.h:395,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.h:395,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.h:396,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.h:396,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2predicates.h:397,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.h:397,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.h:398,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.h:401,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2predicates.h:401,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.h:401,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.h:402,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates.h:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' a_cross_b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 408
    functionName: s2pred::TriageSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.h
    functionUses: 4
    functionsReached:
    - DotProd
    - ABSL_DCHECK_EQ
    - Norm2
    - ABSL_DCHECK_LE
    - CrossProd
    - std::fabs
    - absl::GetFlag
    - s2pred::ExpensiveSign
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int TriageSign(const S2Point& a, const S2Point& b,\n                      const
      S2Point& c, const Vector3_d& a_cross_b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageSign
      Src: /src/s2geometry/src/s2/s2predicates.h:417,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.h:417,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2predicates.h:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: s2pred::UnperturbedSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.h
    functionUses: 0
    functionsReached:
    - CrossProd
    - s2pred::TriageSign
    - s2pred::ExpensiveSign
    linkageType: ''
    returnType: int
    signature: "int UnperturbedSign(const S2Point& a, const S2Point& b,\n                           const
      S2Point& c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:28,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:29,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:33,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:33,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2error_test.cc:33,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:34,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:35,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - S2Error::message
    - S2Error
    - S2Error::code
    - EXPECT_EQ
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:41,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:42,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::message
    - S2Error::code
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2error_test.cc:46,1
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2error_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:47,1
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2error_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_EQ
    - S2Error::Ok
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, OkIsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:51,1
    - Dst: S2Error::Unknown
      Src: /src/s2geometry/src/s2/s2error_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::Unknown
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, UnknownCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:55,1
    - Dst: S2Error::Unimplemented
      Src: /src/s2geometry/src/s2/s2error_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::Unimplemented
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, UnimplementedCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:59,1
    - Dst: S2Error::OutOfRange
      Src: /src/s2geometry/src/s2/s2error_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::OutOfRange
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, OutOfRangeCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:63,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2error_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::InvalidArgument
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, InvalidArgumentCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:67,1
    - Dst: S2Error::FailedPrecondition
      Src: /src/s2geometry/src/s2/s2error_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::FailedPrecondition
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, FailedPreconditionCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:72,1
    - Dst: S2Error::Internal
      Src: /src/s2geometry/src/s2/s2error_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::Internal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, InternalCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:76,1
    - Dst: S2Error::ResourceExhausted
      Src: /src/s2geometry/src/s2/s2error_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::ResourceExhausted
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, ResourceExhaustedCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:80,1
    - Dst: S2Error::Cancelled
      Src: /src/s2geometry/src/s2/s2error_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::Cancelled
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, CancelledCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:84,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:85,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:85,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:87,1
    - Dst: absl::CancelledError
      Src: /src/s2geometry/src/s2/s2error_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:88,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:89,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:89,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:92,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2error_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:93,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:94,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:94,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:96,1
    - Dst: absl::DataLossError
      Src: /src/s2geometry/src/s2/s2error_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:97,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:98,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:98,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:101,1
    - Dst: absl::ResourceExhaustedError
      Src: /src/s2geometry/src/s2/s2error_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:102,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:103,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:103,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:106,1
    - Dst: absl::FailedPreconditionError
      Src: /src/s2geometry/src/s2/s2error_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:107,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:108,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:108,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:110,1
    - Dst: absl::OutOfRangeError
      Src: /src/s2geometry/src/s2/s2error_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:111,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:112,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:112,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:115,1
    - Dst: absl::UnimplementedError
      Src: /src/s2geometry/src/s2/s2error_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:116,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:117,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:117,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:119,1
    - Dst: absl::InternalError
      Src: /src/s2geometry/src/s2/s2error_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:120,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:121,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:121,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:123,1
    - Dst: absl::UnknownError
      Src: /src/s2geometry/src/s2/s2error_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:124,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:124,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2error_test.cc:125,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:125,1
    - Dst: absl::AbortedError
      Src: /src/s2geometry/src/s2/s2error_test.cc:130,1
    - Dst: absl::AlreadyExistsError
      Src: /src/s2geometry/src/s2/s2error_test.cc:130,1
    - Dst: absl::DeadlineExceededError
      Src: /src/s2geometry/src/s2/s2error_test.cc:131,1
    - Dst: absl::NotFoundError
      Src: /src/s2geometry/src/s2/s2error_test.cc:131,1
    - Dst: absl::PermissionDeniedError
      Src: /src/s2geometry/src/s2/s2error_test.cc:132,1
    - Dst: absl::UnauthenticatedError
      Src: /src/s2geometry/src/s2/s2error_test.cc:133,1
    - Dst: absl::UnavailableError
      Src: /src/s2geometry/src/s2/s2error_test.cc:133,1
    - Dst: ToS2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:135,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:136,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 138
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - absl::InvalidArgumentError
    - ToS2Error
    - S2Error::code
    - absl::OutOfRangeError
    - absl::UnimplementedError
    - absl::ResourceExhaustedError
    - absl::CancelledError
    - EXPECT_EQ
    - absl::FailedPreconditionError
    - S2Error::message
    - absl::AbortedError
    - absl::UnknownError
    - absl::AlreadyExistsError
    - absl::InternalError
    - absl::DeadlineExceededError
    - absl::UnavailableError
    - EXPECT_THAT
    - absl::PermissionDeniedError
    - absl::UnauthenticatedError
    - ToStatus
    - absl::NotFoundError
    - absl::DataLossError
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, ToS2Error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:141,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:144,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:144,1
    - Dst: S2Error::Cancelled
      Src: /src/s2geometry/src/s2/s2error_test.cc:146,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:148,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:149,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:149,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2error_test.cc:151,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:153,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:154,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:154,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2error_test.cc:156,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:158,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:159,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:159,1
    - Dst: S2Error::ResourceExhausted
      Src: /src/s2geometry/src/s2/s2error_test.cc:161,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:163,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:164,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:164,1
    - Dst: S2Error::FailedPrecondition
      Src: /src/s2geometry/src/s2/s2error_test.cc:166,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:168,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:169,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:169,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:190,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:192,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:192,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2error_test.cc:193,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:193,1
    - Dst: testing::HasSubstr
      Src: /src/s2geometry/src/s2/s2error_test.cc:194,1
    - Dst: S2Error::OutOfRange
      Src: /src/s2geometry/src/s2/s2error_test.cc:197,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:199,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:200,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:200,1
    - Dst: S2Error::Unimplemented
      Src: /src/s2geometry/src/s2/s2error_test.cc:202,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:204,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:204,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:205,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:205,1
    - Dst: S2Error::Internal
      Src: /src/s2geometry/src/s2/s2error_test.cc:207,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:209,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:210,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:210,1
    - Dst: S2Error::Unknown
      Src: /src/s2geometry/src/s2/s2error_test.cc:212,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:214,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:214,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2error_test.cc:215,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:215,1
    - Dst: testing::HasSubstr
      Src: /src/s2geometry/src/s2/s2error_test.cc:215,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2error_test.cc:222,1
    - Dst: ToStatus
      Src: /src/s2geometry/src/s2/s2error_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2error_test.cc:224,1
    - Dst: absl::Status::code
      Src: /src/s2geometry/src/s2/s2error_test.cc:224,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2error_test.cc:225,1
    - Dst: absl::Status::message
      Src: /src/s2geometry/src/s2/s2error_test.cc:225,1
    - Dst: testing::HasSubstr
      Src: /src/s2geometry/src/s2/s2error_test.cc:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 227
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2error_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::DataLoss
    - S2Error::Cancelled
    - S2Error::FailedPrecondition
    - S2Error::OutOfRange
    - S2Error
    - absl::Status::message
    - EXPECT_THAT
    - S2Error::InvalidArgument
    - testing::HasSubstr
    - S2Error::ResourceExhausted
    - S2Error::S2Error
    - S2Error::Unimplemented
    - ToStatus
    - EXPECT_EQ
    - S2Error::Internal
    - S2Error::Unknown
    - absl::Status::code
    linkageType: ''
    returnType: void
    signature: void TEST(S2Error, ToStatus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:42,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:43,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:43,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:44,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:45,1
    - Dst: s2shapeutil::FastEncodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:45,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:46,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:46,1
    - Dst: s2shapeutil::FullDecodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:47,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:48,1
    - Dst: auto::polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:48,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:49,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polygon::Shape>
    - auto::get
    - EXPECT_TRUE
    - down_cast
    - Encoder::length
    - s2shapeutil::FastEncodeShape
    - s2shapeutil::FullDecodeShape
    - Encoder::base
    - ASSERT_TRUE
    - auto::polygon
    - s2textformat::MakePolygonOrDie
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(FastEncodeShape, S2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:54,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:56,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:57,1
    - Dst: s2shapeutil::FastEncodeTaggedShapes
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:57,1
    - Dst: auto::Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:58,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:59,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:59,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:60,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:61,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:61,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:63,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:63,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::FullDecodeShapeFactory
    - s2textformat::ToString
    - auto::Encode
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - Encoder::length
    - Encoder::base
    - MutableS2ShapeIndex::Init
    - ASSERT_TRUE
    - EXPECT_EQ
    - s2shapeutil::FastEncodeTaggedShapes
    - s2textformat::MakeIndexOrDie
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(FastEncodeTaggedShapes, MixedShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:68,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:70,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:71,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:72,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:72,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:73,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:73,1
    - Dst: absl::HexStringToBytes
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:74,1
    - Dst: string::data
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:89,1
    - Dst: string::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:89,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:90,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:91,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:91,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:93,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:93,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 95
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - s2shapeutil::FullDecodeShapeFactory
    - make_unique<S2LaxPolygonShape>
    - s2textformat::ToString
    - string::data
    - absl::HexStringToBytes
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2LaxPolylineShape>
    - MutableS2ShapeIndex::Init
    - ASSERT_TRUE
    - s2textformat::MakePolygonOrDie
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - s2textformat::MakePolylineOrDie
    - string::length
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeTaggedShapes, DecodeFromByteString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:98,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:101,1
    - Dst: s2shapeutil::FastEncodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:101,1
    - Dst: S2PointVectorShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:102,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:102,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:104,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:104,1
    - Dst: EncodedS2PointVectorShape::EncodedS2PointVectorShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:106,1
    - Dst: EncodedS2PointVectorShape::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:106,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:109,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:110,1
    - Dst: s2shapeutil::FastEncodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:110,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:111,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:111,1
    - Dst: s2shapeutil::FullDecodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:114,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:116,1
    - Dst: auto::type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:116,1
    - Dst: Decoder::reset
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:118,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:118,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:118,1
    - Dst: s2shapeutil::LazyDecodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:119,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:121,1
    - Dst: auto::type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2PointVectorShape::EncodedS2PointVectorShape
    - ASSERT_EQ
    - EncodedS2PointVectorShape::Init
    - s2shapeutil::LazyDecodeShape
    - S2PointVectorShape
    - auto::type_tag
    - Encoder::length
    - s2shapeutil::FastEncodeShape
    - s2shapeutil::FullDecodeShape
    - s2textformat::ParsePointsOrDie
    - Encoder::base
    - ASSERT_TRUE
    - Decoder::reset
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeTaggedShapes, DecodeFromEncoded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:125,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:126,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:126,1
    - Dst: s2shapeutil::SingletonShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:127,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:131,1
    - Dst: auto::Equals
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:132,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:132,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:132,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - auto::Equals
    - make_unique<S2Polygon::Shape>
    - auto::get
    - EXPECT_TRUE
    - std::move
    - s2shapeutil::SingletonShapeFactory
    - down_cast
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(SingletonShapeFactory, S2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:42,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:43,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:43,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:44,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:45,1
    - Dst: s2shapeutil::FastEncodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:45,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:46,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:46,1
    - Dst: s2shapeutil::FullDecodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:47,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:48,1
    - Dst: auto::polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:48,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:49,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polygon::Shape>
    - auto::get
    - EXPECT_TRUE
    - down_cast
    - Encoder::length
    - s2shapeutil::FastEncodeShape
    - s2shapeutil::FullDecodeShape
    - Encoder::base
    - ASSERT_TRUE
    - auto::polygon
    - s2textformat::MakePolygonOrDie
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(FastEncodeShape, S2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:54,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:56,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:57,1
    - Dst: s2shapeutil::FastEncodeTaggedShapes
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:57,1
    - Dst: auto::Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:58,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:59,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:59,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:60,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:61,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:61,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:63,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:63,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::FullDecodeShapeFactory
    - s2textformat::ToString
    - auto::Encode
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - Encoder::length
    - Encoder::base
    - MutableS2ShapeIndex::Init
    - ASSERT_TRUE
    - EXPECT_EQ
    - s2shapeutil::FastEncodeTaggedShapes
    - s2textformat::MakeIndexOrDie
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(FastEncodeTaggedShapes, MixedShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:68,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:70,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:71,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:72,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:72,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:73,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:73,1
    - Dst: absl::HexStringToBytes
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:74,1
    - Dst: string::data
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:89,1
    - Dst: string::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:89,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:90,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:91,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:91,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:93,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:93,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 95
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - s2shapeutil::FullDecodeShapeFactory
    - make_unique<S2LaxPolygonShape>
    - s2textformat::ToString
    - string::data
    - absl::HexStringToBytes
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2LaxPolylineShape>
    - MutableS2ShapeIndex::Init
    - ASSERT_TRUE
    - s2textformat::MakePolygonOrDie
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - s2textformat::MakePolylineOrDie
    - string::length
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeTaggedShapes, DecodeFromByteString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:98,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:101,1
    - Dst: s2shapeutil::FastEncodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:101,1
    - Dst: S2PointVectorShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:102,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:102,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:104,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:104,1
    - Dst: EncodedS2PointVectorShape::EncodedS2PointVectorShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:106,1
    - Dst: EncodedS2PointVectorShape::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:106,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:109,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:110,1
    - Dst: s2shapeutil::FastEncodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:110,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:111,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:111,1
    - Dst: s2shapeutil::FullDecodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:114,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:116,1
    - Dst: auto::type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:116,1
    - Dst: Decoder::reset
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:118,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:118,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:118,1
    - Dst: s2shapeutil::LazyDecodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:119,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:121,1
    - Dst: auto::type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2PointVectorShape::EncodedS2PointVectorShape
    - ASSERT_EQ
    - EncodedS2PointVectorShape::Init
    - s2shapeutil::LazyDecodeShape
    - S2PointVectorShape
    - auto::type_tag
    - Encoder::length
    - s2shapeutil::FastEncodeShape
    - s2shapeutil::FullDecodeShape
    - s2textformat::ParsePointsOrDie
    - Encoder::base
    - ASSERT_TRUE
    - Decoder::reset
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeTaggedShapes, DecodeFromEncoded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:125,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:126,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:126,1
    - Dst: s2shapeutil::SingletonShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:127,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:131,1
    - Dst: auto::Equals
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:132,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:132,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:132,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
    functionUses: 0
    functionsReached:
    - auto::Equals
    - make_unique<S2Polygon::Shape>
    - auto::get
    - EXPECT_TRUE
    - std::move
    - s2shapeutil::SingletonShapeFactory
    - down_cast
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(SingletonShapeFactory, S2Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2cap.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: S2Cap::S2Cap
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 6
    functionsReached:
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: void S2Cap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: '& center() const'
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & center() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: S2Cap::radius
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2cap.h:221,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cap.h:221,1
    - Dst: radius_::length2
      Src: /src/s2geometry/src/s2/s2cap.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' cap'
    argTypes:
    - H
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: S2Cap::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 0
    functionsReached:
    - std::move
    - radius_::length2
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const S2Cap& cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cap.h:253,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cap.h:253,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cap.h:255,1
    - Dst: S2Cap::is_valid
      Src: /src/s2geometry/src/s2/s2cap.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' center'
    - radius
    argTypes:
    - S2Point
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: S2Cap::S2Cap
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 6
    functionsReached:
    - S2Cap::is_valid
    - S1Angle::Radians
    - min
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2Cap::S2Cap(const S2Point& center, S1Angle radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cap.h:260,1
    - Dst: S2Cap::is_valid
      Src: /src/s2geometry/src/s2/s2cap.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' center'
    - radius
    argTypes:
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: S2Cap::S2Cap
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 6
    functionsReached:
    - S2Cap::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2Cap::S2Cap(const S2Point& center, S1ChordAngle radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap.h:264,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cap.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' center'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: S2Cap::FromPoint
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 11
    functionsReached:
    - S2Cap::S2Cap
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cap::FromPoint(const S2Point& center)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap.h:268,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2cap.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' center'
    - height
    argTypes:
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: S2Cap::FromCenterHeight
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 8
    functionsReached:
    - S2Cap::S2Cap
    - S1ChordAngle::FromLength2
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cap::FromCenterHeight(const S2Point& center, double height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap.h:272,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2cap.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' center'
    - area
    argTypes:
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: S2Cap::FromCenterArea
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 7
    functionsReached:
    - S2Cap::S2Cap
    - S1ChordAngle::FromLength2
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cap::FromCenterArea(const S2Point& center, double area)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: S2Cap::Empty
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 14
    functionsReached:
    - S2Cap::S2Cap
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cap::Empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap.h:278,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap.h:278,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cap.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: S2Cap::Full
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 10
    functionsReached:
    - S2Cap::S2Cap
    - S2Point
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cap::Full()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2cap.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: S2Cap::height
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 2
    functionsReached:
    - length2
    linkageType: ''
    returnType: double
    signature: double S2Cap::height() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToAngle
      Src: /src/s2geometry/src/s2/s2cap.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: S2Cap::GetRadius
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 8
    functionsReached:
    - ToAngle
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Cap::GetRadius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2cap.h:290,1
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2cap.h:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: S2Cap::is_valid
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 3
    functionsReached:
    - S2::IsUnitLength
    - length2
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/s2cap.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: S2Cap::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 2
    functionsReached:
    - is_negative
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2cap.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: S2Cap::is_full
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 1
    functionsReached:
    - length2
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::is_full() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: S2Cap::operator!=(const S2Cap& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2cap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::operator!=(const S2Cap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:37,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:38,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:47,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:48,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:52,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:52,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:53,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:53,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:53,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:56,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:57,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:58,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:58,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:58,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:59,1
    - Dst: static_cast<S2PointSpan>
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:59,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:60,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_measures_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - fabs
    - s2random::Frame
    - static_cast<S2PointSpan>
    - S2::GetLength
    - S2Point::S2Point
    - pow
    - S2Point::Norm
    - S1Angle::radians
    - sin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_LE
    - S2::GetCentroid
    - S2Testing::MakeTaggedSeedSeq
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST(GetLengthAndCentroid, GreatCircles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:37,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:38,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:47,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:48,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:52,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:52,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:53,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:53,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:53,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:56,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:57,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:58,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:58,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:58,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:59,1
    - Dst: static_cast<S2PointSpan>
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:59,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:60,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2polyline_measures_test.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_measures_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - fabs
    - s2random::Frame
    - static_cast<S2PointSpan>
    - S2::GetLength
    - S2Point::S2Point
    - pow
    - S2Point::Norm
    - S1Angle::radians
    - sin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_LE
    - S2::GetCentroid
    - S2Testing::MakeTaggedSeedSeq
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST(GetLengthAndCentroid, GreatCircles)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: S2ClosestCellQuery::S2ClosestCellQuery
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQuery(const S2ClosestCellQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: operator=(const S2ClosestCellQuery&)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2ClosestCellQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:295,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: "S2ClosestCellQuery::Options::set_max_distance(\n    S1ChordAngle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - Distance
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::Options::set_max_distance(\n    S1ChordAngle
      max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:300,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: "S2ClosestCellQuery::Options::set_max_distance(\n    S1Angle max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_distance
    - Distance
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::Options::set_max_distance(\n    S1Angle max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:305,1
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: "S2ClosestCellQuery::Options::set_inclusive_max_distance(\n    S1ChordAngle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::Successor
    - set_max_distance
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::Options::set_inclusive_max_distance(\n    S1ChordAngle
      max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:310,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: "S2ClosestCellQuery::Options::set_inclusive_max_distance(\n    S1Angle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached:
    - set_inclusive_max_distance
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::Options::set_inclusive_max_distance(\n    S1Angle
      max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:314,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_error
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: S2ClosestCellQuery::Options::set_max_error(S1Angle max_error)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryOptions::set_max_error
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQuery::Options::set_max_error(S1Angle max_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: S2ClosestCellQuery::PointTarget::PointTarget(const S2Point& point)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQuery::PointTarget::PointTarget(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: "S2ClosestCellQuery::EdgeTarget::EdgeTarget(const S2Point& a,\n
      \                                                 const S2Point& b)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::EdgeTarget::EdgeTarget(const S2Point& a,\n
      \                                                 const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: S2ClosestCellQuery::CellTarget::CellTarget(const S2Cell& cell)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQuery::CellTarget::CellTarget(const S2Cell& cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cell_union
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: "S2ClosestCellQuery::CellUnionTarget::CellUnionTarget(\n    S2CellUnion
      cell_union)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::CellUnionTarget::CellUnionTarget(\n    S2CellUnion
      cell_union)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: "S2ClosestCellQuery::ShapeIndexTarget::ShapeIndexTarget(\n    const
      S2ShapeIndex* index)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::ShapeIndexTarget::ShapeIndexTarget(\n    const
      S2ShapeIndex* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::Init
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - S2CellIndex*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: S2ClosestCellQuery::S2ClosestCellQuery
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached:
    - S2ClosestCellQuery::Init
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::S2ClosestCellQuery(const S2CellIndex* index,\n
      \                                             const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::Init
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - S2CellIndex*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: S2ClosestCellQuery::Init
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 2
    functionsReached:
    - S2ClosestCellQuery::Init
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::Init(const S2CellIndex* index,\n                                     const
      Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::ReInit
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: S2ClosestCellQuery::ReInit
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 3
    functionsReached:
    - S2ClosestCellQuery::ReInit
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQuery::ReInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 357
    functionName: '& S2ClosestCellQuery::index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached:
    - index
    linkageType: ''
    returnType: S2CellIndex
    signature: S2CellIndex & S2ClosestCellQuery::index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: '& S2ClosestCellQuery::options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ClosestCellQuery::Options
    signature: S2ClosestCellQuery::Options & S2ClosestCellQuery::options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: S2ClosestCellQuery::mutable_options
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: S2ClosestCellQuery::Options
    signature: S2ClosestCellQuery::Options * S2ClosestCellQuery::mutable_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - Target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: S2ClosestCellQuery::FindClosestCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 5
    functionsReached:
    - S2ClosestCellQuery::FindClosestCells
    linkageType: ''
    returnType: std::vector<S2ClosestCellQuery::Result>
    signature: std::vector<S2ClosestCellQuery::Result> S2ClosestCellQuery::FindClosestCells(Target*
      target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - results
    argTypes:
    - Target*
    - std::vector<Result>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: S2ClosestCellQuery::FindClosestCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 6
    functionsReached:
    - S2ClosestCellQuery::FindClosestCells
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQuery::FindClosestCells(Target* target,\n                                                 std::vector<Result>*
      results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:381,1
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - target
    argTypes:
    - Target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: S2ClosestCellQuery::FindClosestCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 10
    functionsReached:
    - Options::set_max_results
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: S2ClosestCellQuery::Result
    signature: "S2ClosestCellQuery::Result S2ClosestCellQuery::FindClosestCell(\n
      \   Target* target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQuery::FindClosestCell
      Src: /src/s2geometry/src/s2/s2closest_cell_query.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - Target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: S2ClosestCellQuery::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query.h
    functionUses: 6
    functionsReached:
    - S2ClosestCellQuery::FindClosestCell
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2ClosestCellQuery::GetDistance(Target* target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: S2ClosestPointQueryBase::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Result()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - distance
    - point_data
    argTypes:
    - Distance
    - PointData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: S2ClosestPointQueryBase::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Result(Distance distance, const PointData* point_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: S2ClosestPointQueryBase::Result::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: S2ClosestPointQueryBase::Result::distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Distance
    signature: Distance distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: point
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& point() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached:
    - point
    linkageType: ''
    returnType: S2Point
    signature: S2Point & point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: '& data() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: Data
    signature: Data & data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: operator==(const Result& x, const Result& y)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Result& x, const Result& y)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: operator<(const Result& x, const Result& y)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Result& x, const Result& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: S2ClosestPointQueryBase::S2ClosestPointQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryBase(const S2ClosestPointQueryBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: operator=(const S2ClosestPointQueryBase&)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2ClosestPointQueryBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 258
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _distance
    - _id
    argTypes:
    - Distance
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: S2ClosestPointQueryBase::QueueEntry
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void QueueEntry(Distance _distance, S2CellId _id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - QueueEntry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: operator<(const QueueEntry& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const QueueEntry& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: "S2ClosestPointQueryBaseOptions<\n    Distance>::S2ClosestPointQueryBaseOptions"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBaseOptions<\n    Distance>::S2ClosestPointQueryBaseOptions()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: S2ClosestPointQueryBaseOptions<Distance>::max_results
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestPointQueryBaseOptions<Distance>::max_results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - max_results
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: S2ClosestPointQueryBaseOptions<Distance>::set_max_results
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBaseOptions<Distance>::set_max_results(\n
      \   int max_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: S2ClosestPointQueryBaseOptions<Distance>::max_distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Distance
    signature: "Distance S2ClosestPointQueryBaseOptions<Distance>::max_distance()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - Distance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: S2ClosestPointQueryBaseOptions<Distance>::set_max_distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBaseOptions<Distance>::set_max_distance(\n
      \   Distance max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: S2ClosestPointQueryBaseOptions<Distance>::max_error
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename Distance::Delta
    signature: typename Distance::Delta S2ClosestPointQueryBaseOptions<Distance>::max_error()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_error
    argTypes:
    - Delta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: S2ClosestPointQueryBaseOptions<Distance>::set_max_error
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBaseOptions<Distance>::set_max_error(\n    Delta
      max_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: S2ClosestPointQueryBaseOptions<Distance>::region
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Region
    signature: "S2Region * S2ClosestPointQueryBaseOptions<Distance>::region()\n    const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - region
    argTypes:
    - S2Region*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: S2ClosestPointQueryBaseOptions<Distance>::set_region
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBaseOptions<Distance>::set_region(\n    const
      S2Region* region)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: S2ClosestPointQueryBaseOptions<Distance>::use_brute_force
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2ClosestPointQueryBaseOptions<Distance>::use_brute_force() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - use_brute_force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: S2ClosestPointQueryBaseOptions<Distance>::set_use_brute_force
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBaseOptions<Distance>::set_use_brute_force(\n
      \   bool use_brute_force)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 406
    functionName: S2ClosestPointQueryBase<Distance, Data>::S2ClosestPointQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryBase<Distance, Data>::S2ClosestPointQueryBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: S2ClosestPointQueryBase<Distance, Data>::~S2ClosestPointQueryBase()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryBase<Distance, Data>::~S2ClosestPointQueryBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryBase<Distance, Data>::Init
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2PointIndex<Data>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: S2ClosestPointQueryBase<Distance, Data>::S2ClosestPointQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached:
    - S2ClosestPointQueryBase<Distance, Data>::Init
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBase<Distance, Data>::S2ClosestPointQueryBase(\n
      \   const S2PointIndex<Data>* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryBase<Distance, Data>::ReInit
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2PointIndex<Data>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: S2ClosestPointQueryBase<Distance, Data>::Init
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 1
    functionsReached:
    - S2ClosestPointQueryBase<Distance, Data>::ReInit
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBase<Distance, Data>::Init(\n    const S2PointIndex<Data>*
      index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryBase<Distance, Data>::Init
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:428,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: S2ClosestPointQueryBase<Distance, Data>::ReInit
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 1
    functionsReached:
    - S2ClosestPointQueryBase<Distance, Data>::Init
    - clear
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryBase<Distance, Data>::ReInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: '&

      S2ClosestPointQueryBase<Distance, Data>::index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2PointIndex<Data>
    signature: 'S2PointIndex<Data> &

      S2ClosestPointQueryBase<Distance, Data>::index() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryBase<Distance, Data>::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - target
    - ' options'
    argTypes:
    - Target*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 445
    functionName: S2ClosestPointQueryBase<Distance, Data>::FindClosestPoints
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 1
    functionsReached:
    - S2ClosestPointQueryBase<Distance, Data>::FindClosestPoints
    linkageType: ''
    returnType: std::vector<typename S2ClosestPointQueryBase<Distance, Data>::Result>
    signature: "std::vector<typename S2ClosestPointQueryBase<Distance, Data>::Result>
      S2ClosestPointQueryBase<Distance, Data>::FindClosestPoints(\n    Target* target,
      const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:451,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:451,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsInternal
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - target
    - ' options'
    argTypes:
    - Target*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 454
    functionName: S2ClosestPointQueryBase<Distance, Data>::FindClosestPoint
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 0
    functionsReached:
    - max_results
    - S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsInternal
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: typename S2ClosestPointQueryBase<Distance, Data>::Result
    signature: "typename S2ClosestPointQueryBase<Distance, Data>::Result S2ClosestPointQueryBase<Distance,
      Data>::FindClosestPoint(\n    Target* target, const Options& options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsInternal
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:459,1
    - Dst: std::vector<Result>*::clear
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:460,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:461,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:462,1
    - Dst: std::vector<Result>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:463,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:465,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:466,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:466,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:466,1
    - Dst: std::unique_copy
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:467,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:467,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:467,1
    - Dst: std::back_inserter
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:468,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:469,1
    - Dst: std::vector<Result>*::reserve
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:471,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:471,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:472,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:472,1
    - Dst: std::vector<Result>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:473,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:473,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:476,1
    - Dst: std::vector<Result>*::begin
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:476,1
    - Dst: std::vector<Result>*::end
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:476,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:477,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:477,1
    - Dst: std::vector<Result>*::begin
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:477,1
    - Dst: std::vector<Result>*::end
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - target
    - ' options'
    - results
    argTypes:
    - Target*
    - Options
    - std::vector<Result>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 479
    functionName: S2ClosestPointQueryBase<Distance, Data>::FindClosestPoints
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 1
    functionsReached:
    - top
    - end
    - S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsInternal
    - begin
    - std::vector<Result>*::reserve
    - ABSL_DCHECK
    - pop
    - std::vector<Result>*::clear
    - std::vector<Result>*::begin
    - std::vector<Result>*::end
    - empty
    - std::unique_copy
    - std::reverse
    - std::back_inserter
    - std::is_sorted
    - std::vector<Result>*::push_back
    - size
    - clear
    - std::sort
    - max_results
    - is_empty
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBase<Distance, Data>::FindClosestPoints(\n
      \   Target* target, const Options& options, std::vector<Result>* results)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:487,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:488,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:489,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:489,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:490,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:490,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:491,1
    - Dst: Target*::max_brute_force_index_size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:491,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:492,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:494,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:495,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:495,1
    - Dst: region
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:496,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:497,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:522,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:522,1
    - Dst: set_max_error
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:523,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:523,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:528,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:529,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:529,1
    - Dst: use_brute_force
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:534,1
    - Dst: num_points
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:535,1
    - Dst: max_brute_force_index_size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:535,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsBruteForce
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:536,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsOptimized
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:538,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - target
    - ' options'
    argTypes:
    - Target*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 540
    functionName: S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsInternal
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 2
    functionsReached:
    - Result
    - ABSL_LOG
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    - max_distance
    - S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsBruteForce
    - S2MinDistance::Infinity
    - empty
    - region
    - max_error
    - S2MinDistance::Zero
    - set_max_error
    - use_brute_force
    - max_brute_force_index_size
    - Target*::max_brute_force_index_size
    - S1ChordAngle::Zero
    - num_points
    - S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsOptimized
    - max_results
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsInternal(\n
      \   Target* target, const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:544,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:544,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:544,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:545,1
    - Dst: point_data
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 1
    functionsReached:
    - done
    - point_data
    - Next
    - S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
    - Begin
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsBruteForce()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryBase<Distance, Data>::InitQueue
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:551,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:552,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:555,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:556,1
    - Dst: CellQueue
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:558,1
    - Dst: QueueEntry::id::child_begin
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:561,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:566,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 570
    functionName: S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsOptimized
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 1
    functionsReached:
    - CellQueue
    - pop
    - S2ClosestPointQueryBase<Distance, Data>::ProcessOrEnqueue
    - top
    - QueueEntry::id::child_begin
    - S2CellId::next
    - empty
    - S2ClosestPointQueryBase<Distance, Data>::InitQueue
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsOptimized()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:574,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:574,1
    - Dst: GetCapBound
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:580,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:581,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:582,1
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:596,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:596,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:596,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:597,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:598,1
    - Dst: point_data
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:598,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:600,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:601,1
    - Dst: point_data
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:601,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:604,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:608,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::InitCovering
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:608,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:610,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:611,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:612,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:613,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:613,1
    - Dst: S2CellUnion::GetIntersection
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:614,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:618,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:619,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:620,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:621,1
    - Dst: GetChordAngleBound
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:621,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:622,1
    - Dst: S2RegionCoverer::GetFastCovering
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:623,1
    - Dst: S2CellUnion::GetIntersection
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:624,1
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:628,1
    - Dst: std::vector*::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:629,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:629,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:631,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:631,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:631,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 573
    functionDepth: 7
    functionLinenumber: 573
    functionLinenumberEnd: 633
    functionName: S2ClosestPointQueryBase<Distance, Data>::InitQueue
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 1
    functionsReached:
    - S2Cap::center
    - point_data
    - S2CellId::range_min
    - S2CellId
    - S2RegionCoverer::mutable_options
    - ABSL_DCHECK
    - GetChordAngleBound
    - S2Cap::is_empty
    - id
    - Prev
    - GetCapBound
    - options
    - S2MinDistance::Infinity
    - empty
    - S2RegionCoverer::GetFastCovering
    - S2Cap::radius
    - std::vector*::size
    - done
    - S2MinDistance::Zero
    - S2RegionCoverer::GetCovering
    - S2ClosestPointQueryBase<Distance, Data>::InitCovering
    - S2RegionCoverer::S2RegionCoverer
    - Begin
    - S2ClosestPointQueryBase<Distance, Data>::ProcessOrEnqueue
    - Seek
    - S2CellUnion::GetIntersection
    - S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryBase<Distance, Data>::InitQueue()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:652,1
    - Dst: Finish
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:653,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:654,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:655,1
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:656,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:657,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:661,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:664,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:665,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:666,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:668,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:668,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:672,1
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:673,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:673,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:674,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:675,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:676,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::AddInitialRange
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:677,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::AddInitialRange
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:680,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 681
    functionName: S2ClosestPointQueryBase<Distance, Data>::InitCovering
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 1
    functionsReached:
    - S2CellId::range_max
    - reserve
    - Seek
    - id
    - Prev
    - S2CellId::next
    - S2CellId::parent
    - Next
    - S2ClosestPointQueryBase<Distance, Data>::AddInitialRange
    - Finish
    - Begin
    linkageType: ''
    returnType: void
    signature: void S2ClosestPointQueryBase<Distance, Data>::InitCovering()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetCommonAncestorLevel
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:690,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:691,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:692,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - first_id
    - last_id
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: S2ClosestPointQueryBase<Distance, Data>::AddInitialRange
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 1
    functionsReached:
    - S2CellId::parent
    - push_back
    - ABSL_DCHECK_GE
    - S2CellId::GetCommonAncestorLevel
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBase<Distance, Data>::AddInitialRange(\n    S2CellId
      first_id, S2CellId last_id)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:699,1
    - Dst: PointData*::point
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:699,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:701,1
    - Dst: S2Region*::Contains
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:702,1
    - Dst: PointData*::point
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:702,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:705,1
    - Dst: Result::distance
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:708,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:708,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:709,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:710,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:716,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:716,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:716,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:717,1
    - Dst: push
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:719,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:720,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:720,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:720,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:721,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:721,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - point_data
    argTypes:
    - PointData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 724
    functionName: S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 2
    functionsReached:
    - pop
    - Result::distance
    - S2Region*::Contains
    - static_cast<size_t>
    - size
    - top
    - UpdateMinDistance
    - push_back
    - options
    - PointData*::point
    - push
    linkageType: ''
    returnType: void
    signature: "void S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult(\n    const
      PointData* point_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Iterator*::Seek
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:736,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:736,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:737,1
    - Dst: Iterator*::done
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:739,1
    - Dst: Iterator*::id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:739,1
    - Dst: Iterator*::Next
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:739,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:740,1
    - Dst: Iterator*::point_data
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:740,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:744,1
    - Dst: Iterator*::done
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:746,1
    - Dst: Iterator*::id
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:746,1
    - Dst: Iterator*::Next
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:746,1
    - Dst: UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:752,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:753,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:753,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:756,1
    - Dst: push
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:758,1
    - Dst: QueueEntry
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:758,1
    - Dst: Iterator*::point_data
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:762,1
    - Dst: S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
      Src: /src/s2geometry/src/s2/s2closest_point_query_base.h:766,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - id
    - iter
    - seek
    argTypes:
    - S2CellId
    - Iterator*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 769
    functionName: S2ClosestPointQueryBase<Distance, Data>::ProcessOrEnqueue
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base.h
    functionUses: 2
    functionsReached:
    - S2CellId::is_leaf
    - Iterator*::Seek
    - Iterator*::id
    - S2CellId::range_max
    - S2CellId::range_min
    - Iterator*::done
    - UpdateMinDistance
    - QueueEntry
    - options
    - Iterator*::Next
    - S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
    - Iterator*::point_data
    - push
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestPointQueryBase<Distance, Data>::ProcessOrEnqueue(\n
      \   S2CellId id, Iterator* iter, bool seek)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2earth.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - radians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: Haversine
    functionSourceFile: /src/s2geometry/src/s2/s2earth.cc
    functionUses: 0
    functionsReached:
    - sin
    linkageType: ''
    returnType: double
    signature: double Haversine(const double radians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2earth.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - radians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: Haversine
    functionSourceFile: /src/s2geometry/src/s2/s2earth.cc
    functionUses: 0
    functionsReached:
    - sin
    linkageType: ''
    returnType: double
    signature: double Haversine(const double radians)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2earth.cc:39,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2earth.cc:41,1
    - Dst: S2Earth::MetersToRadians
      Src: /src/s2geometry/src/s2/s2earth.cc:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - meters
    - latitude_radians
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: S2Earth::MetersToLongitudeRadians
    functionSourceFile: /src/s2geometry/src/s2/s2earth.cc
    functionUses: 1
    functionsReached:
    - S2Earth::MetersToRadians
    - min
    - cos
    linkageType: ''
    returnType: double
    signature: "double S2Earth::MetersToLongitudeRadians(double meters,\n                                         double
      latitude_radians)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2earth.cc:46,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2earth.cc:47,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2earth.cc:47,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2earth.cc:48,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2earth.cc:48,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2earth.cc:49,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2earth.cc:49,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2earth.cc:52,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2earth.cc:52,1
    - Dst: Haversine
      Src: /src/s2geometry/src/s2/s2earth.cc:52,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2earth.cc:53,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2earth.cc:54,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2earth.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: S2Earth::GetInitialBearing
    functionSourceFile: /src/s2geometry/src/s2/s2earth.cc
    functionUses: 1
    functionsReached:
    - atan2
    - S1Angle::Radians
    - lng
    - Haversine
    - sin
    - lat
    - cos
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Earth::GetInitialBearing(const S2LatLng& a, const S2LatLng&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:101,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:103,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:103,1
    - Dst: input_callback
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:104,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:106,1
    - Dst: S2BufferOperation::Build
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:106,1
    - Dst: ABSL_VLOG_IS_ON
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:107,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:107,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - input_callback
    - ' options'
    argTypes:
    - InputCallback
    - S2BufferOperation::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: DoBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - auto::get
    - auto::num_vertices
    - make_unique<S2LaxPolygonShape>
    - EXPECT_TRUE
    - S2BufferOperation::Build
    - s2textformat::ToString
    - input_callback
    - ABSL_VLOG_IS_ON
    - S2Error::S2Error
    linkageType: ''
    returnType: unique_ptr<S2LaxPolygonShape>
    signature: "unique_ptr<S2LaxPolygonShape> DoBuffer(\n    InputCallback input_callback,
      const S2BufferOperation::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::Options::set_buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:118,1
    - Dst: S2BufferOperation::Options::set_error_fraction
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:119,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:120,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - input_callback
    - buffer_radius
    - error_fraction
    argTypes:
    - InputCallback
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: DoBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 1
    functionsReached:
    - std::move
    - S2BufferOperation::Options::set_error_fraction
    - S2BufferOperation::Options::set_buffer_radius
    - DoBuffer
    linkageType: ''
    returnType: unique_ptr<S2LaxPolygonShape>
    signature: "unique_ptr<S2LaxPolygonShape> DoBuffer(\n    InputCallback input_callback,\n
      \   S1Angle buffer_radius, double error_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:128,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:128,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:128,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:129,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:129,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:129,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:130,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:130,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:130,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:131,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:131,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:131,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:132,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:132,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - InputCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: TestBufferEmpty
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S1Angle::Degrees
    - DoBuffer
    linkageType: ''
    returnType: void
    signature: void TestBufferEmpty(InputCallback input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferEmpty
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, NoInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:141,1
    - Dst: AddPolyline
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:142,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - TestBufferEmpty
    - AddPolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:147,1
    - Dst: AddLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferEmpty
    - AddLoop
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:153,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferEmpty
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyPointShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:159,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:160,1
    - Dst: s2textformat::MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLaxPolylineOrDie
    - TestBufferEmpty
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyPolylineShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:165,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:166,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLaxPolygonOrDie
    - TestBufferEmpty
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyPolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:171,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:172,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - AddShapeIndex
    - s2textformat::MakeIndexOrDie
    - TestBufferEmpty
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyShapeIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:178,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:179,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:183,1
    - Dst: S2BufferOperation::Options::buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:183,1
    - Dst: S2BufferOperation::options
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - S2BufferOperation::Options::buffer_radius
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2BufferOperation::options
    - S1Angle::Radians
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, Options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:192,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:194,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:194,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:195,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 197
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - DoBuffer
    - S1Angle::Degrees
    - ABSL_CHECK
    - S2::IsUnitLength
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, PoorlyNormalizedPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:204,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:204,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:204,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:205,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:205,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:205,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:206,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:206,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:206,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:207,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:207,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:207,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:208,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:208,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - InputCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: TestBufferFull
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S1Angle::Degrees
    - DoBuffer
    linkageType: ''
    returnType: void
    signature: void TestBufferFull(InputCallback input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferFull
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:212,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:213,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferFull
    - s2textformat::MakeLaxPolygonOrDie
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, FullPolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferFull
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:218,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:219,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferFull
    - s2textformat::MakeIndexOrDie
    - AddShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, FullShapeIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:225,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:226,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:226,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:228,1
    - Dst: auto::is_empty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - DoBuffer
    - EXPECT_TRUE
    - S1Angle::Degrees
    - AddShapeIndex
    - s2textformat::MakeIndexOrDie
    - auto::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, PointsAndPolylinesAreRemoved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:234,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:235,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:235,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:236,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:239,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:240,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:240,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:242,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:242,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:242,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:242,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:243,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 246
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - abs
    - auto::loop_vertex
    - DoBuffer
    - S2Point
    - S1Angle::Radians
    - S1Angle::Degrees
    - S1Angle
    - EXPECT_LE
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, BufferedPointsAreSymmetric)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:253,1
    - Dst: S2BufferOperation::Options::set_circle_segments
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:255,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:256,1
    - Dst: S2BufferOperation::Options::circle_segments
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:256,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:257,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:258,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:260,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 262
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::Options::circle_segments
    - AddPoint
    - S2BufferOperation::Options::set_circle_segments
    - DoBuffer
    - S2Point
    - S1Angle::Radians
    - EXPECT_EQ
    - EXPECT_FLOAT_EQ
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, SetCircleSegments)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:268,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:268,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:269,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:270,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:272,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:272,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:273,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:273,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - auto::loop_vertex
    - DoBuffer
    - S2BufferOperation::Options::set_snap_function
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - s2textformat::MakePointOrDie
    - EXPECT_EQ
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, SetSnapFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:279,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:281,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:282,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:282,1
    - Dst: S2BufferOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:283,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:283,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:283,1
    - Dst: S2BufferOperation::AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:284,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:284,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:285,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:286,1
    - Dst: S2BufferOperation::Build
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:287,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2BufferOperation::Build
    - S2ShapeNestingQuery::Options::Options
    - S1Angle::Radians
    - S2PointLoopSpan
    - S2BufferOperation::AddShapeIndex
    - s2textformat::ParsePointsOrDie
    - S2Error::code
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - S2BufferOperation::AddLoop
    - EXPECT_FALSE
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, NegativeBufferRadiusMultipleLayers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:297,1
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:298,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:301,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:301,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:304,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - ' output'
    - buffer_radius
    - max_error
    argTypes:
    - MutableS2ShapeIndex
    - MutableS2ShapeIndex
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: TestContainment
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2BooleanOperation::Contains
    - S2BooleanOperation::Options::set_polygon_model
    - S2BooleanOperation::Options::set_polyline_model
    linkageType: ''
    returnType: void
    signature: "void TestContainment(const MutableS2ShapeIndex& input,\n                     const
      MutableS2ShapeIndex& output,\n                     S1Angle buffer_radius, S1Angle
      max_error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:313,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:323,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:324,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:325,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:325,1
    - Dst: S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:329,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:331,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:332,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:332,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:332,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:334,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:335,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:335,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:335,1
    - Dst: ASSERT_GE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:336,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - ' output'
    - min_dist
    argTypes:
    - MutableS2ShapeIndex
    - MutableS2ShapeIndex
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 340
    functionName: TestMinimumDistance
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - S1ChordAngle::PlusError
    - S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - s2pred::CompareEdgePairDistance
    - shape_id
    - S2::GetUpdateMinDistanceMaxError
    - S1ChordAngle::Zero
    - shape
    - S2ClosestEdgeQuery::Options::set_max_distance
    - ASSERT_GE
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - S2ClosestEdgeQuery::FindClosestEdges
    linkageType: ''
    returnType: void
    signature: "void TestMinimumDistance(const MutableS2ShapeIndex& input,\n                         const
      MutableS2ShapeIndex& output,\n                         S1ChordAngle min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:350,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:351,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:352,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:352,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:356,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:357,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:360,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:363,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:364,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:364,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:364,1
    - Dst: ASSERT_LE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:365,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ' input'
    - ' output'
    - max_dist
    argTypes:
    - MutableS2ShapeIndex
    - MutableS2ShapeIndex
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 370
    functionName: TestHausdorffDistance
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - S1ChordAngle::PlusError
    - S2::Interpolate
    - num_edges
    - ASSERT_LE
    - shape_id
    - S2::GetUpdateMinDistanceMaxError
    - shape
    - s2pred::CompareEdgeDistance
    - S2ClosestEdgeQuery::Options::set_max_distance
    - edge
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - S2ClosestEdgeQuery::FindClosestEdges
    linkageType: ''
    returnType: void
    signature: "void TestHausdorffDistance(const MutableS2ShapeIndex& input,\n                           const
      MutableS2ShapeIndex& output,\n                           S1ChordAngle max_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:376,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:376,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:377,1
    - Dst: S2BufferOperation::Options::set_buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:415,1
    - Dst: S2BufferOperation::Options::set_error_fraction
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:416,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:417,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:418,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:418,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:419,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:421,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:421,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:423,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:424,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:424,1
    - Dst: S2BufferOperation::Options::max_error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:427,1
    - Dst: TestContainment
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:428,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:430,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:430,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:430,1
    - Dst: TestMinimumDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:431,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:434,1
    - Dst: TestHausdorffDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - buffer_radius
    - error_fraction
    argTypes:
    - MutableS2ShapeIndex
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 436
    functionName: TestBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - S2BufferOperation::Options::set_error_fraction
    - S2BufferOperation::Options::max_error
    - S2BufferOperation::Options::set_buffer_radius
    - DoBuffer
    - TestContainment
    - S1Angle::Zero
    - TestMinimumDistance
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - AddShapeIndex
    - SCOPED_TRACE
    - S1Angle::radians
    - TestHausdorffDistance
    - ABSL_LOG
    - max
    - MutableS2ShapeIndex::Add
    - abs
    linkageType: ''
    returnType: void
    signature: "void TestBuffer(const MutableS2ShapeIndex& input, S1Angle buffer_radius,\n
      \               double error_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:441,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - index_str
    - buffer_radius
    - error_fraction
    argTypes:
    - string_view
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: TestBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 1
    functionsReached:
    - s2textformat::MakeIndexOrDie
    - TestBuffer
    linkageType: ''
    returnType: void
    signature: "void TestBuffer(string_view index_str, S1Angle buffer_radius,\n                double
      error_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:448,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - index_str
    - buffer_radius
    - error_fraction
    argTypes:
    - string_view
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 6
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: TestSignedBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBuffer
    linkageType: ''
    returnType: void
    signature: "void TestSignedBuffer(string_view index_str, S1Angle buffer_radius,\n
      \                     double error_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:453,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 7
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Radians
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, PointShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:457,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 7
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Radians
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, SiblingPairShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:461,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 7
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, SiblingPairHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:465,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:465,1
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:466,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 7
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, Square)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:470,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 7
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, HollowSquare)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:475,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 7
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, ZigZagLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:481,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:481,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:484,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:485,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:486,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:486,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:487,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:488,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:489,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:489,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:489,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:490,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 6
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2::GetFrame
    - S2Fractal::MakeLoop
    - S2Point
    - S2Fractal::set_fractal_dimension
    - TestBuffer
    - S1Angle::Degrees
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2Loop::Shape>
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, Fractals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:498,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:499,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:499,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:500,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:500,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:504,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:504,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:505,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:505,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:506,1
    - Dst: S2LaxClosedPolylineShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 508
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2CellId::ToPoint
    - DoBuffer
    - EXPECT_TRUE
    - S1Angle::Radians
    - GetValue
    - S2LaxClosedPolylineShape
    - S2CellId::next
    - S2CellId::Begin
    - S2CellId::End
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, S2Curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:522,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:522,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:529,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:529,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:530,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:530,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:531,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:531,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:532,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 513
    functionDepth: 7
    functionLinenumber: 513
    functionLinenumberEnd: 534
    functionName: TestRadiiAndErrorFractions
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Radians
    - TestBuffer
    linkageType: ''
    returnType: void
    signature: void TestRadiiAndErrorFractions(string_view index_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRadiiAndErrorFractions
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 8
    functionLinenumber: 538
    functionLinenumberEnd: 540
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestRadiiAndErrorFractions
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, RadiiAndErrorFractionCoverageSinglePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRadiiAndErrorFractions
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 8
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestRadiiAndErrorFractions
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, RadiiAndErrorFractionCoverageZigZagPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRadiiAndErrorFractions
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 8
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestRadiiAndErrorFractions
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, RadiiAndErrorFractionCoverageTriangleWithHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRadiiAndErrorFractions
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 8
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestRadiiAndErrorFractions
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, RadiiAndErrorFractionCoverageTriangleTwoLongEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 568
    functionName: TestBufferPolyline::GetEdgeAxis
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetEdgeAxis(const S2Point& a, const S2Point& b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:575,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:582,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:587,1
    - Dst: S2::IsInteriorDistanceLess
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:589,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:590,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:591,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 2
    argNames:
    - ' p'
    - expect_contained
    argTypes:
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 595
    functionName: TestBufferPolyline::PointBufferingUncertain
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - s2pred::Sign
    - size
    - S2::IsInteriorDistanceLess
    - S2::IsDistanceLess
    - S1ChordAngle
    linkageType: ''
    returnType: bool
    signature: bool PointBufferingUncertain(const S2Point& p, bool expect_contained)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:598,1
    - Dst: TestBufferPolyline::PointBufferingUncertain
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:601,1
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' p'
    - ' dir'
    - expect_contained
    argTypes:
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: TestBufferPolyline::TestPoint
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - TestBufferPolyline::PointBufferingUncertain
    - S2::GetPointOnRay
    - S2ContainsPointQuery
    linkageType: ''
    returnType: void
    signature: void TestPoint(const S2Point& p, const S2Point& dir, bool expect_contained)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:609,1
    - Dst: TestBufferPolyline::TestPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' p'
    - ' start'
    - ' end'
    - expect_contained
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 4
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: TestBufferPolyline::TestVertexArc
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferPolyline::TestPoint
    - S2::Interpolate
    linkageType: ''
    returnType: void
    signature: "void TestVertexArc(const S2Point& p, const S2Point& start, const S2Point&
      end,\n                     bool expect_contained)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:617,1
    - Dst: TestBufferPolyline::TestPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' ba_axis'
    - ' a'
    - ' b'
    - expect_contained
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: TestBufferPolyline::TestEdgeArc
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferPolyline::TestPoint
    - S2::Interpolate
    linkageType: ''
    returnType: void
    signature: "void TestEdgeArc(const S2Point& ba_axis, const S2Point& a, const S2Point&
      b,\n                   bool expect_contained)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferPolyline::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:624,1
    - Dst: TestBufferPolyline::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:625,1
    - Dst: TestBufferPolyline::TestEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:626,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - expect_contained
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: TestBufferPolyline::TestEdgeAndVertex
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferPolyline::TestEdgeArc
    - TestBufferPolyline::GetEdgeAxis
    - TestBufferPolyline::TestVertexArc
    linkageType: ''
    returnType: void
    signature: "void TestEdgeAndVertex(const S2Point& a, const S2Point& b, const S2Point&
      c,\n                         bool expect_contained)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:644,1
    - Dst: buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:645,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:646,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:647,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:647,1
    - Dst: end_cap_style
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:649,1
    - Dst: polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:650,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:651,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:651,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:652,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:652,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:654,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:655,1
    - Dst: s2textformat::MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:655,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:656,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:656,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:657,1
    - Dst: TestHausdorffDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:662,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:676,1
    - Dst: polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:680,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:681,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:681,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:681,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:684,1
    - Dst: TestBufferPolyline::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:686,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:687,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:688,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:689,1
    - Dst: TestBufferPolyline::TestEdgeAndVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:691,1
    - Dst: TestBufferPolyline::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:694,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:695,1
    - Dst: TestBufferPolyline::TestEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:696,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:697,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:698,1
    - Dst: TestBufferPolyline::TestEdgeAndVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:700,1
    - Dst: TestBufferPolyline::TestEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:703,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - input_str
    - ' options'
    argTypes:
    - string_view
    - S2BufferOperation::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 642
    functionDepth: 6
    functionLinenumber: 642
    functionLinenumberEnd: 704
    functionName: TestBufferPolyline::TestBufferPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - end
    - TestBufferPolyline::TestEdgeAndVertex
    - TestBufferPolyline::GetEdgeAxis
    - begin
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    - s2textformat::MakeLaxPolylineOrDie
    - AddShapeIndex
    - end_cap_style
    - MutableS2ShapeIndex::Add
    - max_error
    - DoBuffer
    - std::reverse
    - buffer_radius
    - s2textformat::ParsePointsOrDie
    - S2Point::CrossProd
    - TestBufferPolyline::TestVertexArc
    - max
    - S1Angle::Zero
    - polyline_side
    - Add
    - size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1ChordAngle::Zero
    - TestHausdorffDistance
    - TestBufferPolyline::TestEdgeArc
    linkageType: ''
    returnType: void
    signature: "void TestBufferPolyline::TestBufferPolyline(\n    string_view input_str,
      const S2BufferOperation::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:707,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:712,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:712,1
    - Dst: S2BufferOperation::Options::set_polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:716,1
    - Dst: S2BufferOperation::Options::set_end_cap_style
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:717,1
    - Dst: TestBufferPolyline
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:718,1
    - Dst: TestBufferPolyline
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 722
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - S2BufferOperation::Options::set_polyline_side
    - TestBufferPolyline
    - S1Angle::Degrees
    - SCOPED_TRACE
    - S2BufferOperation::Options::set_end_cap_style
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, ZigZagPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:726,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:726,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:727,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:727,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:729,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:730,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:732,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:733,1
    - Dst: S2BufferOperation::AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:736,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:736,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:738,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:739,1
    - Dst: S2BufferOperation::Build
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 741
    functionName: BM_BufferPoints
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - string::begin
    - s2random::Point
    - StrCat
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2BufferOperation::Build
    - string::end
    - S2Testing::MetersToAngle
    - range
    - ABSL_CHECK
    - S2BufferOperation::AddPoint
    - absl::GetFlag
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void BM_BufferPoints(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:747,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:748,1
    - Dst: S2BufferOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:750,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:751,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:752,1
    - Dst: S2BufferOperation::Build
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' state'
    - loop
    - buffer_radius
    argTypes:
    - benchmark::State
    - S2PointLoopSpan
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 754
    functionName: BenchmarkBufferLoop
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2BufferOperation::Build
    - ABSL_CHECK
    - S2BufferOperation::AddLoop
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void BenchmarkBufferLoop(benchmark::State& state,\n                         S2PointLoopSpan
      loop, S1Angle buffer_radius)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:757,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:758,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:758,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:758,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:759,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:759,1
    - Dst: BenchmarkBufferLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: BM_BufferConvexLoop
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2Testing::MetersToAngle
    - range
    - BenchmarkBufferLoop
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void BM_BufferConvexLoop(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:766,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:767,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:767,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:767,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:768,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:768,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:768,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:769,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:769,1
    - Dst: BenchmarkBufferLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 771
    functionName: BM_BufferConcaveLoop
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - std::reverse
    - auto::end
    - S2Point
    - S2Testing::MetersToAngle
    - range
    - auto::begin
    - BenchmarkBufferLoop
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void BM_BufferConcaveLoop(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:779,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:779,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:780,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:780,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:783,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:784,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:785,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:785,1
    - Dst: auto::vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:786,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:786,1
    - Dst: BenchmarkBufferLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' state'
    - num_edges
    - nominal_radius
    - dimension
    - buffer_radius
    argTypes:
    - benchmark::State
    - int
    - S1Angle
    - double
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 775
    functionDepth: 5
    functionLinenumber: 775
    functionLinenumberEnd: 788
    functionName: BenchmarkBufferFractal
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - auto::vertex
    - StrCat
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - string::end
    - s2random::Frame
    - S2Fractal::set_fractal_dimension
    - BenchmarkBufferLoop
    - absl::GetFlag
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: "void BenchmarkBufferFractal(\n    benchmark::State& state, int num_edges,
      S1Angle nominal_radius,\n    double dimension, S1Angle buffer_radius)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkBufferFractal
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:791,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:792,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:792,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 790
    functionDepth: 6
    functionLinenumber: 790
    functionLinenumberEnd: 793
    functionName: BM_BufferLoDimFractal
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkBufferFractal
    - S1Angle::Degrees
    - range
    linkageType: ''
    returnType: void
    signature: void BM_BufferLoDimFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkBufferFractal
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:798,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:799,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:799,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 797
    functionDepth: 6
    functionLinenumber: 797
    functionLinenumberEnd: 800
    functionName: BM_BufferHiDimFractal
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkBufferFractal
    - S1Angle::Degrees
    - range
    linkageType: ''
    returnType: void
    signature: void BM_BufferHiDimFractal(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:101,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:103,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:103,1
    - Dst: input_callback
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:104,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:106,1
    - Dst: S2BufferOperation::Build
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:106,1
    - Dst: ABSL_VLOG_IS_ON
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:107,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:107,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - input_callback
    - ' options'
    argTypes:
    - InputCallback
    - S2BufferOperation::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: DoBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 11
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - auto::get
    - auto::num_vertices
    - make_unique<S2LaxPolygonShape>
    - EXPECT_TRUE
    - S2BufferOperation::Build
    - s2textformat::ToString
    - input_callback
    - ABSL_VLOG_IS_ON
    - S2Error::S2Error
    linkageType: ''
    returnType: unique_ptr<S2LaxPolygonShape>
    signature: "unique_ptr<S2LaxPolygonShape> DoBuffer(\n    InputCallback input_callback,
      const S2BufferOperation::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::Options::set_buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:118,1
    - Dst: S2BufferOperation::Options::set_error_fraction
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:119,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:120,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - input_callback
    - buffer_radius
    - error_fraction
    argTypes:
    - InputCallback
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: DoBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 12
    functionsReached:
    - std::move
    - S2BufferOperation::Options::set_error_fraction
    - S2BufferOperation::Options::set_buffer_radius
    - DoBuffer
    linkageType: ''
    returnType: unique_ptr<S2LaxPolygonShape>
    signature: "unique_ptr<S2LaxPolygonShape> DoBuffer(\n    InputCallback input_callback,\n
      \   S1Angle buffer_radius, double error_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:128,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:128,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:128,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:129,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:129,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:129,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:130,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:130,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:130,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:131,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:131,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:131,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:132,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:132,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - InputCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: TestBufferEmpty
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 7
    functionsReached:
    - EXPECT_TRUE
    - S1Angle::Degrees
    - DoBuffer
    linkageType: ''
    returnType: void
    signature: void TestBufferEmpty(InputCallback input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferEmpty
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, NoInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:141,1
    - Dst: AddPolyline
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:142,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - TestBufferEmpty
    - AddPolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:147,1
    - Dst: AddLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferEmpty
    - AddLoop
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:153,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferEmpty
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyPointShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:159,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:160,1
    - Dst: s2textformat::MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLaxPolylineOrDie
    - TestBufferEmpty
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyPolylineShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:165,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:166,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLaxPolygonOrDie
    - TestBufferEmpty
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyPolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferEmpty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:171,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:172,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - AddShapeIndex
    - s2textformat::MakeIndexOrDie
    - TestBufferEmpty
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, EmptyShapeIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:178,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:179,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:183,1
    - Dst: S2BufferOperation::Options::buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:183,1
    - Dst: S2BufferOperation::options
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - S2BufferOperation::Options::buffer_radius
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2BufferOperation::options
    - S1Angle::Radians
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, Options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:192,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:194,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:194,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:195,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 197
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - DoBuffer
    - S1Angle::Degrees
    - ABSL_CHECK
    - S2::IsUnitLength
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, PoorlyNormalizedPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:204,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:204,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:204,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:205,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:205,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:205,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:206,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:206,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:206,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:207,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:207,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:207,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:208,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:208,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - InputCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: TestBufferFull
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 2
    functionsReached:
    - EXPECT_TRUE
    - S1Angle::Degrees
    - DoBuffer
    linkageType: ''
    returnType: void
    signature: void TestBufferFull(InputCallback input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferFull
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:212,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:213,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferFull
    - s2textformat::MakeLaxPolygonOrDie
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, FullPolygonShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferFull
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:218,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:219,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestBufferFull
    - s2textformat::MakeIndexOrDie
    - AddShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, FullShapeIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:225,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:226,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:226,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:228,1
    - Dst: auto::is_empty
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - DoBuffer
    - EXPECT_TRUE
    - S1Angle::Degrees
    - AddShapeIndex
    - s2textformat::MakeIndexOrDie
    - auto::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, PointsAndPolylinesAreRemoved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:234,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:235,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:235,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:236,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:239,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:240,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:240,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:242,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:242,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:242,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:242,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:243,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 246
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - abs
    - auto::loop_vertex
    - DoBuffer
    - S2Point
    - S1Angle::Radians
    - S1Angle::Degrees
    - S1Angle
    - EXPECT_LE
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, BufferedPointsAreSymmetric)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:253,1
    - Dst: S2BufferOperation::Options::set_circle_segments
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:255,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:256,1
    - Dst: S2BufferOperation::Options::circle_segments
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:256,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:257,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:258,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:260,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 262
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::Options::circle_segments
    - AddPoint
    - S2BufferOperation::Options::set_circle_segments
    - DoBuffer
    - S2Point
    - S1Angle::Radians
    - EXPECT_EQ
    - EXPECT_FLOAT_EQ
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, SetCircleSegments)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:268,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:268,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:269,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:270,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:272,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:272,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:273,1
    - Dst: auto::loop_vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:273,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - AddPoint
    - auto::loop_vertex
    - DoBuffer
    - S2BufferOperation::Options::set_snap_function
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - s2textformat::MakePointOrDie
    - EXPECT_EQ
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, SetSnapFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:279,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:281,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:282,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:282,1
    - Dst: S2BufferOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:283,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:283,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:283,1
    - Dst: S2BufferOperation::AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:284,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:284,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:285,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:286,1
    - Dst: S2BufferOperation::Build
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:287,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2BufferOperation::Build
    - S2ShapeNestingQuery::Options::Options
    - S1Angle::Radians
    - S2PointLoopSpan
    - S2BufferOperation::AddShapeIndex
    - s2textformat::ParsePointsOrDie
    - S2Error::code
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - S2BufferOperation::AddLoop
    - EXPECT_FALSE
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, NegativeBufferRadiusMultipleLayers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Options::set_polygon_model
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:297,1
    - Dst: S2BooleanOperation::Options::set_polyline_model
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:298,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:301,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:301,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:304,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - ' output'
    - buffer_radius
    - max_error
    argTypes:
    - MutableS2ShapeIndex
    - MutableS2ShapeIndex
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: TestContainment
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_TRUE
    - S2BooleanOperation::Contains
    - S2BooleanOperation::Options::set_polygon_model
    - S2BooleanOperation::Options::set_polyline_model
    linkageType: ''
    returnType: void
    signature: "void TestContainment(const MutableS2ShapeIndex& input,\n                     const
      MutableS2ShapeIndex& output,\n                     S1Angle buffer_radius, S1Angle
      max_error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:313,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:323,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:324,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:325,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:325,1
    - Dst: S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:329,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:331,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:332,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:332,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:332,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:334,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:335,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:335,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:335,1
    - Dst: ASSERT_GE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:336,1
    - Dst: s2pred::CompareEdgePairDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - ' output'
    - min_dist
    argTypes:
    - MutableS2ShapeIndex
    - MutableS2ShapeIndex
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 340
    functionName: TestMinimumDistance
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 1
    functionsReached:
    - edge_id
    - S1ChordAngle::PlusError
    - S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - s2pred::CompareEdgePairDistance
    - shape_id
    - S2::GetUpdateMinDistanceMaxError
    - S1ChordAngle::Zero
    - shape
    - S2ClosestEdgeQuery::Options::set_max_distance
    - ASSERT_GE
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - S2ClosestEdgeQuery::FindClosestEdges
    linkageType: ''
    returnType: void
    signature: "void TestMinimumDistance(const MutableS2ShapeIndex& input,\n                         const
      MutableS2ShapeIndex& output,\n                         S1ChordAngle min_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:350,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:351,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:352,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:352,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:356,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:357,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:360,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:363,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:364,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:364,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:364,1
    - Dst: ASSERT_LE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:365,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ' input'
    - ' output'
    - max_dist
    argTypes:
    - MutableS2ShapeIndex
    - MutableS2ShapeIndex
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 370
    functionName: TestHausdorffDistance
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 2
    functionsReached:
    - edge_id
    - S1ChordAngle::PlusError
    - S2::Interpolate
    - num_edges
    - ASSERT_LE
    - shape_id
    - S2::GetUpdateMinDistanceMaxError
    - shape
    - s2pred::CompareEdgeDistance
    - S2ClosestEdgeQuery::Options::set_max_distance
    - edge
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - S2ClosestEdgeQuery::FindClosestEdges
    linkageType: ''
    returnType: void
    signature: "void TestHausdorffDistance(const MutableS2ShapeIndex& input,\n                           const
      MutableS2ShapeIndex& output,\n                           S1ChordAngle max_dist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:376,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:376,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:377,1
    - Dst: S2BufferOperation::Options::set_buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:415,1
    - Dst: S2BufferOperation::Options::set_error_fraction
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:416,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:417,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:418,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:418,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:419,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:421,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:421,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:423,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:424,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:424,1
    - Dst: S2BufferOperation::Options::max_error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:427,1
    - Dst: TestContainment
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:428,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:430,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:430,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:430,1
    - Dst: TestMinimumDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:431,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:434,1
    - Dst: TestHausdorffDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - buffer_radius
    - error_fraction
    argTypes:
    - MutableS2ShapeIndex
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 436
    functionName: TestBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 4
    functionsReached:
    - absl::StrFormat
    - S2BufferOperation::Options::set_error_fraction
    - S2BufferOperation::Options::max_error
    - S2BufferOperation::Options::set_buffer_radius
    - DoBuffer
    - TestContainment
    - S1Angle::Zero
    - TestMinimumDistance
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - AddShapeIndex
    - SCOPED_TRACE
    - S1Angle::radians
    - TestHausdorffDistance
    - ABSL_LOG
    - max
    - MutableS2ShapeIndex::Add
    - abs
    linkageType: ''
    returnType: void
    signature: "void TestBuffer(const MutableS2ShapeIndex& input, S1Angle buffer_radius,\n
      \               double error_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:441,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - index_str
    - buffer_radius
    - error_fraction
    argTypes:
    - string_view
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: TestBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 5
    functionsReached:
    - s2textformat::MakeIndexOrDie
    - TestBuffer
    linkageType: ''
    returnType: void
    signature: "void TestBuffer(string_view index_str, S1Angle buffer_radius,\n                double
      error_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:448,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - index_str
    - buffer_radius
    - error_fraction
    argTypes:
    - string_view
    - S1Angle
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 6
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: TestSignedBuffer
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 7
    functionsReached:
    - TestBuffer
    linkageType: ''
    returnType: void
    signature: "void TestSignedBuffer(string_view index_str, S1Angle buffer_radius,\n
      \                     double error_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:453,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 7
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Radians
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, PointShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:457,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 7
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Radians
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, SiblingPairShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:461,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 7
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, SiblingPairHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:465,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:465,1
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:466,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 7
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, Square)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:470,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 7
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, HollowSquare)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:475,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 7
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, ZigZagLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:481,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:481,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:484,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:485,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:486,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:486,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:487,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:488,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:489,1
    - Dst: make_unique<S2Loop::Shape>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:489,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:489,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:490,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 6
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2::GetFrame
    - S2Fractal::MakeLoop
    - S2Point
    - S2Fractal::set_fractal_dimension
    - TestBuffer
    - S1Angle::Degrees
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2Loop::Shape>
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, Fractals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:498,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:499,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:499,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:500,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:500,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:504,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:504,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:505,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:505,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:506,1
    - Dst: S2LaxClosedPolylineShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 508
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2CellId::ToPoint
    - DoBuffer
    - EXPECT_TRUE
    - S1Angle::Radians
    - GetValue
    - S2LaxClosedPolylineShape
    - S2CellId::next
    - S2CellId::Begin
    - S2CellId::End
    - AddShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, S2Curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignedBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:522,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:522,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:529,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:529,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:530,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:530,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:531,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:531,1
    - Dst: TestBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:532,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 513
    functionDepth: 7
    functionLinenumber: 513
    functionLinenumberEnd: 534
    functionName: TestRadiiAndErrorFractions
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 4
    functionsReached:
    - TestSignedBuffer
    - S1Angle::Radians
    - TestBuffer
    linkageType: ''
    returnType: void
    signature: void TestRadiiAndErrorFractions(string_view index_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRadiiAndErrorFractions
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 8
    functionLinenumber: 538
    functionLinenumberEnd: 540
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestRadiiAndErrorFractions
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, RadiiAndErrorFractionCoverageSinglePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRadiiAndErrorFractions
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 8
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestRadiiAndErrorFractions
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, RadiiAndErrorFractionCoverageZigZagPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRadiiAndErrorFractions
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 8
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestRadiiAndErrorFractions
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, RadiiAndErrorFractionCoverageTriangleWithHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRadiiAndErrorFractions
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 8
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - TestRadiiAndErrorFractions
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, RadiiAndErrorFractionCoverageTriangleTwoLongEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 568
    functionName: TestBufferPolyline::GetEdgeAxis
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 2
    functionsReached:
    - S2::RobustCrossProd
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetEdgeAxis(const S2Point& a, const S2Point& b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:575,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:582,1
    - Dst: S2::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:587,1
    - Dst: S2::IsInteriorDistanceLess
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:589,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:590,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:591,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 2
    argNames:
    - ' p'
    - expect_contained
    argTypes:
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 595
    functionName: TestBufferPolyline::PointBufferingUncertain
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 1
    functionsReached:
    - s2pred::Sign
    - size
    - S2::IsInteriorDistanceLess
    - S2::IsDistanceLess
    - S1ChordAngle
    linkageType: ''
    returnType: bool
    signature: bool PointBufferingUncertain(const S2Point& p, bool expect_contained)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:598,1
    - Dst: TestBufferPolyline::PointBufferingUncertain
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:601,1
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' p'
    - ' dir'
    - expect_contained
    argTypes:
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: TestBufferPolyline::TestPoint
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 2
    functionsReached:
    - EXPECT_EQ
    - TestBufferPolyline::PointBufferingUncertain
    - S2::GetPointOnRay
    - S2ContainsPointQuery
    linkageType: ''
    returnType: void
    signature: void TestPoint(const S2Point& p, const S2Point& dir, bool expect_contained)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:609,1
    - Dst: TestBufferPolyline::TestPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' p'
    - ' start'
    - ' end'
    - expect_contained
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 4
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: TestBufferPolyline::TestVertexArc
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 2
    functionsReached:
    - TestBufferPolyline::TestPoint
    - S2::Interpolate
    linkageType: ''
    returnType: void
    signature: "void TestVertexArc(const S2Point& p, const S2Point& start, const S2Point&
      end,\n                     bool expect_contained)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:617,1
    - Dst: TestBufferPolyline::TestPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' ba_axis'
    - ' a'
    - ' b'
    - expect_contained
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: TestBufferPolyline::TestEdgeArc
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 2
    functionsReached:
    - TestBufferPolyline::TestPoint
    - S2::Interpolate
    linkageType: ''
    returnType: void
    signature: "void TestEdgeArc(const S2Point& ba_axis, const S2Point& a, const S2Point&
      b,\n                   bool expect_contained)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBufferPolyline::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:624,1
    - Dst: TestBufferPolyline::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:625,1
    - Dst: TestBufferPolyline::TestEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:626,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - expect_contained
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: TestBufferPolyline::TestEdgeAndVertex
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 1
    functionsReached:
    - TestBufferPolyline::TestEdgeArc
    - TestBufferPolyline::GetEdgeAxis
    - TestBufferPolyline::TestVertexArc
    linkageType: ''
    returnType: void
    signature: "void TestEdgeAndVertex(const S2Point& a, const S2Point& b, const S2Point&
      c,\n                         bool expect_contained)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:644,1
    - Dst: buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:645,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:646,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:647,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:647,1
    - Dst: end_cap_style
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:649,1
    - Dst: polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:650,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:651,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:651,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:652,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:652,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:654,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:655,1
    - Dst: s2textformat::MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:655,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:656,1
    - Dst: DoBuffer
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:656,1
    - Dst: AddShapeIndex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:657,1
    - Dst: TestHausdorffDistance
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:662,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:676,1
    - Dst: polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:680,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:681,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:681,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:681,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:684,1
    - Dst: TestBufferPolyline::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:686,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:687,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:688,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:689,1
    - Dst: TestBufferPolyline::TestEdgeAndVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:691,1
    - Dst: TestBufferPolyline::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:694,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:695,1
    - Dst: TestBufferPolyline::TestEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:696,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:697,1
    - Dst: TestBufferPolyline::TestVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:698,1
    - Dst: TestBufferPolyline::TestEdgeAndVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:700,1
    - Dst: TestBufferPolyline::TestEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:703,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - input_str
    - ' options'
    argTypes:
    - string_view
    - S2BufferOperation::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 642
    functionDepth: 6
    functionLinenumber: 642
    functionLinenumberEnd: 704
    functionName: TestBufferPolyline::TestBufferPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - end
    - TestBufferPolyline::TestEdgeAndVertex
    - TestBufferPolyline::GetEdgeAxis
    - begin
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    - s2textformat::MakeLaxPolylineOrDie
    - AddShapeIndex
    - end_cap_style
    - MutableS2ShapeIndex::Add
    - max_error
    - DoBuffer
    - std::reverse
    - buffer_radius
    - s2textformat::ParsePointsOrDie
    - S2Point::CrossProd
    - TestBufferPolyline::TestVertexArc
    - max
    - S1Angle::Zero
    - polyline_side
    - Add
    - size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1ChordAngle::Zero
    - TestHausdorffDistance
    - TestBufferPolyline::TestEdgeArc
    linkageType: ''
    returnType: void
    signature: "void TestBufferPolyline::TestBufferPolyline(\n    string_view input_str,
      const S2BufferOperation::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:707,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:712,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:712,1
    - Dst: S2BufferOperation::Options::set_polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:716,1
    - Dst: S2BufferOperation::Options::set_end_cap_style
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:717,1
    - Dst: TestBufferPolyline
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:718,1
    - Dst: TestBufferPolyline
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 722
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - S2BufferOperation::Options::set_polyline_side
    - TestBufferPolyline
    - S1Angle::Degrees
    - SCOPED_TRACE
    - S2BufferOperation::Options::set_end_cap_style
    linkageType: ''
    returnType: void
    signature: void TEST(S2BufferOperation, ZigZagPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:726,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:726,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:727,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:727,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:729,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:730,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:732,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:733,1
    - Dst: S2BufferOperation::AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:736,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:736,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:738,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:739,1
    - Dst: S2BufferOperation::Build
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 741
    functionName: BM_BufferPoints
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - string::begin
    - s2random::Point
    - StrCat
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2BufferOperation::Build
    - string::end
    - S2Testing::MetersToAngle
    - range
    - ABSL_CHECK
    - S2BufferOperation::AddPoint
    - absl::GetFlag
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void BM_BufferPoints(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:747,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:748,1
    - Dst: S2BufferOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:750,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:751,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:752,1
    - Dst: S2BufferOperation::Build
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' state'
    - loop
    - buffer_radius
    argTypes:
    - benchmark::State
    - S2PointLoopSpan
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 754
    functionName: BenchmarkBufferLoop
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 3
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2BufferOperation::Build
    - ABSL_CHECK
    - S2BufferOperation::AddLoop
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void BenchmarkBufferLoop(benchmark::State& state,\n                         S2PointLoopSpan
      loop, S1Angle buffer_radius)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:757,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:758,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:758,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:758,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:759,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:759,1
    - Dst: BenchmarkBufferLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: BM_BufferConvexLoop
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2Testing::MetersToAngle
    - range
    - BenchmarkBufferLoop
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void BM_BufferConvexLoop(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:766,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:767,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:767,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:767,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:768,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:768,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:768,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:769,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:769,1
    - Dst: BenchmarkBufferLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 771
    functionName: BM_BufferConcaveLoop
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - std::reverse
    - auto::end
    - S2Point
    - S2Testing::MetersToAngle
    - range
    - auto::begin
    - BenchmarkBufferLoop
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void BM_BufferConcaveLoop(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:779,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:779,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:780,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:780,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:783,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:784,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:785,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:785,1
    - Dst: auto::vertex
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:786,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:786,1
    - Dst: BenchmarkBufferLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' state'
    - num_edges
    - nominal_radius
    - dimension
    - buffer_radius
    argTypes:
    - benchmark::State
    - int
    - S1Angle
    - double
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 775
    functionDepth: 5
    functionLinenumber: 775
    functionLinenumberEnd: 788
    functionName: BenchmarkBufferFractal
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 2
    functionsReached:
    - string::begin
    - auto::vertex
    - StrCat
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - string::end
    - s2random::Frame
    - S2Fractal::set_fractal_dimension
    - BenchmarkBufferLoop
    - absl::GetFlag
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: "void BenchmarkBufferFractal(\n    benchmark::State& state, int num_edges,
      S1Angle nominal_radius,\n    double dimension, S1Angle buffer_radius)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkBufferFractal
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:791,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:792,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:792,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 790
    functionDepth: 6
    functionLinenumber: 790
    functionLinenumberEnd: 793
    functionName: BM_BufferLoDimFractal
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkBufferFractal
    - S1Angle::Degrees
    - range
    linkageType: ''
    returnType: void
    signature: void BM_BufferLoDimFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkBufferFractal
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:798,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:799,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:799,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2buffer_operation_test.cc:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 797
    functionDepth: 6
    functionLinenumber: 797
    functionLinenumberEnd: 800
    functionName: BM_BufferHiDimFractal
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkBufferFractal
    - S1Angle::Degrees
    - range
    linkageType: ''
    returnType: void
    signature: void BM_BufferHiDimFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: IdSetLexicon::IdSet::begin() const
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IdSetLexicon::Iterator
    signature: IdSetLexicon::Iterator IdSetLexicon::IdSet::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: IdSetLexicon::IdSet::end() const
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IdSetLexicon::Iterator
    signature: IdSetLexicon::Iterator IdSetLexicon::IdSet::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: IdSetLexicon::IdSet::size() const
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t IdSetLexicon::IdSet::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: IdSetLexicon::IdSet::IdSet()
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdSetLexicon::IdSet::IdSet()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: IdSetLexicon::IdSet::IdSet(Iterator begin, Iterator end)
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdSetLexicon::IdSet::IdSet(Iterator begin, Iterator end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - singleton_id
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: IdSetLexicon::IdSet::IdSet(int32_t singleton_id)
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdSetLexicon::IdSet::IdSet(int32_t singleton_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:179,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:180,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: IdSetLexicon::AddSingleton
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - Stats::max
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int32_t
    signature: int32_t IdSetLexicon::AddSingleton(int32_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: IdSetLexicon::EmptySetId
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t IdSetLexicon::EmptySetId()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:189,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:191,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:192,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:192,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:193,1
    - Dst: IdSetLexicon::AddInternal
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - FwdIterator
    - FwdIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: IdSetLexicon::Add
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - Stats::max
    - IdSetLexicon::AddInternal
    - push_back
    - clear
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int32_t
    signature: int32_t IdSetLexicon::Add(FwdIterator begin, FwdIterator end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:200,1
    - Dst: std::begin
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:200,1
    - Dst: std::end
      Src: /src/s2geometry/src/s2/id_set_lexicon.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: IdSetLexicon::Add
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.h
    functionUses: 1
    functionsReached:
    - std::end
    - std::begin
    - IdSetLexicon::Add
    linkageType: ''
    returnType: int32_t
    signature: int32_t IdSetLexicon::Add(const Container& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:53,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:56,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:56,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:58,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:59,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:60,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:61,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:61,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:63,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:64,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:65,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:66,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:67,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:67,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:68,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:71,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:73,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 74
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::AddEdge
    - input_edge_ids
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - Graph::LabelFetcher::Fetch
    - is_full_polygon_predicate
    - edges
    - vertices
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - options
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GraphCloningLayer, MakeIndependentCopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:79,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:80,1
    - Dst: make_unique<GraphAppendingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:80,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:81,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:83,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:84,1
    - Dst: make_unique<GraphAppendingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:84,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:85,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:86,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:87,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:88,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:89,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:90,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:91,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:91,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:92,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:92,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::AddEdge
    - GraphOptions
    - S2ShapeNestingQuery::Options::Options
    - EXPECT_TRUE
    - make_unique<GraphAppendingLayer>
    - vertex
    - edge
    - S2Builder::Build
    - EXPECT_EQ
    - vector::size
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GraphAppendingLayer, AppendsTwoGraphs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:97,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:99,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:105,1
    - Dst: make_unique<IndexMatchingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:105,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:106,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:108,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:108,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:110,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:111,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<IndexMatchingLayer>
    - auto::get
    - EXPECT_TRUE
    - dimension
    - S2Builder::AddShape
    - S2Builder::Build
    - s2textformat::MakeIndexOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexMatchingLayer, SameResult)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:117,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:119,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:124,1
    - Dst: make_unique<IndexMatchingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:124,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:125,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:126,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:128,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:129,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:130,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<IndexMatchingLayer>
    - S2Error::message
    - auto::get
    - S2Builder::AddShape
    - S2Builder::Build
    - EXPECT_EQ
    - S2Error::ok
    - s2textformat::MakeIndexOrDie
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexMatchingLayer, DifferentResult)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:53,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:56,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:56,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:58,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:59,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:60,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:61,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:61,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:63,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:64,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:65,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:66,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:67,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:67,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:68,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:71,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:73,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 74
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::AddEdge
    - input_edge_ids
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - Graph::LabelFetcher::Fetch
    - is_full_polygon_predicate
    - edges
    - vertices
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - options
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GraphCloningLayer, MakeIndependentCopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:79,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:80,1
    - Dst: make_unique<GraphAppendingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:80,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:81,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:83,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:84,1
    - Dst: make_unique<GraphAppendingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:84,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:85,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:86,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:87,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:88,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:89,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:90,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:91,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:91,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:92,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:92,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::AddEdge
    - GraphOptions
    - S2ShapeNestingQuery::Options::Options
    - EXPECT_TRUE
    - make_unique<GraphAppendingLayer>
    - vertex
    - edge
    - S2Builder::Build
    - EXPECT_EQ
    - vector::size
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GraphAppendingLayer, AppendsTwoGraphs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:97,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:99,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:105,1
    - Dst: make_unique<IndexMatchingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:105,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:106,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:108,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:108,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:110,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:111,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<IndexMatchingLayer>
    - auto::get
    - EXPECT_TRUE
    - dimension
    - S2Builder::AddShape
    - S2Builder::Build
    - s2textformat::MakeIndexOrDie
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexMatchingLayer, SameResult)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:117,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:119,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:124,1
    - Dst: make_unique<IndexMatchingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:124,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:125,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:126,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:128,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:129,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:130,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2builderutil_testing_test.cc:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_testing_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<IndexMatchingLayer>
    - S2Error::message
    - auto::get
    - S2Builder::AddShape
    - S2Builder::Build
    - EXPECT_EQ
    - S2Error::ok
    - s2textformat::MakeIndexOrDie
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexMatchingLayer, DifferentResult)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2ShapeIndex*::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:83,1
    - Dst: s2shapeutil::HomogeneousShapeFactory<Shape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - decoder
    argTypes:
    - EncodedS2ShapeIndex*
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: DecodeHomegeneousShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::HomogeneousShapeFactory<Shape>
    - EncodedS2ShapeIndex*::Init
    linkageType: ''
    returnType: bool
    signature: bool DecodeHomegeneousShapeIndex(EncodedS2ShapeIndex* index, Decoder*
      decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:90,1
    - Dst: s2shapeutil::EncodeHomogeneousShapes<InShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:91,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:92,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:94,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:94,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:95,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:95,1
    - Dst: EncodedS2ShapeIndex::EncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:96,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:97,1
    - Dst: DecodeHomegeneousShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:98,1
    - Dst: options
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:98,1
    - Dst: EncodedS2ShapeIndex::options
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:99,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:100,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:103,1
    - Dst: EncodedS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:105,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:105,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:105,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:108,1
    - Dst: memcmp
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:108,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:108,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' expected'
    - expected_bytes
    argTypes:
    - MutableS2ShapeIndex
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: TestEncodedS2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - EncodedS2ShapeIndex::EncodedS2ShapeIndex
    - memcmp
    - Encoder::length
    - Encoder::base
    - DecodeHomegeneousShapeIndex
    - Encode
    - s2shapeutil::EncodeHomogeneousShapes<InShape>
    - ASSERT_TRUE
    - EXPECT_EQ
    - options
    - EncodedS2ShapeIndex::Encode
    - EncodedS2ShapeIndex::options
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: "void TestEncodedS2ShapeIndex(const MutableS2ShapeIndex& expected,\n
      \                            size_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:112,1
    - Dst: TestEncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestEncodedS2ShapeIndex
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2ShapeIndex, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:117,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:118,1
    - Dst: s2textformat::MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:118,1
    - Dst: TestEncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - TestEncodedS2ShapeIndex
    - s2textformat::MakeLaxPolylineOrDie
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2ShapeIndex, OneEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:137,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:138,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:138,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:139,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:139,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:140,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:142,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:142,1
    - Dst: TestEncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 146
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - make_unique<S2LaxPolygonShape>
    - S2Point
    - S2Loop::MakeRegularLoop
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - SCOPED_TRACE
    - TestEncodedS2ShapeIndex
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2ShapeIndex, RegularLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:164,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:164,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:166,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:167,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:167,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:171,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:171,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:173,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:173,1
    - Dst: TestEncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 178
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - StrCat
    - S2Point
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - SCOPED_TRACE
    - s2random::SamplePoint
    - make_unique<S2PointVectorShape>
    - TestEncodedS2ShapeIndex
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2ShapeIndex, OverlappingPointClouds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:192,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:192,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:194,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:195,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:196,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:196,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:198,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:199,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:203,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:203,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:205,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:205,1
    - Dst: TestEncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 210
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2random::Point
    - StrCat
    - S2::GetPointOnLine
    - S2Point
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - SCOPED_TRACE
    - s2random::SamplePoint
    - make_unique<S2LaxPolylineShape>
    - TestEncodedS2ShapeIndex
    - S2Cap::GetRadius
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2ShapeIndex, OverlappingPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:224,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:224,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:226,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:227,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:227,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:229,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:230,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:233,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:234,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:235,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:236,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:236,1
    - Dst: TestEncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 241
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - make_unique<S2LaxPolygonShape>
    - S2Point
    - S2Loop::MakeRegularLoop
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - SCOPED_TRACE
    - s2random::SamplePoint
    - s2random::LogUniform
    - TestEncodedS2ShapeIndex
    - max
    - S2Cap::GetRadius
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2ShapeIndex, OverlappingLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:250,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:251,1
    - Dst: get
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: IndexedLaxPolylineLayer::IndexedLaxPolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    - Options
    - get
    linkageType: ''
    returnType: void
    signature: "void IndexedLaxPolylineLayer(MutableS2ShapeIndex* index,\n                                   const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IndexedLaxPolylineLayer::graph_options
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: IndexedLaxPolylineLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 1
    functionsReached:
    - IndexedLaxPolylineLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IndexedLaxPolylineLayer::Build
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:259,1
    - Dst: S2Error*::ok
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:260,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:260,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:261,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - error
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: IndexedLaxPolylineLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 1
    functionsReached:
    - Add
    - num_vertices
    - IndexedLaxPolylineLayer::Build
    - make_unique<S2LaxPolylineShape>
    - S2Error*::ok
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:272,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:273,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:274,1
    - Dst: S2CellIdSnapFunction
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:275,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:277,1
    - Dst: make_unique<IndexedLaxPolylineLayer>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:277,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:279,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:280,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:280,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:281,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:281,1
    - Dst: S2Testing::AppendLoopVertices
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:283,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:285,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:287,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:288,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:288,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:288,1
    - Dst: TestEncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2::GetFrame
    - S2CellIdSnapFunction
    - S2Fractal::MakeLoop
    - S2Builder::AddPolyline
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - S2LatLng::FromDegrees
    - make_unique<IndexedLaxPolylineLayer>
    - ASSERT_TRUE
    - S2Builder::Build
    - absl::LogInfoStreamer
    - TestEncodedS2ShapeIndex
    - S2Testing::AppendLoopVertices
    - S2Testing::MakeTaggedSeedSeq
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2ShapeIndex, SnappedFractalPolylines)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:307,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:311,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:312,1
    - Dst: auto::next
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:312,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:313,1
    - Dst: auto::ToPoint
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:313,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:316,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:316,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:317,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:317,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:319,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:319,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:320,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:324,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:325,1
    - Dst: s2shapeutil::CompactEncodeTaggedShapes
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:325,1
    - Dst: MutableS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:326,1
    - Dst: assign
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:327,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:327,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:327,1
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:329,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:329,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:330,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:331,1
    - Dst: s2shapeutil::LazyDecodeShapeFactory
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 332
    functionName: LazyDecodeTest::LazyDecodeTest
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - auto::ToPoint
    - make_unique<S2LaxPolygonShape>
    - Encoder::length
    - assign
    - auto::next
    - ABSL_CHECK
    - s2shapeutil::LazyDecodeShapeFactory
    - make_unique<S2PointVectorShape>
    - MutableS2ShapeIndex::Encode
    - MutableS2ShapeIndex::Add
    - vector::push_back
    - Init
    - std::move
    - make_unique<S2LaxPolylineShape>
    - Encoder::Encoder
    - size
    - data
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - Encoder::base
    - S2CellId::Begin
    - S2CellId::End
    - s2shapeutil::CompactEncodeTaggedShapes
    linkageType: ''
    returnType: void
    signature: void LazyDecodeTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Minimize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: LazyDecodeTest::WriteOp
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - Minimize
    linkageType: ''
    returnType: void
    signature: void WriteOp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_random::SharedBitGen::SharedBitGen
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:339,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: LazyDecodeTest::ReadOp
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::FindClosestEdge
    - util_random::SharedBitGen::SharedBitGen
    linkageType: ''
    returnType: void
    signature: void ReadOp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LazyDecodeTest::LazyDecodeTest
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:356,1
    - Dst: LazyDecodeTest::Run
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - LazyDecodeTest::LazyDecodeTest
    - LazyDecodeTest::Run
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2ShapeIndex, LazyDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:366,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:367,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:367,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:368,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:369,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:369,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:370,1
    - Dst: MutableS2ShapeIndex::Release
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:371,1
    - Dst: absl::HexStringToBytes
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:376,1
    - Dst: string::data
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:379,1
    - Dst: string::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:379,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:380,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:381,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:382,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:382,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 385
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - s2shapeutil::FullDecodeShapeFactory
    - MutableS2ShapeIndex::Release
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - absl::HexStringToBytes
    - string::data
    - string::length
    - MutableS2ShapeIndex::Init
    - ASSERT_TRUE
    - make_unique<S2Polyline::OwningShape>
    - s2textformat::MakePolylineOrDie
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2ShapeIndex, JavaByteCompatibility)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:404,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:405,1
    - Dst: absl::call_once
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:408,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:410,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:410,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:411,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:411,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:418,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:419,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:419,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:418,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:425,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:426,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:427,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:427,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:428,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:428,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:433,1
    - Dst: S2Testing::ConcentricLoopsPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:434,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:434,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:438,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:442,1
    - Dst: S2Polygon*::InitToSnapped
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - type
    - snapped
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 393
    functionDepth: 5
    functionLinenumber: 393
    functionLinenumberEnd: 451
    functionName: GetBenchmarkPolygon
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - string::end
    - S2Point
    - ABSL_LOG
    - string::begin
    - s2random::Frame
    - ABSL_CHECK_GE
    - S2Polygon::S2Polygon
    - S2Polygon*::InitToSnapped
    - std::move
    - S2Testing::ConcentricLoopsPolygon
    - S2Testing::KmToAngle
    - ABSL_CHECK_LT
    - absl::call_once
    - StrCat
    - S2Loop::MakeRegularLoop
    - absl::GetFlag
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon * GetBenchmarkPolygon(int type, bool snapped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:457,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:457,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: GetBenchmarkPolygon
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 1
    functionsReached:
    - GetBenchmarkPolygon
    - range
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon * GetBenchmarkPolygon(const benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unique_ptr<S2Polygon>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:467,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 6
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: GetMutableBenchmarkPolygon
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - GetBenchmarkPolygon
    - unique_ptr<S2Polygon>
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: "unique_ptr<S2Polygon> GetMutableBenchmarkPolygon(\n    const benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::call_once
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:480,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:483,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:484,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:489,1
    - Dst: range
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:490,1
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:492,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 473
    functionDepth: 6
    functionLinenumber: 473
    functionLinenumberEnd: 497
    functionName: GetLaxBenchmarkPolygon
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - absl::call_once
    - S2LaxPolygonShape::S2LaxPolygonShape
    - ABSL_CHECK_LT
    - ABSL_CHECK_GE
    - range
    - GetBenchmarkPolygon
    linkageType: ''
    returnType: S2LaxPolygonShape
    signature: S2LaxPolygonShape * GetLaxBenchmarkPolygon(const benchmark::State&
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::ArgPair
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - benchmark
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: BenchmarkArgsSnapped
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::ArgPair
    linkageType: ''
    returnType: void
    signature: void BenchmarkArgsSnapped(benchmark::internal::Benchmark* benchmark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkArgsSnapped
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:511,1
    - Dst: BenchmarkArgsSnapped
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - benchmark
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: BenchmarkArgs
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkArgsSnapped
    linkageType: ''
    returnType: void
    signature: void BenchmarkArgs(benchmark::internal::Benchmark* benchmark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:517,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:518,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:518,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:518,1
    - Dst: auto::num_loops
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:519,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:521,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:522,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:522,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 516
    functionDepth: 6
    functionLinenumber: 516
    functionLinenumberEnd: 525
    functionName: BM_MutableIndexBuildDestruct
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polygon::Shape>
    - StrCat
    - MutableS2ShapeIndex::ForceBuild
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - auto::num_loops
    - SetLabel
    - GetBenchmarkPolygon
    - MutableS2ShapeIndex::Add
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void BM_MutableIndexBuildDestruct(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:530,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:532,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:533,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:533,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:533,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:534,1
    - Dst: s2shapeutil::FastEncodeTaggedShapes
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:534,1
    - Dst: MutableS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:535,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:538,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:538,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:539,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:540,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:541,1
    - Dst: s2shapeutil::LazyDecodeShapeFactory
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 529
    functionDepth: 6
    functionLinenumber: 529
    functionLinenumberEnd: 543
    functionName: BM_MutableIndexDecodeDestruct
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Encode
    - make_unique<S2LaxPolygonShape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ABSL_CHECK
    - Encoder::length
    - s2shapeutil::LazyDecodeShapeFactory
    - Encoder::base
    - MutableS2ShapeIndex::Init
    - Encoder::Encoder
    - s2shapeutil::FastEncodeTaggedShapes
    - GetBenchmarkPolygon
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_MutableIndexDecodeDestruct(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:548,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:550,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:551,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:551,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:551,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:552,1
    - Dst: s2shapeutil::FastEncodeTaggedShapes
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:552,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:553,1
    - Dst: MutableS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:554,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:555,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:555,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:556,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:556,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:557,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:560,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:560,1
    - Dst: EncodedS2ShapeIndex::EncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:561,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:562,1
    - Dst: EncodedS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:563,1
    - Dst: s2shapeutil::LazyDecodeShapeFactory
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 547
    functionDepth: 6
    functionLinenumber: 547
    functionLinenumberEnd: 565
    functionName: BM_EncodedIndexInitDestruct
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2ShapeIndex::Init
    - EncodedS2ShapeIndex::EncodedS2ShapeIndex
    - MutableS2ShapeIndex::Encode
    - StrCat
    - make_unique<S2LaxPolygonShape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ABSL_CHECK
    - Encoder::length
    - s2shapeutil::LazyDecodeShapeFactory
    - Encoder::base
    - Encoder::Encoder
    - SetLabel
    - s2shapeutil::FastEncodeTaggedShapes
    - GetBenchmarkPolygon
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_EncodedIndexInitDestruct(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:570,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:571,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:572,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:572,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:572,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:574,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:574,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:575,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:576,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 569
    functionDepth: 6
    functionLinenumber: 569
    functionLinenumberEnd: 578
    functionName: BM_S2PolygonDecodeDestructSnapped
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - ABSL_CHECK
    - Encoder::length
    - S2Polygon::Decode
    - Encoder::base
    - SetLabel
    - S2Polygon::S2Polygon
    - GetBenchmarkPolygon
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_S2PolygonDecodeDestructSnapped(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:585,1
    - Dst: GetLaxBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:586,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:588,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:588,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:588,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:590,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:590,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:591,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:592,1
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 7
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: BM_LaxPolygonDecodeDestructSnapped
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - S2LaxPolygonShape::S2LaxPolygonShape
    - S2LaxPolygonShape::Init
    - GetLaxBenchmarkPolygon
    - ABSL_CHECK
    - Encoder::length
    - Encoder::base
    - SetLabel
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: "void BM_LaxPolygonDecodeDestructSnapped(\n    benchmark::State& state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:601,1
    - Dst: GetLaxBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:602,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:604,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:604,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:604,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:606,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:606,1
    - Dst: EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:607,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:608,1
    - Dst: EncodedS2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 599
    functionDepth: 7
    functionLinenumber: 599
    functionLinenumberEnd: 610
    functionName: BM_EncodedPolygonInitDestructSnapped
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - GetLaxBenchmarkPolygon
    - ABSL_CHECK
    - Encoder::length
    - Encoder::base
    - SetLabel
    - EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
    - EncodedS2LaxPolygonShape::Init
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: "void BM_EncodedPolygonInitDestructSnapped(\n    benchmark::State&
      state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::OwningShape::num_edges
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:616,1
    - Dst: S2Polygon::OwningShape::edge
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 621
    functionName: BM_S2PolygonGetEdge
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - S2Polygon::OwningShape::edge
    - S2Polygon::OwningShape::num_edges
    linkageType: ''
    returnType: void
    signature: void BM_S2PolygonGetEdge(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetLaxBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:625,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:626,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:628,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 7
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: BM_LaxPolygonGetEdge
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - GetLaxBenchmarkPolygon
    - edge
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_LaxPolygonGetEdge(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:637,1
    - Dst: GetLaxBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:638,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:640,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:640,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:640,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:641,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:641,1
    - Dst: EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:642,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:643,1
    - Dst: EncodedS2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:643,1
    - Dst: EncodedS2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:644,1
    - Dst: EncodedS2LaxPolygonShape::edge
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 636
    functionDepth: 7
    functionLinenumber: 636
    functionLinenumberEnd: 649
    functionName: BM_EncodedPolygonGetEdge
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - GetLaxBenchmarkPolygon
    - EncodedS2LaxPolygonShape::num_edges
    - ABSL_CHECK
    - Encoder::length
    - Encoder::base
    - SetLabel
    - EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
    - EncodedS2LaxPolygonShape::edge
    - EncodedS2LaxPolygonShape::Init
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void BM_EncodedPolygonGetEdge(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:655,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:656,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:657,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:657,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:658,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:659,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:661,1
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 654
    functionDepth: 6
    functionLinenumber: 654
    functionLinenumberEnd: 665
    functionName: BM_ContainsPointMutableIndexS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - make_unique<S2Polygon::Shape>
    - MutableS2ShapeIndex::ForceBuild
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ContainsPointQuery
    - GetBenchmarkPolygon
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_ContainsPointMutableIndexS2Polygon(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:673,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:675,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:676,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:676,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:676,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:677,1
    - Dst: s2shapeutil::CompactEncodeTaggedShapes
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:677,1
    - Dst: MutableS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:678,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:680,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:680,1
    - Dst: EncodedS2ShapeIndex::EncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:681,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:682,1
    - Dst: EncodedS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:683,1
    - Dst: s2shapeutil::LazyDecodeShapeFactory
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:683,1
    - Dst: EncodedS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:684,1
    - Dst: EncodedS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:686,1
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:687,1
    - Dst: EncodedS2ShapeIndex::Minimize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 672
    functionDepth: 6
    functionLinenumber: 672
    functionLinenumberEnd: 695
    functionName: BM_ContainsPointEncodedIndexPolygon
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2ShapeIndex::Init
    - EncodedS2ShapeIndex::EncodedS2ShapeIndex
    - s2shapeutil::CompactEncodeTaggedShapes
    - EncodedS2ShapeIndex::Minimize
    - make_unique<S2LaxPolygonShape>
    - EncodedS2ShapeIndex::shape
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ABSL_CHECK
    - Encoder::length
    - s2shapeutil::LazyDecodeShapeFactory
    - Encoder::base
    - Encoder::Encoder
    - S2ContainsPointQuery
    - MutableS2ShapeIndex::Encode
    - GetBenchmarkPolygon
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_ContainsPointEncodedIndexPolygon(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:701,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:702,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:703,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:703,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:704,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:705,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:708,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:709,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:709,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 700
    functionDepth: 6
    functionLinenumber: 700
    functionLinenumberEnd: 714
    functionName: BM_VertexDistanceMutableIndexS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2::Ortho
    - S2ClosestEdgeQuery::GetDistance
    - make_unique<S2Polygon::Shape>
    - MutableS2ShapeIndex::ForceBuild
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - Normalize
    - GetBenchmarkPolygon
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_VertexDistanceMutableIndexS2Polygon(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:722,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:724,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:725,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:725,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:725,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:726,1
    - Dst: s2shapeutil::CompactEncodeTaggedShapes
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:726,1
    - Dst: MutableS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:727,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:729,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:729,1
    - Dst: EncodedS2ShapeIndex::EncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:730,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:731,1
    - Dst: EncodedS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:732,1
    - Dst: s2shapeutil::LazyDecodeShapeFactory
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:732,1
    - Dst: EncodedS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:733,1
    - Dst: EncodedS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:736,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:737,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:737,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:739,1
    - Dst: EncodedS2ShapeIndex::Minimize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 721
    functionDepth: 6
    functionLinenumber: 721
    functionLinenumberEnd: 747
    functionName: BM_VertexDistanceEncodedIndexPolygon
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2ShapeIndex::Init
    - EncodedS2ShapeIndex::EncodedS2ShapeIndex
    - s2shapeutil::CompactEncodeTaggedShapes
    - S2::Ortho
    - S2ClosestEdgeQuery::GetDistance
    - EncodedS2ShapeIndex::Minimize
    - make_unique<S2LaxPolygonShape>
    - EncodedS2ShapeIndex::shape
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ABSL_CHECK
    - Encoder::length
    - s2shapeutil::LazyDecodeShapeFactory
    - Encoder::base
    - Normalize
    - Encoder::Encoder
    - MutableS2ShapeIndex::Encode
    - GetBenchmarkPolygon
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_VertexDistanceEncodedIndexPolygon(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:755,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:756,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:758,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:758,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:759,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:760,1
    - Dst: S2Polygon::Decode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:760,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:761,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:762,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:762,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:764,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:764,1
    - Dst: S2Polygon::loop
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 753
    functionDepth: 6
    functionLinenumber: 753
    functionLinenumberEnd: 766
    functionName: BM_DecodePolygonBuildIndexContainsPointSnapped
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polygon::Shape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ABSL_CHECK
    - Encoder::length
    - S2Polygon::Decode
    - Encoder::base
    - S2Polygon::S2Polygon
    - MutableS2ShapeIndex::Add
    - S2ContainsPointQuery::Contains
    - benchmark::DoNotOptimize
    - GetBenchmarkPolygon
    - Encoder::Encoder
    - S2Polygon::loop
    linkageType: ''
    returnType: void
    signature: "void BM_DecodePolygonBuildIndexContainsPointSnapped(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:773,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:775,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:776,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:777,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:777,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:778,1
    - Dst: s2shapeutil::CompactEncodeTaggedShapes
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:778,1
    - Dst: MutableS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:779,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:782,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:782,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:783,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:784,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:785,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:785,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:787,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:787,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 771
    functionDepth: 6
    functionLinenumber: 771
    functionLinenumberEnd: 789
    functionName: BM_DecodeIndexAndPolygonContainsPointSnapped
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - s2shapeutil::CompactEncodeTaggedShapes
    - make_unique<S2Polygon::Shape>
    - s2shapeutil::FullDecodeShapeFactory
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ABSL_CHECK
    - Encoder::length
    - Encoder::base
    - MutableS2ShapeIndex::Init
    - Encoder::Encoder
    - S2ContainsPointQuery::Contains
    - MutableS2ShapeIndex::Encode
    - benchmark::DoNotOptimize
    - GetBenchmarkPolygon
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void BM_DecodeIndexAndPolygonContainsPointSnapped(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:797,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:799,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:800,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:800,1
    - Dst: GetBenchmarkPolygon
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:800,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:801,1
    - Dst: s2shapeutil::CompactEncodeTaggedShapes
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:801,1
    - Dst: MutableS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:802,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:805,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:805,1
    - Dst: EncodedS2ShapeIndex::EncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:806,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:807,1
    - Dst: EncodedS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:808,1
    - Dst: s2shapeutil::LazyDecodeShapeFactory
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:808,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:810,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:810,1
    - Dst: EncodedS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 795
    functionDepth: 6
    functionLinenumber: 795
    functionLinenumberEnd: 812
    functionName: BM_EncodedIndexAndPolygonContainsPointSnapped
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2ShapeIndex::Init
    - EncodedS2ShapeIndex::EncodedS2ShapeIndex
    - s2shapeutil::CompactEncodeTaggedShapes
    - make_unique<S2LaxPolygonShape>
    - EncodedS2ShapeIndex::shape
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ABSL_CHECK
    - Encoder::length
    - s2shapeutil::LazyDecodeShapeFactory
    - Encoder::base
    - Encoder::Encoder
    - S2ContainsPointQuery::Contains
    - MutableS2ShapeIndex::Encode
    - benchmark::DoNotOptimize
    - GetBenchmarkPolygon
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void BM_EncodedIndexAndPolygonContainsPointSnapped(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: S2LaxLoopShape::S2LaxLoopShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LaxLoopShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: S2LaxLoopShape::num_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& vertex(int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: S2LaxLoopShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 2
    functionsReached:
    - S2LaxLoopShape::num_vertices
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: S2LaxLoopShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: S2LaxLoopShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 2
    functionsReached:
    - min
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: S2LaxLoopShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 1
    functionsReached:
    - Chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: S2LaxLoopShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: S2LaxClosedPolylineShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: S2LaxClosedPolylineShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 1
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2VertexIdLaxLoopShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: S2VertexIdLaxLoopShape::num_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: S2VertexIdLaxLoopShape::vertex_id
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t vertex_id(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex_id
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '& vertex(int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 0
    functionsReached:
    - vertex_id
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: S2VertexIdLaxLoopShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 2
    functionsReached:
    - S2VertexIdLaxLoopShape::num_vertices
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: S2VertexIdLaxLoopShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: S2VertexIdLaxLoopShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 2
    functionsReached:
    - min
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: S2VertexIdLaxLoopShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 1
    functionsReached:
    - Chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: S2VertexIdLaxLoopShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.h
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: S2RegionIntersection::S2RegionIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionIntersection()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~S2RegionIntersection() override
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2RegionIntersection() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_intersection.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: S2RegionIntersection::num_regions
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.h
    functionUses: 5
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_regions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/s2geometry/src/s2/s2region_intersection.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: S2RegionIntersection::region
    functionSourceFile: /src/s2geometry/src/s2/s2region_intersection.h
    functionUses: 5
    functionsReached:
    - get
    linkageType: ''
    returnType: S2Region
    signature: S2Region * region(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<unique_ptr<S2Region>>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:46,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:47,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:47,1
    - Dst: S2RegionUnion::GetCapBound
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:48,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:48,1
    - Dst: S2RegionUnion::GetRectBound
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:48,1
    - Dst: S2RegionUnion::Clone
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:49,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:52,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:53,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:53,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:54,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:55,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:55,1
    - Dst: make_unique<S2RegionUnion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:58,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:58,1
    - Dst: auto::Clone
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:62,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:63,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:66,1
    - Dst: unique_ptr::GetRectBound
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:67,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:68,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:68,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:70,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:71,1
    - Dst: unique_ptr::MayIntersect
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:71,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:72,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:74,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:74,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:75,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:75,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:76,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:76,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:76,1
    - Dst: unique_ptr::Clone
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:79,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:80,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:80,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:80,1
    - Dst: unique_ptr::Add
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:81,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:82,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:83,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:83,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:83,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:85,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:86,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:89,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:90,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 91
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - auto::reset
    - make_unique<S2PointRegion>
    - S2RegionCoverer::mutable_options
    - unique_ptr::MayIntersect
    - S2LatLngRect::Empty
    - unique_ptr::Contains
    - S2Cell::FromFace
    - vector::size
    - unique_ptr::Clone
    - S2RegionUnion::Clone
    - auto::Clone
    - S1Angle::Radians
    - S2RegionUnion::GetCapBound
    - EXPECT_EQ
    - vector::push_back
    - EXPECT_TRUE
    - make_unique<S2RegionUnion>
    - std::move
    - S2RegionUnion::GetRectBound
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::S2RegionCoverer
    - S2RegionUnion::num_regions
    - unique_ptr::GetRectBound
    - S2Cap::Empty
    - EXPECT_THAT
    - S2::LatLngRectApproxEquals
    - S2Cell::id
    - S2LatLng::FromDegrees
    - vector<unique_ptr<S2Region>>
    - EXPECT_FALSE
    - unique_ptr::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:95,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:96,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:96,1
    - Dst: S2RegionUnion::Clone
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:100,1
    - Dst: unique_ptr::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:101,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:101,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2RegionUnion::Clone
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2LatLng::FromDegrees
    - unique_ptr::Contains
    - EXPECT_EQ
    - unique_ptr::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, CloneResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:106,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:107,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:111,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:112,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:112,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, CopyConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:117,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:118,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:118,1
    - Dst: S2RegionUnion::S2RegionUnion
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:123,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:123,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:124,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:124,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2RegionUnion::S2RegionUnion
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, CopyAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:129,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:130,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:134,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:134,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:135,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:135,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, CopyAssignmentToSelfIsNoOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:140,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:141,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:145,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:145,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:146,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:146,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, MoveConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:151,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:152,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:152,1
    - Dst: S2RegionUnion::S2RegionUnion
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:155,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:157,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:158,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:158,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - std::move
    - EXPECT_TRUE
    - S2RegionUnion::S2RegionUnion
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, MoveAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<unique_ptr<S2Region>>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:46,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:47,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:47,1
    - Dst: S2RegionUnion::GetCapBound
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:48,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:48,1
    - Dst: S2RegionUnion::GetRectBound
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:48,1
    - Dst: S2RegionUnion::Clone
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:49,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:52,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:53,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:53,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:54,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:55,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:55,1
    - Dst: make_unique<S2RegionUnion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:58,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:58,1
    - Dst: auto::Clone
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:62,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:63,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:66,1
    - Dst: unique_ptr::GetRectBound
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:67,1
    - Dst: S2::LatLngRectApproxEquals
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:68,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:68,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:70,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:71,1
    - Dst: unique_ptr::MayIntersect
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:71,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:72,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:74,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:74,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:75,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:75,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:76,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:76,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:76,1
    - Dst: unique_ptr::Clone
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:79,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:80,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:80,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:80,1
    - Dst: unique_ptr::Add
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:81,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:82,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:83,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:83,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:83,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:85,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:86,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:89,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:90,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 91
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - auto::reset
    - make_unique<S2PointRegion>
    - S2RegionCoverer::mutable_options
    - unique_ptr::MayIntersect
    - S2LatLngRect::Empty
    - unique_ptr::Contains
    - S2Cell::FromFace
    - vector::size
    - unique_ptr::Clone
    - S2RegionUnion::Clone
    - auto::Clone
    - S1Angle::Radians
    - S2RegionUnion::GetCapBound
    - EXPECT_EQ
    - vector::push_back
    - EXPECT_TRUE
    - make_unique<S2RegionUnion>
    - std::move
    - S2RegionUnion::GetRectBound
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::S2RegionCoverer
    - S2RegionUnion::num_regions
    - unique_ptr::GetRectBound
    - S2Cap::Empty
    - EXPECT_THAT
    - S2::LatLngRectApproxEquals
    - S2Cell::id
    - S2LatLng::FromDegrees
    - vector<unique_ptr<S2Region>>
    - EXPECT_FALSE
    - unique_ptr::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:95,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:96,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:96,1
    - Dst: S2RegionUnion::Clone
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:100,1
    - Dst: unique_ptr::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:101,1
    - Dst: unique_ptr::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:101,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2RegionUnion::Clone
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2LatLng::FromDegrees
    - unique_ptr::Contains
    - EXPECT_EQ
    - unique_ptr::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, CloneResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:106,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:107,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:111,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:112,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:112,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, CopyConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:117,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:118,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:118,1
    - Dst: S2RegionUnion::S2RegionUnion
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:123,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:123,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:124,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:124,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2RegionUnion::S2RegionUnion
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, CopyAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:129,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:130,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:134,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:134,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:135,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:135,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, CopyAssignmentToSelfIsNoOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:140,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:141,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:145,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:145,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:146,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:146,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - EXPECT_TRUE
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, MoveConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:151,1
    - Dst: make_unique<S2PointRegion>
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:152,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:152,1
    - Dst: S2RegionUnion::S2RegionUnion
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:155,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:157,1
    - Dst: S2RegionUnion::num_regions
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:158,1
    - Dst: S2RegionUnion::Contains
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:158,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_union_test.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2PointRegion>
    - std::move
    - EXPECT_TRUE
    - S2RegionUnion::S2RegionUnion
    - S2RegionUnion::Contains
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2RegionUnion::num_regions
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionUnionTest, MoveAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:55,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:56,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:58,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:59,1
    - Dst: make_unique<LaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:59,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:60,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:62,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:62,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:64,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:65,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:66,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - input_strs
    - expected_str
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - string_view
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: TestS2LaxPolylineShape
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - make_unique<LaxPolylineLayer>
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - SCOPED_TRACE
    - S2Builder::AddShape
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2LaxPolylineShape::S2LaxPolylineShape
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2LaxPolylineShape(\n    absl::Span<const string_view> input_strs,
      string_view expected_str,\n    EdgeType edge_type,\n    const S2Builder::Options&
      options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:72,1
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:73,1
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_str
    argTypes:
    - absl::Span<const string_view>
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: TestS2LaxPolylineShape
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 1
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: "void TestS2LaxPolylineShape(\n    absl::Span<const string_view> input_strs,
      string_view expected_str,\n    const S2Builder::Options& options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: TestS2LaxPolylineShapeUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: void TestS2LaxPolylineShapeUnchanged(string_view input_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:84,1
    - Dst: LaxPolylineLayer::Options::edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:84,1
    - Dst: LaxPolylineLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:86,1
    - Dst: LaxPolylineLayer::Options::edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - LaxPolylineLayer::Options::edge_type
    - LaxPolylineLayer::Options::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayerOptionsTest, SetEdgeType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:96,1
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShapeUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, OneEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShapeUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, StraightLineWithBacktracking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:113,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:113,1
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - TestS2LaxPolylineShape
    - S2Builder::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, EarlyWalkTerminationWithEndLoop1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, EarlyWalkTerminationWithEndLoop2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShapeUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, SimpleLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShapeUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, ManyLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, UnorderedLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:161,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:162,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:162,1
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShape
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - S2Builder::Options::set_split_crossing_edges
    - S2Builder::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, SplitEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:171,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:172,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:174,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:175,1
    - Dst: make_unique<LaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:175,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:177,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:178,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:179,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:179,1
    - Dst: S2Builder::push_label
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:180,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:181,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:181,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:182,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:183,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:183,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:184,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:185,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:185,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:186,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:187,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:187,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:189,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:189,1
    - Dst: LaxPolylineLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:189,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:190,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:191,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:191,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:192,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 198
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - IdSetLexicon::id_set
    - vector::size
    - S2Error::S2Error
    - LaxPolylineLayer::LabelSetIds::size
    - EXPECT_EQ
    - S2Builder::StartLayer
    - MakeLaxPolylineOrDie
    - make_unique<LaxPolylineLayer>
    - S2LaxPolylineShape::S2LaxPolylineShape
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - S2Builder::push_label
    - size
    - S2Builder::clear_labels
    - S2Builder::AddShape
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, SimpleEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:201,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:202,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:203,1
    - Dst: make_unique<LaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:203,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:204,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:204,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:204,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:205,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:206,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:207,1
    - Dst: S2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:208,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:208,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:209,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:209,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<LaxPolylineLayer>
    - S2Builder::AddEdge
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - S2Point
    - S2LaxPolylineShape::num_vertices
    - S2LaxPolylineShape::vertex
    - S2Builder::Build
    - EXPECT_EQ
    - S2LaxPolylineShape::S2LaxPolylineShape
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, AntipodalVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:214,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:215,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:216,1
    - Dst: make_unique<IndexedLaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:216,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:218,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:218,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:219,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:220,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:221,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:221,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:222,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:224,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - MakeLaxPolylineOrDie
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - down_cast
    - S2Builder::AddShape
    - make_unique<IndexedLaxPolylineLayer>
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedLaxPolylineLayer, AddsShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:228,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:229,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:230,1
    - Dst: make_unique<IndexedLaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:230,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:231,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:232,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:233,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<IndexedLaxPolylineLayer>
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedLaxPolylineLayer, AddsEmptyShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:55,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:56,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:58,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:59,1
    - Dst: make_unique<LaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:59,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:60,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:62,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:62,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:64,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:65,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:66,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - input_strs
    - expected_str
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - string_view
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: TestS2LaxPolylineShape
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 7
    functionsReached:
    - MakeLaxPolylineOrDie
    - make_unique<LaxPolylineLayer>
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - SCOPED_TRACE
    - S2Builder::AddShape
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2LaxPolylineShape::S2LaxPolylineShape
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2LaxPolylineShape(\n    absl::Span<const string_view> input_strs,
      string_view expected_str,\n    EdgeType edge_type,\n    const S2Builder::Options&
      options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:72,1
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:73,1
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_str
    argTypes:
    - absl::Span<const string_view>
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: TestS2LaxPolylineShape
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 8
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: "void TestS2LaxPolylineShape(\n    absl::Span<const string_view> input_strs,
      string_view expected_str,\n    const S2Builder::Options& options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: TestS2LaxPolylineShapeUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 4
    functionsReached:
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: void TestS2LaxPolylineShapeUnchanged(string_view input_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:84,1
    - Dst: LaxPolylineLayer::Options::edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:84,1
    - Dst: LaxPolylineLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:86,1
    - Dst: LaxPolylineLayer::Options::edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - LaxPolylineLayer::Options::edge_type
    - LaxPolylineLayer::Options::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayerOptionsTest, SetEdgeType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:96,1
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShapeUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, OneEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShapeUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, StraightLineWithBacktracking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:113,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:113,1
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - TestS2LaxPolylineShape
    - S2Builder::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, EarlyWalkTerminationWithEndLoop1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, EarlyWalkTerminationWithEndLoop2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShapeUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, SimpleLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShapeUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShapeUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, ManyLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShape
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, UnorderedLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:161,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:162,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:162,1
    - Dst: TestS2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2LaxPolylineShape
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - S2Builder::Options::set_split_crossing_edges
    - S2Builder::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, SplitEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:171,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:172,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:174,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:175,1
    - Dst: make_unique<LaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:175,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:177,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:178,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:179,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:179,1
    - Dst: S2Builder::push_label
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:180,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:181,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:181,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:182,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:183,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:183,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:184,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:185,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:185,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:186,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:187,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:187,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:189,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:189,1
    - Dst: LaxPolylineLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:189,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:190,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:191,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:191,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:192,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 198
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - IdSetLexicon::id_set
    - vector::size
    - S2Error::S2Error
    - LaxPolylineLayer::LabelSetIds::size
    - EXPECT_EQ
    - S2Builder::StartLayer
    - MakeLaxPolylineOrDie
    - make_unique<LaxPolylineLayer>
    - S2LaxPolylineShape::S2LaxPolylineShape
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - S2Builder::push_label
    - size
    - S2Builder::clear_labels
    - S2Builder::AddShape
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, SimpleEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:201,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:202,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:203,1
    - Dst: make_unique<LaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:203,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:204,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:204,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:204,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:205,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:206,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:207,1
    - Dst: S2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:208,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:208,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:209,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:209,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<LaxPolylineLayer>
    - S2Builder::AddEdge
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - S2Point
    - S2LaxPolylineShape::num_vertices
    - S2LaxPolylineShape::vertex
    - S2Builder::Build
    - EXPECT_EQ
    - S2LaxPolylineShape::S2LaxPolylineShape
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(LaxPolylineLayer, AntipodalVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:214,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:215,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:216,1
    - Dst: make_unique<IndexedLaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:216,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:218,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:218,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:219,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:220,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:221,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:221,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:222,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:224,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - MakeLaxPolylineOrDie
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - down_cast
    - S2Builder::AddShape
    - make_unique<IndexedLaxPolylineLayer>
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedLaxPolylineLayer, AddsShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:228,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:229,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:230,1
    - Dst: make_unique<IndexedLaxPolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:230,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:231,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:232,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:233,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - MutableS2ShapeIndex::num_shape_ids
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<IndexedLaxPolylineLayer>
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedLaxPolylineLayer, AddsEmptyShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_max_cells
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:98,1
    - Dst: set_min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:99,1
    - Dst: set_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:100,1
    - Dst: set_level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: S2RegionTermIndexer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 0
    functionsReached:
    - set_max_level
    - set_max_cells
    - set_level_mod
    - set_min_level
    linkageType: ''
    returnType: void
    signature: void S2RegionTermIndexer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:105,1
    - Dst: absl::ascii_isalnum
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: S2RegionTermIndexer::Options::set_marker_character(char ch)
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 0
    functionsReached:
    - absl::ascii_isalnum
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2RegionTermIndexer::Options::set_marker_character(char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: S2RegionTermIndexer::S2RegionTermIndexer
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionTermIndexer::S2RegionTermIndexer(const Options& options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: S2RegionTermIndexer::S2RegionTermIndexer
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionTermIndexer::S2RegionTermIndexer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: S2RegionTermIndexer::~S2RegionTermIndexer()
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionTermIndexer::~S2RegionTermIndexer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: S2RegionTermIndexer::S2RegionTermIndexer
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2RegionTermIndexer::S2RegionTermIndexer(S2RegionTermIndexer&&)
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:126,1
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:126,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:128,1
    - Dst: marker
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:128,1
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - term_type
    - id
    - prefix
    argTypes:
    - TermType
    - S2CellId
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: S2RegionTermIndexer::GetTerm
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 0
    functionsReached:
    - marker
    - S2CellId::ToToken
    - absl::StrCat
    linkageType: ''
    returnType: string
    signature: "string S2RegionTermIndexer::GetTerm(TermType term_type, const S2CellId
      id,\n                                    string_view prefix) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:145,1
    - Dst: true_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:145,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:145,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:146,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:148,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:148,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:149,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:150,1
    - Dst: S2RegionTermIndexer::GetTerm
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:150,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' point'
    - prefix
    argTypes:
    - S2Point
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: S2RegionTermIndexer::GetIndexTerms
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 5
    functionsReached:
    - vector::push_back
    - level_mod
    - S2RegionTermIndexer::GetTerm
    - vector::reserve
    - true_max_level
    - S2CellId::parent
    - max_level
    - min_level
    linkageType: ''
    returnType: vector<string>
    signature: "vector<string> S2RegionTermIndexer::GetIndexTerms(const S2Point& point,\n
      \                                                 string_view prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:158,1
    - Dst: GetCovering
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:159,1
    - Dst: S2RegionTermIndexer::GetIndexTermsForCanonicalCovering
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' region'
    - prefix
    argTypes:
    - S2Region
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: S2RegionTermIndexer::GetIndexTerms
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 5
    functionsReached:
    - GetCovering
    - S2RegionTermIndexer::GetIndexTermsForCanonicalCovering
    - S2RegionTermIndexer::mutable_options
    linkageType: ''
    returnType: vector<string>
    signature: "vector<string> S2RegionTermIndexer::GetIndexTerms(const S2Region&
      region,\n                                                  string_view prefix)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:174,1
    - Dst: index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:174,1
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:176,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:177,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:177,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:182,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:182,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:183,1
    - Dst: true_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:184,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:188,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:189,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:189,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:190,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:190,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:191,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:191,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:191,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:195,1
    - Dst: S2RegionTermIndexer::GetTerm
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:195,1
    - Dst: optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:197,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:199,1
    - Dst: S2RegionTermIndexer::GetTerm
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:199,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:199,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:202,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:202,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:203,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:204,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:204,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:205,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:208,1
    - Dst: S2RegionTermIndexer::GetTerm
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:208,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - ' covering'
    - prefix
    argTypes:
    - S2CellUnion
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 213
    functionName: S2RegionTermIndexer::GetIndexTermsForCanonicalCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 1
    functionsReached:
    - vector::reserve
    - true_max_level
    - max_level
    - ABSL_DCHECK_GE
    - S2RegionTermIndexer::GetTerm
    - level_mod
    - S2RegionTermIndexer::mutable_options
    - ABSL_CHECK
    - optimize_for_space
    - parent
    - vector::push_back
    - level
    - S2CellId::None
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_LE
    - IsCanonical
    - S2CellId::level
    - index_contains_points_only
    - size
    - S2CellId::parent
    - min_level
    linkageType: ''
    returnType: vector<string>
    signature: "vector<string> S2RegionTermIndexer::GetIndexTermsForCanonicalCovering(\n
      \   const S2CellUnion& covering, string_view prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:221,1
    - Dst: index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:221,1
    - Dst: true_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:223,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:223,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:224,1
    - Dst: true_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:227,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:228,1
    - Dst: S2RegionTermIndexer::GetTerm
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:228,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:228,1
    - Dst: index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:229,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:232,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:232,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:233,1
    - Dst: S2RegionTermIndexer::GetTerm
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:233,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' point'
    - prefix
    argTypes:
    - S2Point
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 236
    functionName: S2RegionTermIndexer::GetQueryTerms
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 7
    functionsReached:
    - vector::push_back
    - level_mod
    - S2RegionTermIndexer::GetTerm
    - vector::reserve
    - true_max_level
    - S2CellId::parent
    - index_contains_points_only
    - min_level
    linkageType: ''
    returnType: vector<string>
    signature: "vector<string> S2RegionTermIndexer::GetQueryTerms(const S2Point& point,\n
      \                                                 string_view prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:241,1
    - Dst: GetCovering
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:242,1
    - Dst: S2RegionTermIndexer::GetQueryTermsForCanonicalCovering
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' region'
    - prefix
    argTypes:
    - S2Region
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: S2RegionTermIndexer::GetQueryTerms
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 7
    functionsReached:
    - S2RegionTermIndexer::GetQueryTermsForCanonicalCovering
    - GetCovering
    - S2RegionTermIndexer::mutable_options
    linkageType: ''
    returnType: vector<string>
    signature: "vector<string> S2RegionTermIndexer::GetQueryTerms(const S2Region&
      region,\n                                                  string_view prefix)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionTermIndexer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:251,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:252,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:252,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:255,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:255,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:256,1
    - Dst: true_max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:257,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:261,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:262,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:262,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:263,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:263,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:264,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:264,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:264,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:267,1
    - Dst: S2RegionTermIndexer::GetTerm
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:267,1
    - Dst: index_contains_points_only
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:270,1
    - Dst: optimize_for_space
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:275,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:276,1
    - Dst: S2RegionTermIndexer::GetTerm
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:276,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:279,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:279,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:280,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:281,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:281,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:282,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:285,1
    - Dst: S2RegionTermIndexer::GetTerm
      Src: /src/s2geometry/src/s2/s2region_term_indexer.cc:285,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - ' covering'
    - prefix
    argTypes:
    - S2CellUnion
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 290
    functionName: S2RegionTermIndexer::GetQueryTermsForCanonicalCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_term_indexer.cc
    functionUses: 1
    functionsReached:
    - vector::reserve
    - true_max_level
    - max_level
    - ABSL_DCHECK_GE
    - S2RegionTermIndexer::GetTerm
    - level_mod
    - S2RegionTermIndexer::mutable_options
    - ABSL_CHECK
    - optimize_for_space
    - parent
    - vector::push_back
    - level
    - S2CellId::None
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_LE
    - IsCanonical
    - S2CellId::level
    - index_contains_points_only
    - size
    - S2CellId::parent
    - min_level
    linkageType: ''
    returnType: vector<string>
    signature: "vector<string> S2RegionTermIndexer::GetQueryTermsForCanonicalCovering(\n
      \   const S2CellUnion& covering, string_view prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: FaceRun
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FaceRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - initial_face
    - initial_count
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: FaceRun
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FaceRun(int initial_face, int initial_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2point_compression.cc:57,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:62,1
    - Dst: absl::implicit_cast<int64_t>
      Src: /src/s2geometry/src/s2/s2point_compression.cc:63,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:64,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 65
    functionsReached:
    - absl::implicit_cast<int64_t>
    - Encoder*::put_varint64
    - Encoder*::Ensure
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder* encoder) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:69,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2point_compression.cc:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: Decode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 89
    functionsReached:
    - static_cast<uint64_t>
    - Decoder*::get_varint64
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Faces::Faces
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Faces()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: Faces::GetIterator
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iterator
    signature: Iterator GetIterator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Faces::Faces
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Faces(const Faces&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: operator=(const Faces&)
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Faces&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2point_compression.cc:130,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2point_compression.cc:130,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2point_compression.cc:131,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2point_compression.cc:133,1
    - Dst: FaceRun
      Src: /src/s2geometry/src/s2/s2point_compression.cc:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: Faces::AddFace
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - back
    - FaceRun
    - push_back
    - empty
    linkageType: ''
    returnType: void
    signature: void Faces::AddFace(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Faces::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: Faces::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 1
    functionsReached:
    - Faces::Encode
    linkageType: ''
    returnType: void
    signature: void Faces::Encode(Encoder* encoder) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FaceRun::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:145,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2point_compression.cc:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - num_vertices
    - decoder
    argTypes:
    - int
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: Faces::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - FaceRun::Decode
    - push_back
    linkageType: ''
    returnType: bool
    signature: bool Faces::Decode(int num_vertices, Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' faces'
    argTypes:
    - Faces
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Faces::Iterator::Iterator(const Faces& faces)
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Faces::Iterator::Iterator(const Faces& faces)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:157,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:157,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: Faces::Iterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - size
    - ABSL_DCHECK_NE
    linkageType: ''
    returnType: int
    signature: int Faces::Iterator::Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2point_compression.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - level
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: STtoPiQi
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_UNUSED
    signature: ABSL_ATTRIBUTE_UNUSED STtoPiQi(double s, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2point_compression.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - si
    - level
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: SiTitoPiQi
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: int
    signature: int SiTitoPiQi(unsigned int si, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pi
    - level
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: PiQitoST
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PiQitoST(int pi, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression.cc:203,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2point_compression.cc:204,1
    - Dst: PiQitoST
      Src: /src/s2geometry/src/s2/s2point_compression.cc:204,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2point_compression.cc:205,1
    - Dst: PiQitoST
      Src: /src/s2geometry/src/s2/s2point_compression.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - face
    - pi
    - qi
    - level
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: FacePiQitoXYZ
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - S2::STtoUV
    - S2::FaceUVtoXYZ
    - PiQitoST
    linkageType: ''
    returnType: S2Point
    signature: S2Point FacePiQitoXYZ(int face, int pi, int qi, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NthDerivativeCoder*::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:214,1
    - Dst: NthDerivativeCoder*::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:215,1
    - Dst: util_bits::InterleaveUint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:217,1
    - Dst: LittleEndian::FromHost64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:221,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2point_compression.cc:224,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/s2point_compression.cc:225,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:226,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' vertex_pi_qi'
    - level
    - pi_coder
    - qi_coder
    - encoder
    argTypes:
    - pair<int, int>
    - int
    - NthDerivativeCoder*
    - NthDerivativeCoder*
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 227
    functionName: EncodeFirstPointFixedLength
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - NthDerivativeCoder*::Encode
    - Encoder*::putn
    - util_bits::InterleaveUint32
    - Encoder*::Ensure
    - LittleEndian::FromHost64
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: "void EncodeFirstPointFixedLength(const pair<int, int>& vertex_pi_qi,\n
      \                                int level,\n                                 NthDerivativeCoder*
      pi_coder,\n                                 NthDerivativeCoder* qi_coder,\n
      \                                Encoder* encoder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZigZagEncode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:237,1
    - Dst: NthDerivativeCoder*::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:237,1
    - Dst: ZigZagEncode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:239,1
    - Dst: NthDerivativeCoder*::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:239,1
    - Dst: util_bits::InterleaveUint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:242,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2point_compression.cc:245,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:246,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:247,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' vertex_pi_qi'
    - level
    - pi_coder
    - qi_coder
    - encoder
    argTypes:
    - pair<int, int>
    - int
    - NthDerivativeCoder*
    - NthDerivativeCoder*
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: EncodePointCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - Encoder*::put_varint64
    - NthDerivativeCoder*::Encode
    - util_bits::InterleaveUint32
    - Encoder*::avail
    - Encoder*::Ensure
    - ABSL_DCHECK_GE
    - ZigZagEncode
    linkageType: ''
    returnType: void
    signature: "void EncodePointCompressed(const pair<int, int>& vertex_pi_qi,\n                           int
      level,\n                           NthDerivativeCoder* pi_coder,\n                           NthDerivativeCoder*
      qi_coder,\n                           Encoder* encoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Span<const pair<int, int>>::size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:254,1
    - Dst: EncodeFirstPointFixedLength
      Src: /src/s2geometry/src/s2/s2point_compression.cc:260,1
    - Dst: EncodePointCompressed
      Src: /src/s2geometry/src/s2/s2point_compression.cc:263,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:268,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - vertices_pi_qi
    - level
    - encoder
    argTypes:
    - Span<const pair<int, int>>
    - int
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: EncodePointsCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - EncodeFirstPointFixedLength
    - EncodePointCompressed
    - Span<const pair<int, int>>::size
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: "void EncodePointsCompressed(Span<const pair<int, int>> vertices_pi_qi,\n
      \                           int level, Encoder* encoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:277,1
    - Dst: Decoder*::getn
      Src: /src/s2geometry/src/s2/s2point_compression.cc:279,1
    - Dst: LittleEndian::ToHost64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:282,1
    - Dst: util_bits::DeinterleaveUint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:285,1
    - Dst: NthDerivativeCoder*::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:287,1
    - Dst: NthDerivativeCoder*::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - decoder
    - level
    - pi_coder
    - qi_coder
    - vertex_pi_qi
    argTypes:
    - Decoder*
    - int
    - NthDerivativeCoder*
    - NthDerivativeCoder*
    - pair<int, int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: DecodeFirstPointFixedLength
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - LittleEndian::ToHost64
    - NthDerivativeCoder*::Decode
    - util_bits::DeinterleaveUint32
    - Decoder*::getn
    - Decoder*::avail
    linkageType: ''
    returnType: bool
    signature: "bool DecodeFirstPointFixedLength(Decoder* decoder,\n                                 int
      level,\n                                 NthDerivativeCoder* pi_coder,\n                                 NthDerivativeCoder*
      qi_coder,\n                                 pair<int, int>* vertex_pi_qi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:299,1
    - Dst: util_bits::DeinterleaveUint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:304,1
    - Dst: NthDerivativeCoder*::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:309,1
    - Dst: ZigZagDecode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:309,1
    - Dst: NthDerivativeCoder*::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:311,1
    - Dst: ZigZagDecode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - decoder
    - level
    - pi_coder
    - qi_coder
    - vertex_pi_qi
    argTypes:
    - Decoder*
    - int
    - NthDerivativeCoder*
    - NthDerivativeCoder*
    - pair<int, int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 314
    functionName: DecodePointCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - ZigZagDecode
    - util_bits::DeinterleaveUint32
    - Decoder*::get_varint64
    - NthDerivativeCoder*::Decode
    linkageType: ''
    returnType: bool
    signature: "bool DecodePointCompressed(Decoder* decoder,\n                           int
      level,\n                           NthDerivativeCoder* pi_coder,\n                           NthDerivativeCoder*
      qi_coder,\n                           pair<int, int>* vertex_pi_qi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: FaceRun
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FaceRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - initial_face
    - initial_count
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: FaceRun
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FaceRun(int initial_face, int initial_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2point_compression.cc:57,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:62,1
    - Dst: absl::implicit_cast<int64_t>
      Src: /src/s2geometry/src/s2/s2point_compression.cc:63,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:64,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 68
    functionsReached:
    - absl::implicit_cast<int64_t>
    - Encoder*::put_varint64
    - Encoder*::Ensure
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: void Encode(Encoder* encoder) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:69,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2point_compression.cc:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: Decode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 92
    functionsReached:
    - static_cast<uint64_t>
    - Decoder*::get_varint64
    linkageType: ''
    returnType: bool
    signature: bool Decode(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Faces::Faces
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Faces()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: Faces::GetIterator
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iterator
    signature: Iterator GetIterator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Faces::Faces
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Faces(const Faces&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: operator=(const Faces&)
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Faces&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2point_compression.cc:130,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2point_compression.cc:130,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2point_compression.cc:131,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2point_compression.cc:133,1
    - Dst: FaceRun
      Src: /src/s2geometry/src/s2/s2point_compression.cc:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: Faces::AddFace
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - back
    - FaceRun
    - push_back
    - empty
    linkageType: ''
    returnType: void
    signature: void Faces::AddFace(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Faces::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: Faces::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 2
    functionsReached:
    - Faces::Encode
    linkageType: ''
    returnType: void
    signature: void Faces::Encode(Encoder* encoder) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FaceRun::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:145,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2point_compression.cc:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - num_vertices
    - decoder
    argTypes:
    - int
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: Faces::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - FaceRun::Decode
    - push_back
    linkageType: ''
    returnType: bool
    signature: bool Faces::Decode(int num_vertices, Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' faces'
    argTypes:
    - Faces
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Faces::Iterator::Iterator(const Faces& faces)
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Faces::Iterator::Iterator(const Faces& faces)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:157,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:157,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: Faces::Iterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - size
    - ABSL_DCHECK_NE
    linkageType: ''
    returnType: int
    signature: int Faces::Iterator::Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2point_compression.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - level
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: STtoPiQi
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_UNUSED
    signature: ABSL_ATTRIBUTE_UNUSED STtoPiQi(double s, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2point_compression.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - si
    - level
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: SiTitoPiQi
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: int
    signature: int SiTitoPiQi(unsigned int si, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pi
    - level
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: PiQitoST
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PiQitoST(int pi, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression.cc:203,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2point_compression.cc:204,1
    - Dst: PiQitoST
      Src: /src/s2geometry/src/s2/s2point_compression.cc:204,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2point_compression.cc:205,1
    - Dst: PiQitoST
      Src: /src/s2geometry/src/s2/s2point_compression.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - face
    - pi
    - qi
    - level
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: FacePiQitoXYZ
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - S2::STtoUV
    - S2::FaceUVtoXYZ
    - PiQitoST
    linkageType: ''
    returnType: S2Point
    signature: S2Point FacePiQitoXYZ(int face, int pi, int qi, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NthDerivativeCoder*::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:214,1
    - Dst: NthDerivativeCoder*::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:215,1
    - Dst: util_bits::InterleaveUint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:217,1
    - Dst: LittleEndian::FromHost64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:221,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2point_compression.cc:224,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/s2point_compression.cc:225,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:226,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' vertex_pi_qi'
    - level
    - pi_coder
    - qi_coder
    - encoder
    argTypes:
    - pair<int, int>
    - int
    - NthDerivativeCoder*
    - NthDerivativeCoder*
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 227
    functionName: EncodeFirstPointFixedLength
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 1
    functionsReached:
    - NthDerivativeCoder*::Encode
    - Encoder*::putn
    - util_bits::InterleaveUint32
    - Encoder*::Ensure
    - LittleEndian::FromHost64
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: "void EncodeFirstPointFixedLength(const pair<int, int>& vertex_pi_qi,\n
      \                                int level,\n                                 NthDerivativeCoder*
      pi_coder,\n                                 NthDerivativeCoder* qi_coder,\n
      \                                Encoder* encoder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZigZagEncode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:237,1
    - Dst: NthDerivativeCoder*::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:237,1
    - Dst: ZigZagEncode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:239,1
    - Dst: NthDerivativeCoder*::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:239,1
    - Dst: util_bits::InterleaveUint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:242,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2point_compression.cc:245,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:246,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:247,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' vertex_pi_qi'
    - level
    - pi_coder
    - qi_coder
    - encoder
    argTypes:
    - pair<int, int>
    - int
    - NthDerivativeCoder*
    - NthDerivativeCoder*
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: EncodePointCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 1
    functionsReached:
    - Encoder*::put_varint64
    - NthDerivativeCoder*::Encode
    - util_bits::InterleaveUint32
    - Encoder*::avail
    - Encoder*::Ensure
    - ABSL_DCHECK_GE
    - ZigZagEncode
    linkageType: ''
    returnType: void
    signature: "void EncodePointCompressed(const pair<int, int>& vertex_pi_qi,\n                           int
      level,\n                           NthDerivativeCoder* pi_coder,\n                           NthDerivativeCoder*
      qi_coder,\n                           Encoder* encoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Span<const pair<int, int>>::size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:254,1
    - Dst: EncodeFirstPointFixedLength
      Src: /src/s2geometry/src/s2/s2point_compression.cc:260,1
    - Dst: EncodePointCompressed
      Src: /src/s2geometry/src/s2/s2point_compression.cc:263,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:268,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - vertices_pi_qi
    - level
    - encoder
    argTypes:
    - Span<const pair<int, int>>
    - int
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: EncodePointsCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - EncodeFirstPointFixedLength
    - EncodePointCompressed
    - Span<const pair<int, int>>::size
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: "void EncodePointsCompressed(Span<const pair<int, int>> vertices_pi_qi,\n
      \                           int level, Encoder* encoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:277,1
    - Dst: Decoder*::getn
      Src: /src/s2geometry/src/s2/s2point_compression.cc:279,1
    - Dst: LittleEndian::ToHost64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:282,1
    - Dst: util_bits::DeinterleaveUint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:285,1
    - Dst: NthDerivativeCoder*::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:287,1
    - Dst: NthDerivativeCoder*::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - decoder
    - level
    - pi_coder
    - qi_coder
    - vertex_pi_qi
    argTypes:
    - Decoder*
    - int
    - NthDerivativeCoder*
    - NthDerivativeCoder*
    - pair<int, int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: DecodeFirstPointFixedLength
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - LittleEndian::ToHost64
    - NthDerivativeCoder*::Decode
    - util_bits::DeinterleaveUint32
    - Decoder*::getn
    - Decoder*::avail
    linkageType: ''
    returnType: bool
    signature: "bool DecodeFirstPointFixedLength(Decoder* decoder,\n                                 int
      level,\n                                 NthDerivativeCoder* pi_coder,\n                                 NthDerivativeCoder*
      qi_coder,\n                                 pair<int, int>* vertex_pi_qi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/s2point_compression.cc:299,1
    - Dst: util_bits::DeinterleaveUint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:304,1
    - Dst: NthDerivativeCoder*::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:309,1
    - Dst: ZigZagDecode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:309,1
    - Dst: NthDerivativeCoder*::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:311,1
    - Dst: ZigZagDecode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - decoder
    - level
    - pi_coder
    - qi_coder
    - vertex_pi_qi
    argTypes:
    - Decoder*
    - int
    - NthDerivativeCoder*
    - NthDerivativeCoder*
    - pair<int, int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 314
    functionName: DecodePointCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - ZigZagDecode
    - util_bits::DeinterleaveUint32
    - Decoder*::get_varint64
    - NthDerivativeCoder*::Decode
    linkageType: ''
    returnType: bool
    signature: "bool DecodePointCompressed(Decoder* decoder,\n                           int
      level,\n                           NthDerivativeCoder* pi_coder,\n                           NthDerivativeCoder*
      qi_coder,\n                           pair<int, int>* vertex_pi_qi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Span<const S2XYZFaceSiTi>::size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:321,1
    - Dst: Faces::Faces
      Src: /src/s2geometry/src/s2/s2point_compression.cc:323,1
    - Dst: Span<const S2XYZFaceSiTi>::size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:324,1
    - Dst: Faces::AddFace
      Src: /src/s2geometry/src/s2/s2point_compression.cc:325,1
    - Dst: SiTitoPiQi
      Src: /src/s2geometry/src/s2/s2point_compression.cc:326,1
    - Dst: SiTitoPiQi
      Src: /src/s2geometry/src/s2/s2point_compression.cc:327,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2point_compression.cc:329,1
    - Dst: Faces::Encode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:332,1
    - Dst: EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression.cc:333,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:334,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2point_compression.cc:335,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:337,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:338,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:338,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:340,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/s2point_compression.cc:341,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:342,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - points
    - level
    - encoder
    argTypes:
    - Span<const S2XYZFaceSiTi>
    - int
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: S2EncodePointsCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - SiTitoPiQi
    - Encoder*::put_varint32
    - Faces::Faces
    - Encoder*::putn
    - EncodePointsCompressed
    - Span<const S2XYZFaceSiTi>::size
    - Encoder*::avail
    - Encoder*::Ensure
    - Faces::Encode
    - vector::size
    - ABSL_DCHECK_GE
    - Faces::AddFace
    linkageType: ''
    returnType: void
    signature: "void S2EncodePointsCompressed(Span<const S2XYZFaceSiTi> points,\n
      \                             int level,\n                              Encoder*
      encoder)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2point_compression.cc:348,1
    - Dst: Faces::Faces
      Src: /src/s2geometry/src/s2/s2point_compression.cc:350,1
    - Dst: Faces::Decode
      Src: /src/s2geometry/src/s2/s2point_compression.cc:351,1
    - Dst: Span<S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:351,1
    - Dst: Faces::GetIterator
      Src: /src/s2geometry/src/s2/s2point_compression.cc:357,1
    - Dst: Span<S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:358,1
    - Dst: DecodeFirstPointFixedLength
      Src: /src/s2geometry/src/s2/s2point_compression.cc:361,1
    - Dst: DecodePointCompressed
      Src: /src/s2geometry/src/s2/s2point_compression.cc:366,1
    - Dst: Faces::Iterator::Next
      Src: /src/s2geometry/src/s2/s2point_compression.cc:372,1
    - Dst: FacePiQitoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression.cc:374,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:378,1
    - Dst: Span<S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:379,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2point_compression.cc:384,1
    - Dst: Span<S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression.cc:384,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2point_compression.cc:387,1
    - Dst: Decoder*::getn
      Src: /src/s2geometry/src/s2/s2point_compression.cc:388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - decoder
    - level
    - points
    argTypes:
    - Decoder*
    - int
    - Span<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 391
    functionName: S2DecodePointsCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - Faces::Faces
    - FacePiQitoXYZ
    - Decoder*::get_varint32
    - DecodePointCompressed
    - Span<S2Point>::size
    - Decoder*::avail
    - Decoder*::getn
    - Faces::Decode
    - DecodeFirstPointFixedLength
    - Faces::GetIterator
    - Faces::Iterator::Next
    linkageType: ''
    returnType: bool
    signature: "bool S2DecodePointsCompressed(Decoder* decoder, int level,\n                              Span<S2Point>
      points)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:38,1
    - Dst: size
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:38,1
    - Dst: size
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:38,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:39,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:39,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:39,1
    - Dst: end
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:39,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' expected'
    - ' actual'
    argTypes:
    - vector<T>
    - typename SequenceLexicon<T>::Sequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: ExpectSequence
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - size
    - end
    - begin
    - EXPECT_EQ
    - equal
    linkageType: ''
    returnType: void
    signature: "void ExpectSequence(const vector<T>& expected,\n                    const
      typename SequenceLexicon<T>::Sequence& actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:46,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:47,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:48,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:49,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:50,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:51,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:52,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:53,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:54,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:55,1
    - Dst: SequenceLexicon::size
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:55,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:56,1
    - Dst: SequenceLexicon::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:56,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:57,1
    - Dst: SequenceLexicon::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:57,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:58,1
    - Dst: SequenceLexicon::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:58,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:59,1
    - Dst: SequenceLexicon::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:59,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:60,1
    - Dst: SequenceLexicon::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - SequenceLexicon::Add
    - SequenceLexicon::size
    - SequenceLexicon::sequence
    - EXPECT_EQ
    - ExpectSequence
    linkageType: ''
    returnType: void
    signature: void TEST(SequenceLexicon, int64_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:65,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:66,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:66,1
    - Dst: SequenceLexicon::Clear
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:68,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:69,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SequenceLexicon::Add
    - SequenceLexicon::Clear
    linkageType: ''
    returnType: void
    signature: void TEST(SequenceLexicon, Clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<SequenceLexicon<int64_t>>
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:74,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:74,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:77,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:77,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:78,1
    - Dst: auto::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:78,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:79,1
    - Dst: auto::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - auto::reset
    - auto::sequence
    - make_unique<SequenceLexicon<int64_t>>
    - EXPECT_EQ
    - ExpectSequence
    linkageType: ''
    returnType: void
    signature: void TEST(SequenceLexicon, CopyConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<SequenceLexicon<int64_t>>
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:84,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:84,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:85,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:87,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:87,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:88,1
    - Dst: auto::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:88,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:89,1
    - Dst: auto::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - auto::reset
    - std::move
    - auto::sequence
    - make_unique<SequenceLexicon<int64_t>>
    - EXPECT_EQ
    - ExpectSequence
    linkageType: ''
    returnType: void
    signature: void TEST(SequenceLexicon, MoveConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<SequenceLexicon<int64_t>>
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:94,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:96,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:97,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:97,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:101,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:101,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:102,1
    - Dst: SequenceLexicon::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:102,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:103,1
    - Dst: SequenceLexicon::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - auto::reset
    - SequenceLexicon::Add
    - make_unique<SequenceLexicon<int64_t>>
    - SequenceLexicon::sequence
    - EXPECT_EQ
    - ExpectSequence
    linkageType: ''
    returnType: void
    signature: void TEST(SequenceLexicon, CopyAssignmentOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<SequenceLexicon<int64_t>>
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:108,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:110,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:111,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:111,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:112,1
    - Dst: auto::reset
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:114,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:114,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:115,1
    - Dst: SequenceLexicon::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:115,1
    - Dst: ExpectSequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:116,1
    - Dst: SequenceLexicon::sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - auto::reset
    - SequenceLexicon::Add
    - std::move
    - make_unique<SequenceLexicon<int64_t>>
    - SequenceLexicon::sequence
    - EXPECT_EQ
    - ExpectSequence
    linkageType: ''
    returnType: void
    signature: void TEST(SequenceLexicon, MoveAssignmentOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:123,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:125,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:131,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:131,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: BM_AddInt32Sequence
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - KeepRunningBatch
    - SequenceLexicon::Add
    - range
    - vector::end
    - vector::begin
    linkageType: ''
    returnType: void
    signature: void BM_AddInt32Sequence(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:138,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:145,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:145,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:145,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:147,1
    - Dst: SequenceLexicon::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:152,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:152,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/sequence_lexicon_test.cc:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: BM_FindInt32Sequence
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - KeepRunningBatch
    - SequenceLexicon::Add
    - range
    - vector::end
    - vector::begin
    linkageType: ''
    returnType: void
    signature: void BM_FindInt32Sequence(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosserBase<PointRep>::CrossingSignInternal2
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - PointRep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: S2EdgeCrosserBase<PointRep>::CrossingSignInternal
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.cc
    functionUses: 0
    functionsReached:
    - S2EdgeCrosserBase<PointRep>::CrossingSignInternal2
    linkageType: ''
    returnType: int
    signature: int S2EdgeCrosserBase<PointRep>::CrossingSignInternal(PointRep d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:56,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:57,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:58,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:67,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:68,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:68,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:69,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:69,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:84,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:85,1
    - Dst: s2pred::ExpensiveSign
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:86,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:87,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:90,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:91,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:92,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:94,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crosser.cc:95,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 97
    functionName: S2EdgeCrosserBase<PointRep>::CrossingSignInternal2
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - s2pred::Sign
    - ABSL_DCHECK_NE
    - sqrt
    - CrossProd
    - S2Point::CrossProd
    - S2::RobustCrossProd
    - s2pred::ExpensiveSign
    linkageType: ''
    returnType: int
    signature: "int S2EdgeCrosserBase<PointRep>::CrossingSignInternal2(\n    const
      S2Point& d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:42,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: S2::Angle
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 4
    functionsReached:
    - S2::RobustCrossProd
    linkageType: ''
    returnType: double
    signature: double Angle(const S2Point& a, const S2Point& b, const S2Point& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:53,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:53,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2measures.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: S2::TurnAngle
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 2
    functionsReached:
    - S2::RobustCrossProd
    - s2pred::Sign
    linkageType: ''
    returnType: double
    signature: double TurnAngle(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:82,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:82,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:83,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:83,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2measures.cc:84,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2measures.cc:84,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2measures.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: S2::StableAngle
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 0
    functionsReached:
    - S2::IsUnitLength
    - Norm
    - atan2
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double StableAngle(S2Point a, S2Point b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:88,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:88,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:89,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:89,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:90,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:90,1
    - Dst: S2::StableAngle
      Src: /src/s2geometry/src/s2/s2measures.cc:128,1
    - Dst: S2::StableAngle
      Src: /src/s2geometry/src/s2/s2measures.cc:129,1
    - Dst: S2::StableAngle
      Src: /src/s2geometry/src/s2/s2measures.cc:130,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2measures.cc:135,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2measures.cc:135,1
    - Dst: S2::GirardArea
      Src: /src/s2geometry/src/s2/s2measures.cc:140,1
    - Dst: atan
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2measures.cc:146,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2measures.cc:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 147
    functionName: S2::Area
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 1
    functionsReached:
    - S2::GirardArea
    - sqrt
    - S2::StableAngle
    - S2::IsUnitLength
    - atan
    - max
    - tan
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double Area(const S2Point& a, const S2Point& b, const S2Point& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:155,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:156,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:157,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2measures.cc:158,1
    - Dst: Vector3_d::Angle
      Src: /src/s2geometry/src/s2/s2measures.cc:158,1
    - Dst: Vector3_d::Angle
      Src: /src/s2geometry/src/s2/s2measures.cc:158,1
    - Dst: Vector3_d::Angle
      Src: /src/s2geometry/src/s2/s2measures.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: S2::GirardArea
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 1
    functionsReached:
    - S2::RobustCrossProd
    - max
    - Vector3_d::Angle
    linkageType: ''
    returnType: double
    signature: double GirardArea(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2measures.cc:162,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: S2::SignedArea
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 0
    functionsReached:
    - S2::Area
    - s2pred::Sign
    linkageType: ''
    returnType: double
    signature: double SignedArea(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:42,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: S2::Angle
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 4
    functionsReached:
    - S2::RobustCrossProd
    linkageType: ''
    returnType: double
    signature: double Angle(const S2Point& a, const S2Point& b, const S2Point& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:53,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:53,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2measures.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: S2::TurnAngle
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 2
    functionsReached:
    - S2::RobustCrossProd
    - s2pred::Sign
    linkageType: ''
    returnType: double
    signature: double TurnAngle(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:82,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:82,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:83,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:83,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2measures.cc:84,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2measures.cc:84,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2measures.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: S2::StableAngle
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 1
    functionsReached:
    - S2::IsUnitLength
    - Norm
    - atan2
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double StableAngle(S2Point a, S2Point b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:88,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:88,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:89,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:89,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2measures.cc:90,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2measures.cc:90,1
    - Dst: S2::StableAngle
      Src: /src/s2geometry/src/s2/s2measures.cc:128,1
    - Dst: S2::StableAngle
      Src: /src/s2geometry/src/s2/s2measures.cc:129,1
    - Dst: S2::StableAngle
      Src: /src/s2geometry/src/s2/s2measures.cc:130,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2measures.cc:135,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2measures.cc:135,1
    - Dst: S2::GirardArea
      Src: /src/s2geometry/src/s2/s2measures.cc:140,1
    - Dst: atan
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2measures.cc:145,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2measures.cc:146,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2measures.cc:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 147
    functionName: S2::Area
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 2
    functionsReached:
    - S2::GirardArea
    - sqrt
    - S2::StableAngle
    - S2::IsUnitLength
    - atan
    - max
    - tan
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double Area(const S2Point& a, const S2Point& b, const S2Point& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:155,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:156,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2measures.cc:157,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2measures.cc:158,1
    - Dst: Vector3_d::Angle
      Src: /src/s2geometry/src/s2/s2measures.cc:158,1
    - Dst: Vector3_d::Angle
      Src: /src/s2geometry/src/s2/s2measures.cc:158,1
    - Dst: Vector3_d::Angle
      Src: /src/s2geometry/src/s2/s2measures.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: S2::GirardArea
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 2
    functionsReached:
    - S2::RobustCrossProd
    - max
    - Vector3_d::Angle
    linkageType: ''
    returnType: double
    signature: double GirardArea(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2measures.cc:162,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: S2::SignedArea
    functionSourceFile: /src/s2geometry/src/s2/s2measures.cc
    functionUses: 0
    functionsReached:
    - S2::Area
    - s2pred::Sign
    linkageType: ''
    returnType: double
    signature: double SignedArea(const S2Point& a, const S2Point& b, const S2Point&
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:51,1
    - Dst: S2MaxDistance::Negative
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:51,1
    - Dst: S2MaxDistance::Zero
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:51,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:52,1
    - Dst: S2MaxDistance::Zero
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:52,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - S2MaxDistance::Infinity
    - S2MaxDistance::Zero
    - S2MaxDistance::Negative
    linkageType: ''
    returnType: void
    signature: void TEST(S2MaxDistance, Constants)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:56,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:57,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:59,1
    - Dst: S2MaxDistanceCellTarget::GetCapBound
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:61,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:64,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:66,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:67,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:68,1
    - Dst: S2MaxDistance::Zero
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:68,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetMaxDistance
    - s2random::Point
    - S2MaxDistanceCellTarget::GetCapBound
    - EXPECT_TRUE
    - S2Cap::Contains
    - S2MaxDistance
    - s2random::CellId
    - S2MaxDistance::Zero
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(CellTarget, GetCapBound)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:75,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:76,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:77,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:79,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:80,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:80,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:82,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:84,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:84,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:86,1
    - Dst: S2MaxDistanceShapeIndexTarget::GetCapBound
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:87,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:90,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:92,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:93,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:94,1
    - Dst: S2MaxDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:94,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:95,1
    - Dst: S2MaxDistance::Zero
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - auto::Add
    - make_unique<S2Polygon::Shape>
    - s2random::Point
    - auto::get
    - EXPECT_TRUE
    - S2MaxDistanceShapeIndexTarget::GetCapBound
    - S2Cap::Contains
    - make_unique<S2PointVectorShape>
    - s2random::CellId
    - S2MaxDistanceShapeIndexTarget::UpdateMinDistance
    - S2MaxDistance::Zero
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2MaxDistance::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(IndexTarget, GetCapBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:101,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:102,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:102,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:103,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:103,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:107,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:107,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:108,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:108,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:109,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:109,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:112,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:112,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:115,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:115,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:116,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:116,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:117,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:117,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:120,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:120,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:122,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:122,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:123,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:125,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 126
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - EXPECT_TRUE
    - EXPECT_NEAR
    - ParsePointsOrDie
    - S1ChordAngle::Degrees
    - MakePointOrDie
    - S2MaxDistance
    - S1ChordAngle
    - EXPECT_FALSE
    - S2MaxDistancePointTarget::UpdateMinDistance
    linkageType: ''
    returnType: void
    signature: void TEST(PointTarget, UpdateMaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:131,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:132,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:133,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:134,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:134,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:135,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_TRUE
    - ParsePointsOrDie
    - MakePointOrDie
    - S2MaxDistance::Infinity
    - S2MaxDistancePointTarget::UpdateMinDistance
    linkageType: ''
    returnType: void
    signature: void TEST(PointTarget, UpdateMaxDistanceToEdgeWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:139,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:140,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:141,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:141,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:142,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:142,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:143,1
    - Dst: S2MaxDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2CellId
    - EXPECT_TRUE
    - MakePointOrDie
    - S2MaxDistance::Infinity
    - S2MaxDistancePointTarget::UpdateMinDistance
    linkageType: ''
    returnType: void
    signature: void TEST(PointTarget, UpdateMaxDistanceToCellWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:147,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:149,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:149,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:150,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:150,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:153,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:154,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:154,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:155,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:155,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:156,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:156,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:159,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:159,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:162,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:162,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:163,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:164,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:164,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:167,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:167,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:169,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:169,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:170,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:172,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 173
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - EXPECT_TRUE
    - EXPECT_NEAR
    - ParsePointsOrDie
    - S1ChordAngle::Degrees
    - MakePointOrDie
    - S2MaxDistance
    - S2MaxDistanceEdgeTarget::UpdateMinDistance
    - S1ChordAngle
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTarget, UpdateMaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:176,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:176,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:177,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:179,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:180,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_TRUE
    - ParsePointsOrDie
    - MakePointOrDie
    - S2MaxDistanceEdgeTarget::UpdateMinDistance
    - S2MaxDistance::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTarget, UpdateMaxDistanceToEdgeWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:184,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:185,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:186,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:187,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:188,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:189,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:189,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ParsePointsOrDie
    - MakePointOrDie
    - S1ChordAngle::Straight
    - EXPECT_EQ
    - S2MaxDistanceEdgeTarget::UpdateMinDistance
    - S1ChordAngle
    - S2MaxDistance::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTarget, UpdateMaxDistanceToEdgeAntipodal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:193,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:193,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:194,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:195,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:195,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:196,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:196,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:197,1
    - Dst: S2MaxDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2CellId
    - EXPECT_TRUE
    - MakePointOrDie
    - S2MaxDistanceEdgeTarget::UpdateMinDistance
    - S2MaxDistance::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTarget, UpdateMaxDistanceToCellWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:201,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:202,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:202,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:203,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:203,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:206,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:207,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:207,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:208,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:208,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:211,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:211,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:213,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:214,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:214,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:215,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:215,1
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:218,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:218,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:220,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:220,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:221,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:221,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:223,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 224
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistanceCellTarget::UpdateMinDistance
    - S2CellId
    - EXPECT_TRUE
    - ParsePointsOrDie
    - S1ChordAngle::Degrees
    - MakePointOrDie
    - S2MaxDistance
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CellTarget, UpdateMaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:227,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:228,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:229,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:230,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:230,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:231,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistanceCellTarget::UpdateMinDistance
    - EXPECT_FALSE
    - EXPECT_TRUE
    - ParsePointsOrDie
    - MakePointOrDie
    - S2MaxDistance::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(CellTarget, UpdateMaxDistanceToEdgeWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:235,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:236,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:237,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:237,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:238,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:238,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:239,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistanceCellTarget::UpdateMinDistance
    - EXPECT_FALSE
    - S2CellId
    - EXPECT_TRUE
    - MakePointOrDie
    - S2MaxDistance::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(CellTarget, UpdateMaxDistanceToCellWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:243,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:244,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:245,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:246,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:247,1
    - Dst: S2MaxDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:247,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:248,1
    - Dst: S2MaxDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - auto::get
    - EXPECT_TRUE
    - ParsePointsOrDie
    - S2MaxDistanceShapeIndexTarget::UpdateMinDistance
    - S2MaxDistance::Infinity
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeIndexTarget, UpdateMaxDistanceToEdgeWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:252,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:253,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:254,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:255,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:255,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:256,1
    - Dst: S2MaxDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:256,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:257,1
    - Dst: S2MaxDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - auto::get
    - S2CellId
    - EXPECT_TRUE
    - MakePointOrDie
    - S2MaxDistanceShapeIndexTarget::UpdateMinDistance
    - S2MaxDistance::Infinity
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeIndexTarget, UpdateMaxDistanceToCellWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:261,1
    - Dst: S2MaxDistance::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:263,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:265,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:266,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:266,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:266,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:268,1
    - Dst: S2MaxDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2MaxDistanceCellTarget::UpdateMinDistance
    - EXPECT_FALSE
    - EXPECT_TRUE
    - MakePointOrDie
    - S1ChordAngle::Straight
    - EXPECT_EQ
    - S1ChordAngle
    - S2MaxDistance::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(CellTarget, UpdateMaxDistanceToCellAntipodal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistanceTarget*::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:274,1
    - Dst: absl::btree_set::insert
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:277,1
    - Dst: absl::btree_set::size
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:278,1
    - Dst: vector<int>
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:280,1
    - Dst: absl::btree_set::begin
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:280,1
    - Dst: absl::btree_set::end
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - target
    - ' index'
    - max_shapes
    argTypes:
    - S2MaxDistanceTarget*
    - S2ShapeIndex
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: GetContainingShapes
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 1
    functionsReached:
    - absl::btree_set::end
    - absl::btree_set::begin
    - vector<int>
    - S2MaxDistanceTarget*::VisitContainingShapeIds
    - absl::btree_set::size
    - absl::btree_set::insert
    linkageType: ''
    returnType: vector<int>
    signature: "vector<int> GetContainingShapes(S2MaxDistanceTarget* target,\n                                const
      S2ShapeIndex& index, int max_shapes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:285,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:287,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:290,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:291,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetContainingShapes
    - MakePointOrDie
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(PointTarget, VisitContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:296,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:299,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:301,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:301,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:302,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetContainingShapes
    - ParsePointsOrDie
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTarget, VisitContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:306,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:310,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:311,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:312,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:313,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:313,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:319,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:320,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:321,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 322
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - GetContainingShapes
    - S2CellId::parent
    - MakePointOrDie
    - S2Cell
    - EXPECT_EQ
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(CellTarget, VisitContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pts
    argTypes:
    - absl::Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: Reflect
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> Reflect(absl::Span<const S2Point> pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:336,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:344,1
    - Dst: Reflect
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:346,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:346,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:347,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:347,1
    - Dst: Reflect
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:349,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:349,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:350,1
    - Dst: make_unique<S2Polyline::Shape>
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:350,1
    - Dst: Reflect
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:352,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:352,1
    - Dst: Reflect
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:353,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:353,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:355,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:355,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:357,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:360,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 361
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - auto::Add
    - auto::get
    - make_unique<S2LaxPolygonShape>
    - GetContainingShapes
    - ParsePointsOrDie
    - make_unique<S2Polyline::Shape>
    - make_unique<S2PointVectorShape>
    - EXPECT_EQ
    - Reflect
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeIndexTarget, VisitContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:368,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:371,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:373,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:373,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:376,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:378,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:378,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:383,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:385,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2max_distance_targets_test.cc:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetContainingShapes
    - auto::get
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeIndexTarget, VisitContainingShapesEmptyAndFull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:79,1
    - Dst: absl::btree_map::find
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:80,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:80,1
    - Dst: absl::btree_map::end
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:80,1
    - Dst: absl::btree_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:83,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' bases'
    argTypes:
    - absl::btree_map<S2CellId, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 89
    functionName: SumToRoot
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - level
    - absl::btree_map::find
    - absl::btree_map::end
    - parent
    - absl::btree_map::insert
    linkageType: ''
    returnType: absl::btree_map<S2CellId, int64_t>
    signature: "absl::btree_map<S2CellId, int64_t> SumToRoot(\n    const absl::btree_map<S2CellId,
      int64_t>& bases)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:97,1
    - Dst: VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:98,1
    - Dst: has_children
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:100,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:101,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:106,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' tree'
    argTypes:
    - S2DensityTree
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: TreeCells
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - has_children
    - EXPECT_TRUE
    - VisitCells
    - std::vector::emplace_back
    - S2Error::ok
    - S2Error::S2Error
    linkageType: ''
    returnType: std::vector<S2CellId>
    signature: "std::vector<S2CellId> TreeCells(const S2DensityTree& tree,\n                                bool
      only_leaves = false)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:113,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:113,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:114,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:114,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:115,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:120,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:120,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:123,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:123,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:129,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ' got'
    - ' wanted'
    argTypes:
    - absl::btree_map<S2CellId, int64_t>
    - absl::btree_map<S2CellId, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 136
    functionName: ExpectDecodedTreesEqual
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - end
    - size
    - find
    - ABSL_LOG
    linkageType: ''
    returnType: bool
    signature: "bool ExpectDecodedTreesEqual(const absl::btree_map<S2CellId, int64_t>&
      got,\n                             const absl::btree_map<S2CellId, int64_t>&
      wanted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReversibleBytes::ReversibleBytes
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:139,1
    - Dst: ReversibleBytes::AppendBytes
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:140,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:141,1
    - Dst: ReversibleBytes::size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:141,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:141,1
    - Dst: ReversibleBytes::Clear
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:142,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:143,1
    - Dst: ReversibleBytes::size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:143,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - ReversibleBytes::ReversibleBytes
    - ReversibleBytes::AppendBytes
    - ReversibleBytes::Clear
    - ReversibleBytes::size
    linkageType: ''
    returnType: void
    signature: void TEST(ReversibleBytes, ClearWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReversibleBytes::ReversibleBytes
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:148,1
    - Dst: ReversibleBytes::AppendBytes
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:149,1
    - Dst: ReversedCellEncoder::Next
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:153,1
    - Dst: ReversibleBytes::AppendBytes
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:154,1
    - Dst: ReversibleBytes::AppendBytes
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:155,1
    - Dst: ReversedCellEncoder::Next
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:156,1
    - Dst: ReversedCellEncoder::Next
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:157,1
    - Dst: ReversibleBytes::AppendBytes
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:158,1
    - Dst: ReversedCellEncoder::Next
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:159,1
    - Dst: ReversedCellEncoder::Finish
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:165,1
    - Dst: ReversibleBytes::Reversed
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:169,1
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:170,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:170,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:173,1
    - Dst: Decoder::get_varint64
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:174,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:176,1
    - Dst: Decoder::get_varint64
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:177,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:179,1
    - Dst: Decoder::get_varint64
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:180,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:182,1
    - Dst: Decoder::get_varint64
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:182,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:183,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:185,1
    - Dst: Decoder::get8
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:185,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:186,1
    - Dst: Decoder::get8
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:186,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:187,1
    - Dst: Decoder::get8
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:187,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:191,1
    - Dst: Decoder::get8
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:192,1
    - Dst: Decoder::avail
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 193
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - Decoder::avail
    - ASSERT_EQ
    - Decoder::get_varint64
    - std::string::size
    - Decoder::get8
    - ReversedCellEncoder::Next
    - ReversibleBytes::ReversibleBytes
    - ReversibleBytes::Reversed
    - EXPECT_EQ
    - ReversibleBytes::AppendBytes
    - ASSERT_TRUE
    - std::string::data
    - ReversedCellEncoder::Finish
    linkageType: ''
    returnType: void
    signature: void TEST(ReversedLengthsWriter, Codec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TreeEncoderTest::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cell
    - weight
    argTypes:
    - S2CellId
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: TreeEncoderTest::Put
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 1
    functionsReached:
    - TreeEncoderTest::Put
    linkageType: ''
    returnType: void
    signature: void Put(S2CellId cell, int64_t weight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:200,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: TreeEncoderTest::BuildTree
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - Build
    - S2DensityTree::S2DensityTree
    linkageType: ''
    returnType: S2DensityTree
    signature: S2DensityTree BuildTree()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:206,1
    - Dst: TreeEncoderTest::BuildTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:208,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: TreeEncoderTest::BuildAndDecode
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Error::code
    - TreeEncoderTest::BuildTree
    - S2Error::S2Error
    linkageType: ''
    returnType: absl::btree_map<S2CellId, int64_t>
    signature: absl::btree_map<S2CellId, int64_t> BuildAndDecode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: TreeEncoderTest::Encoder
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2DensityTree::TreeEncoder
    signature: S2DensityTree::TreeEncoder Encoder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TreeEncoderTest::Clear
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: TreeEncoderTest::Clear
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 1
    functionsReached:
    - TreeEncoderTest::Clear
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:221,1
    - Dst: BuildAndDecode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - BuildAndDecode
    linkageType: ''
    returnType: void
    signature: void TEST_F(TreeEncoderTest, EncodeEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:224,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:224,1
    - Dst: BuildAndDecode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:226,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:227,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:227,1
    - Dst: auto::find
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:229,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:229,1
    - Dst: ASSERT_NE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:230,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - auto::end
    - Put
    - BuildAndDecode
    - ASSERT_NE
    - auto::size
    - auto::find
    - S2CellId::FromFace
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(TreeEncoderTest, EncodeOneFace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:235,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:236,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:236,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:240,1
    - Dst: BuildAndDecode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:243,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:244,1
    - Dst: ExpectDecodedTreesEqual
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - Put
    - S2CellId
    - EXPECT_TRUE
    - S2Point
    - BuildAndDecode
    - SumToRoot
    - ExpectDecodedTreesEqual
    linkageType: ''
    returnType: void
    signature: void TEST_F(TreeEncoderTest, EncodeOneLeaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:248,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:249,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:250,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:251,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:255,1
    - Dst: BuildAndDecode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:258,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:259,1
    - Dst: ExpectDecodedTreesEqual
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - Put
    - SumToRoot
    - EXPECT_TRUE
    - BuildAndDecode
    - S2CellId::child_begin
    - S2CellId::child_end
    - ExpectDecodedTreesEqual
    - S2CellId::FromFaceIJ
    linkageType: ''
    returnType: void
    signature: void TEST_F(TreeEncoderTest, EncodeOneBranch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:265,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:265,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:269,1
    - Dst: BuildAndDecode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:272,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:273,1
    - Dst: ExpectDecodedTreesEqual
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 274
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - Put
    - EXPECT_TRUE
    - BuildAndDecode
    - S2CellId::FromFace
    - ExpectDecodedTreesEqual
    - absl::btree_map::insert
    linkageType: ''
    returnType: void
    signature: void TEST_F(TreeEncoderTest, EncodeEachFace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:277,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:278,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:280,1
    - Dst: absl::btree_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:284,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:284,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:286,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:288,1
    - Dst: BuildAndDecode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:290,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:291,1
    - Dst: ExpectDecodedTreesEqual
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 293
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - Put
    - SumToRoot
    - EXPECT_TRUE
    - BuildAndDecode
    - Clear
    - s2random::CellId
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - ExpectDecodedTreesEqual
    - absl::btree_map::insert
    linkageType: ''
    returnType: void
    signature: void TEST_F(TreeEncoderTest, EncodeRandomBranches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:296,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:297,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:297,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:298,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:299,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:299,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:300,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:301,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:301,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:302,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:304,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:305,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:306,1
    - Dst: S2DensityTree::InitToShapeDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:306,1
    - Dst: S2DensityTree::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:310,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:311,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:311,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 315
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2DensityTree::S2DensityTree
    - S2Point
    - S2DensityTree::Decode
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2DensityTree::InitToShapeDensity
    - make_unique<S2PointVectorShape>
    - ASSERT_TRUE
    - S2Error::code
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, LimitsToMaxWeight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:318,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:319,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:319,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:320,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:322,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:323,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:324,1
    - Dst: S2DensityTree::InitToVertexDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:324,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:325,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:327,1
    - Dst: S2DensityTree::VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:327,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:332,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 333
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - S2DensityTree::VisitCells
    - S2DensityTree::S2DensityTree
    - EXPECT_TRUE
    - S2Point
    - S2DensityTree::InitToVertexDensity
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2PointVectorShape>
    - ASSERT_FALSE
    - ASSERT_TRUE
    - S2Error::ok
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, VisitorCancellation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:336,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:339,1
    - Dst: S2DensityTree::VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:347,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:348,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 349
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - S2DensityTree::VisitCells
    - S2DensityTree::S2DensityTree
    - EXPECT_TRUE
    - EXPECT_EQ
    - S2Error::ok
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, VisitUninitializedTree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:353,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:353,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:355,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:357,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:357,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:358,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:361,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:362,1
    - Dst: S2DensityTree::InitToVertexDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:363,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:364,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:364,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:367,1
    - Dst: S2DensityTree::Encode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:368,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:369,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:369,1
    - Dst: std::string::resize
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:373,1
    - Dst: S2DensityTree::EncodedSize
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:373,1
    - Dst: Encoder::reset
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:374,1
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:374,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:374,1
    - Dst: S2DensityTree::Encode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 379
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - Encoder::length
    - std::string::data
    - S2Error::S2Error
    - S2DensityTree::EncodedSize
    - make_unique<S2PointVectorShape>
    - std::string::resize
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    - S2DensityTree::S2DensityTree
    - S2Testing::MakeTaggedSeedSeq
    - Encoder::Encoder
    - S2DensityTree::InitToVertexDensity
    - S2DensityTree::Encode
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - std::string::size
    - Encoder::base
    - ASSERT_TRUE
    - absl::LogInfoStreamer
    - S2Error::ok
    - Encoder::reset
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, Encode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:382,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:384,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:385,1
    - Dst: S2DensityTree::InitToVertexDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:386,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:387,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:387,1
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:389,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:390,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:390,1
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:393,1
    - Dst: S2DensityTree::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:394,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:395,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:395,1
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:397,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:398,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:399,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:399,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 402
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::RoundTrip
    - S2DensityTree::S2DensityTree
    - EXPECT_TRUE
    - auto::Decode
    - S2DensityTree::InitToVertexDensity
    - S2DensityTree::Decode
    - s2coding::S2HintCoder::S2HintCoder
    - ASSERT_TRUE
    - S2Error::Ok
    - EXPECT_EQ
    - S2Error::ok
    - s2textformat::MakeIndexOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:405,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:406,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:408,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:408,1
    - Dst: S2DensityTree::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:410,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:411,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:411,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:413,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::RoundTrip
    - S2BooleanOperation::IsEmpty
    - S2DensityTree::S2DensityTree
    - EXPECT_TRUE
    - EXPECT_THAT
    - S2DensityTree::Decode
    - s2coding::S2HintCoder::S2HintCoder
    - S2Error::ok
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, S2CoderWorks_UninitializedTree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:417,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:424,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:425,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:429,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:432,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:432,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:433,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:433,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:437,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:437,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:438,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:438,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:443,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:446,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:446,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:447,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:447,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:450,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:451,1
    - Dst: S2DensityTree::InitToFeatureDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:452,1
    - Dst: absl::flat_hash_map::find
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:455,1
    - Dst: absl::flat_hash_map::end
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:456,1
    - Dst: absl::flat_hash_map::at
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:458,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:460,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:460,1
    - Dst: S2DensityTree::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:462,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:463,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:463,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:466,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:466,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:467,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:467,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:468,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:468,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:469,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 470
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map::at
    - S2CellId
    - S2Error::S2Error
    - R2Rect::FromPointPair
    - S2DensityTree::Decode
    - make_unique<S2PointVectorShape>
    - absl::flat_hash_map::find
    - MutableS2ShapeIndex::shape
    - MutableS2ShapeIndex::Add
    - testing::UnorderedElementsAre
    - S2DensityTree::S2DensityTree
    - absl::flat_hash_map::insert
    - S2DensityTree::InitToFeatureDensity
    - absl::flat_hash_map::end
    - EXPECT_THAT
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLng::FromDegrees
    - ASSERT_TRUE
    - S2Error::ok
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, InitToFeatureDensity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:475,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:476,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:478,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:480,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:480,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:481,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:487,1
    - Dst: VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:489,1
    - Dst: has_children
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:492,1
    - Dst: S2DensityTree::DecodedPath::GetCell
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:496,1
    - Dst: child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:496,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:497,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:497,1
    - Dst: S2DensityTree::Cell*::weight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:498,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:501,1
    - Dst: weight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:501,1
    - Dst: weight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:502,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:509,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:510,1
    - Dst: S2DensityTree::InitToVertexDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:511,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:512,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:512,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:513,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:513,1
    - Dst: S2DensityTree::Normalize
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:517,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:518,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:518,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:519,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:519,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:519,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:519,1
    - Dst: ExpectNormalized
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 472
    functionDepth: 4
    functionLinenumber: 472
    functionLinenumberEnd: 521
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - weight
    - TreeCells
    - ASSERT_GT
    - S2Error::S2Error
    - has_children
    - S2DensityTree::Normalize
    - make_unique<S2PointVectorShape>
    - child
    - S2DensityTree::DecodedPath::GetCell
    - MutableS2ShapeIndex::Add
    - S2DensityTree::S2DensityTree
    - EXPECT_TRUE
    - VisitCells
    - S2Testing::MakeTaggedSeedSeq
    - ExpectNormalized
    - Eq
    - S2DensityTree::Cell*::weight
    - S2DensityTree::InitToVertexDensity
    - EXPECT_THAT
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_TRUE
    - absl::LogInfoStreamer
    - S2Error::ok
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, CanNormalizeTree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:526,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:528,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:531,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:531,1
    - Dst: Encoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:533,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:534,1
    - Dst: auto::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:535,1
    - Dst: auto::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:537,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:542,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:542,1
    - Dst: Encoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:544,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:545,1
    - Dst: auto::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:546,1
    - Dst: auto::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:548,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:551,1
    - Dst: S2DensityTree::Normalize
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:552,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:553,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:553,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:555,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:555,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 556
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - auto::Build
    - S2DensityTree::S2DensityTree
    - Encoder
    - auto::Put
    - TreeCells
    - S2DensityTree::Normalize
    - EXPECT_EQ
    - ASSERT_TRUE
    - S2CellId::FromFace
    - S2Error::S2Error
    - S2Error::ok
    - SumToRoot
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST_F(TreeEncoderTest, NormalizeBalances)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:560,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:563,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:564,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:565,1
    - Dst: Encoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:567,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:568,1
    - Dst: auto::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:569,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:572,1
    - Dst: auto::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:573,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:575,1
    - Dst: S2DensityTree::Normalize
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:576,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:577,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:577,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:579,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:579,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 580
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - auto::Build
    - S2DensityTree::S2DensityTree
    - Encoder
    - auto::Put
    - TreeCells
    - S2DensityTree::Normalize
    - EXPECT_EQ
    - ASSERT_TRUE
    - S2CellId::FromFace
    - S2Error::S2Error
    - S2Error::ok
    - SumToRoot
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST_F(TreeEncoderTest, NormalizeDoesNotAffectDisjointPaths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:584,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:586,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:587,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:590,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:591,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:592,1
    - Dst: Encoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:594,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:595,1
    - Dst: auto::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:596,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:599,1
    - Dst: auto::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:600,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:602,1
    - Dst: S2DensityTree::Normalize
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:603,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:604,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:604,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:606,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:606,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 607
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - auto::Build
    - S2DensityTree::S2DensityTree
    - Stats::max
    - Encoder
    - auto::Put
    - TreeCells
    - S2DensityTree::Normalize
    - EXPECT_EQ
    - ASSERT_TRUE
    - S2CellId::FromFace
    - S2Error::S2Error
    - S2Error::ok
    - SumToRoot
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST_F(TreeEncoderTest, NormalizeDoesNotOverflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:612,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:613,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:615,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:617,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:617,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:618,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:621,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:622,1
    - Dst: S2DensityTree::InitToVertexDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:623,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:624,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:624,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:625,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:625,1
    - Dst: S2DensityTree::Leaves
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:627,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:628,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:628,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:629,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:629,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:629,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 609
    functionDepth: 4
    functionLinenumber: 609
    functionLinenumberEnd: 630
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - s2random::Point
    - S2CellUnion::cell_ids
    - S2DensityTree::S2DensityTree
    - EXPECT_TRUE
    - S2DensityTree::InitToVertexDensity
    - TreeCells
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - EXPECT_THAT
    - make_unique<S2PointVectorShape>
    - ASSERT_GT
    - ASSERT_TRUE
    - absl::LogInfoStreamer
    - S2Error::ok
    - S2DensityTree::Leaves
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, LeavesReturnsLeavesOfTree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:638,1
    - Dst: absl::btree_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:639,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:640,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:641,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:644,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:644,1
    - Dst: BuildTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:646,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:649,1
    - Dst: auto::GetNormalCellWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:654,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:654,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:655,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:655,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:656,1
    - Dst: auto::GetCellWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:659,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:659,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:660,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:660,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 663
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - BuildTree
    - Put
    - auto::GetCellWeight
    - EXPECT_EQ
    - auto::GetNormalCellWeight
    - S2CellId::FromFacePosLevel
    - ASSERT_TRUE
    - S2Error::S2Error
    - S2Error::ok
    - SumToRoot
    - absl::btree_map::insert
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST_F(DecodedPathTest, DecoderScalesWeightsBasedOnParent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:666,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:667,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:669,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:671,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:672,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:674,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:675,1
    - Dst: BuildTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:679,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:681,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:685,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:686,1
    - Dst: S2DensityTree::DecodedPath::GetCell
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:686,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:687,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:687,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:692,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:692,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:693,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:693,1
    - Dst: child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:695,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:695,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:705,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:705,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:709,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:709,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:712,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:712,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:713,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:713,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:716,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:716,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:717,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:717,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:720,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:720,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:721,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:721,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:722,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:722,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:723,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:723,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:725,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:726,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:731,1
    - Dst: RandomDescendant
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:731,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:731,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:736,1
    - Dst: RandomDescendant
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:736,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:736,1
    - Dst: ExpectWeight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:737,1
    - Dst: RandomDescendant
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:737,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:737,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 739
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - absl::LogInfoStreamer
    - BuildTree
    - level
    - Put
    - child
    - EXPECT_TRUE
    - RandomDescendant
    - ABSL_CHECK_LT
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - s2random::LogUniform
    - S2CellId::FromFace
    - S2Error::S2Error
    - S2Error::ok
    - S2DensityTree::DecodedPath::GetCell
    - ExpectWeight
    - SumToRoot
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST_F(DecodedPathTest, DecodesPathsCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:745,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:747,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:748,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:753,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:753,1
    - Dst: BuildTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:756,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:758,1
    - Dst: auto::GetPartitioning
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:759,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:760,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:760,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:765,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 768
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - BuildTree
    - level
    - Put
    - auto::GetPartitioning
    - S2CellId::FromFacePosLevel
    - ASSERT_TRUE
    - EXPECT_EQ
    - S2Error::ok
    - SumToRoot
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST_F(GetPartitioningTest, RemovesPointlessSplits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:772,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:773,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:775,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:776,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:782,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:782,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:788,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:788,1
    - Dst: BuildTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:791,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:793,1
    - Dst: auto::GetPartitioning
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:794,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:795,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:795,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:799,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:801,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:801,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:802,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:805,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:805,1
    - Dst: ADD_FAILURE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:807,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:808,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 812
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - BuildTree
    - level
    - Put
    - ADD_FAILURE
    - auto::GetPartitioning
    - face
    - S2CellId::FromFacePosLevel
    - ASSERT_TRUE
    - EXPECT_EQ
    - S2Error::ok
    - SumToRoot
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST_F(GetPartitioningTest, ReplacesChildrenWithParent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:817,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:817,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:820,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:821,1
    - Dst: BuildTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:823,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:825,1
    - Dst: auto::GetPartitioning
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:826,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:829,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:829,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:831,1
    - Dst: num_cells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 833
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - BuildTree
    - Put
    - auto::GetPartitioning
    - vector::size
    - S2CellId::FromFacePosLevel
    - num_cells
    - EXPECT_EQ
    - SumToRoot
    - absl::btree_map::insert
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST_F(GetPartitioningTest, OversizeCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 837
    functionName: SumDensityTreesTest::SumDensityTreesTest
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SumDensityTreesTest()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:840,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:840,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:841,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:842,1
    - Dst: SumDensityTreesTest::Insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:844,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:844,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' encoder'
    - cell
    argTypes:
    - S2DensityTree::TreeEncoder
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 848
    functionName: SumDensityTreesTest::Insert
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 1
    functionsReached:
    - S2CellId::is_leaf
    - Put
    - end
    - find
    - SumDensityTreesTest::Insert
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void Insert(S2DensityTree::TreeEncoder& encoder, S2CellId cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:854,1
    - Dst: S2DensityTree::BreadthFirstTreeBuilder::BreadthFirstTreeBuilder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - approx_size_bytes
    - max_level
    - sum
    - absl_nonnull
    argTypes:
    - int64_t
    - int
    - S2DensityTree::BreadthFirstTreeBuilder::CellWeightFunction
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 858
    functionName: SumDensityTreesTest::BuildTree
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - S2DensityTree::BreadthFirstTreeBuilder::BreadthFirstTreeBuilder
    - S2DensityTree::S2DensityTree
    linkageType: ''
    returnType: S2DensityTree
    signature: "S2DensityTree BuildTree(\n      int64_t approx_size_bytes, int max_level,\n
      \     S2DensityTree::BreadthFirstTreeBuilder::CellWeightFunction sum,\n      S2Error*
      absl_nonnull error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:862,1
    - Dst: S2DensityTree::TreeEncoder::TreeEncoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:865,1
    - Dst: SumDensityTreesTest::Insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:868,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:872,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:873,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:874,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:875,1
    - Dst: S2DensityTree::TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:877,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:877,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:879,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:884,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:887,1
    - Dst: GetParam
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:889,1
    - Dst: S2DensityTree::InitToSumDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:890,1
    - Dst: S2DensityTree::InitToSumDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:892,1
    - Dst: S2DensityTree::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:895,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:897,1
    - Dst: ExpectDecodedTreesEqual
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' expected'
    - roots
    argTypes:
    - absl::btree_map<S2CellId, int64_t>
    - absl::Span<const S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 898
    functionName: SumDensityTreesTest::CheckSum
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - level
    - S2DensityTree::TreeEncoder::Build
    - S2DensityTree::S2DensityTree
    - EXPECT_TRUE
    - find
    - S2DensityTree::Decode
    - vector::back
    - ExpectDecodedTreesEqual
    - S2DensityTree::TreeEncoder::Put
    - GetParam
    - vector::emplace_back
    - SumDensityTreesTest::Insert
    - S2DensityTree::InitToSumDensity
    - S2DensityTree::TreeEncoder::TreeEncoder
    - parent
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void CheckSum(const absl::btree_map<S2CellId, int64_t>& expected,\n
      \               absl::Span<const S2CellId> roots, int max_level = 30)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSum
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 915
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - CheckSum
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumDensityTreesTest, SumEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSum
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:918,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:920,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:921,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:922,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 927
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - CheckSum
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumDensityTreesTest, SumOne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSum
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:930,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:933,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:934,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:935,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:938,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 941
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - CheckSum
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumDensityTreesTest, SumNested)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSum
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:944,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:946,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:947,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:948,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:951,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 954
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - CheckSum
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumDensityTreesTest, SumDisjoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSum
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:957,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:957,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:958,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:959,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:962,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 965
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromFacePosLevel
    - CheckSum
    - SumToRoot
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumDensityTreesTest, SumLeaves)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSum
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:968,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:968,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:969,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:970,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:973,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 977
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromFacePosLevel
    - CheckSum
    - SumToRoot
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumDensityTreesTest, SumLeavesLevelLimited)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:980,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:982,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:983,1
    - Dst: BuildTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:984,1
    - Dst: intersects
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:987,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:990,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:990,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:992,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:993,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:993,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:995,1
    - Dst: ExpectDecodedTreesEqual
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:995,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:996,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 979
    functionDepth: 2
    functionLinenumber: 979
    functionLinenumberEnd: 998
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - BuildTree
    - EXPECT_TRUE
    - auto::Decode
    - S2CellId::level
    - S2Error::code
    - S2CellId::parent
    - S2CellId::FromFace
    - intersects
    - SumToRoot
    - ExpectDecodedTreesEqual
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumDensityTreesTest, SumMaxLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1001,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1002,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1004,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1005,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1007,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1008,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1008,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1009,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1011,1
    - Dst: S2DensityTree::InitToVertexDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1012,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1013,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1013,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1017,1
    - Dst: S2DensityTree::InitToSumDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1018,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1019,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1019,1
    - Dst: S2DensityTree::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1021,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1022,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1022,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1025,1
    - Dst: auto::empty
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1025,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1026,1
    - Dst: S2DensityTree::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1027
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2DensityTree::S2DensityTree
    - S2DensityTree::InitToVertexDensity
    - S2DensityTree::Decode
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2PointVectorShape>
    - ASSERT_TRUE
    - auto::empty
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Error::ok
    - S2DensityTree::InitToSumDensity
    - S2Testing::MakeTaggedSeedSeq
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumDensityTreesTest, SumEmptyAndNonEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1037
    functionName: CoveringsTest::CoveringsTest
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CoveringsTest()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1045,1
    - Dst: absl::btree_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1047,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1047,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1048,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1048,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1053,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1055,1
    - Dst: absl::btree_map::find
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1060,1
    - Dst: absl::btree_map::end
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1060,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1065,1
    - Dst: CoveringsTest::Weight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1067,1
    - Dst: S2ShapeIndexRegion::Contains
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1068,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1068,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1071,1
    - Dst: S2DensityTree::IndexCellWeightFunction::WeighCell
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1071,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1072,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1072,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1077,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1077,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1077,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1078,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1079,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1079,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1083,1
    - Dst: CoveringsTest::Weight
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1083,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1084,1
    - Dst: S2DensityTree::IndexCellWeightFunction::WeighCell
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1084,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1085,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1085,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - shape_weights
    argTypes:
    - vector<std::pair<unique_ptr<S2Shape>, int64_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1042
    functionDepth: 7
    functionLinenumber: 1042
    functionLinenumberEnd: 1087
    functionName: CoveringsTest::CheckCoverings
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::code
    - absl::btree_map::end
    - S2Error::S2Error
    - CoveringsTest::Weight
    - S2ShapeIndexRegion
    - S2Cell
    - EXPECT_EQ
    - S2RegionCoverer::Options::set_max_cells
    - S2DensityTree::IndexCellWeightFunction::WeighCell
    - absl::btree_map::insert
    - MutableS2ShapeIndex::Add
    - S2CellUnion::Intersects
    - S2Loop::kFull
    - std::move
    - absl::btree_map::find
    - S2RegionCoverer::GetCovering
    - S2Loop
    - S2ShapeIndexRegion::Contains
    - get
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2CellUnion::Difference
    linkageType: ''
    returnType: void
    signature: "void CheckCoverings(\n      vector<std::pair<unique_ptr<S2Shape>,
      int64_t>> shape_weights)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1094,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1095,1
    - Dst: make_unique<S2WrappedShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1095,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1096,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' weights'
    - cell
    argTypes:
    - absl::btree_map<const S2Shape*, int64_t>
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1101
    functionName: CoveringsTest::Weight
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 1
    functionsReached:
    - make_unique<S2WrappedShape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexRegion
    - S2Cell
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: int64_t
    signature: "int64_t Weight(const absl::btree_map<const S2Shape*, int64_t>& weights,\n
      \                const S2CellId cell) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1106,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1107,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1107,1
    - Dst: S2Loop::kEmpty
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1107,1
    - Dst: CheckCoverings
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1110,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1111
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Loop>
    - std::move
    - make_unique<S2Loop::OwningShape>
    - CheckCoverings
    - S2Loop::kEmpty
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST_F(CoveringsTest, ShapeIndexEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1114,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1115,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1118,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1119,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1119,1
    - Dst: CheckCoverings
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1122,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1113
    functionDepth: 4
    functionLinenumber: 1113
    functionLinenumberEnd: 1123
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - std::move
    - CheckCoverings
    - make_unique<S2PointVectorShape>
    - vector::emplace_back
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(CoveringsTest, ShapeIndexPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1126,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1127,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1130,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1131,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1131,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1132,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1132,1
    - Dst: CheckCoverings
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1135,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1125
    functionDepth: 4
    functionLinenumber: 1125
    functionLinenumberEnd: 1136
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - std::move
    - CheckCoverings
    - make_unique<S2LaxPolylineShape>
    - S2Testing::KmToAngle
    - vector::emplace_back
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST_F(CoveringsTest, ShapeIndexLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1139,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1140,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1143,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1144,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1145,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1146,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1146,1
    - Dst: CheckCoverings
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1149,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1138
    functionDepth: 4
    functionLinenumber: 1138
    functionLinenumberEnd: 1150
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - make_unique<S2LaxPolygonShape>
    - std::move
    - CheckCoverings
    - S2Testing::KmToAngle
    - vector::emplace_back
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST_F(CoveringsTest, ShapeIndexPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1153,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1154,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1157,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1158,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1158,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1160,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1161,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1162,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1163,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1163,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1165,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1166,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1166,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1167,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1167,1
    - Dst: CheckCoverings
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1170,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1152
    functionDepth: 4
    functionLinenumber: 1152
    functionLinenumberEnd: 1171
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - make_unique<S2LaxPolygonShape>
    - std::move
    - CheckCoverings
    - make_unique<S2PointVectorShape>
    - S2Testing::KmToAngle
    - make_unique<S2LaxPolylineShape>
    - vector::emplace_back
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST_F(CoveringsTest, ShapeIndexMultiple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1175,1
    - Dst: S2DensityTree::TreeEncoder::TreeEncoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1176,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1177,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1177,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1178,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1178,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1179,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1179,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1180,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1180,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1181,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1181,1
    - Dst: S2DensityTree::TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1182,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1189,1
    - Dst: S2DensityTree::Dilate
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1191,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1191,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1192,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1192,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1195,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1196,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1196,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1199,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1205
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - std::vector::push_back
    - testing::UnorderedElementsAre
    - S2DensityTree::S2DensityTree
    - S2Testing::MetersToAngle
    - TreeCells
    - S2DensityTree::Dilate
    - EXPECT_THAT
    - S2CellId::FromDebugString
    - S2DensityTree::TreeEncoder::Put
    - ASSERT_TRUE
    - S2Error::ok
    - S2DensityTree::TreeEncoder::TreeEncoder
    - S2DensityTree::TreeEncoder::Build
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, SmallDilationConstrainedToLeafLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1209,1
    - Dst: S2DensityTree::TreeEncoder::TreeEncoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1210,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1211,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1211,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1212,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1212,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1213,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1213,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1214,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1214,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1215,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1215,1
    - Dst: S2DensityTree::TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1216,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1224,1
    - Dst: S2DensityTree::Dilate
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1226,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1226,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1227,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1227,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1228,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1207
    functionDepth: 2
    functionLinenumber: 1207
    functionLinenumberEnd: 1229
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - S2DensityTree::S2DensityTree
    - S2Testing::MetersToAngle
    - TreeCells
    - S2DensityTree::Dilate
    - S2CellId::FromDebugString
    - S2DensityTree::TreeEncoder::Put
    - ASSERT_TRUE
    - EXPECT_EQ
    - S2Error::ok
    - S2DensityTree::TreeEncoder::TreeEncoder
    - S2DensityTree::TreeEncoder::Build
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, SmallDilationRelativeToLeafSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1248,1
    - Dst: S2DensityTree::TreeEncoder::TreeEncoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1249,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1250,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1250,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1251,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1251,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1252,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1252,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1253,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1253,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1254,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1254,1
    - Dst: S2DensityTree::TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1255,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1257,1
    - Dst: S2DensityTree::TreeEncoder::TreeEncoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1258,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1259,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1259,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1260,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1260,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1261,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1261,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1262,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1262,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1263,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1263,1
    - Dst: S2DensityTree::TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1264,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1267,1
    - Dst: S2DensityTree::Dilate
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1269,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1269,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1270,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1270,1
    - Dst: S2DensityTree::Dilate
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1272,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1272,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1273,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1273,1
    - Dst: S2DensityTree::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1277,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1278,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1278,1
    - Dst: S2DensityTree::Decode
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1279,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1280,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1280,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1282,1
    - Dst: testing::IsSupersetOf
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1282,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1283,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1283,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1284,1
    - Dst: testing::IsSupersetOf
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1284,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1285,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1231
    functionDepth: 3
    functionLinenumber: 1231
    functionLinenumberEnd: 1286
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - S2DensityTree::S2DensityTree
    - S2DensityTree::TreeEncoder::TreeEncoder
    - testing::IsSupersetOf
    - S2Testing::MetersToAngle
    - S2DensityTree::Decode
    - S2DensityTree::Dilate
    - EXPECT_THAT
    - R2Rect::FromPointPair
    - S2DensityTree::TreeEncoder::Put
    - ASSERT_TRUE
    - S2Error::ok
    - S2CellId::FromToken
    - S2DensityTree::TreeEncoder::Build
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, DilationUsesMaximum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1290,1
    - Dst: S2DensityTree::TreeEncoder::TreeEncoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1291,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1292,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1292,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1293,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1293,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1294,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1294,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1295,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1295,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1296,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1296,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1297,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1297,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1298,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1298,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1299,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1299,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1300,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1300,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1301,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1301,1
    - Dst: S2DensityTree::TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1302,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1309,1
    - Dst: S2DensityTree::Dilate
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1310,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1311,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1312,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1312,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1315,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1316,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1316,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1319,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1324
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - std::vector::push_back
    - testing::UnorderedElementsAre
    - S2DensityTree::S2DensityTree
    - S2Testing::MetersToAngle
    - TreeCells
    - S2DensityTree::Dilate
    - EXPECT_THAT
    - S2CellId::FromDebugString
    - S2DensityTree::TreeEncoder::Put
    - ASSERT_TRUE
    - S2Error::ok
    - S2DensityTree::TreeEncoder::TreeEncoder
    - S2DensityTree::TreeEncoder::Build
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, DilationLargerThanLeafSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_map::try_emplace
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1332,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1332,1
    - Dst: S2DensityTree::TreeEncoder::TreeEncoder
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1335,1
    - Dst: SumToRoot
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1336,1
    - Dst: S2DensityTree::TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1337,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1339,1
    - Dst: S2DensityTree::TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1340,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1343,1
    - Dst: S2DensityTree::Dilate
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1345,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1345,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1346,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1346,1
    - Dst: TreeCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1349,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1350,1
    - Dst: ToToken
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1350,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1355,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1360
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - ToToken
    - std::vector::push_back
    - S2CellId::FromToken
    - testing::UnorderedElementsAre
    - absl::btree_map::try_emplace
    - S2DensityTree::S2DensityTree
    - S2Testing::MetersToAngle
    - TreeCells
    - S2DensityTree::Dilate
    - EXPECT_THAT
    - S2DensityTree::TreeEncoder::Put
    - ASSERT_TRUE
    - S2Error::ok
    - S2DensityTree::TreeEncoder::TreeEncoder
    - SumToRoot
    - S2DensityTree::TreeEncoder::Build
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2DensityTreeTest, DilationAtFaceCenter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1364,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1364,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1365,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1365,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1368,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1369,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1373,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1373,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1374,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1375,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1375,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1378,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1379,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1380,1
    - Dst: S2DensityTree::InitToVertexDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1380,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1383,1
    - Dst: S2DensityTree::VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1362
    functionDepth: 4
    functionLinenumber: 1362
    functionLinenumberEnd: 1390
    functionName: BM_DecodeCellsByVisitor
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - S2DensityTree::VisitCells
    - s2random::Point
    - StrCat
    - std::string::end
    - make_unique<S2LaxPolygonShape>
    - S2DensityTree::S2DensityTree
    - S2DensityTree::InitToVertexDensity
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ABSL_CHECK
    - S2Testing::KmToAngle
    - S2Testing::MakeRegularPoints
    - std::string::begin
    - absl::GetFlag
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void BM_DecodeCellsByVisitor(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1399,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1400,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1403,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1403,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1404,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1404,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1407,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1409,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1409,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1410,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1411,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1411,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1419,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1420,1
    - Dst: S2DensityTree::InitToFeatureDensity
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1421,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2density_tree_test.cc:1424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1398
    functionDepth: 4
    functionLinenumber: 1398
    functionLinenumberEnd: 1426
    functionName: BM_InitToFeatureDensity
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - std::string::end
    - StrCat
    - make_unique<S2LaxPolygonShape>
    - S2DensityTree::S2DensityTree
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2Testing::KmToAngle
    - S2Testing::MakeRegularPoints
    - std::string::begin
    - S2DensityTree::InitToFeatureDensity
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void BM_InitToFeatureDensity(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:33,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:37,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:38,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:40,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:41,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc
    functionUses: 0
    functionsReached:
    - NextEdgeWrap
    - auto::shape
    - PrevEdgeWrap
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, NextPrevEdgePointDoesNotWrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:45,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:49,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:50,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:52,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:53,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc
    functionUses: 0
    functionsReached:
    - NextEdgeWrap
    - auto::shape
    - PrevEdgeWrap
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, NextPrevEdgeOpenPolylineDoesNotWrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:57,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:61,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:62,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:64,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:65,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc
    functionUses: 0
    functionsReached:
    - NextEdgeWrap
    - auto::shape
    - PrevEdgeWrap
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, NextPrevEdgeClosedPolylineWraps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:69,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:73,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:74,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:76,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:77,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc
    functionUses: 0
    functionsReached:
    - NextEdgeWrap
    - auto::shape
    - PrevEdgeWrap
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, NextPrevEdgePolygonWraps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:33,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:37,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:38,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:40,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:41,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc
    functionUses: 0
    functionsReached:
    - NextEdgeWrap
    - auto::shape
    - PrevEdgeWrap
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, NextPrevEdgePointDoesNotWrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:45,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:49,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:50,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:52,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:53,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc
    functionUses: 0
    functionsReached:
    - NextEdgeWrap
    - auto::shape
    - PrevEdgeWrap
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, NextPrevEdgeOpenPolylineDoesNotWrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:57,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:61,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:62,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:64,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:65,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc
    functionUses: 0
    functionsReached:
    - NextEdgeWrap
    - auto::shape
    - PrevEdgeWrap
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, NextPrevEdgeClosedPolylineWraps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:69,1
    - Dst: auto::shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:73,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:74,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:76,1
    - Dst: PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:77,1
    - Dst: NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc
    functionUses: 0
    functionsReached:
    - NextEdgeWrap
    - auto::shape
    - PrevEdgeWrap
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2Shape, NextPrevEdgePolygonWraps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: S2Fractal::max_level
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: S2Fractal::min_level
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int min_level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: S2Fractal::fractal_dimension
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double fractal_dimension() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: S2Fractal::S2Fractal
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Fractal(const S2Fractal&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: operator=(const S2Fractal&)
    functionSourceFile: /src/s2geometry/src/s2/s2fractal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2Fractal&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng.h:95,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2latlng.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: S2LatLng::lat
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 8
    functionsReached:
    - S1Angle::Radians
    - x
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle lat() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng.h:96,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2latlng.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: S2LatLng::lng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 8
    functionsReached:
    - y
    - S1Angle::Radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle lng() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: '& coords() const'
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R2Point
    signature: R2Point & coords() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: operator==(const S2LatLng& o) const
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const S2LatLng& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: operator!=(const S2LatLng& o) const
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const S2LatLng& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: operator<(const S2LatLng& o) const
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const S2LatLng& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: operator>(const S2LatLng& o) const
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const S2LatLng& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: operator<=(const S2LatLng& o) const
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const S2LatLng& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: operator>=(const S2LatLng& o) const
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const S2LatLng& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng.h:159,1
    - Dst: aequal
      Src: /src/s2geometry/src/s2/s2latlng.h:160,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2latlng.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: S2LatLng::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached:
    - aequal
    - S1Angle::Radians
    - radians
    linkageType: ''
    returnType: bool
    signature: "bool ApproxEquals(const S2LatLng& o,\n                    S1Angle
      max_error = S1Angle::Radians(1e-15)) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' coords'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: S2LatLng::S2LatLng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLng(const R2Point& coords)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lat_radians
    - lng_radians
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: S2LatLng::S2LatLng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLng(double lat_radians, double lng_radians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2latlng.h:183,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2latlng.h:183,1
    - Dst: coords
      Src: /src/s2geometry/src/s2/s2latlng.h:183,1
    - Dst: coords
      Src: /src/s2geometry/src/s2/s2latlng.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' lat_lng'
    argTypes:
    - H
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    - coords
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const S2LatLng& lat_lng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng.h:194,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lat
    - lng
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: S2LatLng::S2LatLng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 5
    functionsReached:
    - S1Angle::radians
    linkageType: ''
    returnType: void
    signature: void S2LatLng::S2LatLng(S1Angle lat, S1Angle lng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: S2LatLng::S2LatLng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLng::S2LatLng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat_radians
    - lng_radians
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: S2LatLng::FromRadians
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 22
    functionsReached:
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: "S2LatLng S2LatLng::FromRadians(double lat_radians,\n                                                double
      lng_radians)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:205,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng.h:205,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat_degrees
    - lng_degrees
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: S2LatLng::FromDegrees
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 105
    functionsReached:
    - S1Angle::Degrees
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: "S2LatLng S2LatLng::FromDegrees(double lat_degrees,\n                                                double
      lng_degrees)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:209,1
    - Dst: S1Angle::E5
      Src: /src/s2geometry/src/s2/s2latlng.h:209,1
    - Dst: S1Angle::E5
      Src: /src/s2geometry/src/s2/s2latlng.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat_e5
    - lng_e5
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: S2LatLng::FromE5
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 4
    functionsReached:
    - S2LatLng::S2LatLng
    - S1Angle::E5
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2LatLng::FromE5(int32_t lat_e5, int32_t lng_e5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:213,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s2latlng.h:213,1
    - Dst: S1Angle::E6
      Src: /src/s2geometry/src/s2/s2latlng.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat_e6
    - lng_e6
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: S2LatLng::FromE6
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 5
    functionsReached:
    - S2LatLng::S2LatLng
    - S1Angle::E6
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2LatLng::FromE6(int32_t lat_e6, int32_t lng_e6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:217,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2latlng.h:217,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2latlng.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat_e7
    - lng_e7
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: S2LatLng::FromE7
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 4
    functionsReached:
    - S1Angle::E7
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2LatLng::FromE7(int32_t lat_e7, int32_t lng_e7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:222,1
    - Dst: S1Angle::UnsignedE6
      Src: /src/s2geometry/src/s2/s2latlng.h:222,1
    - Dst: S1Angle::UnsignedE6
      Src: /src/s2geometry/src/s2/s2latlng.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat_e6
    - lng_e6
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: S2LatLng::FromUnsignedE6
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached:
    - S1Angle::UnsignedE6
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: "S2LatLng S2LatLng::FromUnsignedE6(uint32_t lat_e6,\n                                                   uint32_t
      lng_e6)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:227,1
    - Dst: S1Angle::UnsignedE7
      Src: /src/s2geometry/src/s2/s2latlng.h:227,1
    - Dst: S1Angle::UnsignedE7
      Src: /src/s2geometry/src/s2/s2latlng.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat_e7
    - lng_e7
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: S2LatLng::FromUnsignedE7
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached:
    - S1Angle::UnsignedE7
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: "S2LatLng S2LatLng::FromUnsignedE7(uint32_t lat_e7,\n                                                   uint32_t
      lng_e7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: S2LatLng::Invalid
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 2
    functionsReached:
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2LatLng::Invalid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng.h:241,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2latlng.h:241,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2latlng.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: S2LatLng::Latitude
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 5
    functionsReached:
    - atan2
    - S1Angle::Radians
    - sqrt
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2LatLng::Latitude(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng.h:249,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2latlng.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: S2LatLng::Longitude
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 7
    functionsReached:
    - atan2
    - S1Angle::Radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2LatLng::Longitude(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2latlng.h:253,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng.h:253,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2latlng.h:254,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng.h:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: S2LatLng::is_valid
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 3
    functionsReached:
    - std::fabs
    - S2LatLng::lng
    - S2LatLng::lat
    linkageType: ''
    returnType: bool
    signature: bool S2LatLng::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: S2Point
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 271
    functionsReached:
    - ToPoint
    linkageType: ''
    returnType: S2LatLng::operator
    signature: S2LatLng::operator S2Point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: operator+(const S2LatLng& a, const S2LatLng& b)
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached:
    - S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng operator+(const S2LatLng& a, const S2LatLng& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: operator-(const S2LatLng& a, const S2LatLng& b)
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached:
    - S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng operator-(const S2LatLng& a, const S2LatLng& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - ' a'
    argTypes:
    - double
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: operator*(double m, const S2LatLng& a)
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached:
    - S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng operator*(double m, const S2LatLng& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - m
    argTypes:
    - S2LatLng
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: operator*(const S2LatLng& a, double m)
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.h
    functionUses: 0
    functionsReached:
    - S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng operator*(const S2LatLng& a, double m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineSimplifier::S2PolylineSimplifier
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:44,1
    - Dst: S2PolylineSimplifier::Init
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:45,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:45,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:46,1
    - Dst: S2PolylineSimplifier::TargetDisc
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:47,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:50,1
    - Dst: S2PolylineSimplifier::AvoidDisc
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:53,1
    - Dst: S2PolylineSimplifier::Extend
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:53,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - src
    - dst
    - target
    - avoid
    - disc_on_left
    - radius_degrees
    - expected_result
    argTypes:
    - string_view
    - string_view
    - string_view
    - string_view
    - absl::Span<const bool>
    - double
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: CheckSimplify
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineSimplifier::Extend
    - S2PolylineSimplifier::Init
    - S2PolylineSimplifier::AvoidDisc
    - S2PolylineSimplifier::TargetDisc
    - s2textformat::MakePointOrDie
    - s2textformat::ParsePointsOrDie
    - EXPECT_EQ
    - S2PolylineSimplifier::S2PolylineSimplifier
    linkageType: ''
    returnType: void
    signature: "void CheckSimplify(string_view src, string_view dst, string_view target,\n
      \                  string_view avoid, absl::Span<const bool> disc_on_left,\n
      \                  double radius_degrees, bool expected_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineSimplifier::S2PolylineSimplifier
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:59,1
    - Dst: S2PolylineSimplifier::Init
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:60,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:61,1
    - Dst: S2PolylineSimplifier::src
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:61,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineSimplifier::Init
    - S2Point
    - S2PolylineSimplifier::src
    - EXPECT_EQ
    - S2PolylineSimplifier::S2PolylineSimplifier
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineSimplifier, Src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineSimplifier::S2PolylineSimplifier
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:66,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:67,1
    - Dst: S2PolylineSimplifier::Init
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:68,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:69,1
    - Dst: S2PolylineSimplifier::TargetDisc
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:69,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:70,1
    - Dst: S2PolylineSimplifier::TargetDisc
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:70,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:70,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:71,1
    - Dst: S2PolylineSimplifier::Extend
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:71,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:71,1
    - Dst: S2PolylineSimplifier::Init
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:73,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:74,1
    - Dst: S2PolylineSimplifier::TargetDisc
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:74,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:75,1
    - Dst: S2PolylineSimplifier::TargetDisc
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:75,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:76,1
    - Dst: S2PolylineSimplifier::Extend
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:76,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineSimplifier::Extend
    - S2PolylineSimplifier::Init
    - EXPECT_TRUE
    - S2Point
    - S1Angle::Degrees
    - S2PolylineSimplifier::TargetDisc
    - S2PolylineSimplifier::S2PolylineSimplifier
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineSimplifier, Reuse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:81,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:84,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
    functionUses: 0
    functionsReached:
    - CheckSimplify
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineSimplifier, NoConstraints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:93,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:96,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:99,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
    functionUses: 0
    functionsReached:
    - CheckSimplify
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineSimplifier, TargetOnePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:107,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:110,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:114,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:118,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:119,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:120,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 122
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
    functionUses: 0
    functionsReached:
    - CheckSimplify
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineSimplifier, AvoidOnePoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:135,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
    functionUses: 0
    functionsReached:
    - CheckSimplify
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineSimplifier, AvoidSeveralPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:148,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:152,1
    - Dst: CheckSimplify
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 158
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
    functionUses: 0
    functionsReached:
    - CheckSimplify
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineSimplifier, TargetAndAvoid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:162,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:162,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:168,1
    - Dst: S2PolylineSimplifier::S2PolylineSimplifier
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:175,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:177,1
    - Dst: S2PolylineSimplifier::Init
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:178,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:180,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:180,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:181,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:181,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:182,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:186,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:191,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:192,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:193,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:193,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:194,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:195,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:198,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:202,1
    - Dst: S2PolylineSimplifier::AvoidDisc
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:206,1
    - Dst: S2PolylineSimplifier::TargetDisc
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:212,1
    - Dst: S2PolylineSimplifier::Extend
      Src: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 214
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
    functionUses: 0
    functionsReached:
    - S2PolylineSimplifier::Extend
    - s2random::Point
    - S2::GetPointOnLine
    - S2PolylineSimplifier::Init
    - absl::Bernoulli
    - S1Angle::Radians
    - S2PolylineSimplifier::AvoidDisc
    - S2PolylineSimplifier::TargetDisc
    - S1Angle
    - Normalize
    - S2::RobustCrossProd
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2PolylineSimplifier::S2PolylineSimplifier
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineSimplifier, Precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: s2coding::EncodedStringVector::EncodedStringVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedStringVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:129,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:129,1
    - Dst: Ensure
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:130,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:130,1
    - Dst: putn
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:131,1
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:131,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: s2coding::StringVectorEncoder::Add
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - putn
    - absl::string_view::size
    - push_back
    - Ensure
    - length
    linkageType: ''
    returnType: void
    signature: void StringVectorEncoder::Add(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:135,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: s2coding::StringVectorEncoder::AddViaEncoder
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached:
    - length
    - push_back
    linkageType: ''
    returnType: Encoder
    signature: Encoder * StringVectorEncoder::AddViaEncoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::Clear
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:140,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: s2coding::EncodedStringVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 1
    functionsReached:
    - s2coding::EncodedStringVector::Clear
    - absl::string_view
    linkageType: ''
    returnType: void
    signature: void EncodedStringVector::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: s2coding::EncodedStringVector::size
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 7
    functionsReached:
    - s2coding::EncodedStringVector::size
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedStringVector::size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:150,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:151,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:155,1
    - Dst: substr
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:156,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: EncodedStringVector::operator[](size_t i) const
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached:
    - substr
    - size
    - absl::string_view
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view EncodedStringVector::operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: s2coding::EncodedStringVector::GetDecoder
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached:
    - Decoder
    linkageType: ''
    returnType: Decoder
    signature: Decoder EncodedStringVector::GetDecoder(size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: s2coding::EncodedStringVector::EncodedStringVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedStringVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:129,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:129,1
    - Dst: Ensure
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:130,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:130,1
    - Dst: putn
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:131,1
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:131,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: s2coding::StringVectorEncoder::Add
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - putn
    - absl::string_view::size
    - push_back
    - Ensure
    - length
    linkageType: ''
    returnType: void
    signature: void StringVectorEncoder::Add(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:135,1
    - Dst: length
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: s2coding::StringVectorEncoder::AddViaEncoder
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached:
    - length
    - push_back
    linkageType: ''
    returnType: Encoder
    signature: Encoder * StringVectorEncoder::AddViaEncoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::Clear
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:140,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: s2coding::EncodedStringVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 2
    functionsReached:
    - s2coding::EncodedStringVector::Clear
    - absl::string_view
    linkageType: ''
    returnType: void
    signature: void EncodedStringVector::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: s2coding::EncodedStringVector::size
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 8
    functionsReached:
    - s2coding::EncodedStringVector::size
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedStringVector::size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:150,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:151,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:155,1
    - Dst: substr
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:156,1
    - Dst: absl::string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: EncodedStringVector::operator[](size_t i) const
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached:
    - substr
    - size
    - absl::string_view
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view EncodedStringVector::operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: s2coding::EncodedStringVector::GetDecoder
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector.h
    functionUses: 0
    functionsReached:
    - Decoder
    linkageType: ''
    returnType: Decoder
    signature: Decoder EncodedStringVector::GetDecoder(size_t i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:79,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:80,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:82,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:82,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - bitgen
    - distance
    - ' a0'
    - ' b0'
    argTypes:
    - absl::BitGenRef
    - S1Angle
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: PerturbAtDistance
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - nextafter
    - S2Point::Normalize
    - S2::GetPointOnLine
    - absl::Bernoulli
    linkageType: ''
    returnType: S2Point
    signature: "S2Point PerturbAtDistance(absl::BitGenRef bitgen, S1Angle distance,\n
      \                         const S2Point& a0, const S2Point& b0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<TestEdge>*::clear
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:94,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:95,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:96,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:99,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:100,1
    - Dst: vector<TestEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:101,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:102,1
    - Dst: PerturbAtDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:102,1
    - Dst: PerturbAtDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - bitgen
    - a0
    - b0
    - count
    - edges
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - int
    - vector<TestEdge>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: GetPerturbedSubEdges
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - vector<TestEdge>*::clear
    - S2Point::Normalize
    - vector<TestEdge>*::push_back
    - PerturbAtDistance
    - std::make_pair
    - s2random::LogUniform
    linkageType: ''
    returnType: void
    signature: "void GetPerturbedSubEdges(absl::BitGenRef bitgen, S2Point a0, S2Point
      b0,\n                          int count, vector<TestEdge>* edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<TestEdge>*::clear
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:111,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:113,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:115,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:117,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:117,1
    - Dst: vector<TestEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:118,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - bitgen
    - ' center_cap'
    - max_length
    - count
    - edges
    argTypes:
    - absl::BitGenRef
    - S2Cap
    - S1Angle
    - int
    - vector<TestEdge>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: GetCapEdges
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - vector<TestEdge>*::clear
    - S2Point::DotProd
    - vector<TestEdge>*::push_back
    - s2random::SamplePoint
    - Normalize
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: "void GetCapEdges(absl::BitGenRef bitgen, const S2Cap& center_cap,\n
      \                S1Angle max_length, int count, vector<TestEdge>* edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:128,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - shape_edges
    argTypes:
    - absl::Span<const ShapeEdge>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: GetShapeEdgeIds
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - id
    linkageType: ''
    returnType: vector<ShapeEdgeId>
    signature: "vector<ShapeEdgeId> GetShapeEdgeIds(\n    absl::Span<const ShapeEdge>
      shape_edges)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeVectorShape::S2EdgeVectorShape
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:134,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:136,1
    - Dst: MutableS2ShapeIndex::Options::set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:140,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:142,1
    - Dst: absl::WrapUnique
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:143,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:150,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:150,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:155,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:159,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:160,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:160,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:163,1
    - Dst: is_sorted
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:163,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:163,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:164,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:164,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:165,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:165,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:166,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:166,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:166,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:167,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:170,1
    - Dst: auto::edge
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:171,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:174,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:176,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:178,1
    - Dst: std::binary_search
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:181,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:181,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:181,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:183,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:186,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:187,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:188,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:189,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:190,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:195,1
    - Dst: string::empty
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:195,1
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:200,1
    - Dst: GetShapeEdgeIds
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:200,1
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:204,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:205,1
    - Dst: GetShapeEdgeIds
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:205,1
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:210,1
    - Dst: GetShapeEdgeIds
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:211,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:215,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - edges
    argTypes:
    - absl::Span<const TestEdge>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 216
    functionName: TestAllCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::end
    - vector::back
    - S2::CrossingSign
    - vector::size
    - S2::GetDistance
    - absl::StrAppend
    - EXPECT_LT
    - EXPECT_GE
    - S2EdgeVectorShape::S2EdgeVectorShape
    - EXPECT_EQ
    - vector::begin
    - MutableS2ShapeIndex::Add
    - auto::Add
    - vector::push_back
    - string::empty
    - vector::front
    - is_sorted
    - EXPECT_TRUE
    - GetValue
    - push_back
    - S2CrossingEdgeQuery::GetCrossingEdges
    - S2CrossingEdgeQuery::GetCandidates
    - vector::empty
    - EXPECT_LE
    - MutableS2ShapeIndex::Options::set_max_edges_per_cell
    - GetShapeEdgeIds
    - absl::WrapUnique
    - StrCat
    - std::binary_search
    - auto::edge
    - SCOPED_TRACE
    - auto::num_edges
    linkageType: ''
    returnType: void
    signature: void TestAllCrossings(absl::Span<const TestEdge> edges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:226,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:227,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:230,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:231,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:232,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:233,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:234,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:235,1
    - Dst: GetPerturbedSubEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:238,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetNorm
    - TestAllCrossings
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - GetPerturbedSubEdges
    - S2Testing::MakeTaggedSeedSeq
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, PerturbedCubeEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:247,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:248,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:251,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:252,1
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:253,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:253,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:254,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:255,1
    - Dst: GetPerturbedSubEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:256,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 259
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetNorm
    - S2::GetUVWAxis
    - TestAllCrossings
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - GetPerturbedSubEdges
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, PerturbedCubeFaceAxes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:264,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:265,1
    - Dst: GetCapEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:267,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:268,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:268,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:268,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:269,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 5
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - GetCapEdges
    - S2Point
    - S2Cap
    - S1Angle::Radians
    - TestAllCrossings
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, CapEdgesNearCubeVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:274,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:276,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:280,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:280,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:280,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:280,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 283
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - TestAllCrossings
    - std::make_pair
    - absl::LogInfoStreamer
    - S2Cell::GetVertex
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, DegenerateEdgeOnCellVertexIsItsOwnCandidate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:286,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:287,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:291,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:292,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:293,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:298,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:298,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:298,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:299,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 304
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Cell::GetVertexRaw
    - TestAllCrossings
    - Normalize
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - std::make_pair
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, CollinearEdgesOnCellBoundaries)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:311,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:312,1
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:314,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:314,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:314,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:314,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:317,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:318,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:318,1
    - Dst: auto*::polyline
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:319,1
    - Dst: S2Polyline*::num_vertices
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:320,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:321,1
    - Dst: S2Polyline*::vertex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:321,1
    - Dst: S2Polyline*::vertex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:322,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:323,1
    - Dst: std::count_if
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:323,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:323,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:323,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' index'
    - ' a0'
    - ' a1'
    argTypes:
    - S2ShapeIndex
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 330
    functionName: TestPolylineCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - id
    - v1
    - ABSL_CHECK_GE
    - v0
    - S2::CrossingSign
    - num_shape_ids
    - down_cast
    - S2CrossingEdgeQuery::GetCrossingEdges
    - shape
    - vector::empty
    - auto*::polyline
    - S2Polyline*::vertex
    - vector::end
    - EXPECT_EQ
    - std::count_if
    - S2Polyline*::num_vertices
    - vector::begin
    linkageType: ''
    returnType: void
    signature: "void TestPolylineCrossings(const S2ShapeIndex& index,\n                           const
      S2Point& a0, const S2Point& a1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:333,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:335,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:335,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:336,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:337,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:337,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:338,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:339,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:339,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:340,1
    - Dst: TestPolylineCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:341,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:341,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:341,1
    - Dst: TestPolylineCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:342,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:342,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineCrossings
    - MakePolylineOrDie
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MakePointOrDie
    - make_unique<S2Polyline::OwningShape>
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossings, PolylineCrossings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:348,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:349,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:349,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:350,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:350,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:351,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:351,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:352,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:352,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:353,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:353,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:354,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:354,1
    - Dst: TestPolylineCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:355,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:355,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    - TestPolylineCrossings
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - MakePointOrDie
    - MutableS2ShapeIndex::Add
    - make_unique<S2Polyline::OwningShape>
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossings, ShapeIdsAreCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:366,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:367,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:370,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:370,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:376,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:379,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:380,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:380,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:381,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:383,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:384,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:385,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:386,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:388,1
    - Dst: S2::ClipToFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:389,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:393,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:393,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:398,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:398,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:399,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:401,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:402,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:402,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:403,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:410,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:411,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 415
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - absl::Uniform<double>
    - S2::GetUVWFace
    - S2Point::S2Point
    - MutableS2ShapeIndex::Add
    - EXPECT_TRUE
    - S2::ClipToFace
    - S2CrossingEdgeQuery::VisitCells
    - S2::ClipToPaddedFace
    - S2CellId::FromFace
    - make_unique<S2Polyline::OwningShape>
    - S2Testing::MakeTaggedSeedSeq
    - S2::FaceUVtoXYZ
    - make_unique<S2Polyline>
    - StrCat
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - SCOPED_TRACE
    - S2::GetFace
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(VisitCells, QueryEdgeOnFaceBoundary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:421,1
    - Dst: S2CrossingEdgeQuery::index
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 422
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2CrossingEdgeQuery::index
    linkageType: ''
    returnType: void
    signature: void TEST(S2CrossingEdgeQuery, Index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:79,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:80,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:82,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:82,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - bitgen
    - distance
    - ' a0'
    - ' b0'
    argTypes:
    - absl::BitGenRef
    - S1Angle
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: PerturbAtDistance
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 1
    functionsReached:
    - nextafter
    - S2Point::Normalize
    - S2::GetPointOnLine
    - absl::Bernoulli
    linkageType: ''
    returnType: S2Point
    signature: "S2Point PerturbAtDistance(absl::BitGenRef bitgen, S1Angle distance,\n
      \                         const S2Point& a0, const S2Point& b0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<TestEdge>*::clear
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:94,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:95,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:96,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:99,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:100,1
    - Dst: vector<TestEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:101,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:102,1
    - Dst: PerturbAtDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:102,1
    - Dst: PerturbAtDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - bitgen
    - a0
    - b0
    - count
    - edges
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    - int
    - vector<TestEdge>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: GetPerturbedSubEdges
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 2
    functionsReached:
    - vector<TestEdge>*::clear
    - S2Point::Normalize
    - vector<TestEdge>*::push_back
    - PerturbAtDistance
    - std::make_pair
    - s2random::LogUniform
    linkageType: ''
    returnType: void
    signature: "void GetPerturbedSubEdges(absl::BitGenRef bitgen, S2Point a0, S2Point
      b0,\n                          int count, vector<TestEdge>* edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<TestEdge>*::clear
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:111,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:113,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:115,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:117,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:117,1
    - Dst: vector<TestEdge>*::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:118,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - bitgen
    - ' center_cap'
    - max_length
    - count
    - edges
    argTypes:
    - absl::BitGenRef
    - S2Cap
    - S1Angle
    - int
    - vector<TestEdge>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: GetCapEdges
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 1
    functionsReached:
    - vector<TestEdge>*::clear
    - S2Point::DotProd
    - vector<TestEdge>*::push_back
    - s2random::SamplePoint
    - Normalize
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: "void GetCapEdges(absl::BitGenRef bitgen, const S2Cap& center_cap,\n
      \                S1Angle max_length, int count, vector<TestEdge>* edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:128,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - shape_edges
    argTypes:
    - absl::Span<const ShapeEdge>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: GetShapeEdgeIds
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - id
    linkageType: ''
    returnType: vector<ShapeEdgeId>
    signature: "vector<ShapeEdgeId> GetShapeEdgeIds(\n    absl::Span<const ShapeEdge>
      shape_edges)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeVectorShape::S2EdgeVectorShape
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:134,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:136,1
    - Dst: MutableS2ShapeIndex::Options::set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:140,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:142,1
    - Dst: absl::WrapUnique
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:143,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:150,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:150,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:155,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:159,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:160,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:160,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:163,1
    - Dst: is_sorted
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:163,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:163,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:164,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:164,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:165,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:165,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:166,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:166,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:166,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:167,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:170,1
    - Dst: auto::edge
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:171,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:174,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:176,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:178,1
    - Dst: std::binary_search
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:181,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:181,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:181,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:183,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:186,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:187,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:188,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:189,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:190,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:195,1
    - Dst: string::empty
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:195,1
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:200,1
    - Dst: GetShapeEdgeIds
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:200,1
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:204,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:205,1
    - Dst: GetShapeEdgeIds
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:205,1
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:210,1
    - Dst: GetShapeEdgeIds
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:211,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:215,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - edges
    argTypes:
    - absl::Span<const TestEdge>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 216
    functionName: TestAllCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 5
    functionsReached:
    - vector::end
    - vector::back
    - S2::CrossingSign
    - vector::size
    - S2::GetDistance
    - absl::StrAppend
    - EXPECT_LT
    - EXPECT_GE
    - S2EdgeVectorShape::S2EdgeVectorShape
    - EXPECT_EQ
    - vector::begin
    - MutableS2ShapeIndex::Add
    - auto::Add
    - vector::push_back
    - string::empty
    - vector::front
    - is_sorted
    - EXPECT_TRUE
    - GetValue
    - push_back
    - S2CrossingEdgeQuery::GetCrossingEdges
    - S2CrossingEdgeQuery::GetCandidates
    - vector::empty
    - EXPECT_LE
    - MutableS2ShapeIndex::Options::set_max_edges_per_cell
    - GetShapeEdgeIds
    - absl::WrapUnique
    - StrCat
    - std::binary_search
    - auto::edge
    - SCOPED_TRACE
    - auto::num_edges
    linkageType: ''
    returnType: void
    signature: void TestAllCrossings(absl::Span<const TestEdge> edges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:226,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:227,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:230,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:231,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:232,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:233,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:234,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:235,1
    - Dst: GetPerturbedSubEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:238,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetNorm
    - TestAllCrossings
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - GetPerturbedSubEdges
    - S2Testing::MakeTaggedSeedSeq
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, PerturbedCubeEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:247,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:248,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:251,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:252,1
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:253,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:253,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:254,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:255,1
    - Dst: GetPerturbedSubEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:256,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 259
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetNorm
    - S2::GetUVWAxis
    - TestAllCrossings
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - GetPerturbedSubEdges
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, PerturbedCubeFaceAxes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:264,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:265,1
    - Dst: GetCapEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:267,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:268,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:268,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:268,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:269,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 5
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - GetCapEdges
    - S2Point
    - S2Cap
    - S1Angle::Radians
    - TestAllCrossings
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, CapEdgesNearCubeVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:274,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:276,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:280,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:280,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:280,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:280,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 283
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - TestAllCrossings
    - std::make_pair
    - absl::LogInfoStreamer
    - S2Cell::GetVertex
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, DegenerateEdgeOnCellVertexIsItsOwnCandidate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:286,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:287,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:291,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:292,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:293,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:298,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:298,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:298,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:299,1
    - Dst: TestAllCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 304
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Cell::GetVertexRaw
    - TestAllCrossings
    - Normalize
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - std::make_pair
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingCandidates, CollinearEdgesOnCellBoundaries)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:311,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:312,1
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:314,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:314,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:314,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:314,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:317,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:318,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:318,1
    - Dst: auto*::polyline
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:319,1
    - Dst: S2Polyline*::num_vertices
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:320,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:321,1
    - Dst: S2Polyline*::vertex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:321,1
    - Dst: S2Polyline*::vertex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:322,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:323,1
    - Dst: std::count_if
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:323,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:323,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:323,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' index'
    - ' a0'
    - ' a1'
    argTypes:
    - S2ShapeIndex
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 330
    functionName: TestPolylineCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 2
    functionsReached:
    - id
    - v1
    - ABSL_CHECK_GE
    - v0
    - S2::CrossingSign
    - num_shape_ids
    - down_cast
    - S2CrossingEdgeQuery::GetCrossingEdges
    - shape
    - vector::empty
    - auto*::polyline
    - S2Polyline*::vertex
    - vector::end
    - EXPECT_EQ
    - std::count_if
    - S2Polyline*::num_vertices
    - vector::begin
    linkageType: ''
    returnType: void
    signature: "void TestPolylineCrossings(const S2ShapeIndex& index,\n                           const
      S2Point& a0, const S2Point& a1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:333,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:335,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:335,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:336,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:337,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:337,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:338,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:339,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:339,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:340,1
    - Dst: TestPolylineCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:341,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:341,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:341,1
    - Dst: TestPolylineCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:342,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:342,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - TestPolylineCrossings
    - MakePolylineOrDie
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MakePointOrDie
    - make_unique<S2Polyline::OwningShape>
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossings, PolylineCrossings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:348,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:349,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:349,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:350,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:350,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:351,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:351,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:352,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:352,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:353,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:353,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:354,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:354,1
    - Dst: TestPolylineCrossings
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:355,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:355,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    - TestPolylineCrossings
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - MakePointOrDie
    - MutableS2ShapeIndex::Add
    - make_unique<S2Polyline::OwningShape>
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossings, ShapeIdsAreCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:366,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:367,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:370,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:370,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:376,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:379,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:380,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:380,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:381,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:383,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:384,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:385,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:386,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:388,1
    - Dst: S2::ClipToFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:389,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:393,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:393,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:398,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:398,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:399,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:401,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:402,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:402,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:403,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:410,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:411,1
    - Dst: S2CrossingEdgeQuery::VisitCells
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 415
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - absl::Uniform<double>
    - S2::GetUVWFace
    - S2Point::S2Point
    - MutableS2ShapeIndex::Add
    - EXPECT_TRUE
    - S2::ClipToFace
    - S2CrossingEdgeQuery::VisitCells
    - S2::ClipToPaddedFace
    - S2CellId::FromFace
    - make_unique<S2Polyline::OwningShape>
    - S2Testing::MakeTaggedSeedSeq
    - S2::FaceUVtoXYZ
    - make_unique<S2Polyline>
    - StrCat
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - SCOPED_TRACE
    - S2::GetFace
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(VisitCells, QueryEdgeOnFaceBoundary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:421,1
    - Dst: S2CrossingEdgeQuery::index
      Src: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 422
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2CrossingEdgeQuery::index
    linkageType: ''
    returnType: void
    signature: void TEST(S2CrossingEdgeQuery, Index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: S2ConvexHullQuery::S2ConvexHullQuery
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ConvexHullQuery(const S2ConvexHullQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: operator=(const S2ConvexHullQuery&)
    functionSourceFile: /src/s2geometry/src/s2/s2convex_hull_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2ConvexHullQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:40,1
    - Dst: S2PointVectorShape::num_edges
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:41,1
    - Dst: S2PointVectorShape::num_chains
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:42,1
    - Dst: S2PointVectorShape::dimension
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:42,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:43,1
    - Dst: S2PointVectorShape::is_empty
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:43,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:44,1
    - Dst: S2PointVectorShape::is_full
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:44,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:45,1
    - Dst: S2PointVectorShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2PointVectorShape::num_chains
    - EXPECT_TRUE
    - S2PointVectorShape::is_full
    - S2PointVectorShape::is_empty
    - S2PointVectorShape::num_edges
    - EXPECT_EQ
    - S2PointVectorShape::GetReferencePoint
    - EXPECT_FALSE
    - S2PointVectorShape::dimension
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorShape, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:50,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:51,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:54,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:58,1
    - Dst: S2PointVectorShape::num_edges
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:59,1
    - Dst: S2PointVectorShape::num_chains
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:60,1
    - Dst: S2PointVectorShape::dimension
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:60,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:61,1
    - Dst: S2PointVectorShape::is_empty
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:61,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:62,1
    - Dst: S2PointVectorShape::is_full
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:64,1
    - Dst: S2PointVectorShape::chain
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:65,1
    - Dst: S2PointVectorShape::chain
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:65,1
    - Dst: S2PointVectorShape::edge
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:66,1
    - Dst: vector::at
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:70,1
    - Dst: S2PointVectorShape::point
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 72
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2random::Point
    - S2PointVectorShape::num_chains
    - S2PointVectorShape::edge
    - S2PointVectorShape::point
    - S2PointVectorShape::chain
    - S2PointVectorShape::is_full
    - S2PointVectorShape::is_empty
    - S2PointVectorShape::num_edges
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - vector::at
    - S2Testing::MakeTaggedSeedSeq
    - EXPECT_FALSE
    - S2PointVectorShape::dimension
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorShape, ConstructionAndAccess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:78,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:78,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:82,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:82,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:89,1
    - Dst: S2PointVectorShape::S2PointVectorShape
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:92,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:93,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - vector::push_back
    - s2random::Point
    - std::move
    - absl::LogInfoStreamer
    - S2PointVectorShape::S2PointVectorShape
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorShape, Move)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointVectorShape::S2PointVectorShape
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:98,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:99,1
    - Dst: S2PointVectorShape::chains
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:102,1
    - Dst: S2PointVectorShape::chains
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:103,1
    - Dst: S2PointVectorShape::chains
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:104,1
    - Dst: S2PointVectorShape::chains
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:105,1
    - Dst: S2PointVectorShape::chains
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:115,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:118,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:119,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:120,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 123
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2PointVectorShape::chains
    - s2textformat::ParsePointsOrDie
    - EXPECT_NE
    - EXPECT_EQ
    - S2PointVectorShape::S2PointVectorShape
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorShape, ChainIteratorWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointVectorShape::S2PointVectorShape
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:126,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:127,1
    - Dst: S2PointVectorShape::chains
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:133,1
    - Dst: S2Shape::ChainVertexRange::num_vertices
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:133,1
    - Dst: S2Shape::ChainVertexRange::begin
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:140,1
    - Dst: S2Shape::ChainVertexRange::begin
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:141,1
    - Dst: S2Shape::ChainVertexIterator::ChainVertexIterator
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:141,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:143,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:143,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:144,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:144,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:145,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:149,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:150,1
    - Dst: S2Shape::ChainVertexRange::end
      Src: /src/s2geometry/src/s2/s2point_vector_shape_test.cc:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_vector_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2PointVectorShape::chains
    - S2Shape::ChainVertexIterator::ChainVertexIterator
    - S2Shape::ChainVertexRange::num_vertices
    - S2Shape::ChainVertexRange::begin
    - s2textformat::ParsePointsOrDie
    - EXPECT_NE
    - EXPECT_EQ
    - S2PointVectorShape::S2PointVectorShape
    - S2Shape::ChainVertexRange::end
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointVectorShape, ChainVertexIteratorWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:30,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:30,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:30,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:32,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:32,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:33,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:33,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:35,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:35,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:36,1
    - Dst: GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:36,1
    - Dst: GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:36,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:37,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:37,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:37,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:38,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:39,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:39,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:39,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:42,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:42,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Shape
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: s2testing::ExpectEqual
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_testing.cc
    functionUses: 11
    functionsReached:
    - ASSERT_EQ
    - GetReferencePoint
    - num_edges
    - chain_edge
    - dimension
    - num_chains
    - chain
    - edge
    - chain_position
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void ExpectEqual(const S2Shape& a, const S2Shape& b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:51,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:51,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:51,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:52,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:53,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:56,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:58,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:65,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:65,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:65,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:66,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:66,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:67,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:67,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:67,1
    - Dst: S2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:68,1
    - Dst: S2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:69,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:70,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:70,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:70,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:71,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:72,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:74,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:74,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:75,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:75,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:75,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:76,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:76,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:76,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:78,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:78,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:78,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:82,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:82,1
    - Dst: S2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:86,1
    - Dst: S2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:88,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:88,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:88,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:89,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:90,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:92,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:92,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:93,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:93,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:93,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:94,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:94,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:95,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:96,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:96,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:98,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:98,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:99,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:99,1
    - Dst: S2ShapeIndex::Iterator::Finish
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:100,1
    - Dst: S2ShapeIndex::Iterator::Finish
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:102,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:102,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:102,1
    - Dst: S2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:103,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:103,1
    - Dst: S2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:104,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:105,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:105,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 106
    functionName: s2testing::ExpectEqual
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_testing.cc
    functionUses: 12
    functionsReached:
    - S2ShapeIndex::Iterator::id
    - num_edges
    - shape_id
    - shape
    - num_clipped
    - S2ShapeIndex::Iterator::Begin
    - S2ShapeIndex::Iterator::Seek
    - S2ShapeIndex::Iterator::Finish
    - num_shape_ids
    - ASSERT_FALSE
    - S2ShapeIndex::Iterator::done
    - EXPECT_EQ
    - EXPECT_TRUE
    - S2ShapeIndex::Iterator::Prev
    - clipped
    - contains_center
    - s2testing::ExpectEqual
    - ASSERT_EQ
    - S2ShapeIndex::Iterator::Next
    - edge
    - S2ShapeIndex::Iterator::cell
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void ExpectEqual(const S2ShapeIndex& a, const S2ShapeIndex& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:30,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:30,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:30,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:32,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:32,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:33,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:33,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:35,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:35,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:36,1
    - Dst: GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:36,1
    - Dst: GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:36,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:37,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:37,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:37,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:38,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:39,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:39,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:39,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:42,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:42,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Shape
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: s2testing::ExpectEqual
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_testing.cc
    functionUses: 12
    functionsReached:
    - ASSERT_EQ
    - GetReferencePoint
    - num_edges
    - chain_edge
    - dimension
    - num_chains
    - chain
    - edge
    - chain_position
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void ExpectEqual(const S2Shape& a, const S2Shape& b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:51,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:51,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:51,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:52,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:53,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:56,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:58,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:65,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:65,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:65,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:66,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:66,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:67,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:67,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:67,1
    - Dst: S2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:68,1
    - Dst: S2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:69,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:70,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:70,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:70,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:71,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:72,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:74,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:74,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:75,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:75,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:75,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:76,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:76,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:76,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:78,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:78,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:78,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:82,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:82,1
    - Dst: S2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:86,1
    - Dst: S2ShapeIndex::Iterator::Begin
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:88,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:88,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:88,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:89,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:90,1
    - Dst: S2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:92,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:92,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:93,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:93,1
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:93,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:94,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:94,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:95,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:96,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:96,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:98,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:98,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:99,1
    - Dst: S2ShapeIndex::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:99,1
    - Dst: S2ShapeIndex::Iterator::Finish
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:100,1
    - Dst: S2ShapeIndex::Iterator::Finish
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:102,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:102,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:102,1
    - Dst: S2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:103,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:103,1
    - Dst: S2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:104,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:105,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:105,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shapeutil_testing.cc:105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 106
    functionName: s2testing::ExpectEqual
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_testing.cc
    functionUses: 13
    functionsReached:
    - S2ShapeIndex::Iterator::id
    - num_edges
    - shape_id
    - shape
    - num_clipped
    - S2ShapeIndex::Iterator::Begin
    - S2ShapeIndex::Iterator::Seek
    - S2ShapeIndex::Iterator::Finish
    - num_shape_ids
    - ASSERT_FALSE
    - S2ShapeIndex::Iterator::done
    - EXPECT_EQ
    - EXPECT_TRUE
    - S2ShapeIndex::Iterator::Prev
    - clipped
    - contains_center
    - s2testing::ExpectEqual
    - ASSERT_EQ
    - S2ShapeIndex::Iterator::Next
    - edge
    - S2ShapeIndex::Iterator::cell
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void ExpectEqual(const S2ShapeIndex& a, const S2ShapeIndex& b)
  - BBCount: 118
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:188,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:296,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:303,1
    - Dst: Origin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:352,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:352,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:357,1
    - Dst: ToggleShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:364,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:372,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:373,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:375,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:375,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:377,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:379,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:380,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:385,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:387,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:395,1
    - Dst: EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:402,1
    - Dst: ToggleShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:403,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:412,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:413,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:419,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:419,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:420,1
    - Dst: assign
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:421,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:421,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:422,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:422,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:428,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:428,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:428,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:429,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:429,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:429,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:429,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:430,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:437,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:442,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:443,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:444,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:445,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:446,1
    - Dst: index_status_::exchange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:447,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:448,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:453,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:454,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:455,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:456,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:457,1
    - Dst: store
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:458,1
    - Dst: index_status_::exchange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:459,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:461,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:466,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:466,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:472,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:476,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:476,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:477,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:478,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:478,1
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:478,1
    - Dst: load
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:484,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:488,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:488,1
    - Dst: store
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:489,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:493,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:493,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:494,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:495,1
    - Dst: MarkIndexStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:497,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:498,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:498,1
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:498,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:505,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:506,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:507,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:507,1
    - Dst: MarkIndexStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:508,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:514,1
    - Dst: Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:515,1
    - Dst: make_unique<vector<PendingRemoval>>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:518,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:520,1
    - Dst: get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:520,1
    - Dst: Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:521,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:533,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:534,1
    - Dst: MaybeCreatePendingRemovals
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:539,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:542,1
    - Dst: auto::set_dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:543,1
    - Dst: auto::dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:543,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:544,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:545,1
    - Dst: auto::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:545,1
    - Dst: auto::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:545,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:547,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:547,1
    - Dst: MarkIndexStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:549,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:554,1
    - Dst: MaybeCreatePendingRemovals
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:560,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:562,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:562,1
    - Dst: MarkIndexStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:564,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:568,1
    - Dst: vector::swap
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:570,1
    - Dst: Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:571,1
    - Dst: ReleaseAll
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:576,1
    - Dst: lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:581,1
    - Dst: load
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:582,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:583,1
    - Dst: load
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:584,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:589,1
    - Dst: wait_mutex::lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:590,1
    - Dst: lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:591,1
    - Dst: UnlockAndSignal
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:593,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:595,1
    - Dst: store
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:596,1
    - Dst: make_unique<UpdateState>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:604,1
    - Dst: wait_mutex::lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:607,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:609,1
    - Dst: ApplyUpdatesInternal
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:610,1
    - Dst: lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:611,1
    - Dst: store
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:615,1
    - Dst: UnlockAndSignal
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:616,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:625,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:627,1
    - Dst: wait_mutex::unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:635,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:637,1
    - Dst: GetUpdateBatches
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:647,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:649,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:650,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:650,1
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:651,1
    - Dst: ReserveSpace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:654,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:655,1
    - Dst: Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:655,1
    - Dst: RemoveShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:661,1
    - Dst: shape::get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:661,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:663,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:669,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:672,1
    - Dst: AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:673,1
    - Dst: UpdateFaceEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:677,1
    - Dst: vector<FaceEdge>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:679,1
    - Dst: FinishPartialShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:686,1
    - Dst: InteriorTracker::partial_shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:686,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:688,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:689,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:689,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:690,1
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:690,1
    - Dst: Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:690,1
    - Dst: shape::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:705,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:709,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:710,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:711,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:715,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:716,1
    - Dst: BatchGenerator::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:717,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:717,1
    - Dst: BatchGenerator::Finish
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:719,1
    - Dst: GetMaxBatchSizes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:754,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:757,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:758,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:759,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:763,1
    - Dst: back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:763,1
    - Dst: max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:781,1
    - Dst: ExtendBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:783,1
    - Dst: next_max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:784,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:786,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:786,1
    - Dst: ExtendBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:787,1
    - Dst: next_max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:794,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:796,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:796,1
    - Dst: max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:798,1
    - Dst: next_max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:802,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:803,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:803,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:804,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:804,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:814,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:815,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:815,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:817,1
    - Dst: ExtendBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:822,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:823,1
    - Dst: max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:827,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:847,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:849,1
    - Dst: max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:866,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:868,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:879,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:884,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:885,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:889,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:889,1
    - Dst: min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:912,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:912,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:915,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:916,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:920,1
    - Dst: max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:935,1
    - Dst: shape::get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:945,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:946,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:949,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:949,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:955,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:958,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:965,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:965,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:994,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1001,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1015,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1020,1
    - Dst: InteriorTracker::set_partial_shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1021,1
    - Dst: InteriorTracker::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1024,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1026,1
    - Dst: InteriorTracker::focus
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1026,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1031,1
    - Dst: GetEdgeMaxLevel
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1032,1
    - Dst: AddFaceEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1033,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1043,1
    - Dst: Iterator::InitStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1050,1
    - Dst: Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1051,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1051,1
    - Dst: Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1052,1
    - Dst: S2ClippedShape*::contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1054,1
    - Dst: Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1055,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1055,1
    - Dst: S2ClippedShape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1056,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1057,1
    - Dst: S2ClippedShape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1057,1
    - Dst: S2CopyingEdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1058,1
    - Dst: InteriorTracker::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1062,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1064,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1065,1
    - Dst: GetEdgeMaxLevel
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1066,1
    - Dst: AddFaceEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1067,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1073,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1082,1
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1084,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1084,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1085,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1088,1
    - Dst: InteriorTracker::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1107,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1108,1
    - Dst: InteriorTracker::focus
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1108,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1109,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1110,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1111,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1115,1
    - Dst: CellMap::iterator::first::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1115,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1116,1
    - Dst: S2CellUnion::FromBeginEnd
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1118,1
    - Dst: make_unique<S2ShapeIndexCell>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1119,1
    - Dst: auto::add_shapes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1120,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1121,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1122,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1124,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1124,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1124,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1129,1
    - Dst: auto::shapes_::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1134,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1135,1
    - Dst: InteriorTracker::at_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1139,1
    - Dst: InteriorTracker::MoveTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1140,1
    - Dst: S2PaddedCell::GetEntryVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1140,1
    - Dst: InteriorTracker::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1142,1
    - Dst: S2PaddedCell::GetCenter
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1142,1
    - Dst: S2ClippedShape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1144,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1145,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1147,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1147,1
    - Dst: S2ClippedShape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1147,1
    - Dst: InteriorTracker::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1150,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1152,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1154,1
    - Dst: InteriorTracker::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1156,1
    - Dst: S2PaddedCell::GetExitVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1156,1
    - Dst: InteriorTracker::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1158,1
    - Dst: InteriorTracker::set_next_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1160,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1160,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1161,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1163,1
    - Dst: auto::add_shapes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1166,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1167,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1168,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1170,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1178,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1179,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1180,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1181,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1183,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1183,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1184,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1184,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1185,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1191,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1193,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1205,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1206,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1210,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1226,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1227,1
    - Dst: ClippedEdge::ClippedEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1227,1
    - Dst: get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1229,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1263,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1264,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1273,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1274,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1275,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1279,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1280,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1281,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1281,1
    - Dst: R2Rect::AddRect
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1282,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1287,1
    - Dst: ShrinkToFit
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1299,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1300,1
    - Dst: SkipCellRange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1305,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1305,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1305,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1307,1
    - Dst: UpdateEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1308,1
    - Dst: SkipCellRange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1309,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1309,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1309,1
    - Dst: UpdateEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1315,1
    - Dst: S2PaddedCell::ShrinkToFit
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1320,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1321,1
    - Dst: Iterator::InitStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1326,1
    - Dst: Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1327,1
    - Dst: Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1329,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1342,1
    - Dst: S2CellUnion::FromBeginEnd
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1346,1
    - Dst: UpdateEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1348,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1348,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1362,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1362,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1364,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1365,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1365,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1367,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1370,1
    - Dst: ClipVBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1370,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1370,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1371,1
    - Dst: ClipVBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1371,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1371,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1386,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1386,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1386,1
    - Dst: Iterator::InitStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1417,1
    - Dst: Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1418,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1418,1
    - Dst: AbsorbIndexCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1424,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1428,1
    - Dst: MakeIndexCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1436,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1442,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1445,1
    - Dst: EdgeAllocator::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1451,1
    - Dst: S2PaddedCell::middle
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1457,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1466,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1466,1
    - Dst: ClipVAxis
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1468,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1469,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1469,1
    - Dst: ClipVAxis
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1471,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1472,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1472,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1474,1
    - Dst: ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1474,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1474,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1475,1
    - Dst: ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1475,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1475,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1476,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1476,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1478,1
    - Dst: ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1478,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1478,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1479,1
    - Dst: ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1479,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1479,1
    - Dst: ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1483,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1483,1
    - Dst: ClipVAxis
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1484,1
    - Dst: ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1485,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1485,1
    - Dst: ClipVAxis
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1486,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1494,1
    - Dst: vector<const ClippedEdge*>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1495,1
    - Dst: S2PaddedCell::GetChildIJ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1504,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1505,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1505,1
    - Dst: UpdateEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1506,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1506,1
    - Dst: EdgeAllocator::Reset
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1511,1
    - Dst: InteriorTracker::RestoreStateBefore
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1515,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1529,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1531,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1539,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1540,1
    - Dst: UpdateBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1546,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1557,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1559,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1562,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1563,1
    - Dst: UpdateBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1565,1
    - Dst: EdgeAllocator::NewClippedEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1574,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1580,1
    - Dst: ClippedEdge*::bound::is_empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1580,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1581,1
    - Dst: ClippedEdge*::bound::Contains
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1581,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1597,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1597,1
    - Dst: Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1597,1
    - Dst: InteriorTracker::is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1611,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1611,1
    - Dst: is_shape_being_removed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1612,1
    - Dst: InteriorTracker::at_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1615,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1615,1
    - Dst: InteriorTracker::MoveTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1616,1
    - Dst: S2PaddedCell::GetEntryVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1616,1
    - Dst: InteriorTracker::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1618,1
    - Dst: S2PaddedCell::GetExitVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1618,1
    - Dst: InteriorTracker::set_next_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1619,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1619,1
    - Dst: is_shape_being_removed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1622,1
    - Dst: InteriorTracker::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1626,1
    - Dst: InteriorTracker::SaveAndClearStateBefore
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1636,1
    - Dst: EdgeAllocator::mutable_face_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1639,1
    - Dst: vector*::clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1640,1
    - Dst: Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1642,1
    - Dst: auto::num_clipped
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1643,1
    - Dst: auto::clipped
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1644,1
    - Dst: ClippedEdge*::shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1645,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1646,1
    - Dst: ClippedEdge*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1648,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1657,1
    - Dst: InteriorTracker::partial_shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1658,1
    - Dst: InteriorTracker::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1660,1
    - Dst: ClippedEdge*::contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1660,1
    - Dst: InteriorTracker::MoveTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1665,1
    - Dst: S2PaddedCell::GetCenter
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1665,1
    - Dst: InteriorTracker::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1666,1
    - Dst: S2PaddedCell::GetEntryVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1666,1
    - Dst: InteriorTracker::set_next_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1667,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1667,1
    - Dst: ClippedEdge*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1672,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1674,1
    - Dst: GetEdgeMaxLevel
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1675,1
    - Dst: InteriorTracker::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1676,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1677,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1677,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1679,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1681,1
    - Dst: EdgeAllocator::NewClippedEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1687,1
    - Dst: S2::GetClippedEdgeBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1689,1
    - Dst: S2PaddedCell::bound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1690,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1691,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1695,1
    - Dst: is_shape_being_removed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1697,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1698,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1698,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1698,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1698,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1703,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1704,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1704,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1712,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1712,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1822,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1822,1
    - Dst: max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1822,1
    - Dst: max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1824,1
    - Dst: max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1824,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1825,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1826,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1827,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1827,1
    - Dst: S2PaddedCell::level
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1830,1
    - Dst: InteriorTracker::is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1858,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1858,1
    - Dst: InteriorTracker::at_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1859,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1859,1
    - Dst: InteriorTracker::MoveTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1860,1
    - Dst: S2PaddedCell::GetEntryVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1860,1
    - Dst: InteriorTracker::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1862,1
    - Dst: S2PaddedCell::GetCenter
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1862,1
    - Dst: TestAllEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1863,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1868,1
    - Dst: CountShapes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1869,1
    - Dst: make_unique<S2ShapeIndexCell>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1870,1
    - Dst: auto::add_shapes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1871,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1879,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1882,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1883,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1886,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1892,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1893,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1897,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1901,1
    - Dst: S2ClippedShape*::set_edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1903,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1906,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: InteriorTracker::is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1919,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1919,1
    - Dst: InteriorTracker::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1920,1
    - Dst: S2PaddedCell::GetExitVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1920,1
    - Dst: TestAllEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1921,1
    - Dst: InteriorTracker::set_next_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1922,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1922,1
    - Dst: InteriorTracker::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1934,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1946,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1953,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1960,1
    - Dst: capacity
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1966,1
    - Dst: bytes_used
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1968,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1969,1
    - Dst: Iterator::InitStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1971,1
    - Dst: Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1971,1
    - Dst: Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1971,1
    - Dst: Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1972,1
    - Dst: auto::shapes_::capacity
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1973,1
    - Dst: auto::num_clipped
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1974,1
    - Dst: auto::clipped
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1975,1
    - Dst: S2ClippedShape*::is_inline
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1976,1
    - Dst: S2ClippedShape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1977,1
    - Dst: capacity
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1983,1
    - Dst: Ensure
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1992,1
    - Dst: max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1993,1
    - Dst: put_varint64
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1994,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1998,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2000,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2000,1
    - Dst: s2coding::StringVectorEncoder::StringVectorEncoder
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2001,1
    - Dst: Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2002,1
    - Dst: Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2002,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2003,1
    - Dst: Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2003,1
    - Dst: Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2004,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2004,1
    - Dst: s2coding::StringVectorEncoder::AddViaEncoder
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2004,1
    - Dst: s2coding::EncodeS2CellIdVector
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2006,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2007,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2012,1
    - Dst: get_varint64
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2014,1
    - Dst: set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2017,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2018,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2019,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2022,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2022,1
    - Dst: s2coding::EncodedS2CellIdVector::EncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2025,1
    - Dst: s2coding::EncodedStringVector::EncodedStringVector
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2026,1
    - Dst: s2coding::EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2027,1
    - Dst: s2coding::EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2028,1
    - Dst: s2coding::EncodedS2CellIdVector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2030,1
    - Dst: make_unique<S2ShapeIndexCell>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2032,1
    - Dst: s2coding::EncodedStringVector::GetDecoder
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2033,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2034,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2037,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2037,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2037,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2037,1
    CyclomaticComplexity: 202
    EdgeCount: 202
    ICount: 741
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 2040
    functionName: ABSL_FLAG
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::FromBeginEnd
    - InteriorTracker::partial_shape_id
    - end
    - Iterator::cell
    - shape
    - UpdateEdges
    - ClipVBound
    - s2shapeutil::ContainsBruteForce
    - S2ClippedShape*::is_inline
    - auto::add_shapes
    - ClippedEdge*::shape_id
    - lower_bound
    - ABSL_DCHECK
    - MarkIndexStale
    - s2coding::EncodedStringVector::GetDecoder
    - S2PaddedCell::ShrinkToFit
    - AddFaceEdge
    - Clear
    - InteriorTracker::DrawTo
    - Ensure
    - ABSL_DCHECK_GT
    - s2coding::StringVectorEncoder::StringVectorEncoder
    - S2ClippedShape*::contains_center
    - MaybeCreatePendingRemovals
    - CellMap::iterator::first::range_min
    - GetEdgeMaxLevel
    - FinishPartialShape
    - std::move
    - ClippedEdge*::bound::is_empty
    - auto::num_clipped
    - S2PaddedCell::id
    - ExtendBatch
    - erase
    - static_cast<int>
    - s2coding::EncodedStringVector::Init
    - max_edges_per_cell
    - make_unique<vector<PendingRemoval>>
    - EdgeAllocator::size
    - EdgeAllocator::mutable_face_edges
    - emplace_back
    - ForceBuild
    - SkipCellRange
    - std::exchange
    - Iterator::InitStale
    - clear
    - ABSL_VLOG
    - lo
    - S2ClippedShape*::edge
    - InteriorTracker::MoveTo
    - S2CellId::End
    - GetMaxBatchSizes
    - InteriorTracker::at_cellid
    - load
    - bytes_used
    - auto::dimension
    - S2ClippedShape*::set_contains_center
    - vector::back
    - index_status_::exchange
    - assign
    - vector<FaceEdge>
    - shape::num_edges
    - begin
    - make_unique<UpdateState>
    - vector::size
    - is_shape_being_removed
    - Minimize
    - UpdateBound
    - ClippedEdge*::num_edges
    - InteriorTracker::RestoreStateBefore
    - GetLevelForMaxValue
    - R2Rect::FromPointPair
    - ShapeEdgeId
    - num_shape_ids
    - s2coding::StringVectorEncoder::Encode
    - UpdateFaceEdges
    - make_unique<S2EdgeVectorShape>
    - Iterator::Locate
    - auto::shapes_::size
    - EdgeAllocator::NewClippedEdge
    - make_pair
    - empty
    - S2ClippedShape*::Init
    - S2PaddedCell
    - InteriorTracker::focus
    - vector::push_back
    - TestAllEdges
    - InteriorTracker::SaveAndClearStateBefore
    - push_back
    - EdgeOrVertexCrossing
    - back
    - InteriorTracker::AddShape
    - S2::ClipToPaddedFace
    - S2CellId::FromFace
    - TallyTemp
    - Iterator::id
    - ToggleShape
    - S2ClippedShape*::set_edge
    - S2Shape*::dimension
    - S2PaddedCell::bound
    - make_unique<S2ShapeIndexCell>
    - S2::ValidFaceXYZtoUV
    - ReserveSpace
    - max_batch_size
    - R2Rect::AddRect
    - S2CellId::range_min
    - wait_mutex::lock
    - Iterator::Next
    - S2::InterpolateDouble
    - ShrinkToFit
    - vector::swap
    - EdgeAllocator::Reset
    - MakeIndexCell
    - s2coding::EncodeS2CellIdVector
    - R2Rect::Empty
    - S2CellId::range_max
    - S2PaddedCell::GetCenter
    - min
    - S2Shape*::edge
    - vector<const ClippedEdge*>
    - ClipVAxis
    - s2coding::StringVectorEncoder::AddViaEncoder
    - client_usage_bytes
    - S2PaddedCell::GetChildIJ
    - hi
    - S2::GetClippedEdgeBound
    - vector*::push_back
    - fabs
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_LE
    - S2ClippedShape*::num_edges
    - auto::Decode
    - InteriorTracker::set_partial_shape_id
    - InteriorTracker::set_next_cellid
    - ClippedEdge*::bound::Contains
    - store
    - UnlockAndSignal
    - Norm
    - S2::FaceUVtoXYZ
    - InteriorTracker::TestEdge
    - auto::clipped
    - get
    - static_cast<size_t>
    - get_varint64
    - auto::edge
    - AbsorbIndexCell
    - vector*::clear
    - s2coding::EncodedS2CellIdVector::Init
    - AddSpace
    - s2coding::EncodedStringVector::EncodedStringVector
    - S2CellId::Begin
    - Init
    - auto::num_edges
    - BatchGenerator::AddShape
    - AddShape
    - Project
    - capacity
    - GetUpdateBatches
    - ClippedEdge::ClippedEdge
    - auto::set_dimension
    - Origin
    - ClipUBound
    - shape_id
    - vector::reserve
    - vector::end
    - lock
    - S2Shape*::num_edges
    - InteriorTracker::shape_ids
    - BatchGenerator::Finish
    - S2PaddedCell::middle
    - ABSL_LOG
    - vector::insert
    - insert
    - ok
    - shape::get
    - ClippedEdge*::contains_center
    - ClippedEdge*::edge
    - unlock
    - set_max_edges_per_cell
    - reserve
    - S2CopyingEdgeCrosser::EdgeOrVertexCrossing
    - is_active
    - ReleaseAll
    - Iterator::done
    - auto::shapes_::capacity
    - InteriorTracker::is_active
    - S2CellId::next
    - range_min
    - std::pow
    - S2PaddedCell::GetEntryVertex
    - s2coding::EncodedS2CellIdVector::size
    - auto::Add
    - S2::Origin
    - S2PaddedCell::GetExitVertex
    - Tally
    - s2coding::EncodedS2CellIdVector::EncodedS2CellIdVector
    - RemoveShape
    - reset
    - put_varint64
    - max
    - vector::clear
    - ApplyUpdatesInternal
    - size
    - S2PaddedCell::level
    - next_max_batch_size
    - wait_mutex::unlock
    - SpaceUsed
    - FinishBatch
    - swap
    - S2::GetFace
    - CountShapes
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void ABSL_FLAG(\n    int64_t, s2shape_index_tmp_memory_budget, int64_t"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: MutableS2ShapeIndex::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_edges_per_cell
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: "MutableS2ShapeIndex::Options::set_max_edges_per_cell(\n    int
      max_edges_per_cell)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::Options::set_max_edges_per_cell(\n    int
      max_edges_per_cell)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: '& focus()'
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & focus()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: MutableS2ShapeIndex::InteriorTracker::is_active
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: MutableS2ShapeIndex::InteriorTracker::MoveTo
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MoveTo(const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: '& shape_ids() const'
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ShapeIdSet
    signature: ShapeIdSet & shape_ids() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - next_cellid
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: MutableS2ShapeIndex::InteriorTracker::set_next_cellid
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - S2CellId::range_min
    linkageType: ''
    returnType: void
    signature: void set_next_cellid(S2CellId next_cellid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cellid
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: MutableS2ShapeIndex::InteriorTracker::at_cellid
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - S2CellId::range_min
    linkageType: ''
    returnType: bool
    signature: bool at_cellid(S2CellId cellid) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: MutableS2ShapeIndex::InteriorTracker::partial_shape_id
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int partial_shape_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 319
    functionName: MutableS2ShapeIndex::InteriorTracker::set_partial_shape_id
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_partial_shape_id(int shape_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Origin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:352,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: MutableS2ShapeIndex::InteriorTracker::InteriorTracker()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - Origin
    - S2CellId::Begin
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::InteriorTracker::InteriorTracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: MutableS2ShapeIndex::InteriorTracker::Origin()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point MutableS2ShapeIndex::InteriorTracker::Origin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ToggleShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - shape_id
    - contains_focus
    argTypes:
    - int32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: "MutableS2ShapeIndex::InteriorTracker::AddShape(int32_t shape_id,\n
      \                                                   bool contains_focus)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - ToggleShape
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::InteriorTracker::AddShape(int32_t shape_id,\n
      \                                                   bool contains_focus)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:372,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:373,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:375,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:375,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:377,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:379,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:380,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:385,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 390
    functionName: MutableS2ShapeIndex::InteriorTracker::ToggleShape(int shape_id)
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - end
    - push_back
    - erase
    - begin
    - empty
    - insert
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::InteriorTracker::ToggleShape(int shape_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 396
    functionName: MutableS2ShapeIndex::InteriorTracker::DrawTo(const S2Point& b)
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::InteriorTracker::DrawTo(const S2Point& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:402,1
    - Dst: ToggleShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - shape_id
    - ' edge'
    argTypes:
    - int32_t
    - S2Shape::Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 405
    functionName: "MutableS2ShapeIndex::InteriorTracker::TestEdge(int32_t shape_id,\n
      \                                                  const S2Shape::Edge& edge)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - ToggleShape
    - EdgeOrVertexCrossing
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE MutableS2ShapeIndex::InteriorTracker::TestEdge(int32_t
      shape_id,\n                                                   const S2Shape::Edge&
      edge)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:412,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: MutableS2ShapeIndex::InteriorTracker::lower_bound(int32_t shape_id)
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: MutableS2ShapeIndex::ShapeIdSet::iterator
    signature: MutableS2ShapeIndex::ShapeIdSet::iterator MutableS2ShapeIndex::InteriorTracker::lower_bound(int32_t
      shape_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:419,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:419,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:420,1
    - Dst: assign
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:421,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:421,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:422,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limit_shape_id
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: "MutableS2ShapeIndex::InteriorTracker::SaveAndClearStateBefore(\n
      \   int32_t limit_shape_id)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - assign
    - erase
    - begin
    - empty
    - lower_bound
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::InteriorTracker::SaveAndClearStateBefore(\n
      \   int32_t limit_shape_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:428,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:428,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:428,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:429,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:429,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:429,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:429,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limit_shape_id
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: "MutableS2ShapeIndex::InteriorTracker::RestoreStateBefore(\n    int32_t
      limit_shape_id)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - end
    - clear
    - erase
    - begin
    - insert
    - lower_bound
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::InteriorTracker::RestoreStateBefore(\n    int32_t
      limit_shape_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 434
    functionName: MutableS2ShapeIndex::MutableS2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 105
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::MutableS2ShapeIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: MutableS2ShapeIndex::MutableS2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 105
    functionsReached:
    - MutableS2ShapeIndex::Init
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::MutableS2ShapeIndex(const Options& options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:442,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:443,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:444,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:445,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:446,1
    - Dst: index_status_::exchange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:447,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: MutableS2ShapeIndex::MutableS2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 105
    functionsReached:
    - std::move
    - std::exchange
    - index_status_::exchange
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::MutableS2ShapeIndex(MutableS2ShapeIndex&&
      b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:453,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:454,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:455,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:456,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:457,1
    - Dst: store
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:458,1
    - Dst: index_status_::exchange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:459,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 463
    functionName: "& MutableS2ShapeIndex::operator=(\n    MutableS2ShapeIndex&& b)
      noexcept"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - std::move
    - std::exchange
    - index_status_::exchange
    - swap
    - store
    linkageType: ''
    returnType: MutableS2ShapeIndex
    signature: "MutableS2ShapeIndex & MutableS2ShapeIndex::operator=(\n    MutableS2ShapeIndex&&
      b) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:466,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 469
    functionName: MutableS2ShapeIndex::Init
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 11
    functionsReached:
    - empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Init(const Options& options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 473
    functionName: MutableS2ShapeIndex::~MutableS2ShapeIndex()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Clear
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::~MutableS2ShapeIndex()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:476,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:476,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:477,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:478,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:478,1
    - Dst: MutableS2ShapeIndex::SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - S2MemoryTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 479
    functionName: MutableS2ShapeIndex::set_memory_tracker
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::SpaceUsed
    - is_active
    - Tally
    - MutableS2ShapeIndex::Init
    - client_usage_bytes
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::set_memory_tracker(S2MemoryTracker* tracker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:484,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:488,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:488,1
    - Dst: store
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 490
    functionName: MutableS2ShapeIndex::MarkIndexStale
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - store
    - empty
    - ok
    - load
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::MarkIndexStale()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:493,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:493,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:494,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:495,1
    - Dst: MutableS2ShapeIndex::MarkIndexStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:497,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:498,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:498,1
    - Dst: MutableS2ShapeIndex::SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 499
    functionName: MutableS2ShapeIndex::Minimize
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::SpaceUsed
    - is_active
    - MutableS2ShapeIndex::MarkIndexStale
    - clear
    - Tally
    - client_usage_bytes
    - reset
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Minimize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:505,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:506,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:507,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:507,1
    - Dst: MutableS2ShapeIndex::MarkIndexStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - shape
    argTypes:
    - unique_ptr<S2Shape>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 510
    functionName: MutableS2ShapeIndex::Add
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 69
    functionsReached:
    - std::move
    - size
    - MutableS2ShapeIndex::MarkIndexStale
    - push_back
    - AddSpace
    linkageType: ''
    returnType: int
    signature: int MutableS2ShapeIndex::Add(unique_ptr<S2Shape> shape)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:514,1
    - Dst: MutableS2ShapeIndex::Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:515,1
    - Dst: make_unique<vector<PendingRemoval>>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:518,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:520,1
    - Dst: get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:520,1
    - Dst: MutableS2ShapeIndex::Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 525
    functionName: MutableS2ShapeIndex::MaybeCreatePendingRemovals
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Minimize
    - get
    - Tally
    - AddSpace
    - make_unique<vector<PendingRemoval>>
    linkageType: ''
    returnType: bool
    signature: bool MutableS2ShapeIndex::MaybeCreatePendingRemovals()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:533,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:534,1
    - Dst: MutableS2ShapeIndex::MaybeCreatePendingRemovals
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:539,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:542,1
    - Dst: auto::set_dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:543,1
    - Dst: auto::dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:543,1
    - Dst: auto::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:544,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:545,1
    - Dst: auto::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:545,1
    - Dst: auto::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:545,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:547,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:547,1
    - Dst: MutableS2ShapeIndex::MarkIndexStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 551
    functionName: MutableS2ShapeIndex::Release
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 3
    functionsReached:
    - auto::Add
    - auto::set_dimension
    - std::move
    - auto::dimension
    - MutableS2ShapeIndex::MaybeCreatePendingRemovals
    - auto::edge
    - MutableS2ShapeIndex::MarkIndexStale
    - push_back
    - make_unique<S2EdgeVectorShape>
    - auto::num_edges
    - ABSL_DCHECK
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> MutableS2ShapeIndex::Release(int shape_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:554,1
    - Dst: MutableS2ShapeIndex::MaybeCreatePendingRemovals
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:560,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:562,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:562,1
    - Dst: MutableS2ShapeIndex::MarkIndexStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 565
    functionName: MutableS2ShapeIndex::Remove
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - std::move
    - MutableS2ShapeIndex::MarkIndexStale
    - MutableS2ShapeIndex::MaybeCreatePendingRemovals
    - push_back
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Remove(int shape_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:568,1
    - Dst: vector::swap
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:570,1
    - Dst: MutableS2ShapeIndex::Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 573
    functionName: MutableS2ShapeIndex::ReleaseAll
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 2
    functionsReached:
    - MutableS2ShapeIndex::Minimize
    - vector::swap
    - ABSL_DCHECK
    linkageType: ''
    returnType: vector<unique_ptr<S2Shape>>
    signature: vector<unique_ptr<S2Shape>> MutableS2ShapeIndex::ReleaseAll()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::ReleaseAll
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 577
    functionName: MutableS2ShapeIndex::Clear
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - MutableS2ShapeIndex::ReleaseAll
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:581,1
    - Dst: load
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:582,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:583,1
    - Dst: load
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:584,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:589,1
    - Dst: wait_mutex::lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:590,1
    - Dst: lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:591,1
    - Dst: MutableS2ShapeIndex::UnlockAndSignal
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:593,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:595,1
    - Dst: store
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:596,1
    - Dst: make_unique<UpdateState>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:604,1
    - Dst: wait_mutex::lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:607,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:609,1
    - Dst: MutableS2ShapeIndex::ApplyUpdatesInternal
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:610,1
    - Dst: lock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:611,1
    - Dst: store
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:615,1
    - Dst: MutableS2ShapeIndex::UnlockAndSignal
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 618
    functionName: MutableS2ShapeIndex::ApplyUpdatesThreadSafe
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::ApplyUpdatesInternal
    - ABSL_DCHECK_EQ
    - load
    - wait_mutex::lock
    - lock
    - make_unique<UpdateState>
    - store
    - MutableS2ShapeIndex::UnlockAndSignal
    - unlock
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::ApplyUpdatesThreadSafe()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:625,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:627,1
    - Dst: wait_mutex::unlock
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:635,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 639
    functionName: MutableS2ShapeIndex::UnlockAndSignal
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - wait_mutex::unlock
    - reset
    - ABSL_DCHECK_EQ
    - unlock
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::UnlockAndSignal()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::GetUpdateBatches
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:647,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:649,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:650,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:650,1
    - Dst: MutableS2ShapeIndex::SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:651,1
    - Dst: MutableS2ShapeIndex::ReserveSpace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:654,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:655,1
    - Dst: MutableS2ShapeIndex::Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:655,1
    - Dst: MutableS2ShapeIndex::RemoveShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:661,1
    - Dst: shape::get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:661,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:663,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:669,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:672,1
    - Dst: MutableS2ShapeIndex::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:673,1
    - Dst: MutableS2ShapeIndex::UpdateFaceEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:677,1
    - Dst: vector<FaceEdge>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:679,1
    - Dst: MutableS2ShapeIndex::FinishPartialShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:686,1
    - Dst: InteriorTracker::partial_shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:686,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:688,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:689,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:689,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:690,1
    - Dst: MutableS2ShapeIndex::SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:690,1
    - Dst: MutableS2ShapeIndex::Minimize
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:690,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 694
    functionName: MutableS2ShapeIndex::ApplyUpdatesInternal
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - MutableS2ShapeIndex::Minimize
    - InteriorTracker::partial_shape_id
    - S2Shape*::num_edges
    - MutableS2ShapeIndex::AddShape
    - vector<FaceEdge>
    - MutableS2ShapeIndex::FinishPartialShape
    - shape::get
    - ok
    - is_active
    - client_usage_bytes
    - MutableS2ShapeIndex::shape
    - ABSL_DCHECK_EQ
    - Tally
    - reset
    - MutableS2ShapeIndex::UpdateFaceEdges
    - MutableS2ShapeIndex::SpaceUsed
    - MutableS2ShapeIndex::ReserveSpace
    - MutableS2ShapeIndex::GetUpdateBatches
    - MutableS2ShapeIndex::RemoveShape
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::ApplyUpdatesInternal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: shape::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:705,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:709,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:710,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:711,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:715,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:716,1
    - Dst: BatchGenerator::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:717,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:717,1
    - Dst: BatchGenerator::Finish
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:719,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 720
    functionName: MutableS2ShapeIndex::GetUpdateBatches
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - size
    - S2Shape*::num_edges
    - shape::num_edges
    - BatchGenerator::Finish
    - BatchGenerator::AddShape
    - MutableS2ShapeIndex::shape
    linkageType: ''
    returnType: vector<MutableS2ShapeIndex::BatchDescriptor>
    signature: vector<MutableS2ShapeIndex::BatchDescriptor> MutableS2ShapeIndex::GetUpdateBatches()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMaxBatchSizes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:754,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:757,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:758,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:759,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:763,1
    - Dst: back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - num_edges_removed
    - num_edges_added
    - shape_id_begin
    argTypes:
    - int64_t
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 777
    functionName: "MutableS2ShapeIndex::BatchGenerator::BatchGenerator(int64_t num_edges_removed,\n
      \                                                   int64_t num_edges_added,\n
      \                                                   int shape_id_begin)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - GetMaxBatchSizes
    - size
    - push_back
    - back
    - ABSL_VLOG
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::BatchGenerator::BatchGenerator(int64_t num_edges_removed,\n
      \                                                   int64_t num_edges_added,\n
      \                                                   int shape_id_begin)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::BatchGenerator::max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:781,1
    - Dst: MutableS2ShapeIndex::BatchGenerator::ExtendBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:783,1
    - Dst: MutableS2ShapeIndex::BatchGenerator::next_max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:784,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:786,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:786,1
    - Dst: MutableS2ShapeIndex::BatchGenerator::ExtendBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:787,1
    - Dst: MutableS2ShapeIndex::BatchGenerator::next_max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:794,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:796,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:796,1
    - Dst: MutableS2ShapeIndex::BatchGenerator::max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:798,1
    - Dst: MutableS2ShapeIndex::BatchGenerator::next_max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:802,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:803,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:803,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:804,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - shape_id
    - num_edges
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 807
    functionName: "MutableS2ShapeIndex::BatchGenerator::AddShape(int shape_id,\n                                                   int
      num_edges)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::BatchGenerator::ExtendBatch
    - ShapeEdgeId
    - FinishBatch
    - MutableS2ShapeIndex::BatchGenerator::max_batch_size
    - MutableS2ShapeIndex::BatchGenerator::next_max_batch_size
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::BatchGenerator::AddShape(int shape_id,\n
      \                                                  int num_edges)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:814,1
    - Dst: FinishBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:815,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:815,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 818
    functionName: MutableS2ShapeIndex::BatchGenerator::Finish()
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - std::move
    - FinishBatch
    - ShapeEdgeId
    - empty
    linkageType: ''
    returnType: vector<MutableS2ShapeIndex::BatchDescriptor>
    signature: vector<MutableS2ShapeIndex::BatchDescriptor> MutableS2ShapeIndex::BatchGenerator::Finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::BatchGenerator::ExtendBatch
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:822,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:823,1
    - Dst: MutableS2ShapeIndex::BatchGenerator::max_batch_size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - num_edges
    - batch_end
    argTypes:
    - int
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 831
    functionName: "MutableS2ShapeIndex::BatchGenerator::FinishBatch(int num_edges,\n
      \                                                     ShapeEdgeId batch_end)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::BatchGenerator::max_batch_size
    - MutableS2ShapeIndex::BatchGenerator::ExtendBatch
    - push_back
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::BatchGenerator::FinishBatch(int num_edges,\n
      \                                                     ShapeEdgeId batch_end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:847,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:849,1
    - Dst: max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:866,1
    - Dst: std::pow
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:868,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:879,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:884,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:885,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:889,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - num_edges_removed
    - num_edges_added
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 891
    functionName: "MutableS2ShapeIndex::BatchGenerator::GetMaxBatchSizes(\n    int64_t
      num_edges_removed, int64_t num_edges_added)"
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - ABSL_DCHECK_LE
    - vector::size
    - static_cast<int>
    - std::pow
    - max
    - absl::GetFlag
    linkageType: ''
    returnType: vector<int>
    signature: "vector<int> MutableS2ShapeIndex::BatchGenerator::GetMaxBatchSizes(\n
      \   int64_t num_edges_removed, int64_t num_edges_added)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:912,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:912,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:915,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:916,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:920,1
    - Dst: max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:935,1
    - Dst: shape::get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:945,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:946,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:949,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:949,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:955,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:958,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:965,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:965,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:994,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1001,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - ' batch'
    - all_edges
    argTypes:
    - BatchDescriptor
    - vector<FaceEdge>[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 1003
    functionName: MutableS2ShapeIndex::ReserveSpace
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - reserve
    - static_cast<size_t>
    - min
    - S2Shape*::edge
    - S2Shape*::num_edges
    - S2::GetFace
    - TallyTemp
    - shape::get
    - max
    - absl::GetFlag
    - MutableS2ShapeIndex::shape
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::ReserveSpace(\n    const BatchDescriptor&
      batch, vector<FaceEdge> all_edges[6])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1015,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1020,1
    - Dst: InteriorTracker*::set_partial_shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1021,1
    - Dst: InteriorTracker*::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1024,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1026,1
    - Dst: InteriorTracker*::focus
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1026,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1031,1
    - Dst: MutableS2ShapeIndex::GetEdgeMaxLevel
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1032,1
    - Dst: MutableS2ShapeIndex::AddFaceEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1033,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - shape
    - shape_id
    - edges_begin
    - edges_end
    - all_edges
    - tracker
    argTypes:
    - S2Shape*
    - int
    - int
    - int
    - vector<FaceEdge>[]
    - InteriorTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1007
    functionDepth: 2
    functionLinenumber: 1007
    functionLinenumberEnd: 1035
    functionName: MutableS2ShapeIndex::AddShape
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - MutableS2ShapeIndex::GetEdgeMaxLevel
    - S2Shape*::dimension
    - S2Shape*::edge
    - InteriorTracker*::AddShape
    - S2Shape*::num_edges
    - InteriorTracker*::focus
    - MutableS2ShapeIndex::AddFaceEdge
    - s2shapeutil::ContainsBruteForce
    - InteriorTracker*::set_partial_shape_id
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::AddShape(const S2Shape* shape, int shape_id,\n
      \                                  int edges_begin, int edges_end,\n                                   vector<FaceEdge>
      all_edges[6],\n                                   InteriorTracker* tracker)
      const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1043,1
    - Dst: Iterator::InitStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1050,1
    - Dst: Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1051,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1051,1
    - Dst: Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1052,1
    - Dst: S2ClippedShape*::contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1054,1
    - Dst: Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1055,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1055,1
    - Dst: S2ClippedShape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1056,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1057,1
    - Dst: S2ClippedShape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1057,1
    - Dst: S2CopyingEdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1058,1
    - Dst: InteriorTracker*::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1062,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1064,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1065,1
    - Dst: MutableS2ShapeIndex::GetEdgeMaxLevel
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1066,1
    - Dst: MutableS2ShapeIndex::AddFaceEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1067,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - shape
    - shape_id
    - all_edges
    - tracker
    argTypes:
    - S2Shape*
    - int
    - vector<FaceEdge>[]
    - InteriorTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1069
    functionName: MutableS2ShapeIndex::RemoveShape
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - S2::Origin
    - MutableS2ShapeIndex::GetEdgeMaxLevel
    - S2CopyingEdgeCrosser::EdgeOrVertexCrossing
    - S2ClippedShape*::num_edges
    - Iterator::cell
    - S2Shape*::dimension
    - Iterator::InitStale
    - S2Shape*::edge
    - InteriorTracker*::AddShape
    - S2Shape*::num_edges
    - Iterator::Locate
    - S2ClippedShape*::edge
    - MutableS2ShapeIndex::AddFaceEdge
    - Iterator::id
    - S2ClippedShape*::contains_center
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::RemoveShape(const S2Shape* shape, int shape_id,\n
      \                                     vector<FaceEdge> all_edges[6],\n                                      InteriorTracker*
      tracker) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1073,1
    - Dst: is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1082,1
    - Dst: MutableS2ShapeIndex::SpaceUsed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1084,1
    - Dst: client_usage_bytes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1084,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1085,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1088,1
    - Dst: InteriorTracker::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1107,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1108,1
    - Dst: InteriorTracker::focus
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1108,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1109,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1110,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1111,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1115,1
    - Dst: CellMap::iterator::first::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1115,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1116,1
    - Dst: S2CellUnion::FromBeginEnd
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1118,1
    - Dst: make_unique<S2ShapeIndexCell>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1119,1
    - Dst: auto::add_shapes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1120,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1121,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1122,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1124,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1124,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1124,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1129,1
    - Dst: auto::shapes_::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1134,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1135,1
    - Dst: InteriorTracker::at_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1139,1
    - Dst: InteriorTracker::MoveTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1140,1
    - Dst: S2PaddedCell::GetEntryVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1140,1
    - Dst: InteriorTracker::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1142,1
    - Dst: S2PaddedCell::GetCenter
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1142,1
    - Dst: S2ClippedShape*::num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1144,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1145,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1147,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1147,1
    - Dst: S2ClippedShape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1147,1
    - Dst: InteriorTracker::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1150,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1152,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1154,1
    - Dst: InteriorTracker::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1156,1
    - Dst: S2PaddedCell::GetExitVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1156,1
    - Dst: InteriorTracker::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1158,1
    - Dst: InteriorTracker::set_next_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1160,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1160,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1161,1
    - Dst: InteriorTracker::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1163,1
    - Dst: auto::add_shapes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1166,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1167,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1168,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1170,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1172
    functionName: MutableS2ShapeIndex::FinishPartialShape
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - S2CellUnion::FromBeginEnd
    - InteriorTracker::at_cellid
    - end
    - shape_id
    - S2ClippedShape*::set_contains_center
    - S2Shape*::num_edges
    - InteriorTracker::shape_ids
    - s2shapeutil::ContainsBruteForce
    - begin
    - insert
    - auto::add_shapes
    - S2CellId::range_max
    - S2PaddedCell::GetCenter
    - is_active
    - S2Shape*::edge
    - S2CellId::next
    - InteriorTracker::DrawTo
    - auto::shapes_::size
    - client_usage_bytes
    - make_pair
    - S2ClippedShape*::Init
    - S2PaddedCell::GetEntryVertex
    - ABSL_DCHECK_GT
    - MutableS2ShapeIndex::shape
    - InteriorTracker::focus
    - CellMap::iterator::first::range_min
    - vector::push_back
    - S2ClippedShape*::num_edges
    - std::move
    - S2PaddedCell::GetExitVertex
    - InteriorTracker::set_next_cellid
    - InteriorTracker::AddShape
    - TallyTemp
    - vector::clear
    - InteriorTracker::TestEdge
    - MutableS2ShapeIndex::SpaceUsed
    - make_unique<S2ShapeIndexCell>
    - S2ClippedShape*::edge
    - S2CellId::Begin
    - InteriorTracker::MoveTo
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::FinishPartialShape(int shape_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1178,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1179,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1180,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1181,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1183,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1183,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1184,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1184,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1185,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1191,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1193,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - edge
    - all_edges
    argTypes:
    - FaceEdge*
    - vector<FaceEdge>[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1174
    functionDepth: 2
    functionLinenumber: 1174
    functionLinenumberEnd: 1196
    functionName: MutableS2ShapeIndex::AddFaceEdge
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 2
    functionsReached:
    - fabs
    - push_back
    - S2::ClipToPaddedFace
    - S2::ValidFaceXYZtoUV
    - S2::GetFace
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::AddFaceEdge(\n    FaceEdge* edge, vector<FaceEdge>
      all_edges[6]) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Norm
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1205,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1206,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - S2Shape::Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1211
    functionName: MutableS2ShapeIndex::GetEdgeMaxLevel
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 2
    functionsReached:
    - GetLevelForMaxValue
    - absl::GetFlag
    - Norm
    linkageType: ''
    returnType: int
    signature: int MutableS2ShapeIndex::GetEdgeMaxLevel(const S2Shape::Edge& edge)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1221
    functionName: MutableS2ShapeIndex::EdgeAllocator::EdgeAllocator
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EdgeAllocator()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::EdgeAllocator::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1226,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1227,1
    - Dst: ClippedEdge::ClippedEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1227,1
    - Dst: get
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1230
    functionName: MutableS2ShapeIndex::EdgeAllocator::NewClippedEdge
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - ClippedEdge::ClippedEdge
    - get
    - emplace_back
    - MutableS2ShapeIndex::EdgeAllocator::size
    linkageType: ''
    returnType: ClippedEdge
    signature: ClippedEdge * NewClippedEdge()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1232
    functionName: MutableS2ShapeIndex::EdgeAllocator::size
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1235
    functionName: MutableS2ShapeIndex::EdgeAllocator::Reset
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reset(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1239
    functionName: MutableS2ShapeIndex::EdgeAllocator::mutable_face_edges
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<FaceEdge>
    signature: vector<FaceEdge> * mutable_face_edges()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1253
    functionName: MutableS2ShapeIndex::EdgeAllocator::EdgeAllocator
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EdgeAllocator(const EdgeAllocator&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1254
    functionName: operator=(const EdgeAllocator&)
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const EdgeAllocator&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const FaceEdge>::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1263,1
    - Dst: InteriorTracker*::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1264,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1273,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1274,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1275,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1279,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1280,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1281,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1281,1
    - Dst: R2Rect::AddRect
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1282,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1287,1
    - Dst: MutableS2ShapeIndex::ShrinkToFit
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1299,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1300,1
    - Dst: MutableS2ShapeIndex::SkipCellRange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1305,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1305,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1305,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1307,1
    - Dst: MutableS2ShapeIndex::UpdateEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1308,1
    - Dst: MutableS2ShapeIndex::SkipCellRange
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1309,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1309,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1309,1
    - Dst: MutableS2ShapeIndex::UpdateEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - face
    - face_edges
    - tracker
    argTypes:
    - int
    - absl::Span<const FaceEdge>
    - InteriorTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1260
    functionDepth: 3
    functionLinenumber: 1260
    functionLinenumberEnd: 1316
    functionName: MutableS2ShapeIndex::UpdateFaceEdges
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - R2Rect::Empty
    - vector::push_back
    - MutableS2ShapeIndex::SkipCellRange
    - S2CellId::range_max
    - S2CellId::range_min
    - absl::Span<const FaceEdge>::size
    - S2PaddedCell
    - R2Rect::FromPointPair
    - vector::reserve
    - MutableS2ShapeIndex::UpdateEdges
    - vector::back
    - S2PaddedCell::id
    - S2CellId::FromFace
    - MutableS2ShapeIndex::ShrinkToFit
    - InteriorTracker*::shape_ids
    - R2Rect::AddRect
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::UpdateFaceEdges(int face,\n                                          absl::Span<const
      FaceEdge> face_edges,\n                                          InteriorTracker*
      tracker)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::ShrinkToFit
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1320,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1321,1
    - Dst: Iterator::InitStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1326,1
    - Dst: Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1327,1
    - Dst: Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' pcell'
    - ' bound'
    argTypes:
    - S2PaddedCell
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1333
    functionName: MutableS2ShapeIndex::ShrinkToFit
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 2
    functionsReached:
    - id
    - Iterator::InitStale
    - Iterator::Locate
    - MutableS2ShapeIndex::ShrinkToFit
    - Iterator::id
    linkageType: ''
    returnType: S2CellId
    signature: "S2CellId MutableS2ShapeIndex::ShrinkToFit(const S2PaddedCell& pcell,\n
      \                                         const R2Rect& bound) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InteriorTracker*::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1342,1
    - Dst: S2CellUnion::FromBeginEnd
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1346,1
    - Dst: MutableS2ShapeIndex::UpdateEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1348,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - begin
    - end
    - tracker
    - alloc
    - disjoint_from_index
    argTypes:
    - S2CellId
    - S2CellId
    - InteriorTracker*
    - EdgeAllocator*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1351
    functionName: MutableS2ShapeIndex::SkipCellRange
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - S2CellUnion::FromBeginEnd
    - InteriorTracker*::shape_ids
    - MutableS2ShapeIndex::UpdateEdges
    - S2PaddedCell
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::SkipCellRange(S2CellId begin, S2CellId end,\n
      \                                       InteriorTracker* tracker,\n                                        EdgeAllocator*
      alloc,\n                                        bool disjoint_from_index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1362,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1362,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1364,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1365,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1365,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1367,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1370,1
    - Dst: MutableS2ShapeIndex::ClipVBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1370,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1370,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1371,1
    - Dst: MutableS2ShapeIndex::ClipVBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1371,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - edge
    - ' middle'
    - child_edges
    - alloc
    argTypes:
    - ClippedEdge*
    - R1Interval
    - vector<const ClippedEdge*>[]
    - EdgeAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1373
    functionName: MutableS2ShapeIndex::ClipVAxis
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::ClipVBound
    - lo
    - hi
    - push_back
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE MutableS2ShapeIndex::ClipVAxis(\n    const
      ClippedEdge* edge,\n    const R1Interval& middle,\n    vector<const ClippedEdge*>
      child_edges[2],\n    EdgeAllocator* alloc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1386,1
    - Dst: vector<const ClippedEdge*>*::empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1386,1
    - Dst: InteriorTracker*::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1386,1
    - Dst: Iterator::InitStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1417,1
    - Dst: Iterator::Locate
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1418,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1418,1
    - Dst: MutableS2ShapeIndex::AbsorbIndexCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1424,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1428,1
    - Dst: MutableS2ShapeIndex::MakeIndexCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1436,1
    - Dst: vector<const ClippedEdge*>*::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1442,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1445,1
    - Dst: EdgeAllocator*::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1451,1
    - Dst: middle
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1457,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1466,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1466,1
    - Dst: MutableS2ShapeIndex::ClipVAxis
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1468,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1469,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1469,1
    - Dst: MutableS2ShapeIndex::ClipVAxis
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1471,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1472,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1472,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1474,1
    - Dst: MutableS2ShapeIndex::ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1474,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1474,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1475,1
    - Dst: MutableS2ShapeIndex::ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1475,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1475,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1476,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1476,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1478,1
    - Dst: MutableS2ShapeIndex::ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1478,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1478,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1479,1
    - Dst: MutableS2ShapeIndex::ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1479,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1479,1
    - Dst: MutableS2ShapeIndex::ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1483,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1483,1
    - Dst: MutableS2ShapeIndex::ClipVAxis
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1484,1
    - Dst: MutableS2ShapeIndex::ClipUBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1485,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1485,1
    - Dst: MutableS2ShapeIndex::ClipVAxis
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1486,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1494,1
    - Dst: vector<const ClippedEdge*>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1495,1
    - Dst: GetChildIJ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1504,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1505,1
    - Dst: InteriorTracker*::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1505,1
    - Dst: MutableS2ShapeIndex::UpdateEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1506,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1506,1
    - Dst: EdgeAllocator*::Reset
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1511,1
    - Dst: InteriorTracker*::RestoreStateBefore
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1515,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 5
    argNames:
    - ' pcell'
    - edges
    - tracker
    - alloc
    - disjoint_from_index
    argTypes:
    - S2PaddedCell
    - vector<const ClippedEdge*>*
    - InteriorTracker*
    - EdgeAllocator*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1380
    functionDepth: 2
    functionLinenumber: 1380
    functionLinenumberEnd: 1517
    functionName: MutableS2ShapeIndex::UpdateEdges
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 3
    functionsReached:
    - InteriorTracker*::RestoreStateBefore
    - MutableS2ShapeIndex::MakeIndexCell
    - MutableS2ShapeIndex::ClipVAxis
    - ABSL_DCHECK
    - EdgeAllocator*::size
    - reserve
    - id
    - vector<const ClippedEdge*>
    - Iterator::Locate
    - GetChildIJ
    - empty
    - S2PaddedCell
    - hi
    - vector<const ClippedEdge*>*::size
    - ABSL_DCHECK_EQ
    - vector<const ClippedEdge*>*::empty
    - middle
    - MutableS2ShapeIndex::ClipUBound
    - MutableS2ShapeIndex::UpdateEdges
    - push_back
    - InteriorTracker*::shape_ids
    - Iterator::InitStale
    - lo
    - EdgeAllocator*::Reset
    - MutableS2ShapeIndex::AbsorbIndexCell
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::UpdateEdges(const S2PaddedCell& pcell,\n
      \                                     vector<const ClippedEdge*>* edges,\n                                      InteriorTracker*
      tracker,\n                                      EdgeAllocator* alloc,\n                                      bool
      disjoint_from_index)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1529,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1531,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1539,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1540,1
    - Dst: MutableS2ShapeIndex::UpdateBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - edge
    - u_end
    - u
    - alloc
    argTypes:
    - ClippedEdge*
    - int
    - double
    - EdgeAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1547
    functionName: MutableS2ShapeIndex::ClipUBound
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - S2::InterpolateDouble
    - lo
    - hi
    - MutableS2ShapeIndex::UpdateBound
    - Project
    linkageType: ''
    returnType: MutableS2ShapeIndex::ClippedEdge
    signature: "MutableS2ShapeIndex::ClippedEdge *\nMutableS2ShapeIndex::ClipUBound(const
      ClippedEdge* edge, int u_end, double u,\n                                EdgeAllocator*
      alloc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1557,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1559,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1562,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1563,1
    - Dst: MutableS2ShapeIndex::UpdateBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - edge
    - v_end
    - v
    - alloc
    argTypes:
    - ClippedEdge*
    - int
    - double
    - EdgeAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1566
    functionName: MutableS2ShapeIndex::ClipVBound
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - S2::InterpolateDouble
    - lo
    - hi
    - MutableS2ShapeIndex::UpdateBound
    - Project
    linkageType: ''
    returnType: MutableS2ShapeIndex::ClippedEdge
    signature: "MutableS2ShapeIndex::ClippedEdge *\nMutableS2ShapeIndex::ClipVBound(const
      ClippedEdge* edge, int v_end, double v,\n                                EdgeAllocator*
      alloc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EdgeAllocator*::NewClippedEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1574,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1580,1
    - Dst: ClippedEdge*::bound::is_empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1580,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1581,1
    - Dst: ClippedEdge*::bound::Contains
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - edge
    - u_end
    - u
    - v_end
    - v
    - alloc
    argTypes:
    - ClippedEdge*
    - int
    - double
    - int
    - double
    - EdgeAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1583
    functionName: MutableS2ShapeIndex::UpdateBound
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 2
    functionsReached:
    - ClippedEdge*::bound::is_empty
    - ABSL_DCHECK
    - ClippedEdge*::bound::Contains
    - EdgeAllocator*::NewClippedEdge
    linkageType: ''
    returnType: MutableS2ShapeIndex::ClippedEdge
    signature: "MutableS2ShapeIndex::ClippedEdge *\nMutableS2ShapeIndex::UpdateBound(const
      ClippedEdge* edge, int u_end, double u,\n                                 int
      v_end, double v, EdgeAllocator* alloc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1597,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1597,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1597,1
    - Dst: InteriorTracker*::is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1611,1
    - Dst: vector<const ClippedEdge*>*::empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1611,1
    - Dst: MutableS2ShapeIndex::is_shape_being_removed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1612,1
    - Dst: InteriorTracker*::at_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1615,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1615,1
    - Dst: InteriorTracker*::MoveTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1616,1
    - Dst: GetEntryVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1616,1
    - Dst: InteriorTracker*::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1618,1
    - Dst: GetExitVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1618,1
    - Dst: InteriorTracker*::set_next_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1619,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1619,1
    - Dst: MutableS2ShapeIndex::is_shape_being_removed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1622,1
    - Dst: InteriorTracker*::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1626,1
    - Dst: InteriorTracker*::SaveAndClearStateBefore
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1636,1
    - Dst: EdgeAllocator*::mutable_face_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1639,1
    - Dst: vector*::clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1640,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1642,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1643,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1644,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1645,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1646,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1648,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1657,1
    - Dst: InteriorTracker*::partial_shape_id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1658,1
    - Dst: InteriorTracker*::AddShape
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1660,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1660,1
    - Dst: InteriorTracker*::MoveTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1665,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1665,1
    - Dst: InteriorTracker*::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1666,1
    - Dst: GetEntryVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1666,1
    - Dst: InteriorTracker*::set_next_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1667,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1667,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1672,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1674,1
    - Dst: MutableS2ShapeIndex::GetEdgeMaxLevel
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1675,1
    - Dst: InteriorTracker*::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1676,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1677,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1677,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1679,1
    - Dst: vector*::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1681,1
    - Dst: EdgeAllocator*::NewClippedEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1687,1
    - Dst: S2::GetClippedEdgeBound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1689,1
    - Dst: bound
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1690,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1691,1
    - Dst: vector<const ClippedEdge*>*::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1695,1
    - Dst: MutableS2ShapeIndex::is_shape_being_removed
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1697,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1698,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1698,1
    - Dst: vector<const ClippedEdge*>*::begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1698,1
    - Dst: vector<const ClippedEdge*>*::end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1698,1
    - Dst: vector<const ClippedEdge*>*::swap
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1703,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1704,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1704,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 5
    argNames:
    - ' pcell'
    - ' iter'
    - edges
    - tracker
    - alloc
    argTypes:
    - S2PaddedCell
    - Iterator
    - vector<const ClippedEdge*>*
    - InteriorTracker*
    - EdgeAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1592
    functionDepth: 1
    functionLinenumber: 1592
    functionLinenumberEnd: 1705
    functionName: MutableS2ShapeIndex::AbsorbIndexCell
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - InteriorTracker*::at_cellid
    - num_edges
    - shape_id
    - vector::end
    - vector::insert
    - ABSL_LOG
    - num_clipped
    - InteriorTracker*::TestEdge
    - InteriorTracker*::MoveTo
    - GetExitVertex
    - EdgeAllocator*::mutable_face_edges
    - id
    - S2Shape*::edge
    - vector<const ClippedEdge*>*::begin
    - bound
    - MutableS2ShapeIndex::is_shape_being_removed
    - InteriorTracker*::set_next_cellid
    - InteriorTracker*::partial_shape_id
    - S2::GetClippedEdgeBound
    - cell
    - InteriorTracker*::SaveAndClearStateBefore
    - MutableS2ShapeIndex::shape
    - vector*::push_back
    - vector::push_back
    - MutableS2ShapeIndex::GetEdgeMaxLevel
    - vector<const ClippedEdge*>*::size
    - vector<const ClippedEdge*>*::swap
    - ABSL_DCHECK_EQ
    - vector<const ClippedEdge*>*::empty
    - InteriorTracker*::AddShape
    - S2::ClipToPaddedFace
    - erase
    - clipped
    - InteriorTracker*::DrawTo
    - contains_center
    - EdgeAllocator*::NewClippedEdge
    - GetCenter
    - InteriorTracker*::is_active
    - S2Shape*::dimension
    - vector*::clear
    - edge
    - GetEntryVertex
    - vector<const ClippedEdge*>*::end
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::AbsorbIndexCell(const S2PaddedCell& pcell,\n
      \                                         const Iterator& iter,\n                                          vector<const
      ClippedEdge*>* edges,\n                                          InteriorTracker*
      tracker,\n                                          EdgeAllocator* alloc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1712,1
    - Dst: InteriorTracker*::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1712,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1822,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1822,1
    - Dst: max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1822,1
    - Dst: max
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1824,1
    - Dst: max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1824,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1825,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1826,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1827,1
    - Dst: InteriorTracker*::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1827,1
    - Dst: level
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1830,1
    - Dst: InteriorTracker*::is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1858,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1858,1
    - Dst: InteriorTracker*::at_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1859,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1859,1
    - Dst: InteriorTracker*::MoveTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1860,1
    - Dst: GetEntryVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1860,1
    - Dst: InteriorTracker*::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1862,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1862,1
    - Dst: MutableS2ShapeIndex::TestAllEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1863,1
    - Dst: InteriorTracker*::shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1868,1
    - Dst: MutableS2ShapeIndex::CountShapes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1869,1
    - Dst: make_unique<S2ShapeIndexCell>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1870,1
    - Dst: auto::add_shapes
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1871,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1879,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1882,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1883,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1886,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1892,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1893,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1897,1
    - Dst: S2ClippedShape*::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1901,1
    - Dst: S2ClippedShape*::set_edge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1903,1
    - Dst: S2ClippedShape*::set_contains_center
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1906,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1916,1
    - Dst: InteriorTracker*::is_active
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1919,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1919,1
    - Dst: InteriorTracker*::DrawTo
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1920,1
    - Dst: GetExitVertex
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1920,1
    - Dst: MutableS2ShapeIndex::TestAllEdges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1921,1
    - Dst: InteriorTracker*::set_next_cellid
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1922,1
    - Dst: id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1922,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - ' pcell'
    - ' edges'
    - tracker
    argTypes:
    - S2PaddedCell
    - vector<const ClippedEdge*>
    - InteriorTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1925
    functionName: MutableS2ShapeIndex::MakeIndexCell
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - InteriorTracker*::at_cellid
    - end
    - MutableS2ShapeIndex::num_shape_ids
    - S2ClippedShape*::set_contains_center
    - begin
    - insert
    - auto::add_shapes
    - InteriorTracker*::MoveTo
    - GetExitVertex
    - id
    - make_pair
    - empty
    - S2ClippedShape*::Init
    - InteriorTracker*::set_next_cellid
    - level
    - std::move
    - static_cast<int>
    - InteriorTracker*::DrawTo
    - InteriorTracker*::shape_ids
    - max
    - max_edges_per_cell
    - GetCenter
    - MutableS2ShapeIndex::TestAllEdges
    - InteriorTracker*::is_active
    - S2ClippedShape*::set_edge
    - static_cast<size_t>
    - size
    - MutableS2ShapeIndex::CountShapes
    - make_unique<S2ShapeIndexCell>
    - GetEntryVertex
    - absl::GetFlag
    linkageType: ''
    returnType: bool
    signature: "bool MutableS2ShapeIndex::MakeIndexCell(const S2PaddedCell& pcell,\n
      \                                       const vector<const ClippedEdge*>& edges,\n
      \                                       InteriorTracker* tracker)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InteriorTracker*::TestEdge
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' edges'
    - tracker
    argTypes:
    - vector<const ClippedEdge*>
    - InteriorTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1929
    functionDepth: 0
    functionLinenumber: 1929
    functionLinenumberEnd: 1937
    functionName: MutableS2ShapeIndex::TestAllEdges
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - InteriorTracker*::TestEdge
    linkageType: ''
    returnType: void
    signature: "void MutableS2ShapeIndex::TestAllEdges(const vector<const ClippedEdge*>&
      edges,\n                                       InteriorTracker* tracker)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1946,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1953,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1960,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ' edges'
    - ' cshape_ids'
    argTypes:
    - vector<const ClippedEdge*>
    - ShapeIdSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1942
    functionDepth: 0
    functionLinenumber: 1942
    functionLinenumberEnd: 1962
    functionName: MutableS2ShapeIndex::CountShapes
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 1
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: int
    signature: "int MutableS2ShapeIndex::CountShapes(const vector<const ClippedEdge*>&
      edges,\n                                     const ShapeIdSet& cshape_ids)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: capacity
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1966,1
    - Dst: bytes_used
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1968,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1969,1
    - Dst: Iterator::InitStale
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1971,1
    - Dst: Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1971,1
    - Dst: Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1971,1
    - Dst: Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1972,1
    - Dst: shapes_::capacity
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1973,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1974,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1975,1
    - Dst: is_inline
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1976,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1977,1
    - Dst: capacity
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1983,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1964
    functionDepth: 0
    functionLinenumber: 1964
    functionLinenumberEnd: 1986
    functionName: MutableS2ShapeIndex::SpaceUsed
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 4
    functionsReached:
    - is_inline
    - Iterator::Next
    - bytes_used
    - Iterator::done
    - size
    - num_edges
    - Iterator::cell
    - Iterator::InitStale
    - clipped
    - shapes_::capacity
    - capacity
    - num_clipped
    linkageType: ''
    returnType: size_t
    signature: size_t MutableS2ShapeIndex::SpaceUsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1992,1
    - Dst: max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1993,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1994,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:1998,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2000,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2000,1
    - Dst: s2coding::StringVectorEncoder::StringVectorEncoder
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2001,1
    - Dst: Iterator::done
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2002,1
    - Dst: Iterator::Next
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2002,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2003,1
    - Dst: Iterator::id
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2003,1
    - Dst: Iterator::cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2004,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2004,1
    - Dst: s2coding::StringVectorEncoder::AddViaEncoder
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2004,1
    - Dst: s2coding::EncodeS2CellIdVector
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2006,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1988
    functionDepth: 2
    functionLinenumber: 1988
    functionLinenumberEnd: 2008
    functionName: MutableS2ShapeIndex::Encode
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 7
    functionsReached:
    - s2coding::EncodeS2CellIdVector
    - vector::push_back
    - Iterator::id
    - Encoder*::put_varint64
    - MutableS2ShapeIndex::ForceBuild
    - Iterator::Next
    - Iterator::done
    - size
    - vector::reserve
    - Iterator::cell
    - MutableS2ShapeIndex::num_shape_ids
    - s2coding::StringVectorEncoder::Encode
    - s2coding::StringVectorEncoder::AddViaEncoder
    - Encoder*::Ensure
    - s2coding::StringVectorEncoder::StringVectorEncoder
    - max_edges_per_cell
    linkageType: ''
    returnType: void
    signature: void MutableS2ShapeIndex::Encode(Encoder* encoder) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Clear
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2012,1
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2014,1
    - Dst: set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2017,1
    - Dst: size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2018,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2019,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2022,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2022,1
    - Dst: s2coding::EncodedS2CellIdVector::EncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2025,1
    - Dst: s2coding::EncodedStringVector::EncodedStringVector
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2026,1
    - Dst: s2coding::EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2027,1
    - Dst: s2coding::EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2028,1
    - Dst: s2coding::EncodedS2CellIdVector::size
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2030,1
    - Dst: make_unique<S2ShapeIndexCell>
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2032,1
    - Dst: s2coding::EncodedStringVector::GetDecoder
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2033,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2034,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2037,1
    - Dst: end
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2037,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2037,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/mutable_s2shape_index.cc:2037,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - decoder
    - ' shape_factory'
    argTypes:
    - Decoder*
    - ShapeFactory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2010
    functionDepth: 4
    functionLinenumber: 2010
    functionLinenumberEnd: 2040
    functionName: MutableS2ShapeIndex::Init
    functionSourceFile: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    functionUses: 12
    functionsReached:
    - s2coding::EncodedS2CellIdVector::size
    - set_max_edges_per_cell
    - reserve
    - s2coding::EncodedStringVector::GetDecoder
    - end
    - size
    - std::move
    - auto::Decode
    - s2coding::EncodedS2CellIdVector::Init
    - push_back
    - s2coding::EncodedS2CellIdVector::EncodedS2CellIdVector
    - insert
    - make_unique<S2ShapeIndexCell>
    - Decoder*::get_varint64
    - s2coding::EncodedStringVector::EncodedStringVector
    - make_pair
    - s2coding::EncodedStringVector::Init
    - MutableS2ShapeIndex::Clear
    linkageType: ''
    returnType: bool
    signature: "bool MutableS2ShapeIndex::Init(Decoder* decoder,\n                               const
      ShapeFactory& shape_factory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: MakeId
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromToken
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId MakeId(string_view token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:39,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:39,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:40,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:40,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:41,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:41,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:42,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:42,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:43,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:43,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:44,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:44,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:47,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:50,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:50,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:50,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:51,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:51,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:51,1
    - Dst: auto::Finish
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:54,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:55,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:55,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:55,1
    - Dst: auto::Begin
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:59,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:59,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:59,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:62,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:63,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:63,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:63,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:64,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:64,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:64,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:67,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:68,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:68,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:68,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:68,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:69,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:69,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:69,1
    - Dst: auto::Prev
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:73,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:73,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:73,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:74,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:74,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:74,1
    - Dst: auto::Seek
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:77,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:78,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:78,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:78,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:78,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:80,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:80,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:80,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:80,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:81,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:82,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:83,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:83,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 84
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - MakeMockS2CellIterator
    - Ge
    - auto::Seek
    - auto::Begin
    - EXPECT_THAT
    - IsTrue
    - auto::done
    - MakeId
    - auto::id
    - auto::Finish
    - auto::Next
    - auto::value
    - std::make_pair
    - IsFalse
    - auto::Prev
    linkageType: ''
    returnType: void
    signature: void TEST(MockIterator, BasicFunctionality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: MakeId
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc
    functionUses: 1
    functionsReached:
    - S2CellId::FromToken
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId MakeId(string_view token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:39,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:39,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:40,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:40,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:41,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:41,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:42,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:42,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:43,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:43,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:44,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:44,1
    - Dst: MakeMockS2CellIterator
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:47,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:50,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:50,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:50,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:51,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:51,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:51,1
    - Dst: auto::Finish
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:54,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:55,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:55,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:55,1
    - Dst: auto::Begin
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:59,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:59,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:59,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:62,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:63,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:63,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:63,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:64,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:64,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:64,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:67,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:68,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:68,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:68,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:68,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:69,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:69,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:69,1
    - Dst: auto::Prev
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:73,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:73,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:73,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:74,1
    - Dst: auto::value
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:74,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:74,1
    - Dst: auto::Seek
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:77,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:78,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:78,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:78,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:78,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:80,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:80,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:80,1
    - Dst: MakeId
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:80,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:81,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:82,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:83,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:83,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 84
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - MakeMockS2CellIterator
    - Ge
    - auto::Seek
    - auto::Begin
    - EXPECT_THAT
    - IsTrue
    - auto::done
    - MakeId
    - auto::id
    - auto::Finish
    - auto::Next
    - auto::value
    - std::make_pair
    - IsFalse
    - auto::Prev
    linkageType: ''
    returnType: void
    signature: void TEST(MockIterator, BasicFunctionality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<s2builderutil::IdentitySnapFunction>
      Src: /src/s2geometry/src/s2/s2builder.cc:132,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2builder.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: S2Builder::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::IdentitySnapFunction>
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void S2Builder::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/s2builder.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' snap_function'
    argTypes:
    - SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: S2Builder::Options::Options(const SnapFunction& snap_function)
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: void S2Builder::Options::Options(const SnapFunction& snap_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function_::Clone
      Src: /src/s2geometry/src/s2/s2builder.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: S2Builder::Options::Options(const Options& options)
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - snap_function_::Clone
    linkageType: ''
    returnType: void
    signature: void S2Builder::Options::Options(const Options& options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function_::Clone
      Src: /src/s2geometry/src/s2/s2builder.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: '& S2Builder::Options::operator=(const Options& options)'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - snap_function_::Clone
    linkageType: ''
    returnType: S2Builder::Options
    signature: S2Builder::Options & S2Builder::Options::operator=(const Options& options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function
      Src: /src/s2geometry/src/s2/s2builder.cc:159,1
    - Dst: intersection_tolerance
      Src: /src/s2geometry/src/s2/s2builder.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: S2Builder::Options::edge_snap_radius() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - snap_function
    - intersection_tolerance
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Builder::Options::edge_snap_radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builder.cc:179,1
    - Dst: snap_function
      Src: /src/s2geometry/src/s2/s2builder.cc:179,1
    - Dst: SnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builder.cc:179,1
    - Dst: edge_snap_radius
      Src: /src/s2geometry/src/s2/s2builder.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: S2Builder::Options::max_edge_deviation() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - edge_snap_radius
    - snap_function
    - SnapFunction::kMaxSnapRadius
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Builder::Options::max_edge_deviation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder.cc:186,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder.cc:186,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:187,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:187,1
    - Dst: duplicate_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:188,1
    - Dst: duplicate_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:188,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder.cc:189,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder.cc:189,1
    - Dst: allow_vertex_filtering
      Src: /src/s2geometry/src/s2/s2builder.cc:190,1
    - Dst: allow_vertex_filtering
      Src: /src/s2geometry/src/s2/s2builder.cc:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Builder::GraphOptions
    - S2Builder::GraphOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: "operator==(const S2Builder::GraphOptions& x,\n                const
      S2Builder::GraphOptions& y)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - edge_type
    - allow_vertex_filtering
    - degenerate_edges
    - duplicate_edges
    - sibling_pairs
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const S2Builder::GraphOptions& x,\n                const
      S2Builder::GraphOptions& y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2builder.cc:197,1
    - Dst: S1ChordAngle::GetS1AngleConstructorMaxError
      Src: /src/s2geometry/src/s2/s2builder.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: RoundUp
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::PlusError
    - S1ChordAngle::GetS1AngleConstructorMaxError
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle RoundUp(S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2builder.cc:201,1
    - Dst: S1ChordAngle::GetS2PointConstructorMaxError
      Src: /src/s2geometry/src/s2/s2builder.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ca
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: AddPointToPointError
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::PlusError
    - S1ChordAngle::GetS2PointConstructorMaxError
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle AddPointToPointError(S1ChordAngle ca)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2builder.cc:205,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2builder.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ca
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: AddPointToEdgeError
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::PlusError
    - S2::GetUpdateMinDistanceMaxError
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle AddPointToEdgeError(S1ChordAngle ca)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    functionName: S2Builder::S2Builder
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Builder::S2Builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Init
      Src: /src/s2geometry/src/s2/s2builder.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: S2Builder::S2Builder
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - S2Builder::Init
    linkageType: ''
    returnType: void
    signature: void S2Builder::S2Builder(const Options& options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snap_function
      Src: /src/s2geometry/src/s2/s2builder.cc:216,1
    - Dst: snap_radius
      Src: /src/s2geometry/src/s2/s2builder.cc:217,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builder.cc:218,1
    - Dst: SnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builder.cc:218,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2builder.cc:222,1
    - Dst: edge_snap_radius
      Src: /src/s2geometry/src/s2/s2builder.cc:233,1
    - Dst: RoundUp
      Src: /src/s2geometry/src/s2/s2builder.cc:234,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2builder.cc:235,1
    - Dst: max_edge_deviation
      Src: /src/s2geometry/src/s2/s2builder.cc:239,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2builder.cc:240,1
    - Dst: min_edge_vertex_separation
      Src: /src/s2geometry/src/s2/s2builder.cc:241,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2builder.cc:248,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2builder.cc:251,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2builder.cc:252,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2builder.cc:252,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2builder.cc:252,1
    - Dst: max_edge_deviation
      Src: /src/s2geometry/src/s2/s2builder.cc:279,1
    - Dst: edge_snap_radius
      Src: /src/s2geometry/src/s2/s2builder.cc:280,1
    - Dst: min_edge_vertex_separation
      Src: /src/s2geometry/src/s2/s2builder.cc:281,1
    - Dst: intersection_tolerance
      Src: /src/s2geometry/src/s2/s2builder.cc:282,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2builder.cc:282,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder.cc:283,1
    - Dst: min_vertex_separation
      Src: /src/s2geometry/src/s2/s2builder.cc:291,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2builder.cc:292,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2builder.cc:294,1
    - Dst: min_edge_vertex_separation
      Src: /src/s2geometry/src/s2/s2builder.cc:294,1
    - Dst: AddPointToEdgeError
      Src: /src/s2geometry/src/s2/s2builder.cc:299,1
    - Dst: AddPointToPointError
      Src: /src/s2geometry/src/s2/s2builder.cc:305,1
    - Dst: RoundUp
      Src: /src/s2geometry/src/s2/s2builder.cc:305,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2builder.cc:311,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2builder.cc:313,1
    - Dst: EmptySetId
      Src: /src/s2geometry/src/s2/s2builder.cc:317,1
    - Dst: S2Builder::Init
      Src: /src/s2geometry/src/s2/s2builder.cc:326,1
    - Dst: memory_tracker
      Src: /src/s2geometry/src/s2/s2builder.cc:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 327
    functionName: S2Builder::Init
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 2
    functionsReached:
    - S2Builder::Init
    - intersection_tolerance
    - sqrt
    - ABSL_DCHECK
    - edge_snap_radius
    - S1ChordAngle::Infinity
    - sin
    - min_vertex_separation
    - S1ChordAngle
    - snap_radius
    - ABSL_DCHECK_LE
    - max_edge_deviation
    - snap_function
    - RoundUp
    - min_edge_vertex_separation
    - acos
    - S1ChordAngle::Radians
    - AddPointToPointError
    - S1Angle::Zero
    - memory_tracker
    - AddPointToEdgeError
    - EmptySetId
    - SnapFunction::kMaxSnapRadius
    linkageType: ''
    returnType: void
    signature: void S2Builder::Init(const Options& options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: S2Builder::clear_labels
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 8
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void S2Builder::clear_labels()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builder.cc:335,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - label
    argTypes:
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: S2Builder::push_label
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 3
    functionsReached:
    - push_back
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2Builder::push_label(Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/s2builder.cc:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: S2Builder::pop_label
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: void
    signature: void S2Builder::pop_label()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builder.cc:346,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builder.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - label
    argTypes:
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 350
    functionName: S2Builder::set_label
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 10
    functionsReached:
    - resize
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2Builder::set_label(Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2builder.cc:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Builder::Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: S2Builder::IsFullPolygonUnspecified
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - S2Error
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::IsFullPolygonUnspecified(const S2Builder::Graph& g,\n
      \                                        S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - is_full
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: S2Builder::IsFullPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::IsFullPolygonPredicate
    signature: S2Builder::IsFullPolygonPredicate S2Builder::IsFullPolygon(bool is_full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:369,1
    - Dst: unique_ptr<Layer>::graph_options
      Src: /src/s2geometry/src/s2/s2builder.cc:369,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:370,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:370,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:371,1
    - Dst: S2Builder::IsFullPolygon
      Src: /src/s2geometry/src/s2/s2builder.cc:371,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:372,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder.cc:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - layer
    argTypes:
    - unique_ptr<Layer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: S2Builder::StartLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 126
    functionsReached:
    - size
    - std::move
    - push_back
    - unique_ptr<Layer>::graph_options
    - S2Builder::IsFullPolygon
    linkageType: ''
    returnType: void
    signature: void S2Builder::StartLayer(unique_ptr<Layer> layer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:384,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builder.cc:384,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2builder.cc:385,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:386,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 389
    functionName: S2Builder::AddVertex
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - size
    - push_back
    - back
    - AddSpace
    - empty
    linkageType: ''
    returnType: S2Builder::InputVertexId
    signature: S2Builder::InputVertexId S2Builder::AddVertex(const S2Point& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2builder.cc:394,1
    - Dst: intersection_tolerance
      Src: /src/s2geometry/src/s2/s2builder.cc:394,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2builder.cc:394,1
    - Dst: S2Builder::AddVertex
      Src: /src/s2geometry/src/s2/s2builder.cc:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vertex'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 400
    functionName: S2Builder::AddIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - S2Builder::AddVertex
    - ABSL_DCHECK_GT
    - S1Angle::Zero
    - intersection_tolerance
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddIntersection(const S2Point& vertex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder.cc:403,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:403,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builder.cc:404,1
    - Dst: S2Builder::AddVertex
      Src: /src/s2geometry/src/s2/s2builder.cc:408,1
    - Dst: S2Builder::AddVertex
      Src: /src/s2geometry/src/s2/s2builder.cc:409,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2builder.cc:410,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:411,1
    - Dst: InputEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:411,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:415,1
    - Dst: assign
      Src: /src/s2geometry/src/s2/s2builder.cc:417,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:417,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builder.cc:419,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:420,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:422,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:423,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - ' v0'
    - ' v1'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 425
    functionName: S2Builder::AddEdge
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 25
    functionsReached:
    - S2Builder::AddVertex
    - Add
    - size
    - push_back
    - back
    - assign
    - AddSpace
    - empty
    - InputEdge
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddEdge(const S2Point& v0, const S2Point& v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointSpan::size
      Src: /src/s2geometry/src/s2/s2builder.cc:428,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - S2PointSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: S2Builder::AddPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 40
    functionsReached:
    - S2Builder::AddEdge
    - S2PointSpan::size
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddPolyline(S2PointSpan polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder.cc:434,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:436,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:436,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' polyline'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 438
    functionName: S2Builder::AddPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 40
    functionsReached:
    - vertex
    - num_vertices
    - S2Builder::AddEdge
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddPolyline(const S2Polyline& polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2builder.cc:441,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: S2Builder::AddLoop
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 4
    functionsReached:
    - S2Builder::AddEdge
    - S2PointLoopSpan::size
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddLoop(S2PointLoopSpan loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_or_full
      Src: /src/s2geometry/src/s2/s2builder.cc:448,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder.cc:458,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:460,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:460,1
    - Dst: oriented_vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 462
    functionName: S2Builder::AddLoop
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 4
    functionsReached:
    - num_vertices
    - is_empty_or_full
    - S2Builder::AddEdge
    - oriented_vertex
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddLoop(const S2Loop& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_loops
      Src: /src/s2geometry/src/s2/s2builder.cc:465,1
    - Dst: S2Builder::AddLoop
      Src: /src/s2geometry/src/s2/s2builder.cc:466,1
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2builder.cc:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' polygon'
    argTypes:
    - S2Polygon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: S2Builder::AddPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 21
    functionsReached:
    - num_loops
    - S2Builder::AddLoop
    - loop
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddPolygon(const S2Polygon& polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:471,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder.cc:472,1
    - Dst: S2Builder::AddEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 475
    functionName: S2Builder::AddShape
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 25
    functionsReached:
    - num_edges
    - edge
    - S2Builder::AddEdge
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddShape(const S2Shape& shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builder.cc:478,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builder.cc:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - IsFullPolygonPredicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: S2Builder::AddIsFullPolygonPredicate
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 9
    functionsReached:
    - std::move
    - back
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddIsFullPolygonPredicate(IsFullPolygonPredicate predicate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2builder.cc:482,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' vertex'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: S2Builder::ForceVertex
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 14
    functionsReached:
    - AddSpace
    - push_back
    linkageType: ''
    returnType: void
    signature: void S2Builder::ForceVertex(const S2Point& vertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' edges'
    - ' vertices'
    argTypes:
    - vector<pair<int32_t, int32_t>>
    - vector<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: VertexIdEdgeVectorShape::VertexIdEdgeVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VertexIdEdgeVectorShape(const vector<pair<int32_t, int32_t>>&
      edges,\n                          const vector<S2Point>& vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 496
    functionName: '& vertex0(int e) const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - vertex
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex0(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 497
    functionName: '& vertex1(int e) const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - vertex
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex1(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 500
    functionName: VertexIdEdgeVectorShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_edges() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder.cc:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 503
    functionName: VertexIdEdgeVectorShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - Edge
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: VertexIdEdgeVectorShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2builder.cc:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: VertexIdEdgeVectorShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    functionName: VertexIdEdgeVectorShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_chains() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2builder.cc:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 509
    functionName: VertexIdEdgeVectorShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - Chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VertexIdEdgeVectorShape::edge
      Src: /src/s2geometry/src/s2/s2builder.cc:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 510
    functionName: VertexIdEdgeVectorShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - VertexIdEdgeVectorShape::edge
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2builder.cc:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 513
    functionName: VertexIdEdgeVectorShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 516
    functionName: '& vertex(int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' edges'
    - ' vertices'
    argTypes:
    - vector<pair<int32_t, int32_t>>
    - vector<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: VertexIdEdgeVectorShape::VertexIdEdgeVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VertexIdEdgeVectorShape(const vector<pair<int32_t, int32_t>>&
      edges,\n                          const vector<S2Point>& vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 496
    functionName: '& vertex0(int e) const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - vertex
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex0(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 497
    functionName: '& vertex1(int e) const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - vertex
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex1(int e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 500
    functionName: VertexIdEdgeVectorShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_edges() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder.cc:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 503
    functionName: VertexIdEdgeVectorShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - Edge
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: VertexIdEdgeVectorShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2builder.cc:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: VertexIdEdgeVectorShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    functionName: VertexIdEdgeVectorShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_chains() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2builder.cc:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 509
    functionName: VertexIdEdgeVectorShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - Chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VertexIdEdgeVectorShape::edge
      Src: /src/s2geometry/src/s2/s2builder.cc:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 510
    functionName: VertexIdEdgeVectorShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - VertexIdEdgeVectorShape::edge
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2builder.cc:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 513
    functionName: VertexIdEdgeVectorShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 516
    functionName: '& vertex(int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:543,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:544,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:545,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:546,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:547,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:548,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:549,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2builder.cc:550,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:551,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:553,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 556
    functionName: S2Builder::Reset
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - Clear
    - clear
    linkageType: ''
    returnType: void
    signature: void S2Builder::Reset()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder.cc:559,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:559,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builder.cc:564,1
    - Dst: MutableS2ShapeIndex::set_memory_tracker
      Src: /src/s2geometry/src/s2/s2builder.cc:565,1
    - Dst: tracker
      Src: /src/s2geometry/src/s2/s2builder.cc:565,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2builder.cc:566,1
    - Dst: make_unique<VertexIdEdgeVectorShape>
      Src: /src/s2geometry/src/s2/s2builder.cc:566,1
    - Dst: split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:568,1
    - Dst: S2Builder::AddEdgeCrossings
      Src: /src/s2geometry/src/s2/s2builder.cc:569,1
    - Dst: S2PointIndex::S2PointIndex
      Src: /src/s2geometry/src/s2/s2builder.cc:573,1
    - Dst: absl::MakeCleanup
      Src: /src/s2geometry/src/s2/s2builder.cc:574,1
    - Dst: DoneSiteIndex
      Src: /src/s2geometry/src/s2/s2builder.cc:574,1
    - Dst: S2Builder::AddForcedSites
      Src: /src/s2geometry/src/s2/s2builder.cc:575,1
    - Dst: S2Builder::ChooseInitialSites
      Src: /src/s2geometry/src/s2/s2builder.cc:576,1
    - Dst: FixSiteIndexTally
      Src: /src/s2geometry/src/s2/s2builder.cc:577,1
    - Dst: S2Builder::CollectSiteEdges
      Src: /src/s2geometry/src/s2/s2builder.cc:578,1
    - Dst: S2Builder::AddExtraSites
      Src: /src/s2geometry/src/s2/s2builder.cc:581,1
    - Dst: S2Builder::ChooseAllVerticesAsSites
      Src: /src/s2geometry/src/s2/s2builder.cc:583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 585
    functionName: S2Builder::ChooseSites
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - DoneSiteIndex
    - make_unique<VertexIdEdgeVectorShape>
    - FixSiteIndexTally
    - tracker
    - S2Builder::CollectSiteEdges
    - MutableS2ShapeIndex::set_memory_tracker
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2Builder::AddEdgeCrossings
    - absl::MakeCleanup
    - S2Builder::ChooseInitialSites
    - S2PointIndex::S2PointIndex
    - S2Builder::AddExtraSites
    - S2Builder::ChooseAllVerticesAsSites
    - empty
    - ok
    - split_crossing_edges
    - S2Builder::AddForcedSites
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void S2Builder::ChooseSites()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:594,1
    - Dst: AddSpaceExact
      Src: /src/s2geometry/src/s2/s2builder.cc:595,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:595,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/s2builder.cc:597,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:597,1
    - Dst: S2Builder::SortInputVertices
      Src: /src/s2geometry/src/s2/s2builder.cc:598,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:599,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:600,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:602,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:603,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:604,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 613
    functionName: S2Builder::ChooseAllVerticesAsSites
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - size
    - S2Builder::SortInputVertices
    - clear
    - push_back
    - AddSpaceExact
    - TallyTemp
    - vector::size
    linkageType: ''
    returnType: void
    signature: void S2Builder::ChooseAllVerticesAsSites()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:671,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:671,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builder.cc:672,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:672,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:674,1
    - Dst: InputVertexKey
      Src: /src/s2geometry/src/s2/s2builder.cc:674,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2builder.cc:674,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder.cc:676,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder.cc:676,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder.cc:676,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 685
    functionName: S2Builder::SortInputVertices
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - S2CellId
    - static_cast<size_t>
    - size
    - vector::reserve
    - InputVertexKey
    - vector::end
    - std::sort
    - vector::begin
    linkageType: ''
    returnType: vector<S2Builder::InputVertexKey>
    signature: vector<S2Builder::InputVertexKey> S2Builder::SortInputVertices()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2builder.cc:691,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder.cc:692,1
    - Dst: absl::MakeCleanup
      Src: /src/s2geometry/src/s2/s2builder.cc:697,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2builder.cc:697,1
    - Dst: s2shapeutil::VisitCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2builder.cc:698,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2builder.cc:702,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:703,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2builder.cc:704,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2builder.cc:704,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2builder.cc:704,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2builder.cc:704,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2builder.cc:704,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:707,1
    - Dst: AddSpaceExact
      Src: /src/s2geometry/src/s2/s2builder.cc:710,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:710,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2builder.cc:711,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder.cc:711,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder.cc:712,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder.cc:712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' input_edge_index'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 713
    functionName: S2Builder::AddEdgeCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - s2shapeutil::VisitCrossingEdgePairs
    - ForceBuild
    - end
    - v1
    - v0
    - vector::end
    - absl::MakeCleanup
    - insert
    - vector::size
    - AddSpace
    - vector::empty
    - vector::begin
    - AddSpaceExact
    - Untally
    - ok
    - S2::GetIntersection
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddEdgeCrossings(const MutableS2ShapeIndex& input_edge_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder.cc:717,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder.cc:717,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder.cc:717,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2builder.cc:718,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2builder.cc:718,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder.cc:718,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder.cc:718,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder.cc:718,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builder.cc:720,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:720,1
    - Dst: TallyIndexedSite
      Src: /src/s2geometry/src/s2/s2builder.cc:721,1
    - Dst: S2PointIndex<SiteId>*::Add
      Src: /src/s2geometry/src/s2/s2builder.cc:722,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - site_index
    argTypes:
    - S2PointIndex<SiteId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 725
    functionName: S2Builder::AddForcedSites
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - S2PointIndex<SiteId>*::Add
    - TallyIndexedSite
    - end
    - static_cast<size_t>
    - size
    - erase
    - begin
    - std::sort
    - std::unique
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddForcedSites(S2PointIndex<SiteId>* site_index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2builder.cc:730,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:750,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:750,1
    - Dst: S2Builder::SortInputVertices
      Src: /src/s2geometry/src/s2/s2builder.cc:751,1
    - Dst: absl::MakeCleanup
      Src: /src/s2geometry/src/s2/s2builder.cc:752,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2builder.cc:752,1
    - Dst: S2Builder::SnapSite
      Src: /src/s2geometry/src/s2/s2builder.cc:755,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2builder.cc:760,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:761,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builder.cc:761,1
    - Dst: S2ClosestPointQuery::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2builder.cc:770,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2builder.cc:772,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2builder.cc:772,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2builder.cc:777,1
    - Dst: TallyIndexedSite
      Src: /src/s2geometry/src/s2/s2builder.cc:782,1
    - Dst: S2PointIndex<SiteId>*::Add
      Src: /src/s2geometry/src/s2/s2builder.cc:783,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:783,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2builder.cc:784,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:785,1
    - Dst: S2ClosestPointQuery::ReInit
      Src: /src/s2geometry/src/s2/s2builder.cc:786,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - site_index
    argTypes:
    - S2PointIndex<SiteId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 727
    functionDepth: 5
    functionLinenumber: 727
    functionLinenumberEnd: 789
    functionName: S2Builder::ChooseInitialSites
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - S2PointIndex<SiteId>*::Add
    - S2Builder::SnapSite
    - TallyIndexedSite
    - S2ClosestPointQuery::FindClosestPoints
    - size
    - S2Builder::SortInputVertices
    - Tally
    - absl::MakeCleanup
    - S1ChordAngle::Zero
    - back
    - s2pred::CompareDistance
    - S2ClosestPointQueryOptions::set_conservative_max_distance
    - AddSpace
    - push_back
    - S2ClosestPointQuery::ReInit
    - empty
    - Untally
    - point
    linkageType: ''
    returnType: void
    signature: void S2Builder::ChooseInitialSites(S2PointIndex<SiteId>* site_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snap_function
      Src: /src/s2geometry/src/s2/s2builder.cc:793,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2builder.cc:796,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2builder.cc:798,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2builder.cc:801,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2builder.cc:801,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2builder.cc:801,1
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s2builder.cc:802,1
    - Dst: ToAngle
      Src: /src/s2geometry/src/s2/s2builder.cc:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 791
    functionDepth: 4
    functionLinenumber: 791
    functionLinenumberEnd: 806
    functionName: S2Builder::SnapSite
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - absl::StrFormat
    - z
    - S2Error
    - S1ChordAngle::ToAngle
    - snap_function
    - ToAngle
    - y
    - x
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Builder::SnapSite(const S2Point& point) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestPointQueryOptions::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2builder.cc:818,1
    - Dst: AddSpaceExact
      Src: /src/s2geometry/src/s2/s2builder.cc:821,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:821,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builder.cc:822,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:822,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builder.cc:823,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:823,1
    - Dst: S2ClosestPointQuery::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2builder.cc:828,1
    - Dst: auto*::reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:830,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:830,1
    - Dst: auto*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:832,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder.cc:832,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2builder.cc:834,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2builder.cc:835,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2builder.cc:835,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2builder.cc:836,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2builder.cc:836,1
    - Dst: S2Builder::SortSitesByDistance
      Src: /src/s2geometry/src/s2/s2builder.cc:841,1
    - Dst: TallyEdgeSites
      Src: /src/s2geometry/src/s2/s2builder.cc:842,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - ' site_index'
    argTypes:
    - S2PointIndex<SiteId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 812
    functionDepth: 5
    functionLinenumber: 812
    functionLinenumberEnd: 844
    functionName: S2Builder::CollectSiteEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - S2ClosestPointQuery::FindClosestPoints
    - static_cast<size_t>
    - size
    - auto*::reserve
    - TallyEdgeSites
    - data
    - auto*::push_back
    - s2pred::CompareEdgeDistance
    - S2ClosestPointQueryOptions::set_conservative_max_distance
    - AddSpaceExact
    - distance
    - S2Builder::SortSitesByDistance
    - resize
    - point
    - vector::size
    linkageType: ''
    returnType: void
    signature: void S2Builder::CollectSiteEdges(const S2PointIndex<SiteId>& site_index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder.cc:849,1
    - Dst: compact_array<SiteId>*::begin
      Src: /src/s2geometry/src/s2/s2builder.cc:849,1
    - Dst: compact_array<SiteId>*::end
      Src: /src/s2geometry/src/s2/s2builder.cc:849,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2builder.cc:851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' x'
    - sites
    argTypes:
    - S2Point
    - compact_array<SiteId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 856
    functionName: S2Builder::SortSitesByDistance
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - s2pred::CompareDistances
    - compact_array<SiteId>*::begin
    - compact_array<SiteId>*::end
    - std::sort
    linkageType: ''
    returnType: void
    signature: "void S2Builder::SortSitesByDistance(const S2Point& x,\n                                    compact_array<SiteId>*
      sites) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReserveEdgeSite
      Src: /src/s2geometry/src/s2/s2builder.cc:861,1
    - Dst: compact_array<SiteId>*::insert
      Src: /src/s2geometry/src/s2/s2builder.cc:862,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2builder.cc:862,1
    - Dst: compact_array<SiteId>*::begin
      Src: /src/s2geometry/src/s2/s2builder.cc:863,1
    - Dst: compact_array<SiteId>*::end
      Src: /src/s2geometry/src/s2/s2builder.cc:863,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2builder.cc:865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - new_site_id
    - ' x'
    - sites
    argTypes:
    - SiteId
    - S2Point
    - compact_array<SiteId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 867
    functionName: S2Builder::InsertSiteByDistance
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - compact_array<SiteId>*::end
    - compact_array<SiteId>*::insert
    - s2pred::CompareDistances
    - compact_array<SiteId>*::begin
    - std::lower_bound
    - ReserveEdgeSite
    linkageType: ''
    returnType: void
    signature: "void S2Builder::InsertSiteByDistance(SiteId new_site_id, const S2Point&
      x,\n                                     compact_array<SiteId>* sites)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder.cc:904,1
    - Dst: S2Builder::SnapEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:905,1
    - Dst: flat_hash_set::erase
      Src: /src/s2geometry/src/s2/s2builder.cc:906,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:907,1
    - Dst: S2Builder::MaybeAddExtraSites
      Src: /src/s2geometry/src/s2/s2builder.cc:908,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2builder.cc:914,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:914,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builder.cc:915,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:915,1
    - Dst: CheckEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:916,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2builder.cc:918,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:918,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:920,1
    - Dst: flat_hash_set::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:922,1
    - Dst: flat_hash_set::clear
      Src: /src/s2geometry/src/s2/s2builder.cc:924,1
    - Dst: CheckEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:927,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2builder.cc:929,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builder.cc:930,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:932,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ' input_edge_index'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 934
    functionName: S2Builder::AddExtraSites
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - S2Builder::MaybeAddExtraSites
    - static_cast<size_t>
    - size
    - S2Builder::SnapEdge
    - CheckEdge
    - flat_hash_set::empty
    - ABSL_VLOG
    - auto::size
    - flat_hash_set::clear
    - ok
    - vector::size
    - flat_hash_set::erase
    linkageType: ''
    returnType: void
    signature: void S2Builder::AddExtraSites(const MutableS2ShapeIndex& input_edge_index)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/s2builder.cc:943,1
    - Dst: absl::Span<const SiteId>::size
      Src: /src/s2geometry/src/s2/s2builder.cc:943,1
    - Dst: absl::Span<const SiteId>::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:946,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:959,1
    - Dst: absl::Span<const SiteId>::size
      Src: /src/s2geometry/src/s2/s2builder.cc:963,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2builder.cc:970,1
    - Dst: S2::IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2builder.cc:971,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2builder.cc:981,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2builder.cc:982,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2builder.cc:981,1
    - Dst: S2Builder::GetSeparationSite
      Src: /src/s2geometry/src/s2/s2builder.cc:983,1
    - Dst: S2Builder::AddExtraSite
      Src: /src/s2geometry/src/s2/s2builder.cc:984,1
    - Dst: S2Builder::is_forced
      Src: /src/s2geometry/src/s2/s2builder.cc:1011,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2builder.cc:1012,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2builder.cc:1013,1
    - Dst: S2Builder::is_forced
      Src: /src/s2geometry/src/s2/s2builder.cc:1033,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2builder.cc:1034,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2builder.cc:1035,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2builder.cc:1036,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2builder.cc:1037,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2builder.cc:1038,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2builder.cc:1039,1
    - Dst: S2Builder::GetSeparationSite
      Src: /src/s2geometry/src/s2/s2builder.cc:1047,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builder.cc:1048,1
    - Dst: S2Builder::AddExtraSite
      Src: /src/s2geometry/src/s2/s2builder.cc:1049,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 34
    argCount: 4
    argNames:
    - edge_id
    - chain
    - ' input_edge_index'
    - edges_to_resnap
    argTypes:
    - InputEdgeId
    - absl::Span<const SiteId>
    - MutableS2ShapeIndex
    - flat_hash_set<InputEdgeId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1058
    functionName: S2Builder::MaybeAddExtraSites
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - absl::Span<const SiteId>::empty
    - S2Builder::AddExtraSite
    - S2Builder::is_forced
    - size
    - s2pred::Sign
    - S2Builder::GetSeparationSite
    - ABSL_DCHECK_NE
    - S1ChordAngle::Zero
    - absl::Span<const SiteId>::size
    - s2pred::CompareEdgeDistance
    - Normalize
    - S2::IsEdgeBNearEdgeA
    - TallyTemp
    - S2::Project
    - S1ChordAngle
    - s2pred::CompareEdgeDirections
    linkageType: ''
    returnType: void
    signature: "void S2Builder::MaybeAddExtraSites(\n    InputEdgeId edge_id, absl::Span<const
      SiteId> chain,\n    const MutableS2ShapeIndex& input_edge_index,\n    flat_hash_set<InputEdgeId>*
      edges_to_resnap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1065,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builder.cc:1065,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builder.cc:1065,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2builder.cc:1066,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1067,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1068,1
    - Dst: S2ClosestEdgeQuery::Options::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2builder.cc:1072,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2builder.cc:1073,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/s2builder.cc:1075,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2builder.cc:1075,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder.cc:1076,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2builder.cc:1082,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2builder.cc:1083,1
    - Dst: S2Builder::InsertSiteByDistance
      Src: /src/s2geometry/src/s2/s2builder.cc:1085,1
    - Dst: flat_hash_set<InputEdgeId>*::insert
      Src: /src/s2geometry/src/s2/s2builder.cc:1086,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ' new_site'
    - ' input_edge_index'
    - edges_to_resnap
    argTypes:
    - S2Point
    - MutableS2ShapeIndex
    - flat_hash_set<InputEdgeId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1062
    functionDepth: 2
    functionLinenumber: 1062
    functionLinenumberEnd: 1088
    functionName: S2Builder::AddExtraSite
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - edge_id
    - S2ClosestEdgeQuery::Options::set_conservative_max_distance
    - ForceBuild
    - size
    - ABSL_DCHECK_NE
    - is_fresh
    - push_back
    - back
    - AddSpace
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - empty
    - ok
    - S2Builder::InsertSiteByDistance
    - flat_hash_set<InputEdgeId>*::insert
    - S2ClosestEdgeQuery::FindClosestEdges
    linkageType: ''
    returnType: void
    signature: "void S2Builder::AddExtraSite(const S2Point& new_site,\n                             const
      MutableS2ShapeIndex& input_edge_index,\n                             flat_hash_set<InputEdgeId>*
      edges_to_resnap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2builder.cc:1113,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2builder.cc:1114,1
    - Dst: S2Builder::GetCoverageEndpoint
      Src: /src/s2geometry/src/s2/s2builder.cc:1115,1
    - Dst: S2Builder::GetCoverageEndpoint
      Src: /src/s2geometry/src/s2/s2builder.cc:1116,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2builder.cc:1117,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2builder.cc:1119,1
    - Dst: S2Builder::SnapSite
      Src: /src/s2geometry/src/s2/s2builder.cc:1122,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builder.cc:1123,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2builder.cc:1124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' site_to_avoid'
    - ' v0'
    - ' v1'
    - input_edge_id
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - InputEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1090
    functionDepth: 5
    functionLinenumber: 1090
    functionLinenumberEnd: 1126
    functionName: S2Builder::GetSeparationSite
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - S2Builder::SnapSite
    - ABSL_DCHECK_NE
    - S2::RobustCrossProd
    - S2::Project
    - S2Builder::GetCoverageEndpoint
    linkageType: ''
    returnType: S2Point
    signature: "S2Point S2Builder::GetSeparationSite(const S2Point& site_to_avoid,\n
      \                                    const S2Point& v0, const S2Point& v1,\n
      \                                    InputEdgeId input_edge_id) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2builder.cc:1150,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2builder.cc:1151,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2builder.cc:1152,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2builder.cc:1154,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2builder.cc:1158,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builder.cc:1158,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2builder.cc:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' n'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1160
    functionName: S2Builder::GetCoverageEndpoint
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - Norm2
    - sqrt
    - CrossProd
    - Normalize
    - max
    linkageType: ''
    returnType: S2Point
    signature: "S2Point S2Builder::GetCoverageEndpoint(const S2Point& p, const S2Point&
      n)\n    const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: vector<SiteId>*::clear
      Src: /src/s2geometry/src/s2/s2builder.cc:1163,1
    - Dst: vector<SiteId>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1168,1
    - Dst: vector<SiteId>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1169,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2builder.cc:1189,1
    - Dst: vector<SiteId>*::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1195,1
    - Dst: vector<SiteId>*::pop_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1195,1
    - Dst: vector<SiteId>*::back
      Src: /src/s2geometry/src/s2/s2builder.cc:1196,1
    - Dst: s2pred::GetVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2builder.cc:1209,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder.cc:1216,1
    - Dst: vector<SiteId>*::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1220,1
    - Dst: vector<SiteId>*::end
      Src: /src/s2geometry/src/s2/s2builder.cc:1221,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2builder.cc:1227,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2builder.cc:1228,1
    - Dst: s2pred::EdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2builder.cc:1237,1
    - Dst: vector<SiteId>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1240,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder.cc:1243,1
    - Dst: vector<SiteId>*::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1243,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2builder.cc:1246,1
    - Dst: vector<SiteId>*::back
      Src: /src/s2geometry/src/s2/s2builder.cc:1246,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builder.cc:1248,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 2
    argNames:
    - e
    - chain
    argTypes:
    - InputEdgeId
    - vector<SiteId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1252
    functionName: S2Builder::SnapEdge
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - s2pred::GetVoronoiSiteExclusion
    - vector<SiteId>*::push_back
    - ABSL_DCHECK_EQ
    - vector<SiteId>*::end
    - s2pred::Sign
    - vector<SiteId>*::pop_back
    - s2pred::EdgeCircumcenterSign
    - s2pred::CompareDistances
    - s2pred::CompareEdgeDistance
    - vector<SiteId>*::size
    - ABSL_LOG
    - vector<SiteId>*::empty
    - ABSL_DCHECK
    - vector<SiteId>*::clear
    - vector<SiteId>*::back
    linkageType: ''
    returnType: void
    signature: void S2Builder::SnapEdge(InputEdgeId e, vector<SiteId>* chain) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder.cc:1255,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder.cc:1262,1
    - Dst: S2Builder::BuildLayerEdges
      Src: /src/s2geometry/src/s2/s2builder.cc:1264,1
    - Dst: absl::MakeCleanup
      Src: /src/s2geometry/src/s2/s2builder.cc:1266,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1267,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2builder.cc:1268,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2builder.cc:1269,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1270,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2builder.cc:1270,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1279,1
    - Dst: allow_vertex_filtering
      Src: /src/s2geometry/src/s2/s2builder.cc:1285,1
    - Dst: TallyFilterVertices
      Src: /src/s2geometry/src/s2/s2builder.cc:1293,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1293,1
    - Dst: absl::MakeCleanup
      Src: /src/s2geometry/src/s2/s2builder.cc:1294,1
    - Dst: DoneFilterVertices
      Src: /src/s2geometry/src/s2/s2builder.cc:1294,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2builder.cc:1295,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1295,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1297,1
    - Dst: Graph::FilterVertices
      Src: /src/s2geometry/src/s2/s2builder.cc:1298,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:1300,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2builder.cc:1302,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder.cc:1305,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1307,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1308,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2builder.cc:1314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1318
    functionName: S2Builder::BuildLayers
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - IdSetLexicon::IdSetLexicon
    - TallyFilterVertices
    - S2Builder::BuildLayerEdges
    - size
    - Build
    - Tally
    - absl::MakeCleanup
    - Clear
    - vector::empty
    - allow_vertex_filtering
    - vector::resize
    - Graph::FilterVertices
    - Untally
    - ok
    - DoneFilterVertices
    linkageType: ''
    returnType: void
    signature: void S2Builder::BuildLayers()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2builder.cc:1335,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2builder.cc:1336,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1336,1
    - Dst: vector<vector<Edge>>*::resize
      Src: /src/s2geometry/src/s2/s2builder.cc:1338,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1338,1
    - Dst: vector<vector<InputEdgeIdSetId>>*::resize
      Src: /src/s2geometry/src/s2/s2builder.cc:1339,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1339,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1340,1
    - Dst: S2Builder::AddSnappedEdges
      Src: /src/s2geometry/src/s2/s2builder.cc:1341,1
    - Dst: S2Builder::SimplifyEdgeChains
      Src: /src/s2geometry/src/s2/s2builder.cc:1350,1
    - Dst: vector<compact_array<InputVertexId>>
      Src: /src/s2geometry/src/s2/s2builder.cc:1352,1
    - Dst: ClearEdgeSites
      Src: /src/s2geometry/src/s2/s2builder.cc:1359,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1360,1
    - Dst: Graph::ProcessEdges
      Src: /src/s2geometry/src/s2/s2builder.cc:1363,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder.cc:1366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - layer_edges
    - layer_input_edge_ids
    - input_edge_id_set_lexicon
    argTypes:
    - vector<vector<Edge>>*
    - vector<vector<InputEdgeIdSetId>>*
    - IdSetLexicon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1368
    functionName: S2Builder::BuildLayerEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - vector<vector<Edge>>*::resize
    - Graph::ProcessEdges
    - simplify_edge_chains
    - size
    - vector<compact_array<InputVertexId>>
    - vector<vector<InputEdgeIdSetId>>*::resize
    - vector::resize
    - S2Builder::AddSnappedEdges
    - S2Builder::SimplifyEdgeChains
    - ClearEdgeSites
    - ok
    linkageType: ''
    returnType: void
    signature: "void S2Builder::BuildLayerEdges(\n    vector<vector<Edge>>* layer_edges,\n
      \   vector<vector<InputEdgeIdSetId>>* layer_input_edge_ids,\n    IdSetLexicon*
      input_edge_id_set_lexicon)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:1379,1
    - Dst: IdSetLexicon*::AddSingleton
      Src: /src/s2geometry/src/s2/s2builder.cc:1383,1
    - Dst: S2Builder::SnapEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:1384,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1385,1
    - Dst: max<int>
      Src: /src/s2geometry/src/s2/s2builder.cc:1389,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1389,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder.cc:1390,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2builder.cc:1391,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2builder.cc:1392,1
    - Dst: S2Builder::MaybeAddInputVertex
      Src: /src/s2geometry/src/s2/s2builder.cc:1393,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1394,1
    - Dst: S2Builder::AddSnappedEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:1396,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder.cc:1396,1
    - Dst: S2Builder::MaybeAddInputVertex
      Src: /src/s2geometry/src/s2/s2builder.cc:1399,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2builder.cc:1399,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1400,1
    - Dst: S2Builder::AddSnappedEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:1401,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder.cc:1401,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 7
    argNames:
    - begin
    - end
    - ' options'
    - edges
    - input_edge_ids
    - input_edge_id_set_lexicon
    - site_vertices
    argTypes:
    - InputEdgeId
    - InputEdgeId
    - GraphOptions
    - vector<Edge>*
    - vector<InputEdgeIdSetId>*
    - IdSetLexicon*
    - vector<compact_array<InputVertexId>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1374
    functionDepth: 2
    functionLinenumber: 1374
    functionLinenumberEnd: 1406
    functionName: S2Builder::AddSnappedEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - S2Builder::AddSnappedEdge
    - edge_type
    - S2Builder::SnapEdge
    - vector::back
    - AddSpace
    - vector::empty
    - degenerate_edges
    - max<int>
    - S2Builder::MaybeAddInputVertex
    - vector::size
    - IdSetLexicon*::AddSingleton
    linkageType: ''
    returnType: void
    signature: "void S2Builder::AddSnappedEdges(\n    InputEdgeId begin, InputEdgeId
      end, const GraphOptions& options,\n    vector<Edge>* edges, vector<InputEdgeIdSetId>*
      input_edge_ids,\n    IdSetLexicon* input_edge_id_set_lexicon,\n    vector<compact_array<InputVertexId>>*
      site_vertices)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector<compact_array<InputVertexId>>*::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1415,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1421,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2builder.cc:1421,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - v
    - id
    - site_vertices
    argTypes:
    - InputVertexId
    - SiteId
    - vector<compact_array<InputVertexId>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1425
    functionName: S2Builder::MaybeAddInputVertex
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - vector<compact_array<InputVertexId>>*::empty
    - back
    - push_back
    - empty
    linkageType: ''
    returnType: void
    signature: "void S2Builder::MaybeAddInputVertex(\n    InputVertexId v, SiteId
      id,\n    vector<compact_array<InputVertexId>>* site_vertices) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector<Edge>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1432,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder.cc:1432,1
    - Dst: vector<InputEdgeIdSetId>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1433,1
    - Dst: vector<Edge>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1435,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder.cc:1435,1
    - Dst: vector<InputEdgeIdSetId>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1438,1
    - Dst: IdSetLexicon::EmptySetId
      Src: /src/s2geometry/src/s2/s2builder.cc:1438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - src
    - dst
    - id
    - edge_type
    - edges
    - input_edge_ids
    argTypes:
    - SiteId
    - SiteId
    - InputEdgeIdSetId
    - EdgeType
    - vector<Edge>*
    - vector<InputEdgeIdSetId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1440
    functionName: S2Builder::AddSnappedEdge
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - Edge
    - vector<InputEdgeIdSetId>*::push_back
    - vector<Edge>*::push_back
    - IdSetLexicon::EmptySetId
    linkageType: ''
    returnType: void
    signature: "void S2Builder::AddSnappedEdge(\n    SiteId src, SiteId dst, InputEdgeIdSetId
      id, EdgeType edge_type,\n    vector<Edge>* edges, vector<InputEdgeIdSetId>*
      input_edge_ids) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1521,1
    - Dst: TallySimplifyEdgeChains
      Src: /src/s2geometry/src/s2/s2builder.cc:1522,1
    - Dst: S2Builder::MergeLayerEdges
      Src: /src/s2geometry/src/s2/s2builder.cc:1528,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:1532,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:1533,1
    - Dst: IsFullPolygonPredicate
      Src: /src/s2geometry/src/s2/s2builder.cc:1543,1
    - Dst: EdgeChainSimplifier::Run
      Src: /src/s2geometry/src/s2/s2builder.cc:1547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - ' site_vertices'
    - layer_edges
    - layer_input_edge_ids
    - input_edge_id_set_lexicon
    argTypes:
    - vector<compact_array<InputVertexId>>
    - vector<vector<Edge>>*
    - vector<vector<InputEdgeIdSetId>>*
    - IdSetLexicon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1548
    functionName: S2Builder::SimplifyEdgeChains
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - clear
    - TallySimplifyEdgeChains
    - S2Builder::MergeLayerEdges
    - empty
    - IsFullPolygonPredicate
    - EdgeChainSimplifier::Run
    linkageType: ''
    returnType: void
    signature: "void S2Builder::SimplifyEdgeChains(\n    const vector<compact_array<InputVertexId>>&
      site_vertices,\n    vector<vector<Edge>>* layer_edges,\n    vector<vector<InputEdgeIdSetId>>*
      layer_input_edge_ids,\n    IdSetLexicon* input_edge_id_set_lexicon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const vector<Edge>>::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1560,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1561,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1562,1
    - Dst: LayerEdgeId
      Src: /src/s2geometry/src/s2/s2builder.cc:1562,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder.cc:1565,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder.cc:1565,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder.cc:1565,1
    - Dst: S2Builder::StableLessThan
      Src: /src/s2geometry/src/s2/s2builder.cc:1567,1
    - Dst: vector<Edge>*::reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:1570,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1570,1
    - Dst: vector<InputEdgeIdSetId>*::reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:1571,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1571,1
    - Dst: vector<int>*::reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:1572,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1572,1
    - Dst: vector<Edge>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1574,1
    - Dst: vector<InputEdgeIdSetId>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1575,1
    - Dst: vector<int>*::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - layer_edges
    - layer_input_edge_ids
    - edges
    - input_edge_ids
    - edge_layers
    argTypes:
    - absl::Span<const vector<Edge>>
    - absl::Span<const vector<InputEdgeIdSetId>>
    - vector<Edge>*
    - vector<InputEdgeIdSetId>*
    - vector<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1578
    functionName: S2Builder::MergeLayerEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - absl::Span<const vector<Edge>>::size
    - vector<Edge>*::push_back
    - vector<InputEdgeIdSetId>*::push_back
    - vector<int>*::push_back
    - size
    - S2Builder::StableLessThan
    - vector<int>*::reserve
    - vector::end
    - vector<Edge>*::reserve
    - vector::size
    - vector<InputEdgeIdSetId>*::reserve
    - std::sort
    - LayerEdgeId
    - vector::begin
    linkageType: ''
    returnType: void
    signature: "void S2Builder::MergeLayerEdges(\n    absl::Span<const vector<Edge>>
      layer_edges,\n    absl::Span<const vector<InputEdgeIdSetId>> layer_input_edge_ids,\n
      \   vector<Edge>* edges, vector<InputEdgeIdSetId>* input_edge_ids,\n    vector<int>*
      edge_layers) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' ai'
    - ' bi'
    argTypes:
    - Edge
    - Edge
    - LayerEdgeId
    - LayerEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1593
    functionName: S2Builder::StableLessThan
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::StableLessThan(\n    const Edge& a, const Edge& b,\n
      \   const LayerEdgeId& ai, const LayerEdgeId& bi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder.cc:1606,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:1606,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:1609,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:1609,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:1610,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:1610,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:1611,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:1611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - ' builder'
    - ' g'
    - ' edge_layers'
    - ' site_vertices'
    - layer_edges
    - layer_input_edge_ids
    - input_edge_id_set_lexicon
    argTypes:
    - S2Builder
    - Graph
    - vector<int>
    - vector<compact_array<InputVertexId>>
    - vector<vector<Edge>>*
    - vector<vector<InputEdgeIdSetId>>*
    - IdSetLexicon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1595
    functionDepth: 0
    functionLinenumber: 1595
    functionLinenumberEnd: 1612
    functionName: "S2Builder::EdgeChainSimplifier::EdgeChainSimplifier(\n    const
      S2Builder& builder, const Graph& g, const vector<int>& edge_layers,\n    const
      vector<compact_array<InputVertexId>>& site_vertices,\n    vector<vector<Edge>>*
      layer_edges,\n    vector<vector<InputEdgeIdSetId>>* layer_input_edge_ids,\n
      \   IdSetLexicon* input_edge_id_set_lexicon)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - num_vertices
    - reserve
    linkageType: ''
    returnType: void
    signature: "void S2Builder::EdgeChainSimplifier::EdgeChainSimplifier(\n    const
      S2Builder& builder, const Graph& g, const vector<int>& edge_layers,\n    const
      vector<compact_array<InputVertexId>>& site_vertices,\n    vector<vector<Edge>>*
      layer_edges,\n    vector<vector<InputEdgeIdSetId>>* layer_input_edge_ids,\n
      \   IdSetLexicon* input_edge_id_set_lexicon)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builder.cc:1616,1
    - Dst: IsInterior
      Src: /src/s2geometry/src/s2/s2builder.cc:1617,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:1621,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder.cc:1623,1
    - Dst: OutputEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:1626,1
    - Dst: SimplifyChain
      Src: /src/s2geometry/src/s2/s2builder.cc:1628,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builder.cc:1643,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder.cc:1645,1
    - Dst: OutputEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:1650,1
    - Dst: SimplifyChain
      Src: /src/s2geometry/src/s2/s2builder.cc:1652,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1660,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1662,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1663,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1665
    functionName: S2Builder::EdgeChainSimplifier::Run()
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - IsInterior
    - num_edges
    - OutputEdge
    - SimplifyChain
    - size
    - push_back
    - edge
    linkageType: ''
    returnType: void
    signature: void S2Builder::EdgeChainSimplifier::Run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1669,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder.cc:1669,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1670,1
    - Dst: input_edge_id_set_id
      Src: /src/s2geometry/src/s2/s2builder.cc:1670,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1668
    functionDepth: 0
    functionLinenumber: 1668
    functionLinenumberEnd: 1673
    functionName: S2Builder::EdgeChainSimplifier::OutputEdge(EdgeId e)
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - input_edge_id_set_id
    - edge
    - push_back
    linkageType: ''
    returnType: void
    signature: void S2Builder::EdgeChainSimplifier::OutputEdge(EdgeId e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1676
    functionDepth: 0
    functionLinenumber: 1676
    functionLinenumberEnd: 1678
    functionName: S2Builder::EdgeChainSimplifier::graph_edge_layer(EdgeId e) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2Builder::EdgeChainSimplifier::graph_edge_layer(EdgeId e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builder.cc:1684,1
    - Dst: std::upper_bound
      Src: /src/s2geometry/src/s2/s2builder.cc:1685,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder.cc:1685,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder.cc:1685,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder.cc:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - InputEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1681
    functionDepth: 0
    functionLinenumber: 1681
    functionLinenumberEnd: 1687
    functionName: S2Builder::EdgeChainSimplifier::input_edge_layer(InputEdgeId id)
      const
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - end
    - std::upper_bound
    - begin
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int
    signature: int S2Builder::EdgeChainSimplifier::input_edge_layer(InputEdgeId id)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v0
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1707
    functionName: S2Builder::EdgeChainSimplifier::InteriorVertexMatcher::InteriorVertexMatcher
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InteriorVertexMatcher(VertexId v0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1712
    functionName: S2Builder::EdgeChainSimplifier::InteriorVertexMatcher::StartLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StartLayer()
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - v
    - outgoing
    argTypes:
    - VertexId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1716
    functionDepth: 0
    functionLinenumber: 1716
    functionLinenumberEnd: 1735
    functionName: S2Builder::EdgeChainSimplifier::InteriorVertexMatcher::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Tally(VertexId v, bool outgoing)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1747
    functionName: S2Builder::EdgeChainSimplifier::InteriorVertexMatcher::Matches
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Matches() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder.cc:1761,1
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder.cc:1762,1
    - Dst: degree
      Src: /src/s2geometry/src/s2/s2builder.cc:1762,1
    - Dst: is_forced
      Src: /src/s2geometry/src/s2/s2builder.cc:1763,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:1767,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1768,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1768,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1769,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1769,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder.cc:1770,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder.cc:1770,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder.cc:1770,1
    - Dst: graph_edge_layer
      Src: /src/s2geometry/src/s2/s2builder.cc:1771,1
    - Dst: graph_edge_layer
      Src: /src/s2geometry/src/s2/s2builder.cc:1771,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder.cc:1775,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder.cc:1775,1
    - Dst: graph_edge_layer
      Src: /src/s2geometry/src/s2/s2builder.cc:1776,1
    - Dst: InteriorVertexMatcher::StartLayer
      Src: /src/s2geometry/src/s2/s2builder.cc:1777,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder.cc:1778,1
    - Dst: graph_edge_layer
      Src: /src/s2geometry/src/s2/s2builder.cc:1778,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder.cc:1779,1
    - Dst: InteriorVertexMatcher::Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:1780,1
    - Dst: InteriorVertexMatcher::Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:1781,1
    - Dst: InteriorVertexMatcher::Matches
      Src: /src/s2geometry/src/s2/s2builder.cc:1783,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1786
    functionName: S2Builder::EdgeChainSimplifier::IsInterior(VertexId v)
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - degree
    - end
    - InteriorVertexMatcher::Tally
    - push_back
    - clear
    - edge
    - begin
    - std::sort
    - is_forced
    - edge_ids
    - InteriorVertexMatcher::StartLayer
    - graph_edge_layer
    - InteriorVertexMatcher::Matches
    linkageType: ''
    returnType: bool
    signature: bool S2Builder::EdgeChainSimplifier::IsInterior(VertexId v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineSimplifier::S2PolylineSimplifier
      Src: /src/s2geometry/src/s2/s2builder.cc:1798,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1803,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2builder.cc:1804,1
    - Dst: S2PolylineSimplifier::Init
      Src: /src/s2geometry/src/s2/s2builder.cc:1805,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:1805,1
    - Dst: AvoidSites
      Src: /src/s2geometry/src/s2/s2builder.cc:1809,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1811,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2builder.cc:1812,1
    - Dst: FollowChain
      Src: /src/s2geometry/src/s2/s2builder.cc:1819,1
    - Dst: TargetInputVertices
      Src: /src/s2geometry/src/s2/s2builder.cc:1820,1
    - Dst: AvoidSites
      Src: /src/s2geometry/src/s2/s2builder.cc:1821,1
    - Dst: S2PolylineSimplifier::Extend
      Src: /src/s2geometry/src/s2/s2builder.cc:1822,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:1822,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1824,1
    - Dst: OutputAllEdges
      Src: /src/s2geometry/src/s2/s2builder.cc:1825,1
    - Dst: MergeChain
      Src: /src/s2geometry/src/s2/s2builder.cc:1827,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:1831,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2builder.cc:1832,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - v0
    - v1
    argTypes:
    - VertexId
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1791
    functionDepth: 3
    functionLinenumber: 1791
    functionLinenumberEnd: 1834
    functionName: S2Builder::EdgeChainSimplifier::SimplifyChain(VertexId v0, VertexId
      v1)
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - S2PolylineSimplifier::Extend
    - S2PolylineSimplifier::Init
    - size
    - push_back
    - clear
    - TargetInputVertices
    - vertex
    - OutputAllEdges
    - FollowChain
    - MergeChain
    - S2PolylineSimplifier::S2PolylineSimplifier
    - insert
    - AvoidSites
    linkageType: ''
    returnType: void
    signature: void S2Builder::EdgeChainSimplifier::SimplifyChain(VertexId v0, VertexId
      v1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder.cc:1840,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1841,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builder.cc:1842,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2builder.cc:1845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - v0
    - v1
    argTypes:
    - VertexId
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1846
    functionName: "S2Builder::EdgeChainSimplifier::FollowChain(\n    VertexId v0,
      VertexId v1) const"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - edge_ids
    - edge
    - ABSL_LOG
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Builder::Graph::VertexId
    signature: "S2Builder::Graph::VertexId S2Builder::EdgeChainSimplifier::FollowChain(\n
      \   VertexId v0, VertexId v1) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1850,1
    - Dst: OutputEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:1850,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1851,1
    - Dst: OutputEdge
      Src: /src/s2geometry/src/s2/s2builder.cc:1851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - v0
    - v1
    argTypes:
    - VertexId
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1849
    functionDepth: 0
    functionLinenumber: 1849
    functionLinenumberEnd: 1852
    functionName: S2Builder::EdgeChainSimplifier::OutputAllEdges(VertexId v0, VertexId
      v1)
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - edge_ids
    - OutputEdge
    linkageType: ''
    returnType: void
    signature: void S2Builder::EdgeChainSimplifier::OutputAllEdges(VertexId v0, VertexId
      v1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2PolylineSimplifier*::TargetDisc
      Src: /src/s2geometry/src/s2/s2builder.cc:1859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - v
    - simplifier
    argTypes:
    - VertexId
    - S2PolylineSimplifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1865
    functionName: "S2Builder::EdgeChainSimplifier::TargetInputVertices(\n    VertexId
      v, S2PolylineSimplifier* simplifier) const"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - S2PolylineSimplifier*::TargetDisc
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::EdgeChainSimplifier::TargetInputVertices(\n    VertexId
      v, S2PolylineSimplifier* simplifier) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:1874,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:1875,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:1876,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1901,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1902,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1903,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1903,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1907,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1908,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1909,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:1909,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builder.cc:1913,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builder.cc:1917,1
    - Dst: flat_hash_set<VertexId>*::insert
      Src: /src/s2geometry/src/s2/s2builder.cc:1925,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2builder.cc:1931,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2builder.cc:1932,1
    - Dst: S2PolylineSimplifier*::AvoidDisc
      Src: /src/s2geometry/src/s2/s2builder.cc:1933,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 5
    argNames:
    - v0
    - v1
    - v2
    - used_vertices
    - simplifier
    argTypes:
    - VertexId
    - VertexId
    - VertexId
    - flat_hash_set<VertexId>*
    - S2PolylineSimplifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1870
    functionDepth: 1
    functionLinenumber: 1870
    functionLinenumberEnd: 1939
    functionName: "S2Builder::EdgeChainSimplifier::AvoidSites(\n    VertexId v0, VertexId
      v1, VertexId v2,\n    flat_hash_set<VertexId>* used_vertices,\n    S2PolylineSimplifier*
      simplifier) const"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - input_edge_ids
    - s2pred::Sign
    - size
    - s2pred::OrderedCCW
    - S2PolylineSimplifier*::AvoidDisc
    - vertex
    - edge_ids
    - ABSL_DCHECK_GE
    - flat_hash_set<VertexId>*::insert
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::EdgeChainSimplifier::AvoidSites(\n    VertexId v0,
      VertexId v1, VertexId v2,\n    flat_hash_set<VertexId>* used_vertices,\n    S2PolylineSimplifier*
      simplifier) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const VertexId>::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1954,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1957,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1958,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1961,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2builder.cc:1962,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1962,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:1964,1
    - Dst: absl::Span<const VertexId>::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1964,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builder.cc:1971,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1972,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1973,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1974,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1984,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1985,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:1991,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:1992,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder.cc:1997,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder.cc:1997,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder.cc:1999,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder.cc:2000,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder.cc:2000,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder.cc:2000,1
    - Dst: AssignDegenerateEdges
      Src: /src/s2geometry/src/s2/s2builder.cc:2001,1
    - Dst: absl::Span<const VertexId>::back
      Src: /src/s2geometry/src/s2/s2builder.cc:2004,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:2005,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:2006,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder.cc:2006,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:2007,1
    - Dst: graph_edge_layer
      Src: /src/s2geometry/src/s2/s2builder.cc:2007,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder.cc:2009,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:2010,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder.cc:2010,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:2011,1
    - Dst: graph_edge_layer
      Src: /src/s2geometry/src/s2/s2builder.cc:2011,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:2014,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builder.cc:2014,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - absl::Span<const VertexId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1946
    functionDepth: 0
    functionLinenumber: 1946
    functionLinenumberEnd: 2016
    functionName: "S2Builder::EdgeChainSimplifier::MergeChain(\n    absl::Span<const
      VertexId> vertices)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - input_edge_ids
    - vector::end
    - auto::size
    - Edge
    - vector::size
    - ABSL_DCHECK
    - reserve
    - absl::Span<const VertexId>::back
    - vector::resize
    - edge_ids
    - graph_edge_layer
    - vector::begin
    - vector::push_back
    - ABSL_DCHECK_EQ
    - push_back
    - vector::empty
    - Add
    - AssignDegenerateEdges
    - absl::Span<const VertexId>::size
    - std::sort
    linkageType: ''
    returnType: void
    signature: "void S2Builder::EdgeChainSimplifier::MergeChain(\n    absl::Span<const
      VertexId> vertices)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder.cc:2041,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2builder.cc:2041,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2builder.cc:2041,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:2049,1
    - Dst: vector<vector<InputEdgeId>>*::size
      Src: /src/s2geometry/src/s2/s2builder.cc:2049,1
    - Dst: vector<vector<InputEdgeId>>*::size
      Src: /src/s2geometry/src/s2/s2builder.cc:2050,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2builder.cc:2051,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:2051,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2builder.cc:2053,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder.cc:2053,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder.cc:2053,1
    - Dst: input_edge_layer
      Src: /src/s2geometry/src/s2/s2builder.cc:2059,1
    - Dst: std::upper_bound
      Src: /src/s2geometry/src/s2/s2builder.cc:2064,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder.cc:2064,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2builder.cc:2064,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2builder.cc:2068,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builder.cc:2071,1
    - Dst: input_edge_layer
      Src: /src/s2geometry/src/s2/s2builder.cc:2071,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builder.cc:2072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - degenerate_ids
    - merged_ids
    argTypes:
    - absl::Span<const InputEdgeId>
    - vector<vector<InputEdgeId>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2074
    functionName: "S2Builder::EdgeChainSimplifier::AssignDegenerateEdges(\n    absl::Span<const
      InputEdgeId> degenerate_ids,\n    vector<vector<InputEdgeId>>* merged_ids) const"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - std::upper_bound
    - ABSL_DCHECK_EQ
    - end
    - vector::reserve
    - vector::end
    - push_back
    - input_edge_layer
    - begin
    - std::sort
    - vector<vector<InputEdgeId>>*::size
    - empty
    - vector::begin
    linkageType: ''
    returnType: void
    signature: "void S2Builder::EdgeChainSimplifier::AssignDegenerateEdges(\n    absl::Span<const
      InputEdgeId> degenerate_ids,\n    vector<vector<InputEdgeId>>* merged_ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCompactArrayAllocBytes
      Src: /src/s2geometry/src/s2/s2builder.cc:2082,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' sites'
    argTypes:
    - compact_array<SiteId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2080
    functionDepth: 0
    functionLinenumber: 2080
    functionLinenumberEnd: 2085
    functionName: "S2Builder::MemoryTracker::TallyEdgeSites(\n    const compact_array<SiteId>&
      sites)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - GetCompactArrayAllocBytes
    - Tally
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::MemoryTracker::TallyEdgeSites(\n    const compact_array<SiteId>&
      sites)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compact_array<SiteId>*::size
      Src: /src/s2geometry/src/s2/s2builder.cc:2089,1
    - Dst: compact_array<SiteId>*::capacity
      Src: /src/s2geometry/src/s2/s2builder.cc:2090,1
    - Dst: GetCompactArrayAllocBytes
      Src: /src/s2geometry/src/s2/s2builder.cc:2091,1
    - Dst: compact_array<SiteId>*::reserve
      Src: /src/s2geometry/src/s2/s2builder.cc:2092,1
    - Dst: GetCompactArrayAllocBytes
      Src: /src/s2geometry/src/s2/s2builder.cc:2093,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:2095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sites
    argTypes:
    - compact_array<SiteId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2088
    functionDepth: 0
    functionLinenumber: 2088
    functionLinenumberEnd: 2096
    functionName: S2Builder::MemoryTracker::ReserveEdgeSite(compact_array<SiteId>*
      sites)
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - compact_array<SiteId>*::capacity
    - Tally
    - compact_array<SiteId>*::reserve
    - GetCompactArrayAllocBytes
    - compact_array<SiteId>*::size
    linkageType: ''
    returnType: bool
    signature: bool S2Builder::MemoryTracker::ReserveEdgeSite(compact_array<SiteId>*
      sites)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:2101,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2builder.cc:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - edge_sites
    argTypes:
    - vector<compact_array<SiteId>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2099
    functionDepth: 0
    functionLinenumber: 2099
    functionLinenumberEnd: 2104
    functionName: "S2Builder::MemoryTracker::ClearEdgeSites(\n    vector<compact_array<SiteId>>*
      edge_sites)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - Clear
    - Tally
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::MemoryTracker::ClearEdgeSites(\n    vector<compact_array<SiteId>>*
      edge_sites)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: "GetBtreeMinBytesPerEntry<\n      absl::btree_multimap<S2CellId, S2PointIndex<SiteId>::PointData>>"
      Src: /src/s2geometry/src/s2/s2builder.cc:2112,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2107
    functionDepth: 0
    functionLinenumber: 2107
    functionLinenumberEnd: 2116
    functionName: S2Builder::MemoryTracker::TallyIndexedSite()
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - "GetBtreeMinBytesPerEntry<\n      absl::btree_multimap<S2CellId, S2PointIndex<SiteId>::PointData>>"
    - Tally
    linkageType: ''
    returnType: bool
    signature: bool S2Builder::MemoryTracker::TallyIndexedSite()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SpaceUsed
      Src: /src/s2geometry/src/s2/s2builder.cc:2121,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:2123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2PointIndex<SiteId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2124
    functionName: "S2Builder::MemoryTracker::FixSiteIndexTally(\n    const S2PointIndex<SiteId>&
      index)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - SpaceUsed
    - Tally
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::MemoryTracker::FixSiteIndexTally(\n    const S2PointIndex<SiteId>&
      index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:2129,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder.cc:2131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2PointIndex<SiteId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2132
    functionName: "S2Builder::MemoryTracker::DoneSiteIndex(\n    const S2PointIndex<SiteId>&
      index)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - ok
    - Tally
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::MemoryTracker::DoneSiteIndex(\n    const S2PointIndex<SiteId>&
      index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_active
      Src: /src/s2geometry/src/s2/s2builder.cc:2139,1
    - Dst: absl::Span<const compact_array<InputVertexId>>::size
      Src: /src/s2geometry/src/s2/s2builder.cc:2168,1
    - Dst: GetCompactArrayAllocBytes
      Src: /src/s2geometry/src/s2/s2builder.cc:2170,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:2173,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/s2builder.cc:2175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - site_vertices
    - layer_edges
    argTypes:
    - absl::Span<const compact_array<InputVertexId>>
    - absl::Span<const vector<Edge>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2176
    functionName: "S2Builder::MemoryTracker::TallySimplifyEdgeChains(\n    absl::Span<const
      compact_array<InputVertexId>> site_vertices,\n    absl::Span<const vector<Edge>>
      layer_edges)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - is_active
    - size
    - absl::Span<const compact_array<InputVertexId>>::size
    - TallyTemp
    - GetCompactArrayAllocBytes
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::MemoryTracker::TallySimplifyEdgeChains(\n    absl::Span<const
      compact_array<InputVertexId>> site_vertices,\n    absl::Span<const vector<Edge>>
      layer_edges)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_active
      Src: /src/s2geometry/src/s2/s2builder.cc:2183,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builder.cc:2196,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder.cc:2196,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:2200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - num_sites
    - layer_edges
    argTypes:
    - int
    - absl::Span<const vector<Edge>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2181
    functionDepth: 0
    functionLinenumber: 2181
    functionLinenumberEnd: 2201
    functionName: "S2Builder::MemoryTracker::TallyFilterVertices(\n    int num_sites,
      absl::Span<const vector<Edge>> layer_edges)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - size
    - max
    - Tally
    - is_active
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::MemoryTracker::TallyFilterVertices(\n    int num_sites,
      absl::Span<const vector<Edge>> layer_edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2builder.cc:2205,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builder.cc:2207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2204
    functionDepth: 0
    functionLinenumber: 2204
    functionLinenumberEnd: 2208
    functionName: S2Builder::MemoryTracker::DoneFilterVertices()
    functionSourceFile: /src/s2geometry/src/s2/s2builder.cc
    functionUses: 0
    functionsReached:
    - ok
    - Tally
    linkageType: ''
    returnType: bool
    signature: bool S2Builder::MemoryTracker::DoneFilterVertices()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - shape
    argTypes:
    - S2Shape*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: S2WrappedShape::S2WrappedShape
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2WrappedShape(const S2Shape* shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WrappedShape::num_edges
      Src: /src/s2geometry/src/s2/s2wrapped_shape.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: S2WrappedShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape.h
    functionUses: 1
    functionsReached:
    - S2WrappedShape::num_edges
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WrappedShape::edge
      Src: /src/s2geometry/src/s2/s2wrapped_shape.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: S2WrappedShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape.h
    functionUses: 1
    functionsReached:
    - S2WrappedShape::edge
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WrappedShape::dimension
      Src: /src/s2geometry/src/s2/s2wrapped_shape.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: S2WrappedShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape.h
    functionUses: 1
    functionsReached:
    - S2WrappedShape::dimension
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WrappedShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2wrapped_shape.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: S2WrappedShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape.h
    functionUses: 1
    functionsReached:
    - S2WrappedShape::GetReferencePoint
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WrappedShape::num_chains
      Src: /src/s2geometry/src/s2/s2wrapped_shape.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: S2WrappedShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape.h
    functionUses: 1
    functionsReached:
    - S2WrappedShape::num_chains
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WrappedShape::chain
      Src: /src/s2geometry/src/s2/s2wrapped_shape.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: S2WrappedShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape.h
    functionUses: 1
    functionsReached:
    - S2WrappedShape::chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WrappedShape::chain_edge
      Src: /src/s2geometry/src/s2/s2wrapped_shape.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: S2WrappedShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape.h
    functionUses: 1
    functionsReached:
    - S2WrappedShape::chain_edge
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WrappedShape::chain_position
      Src: /src/s2geometry/src/s2/s2wrapped_shape.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: S2WrappedShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape.h
    functionUses: 1
    functionsReached:
    - S2WrappedShape::chain_position
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil.h:103,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: S2::Origin
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.h
    functionUses: 18
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: S2Point
    signature: S2Point Origin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2pointutil.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: S2::RefDir
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.h
    functionUses: 6
    functionsReached:
    - S2::Ortho
    linkageType: ''
    returnType: S2Point
    signature: S2Point RefDir(const S2Point& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil.h:103,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2pointutil.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: S2::Origin
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.h
    functionUses: 18
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: S2Point
    signature: S2Point Origin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2pointutil.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: S2::RefDir
    functionSourceFile: /src/s2geometry/src/s2/s2pointutil.h
    functionUses: 6
    functionsReached:
    - S2::Ortho
    linkageType: ''
    returnType: S2Point
    signature: S2Point RefDir(const S2Point& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::S2MemoryTracker
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:23,1
    - Dst: S2MemoryTracker::set_periodic_callback
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:28,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:29,1
    - Dst: S2MemoryTracker::callback_alloc_delta_bytes
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:29,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:31,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:33,1
    - Dst: S2MemoryTracker::set_periodic_callback
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:37,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:38,1
    - Dst: S2MemoryTracker::callback_alloc_delta_bytes
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:38,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:40,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:42,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:43,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:44,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:45,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:47,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2memory_tracker_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2MemoryTracker::callback_alloc_delta_bytes
    - S2MemoryTracker::S2MemoryTracker
    - EXPECT_EQ
    - S2MemoryTracker::Client::Tally
    - S2MemoryTracker::set_periodic_callback
    linkageType: ''
    returnType: void
    signature: void TEST(S2MemoryTracker, PeriodicCallback)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: S2MemoryTracker::S2MemoryTracker
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MemoryTracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: S2MemoryTracker::usage_bytes
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t usage_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: S2MemoryTracker::max_usage_bytes
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t max_usage_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: S2MemoryTracker::limit_bytes
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t limit_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit_bytes
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: S2MemoryTracker::set_limit_bytes
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_limit_bytes(int64_t limit_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: '& error() const'
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Error
    signature: S2Error & error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::ok
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: S2MemoryTracker::ok
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 1
    functionsReached:
    - S2MemoryTracker::ok
    linkageType: ''
    returnType: bool
    signature: bool ok() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - callback_alloc_delta_bytes
    - periodic_callback
    argTypes:
    - int64_t
    - PeriodicCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: S2MemoryTracker::set_periodic_callback
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_periodic_callback(int64_t callback_alloc_delta_bytes,\n                             PeriodicCallback
      periodic_callback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: S2MemoryTracker::callback_alloc_delta_bytes
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t callback_alloc_delta_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: '& periodic_callback() const'
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PeriodicCallback
    signature: PeriodicCallback & periodic_callback() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: S2MemoryTracker::Reset
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - S2Error::Ok
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: S2MemoryTracker::Client::Client
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::Client::Init
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - S2MemoryTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: S2MemoryTracker::Client::Client
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - S2MemoryTracker::Client::Init
    linkageType: ''
    returnType: void
    signature: void Client(S2MemoryTracker* tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:230,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - S2MemoryTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: S2MemoryTracker::Client::Init
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 1
    functionsReached:
    - S2MemoryTracker::Client::Tally
    linkageType: ''
    returnType: void
    signature: void Init(S2MemoryTracker* tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: S2MemoryTracker::Client::tracker
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2MemoryTracker
    signature: S2MemoryTracker * tracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: S2MemoryTracker::Client::is_active
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 244
    functionName: ~Client()
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - Tally
    linkageType: ''
    returnType: void
    signature: void ~Client()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::Client::usage_bytes
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: S2MemoryTracker::Client::usage_bytes
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 1
    functionsReached:
    - S2MemoryTracker::Client::usage_bytes
    linkageType: ''
    returnType: int64_t
    signature: int64_t usage_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: S2MemoryTracker::Client::client_usage_bytes
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t client_usage_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::Client::ok
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: S2MemoryTracker::Client::ok
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 1
    functionsReached:
    - S2MemoryTracker::Client::ok
    linkageType: ''
    returnType: bool
    signature: bool ok() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::Client::is_active
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:266,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - delta_bytes
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: S2MemoryTracker::Client::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 3
    functionsReached:
    - S2MemoryTracker::Client::is_active
    - S2MemoryTracker::Client::Tally
    linkageType: ''
    returnType: bool
    signature: bool Tally(int64_t delta_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:279,1
    - Dst: capacity
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: S2MemoryTracker::Client::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 4
    functionsReached:
    - S2MemoryTracker::Client::Tally
    - capacity
    linkageType: ''
    returnType: bool
    signature: bool Tally(const std::vector<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:286,1
    - Dst: capacity
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: S2MemoryTracker::Client::Untally
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - S2MemoryTracker::Client::Tally
    - capacity
    linkageType: ''
    returnType: bool
    signature: bool Untally(const std::vector<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddSpaceInternal<T, false>
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - T*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: S2MemoryTracker::Client::AddSpace
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - AddSpaceInternal<T, false>
    linkageType: ''
    returnType: bool
    signature: bool AddSpace(T* v, int64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddSpaceInternal<T, true>
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - T*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: S2MemoryTracker::Client::AddSpaceExact
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - AddSpaceInternal<T, true>
    linkageType: ''
    returnType: bool
    signature: bool AddSpaceExact(T* v, int64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T*::capacity
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:314,1
    - Dst: T
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:315,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: S2MemoryTracker::Client::Clear
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - T*::capacity
    - S2MemoryTracker::Client::Tally
    - T
    linkageType: ''
    returnType: bool
    signature: bool Clear(T* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:366,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - ' format'
    argTypes:
    - S2Error::Code
    - absl::FormatSpec<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: S2MemoryTracker::SetError
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - S2Error
    linkageType: ''
    returnType: void
    signature: "void S2MemoryTracker::SetError(S2Error::Code code,\n                               const
      absl::FormatSpec<Args...>& format,\n                               const Args&...
      args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:371,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:372,1
    - Dst: S2MemoryTracker::ok
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:373,1
    - Dst: S2MemoryTracker::SetLimitExceededError
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:373,1
    - Dst: S2MemoryTracker::ok
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:376,1
    - Dst: callback_
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:376,1
    - Dst: S2MemoryTracker::ok
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - delta_bytes
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: S2MemoryTracker::Tally
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - S2MemoryTracker::SetLimitExceededError
    - S2MemoryTracker::ok
    - callback_
    - std::max
    linkageType: ''
    returnType: bool
    signature: bool S2MemoryTracker::Tally(int64_t delta_bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: T*::size
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:383,1
    - Dst: T*::capacity
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:384,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:387,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:389,1
    - Dst: T*::reserve
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:390,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:392,1
    - Dst: T*::capacity
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:392,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:393,1
    - Dst: T*::capacity
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - T*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 394
    functionName: S2MemoryTracker::Client::AddSpaceInternal(T* v, int64_t n)
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - T*::reserve
    - T*::capacity
    - std::max
    - T*::size
    - S2MemoryTracker::Client::Tally
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: bool
    signature: bool S2MemoryTracker::Client::AddSpaceInternal(T* v, int64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: capacity
      Src: /src/s2geometry/src/s2/s2memory_tracker.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' array'
    argTypes:
    - gtl::compact_array<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 407
    functionName: "S2MemoryTracker::Client::GetCompactArrayAllocBytes(\n    const
      gtl::compact_array<T>& array)"
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached:
    - capacity
    linkageType: ''
    returnType: int64_t
    signature: "int64_t S2MemoryTracker::Client::GetCompactArrayAllocBytes(\n    const
      gtl::compact_array<T>& array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: S2MemoryTracker::Client::GetBtreeMinBytesPerEntry()
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t S2MemoryTracker::Client::GetBtreeMinBytesPerEntry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<s2builderutil::IdentitySnapFunction>
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:147,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: S2BufferOperation::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::IdentitySnapFunction>
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: S2BufferOperation::Options::Options(S1Angle buffer_radius)
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::Options::Options(S1Angle buffer_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function_::Clone
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: S2BufferOperation::Options::Options(const Options& options)
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - snap_function_::Clone
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::Options::Options(const Options& options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function_::Clone
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: "& S2BufferOperation::Options::operator=(\n    const Options& options)"
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - snap_function_::Clone
    linkageType: ''
    returnType: S2BufferOperation::Options
    signature: "S2BufferOperation::Options & S2BufferOperation::Options::operator=(\n
      \   const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: S2BufferOperation::Options::buffer_radius() const
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2BufferOperation::Options::buffer_radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: S2BufferOperation::Options::set_buffer_radius(S1Angle buffer_radius)
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::Options::set_buffer_radius(S1Angle buffer_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: S2BufferOperation::Options::error_fraction() const
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double S2BufferOperation::Options::error_fraction() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:187,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:188,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:189,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - error_fraction
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: S2BufferOperation::Options::set_error_fraction(double error_fraction)
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - max
    - min
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::Options::set_error_fraction(double error_fraction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:195,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:196,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:196,1
    - Dst: S2Builder::Options::max_edge_deviation
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: S2BufferOperation::Options::max_error() const
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2Builder::Options::set_split_crossing_edges
    - S2Builder::Options::max_edge_deviation
    - max
    - abs
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2BufferOperation::Options::max_error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:203,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: S2BufferOperation::Options::circle_segments() const
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - acos
    linkageType: ''
    returnType: double
    signature: double S2BufferOperation::Options::circle_segments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:211,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:212,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:213,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:213,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:229,1
    - Dst: set_error_fraction
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:230,1
    - Dst: set_error_fraction
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:235,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - circle_segments
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 237
    functionName: S2BufferOperation::Options::set_circle_segments(double circle_segments)
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LE
    - min
    - set_error_fraction
    - max
    - cos
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::Options::set_circle_segments(double circle_segments)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: "S2BufferOperation::Options::end_cap_style()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2BufferOperation::EndCapStyle
    signature: "S2BufferOperation::EndCapStyle S2BufferOperation::Options::end_cap_style()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - end_cap_style
    argTypes:
    - EndCapStyle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: S2BufferOperation::Options::set_end_cap_style(EndCapStyle end_cap_style)
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::Options::set_end_cap_style(EndCapStyle end_cap_style)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: "S2BufferOperation::Options::polyline_side()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2BufferOperation::PolylineSide
    signature: "S2BufferOperation::PolylineSide S2BufferOperation::Options::polyline_side()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - polyline_side
    argTypes:
    - PolylineSide
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: "S2BufferOperation::Options::set_polyline_side(\n    PolylineSide
      polyline_side)"
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2BufferOperation::Options::set_polyline_side(\n    PolylineSide
      polyline_side)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: "& S2BufferOperation::Options::snap_function()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::SnapFunction
    signature: "S2Builder::SnapFunction & S2BufferOperation::Options::snap_function()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' snap_function'
    argTypes:
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: "S2BufferOperation::Options::set_snap_function(\n    const S2Builder::SnapFunction&
      snap_function)"
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: "void S2BufferOperation::Options::set_snap_function(\n    const S2Builder::SnapFunction&
      snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: '* S2BufferOperation::Options::memory_tracker() const'
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2MemoryTracker
    signature: S2MemoryTracker * S2BufferOperation::Options::memory_tracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - S2MemoryTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: S2BufferOperation::Options::set_memory_tracker(S2MemoryTracker*
      tracker)
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::Options::set_memory_tracker(S2MemoryTracker*
      tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: S2BufferOperation::S2BufferOperation
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::S2BufferOperation()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::Init
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:280,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result_layer
    - ' options'
    argTypes:
    - unique_ptr<S2Builder::Layer>
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: S2BufferOperation::S2BufferOperation
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S2BufferOperation::Init
    linkageType: ''
    returnType: void
    signature: "void S2BufferOperation::S2BufferOperation(unique_ptr<S2Builder::Layer>
      result_layer,\n                                     const Options& options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:286,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:290,1
    - Dst: buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:290,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:291,1
    - Dst: buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:291,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:292,1
    - Dst: error_fraction
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:293,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:301,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:303,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:306,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:308,1
    - Dst: S2BufferOperation::GetMaxEdgeSpan
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:309,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:310,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:315,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:316,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:316,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:320,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:322,1
    - Dst: S2BufferOperation::GetMaxEdgeSpan
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:322,1
    - Dst: snap_function
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:332,1
    - Dst: S2WindingOperation::Options::set_include_degeneracies
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:333,1
    - Dst: buffer_radius
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:334,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:334,1
    - Dst: S2WindingOperation::Options::set_memory_tracker
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:335,1
    - Dst: memory_tracker
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:335,1
    - Dst: S2BufferOperation::Init
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:336,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:336,1
    - Dst: S2BufferOperation::Init
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:337,1
    - Dst: memory_tracker
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - result_layer
    - ' options'
    argTypes:
    - unique_ptr<S2Builder::Layer>
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 338
    functionName: S2BufferOperation::Init
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 2
    functionsReached:
    - error_fraction
    - S2WindingOperation::Options::set_memory_tracker
    - S1Angle::Radians
    - S2BufferOperation::GetMaxEdgeSpan
    - S1ChordAngle
    - abs
    - S2::Origin
    - std::move
    - snap_function
    - buffer_radius
    - S1Angle::radians
    - S1ChordAngle::Radians
    - sgn
    - S1Angle::Zero
    - max
    - ceil
    - memory_tracker
    - S1ChordAngle::Zero
    - S1ChordAngle::Straight
    - S2WindingOperation::Options::set_include_degeneracies
    - S2BufferOperation::Init
    linkageType: ''
    returnType: void
    signature: "void S2BufferOperation::Init(unique_ptr<S2Builder::Layer> result_layer,\n
      \                            const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: '& S2BufferOperation::options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2BufferOperation::Options
    signature: S2BufferOperation::Options & S2BufferOperation::options() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:348,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:350,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:350,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:351,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:352,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:352,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:352,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:352,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:352,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:353,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:354,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:354,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:354,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:354,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - radius
    - requested_error
    argTypes:
    - S1Angle
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: S2BufferOperation::GetMaxEdgeSpan
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 1
    functionsReached:
    - S1Angle::Radians
    - min
    - S1Angle::radians
    - acos
    - S1Angle::Zero
    - tan
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle S2BufferOperation::GetMaxEdgeSpan(S1Angle radius,\n                                          S1Angle
      requested_error) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:365,1
    - Dst: S2BufferOperation::UpdateRefWinding
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' new_a'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 372
    functionName: S2BufferOperation::SetInputVertex
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::UpdateRefWinding
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::SetInputVertex(const S2Point& new_a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:378,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:379,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:381,1
    - Dst: S2BufferOperation::UpdateRefWinding
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' new_b'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 388
    functionName: S2BufferOperation::AddOffsetVertex
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - AddSpace
    - S2BufferOperation::UpdateRefWinding
    - push_back
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddOffsetVertex(const S2Point& new_b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::UpdateRefWinding
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:395,1
    - Dst: S2BufferOperation::UpdateRefWinding
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 398
    functionName: S2BufferOperation::CloseBufferRegion
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::UpdateRefWinding
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::CloseBufferRegion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:403,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: S2BufferOperation::OutputPath
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::AddLoop
    - clear
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::OutputPath()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:428,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:430,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:432,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:433,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 436
    functionName: S2BufferOperation::UpdateRefWinding
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 3
    functionsReached:
    - S2EdgeCrosser::EdgeOrVertexCrossing
    - S2::AngleContainsVertex
    - s2pred::Sign
    linkageType: ''
    returnType: void
    signature: "void S2BufferOperation::UpdateRefWinding(\n    const S2Point& a, const
      S2Point& b, const S2Point& c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: S2BufferOperation::AddFullPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddFullPolygon()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:450,1
    - Dst: S2BufferOperation::AddFullPolygon
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:451,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:456,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:457,1
    - Dst: S2BufferOperation::SetInputVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:461,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:462,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:463,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:467,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:468,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:469,1
    - Dst: S2BufferOperation::AddOffsetVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:470,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:470,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:472,1
    - Dst: S2BufferOperation::CloseBufferRegion
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:475,1
    - Dst: S2BufferOperation::OutputPath
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 478
    functionName: S2BufferOperation::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 2
    functionsReached:
    - S2::Ortho
    - S2::GetPointOnRay
    - S2BufferOperation::CloseBufferRegion
    - push_back
    - S1ChordAngle::Zero
    - CrossProd
    - S2BufferOperation::AddOffsetVertex
    - AddSpace
    - S2BufferOperation::AddFullPolygon
    - S2BufferOperation::OutputPath
    - S1ChordAngle::Straight
    - S2BufferOperation::SetInputVertex
    - S1ChordAngle::Right
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddPoint(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:485,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: S2BufferOperation::GetEdgeAxis
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - ABSL_DCHECK_NE
    linkageType: ''
    returnType: S2Point
    signature: "S2Point S2BufferOperation::GetEdgeAxis(const S2Point& a,\n                                              const
      S2Point& b) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:494,1
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:495,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:497,1
    - Dst: S2BufferOperation::AddOffsetVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:498,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' v'
    - ' start'
    - ' end'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: S2BufferOperation::AddVertexArc
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - CrossProd
    - S1ChordAngle::S1ChordAngle
    - S2BufferOperation::AddOffsetVertex
    - S2::GetPointOnRay
    linkageType: ''
    returnType: void
    signature: "void S2BufferOperation::AddVertexArc(const S2Point& v, const S2Point&
      start,\n                                     const S2Point& end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::AddOffsetVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:504,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' v'
    - ' end'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: S2BufferOperation::CloseVertexArc
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::AddOffsetVertex
    - S2::GetPointOnRay
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::CloseVertexArc(const S2Point& v, const S2Point&
      end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:509,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:510,1
    - Dst: S2BufferOperation::AddOffsetVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:517,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:520,1
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:521,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:523,1
    - Dst: S2BufferOperation::AddOffsetVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:524,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:524,1
    - Dst: S2BufferOperation::SetInputVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 528
    functionName: S2BufferOperation::AddEdgeArc
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointOnRay
    - S1ChordAngle::Zero
    - S2BufferOperation::AddOffsetVertex
    - CrossProd
    - S2BufferOperation::SetInputVertex
    - S1ChordAngle::S1ChordAngle
    - S2BufferOperation::GetEdgeAxis
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddEdgeArc(const S2Point& a, const S2Point&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:532,1
    - Dst: S2BufferOperation::AddOffsetVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:533,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:533,1
    - Dst: S2BufferOperation::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: S2BufferOperation::CloseEdgeArc
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::AddOffsetVertex
    - S2BufferOperation::GetEdgeAxis
    - S1ChordAngle::Zero
    - S2::GetPointOnRay
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::CloseEdgeArc(const S2Point& a, const S2Point&
      b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:548,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:549,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:550,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:551,1
    - Dst: S2BufferOperation::AddEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:557,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:558,1
    - Dst: S2BufferOperation::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:561,1
    - Dst: S2BufferOperation::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:562,1
    - Dst: S2BufferOperation::AddVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:563,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:564,1
    - Dst: S2BufferOperation::CloseVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:564,1
    - Dst: S2BufferOperation::CloseEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:573,1
    - Dst: S2BufferOperation::AddOffsetVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 576
    functionName: S2BufferOperation::BufferEdgeAndVertex
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::CloseVertexArc
    - s2pred::Sign
    - S2BufferOperation::AddVertexArc
    - ABSL_DCHECK_NE
    - S2BufferOperation::CloseEdgeArc
    - S1ChordAngle::Zero
    - S2BufferOperation::AddOffsetVertex
    - S2BufferOperation::AddEdgeArc
    - ok
    - S2BufferOperation::GetEdgeAxis
    linkageType: ''
    returnType: void
    signature: "void S2BufferOperation::BufferEdgeAndVertex(const S2Point& a, const
      S2Point& b,\n                                            const S2Point& c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:581,1
    - Dst: end_cap_style
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:582,1
    - Dst: polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:585,1
    - Dst: S2BufferOperation::AddOffsetVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:586,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:586,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:589,1
    - Dst: end_cap_style
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:589,1
    - Dst: polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:590,1
    - Dst: S2BufferOperation::AddVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:592,1
    - Dst: S2BufferOperation::AddVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:596,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:596,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 580
    functionDepth: 3
    functionLinenumber: 580
    functionLinenumberEnd: 599
    functionName: S2BufferOperation::AddStartCap
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointOnRay
    - S2BufferOperation::AddVertexArc
    - S2BufferOperation::AddOffsetVertex
    - S2Point::CrossProd
    - end_cap_style
    - polyline_side
    - S2BufferOperation::GetEdgeAxis
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddStartCap(const S2Point& a, const S2Point&
      b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::GetEdgeAxis
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:604,1
    - Dst: end_cap_style
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:605,1
    - Dst: S2BufferOperation::CloseEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:606,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:608,1
    - Dst: end_cap_style
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:608,1
    - Dst: polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:609,1
    - Dst: S2BufferOperation::AddVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:611,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:616,1
    - Dst: S2BufferOperation::AddVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:617,1
    - Dst: S2BufferOperation::CloseVertexArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 621
    functionName: S2BufferOperation::AddEndCap
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::CloseVertexArc
    - S2BufferOperation::AddVertexArc
    - S2BufferOperation::CloseEdgeArc
    - CrossProd
    - end_cap_style
    - polyline_side
    - S2BufferOperation::GetEdgeAxis
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddEndCap(const S2Point& a, const S2Point&
      b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::empty
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:626,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:626,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:629,1
    - Dst: S2BufferOperation::AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:629,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:633,1
    - Dst: S2BufferOperation::AddFullPolygon
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:634,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:640,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:640,1
    - Dst: assign
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:641,1
    - Dst: S2PointLoopSpan::begin
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:641,1
    - Dst: S2PointLoopSpan::end
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:641,1
    - Dst: S2BufferOperation::SetInputVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:643,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:644,1
    - Dst: S2BufferOperation::BufferEdgeAndVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:645,1
    - Dst: S2BufferOperation::CloseBufferRegion
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:647,1
    - Dst: S2BufferOperation::OutputPath
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:649,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 624
    functionDepth: 4
    functionLinenumber: 624
    functionLinenumberEnd: 650
    functionName: S2BufferOperation::BufferLoop
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2PointLoopSpan::empty
    - S2PointLoopSpan::begin
    - S2PointLoopSpan::size
    - S2BufferOperation::CloseBufferRegion
    - S2PointLoopSpan::end
    - S2BufferOperation::AddPoint
    - assign
    - AddSpace
    - S2BufferOperation::AddFullPolygon
    - S2BufferOperation::BufferEdgeAndVertex
    - S2BufferOperation::OutputPath
    - S1ChordAngle::Straight
    - S2BufferOperation::SetInputVertex
    - ok
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::BufferLoop(S2PointLoopSpan loop)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:656,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:657,1
    - Dst: S2PointSpan::size
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:657,1
    - Dst: std::reverse_copy
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:658,1
    - Dst: S2PointSpan::begin
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:658,1
    - Dst: S2PointSpan::end
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:658,1
    - Dst: std::back_inserter
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:659,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:664,1
    - Dst: S2PointSpan::size
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:667,1
    - Dst: S2BufferOperation::AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:672,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:676,1
    - Dst: S2BufferOperation::AddFullPolygon
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:677,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:682,1
    - Dst: assign
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:683,1
    - Dst: S2PointSpan::begin
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:683,1
    - Dst: S2PointSpan::end
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:683,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:684,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:684,1
    - Dst: S2PointSpan::rbegin
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:684,1
    - Dst: S2PointSpan::rend
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:684,1
    - Dst: S2BufferOperation::SetInputVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:687,1
    - Dst: S2BufferOperation::AddStartCap
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:688,1
    - Dst: S2BufferOperation::BufferEdgeAndVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:690,1
    - Dst: S2BufferOperation::AddEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:692,1
    - Dst: S2BufferOperation::AddEndCap
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:693,1
    - Dst: polyline_side
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:695,1
    - Dst: S2BufferOperation::BufferEdgeAndVertex
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:697,1
    - Dst: S2BufferOperation::AddEdgeArc
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:699,1
    - Dst: S2BufferOperation::CloseBufferRegion
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:700,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:704,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:705,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:705,1
    - Dst: S2PointSpan::rbegin
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:705,1
    - Dst: S2PointSpan::rend
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:705,1
    - Dst: S2BufferOperation::OutputPath
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:709,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - S2PointSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 652
    functionDepth: 4
    functionLinenumber: 652
    functionLinenumberEnd: 710
    functionName: S2BufferOperation::AddPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - end
    - vector::reserve
    - assign
    - S2PointSpan::rbegin
    - S2PointSpan::rend
    - S2BufferOperation::SetInputVertex
    - ok
    - insert
    - S2PointSpan::begin
    - S2BufferOperation::AddStartCap
    - S2BufferOperation::CloseBufferRegion
    - S2BufferOperation::AddPoint
    - S2BufferOperation::OutputPath
    - S2BufferOperation::AddEndCap
    - std::back_inserter
    - S2BufferOperation::BufferEdgeAndVertex
    - S2BufferOperation::AddFullPolygon
    - S2BufferOperation::AddEdgeArc
    - polyline_side
    - S2PointSpan::size
    - std::reverse_copy
    - AddSpace
    - S1ChordAngle::Straight
    - S2PointSpan::end
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddPolyline(S2PointSpan polyline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::empty
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:713,1
    - Dst: S2BufferOperation::BufferLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:714,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:718,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:719,1
    - Dst: S2LaxLoopShape
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 712
    functionDepth: 5
    functionLinenumber: 712
    functionLinenumberEnd: 722
    functionName: S2BufferOperation::AddLoop
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 5
    functionsReached:
    - S2PointLoopSpan::empty
    - S2LaxLoopShape
    - s2shapeutil::ContainsBruteForce
    - S2BufferOperation::BufferLoop
    - ok
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddLoop(S2PointLoopSpan loop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:725,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:726,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:728,1
    - Dst: S2BufferOperation::AddPoint
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:731,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:731,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:733,1
    - Dst: S2BufferOperation::AddPolyline
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:735,1
    - Dst: S2PointSpan
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:735,1
    - Dst: S2BufferOperation::BufferLoop
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:737,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 724
    functionDepth: 5
    functionLinenumber: 724
    functionLinenumberEnd: 741
    functionName: S2BufferOperation::BufferShape
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2PointSpan
    - S2::GetChainVertices
    - S2PointLoopSpan
    - dimension
    - num_chains
    - S2BufferOperation::AddPoint
    - edge
    - chain
    - S2BufferOperation::AddPolyline
    - S2BufferOperation::BufferLoop
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::BufferShape(const S2Shape& shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BufferOperation::BufferShape
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:744,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:745,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 743
    functionDepth: 6
    functionLinenumber: 743
    functionLinenumberEnd: 747
    functionName: S2BufferOperation::AddShape
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 0
    functionsReached:
    - S2BufferOperation::BufferShape
    - s2shapeutil::ContainsBruteForce
    - dimension
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddShape(const S2Shape& shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:753,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:753,1
    - Dst: S2BufferOperation::BufferShape
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:754,1
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2buffer_operation.cc:756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 749
    functionDepth: 6
    functionLinenumber: 749
    functionLinenumberEnd: 758
    functionName: S2BufferOperation::AddShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2buffer_operation.cc
    functionUses: 2
    functionsReached:
    - max
    - S2BufferOperation::BufferShape
    - S2ContainsPointQuery
    - dimension
    linkageType: ''
    returnType: void
    signature: void S2BufferOperation::AddShapeIndex(const S2ShapeIndex& index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:61,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: S2::internal::CompareEdges
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.h
    functionUses: 2
    functionsReached:
    - swap
    linkageType: ''
    returnType: bool
    signature: "bool CompareEdges(const Vector3<T>& a0, const Vector3<T>& a1,\n                         const
      Vector3<T>& b0, const Vector3<T>& b1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:61,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: S2::internal::CompareEdges
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.h
    functionUses: 2
    functionsReached:
    - swap
    linkageType: ''
    returnType: bool
    signature: "bool CompareEdges(const Vector3<T>& a0, const Vector3<T>& a1,\n                         const
      Vector3<T>& b0, const Vector3<T>& b1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:249,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:250,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: S2::AngleContainsVertex
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.h
    functionUses: 5
    functionsReached:
    - S2::RefDir
    - s2pred::OrderedCCW
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool AngleContainsVertex(const S2Point& a, const S2Point& b,\n                                const
      S2Point& c)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:61,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: S2::internal::CompareEdges
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.h
    functionUses: 2
    functionsReached:
    - swap
    linkageType: ''
    returnType: bool
    signature: "bool CompareEdges(const Vector3<T>& a0, const Vector3<T>& a1,\n                         const
      Vector3<T>& b0, const Vector3<T>& b1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:61,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: S2::internal::CompareEdges
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.h
    functionUses: 2
    functionsReached:
    - swap
    linkageType: ''
    returnType: bool
    signature: "bool CompareEdges(const Vector3<T>& a0, const Vector3<T>& a1,\n                         const
      Vector3<T>& b0, const Vector3<T>& b1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:249,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:250,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: S2::AngleContainsVertex
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.h
    functionUses: 5
    functionsReached:
    - S2::RefDir
    - s2pred::OrderedCCW
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool AngleContainsVertex(const S2Point& a, const S2Point& b,\n                                const
      S2Point& c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:33,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:33,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:33,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:33,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Ne
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, BothFieldsEqualIsEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:38,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:38,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:38,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:38,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Ne
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, BothShapeIdUnequalIsUnequal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:43,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:43,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:43,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:43,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Ne
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, BothEdgeIdUnequalIsUnequal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:49,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:49,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:49,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:49,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:52,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:52,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:52,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Lt
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, LessThanIsLexicographicShapeIdFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:57,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:57,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:57,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:57,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:60,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:60,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:60,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Le
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, LessEqIsLexicographicShapeIdFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: Gt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:65,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:65,1
    - Dst: Gt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:65,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: Gt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:68,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:68,1
    - Dst: Gt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:68,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - Gt
    - EXPECT_THAT
    - ShapeEdgeId
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, GreaterThanIsLexicographicShapeIdFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:73,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:73,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:73,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:76,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:76,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:76,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Ge
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, GreaterEqIsLexicographicShapeIdFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:33,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:33,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:33,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:33,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Ne
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, BothFieldsEqualIsEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:38,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:38,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:38,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:38,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Ne
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, BothShapeIdUnequalIsUnequal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:43,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:43,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:43,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:43,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Ne
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, BothEdgeIdUnequalIsUnequal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:49,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:49,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:49,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:49,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:51,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:52,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:52,1
    - Dst: Lt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:52,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Lt
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, LessThanIsLexicographicShapeIdFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:56,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:57,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:57,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:57,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:57,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:59,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:60,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:60,1
    - Dst: Le
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:60,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Le
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, LessEqIsLexicographicShapeIdFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: Gt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:64,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:65,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:65,1
    - Dst: Gt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:65,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: Gt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:67,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:68,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:68,1
    - Dst: Gt
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:68,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - Gt
    - EXPECT_THAT
    - ShapeEdgeId
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, GreaterThanIsLexicographicShapeIdFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:73,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:73,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:73,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:75,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:76,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:76,1
    - Dst: Ge
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:76,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
    functionUses: 0
    functionsReached:
    - Not
    - EXPECT_THAT
    - ShapeEdgeId
    - Ge
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeEdgeIdTest, GreaterEqIsLexicographicShapeIdFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:72,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:73,1
    - Dst: unique_ptr::Encode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:74,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:75,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:75,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:76,1
    - Dst: auto::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:77,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:79,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:79,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:80,1
    - Dst: auto::s2debug_override
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:80,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:81,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: MakePolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 4
    functionsReached:
    - make_unique<S2Polyline>
    - auto::Decode
    - auto::s2debug_override
    - auto::set_s2debug_override
    - ABSL_CHECK
    - ABSL_CHECK_EQ
    - Encoder::length
    - Encoder::base
    - static_cast<int>
    - unique_ptr::Encode
    - s2textformat::MakePolylineOrDie
    - Encoder::Encoder
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: "unique_ptr<S2Polyline> MakePolyline(string_view str,\n                                    S2Debug
      debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:88,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:88,1
    - Dst: S2Polyline::GetRectBound
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:88,1
    - Dst: S2Polyline::Reverse
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:90,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:90,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:92,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:93,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:94,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:96,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:96,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:96,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:97,1
    - Dst: S2Polyline::Reverse
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:99,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:99,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:99,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:100,1
    - Dst: S2Polyline::vertices_span
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:101,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:101,1
    - Dst: S2Polyline::vertices_span
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::vertex
    - ASSERT_EQ
    - S2Polyline::Interpolate
    - S2Polyline::GetRectBound
    - EXPECT_TRUE
    - S2Point
    - S2Polyline::num_vertices
    - S2::ApproxEquals
    - S2Polyline::vertices_span
    - S2Polyline::Reverse
    - S2LatLngRect::Empty
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:107,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:107,1
    - Dst: S2Polyline::GetLength
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:108,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:108,1
    - Dst: S2Polyline::GetCentroid
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:108,1
    - Dst: S2Polyline::Reverse
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - S2Point
    - S2Polyline::GetCentroid
    - S2Polyline::Reverse
    - EXPECT_EQ
    - S1Angle::Zero
    - S2Polyline::GetLength
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, NoData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:114,1
    - Dst: absl::WrapUnique
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:115,1
    - Dst: S2Polyline::Clone
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:115,1
    - Dst: ASSERT_NE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_NE
    - S2Polyline::S2Polyline
    - absl::WrapUnique
    - S2Polyline::Clone
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, NoDataClone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:120,1
    - Dst: unique_ptr::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: MakePolylineWithNonDefaultFields
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::set_s2debug_override
    - MakePolyline
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: unique_ptr<S2Polyline> MakePolylineWithNonDefaultFields()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:126,1
    - Dst: unique_ptr::Clone
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:127,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:128,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Clone
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CloneResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:134,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:138,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:139,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:141,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:145,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:148,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyAssignmentToSelfIsNoOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:152,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:154,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - EXPECT_THAT
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyConstructionFromEmptyIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:158,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:161,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - EXPECT_THAT
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyAssignmentFromEmptyIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:165,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:169,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, MoveConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:173,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:176,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:177,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:178,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - PolylineIdenticalTo
    - std::move
    - S2Polyline::S2Polyline
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, MoveAssignmentResultIdenticalToSource)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:182,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:183,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:192,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:193,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:197,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:197,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:198,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:198,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:199,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:199,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:200,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:203,1
    - Dst: S2Polyline::GetLength
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:205,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:206,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:206,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:206,1
    - Dst: S2Polyline::GetCentroid
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:207,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:208,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 210
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Polyline::GetLength
    - fabs
    - s2random::Frame
    - vector::back
    - S2Point::S2Point
    - S2Polyline::GetCentroid
    - pow
    - vector::empty
    - S1Angle::radians
    - sin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_LE
    - S2Point::Norm
    - S2Testing::MakeTaggedSeedSeq
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, GetLengthAndCentroid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:214,1
    - Dst: S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:215,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:215,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:215,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:216,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:221,1
    - Dst: S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:222,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:222,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:222,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:223,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:228,1
    - Dst: S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:229,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:229,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - S2Polyline
    - S2CellId
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, GetSnapLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:237,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:238,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:241,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:242,1
    - Dst: S2Polyline::MayIntersect
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2Cell::FromFace
    - S2Polyline::MayIntersect
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, MayIntersect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:247,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:248,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:249,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:252,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:252,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:253,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:253,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:253,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:254,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:254,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:255,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:255,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:255,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:256,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:257,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:257,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:258,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:258,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:260,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:261,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:262,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:262,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:263,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:265,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:266,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:270,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:271,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:272,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:274,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 276
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Interpolate
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2Polyline::GetSuffix
    - EXPECT_EQ
    - tan
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, Interpolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:279,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:281,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:281,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:281,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:283,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:283,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:284,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:284,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:285,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:285,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:288,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:290,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:291,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:291,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:292,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:293,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:293,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:294,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:295,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:295,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:296,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:297,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:297,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:298,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:299,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:299,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:302,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:302,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:302,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 303
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - EXPECT_DOUBLE_EQ
    - S2Point
    - S2Polyline::UnInterpolate
    - S2Point::S2Point
    - S2Polyline::GetSuffix
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, UnInterpolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:307,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:307,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:308,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:308,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:312,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:312,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:312,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:313,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:316,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:317,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:317,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:317,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:318,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:320,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:321,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:322,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:322,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:322,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:323,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:326,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:327,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:327,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:327,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:328,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:331,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:332,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:332,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:332,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:333,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:336,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:339,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:340,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:340,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:340,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:341,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:344,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:345,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:345,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:345,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:346,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:348,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 350
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Project
    - EXPECT_TRUE
    - S2::ApproxEquals
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, Project)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:354,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:354,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:355,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:355,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:358,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:358,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:358,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:359,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:359,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:359,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:360,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:360,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:360,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:361,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:361,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:361,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:362,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:362,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:362,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:363,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:363,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:363,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:366,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:366,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:367,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:372,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:372,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:372,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:373,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:373,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 374
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Polyline::IsOnRight
    - S2LatLng::FromDegrees
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IsOnRight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:377,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:378,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:379,1
    - Dst: S2Polyline::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:379,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Intersects
    - S2Polyline::S2Polyline
    - unique_ptr::get
    - MakePolyline
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IntersectsEmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:383,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:384,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:385,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:385,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Intersects
    - MakePolyline
    - EXPECT_FALSE
    - unique_ptr::get
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IntersectsOnePointPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:389,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:390,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:391,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:392,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:394,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:394,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:394,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:395,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:395,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:395,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:396,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:396,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - unique_ptr::get
    - MakePolyline
    - unique_ptr::Intersects
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, Intersects)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:400,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:401,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:402,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:403,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:403,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:403,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:404,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:404,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - MakePolyline
    - unique_ptr::Intersects
    - unique_ptr::get
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IntersectsAtVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:408,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:409,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:410,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:411,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:412,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:413,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:413,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:414,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:415,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:415,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:416,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:417,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:417,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:418,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:419,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 420
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - MakePolyline
    - unique_ptr::Intersects
    - unique_ptr::get
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IntersectsVertexOnEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:423,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:424,1
    - Dst: unique_ptr::SpaceUsed
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::SpaceUsed
    - EXPECT_GT
    - MakePolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SpaceUsedEmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:428,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:429,1
    - Dst: unique_ptr::SpaceUsed
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::SpaceUsed
    - EXPECT_GT
    - MakePolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SpaceUsedNonEmptyPolyline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const int>::size
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:434,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:436,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ints
    argTypes:
    - absl::Span<const int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: JoinInts
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const int>::size
    - absl::StrAppend
    linkageType: ''
    returnType: string
    signature: string JoinInts(absl::Span<const int> ints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:447,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:447,1
    - Dst: unique_ptr::SubsampleVertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:451,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:451,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:452,1
    - Dst: JoinInts
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - polyline_str
    - tolerance_degrees
    - expected_str
    argTypes:
    - string_view
    - double
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 453
    functionName: CheckSubsample
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - S1Angle::Degrees
    - SCOPED_TRACE
    - unique_ptr::SubsampleVertices
    - JoinInts
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void CheckSubsample(string_view polyline_str, double tolerance_degrees,\n
      \                   string_view expected_str,\n                    S2Debug debug_override
      = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:457,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:459,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:461,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:465,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:467,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:469,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:471,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 476
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - CheckSubsample
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SubsampleVerticesTrivialInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:480,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:481,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:482,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:483,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 485
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - CheckSubsample
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SubsampleVerticesSimpleExample)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:489,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:490,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:495,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:503,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:504,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 506
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - CheckSubsample
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SubsampleVerticesGuarantees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:509,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:510,1
    - Dst: S2Polyline::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:511,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:512,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:512,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:512,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:513,1
    - Dst: S2Polyline::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:513,1
    - Dst: S2Polyline::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:516,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:517,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:517,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:518,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:518,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:518,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:519,1
    - Dst: S2Polyline::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 520
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::ApproxEquals
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - EXPECT_LT
    - S2Polyline::num_vertices
    - S2Polyline::GetSnapLevel
    - MakePolyline
    - EXPECT_EQ
    - S1Angle::E7
    - S2Polyline::InitToSnapped
    - EXPECT_FALSE
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, InitToSnapped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:523,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:524,1
    - Dst: S2Polyline::InitToSimplified
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:525,1
    - Dst: S2CellIdSnapFunction
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:526,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:527,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:527,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:527,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:528,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:528,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:528,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:529,1
    - Dst: S2Polyline::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 530
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdSnapFunction
    - S2Polyline::ApproxEquals
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2Polyline::num_vertices
    - S2Polyline::InitToSimplified
    - MakePolyline
    - EXPECT_EQ
    - S1Angle::E7
    - S2Polyline::GetSnapLevel
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, InitToSimplified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unique_ptr::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_str
    - b_str
    - max_error
    argTypes:
    - string_view
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: TestEquals
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::ApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool TestEquals(string_view a_str, string_view b_str,\n                       S1Angle
      max_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:540,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:543,1
    - Dst: TestEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:543,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:548,1
    - Dst: TestEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:548,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:553,1
    - Dst: TestEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:553,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:556,1
    - Dst: TestEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 557
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestEquals
    - EXPECT_FALSE
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, ApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:560,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:561,1
    - Dst: unique_ptr::Encode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:562,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:563,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:563,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:564,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:565,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:565,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:566,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:566,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 567
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - S2Polyline::ApproxEquals
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - Encoder::length
    - MakePolyline
    - Encoder::base
    - unique_ptr::Encode
    - S1Angle::Zero
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, EncodeDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:570,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:571,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:572,1
    - Dst: unique_ptr::EncodeMostCompact
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:573,1
    - Dst: unique_ptr::EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:574,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:575,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:575,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:575,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:576,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:576,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:577,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:578,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:578,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:579,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:579,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 580
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - unique_ptr::EncodeMostCompact
    - S2Polyline::ApproxEquals
    - EXPECT_LT
    - S2Polyline::S2Polyline
    - EXPECT_TRUE
    - unique_ptr::EncodeUncompressed
    - Encoder::length
    - MakePolyline
    - Encoder::base
    - S1Angle::E7
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, EncodeDecodeCompressed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:583,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:584,1
    - Dst: S2Polyline::EncodeMostCompact
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:585,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:586,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:586,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:587,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:588,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:588,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:589,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 590
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2Polyline::num_vertices
    - Encoder::length
    - S2Polyline::EncodeMostCompact
    - Encoder::base
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, EncodeMostCompactEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:593,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:594,1
    - Dst: S2Polyline::EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:595,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:596,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:596,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:597,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:598,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:599,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 600
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2Polyline::num_vertices
    - Encoder::length
    - EXPECT_EQ
    - Encoder::base
    - S2Polyline::EncodeUncompressed
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, EncodeUncompressedEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string::data
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:604,1
    - Dst: string::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:604,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:605,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:606,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - S2Polyline::S2Polyline
    - string::data
    - EXPECT_FALSE
    - string::length
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, DecodeCompressedBadData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:610,1
    - Dst: Encoder::Ensure
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:611,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:612,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:613,1
    - Dst: Encoder::put32
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:614,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:615,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:615,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:617,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:618,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 619
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - Encoder::put32
    - Encoder::put8
    - Encoder::Ensure
    - S2Polyline::S2Polyline
    - EXPECT_TRUE
    - Encoder::length
    - Encoder::base
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, DecodeCompressedMaxCellLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:622,1
    - Dst: Encoder::Ensure
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:623,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:624,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:625,1
    - Dst: Encoder::put32
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:626,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:627,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:627,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:629,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:630,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 631
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - Encoder::put32
    - Encoder::put8
    - Encoder::Ensure
    - S2Polyline::S2Polyline
    - Encoder::length
    - Encoder::base
    - EXPECT_FALSE
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, DecodeCompressedCellLevelTooHigh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:634,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:635,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:636,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:636,1
    - Dst: S2Polyline::Shape::polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:636,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:637,1
    - Dst: S2Polyline::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:637,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:638,1
    - Dst: S2Polyline::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:638,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:639,1
    - Dst: S2Polyline::Shape::chain
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:639,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:640,1
    - Dst: S2Polyline::Shape::chain
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:640,1
    - Dst: S2Polyline::Shape::edge
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:641,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:642,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:642,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:643,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:643,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:644,1
    - Dst: S2Polyline::Shape::dimension
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:644,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:645,1
    - Dst: S2Polyline::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:645,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:646,1
    - Dst: S2Polyline::Shape::is_full
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:646,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:647,1
    - Dst: S2Polyline::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 648
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2Polyline::Shape::num_edges
    - S2Polyline::Shape::chain
    - S2Polyline::Shape::is_empty
    - S2Polyline::Shape::polyline
    - unique_ptr::get
    - MakePolyline
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2Polyline::Shape::num_chains
    - S2Polyline::Shape::is_full
    - S2Polyline::Shape::GetReferencePoint
    - S2Polyline::Shape::dimension
    - S2Polyline::Shape::edge
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineShape, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:651,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:653,1
    - Dst: S2Polyline::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:653,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:654,1
    - Dst: S2Polyline::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:654,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:655,1
    - Dst: S2Polyline::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:655,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:656,1
    - Dst: S2Polyline::Shape::is_full
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:656,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:657,1
    - Dst: S2Polyline::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 658
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Shape::num_edges
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2Polyline::Shape::is_empty
    - EXPECT_EQ
    - S2Polyline::Shape::num_chains
    - S2Polyline::Shape::is_full
    - S2Polyline::Shape::GetReferencePoint
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineShape, EmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 665
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineOwningShape, Ownership)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:671,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:671,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:675,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:676,1
    - Dst: unique_ptr::NearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:676,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:677,1
    - Dst: unique_ptr::NearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - a_str
    - b_str
    - max_error_degrees
    - expect_b_covers_a
    - expect_a_covers_b
    argTypes:
    - string_view
    - string_view
    - double
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: TestNearlyCovers
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - S1Angle::Degrees
    - SCOPED_TRACE
    - EXPECT_EQ
    - unique_ptr::NearlyCovers
    linkageType: ''
    returnType: void
    signature: "void TestNearlyCovers(string_view a_str, string_view b_str,\n                      double
      max_error_degrees, bool expect_b_covers_a,\n                      bool expect_a_covers_b,\n
      \                     S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, PolylineOverlapsSelf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 687
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, PolylineDoesNotOverlapReverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, PolylineOverlapsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 700
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, ShortCoveredByLong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 706
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, PartialOverlapOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:713,1
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 715
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, ShortBacktracking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:720,1
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 722
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, LongBacktracking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, IsResilientToDuplicatePoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 739
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, CanChooseBetweenTwoPotentialStartingPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 746
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, StraightAndWigglyPolylinesCoverEachOther)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 753
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, MatchStartsAtLastVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, MatchStartsAtDuplicatedLastVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:764,1
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 766
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, EmptyPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:772,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:774,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:775,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:775,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:777,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:777,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 778
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - s2coding::RoundTrip
    - s2coding::S2HintCoder::S2HintCoder
    - EXPECT_EQ
    - s2textformat::MakePolylineOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:72,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:73,1
    - Dst: unique_ptr::Encode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:74,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:75,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:75,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:76,1
    - Dst: auto::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:77,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:79,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:79,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:80,1
    - Dst: auto::s2debug_override
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:80,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:81,1
    - Dst: auto::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: MakePolyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 17
    functionsReached:
    - make_unique<S2Polyline>
    - auto::Decode
    - auto::s2debug_override
    - auto::set_s2debug_override
    - ABSL_CHECK
    - ABSL_CHECK_EQ
    - Encoder::length
    - Encoder::base
    - static_cast<int>
    - unique_ptr::Encode
    - s2textformat::MakePolylineOrDie
    - Encoder::Encoder
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: "unique_ptr<S2Polyline> MakePolyline(string_view str,\n                                    S2Debug
      debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:88,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:88,1
    - Dst: S2Polyline::GetRectBound
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:88,1
    - Dst: S2Polyline::Reverse
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:90,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:90,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:92,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:93,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:94,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:96,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:96,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:96,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:97,1
    - Dst: S2Polyline::Reverse
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:99,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:99,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:99,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:100,1
    - Dst: S2Polyline::vertices_span
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:101,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:101,1
    - Dst: S2Polyline::vertices_span
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::vertex
    - ASSERT_EQ
    - S2Polyline::Interpolate
    - S2Polyline::GetRectBound
    - EXPECT_TRUE
    - S2Point
    - S2Polyline::num_vertices
    - S2::ApproxEquals
    - S2Polyline::vertices_span
    - S2Polyline::Reverse
    - S2LatLngRect::Empty
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:107,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:107,1
    - Dst: S2Polyline::GetLength
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:108,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:108,1
    - Dst: S2Polyline::GetCentroid
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:108,1
    - Dst: S2Polyline::Reverse
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - S2Point
    - S2Polyline::GetCentroid
    - S2Polyline::Reverse
    - EXPECT_EQ
    - S1Angle::Zero
    - S2Polyline::GetLength
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, NoData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:114,1
    - Dst: absl::WrapUnique
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:115,1
    - Dst: S2Polyline::Clone
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:115,1
    - Dst: ASSERT_NE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_NE
    - S2Polyline::S2Polyline
    - absl::WrapUnique
    - S2Polyline::Clone
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, NoDataClone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:120,1
    - Dst: unique_ptr::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: MakePolylineWithNonDefaultFields
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 6
    functionsReached:
    - unique_ptr::set_s2debug_override
    - MakePolyline
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: unique_ptr<S2Polyline> MakePolylineWithNonDefaultFields()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:126,1
    - Dst: unique_ptr::Clone
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:127,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:128,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Clone
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CloneResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:134,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:138,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:139,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:141,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyAssignmentResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:145,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:148,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyAssignmentToSelfIsNoOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:152,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:154,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - EXPECT_THAT
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyConstructionFromEmptyIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:158,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:161,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - EXPECT_THAT
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, CopyAssignmentFromEmptyIsIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:165,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:169,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    - PolylineIdenticalTo
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, MoveConstructionResultIdenticalToSource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolylineWithNonDefaultFields
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:173,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:176,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:177,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:178,1
    - Dst: PolylineIdenticalTo
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - PolylineIdenticalTo
    - std::move
    - S2Polyline::S2Polyline
    - EXPECT_THAT
    - MakePolylineWithNonDefaultFields
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, MoveAssignmentResultIdenticalToSource)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:182,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:183,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:192,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:193,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:197,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:197,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:198,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:198,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:199,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:199,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:200,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:203,1
    - Dst: S2Polyline::GetLength
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:205,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:206,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:206,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:206,1
    - Dst: S2Polyline::GetCentroid
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:207,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:208,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 210
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Polyline::GetLength
    - fabs
    - s2random::Frame
    - vector::back
    - S2Point::S2Point
    - S2Polyline::GetCentroid
    - pow
    - vector::empty
    - S1Angle::radians
    - sin
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_LE
    - S2Point::Norm
    - S2Testing::MakeTaggedSeedSeq
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, GetLengthAndCentroid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:214,1
    - Dst: S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:215,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:215,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:215,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:216,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:221,1
    - Dst: S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:222,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:222,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:222,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:223,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:228,1
    - Dst: S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:229,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:229,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 232
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - S2Polyline
    - S2CellId
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, GetSnapLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:237,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:238,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:241,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:242,1
    - Dst: S2Polyline::MayIntersect
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2Cell::FromFace
    - S2Polyline::MayIntersect
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, MayIntersect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:247,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:248,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:249,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:252,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:252,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:253,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:253,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:253,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:254,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:254,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:255,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:255,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:255,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:256,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:257,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:257,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:258,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:258,1
    - Dst: S2Polyline::Interpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:260,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:261,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:262,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:262,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:263,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:265,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:266,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:270,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:271,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:272,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:274,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 276
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Interpolate
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2Polyline::GetSuffix
    - EXPECT_EQ
    - tan
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, Interpolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:279,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:281,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:281,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:281,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:283,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:283,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:284,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:284,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:285,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:285,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:288,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:290,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:291,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:291,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:292,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:293,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:293,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:294,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:295,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:295,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:296,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:297,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:297,1
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:298,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:299,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:299,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:302,1
    - Dst: S2Polyline::UnInterpolate
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:302,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:302,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 303
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - EXPECT_DOUBLE_EQ
    - S2Point
    - S2Polyline::UnInterpolate
    - S2Point::S2Point
    - S2Polyline::GetSuffix
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, UnInterpolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:307,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:307,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:308,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:308,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:312,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:312,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:312,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:313,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:316,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:317,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:317,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:317,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:318,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:320,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:321,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:322,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:322,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:322,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:323,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:326,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:327,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:327,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:327,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:328,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:331,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:332,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:332,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:332,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:333,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:336,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:339,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:340,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:340,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:340,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:341,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:344,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:345,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:345,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:345,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:346,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:348,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 350
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Project
    - EXPECT_TRUE
    - S2::ApproxEquals
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, Project)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:354,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:354,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:355,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:355,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:358,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:358,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:358,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:359,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:359,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:359,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:360,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:360,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:360,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:361,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:361,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:361,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:362,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:362,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:362,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:363,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:363,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:363,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:366,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:366,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:367,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:372,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:372,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:372,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:373,1
    - Dst: S2Polyline::IsOnRight
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:373,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 374
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Polyline::IsOnRight
    - S2LatLng::FromDegrees
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IsOnRight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:377,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:378,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:379,1
    - Dst: S2Polyline::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:379,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Intersects
    - S2Polyline::S2Polyline
    - unique_ptr::get
    - MakePolyline
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IntersectsEmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:383,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:384,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:385,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:385,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::Intersects
    - MakePolyline
    - EXPECT_FALSE
    - unique_ptr::get
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IntersectsOnePointPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:389,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:390,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:391,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:392,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:394,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:394,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:394,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:395,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:395,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:395,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:396,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:396,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - unique_ptr::get
    - MakePolyline
    - unique_ptr::Intersects
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, Intersects)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:400,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:401,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:402,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:403,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:403,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:403,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:404,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:404,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - MakePolyline
    - unique_ptr::Intersects
    - unique_ptr::get
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IntersectsAtVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:408,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:409,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:410,1
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:411,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:412,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:413,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:413,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:414,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:415,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:415,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:416,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:417,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:417,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:418,1
    - Dst: unique_ptr::Intersects
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:419,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 420
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - MakePolyline
    - unique_ptr::Intersects
    - unique_ptr::get
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, IntersectsVertexOnEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:423,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:424,1
    - Dst: unique_ptr::SpaceUsed
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::SpaceUsed
    - EXPECT_GT
    - MakePolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SpaceUsedEmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:428,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:429,1
    - Dst: unique_ptr::SpaceUsed
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - unique_ptr::SpaceUsed
    - EXPECT_GT
    - MakePolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SpaceUsedNonEmptyPolyline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const int>::size
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:434,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:436,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ints
    argTypes:
    - absl::Span<const int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: JoinInts
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 1
    functionsReached:
    - absl::Span<const int>::size
    - absl::StrAppend
    linkageType: ''
    returnType: string
    signature: string JoinInts(absl::Span<const int> ints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:447,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:447,1
    - Dst: unique_ptr::SubsampleVertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:451,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:451,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:452,1
    - Dst: JoinInts
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - polyline_str
    - tolerance_degrees
    - expected_str
    argTypes:
    - string_view
    - double
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 453
    functionName: CheckSubsample
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 3
    functionsReached:
    - StrCat
    - S1Angle::Degrees
    - SCOPED_TRACE
    - unique_ptr::SubsampleVertices
    - JoinInts
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void CheckSubsample(string_view polyline_str, double tolerance_degrees,\n
      \                   string_view expected_str,\n                    S2Debug debug_override
      = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:457,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:459,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:461,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:465,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:467,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:469,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:471,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 476
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - CheckSubsample
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SubsampleVerticesTrivialInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:480,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:481,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:482,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:483,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 485
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - CheckSubsample
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SubsampleVerticesSimpleExample)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:489,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:490,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:495,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:503,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:504,1
    - Dst: CheckSubsample
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 506
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - CheckSubsample
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, SubsampleVerticesGuarantees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:509,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:510,1
    - Dst: S2Polyline::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:511,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:512,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:512,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:512,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:513,1
    - Dst: S2Polyline::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:513,1
    - Dst: S2Polyline::InitToSnapped
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:516,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:517,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:517,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:518,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:518,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:518,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:519,1
    - Dst: S2Polyline::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 520
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::ApproxEquals
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - EXPECT_LT
    - S2Polyline::num_vertices
    - S2Polyline::GetSnapLevel
    - MakePolyline
    - EXPECT_EQ
    - S1Angle::E7
    - S2Polyline::InitToSnapped
    - EXPECT_FALSE
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, InitToSnapped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:523,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:524,1
    - Dst: S2Polyline::InitToSimplified
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:525,1
    - Dst: S2CellIdSnapFunction
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:526,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:527,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:527,1
    - Dst: auto::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:527,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:528,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:528,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:528,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:529,1
    - Dst: S2Polyline::GetSnapLevel
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 530
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2CellIdSnapFunction
    - S2Polyline::ApproxEquals
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2Polyline::num_vertices
    - S2Polyline::InitToSimplified
    - MakePolyline
    - EXPECT_EQ
    - S1Angle::E7
    - S2Polyline::GetSnapLevel
    - auto::num_vertices
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, InitToSimplified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unique_ptr::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_str
    - b_str
    - max_error
    argTypes:
    - string_view
    - string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: TestEquals
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 1
    functionsReached:
    - unique_ptr::ApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool TestEquals(string_view a_str, string_view b_str,\n                       S1Angle
      max_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:540,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:543,1
    - Dst: TestEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:543,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:548,1
    - Dst: TestEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:548,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:553,1
    - Dst: TestEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:553,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:556,1
    - Dst: TestEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 557
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestEquals
    - EXPECT_FALSE
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, ApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:560,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:561,1
    - Dst: unique_ptr::Encode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:562,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:563,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:563,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:564,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:565,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:565,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:566,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:566,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 567
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - S2Polyline::ApproxEquals
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - Encoder::length
    - MakePolyline
    - Encoder::base
    - unique_ptr::Encode
    - S1Angle::Zero
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, EncodeDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:570,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:571,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:572,1
    - Dst: unique_ptr::EncodeMostCompact
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:573,1
    - Dst: unique_ptr::EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:574,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:575,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:575,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:575,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:576,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:576,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:577,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:578,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:578,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:579,1
    - Dst: S2Polyline::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:579,1
    - Dst: S1Angle::E7
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 580
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - unique_ptr::EncodeMostCompact
    - S2Polyline::ApproxEquals
    - EXPECT_LT
    - S2Polyline::S2Polyline
    - EXPECT_TRUE
    - unique_ptr::EncodeUncompressed
    - Encoder::length
    - MakePolyline
    - Encoder::base
    - S1Angle::E7
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, EncodeDecodeCompressed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:583,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:584,1
    - Dst: S2Polyline::EncodeMostCompact
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:585,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:586,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:586,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:587,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:588,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:588,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:589,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 590
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2Polyline::num_vertices
    - Encoder::length
    - S2Polyline::EncodeMostCompact
    - Encoder::base
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, EncodeMostCompactEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:593,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:594,1
    - Dst: S2Polyline::EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:595,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:596,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:596,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:597,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:598,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:599,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 600
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2Polyline::num_vertices
    - Encoder::length
    - EXPECT_EQ
    - Encoder::base
    - S2Polyline::EncodeUncompressed
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, EncodeUncompressedEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string::data
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:604,1
    - Dst: string::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:604,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:605,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:606,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - S2Polyline::S2Polyline
    - string::data
    - EXPECT_FALSE
    - string::length
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, DecodeCompressedBadData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:610,1
    - Dst: Encoder::Ensure
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:611,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:612,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:613,1
    - Dst: Encoder::put32
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:614,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:615,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:615,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:617,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:618,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 619
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - Encoder::put32
    - Encoder::put8
    - Encoder::Ensure
    - S2Polyline::S2Polyline
    - EXPECT_TRUE
    - Encoder::length
    - Encoder::base
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, DecodeCompressedMaxCellLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:622,1
    - Dst: Encoder::Ensure
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:623,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:624,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:625,1
    - Dst: Encoder::put32
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:626,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:627,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:627,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:629,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:630,1
    - Dst: S2Polyline::Decode
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 631
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Decode
    - Encoder::put32
    - Encoder::put8
    - Encoder::Ensure
    - S2Polyline::S2Polyline
    - Encoder::length
    - Encoder::base
    - EXPECT_FALSE
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, DecodeCompressedCellLevelTooHigh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePolyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:634,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:635,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:636,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:636,1
    - Dst: S2Polyline::Shape::polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:636,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:637,1
    - Dst: S2Polyline::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:637,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:638,1
    - Dst: S2Polyline::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:638,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:639,1
    - Dst: S2Polyline::Shape::chain
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:639,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:640,1
    - Dst: S2Polyline::Shape::chain
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:640,1
    - Dst: S2Polyline::Shape::edge
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:641,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:642,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:642,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:643,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:643,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:644,1
    - Dst: S2Polyline::Shape::dimension
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:644,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:645,1
    - Dst: S2Polyline::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:645,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:646,1
    - Dst: S2Polyline::Shape::is_full
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:646,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:647,1
    - Dst: S2Polyline::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 648
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2Polyline::Shape::num_edges
    - S2Polyline::Shape::chain
    - S2Polyline::Shape::is_empty
    - S2Polyline::Shape::polyline
    - unique_ptr::get
    - MakePolyline
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2Polyline::Shape::num_chains
    - S2Polyline::Shape::is_full
    - S2Polyline::Shape::GetReferencePoint
    - S2Polyline::Shape::dimension
    - S2Polyline::Shape::edge
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineShape, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:651,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:653,1
    - Dst: S2Polyline::Shape::num_edges
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:653,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:654,1
    - Dst: S2Polyline::Shape::num_chains
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:654,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:655,1
    - Dst: S2Polyline::Shape::is_empty
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:655,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:656,1
    - Dst: S2Polyline::Shape::is_full
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:656,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:657,1
    - Dst: S2Polyline::Shape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 658
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::Shape::num_edges
    - EXPECT_TRUE
    - S2Polyline::S2Polyline
    - S2Polyline::Shape::is_empty
    - EXPECT_EQ
    - S2Polyline::Shape::num_chains
    - S2Polyline::Shape::is_full
    - S2Polyline::Shape::GetReferencePoint
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineShape, EmptyPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 665
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineOwningShape, Ownership)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:671,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:671,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:675,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:676,1
    - Dst: unique_ptr::NearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:676,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:677,1
    - Dst: unique_ptr::NearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - a_str
    - b_str
    - max_error_degrees
    - expect_b_covers_a
    - expect_a_covers_b
    argTypes:
    - string_view
    - string_view
    - double
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: TestNearlyCovers
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 13
    functionsReached:
    - StrCat
    - S1Angle::Degrees
    - SCOPED_TRACE
    - EXPECT_EQ
    - unique_ptr::NearlyCovers
    linkageType: ''
    returnType: void
    signature: "void TestNearlyCovers(string_view a_str, string_view b_str,\n                      double
      max_error_degrees, bool expect_b_covers_a,\n                      bool expect_a_covers_b,\n
      \                     S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, PolylineOverlapsSelf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 687
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, PolylineDoesNotOverlapReverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, PolylineOverlapsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 700
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, ShortCoveredByLong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 706
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, PartialOverlapOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:713,1
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 715
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, ShortBacktracking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:720,1
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 722
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, LongBacktracking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, IsResilientToDuplicatePoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 739
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, CanChooseBetweenTwoPotentialStartingPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 746
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, StraightAndWigglyPolylinesCoverEachOther)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 753
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, MatchStartsAtLastVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, MatchStartsAtDuplicatedLastVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:764,1
    - Dst: TestNearlyCovers
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 766
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - TestNearlyCovers
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineCoveringTest, EmptyPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:772,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:774,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:775,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:775,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:777,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:777,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2polyline_test.cc:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 778
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - s2coding::RoundTrip
    - s2coding::S2HintCoder::S2HintCoder
    - EXPECT_EQ
    - s2textformat::MakePolylineOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Polyline, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: S2Testing::S2Testing
    functionSourceFile: /src/s2geometry/src/s2/s2testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Testing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: S2Testing::S2Testing
    functionSourceFile: /src/s2geometry/src/s2/s2testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Testing(const S2Testing&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: operator=(const S2Testing&)
    functionSourceFile: /src/s2geometry/src/s2/s2testing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2Testing&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2testing.h:161,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2testing.h:162,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2testing.h:167,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2testing.h:172,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2testing.h:175,1
    - Dst: std::count_if
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2testing.h:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - ' x'
    - ' y'
    - max_size
    - max_distance
    - max_error
    - max_pruning_error
    - label
    argTypes:
    - std::vector<std::pair<Distance, Id>>
    - std::vector<std::pair<Distance, Id>>
    - int
    - Distance
    - typename Distance::Delta
    - typename Distance::Delta
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 193
    functionName: S2::internal::CheckResultSet
    functionSourceFile: /src/s2geometry/src/s2/s2testing.h
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - end
    - S2MinDistance::Zero
    - size
    - back
    - S2MinDistance::Infinity
    - begin
    - empty
    - std::count_if
    - S1ChordAngle
    - std::is_sorted
    linkageType: ''
    returnType: bool
    signature: "bool CheckResultSet(const std::vector<std::pair<Distance, Id>>& x,\n
      \                   const std::vector<std::pair<Distance, Id>>& y,\n                    int
      max_size, Distance max_distance,\n                    typename Distance::Delta
      max_error,\n                    typename Distance::Delta max_pruning_error,\n
      \                   absl::string_view label)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2testing.h:161,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2testing.h:162,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2testing.h:167,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2testing.h:172,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2testing.h:175,1
    - Dst: std::count_if
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2testing.h:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - ' x'
    - ' y'
    - max_size
    - max_distance
    - max_error
    - max_pruning_error
    - label
    argTypes:
    - std::vector<std::pair<Distance, Id>>
    - std::vector<std::pair<Distance, Id>>
    - int
    - Distance
    - typename Distance::Delta
    - typename Distance::Delta
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 193
    functionName: S2::internal::CheckResultSet
    functionSourceFile: /src/s2geometry/src/s2/s2testing.h
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - end
    - S2MinDistance::Zero
    - size
    - back
    - S2MinDistance::Infinity
    - begin
    - empty
    - std::count_if
    - S1ChordAngle
    - std::is_sorted
    linkageType: ''
    returnType: bool
    signature: "bool CheckResultSet(const std::vector<std::pair<Distance, Id>>& x,\n
      \                   const std::vector<std::pair<Distance, Id>>& y,\n                    int
      max_size, Distance max_distance,\n                    typename Distance::Delta
      max_error,\n                    typename Distance::Delta max_pruning_error,\n
      \                   absl::string_view label)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2testing.h:161,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2testing.h:162,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2testing.h:167,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2testing.h:172,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2testing.h:175,1
    - Dst: std::count_if
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2testing.h:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - ' x'
    - ' y'
    - max_size
    - max_distance
    - max_error
    - max_pruning_error
    - label
    argTypes:
    - std::vector<std::pair<Distance, Id>>
    - std::vector<std::pair<Distance, Id>>
    - int
    - Distance
    - typename Distance::Delta
    - typename Distance::Delta
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 193
    functionName: S2::internal::CheckResultSet
    functionSourceFile: /src/s2geometry/src/s2/s2testing.h
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - end
    - S2MinDistance::Zero
    - size
    - back
    - S2MinDistance::Infinity
    - begin
    - empty
    - std::count_if
    - S1ChordAngle
    - std::is_sorted
    linkageType: ''
    returnType: bool
    signature: "bool CheckResultSet(const std::vector<std::pair<Distance, Id>>& x,\n
      \                   const std::vector<std::pair<Distance, Id>>& y,\n                    int
      max_size, Distance max_distance,\n                    typename Distance::Delta
      max_error,\n                    typename Distance::Delta max_pruning_error,\n
      \                   absl::string_view label)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: std::is_sorted
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2testing.h:154,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2testing.h:161,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2testing.h:162,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2testing.h:167,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2testing.h:172,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2testing.h:175,1
    - Dst: std::count_if
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2testing.h:181,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2testing.h:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - ' x'
    - ' y'
    - max_size
    - max_distance
    - max_error
    - max_pruning_error
    - label
    argTypes:
    - std::vector<std::pair<Distance, Id>>
    - std::vector<std::pair<Distance, Id>>
    - int
    - Distance
    - typename Distance::Delta
    - typename Distance::Delta
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 193
    functionName: S2::internal::CheckResultSet
    functionSourceFile: /src/s2geometry/src/s2/s2testing.h
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - end
    - S2MinDistance::Zero
    - size
    - back
    - S2MinDistance::Infinity
    - begin
    - empty
    - std::count_if
    - S1ChordAngle
    - std::is_sorted
    linkageType: ''
    returnType: bool
    signature: "bool CheckResultSet(const std::vector<std::pair<Distance, Id>>& x,\n
      \                   const std::vector<std::pair<Distance, Id>>& y,\n                    int
      max_size, Distance max_distance,\n                    typename Distance::Delta
      max_error,\n                    typename Distance::Delta max_pruning_error,\n
      \                   absl::string_view label)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2testing.h:207,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2testing.h:210,1
    - Dst: S2::internal::CheckResultSet
      Src: /src/s2geometry/src/s2/s2testing.h:210,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2testing.h:213,1
    - Dst: S2::internal::CheckResultSet
      Src: /src/s2geometry/src/s2/s2testing.h:213,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2testing.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' expected'
    - ' actual'
    - max_size
    - max_distance
    - max_error
    argTypes:
    - std::vector<std::pair<Distance, Id>>
    - std::vector<std::pair<Distance, Id>>
    - int
    - Distance
    - typename Distance::Delta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: CheckDistanceResults
    functionSourceFile: /src/s2geometry/src/s2/s2testing.h
    functionUses: 3
    functionsReached:
    - S1ChordAngle::Radians
    - S1ChordAngle::Zero
    - static_cast<int>
    - S2::internal::CheckResultSet
    linkageType: ''
    returnType: bool
    signature: "bool CheckDistanceResults(\n    const std::vector<std::pair<Distance,
      Id>>& expected,\n    const std::vector<std::pair<Distance, Id>>& actual,\n    int
      max_size, Distance max_distance, typename Distance::Delta max_error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cell_id
    - cell
    - cell_path
    argTypes:
    - S2CellId
    - S2DensityTree::Cell*
    - S2DensityTree::DecodedPath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: Node::Node
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Node(S2CellId cell_id, const S2DensityTree::Cell* cell,\n                 S2DensityTree::DecodedPath*
      cell_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2density_tree.cc:80,1
    - Dst: has_value
      Src: /src/s2geometry/src/s2/s2density_tree.cc:80,1
    - Dst: Node::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Node::valid
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - has_value
    - is_valid
    - Node::weight
    linkageType: ''
    returnType: bool
    signature: bool valid() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Node::valid
      Src: /src/s2geometry/src/s2/s2density_tree.cc:85,1
    - Dst: Node::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: Node::weight
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 2
    functionsReached:
    - Node::valid
    - Node::weight
    linkageType: ''
    returnType: int64_t
    signature: int64_t weight() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Node::valid
      Src: /src/s2geometry/src/s2/s2density_tree.cc:94,1
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2density_tree.cc:94,1
    - Dst: Node::Invalid
      Src: /src/s2geometry/src/s2/s2density_tree.cc:95,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree.cc:98,1
    - Dst: GetCell
      Src: /src/s2geometry/src/s2/s2density_tree.cc:100,1
    - Dst: Node::parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:100,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2density_tree.cc:101,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:101,1
    - Dst: Node::Node
      Src: /src/s2geometry/src/s2/s2density_tree.cc:102,1
    - Dst: Node::parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: Node::parent
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 1
    functionsReached:
    - Node::Node
    - is_face
    - Node::Invalid
    - Node::valid
    - Node::parent
    - S2Error::ok
    - GetCell
    - ABSL_DCHECK
    - S2Error::S2Error
    linkageType: ''
    returnType: Node
    signature: Node parent() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Node::valid
      Src: /src/s2geometry/src/s2/s2density_tree.cc:107,1
    - Dst: is_leaf
      Src: /src/s2geometry/src/s2/s2density_tree.cc:107,1
    - Dst: child_offset
      Src: /src/s2geometry/src/s2/s2density_tree.cc:108,1
    - Dst: Node::Invalid
      Src: /src/s2geometry/src/s2/s2density_tree.cc:109,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree.cc:112,1
    - Dst: GetCell
      Src: /src/s2geometry/src/s2/s2density_tree.cc:114,1
    - Dst: Node::child
      Src: /src/s2geometry/src/s2/s2density_tree.cc:114,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2density_tree.cc:115,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:115,1
    - Dst: Node::Node
      Src: /src/s2geometry/src/s2/s2density_tree.cc:116,1
    - Dst: Node::child
      Src: /src/s2geometry/src/s2/s2density_tree.cc:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - child_index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: Node::child
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 1
    functionsReached:
    - Node::Node
    - Node::Invalid
    - Node::valid
    - is_leaf
    - child_offset
    - GetCell
    - Node::child
    - ABSL_DCHECK
    - S2Error::ok
    - S2Error::S2Error
    linkageType: ''
    returnType: Node
    signature: Node child(int child_index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Node::child
      Src: /src/s2geometry/src/s2/s2density_tree.cc:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: Node::HasMultipleWeightedChildren
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - Node::child
    linkageType: ''
    returnType: bool
    signature: bool HasMultipleWeightedChildren() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Node::HasMultipleWeightedChildren
      Src: /src/s2geometry/src/s2/s2density_tree.cc:140,1
    - Dst: Node::VisitWeightedChildren
      Src: /src/s2geometry/src/s2/s2density_tree.cc:141,1
    - Dst: Node::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:142,1
    - Dst: Node::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: Node::AllChildrenHaveSameWeight
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - Node::VisitWeightedChildren
    - Node::HasMultipleWeightedChildren
    - Node::weight
    linkageType: ''
    returnType: bool
    signature: bool AllChildrenHaveSameWeight() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Node::child
      Src: /src/s2geometry/src/s2/s2density_tree.cc:151,1
    - Dst: Node::valid
      Src: /src/s2geometry/src/s2/s2density_tree.cc:152,1
    - Dst: predicate
      Src: /src/s2geometry/src/s2/s2density_tree.cc:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - std::function<bool(const Node&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: Node::VisitWeightedChildren
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 1
    functionsReached:
    - predicate
    - Node::valid
    - Node::child
    linkageType: ''
    returnType: bool
    signature: bool VisitWeightedChildren(std::function<bool(const Node&)> predicate)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Node::valid
      Src: /src/s2geometry/src/s2/s2density_tree.cc:162,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree.cc:166,1
    - Dst: tree
      Src: /src/s2geometry/src/s2/s2density_tree.cc:167,1
    - Dst: Node::GetNormalCellWeight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:169,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2density_tree.cc:170,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: Node::GetNormalCellWeight
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 1
    functionsReached:
    - tree
    - Node::valid
    - S2Error::S2Error
    - Node::GetNormalCellWeight
    - S2Error::ok
    - ABSL_DCHECK
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetNormalCellWeight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: Node::cell_id
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId cell_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: operator<(const Node& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Node& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Node::Node
      Src: /src/s2geometry/src/s2/s2density_tree.cc:187,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2density_tree.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: Node::Invalid
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 2
    functionsReached:
    - Node::Node
    - S2CellId::Sentinel
    linkageType: ''
    returnType: Node
    signature: Node Invalid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:202,1
    - Dst: BreadthFirstTreeBuilder::Build
      Src: /src/s2geometry/src/s2/s2density_tree.cc:206,1
    - Dst: IndexCellWeightFunction::WeighCell
      Src: /src/s2geometry/src/s2/s2density_tree.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' index'
    - ' weight_fn'
    - approximate_size_bytes
    - max_level
    - absl_nonnull
    argTypes:
    - S2ShapeIndex
    - ShapeWeightFunction
    - int64_t
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: S2DensityTree::InitToShapeDensity
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 1
    functionsReached:
    - IndexCellWeightFunction::WeighCell
    - BreadthFirstTreeBuilder::Build
    - S2Error::Ok
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::InitToShapeDensity(const S2ShapeIndex& index,\n
      \                                      const ShapeWeightFunction& weight_fn,\n
      \                                      int64_t approximate_size_bytes,\n                                       int
      max_level,\n                                       S2Error* absl_nonnull error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::InitToShapeDensity
      Src: /src/s2geometry/src/s2/s2density_tree.cc:217,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2density_tree.cc:220,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2density_tree.cc:222,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2density_tree.cc:224,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2density_tree.cc:224,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2density_tree.cc:226,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2density_tree.cc:228,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2density_tree.cc:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ' index'
    - approximate_size_bytes
    - max_level
    - absl_nonnull
    argTypes:
    - S2ShapeIndex
    - int64_t
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 233
    functionName: S2DensityTree::InitToVertexDensity
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 7
    functionsReached:
    - num_edges
    - S2DensityTree::InitToShapeDensity
    - dimension
    - num_chains
    - ABSL_LOG
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::InitToVertexDensity(const S2ShapeIndex& index,\n
      \                                       int64_t approximate_size_bytes,\n                                        int
      max_level,\n                                        S2Error* absl_nonnull error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:239,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2density_tree.cc:242,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:242,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree.cc:244,1
    - Dst: BreadthFirstTreeBuilder::Build
      Src: /src/s2geometry/src/s2/s2density_tree.cc:248,1
    - Dst: GetCell
      Src: /src/s2geometry/src/s2/s2density_tree.cc:254,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:255,1
    - Dst: Cell*::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:259,1
    - Dst: Cell*::has_children
      Src: /src/s2geometry/src/s2/s2density_tree.cc:260,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2density_tree.cc:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ' trees'
    - approximate_size_bytes
    - max_level
    - absl_nonnull
    argTypes:
    - vector<const S2DensityTree*>
    - int64_t
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 268
    functionName: S2DensityTree::InitToSumDensity
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 2
    functionsReached:
    - size
    - vector::reserve
    - min
    - ok
    - BreadthFirstTreeBuilder::Build
    - Cell*::has_children
    - S2Error::Ok
    - vector::emplace_back
    - Cell*::weight
    - GetCell
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::InitToSumDensity(vector<const S2DensityTree*>&
      trees,\n                                     int64_t approximate_size_bytes,\n
      \                                    int max_level,\n                                     S2Error*
      absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:273,1
    - Dst: S2DensityTree::VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree.cc:278,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree.cc:280,1
    - Dst: TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree.cc:284,1
    - Dst: weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:284,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:289,1
    - Dst: TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree.cc:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' trees'
    - max_level
    - absl_nonnull
    argTypes:
    - vector<const S2DensityTree*>
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 296
    functionName: S2DensityTree::InitToSumDensity
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 2
    functionsReached:
    - S2DensityTree::VisitCells
    - level
    - weight
    - TreeEncoder::Put
    - TreeEncoder::Build
    - S2Error::Ok
    - ok
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::InitToSumDensity(vector<const S2DensityTree*>&
      trees,\n                                     int max_level,\n                                     S2Error*
      absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:300,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:302,1
    - Dst: S2DensityTree::VisitRecursive
      Src: /src/s2geometry/src/s2/s2density_tree.cc:308,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree.cc:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' visitor_fn'
    - absl_nonnull
    argTypes:
    - CellVisitor
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 314
    functionName: S2DensityTree::VisitCells
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 4
    functionsReached:
    - size
    - S2CellId::FromFace
    - S2Error::Ok
    - S2DensityTree::VisitRecursive
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::VisitCells(const CellVisitor& visitor_fn,\n                               S2Error*
      absl_nonnull error) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/s2geometry/src/s2/s2density_tree.cc:319,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:319,1
    - Dst: Decoder::skip
      Src: /src/s2geometry/src/s2/s2density_tree.cc:320,1
    - Dst: Cell::Decode
      Src: /src/s2geometry/src/s2/s2density_tree.cc:323,1
    - Dst: visitor_fn
      Src: /src/s2geometry/src/s2/s2density_tree.cc:328,1
    - Dst: Cell::child_offset
      Src: /src/s2geometry/src/s2/s2density_tree.cc:339,1
    - Dst: S2DensityTree::VisitRecursive
      Src: /src/s2geometry/src/s2/s2density_tree.cc:344,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree.cc:344,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - ' visitor_fn'
    - cell_id
    - position
    - absl_nonnull
    argTypes:
    - CellVisitor
    - S2CellId
    - int64_t
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 350
    functionName: S2DensityTree::VisitRecursive
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 2
    functionsReached:
    - visitor_fn
    - Cell::child_offset
    - size
    - data
    - Decoder::skip
    - S2DensityTree::VisitRecursive
    - Cell::Decode
    - S2CellId::child
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::VisitRecursive(const CellVisitor& visitor_fn,\n
      \                                  S2CellId cell_id, int64_t position,\n                                   S2Error*
      absl_nonnull error) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:355,1
    - Dst: DecodedPath*::GetCell
      Src: /src/s2geometry/src/s2/s2density_tree.cc:357,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:358,1
    - Dst: Cell*::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cell_id
    - cell_path
    - absl_nonnull
    argTypes:
    - S2CellId
    - DecodedPath*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: S2DensityTree::GetCellWeight
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - ok
    - Cell*::weight
    - DecodedPath*::GetCell
    - S2Error::Ok
    linkageType: ''
    returnType: int64_t
    signature: "int64_t S2DensityTree::GetCellWeight(const S2CellId cell_id,\n                                     DecodedPath*
      cell_path,\n                                     S2Error* absl_nonnull error)
      const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:368,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2density_tree.cc:369,1
    - Dst: DecodedPath*::GetCell
      Src: /src/s2geometry/src/s2/s2density_tree.cc:371,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:372,1
    - Dst: Cell*::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:376,1
    - Dst: S2DensityTree::GetNormalCellWeight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cell_id
    - cell_path
    - absl_nonnull
    argTypes:
    - S2CellId
    - DecodedPath*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 382
    functionName: S2DensityTree::GetNormalCellWeight
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 1
    functionsReached:
    - DecodedPath*::GetCell
    - Cell*::weight
    - S2Error::Ok
    - S2DensityTree::GetNormalCellWeight
    - ok
    - ABSL_DCHECK
    linkageType: ''
    returnType: int64_t
    signature: "int64_t S2DensityTree::GetNormalCellWeight(const S2CellId cell_id,\n
      \                                          DecodedPath* cell_path,\n                                           S2Error*
      absl_nonnull error) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Node::parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:391,1
    - Dst: Node::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:392,1
    - Dst: Node::parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:393,1
    - Dst: Node::child
      Src: /src/s2geometry/src/s2/s2density_tree.cc:397,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2density_tree.cc:400,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2density_tree.cc:403,1
    - Dst: Node::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - cell_id
    - ' cell'
    - cell_path
    - absl_nonnull
    argTypes:
    - S2CellId
    - Cell
    - DecodedPath*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 404
    functionName: S2DensityTree::GetNormalCellWeight
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 1
    functionsReached:
    - Node::weight
    - MathUtil::Round<int64_t>
    - static_cast<double>
    - Node::parent
    - Node::child
    linkageType: ''
    returnType: int64_t
    signature: "int64_t S2DensityTree::GetNormalCellWeight(const S2CellId cell_id,\n
      \                                          const Cell& cell,\n                                           DecodedPath*
      cell_path,\n                                           S2Error* absl_nonnull
      error) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:408,1
    - Dst: S2DensityTree::VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree.cc:421,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:423,1
    - Dst: weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:427,1
    - Dst: has_children
      Src: /src/s2geometry/src/s2/s2density_tree.cc:427,1
    - Dst: btree_set::insert
      Src: /src/s2geometry/src/s2/s2density_tree.cc:431,1
    - Dst: Node
      Src: /src/s2geometry/src/s2/s2density_tree.cc:431,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:435,1
    - Dst: btree_set::empty
      Src: /src/s2geometry/src/s2/s2density_tree.cc:443,1
    - Dst: std::prev
      Src: /src/s2geometry/src/s2/s2density_tree.cc:444,1
    - Dst: btree_set::end
      Src: /src/s2geometry/src/s2/s2density_tree.cc:444,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2density_tree.cc:444,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:449,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:449,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:450,1
    - Dst: btree_set::empty
      Src: /src/s2geometry/src/s2/s2density_tree.cc:454,1
    - Dst: std::prev
      Src: /src/s2geometry/src/s2/s2density_tree.cc:455,1
    - Dst: btree_set::end
      Src: /src/s2geometry/src/s2/s2density_tree.cc:455,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2density_tree.cc:455,1
    - Dst: btree_set::erase
      Src: /src/s2geometry/src/s2/s2density_tree.cc:456,1
    - Dst: std::prev
      Src: /src/s2geometry/src/s2/s2density_tree.cc:456,1
    - Dst: btree_set::end
      Src: /src/s2geometry/src/s2/s2density_tree.cc:456,1
    - Dst: btree_set::insert
      Src: /src/s2geometry/src/s2/s2density_tree.cc:461,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:465,1
    - Dst: Node::valid
      Src: /src/s2geometry/src/s2/s2density_tree.cc:466,1
    - Dst: Node::GetNormalCellWeight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:466,1
    - Dst: Node::HasMultipleWeightedChildren
      Src: /src/s2geometry/src/s2/s2density_tree.cc:467,1
    - Dst: Node::VisitWeightedChildren
      Src: /src/s2geometry/src/s2/s2density_tree.cc:468,1
    - Dst: btree_set::contains
      Src: /src/s2geometry/src/s2/s2density_tree.cc:469,1
    - Dst: Node::parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:470,1
    - Dst: Node::VisitWeightedChildren
      Src: /src/s2geometry/src/s2/s2density_tree.cc:471,1
    - Dst: btree_set::erase
      Src: /src/s2geometry/src/s2/s2density_tree.cc:472,1
    - Dst: btree_set::insert
      Src: /src/s2geometry/src/s2/s2density_tree.cc:475,1
    - Dst: S2DensityTree::GetNormalCellWeight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:484,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2density_tree.cc:486,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2density_tree.cc:487,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2density_tree.cc:487,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree.cc:487,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2density_tree.cc:488,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2density_tree.cc:492,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2density_tree.cc:492,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2density_tree.cc:496,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2density_tree.cc:497,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2density_tree.cc:497,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree.cc:497,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 2
    argNames:
    - max_weight
    - absl_nonnull
    argTypes:
    - int64_t
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 406
    functionDepth: 4
    functionLinenumber: 406
    functionLinenumberEnd: 501
    functionName: S2DensityTree::GetPartitioning
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - btree_set::erase
    - weight
    - Node
    - Node::VisitWeightedChildren
    - Node::parent
    - ok
    - Node::HasMultipleWeightedChildren
    - has_children
    - btree_set::end
    - Node::valid
    - S2CellUnion::FromVerbatim
    - btree_set::contains
    - parent
    - vector::push_back
    - std::move
    - vector::empty
    - btree_set::insert
    - cell_id
    - Node::GetNormalCellWeight
    - S2DensityTree::GetNormalCellWeight
    - btree_set::empty
    - vector::clear
    - S2DensityTree::VisitCells
    - std::prev
    - S2Error::Ok
    linkageType: ''
    returnType: vector<S2CellUnion>
    signature: "vector<S2CellUnion> S2DensityTree::GetPartitioning(\n    int64_t max_weight,
      S2Error* absl_nonnull error) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree.cc:507,1
    - Dst: btree_map::insert
      Src: /src/s2geometry/src/s2/s2density_tree.cc:509,1
    - Dst: weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 515
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - btree_map::insert
    - VisitCells
    - weight
    linkageType: ''
    returnType: btree_map<S2CellId, int64_t>
    signature: btree_map<S2CellId, int64_t> const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/s2density_tree.cc:518,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2density_tree.cc:518,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2density_tree.cc:519,1
    - Dst: S2DensityTree::DecodeHeader
      Src: /src/s2geometry/src/s2/s2density_tree.cc:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 525
    functionName: S2DensityTree::Init
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - Decoder*::avail
    - S2DensityTree::DecodeHeader
    - Decoder*::skip
    - empty
    linkageType: ''
    returnType: bool
    signature: bool S2DensityTree::Init(Decoder* decoder, S2Error& error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::ensure_allowed
      Src: /src/s2geometry/src/s2/s2density_tree.cc:529,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2density_tree.cc:530,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:530,1
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2density_tree.cc:532,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2density_tree.cc:532,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:532,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/s2density_tree.cc:534,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2density_tree.cc:534,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 535
    functionName: S2DensityTree::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 1
    functionsReached:
    - size
    - Encoder*::putn
    - ABSL_CHECK_GE
    - data
    - Encoder*::ensure_allowed
    - Encoder*::Ensure
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: void S2DensityTree::Encode(Encoder* encoder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VisitIntersectingShapes
      Src: /src/s2geometry/src/s2/s2density_tree.cc:544,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2density_tree.cc:545,1
    - Dst: weight_fn_
      Src: /src/s2geometry/src/s2/s2density_tree.cc:546,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2density_tree.cc:547,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2density_tree.cc:548,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2density_tree.cc:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - cell_id
    - absl_nonnull
    argTypes:
    - S2CellId
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 556
    functionName: "S2DensityTree::IndexCellWeightFunction::WeighCell(\n    const S2CellId
      cell_id, S2Error* absl_nonnull)"
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - min
    - S2Cell
    - weight_fn_
    - VisitIntersectingShapes
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int64_t
    signature: "int64_t S2DensityTree::IndexCellWeightFunction::WeighCell(\n    const
      S2CellId cell_id, S2Error* absl_nonnull)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2density_tree.cc:564,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2density_tree.cc:565,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2density_tree.cc:570,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2density_tree.cc:573,1
    - Dst: first::parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:576,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2density_tree.cc:577,1
    - Dst: weight_fn
      Src: /src/s2geometry/src/s2/s2density_tree.cc:579,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:580,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2density_tree.cc:592,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2density_tree.cc:593,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2density_tree.cc:596,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2density_tree.cc:599,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2density_tree.cc:606,1
    - Dst: Put
      Src: /src/s2geometry/src/s2/s2density_tree.cc:609,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2density_tree.cc:609,1
    - Dst: TreeEncoder::EstimateSize
      Src: /src/s2geometry/src/s2/s2density_tree.cc:610,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree.cc:614,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2density_tree.cc:616,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2density_tree.cc:619,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - ' weight_fn'
    - tree
    - absl_nonnull
    argTypes:
    - CellWeightFunction
    - S2DensityTree*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 621
    functionName: "S2DensityTree::BreadthFirstTreeBuilder::Build(\n    const CellWeightFunction&
      weight_fn, S2DensityTree* tree,\n    S2Error* absl_nonnull error)"
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - first::parent
    - S2CellId::range_min
    - Build
    - vector::back
    - ok
    - S2CellId::range_max
    - weight_fn
    - TreeEncoder::EstimateSize
    - min
    - S2CellId::next
    - S2CellId::Sentinel
    - vector::push_back
    - Put
    - ABSL_DCHECK_LE
    - std::move
    - vector::empty
    - vector::clear
    - S2CellId::Begin
    - S2CellId::End
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::BreadthFirstTreeBuilder::Build(\n    const CellWeightFunction&
      weight_fn, S2DensityTree* tree,\n    S2Error* absl_nonnull error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_varint64
      Src: /src/s2geometry/src/s2/s2density_tree.cc:628,1
    - Dst: S2Error::Internal
      Src: /src/s2geometry/src/s2/s2density_tree.cc:629,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2density_tree.cc:629,1
    - Dst: pos
      Src: /src/s2geometry/src/s2/s2density_tree.cc:630,1
    - Dst: fill
      Src: /src/s2geometry/src/s2/s2density_tree.cc:640,1
    - Dst: std::bitset::to_ulong
      Src: /src/s2geometry/src/s2/s2density_tree.cc:644,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:650,1
    - Dst: std::bitset::reset
      Src: /src/s2geometry/src/s2/s2density_tree.cc:654,1
    - Dst: std::bitset::to_ulong
      Src: /src/s2geometry/src/s2/s2density_tree.cc:655,1
    - Dst: get_varint64
      Src: /src/s2geometry/src/s2/s2density_tree.cc:659,1
    - Dst: S2Error::Internal
      Src: /src/s2geometry/src/s2/s2density_tree.cc:660,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2density_tree.cc:660,1
    - Dst: pos
      Src: /src/s2geometry/src/s2/s2density_tree.cc:661,1
    - Dst: pos
      Src: /src/s2geometry/src/s2/s2density_tree.cc:674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - ' decoder'
    - absl_nonnull
    argTypes:
    - Decoder
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 679
    functionName: "S2DensityTree::Cell::Decode(Decoder& decoder,\n                                 S2Error*
      absl_nonnull error)"
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - std::bitset::reset
    - get_varint64
    - size
    - absl::StrCat
    - std::bitset::to_ulong
    - pos
    - fill
    - S2Error::Internal
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::Cell::Decode(Decoder& decoder,\n                                 S2Error*
      absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 684
    functionName: S2DensityTree::Cell::Clear()
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2DensityTree::Cell::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree*::encoded_::data
      Src: /src/s2geometry/src/s2/s2density_tree.cc:688,1
    - Dst: S2DensityTree*::encoded_::size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:688,1
    - Dst: Decoder::skip
      Src: /src/s2geometry/src/s2/s2density_tree.cc:689,1
    - Dst: Decode
      Src: /src/s2geometry/src/s2/s2density_tree.cc:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tree
    - pos
    - absl_nonnull
    argTypes:
    - S2DensityTree*
    - uint64_t
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 691
    functionName: "S2DensityTree::Cell::DecodeAt(const S2DensityTree* tree, uint64_t
      pos,\n                                   S2Error* absl_nonnull error)"
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - S2DensityTree*::encoded_::size
    - S2DensityTree*::encoded_::data
    - Decode
    - Decoder::skip
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::Cell::DecodeAt(const S2DensityTree* tree, uint64_t
      pos,\n                                   S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cell_id
    - weight
    argTypes:
    - S2CellId
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 716
    functionName: S2DensityTree::TreeEncoder::Put(const S2CellId cell_id, int64_t
      weight)
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2DensityTree::TreeEncoder::Put(const S2CellId cell_id, int64_t
      weight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReversibleBytes::ReversibleBytes
      Src: /src/s2geometry/src/s2/s2density_tree.cc:719,1
    - Dst: EncodeTreeReversed
      Src: /src/s2geometry/src/s2/s2density_tree.cc:720,1
    - Dst: ReversibleBytes::AppendBytes
      Src: /src/s2geometry/src/s2/s2density_tree.cc:721,1
    - Dst: ReversibleBytes::ReverseFrom
      Src: /src/s2geometry/src/s2/s2density_tree.cc:722,1
    - Dst: ReversibleBytes::size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:722,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:722,1
    - Dst: ReversibleBytes::Reversed
      Src: /src/s2geometry/src/s2/s2density_tree.cc:724,1
    - Dst: string::data
      Src: /src/s2geometry/src/s2/s2density_tree.cc:725,1
    - Dst: string::size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:725,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2density_tree.cc:727,1
    - Dst: S2DensityTree*::Init
      Src: /src/s2geometry/src/s2/s2density_tree.cc:728,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2density_tree.cc:729,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2density_tree.cc:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tree
    argTypes:
    - S2DensityTree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 730
    functionName: S2DensityTree::TreeEncoder::Build(S2DensityTree* tree)
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - string::size
    - ReversibleBytes::ReverseFrom
    - size
    - S2DensityTree*::Init
    - string::data
    - ReversibleBytes::ReversibleBytes
    - ReversibleBytes::Reversed
    - ReversibleBytes::AppendBytes
    - S2Error::S2Error
    - EncodeTreeReversed
    - ABSL_DCHECK
    - ReversibleBytes::size
    linkageType: ''
    returnType: void
    signature: void S2DensityTree::TreeEncoder::Build(S2DensityTree* tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2density_tree.cc:737,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2density_tree.cc:739,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2density_tree.cc:739,1
    - Dst: EncodeSubtreeReversed
      Src: /src/s2geometry/src/s2/s2density_tree.cc:742,1
    - Dst: ReversedCellEncoder::Next
      Src: /src/s2geometry/src/s2/s2density_tree.cc:743,1
    - Dst: ReversedCellEncoder::Finish
      Src: /src/s2geometry/src/s2/s2density_tree.cc:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - output
    argTypes:
    - ReversibleBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 749
    functionName: S2DensityTree::TreeEncoder::EncodeTreeReversed(ReversibleBytes*
      output)
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - end
    - find
    - ReversedCellEncoder::Next
    - S2CellId::FromFace
    - ReversedCellEncoder::Finish
    - EncodeSubtreeReversed
    linkageType: ''
    returnType: void
    signature: void S2DensityTree::TreeEncoder::EncodeTreeReversed(ReversibleBytes*
      output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2density_tree.cc:756,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree.cc:758,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2density_tree.cc:760,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2density_tree.cc:760,1
    - Dst: EncodeSubtreeReversed
      Src: /src/s2geometry/src/s2/s2density_tree.cc:763,1
    - Dst: ReversedCellEncoder::Next
      Src: /src/s2geometry/src/s2/s2density_tree.cc:764,1
    - Dst: ReversedCellEncoder::Finish
      Src: /src/s2geometry/src/s2/s2density_tree.cc:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - cell_id
    - weight
    - output
    argTypes:
    - S2CellId
    - int64_t
    - ReversibleBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 771
    functionName: "S2DensityTree::TreeEncoder::EncodeSubtreeReversed(\n    const S2CellId
      cell_id, int64_t weight, ReversibleBytes* output)"
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_leaf
    - end
    - find
    - S2CellId::child
    - ReversedCellEncoder::Next
    - ReversedCellEncoder::Finish
    - EncodeSubtreeReversed
    linkageType: ''
    returnType: void
    signature: "void S2DensityTree::TreeEncoder::EncodeSubtreeReversed(\n    const
      S2CellId cell_id, int64_t weight, ReversibleBytes* output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Length64
      Src: /src/s2geometry/src/s2/s2density_tree.cc:776,1
    - Dst: Varint::Length64
      Src: /src/s2geometry/src/s2/s2density_tree.cc:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - weight
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 778
    functionName: S2DensityTree::TreeEncoder::EstimateSize(int64_t weight)
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - Varint::Length64
    linkageType: ''
    returnType: int
    signature: int S2DensityTree::TreeEncoder::EstimateSize(int64_t weight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2density_tree.cc:781,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2density_tree.cc:781,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2density_tree.cc:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 782
    functionName: S2DensityTree::TreeEncoder::Clear()
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - end
    - erase
    - begin
    linkageType: ''
    returnType: void
    signature: void S2DensityTree::TreeEncoder::Clear()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2density_tree.cc:789,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:789,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2density_tree.cc:790,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:795,1
    - Dst: Decoder*::getn
      Src: /src/s2geometry/src/s2/s2density_tree.cc:796,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/s2density_tree.cc:797,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2density_tree.cc:798,1
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/s2density_tree.cc:805,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2density_tree.cc:806,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2density_tree.cc:806,1
    - Dst: Decoder*::pos
      Src: /src/s2geometry/src/s2/s2density_tree.cc:807,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2density_tree.cc:817,1
    - Dst: std::bitset::size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:820,1
    - Dst: std::bitset::test
      Src: /src/s2geometry/src/s2/s2density_tree.cc:821,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2density_tree.cc:822,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2density_tree.cc:825,1
    - Dst: std::bitset::count
      Src: /src/s2geometry/src/s2/s2density_tree.cc:825,1
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/s2density_tree.cc:827,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2density_tree.cc:828,1
    - Dst: Decoder*::pos
      Src: /src/s2geometry/src/s2/s2density_tree.cc:829,1
    - Dst: DecodedFaces*::at
      Src: /src/s2geometry/src/s2/s2density_tree.cc:842,1
    - Dst: Decoder*::pos
      Src: /src/s2geometry/src/s2/s2density_tree.cc:842,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - decoder
    - decoded_faces
    - absl_nonnull
    argTypes:
    - Decoder*
    - DecodedFaces*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 846
    functionName: S2DensityTree::DecodeHeader
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 1
    functionsReached:
    - DecodedFaces*::at
    - vector::push_back
    - size
    - string_view
    - absl::StrCat
    - vector::reserve
    - std::bitset::size
    - S2Error::InvalidArgument
    - Decoder*::pos
    - std::bitset::test
    - Decoder*::getn
    - Decoder*::get_varint64
    - ABSL_LOG
    - Decoder*::avail
    - std::bitset::count
    - vector::size
    linkageType: ''
    returnType: bool
    signature: "bool S2DensityTree::DecodeHeader(Decoder* decoder, DecodedFaces* decoded_faces,\n
      \                                S2Error* absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: face
      Src: /src/s2geometry/src/s2/s2density_tree.cc:852,1
    - Dst: S2CellId::face
      Src: /src/s2geometry/src/s2/s2density_tree.cc:852,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:853,1
    - Dst: LoadFace
      Src: /src/s2geometry/src/s2/s2density_tree.cc:854,1
    - Dst: S2CellId::face
      Src: /src/s2geometry/src/s2/s2density_tree.cc:854,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:855,1
    - Dst: LoadCell
      Src: /src/s2geometry/src/s2/s2density_tree.cc:861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cell_id
    - absl_nonnull
    argTypes:
    - S2CellId
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 862
    functionName: "* S2DensityTree::DecodedPath::GetCell(\n    const S2CellId cell_id,
      S2Error* absl_nonnull error)"
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - LoadFace
    - S2CellId::face
    - face
    - S2CellId::parent
    - LoadCell
    - ok
    linkageType: ''
    returnType: S2DensityTree::Cell
    signature: "S2DensityTree::Cell * S2DensityTree::DecodedPath::GetCell(\n    const
      S2CellId cell_id, S2Error* absl_nonnull error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2DensityTree::Cell*::Clear
      Src: /src/s2geometry/src/s2/s2density_tree.cc:870,1
    - Dst: S2DensityTree::Cell*::DecodeAt
      Src: /src/s2geometry/src/s2/s2density_tree.cc:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - face
    - absl_nonnull
    argTypes:
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 874
    functionName: "S2DensityTree::DecodedPath::LoadFace(int face,\n                                          S2Error*
      absl_nonnull error)"
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - S2DensityTree::Cell*::Clear
    - S2DensityTree::Cell*::DecodeAt
    linkageType: ''
    returnType: void
    signature: "void S2DensityTree::DecodedPath::LoadFace(int face,\n                                          S2Error*
      absl_nonnull error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetCommonAncestorLevel
      Src: /src/s2geometry/src/s2/s2density_tree.cc:878,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2density_tree.cc:879,1
    - Dst: S2DensityTree::Cell*::child_offset
      Src: /src/s2geometry/src/s2/s2density_tree.cc:888,1
    - Dst: S2CellId::child_position
      Src: /src/s2geometry/src/s2/s2density_tree.cc:888,1
    - Dst: S2DensityTree::Cell*::has_children
      Src: /src/s2geometry/src/s2/s2density_tree.cc:897,1
    - Dst: S2DensityTree::Cell*::Clear
      Src: /src/s2geometry/src/s2/s2density_tree.cc:900,1
    - Dst: S2DensityTree::Cell*::DecodeAt
      Src: /src/s2geometry/src/s2/s2density_tree.cc:903,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - cell_id
    - absl_nonnull
    argTypes:
    - S2CellId
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 910
    functionName: "* S2DensityTree::DecodedPath::LoadCell(\n    S2CellId cell_id,
      S2Error* absl_nonnull error)"
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - S2CellId::child_position
    - S2CellId::level
    - S2DensityTree::Cell*::child_offset
    - S2CellId::parent
    - GetCommonAncestorLevel
    - S2DensityTree::Cell*::Clear
    - S2DensityTree::Cell*::has_children
    - S2DensityTree::Cell*::DecodeAt
    linkageType: ''
    returnType: S2DensityTree::Cell
    signature: "S2DensityTree::Cell * S2DensityTree::DecodedPath::LoadCell(\n    S2CellId
      cell_id, S2Error* absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:913,1
    - Dst: VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree.cc:918,1
    - Dst: weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:920,1
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2density_tree.cc:921,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:922,1
    - Dst: DecodedPath::GetCell
      Src: /src/s2geometry/src/s2/s2density_tree.cc:926,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2density_tree.cc:926,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:927,1
    - Dst: Cell*::weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:930,1
    - Dst: static_cast<int64_t>
      Src: /src/s2geometry/src/s2/s2density_tree.cc:936,1
    - Dst: TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree.cc:943,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree.cc:946,1
    - Dst: TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree.cc:947,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 949
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - is_face
    - weight
    - static_cast<int64_t>
    - TreeEncoder::Put
    - S2DensityTree::S2DensityTree
    - TreeEncoder::Build
    - VisitCells
    - DecodedPath::GetCell
    - S2Error::Ok
    - Cell*::weight
    - ok
    - parent
    - S2CellId::child
    linkageType: ''
    returnType: S2DensityTree
    signature: S2DensityTree const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree.cc:954,1
    - Dst: has_children
      Src: /src/s2geometry/src/s2/s2density_tree.cc:956,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2density_tree.cc:959,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2density_tree.cc:964,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2density_tree.cc:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 965
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 0
    functionsReached:
    - has_children
    - std::move
    - VisitCells
    - std::vector::emplace_back
    - S2CellUnion::FromVerbatim
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::Ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:970,1
    - Dst: Leaves
      Src: /src/s2geometry/src/s2/s2density_tree.cc:973,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:974,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree.cc:975,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2density_tree.cc:984,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2density_tree.cc:984,1
    - Dst: S2CellUnion::Expand
      Src: /src/s2geometry/src/s2/s2density_tree.cc:991,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2density_tree.cc:992,1
    - Dst: S2DensityTree::VisitCells
      Src: /src/s2geometry/src/s2/s2density_tree.cc:996,1
    - Dst: absl::flat_hash_map::try_emplace
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1002,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1004,1
    - Dst: weight
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1004,1
    - Dst: has_children
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1009,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1009,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1025,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1025,1
    - Dst: AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1032,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1034,1
    - Dst: absl::flat_hash_map::try_emplace
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1039,1
    - Dst: absl::flat_hash_map::try_emplace
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1041,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1043,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1046,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1053,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1054,1
    - Dst: TreeEncoder::Put
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1060,1
    - Dst: S2DensityTree::S2DensityTree
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1063,1
    - Dst: TreeEncoder::Build
      Src: /src/s2geometry/src/s2/s2density_tree.cc:1064,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - ' tree'
    - radius
    - max_level_diff
    - absl_nonnull
    argTypes:
    - S2DensityTree
    - S1Angle
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 967
    functionDepth: 4
    functionLinenumber: 967
    functionLinenumberEnd: 1066
    functionName: S2DensityTree::Dilate
    functionSourceFile: /src/s2geometry/src/s2/s2density_tree.cc
    functionUses: 5
    functionsReached:
    - weight
    - TreeEncoder::Put
    - TreeEncoder::Build
    - absl::flat_hash_map::try_emplace
    - std::max
    - AppendAllNeighbors
    - ok
    - GetLevelForMinValue
    - has_children
    - min
    - parent
    - S2CellUnion::Intersects
    - level
    - S2DensityTree::S2DensityTree
    - S1Angle::radians
    - S2DensityTree::VisitCells
    - Leaves
    - S2CellUnion::Difference
    - S2Error::Ok
    - S2CellUnion::Expand
    linkageType: ''
    returnType: S2DensityTree
    signature: "S2DensityTree S2DensityTree::Dilate(const S2DensityTree& tree, S1Angle
      radius,\n                                    int max_level_diff,\n                                    S2Error*
      absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: S2CrossingEdgeQuery::S2CrossingEdgeQuery
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CrossingEdgeQuery(const S2CrossingEdgeQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: operator=(const S2CrossingEdgeQuery&)
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2CrossingEdgeQuery&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: '& index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex & index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CrossingEdgeQuery::Init
      Src: /src/s2geometry/src/s2/s2crossing_edge_query.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: S2CrossingEdgeQuery::S2CrossingEdgeQuery
    functionSourceFile: /src/s2geometry/src/s2/s2crossing_edge_query.h
    functionUses: 0
    functionsReached:
    - S2CrossingEdgeQuery::Init
    linkageType: ''
    returnType: void
    signature: void S2CrossingEdgeQuery::S2CrossingEdgeQuery(const S2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s1angle.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: S1Angle::S1Angle
    functionSourceFile: /src/s2geometry/src/s2/s1angle.cc
    functionUses: 19
    functionsReached:
    - Angle
    linkageType: ''
    returnType: void
    signature: void S1Angle::S1Angle(const S2Point& x, const S2Point& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s1angle.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: S1Angle::S1Angle
    functionSourceFile: /src/s2geometry/src/s2/s1angle.cc
    functionUses: 19
    functionsReached:
    - GetDistance
    linkageType: ''
    returnType: void
    signature: void S1Angle::S1Angle(const S2LatLng& x, const S2LatLng& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Normalize
      Src: /src/s2geometry/src/s2/s1angle.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: S1Angle::Normalized
    functionSourceFile: /src/s2geometry/src/s2/s1angle.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Normalize
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S1Angle::Normalized() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s1angle.cc:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: S1Angle::Normalize
    functionSourceFile: /src/s2geometry/src/s2/s1angle.cc
    functionUses: 1
    functionsReached:
    - remainder
    linkageType: ''
    returnType: void
    signature: void S1Angle::Normalize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Ensure
      Src: /src/s2geometry/src/s2/s1angle.cc:50,1
    - Dst: putdouble
      Src: /src/s2geometry/src/s2/s1angle.cc:51,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1angle.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' encoder'
    - ' angle'
    argTypes:
    - Encoder
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: S1Angle::Coder::Encode(Encoder& encoder, const S1Angle& angle) const
    functionSourceFile: /src/s2geometry/src/s2/s1angle.cc
    functionUses: 0
    functionsReached:
    - putdouble
    - Ensure
    - radians
    linkageType: ''
    returnType: void
    signature: void S1Angle::Coder::Encode(Encoder& encoder, const S1Angle& angle)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avail
      Src: /src/s2geometry/src/s2/s1angle.cc:56,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s1angle.cc:57,1
    - Dst: Radians
      Src: /src/s2geometry/src/s2/s1angle.cc:60,1
    - Dst: getdouble
      Src: /src/s2geometry/src/s2/s1angle.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' decoder'
    - ' angle'
    - ' error'
    argTypes:
    - Decoder
    - S1Angle
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: "S1Angle::Coder::Decode(Decoder& decoder, S1Angle& angle,\n                            S2Error&
      error) const"
    functionSourceFile: /src/s2geometry/src/s2/s1angle.cc
    functionUses: 0
    functionsReached:
    - S2Error::DataLoss
    - Radians
    - avail
    - getdouble
    linkageType: ''
    returnType: bool
    signature: "bool S1Angle::Coder::Decode(Decoder& decoder, S1Angle& angle,\n                            S2Error&
      error) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StreamFormat
      Src: /src/s2geometry/src/s2/s1angle.cc:65,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s1angle.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - a
    argTypes:
    - std::ostream
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: '& operator<<(std::ostream& os, S1Angle a)'
    functionSourceFile: /src/s2geometry/src/s2/s1angle.cc
    functionUses: 0
    functionsReached:
    - absl::StreamFormat
    - S1Angle::degrees
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, S1Angle a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_max_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:29,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:29,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:29,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - min_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: "S2FurthestEdgeQuery::Options::set_conservative_min_distance(\n
      \   S1ChordAngle min_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 0
    functionsReached:
    - Distance
    - S1ChordAngle::PlusError
    - S2::GetUpdateMinDistanceMaxError
    - set_max_distance
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::Options::set_conservative_min_distance(\n
      \   S1ChordAngle min_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_conservative_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:35,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - min_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: "S2FurthestEdgeQuery::Options::set_conservative_min_distance(\n
      \   S1Angle min_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle
    - set_conservative_min_distance
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::Options::set_conservative_min_distance(\n
      \   S1Angle min_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: S2FurthestEdgeQuery::PointTarget::max_brute_force_index_size() const
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2FurthestEdgeQuery::PointTarget::max_brute_force_index_size()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: S2FurthestEdgeQuery::EdgeTarget::max_brute_force_index_size() const
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2FurthestEdgeQuery::EdgeTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: S2FurthestEdgeQuery::CellTarget::max_brute_force_index_size() const
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2FurthestEdgeQuery::CellTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: S2FurthestEdgeQuery::ShapeIndexTarget::max_brute_force_index_size()
      const
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2FurthestEdgeQuery::ShapeIndexTarget::max_brute_force_index_size()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: S2FurthestEdgeQuery::S2FurthestEdgeQuery
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2FurthestEdgeQuery::S2FurthestEdgeQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: S2FurthestEdgeQuery::~S2FurthestEdgeQuery()
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2FurthestEdgeQuery::~S2FurthestEdgeQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2FurthestEdgeQuery::Result>*::clear
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:79,1
    - Dst: FindClosestEdges
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:80,1
    - Dst: vector<S2FurthestEdgeQuery::Result>*::push_back
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:81,1
    - Dst: S2ChainInterpolationQuery::Result::Result
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - target
    - results
    argTypes:
    - Target*
    - vector<S2FurthestEdgeQuery::Result>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: S2FurthestEdgeQuery::FindFurthestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 5
    functionsReached:
    - vector<S2FurthestEdgeQuery::Result>*::clear
    - vector<S2FurthestEdgeQuery::Result>*::push_back
    - S2ChainInterpolationQuery::Result::Result
    - FindClosestEdges
    linkageType: ''
    returnType: void
    signature: "void S2FurthestEdgeQuery::FindFurthestEdges(\n    Target* target,
      vector<S2FurthestEdgeQuery::Result>* results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:89,1
    - Dst: FindClosestEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:90,1
    - Dst: S2ChainInterpolationQuery::Result::Result
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - target
    argTypes:
    - Target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: S2FurthestEdgeQuery::FindFurthestEdge
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 4
    functionsReached:
    - Options::set_max_results
    - FindClosestEdge
    - S2ChainInterpolationQuery::Result::Result
    linkageType: ''
    returnType: S2FurthestEdgeQuery::Result
    signature: "S2FurthestEdgeQuery::Result S2FurthestEdgeQuery::FindFurthestEdge(\n
      \   Target* target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:98,1
    - Dst: Options::set_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:99,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:100,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:100,1
    - Dst: FindClosestEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - target
    - limit
    argTypes:
    - Target*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: S2FurthestEdgeQuery::IsDistanceGreater
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 3
    functionsReached:
    - Options::set_max_error
    - Options::set_min_distance
    - Options::set_max_results
    - FindClosestEdge
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: bool
    signature: "bool S2FurthestEdgeQuery::IsDistanceGreater(\n    Target* target,
      S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:108,1
    - Dst: Options::set_inclusive_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:109,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:110,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:110,1
    - Dst: FindClosestEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - target
    - limit
    argTypes:
    - Target*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: S2FurthestEdgeQuery::IsDistanceGreaterOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 2
    functionsReached:
    - Options::set_max_error
    - Options::set_inclusive_min_distance
    - Options::set_max_results
    - FindClosestEdge
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: bool
    signature: "bool S2FurthestEdgeQuery::IsDistanceGreaterOrEqual(\n    Target* target,
      S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:118,1
    - Dst: Options::set_conservative_min_distance
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:119,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:120,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:120,1
    - Dst: FindClosestEdge
      Src: /src/s2geometry/src/s2/s2furthest_edge_query.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - target
    - limit
    argTypes:
    - Target*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: S2FurthestEdgeQuery::IsConservativeDistanceGreaterOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2furthest_edge_query.cc
    functionUses: 2
    functionsReached:
    - Options::set_conservative_min_distance
    - Options::set_max_error
    - Options::set_max_results
    - FindClosestEdge
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: bool
    signature: "bool S2FurthestEdgeQuery::IsConservativeDistanceGreaterOrEqual(\n
      \   Target* target, S1ChordAngle limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' min'
    - ' max'
    - ' avg'
    argTypes:
    - Metric
    - Metric
    - Metric
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: MetricBundle::MetricBundle
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MetricBundle(const Metric& min, const Metric& max, const Metric&
      avg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: MetricBundle::MetricBundle
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MetricBundle(const MetricBundle&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: operator=(const MetricBundle&)
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const MetricBundle&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:53,1
    - Dst: min_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:53,1
    - Dst: avg_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:53,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:54,1
    - Dst: avg_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:54,1
    - Dst: max_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bundle'
    argTypes:
    - MetricBundle<dim>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: CheckMinMaxAvg
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached:
    - max_::deriv
    - EXPECT_LE
    - avg_::deriv
    - min_::deriv
    linkageType: ''
    returnType: void
    signature: void CheckMinMaxAvg(const MetricBundle<dim>& bundle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:60,1
    - Dst: min_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:60,1
    - Dst: min_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:60,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:61,1
    - Dst: max_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:61,1
    - Dst: max_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:61,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:62,1
    - Dst: avg_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:62,1
    - Dst: avg_::deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - MetricBundle<dim>
    - MetricBundle<dim>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: CheckLessOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached:
    - max_::deriv
    - EXPECT_LE
    - avg_::deriv
    - min_::deriv
    linkageType: ''
    returnType: void
    signature: "void CheckLessOrEqual(const MetricBundle<dim>& a,\n                             const
      MetricBundle<dim>& b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:74,1
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:75,1
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:76,1
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:77,1
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:78,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:82,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:83,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:83,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:83,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:84,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:85,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:85,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:85,1
    - Dst: CheckLessOrEqual
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:88,1
    - Dst: CheckLessOrEqual
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:89,1
    - Dst: CheckLessOrEqual
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:90,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:92,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:92,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:93,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:93,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:94,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:94,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:95,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:100,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:101,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:102,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:103,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:107,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:108,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:108,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:110,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:111,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:111,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:122,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:122,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:127,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:128,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:129,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:132,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:133,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:134,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:135,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:135,1
    - Dst: deriv
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:138,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:140,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:141,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:142,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:143,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:144,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:145,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:146,1
    - Dst: GetClosestLevel
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 148
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached:
    - deriv
    - CheckLessOrEqual
    - S1ChordAngle::is_infinity
    - GetLevelForMaxValue
    - clamp
    - GetClosestLevel
    - EXPECT_GE
    - pow
    - EXPECT_LE
    - EXPECT_EQ
    - CheckMinMaxAvg
    - GetLevelForMinValue
    linkageType: ''
    returnType: void
    signature: void TEST(S2, Metrics)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GTEST_SKIP
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:152,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:154,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:159,1
    - Dst: S2::LengthMetric::GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:159,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:160,1
    - Dst: S2::LengthMetric::GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:160,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:161,1
    - Dst: S2::LengthMetric::GetClosestLevel
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 162
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached:
    - S2::LengthMetric::GetLevelForMaxValue
    - S2::LengthMetric::GetClosestLevel
    - GTEST_SKIP
    - EXPECT_GE
    - S2::LengthMetric::GetLevelForMinValue
    - std::numeric_limits<double>::quiet_NaN
    linkageType: ''
    returnType: void
    signature: void TEST(LengthMetricTest, GetLevelOptModeDoesNotDieOnNaN)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GTEST_SKIP
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:166,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:168,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:173,1
    - Dst: S2::AreaMetric::GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:173,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:174,1
    - Dst: S2::AreaMetric::GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:174,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:175,1
    - Dst: S2::AreaMetric::GetClosestLevel
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached:
    - GTEST_SKIP
    - EXPECT_GE
    - std::numeric_limits<double>::quiet_NaN
    - S2::AreaMetric::GetLevelForMaxValue
    - S2::AreaMetric::GetLevelForMinValue
    - S2::AreaMetric::GetClosestLevel
    linkageType: ''
    returnType: void
    signature: void TEST(AreaMetricTest, GetLevelOptModeDoesNotDieOnNaN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:180,1
    - Dst: EXPECT_DEBUG_DEATH
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:182,1
    - Dst: S2::LengthMetric::GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached:
    - S2::LengthMetric::GetLevelForMaxValue
    - EXPECT_DEBUG_DEATH
    - std::numeric_limits<double>::quiet_NaN
    linkageType: ''
    returnType: void
    signature: void TEST(LengthMetricDeathTest, GetLevelDbgModeDiesOnNaN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:186,1
    - Dst: EXPECT_DEBUG_DEATH
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:188,1
    - Dst: S2::AreaMetric::GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2metrics_test.cc:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2metrics_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEBUG_DEATH
    - std::numeric_limits<double>::quiet_NaN
    - S2::AreaMetric::GetLevelForMaxValue
    linkageType: ''
    returnType: void
    signature: void TEST(AreaMetricDeathTest, GetLevelDbgModeDiesOnNaN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: S2Builder::Graph::VertexOutEdges::begin
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: Edge * begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: S2Builder::Graph::VertexOutEdges::end
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: Edge * end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: S2Builder::Graph::VertexOutEdges::size
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: S2Builder::Graph::VertexOutEdgeIds::Iterator::Iterator
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Iterator(EdgeId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: '& operator*() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EdgeId
    signature: EdgeId & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: '& operator++()'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iterator
    signature: Iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Iterator
      Src: /src/s2geometry/src/s2/s2builder_graph.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - Iterator
    linkageType: ''
    returnType: Iterator
    signature: Iterator operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: operator-(const Iterator& x) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t operator-(const Iterator& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: operator==(const Iterator& x) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Iterator& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: operator!=(const Iterator& x) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Iterator& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Iterator
      Src: /src/s2geometry/src/s2/s2builder_graph.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: S2Builder::Graph::VertexOutEdgeIds::begin
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - Iterator
    linkageType: ''
    returnType: Iterator
    signature: Iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Iterator
      Src: /src/s2geometry/src/s2/s2builder_graph.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: S2Builder::Graph::VertexOutEdgeIds::end
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - Iterator
    linkageType: ''
    returnType: Iterator
    signature: Iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: S2Builder::Graph::VertexOutEdgeIds::size
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: S2Builder::Graph::VertexOutMap::VertexOutMap
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VertexOutMap()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2builder_graph.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: S2Builder::Graph::VertexOutMap::VertexOutMap
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: void VertexOutMap(const Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: S2Builder::Graph::VertexOutMap::VertexOutMap
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VertexOutMap(const VertexOutMap&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: operator=(const VertexOutMap&)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const VertexOutMap&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: S2Builder::Graph::VertexInEdgeIds::begin
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EdgeId
    signature: EdgeId * begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: S2Builder::Graph::VertexInEdgeIds::end
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EdgeId
    signature: EdgeId * end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: S2Builder::Graph::VertexInEdgeIds::size
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: S2Builder::Graph::VertexInMap::VertexInMap
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VertexInMap()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2builder_graph.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: S2Builder::Graph::VertexInMap::VertexInMap
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: void VertexInMap(const Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 283
    functionName: '& in_edge_ids() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<EdgeId>
    signature: std::vector<EdgeId> & in_edge_ids() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: S2Builder::Graph::VertexInMap::VertexInMap
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VertexInMap(const VertexInMap&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: operator=(const VertexInMap&)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const VertexInMap&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: S2Builder::Graph::LabelFetcher::LabelFetcher
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LabelFetcher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2builder_graph.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - edge_type
    argTypes:
    - Graph
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: S2Builder::Graph::LabelFetcher::LabelFetcher
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: void LabelFetcher(const Graph& g, EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 715
    functionName: S2Builder::Graph::Graph()
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Builder::Graph::Graph()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 719
    functionName: '& S2Builder::Graph::options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::GraphOptions
    signature: S2Builder::GraphOptions & S2Builder::Graph::options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 723
    functionName: S2Builder::Graph::num_vertices() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::Graph::VertexId
    signature: S2Builder::Graph::VertexId S2Builder::Graph::num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builder_graph.h:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 727
    functionName: '& S2Builder::Graph::vertex(VertexId v) const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - vertices
    linkageType: ''
    returnType: S2Point
    signature: S2Point & S2Builder::Graph::vertex(VertexId v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 731
    functionName: '& S2Builder::Graph::vertices() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<S2Point>
    signature: std::vector<S2Point> & S2Builder::Graph::vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<S2Builder::Graph::EdgeId>
      Src: /src/s2geometry/src/s2/s2builder_graph.h:734,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builder_graph.h:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 735
    functionName: S2Builder::Graph::num_edges() const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - static_cast<S2Builder::Graph::EdgeId>
    - edges
    linkageType: ''
    returnType: S2Builder::Graph::EdgeId
    signature: S2Builder::Graph::EdgeId S2Builder::Graph::num_edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builder_graph.h:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 739
    functionName: '& S2Builder::Graph::edge(EdgeId e) const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - edges
    linkageType: ''
    returnType: S2Builder::Graph::Edge
    signature: S2Builder::Graph::Edge & S2Builder::Graph::edge(EdgeId e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 744
    functionName: '&

      S2Builder::Graph::edges() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<S2Builder::Graph::Edge>
    signature: 'std::vector<S2Builder::Graph::Edge> &

      S2Builder::Graph::edges() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph.h:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 748
    functionName: S2Builder::Graph::reverse(const Edge& e)
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - Edge
    linkageType: ''
    returnType: S2Builder::Graph::Edge
    signature: S2Builder::Graph::Edge S2Builder::Graph::reverse(const Edge& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - Edge*
    - Edge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 753
    functionName: "S2Builder::Graph::VertexOutEdges::VertexOutEdges(const Edge* begin,\n
      \                                                       const Edge* end)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Builder::Graph::VertexOutEdges::VertexOutEdges(const Edge*
      begin,\n                                                        const Edge*
      end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VertexOutEdges
      Src: /src/s2geometry/src/s2/s2builder_graph.h:757,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:757,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 759
    functionName: S2Builder::Graph::VertexOutMap::edges(VertexId v) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - VertexOutEdges
    - data
    linkageType: ''
    returnType: S2Builder::Graph::VertexOutEdges
    signature: S2Builder::Graph::VertexOutEdges S2Builder::Graph::VertexOutMap::edges(VertexId
      v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::equal_range
      Src: /src/s2geometry/src/s2/s2builder_graph.h:763,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:763,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:764,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph.h:765,1
    - Dst: VertexOutEdges
      Src: /src/s2geometry/src/s2/s2builder_graph.h:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v0
    - v1
    argTypes:
    - VertexId
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 767
    functionName: S2Builder::Graph::VertexOutMap::edges(VertexId v0, VertexId v1)
      const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - VertexOutEdges
    - Edge
    - std::equal_range
    - data
    linkageType: ''
    returnType: S2Builder::Graph::VertexOutEdges
    signature: S2Builder::Graph::VertexOutEdges S2Builder::Graph::VertexOutMap::edges(VertexId
      v0, VertexId v1) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - EdgeId
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 772
    functionName: "S2Builder::Graph::VertexOutEdgeIds::VertexOutEdgeIds(EdgeId begin,\n
      \                                                           EdgeId end)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Builder::Graph::VertexOutEdgeIds::VertexOutEdgeIds(EdgeId begin,\n
      \                                                           EdgeId end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VertexOutEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 777
    functionName: S2Builder::Graph::VertexOutMap::edge_ids(VertexId v) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - VertexOutEdgeIds
    linkageType: ''
    returnType: S2Builder::Graph::VertexOutEdgeIds
    signature: S2Builder::Graph::VertexOutEdgeIds S2Builder::Graph::VertexOutMap::edge_ids(VertexId
      v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::equal_range
      Src: /src/s2geometry/src/s2/s2builder_graph.h:781,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:781,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:782,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph.h:783,1
    - Dst: VertexOutEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.h:784,1
    - Dst: static_cast<S2Builder::Graph::EdgeId>
      Src: /src/s2geometry/src/s2/s2builder_graph.h:785,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:785,1
    - Dst: static_cast<S2Builder::Graph::EdgeId>
      Src: /src/s2geometry/src/s2/s2builder_graph.h:786,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v0
    - v1
    argTypes:
    - VertexId
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 787
    functionName: S2Builder::Graph::VertexOutMap::edge_ids(VertexId v0, VertexId v1)
      const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - VertexOutEdgeIds
    - data
    - Edge
    - std::equal_range
    - static_cast<S2Builder::Graph::EdgeId>
    linkageType: ''
    returnType: S2Builder::Graph::VertexOutEdgeIds
    signature: S2Builder::Graph::VertexOutEdgeIds S2Builder::Graph::VertexOutMap::edge_ids(VertexId
      v0, VertexId v1) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2builder_graph.h:790,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.h:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 791
    functionName: S2Builder::Graph::VertexOutMap::degree(VertexId v) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - edge_ids
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int S2Builder::Graph::VertexOutMap::degree(VertexId v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - EdgeId*
    - EdgeId*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 796
    functionName: "S2Builder::Graph::VertexInEdgeIds::VertexInEdgeIds(const EdgeId*
      begin,\n                                                          const EdgeId*
      end)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2Builder::Graph::VertexInEdgeIds::VertexInEdgeIds(const EdgeId*
      begin,\n                                                          const EdgeId*
      end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VertexInEdgeIds
      Src: /src/s2geometry/src/s2/s2builder_graph.h:800,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:800,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2builder_graph.h:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 802
    functionName: S2Builder::Graph::VertexInMap::edge_ids(VertexId v) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - data
    - VertexInEdgeIds
    linkageType: ''
    returnType: S2Builder::Graph::VertexInEdgeIds
    signature: S2Builder::Graph::VertexInEdgeIds S2Builder::Graph::VertexInMap::edge_ids(VertexId
      v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2builder_graph.h:805,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.h:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 806
    functionName: S2Builder::Graph::VertexInMap::degree(VertexId v) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - edge_ids
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int S2Builder::Graph::VertexInMap::degree(VertexId v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph.h:809,1
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.h:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 810
    functionName: S2Builder::Graph::input_edge_ids(EdgeId e) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - input_edge_id_set_lexicon
    - input_edge_id_set_ids
    linkageType: ''
    returnType: IdSetLexicon::IdSet
    signature: IdSetLexicon::IdSet S2Builder::Graph::input_edge_ids(EdgeId e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 815
    functionName: '&

      S2Builder::Graph::input_edge_id_set_ids() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<S2Builder::InputEdgeIdSetId>
    signature: 'std::vector<S2Builder::InputEdgeIdSetId> &

      S2Builder::Graph::input_edge_id_set_ids() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.h:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 820
    functionName: S2Builder::Graph::input_edge_id_set_id(EdgeId e) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - input_edge_id_set_ids
    linkageType: ''
    returnType: S2Builder::InputEdgeIdSetId
    signature: S2Builder::InputEdgeIdSetId S2Builder::Graph::input_edge_id_set_id(EdgeId
      e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 824
    functionName: '& S2Builder::Graph::input_edge_id_set_lexicon() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IdSetLexicon
    signature: IdSetLexicon & S2Builder::Graph::input_edge_id_set_lexicon() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph.h:827,1
    - Dst: label_set_id
      Src: /src/s2geometry/src/s2/s2builder_graph.h:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - InputEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 828
    functionName: S2Builder::Graph::labels(InputEdgeId e) const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - label_set_id
    - label_set_lexicon
    linkageType: ''
    returnType: IdSetLexicon::IdSet
    signature: IdSetLexicon::IdSet S2Builder::Graph::labels(InputEdgeId e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.h:832,1
    - Dst: IdSetLexicon::EmptySetId
      Src: /src/s2geometry/src/s2/s2builder_graph.h:832,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph.h:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - InputEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 834
    functionName: "S2Builder::Graph::label_set_id(InputEdgeId e)\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - label_set_ids
    - IdSetLexicon::EmptySetId
    linkageType: ''
    returnType: S2Builder::LabelSetId
    signature: "S2Builder::LabelSetId S2Builder::Graph::label_set_id(InputEdgeId e)\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 839
    functionName: '&

      S2Builder::Graph::label_set_ids() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<S2Builder::LabelSetId>
    signature: 'std::vector<S2Builder::LabelSetId> &

      S2Builder::Graph::label_set_ids() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 843
    functionName: '& S2Builder::Graph::label_set_lexicon() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IdSetLexicon
    signature: IdSetLexicon & S2Builder::Graph::label_set_lexicon() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_full_polygon_predicate_
      Src: /src/s2geometry/src/s2/s2builder_graph.h:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 847
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached:
    - is_full_polygon_predicate_
    linkageType: ''
    returnType: bool
    signature: bool const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 852
    functionName: '&

      S2Builder::Graph::is_full_polygon_predicate() const'
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::IsFullPolygonPredicate
    signature: 'S2Builder::IsFullPolygonPredicate &

      S2Builder::Graph::is_full_polygon_predicate() const'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ai
    - bi
    argTypes:
    - Edge
    - Edge
    - EdgeId
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 864
    functionName: "S2Builder::Graph::StableLessThan(\n    const Edge& a, const Edge&
      b, EdgeId ai, EdgeId bi)"
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool S2Builder::Graph::StableLessThan(\n    const Edge& a, const Edge&
      b, EdgeId ai, EdgeId bi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: IdSetLexicon::IdSetLexicon
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.cc
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdSetLexicon::IdSetLexicon()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: IdSetLexicon::~IdSetLexicon()
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdSetLexicon::~IdSetLexicon()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - IdSetLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: IdSetLexicon::IdSetLexicon
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.cc
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdSetLexicon::IdSetLexicon(const IdSetLexicon& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - IdSetLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: IdSetLexicon::IdSetLexicon
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.cc
    functionUses: 15
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IdSetLexicon::IdSetLexicon(IdSetLexicon&& x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - IdSetLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: '& IdSetLexicon::operator=(const IdSetLexicon& x)'
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IdSetLexicon
    signature: IdSetLexicon & IdSetLexicon::operator=(const IdSetLexicon& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - IdSetLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: '& IdSetLexicon::operator=(IdSetLexicon&& x) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: IdSetLexicon
    signature: IdSetLexicon & IdSetLexicon::operator=(IdSetLexicon&& x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::Clear
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: IdSetLexicon::Clear
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.cc
    functionUses: 1
    functionsReached:
    - IdSetLexicon::Clear
    linkageType: ''
    returnType: void
    signature: void IdSetLexicon::Clear()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vector<int32_t>*::empty
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:58,1
    - Dst: vector<int32_t>*::size
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:61,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:66,1
    - Dst: vector<int32_t>*::begin
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:66,1
    - Dst: vector<int32_t>*::end
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:66,1
    - Dst: vector<int32_t>*::erase
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:67,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:67,1
    - Dst: vector<int32_t>*::begin
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:67,1
    - Dst: vector<int32_t>*::end
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:67,1
    - Dst: vector<int32_t>*::end
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:67,1
    - Dst: vector<int32_t>*::size
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:70,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ids
    argTypes:
    - vector<int32_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 76
    functionName: IdSetLexicon::AddInternal
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.cc
    functionUses: 1
    functionsReached:
    - vector<int32_t>*::begin
    - vector<int32_t>*::size
    - IdSetLexicon::Add
    - vector<int32_t>*::erase
    - vector<int32_t>*::empty
    - vector<int32_t>*::end
    - std::sort
    - std::unique
    linkageType: ''
    returnType: int32_t
    signature: int32_t IdSetLexicon::AddInternal(vector<int32_t>* ids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:80,1
    - Dst: IdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:82,1
    - Dst: sequence
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:84,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:85,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:85,1
    - Dst: IdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:86,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:86,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:86,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/id_set_lexicon.cc:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - set_id
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: IdSetLexicon::id_set
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon.cc
    functionUses: 8
    functionsReached:
    - ABSL_DCHECK_NE
    - sequence
    - auto::size
    - auto::begin
    - IdSet
    linkageType: ''
    returnType: IdSetLexicon::IdSet
    signature: IdSetLexicon::IdSet IdSetLexicon::id_set(int32_t set_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: S2EdgeVectorShape::S2EdgeVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2EdgeVectorShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2EdgeVectorShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: S2EdgeVectorShape::S2EdgeVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2EdgeVectorShape(S2EdgeVectorShape&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2EdgeVectorShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& operator=(S2EdgeVectorShape&& other) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2EdgeVectorShape
    signature: S2EdgeVectorShape & operator=(S2EdgeVectorShape&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edges
    argTypes:
    - std::vector<std::pair<S2Point, S2Point>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: S2EdgeVectorShape::S2EdgeVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void S2EdgeVectorShape(std::vector<std::pair<S2Point, S2Point>> edges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:54,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: S2EdgeVectorShape::S2EdgeVectorShape
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 2
    functionsReached:
    - std::make_pair
    - push_back
    linkageType: ''
    returnType: void
    signature: void S2EdgeVectorShape(const S2Point& a, const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: ~S2EdgeVectorShape() override
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2EdgeVectorShape() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dimension
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: S2EdgeVectorShape::set_dimension
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dimension(int dimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:68,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: S2EdgeVectorShape::Add
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached:
    - std::make_pair
    - push_back
    linkageType: ''
    returnType: void
    signature: void Add(const S2Point& a, const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:72,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: S2EdgeVectorShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: S2EdgeVectorShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached:
    - Edge
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: S2EdgeVectorShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: S2EdgeVectorShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:80,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: S2EdgeVectorShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: S2EdgeVectorShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached:
    - Chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:83,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: S2EdgeVectorShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached:
    - Edge
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2edge_vector_shape.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: S2EdgeVectorShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape.h
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: S1Interval::FromPoint
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 1
    functionsReached:
    - S1Interval::S1Interval
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval S1Interval::FromPoint(double p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:35,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:35,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: S1Interval::GetCenter
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::is_inverted
    - S1Interval::hi
    - S1Interval::lo
    linkageType: ''
    returnType: double
    signature: double S1Interval::GetCenter() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:42,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: S1Interval::GetLength
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 1
    functionsReached:
    - S1Interval::hi
    - S1Interval::lo
    linkageType: ''
    returnType: double
    signature: double S1Interval::GetLength() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:50,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:50,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s1interval.cc:50,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:51,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:51,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: S1Interval::Complement
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::S1Interval
    - S1Interval::hi
    - S1Interval::Full
    - S1Interval::lo
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval S1Interval::Complement() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:55,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:55,1
    - Dst: S1Interval::Complement
      Src: /src/s2geometry/src/s2/s1interval.cc:56,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:58,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:58,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: S1Interval::GetComplementCenter
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::hi
    - S1Interval::Complement
    - S1Interval::lo
    linkageType: ''
    returnType: double
    signature: double S1Interval::GetComplementCenter() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:63,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:64,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:64,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:64,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:66,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: S1Interval::FastContains
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::hi
    - S1Interval::is_inverted
    - S1Interval::is_empty
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::FastContains(double p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.cc:72,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval.cc:72,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: S1Interval::Contains
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::IsValidPoint
    - S1Interval::FastContains
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::Contains(double p) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.cc:79,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval.cc:79,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:82,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:83,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:83,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:85,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:85,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval.cc:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: S1Interval::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::IsValidPoint
    - S1Interval::is_inverted
    - S1Interval::hi
    - S1Interval::is_full
    - ABSL_DCHECK
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::InteriorContains(double p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:93,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:94,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:94,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:94,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:94,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:94,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:95,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:95,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:95,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:95,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:95,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:97,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval.cc:97,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:97,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:98,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:98,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:98,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: S1Interval::Contains
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::is_inverted
    - S1Interval::is_empty
    - S1Interval::hi
    - S1Interval::is_full
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::Contains(const S1Interval& y) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:103,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:104,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:104,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:104,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:104,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:104,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:105,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:105,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:105,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:105,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:105,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:107,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval.cc:107,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:107,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:108,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:108,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:108,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:108,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval.cc:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: S1Interval::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::is_inverted
    - S1Interval::is_empty
    - S1Interval::hi
    - S1Interval::is_full
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::InteriorContains(const S1Interval& y) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:113,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:113,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:114,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:116,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:116,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:116,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:116,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:116,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:118,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:118,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:118,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:118,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:118,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:119,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:119,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:119,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: S1Interval::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::hi
    - S1Interval::is_inverted
    - S1Interval::is_empty
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::Intersects(const S1Interval& y) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:124,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:124,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:124,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:124,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:125,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:126,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:126,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:126,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:126,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:126,1
    - Dst: S1Interval::is_inverted
      Src: /src/s2geometry/src/s2/s1interval.cc:128,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:128,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:128,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:128,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:128,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:129,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:129,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:129,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:129,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval.cc:129,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: S1Interval::InteriorIntersects
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::is_inverted
    - S1Interval::is_empty
    - S1Interval::hi
    - S1Interval::is_full
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::InteriorIntersects(const S1Interval& y) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: PositiveDistance
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PositiveDistance(double a, double b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s1interval.cc:146,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:147,1
    - Dst: S1Interval::GetComplementCenter
      Src: /src/s2geometry/src/s2/s1interval.cc:149,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s1interval.cc:150,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:151,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:151,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:155,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:155,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:155,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:156,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:156,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:156,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:157,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:157,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:157,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:158,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:158,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:158,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.cc:159,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s1interval.cc:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 162
    functionName: S1Interval::GetDirectedHausdorffDistance
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::Contains
    - PositiveDistance
    - S1Interval::is_empty
    - S1Interval::S1Interval
    - S1Interval::hi
    - S1Interval::GetComplementCenter
    - max
    - ABSL_DCHECK
    - S1Interval::lo
    linkageType: ''
    returnType: double
    signature: double S1Interval::GetDirectedHausdorffDistance(const S1Interval& y)
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.cc:165,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval.cc:165,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:168,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:169,1
    - Dst: S1Interval::set_hi
      Src: /src/s2geometry/src/s2/s1interval.cc:170,1
    - Dst: S1Interval::set_lo
      Src: /src/s2geometry/src/s2/s1interval.cc:171,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:174,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:174,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:175,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:175,1
    - Dst: S1Interval::set_lo
      Src: /src/s2geometry/src/s2/s1interval.cc:177,1
    - Dst: S1Interval::set_hi
      Src: /src/s2geometry/src/s2/s1interval.cc:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 183
    functionName: S1Interval::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 2
    functionsReached:
    - S1Interval::lo
    - PositiveDistance
    - S1Interval::IsValidPoint
    - S1Interval::is_empty
    - S1Interval::set_hi
    - S1Interval::hi
    - S1Interval::FastContains
    - S1Interval::set_lo
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S1Interval::AddPoint(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.cc:186,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:186,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.cc:187,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval.cc:187,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:189,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:191,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:191,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:192,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:192,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:193,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: S1Interval::Project
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 1
    functionsReached:
    - S1Interval::lo
    - PositiveDistance
    - S1Interval::IsValidPoint
    - S1Interval::is_empty
    - S1Interval::hi
    - S1Interval::FastContains
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double S1Interval::Project(double p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.cc:197,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval.cc:197,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.cc:198,1
    - Dst: S1Interval::IsValidPoint
      Src: /src/s2geometry/src/s2/s1interval.cc:198,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:201,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:202,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: S1Interval::FromPointPair
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 4
    functionsReached:
    - S1Interval::S1Interval
    - S1Interval::IsValidPoint
    - PositiveDistance
    - ABSL_DCHECK
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval S1Interval::FromPointPair(double p1, double p2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:210,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:213,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s1interval.cc:213,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval.cc:215,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:218,1
    - Dst: S1Interval::Empty
      Src: /src/s2geometry/src/s2/s1interval.cc:218,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s1interval.cc:220,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:220,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s1interval.cc:221,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:221,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:222,1
    - Dst: S1Interval::set_lo
      Src: /src/s2geometry/src/s2/s1interval.cc:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - margin
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 224
    functionName: S1Interval::Expanded
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::Empty
    - S1Interval::GetLength
    - S1Interval::is_empty
    - remainder
    - S1Interval::Full
    - S1Interval::hi
    - S1Interval::is_full
    - S1Interval::set_lo
    - S1Interval::lo
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval S1Interval::Expanded(double margin) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:231,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:232,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:232,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:233,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:233,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s1interval.cc:236,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s1interval.cc:237,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:239,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:239,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:239,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:241,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:241,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:241,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:241,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:241,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:245,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:245,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:245,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:248,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:248,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:248,1
    - Dst: PositiveDistance
      Src: /src/s2geometry/src/s2/s1interval.cc:249,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:249,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:249,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:251,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:251,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:251,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:253,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:253,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:253,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 255
    functionName: S1Interval::Union
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::Contains
    - PositiveDistance
    - S1Interval::is_empty
    - S1Interval::S1Interval
    - S1Interval::hi
    - S1Interval::Full
    - S1Interval::FastContains
    - S1Interval::lo
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval S1Interval::Union(const S1Interval& y) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:262,1
    - Dst: S1Interval::Empty
      Src: /src/s2geometry/src/s2/s1interval.cc:262,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:263,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:263,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:264,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:264,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:268,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:268,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:271,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:271,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:271,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:273,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:273,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.cc:273,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:273,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:273,1
    - Dst: S1Interval::FastContains
      Src: /src/s2geometry/src/s2/s1interval.cc:278,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:278,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.cc:279,1
    - Dst: S1Interval::Intersects
      Src: /src/s2geometry/src/s2/s1interval.cc:279,1
    - Dst: S1Interval::Empty
      Src: /src/s2geometry/src/s2/s1interval.cc:280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 281
    functionName: S1Interval::Intersection
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - S1Interval::Empty
    - S1Interval::is_empty
    - S1Interval::GetLength
    - S1Interval::S1Interval
    - S1Interval::Intersects
    - S1Interval::hi
    - S1Interval::FastContains
    - ABSL_DCHECK
    - S1Interval::lo
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval S1Interval::Intersection(const S1Interval& y) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:286,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:286,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s1interval.cc:287,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:287,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval.cc:288,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:288,1
    - Dst: S1Interval::is_full
      Src: /src/s2geometry/src/s2/s1interval.cc:289,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:289,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s1interval.cc:293,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s1interval.cc:293,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:293,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.cc:293,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s1interval.cc:294,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s1interval.cc:294,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:294,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.cc:294,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s1interval.cc:295,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:295,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s1interval.cc:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' y'
    - max_error
    argTypes:
    - S1Interval
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 296
    functionName: S1Interval::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s1interval.cc
    functionUses: 0
    functionsReached:
    - fabs
    - S1Interval::GetLength
    - S1Interval::is_empty
    - remainder
    - S1Interval::hi
    - S1Interval::is_full
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::ApproxEquals(const S1Interval& y, double max_error)
      const
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - method
    argTypes:
    - IntersectionMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: S2::internal::GetIntersectionMethodName
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: string_view
    signature: string_view GetIntersectionMethodName(IntersectionMethod method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:125,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:132,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:134,1
    - Dst: Vector3<T>*::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 136
    functionName: S2::internal::GetStableCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - CrossProd
    - rounding_epsilon<T>
    - radians
    - Vector3<T>*::Norm2
    linkageType: ''
    returnType: bool
    signature: "bool GetStableCrossProd(const Vector3<T>& a, const Vector3<T>& b,\n
      \                              Vector3<T>* result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - method
    argTypes:
    - IntersectionMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: S2::internal::GetIntersectionMethodName
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: string_view
    signature: string_view GetIntersectionMethodName(IntersectionMethod method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:125,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:132,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:134,1
    - Dst: Vector3<T>*::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 136
    functionName: S2::internal::GetStableCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - CrossProd
    - rounding_epsilon<T>
    - radians
    - Vector3<T>*::Norm2
    linkageType: ''
    returnType: bool
    signature: "bool GetStableCrossProd(const Vector3<T>& a, const Vector3<T>& b,\n
      \                              Vector3<T>* result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:148,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:148,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:149,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:149,1
    - Dst: GetStableCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:158,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:166,1
    - Dst: GetStableCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:172,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:172,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:172,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:173,1
    - Dst: S2::internal::ExactCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: S2::RobustCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 62
    functionsReached:
    - S2::Ortho
    - GetStableCrossProd
    - S2Point::Cast
    - S2::IsUnitLength
    - ABSL_DCHECK
    - S2::internal::ExactCrossProd
    - ToLD
    linkageType: ''
    returnType: S2Point
    signature: S2Point RobustCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:184,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:185,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:185,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:185,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:185,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:240,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:243,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:249,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:252,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 269
    functionName: S2::SymbolicCrossProdSorted
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - s2pred::IsZero
    - Vector3_d
    - ToExact
    - ABSL_DCHECK
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d SymbolicCrossProdSorted(const S2Point& a, const S2Point&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: S2::IsNormalizable
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - ldexp
    - max
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool IsNormalizable(const Vector3_d& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:295,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:295,1
    - Dst: S2::IsNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:296,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:308,1
    - Dst: ilogb
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: S2::EnsureNormalizable
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - fabs
    - ABSL_DCHECK_NE
    - Vector3_d
    - ldexp
    - max
    - ilogb
    - S2::IsNormalizable
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d EnsureNormalizable(const Vector3_d& p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:319,1
    - Dst: S2::IsNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:320,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:328,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:328,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:328,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:331,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:333,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:333,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:333,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:334,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:334,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:335,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' xf'
    argTypes:
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: S2::NormalizableFromExact
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - S2Point::Cast
    - Vector3_d
    - exp
    - static_cast<double>
    - isnormal
    - std::max
    - ldexp
    - S2::IsNormalizable
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d NormalizableFromExact(const Vector3_xf& xf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:341,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:344,1
    - Dst: SymbolicCrossProdSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:344,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:346,1
    - Dst: SymbolicCrossProdSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 348
    functionName: S2::internal::SymbolicCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - EnsureNormalizable
    - ABSL_DCHECK_NE
    - SymbolicCrossProdSorted
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d SymbolicCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:350,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:351,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:351,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:352,1
    - Dst: NormalizableFromExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:353,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:357,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:357,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:359,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 361
    functionName: S2::internal::ExactCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - EnsureNormalizable
    - ABSL_DCHECK_NE
    - NormalizableFromExact
    - ToExact
    - s2pred::IsZero
    - S2::internal::SymbolicCrossProd
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d ExactCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:341,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:344,1
    - Dst: SymbolicCrossProdSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:344,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:346,1
    - Dst: SymbolicCrossProdSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 348
    functionName: S2::internal::SymbolicCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - EnsureNormalizable
    - ABSL_DCHECK_NE
    - SymbolicCrossProdSorted
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d SymbolicCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:350,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:351,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:351,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:352,1
    - Dst: NormalizableFromExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:353,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:357,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:357,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:359,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 361
    functionName: S2::internal::ExactCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - EnsureNormalizable
    - ABSL_DCHECK_NE
    - NormalizableFromExact
    - ToExact
    - s2pred::IsZero
    - S2::internal::SymbolicCrossProd
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d ExactCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: S2::CrossingSign
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 25
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    linkageType: ''
    returnType: int
    signature: "int CrossingSign(const S2Point& a, const S2Point& b,\n                 const
      S2Point& c, const S2Point& d)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:383,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:383,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:384,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:384,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:386,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:386,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:387,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:387,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 391
    functionName: S2::VertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - S2::RefDir
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: bool
    signature: "bool VertexCrossing(const S2Point& a, const S2Point& b,\n                    const
      S2Point& c, const S2Point& d)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:401,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:401,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:403,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:403,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:406,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:406,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:408,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:408,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 412
    functionName: S2::SignedVertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - S2::RefDir
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: int
    signature: "int SignedVertexCrossing(const S2Point& a, const S2Point& b,\n                         const
      S2Point& c, const S2Point& d)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:416,1
    - Dst: S2::VertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: S2::EdgeOrVertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - S2::VertexCrossing
    - S2::CrossingSign
    linkageType: ''
    returnType: bool
    signature: "bool EdgeOrVertexCrossing(const S2Point& a, const S2Point& b,\n                          const
      S2Point& c, const S2Point& d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:432,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 438
    functionName: S2::RobustNormalWithLength
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - CrossProd
    - Vector3::Norm
    linkageType: ''
    returnType: T
    signature: "T RobustNormalWithLength(const Vector3<T>& x, const Vector3<T>& y,\n
      \                               Vector3<T>* result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:473,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:476,1
    - Dst: Vector3::Vector3
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:488,1
    - Dst: S2::RobustNormalWithLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:489,1
    - Dst: S2::RobustNormalWithLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:490,1
    - Dst: S2::RobustNormalWithLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:491,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 497
    functionName: S2::GetIntersectionSimple
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - Vector3::DotProd
    - radians
    - S2::RobustNormalWithLength
    - rounding_epsilon<T>
    - Vector3::Vector3
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionSimple(const Vector3<T>& a0, const Vector3<T>&
      a1,\n                                  const Vector3<T>& b0, const Vector3<T>&
      b1,\n                                  Vector3<T>* result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetIntersectionSimple
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: S2::GetIntersectionSimpleLD
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - S2Point::Cast
    - S2::GetIntersectionSimple
    - ToLD
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionSimpleLD(const S2Point& a0, const S2Point& a1,\n
      \                                   const S2Point& b0, const S2Point& b1,\n
      \                                   S2Point* result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:527,1
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:528,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:535,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:536,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:538,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:539,1
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:550,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - ' x'
    - ' a_norm'
    - a_norm_len
    - ' a0'
    - ' a1'
    - error
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - T
    - Vector3<T>
    - Vector3<T>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 554
    functionName: S2::GetProjection
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - fabs
    - sqrt
    - Vector3::DotProd
    - Vector3::Norm2
    - rounding_epsilon<T>
    linkageType: ''
    returnType: T
    signature: "T GetProjection(const Vector3<T>& x,\n                       const
      Vector3<T>& a_norm, T a_norm_len,\n                       const Vector3<T>&
      a0, const Vector3<T>& a1,\n                       T* error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:562,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:562,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:562,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:565,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:566,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:567,1
    - Dst: S2::GetProjection
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:572,1
    - Dst: S2::GetProjection
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:573,1
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:601,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:602,1
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:607,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:608,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:614,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 621
    functionName: S2::GetIntersectionStableSorted
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - fabs
    - Norm2
    - S2CellId::range_min
    - Vector3::Norm
    - sqrt
    - CrossProd
    - radians
    - Vector3::Norm2
    - S2::GetProjection
    - rounding_epsilon<T>
    - Norm
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionStableSorted(\n    const Vector3<T>& a0, const
      Vector3<T>& a1,\n    const Vector3<T>& b0, const Vector3<T>& b1, Vector3<T>*
      result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:637,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:638,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:640,1
    - Dst: S2::GetIntersectionStableSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:641,1
    - Dst: S2::GetIntersectionStableSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 645
    functionName: S2::GetIntersectionStable
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - S2::internal::CompareEdges
    - S2::GetIntersectionStableSorted
    - Norm2
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionStable(const Vector3<T>& a0, const Vector3<T>&
      a1,\n                                  const Vector3<T>& b0, const Vector3<T>&
      b1,\n                                  Vector3<T>* result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::NormalizableFromExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' xf'
    argTypes:
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 649
    functionName: S2::ToS2Point
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - S2::NormalizableFromExact
    linkageType: ''
    returnType: S2Point
    signature: S2Point ToS2Point(const Vector3_xf& xf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetIntersectionStable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 663
    functionName: S2::internal::GetIntersectionStableLD
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - GetIntersectionStable
    - S2Point::Cast
    - ToLD
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionStableLD(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1,\n                             S2Point*
      result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:672,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:672,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:673,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:673,1
    - Dst: Vector3_xf::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:674,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:679,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:681,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:681,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:695,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:696,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:697,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:697,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:698,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:698,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:701,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:702,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:703,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:704,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:706,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:706,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 708
    functionName: S2::internal::GetIntersectionExact
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - Vector3_xf::CrossProd
    - s2pred::Sign
    - S2Point
    - s2pred::OrderedCCW
    - ToS2Point
    - S2::IsUnitLength
    - ToExact
    - s2pred::IsZero
    - S2::internal::SymbolicCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetIntersectionExact(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetIntersectionStable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 663
    functionName: S2::internal::GetIntersectionStableLD
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - GetIntersectionStable
    - S2Point::Cast
    - ToLD
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionStableLD(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1,\n                             S2Point*
      result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:672,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:672,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:673,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:673,1
    - Dst: Vector3_xf::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:674,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:679,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:681,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:681,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:695,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:696,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:697,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:697,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:698,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:698,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:701,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:702,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:703,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:704,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:706,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:706,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 708
    functionName: S2::internal::GetIntersectionExact
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - Vector3_xf::CrossProd
    - s2pred::Sign
    - S2Point
    - s2pred::OrderedCCW
    - ToS2Point
    - S2::IsUnitLength
    - ToExact
    - s2pred::IsZero
    - S2::internal::SymbolicCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetIntersectionExact(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:719,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:720,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:721,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ' a'
    - ' x'
    - ' b'
    - tolerance
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 722
    functionName: S2::ApproximatelyOrdered
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - S2::RobustCrossProd
    - s2pred::OrderedCCW
    - Norm2
    linkageType: ''
    returnType: bool
    signature: "bool ApproximatelyOrdered(const S2Point& a, const S2Point& x,\n                                 const
      S2Point& b, double tolerance)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:726,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:726,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:769,1
    - Dst: S2::GetIntersectionSimple
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:771,1
    - Dst: S2::GetIntersectionSimpleLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:774,1
    - Dst: S2::GetIntersectionStable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:776,1
    - Dst: S2::internal::GetIntersectionStableLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:779,1
    - Dst: GetIntersectionExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:782,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:786,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:790,1
    - Dst: S2::ApproximatelyOrdered
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:791,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:791,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:792,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:794,1
    - Dst: S2::ApproximatelyOrdered
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:795,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:795,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:796,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 800
    functionName: S2::GetIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 13
    functionsReached:
    - GetIntersectionExact
    - S2::GetIntersectionSimple
    - S2::internal::GetIntersectionStableLD
    - S2::GetIntersectionSimpleLD
    - S2::CrossingSign
    - S2Point::S2Point
    - static_cast<int>
    - radians
    - S2::GetIntersectionStable
    - S2::ApproximatelyOrdered
    - ABSL_DCHECK_GT
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetIntersection(const S2Point& a0, const S2Point& a1,\n                        const
      S2Point& b0, const S2Point& b1)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - method
    argTypes:
    - IntersectionMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: S2::internal::GetIntersectionMethodName
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: string_view
    signature: string_view GetIntersectionMethodName(IntersectionMethod method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:125,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:132,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:134,1
    - Dst: Vector3<T>*::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 136
    functionName: S2::internal::GetStableCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - CrossProd
    - rounding_epsilon<T>
    - radians
    - Vector3<T>*::Norm2
    linkageType: ''
    returnType: bool
    signature: "bool GetStableCrossProd(const Vector3<T>& a, const Vector3<T>& b,\n
      \                              Vector3<T>* result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - method
    argTypes:
    - IntersectionMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: S2::internal::GetIntersectionMethodName
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: string_view
    signature: string_view GetIntersectionMethodName(IntersectionMethod method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:125,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:132,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:134,1
    - Dst: Vector3<T>*::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 136
    functionName: S2::internal::GetStableCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - CrossProd
    - rounding_epsilon<T>
    - radians
    - Vector3<T>*::Norm2
    linkageType: ''
    returnType: bool
    signature: "bool GetStableCrossProd(const Vector3<T>& a, const Vector3<T>& b,\n
      \                              Vector3<T>* result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:148,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:148,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:149,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:149,1
    - Dst: GetStableCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:158,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:166,1
    - Dst: GetStableCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:172,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:172,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:172,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:173,1
    - Dst: S2::internal::ExactCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: S2::RobustCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 63
    functionsReached:
    - S2::Ortho
    - GetStableCrossProd
    - S2Point::Cast
    - S2::IsUnitLength
    - ABSL_DCHECK
    - S2::internal::ExactCrossProd
    - ToLD
    linkageType: ''
    returnType: S2Point
    signature: S2Point RobustCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:184,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:185,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:185,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:185,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:185,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:240,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:243,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:249,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:252,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 269
    functionName: S2::SymbolicCrossProdSorted
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - s2pred::IsZero
    - Vector3_d
    - ToExact
    - ABSL_DCHECK
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d SymbolicCrossProdSorted(const S2Point& a, const S2Point&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: S2::IsNormalizable
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - ldexp
    - max
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool IsNormalizable(const Vector3_d& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:295,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:295,1
    - Dst: S2::IsNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:296,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:305,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:308,1
    - Dst: ilogb
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Vector3_d
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: S2::EnsureNormalizable
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - fabs
    - ABSL_DCHECK_NE
    - Vector3_d
    - ldexp
    - max
    - ilogb
    - S2::IsNormalizable
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d EnsureNormalizable(const Vector3_d& p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:319,1
    - Dst: S2::IsNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:320,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:328,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:328,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:328,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:331,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:333,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:333,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:333,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:334,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:334,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:335,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' xf'
    argTypes:
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: S2::NormalizableFromExact
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - S2Point::Cast
    - Vector3_d
    - exp
    - static_cast<double>
    - isnormal
    - std::max
    - ldexp
    - S2::IsNormalizable
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d NormalizableFromExact(const Vector3_xf& xf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:341,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:344,1
    - Dst: SymbolicCrossProdSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:344,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:346,1
    - Dst: SymbolicCrossProdSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 348
    functionName: S2::internal::SymbolicCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 4
    functionsReached:
    - EnsureNormalizable
    - ABSL_DCHECK_NE
    - SymbolicCrossProdSorted
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d SymbolicCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:350,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:351,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:351,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:352,1
    - Dst: NormalizableFromExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:353,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:357,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:357,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:359,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 361
    functionName: S2::internal::ExactCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - EnsureNormalizable
    - ABSL_DCHECK_NE
    - NormalizableFromExact
    - ToExact
    - s2pred::IsZero
    - S2::internal::SymbolicCrossProd
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d ExactCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:341,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:344,1
    - Dst: SymbolicCrossProdSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:344,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:346,1
    - Dst: SymbolicCrossProdSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 348
    functionName: S2::internal::SymbolicCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 5
    functionsReached:
    - EnsureNormalizable
    - ABSL_DCHECK_NE
    - SymbolicCrossProdSorted
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d SymbolicCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:350,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:351,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:351,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:352,1
    - Dst: NormalizableFromExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:353,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:357,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:357,1
    - Dst: EnsureNormalizable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:359,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 361
    functionName: S2::internal::ExactCrossProd
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - EnsureNormalizable
    - ABSL_DCHECK_NE
    - NormalizableFromExact
    - ToExact
    - s2pred::IsZero
    - S2::internal::SymbolicCrossProd
    linkageType: ''
    returnType: Vector3_d
    signature: Vector3_d ExactCrossProd(const S2Point& a, const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: S2::CrossingSign
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 27
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    linkageType: ''
    returnType: int
    signature: "int CrossingSign(const S2Point& a, const S2Point& b,\n                 const
      S2Point& c, const S2Point& d)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:383,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:383,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:384,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:384,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:386,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:386,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:387,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:387,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 391
    functionName: S2::VertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - ABSL_LOG
    - S2::RefDir
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: bool
    signature: "bool VertexCrossing(const S2Point& a, const S2Point& b,\n                    const
      S2Point& c, const S2Point& d)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:401,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:401,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:403,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:403,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:406,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:406,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:408,1
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:408,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 412
    functionName: S2::SignedVertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - S2::RefDir
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: int
    signature: "int SignedVertexCrossing(const S2Point& a, const S2Point& b,\n                         const
      S2Point& c, const S2Point& d)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:416,1
    - Dst: S2::VertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: S2::EdgeOrVertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - S2::VertexCrossing
    - S2::CrossingSign
    linkageType: ''
    returnType: bool
    signature: "bool EdgeOrVertexCrossing(const S2Point& a, const S2Point& b,\n                          const
      S2Point& c, const S2Point& d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:432,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 438
    functionName: S2::RobustNormalWithLength
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - CrossProd
    - Vector3::Norm
    linkageType: ''
    returnType: T
    signature: "T RobustNormalWithLength(const Vector3<T>& x, const Vector3<T>& y,\n
      \                               Vector3<T>* result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:473,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:476,1
    - Dst: Vector3::Vector3
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:488,1
    - Dst: S2::RobustNormalWithLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:489,1
    - Dst: S2::RobustNormalWithLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:490,1
    - Dst: S2::RobustNormalWithLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:491,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 497
    functionName: S2::GetIntersectionSimple
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - Vector3::DotProd
    - radians
    - S2::RobustNormalWithLength
    - rounding_epsilon<T>
    - Vector3::Vector3
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionSimple(const Vector3<T>& a0, const Vector3<T>&
      a1,\n                                  const Vector3<T>& b0, const Vector3<T>&
      b1,\n                                  Vector3<T>* result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetIntersectionSimple
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:503,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: S2::GetIntersectionSimpleLD
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - S2Point::Cast
    - S2::GetIntersectionSimple
    - ToLD
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionSimpleLD(const S2Point& a0, const S2Point& a1,\n
      \                                   const S2Point& b0, const S2Point& b1,\n
      \                                   S2Point* result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:527,1
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:528,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:535,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:536,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:538,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:539,1
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:550,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - ' x'
    - ' a_norm'
    - a_norm_len
    - ' a0'
    - ' a1'
    - error
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - T
    - Vector3<T>
    - Vector3<T>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 554
    functionName: S2::GetProjection
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - fabs
    - sqrt
    - Vector3::DotProd
    - Vector3::Norm2
    - rounding_epsilon<T>
    linkageType: ''
    returnType: T
    signature: "T GetProjection(const Vector3<T>& x,\n                       const
      Vector3<T>& a_norm, T a_norm_len,\n                       const Vector3<T>&
      a0, const Vector3<T>& a1,\n                       T* error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:562,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:562,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:562,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:565,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:566,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:567,1
    - Dst: S2::GetProjection
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:572,1
    - Dst: S2::GetProjection
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:573,1
    - Dst: rounding_epsilon<T>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:601,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:602,1
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:607,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:608,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:614,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 621
    functionName: S2::GetIntersectionStableSorted
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - fabs
    - Norm2
    - S2CellId::range_min
    - Vector3::Norm
    - sqrt
    - CrossProd
    - radians
    - Vector3::Norm2
    - S2::GetProjection
    - rounding_epsilon<T>
    - Norm
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionStableSorted(\n    const Vector3<T>& a0, const
      Vector3<T>& a1,\n    const Vector3<T>& b0, const Vector3<T>& b1, Vector3<T>*
      result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:637,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:638,1
    - Dst: S2::internal::CompareEdges
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:640,1
    - Dst: S2::GetIntersectionStableSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:641,1
    - Dst: S2::GetIntersectionStableSorted
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 645
    functionName: S2::GetIntersectionStable
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - S2::internal::CompareEdges
    - S2::GetIntersectionStableSorted
    - Norm2
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionStable(const Vector3<T>& a0, const Vector3<T>&
      a1,\n                                  const Vector3<T>& b0, const Vector3<T>&
      b1,\n                                  Vector3<T>* result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::NormalizableFromExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' xf'
    argTypes:
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 649
    functionName: S2::ToS2Point
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 0
    functionsReached:
    - S2::NormalizableFromExact
    linkageType: ''
    returnType: S2Point
    signature: S2Point ToS2Point(const Vector3_xf& xf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetIntersectionStable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 663
    functionName: S2::internal::GetIntersectionStableLD
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - GetIntersectionStable
    - S2Point::Cast
    - ToLD
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionStableLD(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1,\n                             S2Point*
      result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:672,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:672,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:673,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:673,1
    - Dst: Vector3_xf::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:674,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:679,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:681,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:681,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:695,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:696,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:697,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:697,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:698,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:698,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:701,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:702,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:703,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:704,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:706,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:706,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 708
    functionName: S2::internal::GetIntersectionExact
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - Vector3_xf::CrossProd
    - s2pred::Sign
    - S2Point
    - s2pred::OrderedCCW
    - ToS2Point
    - S2::IsUnitLength
    - ToExact
    - s2pred::IsZero
    - S2::internal::SymbolicCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetIntersectionExact(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetIntersectionStable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: ToLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:657,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - result
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 663
    functionName: S2::internal::GetIntersectionStableLD
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - GetIntersectionStable
    - S2Point::Cast
    - ToLD
    linkageType: ''
    returnType: bool
    signature: "bool GetIntersectionStableLD(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1,\n                             S2Point*
      result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:672,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:672,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:673,1
    - Dst: ToExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:673,1
    - Dst: Vector3_xf::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:674,1
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:679,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:681,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:681,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:695,1
    - Dst: ToS2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:696,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:697,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:697,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:698,1
    - Dst: S2::internal::SymbolicCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:698,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:701,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:702,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:703,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:704,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:706,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:706,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 708
    functionName: S2::internal::GetIntersectionExact
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 2
    functionsReached:
    - Vector3_xf::CrossProd
    - s2pred::Sign
    - S2Point
    - s2pred::OrderedCCW
    - ToS2Point
    - S2::IsUnitLength
    - ToExact
    - s2pred::IsZero
    - S2::internal::SymbolicCrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetIntersectionExact(const S2Point& a0, const S2Point& a1,\n
      \                            const S2Point& b0, const S2Point& b1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:719,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:720,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:721,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ' a'
    - ' x'
    - ' b'
    - tolerance
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 722
    functionName: S2::ApproximatelyOrdered
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 1
    functionsReached:
    - S2::RobustCrossProd
    - s2pred::OrderedCCW
    - Norm2
    linkageType: ''
    returnType: bool
    signature: "bool ApproximatelyOrdered(const S2Point& a, const S2Point& x,\n                                 const
      S2Point& b, double tolerance)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:726,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:726,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:769,1
    - Dst: S2::GetIntersectionSimple
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:771,1
    - Dst: S2::GetIntersectionSimpleLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:774,1
    - Dst: S2::GetIntersectionStable
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:776,1
    - Dst: S2::internal::GetIntersectionStableLD
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:779,1
    - Dst: GetIntersectionExact
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:782,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:786,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:790,1
    - Dst: S2::ApproximatelyOrdered
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:791,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:791,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:792,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:794,1
    - Dst: S2::ApproximatelyOrdered
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:795,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:795,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2edge_crossings.cc:796,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 800
    functionName: S2::GetIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crossings.cc
    functionUses: 13
    functionsReached:
    - GetIntersectionExact
    - S2::GetIntersectionSimple
    - S2::internal::GetIntersectionStableLD
    - S2::GetIntersectionSimpleLD
    - S2::CrossingSign
    - S2Point::S2Point
    - static_cast<int>
    - radians
    - S2::GetIntersectionStable
    - S2::ApproximatelyOrdered
    - ABSL_DCHECK_GT
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: "S2Point GetIntersection(const S2Point& a0, const S2Point& a1,\n                        const
      S2Point& b0, const S2Point& b1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: ~S2DistanceTarget()
    functionSourceFile: /src/s2geometry/src/s2/s2distance_target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2DistanceTarget()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2distance_target.h:147,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2distance_target.h:149,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2distance_target.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' query_index'
    - visitor
    argTypes:
    - S2ShapeIndex
    - absl::FunctionRef<bool(const S2Shape*, const S2Point& target_point)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: S2DistanceTarget::VisitContainingShapes
    functionSourceFile: /src/s2geometry/src/s2/s2distance_target.h
    functionUses: 0
    functionsReached:
    - visitor
    - VisitContainingShapeIds
    - shape
    linkageType: ''
    returnType: bool
    signature: "bool VisitContainingShapes(\n      const S2ShapeIndex& query_index,\n
      \     absl::FunctionRef<bool(const S2Shape*, const S2Point& target_point)>\n
      \         visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' max_error'
    argTypes:
    - Delta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: S2DistanceTarget::set_max_error
    functionSourceFile: /src/s2geometry/src/s2/s2distance_target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool set_max_error(const Delta& max_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: S2DistanceTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2distance_target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: IFNDEF_SWIG
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IFNDEF_SWIG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: S2CellId::S2CellId
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellId(uint64_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: S2CellId::S2CellId
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2CellId()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: S2CellId::None
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 21
    functionsReached:
    - S2CellId::S2CellId
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId None()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: S2CellId::Sentinel
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 11
    functionsReached:
    - S2CellId::S2CellId
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId Sentinel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:145,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: operator<=>(S2CellId x, S2CellId y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - S2CellId::id
    linkageType: ''
    returnType: auto
    signature: auto operator<=>(S2CellId x, S2CellId y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:149,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: operator!=(S2CellId x, S2CellId y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - S2CellId::id
    linkageType: ''
    returnType: bool
    signature: bool operator!=(S2CellId x, S2CellId y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:152,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: operator<(S2CellId x, S2CellId y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - S2CellId::id
    linkageType: ''
    returnType: bool
    signature: bool operator<(S2CellId x, S2CellId y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:155,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: operator>(S2CellId x, S2CellId y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - S2CellId::id
    linkageType: ''
    returnType: bool
    signature: bool operator>(S2CellId x, S2CellId y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:158,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: operator<=(S2CellId x, S2CellId y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - S2CellId::id
    linkageType: ''
    returnType: bool
    signature: bool operator<=(S2CellId x, S2CellId y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:161,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: operator>=(S2CellId x, S2CellId y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - S2CellId::id
    linkageType: ''
    returnType: bool
    signature: bool operator>=(S2CellId x, S2CellId y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToPointRaw
      Src: /src/s2geometry/src/s2/s2cell_id.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: S2CellId::ToPoint
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 18
    functionsReached:
    - S2CellId::ToPointRaw
    linkageType: ''
    returnType: S2Point
    signature: S2Point ToPoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: S2CellId::id
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 499
    functionName: S2CellId::lsb
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t lsb() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 504
    functionName: S2CellId::lsb_for_level
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t lsb_for_level(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2cell_id.h:518,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_id.h:518,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:518,1
    - Dst: absl::rotr
      Src: /src/s2geometry/src/s2/s2cell_id.h:518,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - id
    argTypes:
    - H
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: S2CellId::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - absl::rotr
    - std::move
    - H::combine
    - S2CellId::id
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:542,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/s2cell_id.h:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 543
    functionName: operator==(S2CellId x, S2CellId y)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - S2CellId::id
    linkageType: ''
    returnType: bool
    signature: bool operator==(S2CellId x, S2CellId y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:546,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2cell_id.h:546,1
    - Dst: S2CellId::lsb_for_level
      Src: /src/s2geometry/src/s2/s2cell_id.h:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - face
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 547
    functionName: S2CellId::FromFace
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 57
    functionsReached:
    - static_cast<uint64_t>
    - S2CellId::lsb_for_level
    - S2CellId::S2CellId
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::FromFace(int face)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/s2cell_id.h:550,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_id.h:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - face
    - pos
    - level
    argTypes:
    - int
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: S2CellId::FromFacePosLevel
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 21
    functionsReached:
    - static_cast<uint64_t>
    - S2CellId::parent
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::FromFacePosLevel(int face, uint64_t pos, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2cell_id.h:574,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_id.h:575,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2cell_id.h:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - psi
    - pti
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 581
    functionName: S2CellId::GetCenterSiTi
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 4
    functionsReached:
    - S2CellId::is_leaf
    - static_cast<int>
    - S2CellId::ToFaceIJOrientation
    linkageType: ''
    returnType: int
    signature: int S2CellId::GetCenterSiTi(int* psi, int* pti) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::face
      Src: /src/s2geometry/src/s2/s2cell_id.h:584,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: S2CellId::is_valid
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 20
    functionsReached:
    - S2CellId::lsb
    - S2CellId::face
    linkageType: ''
    returnType: bool
    signature: bool S2CellId::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 589
    functionName: S2CellId::face
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2CellId::face() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: S2CellId::pos
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t S2CellId::pos() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_ASSUME
      Src: /src/s2geometry/src/s2/s2cell_id.h:599,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/s2cell_id.h:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 603
    functionName: S2CellId::level
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 28
    functionsReached:
    - ABSL_ASSUME
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: int
    signature: int S2CellId::level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_id.h:606,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.h:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: S2CellId::GetSizeIJ
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 8
    functionsReached:
    - S2CellId::level
    - S2CellId::GetSizeIJ
    linkageType: ''
    returnType: int
    signature: int S2CellId::GetSizeIJ() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetSizeST
      Src: /src/s2geometry/src/s2/s2cell_id.h:610,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.h:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: S2CellId::GetSizeST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 4
    functionsReached:
    - S2CellId::level
    - S2CellId::GetSizeST
    linkageType: ''
    returnType: double
    signature: double S2CellId::GetSizeST() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_id.h:614,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2cell_id.h:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: S2CellId::GetSizeIJ
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 8
    functionsReached:
    - ABSL_DCHECK_LE
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int
    signature: int S2CellId::GetSizeIJ(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::IJtoSTMin
      Src: /src/s2geometry/src/s2/s2cell_id.h:621,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_id.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 619
    functionDepth: 3
    functionLinenumber: 619
    functionLinenumberEnd: 622
    functionName: S2CellId::GetSizeST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 4
    functionsReached:
    - S2::IJtoSTMin
    - S2CellId::GetSizeIJ
    linkageType: ''
    returnType: double
    signature: double S2CellId::GetSizeST(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 624
    functionName: S2CellId::is_leaf
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2CellId::is_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::lsb_for_level
      Src: /src/s2geometry/src/s2/s2cell_id.h:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 628
    functionName: S2CellId::is_face
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 9
    functionsReached:
    - S2CellId::lsb_for_level
    linkageType: ''
    returnType: bool
    signature: bool S2CellId::is_face() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::child_position
      Src: /src/s2geometry/src/s2/s2cell_id.h:632,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 633
    functionName: S2CellId::child_position
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 4
    functionsReached:
    - S2CellId::level
    - S2CellId::child_position
    linkageType: ''
    returnType: int
    signature: int S2CellId::child_position() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:636,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:636,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_id.h:637,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2cell_id.h:638,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.h:638,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2cell_id.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: S2CellId::child_position
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 4
    functionsReached:
    - ABSL_DCHECK_LE
    - S2CellId::level
    - static_cast<int>
    - S2CellId::is_valid
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int S2CellId::child_position(int level) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:643,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 644
    functionName: S2CellId::range_min
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 23
    functionsReached:
    - S2CellId::lsb
    - S2CellId::S2CellId
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::range_min() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:647,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 648
    functionName: S2CellId::range_max
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 19
    functionsReached:
    - S2CellId::lsb
    - S2CellId::S2CellId
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::range_max() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:651,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:651,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:652,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:652,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_id.h:653,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_id.h:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: S2CellId::contains
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 3
    functionsReached:
    - S2CellId::is_valid
    - S2CellId::range_max
    - S2CellId::range_min
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S2CellId::contains(S2CellId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:657,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:657,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:658,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:658,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_id.h:659,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_id.h:659,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_id.h:659,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_id.h:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: S2CellId::intersects
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - S2CellId::is_valid
    - S2CellId::range_max
    - S2CellId::range_min
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S2CellId::intersects(S2CellId other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:663,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:663,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_id.h:664,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2cell_id.h:665,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.h:665,1
    - Dst: S2CellId::lsb_for_level
      Src: /src/s2geometry/src/s2/s2cell_id.h:666,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 668
    functionName: S2CellId::parent
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 27
    functionsReached:
    - ABSL_DCHECK_LE
    - S2CellId::level
    - S2CellId::S2CellId
    - S2CellId::is_valid
    - S2CellId::lsb_for_level
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::parent(int level) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:671,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:671,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:672,1
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/s2cell_id.h:672,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:673,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 675
    functionName: S2CellId::parent
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 27
    functionsReached:
    - S2CellId::lsb
    - S2CellId::S2CellId
    - S2CellId::is_face
    - S2CellId::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::parent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:678,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:678,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:679,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_id.h:679,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:684,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - position
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 686
    functionName: S2CellId::child
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 18
    functionsReached:
    - S2CellId::is_leaf
    - S2CellId::lsb
    - S2CellId::S2CellId
    - S2CellId::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::child(int position) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:689,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:689,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:690,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_id.h:690,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:691,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 693
    functionName: S2CellId::child_begin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 20
    functionsReached:
    - S2CellId::is_leaf
    - S2CellId::lsb
    - S2CellId::S2CellId
    - S2CellId::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::child_begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:696,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:696,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_id.h:697,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.h:697,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2cell_id.h:698,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:699,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:699,1
    - Dst: S2CellId::lsb_for_level
      Src: /src/s2geometry/src/s2/s2cell_id.h:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 700
    functionName: S2CellId::child_begin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 20
    functionsReached:
    - ABSL_DCHECK_LE
    - S2CellId::level
    - S2CellId::lsb
    - S2CellId::S2CellId
    - S2CellId::is_valid
    - S2CellId::lsb_for_level
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::child_begin(int level) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:703,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:703,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:704,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_id.h:704,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:705,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 707
    functionName: S2CellId::child_end
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 8
    functionsReached:
    - S2CellId::is_leaf
    - S2CellId::lsb
    - S2CellId::S2CellId
    - S2CellId::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::child_end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:710,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:710,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cell_id.h:711,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_id.h:711,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2cell_id.h:712,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:713,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:713,1
    - Dst: S2CellId::lsb_for_level
      Src: /src/s2geometry/src/s2/s2cell_id.h:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 714
    functionName: S2CellId::child_end
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 8
    functionsReached:
    - ABSL_DCHECK_LE
    - S2CellId::level
    - S2CellId::lsb
    - S2CellId::S2CellId
    - S2CellId::is_valid
    - S2CellId::lsb_for_level
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::child_end(int level) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:717,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 718
    functionName: S2CellId::next
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 24
    functionsReached:
    - S2CellId::lsb
    - S2CellId::S2CellId
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::next() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:721,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2cell_id.h:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 722
    functionName: S2CellId::prev
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 2
    functionsReached:
    - S2CellId::lsb
    - S2CellId::S2CellId
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::prev() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:725,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:725,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_id.h:726,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 729
    functionName: S2CellId::next_wrap
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 3
    functionsReached:
    - S2CellId::is_valid
    - S2CellId::next
    - S2CellId::S2CellId
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::next_wrap() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_id.h:732,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2cell_id.h:732,1
    - Dst: S2CellId::prev
      Src: /src/s2geometry/src/s2/s2cell_id.h:733,1
    - Dst: S2CellId::S2CellId
      Src: /src/s2geometry/src/s2/s2cell_id.h:735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: S2CellId::prev_wrap
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - S2CellId::is_valid
    - S2CellId::S2CellId
    - S2CellId::prev
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::prev_wrap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id.h:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 2
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: S2CellId::Begin
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 27
    functionsReached:
    - S2CellId::FromFace
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::Begin(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_id.h:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 746
    functionName: S2CellId::End
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 29
    functionsReached:
    - S2CellId::FromFace
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2CellId::End(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Hash<S2CellId>
      Src: /src/s2geometry/src/s2/s2cell_id.h:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: operator()(S2CellId id) const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_id.h
    functionUses: 0
    functionsReached:
    - absl::Hash<S2CellId>
    linkageType: ''
    returnType: size_t
    signature: size_t operator()(S2CellId id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: s2coding::EncodedS2PointVector::EncodedS2PointVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2PointVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: s2coding::EncodedS2PointVector::size
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedS2PointVector::size() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2PointVector::DecodeCellIdsFormat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:169,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:172,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - i
    - ' error'
    argTypes:
    - int
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 177
    functionName: s2coding::EncodedS2PointVector::At
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.h
    functionUses: 0
    functionsReached:
    - S2Error::DataLoss
    - s2coding::EncodedS2PointVector::DecodeCellIdsFormat
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point EncodedS2PointVector::At(int i, S2Error& error) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:182,1
    - Dst: At
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:183,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:184,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:185,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:185,1
    - Dst: DecodeCellIdsFormat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:194,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 202
    functionName: EncodedS2PointVector::operator[](int i) const
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.h
    functionUses: 0
    functionsReached:
    - S2Error::message
    - DecodeCellIdsFormat
    - ABSL_LOG
    - S2Error::ok
    - At
    - ABSL_UNREACHABLE
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Point
    signature: S2Point EncodedS2PointVector::operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: s2coding::EncodedS2PointVector::EncodedS2PointVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2PointVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: s2coding::EncodedS2PointVector::size
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedS2PointVector::size() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2PointVector::DecodeCellIdsFormat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:169,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:172,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - i
    - ' error'
    argTypes:
    - int
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 177
    functionName: s2coding::EncodedS2PointVector::At
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.h
    functionUses: 0
    functionsReached:
    - S2Error::DataLoss
    - s2coding::EncodedS2PointVector::DecodeCellIdsFormat
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: S2Point
    signature: S2Point EncodedS2PointVector::At(int i, S2Error& error) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:182,1
    - Dst: At
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:183,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:184,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:185,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:185,1
    - Dst: DecodeCellIdsFormat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:194,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.h:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 202
    functionName: EncodedS2PointVector::operator[](int i) const
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.h
    functionUses: 0
    functionsReached:
    - S2Error::message
    - DecodeCellIdsFormat
    - ABSL_LOG
    - S2Error::ok
    - At
    - ABSL_UNREACHABLE
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Point
    signature: S2Point EncodedS2PointVector::operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2latlng.cc:39,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2latlng.cc:40,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2latlng.cc:40,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2latlng.cc:41,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2latlng.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: S2LatLng::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.cc
    functionUses: 0
    functionsReached:
    - Encoder*::Ensure
    - y
    - x
    - Encoder*::putdouble
    linkageType: ''
    returnType: void
    signature: void S2LatLng::Encode(Encoder* encoder) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2latlng.cc:45,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2latlng.cc:46,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2latlng.cc:50,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2latlng.cc:51,1
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.cc:52,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2latlng.cc:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: S2LatLng::Init
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.cc
    functionUses: 0
    functionsReached:
    - S2Error::DataLoss
    - Decoder*::getdouble
    - R2Point
    - Decoder*::avail
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: bool
    signature: bool S2LatLng::Init(Decoder* decoder, S2Error& error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/s2geometry/src/s2/s2latlng.cc:57,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng.cc:57,1
    - Dst: std::isfinite
      Src: /src/s2geometry/src/s2/s2latlng.cc:57,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng.cc:57,1
    - Dst: S2LatLng::Invalid
      Src: /src/s2geometry/src/s2/s2latlng.cc:59,1
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng.cc:64,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng.cc:64,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng.cc:64,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng.cc:64,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2latlng.cc:65,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng.cc:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: S2LatLng::Normalized
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.cc
    functionUses: 1
    functionsReached:
    - S2LatLng::lng
    - S2LatLng::lat
    - std::isfinite
    - min
    - remainder
    - S2LatLng::Invalid
    - max
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2LatLng::Normalized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng.cc:69,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng.cc:69,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2latlng.cc:71,1
    - Dst: std::isfinite
      Src: /src/s2geometry/src/s2/s2latlng.cc:71,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng.cc:71,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng.cc:71,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2latlng.cc:72,1
    - Dst: std::isfinite
      Src: /src/s2geometry/src/s2/s2latlng.cc:72,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng.cc:72,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng.cc:72,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng.cc:73,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng.cc:74,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: S2LatLng::ToPoint
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.cc
    functionUses: 2
    functionsReached:
    - S2LatLng::is_valid
    - S2LatLng::lat
    - S2LatLng::lng
    - std::isfinite
    - S2Point
    - ABSL_DLOG_IF
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2LatLng::ToPoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2latlng.cc:79,1
    - Dst: S2LatLng::Longitude
      Src: /src/s2geometry/src/s2/s2latlng.cc:79,1
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng.cc:81,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: S2LatLng::S2LatLng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.cc
    functionUses: 15
    functionsReached:
    - S2LatLng::is_valid
    - ABSL_DLOG_IF
    - S2LatLng::Longitude
    - S2LatLng::Latitude
    linkageType: ''
    returnType: void
    signature: void S2LatLng::S2LatLng(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng.cc:96,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng.cc:96,1
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng.cc:98,1
    - Dst: S2LatLng::is_valid
      Src: /src/s2geometry/src/s2/s2latlng.cc:98,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng.cc:101,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng.cc:102,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng.cc:103,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng.cc:104,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng.cc:105,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng.cc:106,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2latlng.cc:107,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2latlng.cc:107,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng.cc:108,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2latlng.cc:108,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2latlng.cc:108,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 109
    functionName: S2LatLng::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.cc
    functionUses: 1
    functionsReached:
    - S2LatLng::is_valid
    - S2LatLng::lng
    - S2LatLng::lat
    - S1Angle::Radians
    - min
    - asin
    - sqrt
    - sin
    - ABSL_DLOG_IF
    - cos
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2LatLng::GetDistance(const S2LatLng& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::Normalized
      Src: /src/s2geometry/src/s2/s2latlng.cc:112,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2latlng.cc:113,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng.cc:113,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: S2LatLng::ToStringInDegrees
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.cc
    functionUses: 1
    functionsReached:
    - absl::StrFormat
    - S2LatLng::Normalized
    - S2LatLng::lat
    - S2LatLng::lng
    linkageType: ''
    returnType: string
    signature: string S2LatLng::ToStringInDegrees() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng.cc:117,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' ll'
    argTypes:
    - std::ostream
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: '& operator<<(std::ostream& os, const S2LatLng& ll)'
    functionSourceFile: /src/s2geometry/src/s2/s2latlng.cc
    functionUses: 0
    functionsReached:
    - lat
    - lng
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const S2LatLng& ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: NumVerticesAtLevel
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int NumVerticesAtLevel(int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:58,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:59,1
    - Dst: S2Fractal::set_min_level
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:62,1
    - Dst: S2Fractal::set_max_level
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:63,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:64,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:65,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:67,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:67,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:68,1
    - Dst: unique_ptr::IsValid
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:68,1
    - Dst: NumVerticesAtLevel
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:85,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:86,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:90,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:96,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:96,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:97,1
    - Dst: NumVerticesAtLevel
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:99,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:100,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:105,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:105,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:106,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:106,1
    - Dst: NumVerticesAtLevel
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:106,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:107,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:107,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:110,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:114,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:116,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:116,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:116,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:117,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:118,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:119,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:119,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:130,1
    - Dst: S2Fractal::min_radius_factor
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:130,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:134,1
    - Dst: S2Fractal::min_radius_factor
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:135,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:138,1
    - Dst: S2Fractal::max_radius_factor
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:138,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - min_level
    - max_level
    - dimension
    argTypes:
    - int
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 144
    functionName: TestFractal
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - S2Fractal::MakeLoop
    - sqrt
    - pow
    - S2Fractal::set_max_level
    - unique_ptr::IsValid
    - EXPECT_NEAR
    - s2random::Frame
    - S1Angle::Radians
    - min
    - NumVerticesAtLevel
    - S2Point::Angle
    - EXPECT_GE
    - Matrix3x3_d::Col
    - EXPECT_LE
    - unique_ptr::vertex
    - max
    - S2Testing::MakeTaggedSeedSeq
    - tan
    - S2Fractal::max_radius_factor
    - S2Fractal::min_radius_factor
    - S2Fractal::set_fractal_dimension
    - ASSERT_TRUE
    - absl::LogInfoStreamer
    - unique_ptr::num_vertices
    - S2Fractal::set_min_level
    linkageType: ''
    returnType: void
    signature: void TestFractal(int min_level, int max_level, double dimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 6
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, TriangleFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 6
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, TriangleMultiFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, SpaceFillingFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:152,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:152,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - log
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, KochCurveFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:154,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:154,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 6
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - log
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, KochCurveMultiFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 6
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, CesaroFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, CesaroMultiFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: NumVerticesAtLevel
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int NumVerticesAtLevel(int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:58,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:59,1
    - Dst: S2Fractal::set_min_level
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:62,1
    - Dst: S2Fractal::set_max_level
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:63,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:64,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:65,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:67,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:67,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:68,1
    - Dst: unique_ptr::IsValid
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:68,1
    - Dst: NumVerticesAtLevel
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:85,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:86,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:90,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:96,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:96,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:97,1
    - Dst: NumVerticesAtLevel
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:99,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:100,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:105,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:105,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:106,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:106,1
    - Dst: NumVerticesAtLevel
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:106,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:107,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:107,1
    - Dst: Matrix3x3_d::Col
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:110,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:114,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:116,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:116,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:116,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:117,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:118,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:119,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:119,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:130,1
    - Dst: S2Fractal::min_radius_factor
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:130,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:134,1
    - Dst: S2Fractal::min_radius_factor
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:135,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:138,1
    - Dst: S2Fractal::max_radius_factor
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:138,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - min_level
    - max_level
    - dimension
    argTypes:
    - int
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 144
    functionName: TestFractal
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 7
    functionsReached:
    - S2Fractal::MakeLoop
    - sqrt
    - pow
    - S2Fractal::set_max_level
    - unique_ptr::IsValid
    - EXPECT_NEAR
    - s2random::Frame
    - S1Angle::Radians
    - min
    - NumVerticesAtLevel
    - S2Point::Angle
    - EXPECT_GE
    - Matrix3x3_d::Col
    - EXPECT_LE
    - unique_ptr::vertex
    - max
    - S2Testing::MakeTaggedSeedSeq
    - tan
    - S2Fractal::max_radius_factor
    - S2Fractal::min_radius_factor
    - S2Fractal::set_fractal_dimension
    - ASSERT_TRUE
    - absl::LogInfoStreamer
    - unique_ptr::num_vertices
    - S2Fractal::set_min_level
    linkageType: ''
    returnType: void
    signature: void TestFractal(int min_level, int max_level, double dimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 6
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, TriangleFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 6
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, TriangleMultiFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, SpaceFillingFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:152,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:152,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - log
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, KochCurveFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:154,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:154,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 6
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - log
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, KochCurveMultiFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 6
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, CesaroFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFractal
      Src: /src/s2geometry/src/s2/s2fractal_test.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2fractal_test.cc
    functionUses: 0
    functionsReached:
    - TestFractal
    linkageType: ''
    returnType: void
    signature: void TEST(S2Fractal, CesaroMultiFractal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:38,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LaxLoopShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: S2LaxLoopShape::S2LaxLoopShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 2
    functionsReached:
    - std::move
    - std::exchange
    linkageType: ''
    returnType: void
    signature: void S2LaxLoopShape::S2LaxLoopShape(S2LaxLoopShape&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:42,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LaxLoopShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: '& S2LaxLoopShape::operator=(S2LaxLoopShape&& other) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 0
    functionsReached:
    - std::move
    - std::exchange
    linkageType: ''
    returnType: S2LaxLoopShape
    signature: S2LaxLoopShape & S2LaxLoopShape::operator=(S2LaxLoopShape&& other)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxLoopShape::Init
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: S2LaxLoopShape::S2LaxLoopShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 2
    functionsReached:
    - S2LaxLoopShape::Init
    linkageType: ''
    returnType: void
    signature: void S2LaxLoopShape::S2LaxLoopShape(Span<const S2Point> vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxLoopShape::Init
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: S2LaxLoopShape::S2LaxLoopShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 2
    functionsReached:
    - S2LaxLoopShape::Init
    linkageType: ''
    returnType: void
    signature: void S2LaxLoopShape::S2LaxLoopShape(const S2Loop& loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:56,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:57,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:58,1
    - Dst: Span<const S2Point>::data
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:58,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: S2LaxLoopShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 3
    functionsReached:
    - Span<const S2Point>::size
    - MakeS2PointArrayForOverwrite
    - get
    - Span<const S2Point>::data
    - std::copy_n
    linkageType: ''
    returnType: void
    signature: void S2LaxLoopShape::Init(Span<const S2Point> vertices)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:62,1
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:62,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:64,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:68,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:69,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:70,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:70,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' loop'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: S2LaxLoopShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 3
    functionsReached:
    - is_full
    - MakeS2PointArrayForOverwrite
    - get
    - S2LaxLoopShape::num_vertices
    - vertex
    - is_empty
    - std::copy_n
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2LaxLoopShape::Init(const S2Loop& loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:75,1
    - Dst: S2LaxLoopShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:75,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:77,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - e0
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: S2LaxLoopShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 1
    functionsReached:
    - Edge
    - S2LaxLoopShape::num_vertices
    - S2LaxLoopShape::num_edges
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2LaxLoopShape::edge(int e0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:82,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:83,1
    - Dst: S2LaxLoopShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:83,1
    - Dst: S2LaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:84,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: S2LaxLoopShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    - S2LaxLoopShape::num_vertices
    - ABSL_DCHECK_LT
    - Edge
    - S2LaxLoopShape::num_edges
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2LaxLoopShape::chain_edge(int i, int j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: S2LaxLoopShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 2
    functionsReached:
    - s2shapeutil::GetReferencePoint
    linkageType: ''
    returnType: S2Shape::ReferencePoint
    signature: S2Shape::ReferencePoint S2LaxLoopShape::GetReferencePoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:94,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:95,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2VertexIdLaxLoopShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 1
    functionsReached:
    - std::move
    - std::exchange
    linkageType: ''
    returnType: void
    signature: "void S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape(\n    S2VertexIdLaxLoopShape&&
      other) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:100,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:101,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2VertexIdLaxLoopShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: "& S2VertexIdLaxLoopShape::operator=(\n    S2VertexIdLaxLoopShape&&
      other) noexcept"
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 0
    functionsReached:
    - std::move
    - std::exchange
    linkageType: ''
    returnType: S2VertexIdLaxLoopShape
    signature: "S2VertexIdLaxLoopShape & S2VertexIdLaxLoopShape::operator=(\n    S2VertexIdLaxLoopShape&&
      other) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2VertexIdLaxLoopShape::Init
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vertex_ids
    - vertex_array
    argTypes:
    - Span<const int32_t>
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 1
    functionsReached:
    - S2VertexIdLaxLoopShape::Init
    linkageType: ''
    returnType: void
    signature: "void S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape(Span<const int32_t>
      vertex_ids,\n                                               const S2Point* vertex_array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Span<const int32_t>::size
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:113,1
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:114,1
    - Dst: int32_t::int32_t
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:114,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:115,1
    - Dst: Span<const int32_t>::data
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:115,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - vertex_ids
    - vertex_array
    argTypes:
    - Span<const int32_t>
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: S2VertexIdLaxLoopShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 1
    functionsReached:
    - get
    - Span<const int32_t>::data
    - Span<const int32_t>::size
    - int32_t::int32_t
    - reset
    - std::copy_n
    linkageType: ''
    returnType: void
    signature: "void S2VertexIdLaxLoopShape::Init(Span<const int32_t> vertex_ids,\n
      \                                 const S2Point* vertex_array)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:120,1
    - Dst: S2VertexIdLaxLoopShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:120,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:122,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:123,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:123,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - e0
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: S2VertexIdLaxLoopShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 0
    functionsReached:
    - S2VertexIdLaxLoopShape::num_edges
    - vertex
    - S2VertexIdLaxLoopShape::num_vertices
    - ABSL_DCHECK_LT
    - Edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2VertexIdLaxLoopShape::edge(int e0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:127,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:128,1
    - Dst: S2VertexIdLaxLoopShape::num_edges
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:128,1
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:129,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:130,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:130,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: S2VertexIdLaxLoopShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 0
    functionsReached:
    - S2VertexIdLaxLoopShape::num_edges
    - ABSL_DCHECK_EQ
    - vertex
    - S2VertexIdLaxLoopShape::num_vertices
    - ABSL_DCHECK_LT
    - Edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge S2VertexIdLaxLoopShape::chain_edge(int i, int j) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2VertexIdLaxLoopShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:135,1
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:135,1
    - Dst: s2shapeutil::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2lax_loop_shape.cc:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: S2VertexIdLaxLoopShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2lax_loop_shape.cc
    functionUses: 1
    functionsReached:
    - s2shapeutil::GetReferencePoint
    - S2VertexIdLaxLoopShape::num_vertices
    - S2Shape::Contained
    linkageType: ''
    returnType: S2Shape::ReferencePoint
    signature: S2Shape::ReferencePoint S2VertexIdLaxLoopShape::GetReferencePoint()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:42,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:45,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:45,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:45,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:46,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:46,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:47,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:49,1
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:53,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:54,1
    - Dst: S2CellId::IJLevelToBoundUV
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:55,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - id
    - padding
    argTypes:
    - S2CellId
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 60
    functionName: S2PaddedCell::S2PaddedCell
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.cc
    functionUses: 0
    functionsReached:
    - is_face
    - R2Rect
    - R1Interval
    - S2CellId::level
    - S2CellId::GetSizeIJ
    - face
    - S2CellId::ToFaceIJOrientation
    - S2CellId::IJLevelToBoundUV
    linkageType: ''
    returnType: void
    signature: void S2PaddedCell::S2PaddedCell(S2CellId id, double padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id_::child
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:69,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:70,1
    - Dst: middle
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ' parent'
    - i
    - j
    argTypes:
    - S2PaddedCell
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: S2PaddedCell::S2PaddedCell
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.cc
    functionUses: 0
    functionsReached:
    - id_::child
    - middle
    - S2CellId::GetSizeIJ
    linkageType: ''
    returnType: void
    signature: void S2PaddedCell::S2PaddedCell(const S2PaddedCell& parent, int i,
      int j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:84,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:85,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:86,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:86,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:87,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:87,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:88,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:88,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: '& S2PaddedCell::middle() const'
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.cc
    functionUses: 0
    functionsReached:
    - S2::STtoUV
    - R2Rect
    - R1Interval
    - S2CellId::GetSizeIJ
    - S2::SiTitoST
    - is_empty
    linkageType: ''
    returnType: R2Rect
    signature: R2Rect & S2PaddedCell::middle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:95,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:98,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: S2PaddedCell::GetCenter
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.cc
    functionUses: 2
    functionsReached:
    - face
    - S2::FaceSiTitoXYZ
    - S2CellId::GetSizeIJ
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2PaddedCell::GetCenter() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:107,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:111,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: S2PaddedCell::GetEntryVertex
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.cc
    functionUses: 3
    functionsReached:
    - face
    - S2::FaceSiTitoXYZ
    - S2CellId::GetSizeIJ
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2PaddedCell::GetEntryVertex() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:119,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:125,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: S2PaddedCell::GetExitVertex
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.cc
    functionUses: 2
    functionsReached:
    - face
    - S2::FaceSiTitoXYZ
    - S2CellId::GetSizeIJ
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2PaddedCell::GetExitVertex() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:129,1
    - Dst: bound
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:129,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:133,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:136,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:136,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:136,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:138,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:138,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:138,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:139,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:139,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:139,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:140,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:151,1
    - Dst: S2PaddedCell::padding
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:151,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:155,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:155,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:155,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:156,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:157,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:157,1
    - Dst: ABSL_ASSUME
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:165,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:166,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:167,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:168,1
    - Dst: S2PaddedCell::id
      Src: /src/s2geometry/src/s2/s2padded_cell.cc:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - ' rect'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 169
    functionName: S2PaddedCell::ShrinkToFit
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell.cc
    functionUses: 2
    functionsReached:
    - S2::STtoUV
    - min
    - S2CellId::GetSizeIJ
    - S2::UVtoST
    - S2CellId::FromFaceIJ
    - S2PaddedCell::padding
    - S2PaddedCell::id
    - bound
    - Expanded
    - S2::STtoIJ
    - S2::SiTitoST
    - ABSL_ASSUME
    - Contains
    - max
    - exactfloat_internal::bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId S2PaddedCell::ShrinkToFit(const R2Rect& rect) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - g
    argTypes:
    - Graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: s2builderutil::GraphShape::GraphShape
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GraphShape(const Graph* g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GraphShape::num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: s2builderutil::GraphShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 1
    functionsReached:
    - s2builderutil::GraphShape::num_edges
    linkageType: ''
    returnType: int
    signature: int num_edges() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GraphShape::edge
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:38,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:39,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:39,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: s2builderutil::GraphShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 1
    functionsReached:
    - Edge
    - s2builderutil::GraphShape::edge
    - vertex
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: s2builderutil::GraphShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: s2builderutil::GraphShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GraphShape::num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: s2builderutil::GraphShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - s2builderutil::GraphShape::num_edges
    linkageType: ''
    returnType: int
    signature: int num_chains() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: s2builderutil::GraphShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - Chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:48,1
    - Dst: s2builderutil::GraphShape::edge
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: s2builderutil::GraphShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - s2builderutil::GraphShape::edge
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: s2builderutil::GraphShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - g
    argTypes:
    - Graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: s2builderutil::GraphShape::GraphShape
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GraphShape(const Graph* g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GraphShape::num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: s2builderutil::GraphShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 3
    functionsReached:
    - s2builderutil::GraphShape::num_edges
    linkageType: ''
    returnType: int
    signature: int num_edges() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GraphShape::edge
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:38,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:39,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:39,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: s2builderutil::GraphShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 3
    functionsReached:
    - Edge
    - s2builderutil::GraphShape::edge
    - vertex
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: s2builderutil::GraphShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: s2builderutil::GraphShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::GraphShape::num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: s2builderutil::GraphShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - s2builderutil::GraphShape::num_edges
    linkageType: ''
    returnType: int
    signature: int num_chains() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: s2builderutil::GraphShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - Chain
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int i) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:48,1
    - Dst: s2builderutil::GraphShape::edge
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: s2builderutil::GraphShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - s2builderutil::GraphShape::edge
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2builderutil_graph_shape.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: s2builderutil::GraphShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cap.cc:49,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2cap.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: S2Cap::GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 5
    functionsReached:
    - S2Cap::height
    - max
    linkageType: ''
    returnType: double
    signature: double S2Cap::GetArea() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:60,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap.cc:60,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2cap.cc:61,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2cap.cc:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: S2Cap::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 1
    functionsReached:
    - S2Cap::GetArea
    - S2Point
    - S2Cap::is_empty
    - S2Cap::height
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Cap::GetCentroid() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap.cc:68,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap.cc:68,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:69,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2cap.cc:69,1
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap.cc:70,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2cap.cc:70,1
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2cap.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: S2Cap::Complement
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 2
    functionsReached:
    - S2Cap::Empty
    - S2Cap::is_empty
    - S2Cap::is_full
    - length2
    - S1ChordAngle::FromLength2
    - S2Cap::S2Cap
    - S2Cap::Full
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cap::Complement() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap.cc:74,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:74,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2cap.cc:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: S2Cap::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 9
    functionsReached:
    - S2Cap::is_empty
    - S2Cap::is_full
    - S1ChordAngle
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::Contains(const S2Cap& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:79,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:79,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2cap.cc:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: S2Cap::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 1
    functionsReached:
    - S2Cap::is_empty
    - S1ChordAngle
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::Intersects(const S2Cap& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2cap.cc:85,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:85,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2cap.cc:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: S2Cap::InteriorIntersects
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 1
    functionsReached:
    - S2Cap::is_empty
    - length2
    - S1ChordAngle
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::InteriorIntersects(const S2Cap& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cap.cc:91,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2cap.cc:91,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:92,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cap.cc:94,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cap.cc:99,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2cap.cc:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: S2Cap::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 2
    functionsReached:
    - S2Cap::is_empty
    - S1ChordAngle::Zero
    - S2::IsUnitLength
    - max
    - S1ChordAngle
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2Cap::AddPoint(const S2Point& p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:104,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:106,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2cap.cc:108,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2cap.cc:109,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2cap.cc:110,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cap.cc:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: S2Cap::AddCap
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 4
    functionsReached:
    - S2Cap::is_empty
    - S1ChordAngle::PlusError
    - S1ChordAngle::length2
    - max
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void S2Cap::AddCap(const S2Cap& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cap.cc:116,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cap.cc:116,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:117,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2cap.cc:117,1
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap.cc:118,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2cap.cc:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: S2Cap::Expanded
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 1
    functionsReached:
    - S2Cap::Empty
    - S2Cap::is_empty
    - S2Cap::S2Cap
    - S1Angle::radians
    - S1ChordAngle
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cap::Expanded(S1Angle distance) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::Union
      Src: /src/s2geometry/src/s2/s2cap.cc:123,1
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap.cc:125,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:125,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cap.cc:129,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cap.cc:130,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2cap.cc:131,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2cap.cc:131,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2cap.cc:137,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2cap.cc:137,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2cap.cc:137,1
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap.cc:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: S2Cap::Union
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 2
    functionsReached:
    - S2Cap::is_empty
    - S2Cap::is_full
    - S2::GetPointOnLine
    - S2Cap::S2Cap
    - center
    - S2Cap::GetRadius
    - S2Cap::Union
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cap::Union(const S2Cap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::S2Cap
      Src: /src/s2geometry/src/s2/s2cap.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: S2Cap::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 0
    functionsReached:
    - S2Cap::S2Cap
    linkageType: ''
    returnType: S2Region
    signature: S2Region * S2Cap::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: S2Cap::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Cap::GetCapBound() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:152,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2cap.cc:152,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cap.cc:156,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2cap.cc:164,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2cap.cc:170,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2cap.cc:187,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2cap.cc:188,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2cap.cc:188,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2cap.cc:190,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2cap.cc:191,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2cap.cc:191,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2cap.cc:192,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2cap.cc:192,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2cap.cc:195,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2cap.cc:195,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2cap.cc:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 197
    functionName: S2Cap::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 0
    functionsReached:
    - S2Cap::is_empty
    - S2LatLng::lat
    - S2LatLng::lng
    - R1Interval
    - asin
    - S1Interval
    - S2LatLngRect::Empty
    - remainder
    - S2LatLngRect
    - sin
    - S2Cap::GetRadius
    - cos
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2Cap::GetRectBound() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector<S2CellId>*::clear
      Src: /src/s2geometry/src/s2/s2cap.cc:205,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2cap.cc:209,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cap.cc:209,1
    - Dst: vector<S2CellId>*::reserve
      Src: /src/s2geometry/src/s2/s2cap.cc:213,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cap.cc:215,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cap.cc:215,1
    - Dst: vector<S2CellId>*::reserve
      Src: /src/s2geometry/src/s2/s2cap.cc:220,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cap.cc:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 223
    functionName: S2Cap::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 1
    functionsReached:
    - GetLevelForMinValue
    - vector<S2CellId>*::push_back
    - vector<S2CellId>*::clear
    - S2Cap::GetRadius
    - S2CellId
    - S2CellId::FromFace
    - vector<S2CellId>*::reserve
    linkageType: ''
    returnType: void
    signature: void S2Cap::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2cap.cc:232,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:235,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap.cc:239,1
    - Dst: sin2
      Src: /src/s2geometry/src/s2/s2cap.cc:245,1
    - Dst: GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cap.cc:247,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2cap.cc:248,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2cap.cc:257,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2cap.cc:263,1
    - Dst: Vector3_d::DotProd
      Src: /src/s2geometry/src/s2/s2cap.cc:264,1
    - Dst: Vector3_d::DotProd
      Src: /src/s2geometry/src/s2/s2cap.cc:264,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - ' cell'
    - vertices
    argTypes:
    - S2Cell
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 268
    functionName: S2Cap::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - S2Cap::is_empty
    - Vector3_d::DotProd
    - S2Cap::Contains
    - sin2
    - GetEdgeRaw
    - S2Point::CrossProd
    - S2Point::Norm2
    - S1ChordAngle::Right
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::Intersects(const S2Cell& cell, const S2Point* vertices)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cap.cc:277,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap.cc:278,1
    - Dst: S2Cap::Complement
      Src: /src/s2geometry/src/s2/s2cap.cc:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 270
    functionDepth: 5
    functionLinenumber: 270
    functionLinenumberEnd: 284
    functionName: S2Cap::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 11
    functionsReached:
    - GetVertex
    - S2Cap::Contains
    - S2Cap::Complement
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::Contains(const S2Cell& cell) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cap.cc:290,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cap.cc:291,1
    - Dst: S2Cap::Intersects
      Src: /src/s2geometry/src/s2/s2cap.cc:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 294
    functionName: S2Cap::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 4
    functionsReached:
    - GetVertex
    - S2Cap::Intersects
    - S2Cap::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::MayIntersect(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cap.cc:297,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2cap.cc:297,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2cap.cc:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: S2Cap::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 12
    functionsReached:
    - S2::IsUnitLength
    - S1ChordAngle
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::Contains(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cap.cc:302,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2cap.cc:302,1
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap.cc:303,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2cap.cc:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: S2Cap::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 1
    functionsReached:
    - S2::IsUnitLength
    - S2Cap::is_full
    - S1ChordAngle
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::InteriorContains(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:308,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:308,1
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap.cc:309,1
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap.cc:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: S2Cap::operator==(const S2Cap& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 0
    functionsReached:
    - S2Cap::is_empty
    - S2Cap::is_full
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::operator==(const S2Cap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cap.cc:313,1
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2cap.cc:314,1
    - Dst: radius_::length2
      Src: /src/s2geometry/src/s2/s2cap.cc:315,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2cap.cc:316,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cap.cc:317,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:318,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2cap.cc:319,1
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap.cc:320,1
    - Dst: S2Cap::is_full
      Src: /src/s2geometry/src/s2/s2cap.cc:321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 2
    argNames:
    - ' other'
    - max_error_angle
    argTypes:
    - S2Cap
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 322
    functionName: S2Cap::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 2
    functionsReached:
    - S2Cap::is_empty
    - length2
    - fabs
    - S2Cap::is_full
    - S2::ApproxEquals
    - S1Angle::radians
    - radius_::length2
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::ApproxEquals(const S2Cap& other, S1Angle max_error_angle)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: center
      Src: /src/s2geometry/src/s2/s2cap.cc:325,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2cap.cc:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' cap'
    argTypes:
    - std::ostream
    - S2Cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: '& operator<<(std::ostream& os, const S2Cap& cap)'
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 0
    functionsReached:
    - center
    - GetRadius
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const S2Cap& cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2cap.cc:330,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2cap.cc:332,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2cap.cc:332,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2cap.cc:333,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2cap.cc:333,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2cap.cc:334,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2cap.cc:334,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2cap.cc:335,1
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2cap.cc:335,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2cap.cc:337,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2cap.cc:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 338
    functionName: S2Cap::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 1
    functionsReached:
    - z
    - length2
    - Encoder*::putdouble
    - Encoder*::Ensure
    - y
    - x
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: void S2Cap::Encode(Encoder* encoder) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2cap.cc:341,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2cap.cc:343,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2cap.cc:344,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2cap.cc:345,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cap.cc:346,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2cap.cc:347,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2cap.cc:347,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cap.cc:349,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2cap.cc:350,1
    - Dst: S2Cap::is_valid
      Src: /src/s2geometry/src/s2/s2cap.cc:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: S2Cap::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2cap.cc
    functionUses: 1
    functionsReached:
    - S2Cap::is_valid
    - S2Point
    - S1ChordAngle::FromLength2
    - ABSL_CHECK
    - Decoder*::avail
    - absl::GetFlag
    - Decoder*::getdouble
    linkageType: ''
    returnType: bool
    signature: bool S2Cap::Decode(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:37,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:40,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:40,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:41,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:41,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:43,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:43,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:44,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:44,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:46,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:46,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:47,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:47,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:49,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:49,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:50,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:50,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:52,1
    - Dst: S2::Angle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:52,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:53,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2measures_test.cc:53,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2measures_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2measures_test.cc
    functionUses: 0
    functionsReached:
    - fabs
    - EXPECT_DOUBLE_EQ
    - S2Point
    - S2::TurnAngle
    - S2::Angle
    linkageType: ''
    returnType: void
    signature: void TEST(S2, AngleMethods)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:59,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:63,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:63,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:64,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:64,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:69,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:70,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2measures_test.cc:72,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:72,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:75,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:77,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:77,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2measures_test.cc:79,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:80,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:80,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2measures_test.cc:83,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2measures_test.cc:84,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:88,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:89,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:90,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2measures_test.cc:91,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2measures_test.cc:92,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2measures_test.cc:95,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:95,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2measures_test.cc:96,1
    - Dst: S2::GirardArea
      Src: /src/s2geometry/src/s2/s2measures_test.cc:96,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2measures_test.cc:99,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2measures_test.cc:100,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:103,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2measures_test.cc:105,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:105,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:109,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:110,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:111,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:112,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:113,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:114,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2measures_test.cc:117,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:118,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:119,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:120,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:121,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:122,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2measures_test.cc:127,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2measures_test.cc:128,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2measures_test.cc:129,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2measures_test.cc:130,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2measures_test.cc:131,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2measures_test.cc:132,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2measures_test.cc:133,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:134,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:134,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:135,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:135,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2measures_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:141,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:141,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2measures_test.cc:141,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2measures_test.cc:142,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2measures_test.cc:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 144
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2measures_test.cc
    functionUses: 0
    functionsReached:
    - std::max
    - s2random::Point
    - S2::GirardArea
    - EXPECT_DOUBLE_EQ
    - ABSL_LOG
    - EXPECT_NEAR
    - S2Point
    - S2::Area
    - S2LatLng::FromRadians
    - Normalize
    - S2LatLng::FromDegrees
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, AreaMethods)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2measures_test.cc:157,1
    - Dst: S2::Area
      Src: /src/s2geometry/src/s2/s2measures_test.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::Area
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetAreaRegression_B229644268)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ij
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: SwapAxes
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SwapAxes(int ij)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ij
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: InvertBits
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int InvertBits(int ij)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:57,1
    - Dst: SwapAxes
      Src: /src/s2geometry/src/s2/s2coords_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:59,1
    - Dst: SwapAxes
      Src: /src/s2geometry/src/s2/s2coords_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:63,1
    - Dst: InvertBits
      Src: /src/s2geometry/src/s2/s2coords_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:65,1
    - Dst: InvertBits
      Src: /src/s2geometry/src/s2/s2coords_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - InvertBits
    - SwapAxes
    linkageType: ''
    returnType: void
    signature: void TEST(S2, TraversalOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:76,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:77,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::STtoIJ
    linkageType: ''
    returnType: void
    signature: void TEST(S2, STtoIJBoundaries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:83,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:84,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:85,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:86,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:87,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:88,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:89,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:90,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:91,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:92,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:93,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:94,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:95,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:96,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 97
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::STtoIJ
    linkageType: ''
    returnType: void
    signature: void TEST(S2, STtoIJHalfway)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2coords_test.cc:100,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2coords_test.cc:101,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2coords_test.cc:103,1
    - Dst: S2::IJtoSTMin
      Src: /src/s2geometry/src/s2/s2coords_test.cc:104,1
    - Dst: S2::IJtoSTMin
      Src: /src/s2geometry/src/s2/s2coords_test.cc:105,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2coords_test.cc:106,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:109,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:109,1
    - Dst: std::nextafter
      Src: /src/s2geometry/src/s2/s2coords_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:111,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - S2::IJtoSTMin
    - std::nextafter
    - S2::STtoIJ
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, IJtoSTtoIJRoundtripRandom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2coords_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:119,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2coords_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:123,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2coords_test.cc:127,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2coords_test.cc:127,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2coords_test.cc:127,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2coords_test.cc:128,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2coords_test.cc:128,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2coords_test.cc:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NEAR
    - S2::STtoUV
    - S2::UVtoST
    linkageType: ''
    returnType: void
    signature: void TEST(S2, ST_UV_Conversions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:134,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:137,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2coords_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:138,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2coords_test.cc:138,1
    - Dst: S2Point::LargestAbsComponent
      Src: /src/s2geometry/src/s2/s2coords_test.cc:138,1
    - Dst: S2Point::Fabs
      Src: /src/s2geometry/src/s2/s2coords_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:141,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:145,1
    - Dst: S2::GetUAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:145,1
    - Dst: S2::GetVAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:145,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:155,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:155,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 158
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - S2Point::Fabs
    - fabs
    - S2Point
    - S2::GetNorm
    - S2::GetVAxis
    - S2Point::S2Point
    - S2Point::LargestAbsComponent
    - EXPECT_EQ
    - S2::GetUAxis
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: void
    signature: void TEST(S2, FaceUVtoXYZ)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:162,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2coords_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:163,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:163,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2coords_test.cc:163,1
    - Dst: S2::GetUAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:164,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2coords_test.cc:164,1
    - Dst: S2::GetUAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:165,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:165,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2coords_test.cc:165,1
    - Dst: S2::GetVAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:166,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:166,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2coords_test.cc:166,1
    - Dst: S2::GetVAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:167,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:167,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2coords_test.cc:167,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2coords_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:168,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:168,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2coords_test.cc:168,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2coords_test.cc:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2::GetVAxis
    - S2::GetNorm
    - EXPECT_EQ
    - S2::GetUAxis
    - S2::FaceXYZtoUVW
    linkageType: ''
    returnType: void
    signature: void TEST(S2, FaceXYZtoUVW)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2coords_test.cc:173,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2coords_test.cc:174,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2coords_test.cc:178,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/s2coords_test.cc:181,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2coords_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:182,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:185,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2coords_test.cc:188,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2coords_test.cc:188,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/s2coords_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:193,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:196,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2coords_test.cc:200,1
    - Dst: absl::Uniform<uint32_t>
      Src: /src/s2geometry/src/s2/s2coords_test.cc:205,1
    - Dst: absl::Uniform<uint32_t>
      Src: /src/s2geometry/src/s2/s2coords_test.cc:206,1
    - Dst: S2::FaceSiTitoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:208,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/s2coords_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:212,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2coords_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:219,1
    - Dst: S2CellId::FromFaceIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:220,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 226
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToPoint
    - S2::FaceSiTitoXYZ
    - EXPECT_TRUE
    - S2Point
    - absl::Uniform<uint32_t>
    - S2::XYZtoFaceSiTi
    - s2random::CellId
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    - S2CellId::FromFaceIJ
    linkageType: ''
    returnType: void
    signature: void TEST(S2, XYZToFaceSiTi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:233,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:233,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:234,1
    - Dst: S2::GetUNorm
      Src: /src/s2geometry/src/s2/s2coords_test.cc:235,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:236,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:236,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:237,1
    - Dst: S2::GetVNorm
      Src: /src/s2geometry/src/s2/s2coords_test.cc:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetVNorm
    - S2::GetUNorm
    - EXPECT_DOUBLE_EQ
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: void
    signature: void TEST(S2, UVNorms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:246,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:246,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:246,1
    - Dst: S2::GetUAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:248,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:248,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:248,1
    - Dst: S2::GetVAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:249,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:250,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:250,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2coords_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:253,1
    - Dst: S2::GetUAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:253,1
    - Dst: S2::GetVAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:253,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2coords_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:257,1
    - Dst: S2::GetUAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:257,1
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:257,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:258,1
    - Dst: S2::GetVAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:258,1
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:259,1
    - Dst: S2::GetNorm
      Src: /src/s2geometry/src/s2/s2coords_test.cc:259,1
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 261
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetVAxis
    - S2::GetNorm
    - S2::GetUVWAxis
    - EXPECT_EQ
    - S2::GetUAxis
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: void
    signature: void TEST(S2, UVWAxis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:267,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2coords_test.cc:267,1
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:267,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2coords_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:269,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2coords_test.cc:269,1
    - Dst: S2::GetUVWAxis
      Src: /src/s2geometry/src/s2/s2coords_test.cc:269,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2coords_test.cc:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetUVWAxis
    - S2::GetFace
    - S2::GetUVWFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2, UVWFace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GTEST_SKIP
      Src: /src/s2geometry/src/s2/s2coords_test.cc:279,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2coords_test.cc:283,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2coords_test.cc:288,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 289
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GE
    - GTEST_SKIP
    - std::numeric_limits<double>::quiet_NaN
    - S2::STtoIJ
    linkageType: ''
    returnType: void
    signature: void TEST(S2, NaNInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/s2coords_test.cc:293,1
    - Dst: EXPECT_DEBUG_DEATH
      Src: /src/s2geometry/src/s2/s2coords_test.cc:295,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEBUG_DEATH
    - std::numeric_limits<double>::quiet_NaN
    - S2::STtoIJ
    linkageType: ''
    returnType: void
    signature: void TEST(S2DeathTest, NaNInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2coords_test.cc:303,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2coords_test.cc:305,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2coords_test.cc:305,1
    - Dst: absl::has_single_bit
      Src: /src/s2geometry/src/s2/s2coords_test.cc:314,1
    - Dst: S2::STtoIJ
      Src: /src/s2geometry/src/s2/s2coords_test.cc:315,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2coords_test.cc:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 318
    functionName: BM_STtoIJ
    functionSourceFile: /src/s2geometry/src/s2/s2coords_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - absl::has_single_bit
    - S2::STtoIJ
    - s2random::LogUniform
    - std::vector::reserve
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_STtoIJ(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - absl::string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: S2::S2PointMatcher::S2PointMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakePointOrDie
    linkageType: ''
    returnType: void
    signature: void S2PointMatcher(absl::string_view expected, S1Angle tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: S2::S2PointMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: S2::S2PointMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: S2::S2PolylineMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: S2::S2PolylineMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:213,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PolylineMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: S2::S2PolylineMatcher::S2PolylineMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: void
    signature: void S2PolylineMatcher(const S2PolylineMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:218,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PolylineMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: '& operator=(const S2PolylineMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: S2PolylineMatcher
    signature: S2PolylineMatcher & operator=(const S2PolylineMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2Polyline
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: S2::S2PolylineMatcher::S2PolylineMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: void S2PolylineMatcher(const S2Polyline& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: S2::S2PolylineMatcher::S2PolylineMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void S2PolylineMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: ~S2PolylineMatcher()
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2PolylineMatcher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: S2::S2PolylineMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: S2::S2PolylineMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: S2::S2PolygonMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: S2::S2PolygonMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2Polygon
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: S2::S2PolygonMatcher::S2PolygonMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: void S2PolygonMatcher(const S2Polygon& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: S2::S2PolygonMatcher::S2PolygonMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void S2PolygonMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:303,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PolygonMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: S2::S2PolygonMatcher::S2PolygonMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: void
    signature: void S2PolygonMatcher(const S2PolygonMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:308,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PolygonMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: '& operator=(const S2PolygonMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: S2PolygonMatcher
    signature: S2PolygonMatcher & operator=(const S2PolygonMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: S2::S2PolygonMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: S2::S2PolygonMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 344
    functionName: S2::S2LoopMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: S2::S2LoopMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2Loop
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: S2::S2LoopMatcher::S2LoopMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: void S2LoopMatcher(const S2Loop& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: S2::S2LoopMatcher::S2LoopMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLoopOrDie
    linkageType: ''
    returnType: void
    signature: void S2LoopMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:361,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LoopMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: S2::S2LoopMatcher::S2LoopMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: void
    signature: void S2LoopMatcher(const S2LoopMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:366,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LoopMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: '& operator=(const S2LoopMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: S2LoopMatcher
    signature: S2LoopMatcher & operator=(const S2LoopMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: S2::S2LoopMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: S2::S2LoopMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    functionName: S2::S2LatLngRectMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: S2::S2LatLngRectMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - tolerance
    argTypes:
    - ComparisonType
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: S2::S2LatLngRectMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S2LatLng tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2LatLngRect
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: S2::S2LatLngRectMatcher::S2LatLngRectMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectMatcher(const S2LatLngRect& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: S2::S2LatLngRectMatcher::S2LatLngRectMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLatLngRectOrDie
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRectMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: S2::S2LatLngRectMatcher::S2LatLngRectMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectMatcher(const S2LatLngRectMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRectMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 467
    functionName: '& operator=(const S2LatLngRectMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2LatLngRectMatcher
    signature: S2LatLngRectMatcher & operator=(const S2LatLngRectMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: S2::S2LatLngRectMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: S2::S2LatLngRectMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 499
    functionName: S2::S2LatLngMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: S2::S2LatLngMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2LatLng
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: S2::S2LatLngMatcher::S2LatLngMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLngMatcher(const S2LatLng& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: S2::S2LatLngMatcher::S2LatLngMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLatLngOrDie
    linkageType: ''
    returnType: void
    signature: void S2LatLngMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: S2::S2LatLngMatcher::S2LatLngMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLngMatcher(const S2LatLngMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 519
    functionName: '& operator=(const S2LatLngMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2LatLngMatcher
    signature: S2LatLngMatcher & operator=(const S2LatLngMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: S2::S2LatLngMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: S2::S2LatLngMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - tolerance
    argTypes:
    - absl::string_view
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: S2::S2PointMatcher::S2PointMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakePointOrDie
    linkageType: ''
    returnType: void
    signature: void S2PointMatcher(absl::string_view expected, S1Angle tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: S2::S2PointMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: S2::S2PointMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: S2::S2PolylineMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: S2::S2PolylineMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:213,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PolylineMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: S2::S2PolylineMatcher::S2PolylineMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: void
    signature: void S2PolylineMatcher(const S2PolylineMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:218,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PolylineMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: '& operator=(const S2PolylineMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: S2PolylineMatcher
    signature: S2PolylineMatcher & operator=(const S2PolylineMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2Polyline
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: S2::S2PolylineMatcher::S2PolylineMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: void S2PolylineMatcher(const S2Polyline& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: S2::S2PolylineMatcher::S2PolylineMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void S2PolylineMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: ~S2PolylineMatcher()
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2PolylineMatcher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: S2::S2PolylineMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: S2::S2PolylineMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: S2::S2PolygonMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: S2::S2PolygonMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2Polygon
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: S2::S2PolygonMatcher::S2PolygonMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: void S2PolygonMatcher(const S2Polygon& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: S2::S2PolygonMatcher::S2PolygonMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakePolygonOrDie
    linkageType: ''
    returnType: void
    signature: void S2PolygonMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:303,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PolygonMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: S2::S2PolygonMatcher::S2PolygonMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: void
    signature: void S2PolygonMatcher(const S2PolygonMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:308,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2PolygonMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: '& operator=(const S2PolygonMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: S2PolygonMatcher
    signature: S2PolygonMatcher & operator=(const S2PolygonMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: S2::S2PolygonMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: S2::S2PolygonMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 344
    functionName: S2::S2LoopMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: S2::S2LoopMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2Loop
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: S2::S2LoopMatcher::S2LoopMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: void S2LoopMatcher(const S2Loop& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: S2::S2LoopMatcher::S2LoopMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLoopOrDie
    linkageType: ''
    returnType: void
    signature: void S2LoopMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:361,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LoopMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: S2::S2LoopMatcher::S2LoopMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: void
    signature: void S2LoopMatcher(const S2LoopMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/gmock_matchers.h:366,1
    - Dst: expected_::Clone
      Src: /src/s2geometry/src/s2/gmock_matchers.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LoopMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: '& operator=(const S2LoopMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - reset
    - expected_::Clone
    linkageType: ''
    returnType: S2LoopMatcher
    signature: S2LoopMatcher & operator=(const S2LoopMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: S2::S2LoopMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: S2::S2LoopMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    functionName: S2::S2LatLngRectMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: S2::S2LatLngRectMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - tolerance
    argTypes:
    - ComparisonType
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: S2::S2LatLngRectMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S2LatLng tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2LatLngRect
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: S2::S2LatLngRectMatcher::S2LatLngRectMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectMatcher(const S2LatLngRect& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngRectOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: S2::S2LatLngRectMatcher::S2LatLngRectMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLatLngRectOrDie
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRectMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: S2::S2LatLngRectMatcher::S2LatLngRectMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLngRectMatcher(const S2LatLngRectMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRectMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 467
    functionName: '& operator=(const S2LatLngRectMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2LatLngRectMatcher
    signature: S2LatLngRectMatcher & operator=(const S2LatLngRectMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: S2::S2LatLngRectMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: S2::S2LatLngRectMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 499
    functionName: S2::S2LatLngMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_type
    - a_tolerance
    argTypes:
    - ComparisonType
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: S2::S2LatLngMatcher::Options
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Options(ComparisonType a_type, S1Angle a_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' expected'
    - options
    argTypes:
    - S2LatLng
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: S2::S2LatLngMatcher::S2LatLngMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLngMatcher(const S2LatLng& expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngOrDie
      Src: /src/s2geometry/src/s2/gmock_matchers.h:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - expected
    - options
    argTypes:
    - absl::string_view
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: S2::S2LatLngMatcher::S2LatLngMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakeLatLngOrDie
    linkageType: ''
    returnType: void
    signature: void S2LatLngMatcher(absl::string_view expected, Options options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: S2::S2LatLngMatcher::S2LatLngMatcher
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LatLngMatcher(const S2LatLngMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 519
    functionName: '& operator=(const S2LatLngMatcher& other)'
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2LatLngMatcher
    signature: S2LatLngMatcher & operator=(const S2LatLngMatcher& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: S2::S2LatLngMatcher::DescribeTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/gmock_matchers.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: S2::S2LatLngMatcher::DescribeNegationTo
    functionSourceFile: /src/s2geometry/src/s2/gmock_matchers.h
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    linkageType: ''
    returnType: void
    signature: void DescribeNegationTo(std::ostream* os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:47,1
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: S2CellRangeIterator::S2CellRangeIterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - std::move
    - Begin
    linkageType: ''
    returnType: void
    signature: void S2CellRangeIterator(Iterator iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& iterator() const'
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iterator
    signature: Iterator & iterator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellRangeIterator::id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: S2CellRangeIterator::id
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 1
    functionsReached:
    - S2CellRangeIterator::id
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId id() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: S2CellRangeIterator::range_min
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId range_min() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: S2CellRangeIterator::range_max
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId range_max() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellRangeIterator::range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:67,1
    - Dst: S2CellRangeIterator::range_min
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:67,1
    - Dst: S2CellRangeIterator::range_min
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:68,1
    - Dst: S2CellRangeIterator::range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2CellRangeIterator<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: S2CellRangeIterator::Relation
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - S2CellRangeIterator::range_min
    - S2CellRangeIterator::range_max
    linkageType: ''
    returnType: int
    signature: int Relation(const S2CellRangeIterator<T>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellRangeIterator::done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: S2CellRangeIterator::done
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 1
    functionsReached:
    - S2CellRangeIterator::done
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellRangeIterator<Iterator>
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:118,1
    - Dst: Iterator
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: MakeS2CellRangeIterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 11
    functionsReached:
    - Iterator
    - S2CellRangeIterator<Iterator>
    linkageType: ''
    returnType: S2CellRangeIterator<typename Index::Iterator>
    signature: "S2CellRangeIterator<typename Index::Iterator> MakeS2CellRangeIterator(\n
      \   const Index* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellRangeIterator<absl::decay_t<Iterator>>
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:127,1
    - Dst: std::forward<Iterator>
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' iter'
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: MakeS2CellRangeIterator
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 11
    functionsReached:
    - S2CellRangeIterator<absl::decay_t<Iterator>>
    - std::forward<Iterator>
    linkageType: ''
    returnType: auto
    signature: auto MakeS2CellRangeIterator(Iterator&& iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:135,1
    - Dst: Refresh
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: S2CellRangeIterator<Iterator>::S2CellRangeIterator::Begin()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - Refresh
    - Begin
    linkageType: ''
    returnType: void
    signature: void S2CellRangeIterator<Iterator>::S2CellRangeIterator::Begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:141,1
    - Dst: Refresh
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: S2CellRangeIterator<Iterator>::S2CellRangeIterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - Refresh
    - Next
    linkageType: ''
    returnType: void
    signature: void S2CellRangeIterator<Iterator>::S2CellRangeIterator::Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:147,1
    - Dst: Refresh
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: S2CellRangeIterator<Iterator>::S2CellRangeIterator::Prev()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - Refresh
    - Prev
    linkageType: ''
    returnType: bool
    signature: bool S2CellRangeIterator<Iterator>::S2CellRangeIterator::Prev()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:154,1
    - Dst: Refresh
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: S2CellRangeIterator<Iterator>::S2CellRangeIterator::Seek(S2CellId
      target)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - Refresh
    - Seek
    linkageType: ''
    returnType: void
    signature: void S2CellRangeIterator<Iterator>::S2CellRangeIterator::Seek(S2CellId
      target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Finish
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:160,1
    - Dst: Refresh
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: S2CellRangeIterator<Iterator>::S2CellRangeIterator::Finish()
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - Refresh
    - Finish
    linkageType: ''
    returnType: void
    signature: void S2CellRangeIterator<Iterator>::S2CellRangeIterator::Finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:167,1
    - Dst: Refresh
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: "S2CellRangeIterator<Iterator>::S2CellRangeIterator::Locate(\n    const
      S2Point& target)"
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - Refresh
    - Locate
    linkageType: ''
    returnType: bool
    signature: "bool S2CellRangeIterator<Iterator>::S2CellRangeIterator::Locate(\n
      \   const S2Point& target)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:179,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:179,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:180,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:182,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:182,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:187,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:187,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:194,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 198
    functionName: S2CellRangeIterator<Iterator>::Locate
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - S2CellId::range_max
    - done
    - S2CellId::range_min
    - Seek
    - id
    - Prev
    - range_min
    - range_max
    linkageType: ''
    returnType: S2CellRelation
    signature: S2CellRelation S2CellRangeIterator<Iterator>::Locate(S2CellId target)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:205,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:205,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:206,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:208,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:208,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:208,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:208,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:213,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:213,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:220,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:220,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2CellRangeIterator<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 224
    functionName: "S2CellRangeIterator<Iterator>::S2CellRangeIterator::Locate(\n    const
      S2CellRangeIterator<T>& target)"
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - done
    - Seek
    - id
    - Prev
    - range_min
    - range_max
    linkageType: ''
    returnType: S2CellRelation
    signature: "S2CellRelation S2CellRangeIterator<Iterator>::S2CellRangeIterator::Locate(\n
      \   const S2CellRangeIterator<T>& target)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:230,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:230,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:235,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:235,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:235,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:236,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:236,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:236,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:237,1
    - Dst: S2CellRangeIterator<Iterator>::Refresh
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2CellRangeIterator<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: S2CellRangeIterator<Iterator>::SeekTo
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - done
    - Seek
    - id
    - Prev
    - range_min
    - range_max
    - Next
    - S2CellRangeIterator<Iterator>::Refresh
    linkageType: ''
    returnType: void
    signature: "void S2CellRangeIterator<Iterator>::SeekTo(\n    const S2CellRangeIterator<T>&
      target)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:247,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:247,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:248,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:248,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:248,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:249,1
    - Dst: S2CellRangeIterator<Iterator>::Refresh
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2CellRangeIterator<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 252
    functionName: S2CellRangeIterator<Iterator>::SeekBeyond
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 0
    functionsReached:
    - done
    - Seek
    - range_min
    - range_max
    - Next
    - S2CellRangeIterator<Iterator>::Refresh
    linkageType: ''
    returnType: void
    signature: "void S2CellRangeIterator<Iterator>::SeekBeyond(\n    const S2CellRangeIterator<T>&
      target)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: done
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:258,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:259,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:260,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:262,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_range_iterator.h:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: S2CellRangeIterator<Iterator>::Refresh
    functionSourceFile: /src/s2geometry/src/s2/s2cell_range_iterator.h
    functionUses: 2
    functionsReached:
    - id
    - S2CellId::Sentinel
    - done
    linkageType: ''
    returnType: void
    signature: void S2CellRangeIterator<Iterator>::Refresh()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:45,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:47,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:48,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:49,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ' shape'
    - ' vtest'
    - result
    argTypes:
    - S2Shape
    - S2Point
    - ReferencePoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 58
    functionName: s2shapeutil::GetReferencePointAtVertex
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - S2ContainsVertexQuery::ContainsSign
    - edge
    - S2ContainsVertexQuery::AddEdge
    linkageType: ''
    returnType: bool
    signature: "bool GetReferencePointAtVertex(\n    const S2Shape& shape, const S2Point&
      vtest, ReferencePoint* result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:62,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:62,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:63,1
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:66,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:66,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:73,1
    - Dst: s2shapeutil::GetReferencePointAtVertex
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:75,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:82,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:85,1
    - Dst: S2Shape::Edge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:87,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:89,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:89,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:89,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:90,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:90,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:90,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:93,1
    - Dst: s2shapeutil::GetReferencePointAtVertex
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:93,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:97,1
    - Dst: s2shapeutil::GetReferencePointAtVertex
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:97,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:104,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:105,1
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:105,1
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 108
    functionName: s2shapeutil::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc
    functionUses: 6
    functionsReached:
    - ABSL_DCHECK_EQ
    - std::sort
    - num_edges
    - end
    - vector::end
    - ABSL_CHECK
    - dimension
    - num_chains
    - chain
    - edge
    - vector::begin
    - begin
    - S2Shape::Contained
    - s2shapeutil::GetReferencePointAtVertex
    - S2Shape::Edge
    linkageType: ''
    returnType: S2Shape::ReferencePoint
    signature: S2Shape::ReferencePoint GetReferencePoint(const S2Shape& shape)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:45,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:47,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:48,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:49,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ' shape'
    - ' vtest'
    - result
    argTypes:
    - S2Shape
    - S2Point
    - ReferencePoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 58
    functionName: s2shapeutil::GetReferencePointAtVertex
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc
    functionUses: 1
    functionsReached:
    - num_edges
    - S2ContainsVertexQuery::ContainsSign
    - edge
    - S2ContainsVertexQuery::AddEdge
    linkageType: ''
    returnType: bool
    signature: "bool GetReferencePointAtVertex(\n    const S2Shape& shape, const S2Point&
      vtest, ReferencePoint* result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:62,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:62,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:63,1
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:66,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:66,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:73,1
    - Dst: s2shapeutil::GetReferencePointAtVertex
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:75,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:82,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:85,1
    - Dst: S2Shape::Edge
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:87,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:89,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:89,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:89,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:90,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:90,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:90,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:93,1
    - Dst: s2shapeutil::GetReferencePointAtVertex
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:93,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:97,1
    - Dst: s2shapeutil::GetReferencePointAtVertex
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:97,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:104,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:105,1
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:105,1
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 108
    functionName: s2shapeutil::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc
    functionUses: 6
    functionsReached:
    - ABSL_DCHECK_EQ
    - std::sort
    - num_edges
    - end
    - vector::end
    - ABSL_CHECK
    - dimension
    - num_chains
    - chain
    - edge
    - vector::begin
    - begin
    - S2Shape::Contained
    - s2shapeutil::GetReferencePointAtVertex
    - S2Shape::Edge
    linkageType: ''
    returnType: S2Shape::ReferencePoint
    signature: S2Shape::ReferencePoint GetReferencePoint(const S2Shape& shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: s2builderutil::WindingOracle::current_ref_winding
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int current_ref_winding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:127,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:127,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:128,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:128,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:129,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:129,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:130,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:130,1
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:134,1
    - Dst: s2builderutil::FindFirstVertexId
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:135,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:136,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:137,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:138,1
    - Dst: s2builderutil::GetSnappedWindingDelta
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:139,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:141,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:141,1
    - Dst: MutableS2ShapeIndex::Options::set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:156,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:157,1
    - Dst: set_memory_tracker
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:158,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:158,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:159,1
    - Dst: make_unique<s2builderutil::GraphShape>
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ref_input_edge_id
    - ref_winding_in
    - ' builder'
    - g
    argTypes:
    - InputEdgeId
    - int
    - S2Builder
    - Graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 160
    functionName: s2builderutil::WindingOracle::WindingOracle
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - Init
    - Add
    - make_unique<s2builderutil::GraphShape>
    - set_memory_tracker
    - input_edge
    - s2builderutil::GetSnappedWindingDelta
    - vertex
    - options
    - MutableS2ShapeIndex::Options::set_max_edges_per_cell
    - S2Error::S2Error
    - S2Error::ok
    - s2builderutil::FindFirstVertexId
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void WindingOracle::WindingOracle(\n    InputEdgeId ref_input_edge_id,
      int ref_winding_in,\n    const S2Builder& builder, const Graph* g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosser*::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:165,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:165,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:165,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:166,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crosser
    - e
    argTypes:
    - S2EdgeCrosser*
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: s2builderutil::WindingOracle::SignedCrossingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - vertex
    - edge
    - S2EdgeCrosser*::SignedEdgeOrVertexCrossing
    linkageType: ''
    returnType: int
    signature: "int WindingOracle::SignedCrossingDelta(S2EdgeCrosser* crosser,\n                                              EdgeId
      e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:177,1
    - Dst: s2builderutil::WindingOracle::SignedCrossingDelta
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:178,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:182,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:182,1
    - Dst: s2builderutil::WindingOracle::SignedCrossingDelta
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 193
    functionName: s2builderutil::WindingOracle::GetWindingNumber
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - S2CrossingEdgeQuery::GetCandidates
    - shape
    - s2builderutil::WindingOracle::SignedCrossingDelta
    linkageType: ''
    returnType: int
    signature: int WindingOracle::GetWindingNumber(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:200,1
    - Dst: S2WindingOperation*::options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - op
    - result_layer
    argTypes:
    - S2WindingOperation*
    - unique_ptr<S2Builder::Layer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: s2builderutil::WindingLayer::WindingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - S2WindingOperation*::options
    - std::move
    linkageType: ''
    returnType: void
    signature: "void WindingLayer(const S2WindingOperation* op,\n               unique_ptr<S2Builder::Layer>
      result_layer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: s2builderutil::WindingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions WindingLayer::graph_options() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:241,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:251,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:251,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:258,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:258,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:259,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:259,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:260,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:263,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:264,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:265,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:265,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:266,1
    - Dst: input_edge_id_set_id
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:266,1
    - Dst: MakeSubgraph
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:280,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:283,1
    - Dst: s2builderutil::WindingLayer::ComputeBoundary
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:289,1
    - Dst: s2builderutil::WindingLayer::MatchesRule
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:302,1
    - Dst: WindingOracle::current_ref_winding
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:302,1
    - Dst: Graph::input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:304,1
    - Dst: Graph::MakeSubgraph
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:305,1
    - Dst: s2builderutil::WindingLayer::graph_options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:306,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:308,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:308,1
    - Dst: s2builderutil::WindingLayer::Build
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:309,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 311
    functionName: s2builderutil::WindingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 1
    functionsReached:
    - input_edge_id_set_id
    - vector::push_back
    - input_edge_ids
    - num_edges
    - s2builderutil::WindingLayer::ComputeBoundary
    - input_edge_id_set_lexicon
    - WindingOracle::current_ref_winding
    - Graph::MakeSubgraph
    - s2builderutil::WindingLayer::Build
    - Clear
    - AddSpace
    - edge
    - MakeSubgraph
    - Graph::input_edge_id_set_lexicon
    - ok
    - s2builderutil::WindingLayer::graph_options
    - s2builderutil::WindingLayer::MatchesRule
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void WindingLayer::Build(const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:321,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:322,1
    - Dst: GetSiblingMap
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:324,1
    - Dst: GetLeftTurnMap
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:326,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:327,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:327,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:330,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:332,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:343,1
    - Dst: s2builderutil::WindingLayer::GetContainingLoopEdge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:344,1
    - Dst: WindingOracle*::GetWindingNumber
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:345,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:345,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:349,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:350,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:351,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:352,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:353,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:365,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:366,1
    - Dst: s2builderutil::WindingLayer::MatchesRule
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:371,1
    - Dst: s2builderutil::WindingLayer::MatchesRule
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:371,1
    - Dst: s2builderutil::WindingLayer::MatchesDegeneracy
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:372,1
    - Dst: s2builderutil::WindingLayer::OutputEdge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:373,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:380,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:381,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:386,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:387,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - ' g'
    - oracle
    - absl_nonnull
    argTypes:
    - Graph
    - WindingOracle*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 388
    functionName: s2builderutil::WindingLayer::ComputeBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 1
    functionsReached:
    - GetLeftTurnMap
    - WindingOracle*::GetWindingNumber
    - input_edge_ids
    - num_edges
    - vector::back
    - Untally
    - s2builderutil::WindingLayer::GetContainingLoopEdge
    - ok
    - s2builderutil::WindingLayer::MatchesRule
    - ABSL_DCHECK
    - s2builderutil::WindingLayer::MatchesDegeneracy
    - vector::push_back
    - Tally
    - vector::empty
    - s2builderutil::WindingLayer::OutputEdge
    - vector::pop_back
    - vertex
    - edge
    - AddSpace
    - GetSiblingMap
    linkageType: ''
    returnType: bool
    signature: "bool WindingLayer::ComputeBoundary(const Graph& g, WindingOracle*
      oracle,\n                                   S2Error* absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:397,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:397,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:398,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:404,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:404,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:405,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:405,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:409,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:409,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:410,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:410,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:410,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:410,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:411,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:411,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - v
    - start
    - ' g'
    - left_turn_map
    - sibling_map
    argTypes:
    - VertexId
    - EdgeId
    - Graph
    - absl::Span<const EdgeId>
    - absl::Span<const EdgeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 417
    functionName: s2builderutil::WindingLayer::GetContainingLoopEdge
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 1
    functionsReached:
    - S2::AngleContainsVertex
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_NE
    - vertex
    - edge
    linkageType: ''
    returnType: EdgeId
    signature: "EdgeId WindingLayer::GetContainingLoopEdge(\n    VertexId v, EdgeId
      start, const Graph& g,\n    absl::Span<const EdgeId> left_turn_map,\n    absl::Span<const
      EdgeId> sibling_map) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - winding
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 427
    functionName: s2builderutil::WindingLayer::MatchesRule
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 2
    functionsReached:
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool WindingLayer::MatchesRule(int winding) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_::include_degeneracies
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - winding
    - winding_minus
    - winding_plus
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 465
    functionName: s2builderutil::WindingLayer::MatchesDegeneracy
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 1
    functionsReached:
    - options_::include_degeneracies
    linkageType: ''
    returnType: bool
    signature: "bool WindingLayer::MatchesDegeneracy(int winding, int winding_minus,\n
      \                                    int winding_plus) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:469,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:470,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:471,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:471,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:472,1
    - Dst: input_edge_id_set_id
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' g'
    - e
    argTypes:
    - Graph
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: s2builderutil::WindingLayer::OutputEdge
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 1
    functionsReached:
    - input_edge_id_set_id
    - AddSpace
    - edge
    - push_back
    linkageType: ''
    returnType: void
    signature: void WindingLayer::OutputEdge(const Graph& g, EdgeId e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: s2builderutil::WindingOracle::current_ref_winding
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int current_ref_winding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:127,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:127,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:128,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:128,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:129,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:129,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:130,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:130,1
    - Dst: input_edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:134,1
    - Dst: s2builderutil::FindFirstVertexId
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:135,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:136,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:137,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:138,1
    - Dst: s2builderutil::GetSnappedWindingDelta
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:139,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:141,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:141,1
    - Dst: MutableS2ShapeIndex::Options::set_max_edges_per_cell
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:156,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:157,1
    - Dst: set_memory_tracker
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:158,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:158,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:159,1
    - Dst: make_unique<s2builderutil::GraphShape>
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ref_input_edge_id
    - ref_winding_in
    - ' builder'
    - g
    argTypes:
    - InputEdgeId
    - int
    - S2Builder
    - Graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 160
    functionName: s2builderutil::WindingOracle::WindingOracle
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - Init
    - Add
    - make_unique<s2builderutil::GraphShape>
    - set_memory_tracker
    - input_edge
    - s2builderutil::GetSnappedWindingDelta
    - vertex
    - options
    - MutableS2ShapeIndex::Options::set_max_edges_per_cell
    - S2Error::S2Error
    - S2Error::ok
    - s2builderutil::FindFirstVertexId
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void WindingOracle::WindingOracle(\n    InputEdgeId ref_input_edge_id,
      int ref_winding_in,\n    const S2Builder& builder, const Graph* g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosser*::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:165,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:165,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:165,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:166,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crosser
    - e
    argTypes:
    - S2EdgeCrosser*
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: s2builderutil::WindingOracle::SignedCrossingDelta
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 1
    functionsReached:
    - vertex
    - edge
    - S2EdgeCrosser*::SignedEdgeOrVertexCrossing
    linkageType: ''
    returnType: int
    signature: "int WindingOracle::SignedCrossingDelta(S2EdgeCrosser* crosser,\n                                              EdgeId
      e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:177,1
    - Dst: s2builderutil::WindingOracle::SignedCrossingDelta
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:178,1
    - Dst: S2CrossingEdgeQuery::GetCandidates
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:182,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:182,1
    - Dst: s2builderutil::WindingOracle::SignedCrossingDelta
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 193
    functionName: s2builderutil::WindingOracle::GetWindingNumber
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - S2CrossingEdgeQuery::GetCandidates
    - shape
    - s2builderutil::WindingOracle::SignedCrossingDelta
    linkageType: ''
    returnType: int
    signature: int WindingOracle::GetWindingNumber(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:200,1
    - Dst: S2WindingOperation*::options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - op
    - result_layer
    argTypes:
    - S2WindingOperation*
    - unique_ptr<S2Builder::Layer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: s2builderutil::WindingLayer::WindingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - S2WindingOperation*::options
    - std::move
    linkageType: ''
    returnType: void
    signature: "void WindingLayer(const S2WindingOperation* op,\n               unique_ptr<S2Builder::Layer>
      result_layer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: s2builderutil::WindingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 1
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions WindingLayer::graph_options() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:241,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:251,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:251,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:258,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:258,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:259,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:259,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:260,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:263,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:264,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:265,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:265,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:266,1
    - Dst: input_edge_id_set_id
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:266,1
    - Dst: MakeSubgraph
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:280,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:283,1
    - Dst: s2builderutil::WindingLayer::ComputeBoundary
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:289,1
    - Dst: s2builderutil::WindingLayer::MatchesRule
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:302,1
    - Dst: WindingOracle::current_ref_winding
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:302,1
    - Dst: Graph::input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:304,1
    - Dst: Graph::MakeSubgraph
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:305,1
    - Dst: s2builderutil::WindingLayer::graph_options
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:306,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:308,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:308,1
    - Dst: s2builderutil::WindingLayer::Build
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:309,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 311
    functionName: s2builderutil::WindingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 2
    functionsReached:
    - input_edge_id_set_id
    - vector::push_back
    - input_edge_ids
    - num_edges
    - s2builderutil::WindingLayer::ComputeBoundary
    - input_edge_id_set_lexicon
    - WindingOracle::current_ref_winding
    - Graph::MakeSubgraph
    - s2builderutil::WindingLayer::Build
    - Clear
    - AddSpace
    - edge
    - MakeSubgraph
    - Graph::input_edge_id_set_lexicon
    - ok
    - s2builderutil::WindingLayer::graph_options
    - s2builderutil::WindingLayer::MatchesRule
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void WindingLayer::Build(const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:321,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:322,1
    - Dst: GetSiblingMap
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:324,1
    - Dst: GetLeftTurnMap
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:326,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:327,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:327,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:330,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:332,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:343,1
    - Dst: s2builderutil::WindingLayer::GetContainingLoopEdge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:344,1
    - Dst: WindingOracle*::GetWindingNumber
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:345,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:345,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:349,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:350,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:351,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:352,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:353,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:365,1
    - Dst: input_edge_ids
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:366,1
    - Dst: s2builderutil::WindingLayer::MatchesRule
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:371,1
    - Dst: s2builderutil::WindingLayer::MatchesRule
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:371,1
    - Dst: s2builderutil::WindingLayer::MatchesDegeneracy
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:372,1
    - Dst: s2builderutil::WindingLayer::OutputEdge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:373,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:380,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:381,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:386,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:387,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - ' g'
    - oracle
    - absl_nonnull
    argTypes:
    - Graph
    - WindingOracle*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 313
    functionDepth: 5
    functionLinenumber: 313
    functionLinenumberEnd: 388
    functionName: s2builderutil::WindingLayer::ComputeBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 2
    functionsReached:
    - GetLeftTurnMap
    - WindingOracle*::GetWindingNumber
    - input_edge_ids
    - num_edges
    - vector::back
    - Untally
    - s2builderutil::WindingLayer::GetContainingLoopEdge
    - ok
    - s2builderutil::WindingLayer::MatchesRule
    - ABSL_DCHECK
    - s2builderutil::WindingLayer::MatchesDegeneracy
    - vector::push_back
    - Tally
    - vector::empty
    - s2builderutil::WindingLayer::OutputEdge
    - vector::pop_back
    - vertex
    - edge
    - AddSpace
    - GetSiblingMap
    linkageType: ''
    returnType: bool
    signature: "bool WindingLayer::ComputeBoundary(const Graph& g, WindingOracle*
      oracle,\n                                   S2Error* absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:397,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:397,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:398,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:404,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:404,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:405,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:405,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:409,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:409,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:410,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:410,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:410,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:410,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:411,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:411,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - v
    - start
    - ' g'
    - left_turn_map
    - sibling_map
    argTypes:
    - VertexId
    - EdgeId
    - Graph
    - absl::Span<const EdgeId>
    - absl::Span<const EdgeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 417
    functionName: s2builderutil::WindingLayer::GetContainingLoopEdge
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 2
    functionsReached:
    - S2::AngleContainsVertex
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_NE
    - vertex
    - edge
    linkageType: ''
    returnType: EdgeId
    signature: "EdgeId WindingLayer::GetContainingLoopEdge(\n    VertexId v, EdgeId
      start, const Graph& g,\n    absl::Span<const EdgeId> left_turn_map,\n    absl::Span<const
      EdgeId> sibling_map) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - winding
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 427
    functionName: s2builderutil::WindingLayer::MatchesRule
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 4
    functionsReached:
    - ABSL_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool WindingLayer::MatchesRule(int winding) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_::include_degeneracies
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - winding
    - winding_minus
    - winding_plus
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 465
    functionName: s2builderutil::WindingLayer::MatchesDegeneracy
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 2
    functionsReached:
    - options_::include_degeneracies
    linkageType: ''
    returnType: bool
    signature: "bool WindingLayer::MatchesDegeneracy(int winding, int winding_minus,\n
      \                                    int winding_plus) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:469,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:470,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:471,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:471,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:472,1
    - Dst: input_edge_id_set_id
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' g'
    - e
    argTypes:
    - Graph
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: s2builderutil::WindingLayer::OutputEdge
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 2
    functionsReached:
    - input_edge_id_set_id
    - AddSpace
    - edge
    - push_back
    linkageType: ''
    returnType: void
    signature: void WindingLayer::OutputEdge(const Graph& g, EdgeId e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<s2builderutil::IdentitySnapFunction>
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:479,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 480
    functionName: S2WindingOperation::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::IdentitySnapFunction>
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void S2WindingOperation::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' snap_function'
    argTypes:
    - SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: S2WindingOperation::Options::Options(const SnapFunction& snap_function)
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: void S2WindingOperation::Options::Options(const SnapFunction& snap_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function_::Clone
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: S2WindingOperation::Options::Options(const Options& options)
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - snap_function_::Clone
    linkageType: ''
    returnType: void
    signature: void S2WindingOperation::Options::Options(const Options& options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function_::Clone
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: "& S2WindingOperation::Options::operator=(\n    const Options& options)"
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - snap_function_::Clone
    linkageType: ''
    returnType: S2WindingOperation::Options
    signature: "S2WindingOperation::Options & S2WindingOperation::Options::operator=(\n
      \   const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: "& S2WindingOperation::Options::snap_function()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::SnapFunction
    signature: "S2Builder::SnapFunction & S2WindingOperation::Options::snap_function()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' snap_function'
    argTypes:
    - SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: "S2WindingOperation::Options::set_snap_function(\n    const SnapFunction&
      snap_function)"
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: "void S2WindingOperation::Options::set_snap_function(\n    const SnapFunction&
      snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 512
    functionName: S2WindingOperation::Options::include_degeneracies() const
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2WindingOperation::Options::include_degeneracies() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - include_degeneracies
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: "S2WindingOperation::Options::set_include_degeneracies(\n    bool
      include_degeneracies)"
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2WindingOperation::Options::set_include_degeneracies(\n    bool
      include_degeneracies)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 521
    functionName: '* S2WindingOperation::Options::memory_tracker() const'
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2MemoryTracker
    signature: S2MemoryTracker * S2WindingOperation::Options::memory_tracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - S2MemoryTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 525
    functionName: S2WindingOperation::Options::set_memory_tracker(S2MemoryTracker*
      tracker)
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2WindingOperation::Options::set_memory_tracker(S2MemoryTracker*
      tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 527
    functionName: S2WindingOperation::S2WindingOperation
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2WindingOperation::S2WindingOperation()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WindingOperation::Init
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:531,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result_layer
    - ' options'
    argTypes:
    - unique_ptr<S2Builder::Layer>
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: S2WindingOperation::S2WindingOperation
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S2WindingOperation::Init
    linkageType: ''
    returnType: void
    signature: "void S2WindingOperation::S2WindingOperation(\n    unique_ptr<S2Builder::Layer>
      result_layer, const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:537,1
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:538,1
    - Dst: S2Builder::Options::set_memory_tracker
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:539,1
    - Dst: memory_tracker
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:539,1
    - Dst: S2WindingOperation::Init
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:540,1
    - Dst: StartLayer
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:541,1
    - Dst: make_unique<s2builderutil::WindingLayer>
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:541,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - result_layer
    - ' options'
    argTypes:
    - unique_ptr<S2Builder::Layer>
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 543
    functionName: S2WindingOperation::Init
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 2
    functionsReached:
    - std::move
    - snap_function
    - S2Builder::Options::set_split_crossing_edges
    - StartLayer
    - S2Builder::Options::set_memory_tracker
    - make_unique<s2builderutil::WindingLayer>
    - S2WindingOperation::Init
    - memory_tracker
    linkageType: ''
    returnType: void
    signature: "void S2WindingOperation::Init(unique_ptr<S2Builder::Layer> result_layer,\n
      \                             const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 547
    functionName: '& S2WindingOperation::options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2WindingOperation::Options
    signature: S2WindingOperation::Options & S2WindingOperation::options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WindingOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 551
    functionName: S2WindingOperation::AddLoop
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 1
    functionsReached:
    - S2WindingOperation::AddLoop
    linkageType: ''
    returnType: void
    signature: void S2WindingOperation::AddLoop(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_input_edges
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:558,1
    - Dst: AddPoint
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:559,1
    - Dst: S2WindingOperation::Build
      Src: /src/s2geometry/src/s2/s2winding_operation.cc:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' ref_p'
    - ref_winding
    - rule
    - absl_nonnull
    argTypes:
    - S2Point
    - int
    - WindingRule
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 563
    functionName: S2WindingOperation::Build
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation.cc
    functionUses: 1
    functionsReached:
    - AddPoint
    - S2WindingOperation::Build
    - num_input_edges
    linkageType: ''
    returnType: bool
    signature: "bool S2WindingOperation::Build(const S2Point& ref_p, int ref_winding,\n
      \                              WindingRule rule, S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:44,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:45,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:46,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:48,1
    - Dst: S2ChainInterpolationQuery::S2ChainInterpolationQuery
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:55,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:77,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:78,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:80,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:80,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:84,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:85,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:86,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:87,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:88,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:91,1
    - Dst: S2ChainInterpolationQuery::AtDistance
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:92,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:92,1
    - Dst: auto::point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:93,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:99,1
    - Dst: auto::is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:100,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:102,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:102,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:103,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:103,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:104,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:104,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:105,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:105,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:109,1
    - Dst: auto::is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:109,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:110,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:111,1
    - Dst: auto::is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:111,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:113,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:114,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:115,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:116,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:117,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:118,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:118,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:120,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:121,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:121,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:122,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:122,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:123,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:124,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:124,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:126,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:126,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:126,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:126,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:127,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:127,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:127,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:127,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:128,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:128,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:128,1
    - Dst: S2LaxPolylineShape::vertex
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:130,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:131,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:132,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:132,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 134
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - S1Angle
    - vector::emplace_back
    - S1Angle::Infinity
    - vector::size
    - S2ChainInterpolationQuery::S2ChainInterpolationQuery
    - EXPECT_NEAR
    - S2ChainInterpolationQuery::AtFraction
    - EXPECT_EQ
    - point
    - vector::push_back
    - S2ChainInterpolationQuery::GetLength
    - EXPECT_TRUE
    - clamp
    - S1Angle::Degrees
    - S2ChainInterpolationQuery::AtDistance
    - push_back
    - is_valid
    - EXPECT_LE
    - S2LaxPolylineShape::S2LaxPolylineShape
    - auto::point
    - auto::is_valid
    - S2LaxPolylineShape::vertex
    - S2LatLng::FromDegrees
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2ChainInterpolationQueryTest, SimplePolylines)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:142,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:147,1
    - Dst: vector::front
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:147,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:147,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:153,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:156,1
    - Dst: S2ChainInterpolationQuery::AtDistance
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:156,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:156,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:160,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:162,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:163,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:163,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:166,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:166,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:167,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:168,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:173,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:174,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:174,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:177,1
    - Dst: S2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:177,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:178,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:178,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:180,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:181,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:182,1
    - Dst: S2LaxPolylineShape::num_edges
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:182,1
    - Dst: S2LaxPolylineShape::edge
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:183,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:184,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:184,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:185,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:185,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:186,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 189
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - vector::back
    - S1Angle
    - vector::size
    - EXPECT_NEAR
    - S2LaxPolylineShape::num_edges
    - EXPECT_LT
    - EXPECT_GE
    - EXPECT_EQ
    - point
    - vector::push_back
    - S2ChainInterpolationQuery::GetLength
    - vector::front
    - EXPECT_TRUE
    - S2LatLng
    - S1Angle::Degrees
    - S2ChainInterpolationQuery::AtDistance
    - is_valid
    - s2textformat::ParsePointsOrDie
    - EXPECT_LE
    - S2LaxPolylineShape::edge
    - EXPECT_DOUBLE_EQ
    - distance
    - S1Angle::degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2ChainInterpolationQueryTest, Distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:194,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:194,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:195,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:195,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:204,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:205,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:206,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:209,1
    - Dst: auto::is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:209,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:210,1
    - Dst: auto::is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:210,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:211,1
    - Dst: auto::is_valid
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:211,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:213,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:213,1
    - Dst: auto::point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:213,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:214,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:214,1
    - Dst: auto::point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:214,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:215,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:215,1
    - Dst: auto::point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 216
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - auto::point
    - EXPECT_TRUE
    - EXPECT_NEAR
    - S2ChainInterpolationQuery::AtFraction
    - S2LatLng
    - auto::is_valid
    - s2textformat::ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ChainInterpolationQueryTest, Chains)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:221,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:221,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2LaxPolylineShape::S2LaxPolylineShape
    - S2ChainInterpolationQuery::GetLengthAtEdgeEnd
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S2ChainInterpolationQueryTest, GetLengthAtEdgeEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:225,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:226,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:227,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:234,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:234,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:234,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:235,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:235,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:236,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:236,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:237,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:237,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:238,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:238,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:239,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:239,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ChainInterpolationQuery::GetLength
    - S2ChainInterpolationQuery::GetLengthAtEdgeEnd
    - S1Angle::Degrees
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S1Angle::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(S2ChainInterpolationQueryTest, GetLengthAtEdgePolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:243,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:244,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:245,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:246,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:247,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:248,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:249,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:250,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:253,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:254,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:258,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:262,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:262,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:262,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:263,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:263,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:263,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:264,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:264,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:265,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:266,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:266,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:267,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:268,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:268,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:269,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:270,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:270,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:272,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:272,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:272,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:273,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:273,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:273,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:274,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:274,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:275,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:275,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:276,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:276,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:276,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:280,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:280,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:281,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:281,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:282,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:282,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:282,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:283,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:283,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:283,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:284,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:284,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:284,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:285,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:285,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:285,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:286,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:286,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:287,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:288,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:288,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:289,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:290,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:290,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:291,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:292,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:292,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:294,1
    - Dst: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:294,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 295
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2ChainInterpolationQuery::GetLength
    - S2ChainInterpolationQuery::GetLengthAtEdgeEnd
    - EXPECT_NEAR
    - S1Angle::Degrees
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S1Angle::Infinity
    - S1Angle::degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2ChainInterpolationQueryTest, GetLengthAtEdgePolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ChainInterpolationQuery::S2ChainInterpolationQuery
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:298,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:299,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:299,1
    - Dst: S2ChainInterpolationQuery::Slice
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:299,1
    - Dst: s2textformat::MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:301,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:303,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:303,1
    - Dst: S2ChainInterpolationQuery::Slice
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:303,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:304,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:304,1
    - Dst: S2ChainInterpolationQuery::Slice
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:305,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:305,1
    - Dst: S2ChainInterpolationQuery::Slice
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:305,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:306,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:306,1
    - Dst: S2ChainInterpolationQuery::Slice
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ChainInterpolationQuery::S2ChainInterpolationQuery
    - auto::get
    - S2ChainInterpolationQuery::Slice
    - s2textformat::ToString
    - s2textformat::MakeLaxPolylineOrDie
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ChainInterpolationQueryTest, Slice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat
    - lng
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: LatLngToPoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromRadians
    linkageType: ''
    returnType: S2Point
    signature: S2Point LatLngToPoint(double lat, double lng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: OpenShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: OpenShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenShape::edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: OpenShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - OpenShape::edge
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int, int id) const final
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:86,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:87,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:91,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:93,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:95,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: OpenShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 1
    functionsReached:
    - Edge
    - ABSL_CHECK_LT
    - ABSL_CHECK_GE
    - ABSL_CHECK
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int id) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: OpenShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenShape::num_edges
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: OpenShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - OpenShape::num_edges
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: OpenShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: OpenShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int id) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: OpenShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: BadDimensionShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: BadDimensionShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: BadDimensionShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: BadDimensionShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int, int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: BadDimensionShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: BadDimensionShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: BadDimensionShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: BadDimensionShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: BadDimensionShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: BadChainLengthShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BadChainLengthShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:134,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:135,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:139,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:141,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: BadChainLengthShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - Edge
    - ABSL_CHECK_LT
    - ABSL_CHECK_GE
    - ABSL_CHECK
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int id) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: BadChainLengthShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int, int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: BadChainLengthShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BadChainLengthShape::num_edges
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: BadChainLengthShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - BadChainLengthShape::num_edges
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: BadChainLengthShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: BadChainLengthShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: BadChainLengthShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:162,1
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:162,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:162,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - center
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: CcwEdgesAbout
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - LatLngToPoint
    - sin
    - cos
    - vector::emplace_back
    linkageType: ''
    returnType: vector<S2Shape::Edge>
    signature: vector<S2Shape::Edge> CcwEdgesAbout(S2Point center, int num = 10)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:178,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:179,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:183,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:184,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:186,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:197,1
    - Dst: GridPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:197,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:198,1
    - Dst: GridPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:198,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:199,1
    - Dst: GridPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:199,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:200,1
    - Dst: GridPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:200,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:201,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:201,1
    - Dst: std::make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:204,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: MakeQuilt
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - S2Point
    - std::move
    - std::make_unique<S2LaxPolygonShape>
    - GridPoint
    - S2LatLng::FromDegrees
    - std::vector::emplace_back
    - ABSL_DCHECK
    linkageType: ''
    returnType: std::unique_ptr<S2LaxPolygonShape>
    signature: std::unique_ptr<S2LaxPolygonShape> MakeQuilt()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:208,1
    - Dst: CcwEdgesAbout
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:212,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:214,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:215,1
    - Dst: absl::c_rotate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:218,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:218,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:222,1
    - Dst: SortEdgesCcw
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:225,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:226,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 228
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - LatLngToPoint
    - CcwEdgesAbout
    - Eq
    - SortEdgesCcw
    - EXPECT_THAT
    - absl::c_shuffle
    - absl::c_rotate
    - vector::begin
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(SortEdgesCcw, SortsEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:231,1
    - Dst: CcwEdgesAbout
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:235,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:239,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:240,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:242,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:243,1
    - Dst: absl::c_rotate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:246,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:246,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:250,1
    - Dst: SortEdgesCcw
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:253,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:254,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 256
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - LatLngToPoint
    - CcwEdgesAbout
    - Eq
    - SortEdgesCcw
    - EXPECT_THAT
    - absl::c_shuffle
    - absl::c_rotate
    - vector::begin
    - absl::LogInfoStreamer
    - Reversed
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(SortEdgesCcw, SortsEdgesFlipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:259,1
    - Dst: CcwEdgesAbout
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:263,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:266,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:267,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:271,1
    - Dst: SortEdgesCcw
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:274,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:275,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 277
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - LatLngToPoint
    - CcwEdgesAbout
    - Eq
    - SortEdgesCcw
    - EXPECT_THAT
    - absl::c_shuffle
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(SortEdgesCcw, StartEdgeAlwaysFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:280,1
    - Dst: CcwEdgesAbout
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:284,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:287,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:287,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:287,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:288,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:288,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:288,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:292,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:293,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:295,1
    - Dst: SortEdgesCcw
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:298,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:301,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:301,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:301,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:302,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:302,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:303,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:303,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:303,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:304,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - absl::LogInfoStreamer
    - LatLngToPoint
    - CcwEdgesAbout
    - Eq
    - SortEdgesCcw
    - EXPECT_THAT
    - absl::c_shuffle
    - S2Testing::MakeTaggedSeedSeq
    - vector::insert
    - Reversed
    - vector::begin
    linkageType: ''
    returnType: void
    signature: void TEST(SortEdgesCcw, ReverseDuplicatesOrdered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:315,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:316,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:316,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:318,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:319,1
    - Dst: Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:319,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:319,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:320,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:320,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - shape
    argTypes:
    - unique_ptr<S2Shape>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: ValidationQueryTest::ExpectShapeValid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - std::move
    - EXPECT_THAT
    - IsTrue
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2Error::code
    - Validate
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void ExpectShapeValid(unique_ptr<S2Shape> shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:327,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:328,1
    - Dst: Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:328,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:328,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:329,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:330,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:330,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: ValidationQueryTest::ExpectIndexInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - S2Error::code
    - IsFalse
    - empty
    - Contains
    - Validate
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ExpectIndexInvalid(const MutableS2ShapeIndex& index,\n                          absl::Span<const
      S2Error::Code> codes = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:338,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:339,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:339,1
    - Dst: ValidationQueryTest::ExpectIndexInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shape
    argTypes:
    - unique_ptr<S2Shape>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: ValidationQueryTest::ExpectShapeInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ValidationQueryTest::ExpectIndexInvalid
    - std::move
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void ExpectShapeInvalid(unique_ptr<S2Shape> shape,\n                          absl::Span<const
      S2Error::Code> codes = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValidationQueryTest::ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:344,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - shape
    - code
    argTypes:
    - unique_ptr<S2Shape>
    - S2Error::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: ValidationQueryTest::ExpectShapeInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 1
    functionsReached:
    - std::move
    - ValidationQueryTest::ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void ExpectShapeInvalid(unique_ptr<S2Shape> shape, S2Error::Code code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:349,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:350,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:351,1
    - Dst: Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:351,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:351,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:352,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:352,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - geometry
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: ValidationQueryTest::ExpectGeometryValid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - IsTrue
    - EXPECT_THAT
    - S2Error::code
    - Validate
    - s2textformat::MakeIndexOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void ExpectGeometryValid(string_view geometry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:358,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:359,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:360,1
    - Dst: Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:360,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:360,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:361,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:361,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - geometry
    - code
    argTypes:
    - string_view
    - S2Error::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 362
    functionName: ValidationQueryTest::ExpectGeometryInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - IsFalse
    - S2Error::code
    - Validate
    - s2textformat::MakeIndexOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void ExpectGeometryInvalid(string_view geometry, S2Error::Code code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:372,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:373,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:374,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:376,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:376,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:377,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bitgen
    - num_loops
    - min_vertices
    argTypes:
    - absl::BitGenRef
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 380
    functionName: ValidationQueryTest::AddConcentricLoops
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - emplace_back
    - ABSL_DCHECK_LE
    - S1Angle::Degrees
    - pow
    - s2random::LogUniform
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: "void AddConcentricLoops(  //\n      absl::BitGenRef bitgen, int num_loops,
      int min_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:386,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:386,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:389,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:390,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:391,1
    - Dst: S2Polygon::InitNested
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:392,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 394
    functionName: ValidationQueryTest::MakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - make_unique<S2Loop>
    - std::move
    - absl::c_shuffle
    - S2Polygon::S2Polygon
    - S2Polygon::set_s2debug_override
    - S2Polygon::InitNested
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon MakePolygon(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:414,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:417,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:420,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:423,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 434
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, BasicGeometryOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, EmptyGeometryOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, FullGeometryOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 450
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, InteriorOnRightRegression)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, TangentPolygonsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:463,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:464,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:464,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:465,1
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:467,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 469
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2LaxPolygonShape>
    - S2Point
    - ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, AntipodalEdgeFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:472,1
    - Dst: make_unique<BadDimensionShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<BadDimensionShape>
    - ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, BadlyDimensionedFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:477,1
    - Dst: make_unique<OpenShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<OpenShape>
    - ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, OpenChainFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, DuplicatePolygonEdgesFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:491,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:496,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, ChainsTouchingOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:510,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:517,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:523,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:529,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:535,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 546
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, NestedShellsFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:550,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:555,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 566
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, ChainsCannotCross)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 572
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, ShellInHoleFails)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:578,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:579,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:582,1
    - Dst: loops_::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:585,1
    - Dst: loops_::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:586,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:591,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:592,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:593,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:594,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:601,1
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:606,1
    - Dst: std::make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 608
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - AddConcentricLoops
    - absl::Bernoulli
    - size
    - std::make_unique<S2Polygon::Shape>
    - loops_::size
    - ExpectShapeInvalid
    - swap
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, LoopsCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:625,1
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:626,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:626,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:628,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:629,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:629,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:630,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:631,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:631,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:631,1
    - Dst: ExpectIndexInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 633
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - s2shapeutil::FullDecodeShapeFactory
    - EXPECT_TRUE
    - std::string::size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Init
    - std::string::data
    - S2Error::ok
    - ExpectIndexInvalid
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, IndexWithUnindexVerticesFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:650,1
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:651,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:651,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:653,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:654,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:654,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:655,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:656,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:656,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:656,1
    - Dst: ExpectIndexInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 658
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - s2shapeutil::FullDecodeShapeFactory
    - EXPECT_TRUE
    - std::string::size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Init
    - std::string::data
    - S2Error::ok
    - ExpectIndexInvalid
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, OutgoingEdgeButNoIncomingEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:676,1
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:677,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:677,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:679,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:680,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:680,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:681,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:682,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:682,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:682,1
    - Dst: ExpectIndexInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 684
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - s2shapeutil::FullDecodeShapeFactory
    - EXPECT_TRUE
    - std::string::size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Init
    - std::string::data
    - S2Error::ok
    - ExpectIndexInvalid
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, InvalidChainNearChain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 705
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(MultiDimensionalQueries, BasicGeometryOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:709,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:713,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:717,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:724,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:726,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 731
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(MultiDimensionalQueries, ContainedGeometryFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectShapeValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:742,1
    - Dst: MakeQuilt
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 742
    functionDepth: 4
    functionLinenumber: 742
    functionLinenumberEnd: 742
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectShapeValid
    - MakeQuilt
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, QuiltIsValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:746,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 750
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, DegenerateRingsAllowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, SplitInteriorsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:762,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:768,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:774,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:779,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:785,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 794
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, PolylineEdgesCrossSemanticsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 801
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, ReverseDuplicateOnCenterWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:809,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:809,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:810,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:810,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:811,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:811,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:812,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:812,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:815,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:815,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:816,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:816,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:817,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:817,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:818,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:818,1
    - Dst: ExpectShapeValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:821,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 822
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2LaxPolygonShape>
    - ExpectShapeValid
    - S2CellId::FromToken
    - S2Cell
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, PolygonOnCentersWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:828,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:828,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:829,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:829,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:830,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:830,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:831,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:831,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:832,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:832,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:833,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:833,1
    - Dst: ExpectShapeValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:836,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:836,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:844,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:844,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:844,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:848,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:848,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:848,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:850,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:850,1
    - Dst: ExpectShapeValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:852,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 853
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2LaxPolygonShape>
    - std::move
    - ExpectShapeValid
    - S2Cell
    - S2CellId::FromToken
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, DegeneratePolygonOnCentersworks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:867,1
    - Dst: MakeQuilt
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 865
    functionDepth: 4
    functionLinenumber: 865
    functionLinenumberEnd: 868
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - MakeQuilt
    - ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, QuiltIsNotValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 878
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, MultiDimensionalFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 886
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, SplitInteriorsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, SelfTouchingLoopFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:896,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 902
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, DegenerateEdgesFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:908,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 910
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, ShortChainsFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:916,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:916,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:917,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:917,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:920,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:921,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:924,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:926,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:926,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:927,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:928,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:931,1
    - Dst: S2LegacyValidQuery::Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:933,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:934,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 914
    functionDepth: 5
    functionLinenumber: 914
    functionLinenumberEnd: 937
    functionName: BM_LegacyValidFractal
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - string::end
    - s2random::Frame
    - range
    - S1Angle::Degrees
    - ABSL_CHECK
    - S2Polygon::index
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - S2LegacyValidQuery::Validate
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void BM_LegacyValidFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:941,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:942,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:943,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:943,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:946,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:947,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:950,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:952,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:952,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:953,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:955,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:957,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:958,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 940
    functionDepth: 5
    functionLinenumber: 940
    functionLinenumberEnd: 961
    functionName: BM_LegacyPolygonValidFractal
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - string::end
    - s2random::Frame
    - range
    - S1Angle::Degrees
    - ABSL_CHECK
    - S2Polygon::index
    - S2Polygon::IsValid
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void BM_LegacyPolygonValidFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat
    - lng
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: LatLngToPoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 5
    functionsReached:
    - S2LatLng::FromRadians
    linkageType: ''
    returnType: S2Point
    signature: S2Point LatLngToPoint(double lat, double lng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: OpenShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: OpenShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenShape::edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: OpenShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - OpenShape::edge
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int, int id) const final
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:86,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:87,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:91,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:93,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:95,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: OpenShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 2
    functionsReached:
    - Edge
    - ABSL_CHECK_LT
    - ABSL_CHECK_GE
    - ABSL_CHECK
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int id) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: OpenShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenShape::num_edges
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: OpenShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - OpenShape::num_edges
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: OpenShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: OpenShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int id) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: OpenShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: BadDimensionShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: BadDimensionShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: BadDimensionShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: BadDimensionShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int, int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: BadDimensionShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: BadDimensionShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: BadDimensionShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: BadDimensionShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: BadDimensionShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: BadChainLengthShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BadChainLengthShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_GE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:134,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:135,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:139,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:141,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: BadChainLengthShape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - Edge
    - ABSL_CHECK_LT
    - ABSL_CHECK_GE
    - ABSL_CHECK
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int id) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: BadChainLengthShape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int, int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: BadChainLengthShape::num_chains
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_chains() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BadChainLengthShape::num_edges
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: BadChainLengthShape::chain
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - BadChainLengthShape::num_edges
    linkageType: ''
    returnType: Chain
    signature: Chain chain(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: BadChainLengthShape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: BadChainLengthShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: BadChainLengthShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:162,1
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:162,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:162,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - center
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: CcwEdgesAbout
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 4
    functionsReached:
    - LatLngToPoint
    - sin
    - cos
    - vector::emplace_back
    linkageType: ''
    returnType: vector<S2Shape::Edge>
    signature: vector<S2Shape::Edge> CcwEdgesAbout(S2Point center, int num = 10)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:178,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:179,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:183,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:184,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:186,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:197,1
    - Dst: GridPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:197,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:198,1
    - Dst: GridPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:198,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:199,1
    - Dst: GridPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:199,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:200,1
    - Dst: GridPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:200,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:201,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:201,1
    - Dst: std::make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:204,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: MakeQuilt
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_LE
    - S2Point
    - std::move
    - std::make_unique<S2LaxPolygonShape>
    - GridPoint
    - S2LatLng::FromDegrees
    - std::vector::emplace_back
    - ABSL_DCHECK
    linkageType: ''
    returnType: std::unique_ptr<S2LaxPolygonShape>
    signature: std::unique_ptr<S2LaxPolygonShape> MakeQuilt()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:208,1
    - Dst: CcwEdgesAbout
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:212,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:214,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:215,1
    - Dst: absl::c_rotate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:218,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:218,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:222,1
    - Dst: SortEdgesCcw
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:225,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:226,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 228
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - LatLngToPoint
    - CcwEdgesAbout
    - Eq
    - SortEdgesCcw
    - EXPECT_THAT
    - absl::c_shuffle
    - absl::c_rotate
    - vector::begin
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(SortEdgesCcw, SortsEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:231,1
    - Dst: CcwEdgesAbout
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:235,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:239,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:240,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:242,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:243,1
    - Dst: absl::c_rotate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:246,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:246,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:250,1
    - Dst: SortEdgesCcw
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:253,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:254,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 256
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - LatLngToPoint
    - CcwEdgesAbout
    - Eq
    - SortEdgesCcw
    - EXPECT_THAT
    - absl::c_shuffle
    - absl::c_rotate
    - vector::begin
    - absl::LogInfoStreamer
    - Reversed
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(SortEdgesCcw, SortsEdgesFlipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:259,1
    - Dst: CcwEdgesAbout
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:263,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:266,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:267,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:271,1
    - Dst: SortEdgesCcw
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:274,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:275,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 277
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - LatLngToPoint
    - CcwEdgesAbout
    - Eq
    - SortEdgesCcw
    - EXPECT_THAT
    - absl::c_shuffle
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(SortEdgesCcw, StartEdgeAlwaysFirst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LatLngToPoint
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:280,1
    - Dst: CcwEdgesAbout
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:284,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:287,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:287,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:287,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:288,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:288,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:288,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:292,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:293,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:295,1
    - Dst: SortEdgesCcw
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:298,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:301,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:301,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:301,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:302,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:302,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:303,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:303,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:303,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:304,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - absl::LogInfoStreamer
    - LatLngToPoint
    - CcwEdgesAbout
    - Eq
    - SortEdgesCcw
    - EXPECT_THAT
    - absl::c_shuffle
    - S2Testing::MakeTaggedSeedSeq
    - vector::insert
    - Reversed
    - vector::begin
    linkageType: ''
    returnType: void
    signature: void TEST(SortEdgesCcw, ReverseDuplicatesOrdered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:315,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:316,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:316,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:318,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:319,1
    - Dst: Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:319,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:319,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:320,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:320,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - shape
    argTypes:
    - unique_ptr<S2Shape>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: ValidationQueryTest::ExpectShapeValid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - std::move
    - EXPECT_THAT
    - IsTrue
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2Error::code
    - Validate
    - MutableS2ShapeIndex::Add
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void ExpectShapeValid(unique_ptr<S2Shape> shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:327,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:328,1
    - Dst: Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:328,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:328,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:329,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:330,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:330,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: ValidationQueryTest::ExpectIndexInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_THAT
    - S2Error::code
    - IsFalse
    - empty
    - Contains
    - Validate
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void ExpectIndexInvalid(const MutableS2ShapeIndex& index,\n                          absl::Span<const
      S2Error::Code> codes = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:338,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:339,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:339,1
    - Dst: ValidationQueryTest::ExpectIndexInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shape
    argTypes:
    - unique_ptr<S2Shape>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: ValidationQueryTest::ExpectShapeInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 1
    functionsReached:
    - ValidationQueryTest::ExpectIndexInvalid
    - std::move
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void ExpectShapeInvalid(unique_ptr<S2Shape> shape,\n                          absl::Span<const
      S2Error::Code> codes = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValidationQueryTest::ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:344,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - shape
    - code
    argTypes:
    - unique_ptr<S2Shape>
    - S2Error::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: ValidationQueryTest::ExpectShapeInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 2
    functionsReached:
    - std::move
    - ValidationQueryTest::ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void ExpectShapeInvalid(unique_ptr<S2Shape> shape, S2Error::Code code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:349,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:350,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:351,1
    - Dst: Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:351,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:351,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:352,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:352,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - geometry
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: ValidationQueryTest::ExpectGeometryValid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - IsTrue
    - EXPECT_THAT
    - S2Error::code
    - Validate
    - s2textformat::MakeIndexOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void ExpectGeometryValid(string_view geometry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:358,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:359,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:360,1
    - Dst: Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:360,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:360,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:361,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:361,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - geometry
    - code
    argTypes:
    - string_view
    - S2Error::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 362
    functionName: ValidationQueryTest::ExpectGeometryInvalid
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - IsFalse
    - S2Error::code
    - Validate
    - s2textformat::MakeIndexOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void ExpectGeometryInvalid(string_view geometry, S2Error::Code code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:372,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:373,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:374,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:376,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:376,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:377,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bitgen
    - num_loops
    - min_vertices
    argTypes:
    - absl::BitGenRef
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 380
    functionName: ValidationQueryTest::AddConcentricLoops
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - emplace_back
    - ABSL_DCHECK_LE
    - S1Angle::Degrees
    - pow
    - s2random::LogUniform
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: "void AddConcentricLoops(  //\n      absl::BitGenRef bitgen, int num_loops,
      int min_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:386,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:386,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:389,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:390,1
    - Dst: S2Polygon::set_s2debug_override
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:391,1
    - Dst: S2Polygon::InitNested
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:392,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 394
    functionName: ValidationQueryTest::MakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - make_unique<S2Loop>
    - std::move
    - absl::c_shuffle
    - S2Polygon::S2Polygon
    - S2Polygon::set_s2debug_override
    - S2Polygon::InitNested
    linkageType: ''
    returnType: S2Polygon
    signature: S2Polygon MakePolygon(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:414,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:417,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:420,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:423,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 434
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, BasicGeometryOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, EmptyGeometryOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, FullGeometryOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 450
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, InteriorOnRightRegression)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, TangentPolygonsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:463,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:464,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:464,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:465,1
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:467,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 469
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2LaxPolygonShape>
    - S2Point
    - ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, AntipodalEdgeFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:472,1
    - Dst: make_unique<BadDimensionShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<BadDimensionShape>
    - ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, BadlyDimensionedFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:477,1
    - Dst: make_unique<OpenShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<OpenShape>
    - ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, OpenChainFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, DuplicatePolygonEdgesFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:491,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:496,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, ChainsTouchingOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:510,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:517,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:523,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:529,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:535,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 546
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, NestedShellsFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:550,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:555,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 566
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, ChainsCannotCross)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 572
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, ShellInHoleFails)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:578,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:579,1
    - Dst: AddConcentricLoops
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:582,1
    - Dst: loops_::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:585,1
    - Dst: loops_::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:586,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:591,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:592,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:593,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:594,1
    - Dst: MakePolygon
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:601,1
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:606,1
    - Dst: std::make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 608
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - MakePolygon
    - AddConcentricLoops
    - absl::Bernoulli
    - size
    - std::make_unique<S2Polygon::Shape>
    - loops_::size
    - ExpectShapeInvalid
    - swap
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, LoopsCrossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:625,1
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:626,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:626,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:628,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:629,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:629,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:630,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:631,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:631,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:631,1
    - Dst: ExpectIndexInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 633
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - s2shapeutil::FullDecodeShapeFactory
    - EXPECT_TRUE
    - std::string::size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Init
    - std::string::data
    - S2Error::ok
    - ExpectIndexInvalid
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, IndexWithUnindexVerticesFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:650,1
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:651,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:651,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:653,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:654,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:654,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:655,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:656,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:656,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:656,1
    - Dst: ExpectIndexInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 658
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - s2shapeutil::FullDecodeShapeFactory
    - EXPECT_TRUE
    - std::string::size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Init
    - std::string::data
    - S2Error::ok
    - ExpectIndexInvalid
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, OutgoingEdgeButNoIncomingEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:676,1
    - Dst: std::string::data
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:677,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:677,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:679,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:680,1
    - Dst: MutableS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:680,1
    - Dst: s2shapeutil::FullDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:681,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:682,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:682,1
    - Dst: S2Error::message
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:682,1
    - Dst: ExpectIndexInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 684
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - S2Error::message
    - s2shapeutil::FullDecodeShapeFactory
    - EXPECT_TRUE
    - std::string::size
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::Init
    - std::string::data
    - S2Error::ok
    - ExpectIndexInvalid
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AllValidationQueries, InvalidChainNearChain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 705
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(MultiDimensionalQueries, BasicGeometryOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:709,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:713,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:717,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:724,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:726,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 731
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(MultiDimensionalQueries, ContainedGeometryFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectShapeValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:742,1
    - Dst: MakeQuilt
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 742
    functionDepth: 4
    functionLinenumber: 742
    functionLinenumberEnd: 742
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectShapeValid
    - MakeQuilt
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, QuiltIsValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:746,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 750
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, DegenerateRingsAllowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, SplitInteriorsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:762,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:768,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:774,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:779,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:785,1
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 794
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, PolylineEdgesCrossSemanticsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 801
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, ReverseDuplicateOnCenterWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:809,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:809,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:810,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:810,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:811,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:811,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:812,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:812,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:815,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:815,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:816,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:816,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:817,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:817,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:818,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:818,1
    - Dst: ExpectShapeValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:821,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 822
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2LaxPolygonShape>
    - ExpectShapeValid
    - S2CellId::FromToken
    - S2Cell
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, PolygonOnCentersWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:828,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:828,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:829,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:829,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:830,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:830,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:831,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:831,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:832,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:832,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:833,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:833,1
    - Dst: ExpectShapeValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:836,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:836,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:844,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:844,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:844,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:848,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:848,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:848,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:850,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:850,1
    - Dst: ExpectShapeValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:852,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 853
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - make_unique<S2LaxPolygonShape>
    - std::move
    - ExpectShapeValid
    - S2Cell
    - S2CellId::FromToken
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2ValidTest, DegeneratePolygonOnCentersworks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectShapeInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:867,1
    - Dst: MakeQuilt
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 865
    functionDepth: 4
    functionLinenumber: 865
    functionLinenumberEnd: 868
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - MakeQuilt
    - ExpectShapeInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, QuiltIsNotValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 878
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, MultiDimensionalFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 886
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryValid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, SplitInteriorsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, SelfTouchingLoopFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:896,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 902
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, DegenerateEdgesFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:908,1
    - Dst: ExpectGeometryInvalid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 910
    functionName: TYPED_TEST
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - ExpectGeometryInvalid
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(S2LegacyValidTest, ShortChainsFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:916,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:916,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:917,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:917,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:920,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:921,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:924,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:926,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:926,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:927,1
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:928,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:931,1
    - Dst: S2LegacyValidQuery::Validate
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:933,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:934,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 914
    functionDepth: 5
    functionLinenumber: 914
    functionLinenumberEnd: 937
    functionName: BM_LegacyValidFractal
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - ForceBuild
    - string::end
    - s2random::Frame
    - range
    - S1Angle::Degrees
    - ABSL_CHECK
    - S2Polygon::index
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - S2LegacyValidQuery::Validate
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void BM_LegacyValidFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:941,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:942,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:943,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:943,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:946,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:947,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:950,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:952,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:952,1
    - Dst: S2Polygon::index
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:953,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:955,1
    - Dst: S2Polygon::IsValid
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:957,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:958,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2validation_query_test.cc:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 940
    functionDepth: 5
    functionLinenumber: 940
    functionLinenumberEnd: 961
    functionName: BM_LegacyPolygonValidFractal
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - string::end
    - s2random::Frame
    - range
    - S1Angle::Degrees
    - ABSL_CHECK
    - S2Polygon::index
    - S2Polygon::IsValid
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void BM_LegacyPolygonValidFractal(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:39,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:39,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:41,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:41,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:42,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:43,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' multipoint'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: s2shapeutil::ShapeToS2Points
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion.cc
    functionUses: 4
    functionsReached:
    - vector::push_back
    - ABSL_DCHECK_EQ
    - num_edges
    - vector::reserve
    - dimension
    - edge
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> ShapeToS2Points(const S2Shape& multipoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:49,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:49,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:50,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:50,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:52,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:53,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' line'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: s2shapeutil::ShapeToS2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion.cc
    functionUses: 8
    functionsReached:
    - make_unique<S2Polyline>
    - S2::GetChainVertices
    - ABSL_DCHECK_EQ
    - std::move
    - dimension
    - num_chains
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: unique_ptr<S2Polyline> ShapeToS2Polyline(const S2Shape& line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:57,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:58,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:58,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:58,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:60,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:60,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:63,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:64,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:65,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:65,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:67,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:68,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:69,1
    - Dst: auto::InitOriented
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:71,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' poly'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: s2shapeutil::ShapeToS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion.cc
    functionUses: 8
    functionsReached:
    - is_full
    - S2Loop::kFull
    - vector::push_back
    - ABSL_DCHECK_EQ
    - make_unique<S2Loop>
    - S2::GetChainVertices
    - std::move
    - auto::InitOriented
    - dimension
    - num_chains
    - make_unique<S2Polygon>
    - auto::Init
    - vector::size
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> ShapeToS2Polygon(const S2Shape& poly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:39,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:39,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:41,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:41,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:42,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:43,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' multipoint'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: s2shapeutil::ShapeToS2Points
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion.cc
    functionUses: 4
    functionsReached:
    - vector::push_back
    - ABSL_DCHECK_EQ
    - num_edges
    - vector::reserve
    - dimension
    - edge
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> ShapeToS2Points(const S2Shape& multipoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:49,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:49,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:50,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:50,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:52,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:53,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' line'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: s2shapeutil::ShapeToS2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion.cc
    functionUses: 8
    functionsReached:
    - make_unique<S2Polyline>
    - S2::GetChainVertices
    - ABSL_DCHECK_EQ
    - std::move
    - dimension
    - num_chains
    linkageType: ''
    returnType: unique_ptr<S2Polyline>
    signature: unique_ptr<S2Polyline> ShapeToS2Polyline(const S2Shape& line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_full
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:57,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:58,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:58,1
    - Dst: S2Loop::kFull
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:58,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:60,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:60,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:63,1
    - Dst: S2::GetChainVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:64,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:65,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:65,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:67,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:68,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:69,1
    - Dst: auto::InitOriented
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:71,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_conversion.cc:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' poly'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: s2shapeutil::ShapeToS2Polygon
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_conversion.cc
    functionUses: 8
    functionsReached:
    - is_full
    - S2Loop::kFull
    - vector::push_back
    - ABSL_DCHECK_EQ
    - make_unique<S2Loop>
    - S2::GetChainVertices
    - std::move
    - auto::InitOriented
    - dimension
    - num_chains
    - make_unique<S2Polygon>
    - auto::Init
    - vector::size
    linkageType: ''
    returnType: unique_ptr<S2Polygon>
    signature: unique_ptr<S2Polygon> ShapeToS2Polygon(const S2Shape& poly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:45,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:46,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:47,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:54,1
    - Dst: DirectedResult::target_point
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:55,1
    - Dst: DirectedResult::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:56,1
    - Dst: DirectedResult::target_point
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:57,1
    - Dst: DirectedResult::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:59,1
    - Dst: Result::target_to_source
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:60,1
    - Dst: Result::source_to_target
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:61,1
    - Dst: Result::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:61,1
    - Dst: DirectedResult::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 62
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc
    functionUses: 0
    functionsReached:
    - DirectedResult::distance
    - Result::distance
    - Result::source_to_target
    - Result::target_to_source
    - S1ChordAngle::Degrees
    - S2LatLng::FromDegrees
    - DirectedResult::target_point
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2HausdorffDistanceQueryTest, ResultConstructorsAndAccessorsWork)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:68,1
    - Dst: Options::include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:70,1
    - Dst: Options::include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:70,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:71,1
    - Dst: Options::include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Options::set_include_interiors
    - EXPECT_FALSE
    - Options::include_interiors
    linkageType: ''
    returnType: void
    signature: void TEST(S2HausdorffDistanceQueryTest, OptionsConstructorsAndAccessorsWork)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2HausdorffDistanceQuery::S2HausdorffDistanceQuery
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:76,1
    - Dst: S2HausdorffDistanceQuery::options
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:77,1
    - Dst: S2HausdorffDistanceQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:79,1
    - Dst: S2HausdorffDistanceQuery::options
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:82,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc
    functionUses: 0
    functionsReached:
    - S2HausdorffDistanceQuery::mutable_options
    - S2HausdorffDistanceQuery::options
    - EXPECT_TRUE
    - S2HausdorffDistanceQuery::S2HausdorffDistanceQuery
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2HausdorffDistanceQueryTest, QueryOptionsAccessorsWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:88,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:89,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:90,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:93,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:96,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:97,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:97,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:98,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:98,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:101,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:102,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:102,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:114,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:117,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedDistance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:120,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:122,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:123,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:124,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:125,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:128,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:129,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:129,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:130,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:131,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:134,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:136,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedDistance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:137,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:142,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:143,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:145,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:146,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:148,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:149,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:151,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:151,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:152,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:153,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:153,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:154,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:155,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:155,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:156,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:157,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:158,1
    - Dst: S2HausdorffDistanceQuery::GetResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:161,1
    - Dst: S2HausdorffDistanceQuery::GetResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:162,1
    - Dst: S2HausdorffDistanceQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:163,1
    - Dst: S2HausdorffDistanceQuery::GetResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:167,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:168,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:173,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:173,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:174,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:176,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:176,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:177,1
    - Dst: S2HausdorffDistanceQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:183,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:184,1
    - Dst: S2HausdorffDistanceQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:187,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:188,1
    - Dst: S2HausdorffDistanceQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:191,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:192,1
    - Dst: S2HausdorffDistanceQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:195,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:195,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:197,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:197,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:197,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:198,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:199,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:200,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:201,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:201,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:201,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:202,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:202,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:202,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:204,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:205,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:206,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 208
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc
    functionUses: 0
    functionsReached:
    - std::max
    - S2HausdorffDistanceQuery::GetDirectedDistance
    - S2HausdorffDistanceQuery::IsDirectedDistanceLess
    - S1ChordAngle::degrees
    - min
    - S1ChordAngle::Degrees
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    - S1ChordAngle::is_infinity
    - S2HausdorffDistanceQuery::GetDistance
    - EXPECT_TRUE
    - S2HausdorffDistanceQuery::GetResult
    - S2HausdorffDistanceQuery::GetDirectedResult
    - make_unique<S2LaxPolylineShape>
    - S2HausdorffDistanceQuery::IsDistanceLess
    - S1ChordAngle::Radians
    - EXPECT_DOUBLE_EQ
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ParsePointsOrDie
    - absl::optional::distance
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2HausdorffDistanceQueryTest, SimplePolylineQueriesSucceed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:214,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:216,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:218,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:219,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:219,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:221,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:222,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:222,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:237,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:240,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:242,1
    - Dst: S2HausdorffDistanceQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:243,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:245,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:246,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:247,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:248,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:248,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:248,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:249,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:249,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:251,1
    - Dst: absl::optional::target_point
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:251,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:252,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:252,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:254,1
    - Dst: absl::optional::target_point
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:254,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:256,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:257,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:257,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:258,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:259,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:259,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:260,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:261,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:261,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:262,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:263,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:263,1
    - Dst: S2HausdorffDistanceQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:265,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:266,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:266,1
    - Dst: S2HausdorffDistanceQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:267,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:268,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:268,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:270,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:271,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:272,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:273,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 276
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc
    functionUses: 0
    functionsReached:
    - absl::optional::target_point
    - std::max
    - S2HausdorffDistanceQuery::IsDirectedDistanceLess
    - S1ChordAngle::degrees
    - make_unique<S2PointVectorShape>
    - S1ChordAngle::Degrees
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    - S1ChordAngle::is_infinity
    - S2HausdorffDistanceQuery::GetDistance
    - EXPECT_TRUE
    - S2HausdorffDistanceQuery::GetDirectedResult
    - make_unique<S2LaxPolylineShape>
    - S2HausdorffDistanceQuery::IsDistanceLess
    - EXPECT_DOUBLE_EQ
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ParsePointsOrDie
    - absl::optional::distance
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2HausdorffDistanceQueryTest, PointVectorShapeQueriesSucceed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:282,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:283,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:283,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:286,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:287,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:287,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:290,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:291,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:291,1
    - Dst: Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:300,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:306,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:308,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:310,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:311,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:313,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:314,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:314,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:315,1
    - Dst: absl::optional::target_point
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:315,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:316,1
    - Dst: Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:319,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:325,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:327,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:330,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:330,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:332,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:333,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:333,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:334,1
    - Dst: absl::optional::target_point
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:334,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 336
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc
    functionUses: 0
    functionsReached:
    - absl::optional::target_point
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygonOrDie
    - Options::set_include_interiors
    - EXPECT_NEAR
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2HausdorffDistanceQuery::GetDirectedResult
    - absl::optional::distance
    - S1ChordAngle::Degrees
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    - S2HausdorffDistanceQuery::IsDirectedDistanceLess
    linkageType: ''
    returnType: void
    signature: void TEST(S2HausdorffDistanceQueryTest, OverlappingPolygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:340,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:341,1
    - Dst: std::make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:341,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:342,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:344,1
    - Dst: Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:347,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:350,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:350,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:353,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:353,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:357,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:357,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:359,1
    - Dst: S2HausdorffDistanceQuery::GetResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:361,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:361,1
    - Dst: S2HausdorffDistanceQuery::GetResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:362,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:362,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:364,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:365,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:369,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:369,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:369,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:372,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:372,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:372,1
    - Dst: S2HausdorffDistanceQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:376,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:376,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:376,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:378,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:379,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 381
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Options::set_include_interiors
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2HausdorffDistanceQuery::GetResult
    - S2HausdorffDistanceQuery::GetDirectedResult
    - absl::optional::distance
    - S1ChordAngle::Zero
    - std::unique_ptr::get
    - s2textformat::ParsePointsOrDie
    - S1ChordAngle::Infinity
    - S2HausdorffDistanceQuery::IsDistanceLess
    - EXPECT_EQ
    - std::make_unique<S2PointVectorShape>
    - s2textformat::MakeIndexOrDie
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    - S2HausdorffDistanceQuery::IsDirectedDistanceLess
    linkageType: ''
    returnType: void
    signature: void TEST(S2HausdorffDistanceQueryTest, WholeWorld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:384,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:385,1
    - Dst: Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:388,1
    - Dst: S2HausdorffDistanceQuery::GetResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:390,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:390,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:390,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:391,1
    - Dst: S2HausdorffDistanceQuery::GetResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:394,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:394,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:394,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:395,1
    - Dst: S2HausdorffDistanceQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:398,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:398,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:398,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:398,1
    - Dst: S2HausdorffDistanceQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:400,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:400,1
    - Dst: std::unique_ptr::get
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:400,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:400,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:402,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 404
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc
    functionUses: 0
    functionsReached:
    - Options::set_include_interiors
    - S2HausdorffDistanceQuery::GetResult
    - std::unique_ptr::get
    - S2HausdorffDistanceQuery::IsDistanceLess
    - S1ChordAngle::Infinity
    - s2textformat::MakeIndexOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2HausdorffDistanceQueryTest, WholeWorldSameReference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2wrapped_shape_test.cc:30,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2wrapped_shape_test.cc:31,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2wrapped_shape_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2wrapped_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - s2textformat::MakeLaxPolygonOrDie
    - auto::get
    linkageType: ''
    returnType: void
    signature: void TEST(S2WrappedShape, Coverage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:40,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vertex_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: s2shapeutil::TestLaxLoop::TestLaxLoop
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - Init
    - s2textformat::ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TestLaxLoop(string_view vertex_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:48,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, NoComponents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:56,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, OneLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:65,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, TwoLoopsSameComponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:75,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, TwoNestedLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:86,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, TwoLoopsDifferentComponents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:94,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, OneDegenerateLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:102,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:103,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - size
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, TwoDegenerateLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:108,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:108,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:108,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:110,1
    - Dst: vector<vector<S2Shape*>>*::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:110,1
    - Dst: vector<vector<S2Shape*>>*::end
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - faces
    argTypes:
    - vector<vector<S2Shape*>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: s2shapeutil::SortFaces
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - std::sort
    - end
    - vector<vector<S2Shape*>>*::end
    - begin
    - vector<vector<S2Shape*>>*::begin
    linkageType: ''
    returnType: void
    signature: void SortFaces(vector<vector<S2Shape*>>* faces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:171,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:171,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:171,1
    - Dst: s2shapeutil::SortFaces
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:172,1
    - Dst: s2shapeutil::SortFaces
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 175
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - s2shapeutil::SortFaces
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, ComplexTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:40,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vertex_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: s2shapeutil::TestLaxLoop::TestLaxLoop
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - Init
    - s2textformat::ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TestLaxLoop(string_view vertex_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:48,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, NoComponents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:56,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, OneLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:65,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, TwoLoopsSameComponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:75,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, TwoNestedLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:86,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, TwoLoopsDifferentComponents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:94,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, OneDegenerateLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:102,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:103,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - size
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, TwoDegenerateLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:108,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:108,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:108,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:110,1
    - Dst: vector<vector<S2Shape*>>*::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:110,1
    - Dst: vector<vector<S2Shape*>>*::end
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - faces
    argTypes:
    - vector<vector<S2Shape*>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: s2shapeutil::SortFaces
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 1
    functionsReached:
    - std::sort
    - end
    - vector<vector<S2Shape*>>*::end
    - begin
    - vector<vector<S2Shape*>>*::begin
    linkageType: ''
    returnType: void
    signature: void SortFaces(vector<vector<S2Shape*>>* faces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::BuildPolygonBoundaries
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:171,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:171,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:171,1
    - Dst: s2shapeutil::SortFaces
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:172,1
    - Dst: s2shapeutil::SortFaces
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 175
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::BuildPolygonBoundaries
    - s2shapeutil::SortFaces
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(BuildPolygonBoundaries, ComplexTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:27,1
    - Dst: Distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:27,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:27,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: "S2ClosestEdgeQuery::Options::set_conservative_max_distance(\n    S1ChordAngle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached:
    - Distance
    - S1ChordAngle::PlusError
    - S2::GetUpdateMinDistanceMaxError
    - set_max_distance
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::Options::set_conservative_max_distance(\n
      \   S1ChordAngle max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:33,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: "S2ClosestEdgeQuery::Options::set_conservative_max_distance(\n    S1Angle
      max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached:
    - set_conservative_max_distance
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::Options::set_conservative_max_distance(\n
      \   S1Angle max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: S2ClosestEdgeQuery::PointTarget::max_brute_force_index_size() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestEdgeQuery::PointTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: S2ClosestEdgeQuery::EdgeTarget::max_brute_force_index_size() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestEdgeQuery::EdgeTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: S2ClosestEdgeQuery::CellTarget::max_brute_force_index_size() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestEdgeQuery::CellTarget::max_brute_force_index_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: S2ClosestEdgeQuery::ShapeIndexTarget::max_brute_force_index_size()
      const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestEdgeQuery::ShapeIndexTarget::max_brute_force_index_size()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: S2ClosestEdgeQuery::S2ClosestEdgeQuery
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQuery::S2ClosestEdgeQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: S2ClosestEdgeQuery::~S2ClosestEdgeQuery()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestEdgeQuery::~S2ClosestEdgeQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:77,1
    - Dst: Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:78,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:79,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:79,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - target
    - limit
    - filter
    argTypes:
    - Target*
    - S1ChordAngle
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: S2ClosestEdgeQuery::IsDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached:
    - Options::set_max_error
    - S2ClosestEdgeQuery::FindClosestEdge
    - Options::set_max_results
    - Options::set_max_distance
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestEdgeQuery::IsDistanceLess(Target* target, S1ChordAngle
      limit,\n                                        ShapeFilter filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:88,1
    - Dst: Options::set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:89,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:90,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:90,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - target
    - limit
    - filter
    argTypes:
    - Target*
    - S1ChordAngle
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: S2ClosestEdgeQuery::IsDistanceLessOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached:
    - Options::set_max_error
    - S2ClosestEdgeQuery::FindClosestEdge
    - Options::set_inclusive_max_distance
    - Options::set_max_results
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestEdgeQuery::IsDistanceLessOrEqual(Target* target,\n                                               S1ChordAngle
      limit,\n                                               ShapeFilter filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:99,1
    - Dst: Options::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:100,1
    - Dst: Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:101,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:101,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - target
    - limit
    - filter
    argTypes:
    - Target*
    - S1ChordAngle
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached:
    - Options::set_max_error
    - S2ClosestEdgeQuery::FindClosestEdge
    - Options::set_max_results
    - S1ChordAngle::Straight
    - Options::set_conservative_max_distance
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual(Target*
      target,\n                                                           S1ChordAngle
      limit,\n                                                           ShapeFilter
      filter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::VisitClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:112,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:114,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:115,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2closest_edge_query.cc:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - target
    - options
    - visitor
    - filter
    argTypes:
    - Target*
    - Options
    - ResultVisitor
    - ShapeFilter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 122
    functionName: S2ClosestEdgeQuery::VisitClosestShapes
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::VisitClosestEdges
    - shape_id
    - visitor
    - absl::flat_hash_set::insert
    linkageType: ''
    returnType: void
    signature: "void S2ClosestEdgeQuery::VisitClosestShapes(Target* target, Options
      options,\n                      ResultVisitor visitor, const ShapeFilter filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: s2shapeutil::ShapeEdge
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShapeEdge()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: s2shapeutil::id
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ShapeEdgeId
    signature: ShapeEdgeId id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& v0() const'
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & v0() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& v1() const'
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & v1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - shape_id
    - edge_id
    - ' edge'
    argTypes:
    - int32_t
    - int32_t
    - S2Shape::Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2shapeutil::ShapeEdge::ShapeEdge
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ShapeEdge::ShapeEdge(int32_t shape_id, int32_t edge_id,\n                            const
      S2Shape::Edge& edge)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: s2shapeutil::ShapeEdge
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShapeEdge()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: s2shapeutil::id
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ShapeEdgeId
    signature: ShapeEdgeId id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& v0() const'
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & v0() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& v1() const'
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & v1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - shape_id
    - edge_id
    - ' edge'
    argTypes:
    - int32_t
    - int32_t
    - S2Shape::Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2shapeutil::ShapeEdge::ShapeEdge
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ShapeEdge::ShapeEdge(int32_t shape_id, int32_t edge_id,\n                            const
      S2Shape::Edge& edge)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: MakeCellId
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 4
    functionsReached:
    - S2CellId::FromDebugString
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId MakeCellId(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:74,1
    - Dst: S2CellId::IJLevelToBoundUV
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:75,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:75,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:78,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:78,1
    - Dst: make_unique<S2LaxLoopShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - id
    - padding_uv
    argTypes:
    - S2CellId
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: NewPaddedCell
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2LaxLoopShape>
    - S2CellId::level
    - R2Rect::GetVertex
    - S2CellId::ToFaceIJOrientation
    - S2CellId::IJLevelToBoundUV
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> NewPaddedCell(S2CellId id, double padding_uv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:84,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:87,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:88,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:88,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:89,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:90,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:91,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:91,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:95,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:95,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2Cap::Contains
    - S2ShapeIndexRegion
    - S2CellId::FromDebugString
    - EXPECT_LE
    - S2Cell
    - S2Cap::GetRadius
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, GetCapBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:99,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:102,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:103,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:103,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:104,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexRegion
    - S2CellId::FromDebugString
    - S2Cell
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, GetRectBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:110,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:110,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:111,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:112,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:112,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:114,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:115,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:115,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - MakeCellId
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - vector::end
    - S2ShapeIndexRegion
    - std::sort
    - EXPECT_EQ
    - vector::begin
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, GetCellUnionBoundMultipleFaces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:125,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:125,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:126,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:126,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:127,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:127,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:130,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:130,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:130,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:136,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:136,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - MakeCellId
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexRegion
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, GetCellUnionBoundOneFace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:145,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:148,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:149,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:150,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:150,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:150,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:154,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:154,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:155,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:155,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:155,1
    - Dst: auto::child_begin
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:158,1
    - Dst: auto::child_end
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:159,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:159,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:160,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:160,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 162
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexRegion
    - S2CellId::FromDebugString
    - S2CellId::next
    - auto::child_end
    - S2Cell
    - auto::child_begin
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, ContainsCellMultipleShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:165,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:168,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:169,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:169,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:174,1
    - Dst: S2ShapeIndexRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:174,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:174,1
    - Dst: auto::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:176,1
    - Dst: auto::level
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:178,1
    - Dst: S2ShapeIndexRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:178,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - auto::AppendAllNeighbors
    - NewPaddedCell
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2CellId::FromDebugString
    - S2ShapeIndexRegion::MayIntersect
    - S2Cell
    - auto::level
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, IntersectsShrunkenCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:183,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:186,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:187,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:187,1
    - Dst: auto::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:192,1
    - Dst: auto::level
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:192,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:194,1
    - Dst: S2ShapeIndexRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:194,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - auto::AppendAllNeighbors
    - NewPaddedCell
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2CellId::FromDebugString
    - S2ShapeIndexRegion::MayIntersect
    - S2Cell
    - auto::level
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, IntersectsExactCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:209,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:210,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:211,1
    - Dst: make_unique<S2WrappedShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:211,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:211,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:212,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bitgen
    - index
    argTypes:
    - absl::BitGenRef
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: VisitIntersectingShapesTest::VisitIntersectingShapesTest
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - make_unique<S2WrappedShape>
    - auto::Add
    - std::move
    - num_shape_ids
    - shape
    - push_back
    linkageType: ''
    returnType: void
    signature: void VisitIntersectingShapesTest(absl::BitGenRef bitgen, const S2ShapeIndex*
      index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:217,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:218,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:218,1
    - Dst: VisitIntersectingShapesTest::TestCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:219,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: VisitIntersectingShapesTest::Run
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - VisitIntersectingShapesTest::TestCell
    - S2CellId::next
    - S2CellId::Begin
    - S2Cell
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void Run()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:227,1
    - Dst: VisitIntersectingShapeIds
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:227,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:233,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:234,1
    - Dst: S2ShapeIndexRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:235,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:236,1
    - Dst: flat_hash_map::contains
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:238,1
    - Dst: S2ShapeIndexRegion::Contains
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:238,1
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:241,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:241,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:247,1
    - Dst: Subdivide
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:247,1
    - Dst: VisitIntersectingShapesTest::TestCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:249,1
    - Dst: is_leaf
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:257,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:257,1
    - Dst: VisitIntersectingShapesTest::TestCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:258,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:258,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:258,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 262
    functionName: VisitIntersectingShapesTest::TestCell
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 2
    functionsReached:
    - VisitIntersectingShapeIds
    - flat_hash_map::contains
    - S2ShapeIndexRegion::Contains
    - get
    - EXPECT_TRUE
    - absl::Bernoulli
    - id
    - num_shape_ids
    - VisitIntersectingShapesTest::TestCell
    - Subdivide
    - S2ShapeIndexRegion::MayIntersect
    - Locate
    - is_leaf
    - S2Cell
    - EXPECT_EQ
    - s2random::LogUniform
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TestCell(const S2Cell& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:273,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:273,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:276,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:276,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:278,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:279,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:279,1
    - Dst: VisitIntersectingShapesTest
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2random::Point
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2PointVectorShape>
    - absl::LogInfoStreamer
    - VisitIntersectingShapesTest
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(VisitIntersectingShapes, Points)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:285,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:285,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:286,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:287,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:287,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:289,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:291,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:294,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:295,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:295,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:296,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:298,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:298,1
    - Dst: VisitIntersectingShapesTest
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 301
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - absl::Bernoulli
    - S2Point
    - S1Angle::Radians
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2random::SamplePoint
    - make_unique<S2LaxPolylineShape>
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - MutableS2ShapeIndex::Add
    - VisitIntersectingShapesTest
    - S2Testing::MakeTaggedSeedSeq
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST(VisitIntersectingShapes, Polylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:305,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:305,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:306,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:307,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:307,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:310,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:311,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:312,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:312,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:313,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:313,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:314,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:314,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:318,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:318,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:318,1
    - Dst: VisitIntersectingShapesTest
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 320
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - NewPaddedCell
    - S2Point
    - S1Angle::Radians
    - make_unique<S2Loop::OwningShape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2random::SamplePoint
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - VisitIntersectingShapesTest
    - S2CellId::FromFace
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(VisitIntersectingShapes, Polygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 325
    functionName: GetIndexCellId
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId GetIndexCellId(S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:328,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: GetParentCellId
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::parent
    - S2CellId::is_face
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId GetParentCellId(S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:332,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: GetDescendantCellId
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::level
    - S2CellId::child
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId GetDescendantCellId(S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:338,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:338,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:339,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:339,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:343,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:345,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:346,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:347,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:347,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:348,1
    - Dst: MutableS2ShapeIndex*::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:349,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:349,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:350,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:350,1
    - Dst: MutableS2ShapeIndex*::ForceBuild
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - index
    argTypes:
    - int
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 336
    functionDepth: 5
    functionLinenumber: 336
    functionLinenumberEnd: 353
    functionName: AddPolygons
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - string::begin
    - MutableS2ShapeIndex*::ForceBuild
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - string::end
    - absl::StrCat
    - S2Cap
    - S1Angle::Radians
    - MutableS2ShapeIndex*::Add
    - make_unique<S2Loop::OwningShape>
    - s2random::SamplePoint
    - S2LatLng::FromDegrees
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void AddPolygons(int n, MutableS2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:361,1
    - Dst: add_geometry
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:362,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:362,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:366,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:366,1
    - Dst: get_target
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:367,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:367,1
    - Dst: S2ShapeIndexRegion::VisitIntersectingShapes
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:368,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' state'
    - add_geometry
    - get_target
    argTypes:
    - benchmark::State
    - void
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 375
    functionName: BenchmarkVisitIntersectingShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - get_target
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexRegion::VisitIntersectingShapes
    - add_geometry
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - MutableS2ShapeIndex::Iterator::id
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: "void BenchmarkVisitIntersectingShapes(\n    benchmark::State& state,\n
      \   void add_geometry(int n, MutableS2ShapeIndex* index),\n    S2CellId get_target(S2CellId
      id))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkVisitIntersectingShapes
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: BM_VisitIntersectingPolygonsParentCells
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkVisitIntersectingShapes
    linkageType: ''
    returnType: void
    signature: void BM_VisitIntersectingPolygonsParentCells(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkVisitIntersectingShapes
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: BM_VisitIntersectingPolygonsIndexCells
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkVisitIntersectingShapes
    linkageType: ''
    returnType: void
    signature: void BM_VisitIntersectingPolygonsIndexCells(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkVisitIntersectingShapes
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: BM_VisitIntersectingPolygonsDescendantCells
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkVisitIntersectingShapes
    linkageType: ''
    returnType: void
    signature: void BM_VisitIntersectingPolygonsDescendantCells(benchmark::State&
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: MakeCellId
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 6
    functionsReached:
    - S2CellId::FromDebugString
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId MakeCellId(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:74,1
    - Dst: S2CellId::IJLevelToBoundUV
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:75,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:75,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:78,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:78,1
    - Dst: make_unique<S2LaxLoopShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - id
    - padding_uv
    argTypes:
    - S2CellId
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: NewPaddedCell
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 8
    functionsReached:
    - make_unique<S2LaxLoopShape>
    - S2CellId::level
    - R2Rect::GetVertex
    - S2CellId::ToFaceIJOrientation
    - S2CellId::IJLevelToBoundUV
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> NewPaddedCell(S2CellId id, double padding_uv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:84,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:87,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:88,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:88,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:89,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:90,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:91,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:91,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:95,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:95,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2Cap::Contains
    - S2ShapeIndexRegion
    - S2CellId::FromDebugString
    - EXPECT_LE
    - S2Cell
    - S2Cap::GetRadius
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, GetCapBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:99,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:102,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:103,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:103,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:104,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexRegion
    - S2CellId::FromDebugString
    - S2Cell
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, GetRectBound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:110,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:110,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:111,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:112,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:112,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:114,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:115,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:115,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - MakeCellId
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - vector::end
    - S2ShapeIndexRegion
    - std::sort
    - EXPECT_EQ
    - vector::begin
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, GetCellUnionBoundMultipleFaces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:125,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:125,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:126,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:126,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:127,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:127,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:130,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:130,1
    - Dst: MakeCellId
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:130,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:136,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:136,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - MakeCellId
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexRegion
    - EXPECT_EQ
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, GetCellUnionBoundOneFace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:145,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:148,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:149,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:150,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:150,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:150,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:154,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:154,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:155,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:155,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:155,1
    - Dst: auto::child_begin
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:158,1
    - Dst: auto::child_end
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:159,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:159,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:160,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:160,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 162
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - NewPaddedCell
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexRegion
    - S2CellId::FromDebugString
    - S2CellId::next
    - auto::child_end
    - S2Cell
    - auto::child_begin
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, ContainsCellMultipleShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:165,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:168,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:169,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:169,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:174,1
    - Dst: S2ShapeIndexRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:174,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:174,1
    - Dst: auto::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:176,1
    - Dst: auto::level
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:178,1
    - Dst: S2ShapeIndexRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:178,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - auto::AppendAllNeighbors
    - NewPaddedCell
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2CellId::FromDebugString
    - S2ShapeIndexRegion::MayIntersect
    - S2Cell
    - auto::level
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, IntersectsShrunkenCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:183,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:186,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:187,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:187,1
    - Dst: auto::AppendAllNeighbors
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:192,1
    - Dst: auto::level
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:192,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:194,1
    - Dst: S2ShapeIndexRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:194,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - auto::AppendAllNeighbors
    - NewPaddedCell
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2CellId::FromDebugString
    - S2ShapeIndexRegion::MayIntersect
    - S2Cell
    - auto::level
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexRegion, IntersectsExactCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:209,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:210,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:211,1
    - Dst: make_unique<S2WrappedShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:211,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:211,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:212,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bitgen
    - index
    argTypes:
    - absl::BitGenRef
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: VisitIntersectingShapesTest::VisitIntersectingShapesTest
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<MutableS2ShapeIndex>
    - make_unique<S2WrappedShape>
    - auto::Add
    - std::move
    - num_shape_ids
    - shape
    - push_back
    linkageType: ''
    returnType: void
    signature: void VisitIntersectingShapesTest(absl::BitGenRef bitgen, const S2ShapeIndex*
      index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:217,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:218,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:218,1
    - Dst: VisitIntersectingShapesTest::TestCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:219,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: VisitIntersectingShapesTest::Run
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - VisitIntersectingShapesTest::TestCell
    - S2CellId::next
    - S2CellId::Begin
    - S2Cell
    - S2CellId::End
    linkageType: ''
    returnType: void
    signature: void Run()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:227,1
    - Dst: VisitIntersectingShapeIds
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:227,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:233,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:234,1
    - Dst: S2ShapeIndexRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:235,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:236,1
    - Dst: flat_hash_map::contains
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:238,1
    - Dst: S2ShapeIndexRegion::Contains
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:238,1
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:241,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:241,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:247,1
    - Dst: Subdivide
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:247,1
    - Dst: VisitIntersectingShapesTest::TestCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:249,1
    - Dst: is_leaf
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:257,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:257,1
    - Dst: VisitIntersectingShapesTest::TestCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:258,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:258,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:258,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 262
    functionName: VisitIntersectingShapesTest::TestCell
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 4
    functionsReached:
    - VisitIntersectingShapeIds
    - flat_hash_map::contains
    - S2ShapeIndexRegion::Contains
    - get
    - EXPECT_TRUE
    - absl::Bernoulli
    - id
    - num_shape_ids
    - VisitIntersectingShapesTest::TestCell
    - Subdivide
    - S2ShapeIndexRegion::MayIntersect
    - Locate
    - is_leaf
    - S2Cell
    - EXPECT_EQ
    - s2random::LogUniform
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TestCell(const S2Cell& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:273,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:273,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:276,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:276,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:278,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:279,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:279,1
    - Dst: VisitIntersectingShapesTest
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2random::Point
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2PointVectorShape>
    - absl::LogInfoStreamer
    - VisitIntersectingShapesTest
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(VisitIntersectingShapes, Points)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:285,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:285,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:286,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:287,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:287,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:289,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:291,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:294,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:295,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:295,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:296,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:298,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:298,1
    - Dst: VisitIntersectingShapesTest
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 301
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - absl::Bernoulli
    - S2Point
    - S1Angle::Radians
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2random::SamplePoint
    - make_unique<S2LaxPolylineShape>
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - MutableS2ShapeIndex::Add
    - VisitIntersectingShapesTest
    - S2Testing::MakeTaggedSeedSeq
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void TEST(VisitIntersectingShapes, Polylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:305,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:305,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:306,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:307,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:307,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:310,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:311,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:312,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:312,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:313,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:313,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:314,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:314,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:318,1
    - Dst: NewPaddedCell
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:318,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:318,1
    - Dst: VisitIntersectingShapesTest
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 320
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - NewPaddedCell
    - S2Point
    - S1Angle::Radians
    - make_unique<S2Loop::OwningShape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2random::SamplePoint
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - VisitIntersectingShapesTest
    - S2CellId::FromFace
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(VisitIntersectingShapes, Polygons)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 325
    functionName: GetIndexCellId
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId GetIndexCellId(S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::is_face
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:328,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: GetParentCellId
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::parent
    - S2CellId::is_face
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId GetParentCellId(S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:332,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: GetDescendantCellId
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::level
    - S2CellId::child
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId GetDescendantCellId(S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:338,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:338,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:339,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:339,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:343,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:345,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:346,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:347,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:347,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:348,1
    - Dst: MutableS2ShapeIndex*::Add
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:349,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:349,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:350,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:350,1
    - Dst: MutableS2ShapeIndex*::ForceBuild
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - index
    argTypes:
    - int
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 336
    functionDepth: 5
    functionLinenumber: 336
    functionLinenumberEnd: 353
    functionName: AddPolygons
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - string::begin
    - MutableS2ShapeIndex*::ForceBuild
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - string::end
    - absl::StrCat
    - S2Cap
    - S1Angle::Radians
    - MutableS2ShapeIndex*::Add
    - make_unique<S2Loop::OwningShape>
    - s2random::SamplePoint
    - S2LatLng::FromDegrees
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void AddPolygons(int n, MutableS2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:361,1
    - Dst: add_geometry
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:362,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:362,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:366,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:366,1
    - Dst: get_target
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:367,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:367,1
    - Dst: S2ShapeIndexRegion::VisitIntersectingShapes
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:368,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' state'
    - add_geometry
    - get_target
    argTypes:
    - benchmark::State
    - void
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 375
    functionName: BenchmarkVisitIntersectingShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 3
    functionsReached:
    - get_target
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexRegion::VisitIntersectingShapes
    - add_geometry
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - MutableS2ShapeIndex::Iterator::id
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: "void BenchmarkVisitIntersectingShapes(\n    benchmark::State& state,\n
      \   void add_geometry(int n, MutableS2ShapeIndex* index),\n    S2CellId get_target(S2CellId
      id))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkVisitIntersectingShapes
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: BM_VisitIntersectingPolygonsParentCells
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkVisitIntersectingShapes
    linkageType: ''
    returnType: void
    signature: void BM_VisitIntersectingPolygonsParentCells(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkVisitIntersectingShapes
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: BM_VisitIntersectingPolygonsIndexCells
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkVisitIntersectingShapes
    linkageType: ''
    returnType: void
    signature: void BM_VisitIntersectingPolygonsIndexCells(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkVisitIntersectingShapes
      Src: /src/s2geometry/src/s2/s2shape_index_region_test.cc:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: BM_VisitIntersectingPolygonsDescendantCells
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkVisitIntersectingShapes
    linkageType: ''
    returnType: void
    signature: void BM_VisitIntersectingPolygonsDescendantCells(benchmark::State&
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ChainInterpolationQuery::Init
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - shape
    - chain_id
    argTypes:
    - S2Shape*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: S2ChainInterpolationQuery::S2ChainInterpolationQuery
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.cc
    functionUses: 2
    functionsReached:
    - S2ChainInterpolationQuery::Init
    linkageType: ''
    returnType: void
    signature: "void S2ChainInterpolationQuery::S2ChainInterpolationQuery(const S2Shape*
      shape,\n                                                     int chain_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:33,1
    - Dst: S2Shape*::num_chains
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:33,1
    - Dst: S2Shape*::chain
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:39,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:46,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:49,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:50,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:52,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:55,1
    - Dst: S2Shape*::edge
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:56,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:57,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:59,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - shape
    - chain_id
    argTypes:
    - S2Shape*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 66
    functionName: S2ChainInterpolationQuery::Init
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.cc
    functionUses: 1
    functionsReached:
    - reserve
    - S2Shape*::edge
    - clear
    - S2Shape*::num_edges
    - ABSL_CHECK
    - S2Shape*::num_chains
    - S2Shape*::chain
    - push_back
    - S1Angle
    - empty
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void S2ChainInterpolationQuery::Init(const S2Shape* shape, int chain_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:71,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:71,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: S2ChainInterpolationQuery::GetLength
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.cc
    functionUses: 4
    functionsReached:
    - back
    - S1Angle::Zero
    - empty
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2ChainInterpolationQuery::GetLength() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:76,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:77,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - edge_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: S2ChainInterpolationQuery::GetLengthAtEdgeEnd
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.cc
    functionUses: 3
    functionsReached:
    - S1Angle::Infinity
    - S1Angle::Zero
    - empty
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2ChainInterpolationQuery::GetLengthAtEdgeEnd(const int edge_id)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:91,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:92,1
    - Dst: std::lower_bound
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:97,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:97,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:98,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:100,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:102,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:102,1
    - Dst: front
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:103,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:104,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:108,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:108,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:109,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:113,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:114,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:115,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' distance'
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 118
    functionName: S2ChainInterpolationQuery::AtDistance
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.cc
    functionUses: 2
    functionsReached:
    - S2::GetPointOnLine
    - end
    - Result
    - back
    - std::lower_bound
    - edge
    - front
    - begin
    - empty
    linkageType: ''
    returnType: S2ChainInterpolationQuery::Result
    signature: "S2ChainInterpolationQuery::Result S2ChainInterpolationQuery::AtDistance(\n
      \   const S1Angle& distance) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ChainInterpolationQuery::AtDistance
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:122,1
    - Dst: S2ChainInterpolationQuery::GetLength
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fraction
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: S2ChainInterpolationQuery::AtFraction
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.cc
    functionUses: 2
    functionsReached:
    - S2ChainInterpolationQuery::GetLength
    - S2ChainInterpolationQuery::AtDistance
    linkageType: ''
    returnType: S2ChainInterpolationQuery::Result
    signature: "S2ChainInterpolationQuery::Result S2ChainInterpolationQuery::AtFraction(\n
      \   double fraction) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ChainInterpolationQuery::AddSlice
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - begin_fraction
    - end_fraction
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: S2ChainInterpolationQuery::Slice
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.cc
    functionUses: 1
    functionsReached:
    - S2ChainInterpolationQuery::AddSlice
    linkageType: ''
    returnType: std::vector<S2Point>
    signature: "std::vector<S2Point> S2ChainInterpolationQuery::Slice(\n    double
      begin_fraction, double end_fraction) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:135,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:139,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:142,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:145,1
    - Dst: Result::edge_id
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:146,1
    - Dst: Result::point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:147,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:148,1
    - Dst: S2ChainInterpolationQuery::AtFraction
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:150,1
    - Dst: Result::edge_id
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:151,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:153,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:156,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:159,1
    - Dst: Result::point
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:159,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:162,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:162,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2chain_interpolation_query.cc:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - begin_fraction
    - end_fraction
    - ' slice'
    argTypes:
    - double
    - double
    - std::vector<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 164
    functionName: S2ChainInterpolationQuery::AddSlice
    functionSourceFile: /src/s2geometry/src/s2/s2chain_interpolation_query.cc
    functionUses: 1
    functionsReached:
    - std::reverse
    - end
    - size
    - Result::edge_id
    - S2ChainInterpolationQuery::AtFraction
    - push_back
    - edge
    - swap
    - begin
    - empty
    - Result::point
    linkageType: ''
    returnType: void
    signature: "void S2ChainInterpolationQuery::AddSlice(double begin_fraction,\n
      \                                        double end_fraction,\n                                         std::vector<S2Point>&
      slice) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:82,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:83,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:83,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:84,1
    - Dst: make_unique<s2builderutil::IndexedLaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:86,1
    - Dst: S2WindingOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:88,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:88,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:90,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:91,1
    - Dst: S2WindingOperation::Build
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:91,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:91,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:93,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:93,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:94,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:97,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:98,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:99,1
    - Dst: S2LaxPolygonShape::is_empty
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:99,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - ' options'
    - loop_strs
    - ref_point_str
    - ref_winding
    - rule
    - expected_str
    argTypes:
    - S2WindingOperation::Options
    - absl::Span<const string>
    - string_view
    - int
    - S2WindingOperation::WindingRule
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: ExpectWindingResult
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - make_unique<s2builderutil::IndexedLaxPolygonLayer>
    - S2LaxPolygonShape::is_empty
    - ABSL_LOG
    - S2LaxPolygonShape::S2LaxPolygonShape
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygonOrDie
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2BooleanOperation::Build
    - s2textformat::ParsePointsOrDie
    - S2WindingOperation::Build
    - ASSERT_TRUE
    - s2textformat::MakePointOrDie
    - S2Error::S2Error
    - MutableS2ShapeIndex::Add
    - S2WindingOperation::AddLoop
    linkageType: ''
    returnType: void
    signature: "void ExpectWindingResult(const S2WindingOperation::Options& options,\n
      \                        absl::Span<const string> loop_strs,\n                         string_view
      ref_point_str, int ref_winding,\n                         S2WindingOperation::WindingRule
      rule,\n                         string_view expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WindingOperation::Options::set_include_degeneracies
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:111,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:112,1
    - Dst: S2WindingOperation::Options::set_include_degeneracies
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:114,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - options
    - loop_strs
    - ref_point_str
    - ref_winding
    - rule
    - expected_str_false
    - expected_str_true
    argTypes:
    - S2WindingOperation::Options
    - absl::Span<const string>
    - string_view
    - int
    - S2WindingOperation::WindingRule
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: ExpectDegenerateWindingResult
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - S2WindingOperation::Options::set_include_degeneracies
    - ExpectWindingResult
    linkageType: ''
    returnType: void
    signature: "void ExpectDegenerateWindingResult(S2WindingOperation::Options options,\n
      \                                  absl::Span<const string> loop_strs,\n                                   string_view
      ref_point_str, int ref_winding,\n                                   S2WindingOperation::WindingRule
      rule,\n                                   string_view expected_str_false,\n
      \                                  string_view expected_str_true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:120,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectDegenerateWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, PointLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectDegenerateWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, SiblingPairLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:143,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:147,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:151,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, Rectangle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:164,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:165,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:165,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:168,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:169,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:169,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:172,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:173,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:173,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:176,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:177,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    - IdentitySnapFunction
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, BowTie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:183,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:184,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:184,1
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:187,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:188,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:188,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:191,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:192,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:192,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:195,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:196,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 199
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectDegenerateWindingResult
    - IdentitySnapFunction
    - S1Angle::Degrees
    - ExpectWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, CollapsingShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:207,1
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    - ExpectDegenerateWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, TouchingTriangles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:220,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:221,1
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:225,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    - IntLatLngSnapFunction
    - ExpectDegenerateWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, TouchingTrianglesAfterSnapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:234,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:235,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:243,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:244,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:252,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:253,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:260,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:261,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:268,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 285
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    - IntLatLngSnapFunction
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, UnionOfSquares)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:291,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectDegenerateWindingResult
    - IntLatLngSnapFunction
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, SymmetricDifferenceDegeneracies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WindingOperation::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:302,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:303,1
    - Dst: S2WindingOperation::Options::snap_function
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:303,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - IdentitySnapFunction
    - S2WindingOperation::Options::snap_function
    - EXPECT_EQ
    - S1Angle::Zero
    - S2WindingOperation::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperationOptions, SetGetSnapFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:315,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:316,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:317,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:317,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:320,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:321,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:322,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:322,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:323,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:324,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:326,1
    - Dst: S2WindingOperation::Options::set_include_degeneracies
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:328,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:329,1
    - Dst: S2WindingOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:331,1
    - Dst: S2WindingOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:333,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:335,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:336,1
    - Dst: S2WindingOperation::Build
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:336,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:337,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:337,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 339
    functionName: BM_LoopWithPointCloud
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - string::begin
    - s2random::Point
    - S2LaxPolygonShape::S2LaxPolygonShape
    - string::end
    - absl::StrCat
    - range
    - S1Angle::Degrees
    - ABSL_CHECK
    - ABSL_CHECK_GT
    - vector::size
    - S2LaxPolygonShape::num_loops
    - S2WindingOperation::Build
    - S2Error::S2Error
    - S2WindingOperation::Options::set_include_degeneracies
    - absl::GetFlag
    - S2Testing::MakeRegularPoints
    - S2WindingOperation::AddLoop
    linkageType: ''
    returnType: void
    signature: void BM_LoopWithPointCloud(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:82,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:83,1
    - Dst: s2textformat::MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:83,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:84,1
    - Dst: make_unique<s2builderutil::IndexedLaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:86,1
    - Dst: S2WindingOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:88,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:88,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:90,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:91,1
    - Dst: S2WindingOperation::Build
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:91,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:91,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:93,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:93,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:94,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:97,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:98,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:99,1
    - Dst: S2LaxPolygonShape::is_empty
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:99,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - ' options'
    - loop_strs
    - ref_point_str
    - ref_winding
    - rule
    - expected_str
    argTypes:
    - S2WindingOperation::Options
    - absl::Span<const string>
    - string_view
    - int
    - S2WindingOperation::WindingRule
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: ExpectWindingResult
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 8
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - make_unique<s2builderutil::IndexedLaxPolygonLayer>
    - S2LaxPolygonShape::is_empty
    - ABSL_LOG
    - S2LaxPolygonShape::S2LaxPolygonShape
    - EXPECT_TRUE
    - s2textformat::MakeLaxPolygonOrDie
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2BooleanOperation::Build
    - s2textformat::ParsePointsOrDie
    - S2WindingOperation::Build
    - ASSERT_TRUE
    - s2textformat::MakePointOrDie
    - S2Error::S2Error
    - MutableS2ShapeIndex::Add
    - S2WindingOperation::AddLoop
    linkageType: ''
    returnType: void
    signature: "void ExpectWindingResult(const S2WindingOperation::Options& options,\n
      \                        absl::Span<const string> loop_strs,\n                         string_view
      ref_point_str, int ref_winding,\n                         S2WindingOperation::WindingRule
      rule,\n                         string_view expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WindingOperation::Options::set_include_degeneracies
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:111,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:112,1
    - Dst: S2WindingOperation::Options::set_include_degeneracies
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:114,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - options
    - loop_strs
    - ref_point_str
    - ref_winding
    - rule
    - expected_str_false
    - expected_str_true
    argTypes:
    - S2WindingOperation::Options
    - absl::Span<const string>
    - string_view
    - int
    - S2WindingOperation::WindingRule
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: ExpectDegenerateWindingResult
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 6
    functionsReached:
    - S2WindingOperation::Options::set_include_degeneracies
    - ExpectWindingResult
    linkageType: ''
    returnType: void
    signature: "void ExpectDegenerateWindingResult(S2WindingOperation::Options options,\n
      \                                  absl::Span<const string> loop_strs,\n                                   string_view
      ref_point_str, int ref_winding,\n                                   S2WindingOperation::WindingRule
      rule,\n                                   string_view expected_str_false,\n
      \                                  string_view expected_str_true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:120,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectDegenerateWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, PointLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectDegenerateWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, SiblingPairLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:143,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:147,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:151,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, Rectangle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:164,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:165,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:165,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:168,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:169,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:169,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:172,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:173,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:173,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:176,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:177,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    - IdentitySnapFunction
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, BowTie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:183,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:184,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:184,1
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:187,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:188,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:188,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:191,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:192,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:192,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:195,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:196,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 199
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectDegenerateWindingResult
    - IdentitySnapFunction
    - S1Angle::Degrees
    - ExpectWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, CollapsingShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:207,1
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    - ExpectDegenerateWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, TouchingTriangles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:220,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:221,1
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:225,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    - IntLatLngSnapFunction
    - ExpectDegenerateWindingResult
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, TouchingTrianglesAfterSnapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:234,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:235,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:243,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:244,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:252,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:253,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:260,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:261,1
    - Dst: ExpectWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:268,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 285
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectWindingResult
    - IntLatLngSnapFunction
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, UnionOfSquares)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectDegenerateWindingResult
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:291,1
    - Dst: IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - ExpectDegenerateWindingResult
    - IntLatLngSnapFunction
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperation, SymmetricDifferenceDegeneracies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2WindingOperation::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:302,1
    - Dst: IdentitySnapFunction
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:303,1
    - Dst: S2WindingOperation::Options::snap_function
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:303,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - IdentitySnapFunction
    - S2WindingOperation::Options::snap_function
    - EXPECT_EQ
    - S1Angle::Zero
    - S2WindingOperation::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(S2WindingOperationOptions, SetGetSnapFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:315,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:316,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:317,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:317,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:320,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:321,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:322,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:322,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:323,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:324,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:326,1
    - Dst: S2WindingOperation::Options::set_include_degeneracies
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:328,1
    - Dst: make_unique<s2builderutil::LaxPolygonLayer>
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:329,1
    - Dst: S2WindingOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:331,1
    - Dst: S2WindingOperation::AddLoop
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:333,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:335,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:336,1
    - Dst: S2WindingOperation::Build
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:336,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:337,1
    - Dst: S2LaxPolygonShape::num_loops
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:337,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2winding_operation_test.cc:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 339
    functionName: BM_LoopWithPointCloud
    functionSourceFile: /src/s2geometry/src/s2/s2winding_operation_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::LaxPolygonLayer>
    - string::begin
    - s2random::Point
    - S2LaxPolygonShape::S2LaxPolygonShape
    - string::end
    - absl::StrCat
    - range
    - S1Angle::Degrees
    - ABSL_CHECK
    - ABSL_CHECK_GT
    - vector::size
    - S2LaxPolygonShape::num_loops
    - S2WindingOperation::Build
    - S2Error::S2Error
    - S2WindingOperation::Options::set_include_degeneracies
    - absl::GetFlag
    - S2Testing::MakeRegularPoints
    - S2WindingOperation::AddLoop
    linkageType: ''
    returnType: void
    signature: void BM_LoopWithPointCloud(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2::RefDir
      Src: /src/s2geometry/src/s2/s2contains_vertex_query.cc:39,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2contains_vertex_query.cc:42,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2contains_vertex_query.cc:42,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2contains_vertex_query.cc:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: S2ContainsVertexQuery::ContainsSign
    functionSourceFile: /src/s2geometry/src/s2/s2contains_vertex_query.cc
    functionUses: 11
    functionsReached:
    - ABSL_DCHECK_LE
    - S2::RefDir
    - s2pred::OrderedCCW
    - abs
    linkageType: ''
    returnType: int
    signature: int S2ContainsVertexQuery::ContainsSign()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:70,1
    - Dst: s2textformat::MakePoint
      Src: /src/s2geometry/src/s2/s2text_format.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: s2textformat::MakePointOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 29
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakePoint
    linkageType: ''
    returnType: S2Point
    signature: S2Point MakePointOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePoint
      Src: /src/s2geometry/src/s2/s2text_format.h:79,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:80,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - point
    argTypes:
    - absl::string_view
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: s2textformat::MakePoint
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 6
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakePoint
    linkageType: ''
    returnType: bool
    signature: bool MakePoint(absl::string_view str, S2Point* point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:95,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: s2textformat::ParseLatLngsOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 3
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: std::vector<S2LatLng>
    signature: std::vector<S2LatLng> ParseLatLngsOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.h:102,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:103,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - latlngs
    argTypes:
    - absl::string_view
    - std::vector<S2LatLng>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: s2textformat::ParseLatLngs
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 12
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: bool
    signature: "bool ParseLatLngs(absl::string_view str,\n                                       std::vector<S2LatLng>*
      latlngs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:114,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: s2textformat::ParsePointsOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 65
    functionsReached:
    - s2textformat::ParsePoints
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::vector<S2Point>
    signature: std::vector<S2Point> ParsePointsOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.h:121,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:122,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - vertices
    argTypes:
    - absl::string_view
    - std::vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: s2textformat::ParsePoints
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 16
    functionsReached:
    - std::move
    - s2textformat::ParsePoints
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool ParsePoints(absl::string_view str,\n                                      std::vector<S2Point>*
      vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:132,1
    - Dst: s2textformat::MakeLatLng
      Src: /src/s2geometry/src/s2/s2text_format.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: s2textformat::MakeLatLngOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 4
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeLatLng
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng MakeLatLngOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLng
      Src: /src/s2geometry/src/s2/s2text_format.h:138,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:139,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - latlng
    argTypes:
    - absl::string_view
    - S2LatLng*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: s2textformat::MakeLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 6
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeLatLng
    linkageType: ''
    returnType: bool
    signature: bool MakeLatLng(absl::string_view str, S2LatLng* latlng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:150,1
    - Dst: s2textformat::MakeLatLngRect
      Src: /src/s2geometry/src/s2/s2text_format.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: s2textformat::MakeLatLngRectOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 4
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeLatLngRect
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect MakeLatLngRectOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngRect
      Src: /src/s2geometry/src/s2/s2text_format.h:157,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:158,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - rect
    argTypes:
    - absl::string_view
    - S2LatLngRect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: s2textformat::MakeLatLngRect
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 6
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeLatLngRect
    linkageType: ''
    returnType: bool
    signature: "bool MakeLatLngRect(absl::string_view str,\n                                         S2LatLngRect*
      rect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:176,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: s2textformat::MakeCellIdOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakeCellId
    - gtl::ValueOrDie
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId MakeCellIdOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format.h:182,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:183,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - cell_id
    argTypes:
    - absl::string_view
    - S2CellId*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: s2textformat::MakeCellId
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 6
    functionsReached:
    - std::move
    - s2textformat::MakeCellId
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: bool MakeCellId(absl::string_view str, S2CellId* cell_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:196,1
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: s2textformat::MakeCellUnionOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 0
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeCellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion MakeCellUnionOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format.h:203,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:204,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - cell_union
    argTypes:
    - absl::string_view
    - S2CellUnion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: s2textformat::MakeCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 6
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeCellUnion
    linkageType: ''
    returnType: bool
    signature: "bool MakeCellUnion(absl::string_view str,\n                                        S2CellUnion*
      cell_union)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:219,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: s2textformat::MakeLoopOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 14
    functionsReached:
    - s2textformat::MakeLoop
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2Loop>
    signature: "std::unique_ptr<S2Loop> MakeLoopOrDie(\n    absl::string_view str,
      S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format.h:228,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:229,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - loop
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2Loop>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: s2textformat::MakeLoop
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 12
    functionsReached:
    - s2textformat::MakeLoop
    - std::move
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakeLoop(absl::string_view str,\n                                   std::unique_ptr<S2Loop>*
      loop,\n                                   S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:241,1
    - Dst: s2textformat::MakePolyline
      Src: /src/s2geometry/src/s2/s2text_format.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: s2textformat::MakePolylineOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 20
    functionsReached:
    - s2textformat::MakePolyline
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2Polyline>
    signature: "std::unique_ptr<S2Polyline> MakePolylineOrDie(\n    absl::string_view
      str, S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolyline
      Src: /src/s2geometry/src/s2/s2text_format.h:250,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:251,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - polyline
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2Polyline>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 254
    functionName: s2textformat::MakePolyline
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 6
    functionsReached:
    - s2textformat::MakePolyline
    - std::move
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakePolyline(\n    absl::string_view str, std::unique_ptr<S2Polyline>*
      polyline,\n    S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:263,1
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: s2textformat::MakeLaxPolylineOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 6
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeLaxPolyline
    linkageType: ''
    returnType: std::unique_ptr<S2LaxPolylineShape>
    signature: "std::unique_ptr<S2LaxPolylineShape> MakeLaxPolylineOrDie(\n    absl::string_view
      str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format.h:271,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:272,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - lax_polyline
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2LaxPolylineShape>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: s2textformat::MakeLaxPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeLaxPolyline
    linkageType: ''
    returnType: bool
    signature: "bool MakeLaxPolyline(\n    absl::string_view str, std::unique_ptr<S2LaxPolylineShape>*
      lax_polyline)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:296,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: s2textformat::MakePolygonOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 38
    functionsReached:
    - s2textformat::MakePolygon
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2Polygon>
    signature: "std::unique_ptr<S2Polygon> MakePolygonOrDie(\n    absl::string_view
      str, S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:305,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:306,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - polygon
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2Polygon>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: s2textformat::MakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 10
    functionsReached:
    - std::move
    - s2textformat::MakePolygon
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakePolygon(absl::string_view str,\n                                      std::unique_ptr<S2Polygon>*
      polygon,\n                                      S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:319,1
    - Dst: s2textformat::MakeVerbatimPolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: s2textformat::MakeVerbatimPolygonOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 4
    functionsReached:
    - s2textformat::MakeVerbatimPolygon
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2Polygon>
    signature: "std::unique_ptr<S2Polygon> MakeVerbatimPolygonOrDie(\n    absl::string_view
      str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeVerbatimPolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:327,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:328,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - polygon
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2Polygon>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: s2textformat::MakeVerbatimPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 6
    functionsReached:
    - std::move
    - s2textformat::MakeVerbatimPolygon
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakeVerbatimPolygon(\n    absl::string_view str, std::unique_ptr<S2Polygon>*
      polygon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:343,1
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: s2textformat::MakeLaxPolygonOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 25
    functionsReached:
    - s2textformat::MakeLaxPolygon
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2LaxPolygonShape>
    signature: "std::unique_ptr<S2LaxPolygonShape> MakeLaxPolygonOrDie(\n    absl::string_view
      str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:351,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:352,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - lax_polygon
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2LaxPolygonShape>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 355
    functionName: s2textformat::MakeLaxPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - std::move
    - s2textformat::MakeLaxPolygon
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakeLaxPolygon(\n    absl::string_view str, std::unique_ptr<S2LaxPolygonShape>*
      lax_polygon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:387,1
    - Dst: s2textformat::MakeIndex
      Src: /src/s2geometry/src/s2/s2text_format.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: s2textformat::MakeIndexOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 83
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeIndex
    linkageType: ''
    returnType: std::unique_ptr<MutableS2ShapeIndex>
    signature: "std::unique_ptr<MutableS2ShapeIndex> MakeIndexOrDie(\n    absl::string_view
      str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndex
      Src: /src/s2geometry/src/s2/s2text_format.h:395,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:396,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - index
    argTypes:
    - absl::string_view
    - std::unique_ptr<MutableS2ShapeIndex>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: s2textformat::MakeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeIndex
    linkageType: ''
    returnType: bool
    signature: "bool MakeIndex(\n    absl::string_view str, std::unique_ptr<MutableS2ShapeIndex>*
      index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:70,1
    - Dst: s2textformat::MakePoint
      Src: /src/s2geometry/src/s2/s2text_format.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: s2textformat::MakePointOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 29
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakePoint
    linkageType: ''
    returnType: S2Point
    signature: S2Point MakePointOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePoint
      Src: /src/s2geometry/src/s2/s2text_format.h:79,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:80,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - point
    argTypes:
    - absl::string_view
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: s2textformat::MakePoint
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakePoint
    linkageType: ''
    returnType: bool
    signature: bool MakePoint(absl::string_view str, S2Point* point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:95,1
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: s2textformat::ParseLatLngsOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 3
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: std::vector<S2LatLng>
    signature: std::vector<S2LatLng> ParseLatLngsOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParseLatLngs
      Src: /src/s2geometry/src/s2/s2text_format.h:102,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:103,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - latlngs
    argTypes:
    - absl::string_view
    - std::vector<S2LatLng>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: s2textformat::ParseLatLngs
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 14
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::ParseLatLngs
    linkageType: ''
    returnType: bool
    signature: "bool ParseLatLngs(absl::string_view str,\n                                       std::vector<S2LatLng>*
      latlngs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:114,1
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: s2textformat::ParsePointsOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 65
    functionsReached:
    - s2textformat::ParsePoints
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::vector<S2Point>
    signature: std::vector<S2Point> ParsePointsOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePoints
      Src: /src/s2geometry/src/s2/s2text_format.h:121,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:122,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - vertices
    argTypes:
    - absl::string_view
    - std::vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: s2textformat::ParsePoints
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 18
    functionsReached:
    - std::move
    - s2textformat::ParsePoints
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool ParsePoints(absl::string_view str,\n                                      std::vector<S2Point>*
      vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:132,1
    - Dst: s2textformat::MakeLatLng
      Src: /src/s2geometry/src/s2/s2text_format.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: s2textformat::MakeLatLngOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 4
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeLatLng
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng MakeLatLngOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLng
      Src: /src/s2geometry/src/s2/s2text_format.h:138,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:139,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - latlng
    argTypes:
    - absl::string_view
    - S2LatLng*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: s2textformat::MakeLatLng
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeLatLng
    linkageType: ''
    returnType: bool
    signature: bool MakeLatLng(absl::string_view str, S2LatLng* latlng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:150,1
    - Dst: s2textformat::MakeLatLngRect
      Src: /src/s2geometry/src/s2/s2text_format.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: s2textformat::MakeLatLngRectOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 4
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeLatLngRect
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect MakeLatLngRectOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLatLngRect
      Src: /src/s2geometry/src/s2/s2text_format.h:157,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:158,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - rect
    argTypes:
    - absl::string_view
    - S2LatLngRect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: s2textformat::MakeLatLngRect
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeLatLngRect
    linkageType: ''
    returnType: bool
    signature: "bool MakeLatLngRect(absl::string_view str,\n                                         S2LatLngRect*
      rect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:176,1
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: s2textformat::MakeCellIdOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 0
    functionsReached:
    - s2textformat::MakeCellId
    - gtl::ValueOrDie
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId MakeCellIdOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeCellId
      Src: /src/s2geometry/src/s2/s2text_format.h:182,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:183,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - cell_id
    argTypes:
    - absl::string_view
    - S2CellId*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: s2textformat::MakeCellId
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - std::move
    - s2textformat::MakeCellId
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: bool MakeCellId(absl::string_view str, S2CellId* cell_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:196,1
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: s2textformat::MakeCellUnionOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 0
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeCellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion MakeCellUnionOrDie(absl::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeCellUnion
      Src: /src/s2geometry/src/s2/s2text_format.h:203,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:204,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - cell_union
    argTypes:
    - absl::string_view
    - S2CellUnion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: s2textformat::MakeCellUnion
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeCellUnion
    linkageType: ''
    returnType: bool
    signature: "bool MakeCellUnion(absl::string_view str,\n                                        S2CellUnion*
      cell_union)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:219,1
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: s2textformat::MakeLoopOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 14
    functionsReached:
    - s2textformat::MakeLoop
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2Loop>
    signature: "std::unique_ptr<S2Loop> MakeLoopOrDie(\n    absl::string_view str,
      S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLoop
      Src: /src/s2geometry/src/s2/s2text_format.h:228,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:229,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - loop
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2Loop>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: s2textformat::MakeLoop
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 14
    functionsReached:
    - s2textformat::MakeLoop
    - std::move
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakeLoop(absl::string_view str,\n                                   std::unique_ptr<S2Loop>*
      loop,\n                                   S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:241,1
    - Dst: s2textformat::MakePolyline
      Src: /src/s2geometry/src/s2/s2text_format.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: s2textformat::MakePolylineOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 20
    functionsReached:
    - s2textformat::MakePolyline
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2Polyline>
    signature: "std::unique_ptr<S2Polyline> MakePolylineOrDie(\n    absl::string_view
      str, S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolyline
      Src: /src/s2geometry/src/s2/s2text_format.h:250,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:251,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - polyline
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2Polyline>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 254
    functionName: s2textformat::MakePolyline
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - s2textformat::MakePolyline
    - std::move
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakePolyline(\n    absl::string_view str, std::unique_ptr<S2Polyline>*
      polyline,\n    S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:263,1
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: s2textformat::MakeLaxPolylineOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 6
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeLaxPolyline
    linkageType: ''
    returnType: std::unique_ptr<S2LaxPolylineShape>
    signature: "std::unique_ptr<S2LaxPolylineShape> MakeLaxPolylineOrDie(\n    absl::string_view
      str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolyline
      Src: /src/s2geometry/src/s2/s2text_format.h:271,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:272,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - lax_polyline
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2LaxPolylineShape>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: s2textformat::MakeLaxPolyline
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 10
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeLaxPolyline
    linkageType: ''
    returnType: bool
    signature: "bool MakeLaxPolyline(\n    absl::string_view str, std::unique_ptr<S2LaxPolylineShape>*
      lax_polyline)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:296,1
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: s2textformat::MakePolygonOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 38
    functionsReached:
    - s2textformat::MakePolygon
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2Polygon>
    signature: "std::unique_ptr<S2Polygon> MakePolygonOrDie(\n    absl::string_view
      str, S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:305,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:306,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - polygon
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2Polygon>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: s2textformat::MakePolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 12
    functionsReached:
    - std::move
    - s2textformat::MakePolygon
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakePolygon(absl::string_view str,\n                                      std::unique_ptr<S2Polygon>*
      polygon,\n                                      S2Debug debug_override = S2Debug::ALLOW)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:319,1
    - Dst: s2textformat::MakeVerbatimPolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: s2textformat::MakeVerbatimPolygonOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 4
    functionsReached:
    - s2textformat::MakeVerbatimPolygon
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2Polygon>
    signature: "std::unique_ptr<S2Polygon> MakeVerbatimPolygonOrDie(\n    absl::string_view
      str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeVerbatimPolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:327,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:328,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - polygon
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2Polygon>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: s2textformat::MakeVerbatimPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 8
    functionsReached:
    - std::move
    - s2textformat::MakeVerbatimPolygon
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakeVerbatimPolygon(\n    absl::string_view str, std::unique_ptr<S2Polygon>*
      polygon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:343,1
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: s2textformat::MakeLaxPolygonOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 25
    functionsReached:
    - s2textformat::MakeLaxPolygon
    - gtl::ValueOrDie
    linkageType: ''
    returnType: std::unique_ptr<S2LaxPolygonShape>
    signature: "std::unique_ptr<S2LaxPolygonShape> MakeLaxPolygonOrDie(\n    absl::string_view
      str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeLaxPolygon
      Src: /src/s2geometry/src/s2/s2text_format.h:351,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:352,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - lax_polygon
    argTypes:
    - absl::string_view
    - std::unique_ptr<S2LaxPolygonShape>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 355
    functionName: s2textformat::MakeLaxPolygon
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 10
    functionsReached:
    - std::move
    - s2textformat::MakeLaxPolygon
    - absl::StatusOr::ok
    linkageType: ''
    returnType: bool
    signature: "bool MakeLaxPolygon(\n    absl::string_view str, std::unique_ptr<S2LaxPolygonShape>*
      lax_polygon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::ValueOrDie
      Src: /src/s2geometry/src/s2/s2text_format.h:387,1
    - Dst: s2textformat::MakeIndex
      Src: /src/s2geometry/src/s2/s2text_format.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: s2textformat::MakeIndexOrDie
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 83
    functionsReached:
    - gtl::ValueOrDie
    - s2textformat::MakeIndex
    linkageType: ''
    returnType: std::unique_ptr<MutableS2ShapeIndex>
    signature: "std::unique_ptr<MutableS2ShapeIndex> MakeIndexOrDie(\n    absl::string_view
      str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndex
      Src: /src/s2geometry/src/s2/s2text_format.h:395,1
    - Dst: absl::StatusOr::ok
      Src: /src/s2geometry/src/s2/s2text_format.h:396,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2text_format.h:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - index
    argTypes:
    - absl::string_view
    - std::unique_ptr<MutableS2ShapeIndex>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: s2textformat::MakeIndex
    functionSourceFile: /src/s2geometry/src/s2/s2text_format.h
    functionUses: 10
    functionsReached:
    - std::move
    - absl::StatusOr::ok
    - s2textformat::MakeIndex
    linkageType: ''
    returnType: bool
    signature: "bool MakeIndex(\n    absl::string_view str, std::unique_ptr<MutableS2ShapeIndex>*
      index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:37,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:38,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:39,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:40,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:41,1
    - Dst: S1ChordAngle::FastUpperBoundFrom
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:43,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:43,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:46,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:47,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:48,1
    - Dst: auto::length2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:48,1
    - Dst: auto::is_zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:50,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:51,1
    - Dst: auto::is_negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:54,1
    - Dst: auto::is_infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:56,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:57,1
    - Dst: auto::is_special
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:60,1
    - Dst: auto::is_valid
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 64
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - auto::is_negative
    - auto::length2
    - EXPECT_TRUE
    - S1ChordAngle::FromLength2
    - S1Angle::Radians
    - auto::is_special
    - S1ChordAngle::Zero
    - auto::is_valid
    - S1ChordAngle::Infinity
    - S1ChordAngle::Straight
    - S1ChordAngle::FastUpperBoundFrom
    - EXPECT_EQ
    - auto::is_infinity
    - S1ChordAngle::Negative
    - S1ChordAngle::Right
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, ConstexprFunctionsWork)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:69,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1ChordAngle::S1ChordAngle
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, DefaultConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:73,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:74,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:76,1
    - Dst: s2random::Frame
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:78,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:78,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:78,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:78,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:79,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:79,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:80,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:80,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:81,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:82,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - EXPECT_NEAR
    - s2random::Frame
    - S2Point::S2Point
    - S1Angle
    - Normalize
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S1Angle::Zero
    - S2Testing::MakeTaggedSeedSeq
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, TwoPointConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:87,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:87,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:88,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:88,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:89,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:90,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:91,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1ChordAngle::FromLength2
    - EXPECT_DOUBLE_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, FromLength2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:95,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:95,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:95,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle
    - S1Angle::Zero
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:99,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - S1ChordAngle::Right
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:103,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:103,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:103,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle
    - S1Angle::Degrees
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Straight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:107,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:107,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:108,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:108,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:109,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:109,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:109,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - S1Angle
    - S1ChordAngle::Infinity
    - S1ChordAngle::Straight
    - EXPECT_EQ
    - S1Angle::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Infinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:113,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:113,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:114,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:114,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:114,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:115,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:115,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - S1ChordAngle::Zero
    - EXPECT_EQ
    - S1Angle::Zero
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:119,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:119,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:120,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:120,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:121,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:121,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:122,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:122,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:123,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:123,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:124,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:124,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:125,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:125,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:126,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_TRUE
    - S1ChordAngle::Zero
    - S1ChordAngle::Infinity
    - S1ChordAngle::Straight
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Predicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:130,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:130,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:131,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:131,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:132,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:132,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:133,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:133,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:133,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:133,1
    - Dst: S1Angle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:133,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:134,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:134,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:134,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:135,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:136,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - EXPECT_LT
    - S1Angle::Radians
    - S1Angle
    - EXPECT_EQ
    - S1Angle::Infinity
    - S1Angle::Zero
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, ToFromS1Angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:140,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:140,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:141,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:141,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:142,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:142,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:142,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:143,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:145,1
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:145,1
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::Successor
    - EXPECT_LT
    - S1ChordAngle::Zero
    - S1ChordAngle::Infinity
    - S1ChordAngle::Straight
    - EXPECT_EQ
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Successor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:151,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:151,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:152,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:152,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:153,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:153,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:153,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:154,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:156,1
    - Dst: S1ChordAngle::Predecessor
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:156,1
    - Dst: S1ChordAngle::Predecessor
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - S1ChordAngle::Predecessor
    - S1ChordAngle::Zero
    - S1ChordAngle::Infinity
    - S1ChordAngle::Straight
    - EXPECT_EQ
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Predecessor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:162,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:163,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:164,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:165,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:166,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:168,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:169,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:170,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:171,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:172,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:173,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:173,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:175,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:175,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:176,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:176,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:177,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:177,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:178,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:178,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:179,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:179,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:180,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:180,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:182,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:182,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:186,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:188,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:189,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:189,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:190,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:190,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:191,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:192,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:193,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:193,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:194,1
    - Dst: degrees
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 195
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - degrees
    - EXPECT_DOUBLE_EQ
    - S1ChordAngle::Zero
    - S1ChordAngle::Degrees
    - S1ChordAngle::Straight
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Arithmetic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:201,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:202,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:206,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:206,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:206,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:207,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:207,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:207,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:208,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:208,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:208,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:209,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:209,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:209,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:210,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - S1ChordAngle::radians
    - radians
    - S1ChordAngle::Radians
    - S1ChordAngle::Right
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, ArithmeticPrecision)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:218,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:218,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:218,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:219,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:219,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:219,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:224,1
    - Dst: atan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:224,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:224,1
    - Dst: atan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:224,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:224,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:229,1
    - Dst: atan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:229,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:229,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:231,1
    - Dst: atan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:231,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:231,1
    - Dst: atan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:231,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:231,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:237,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:239,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:240,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:241,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:241,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:241,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:242,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:243,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:243,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:244,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 245
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::is_infinity
    - EXPECT_NEAR
    - S1ChordAngle::FromLength2
    - atan
    - sin
    - EXPECT_EQ
    - tan
    - cos
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, Trigonometry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:248,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:248,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:249,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:249,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:249,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:250,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:250,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:251,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:251,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:251,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:252,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:252,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:254,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:254,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::FromLength2
    - S1ChordAngle::Zero
    - S1ChordAngle::Infinity
    - S1ChordAngle::Straight
    - EXPECT_EQ
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, PlusError)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:261,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:262,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:264,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:265,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:266,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:268,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:268,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:269,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:270,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:272,1
    - Dst: S1ChordAngle::GetS2PointConstructorMaxError
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:273,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:274,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:274,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:274,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:275,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:276,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:276,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:276,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s1chord_angle_test.cc:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 279
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s1chord_angle_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S1ChordAngle::PlusError
    - S2::GetPointOnLine
    - absl::Bernoulli
    - S1ChordAngle::GetS2PointConstructorMaxError
    - S1Angle::Radians
    - s2pred::CompareDistance
    - EXPECT_GE
    - S1Angle
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S1ChordAngle, GetS2PointConstructorMaxError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeVectorShape::S2EdgeVectorShape
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:39,1
    - Dst: S2EdgeVectorShape::num_edges
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:40,1
    - Dst: S2EdgeVectorShape::num_chains
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:41,1
    - Dst: S2EdgeVectorShape::dimension
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:41,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:42,1
    - Dst: S2EdgeVectorShape::is_empty
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:42,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:43,1
    - Dst: S2EdgeVectorShape::is_full
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:43,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:44,1
    - Dst: S2EdgeVectorShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2EdgeVectorShape::is_full
    - S2EdgeVectorShape::GetReferencePoint
    - EXPECT_TRUE
    - S2EdgeVectorShape::is_empty
    - S2EdgeVectorShape::dimension
    - S2EdgeVectorShape::S2EdgeVectorShape
    - EXPECT_EQ
    - S2EdgeVectorShape::num_chains
    - EXPECT_FALSE
    - S2EdgeVectorShape::num_edges
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeVectorShape, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeVectorShape::S2EdgeVectorShape
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:50,1
    - Dst: S2EdgeVectorShape::S2EdgeVectorShape
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:51,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:53,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:53,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:56,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:57,1
    - Dst: S2EdgeVectorShape::Add
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:58,1
    - Dst: S2EdgeVectorShape::Add
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:59,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:64,1
    - Dst: S2EdgeVectorShape::S2EdgeVectorShape
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:67,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:68,1
    - Dst: s2testing::ExpectEqual
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc
    functionUses: 0
    functionsReached:
    - s2testing::ExpectEqual
    - S2EdgeVectorShape::S2EdgeVectorShape
    - s2random::Point
    - S2EdgeVectorShape::Add
    - std::move
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeVectorShape, Move)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeVectorShape::S2EdgeVectorShape
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:73,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:75,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:75,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:79,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:80,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:80,1
    - Dst: S2EdgeVectorShape::Add
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:81,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:81,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:83,1
    - Dst: S2EdgeVectorShape::num_edges
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:84,1
    - Dst: S2EdgeVectorShape::num_chains
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:85,1
    - Dst: S2EdgeVectorShape::dimension
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:85,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:86,1
    - Dst: S2EdgeVectorShape::is_empty
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:86,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:87,1
    - Dst: S2EdgeVectorShape::is_full
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:89,1
    - Dst: S2EdgeVectorShape::chain
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:90,1
    - Dst: S2EdgeVectorShape::chain
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:90,1
    - Dst: S2EdgeVectorShape::edge
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:92,1
    - Dst: vector::at
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:93,1
    - Dst: vector::at
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 95
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2EdgeVectorShape::S2EdgeVectorShape
    - S2EdgeVectorShape::is_full
    - s2random::Point
    - S2EdgeVectorShape::Add
    - S2EdgeVectorShape::num_chains
    - S2EdgeVectorShape::edge
    - S2EdgeVectorShape::is_empty
    - vector::back
    - S2EdgeVectorShape::chain
    - S2EdgeVectorShape::dimension
    - vector::emplace_back
    - EXPECT_EQ
    - vector::at
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - EXPECT_FALSE
    - S2EdgeVectorShape::num_edges
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeVectorShape, EdgeAccess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:100,1
    - Dst: S2EdgeVectorShape::num_edges
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:101,1
    - Dst: S2EdgeVectorShape::num_chains
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:101,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:102,1
    - Dst: S2EdgeVectorShape::is_empty
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:102,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:103,1
    - Dst: S2EdgeVectorShape::is_full
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:103,1
    - Dst: S2EdgeVectorShape::edge
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc
    functionUses: 0
    functionsReached:
    - S2EdgeVectorShape::is_full
    - S2EdgeVectorShape::num_chains
    - S2EdgeVectorShape::edge
    - EXPECT_EQ
    - S2EdgeVectorShape::is_empty
    - EXPECT_FALSE
    - S2EdgeVectorShape::num_edges
    linkageType: ''
    returnType: void
    signature: void TEST(S2EdgeVectorShape, SingletonConstructor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:28,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:29,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:30,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:37,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:47,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:47,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:53,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 56
    functionName: s2shapeutil::CountVertices
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - num_edges
    - dimension
    - num_chains
    - ABSL_UNREACHABLE
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int64_t
    signature: int64_t CountVertices(const S2Shape& shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: s2shapeutil::CountVertices
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc
    functionUses: 1
    functionsReached:
    - s2shapeutil::CountVertices
    linkageType: ''
    returnType: int64_t
    signature: int64_t CountVertices(const S2ShapeIndex& index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:28,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:29,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:30,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:37,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:47,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:47,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:53,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' shape'
    argTypes:
    - S2Shape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 56
    functionName: s2shapeutil::CountVertices
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_LE
    - num_edges
    - dimension
    - num_chains
    - ABSL_UNREACHABLE
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: int64_t
    signature: int64_t CountVertices(const S2Shape& shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::CountVertices
      Src: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: s2shapeutil::CountVertices
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc
    functionUses: 2
    functionsReached:
    - s2shapeutil::CountVertices
    linkageType: ''
    returnType: int64_t
    signature: int64_t CountVertices(const S2ShapeIndex& index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:33,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:34,1
    - Dst: Build
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' shards'
    argTypes:
    - vector<S2CellUnion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: S2RegionSharder::S2RegionSharder
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.cc
    functionUses: 0
    functionsReached:
    - size
    - Add
    - Build
    linkageType: ''
    returnType: void
    signature: void S2RegionSharder::S2RegionSharder(const vector<S2CellUnion>& shards)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map<int, vector<S2CellId>>::begin
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:43,1
    - Dst: absl::flat_hash_map<int, vector<S2CellId>>::end
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:43,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:44,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:44,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::flat_hash_map<int, vector<S2CellId>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: ToS2CellUnionMap
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map<int, vector<S2CellId>>::begin
    - std::move
    - absl::flat_hash_map::insert
    - absl::flat_hash_map<int, vector<S2CellId>>::end
    - S2CellUnion
    linkageType: ''
    returnType: absl::flat_hash_map<int, S2CellUnion>
    signature: "absl::flat_hash_map<int, S2CellUnion> ToS2CellUnionMap(\n    absl::flat_hash_map<int,
      vector<S2CellId>> input)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetCellUnionBound
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:53,1
    - Dst: VisitIntersectingCells
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:59,1
    - Dst: absl::flat_hash_map::find
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:62,1
    - Dst: absl::flat_hash_map::end
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:63,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:64,1
    - Dst: auto::second::push_back
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:66,1
    - Dst: absl::flat_hash_map::size
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:73,1
    - Dst: ToS2CellUnionMap
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:74,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:74,1
    - Dst: absl::flat_hash_map::begin
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:78,1
    - Dst: absl::flat_hash_map::end
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:78,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:87,1
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:94,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:94,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:95,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:99,1
    - Dst: absl::flat_hash_map::erase
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:102,1
    - Dst: ToS2CellUnionMap
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:111,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' region'
    argTypes:
    - S2Region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 112
    functionName: S2RegionSharder::GetIntersectionsByShard
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map::erase
    - absl::flat_hash_map::begin
    - GetCellUnionBound
    - S2CellUnion::Intersection
    - vector::push_back
    - VisitIntersectingCells
    - MayIntersect
    - absl::flat_hash_map::end
    - std::move
    - ToS2CellUnionMap
    - auto::second::push_back
    - absl::flat_hash_map::insert
    - vector::empty
    - absl::flat_hash_map::size
    - S2Cell
    - absl::flat_hash_map::find
    linkageType: ''
    returnType: absl::flat_hash_map<int, S2CellUnion>
    signature: "absl::flat_hash_map<int, S2CellUnion> S2RegionSharder::GetIntersectionsByShard(\n
      \   const S2Region& region) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionSharder::GetIntersectionsByShard
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:117,1
    - Dst: lsb
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ' region'
    - default_shard
    argTypes:
    - S2Region
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 140
    functionName: S2RegionSharder::GetMostIntersectingShard
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.cc
    functionUses: 0
    functionsReached:
    - lsb
    - S2RegionSharder::GetIntersectionsByShard
    linkageType: ''
    returnType: int
    signature: "int S2RegionSharder::GetMostIntersectingShard(const S2Region& region,\n
      \                                             const int default_shard) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionSharder::GetIntersectionsByShard
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:146,1
    - Dst: second::empty
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:147,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_sharder.cc:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' region'
    argTypes:
    - S2Region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: S2RegionSharder::GetIntersectingShards
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2RegionSharder::GetIntersectionsByShard
    - second::empty
    linkageType: ''
    returnType: vector<int>
    signature: "vector<int> S2RegionSharder::GetIntersectingShards(\n    const S2Region&
      region) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: ~Layer()
    functionSourceFile: /src/s2geometry/src/s2/s2builder_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Layer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:50,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:52,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:56,1
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:56,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' shape'
    - encoder
    argTypes:
    - S2Shape
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: s2shapeutil::FastEncodeShape
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 4
    functionsReached:
    - ABSL_LOG
    - type_tag
    - Encode
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool FastEncodeShape(const S2Shape& shape, Encoder* encoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:62,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:64,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:68,1
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:68,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' shape'
    - encoder
    argTypes:
    - S2Shape
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: s2shapeutil::CompactEncodeShape
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - type_tag
    - Encode
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool CompactEncodeShape(const S2Shape& shape, Encoder* encoder)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2Polygon::OwningShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:78,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:79,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:81,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:84,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:85,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:86,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:89,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:90,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:91,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:94,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:95,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:96,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:99,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:100,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:101,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - tag
    - decoder
    argTypes:
    - S2Shape::TypeTag
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 108
    functionName: s2shapeutil::FullDecodeShape
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 4
    functionsReached:
    - make_unique<S2LaxPolygonShape>
    - make_unique<S2Polygon::OwningShape>
    - std::move
    - make_unique<S2PointVectorShape>
    - make_unique<S2LaxPolylineShape>
    - auto::Init
    - ABSL_LOG
    - make_unique<S2Polyline::OwningShape>
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> FullDecodeShape(S2Shape::TypeTag tag, Decoder*
      decoder)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<EncodedS2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:113,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:114,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:116,1
    - Dst: make_unique<EncodedS2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:119,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:120,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:121,1
    - Dst: make_unique<EncodedS2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:124,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:125,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:126,1
    - Dst: s2shapeutil::FullDecodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - tag
    - decoder
    argTypes:
    - S2Shape::TypeTag
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: s2shapeutil::LazyDecodeShape
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 2
    functionsReached:
    - std::move
    - make_unique<EncodedS2LaxPolylineShape>
    - make_unique<EncodedS2LaxPolygonShape>
    - s2shapeutil::FullDecodeShape
    - auto::Init
    - make_unique<EncodedS2PointVectorShape>
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> LazyDecodeShape(S2Shape::TypeTag tag, Decoder*
      decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::StringVectorEncoder::StringVectorEncoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:137,1
    - Dst: s2coding::StringVectorEncoder::AddViaEncoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:139,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:142,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:143,1
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:143,1
    - Dst: shape_encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:144,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ' index'
    - ' shape_encoder'
    - encoder
    argTypes:
    - S2ShapeIndex
    - ShapeEncoder
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: s2shapeutil::EncodeTaggedShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - Encoder*::put_varint32
    - s2coding::StringVectorEncoder::Encode
    - s2coding::StringVectorEncoder::AddViaEncoder
    - type_tag
    - shape_encoder
    - Encoder*::Ensure
    - s2coding::StringVectorEncoder::StringVectorEncoder
    linkageType: ''
    returnType: bool
    signature: "bool EncodeTaggedShapes(const S2ShapeIndex& index,\n                        const
      ShapeEncoder& shape_encoder,\n                        Encoder* encoder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::EncodeTaggedShapes
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' index'
    - encoder
    argTypes:
    - S2ShapeIndex
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: s2shapeutil::FastEncodeTaggedShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 4
    functionsReached:
    - s2shapeutil::EncodeTaggedShapes
    linkageType: ''
    returnType: bool
    signature: bool FastEncodeTaggedShapes(const S2ShapeIndex& index, Encoder* encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::EncodeTaggedShapes
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' index'
    - encoder
    argTypes:
    - S2ShapeIndex
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: s2shapeutil::CompactEncodeTaggedShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 5
    functionsReached:
    - s2shapeutil::EncodeTaggedShapes
    linkageType: ''
    returnType: bool
    signature: bool CompactEncodeTaggedShapes(const S2ShapeIndex& index, Encoder*
      encoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:161,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:162,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' shape_decoder'
    - decoder
    - ' error'
    argTypes:
    - ShapeDecoder
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: s2shapeutil::TaggedShapeFactory::TaggedShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - S2Error::DataLoss
    - Init
    - Clear
    linkageType: ''
    returnType: void
    signature: "void TaggedShapeFactory::TaggedShapeFactory(const ShapeDecoder& shape_decoder,\n
      \                                      Decoder* decoder, S2Error& error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDecoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:168,1
    - Dst: Decoder::get_varint32
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:170,1
    - Dst: shape_decoder_
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: TaggedShapeFactory::operator[](int shape_id) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - GetDecoder
    - shape_decoder_
    - Decoder::get_varint32
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> TaggedShapeFactory::operator[](int shape_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TaggedShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: s2shapeutil::FullDecodeShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 14
    functionsReached:
    - TaggedShapeFactory
    linkageType: ''
    returnType: TaggedShapeFactory
    signature: TaggedShapeFactory FullDecodeShapeFactory(Decoder* decoder, S2Error&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TaggedShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: s2shapeutil::LazyDecodeShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 6
    functionsReached:
    - TaggedShapeFactory
    linkageType: ''
    returnType: TaggedShapeFactory
    signature: TaggedShapeFactory LazyDecodeShapeFactory(Decoder* decoder, S2Error&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:184,1
    - Dst: TaggedShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: s2shapeutil::FullDecodeShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 14
    functionsReached:
    - TaggedShapeFactory
    - S2Error::S2Error
    linkageType: ''
    returnType: TaggedShapeFactory
    signature: TaggedShapeFactory FullDecodeShapeFactory(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:190,1
    - Dst: TaggedShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: s2shapeutil::LazyDecodeShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 6
    functionsReached:
    - TaggedShapeFactory
    - S2Error::S2Error
    linkageType: ''
    returnType: TaggedShapeFactory
    signature: TaggedShapeFactory LazyDecodeShapeFactory(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_shared<vector<unique_ptr<S2Shape>>>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:198,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - shapes
    argTypes:
    - vector<unique_ptr<S2Shape>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: s2shapeutil::VectorShapeFactory::VectorShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - std::move
    - make_shared<vector<unique_ptr<S2Shape>>>
    linkageType: ''
    returnType: void
    signature: void VectorShapeFactory::VectorShapeFactory(vector<unique_ptr<S2Shape>>
      shapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: VectorShapeFactory::operator[](int shape_id) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> VectorShapeFactory::operator[](int shape_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:207,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:207,1
    - Dst: VectorShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:208,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shape
    argTypes:
    - unique_ptr<S2Shape>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: s2shapeutil::SingletonShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 2
    functionsReached:
    - std::move
    - vector::push_back
    - VectorShapeFactory
    linkageType: ''
    returnType: VectorShapeFactory
    signature: VectorShapeFactory SingletonShapeFactory(unique_ptr<S2Shape> shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:212,1
    - Dst: make_unique<S2WrappedShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: WrappedShapeFactory::operator[](int shape_id) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2WrappedShape>
    - shape
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> WrappedShapeFactory::operator[](int shape_id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:50,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:52,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:56,1
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:56,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' shape'
    - encoder
    argTypes:
    - S2Shape
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: s2shapeutil::FastEncodeShape
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 4
    functionsReached:
    - ABSL_LOG
    - type_tag
    - Encode
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool FastEncodeShape(const S2Shape& shape, Encoder* encoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:62,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:64,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:68,1
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:68,1
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' shape'
    - encoder
    argTypes:
    - S2Shape
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: s2shapeutil::CompactEncodeShape
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - type_tag
    - Encode
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool CompactEncodeShape(const S2Shape& shape, Encoder* encoder)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2Polygon::OwningShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:78,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:79,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:81,1
    - Dst: make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:84,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:85,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:86,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:89,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:90,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:91,1
    - Dst: make_unique<S2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:94,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:95,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:96,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:99,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:100,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:101,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - tag
    - decoder
    argTypes:
    - S2Shape::TypeTag
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 108
    functionName: s2shapeutil::FullDecodeShape
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 5
    functionsReached:
    - make_unique<S2LaxPolygonShape>
    - make_unique<S2Polygon::OwningShape>
    - std::move
    - make_unique<S2PointVectorShape>
    - make_unique<S2LaxPolylineShape>
    - auto::Init
    - ABSL_LOG
    - make_unique<S2Polyline::OwningShape>
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> FullDecodeShape(S2Shape::TypeTag tag, Decoder*
      decoder)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<EncodedS2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:113,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:114,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:116,1
    - Dst: make_unique<EncodedS2LaxPolylineShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:119,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:120,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:121,1
    - Dst: make_unique<EncodedS2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:124,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:125,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:126,1
    - Dst: s2shapeutil::FullDecodeShape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - tag
    - decoder
    argTypes:
    - S2Shape::TypeTag
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: s2shapeutil::LazyDecodeShape
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 2
    functionsReached:
    - std::move
    - make_unique<EncodedS2LaxPolylineShape>
    - make_unique<EncodedS2LaxPolygonShape>
    - s2shapeutil::FullDecodeShape
    - auto::Init
    - make_unique<EncodedS2PointVectorShape>
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> LazyDecodeShape(S2Shape::TypeTag tag, Decoder*
      decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::StringVectorEncoder::StringVectorEncoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:137,1
    - Dst: s2coding::StringVectorEncoder::AddViaEncoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:139,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:142,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:143,1
    - Dst: type_tag
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:143,1
    - Dst: shape_encoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:144,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ' index'
    - ' shape_encoder'
    - encoder
    argTypes:
    - S2ShapeIndex
    - ShapeEncoder
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: s2shapeutil::EncodeTaggedShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 2
    functionsReached:
    - Encoder*::put_varint32
    - s2coding::StringVectorEncoder::Encode
    - s2coding::StringVectorEncoder::AddViaEncoder
    - type_tag
    - shape_encoder
    - Encoder*::Ensure
    - s2coding::StringVectorEncoder::StringVectorEncoder
    linkageType: ''
    returnType: bool
    signature: "bool EncodeTaggedShapes(const S2ShapeIndex& index,\n                        const
      ShapeEncoder& shape_encoder,\n                        Encoder* encoder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::EncodeTaggedShapes
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' index'
    - encoder
    argTypes:
    - S2ShapeIndex
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: s2shapeutil::FastEncodeTaggedShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 4
    functionsReached:
    - s2shapeutil::EncodeTaggedShapes
    linkageType: ''
    returnType: bool
    signature: bool FastEncodeTaggedShapes(const S2ShapeIndex& index, Encoder* encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::EncodeTaggedShapes
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' index'
    - encoder
    argTypes:
    - S2ShapeIndex
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: s2shapeutil::CompactEncodeTaggedShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 5
    functionsReached:
    - s2shapeutil::EncodeTaggedShapes
    linkageType: ''
    returnType: bool
    signature: bool CompactEncodeTaggedShapes(const S2ShapeIndex& index, Encoder*
      encoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:161,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:162,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' shape_decoder'
    - decoder
    - ' error'
    argTypes:
    - ShapeDecoder
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: s2shapeutil::TaggedShapeFactory::TaggedShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - S2Error::DataLoss
    - Init
    - Clear
    linkageType: ''
    returnType: void
    signature: "void TaggedShapeFactory::TaggedShapeFactory(const ShapeDecoder& shape_decoder,\n
      \                                      Decoder* decoder, S2Error& error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDecoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:168,1
    - Dst: Decoder::get_varint32
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:170,1
    - Dst: shape_decoder_
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: TaggedShapeFactory::operator[](int shape_id) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - GetDecoder
    - shape_decoder_
    - Decoder::get_varint32
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> TaggedShapeFactory::operator[](int shape_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TaggedShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: s2shapeutil::FullDecodeShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 14
    functionsReached:
    - TaggedShapeFactory
    linkageType: ''
    returnType: TaggedShapeFactory
    signature: TaggedShapeFactory FullDecodeShapeFactory(Decoder* decoder, S2Error&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TaggedShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: s2shapeutil::LazyDecodeShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 6
    functionsReached:
    - TaggedShapeFactory
    linkageType: ''
    returnType: TaggedShapeFactory
    signature: TaggedShapeFactory LazyDecodeShapeFactory(Decoder* decoder, S2Error&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:184,1
    - Dst: TaggedShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: s2shapeutil::FullDecodeShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 14
    functionsReached:
    - TaggedShapeFactory
    - S2Error::S2Error
    linkageType: ''
    returnType: TaggedShapeFactory
    signature: TaggedShapeFactory FullDecodeShapeFactory(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:190,1
    - Dst: TaggedShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: s2shapeutil::LazyDecodeShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 6
    functionsReached:
    - TaggedShapeFactory
    - S2Error::S2Error
    linkageType: ''
    returnType: TaggedShapeFactory
    signature: TaggedShapeFactory LazyDecodeShapeFactory(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_shared<vector<unique_ptr<S2Shape>>>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:198,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - shapes
    argTypes:
    - vector<unique_ptr<S2Shape>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: s2shapeutil::VectorShapeFactory::VectorShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - std::move
    - make_shared<vector<unique_ptr<S2Shape>>>
    linkageType: ''
    returnType: void
    signature: void VectorShapeFactory::VectorShapeFactory(vector<unique_ptr<S2Shape>>
      shapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: VectorShapeFactory::operator[](int shape_id) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> VectorShapeFactory::operator[](int shape_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:207,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:207,1
    - Dst: VectorShapeFactory
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:208,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shape
    argTypes:
    - unique_ptr<S2Shape>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: s2shapeutil::SingletonShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 2
    functionsReached:
    - std::move
    - vector::push_back
    - VectorShapeFactory
    linkageType: ''
    returnType: VectorShapeFactory
    signature: VectorShapeFactory SingletonShapeFactory(unique_ptr<S2Shape> shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:212,1
    - Dst: make_unique<S2WrappedShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: WrappedShapeFactory::operator[](int shape_id) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2WrappedShape>
    - shape
    linkageType: ''
    returnType: unique_ptr<S2Shape>
    signature: unique_ptr<S2Shape> WrappedShapeFactory::operator[](int shape_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: s2builderutil::IdentitySnapFunction::IdentitySnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 4
    functionsReached:
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void IdentitySnapFunction::IdentitySnapFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IdentitySnapFunction::set_snap_radius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: s2builderutil::IdentitySnapFunction::IdentitySnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 4
    functionsReached:
    - s2builderutil::IdentitySnapFunction::set_snap_radius
    linkageType: ''
    returnType: void
    signature: void IdentitySnapFunction::IdentitySnapFunction(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:54,1
    - Dst: kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: s2builderutil::IdentitySnapFunction::set_snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_LE
    - kMaxSnapRadius
    linkageType: ''
    returnType: void
    signature: void IdentitySnapFunction::set_snap_radius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: s2builderutil::IdentitySnapFunction::snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IdentitySnapFunction::snap_radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: s2builderutil::IdentitySnapFunction::min_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IdentitySnapFunction::min_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: s2builderutil::IdentitySnapFunction::min_edge_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IdentitySnapFunction::min_edge_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: s2builderutil::IdentitySnapFunction::SnapPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point IdentitySnapFunction::SnapPoint(const S2Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<IdentitySnapFunction>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: s2builderutil::IdentitySnapFunction::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - make_unique<IdentitySnapFunction>
    linkageType: ''
    returnType: unique_ptr<S2Builder::SnapFunction>
    signature: unique_ptr<S2Builder::SnapFunction> IdentitySnapFunction::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2CellIdSnapFunction::set_level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: s2builderutil::S2CellIdSnapFunction::S2CellIdSnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2CellIdSnapFunction::set_level
    linkageType: ''
    returnType: void
    signature: void S2CellIdSnapFunction::S2CellIdSnapFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2CellIdSnapFunction::set_level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: s2builderutil::S2CellIdSnapFunction::S2CellIdSnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2CellIdSnapFunction::set_level
    linkageType: ''
    returnType: void
    signature: void S2CellIdSnapFunction::S2CellIdSnapFunction(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:92,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:93,1
    - Dst: s2builderutil::S2CellIdSnapFunction::set_snap_radius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:95,1
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: s2builderutil::S2CellIdSnapFunction::set_level
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_LE
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - s2builderutil::S2CellIdSnapFunction::set_snap_radius
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2CellIdSnapFunction::set_level(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: s2builderutil::S2CellIdSnapFunction::level
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2CellIdSnapFunction::level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:103,1
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:103,1
    - Dst: s2builderutil::S2CellIdSnapFunction::level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:103,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:104,1
    - Dst: kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: s2builderutil::S2CellIdSnapFunction::set_snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 1
    functionsReached:
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - ABSL_DCHECK_LE
    - kMaxSnapRadius
    - s2builderutil::S2CellIdSnapFunction::level
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2CellIdSnapFunction::set_snap_radius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: s2builderutil::S2CellIdSnapFunction::snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2CellIdSnapFunction::snap_radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:120,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 6
    functionsReached:
    - S1Angle::Radians
    - GetValue
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2CellIdSnapFunction::MinSnapRadiusForLevel(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:126,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 2
    functionsReached:
    - GetLevelForMaxValue
    - S1Angle::radians
    linkageType: ''
    returnType: int
    signature: int S2CellIdSnapFunction::LevelForMaxSnapRadius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:150,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:150,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:151,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:151,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:152,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 155
    functionName: s2builderutil::S2CellIdSnapFunction::min_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - S1Angle::Radians
    - GetValue
    - max
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2CellIdSnapFunction::min_vertex_separation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:193,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:193,1
    - Dst: s2builderutil::S2CellIdSnapFunction::snap_radius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:194,1
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:194,1
    - Dst: s2builderutil::S2CellIdSnapFunction::min_vertex_separation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:199,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:200,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 203
    functionName: s2builderutil::S2CellIdSnapFunction::min_edge_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - S1Angle::Radians
    - GetValue
    - s2builderutil::S2CellIdSnapFunction::min_vertex_separation
    - s2builderutil::S2CellIdSnapFunction::snap_radius
    - max
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2CellIdSnapFunction::min_edge_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: s2builderutil::S2CellIdSnapFunction::SnapPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2CellIdSnapFunction::SnapPoint(const S2Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2CellIdSnapFunction>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: s2builderutil::S2CellIdSnapFunction::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2CellIdSnapFunction>
    linkageType: ''
    returnType: unique_ptr<S2Builder::SnapFunction>
    signature: unique_ptr<S2Builder::SnapFunction> S2CellIdSnapFunction::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntLatLngSnapFunction::IntLatLngSnapFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IntLatLngSnapFunction::set_exponent
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exponent
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 10
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::set_exponent
    linkageType: ''
    returnType: void
    signature: void IntLatLngSnapFunction::IntLatLngSnapFunction(int exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:220,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:221,1
    - Dst: s2builderutil::IntLatLngSnapFunction::set_snap_radius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:223,1
    - Dst: s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - exponent
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: s2builderutil::IntLatLngSnapFunction::set_exponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_LE
    - s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
    - s2builderutil::IntLatLngSnapFunction::set_snap_radius
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void IntLatLngSnapFunction::set_exponent(int exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: s2builderutil::IntLatLngSnapFunction::exponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IntLatLngSnapFunction::exponent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:239,1
    - Dst: s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:239,1
    - Dst: s2builderutil::IntLatLngSnapFunction::exponent
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:239,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:240,1
    - Dst: kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: s2builderutil::IntLatLngSnapFunction::set_snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_LE
    - kMaxSnapRadius
    - s2builderutil::IntLatLngSnapFunction::exponent
    - s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void IntLatLngSnapFunction::set_snap_radius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: s2builderutil::IntLatLngSnapFunction::snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IntLatLngSnapFunction::snap_radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:275,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - exponent
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 277
    functionName: s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 4
    functionsReached:
    - S1Angle::Radians
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IntLatLngSnapFunction::MinSnapRadiusForExponent(int exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:282,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:283,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:283,1
    - Dst: log10
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:284,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:284,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:289,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:290,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:291,1
    - Dst: std::ceil
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 2
    functionsReached:
    - S1Angle::Radians
    - min
    - static_cast<int>
    - log10
    - std::ceil
    - S1Angle::degrees
    - max
    linkageType: ''
    returnType: int
    signature: int IntLatLngSnapFunction::ExponentForMaxSnapRadius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:310,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 312
    functionName: s2builderutil::IntLatLngSnapFunction::min_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - max
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IntLatLngSnapFunction::min_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IntLatLngSnapFunction::min_vertex_separation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:338,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:339,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:339,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 342
    functionName: s2builderutil::IntLatLngSnapFunction::min_edge_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::min_vertex_separation
    - max
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IntLatLngSnapFunction::min_edge_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:345,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:347,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:347,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:348,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:348,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: s2builderutil::IntLatLngSnapFunction::SnapPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::lat
    - S2LatLng::lng
    - MathUtil::Round<int64_t>
    - S2LatLng::FromDegrees
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: S2Point
    signature: S2Point IntLatLngSnapFunction::SnapPoint(const S2Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<IntLatLngSnapFunction>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: s2builderutil::IntLatLngSnapFunction::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - make_unique<IntLatLngSnapFunction>
    linkageType: ''
    returnType: unique_ptr<S2Builder::SnapFunction>
    signature: unique_ptr<S2Builder::SnapFunction> IntLatLngSnapFunction::Clone()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: s2builderutil::IdentitySnapFunction::IdentitySnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 4
    functionsReached:
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void IdentitySnapFunction::IdentitySnapFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IdentitySnapFunction::set_snap_radius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: s2builderutil::IdentitySnapFunction::IdentitySnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 4
    functionsReached:
    - s2builderutil::IdentitySnapFunction::set_snap_radius
    linkageType: ''
    returnType: void
    signature: void IdentitySnapFunction::IdentitySnapFunction(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:54,1
    - Dst: kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: s2builderutil::IdentitySnapFunction::set_snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_LE
    - kMaxSnapRadius
    linkageType: ''
    returnType: void
    signature: void IdentitySnapFunction::set_snap_radius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: s2builderutil::IdentitySnapFunction::snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IdentitySnapFunction::snap_radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: s2builderutil::IdentitySnapFunction::min_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IdentitySnapFunction::min_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: s2builderutil::IdentitySnapFunction::min_edge_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IdentitySnapFunction::min_edge_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: s2builderutil::IdentitySnapFunction::SnapPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point IdentitySnapFunction::SnapPoint(const S2Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<IdentitySnapFunction>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: s2builderutil::IdentitySnapFunction::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - make_unique<IdentitySnapFunction>
    linkageType: ''
    returnType: unique_ptr<S2Builder::SnapFunction>
    signature: unique_ptr<S2Builder::SnapFunction> IdentitySnapFunction::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2CellIdSnapFunction::set_level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: s2builderutil::S2CellIdSnapFunction::S2CellIdSnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2CellIdSnapFunction::set_level
    linkageType: ''
    returnType: void
    signature: void S2CellIdSnapFunction::S2CellIdSnapFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::S2CellIdSnapFunction::set_level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: s2builderutil::S2CellIdSnapFunction::S2CellIdSnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2CellIdSnapFunction::set_level
    linkageType: ''
    returnType: void
    signature: void S2CellIdSnapFunction::S2CellIdSnapFunction(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:92,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:93,1
    - Dst: s2builderutil::S2CellIdSnapFunction::set_snap_radius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:95,1
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: s2builderutil::S2CellIdSnapFunction::set_level
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 4
    functionsReached:
    - ABSL_DCHECK_LE
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - s2builderutil::S2CellIdSnapFunction::set_snap_radius
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2CellIdSnapFunction::set_level(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: s2builderutil::S2CellIdSnapFunction::level
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2CellIdSnapFunction::level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:103,1
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:103,1
    - Dst: s2builderutil::S2CellIdSnapFunction::level
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:103,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:104,1
    - Dst: kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: s2builderutil::S2CellIdSnapFunction::set_snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 2
    functionsReached:
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - ABSL_DCHECK_LE
    - kMaxSnapRadius
    - s2builderutil::S2CellIdSnapFunction::level
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2CellIdSnapFunction::set_snap_radius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: s2builderutil::S2CellIdSnapFunction::snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2CellIdSnapFunction::snap_radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:120,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 9
    functionsReached:
    - S1Angle::Radians
    - GetValue
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2CellIdSnapFunction::MinSnapRadiusForLevel(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:126,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 2
    functionsReached:
    - GetLevelForMaxValue
    - S1Angle::radians
    linkageType: ''
    returnType: int
    signature: int S2CellIdSnapFunction::LevelForMaxSnapRadius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:150,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:150,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:151,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:151,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:152,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 155
    functionName: s2builderutil::S2CellIdSnapFunction::min_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 1
    functionsReached:
    - S1Angle::Radians
    - GetValue
    - max
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2CellIdSnapFunction::min_vertex_separation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:193,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:193,1
    - Dst: s2builderutil::S2CellIdSnapFunction::snap_radius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:194,1
    - Dst: s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:194,1
    - Dst: s2builderutil::S2CellIdSnapFunction::min_vertex_separation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:199,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:200,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 203
    functionName: s2builderutil::S2CellIdSnapFunction::min_edge_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
    - S1Angle::Radians
    - GetValue
    - s2builderutil::S2CellIdSnapFunction::min_vertex_separation
    - s2builderutil::S2CellIdSnapFunction::snap_radius
    - max
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2CellIdSnapFunction::min_edge_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: s2builderutil::S2CellIdSnapFunction::SnapPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2CellIdSnapFunction::SnapPoint(const S2Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<S2CellIdSnapFunction>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: s2builderutil::S2CellIdSnapFunction::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2CellIdSnapFunction>
    linkageType: ''
    returnType: unique_ptr<S2Builder::SnapFunction>
    signature: unique_ptr<S2Builder::SnapFunction> S2CellIdSnapFunction::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntLatLngSnapFunction::IntLatLngSnapFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IntLatLngSnapFunction::set_exponent
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exponent
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 10
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::set_exponent
    linkageType: ''
    returnType: void
    signature: void IntLatLngSnapFunction::IntLatLngSnapFunction(int exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:220,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:221,1
    - Dst: s2builderutil::IntLatLngSnapFunction::set_snap_radius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:223,1
    - Dst: s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - exponent
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: s2builderutil::IntLatLngSnapFunction::set_exponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_LE
    - s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
    - s2builderutil::IntLatLngSnapFunction::set_snap_radius
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void IntLatLngSnapFunction::set_exponent(int exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: s2builderutil::IntLatLngSnapFunction::exponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IntLatLngSnapFunction::exponent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:239,1
    - Dst: s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:239,1
    - Dst: s2builderutil::IntLatLngSnapFunction::exponent
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:239,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:240,1
    - Dst: kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: s2builderutil::IntLatLngSnapFunction::set_snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_LE
    - kMaxSnapRadius
    - s2builderutil::IntLatLngSnapFunction::exponent
    - s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void IntLatLngSnapFunction::set_snap_radius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: s2builderutil::IntLatLngSnapFunction::snap_radius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IntLatLngSnapFunction::snap_radius() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:275,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - exponent
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 277
    functionName: s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 6
    functionsReached:
    - S1Angle::Radians
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IntLatLngSnapFunction::MinSnapRadiusForExponent(int exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:282,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:283,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:283,1
    - Dst: log10
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:284,1
    - Dst: S1Angle::degrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:284,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:289,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:290,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:291,1
    - Dst: std::ceil
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - snap_radius
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 2
    functionsReached:
    - S1Angle::Radians
    - min
    - static_cast<int>
    - log10
    - std::ceil
    - S1Angle::degrees
    - max
    linkageType: ''
    returnType: int
    signature: int IntLatLngSnapFunction::ExponentForMaxSnapRadius(S1Angle snap_radius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:310,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 312
    functionName: s2builderutil::IntLatLngSnapFunction::min_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 1
    functionsReached:
    - max
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IntLatLngSnapFunction::min_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IntLatLngSnapFunction::min_vertex_separation
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:338,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:339,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:339,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 342
    functionName: s2builderutil::IntLatLngSnapFunction::min_edge_vertex_separation
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::min_vertex_separation
    - max
    - S1Angle::Degrees
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle IntLatLngSnapFunction::min_edge_vertex_separation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:345,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:347,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:347,1
    - Dst: MathUtil::Round<int64_t>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:348,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:348,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: s2builderutil::IntLatLngSnapFunction::SnapPoint
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::lat
    - S2LatLng::lng
    - MathUtil::Round<int64_t>
    - S2LatLng::FromDegrees
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: S2Point
    signature: S2Point IntLatLngSnapFunction::SnapPoint(const S2Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<IntLatLngSnapFunction>
      Src: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: s2builderutil::IntLatLngSnapFunction::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
    functionUses: 0
    functionsReached:
    - make_unique<IntLatLngSnapFunction>
    linkageType: ''
    returnType: unique_ptr<S2Builder::SnapFunction>
    signature: unique_ptr<S2Builder::SnapFunction> IntLatLngSnapFunction::Clone()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: s2shapeutil::EdgeIterator::EdgeIterator
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::EdgeIterator::Next
    linkageType: ''
    returnType: void
    signature: void EdgeIterator::EdgeIterator(const S2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:34,1
    - Dst: s2shapeutil::EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:34,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: s2shapeutil::EdgeIterator::edge
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::EdgeIterator::Done
    - shape
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge EdgeIterator::edge() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:40,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:41,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: s2shapeutil::EdgeIterator::Next
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc
    functionUses: 1
    functionsReached:
    - num_shape_ids
    - shape
    - S2Shape*::num_edges
    linkageType: ''
    returnType: void
    signature: void EdgeIterator::Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: s2shapeutil::EdgeIterator::DebugString
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: string
    signature: string EdgeIterator::DebugString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: s2shapeutil::EdgeIterator::EdgeIterator
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::EdgeIterator::Next
    linkageType: ''
    returnType: void
    signature: void EdgeIterator::EdgeIterator(const S2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:34,1
    - Dst: s2shapeutil::EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:34,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: s2shapeutil::EdgeIterator::edge
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::EdgeIterator::Done
    - shape
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge EdgeIterator::edge() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:40,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:41,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: s2shapeutil::EdgeIterator::Next
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc
    functionUses: 2
    functionsReached:
    - num_shape_ids
    - shape
    - S2Shape*::num_edges
    linkageType: ''
    returnType: void
    signature: void EdgeIterator::Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: s2shapeutil::EdgeIterator::DebugString
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: string
    signature: string EdgeIterator::DebugString() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:39,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:49,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:52,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:54,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:58,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - encoder
    - shift
    - base
    - base_len
    argTypes:
    - Encoder*
    - int
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: s2coding::EncodeBaseShift
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 0
    functionsReached:
    - Encoder*::put8
    - min
    - s2coding::EncodeUintWithLength
    - Encoder*::Ensure
    - max
    linkageType: ''
    returnType: void
    signature: void EncodeBaseShift(Encoder* encoder, int shift, uint64_t base, int
      base_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:94,1
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:95,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:96,1
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:96,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:97,1
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:97,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:109,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:109,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:123,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:125,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:125,1
    - Dst: Span<const S2CellId>::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:126,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:139,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:140,1
    - Dst: s2coding::EncodeBaseShift
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:142,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:146,1
    - Dst: Span<const S2CellId>::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:146,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:148,1
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:148,1
    - Dst: s2coding::EncodeUintVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - v
    - encoder
    argTypes:
    - Span<const S2CellId>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 151
    functionName: s2coding::EncodeS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 2
    functionsReached:
    - vector::push_back
    - exactfloat_internal::countr_zero
    - ABSL_DCHECK_LE
    - id
    - vector::reserve
    - min
    - s2coding::EncodeBaseShift
    - static_cast<int>
    - max
    - s2coding::EncodeUintVector
    - Span<const S2CellId>::size
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: void
    signature: void EncodeS2CellIdVector(Span<const S2CellId> v, Encoder* encoder)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:156,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:159,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:162,1
    - Dst: DecodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:168,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:169,1
    - Dst: s2coding::EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 179
    functionName: s2coding::EncodedS2CellIdVector::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 3
    functionsReached:
    - Decoder*::get8
    - s2coding::EncodedS2CellIdVector::Init
    - DecodeUintWithLength
    - Decoder*::avail
    - max
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2CellIdVector::Init(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2CellIdVector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: s2coding::EncodedS2CellIdVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2CellIdVector::size
    linkageType: ''
    returnType: vector<S2CellId>
    signature: vector<S2CellId> EncodedS2CellIdVector::Decode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodeBaseShift
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:191,1
    - Dst: s2coding::EncodedS2CellIdVector::Encode
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: s2coding::EncodedS2CellIdVector::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 1
    functionsReached:
    - s2coding::EncodedS2CellIdVector::Encode
    - EncodeBaseShift
    linkageType: ''
    returnType: void
    signature: void EncodedS2CellIdVector::Encode(Encoder* encoder) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:39,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:49,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:52,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:54,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:58,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - encoder
    - shift
    - base
    - base_len
    argTypes:
    - Encoder*
    - int
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: s2coding::EncodeBaseShift
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 1
    functionsReached:
    - Encoder*::put8
    - min
    - s2coding::EncodeUintWithLength
    - Encoder*::Ensure
    - max
    linkageType: ''
    returnType: void
    signature: void EncodeBaseShift(Encoder* encoder, int shift, uint64_t base, int
      base_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:94,1
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:95,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:96,1
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:96,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:97,1
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:97,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:109,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:109,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:123,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:125,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:125,1
    - Dst: Span<const S2CellId>::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:126,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:139,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:140,1
    - Dst: s2coding::EncodeBaseShift
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:142,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:146,1
    - Dst: Span<const S2CellId>::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:146,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:148,1
    - Dst: id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:148,1
    - Dst: s2coding::EncodeUintVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - v
    - encoder
    argTypes:
    - Span<const S2CellId>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 151
    functionName: s2coding::EncodeS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 2
    functionsReached:
    - vector::push_back
    - exactfloat_internal::countr_zero
    - ABSL_DCHECK_LE
    - id
    - vector::reserve
    - min
    - s2coding::EncodeBaseShift
    - static_cast<int>
    - max
    - s2coding::EncodeUintVector
    - Span<const S2CellId>::size
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: void
    signature: void EncodeS2CellIdVector(Span<const S2CellId> v, Encoder* encoder)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:156,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:159,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:162,1
    - Dst: DecodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:168,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:169,1
    - Dst: s2coding::EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 179
    functionName: s2coding::EncodedS2CellIdVector::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 4
    functionsReached:
    - Decoder*::get8
    - s2coding::EncodedS2CellIdVector::Init
    - DecodeUintWithLength
    - Decoder*::avail
    - max
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2CellIdVector::Init(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2CellIdVector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: s2coding::EncodedS2CellIdVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2CellIdVector::size
    linkageType: ''
    returnType: vector<S2CellId>
    signature: vector<S2CellId> EncodedS2CellIdVector::Decode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodeBaseShift
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:191,1
    - Dst: s2coding::EncodedS2CellIdVector::Encode
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: s2coding::EncodedS2CellIdVector::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
    functionUses: 2
    functionsReached:
    - s2coding::EncodedS2CellIdVector::Encode
    - EncodeBaseShift
    linkageType: ''
    returnType: void
    signature: void EncodedS2CellIdVector::Encode(Encoder* encoder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:36,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/r1interval_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:37,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/r1interval_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:38,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/r1interval_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:39,1
    - Dst: InteriorIntersects
      Src: /src/s2geometry/src/s2/r1interval_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:41,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/r1interval_test.cc:41,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/r1interval_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:42,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/r1interval_test.cc:42,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/r1interval_test.cc:42,1
    - Dst: R1Interval::AddInterval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:46,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/r1interval_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - expected
    argTypes:
    - R1Interval
    - R1Interval
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 47
    functionName: TestIntervalOps
    functionSourceFile: /src/s2geometry/src/s2/r1interval_test.cc
    functionUses: 2
    functionsReached:
    - Intersection
    - Intersects
    - Union
    - R1Interval::AddInterval
    - InteriorContains
    - EXPECT_EQ
    - InteriorIntersects
    - Contains
    linkageType: ''
    returnType: void
    signature: "void TestIntervalOps(const R1Interval& x, const R1Interval& y,\n                            string_view
      expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:53,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:54,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:56,1
    - Dst: R1Interval::set_hi
      Src: /src/s2geometry/src/s2/r1interval_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:59,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:61,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:63,1
    - Dst: Vector2_d
      Src: /src/s2geometry/src/s2/r1interval_test.cc:63,1
    - Dst: R1Interval::bounds
      Src: /src/s2geometry/src/s2/r1interval_test.cc:63,1
    - Dst: R1Interval::mutable_bounds
      Src: /src/s2geometry/src/s2/r1interval_test.cc:64,1
    - Dst: Vector2_d
      Src: /src/s2geometry/src/s2/r1interval_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:65,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:65,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:69,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval_test.cc:69,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:70,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval_test.cc:70,1
    - Dst: R1Interval::Empty
      Src: /src/s2geometry/src/s2/r1interval_test.cc:71,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:72,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:75,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:76,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:78,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:78,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:78,1
    - Dst: R1Interval::R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:81,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:82,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:83,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval_test.cc:83,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:84,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval_test.cc:84,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:87,1
    - Dst: R1Interval::GetCenter
      Src: /src/s2geometry/src/s2/r1interval_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:88,1
    - Dst: R1Interval::GetCenter
      Src: /src/s2geometry/src/s2/r1interval_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:89,1
    - Dst: R1Interval::GetLength
      Src: /src/s2geometry/src/s2/r1interval_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:90,1
    - Dst: R1Interval::GetLength
      Src: /src/s2geometry/src/s2/r1interval_test.cc:90,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/r1interval_test.cc:91,1
    - Dst: R1Interval::GetLength
      Src: /src/s2geometry/src/s2/r1interval_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:94,1
    - Dst: R1Interval::Contains
      Src: /src/s2geometry/src/s2/r1interval_test.cc:94,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:95,1
    - Dst: R1Interval::InteriorContains
      Src: /src/s2geometry/src/s2/r1interval_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:96,1
    - Dst: R1Interval::Contains
      Src: /src/s2geometry/src/s2/r1interval_test.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:97,1
    - Dst: R1Interval::InteriorContains
      Src: /src/s2geometry/src/s2/r1interval_test.cc:97,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:98,1
    - Dst: R1Interval::Contains
      Src: /src/s2geometry/src/s2/r1interval_test.cc:98,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:99,1
    - Dst: R1Interval::InteriorContains
      Src: /src/s2geometry/src/s2/r1interval_test.cc:99,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:103,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r1interval_test.cc:103,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:104,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r1interval_test.cc:104,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:105,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r1interval_test.cc:105,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:106,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r1interval_test.cc:106,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:107,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r1interval_test.cc:107,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:108,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r1interval_test.cc:108,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:109,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r1interval_test.cc:109,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:109,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:110,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r1interval_test.cc:110,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:110,1
    - Dst: R1Interval::AddPoint
      Src: /src/s2geometry/src/s2/r1interval_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:115,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:116,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval_test.cc:116,1
    - Dst: R1Interval::AddPoint
      Src: /src/s2geometry/src/s2/r1interval_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:118,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:119,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval_test.cc:119,1
    - Dst: R1Interval::AddPoint
      Src: /src/s2geometry/src/s2/r1interval_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:121,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:122,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:125,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:126,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:127,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:130,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:130,1
    - Dst: R1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/r1interval_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:131,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:131,1
    - Dst: R1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/r1interval_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:132,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:132,1
    - Dst: R1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/r1interval_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:135,1
    - Dst: R1Interval::Expanded
      Src: /src/s2geometry/src/s2/r1interval_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:136,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:136,1
    - Dst: R1Interval::Expanded
      Src: /src/s2geometry/src/s2/r1interval_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:137,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:137,1
    - Dst: R1Interval::Expanded
      Src: /src/s2geometry/src/s2/r1interval_test.cc:137,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:138,1
    - Dst: R1Interval::Expanded
      Src: /src/s2geometry/src/s2/r1interval_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:139,1
    - Dst: R1Interval::Expanded
      Src: /src/s2geometry/src/s2/r1interval_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:142,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:142,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:143,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:143,1
    - Dst: R1Interval::Union
      Src: /src/s2geometry/src/s2/r1interval_test.cc:143,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:143,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:144,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:144,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:144,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:145,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:145,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:146,1
    - Dst: R1Interval::Union
      Src: /src/s2geometry/src/s2/r1interval_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:147,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:147,1
    - Dst: R1Interval::Union
      Src: /src/s2geometry/src/s2/r1interval_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:148,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:148,1
    - Dst: R1Interval::Union
      Src: /src/s2geometry/src/s2/r1interval_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:149,1
    - Dst: R1Interval::Union
      Src: /src/s2geometry/src/s2/r1interval_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:150,1
    - Dst: R1Interval::Intersection
      Src: /src/s2geometry/src/s2/r1interval_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r1interval_test.cc:151,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:151,1
    - Dst: R1Interval::Intersection
      Src: /src/s2geometry/src/s2/r1interval_test.cc:151,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:152,1
    - Dst: R1Interval::Intersection
      Src: /src/s2geometry/src/s2/r1interval_test.cc:152,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:153,1
    - Dst: R1Interval::Intersection
      Src: /src/s2geometry/src/s2/r1interval_test.cc:153,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:154,1
    - Dst: R1Interval::Intersection
      Src: /src/s2geometry/src/s2/r1interval_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 155
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r1interval_test.cc
    functionUses: 0
    functionsReached:
    - R1Interval::is_empty
    - R1Interval::GetLength
    - EXPECT_LT
    - Vector2_d
    - R1Interval::FromPointPair
    - R1Interval
    - R1Interval::mutable_bounds
    - EXPECT_EQ
    - R1Interval::bounds
    - R1Interval::AddPoint
    - R1Interval::set_hi
    - TestIntervalOps
    - EXPECT_TRUE
    - R1Interval::Empty
    - R1Interval::Union
    - R1Interval::InteriorContains
    - R1Interval::Expanded
    - R1Interval::lo
    - SCOPED_TRACE
    - R1Interval::GetCenter
    - R1Interval::R1Interval
    - R1Interval::hi
    - R1Interval::Contains
    - EXPECT_FALSE
    - R1Interval::Intersection
    linkageType: ''
    returnType: void
    signature: void TEST(R1Interval, TestBasic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::Empty
      Src: /src/s2geometry/src/s2/r1interval_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:165,1
    - Dst: R1Interval::ApproxEquals
      Src: /src/s2geometry/src/s2/r1interval_test.cc:165,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:166,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:167,1
    - Dst: R1Interval::ApproxEquals
      Src: /src/s2geometry/src/s2/r1interval_test.cc:167,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:167,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:168,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:168,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:169,1
    - Dst: R1Interval::ApproxEquals
      Src: /src/s2geometry/src/s2/r1interval_test.cc:169,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:170,1
    - Dst: R1Interval::ApproxEquals
      Src: /src/s2geometry/src/s2/r1interval_test.cc:170,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:170,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:171,1
    - Dst: R1Interval::ApproxEquals
      Src: /src/s2geometry/src/s2/r1interval_test.cc:171,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:171,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:172,1
    - Dst: R1Interval::ApproxEquals
      Src: /src/s2geometry/src/s2/r1interval_test.cc:172,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:172,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:175,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:175,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:175,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:176,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:176,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:177,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:177,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:177,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:178,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:178,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:178,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:179,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:179,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:179,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:180,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:180,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:180,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:181,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:181,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:184,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:184,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:184,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:185,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:185,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:185,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:186,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:186,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:186,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:187,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:187,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:187,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:188,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:188,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:188,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:189,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:189,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 190
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - R1Interval
    - R1Interval::Empty
    - R1Interval::ApproxEquals
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(R1Interval, ApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r1interval_test.cc:193,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/s2geometry/src/s2/r1interval_test.cc:193,1
    - Dst: R1Interval::Empty
      Src: /src/s2geometry/src/s2/r1interval_test.cc:194,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:195,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:196,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:197,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:198,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r1interval_test.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 201
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r1interval_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - R1Interval::Empty
    - R1Interval
    - absl::VerifyTypeImplementsAbslHashCorrectly
    linkageType: ''
    returnType: void
    signature: void TEST(R1Interval, SupportsAbslHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - u
    - v
    - w
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: S2::SumEquals
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SumEquals(double u, double v, double w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:77,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:77,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - S2PointUVW
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: S2::IntersectsFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool IntersectsFace(const S2PointUVW& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:93,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:93,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:93,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:95,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - S2PointUVW
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: S2::IntersectsOppositeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool IntersectsOppositeEdges(const S2PointUVW& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:107,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:107,1
    - Dst: S2::IntersectsOppositeEdges
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:108,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:112,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:112,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:118,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:120,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:120,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - S2PointUVW
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: S2::GetExitAxis
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - S2::IntersectsFace
    - fabs
    - signbit
    - S2::IntersectsOppositeEdges
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int GetExitAxis(const S2PointUVW& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:130,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' n'
    - axis
    argTypes:
    - S2PointUVW
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: S2::GetExitPoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point GetExitPoint(const S2PointUVW& n, int axis)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:152,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:152,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:152,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:156,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:157,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:160,1
    - Dst: S2::GetExitPoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:160,1
    - Dst: S2::GetExitAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:160,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:161,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:162,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:168,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:168,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:169,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:171,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:173,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:173,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:173,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:174,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:175,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:175,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:176,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - face
    - ' a'
    - ' ab'
    - a_uv
    argTypes:
    - int
    - S2Point
    - S2Point
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 178
    functionName: S2::MoveOriginToValidFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - S2::IntersectsFace
    - S2::GetExitPoint
    - DotProd
    - fabs
    - min
    - S2::GetExitAxis
    - Normalize
    - S2::ValidFaceXYZtoUV
    - max
    - S2::GetUVWFace
    - S2::FaceXYZtoUVW
    - S2::FaceUVtoXYZ
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int MoveOriginToValidFace(int face, const S2Point& a,\n                                 const
      S2Point& ab, R2Point* a_uv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:196,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:197,1
    - Dst: S2::SumEquals
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:198,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - face
    - ' exit'
    - axis
    - ' n'
    - target_face
    argTypes:
    - int
    - R2Point
    - int
    - S2PointUVW
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 204
    functionName: S2::GetNextFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - fabs
    - S2::SumEquals
    - S2::GetUVWFace
    linkageType: ''
    returnType: int
    signature: "int GetNextFace(int face, const R2Point& exit, int axis,\n                       const
      S2PointUVW& n, int target_face)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:208,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:208,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:209,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:209,1
    - Dst: FaceSegmentVector*::clear
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:210,1
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:214,1
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:215,1
    - Dst: FaceSegmentVector*::push_back
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:218,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:231,1
    - Dst: S2::MoveOriginToValidFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:232,1
    - Dst: S2::MoveOriginToValidFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:233,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:241,1
    - Dst: S2::GetExitAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:242,1
    - Dst: S2::GetExitPoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:243,1
    - Dst: FaceSegmentVector*::push_back
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:244,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:249,1
    - Dst: S2::GetNextFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:250,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:251,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:253,1
    - Dst: FaceSegmentVector*::push_back
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - segments
    argTypes:
    - S2Point
    - S2Point
    - FaceSegmentVector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 258
    functionName: S2::GetFaceSegments
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - S2::GetExitPoint
    - FaceSegmentVector*::push_back
    - FaceSegmentVector*::clear
    - S2::GetNextFace
    - S2::GetExitAxis
    - S2::XYZtoFaceUV
    - S2::IsUnitLength
    - R2Point
    - S2::RobustCrossProd
    - S2::MoveOriginToValidFace
    - S2::FaceXYZtoUVW
    - S2::FaceUVtoXYZ
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void GetFaceSegments(const S2Point& a, const S2Point& b,\n                     FaceSegmentVector*
      segments)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:275,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:275,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:280,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:281,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:281,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:281,1
    - Dst: S2::GetExitPoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:285,1
    - Dst: S2::GetExitAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:285,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:308,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:310,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - ' a'
    - ' b'
    - ' scaled_n'
    - ' a_tangent'
    - ' b_tangent'
    - scale_uv
    - uv
    argTypes:
    - S2PointUVW
    - S2PointUVW
    - S2PointUVW
    - S2PointUVW
    - S2PointUVW
    - double
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 321
    functionName: S2::ClipDestination
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - S2::IntersectsFace
    - S2::GetExitPoint
    - DotProd
    - fabs
    - S2::GetExitAxis
    - R2Point
    - max
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int ClipDestination(\n    const S2PointUVW& a, const S2PointUVW& b,
      const S2PointUVW& scaled_n,\n    const S2PointUVW& a_tangent, const S2PointUVW&
      b_tangent, double scale_uv,\n    R2Point* uv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:325,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:327,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:327,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:328,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:329,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:338,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:338,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:339,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:340,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:350,1
    - Dst: S2PointUVW::Normalize
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:352,1
    - Dst: S2PointUVW::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:353,1
    - Dst: S2PointUVW::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:354,1
    - Dst: S2::ClipDestination
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:357,1
    - Dst: S2::ClipDestination
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' a_xyz'
    - ' b_xyz'
    - face
    - padding
    - a_uv
    - b_uv
    argTypes:
    - S2Point
    - S2Point
    - int
    - double
    - R2Point*
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 362
    functionName: S2::ClipToPaddedFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 9
    functionsReached:
    - S2::IntersectsFace
    - S2PointUVW::Normalize
    - S2::ClipDestination
    - S2PointUVW::CrossProd
    - S2::ValidFaceXYZtoUV
    - S2::GetFace
    - S2::RobustCrossProd
    - S2::FaceXYZtoUVW
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: bool
    signature: "bool ClipToPaddedFace(const S2Point& a_xyz, const S2Point& b_xyz,
      int face,\n                      double padding, R2Point* a_uv, R2Point* b_uv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:366,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:367,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:374,1
    - Dst: R2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:377,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:377,1
    - Dst: R2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:378,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' rect'
    argTypes:
    - R2Point
    - R2Point
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: S2::IntersectsRect
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - Intersects
    - S2::Ortho
    - GetVertex
    - R2Rect::FromPointPair
    - R2Point::DotProd
    linkageType: ''
    returnType: bool
    signature: bool IntersectsRect(const R2Point& a, const R2Point& b, const R2Rect&
      rect)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval*::hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:384,1
    - Dst: R1Interval*::lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:385,1
    - Dst: R1Interval*::set_lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:385,1
    - Dst: R1Interval*::lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:387,1
    - Dst: R1Interval*::hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:388,1
    - Dst: R1Interval*::set_hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - bound
    - end
    - value
    argTypes:
    - R1Interval*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 391
    functionName: S2::UpdateEndpoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - R1Interval*::hi
    - R1Interval*::set_lo
    - R1Interval*::lo
    - R1Interval*::set_hi
    linkageType: ''
    returnType: bool
    signature: bool UpdateEndpoint(R1Interval* bound, int end, double value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval*::lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:401,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:401,1
    - Dst: R1Interval*::hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:402,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:402,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:403,1
    - Dst: S2::UpdateEndpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:404,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:405,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:405,1
    - Dst: R1Interval*::hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:408,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:408,1
    - Dst: R1Interval*::lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:409,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:409,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:410,1
    - Dst: S2::UpdateEndpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:411,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:412,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 8
    argNames:
    - a0
    - b0
    - bound0
    - a1
    - b1
    - bound1
    - diag
    - ' clip0'
    argTypes:
    - double
    - double
    - R1Interval*
    - double
    - double
    - R1Interval*
    - int
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 416
    functionName: S2::ClipBoundAxis
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - S2::UpdateEndpoint
    - S2::InterpolateDouble
    - R1Interval*::lo
    - R1Interval*::hi
    - lo
    - hi
    linkageType: ''
    returnType: bool
    signature: "bool ClipBoundAxis(double a0, double b0, R1Interval* bound0,\n                                 double
      a1, double b1, R1Interval* bound1,\n                                 int diag,
      const R1Interval& clip0)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:420,1
    - Dst: S2::ClipEdgeBound
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:421,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' clip'
    argTypes:
    - R2Point
    - R2Point
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: S2::GetClippedEdgeBound
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 2
    functionsReached:
    - S2::ClipEdgeBound
    - R2Rect::FromPointPair
    - R2Rect::Empty
    linkageType: ''
    returnType: R2Rect
    signature: "R2Rect GetClippedEdgeBound(const R2Point& a, const R2Point& b,\n                           const
      R2Rect& clip)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::ClipBoundAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:432,1
    - Dst: S2::ClipBoundAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' clip'
    - bound
    argTypes:
    - R2Point
    - R2Point
    - R2Rect
    - R2Rect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 436
    functionName: S2::ClipEdgeBound
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - S2::ClipBoundAxis
    linkageType: ''
    returnType: bool
    signature: "bool ClipEdgeBound(const R2Point& a, const R2Point& b, const R2Rect&
      clip,\n                   R2Rect* bound)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:442,1
    - Dst: S2::ClipEdgeBound
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:443,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:445,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' clip'
    - a_clipped
    - b_clipped
    argTypes:
    - R2Point
    - R2Point
    - R2Rect
    - R2Point*
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 450
    functionName: S2::ClipEdge
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - R2Rect::GetVertex
    - S2::ClipEdgeBound
    - R2Rect::FromPointPair
    linkageType: ''
    returnType: bool
    signature: "bool ClipEdge(const R2Point& a, const R2Point& b, const R2Rect& clip,\n
      \             R2Point* a_clipped, R2Point* b_clipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - u
    - v
    - w
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: S2::SumEquals
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SumEquals(double u, double v, double w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:77,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:77,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - S2PointUVW
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: S2::IntersectsFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 4
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool IntersectsFace(const S2PointUVW& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:93,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:93,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:93,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:95,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - S2PointUVW
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: S2::IntersectsOppositeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool IntersectsOppositeEdges(const S2PointUVW& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:107,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:107,1
    - Dst: S2::IntersectsOppositeEdges
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:108,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:112,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:112,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:118,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:120,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:120,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - S2PointUVW
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: S2::GetExitAxis
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 3
    functionsReached:
    - S2::IntersectsFace
    - fabs
    - signbit
    - S2::IntersectsOppositeEdges
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int GetExitAxis(const S2PointUVW& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:130,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' n'
    - axis
    argTypes:
    - S2PointUVW
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: S2::GetExitPoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 3
    functionsReached:
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point GetExitPoint(const S2PointUVW& n, int axis)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:152,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:152,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:152,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:156,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:157,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:160,1
    - Dst: S2::GetExitPoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:160,1
    - Dst: S2::GetExitAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:160,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:161,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:162,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:168,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:168,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:169,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:171,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:173,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:173,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:173,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:174,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:175,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:175,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:176,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - face
    - ' a'
    - ' ab'
    - a_uv
    argTypes:
    - int
    - S2Point
    - S2Point
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 178
    functionName: S2::MoveOriginToValidFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - S2::IntersectsFace
    - S2::GetExitPoint
    - DotProd
    - fabs
    - min
    - S2::GetExitAxis
    - Normalize
    - S2::ValidFaceXYZtoUV
    - max
    - S2::GetUVWFace
    - S2::FaceXYZtoUVW
    - S2::FaceUVtoXYZ
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int MoveOriginToValidFace(int face, const S2Point& a,\n                                 const
      S2Point& ab, R2Point* a_uv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:196,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:197,1
    - Dst: S2::SumEquals
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:198,1
    - Dst: S2::GetUVWFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - face
    - ' exit'
    - axis
    - ' n'
    - target_face
    argTypes:
    - int
    - R2Point
    - int
    - S2PointUVW
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 204
    functionName: S2::GetNextFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - fabs
    - S2::SumEquals
    - S2::GetUVWFace
    linkageType: ''
    returnType: int
    signature: "int GetNextFace(int face, const R2Point& exit, int axis,\n                       const
      S2PointUVW& n, int target_face)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:208,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:208,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:209,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:209,1
    - Dst: FaceSegmentVector*::clear
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:210,1
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:214,1
    - Dst: S2::XYZtoFaceUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:215,1
    - Dst: FaceSegmentVector*::push_back
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:218,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:231,1
    - Dst: S2::MoveOriginToValidFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:232,1
    - Dst: S2::MoveOriginToValidFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:233,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:241,1
    - Dst: S2::GetExitAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:242,1
    - Dst: S2::GetExitPoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:243,1
    - Dst: FaceSegmentVector*::push_back
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:244,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:249,1
    - Dst: S2::GetNextFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:250,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:251,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:253,1
    - Dst: FaceSegmentVector*::push_back
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - segments
    argTypes:
    - S2Point
    - S2Point
    - FaceSegmentVector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 258
    functionName: S2::GetFaceSegments
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - S2::GetExitPoint
    - FaceSegmentVector*::push_back
    - FaceSegmentVector*::clear
    - S2::GetNextFace
    - S2::GetExitAxis
    - S2::XYZtoFaceUV
    - S2::IsUnitLength
    - R2Point
    - S2::RobustCrossProd
    - S2::MoveOriginToValidFace
    - S2::FaceXYZtoUVW
    - S2::FaceUVtoXYZ
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void GetFaceSegments(const S2Point& a, const S2Point& b,\n                     FaceSegmentVector*
      segments)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:275,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:275,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:280,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:281,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:281,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:281,1
    - Dst: S2::GetExitPoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:285,1
    - Dst: S2::GetExitAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:285,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:308,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:310,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - ' a'
    - ' b'
    - ' scaled_n'
    - ' a_tangent'
    - ' b_tangent'
    - scale_uv
    - uv
    argTypes:
    - S2PointUVW
    - S2PointUVW
    - S2PointUVW
    - S2PointUVW
    - S2PointUVW
    - double
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 321
    functionName: S2::ClipDestination
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - S2::IntersectsFace
    - S2::GetExitPoint
    - DotProd
    - fabs
    - S2::GetExitAxis
    - R2Point
    - max
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int ClipDestination(\n    const S2PointUVW& a, const S2PointUVW& b,
      const S2PointUVW& scaled_n,\n    const S2PointUVW& a_tangent, const S2PointUVW&
      b_tangent, double scale_uv,\n    R2Point* uv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:325,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:327,1
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:327,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:328,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:329,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:338,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:338,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:339,1
    - Dst: S2::FaceXYZtoUVW
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:340,1
    - Dst: S2::IntersectsFace
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:350,1
    - Dst: S2PointUVW::Normalize
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:352,1
    - Dst: S2PointUVW::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:353,1
    - Dst: S2PointUVW::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:354,1
    - Dst: S2::ClipDestination
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:357,1
    - Dst: S2::ClipDestination
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' a_xyz'
    - ' b_xyz'
    - face
    - padding
    - a_uv
    - b_uv
    argTypes:
    - S2Point
    - S2Point
    - int
    - double
    - R2Point*
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 362
    functionName: S2::ClipToPaddedFace
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 9
    functionsReached:
    - S2::IntersectsFace
    - S2PointUVW::Normalize
    - S2::ClipDestination
    - S2PointUVW::CrossProd
    - S2::ValidFaceXYZtoUV
    - S2::GetFace
    - S2::RobustCrossProd
    - S2::FaceXYZtoUVW
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: bool
    signature: "bool ClipToPaddedFace(const S2Point& a_xyz, const S2Point& b_xyz,
      int face,\n                      double padding, R2Point* a_uv, R2Point* b_uv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:366,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:367,1
    - Dst: S2::Ortho
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:374,1
    - Dst: R2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:377,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:377,1
    - Dst: R2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:378,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' rect'
    argTypes:
    - R2Point
    - R2Point
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: S2::IntersectsRect
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - Intersects
    - S2::Ortho
    - GetVertex
    - R2Rect::FromPointPair
    - R2Point::DotProd
    linkageType: ''
    returnType: bool
    signature: bool IntersectsRect(const R2Point& a, const R2Point& b, const R2Rect&
      rect)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval*::hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:384,1
    - Dst: R1Interval*::lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:385,1
    - Dst: R1Interval*::set_lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:385,1
    - Dst: R1Interval*::lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:387,1
    - Dst: R1Interval*::hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:388,1
    - Dst: R1Interval*::set_hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - bound
    - end
    - value
    argTypes:
    - R1Interval*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 391
    functionName: S2::UpdateEndpoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - R1Interval*::hi
    - R1Interval*::set_lo
    - R1Interval*::lo
    - R1Interval*::set_hi
    linkageType: ''
    returnType: bool
    signature: bool UpdateEndpoint(R1Interval* bound, int end, double value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval*::lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:401,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:401,1
    - Dst: R1Interval*::hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:402,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:402,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:403,1
    - Dst: S2::UpdateEndpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:404,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:405,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:405,1
    - Dst: R1Interval*::hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:408,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:408,1
    - Dst: R1Interval*::lo
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:409,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:409,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:410,1
    - Dst: S2::UpdateEndpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:411,1
    - Dst: S2::InterpolateDouble
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:412,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 8
    argNames:
    - a0
    - b0
    - bound0
    - a1
    - b1
    - bound1
    - diag
    - ' clip0'
    argTypes:
    - double
    - double
    - R1Interval*
    - double
    - double
    - R1Interval*
    - int
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 416
    functionName: S2::ClipBoundAxis
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 1
    functionsReached:
    - S2::UpdateEndpoint
    - S2::InterpolateDouble
    - R1Interval*::lo
    - R1Interval*::hi
    - lo
    - hi
    linkageType: ''
    returnType: bool
    signature: "bool ClipBoundAxis(double a0, double b0, R1Interval* bound0,\n                                 double
      a1, double b1, R1Interval* bound1,\n                                 int diag,
      const R1Interval& clip0)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:420,1
    - Dst: S2::ClipEdgeBound
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:421,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' clip'
    argTypes:
    - R2Point
    - R2Point
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: S2::GetClippedEdgeBound
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 2
    functionsReached:
    - S2::ClipEdgeBound
    - R2Rect::FromPointPair
    - R2Rect::Empty
    linkageType: ''
    returnType: R2Rect
    signature: "R2Rect GetClippedEdgeBound(const R2Point& a, const R2Point& b,\n                           const
      R2Rect& clip)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::ClipBoundAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:432,1
    - Dst: S2::ClipBoundAxis
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' clip'
    - bound
    argTypes:
    - R2Point
    - R2Point
    - R2Rect
    - R2Rect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 436
    functionName: S2::ClipEdgeBound
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 3
    functionsReached:
    - S2::ClipBoundAxis
    linkageType: ''
    returnType: bool
    signature: "bool ClipEdgeBound(const R2Point& a, const R2Point& b, const R2Rect&
      clip,\n                   R2Rect* bound)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:442,1
    - Dst: S2::ClipEdgeBound
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:443,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:445,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping.cc:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' clip'
    - a_clipped
    - b_clipped
    argTypes:
    - R2Point
    - R2Point
    - R2Rect
    - R2Point*
    - R2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 450
    functionName: S2::ClipEdge
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping.cc
    functionUses: 0
    functionsReached:
    - R2Rect::GetVertex
    - S2::ClipEdgeBound
    - R2Rect::FromPointPair
    linkageType: ''
    returnType: bool
    signature: "bool ClipEdge(const R2Point& a, const R2Point& b, const R2Rect& clip,\n
      \             R2Point* a_clipped, R2Point* b_clipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:65,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:66,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:67,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:68,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::GetColumnStride
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, CreatesWindowFromStrides)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:81,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:82,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:83,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:84,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:85,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:86,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:87,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:88,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:89,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:90,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::GetColumnStride
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, CreatesWindowFromWarpPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:102,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, GeneratesWindowDebugString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Upsample
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:127,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 128
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Upsample
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, UpsamplesWindowByFactorOfTwo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Upsample
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:146,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Upsample
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, UpsamplesWindowXAxisByFactorOfThree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Upsample
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:176,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Upsample
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, UpsamplesWindowYAxisByFactorOfThree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Upsample
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:189,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:211,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 212
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Upsample
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, UpsamplesWindowByNonInteger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Dilate
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:231,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 232
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Dilate
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DilatesWindowByRadiusZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Dilate
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:243,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:251,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Dilate
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DilatesWindowByRadiusOne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Dilate
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:263,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:271,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 272
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Dilate
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DilatesWindowByRadiusTwo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Dilate
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:284,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Dilate
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DilatesWindowByVeryLargeRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:288,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:289,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:291,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:291,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::HalfResolution
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, HalvesZeroLengthPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:295,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:296,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:298,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:298,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 299
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::HalfResolution
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, HalvesEvenLengthPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:302,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:303,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:305,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:305,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::HalfResolution
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, HalvesOddLengthPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:311,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:312,1
    - Dst: CostTable
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:313,1
    - Dst: vector<double>
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:313,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:316,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:316,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: s2polyline_alignment::DistanceMatrix
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - vector<double>
    - vertex
    - CostTable
    - Norm
    linkageType: ''
    returnType: CostTable
    signature: CostTable DistanceMatrix(const S2Polyline& a, const S2Polyline& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:328,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:330,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:332,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:332,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:333,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ' table'
    - i
    - j
    argTypes:
    - CostTable
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: s2polyline_alignment::GetBruteForceCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 1
    functionsReached:
    - s2polyline_alignment::GetBruteForceCost
    - min
    linkageType: ''
    returnType: double
    signature: double GetBruteForceCost(const CostTable& table, const int i, const
      int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:341,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:342,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:344,1
    - Dst: s2polyline_alignment::DistanceMatrix
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:344,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:345,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:346,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:347,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: s2polyline_alignment::VerifyCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - num_vertices
    - s2polyline_alignment::DistanceMatrix
    - s2polyline_alignment::GetExactVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignmentCost
    - s2polyline_alignment::GetBruteForceCost
    - EXPECT_FLOAT_EQ
    linkageType: ''
    returnType: void
    signature: void VerifyCost(const S2Polyline& a, const S2Polyline& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:356,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:356,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:356,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:358,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:359,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:360,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:361,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:362,1
    - Dst: VertexAlignment::warp_path::size
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:362,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:362,1
    - Dst: VertexAlignment::warp_path::size
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' p'
    argTypes:
    - S2Polyline
    - S2Polyline
    - WarpPath
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 366
    functionName: s2polyline_alignment::VerifyPath
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - size
    - s2polyline_alignment::GetExactVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignmentCost
    - vertex
    - EXPECT_EQ
    - VertexAlignment::warp_path::size
    - EXPECT_FLOAT_EQ
    - Norm
    linkageType: ''
    returnType: void
    signature: void VerifyPath(const S2Polyline& a, const S2Polyline& b, const WarpPath&
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:386,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:389,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:391,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:394,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:398,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:400,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:401,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:401,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:403,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bitgen
    - num_polylines
    - num_vertices
    - perturbation
    argTypes:
    - absl::BitGenRef
    - int
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 406
    functionName: s2polyline_alignment::GenPolylines
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polyline>
    - vector::push_back
    - s2random::Point
    - vector::reserve
    - S1Angle::Radians
    - S2Cap
    - s2random::SamplePoint
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> GenPolylines(absl::BitGenRef bitgen,\n
      \                                           const int num_polylines,\n                                            const
      int num_vertices,\n                                            const double
      perturbation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:410,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:411,1
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:413,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - EXPECT_DEATH
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, ExactLengthZeroInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:417,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:418,1
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:420,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - EXPECT_DEATH
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, ExactLengthZeroInputA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:424,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:425,1
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:427,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 5
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - EXPECT_DEATH
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, ExactLengthZeroInputB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:432,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:433,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:435,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ExactLengthOneInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:440,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:441,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:443,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 439
    functionDepth: 5
    functionLinenumber: 439
    functionLinenumberEnd: 445
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ExactLengthOneInputA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:448,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:449,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:451,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 447
    functionDepth: 5
    functionLinenumber: 447
    functionLinenumberEnd: 453
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ExactLengthOneInputB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:456,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:457,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:459,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 5
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ExactHeaderFileExample)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:476,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:478,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:480,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 482
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DifferentPathForDistanceVersusSquaredDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:487,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:488,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:493,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 486
    functionDepth: 5
    functionLinenumber: 486
    functionLinenumberEnd: 499
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - S2Testing::MakeTaggedSeedSeq
    - s2polyline_alignment::GenPolylines
    - s2polyline_alignment::VerifyCost
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, FuzzedWithBruteForce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:508,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - s2polyline_alignment::GetMedoidPolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, MedoidPolylineNoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:514,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:514,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineOnePolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:524,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:524,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:525,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:525,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:528,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineTwoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:534,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:534,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:535,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:535,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:536,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:536,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:539,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineFewSmallPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:546,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:546,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:547,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:547,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:550,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineOverlappingPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:556,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:556,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:557,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:558,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:559,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:560,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:563,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineDifferentLengthPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:568,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:569,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:576,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:580,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:581,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:582,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:583,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:584,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:585,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:588,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:589,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:590,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:591,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:592,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:593,1
    - Dst: std::min_element
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:598,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:598,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:598,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:599,1
    - Dst: std::min_element
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:602,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:602,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:602,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:603,1
    - Dst: MedoidOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:606,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:608,1
    - Dst: MedoidOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:610,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:611,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 567
    functionDepth: 5
    functionLinenumber: 567
    functionLinenumberEnd: 613
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::GenPolylines
    - MedoidOptions::set_approx
    - s2polyline_alignment::GetApproxVertexAlignment
    - vector::end
    - s2polyline_alignment::GetExactVertexAlignmentCost
    - vector::begin
    - EXPECT_EQ
    - absl::LogInfoStreamer
    - std::min_element
    - s2polyline_alignment::GetMedoidPolyline
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineFewLargePolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:620,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 617
    functionDepth: 4
    functionLinenumber: 617
    functionLinenumberEnd: 621
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - s2polyline_alignment::GetConsensusPolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, ConsensusPolylineNoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:626,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:626,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:629,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:630,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:631,1
    - Dst: auto::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 624
    functionDepth: 4
    functionLinenumber: 624
    functionLinenumberEnd: 632
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - auto::ApproxEquals
    - EXPECT_TRUE
    - vector::emplace_back
    - s2polyline_alignment::GetConsensusPolyline
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ConsensusPolylineOnePolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:636,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:636,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:637,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:637,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:640,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:641,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:642,1
    - Dst: auto::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 643
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - auto::ApproxEquals
    - EXPECT_TRUE
    - vector::emplace_back
    - s2polyline_alignment::GetConsensusPolyline
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ConsensusPolylineTwoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:647,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:647,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:648,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:648,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:651,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:652,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:653,1
    - Dst: auto::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 654
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - auto::ApproxEquals
    - EXPECT_TRUE
    - vector::emplace_back
    - s2polyline_alignment::GetConsensusPolyline
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ConsensusPolylineOverlappingPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:662,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:663,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:664,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:664,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:666,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:668,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:671,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:672,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:673,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 661
    functionDepth: 5
    functionLinenumber: 661
    functionLinenumberEnd: 676
    functionName: s2polyline_alignment::BM_GetExactVertexAlignmentCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - string::end
    - range
    - s2polyline_alignment::GetExactVertexAlignmentCost
    - s2random::LogUniform
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_GetExactVertexAlignmentCost(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:680,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:680,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:681,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:681,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:683,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:685,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:688,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:689,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:690,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 678
    functionDepth: 5
    functionLinenumber: 678
    functionLinenumberEnd: 693
    functionName: s2polyline_alignment::BM_GetExactVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - string::end
    - range
    - s2polyline_alignment::GetExactVertexAlignment
    - s2random::LogUniform
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_GetExactVertexAlignment(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:696,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:697,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:698,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:698,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:700,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:701,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:703,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:709,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:710,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:711,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:712,1
    - Dst: std::make_tuple
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 695
    functionDepth: 5
    functionLinenumber: 695
    functionLinenumberEnd: 714
    functionName: s2polyline_alignment::BM_GetApproxVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - string::end
    - s2polyline_alignment::GetApproxVertexAlignment
    - range
    - s2random::LogUniform
    - std::make_tuple
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_GetApproxVertexAlignment(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:718,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:718,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:719,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:719,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:721,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:722,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:724,1
    - Dst: MedoidOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:726,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:728,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:728,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:730,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' state'
    - approx
    argTypes:
    - benchmark::State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 731
    functionName: s2polyline_alignment::ComputeMedoid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - MedoidOptions::set_approx
    - string::end
    - s2polyline_alignment::GetMedoidPolyline
    - range
    - SetLabel
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void ComputeMedoid(benchmark::State& state, const bool approx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:736,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:736,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:737,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:737,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:739,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:740,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:742,1
    - Dst: ConsensusOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:744,1
    - Dst: ConsensusOptions::set_seed_medoid
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:745,1
    - Dst: ConsensusOptions::set_iteration_cap
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:746,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:748,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:748,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:750,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' state'
    - approx
    - seed_medoid
    - iteration_cap
    argTypes:
    - benchmark::State
    - bool
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 733
    functionDepth: 5
    functionLinenumber: 733
    functionLinenumberEnd: 752
    functionName: s2polyline_alignment::ComputeConsensus
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - string::end
    - range
    - ConsensusOptions::set_approx
    - benchmark::DoNotOptimize
    - ConsensusOptions::set_seed_medoid
    - SetLabel
    - s2polyline_alignment::GetConsensusPolyline
    - ConsensusOptions::set_iteration_cap
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void ComputeConsensus(benchmark::State& state, const bool approx,\n
      \                     const bool seed_medoid, const int iteration_cap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::ComputeMedoid
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 6
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: s2polyline_alignment::BM_ComputeMedoid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::ComputeMedoid
    linkageType: ''
    returnType: void
    signature: void BM_ComputeMedoid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::ComputeConsensus
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 6
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: s2polyline_alignment::BM_ComputeConsensusUnseeded
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::ComputeConsensus
    linkageType: ''
    returnType: void
    signature: void BM_ComputeConsensusUnseeded(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::ComputeConsensus
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 6
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: s2polyline_alignment::BM_ComputeConsensusSeeded
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::ComputeConsensus
    linkageType: ''
    returnType: void
    signature: void BM_ComputeConsensusSeeded(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:65,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:66,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:67,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:68,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::GetColumnStride
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, CreatesWindowFromStrides)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:81,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:82,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:83,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:84,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:85,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:86,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:87,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:88,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:89,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:90,1
    - Dst: Window::GetColumnStride
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::GetColumnStride
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, CreatesWindowFromWarpPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:102,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, GeneratesWindowDebugString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Upsample
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:127,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 128
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Upsample
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, UpsamplesWindowByFactorOfTwo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Upsample
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:146,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Upsample
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, UpsamplesWindowXAxisByFactorOfThree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Upsample
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:176,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Upsample
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, UpsamplesWindowYAxisByFactorOfThree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Upsample
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:189,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:211,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 212
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Upsample
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, UpsamplesWindowByNonInteger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Dilate
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:231,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 232
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Dilate
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DilatesWindowByRadiusZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Dilate
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:243,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:251,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Dilate
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DilatesWindowByRadiusOne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Dilate
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:263,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:271,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 272
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Dilate
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DilatesWindowByRadiusTwo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Window::Dilate
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:284,1
    - Dst: Window::DebugString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Window::Dilate
    - Window::DebugString
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DilatesWindowByVeryLargeRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:288,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:289,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:291,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:291,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::HalfResolution
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, HalvesZeroLengthPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:295,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:296,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:298,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:298,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 299
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::HalfResolution
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, HalvesEvenLengthPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:302,1
    - Dst: s2polyline_alignment::HalfResolution
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:303,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:305,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:305,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2textformat::ToString
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::HalfResolution
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, HalvesOddLengthPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:311,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:312,1
    - Dst: CostTable
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:313,1
    - Dst: vector<double>
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:313,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:316,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:316,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: s2polyline_alignment::DistanceMatrix
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 1
    functionsReached:
    - num_vertices
    - vector<double>
    - vertex
    - CostTable
    - Norm
    linkageType: ''
    returnType: CostTable
    signature: CostTable DistanceMatrix(const S2Polyline& a, const S2Polyline& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:328,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:330,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:332,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:332,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:333,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ' table'
    - i
    - j
    argTypes:
    - CostTable
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: s2polyline_alignment::GetBruteForceCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 3
    functionsReached:
    - s2polyline_alignment::GetBruteForceCost
    - min
    linkageType: ''
    returnType: double
    signature: double GetBruteForceCost(const CostTable& table, const int i, const
      int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:341,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:342,1
    - Dst: s2polyline_alignment::GetBruteForceCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:344,1
    - Dst: s2polyline_alignment::DistanceMatrix
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:344,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:345,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:346,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:347,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Polyline
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: s2polyline_alignment::VerifyCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 6
    functionsReached:
    - num_vertices
    - s2polyline_alignment::DistanceMatrix
    - s2polyline_alignment::GetExactVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignmentCost
    - s2polyline_alignment::GetBruteForceCost
    - EXPECT_FLOAT_EQ
    linkageType: ''
    returnType: void
    signature: void VerifyCost(const S2Polyline& a, const S2Polyline& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:356,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:356,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:356,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:358,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:359,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:360,1
    - Dst: EXPECT_FLOAT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:361,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:362,1
    - Dst: VertexAlignment::warp_path::size
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:362,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:362,1
    - Dst: VertexAlignment::warp_path::size
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' p'
    argTypes:
    - S2Polyline
    - S2Polyline
    - WarpPath
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 366
    functionName: s2polyline_alignment::VerifyPath
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 8
    functionsReached:
    - size
    - s2polyline_alignment::GetExactVertexAlignment
    - s2polyline_alignment::GetExactVertexAlignmentCost
    - vertex
    - EXPECT_EQ
    - VertexAlignment::warp_path::size
    - EXPECT_FLOAT_EQ
    - Norm
    linkageType: ''
    returnType: void
    signature: void VerifyPath(const S2Polyline& a, const S2Polyline& b, const WarpPath&
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:386,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:389,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:391,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:394,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:398,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:400,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:401,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:401,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:403,1
    - Dst: make_unique<S2Polyline>
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bitgen
    - num_polylines
    - num_vertices
    - perturbation
    argTypes:
    - absl::BitGenRef
    - int
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 406
    functionName: s2polyline_alignment::GenPolylines
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 7
    functionsReached:
    - make_unique<S2Polyline>
    - vector::push_back
    - s2random::Point
    - vector::reserve
    - S1Angle::Radians
    - S2Cap
    - s2random::SamplePoint
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: vector<unique_ptr<S2Polyline>>
    signature: "vector<unique_ptr<S2Polyline>> GenPolylines(absl::BitGenRef bitgen,\n
      \                                           const int num_polylines,\n                                            const
      int num_vertices,\n                                            const double
      perturbation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:410,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:411,1
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:413,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - EXPECT_DEATH
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, ExactLengthZeroInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:417,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:418,1
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:420,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - EXPECT_DEATH
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, ExactLengthZeroInputA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:424,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:425,1
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:427,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 5
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - EXPECT_DEATH
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, ExactLengthZeroInputB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:432,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:433,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:435,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ExactLengthOneInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:440,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:441,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:443,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 439
    functionDepth: 5
    functionLinenumber: 439
    functionLinenumberEnd: 445
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ExactLengthOneInputA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:448,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:449,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:451,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 447
    functionDepth: 5
    functionLinenumber: 447
    functionLinenumberEnd: 453
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ExactLengthOneInputB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:456,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:457,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:459,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 5
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ExactHeaderFileExample)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:476,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:478,1
    - Dst: s2polyline_alignment::VerifyPath
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:480,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 482
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::VerifyPath
    - s2textformat::MakePolylineOrDie
    - s2polyline_alignment::VerifyCost
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, DifferentPathForDistanceVersusSquaredDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:487,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:488,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:493,1
    - Dst: s2polyline_alignment::VerifyCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 486
    functionDepth: 5
    functionLinenumber: 486
    functionLinenumberEnd: 499
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - S2Testing::MakeTaggedSeedSeq
    - s2polyline_alignment::GenPolylines
    - s2polyline_alignment::VerifyCost
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, FuzzedWithBruteForce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:508,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - s2polyline_alignment::GetMedoidPolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, MedoidPolylineNoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:514,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:514,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineOnePolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:524,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:524,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:525,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:525,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:528,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineTwoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:534,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:534,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:535,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:535,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:536,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:536,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:539,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineFewSmallPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:546,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:546,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:547,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:547,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:550,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineOverlappingPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:556,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:556,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:557,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:558,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:559,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:560,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:563,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2polyline_alignment::GetMedoidPolyline
    - s2textformat::MakePolylineOrDie
    - vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineDifferentLengthPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:568,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:569,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:576,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:580,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:581,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:582,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:583,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:584,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:585,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:588,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:589,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:590,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:591,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:592,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:593,1
    - Dst: std::min_element
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:598,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:598,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:598,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:599,1
    - Dst: std::min_element
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:602,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:602,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:602,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:603,1
    - Dst: MedoidOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:606,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:608,1
    - Dst: MedoidOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:610,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:611,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 567
    functionDepth: 5
    functionLinenumber: 567
    functionLinenumberEnd: 613
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::GenPolylines
    - MedoidOptions::set_approx
    - s2polyline_alignment::GetApproxVertexAlignment
    - vector::end
    - s2polyline_alignment::GetExactVertexAlignmentCost
    - vector::begin
    - EXPECT_EQ
    - absl::LogInfoStreamer
    - std::min_element
    - s2polyline_alignment::GetMedoidPolyline
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, MedoidPolylineFewLargePolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:620,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 617
    functionDepth: 4
    functionLinenumber: 617
    functionLinenumberEnd: 621
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - s2polyline_alignment::GetConsensusPolyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentDeathTest, ConsensusPolylineNoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:626,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:626,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:629,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:630,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:631,1
    - Dst: auto::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 624
    functionDepth: 4
    functionLinenumber: 624
    functionLinenumberEnd: 632
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - auto::ApproxEquals
    - EXPECT_TRUE
    - vector::emplace_back
    - s2polyline_alignment::GetConsensusPolyline
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ConsensusPolylineOnePolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:636,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:636,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:637,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:637,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:640,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:641,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:642,1
    - Dst: auto::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 643
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - auto::ApproxEquals
    - EXPECT_TRUE
    - vector::emplace_back
    - s2polyline_alignment::GetConsensusPolyline
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ConsensusPolylineTwoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:647,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:647,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:648,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:648,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:651,1
    - Dst: s2textformat::MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:652,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:653,1
    - Dst: auto::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 654
    functionName: s2polyline_alignment::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - auto::ApproxEquals
    - EXPECT_TRUE
    - vector::emplace_back
    - s2polyline_alignment::GetConsensusPolyline
    - s2textformat::MakePolylineOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineAlignmentTest, ConsensusPolylineOverlappingPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:662,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:663,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:664,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:664,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:666,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:668,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:671,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:672,1
    - Dst: s2polyline_alignment::GetExactVertexAlignmentCost
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:673,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 661
    functionDepth: 5
    functionLinenumber: 661
    functionLinenumberEnd: 676
    functionName: s2polyline_alignment::BM_GetExactVertexAlignmentCost
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - string::end
    - range
    - s2polyline_alignment::GetExactVertexAlignmentCost
    - s2random::LogUniform
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_GetExactVertexAlignmentCost(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:680,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:680,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:681,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:681,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:683,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:685,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:688,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:689,1
    - Dst: s2polyline_alignment::GetExactVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:690,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 678
    functionDepth: 5
    functionLinenumber: 678
    functionLinenumberEnd: 693
    functionName: s2polyline_alignment::BM_GetExactVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - string::end
    - range
    - s2polyline_alignment::GetExactVertexAlignment
    - s2random::LogUniform
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_GetExactVertexAlignment(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:696,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:697,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:698,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:698,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:700,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:701,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:703,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:709,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:710,1
    - Dst: s2polyline_alignment::GetApproxVertexAlignment
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:711,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:712,1
    - Dst: std::make_tuple
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 695
    functionDepth: 5
    functionLinenumber: 695
    functionLinenumberEnd: 714
    functionName: s2polyline_alignment::BM_GetApproxVertexAlignment
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - string::end
    - s2polyline_alignment::GetApproxVertexAlignment
    - range
    - s2random::LogUniform
    - std::make_tuple
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_GetApproxVertexAlignment(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:718,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:718,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:719,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:719,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:721,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:722,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:724,1
    - Dst: MedoidOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:726,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:728,1
    - Dst: s2polyline_alignment::GetMedoidPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:728,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:730,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' state'
    - approx
    argTypes:
    - benchmark::State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 731
    functionName: s2polyline_alignment::ComputeMedoid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 1
    functionsReached:
    - absl::StrFormat
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - MedoidOptions::set_approx
    - string::end
    - s2polyline_alignment::GetMedoidPolyline
    - range
    - SetLabel
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void ComputeMedoid(benchmark::State& state, const bool approx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:736,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:736,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:737,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:737,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:739,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:740,1
    - Dst: s2polyline_alignment::GenPolylines
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:742,1
    - Dst: ConsensusOptions::set_approx
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:744,1
    - Dst: ConsensusOptions::set_seed_medoid
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:745,1
    - Dst: ConsensusOptions::set_iteration_cap
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:746,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:748,1
    - Dst: s2polyline_alignment::GetConsensusPolyline
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:748,1
    - Dst: SetLabel
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:750,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' state'
    - approx
    - seed_medoid
    - iteration_cap
    argTypes:
    - benchmark::State
    - bool
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 733
    functionDepth: 5
    functionLinenumber: 733
    functionLinenumberEnd: 752
    functionName: s2polyline_alignment::ComputeConsensus
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 2
    functionsReached:
    - absl::StrFormat
    - string::begin
    - StrCat
    - s2polyline_alignment::GenPolylines
    - string::end
    - range
    - ConsensusOptions::set_approx
    - benchmark::DoNotOptimize
    - ConsensusOptions::set_seed_medoid
    - SetLabel
    - s2polyline_alignment::GetConsensusPolyline
    - ConsensusOptions::set_iteration_cap
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void ComputeConsensus(benchmark::State& state, const bool approx,\n
      \                     const bool seed_medoid, const int iteration_cap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::ComputeMedoid
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 6
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: s2polyline_alignment::BM_ComputeMedoid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::ComputeMedoid
    linkageType: ''
    returnType: void
    signature: void BM_ComputeMedoid(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::ComputeConsensus
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 6
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: s2polyline_alignment::BM_ComputeConsensusUnseeded
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::ComputeConsensus
    linkageType: ''
    returnType: void
    signature: void BM_ComputeConsensusUnseeded(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2polyline_alignment::ComputeConsensus
      Src: /src/s2geometry/src/s2/s2polyline_alignment_test.cc:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 6
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: s2polyline_alignment::BM_ComputeConsensusSeeded
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
    functionUses: 0
    functionsReached:
    - s2polyline_alignment::ComputeConsensus
    linkageType: ''
    returnType: void
    signature: void BM_ComputeConsensusSeeded(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:74,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:75,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:77,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:78,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:80,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: s2builderutil::NormalizeTest::NormalizeTest
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - push_back
    linkageType: ''
    returnType: void
    signature: void NormalizeTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClosedSetNormalizer::Options::set_suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:101,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:104,1
    - Dst: s2builderutil::NormalizeTest::AddLayers
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:106,1
    - Dst: ClosedSetNormalizer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:106,1
    - Dst: s2builderutil::NormalizeTest::AddLayers
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:107,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:108,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:110,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:110,1
    - Dst: ClosedSetNormalizer::Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:114,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:114,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:115,1
    - Dst: s2builderutil::NormalizeTest::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:115,1
    - Dst: s2builderutil::NormalizeTest::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - input_str
    - expected_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: s2builderutil::NormalizeTest::Run
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - ClosedSetNormalizer::graph_options
    - s2builderutil::NormalizeTest::ToString
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - ClosedSetNormalizer::Run
    - options
    - S2Builder::Build
    - EXPECT_EQ
    - s2builderutil::NormalizeTest::AddLayers
    - ClosedSetNormalizer::Options::set_suppress_lower_dimensions
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void NormalizeTest::Run(string_view input_str, string_view expected_str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:122,1
    - Dst: S2Builder*::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:124,1
    - Dst: make_unique<GraphAppendingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:124,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:127,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:128,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:130,1
    - Dst: S2Builder*::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - str
    - graph_options
    - graphs_out
    - builder
    argTypes:
    - string_view
    - absl::Span<const GraphOptions>
    - vector<Graph>*
    - S2Builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: s2builderutil::NormalizeTest::AddLayers
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 1
    functionsReached:
    - num_edges
    - make_unique<GraphAppendingLayer>
    - S2Builder*::AddEdge
    - dimension
    - edge
    - S2Builder*::StartLayer
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: "void NormalizeTest::AddLayers(string_view str,\n                              absl::Span<const
      GraphOptions> graph_options,\n                              vector<Graph>* graphs_out,
      S2Builder* builder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:139,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:140,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:141,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: s2builderutil::NormalizeTest::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 1
    functionsReached:
    - vertex
    - s2textformat::ToString
    - edges
    linkageType: ''
    returnType: string
    signature: string NormalizeTest::ToString(const Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClosedSetNormalizer::Options::set_suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:152,1
    - Dst: ClosedSetNormalizer::options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ClosedSetNormalizer::options
    - ClosedSetNormalizer::Options::set_suppress_lower_dimensions
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, OptionsAccessorSuppressLowerDimensionsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClosedSetNormalizer::Options::set_suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:157,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:159,1
    - Dst: ClosedSetNormalizer::options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - ClosedSetNormalizer::Options::set_suppress_lower_dimensions
    - ClosedSetNormalizer::options
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, OptionsAccessorSuppressLowerDimensionsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, EmptyGraphs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, NonDegenerateInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, SiblingPairShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, SiblingPairHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:197,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointSuppressedByPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:205,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointSuppressedByPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:213,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointShellSuppressedByPolylineEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:219,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PolylineEdgeSuppressedByPolygonEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:225,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:226,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    - set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PolylineEdgeSuppressedByReversePolygonEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:235,1
    - Dst: set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:238,1
    - Dst: set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:239,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    - set_duplicate_edges
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, DuplicateEdgeMerging)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IndexedS2PolylineVectorLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:248,1
    - Dst: IndexedS2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:249,1
    - Dst: IndexedS2PolylineVectorLayer::Options::set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:250,1
    - Dst: make_unique<IndexedS2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:252,1
    - Dst: make_unique<IndexedS2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:253,1
    - Dst: make_unique<IndexedS2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:255,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - index
    - absl_nonnull
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - MutableS2ShapeIndex*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 259
    functionName: s2builderutil::ComputeUnion
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<IndexedS2PointVectorLayer>
    - make_unique<IndexedS2PolygonLayer>
    - IndexedS2PolylineVectorLayer::Options::set_duplicate_edges
    - S2BooleanOperation::Build
    - IndexedS2PolylineVectorLayer::Options::set_edge_type
    - make_unique<IndexedS2PolylineVectorLayer>
    - IndexedS2PolylineVectorLayer::Options::set_polyline_type
    linkageType: ''
    returnType: bool
    signature: "bool ComputeUnion(const S2ShapeIndex& a, const S2ShapeIndex& b,\n
      \                 MutableS2ShapeIndex* index, S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:268,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:272,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:276,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:277,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:278,1
    - Dst: s2builderutil::ComputeUnion
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:279,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_TRUE
    - s2builderutil::ComputeUnion
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(ComputeUnion, MixedGeometry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:74,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:75,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:77,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:78,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:80,1
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: s2builderutil::NormalizeTest::NormalizeTest
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    - push_back
    linkageType: ''
    returnType: void
    signature: void NormalizeTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClosedSetNormalizer::Options::set_suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:101,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:104,1
    - Dst: s2builderutil::NormalizeTest::AddLayers
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:106,1
    - Dst: ClosedSetNormalizer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:106,1
    - Dst: s2builderutil::NormalizeTest::AddLayers
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:107,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:108,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:110,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:110,1
    - Dst: ClosedSetNormalizer::Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:114,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:114,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:115,1
    - Dst: s2builderutil::NormalizeTest::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:115,1
    - Dst: s2builderutil::NormalizeTest::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - input_str
    - expected_str
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: s2builderutil::NormalizeTest::Run
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - ClosedSetNormalizer::graph_options
    - s2builderutil::NormalizeTest::ToString
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - ClosedSetNormalizer::Run
    - options
    - S2Builder::Build
    - EXPECT_EQ
    - s2builderutil::NormalizeTest::AddLayers
    - ClosedSetNormalizer::Options::set_suppress_lower_dimensions
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void NormalizeTest::Run(string_view input_str, string_view expected_str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:122,1
    - Dst: S2Builder*::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:124,1
    - Dst: make_unique<GraphAppendingLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:124,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:127,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:128,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:130,1
    - Dst: S2Builder*::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - str
    - graph_options
    - graphs_out
    - builder
    argTypes:
    - string_view
    - absl::Span<const GraphOptions>
    - vector<Graph>*
    - S2Builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: s2builderutil::NormalizeTest::AddLayers
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 2
    functionsReached:
    - num_edges
    - make_unique<GraphAppendingLayer>
    - S2Builder*::AddEdge
    - dimension
    - edge
    - S2Builder*::StartLayer
    - s2textformat::MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: "void NormalizeTest::AddLayers(string_view str,\n                              absl::Span<const
      GraphOptions> graph_options,\n                              vector<Graph>* graphs_out,
      S2Builder* builder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:139,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:140,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:141,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Graph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: s2builderutil::NormalizeTest::ToString
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 2
    functionsReached:
    - vertex
    - s2textformat::ToString
    - edges
    linkageType: ''
    returnType: string
    signature: string NormalizeTest::ToString(const Graph& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClosedSetNormalizer::Options::set_suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:152,1
    - Dst: ClosedSetNormalizer::options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ClosedSetNormalizer::options
    - ClosedSetNormalizer::Options::set_suppress_lower_dimensions
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, OptionsAccessorSuppressLowerDimensionsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClosedSetNormalizer::Options::set_suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:157,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:159,1
    - Dst: ClosedSetNormalizer::options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - ClosedSetNormalizer::Options::set_suppress_lower_dimensions
    - ClosedSetNormalizer::options
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, OptionsAccessorSuppressLowerDimensionsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, EmptyGraphs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, NonDegenerateInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, SiblingPairShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, SiblingPairHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:197,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointSuppressedByPolygonVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:205,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointSuppressedByPolylineVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:213,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PointShellSuppressedByPolylineEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:219,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PolylineEdgeSuppressedByPolygonEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:225,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:226,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    - set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, PolylineEdgeSuppressedByReversePolygonEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:235,1
    - Dst: set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:238,1
    - Dst: set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:239,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: s2builderutil::TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Run
    - set_duplicate_edges
    linkageType: ''
    returnType: void
    signature: void TEST_F(NormalizeTest, DuplicateEdgeMerging)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IndexedS2PolylineVectorLayer::Options::set_edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:248,1
    - Dst: IndexedS2PolylineVectorLayer::Options::set_polyline_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:249,1
    - Dst: IndexedS2PolylineVectorLayer::Options::set_duplicate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:250,1
    - Dst: make_unique<IndexedS2PointVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:252,1
    - Dst: make_unique<IndexedS2PolylineVectorLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:253,1
    - Dst: make_unique<IndexedS2PolygonLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:255,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - index
    - absl_nonnull
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - MutableS2ShapeIndex*
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 259
    functionName: s2builderutil::ComputeUnion
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 1
    functionsReached:
    - make_unique<IndexedS2PointVectorLayer>
    - make_unique<IndexedS2PolygonLayer>
    - IndexedS2PolylineVectorLayer::Options::set_duplicate_edges
    - S2BooleanOperation::Build
    - IndexedS2PolylineVectorLayer::Options::set_edge_type
    - make_unique<IndexedS2PolylineVectorLayer>
    - IndexedS2PolylineVectorLayer::Options::set_polyline_type
    linkageType: ''
    returnType: bool
    signature: "bool ComputeUnion(const S2ShapeIndex& a, const S2ShapeIndex& b,\n
      \                 MutableS2ShapeIndex* index, S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:268,1
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:272,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:276,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:277,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:278,1
    - Dst: s2builderutil::ComputeUnion
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:279,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: s2builderutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
    functionUses: 0
    functionsReached:
    - s2textformat::ToString
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_TRUE
    - s2builderutil::ComputeUnion
    - EXPECT_EQ
    - s2textformat::MakeIndexOrDie
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(ComputeUnion, MixedGeometry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:73,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:76,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:81,1
    - Dst: Graph::label_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:82,1
    - Dst: Graph::label_set_id
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:82,1
    - Dst: IdSetLexicon::EmptySetId
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:83,1
    - Dst: Graph::labels
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:83,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:86,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:87,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - Graph::label_set_id
    - IdSetLexicon::IdSetLexicon
    - Graph::labels
    - EXPECT_TRUE
    - S2Point
    - Graph::LabelFetcher::Fetch
    - Graph::label_set_ids
    - vector::empty
    - EXPECT_EQ
    - IdSetLexicon::EmptySetId
    linkageType: ''
    returnType: void
    signature: void TEST(Graph, LabelsRequestedButNotProvided)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:92,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:96,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:96,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:97,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:97,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:98,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:98,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:99,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:99,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:101,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:101,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:102,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:104,1
    - Dst: GetDirectedLoops
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:104,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:105,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:106,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:107,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:108,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 109
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - ASSERT_EQ
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - size
    - GetDirectedLoops
    - S2Builder::AddShape
    - vector::size
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - ASSERT_TRUE
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetDirectedLoops, DegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:113,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:117,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:117,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:118,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:118,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:119,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:119,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:120,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:121,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:121,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:122,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:124,1
    - Dst: GetDirectedComponents
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:126,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:127,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:128,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:129,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:130,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:131,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 132
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - ASSERT_EQ
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - size
    - S2Builder::AddShape
    - vector::size
    - GetDirectedComponents
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - ASSERT_TRUE
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetDirectedComponents, DegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:136,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:140,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:140,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:141,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:141,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:142,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:142,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:143,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:143,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:144,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:145,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:145,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:149,1
    - Dst: VertexOutMap::edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:149,1
    - Dst: VertexOutMap::edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:152,1
    - Dst: VertexOutEdgeIds::begin
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:153,1
    - Dst: VertexOutEdgeIds::end
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 160
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - VertexOutMap::edge_ids
    - MakeLaxPolylineOrDie
    - VertexOutEdgeIds::end
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - VertexOutEdgeIds::begin
    - S2Builder::AddShape
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - EXPECT_EQ
    - GraphClone::graph
    - VertexOutMap::edges
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2BuilderGraph, BasicVertexOutApi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:164,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:168,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:168,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:169,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:169,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:170,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:170,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:171,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:172,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:172,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:173,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:175,1
    - Dst: GetUndirectedComponents
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:175,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:181,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:182,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:182,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:183,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:184,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:185,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:186,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:187,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:188,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:189,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 190
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - ASSERT_EQ
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - size
    - S2Builder::AddShape
    - GetUndirectedComponents
    - vector::size
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - ASSERT_TRUE
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetUndirectedComponents, DegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:194,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:198,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:198,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:199,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:199,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:200,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:200,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:201,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:201,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:202,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:203,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:203,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:204,1
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:205,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:206,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - auto::size
    - S2Builder::AddShape
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - GetPolylines
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetPolylines, UndirectedDegeneratePaths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:211,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:215,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:215,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:216,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:216,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:217,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:217,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:218,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:218,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:219,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:220,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:220,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:221,1
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:223,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:224,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:225,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - size
    - auto::size
    - S2Builder::AddShape
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - GetPolylines
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetPolylines, UndirectedDegenerateWalks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:242,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:244,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:244,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:245,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:245,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:247,1
    - Dst: Graph::ProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:250,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: absl::Span<const TestEdge>::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:252,1
    - Dst: ASSERT_LT
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:254,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:254,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:255,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:255,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:256,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:257,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:257,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:258,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    - Dst: absl::Span<const TestEdge>::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - input
    - expected
    - options
    argTypes:
    - absl::Span<const TestEdge>
    - absl::Span<const TestEdge>
    - GraphOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 261
    functionName: s2builder::TestProcessEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Graph::ProcessEdges
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - absl::Span<const TestEdge>::size
    - auto::end
    - IdSetLexicon::Add
    - ASSERT_LT
    - IdSetLexicon::id_set
    - auto::begin
    - S2Error::code
    - EXPECT_EQ
    - Edge
    - vector::size
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestProcessEdges(absl::Span<const TestEdge> input,\n                      absl::Span<const
      TestEdge> expected,\n                      GraphOptions* options,\n                      S2Error::Code
      expected_code = S2Error::OK)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:242,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:244,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:244,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:245,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:245,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:247,1
    - Dst: Graph::ProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:250,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: absl::Span<const TestEdge>::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:252,1
    - Dst: ASSERT_LT
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:254,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:254,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:255,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:255,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:256,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:257,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:257,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:258,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    - Dst: absl::Span<const TestEdge>::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - input
    - expected
    - options
    argTypes:
    - absl::Span<const TestEdge>
    - absl::Span<const TestEdge>
    - GraphOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 261
    functionName: s2builder::TestProcessEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Graph::ProcessEdges
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - absl::Span<const TestEdge>::size
    - auto::end
    - IdSetLexicon::Add
    - ASSERT_LT
    - IdSetLexicon::id_set
    - auto::begin
    - S2Error::code
    - EXPECT_EQ
    - Edge
    - vector::size
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestProcessEdges(absl::Span<const TestEdge> input,\n                      absl::Span<const
      TestEdge> expected,\n                      GraphOptions* options,\n                      S2Error::Code
      expected_code = S2Error::OK)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, KeepDuplicateDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, MergeDuplicateDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, MergeUndirectedDuplicateDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:299,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 300
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, ConvertedUndirectedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:306,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:308,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 309
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, MergeConvertedUndirectedDuplicateDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:317,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:318,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:319,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 321
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessConnectedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessIsolatedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessUndirectedIsolatedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:347,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 348
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessConvertedUndirectedIsolatedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:357,1
    - Dst: GraphOptions::set_sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:360,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 364
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    - GraphOptions::set_sibling_pairs
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, SiblingPairsDiscardMergesDegenerateEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, KeepSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, MergeDuplicateSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:382,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:383,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:384,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 388
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:395,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:396,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardSiblingPairsMergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:406,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:407,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardUndirectedSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:417,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:418,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:420,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 424
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:431,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:433,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessSiblingPairsMergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:442,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:443,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 447
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessUndirectedSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:452,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, CreateSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:461,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 464
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, RequireSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:474,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:474,1
    - Dst: GraphOptions::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:476,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:479,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:479,1
    - Dst: GraphOptions::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:481,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:484,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    - GraphOptions::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, CreateUndirectedSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:490,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 492
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, CreateSiblingPairsMergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:499,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:499,1
    - Dst: GraphOptions::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:501,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:502,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:504,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 505
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    - GraphOptions::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, CreateUndirectedSiblingPairsMergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:516,1
    - Dst: MakeSubgraph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:517,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:522,1
    - Dst: Graph::vertices
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:522,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:522,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:523,1
    - Dst: Graph::label_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:523,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:523,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:524,1
    - Dst: Graph::label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:524,1
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:524,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:527,1
    - Dst: Graph::edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:527,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:528,1
    - Dst: Graph::input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:528,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:529,1
    - Dst: Graph::input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:529,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:533,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:533,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:533,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:534,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:534,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:535,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:536,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:536,1
    - Dst: duplicate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:537,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:538,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:538,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:538,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:541,1
    - Dst: Graph::edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:541,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:542,1
    - Dst: Graph::input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:543,1
    - Dst: Graph::input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 8
    argNames:
    - ' g'
    - new_input_edge_id_set_lexicon
    - new_options
    - new_edges
    - new_input_edge_id_set_ids
    - ' expected_options'
    - ' expected_edges'
    - ' expected_input_edge_id_set_ids'
    argTypes:
    - Graph
    - IdSetLexicon
    - GraphOptions
    - vector<Edge>
    - vector<InputEdgeIdSetId>
    - GraphOptions
    - vector<Edge>
    - vector<InputEdgeIdSetId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 545
    functionName: s2builder::TestMakeSubgraph
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - Graph::input_edge_id_set_ids
    - edge_type
    - label_set_ids
    - EXPECT_TRUE
    - Graph::vertices
    - Graph::label_set_ids
    - duplicate_edges
    - EXPECT_EQ
    - vertices
    - Graph::edges
    - label_set_lexicon
    - Graph::options
    - Graph::input_edge_id_set_lexicon
    - S2Error::S2Error
    - degenerate_edges
    - sibling_pairs
    - Graph::label_set_lexicon
    - MakeSubgraph
    linkageType: ''
    returnType: void
    signature: "void TestMakeSubgraph(\n    const Graph& g,\n    IdSetLexicon new_input_edge_id_set_lexicon,\n
      \   GraphOptions new_options,\n    vector<Edge> new_edges,\n    vector<InputEdgeIdSetId>
      new_input_edge_id_set_ids,\n    const GraphOptions& expected_options,\n    const
      vector<Edge>& expected_edges,\n    const vector<InputEdgeIdSetId>& expected_input_edge_id_set_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:552,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:556,1
    - Dst: s2builder::TestMakeSubgraph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 570
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestMakeSubgraph
    - IdSetLexicon::IdSetLexicon
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(MakeSubgraph, UndirectedToUndirected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:577,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:581,1
    - Dst: IdSetLexicon::EmptySetId
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:595,1
    - Dst: s2builder::TestMakeSubgraph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 601
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestMakeSubgraph
    - IdSetLexicon::IdSetLexicon
    - ParsePointsOrDie
    - IdSetLexicon::EmptySetId
    linkageType: ''
    returnType: void
    signature: void TEST(MakeSubgraph, DirectedToUndirected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:73,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:76,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:81,1
    - Dst: Graph::label_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:82,1
    - Dst: Graph::label_set_id
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:82,1
    - Dst: IdSetLexicon::EmptySetId
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:83,1
    - Dst: Graph::labels
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:83,1
    - Dst: Graph::LabelFetcher::Fetch
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:86,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:87,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - Graph::label_set_id
    - IdSetLexicon::IdSetLexicon
    - Graph::labels
    - EXPECT_TRUE
    - S2Point
    - Graph::LabelFetcher::Fetch
    - Graph::label_set_ids
    - vector::empty
    - EXPECT_EQ
    - IdSetLexicon::EmptySetId
    linkageType: ''
    returnType: void
    signature: void TEST(Graph, LabelsRequestedButNotProvided)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:92,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:96,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:96,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:97,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:97,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:98,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:98,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:99,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:99,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:101,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:101,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:102,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:104,1
    - Dst: GetDirectedLoops
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:104,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:105,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:106,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:107,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:108,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 109
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - ASSERT_EQ
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - size
    - GetDirectedLoops
    - S2Builder::AddShape
    - vector::size
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - ASSERT_TRUE
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetDirectedLoops, DegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:113,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:117,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:117,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:118,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:118,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:119,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:119,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:120,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:121,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:121,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:122,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:124,1
    - Dst: GetDirectedComponents
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:126,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:127,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:128,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:129,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:130,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:131,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 132
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - ASSERT_EQ
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - size
    - S2Builder::AddShape
    - vector::size
    - GetDirectedComponents
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - ASSERT_TRUE
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetDirectedComponents, DegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:136,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:140,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:140,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:141,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:141,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:142,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:142,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:143,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:143,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:144,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:145,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:145,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:149,1
    - Dst: VertexOutMap::edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:149,1
    - Dst: VertexOutMap::edge_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:152,1
    - Dst: VertexOutEdgeIds::begin
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:153,1
    - Dst: VertexOutEdgeIds::end
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 160
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - VertexOutMap::edge_ids
    - MakeLaxPolylineOrDie
    - VertexOutEdgeIds::end
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - VertexOutEdgeIds::begin
    - S2Builder::AddShape
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - EXPECT_EQ
    - GraphClone::graph
    - VertexOutMap::edges
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2BuilderGraph, BasicVertexOutApi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:164,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:168,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:168,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:169,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:169,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:170,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:170,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:171,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:172,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:172,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:173,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:175,1
    - Dst: GetUndirectedComponents
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:175,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:181,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:182,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:182,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:183,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:184,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:185,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:186,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:187,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:188,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:189,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 190
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - ASSERT_EQ
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - size
    - S2Builder::AddShape
    - GetUndirectedComponents
    - vector::size
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - ASSERT_TRUE
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetUndirectedComponents, DegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:194,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:198,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:198,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:199,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:199,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:200,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:200,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:201,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:201,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:202,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:203,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:203,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:204,1
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:205,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:206,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - auto::size
    - S2Builder::AddShape
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - GetPolylines
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetPolylines, UndirectedDegeneratePaths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:211,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:215,1
    - Dst: make_unique<GraphCloningLayer>
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:215,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:216,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:216,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:217,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:217,1
    - Dst: S2Builder::AddShape
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:218,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:218,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:219,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:220,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:220,1
    - Dst: GraphClone::graph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:221,1
    - Dst: GetPolylines
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:223,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:224,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:225,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - size
    - auto::size
    - S2Builder::AddShape
    - make_unique<GraphCloningLayer>
    - S2Builder::Build
    - GetPolylines
    - EXPECT_EQ
    - GraphClone::graph
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(GetPolylines, UndirectedDegenerateWalks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:242,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:244,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:244,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:245,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:245,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:247,1
    - Dst: Graph::ProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:250,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: absl::Span<const TestEdge>::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:252,1
    - Dst: ASSERT_LT
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:254,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:254,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:255,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:255,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:256,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:257,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:257,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:258,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    - Dst: absl::Span<const TestEdge>::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - input
    - expected
    - options
    argTypes:
    - absl::Span<const TestEdge>
    - absl::Span<const TestEdge>
    - GraphOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 261
    functionName: s2builder::TestProcessEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 24
    functionsReached:
    - vector::push_back
    - Graph::ProcessEdges
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - absl::Span<const TestEdge>::size
    - auto::end
    - IdSetLexicon::Add
    - ASSERT_LT
    - IdSetLexicon::id_set
    - auto::begin
    - S2Error::code
    - EXPECT_EQ
    - Edge
    - vector::size
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestProcessEdges(absl::Span<const TestEdge> input,\n                      absl::Span<const
      TestEdge> expected,\n                      GraphOptions* options,\n                      S2Error::Code
      expected_code = S2Error::OK)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:242,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:244,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:244,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:245,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:245,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:247,1
    - Dst: Graph::ProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:250,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:251,1
    - Dst: absl::Span<const TestEdge>::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:252,1
    - Dst: ASSERT_LT
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:254,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:254,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:255,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:255,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:256,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:257,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:257,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:258,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    - Dst: absl::Span<const TestEdge>::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - input
    - expected
    - options
    argTypes:
    - absl::Span<const TestEdge>
    - absl::Span<const TestEdge>
    - GraphOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 261
    functionName: s2builder::TestProcessEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 24
    functionsReached:
    - vector::push_back
    - Graph::ProcessEdges
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - absl::Span<const TestEdge>::size
    - auto::end
    - IdSetLexicon::Add
    - ASSERT_LT
    - IdSetLexicon::id_set
    - auto::begin
    - S2Error::code
    - EXPECT_EQ
    - Edge
    - vector::size
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestProcessEdges(absl::Span<const TestEdge> input,\n                      absl::Span<const
      TestEdge> expected,\n                      GraphOptions* options,\n                      S2Error::Code
      expected_code = S2Error::OK)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, KeepDuplicateDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, MergeDuplicateDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, MergeUndirectedDuplicateDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:299,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 300
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, ConvertedUndirectedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:306,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:308,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 309
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, MergeConvertedUndirectedDuplicateDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:317,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:318,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:319,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 321
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessConnectedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessIsolatedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessUndirectedIsolatedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:347,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 348
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessConvertedUndirectedIsolatedDegenerateEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:357,1
    - Dst: GraphOptions::set_sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:360,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 364
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    - GraphOptions::set_sibling_pairs
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, SiblingPairsDiscardMergesDegenerateEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, KeepSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, MergeDuplicateSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:382,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:383,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:384,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 388
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:395,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:396,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardSiblingPairsMergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:406,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:407,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardUndirectedSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:417,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:418,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:420,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 424
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:431,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:433,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessSiblingPairsMergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:442,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:443,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 447
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, DiscardExcessUndirectedSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:452,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, CreateSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:461,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 464
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, RequireSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:474,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:474,1
    - Dst: GraphOptions::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:476,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:479,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:479,1
    - Dst: GraphOptions::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:481,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:484,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    - GraphOptions::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, CreateUndirectedSiblingPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:490,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 492
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestProcessEdges
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, CreateSiblingPairsMergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:499,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:499,1
    - Dst: GraphOptions::set_edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:501,1
    - Dst: s2builder::TestProcessEdges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:502,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:504,1
    - Dst: GraphOptions::edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 505
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - s2builder::TestProcessEdges
    - GraphOptions::edge_type
    - GraphOptions::set_edge_type
    linkageType: ''
    returnType: void
    signature: void TEST(ProcessEdges, CreateUndirectedSiblingPairsMergeDuplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:516,1
    - Dst: MakeSubgraph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:517,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:522,1
    - Dst: Graph::vertices
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:522,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:522,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:523,1
    - Dst: Graph::label_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:523,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:523,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:524,1
    - Dst: Graph::label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:524,1
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:524,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:527,1
    - Dst: Graph::edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:527,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:528,1
    - Dst: Graph::input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:528,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:529,1
    - Dst: Graph::input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:529,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:533,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:533,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:533,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:534,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:534,1
    - Dst: degenerate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:535,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:536,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:536,1
    - Dst: duplicate_edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:537,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:538,1
    - Dst: Graph::options
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:538,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:538,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:541,1
    - Dst: Graph::edges
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:541,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:542,1
    - Dst: Graph::input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:543,1
    - Dst: Graph::input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 8
    argNames:
    - ' g'
    - new_input_edge_id_set_lexicon
    - new_options
    - new_edges
    - new_input_edge_id_set_ids
    - ' expected_options'
    - ' expected_edges'
    - ' expected_input_edge_id_set_ids'
    argTypes:
    - Graph
    - IdSetLexicon
    - GraphOptions
    - vector<Edge>
    - vector<InputEdgeIdSetId>
    - GraphOptions
    - vector<Edge>
    - vector<InputEdgeIdSetId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 545
    functionName: s2builder::TestMakeSubgraph
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 2
    functionsReached:
    - Graph::input_edge_id_set_ids
    - edge_type
    - label_set_ids
    - EXPECT_TRUE
    - Graph::vertices
    - Graph::label_set_ids
    - duplicate_edges
    - EXPECT_EQ
    - vertices
    - Graph::edges
    - label_set_lexicon
    - Graph::options
    - Graph::input_edge_id_set_lexicon
    - S2Error::S2Error
    - degenerate_edges
    - sibling_pairs
    - Graph::label_set_lexicon
    - MakeSubgraph
    linkageType: ''
    returnType: void
    signature: "void TestMakeSubgraph(\n    const Graph& g,\n    IdSetLexicon new_input_edge_id_set_lexicon,\n
      \   GraphOptions new_options,\n    vector<Edge> new_edges,\n    vector<InputEdgeIdSetId>
      new_input_edge_id_set_ids,\n    const GraphOptions& expected_options,\n    const
      vector<Edge>& expected_edges,\n    const vector<InputEdgeIdSetId>& expected_input_edge_id_set_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:552,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:556,1
    - Dst: s2builder::TestMakeSubgraph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 570
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestMakeSubgraph
    - IdSetLexicon::IdSetLexicon
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(MakeSubgraph, UndirectedToUndirected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:577,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:581,1
    - Dst: IdSetLexicon::EmptySetId
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:595,1
    - Dst: s2builder::TestMakeSubgraph
      Src: /src/s2geometry/src/s2/s2builder_graph_test.cc:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 601
    functionName: s2builder::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builder_graph_test.cc
    functionUses: 0
    functionsReached:
    - s2builder::TestMakeSubgraph
    - IdSetLexicon::IdSetLexicon
    - ParsePointsOrDie
    - IdSetLexicon::EmptySetId
    linkageType: ''
    returnType: void
    signature: void TEST(MakeSubgraph, DirectedToUndirected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:77,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: S2CellUnionTestPeer::FromVerbatimNoChecks
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - S2CellUnion
    linkageType: ''
    returnType: S2CellUnion
    signature: S2CellUnion FromVerbatimNoChecks(vector<S2CellId> cell_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:84,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellUnion::empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, DefaultConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:88,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:89,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:89,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:92,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Eq
    - EXPECT_THAT
    - S2CellUnion::size
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, CopyableConstructable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:96,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:97,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:97,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:99,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:101,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Eq
    - EXPECT_THAT
    - S2CellUnion::S2CellUnion
    - S2CellUnion::size
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, CopyableAssignable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:105,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:106,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:106,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:109,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:109,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:109,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Eq
    - EXPECT_THAT
    - S2CellUnion::size
    - S2CellId::FromFace
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, MoveConstructable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:113,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:114,1
    - Dst: S2CellUnion::size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:114,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:116,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:117,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:118,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:118,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:118,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Eq
    - std::move
    - EXPECT_THAT
    - S2CellUnion::S2CellUnion
    - S2CellUnion::size
    - S2CellId::FromFace
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, MoveAssignable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:124,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:125,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellUnion::cell_id
    - S2CellUnion::num_cells
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, S2CellIdConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::WholeSphere
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:130,1
    - Dst: S2CellUnion::LeafCellsCovered
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:130,1
    - Dst: S2CellUnion::Expand
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:132,1
    - Dst: S2CellUnion::WholeSphere
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellUnion::WholeSphere
    - S2CellUnion::Expand
    - S2CellUnion::LeafCellsCovered
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, WholeSphere)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:136,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:136,1
    - Dst: S2CellUnionTestPeer::FromVerbatimNoChecks
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:137,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:139,1
    - Dst: auto::IsValid
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - auto::IsValid
    - S2Point
    - S2CellUnionTestPeer::FromVerbatimNoChecks
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, DuplicateCellsNotValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:143,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:143,1
    - Dst: S2CellUnionTestPeer::FromVerbatimNoChecks
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:144,1
    - Dst: S2CellId::prev
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:145,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:146,1
    - Dst: auto::IsValid
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - auto::IsValid
    - S2Point
    - S2CellUnionTestPeer::FromVerbatimNoChecks
    - S2CellId::prev
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, UnsortedCellsNotValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:150,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:150,1
    - Dst: S2CellUnionTestPeer::FromVerbatimNoChecks
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:152,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:152,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:153,1
    - Dst: auto::IsValid
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - auto::IsValid
    - S2CellUnionTestPeer::FromVerbatimNoChecks
    - ASSERT_FALSE
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, InvalidCellIdNotValid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:159,1
    - Dst: absl::SetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:160,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:161,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:161,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:162,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:163,1
    - Dst: auto::IsValid
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:163,1
    - Dst: absl::SetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - auto::IsValid
    - absl::SetFlag
    - ASSERT_FALSE
    - S2CellUnion::FromVerbatim
    - absl::GetFlag
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, InvalidCellIdNotValidWithDebugFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:168,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:168,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:169,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:170,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:170,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:170,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:170,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:171,1
    - Dst: auto::IsValid
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:171,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:172,1
    - Dst: auto::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - auto::IsNormalized
    - S2CellId
    - EXPECT_TRUE
    - S2Point
    - auto::IsValid
    - S2CellUnion::FromVerbatim
    - EXPECT_FALSE
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, IsNormalized)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:184,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:187,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:187,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:191,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:195,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:196,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:203,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:203,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:207,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:219,1
    - Dst: vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:220,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:224,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:225,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:234,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:236,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:242,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 5
    argNames:
    - bitgen
    - id
    - selected
    - input
    - expected
    argTypes:
    - absl::BitGenRef
    - S2CellId
    - bool
    - vector<S2CellId>*
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 244
    functionName: AddCells
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 5
    functionsReached:
    - S2CellId::is_leaf
    - vector<S2CellId>*::push_back
    - AddCells
    - S2CellId::None
    - absl::Bernoulli
    - S2CellId::level
    - S2CellId::next
    - S2CellId::child_begin
    - S2CellId::FromFace
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void AddCells(absl::BitGenRef bitgen, S2CellId id, bool selected,\n
      \                    vector<S2CellId>* input, vector<S2CellId>* expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:250,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:251,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:253,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:256,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:256,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:257,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:258,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - AddCells
    - S2CellId::None
    - size
    - vector::size
    - absl::PrintF
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, AddCellsSizes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:265,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:266,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:267,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:270,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:270,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:272,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:272,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - AddCells
    - S2CellId::None
    - S2CellUnion::cell_ids
    - EXPECT_THAT
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, ContainsExpectedCells)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:277,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:278,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:279,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:282,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:282,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:288,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:288,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:289,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:289,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:289,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:290,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:290,1
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:291,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:292,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:292,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:292,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:293,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:294,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:294,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:294,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:295,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:295,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:295,1
    - Dst: is_leaf
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:298,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:299,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:299,1
    - Dst: child_begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:299,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:300,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:300,1
    - Dst: child_begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:300,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:301,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:301,1
    - Dst: child_end
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:301,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:302,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:302,1
    - Dst: child_end
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:302,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:303,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:303,1
    - Dst: child_begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:304,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:305,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:305,1
    - Dst: child_begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 310
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Intersects
    - ToPoint
    - is_face
    - level
    - AddCells
    - S2CellId::None
    - child_end
    - EXPECT_TRUE
    - child_begin
    - is_leaf
    - absl::LogInfoStreamer
    - S2CellUnion::Contains
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - parent
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, ContainsInputCells)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:314,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:315,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:316,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:319,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:319,1
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:323,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:324,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:324,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:324,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:325,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:325,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 329
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - is_face
    - AddCells
    - S2CellId::None
    - EXPECT_TRUE
    - absl::LogInfoStreamer
    - S2CellUnion::Contains
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - parent
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, DoesNotContainParentsOfExpectedCell)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:333,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:333,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:334,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:337,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:337,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:343,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:344,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:345,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:346,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:347,1
    - Dst: S2CellUnion::Union
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:352,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:353,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 355
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - Eq
    - AddCells
    - S2CellId::None
    - absl::Bernoulli
    - S2CellUnion::Union
    - EXPECT_THAT
    - push_back
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, UnionIsOr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:358,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:359,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:360,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:363,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:363,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:369,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:369,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:370,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:370,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:379,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:381,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:384,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:384,1
    - Dst: ElementsAre
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:384,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:387,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:388,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:388,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:394,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:394,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:396,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:396,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:397,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:398,1
    - Dst: ToToken
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:399,1
    - Dst: ToToken
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:399,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:401,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:401,1
    - Dst: S2CellUnion::begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:401,1
    - Dst: S2CellUnion::end
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:401,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:404,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:405,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:405,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 407
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - absl::Bernoulli
    - end
    - S2CellUnion::Contains
    - insert
    - S2CellUnion::begin
    - AddCells
    - S2CellUnion::end
    - vector::push_back
    - S2CellUnion::Intersection
    - ToToken
    - S2CellId::None
    - S2CellUnion::cell_ids
    - EXPECT_TRUE
    - s2textformat::ToString
    - absl::GetFlag
    - push_back
    - S2Testing::MakeTaggedSeedSeq
    - Eq
    - EXPECT_THAT
    - absl::LogInfoStreamer
    - ElementsAre
    - contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, IntersectionIsAnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeCellUnionOrDie
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:411,1
    - Dst: s2textformat::MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:412,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:413,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:414,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:414,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:414,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:415,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 416
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2CellUnion::Intersection
    - S2CellUnion::cell_ids
    - EXPECT_THAT
    - IsEmpty
    - s2textformat::MakeCellUnionOrDie
    - S2CellUnion::Contains
    - s2textformat::MakeCellIdOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, IntersectionWithCellIdNotInUnionIsEmpty)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:419,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:420,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:421,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:424,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:424,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:430,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:430,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:431,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:431,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:436,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:437,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:438,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:438,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:439,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:439,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:440,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:440,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:441,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:441,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:442,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 444
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2CellUnion::Intersects
    - AddCells
    - S2CellId::None
    - absl::Bernoulli
    - EXPECT_TRUE
    - S2CellUnion::Difference
    - push_back
    - absl::LogInfoStreamer
    - S2CellUnion::Contains
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, DifferenceIsXAndNotY)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:447,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:448,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:449,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:452,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:452,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:458,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:458,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:459,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:459,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:464,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:465,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:466,1
    - Dst: S2CellUnion::Union
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:467,1
    - Dst: S2CellUnion::Union
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:470,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:471,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 473
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2CellUnion::Intersection
    - Eq
    - AddCells
    - S2CellId::None
    - absl::Bernoulli
    - S2CellUnion::Union
    - EXPECT_THAT
    - S2CellUnion::Difference
    - push_back
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, DifferenceInclusionExclusion)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:476,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:477,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:478,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:481,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:481,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:486,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:486,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:491,1
    - Dst: intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:492,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:494,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:494,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:495,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 475
    functionDepth: 4
    functionLinenumber: 475
    functionLinenumberEnd: 498
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Intersects
    - AddCells
    - S2CellId::None
    - intersects
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2CellUnion::Contains
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    - contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, ContainsIntersectsBruteForce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:501,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:502,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:503,1
    - Dst: AddCells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:506,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:506,1
    - Dst: S2CellUnion::GetCapBound
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:509,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:511,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:511,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 500
    functionDepth: 4
    functionLinenumber: 500
    functionLinenumberEnd: 516
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - AddCells
    - S2CellId::None
    - EXPECT_TRUE
    - S2Cell
    - S2Cap::Contains
    - S2CellUnion::GetCapBound
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, CapBoundContainsAllCells)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:525,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:526,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:536,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:536,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:537,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:539,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' covering'
    - ' axis'
    argTypes:
    - S2CellUnion
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 545
    functionName: GetRadius
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 27
    functionsReached:
    - S2Point::Angle
    - S2Cell::GetVertex
    - max
    - S2::GetDistance
    linkageType: ''
    returnType: double
    signature: double GetRadius(const S2CellUnion& covering, const S2Point& axis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:553,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:553,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:555,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:556,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:558,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:558,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:559,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:559,1
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:564,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:565,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:566,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:566,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:566,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:568,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:568,1
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:568,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:569,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:573,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:574,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:575,1
    - Dst: S2Testing::CheckCovering
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:576,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:577,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:577,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:583,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:583,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:585,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:586,1
    - Dst: S2CellUnion::Expand
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:590,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:590,1
    - Dst: S2Testing::CheckCovering
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:591,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:592,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:592,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:597,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 547
    functionDepth: 7
    functionLinenumber: 547
    functionLinenumberEnd: 600
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - S2Cap::height
    - S2RegionCoverer::mutable_options
    - GetLevelForMinValue
    - s2random::Cap
    - S2Cell::AverageArea
    - S1Angle::Radians
    - min
    - GetRadius
    - level
    - S2Cap::FromCenterHeight
    - GetValue
    - S2RegionCoverer::GetCovering
    - radians
    - EXPECT_LE
    - S2RegionCoverer::S2RegionCoverer
    - S2Testing::CheckCovering
    - S2Cap::GetRadius
    - S2Testing::MakeTaggedSeedSeq
    - StrCat
    - SCOPED_TRACE
    - s2random::SkewedInt
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - absl::GetFlag
    - S2CellUnion::Expand
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, Expand)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:603,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:604,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:605,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:606,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:606,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:608,1
    - Dst: auto::Encode
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:609,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:610,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:610,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:611,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:612,1
    - Dst: S2CellUnion::Decode
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:612,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 614
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - EXPECT_TRUE
    - std::move
    - auto::Encode
    - S2CellUnion::Decode
    - S2CellUnion::S2CellUnion
    - Encoder::length
    - EXPECT_EQ
    - Encoder::base
    - S2CellUnion::FromVerbatim
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, EncodeDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:617,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:619,1
    - Dst: S2CellUnion::Encode
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:620,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:621,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:621,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:622,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:623,1
    - Dst: S2CellUnion::Decode
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:623,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 625
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellUnion::Decode
    - S2CellUnion::Encode
    - S2CellUnion::S2CellUnion
    - Encoder::length
    - Encoder::base
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, EncodeDecodeEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::FromMinMax
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:628,1
    - Dst: auto::cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:629,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:631,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:631,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:632,1
    - Dst: front
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:632,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:633,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:633,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:634,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:635,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:635,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:635,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:637,1
    - Dst: auto::IsNormalized
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - min_id
    - max_id
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 638
    functionName: TestFromMinMax
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - S2CellUnion::FromMinMax
    - EXPECT_TRUE
    - auto::cell_ids
    - size
    - back
    - range_min
    - front
    - range_max
    - EXPECT_EQ
    - auto::IsNormalized
    linkageType: ''
    returnType: void
    signature: void TestFromMinMax(S2CellId min_id, S2CellId max_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:642,1
    - Dst: TestFromMinMax
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:643,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:643,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:643,1
    - Dst: TestFromMinMax
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:644,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:644,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:644,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:647,1
    - Dst: TestFromMinMax
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:648,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:648,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:648,1
    - Dst: TestFromMinMax
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:649,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:649,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:649,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:652,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:653,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:655,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:656,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:658,1
    - Dst: TestFromMinMax
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 640
    functionDepth: 4
    functionLinenumber: 640
    functionLinenumberEnd: 661
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - TestFromMinMax
    - S2CellId::range_max
    - S2CellId::range_min
    - s2random::CellId
    - swap
    - S2CellId::FromFace
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, FromMinMax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:666,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:670,1
    - Dst: S2CellUnion::InitFromBeginEnd
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:671,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:672,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:672,1
    - Dst: S2CellUnion::Init
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:675,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:676,1
    - Dst: S2CellUnion::InitFromBeginEnd
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:677,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:678,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:678,1
    - Dst: S2CellUnion::FromBeginEnd
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:681,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:682,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:682,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:684,1
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 686
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::FromBeginEnd
    - is_face
    - S2CellUnion::Init
    - S2CellUnion::num_cells
    - EXPECT_TRUE
    - S2CellUnion::empty
    - S2CellId::Begin
    - S2CellId::FromFace
    - EXPECT_EQ
    - S2CellId::End
    - S2CellUnion::InitFromBeginEnd
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, FromBeginEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:689,1
    - Dst: S2CellUnion::Normalize
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:692,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:693,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:693,1
    - Dst: S2CellUnion::Denormalize
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:697,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:698,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:698,1
    - Dst: S2CellUnion::Pack
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:701,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:702,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:702,1
    - Dst: S2CellUnion::Expand
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:705,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:705,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:706,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:706,1
    - Dst: S2CellUnion::Expand
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:707,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:708,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 709
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Denormalize
    - EXPECT_TRUE
    - S2CellUnion::Normalize
    - S2CellUnion::empty
    - S2CellUnion::Pack
    - S1Angle::Radians
    - S2CellUnion::S2CellUnion
    - S2CellUnion::Expand
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, EmptyMutableOps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:712,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:713,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:717,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:717,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:718,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:718,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:719,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:719,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:720,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:720,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:721,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:721,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:722,1
    - Dst: S2CellUnion::Contains
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:722,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:725,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:725,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:726,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:726,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:727,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:727,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:728,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:728,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:729,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:729,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:730,1
    - Dst: S2CellUnion::Intersects
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:730,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:733,1
    - Dst: S2CellUnion::Union
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:733,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:734,1
    - Dst: S2CellUnion::Union
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:734,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:735,1
    - Dst: S2CellUnion::Union
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:735,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:736,1
    - Dst: S2CellUnion::Union
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:737,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:740,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:740,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:741,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:741,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:742,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:742,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:743,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:744,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:745,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:746,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:747,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:748,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:751,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:751,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:752,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:753,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:754,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:755,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:756,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:756,1
    - Dst: S2CellUnion::Difference
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 711
    functionDepth: 4
    functionLinenumber: 711
    functionLinenumberEnd: 758
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Intersects
    - S2CellUnion::Intersection
    - EXPECT_TRUE
    - S2CellUnion::Difference
    - S2CellUnion::S2CellUnion
    - S2CellId::FromFace
    - EXPECT_EQ
    - S2CellUnion::Contains
    - S2CellUnion
    - S2CellUnion::Union
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, EmptyAndNonEmptyBooleanOps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:761,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:764,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:764,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:765,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:765,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:766,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:766,1
    - Dst: S2CellUnion::Clear
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:768,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:769,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:769,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:770,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:770,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:771,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 772
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2CellUnion::cell_ids
    - S2CellUnion::num_cells
    - S2CellUnion::Clear
    - EXPECT_LE
    - S2CellId::FromFace
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, Clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:776,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:777,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:779,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:780,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:782,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:783,1
    - Dst: S2CellUnion::Encode
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:784,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:785,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:785,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:786,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:787,1
    - Dst: S2CellUnion::Decode
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 788
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2CellUnion::Decode
    - S2CellUnion::Encode
    - S2CellId::next
    - Encoder::length
    - S2CellUnion::S2CellUnion
    - Encoder::base
    - S2CellId::Begin
    - S2CellUnion::FromVerbatim
    - absl::GetFlag
    - EXPECT_FALSE
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, RefuseToDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:791,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:793,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:793,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:794,1
    - Dst: S2CellUnion::cell_id
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:794,1
    - Dst: S2CellUnion::Release
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:796,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:797,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:797,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:798,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:799,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 800
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2CellUnion::num_cells
    - S2CellUnion::Release
    - S2CellUnion::cell_id
    - S2CellId::FromFace
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, Release)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:803,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:804,1
    - Dst: S2CellUnion::LeafCellsCovered
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:804,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:808,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:808,1
    - Dst: S2CellUnion::Init
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:809,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:810,1
    - Dst: S2CellUnion::LeafCellsCovered
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:810,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:813,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:813,1
    - Dst: S2CellUnion::Init
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:814,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:815,1
    - Dst: S2CellUnion::LeafCellsCovered
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:815,1
    - Dst: S2CellUnion::Expand
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:817,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:818,1
    - Dst: S2CellUnion::LeafCellsCovered
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:818,1
    - Dst: S2CellUnion::Expand
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:820,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:821,1
    - Dst: S2CellUnion::LeafCellsCovered
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:821,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:824,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:824,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:825,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:825,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:826,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:826,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:827,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:827,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:828,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:828,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:829,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:829,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:830,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:830,1
    - Dst: S2CellUnion::Init
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:831,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:834,1
    - Dst: S2CellUnion::LeafCellsCovered
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 835
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2CellUnion::LeafCellsCovered
    - S2CellUnion::Init
    - S2CellUnion::S2CellUnion
    - S2CellId::FromFace
    - EXPECT_EQ
    - S2CellUnion::Expand
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, LeafCellsCovered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:838,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:844,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:844,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:846,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 847
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - std::move
    - vector::back
    - S2CellId::FromFace
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, WorksInContainers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:850,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 851
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, ToStringEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:854,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:854,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 856
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellUnion
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, ToStringOneCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:859,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:860,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:860,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 862
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2CellUnion
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, ToStringTwoCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:866,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:866,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:867,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:868,1
    - Dst: std::count
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:868,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:868,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:868,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:869,1
    - Dst: string::substr
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:869,1
    - Dst: string::size
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 864
    functionDepth: 2
    functionLinenumber: 864
    functionLinenumberEnd: 870
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - string::size
    - string::end
    - std::count
    - string::substr
    - EXPECT_EQ
    - S2CellId::FromFace
    - S2CellUnion::FromVerbatim
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, ToStringOver500Cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:873,1
    - Dst: S2CellUnion::FromVerbatim
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:875,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:876,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:876,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:876,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:876,1
    - Dst: S2CellUnion::Intersection
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:877,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 872
    functionDepth: 4
    functionLinenumber: 872
    functionLinenumberEnd: 879
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Intersection
    - EXPECT_EQ
    - S2CellId::FromFace
    - S2CellUnion::FromVerbatim
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, IntersectionOneInputNormalized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:882,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:882,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:883,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:883,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:884,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:884,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:884,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellId::FromFace
    - S2CellUnion
    - absl::VerifyTypeImplementsAbslHashCorrectly
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, SupportsAbslHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion::FromBeginEnd
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:890,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:891,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:891,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:892,1
    - Dst: auto::num_cells
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:892,1
    - Dst: S2CellIndexTest::VerifyCellIterator
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:894,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:896,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:896,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:896,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:896,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:897,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:897,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:897,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:898,1
    - Dst: auto::Prev
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:898,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:898,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:900,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:901,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:901,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:901,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:901,1
    - Dst: auto::Finish
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:903,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:904,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:904,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:904,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:905,1
    - Dst: auto::Prev
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:905,1
    - Dst: IsTrue
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:905,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:906,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:906,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:906,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:906,1
    - Dst: auto::Seek
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:908,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:908,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:909,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:909,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:909,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:910,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:910,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:910,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:910,1
    - Dst: auto::Begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:912,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:913,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:913,1
    - Dst: IsFalse
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:913,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:914,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:914,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:914,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 915
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::FromBeginEnd
    - Eq
    - auto::num_cells
    - auto::Seek
    - auto::Begin
    - EXPECT_THAT
    - IsTrue
    - auto::done
    - ABSL_CHECK_EQ
    - auto::Next
    - auto::id
    - auto::Finish
    - S2CellId::Begin
    - S2CellId::FromFace
    - IsFalse
    - S2CellId::End
    - auto::Prev
    - S2CellIndexTest::VerifyCellIterator
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, IteratorWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:918,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:920,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:921,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:921,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 917
    functionDepth: 3
    functionLinenumber: 917
    functionLinenumberEnd: 923
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::RoundTrip
    - s2coding::S2HintCoder::S2HintCoder
    - S2CellId::FromFace
    - EXPECT_EQ
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellUnion, S2CoderWorks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:928,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:928,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:929,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:929,1
    - Dst: S2CellUnion::S2CellUnion
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:931,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:933,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:934,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:935,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:937,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:938,1
    - Dst: S2CellUnion::InitFromMinMax
      Src: /src/s2geometry/src/s2/s2cell_union_test.cc:939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 925
    functionDepth: 4
    functionLinenumber: 925
    functionLinenumberEnd: 941
    functionName: BM_InitFromBeginEnd
    functionSourceFile: /src/s2geometry/src/s2/s2cell_union_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - PauseTiming
    - StrCat
    - ResumeTiming
    - S2CellUnion::InitFromMinMax
    - string::end
    - S2CellUnion::S2CellUnion
    - s2random::CellId
    - swap
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_InitFromBeginEnd(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: S2MaxDistance::S2MaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MaxDistance()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: S2MaxDistance::S2MaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MaxDistance(S1ChordAngle x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: operator S1ChordAngle() const
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator S1ChordAngle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance::S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:201,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: S2MaxDistance::Zero
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 3
    functionsReached:
    - S2MaxDistance::S2MaxDistance
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: S2MaxDistance
    signature: S2MaxDistance S2MaxDistance::Zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance::S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:205,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: S2MaxDistance::Infinity
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 12
    functionsReached:
    - S2MaxDistance::S2MaxDistance
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: S2MaxDistance
    signature: S2MaxDistance S2MaxDistance::Infinity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance::S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:209,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: S2MaxDistance::Negative
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 1
    functionsReached:
    - S2MaxDistance::S2MaxDistance
    - S1ChordAngle::Infinity
    linkageType: ''
    returnType: S2MaxDistance
    signature: S2MaxDistance S2MaxDistance::Negative()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S2MaxDistance
    - S2MaxDistance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: operator==(S2MaxDistance x, S2MaxDistance y)
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(S2MaxDistance x, S2MaxDistance y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - S2MaxDistance
    - S2MaxDistance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: operator<(S2MaxDistance x, S2MaxDistance y)
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(S2MaxDistance x, S2MaxDistance y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MaxDistance
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - delta
    argTypes:
    - S2MaxDistance
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: operator-(S2MaxDistance x, S1ChordAngle delta)
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached:
    - S2MaxDistance
    linkageType: ''
    returnType: S2MaxDistance
    signature: S2MaxDistance operator-(S2MaxDistance x, S1ChordAngle delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: S2MaxDistance::GetChordAngleBound
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached:
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2MaxDistance::GetChordAngleBound() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' dist'
    argTypes:
    - S2MaxDistance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: S2MaxDistance::UpdateMin
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2MaxDistance::UpdateMin(const S2MaxDistance& dist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: S2MaxDistancePointTarget::S2MaxDistancePointTarget
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MaxDistancePointTarget::S2MaxDistancePointTarget(const S2Point&
      point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:243,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2max_distance_targets.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: S2MaxDistanceEdgeTarget::S2MaxDistanceEdgeTarget
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached:
    - Normalize
    linkageType: ''
    returnType: void
    signature: "void S2MaxDistanceEdgeTarget::S2MaxDistanceEdgeTarget(const S2Point&
      a,\n                                                        const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: S2MaxDistanceCellTarget::S2MaxDistanceCellTarget
    functionSourceFile: /src/s2geometry/src/s2/s2max_distance_targets.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2MaxDistanceCellTarget::S2MaxDistanceCellTarget(const S2Cell&
      cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: S2EdgeCrosserBase::S2EdgeCrosserBase
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2EdgeCrosserBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: S2EdgeCrosserBase::a
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ArgType
    signature: ArgType a()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: S2EdgeCrosserBase::b
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ArgType
    signature: ArgType b()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: S2EdgeCrosserBase::c
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ArgType
    signature: ArgType c()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: S2EdgeCrosserBase::S2EdgeCrosserBase
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2EdgeCrosserBase(const S2EdgeCrosserBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: operator=(const S2EdgeCrosserBase&)
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2EdgeCrosserBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:306,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:308,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:308,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:309,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ArgType
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: S2EdgeCrosserBase<PointRep>::S2EdgeCrosserBase
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached:
    - CrossProd
    - S2::IsUnitLength
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2EdgeCrosserBase<PointRep>::S2EdgeCrosserBase(ArgType a, ArgType
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:316,1
    - Dst: PointRep
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ArgType
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: S2EdgeCrosserBase<PointRep>::Init
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached:
    - CrossProd
    - PointRep
    linkageType: ''
    returnType: void
    signature: void S2EdgeCrosserBase<PointRep>::Init(ArgType a, ArgType b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosserBase<PointRep>::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:323,1
    - Dst: S2EdgeCrosserBase<PointRep>::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - d
    argTypes:
    - ArgType
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: S2EdgeCrosserBase<PointRep>::CrossingSign
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 1
    functionsReached:
    - S2EdgeCrosserBase<PointRep>::RestartAt
    - S2EdgeCrosserBase<PointRep>::CrossingSign
    linkageType: ''
    returnType: int
    signature: int S2EdgeCrosserBase<PointRep>::CrossingSign(ArgType c, ArgType d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosserBase<PointRep>::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:330,1
    - Dst: S2EdgeCrosserBase<PointRep>::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - d
    argTypes:
    - ArgType
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: S2EdgeCrosserBase<PointRep>::EdgeOrVertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 1
    functionsReached:
    - S2EdgeCrosserBase<PointRep>::EdgeOrVertexCrossing
    - S2EdgeCrosserBase<PointRep>::RestartAt
    linkageType: ''
    returnType: bool
    signature: "bool S2EdgeCrosserBase<PointRep>::EdgeOrVertexCrossing(ArgType c,\n
      \                                                             ArgType d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosserBase<PointRep>::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:337,1
    - Dst: S2EdgeCrosserBase<PointRep>::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - d
    argTypes:
    - ArgType
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: S2EdgeCrosserBase<PointRep>::SignedEdgeOrVertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 1
    functionsReached:
    - S2EdgeCrosserBase<PointRep>::RestartAt
    - S2EdgeCrosserBase<PointRep>::SignedEdgeOrVertexCrossing
    linkageType: ''
    returnType: int
    signature: "int S2EdgeCrosserBase<PointRep>::SignedEdgeOrVertexCrossing(ArgType
      c,\n                                                                   ArgType
      d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: S2EdgeCrosserBase<PointRep>::last_interior_crossing_sign
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2EdgeCrosserBase<PointRep>::last_interior_crossing_sign() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:352,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:353,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:353,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:354,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:354,1
    - Dst: S2EdgeCrosserBase<PointRep>::RestartAt
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - ArgType
    - ArgType
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: S2EdgeCrosserBase<PointRep>::S2EdgeCrosserBase
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 0
    functionsReached:
    - CrossProd
    - S2::IsUnitLength
    - S2EdgeCrosserBase<PointRep>::RestartAt
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void S2EdgeCrosserBase<PointRep>::S2EdgeCrosserBase(\n    ArgType
      a, ArgType b, ArgType c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:361,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:361,1
    - Dst: s2pred::TriageSign
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: S2EdgeCrosserBase<PointRep>::RestartAt
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 4
    functionsReached:
    - S2::IsUnitLength
    - s2pred::TriageSign
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2EdgeCrosserBase<PointRep>::RestartAt(ArgType c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:368,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:368,1
    - Dst: s2pred::TriageSign
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:377,1
    - Dst: S2EdgeCrosserBase<PointRep>::CrossingSignInternal
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - d_arg
    argTypes:
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 388
    functionName: S2EdgeCrosserBase<PointRep>::CrossingSign
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 1
    functionsReached:
    - S2::IsUnitLength
    - S2EdgeCrosserBase<PointRep>::CrossingSignInternal
    - s2pred::TriageSign
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int S2EdgeCrosserBase<PointRep>::CrossingSign(ArgType d_arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosserBase<PointRep>::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:394,1
    - Dst: S2::VertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:397,1
    - Dst: PointRep
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 4
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: S2EdgeCrosserBase<PointRep>::EdgeOrVertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 1
    functionsReached:
    - PointRep
    - S2EdgeCrosserBase<PointRep>::CrossingSign
    - S2::VertexCrossing
    linkageType: ''
    returnType: bool
    signature: bool S2EdgeCrosserBase<PointRep>::EdgeOrVertexCrossing(ArgType d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2EdgeCrosserBase<PointRep>::CrossingSign
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:404,1
    - Dst: S2EdgeCrosserBase<PointRep>::last_interior_crossing_sign
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:406,1
    - Dst: S2::SignedVertexCrossing
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:407,1
    - Dst: PointRep
      Src: /src/s2geometry/src/s2/s2edge_crosser.h:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: S2EdgeCrosserBase<PointRep>::SignedEdgeOrVertexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2edge_crosser.h
    functionUses: 1
    functionsReached:
    - S2::SignedVertexCrossing
    - S2EdgeCrosserBase<PointRep>::CrossingSign
    - S2EdgeCrosserBase<PointRep>::last_interior_crossing_sign
    - PointRep
    linkageType: ''
    returnType: int
    signature: int S2EdgeCrosserBase<PointRep>::SignedEdgeOrVertexCrossing(ArgType
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:53,1
    - Dst: Encoder*::base
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:54,1
    - Dst: Encoder*::length
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:56,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - encoder
    argTypes:
    - absl::Span<const S2CellId>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: s2coding::MakeEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::EncodeS2CellIdVector
    - EXPECT_TRUE
    - Encoder*::base
    - EncodedS2CellIdVector::Init
    - Encoder*::length
    linkageType: ''
    returnType: EncodedS2CellIdVector
    signature: "EncodedS2CellIdVector MakeEncodedS2CellIdVector(\n    absl::Span<const
      S2CellId> input, Encoder* encoder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:64,1
    - Dst: s2coding::MakeEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:66,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:67,1
    - Dst: EncodedS2CellIdVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' expected'
    - expected_bytes
    argTypes:
    - vector<S2CellId>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: s2coding::TestEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2CellIdVector::Decode
    - Encoder::length
    - EXPECT_EQ
    - Encoder::Encoder
    - s2coding::MakeEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: "void TestEncodedS2CellIdVector(const vector<S2CellId>& expected,\n
      \                              size_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:76,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:76,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - raw_expected
    - expected_bytes
    argTypes:
    - absl::Span<const uint64_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: s2coding::TestEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId
    linkageType: ''
    returnType: void
    signature: "void TestEncodedS2CellIdVector(absl::Span<const uint64_t> raw_expected,\n
      \                              size_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:86,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, None)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, NoneNone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:94,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, Sentinel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:100,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    - MakeCellIdOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, MaximumShiftCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, SentinelSentinel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:108,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, NoneSentinelNone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, InvalidCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLeafCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLevel29Cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLevel28Cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteMixedCellLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteMixedCellLevelsWithPrefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteRangeWithBaseValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:164,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:166,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::data
    - EncodedS2CellIdVector::Init
    - EXPECT_TRUE
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, MaxShiftRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:176,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:178,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::data
    - EncodedS2CellIdVector::Init
    - vector::size
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, ShiftOutOfRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:184,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:184,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, SixFaceCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:191,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:192,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:193,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:193,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:194,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId::next
    - MakeCellIdOrDie
    - S2CellId::child_begin
    - S2CellId::child_end
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, FourLevel10Children)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:200,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:201,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:203,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:204,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:205,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:206,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:206,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:210,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:210,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:211,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:213,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:213,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2::GetFrame
    - S2Fractal::MakeLoop
    - make_unique<S2Loop::OwningShape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - s2coding::TestEncodedS2CellIdVector
    - vector::size
    - s2textformat::MakePointOrDie
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::id
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, FractalS2ShapeIndexCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:252,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:252,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 254
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - vector::size
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, CoveringCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:258,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:259,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:260,1
    - Dst: s2coding::MakeEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:264,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: S2CellId::prev
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:267,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2CellIdVector::lower_bound
    - S2CellId::None
    - S2CellId::next
    - S2CellId::Sentinel
    - S2CellId::Begin
    - EXPECT_EQ
    - S2CellId::End
    - S2CellId::prev
    - Encoder::Encoder
    - s2coding::MakeEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, LowerBoundLimits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:274,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:274,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:276,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:281,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' bytes'
    - lower_bound
    argTypes:
    - vector<uint8_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: s2coding::EncodedS2CellIdVectorInitNeverCrashes
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2CellIdVector::lower_bound
    - size
    - data
    - S2CellId::is_valid
    - EncodedS2CellIdVector::Init
    linkageType: ''
    returnType: void
    signature: "void EncodedS2CellIdVectorInitNeverCrashes(const vector<uint8_t>&
      bytes,\n                                           const uint64_t lower_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2CellIdVectorInitNeverCrashes
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2CellIdVectorInitNeverCrashes
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, EncodedS2CellIdVectorInitNeverCrashesRegression)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:53,1
    - Dst: Encoder*::base
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:54,1
    - Dst: Encoder*::length
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:56,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - encoder
    argTypes:
    - absl::Span<const S2CellId>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: s2coding::MakeEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 2
    functionsReached:
    - s2coding::EncodeS2CellIdVector
    - EXPECT_TRUE
    - Encoder*::base
    - EncodedS2CellIdVector::Init
    - Encoder*::length
    linkageType: ''
    returnType: EncodedS2CellIdVector
    signature: "EncodedS2CellIdVector MakeEncodedS2CellIdVector(\n    absl::Span<const
      S2CellId> input, Encoder* encoder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:64,1
    - Dst: s2coding::MakeEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:66,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:67,1
    - Dst: EncodedS2CellIdVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' expected'
    - expected_bytes
    argTypes:
    - vector<S2CellId>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: s2coding::TestEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 19
    functionsReached:
    - EncodedS2CellIdVector::Decode
    - Encoder::length
    - EXPECT_EQ
    - Encoder::Encoder
    - s2coding::MakeEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: "void TestEncodedS2CellIdVector(const vector<S2CellId>& expected,\n
      \                              size_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:76,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:76,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - raw_expected
    - expected_bytes
    argTypes:
    - absl::Span<const uint64_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: s2coding::TestEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 20
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId
    linkageType: ''
    returnType: void
    signature: "void TestEncodedS2CellIdVector(absl::Span<const uint64_t> raw_expected,\n
      \                              size_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:86,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, None)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, NoneNone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:94,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, Sentinel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:100,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    - MakeCellIdOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, MaximumShiftCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, SentinelSentinel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:108,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, NoneSentinelNone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, InvalidCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLeafCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLevel29Cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLevel28Cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteMixedCellLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteMixedCellLevelsWithPrefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteRangeWithBaseValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:164,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:166,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::data
    - EncodedS2CellIdVector::Init
    - EXPECT_TRUE
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, MaxShiftRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:176,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:178,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::data
    - EncodedS2CellIdVector::Init
    - vector::size
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, ShiftOutOfRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:184,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:184,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, SixFaceCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:191,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:192,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:193,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:193,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:194,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId::next
    - MakeCellIdOrDie
    - S2CellId::child_begin
    - S2CellId::child_end
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, FourLevel10Children)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:200,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:201,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:203,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:204,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:205,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:206,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:206,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:210,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:210,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:211,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:213,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:213,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2::GetFrame
    - S2Fractal::MakeLoop
    - make_unique<S2Loop::OwningShape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - s2coding::TestEncodedS2CellIdVector
    - vector::size
    - s2textformat::MakePointOrDie
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::id
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, FractalS2ShapeIndexCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:252,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:252,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 254
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - vector::size
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, CoveringCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:258,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:259,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:260,1
    - Dst: s2coding::MakeEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:264,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: S2CellId::prev
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:267,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2CellIdVector::lower_bound
    - S2CellId::None
    - S2CellId::next
    - S2CellId::Sentinel
    - S2CellId::Begin
    - EXPECT_EQ
    - S2CellId::End
    - S2CellId::prev
    - Encoder::Encoder
    - s2coding::MakeEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, LowerBoundLimits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:274,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:274,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:276,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:281,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' bytes'
    - lower_bound
    argTypes:
    - vector<uint8_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: s2coding::EncodedS2CellIdVectorInitNeverCrashes
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 1
    functionsReached:
    - EncodedS2CellIdVector::lower_bound
    - size
    - data
    - S2CellId::is_valid
    - EncodedS2CellIdVector::Init
    linkageType: ''
    returnType: void
    signature: "void EncodedS2CellIdVectorInitNeverCrashes(const vector<uint8_t>&
      bytes,\n                                           const uint64_t lower_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2CellIdVectorInitNeverCrashes
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2CellIdVectorInitNeverCrashes
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, EncodedS2CellIdVectorInitNeverCrashesRegression)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:53,1
    - Dst: Encoder*::base
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:54,1
    - Dst: Encoder*::length
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:56,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - encoder
    argTypes:
    - absl::Span<const S2CellId>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: s2coding::MakeEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 4
    functionsReached:
    - s2coding::EncodeS2CellIdVector
    - EXPECT_TRUE
    - Encoder*::base
    - EncodedS2CellIdVector::Init
    - Encoder*::length
    linkageType: ''
    returnType: EncodedS2CellIdVector
    signature: "EncodedS2CellIdVector MakeEncodedS2CellIdVector(\n    absl::Span<const
      S2CellId> input, Encoder* encoder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:64,1
    - Dst: s2coding::MakeEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:66,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:67,1
    - Dst: EncodedS2CellIdVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' expected'
    - expected_bytes
    argTypes:
    - vector<S2CellId>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: s2coding::TestEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 38
    functionsReached:
    - EncodedS2CellIdVector::Decode
    - Encoder::length
    - EXPECT_EQ
    - Encoder::Encoder
    - s2coding::MakeEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: "void TestEncodedS2CellIdVector(const vector<S2CellId>& expected,\n
      \                              size_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:76,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:76,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - raw_expected
    - expected_bytes
    argTypes:
    - absl::Span<const uint64_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: s2coding::TestEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 39
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId
    linkageType: ''
    returnType: void
    signature: "void TestEncodedS2CellIdVector(absl::Span<const uint64_t> raw_expected,\n
      \                              size_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:86,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, None)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, NoneNone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:94,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, Sentinel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:100,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    - MakeCellIdOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, MaximumShiftCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, SentinelSentinel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:108,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, NoneSentinelNone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, InvalidCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLeafCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLevel29Cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLevel28Cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteMixedCellLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteMixedCellLevelsWithPrefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteRangeWithBaseValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:164,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:166,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::data
    - EncodedS2CellIdVector::Init
    - EXPECT_TRUE
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, MaxShiftRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:176,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:178,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::data
    - EncodedS2CellIdVector::Init
    - vector::size
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, ShiftOutOfRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:184,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:184,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, SixFaceCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:191,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:192,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:193,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:193,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:194,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId::next
    - MakeCellIdOrDie
    - S2CellId::child_begin
    - S2CellId::child_end
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, FourLevel10Children)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:200,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:201,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:203,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:204,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:205,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:206,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:206,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:210,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:210,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:211,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:213,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:213,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2::GetFrame
    - S2Fractal::MakeLoop
    - make_unique<S2Loop::OwningShape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - s2coding::TestEncodedS2CellIdVector
    - vector::size
    - s2textformat::MakePointOrDie
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::id
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, FractalS2ShapeIndexCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:252,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:252,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 254
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - vector::size
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, CoveringCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:258,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:259,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:260,1
    - Dst: s2coding::MakeEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:264,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: S2CellId::prev
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:267,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2CellIdVector::lower_bound
    - S2CellId::None
    - S2CellId::next
    - S2CellId::Sentinel
    - S2CellId::Begin
    - EXPECT_EQ
    - S2CellId::End
    - S2CellId::prev
    - Encoder::Encoder
    - s2coding::MakeEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, LowerBoundLimits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:274,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:274,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:276,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:281,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' bytes'
    - lower_bound
    argTypes:
    - vector<uint8_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: s2coding::EncodedS2CellIdVectorInitNeverCrashes
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 2
    functionsReached:
    - EncodedS2CellIdVector::lower_bound
    - size
    - data
    - S2CellId::is_valid
    - EncodedS2CellIdVector::Init
    linkageType: ''
    returnType: void
    signature: "void EncodedS2CellIdVectorInitNeverCrashes(const vector<uint8_t>&
      bytes,\n                                           const uint64_t lower_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2CellIdVectorInitNeverCrashes
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2CellIdVectorInitNeverCrashes
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, EncodedS2CellIdVectorInitNeverCrashesRegression)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:53,1
    - Dst: Encoder*::base
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:54,1
    - Dst: Encoder*::length
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:56,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - encoder
    argTypes:
    - absl::Span<const S2CellId>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: s2coding::MakeEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 6
    functionsReached:
    - s2coding::EncodeS2CellIdVector
    - EXPECT_TRUE
    - Encoder*::base
    - EncodedS2CellIdVector::Init
    - Encoder*::length
    linkageType: ''
    returnType: EncodedS2CellIdVector
    signature: "EncodedS2CellIdVector MakeEncodedS2CellIdVector(\n    absl::Span<const
      S2CellId> input, Encoder* encoder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:64,1
    - Dst: s2coding::MakeEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:66,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:67,1
    - Dst: EncodedS2CellIdVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' expected'
    - expected_bytes
    argTypes:
    - vector<S2CellId>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: s2coding::TestEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 57
    functionsReached:
    - EncodedS2CellIdVector::Decode
    - Encoder::length
    - EXPECT_EQ
    - Encoder::Encoder
    - s2coding::MakeEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: "void TestEncodedS2CellIdVector(const vector<S2CellId>& expected,\n
      \                              size_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:76,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:76,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - raw_expected
    - expected_bytes
    argTypes:
    - absl::Span<const uint64_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: s2coding::TestEncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 58
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId
    linkageType: ''
    returnType: void
    signature: "void TestEncodedS2CellIdVector(absl::Span<const uint64_t> raw_expected,\n
      \                              size_t expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:86,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, None)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, NoneNone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:94,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, Sentinel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:100,1
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    - MakeCellIdOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, MaximumShiftCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, SentinelSentinel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:108,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - S2CellId::None
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, NoneSentinelNone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, InvalidCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLeafCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLevel29Cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteLevel28Cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteMixedCellLevels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteMixedCellLevelsWithPrefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, OneByteRangeWithBaseValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:164,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:166,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::data
    - EncodedS2CellIdVector::Init
    - EXPECT_TRUE
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, MaxShiftRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:176,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:178,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::data
    - EncodedS2CellIdVector::Init
    - vector::size
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, ShiftOutOfRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:184,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:184,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId::FromFace
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, SixFaceCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeCellIdOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:191,1
    - Dst: S2CellId::child_begin
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:192,1
    - Dst: S2CellId::child_end
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:193,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:193,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:194,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - s2coding::TestEncodedS2CellIdVector
    - S2CellId::next
    - MakeCellIdOrDie
    - S2CellId::child_begin
    - S2CellId::child_end
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, FourLevel10Children)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:200,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:201,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:203,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:204,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:205,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:206,1
    - Dst: make_unique<S2Loop::OwningShape>
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:206,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:207,1
    - Dst: MutableS2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:210,1
    - Dst: MutableS2ShapeIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:210,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:211,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:213,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:213,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2::GetFrame
    - S2Fractal::MakeLoop
    - make_unique<S2Loop::OwningShape>
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1Angle::Degrees
    - s2coding::TestEncodedS2CellIdVector
    - vector::size
    - s2textformat::MakePointOrDie
    - MutableS2ShapeIndex::Iterator::done
    - MutableS2ShapeIndex::Iterator::Next
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - MutableS2ShapeIndex::Iterator::id
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, FractalS2ShapeIndexCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:252,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:252,1
    - Dst: s2coding::TestEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 254
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - vector::size
    - s2coding::TestEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, CoveringCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:258,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:259,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:260,1
    - Dst: s2coding::MakeEncodedS2CellIdVector
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:263,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:264,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: S2CellId::prev
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:267,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - EncodedS2CellIdVector::lower_bound
    - S2CellId::None
    - S2CellId::next
    - S2CellId::Sentinel
    - S2CellId::Begin
    - EXPECT_EQ
    - S2CellId::End
    - S2CellId::prev
    - Encoder::Encoder
    - s2coding::MakeEncodedS2CellIdVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, LowerBoundLimits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:274,1
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:274,1
    - Dst: EncodedS2CellIdVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:276,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:281,1
    - Dst: EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' bytes'
    - lower_bound
    argTypes:
    - vector<uint8_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: s2coding::EncodedS2CellIdVectorInitNeverCrashes
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 3
    functionsReached:
    - EncodedS2CellIdVector::lower_bound
    - size
    - data
    - S2CellId::is_valid
    - EncodedS2CellIdVector::Init
    linkageType: ''
    returnType: void
    signature: "void EncodedS2CellIdVectorInitNeverCrashes(const vector<uint8_t>&
      bytes,\n                                           const uint64_t lower_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2CellIdVectorInitNeverCrashes
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2CellIdVectorInitNeverCrashes
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedS2CellIdVector, EncodedS2CellIdVectorInitNeverCrashesRegression)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: s2shapeutil::EdgeIterator::shape_id
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t shape_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: s2shapeutil::EdgeIterator::edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: s2shapeutil::EdgeIterator::shape_edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 0
    functionsReached:
    - ShapeEdgeId
    linkageType: ''
    returnType: ShapeEdgeId
    signature: ShapeEdgeId shape_edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h:54,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: s2shapeutil::EdgeIterator::Done
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 2
    functionsReached:
    - s2shapeutil::EdgeIterator::shape_id
    - num_shape_ids
    linkageType: ''
    returnType: bool
    signature: bool Done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EdgeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: operator==(const EdgeIterator& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const EdgeIterator& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EdgeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: operator!=(const EdgeIterator& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const EdgeIterator& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: s2shapeutil::EdgeIterator::shape_id
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t shape_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: s2shapeutil::EdgeIterator::edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: s2shapeutil::EdgeIterator::shape_edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 0
    functionsReached:
    - ShapeEdgeId
    linkageType: ''
    returnType: ShapeEdgeId
    signature: ShapeEdgeId shape_edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::EdgeIterator::shape_id
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h:54,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: s2shapeutil::EdgeIterator::Done
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 2
    functionsReached:
    - s2shapeutil::EdgeIterator::shape_id
    - num_shape_ids
    linkageType: ''
    returnType: bool
    signature: bool Done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EdgeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: operator==(const EdgeIterator& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const EdgeIterator& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EdgeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: operator!=(const EdgeIterator& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const EdgeIterator& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - val0
    - val1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: s2coding::InterleaveUint32BitPairs
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t InterleaveUint32BitPairs(const uint32_t val0,\n                                         const
      uint32_t val1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - code
    - val0
    - val1
    argTypes:
    - uint64_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: s2coding::DeinterleaveUint32BitPairs
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DeinterleaveUint32BitPairs(uint64_t code, uint32_t* val0,\n                                       uint32_t*
      val1)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeS2PointVectorFast
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:111,1
    - Dst: s2coding::EncodeS2PointVectorCompact
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:114,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:117,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - points
    - hint
    - encoder
    argTypes:
    - Span<const S2Point>
    - CodingHint
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: s2coding::EncodeS2PointVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 9
    functionsReached:
    - ABSL_LOG
    - s2coding::EncodeS2PointVectorFast
    - s2coding::EncodeS2PointVectorCompact
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: "void EncodeS2PointVector(Span<const S2Point> points, CodingHint hint,\n
      \                        Encoder* encoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:122,1
    - Dst: static_cast<Format>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:126,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:126,1
    - Dst: s2coding::EncodedS2PointVector::InitUncompressedFormat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:129,1
    - Dst: s2coding::EncodedS2PointVector::InitCellIdsFormat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: s2coding::EncodedS2PointVector::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 5
    functionsReached:
    - Decoder*::skip
    - s2coding::EncodedS2PointVector::InitUncompressedFormat
    - Decoder*::avail
    - static_cast<Format>
    - s2coding::EncodedS2PointVector::InitCellIdsFormat
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::Init(Decoder* decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:140,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: s2coding::EncodedS2PointVector::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 6
    functionsReached:
    - S2Error::DataLoss
    - s2coding::EncodedS2PointVector::Init
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::Init(Decoder* decoder, S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:149,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: s2coding::EncodedS2PointVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 5
    functionsReached:
    - vector::push_back
    - vector::reserve
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> EncodedS2PointVector::Decode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:157,1
    - Dst: absl::Span<S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:157,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - points
    argTypes:
    - absl::Span<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: s2coding::EncodedS2PointVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 5
    functionsReached:
    - s2coding::EncodedS2PointVector::size
    - absl::Span<S2Point>::size
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::Decode(absl::Span<S2Point> points) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:166,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:167,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:168,1
    - Dst: s2coding::EncodedS2PointVector::At
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: s2coding::EncodedS2PointVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 5
    functionsReached:
    - vector::push_back
    - vector::reserve
    - s2coding::EncodedS2PointVector::At
    - ok
    linkageType: ''
    returnType: std::vector<S2Point>
    signature: std::vector<S2Point> EncodedS2PointVector::Decode(S2Error& error) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:175,1
    - Dst: absl::Span<S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:175,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:175,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:176,1
    - Dst: s2coding::EncodedS2PointVector::At
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:177,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - points
    - ' error'
    argTypes:
    - absl::Span<S2Point>
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: s2coding::EncodedS2PointVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 5
    functionsReached:
    - absl::Span<S2Point>::size
    - ABSL_DCHECK_EQ
    - s2coding::EncodedS2PointVector::size
    - s2coding::EncodedS2PointVector::At
    - ok
    linkageType: ''
    returnType: bool
    signature: "bool EncodedS2PointVector::Decode(absl::Span<S2Point> points,\n                                  S2Error&
      error) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EncodeS2PointVectorFast
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:186,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:186,1
    - Dst: EncodeS2PointVectorCompact
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:191,1
    - Dst: s2coding::EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:191,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:196,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 198
    functionName: s2coding::EncodedS2PointVector::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2PointVector::Decode
    - MakeSpan
    - EncodeS2PointVectorCompact
    - static_cast<int>
    - EncodeS2PointVectorFast
    - ABSL_LOG
    linkageType: ''
    returnType: void
    signature: void EncodedS2PointVector::Encode(Encoder* encoder) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:207,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:217,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:217,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:218,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:220,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:221,1
    - Dst: Span<const S2Point>::data
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:221,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - points
    - encoder
    argTypes:
    - Span<const S2Point>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 222
    functionName: s2coding::EncodeS2PointVectorFast
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached:
    - Span<const S2Point>::size
    - Encoder*::put_varint64
    - Encoder*::putn
    - Span<const S2Point>::data
    - Encoder*::Ensure
    - ABSL_LOG
    linkageType: ''
    returnType: void
    signature: void EncodeS2PointVectorFast(Span<const S2Point> points, Encoder* encoder)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:239,1
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:245,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:251,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:255,1
    - Dst: reinterpret_cast<const S2Point*>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:257,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:257,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 260
    functionName: s2coding::EncodedS2PointVector::InitUncompressedFormat
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached:
    - Decoder*::skip
    - Stats::max
    - reinterpret_cast<const S2Point*>
    - Decoder*::get_varint64
    - ABSL_LOG
    - Decoder*::avail
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::InitUncompressedFormat(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - level
    - face
    - si
    - ti
    argTypes:
    - int
    - int
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: s2coding::CellPoint
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CellPoint(int level, int face, uint32_t si, uint32_t ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: s2coding::BitMask
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BitMask(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: s2coding::MaxBitsForLevel
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MaxBitsForLevel(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:310,1
    - Dst: s2coding::MaxBitsForLevel
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - level
    - base_bits
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: s2coding::BaseShift
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached:
    - s2coding::MaxBitsForLevel
    - max
    linkageType: ''
    returnType: int
    signature: int BaseShift(int level, int base_bits)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::ChooseBestLevel
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:480,1
    - Dst: s2coding::EncodeS2PointVectorFast
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:482,1
    - Dst: s2coding::ConvertCellsToValues
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:492,1
    - Dst: s2coding::ChooseBase
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:497,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:500,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:502,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:503,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:504,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:505,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:506,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:507,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:508,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:511,1
    - Dst: s2coding::BaseShift
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:514,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:515,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:520,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:521,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:521,1
    - Dst: s2coding::GetBlockCode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:522,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:522,1
    - Dst: StringVectorEncoder::AddViaEncoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:526,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:530,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:531,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:532,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:533,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:534,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:544,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:545,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:552,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:553,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:555,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:560,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:564,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:565,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:567,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:570,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:574,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:574,1
    - Dst: Encoder*::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:577,1
    - Dst: Encoder*::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:577,1
    - Dst: Encoder*::RemoveLast
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:578,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:581,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:585,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:586,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:587,1
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:587,1
    - Dst: StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:590,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 2
    argNames:
    - points
    - encoder
    argTypes:
    - Span<const S2Point>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 591
    functionName: s2coding::EncodeS2PointVectorCompact
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached:
    - s2coding::ChooseBase
    - s2coding::BaseShift
    - s2coding::EncodeUintWithLength
    - Encoder*::Ensure
    - vector::size
    - Encoder*::length
    - ABSL_DCHECK_GE
    - Encoder*::put8
    - Encoder*::RemoveLast
    - Encoder*::putn
    - min
    - StringVectorEncoder::AddViaEncoder
    - s2coding::EncodeS2PointVectorFast
    - vector::push_back
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_LE
    - s2coding::GetBlockCode
    - Encoder*::base
    - s2coding::ConvertCellsToValues
    - MakeSpan
    - StringVectorEncoder::Encode
    - vector::clear
    - s2coding::ChooseBestLevel
    - s2coding::BitMask
    - vector::data
    linkageType: ''
    returnType: void
    signature: void EncodeS2PointVectorCompact(Span<const S2Point> points, Encoder*
      encoder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vector<CellPoint>*::clear
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:599,1
    - Dst: vector<CellPoint>*::reserve
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:600,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:600,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:607,1
    - Dst: vector<CellPoint>*::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:608,1
    - Dst: s2coding::CellPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:608,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - points
    - cell_points
    argTypes:
    - Span<const S2Point>
    - vector<CellPoint>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 597
    functionDepth: 4
    functionLinenumber: 597
    functionLinenumberEnd: 631
    functionName: s2coding::ChooseBestLevel
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached:
    - Span<const S2Point>::size
    - vector<CellPoint>*::push_back
    - vector<CellPoint>*::clear
    - vector<CellPoint>*::reserve
    - s2coding::CellPoint
    - S2::XYZtoFaceSiTi
    linkageType: ''
    returnType: int
    signature: "int ChooseBestLevel(Span<const S2Point> points,\n                    vector<CellPoint>*
      cell_points)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:642,1
    - Dst: absl::Span<const CellPoint>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:642,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:647,1
    - Dst: s2coding::InterleaveUint32BitPairs
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:658,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:659,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:659,1
    - Dst: s2coding::MaxBitsForLevel
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:659,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cell_points
    - level
    - have_exceptions
    argTypes:
    - absl::Span<const CellPoint>
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 664
    functionName: s2coding::ConvertCellsToValues
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - s2coding::InterleaveUint32BitPairs
    - absl::Span<const CellPoint>::size
    - ABSL_DCHECK_LE
    - vector::reserve
    - s2coding::BitMask
    - s2coding::MaxBitsForLevel
    linkageType: ''
    returnType: vector<uint64_t>
    signature: "vector<uint64_t> ConvertCellsToValues(absl::Span<const CellPoint>
      cell_points,\n                                      int level, bool* have_exceptions)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:672,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:673,1
    - Dst: absl::Span<const uint64_t>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:689,1
    - Dst: max<int>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:690,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:690,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:691,1
    - Dst: s2coding::BaseShift
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:691,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:692,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:698,1
    - Dst: s2coding::MaxBitsForLevel
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:699,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:711,1
    - Dst: s2coding::BaseShift
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - values
    - level
    - have_exceptions
    - base_bits
    argTypes:
    - absl::Span<const uint64_t>
    - int
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 712
    functionName: s2coding::ChooseBase
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached:
    - exactfloat_internal::countr_zero
    - s2coding::BaseShift
    - min
    - s2coding::BitMask
    - max<int>
    - s2coding::MaxBitsForLevel
    - absl::Span<const uint64_t>::size
    - max
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t ChooseBase(absl::Span<const uint64_t> values, int level,\n
      \                   bool have_exceptions, int* base_bits)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:719,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - d_min
    - d_max
    - delta_bits
    - overlap_bits
    - have_exceptions
    argTypes:
    - uint64_t
    - uint64_t
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 730
    functionName: s2coding::CanEncode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached:
    - s2coding::BitMask
    linkageType: ''
    returnType: bool
    signature: "bool CanEncode(uint64_t d_min, uint64_t d_max, int delta_bits, int
      overlap_bits,\n               bool have_exceptions)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:742,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:743,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:793,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:793,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:793,1
    - Dst: s2coding::CanEncode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:795,1
    - Dst: s2coding::CanEncode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:796,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:799,1
    - Dst: s2coding::CanEncode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:801,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:802,1
    - Dst: s2coding::CanEncode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:802,1
    - Dst: Span<const uint64_t>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:813,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:814,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:820,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:826,1
    - Dst: ABSL_ASSUME
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:828,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:829,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - values
    - base
    - have_exceptions
    argTypes:
    - Span<const uint64_t>
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 834
    functionName: s2coding::GetBlockCode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached:
    - s2coding::CanEncode
    - ABSL_DCHECK_LE
    - min
    - s2coding::BitMask
    - ABSL_ASSUME
    - Span<const uint64_t>::size
    - static_cast<int>
    - max
    - exactfloat_internal::bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: BlockCode
    signature: "BlockCode GetBlockCode(Span<const uint64_t> values, uint64_t base,\n
      \                      bool have_exceptions)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:839,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:840,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:841,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:842,1
    - Dst: DecodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:852,1
    - Dst: BaseShift
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:853,1
    - Dst: blocks::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:856,1
    - Dst: blocks::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:857,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 863
    functionName: s2coding::EncodedS2PointVector::InitCellIdsFormat
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached:
    - blocks::size
    - ABSL_DCHECK_EQ
    - Stats::max
    - blocks::Init
    - BaseShift
    - DecodeUintWithLength
    - Decoder*::avail
    - Decoder*::get8
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::InitCellIdsFormat(Decoder* decoder)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:869,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:871,1
    - Dst: absl::string_view::empty
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:876,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:877,1
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:879,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:880,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:895,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:898,1
    - Dst: GetUintWithLength<uint64_t>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:900,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:909,1
    - Dst: GetUintWithLength<uint64_t>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:911,1
    - Dst: BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:913,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:918,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:922,1
    - Dst: reinterpret_cast<const S2Point*>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:924,1
    - Dst: DeinterleaveUint32BitPairs
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:936,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:940,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:940,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:940,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:941,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:941,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - i
    - error
    argTypes:
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 942
    functionName: s2coding::EncodedS2PointVector::DecodeCellIdsFormat
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - S2Error::DataLoss
    - GetUintWithLength<uint64_t>
    - BitMask
    - S2::STtoUV
    - S2Point
    - Error
    - reinterpret_cast<const S2Point*>
    - absl::string_view::size
    - min
    - DeinterleaveUint32BitPairs
    - absl::string_view::empty
    - S2::SiTitoST
    - absl::string_view::data
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point EncodedS2PointVector::DecodeCellIdsFormat(int i, S2Error* error)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - val0
    - val1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: s2coding::InterleaveUint32BitPairs
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t InterleaveUint32BitPairs(const uint32_t val0,\n                                         const
      uint32_t val1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - code
    - val0
    - val1
    argTypes:
    - uint64_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: s2coding::DeinterleaveUint32BitPairs
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DeinterleaveUint32BitPairs(uint64_t code, uint32_t* val0,\n                                       uint32_t*
      val1)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodeS2PointVectorFast
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:111,1
    - Dst: s2coding::EncodeS2PointVectorCompact
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:114,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:117,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - points
    - hint
    - encoder
    argTypes:
    - Span<const S2Point>
    - CodingHint
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: s2coding::EncodeS2PointVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 9
    functionsReached:
    - ABSL_LOG
    - s2coding::EncodeS2PointVectorFast
    - s2coding::EncodeS2PointVectorCompact
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: "void EncodeS2PointVector(Span<const S2Point> points, CodingHint hint,\n
      \                        Encoder* encoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:122,1
    - Dst: static_cast<Format>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:126,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:126,1
    - Dst: s2coding::EncodedS2PointVector::InitUncompressedFormat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:129,1
    - Dst: s2coding::EncodedS2PointVector::InitCellIdsFormat
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: s2coding::EncodedS2PointVector::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 6
    functionsReached:
    - Decoder*::skip
    - s2coding::EncodedS2PointVector::InitUncompressedFormat
    - Decoder*::avail
    - static_cast<Format>
    - s2coding::EncodedS2PointVector::InitCellIdsFormat
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::Init(Decoder* decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2PointVector::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:140,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - decoder
    - ' error'
    argTypes:
    - Decoder*
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: s2coding::EncodedS2PointVector::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 7
    functionsReached:
    - S2Error::DataLoss
    - s2coding::EncodedS2PointVector::Init
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::Init(Decoder* decoder, S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:149,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: s2coding::EncodedS2PointVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 6
    functionsReached:
    - vector::push_back
    - vector::reserve
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> EncodedS2PointVector::Decode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:157,1
    - Dst: absl::Span<S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:157,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - points
    argTypes:
    - absl::Span<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: s2coding::EncodedS2PointVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 6
    functionsReached:
    - s2coding::EncodedS2PointVector::size
    - absl::Span<S2Point>::size
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::Decode(absl::Span<S2Point> points) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:166,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:167,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:168,1
    - Dst: s2coding::EncodedS2PointVector::At
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: s2coding::EncodedS2PointVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 6
    functionsReached:
    - vector::push_back
    - vector::reserve
    - s2coding::EncodedS2PointVector::At
    - ok
    linkageType: ''
    returnType: std::vector<S2Point>
    signature: std::vector<S2Point> EncodedS2PointVector::Decode(S2Error& error) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:175,1
    - Dst: absl::Span<S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:175,1
    - Dst: s2coding::EncodedS2PointVector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:175,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:176,1
    - Dst: s2coding::EncodedS2PointVector::At
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:177,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - points
    - ' error'
    argTypes:
    - absl::Span<S2Point>
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: s2coding::EncodedS2PointVector::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 6
    functionsReached:
    - absl::Span<S2Point>::size
    - ABSL_DCHECK_EQ
    - s2coding::EncodedS2PointVector::size
    - s2coding::EncodedS2PointVector::At
    - ok
    linkageType: ''
    returnType: bool
    signature: "bool EncodedS2PointVector::Decode(absl::Span<S2Point> points,\n                                  S2Error&
      error) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EncodeS2PointVectorFast
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:186,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:186,1
    - Dst: EncodeS2PointVectorCompact
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:191,1
    - Dst: s2coding::EncodedS2PointVector::Decode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:191,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:196,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 198
    functionName: s2coding::EncodedS2PointVector::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 0
    functionsReached:
    - s2coding::EncodedS2PointVector::Decode
    - MakeSpan
    - EncodeS2PointVectorCompact
    - static_cast<int>
    - EncodeS2PointVectorFast
    - ABSL_LOG
    linkageType: ''
    returnType: void
    signature: void EncodedS2PointVector::Encode(Encoder* encoder) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:207,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:217,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:217,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:218,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:220,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:221,1
    - Dst: Span<const S2Point>::data
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:221,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - points
    - encoder
    argTypes:
    - Span<const S2Point>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 222
    functionName: s2coding::EncodeS2PointVectorFast
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 3
    functionsReached:
    - Span<const S2Point>::size
    - Encoder*::put_varint64
    - Encoder*::putn
    - Span<const S2Point>::data
    - Encoder*::Ensure
    - ABSL_LOG
    linkageType: ''
    returnType: void
    signature: void EncodeS2PointVectorFast(Span<const S2Point> points, Encoder* encoder)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:239,1
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:245,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:251,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:255,1
    - Dst: reinterpret_cast<const S2Point*>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:257,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:257,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 260
    functionName: s2coding::EncodedS2PointVector::InitUncompressedFormat
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - Decoder*::skip
    - Stats::max
    - reinterpret_cast<const S2Point*>
    - Decoder*::get_varint64
    - ABSL_LOG
    - Decoder*::avail
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::InitUncompressedFormat(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - level
    - face
    - si
    - ti
    argTypes:
    - int
    - int
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: s2coding::CellPoint
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CellPoint(int level, int face, uint32_t si, uint32_t ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: s2coding::BitMask
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BitMask(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: s2coding::MaxBitsForLevel
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MaxBitsForLevel(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:310,1
    - Dst: s2coding::MaxBitsForLevel
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - level
    - base_bits
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: s2coding::BaseShift
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - s2coding::MaxBitsForLevel
    - max
    linkageType: ''
    returnType: int
    signature: int BaseShift(int level, int base_bits)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::ChooseBestLevel
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:480,1
    - Dst: s2coding::EncodeS2PointVectorFast
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:482,1
    - Dst: s2coding::ConvertCellsToValues
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:492,1
    - Dst: s2coding::ChooseBase
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:497,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:500,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:502,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:503,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:504,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:505,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:506,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:507,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:508,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:511,1
    - Dst: s2coding::BaseShift
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:514,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:515,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:520,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:521,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:521,1
    - Dst: s2coding::GetBlockCode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:522,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:522,1
    - Dst: StringVectorEncoder::AddViaEncoder
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:526,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:530,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:531,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:532,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:533,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:534,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:544,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:545,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:552,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:553,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:555,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:560,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:564,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:565,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:567,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:570,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:574,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:574,1
    - Dst: Encoder*::base
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:577,1
    - Dst: Encoder*::length
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:577,1
    - Dst: Encoder*::RemoveLast
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:578,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:581,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:585,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:586,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:587,1
    - Dst: vector::data
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:587,1
    - Dst: StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:590,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 2
    argNames:
    - points
    - encoder
    argTypes:
    - Span<const S2Point>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 591
    functionName: s2coding::EncodeS2PointVectorCompact
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - s2coding::ChooseBase
    - s2coding::BaseShift
    - s2coding::EncodeUintWithLength
    - Encoder*::Ensure
    - vector::size
    - Encoder*::length
    - ABSL_DCHECK_GE
    - Encoder*::put8
    - Encoder*::RemoveLast
    - Encoder*::putn
    - min
    - StringVectorEncoder::AddViaEncoder
    - s2coding::EncodeS2PointVectorFast
    - vector::push_back
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_LE
    - s2coding::GetBlockCode
    - Encoder*::base
    - s2coding::ConvertCellsToValues
    - MakeSpan
    - StringVectorEncoder::Encode
    - vector::clear
    - s2coding::ChooseBestLevel
    - s2coding::BitMask
    - vector::data
    linkageType: ''
    returnType: void
    signature: void EncodeS2PointVectorCompact(Span<const S2Point> points, Encoder*
      encoder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vector<CellPoint>*::clear
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:599,1
    - Dst: vector<CellPoint>*::reserve
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:600,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:600,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:607,1
    - Dst: vector<CellPoint>*::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:608,1
    - Dst: s2coding::CellPoint
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:608,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - points
    - cell_points
    argTypes:
    - Span<const S2Point>
    - vector<CellPoint>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 597
    functionDepth: 4
    functionLinenumber: 597
    functionLinenumberEnd: 631
    functionName: s2coding::ChooseBestLevel
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - Span<const S2Point>::size
    - vector<CellPoint>*::push_back
    - vector<CellPoint>*::clear
    - vector<CellPoint>*::reserve
    - s2coding::CellPoint
    - S2::XYZtoFaceSiTi
    linkageType: ''
    returnType: int
    signature: "int ChooseBestLevel(Span<const S2Point> points,\n                    vector<CellPoint>*
      cell_points)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:642,1
    - Dst: absl::Span<const CellPoint>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:642,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:647,1
    - Dst: s2coding::InterleaveUint32BitPairs
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:658,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:659,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:659,1
    - Dst: s2coding::MaxBitsForLevel
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:659,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cell_points
    - level
    - have_exceptions
    argTypes:
    - absl::Span<const CellPoint>
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 664
    functionName: s2coding::ConvertCellsToValues
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - vector::push_back
    - s2coding::InterleaveUint32BitPairs
    - absl::Span<const CellPoint>::size
    - ABSL_DCHECK_LE
    - vector::reserve
    - s2coding::BitMask
    - s2coding::MaxBitsForLevel
    linkageType: ''
    returnType: vector<uint64_t>
    signature: "vector<uint64_t> ConvertCellsToValues(absl::Span<const CellPoint>
      cell_points,\n                                      int level, bool* have_exceptions)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:672,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:673,1
    - Dst: absl::Span<const uint64_t>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:689,1
    - Dst: max<int>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:690,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:690,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:691,1
    - Dst: s2coding::BaseShift
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:691,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:692,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:698,1
    - Dst: s2coding::MaxBitsForLevel
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:699,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:711,1
    - Dst: s2coding::BaseShift
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - values
    - level
    - have_exceptions
    - base_bits
    argTypes:
    - absl::Span<const uint64_t>
    - int
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 712
    functionName: s2coding::ChooseBase
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - exactfloat_internal::countr_zero
    - s2coding::BaseShift
    - min
    - s2coding::BitMask
    - max<int>
    - s2coding::MaxBitsForLevel
    - absl::Span<const uint64_t>::size
    - max
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t ChooseBase(absl::Span<const uint64_t> values, int level,\n
      \                   bool have_exceptions, int* base_bits)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:719,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - d_min
    - d_max
    - delta_bits
    - overlap_bits
    - have_exceptions
    argTypes:
    - uint64_t
    - uint64_t
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 730
    functionName: s2coding::CanEncode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 1
    functionsReached:
    - s2coding::BitMask
    linkageType: ''
    returnType: bool
    signature: "bool CanEncode(uint64_t d_min, uint64_t d_max, int delta_bits, int
      overlap_bits,\n               bool have_exceptions)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:742,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:743,1
    - Dst: max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:793,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:793,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:793,1
    - Dst: s2coding::CanEncode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:795,1
    - Dst: s2coding::CanEncode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:796,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:799,1
    - Dst: s2coding::CanEncode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:801,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:802,1
    - Dst: s2coding::CanEncode
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:802,1
    - Dst: Span<const uint64_t>::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:813,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:814,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:820,1
    - Dst: s2coding::BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:826,1
    - Dst: ABSL_ASSUME
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:828,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:829,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - values
    - base
    - have_exceptions
    argTypes:
    - Span<const uint64_t>
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 834
    functionName: s2coding::GetBlockCode
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - s2coding::CanEncode
    - ABSL_DCHECK_LE
    - min
    - s2coding::BitMask
    - ABSL_ASSUME
    - Span<const uint64_t>::size
    - static_cast<int>
    - max
    - exactfloat_internal::bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: BlockCode
    signature: "BlockCode GetBlockCode(Span<const uint64_t> values, uint64_t base,\n
      \                      bool have_exceptions)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:839,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:840,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:841,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:842,1
    - Dst: DecodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:852,1
    - Dst: BaseShift
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:853,1
    - Dst: blocks::Init
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:856,1
    - Dst: blocks::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:857,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 863
    functionName: s2coding::EncodedS2PointVector::InitCellIdsFormat
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - blocks::size
    - ABSL_DCHECK_EQ
    - Stats::max
    - blocks::Init
    - BaseShift
    - DecodeUintWithLength
    - Decoder*::avail
    - Decoder*::get8
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2PointVector::InitCellIdsFormat(Decoder* decoder)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:869,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:871,1
    - Dst: absl::string_view::empty
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:876,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:877,1
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:879,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:880,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:895,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:898,1
    - Dst: GetUintWithLength<uint64_t>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:900,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:909,1
    - Dst: GetUintWithLength<uint64_t>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:911,1
    - Dst: BitMask
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:913,1
    - Dst: min
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:918,1
    - Dst: Error
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:922,1
    - Dst: reinterpret_cast<const S2Point*>
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:924,1
    - Dst: DeinterleaveUint32BitPairs
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:936,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:940,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:940,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:940,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:941,1
    - Dst: S2::SiTitoST
      Src: /src/s2geometry/src/s2/encoded_s2point_vector.cc:941,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - i
    - error
    argTypes:
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 942
    functionName: s2coding::EncodedS2PointVector::DecodeCellIdsFormat
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    functionUses: 2
    functionsReached:
    - S2Error::DataLoss
    - GetUintWithLength<uint64_t>
    - BitMask
    - S2::STtoUV
    - S2Point
    - Error
    - reinterpret_cast<const S2Point*>
    - absl::string_view::size
    - min
    - DeinterleaveUint32BitPairs
    - absl::string_view::empty
    - S2::SiTitoST
    - absl::string_view::data
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point EncodedS2PointVector::DecodeCellIdsFormat(int i, S2Error* error)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::FromPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' center'
    - ' size'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: S2LatLngRect::FromCenterSize
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRect::FromPoint
    linkageType: ''
    returnType: S2LatLngRect
    signature: "S2LatLngRect S2LatLngRect::FromCenterSize(const S2LatLng& center,\n
      \                                         const S2LatLng& size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:56,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:56,1
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: S2LatLngRect::FromPoint
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRect::is_valid
    - S2LatLngRect::S2LatLngRect
    - ABSL_DLOG_IF
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRect::FromPoint(const S2LatLng& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:64,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:64,1
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:66,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:66,1
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:69,1
    - Dst: R1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:69,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:69,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:70,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:71,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:71,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p1'
    - ' p2'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: S2LatLngRect::FromPointPair
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 3
    functionsReached:
    - S2LatLngRect::is_valid
    - R1Interval::FromPointPair
    - S2LatLngRect::S2LatLngRect
    - S1Interval::FromPointPair
    - lng
    - ABSL_DLOG_IF
    - lat
    linkageType: ''
    returnType: S2LatLngRect
    signature: "S2LatLngRect S2LatLngRect::FromPointPair(const S2LatLng& p1,\n                                         const
      S2LatLng& p2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: S2LatLngRect::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::S2LatLngRect
    linkageType: ''
    returnType: S2Region
    signature: S2Region * S2LatLngRect::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: S2LatLngRect::GetVertex
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromRadians
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2LatLngRect::GetVertex(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:87,1
    - Dst: S2LatLngRect::GetCenter
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:87,1
    - Dst: S2LatLngRect::GetCenter
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: S2LatLngRect::GetCenter
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 1
    functionsReached:
    - S2LatLng::FromRadians
    - S2LatLngRect::GetCenter
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2LatLngRect::GetCenter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:91,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:91,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: S2LatLngRect::GetSize
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromRadians
    - GetLength
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng S2LatLngRect::GetSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:95,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:98,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:98,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:98,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:98,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: S2LatLngRect::Area
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::is_empty
    - lng
    - S2LatLngRect::lat_lo
    - sin
    - S2LatLngRect::lat_hi
    linkageType: ''
    returnType: double
    signature: double S2LatLngRect::Area() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:141,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:141,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:142,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:145,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:148,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:149,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:149,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:150,1
    - Dst: S2LatLngRect::GetCenter
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:150,1
    - Dst: S1Angle::SinCos
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:152,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 154
    functionName: S2LatLngRect::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - GetLength
    - S2LatLngRect::is_empty
    - S1Angle::SinCos
    - S2Point
    - S1Angle::Radians
    - S2LatLngRect::lat_lo
    - sin
    - S2LatLngRect::lat_hi
    - S2LatLngRect::GetCenter
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2LatLngRect::GetCentroid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:157,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:157,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:160,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:160,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:161,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: S2LatLngRect::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 6
    functionsReached:
    - S2LatLngRect::is_valid
    - lng
    - ABSL_DLOG_IF
    - lat
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::Contains(const S2LatLng& ll) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:165,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: S2LatLngRect::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 1
    functionsReached:
    - S2LatLng
    - S2LatLngRect::InteriorContains
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::InteriorContains(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:169,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:169,1
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:172,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:172,1
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:173,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: S2LatLngRect::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 2
    functionsReached:
    - S2LatLngRect::is_valid
    - lng
    - S2LatLngRect::InteriorContains
    - ABSL_DLOG_IF
    - lat
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::InteriorContains(const S2LatLng& ll) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:177,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: S2LatLngRect::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 7
    functionsReached:
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::Contains(const S2LatLngRect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:181,1
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: S2LatLngRect::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 3
    functionsReached:
    - S2LatLngRect::InteriorContains
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::InteriorContains(const S2LatLngRect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Intersects
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:186,1
    - Dst: S2LatLngRect::Intersects
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: S2LatLngRect::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 1
    functionsReached:
    - S2LatLngRect::Intersects
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::Intersects(const S2LatLngRect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:190,1
    - Dst: S2LatLngRect::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: S2LatLngRect::InteriorIntersects
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 1
    functionsReached:
    - S2LatLngRect::InteriorIntersects
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::InteriorIntersects(const S2LatLngRect& other) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:196,1
    - Dst: S2LatLngRect::is_full
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:197,1
    - Dst: S2LatLngRect::IntersectsLngEdge
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:198,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:198,1
    - Dst: S2LatLngRect::IntersectsLngEdge
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:199,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:199,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:201,1
    - Dst: S2LatLngRect::IntersectsLatEdge
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:201,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:201,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:204,1
    - Dst: S2LatLngRect::IntersectsLatEdge
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:204,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - ' v0'
    - ' v1'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: S2LatLngRect::BoundaryIntersects
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::is_empty
    - S2LatLngRect::IntersectsLatEdge
    - S2LatLngRect::is_full
    - S2LatLngRect::IntersectsLngEdge
    - S2LatLngRect::hi
    - S2LatLngRect::lo
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngRect::BoundaryIntersects(const S2Point& v0,\n                                      const
      S2Point& v1) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:211,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: S2LatLngRect::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 3
    functionsReached:
    - S2LatLngRect::AddPoint
    - S2LatLng
    linkageType: ''
    returnType: void
    signature: void S2LatLngRect::AddPoint(const S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:215,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:215,1
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:218,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:218,1
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:219,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ll'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: S2LatLngRect::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 4
    functionsReached:
    - S2LatLngRect::is_valid
    - S2LatLngRect::AddPoint
    - lng
    - ABSL_DLOG_IF
    - lat
    linkageType: ''
    returnType: void
    signature: void S2LatLngRect::AddPoint(const S2LatLng& ll)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Expanded
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:223,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:223,1
    - Dst: S2LatLngRect::Expanded
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:224,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:224,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:225,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:225,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:225,1
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:226,1
    - Dst: R1Interval::Intersection
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:226,1
    - Dst: S2LatLngRect::FullLat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' margin'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: S2LatLngRect::Expanded
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 3
    functionsReached:
    - S2LatLngRect::Expanded
    - S2LatLngRect::S2LatLngRect
    - S1Interval::is_empty
    - S2LatLngRect::FullLat
    - lng
    - S2LatLngRect::Empty
    - R1Interval::is_empty
    - lat
    - R1Interval::Intersection
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRect::Expanded(const S2LatLng& margin) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:230,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:230,1
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:231,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: S2LatLngRect::PolarClosure
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S1Interval::Full
    - S2LatLngRect::lo
    - S2LatLngRect::hi
    - S2LatLngRect::S2LatLngRect
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRect::PolarClosure() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:237,1
    - Dst: S2LatLngRect::Union
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:237,1
    - Dst: S2LatLngRect::Union
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: S2LatLngRect::Union
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 3
    functionsReached:
    - S2LatLngRect::S2LatLngRect
    - S2LatLngRect::Union
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRect::Union(const S2LatLngRect& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Intersection
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:242,1
    - Dst: S2LatLngRect::Intersection
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:243,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:244,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:244,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:246,1
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: S2LatLngRect::Intersection
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 2
    functionsReached:
    - S2LatLngRect::S2LatLngRect
    - S1Interval::is_empty
    - S2LatLngRect::Empty
    - S2LatLngRect::Intersection
    - R1Interval::is_empty
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRect::Intersection(const S2LatLngRect& other)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:252,1
    - Dst: S2LatLngRect::Union
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:261,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:261,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:261,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:269,1
    - Dst: S2LatLngRect::FullLat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:269,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:269,1
    - Dst: S2LatLngRect::FullLat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:270,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:270,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:270,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:271,1
    - Dst: S2LatLngRect::FullLat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:271,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:271,1
    - Dst: S2LatLngRect::FullLat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:272,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:272,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:272,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:273,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:274,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:279,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:279,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:279,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:286,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:286,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:287,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:288,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:290,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:291,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:292,1
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - distance
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 296
    functionName: S2LatLngRect::ExpandedByDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - R1Interval::lo
    - S2Cap
    - S2LatLngRect::FullLat
    - asin
    - S1Interval::is_empty
    - R1Interval::hi
    - S2LatLngRect::S2LatLngRect
    - lng
    - S2LatLngRect::Empty
    - S1Angle::radians
    - sin
    - max
    - R1Interval::is_empty
    - lat
    - S1Angle::Zero
    - S2LatLngRect::GetVertex
    - cos
    - S2LatLngRect::Union
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRect::ExpandedByDistance(S1Angle distance) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:303,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:303,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:306,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:306,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:309,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:312,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:316,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:317,1
    - Dst: GetLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:323,1
    - Dst: S2LatLngRect::GetCenter
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:324,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:324,1
    - Dst: S2Cap::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:326,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:326,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:328,1
    - Dst: S2Cap::height
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 332
    functionName: S2LatLngRect::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2Cap::Empty
    - GetLength
    - S2LatLngRect::is_empty
    - S2Cap::AddPoint
    - S1Angle::Zero
    - S2Point
    - S2LatLngRect::GetCenter
    - S1Angle::Radians
    - S2Cap::height
    - S2LatLngRect::hi
    - S2LatLngRect::lo
    - S2LatLngRect::GetVertex
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2LatLngRect::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: S2LatLngRect::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRect::GetRectBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::GetCapBound
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: S2LatLngRect::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::GetCapBound
    linkageType: ''
    returnType: void
    signature: void S2LatLngRect::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:353,1
    - Dst: S2LatLngRect::GetRectBound
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: S2LatLngRect::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 8
    functionsReached:
    - S2LatLngRect::GetRectBound
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::Contains(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Intersects
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:358,1
    - Dst: S2LatLngRect::GetRectBound
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: S2LatLngRect::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::Intersects
    - S2LatLngRect::GetRectBound
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::MayIntersect(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:362,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:364,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:365,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:365,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:366,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:366,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:367,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:367,1
    - Dst: Encoder*::putdouble
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:368,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:368,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:370,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 371
    functionName: S2LatLngRect::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - Encoder*::put8
    - Encoder*::putdouble
    - S2LatLngRect::hi
    - Encoder*::Ensure
    - S2LatLngRect::lo
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: void S2LatLngRect::Encode(Encoder* encoder) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:374,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:376,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:379,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:380,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:381,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:382,1
    - Dst: Decoder*::getdouble
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:383,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:384,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:386,1
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:387,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: S2LatLngRect::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::is_valid
    - R1Interval
    - S1Interval
    - ABSL_DLOG_IF
    - Decoder*::avail
    - Decoder*::get8
    - absl::GetFlag
    - Decoder*::getdouble
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::Decode(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:401,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:402,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:402,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:403,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' lat'
    - lng
    argTypes:
    - S2Point
    - S2Point
    - R1Interval
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 404
    functionName: S2LatLngRect::IntersectsLngEdge
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 1
    functionsReached:
    - S2LatLng::FromRadians
    - S2LatLngRect::lo
    - S2LatLngRect::hi
    - S2::CrossingSign
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngRect::IntersectsLngEdge(const S2Point& a, const S2Point&
      b,\n                                     const R1Interval& lat, double lng)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:411,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:411,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:412,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:412,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:415,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:420,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:420,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:421,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:422,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:422,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:423,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:427,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:428,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:431,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:433,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:434,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:442,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:443,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:443,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:443,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:444,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:444,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:444,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:446,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:449,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:449,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:451,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:454,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:454,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - lat
    - ' lng'
    argTypes:
    - S2Point
    - S2Point
    - double
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 457
    functionName: S2LatLngRect::IntersectsLatEdge
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - S1Interval::Contains
    - atan2
    - fabs
    - S2Point
    - sqrt
    - S1Interval::FromPointPair
    - S2::IsUnitLength
    - S2LatLngRect::Contains
    - sin
    - S2::RobustCrossProd
    - ABSL_DCHECK_GT
    - Vector3_d::CrossProd
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngRect::IntersectsLatEdge(const S2Point& a, const S2Point&
      b,\n                                     double lat, const S1Interval& lng)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:464,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:465,1
    - Dst: GetCenterRaw
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:465,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:466,1
    - Dst: S2LatLngRect::GetCenter
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:466,1
    - Dst: S2LatLngRect::Intersects
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:469,1
    - Dst: S2LatLngRect::GetRectBound
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:469,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:478,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:479,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:480,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:481,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:481,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:489,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:490,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:490,1
    - Dst: S2LatLngRect::Intersects
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:491,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:495,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:495,1
    - Dst: S2LatLngRect::IntersectsLngEdge
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:496,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:496,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:498,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:498,1
    - Dst: S2LatLngRect::IntersectsLngEdge
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:499,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:499,1
    - Dst: S2LatLngRect::IntersectsLatEdge
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:501,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:501,1
    - Dst: S2LatLngRect::IntersectsLatEdge
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:502,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:502,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 505
    functionName: S2LatLngRect::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 3
    functionsReached:
    - GetCenterRaw
    - S1Interval::Contains
    - S2LatLngRect::is_empty
    - S2LatLngRect::IntersectsLatEdge
    - S2LatLngRect::Intersects
    - S2LatLng
    - S2LatLngRect::IntersectsLngEdge
    - S1Interval::FromPointPair
    - lng
    - S2LatLngRect::hi
    - S2LatLngRect::GetRectBound
    - S2LatLngRect::GetCenter
    - S2LatLngRect::lo
    - S2LatLngRect::GetVertex
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::Intersects(const S2Cell& cell) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:510,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:510,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:511,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:511,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:514,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:514,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:515,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:515,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:516,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:522,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:523,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:523,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:524,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:525,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:527,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:528,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:536,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:537,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:537,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:537,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:538,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:538,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:538,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:539,1
    - Dst: S1Interval::GetLength
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:539,1
    - Dst: S2LatLngRect::lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:540,1
    - Dst: S2LatLngRect::lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:541,1
    - Dst: S2LatLngRect::lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:543,1
    - Dst: S2LatLngRect::lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:544,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:552,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:552,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:553,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:553,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:554,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:554,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:555,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:555,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:556,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:556,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:557,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:557,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:558,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:558,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 560
    functionName: S2LatLngRect::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::lng_lo
    - S2LatLngRect::is_empty
    - S2::GetDistance
    - S1Angle::S1Angle
    - S1Angle::Radians
    - S2LatLng
    - min
    - S1Interval::GetLength
    - S1Interval::FromPointPair
    - lng
    - S2LatLngRect::lat_lo
    - S2LatLngRect::lat_hi
    - lat
    - S2LatLngRect::lng_hi
    - ABSL_DCHECK
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2LatLngRect::GetDistance(const S2LatLngRect& other) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:566,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:566,1
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:568,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:568,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:571,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:571,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:572,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:572,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:572,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:572,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:572,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:573,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:573,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:576,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:576,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:578,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:578,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:579,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:581,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:583,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:583,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:584,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:584,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:585,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 586
    functionName: S2LatLngRect::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::is_valid
    - S1Interval::Contains
    - ToPoint
    - S2LatLngRect::is_empty
    - S2::GetDistance
    - S1Angle::Radians
    - S2LatLng::FromRadians
    - lng
    - ABSL_DLOG_IF
    - lat
    - max
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2LatLngRect::GetDistance(const S2LatLng& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:589,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:589,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 591
    functionName: S2LatLngRect::GetHausdorffDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::GetDirectedHausdorffDistance
    - max
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2LatLngRect::GetHausdorffDistance(const S2LatLngRect& other)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:595,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:596,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:598,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:599,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:602,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:602,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:603,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:604,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:604,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 605
    functionName: S2LatLngRect::GetDirectedHausdorffDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 2
    functionsReached:
    - S2LatLngRect::GetDirectedHausdorffDistance
    - S2LatLngRect::is_empty
    - S1Angle::Radians
    - lng
    - lat
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle S2LatLngRect::GetDirectedHausdorffDistance(\n    const S2LatLngRect&
      other) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:639,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:640,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:643,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:643,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:649,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:649,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:650,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:650,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:654,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:657,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:657,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:658,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:658,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:659,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:660,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:661,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:665,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:665,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:666,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:666,1
    - Dst: S2LatLngRect::GetBisectorIntersection
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:670,1
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:671,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:672,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:673,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:673,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:677,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:678,1
    - Dst: S2LatLngRect::GetInteriorMaxDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:678,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:679,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:679,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:679,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:679,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:681,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:682,1
    - Dst: S2LatLngRect::GetInteriorMaxDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:682,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:683,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:683,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:683,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:683,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - lng_diff
    - ' a'
    - ' b'
    argTypes:
    - double
    - R1Interval
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 688
    functionName: S2LatLngRect::GetDirectedHausdorffDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 3
    functionsReached:
    - S2LatLngRect::GetDirectedHausdorffDistance
    - S2LatLngRect::GetBisectorIntersection
    - S2::GetDistance
    - ABSL_DCHECK_LE
    - S1Angle::S1Angle
    - S1Angle::Radians
    - R1Interval
    - min
    - S2LatLng::FromRadians
    - S1Angle
    - S2LatLngRect::hi
    - S2LatLngRect::GetInteriorMaxDistance
    - max
    - S2LatLng::Latitude
    - S2LatLngRect::Contains
    - S2LatLngRect::lo
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle S2LatLngRect::GetDirectedHausdorffDistance(\n    double lng_diff,
      const R1Interval& a, const R1Interval& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:694,1
    - Dst: S2LatLngRect::GetCenter
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:695,1
    - Dst: S2LatLng::S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:697,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:699,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:701,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:704,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:705,1
    - Dst: S2LatLng::ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' lat'
    - lng
    argTypes:
    - R1Interval
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 706
    functionName: S2LatLngRect::GetBisectorIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 1
    functionsReached:
    - fabs
    - S2LatLng::ToPoint
    - S2Point
    - S2LatLng::FromRadians
    - S2::RobustCrossProd
    - S2LatLngRect::GetCenter
    - S2LatLng::S2LatLng
    linkageType: ''
    returnType: S2Point
    signature: "S2Point S2LatLngRect::GetBisectorIntersection(const R1Interval& lat,\n
      \                                             double lng)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:715,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:715,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:715,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:720,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:720,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:720,1
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:721,1
    - Dst: S2LatLng::Latitude
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:722,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:723,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' a_lat'
    - ' b'
    argTypes:
    - R1Interval
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 727
    functionName: S2LatLngRect::GetInteriorMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 1
    functionsReached:
    - S2LatLngRect::is_empty
    - z
    - S2Point
    - S1Angle::Radians
    - S1Angle
    - S2LatLngRect::InteriorContains
    - S2LatLng::Latitude
    - x
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle S2LatLngRect::GetInteriorMaxDistance(const R1Interval& a_lat,\n
      \                                            const S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:730,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 731
    functionName: S2LatLngRect::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 12
    functionsReached:
    - S2LatLng
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::Contains(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:735,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:735,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:736,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' other'
    - max_error
    argTypes:
    - S2LatLngRect
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 737
    functionName: S2LatLngRect::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 3
    functionsReached:
    - S2LatLngRect::ApproxEquals
    - S1Angle::radians
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngRect::ApproxEquals(const S2LatLngRect& other,\n                                S1Angle
      max_error) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:741,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:741,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:742,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' other'
    - ' max_error'
    argTypes:
    - S2LatLngRect
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: S2LatLngRect::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 4
    functionsReached:
    - lat
    - lng
    - S2LatLngRect::ApproxEquals
    linkageType: ''
    returnType: bool
    signature: "bool S2LatLngRect::ApproxEquals(const S2LatLngRect& other,\n                                const
      S2LatLng& max_error) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:746,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.cc:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' r'
    argTypes:
    - std::ostream
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 747
    functionName: '& operator<<(std::ostream& os, const S2LatLngRect& r)'
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.cc
    functionUses: 0
    functionsReached:
    - lo
    - hi
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const S2LatLngRect& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: EncodedS2ShapeIndex::num_shape_ids
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_shape_ids() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: EncodedS2ShapeIndex::Iterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: bool
    signature: bool Locate(const S2Point& target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateImpl
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: EncodedS2ShapeIndex::Iterator::Locate
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - LocateImpl
    linkageType: ''
    returnType: S2CellRelation
    signature: S2CellRelation Locate(S2CellId target) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Iterator>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: EncodedS2ShapeIndex::Iterator::Clone
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Iterator>
    linkageType: ''
    returnType: std::unique_ptr<IteratorBase>
    signature: std::unique_ptr<IteratorBase> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<S2Shape*>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: EncodedS2ShapeIndex::kUndecodedShape
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 2
    functionsReached:
    - reinterpret_cast<S2Shape*>
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape * kUndecodedShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kUndecodedShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: EncodedS2ShapeIndex::AtomicShape::AtomicShape
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - kUndecodedShape
    linkageType: ''
    returnType: void
    signature: void AtomicShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: EncodedS2ShapeIndex::EncodedS2ShapeIndex
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex(const EncodedS2ShapeIndex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: operator=(const EncodedS2ShapeIndex&)
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const EncodedS2ShapeIndex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - pos
    argTypes:
    - EncodedS2ShapeIndex*
    - InitialPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: "EncodedS2ShapeIndex::Iterator::Iterator(\n    const EncodedS2ShapeIndex*
      index, InitialPosition pos)"
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: "void EncodedS2ShapeIndex::Iterator::Iterator(\n    const EncodedS2ShapeIndex*
      index, InitialPosition pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodedS2ShapeIndex*::cell_ids_::size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - index
    - pos
    argTypes:
    - EncodedS2ShapeIndex*
    - InitialPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: "EncodedS2ShapeIndex::Iterator::Init(\n    const EncodedS2ShapeIndex*
      index, InitialPosition pos)"
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - EncodedS2ShapeIndex*::cell_ids_::size
    linkageType: ''
    returnType: void
    signature: "void EncodedS2ShapeIndex::Iterator::Init(\n    const EncodedS2ShapeIndex*
      index, InitialPosition pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: done
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:306,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: EncodedS2ShapeIndex::Iterator::id() const
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - S2CellId::Sentinel
    - done
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId EncodedS2ShapeIndex::Iterator::id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: EncodedS2ShapeIndex::Iterator::done() const
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2ShapeIndex::Iterator::done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:317,1
    - Dst: done
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:317,1
    - Dst: GetCell
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: '& EncodedS2ShapeIndex::Iterator::cell() const'
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - GetCell
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: S2ShapeIndexCell
    signature: S2ShapeIndexCell & EncodedS2ShapeIndex::Iterator::cell() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: EncodedS2ShapeIndex::Iterator::Begin()
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex::Iterator::Begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 327
    functionName: EncodedS2ShapeIndex::Iterator::Finish()
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex::Iterator::Finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:330,1
    - Dst: done
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: EncodedS2ShapeIndex::Iterator::Next()
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - done
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex::Iterator::Next()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: EncodedS2ShapeIndex::Iterator::Prev()
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2ShapeIndex::Iterator::Prev()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cell_ids_::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: EncodedS2ShapeIndex::Iterator::Seek(S2CellId target)
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - cell_ids_::lower_bound
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex::Iterator::Seek(S2CellId target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Iterator>
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - InitialPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: EncodedS2ShapeIndex::NewIterator
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Iterator>
    linkageType: ''
    returnType: std::unique_ptr<EncodedS2ShapeIndex::IteratorBase>
    signature: std::unique_ptr<EncodedS2ShapeIndex::IteratorBase> EncodedS2ShapeIndex::NewIterator(InitialPosition
      pos) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:352,1
    - Dst: EncodedS2ShapeIndex::kUndecodedShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:353,1
    - Dst: EncodedS2ShapeIndex::GetShape
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: EncodedS2ShapeIndex::shape
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 3
    functionsReached:
    - EncodedS2ShapeIndex::kUndecodedShape
    - EncodedS2ShapeIndex::GetShape
    - load
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape * EncodedS2ShapeIndex::shape(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: EncodedS2ShapeIndex::cell_decoded
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 1
    functionsReached:
    - load
    linkageType: ''
    returnType: bool
    signature: bool EncodedS2ShapeIndex::cell_decoded(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:367,1
    - Dst: IsHeld
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:367,1
    - Dst: std::atomic*::load
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:372,1
    - Dst: std::atomic*::store
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: EncodedS2ShapeIndex::set_cell_decoded
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 1
    functionsReached:
    - std::atomic*::load
    - std::atomic*::store
    - IsHeld
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void EncodedS2ShapeIndex::set_cell_decoded(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/encoded_s2shape_index.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 387
    functionName: EncodedS2ShapeIndex::max_cell_cache_size
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2shape_index.h
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int EncodedS2ShapeIndex::max_cell_cache_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: s2coding::EncodedS2CellIdVector::EncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2CellIdVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2CellIdVector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: s2coding::EncodedS2CellIdVector::size
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h
    functionUses: 5
    functionsReached:
    - s2coding::EncodedS2CellIdVector::size
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedS2CellIdVector::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: EncodedS2CellIdVector::operator[](int i) const
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h
    functionUses: 0
    functionsReached:
    - S2CellId
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId EncodedS2CellIdVector::operator[](int i) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:112,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:113,1
    - Dst: s2coding::EncodedS2CellIdVector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:113,1
    - Dst: s2coding::EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:114,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: s2coding::EncodedS2CellIdVector::lower_bound
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h
    functionUses: 1
    functionsReached:
    - S2CellId::id
    - s2coding::EncodedS2CellIdVector::size
    - s2coding::EncodedS2CellIdVector::lower_bound
    - S2CellId::End
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedS2CellIdVector::lower_bound(S2CellId target) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: s2coding::EncodedS2CellIdVector::EncodedS2CellIdVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2CellIdVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::EncodedS2CellIdVector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: s2coding::EncodedS2CellIdVector::size
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h
    functionUses: 7
    functionsReached:
    - s2coding::EncodedS2CellIdVector::size
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedS2CellIdVector::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: EncodedS2CellIdVector::operator[](int i) const
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h
    functionUses: 0
    functionsReached:
    - S2CellId
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId EncodedS2CellIdVector::operator[](int i) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:112,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:113,1
    - Dst: s2coding::EncodedS2CellIdVector::size
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:113,1
    - Dst: s2coding::EncodedS2CellIdVector::lower_bound
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:114,1
    - Dst: S2CellId::id
      Src: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: s2coding::EncodedS2CellIdVector::lower_bound
    functionSourceFile: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h
    functionUses: 2
    functionsReached:
    - S2CellId::id
    - s2coding::EncodedS2CellIdVector::size
    - s2coding::EncodedS2CellIdVector::lower_bound
    - S2CellId::End
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedS2CellIdVector::lower_bound(S2CellId target) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rect'
    argTypes:
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: S2R2Rect::S2R2Rect
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2R2Rect::S2R2Rect(const R2Rect& rect)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' lo'
    - ' hi'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: S2R2Rect::S2R2Rect
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2R2Rect::S2R2Rect(const R2Point& lo, const R2Point& hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - R1Interval
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: S2R2Rect::S2R2Rect
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2R2Rect::S2R2Rect(const R1Interval& x, const R1Interval& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect.h:229,1
    - Dst: R2Rect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2r2rect.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' center'
    - ' size'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: S2R2Rect::FromCenterSize
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::S2R2Rect
    - R2Rect::FromCenterSize
    linkageType: ''
    returnType: S2R2Rect
    signature: "S2R2Rect S2R2Rect::FromCenterSize(const R2Point& center,\n                                         const
      R2Point& size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect.h:233,1
    - Dst: R2Rect::FromPoint
      Src: /src/s2geometry/src/s2/s2r2rect.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: S2R2Rect::FromPoint
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::S2R2Rect
    - R2Rect::FromPoint
    linkageType: ''
    returnType: S2R2Rect
    signature: S2R2Rect S2R2Rect::FromPoint(const R2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect.h:237,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2r2rect.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p1'
    - ' p2'
    argTypes:
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: S2R2Rect::FromPointPair
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::S2R2Rect
    - R2Rect::FromPointPair
    linkageType: ''
    returnType: S2R2Rect
    signature: S2R2Rect S2R2Rect::FromPointPair(const R2Point& p1, const R2Point&
      p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/s2geometry/src/s2/s2r2rect.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: '& S2R2Rect::x() const'
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 0
    functionsReached:
    - x
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval & S2R2Rect::x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: y
      Src: /src/s2geometry/src/s2/s2r2rect.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: '& S2R2Rect::y() const'
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 0
    functionsReached:
    - y
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval & S2R2Rect::y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::lo
      Src: /src/s2geometry/src/s2/s2r2rect.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: S2R2Rect::lo
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 3
    functionsReached:
    - S2R2Rect::lo
    linkageType: ''
    returnType: R2Point
    signature: R2Point S2R2Rect::lo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::hi
      Src: /src/s2geometry/src/s2/s2r2rect.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: S2R2Rect::hi
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 2
    functionsReached:
    - S2R2Rect::hi
    linkageType: ''
    returnType: R2Point
    signature: R2Point S2R2Rect::hi() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 244
    functionName: '& S2R2Rect::operator[](int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval & S2R2Rect::operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: '& S2R2Rect::operator[](int i)'
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval & S2R2Rect::operator[](int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect.h:246,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2r2rect.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 246
    functionName: S2R2Rect::Empty
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 7
    functionsReached:
    - S2R2Rect::S2R2Rect
    - R2Rect::Empty
    linkageType: ''
    returnType: S2R2Rect
    signature: S2R2Rect S2R2Rect::Empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::is_valid
      Src: /src/s2geometry/src/s2/s2r2rect.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 247
    functionName: S2R2Rect::is_valid
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 2
    functionsReached:
    - S2R2Rect::is_valid
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::is_empty
      Src: /src/s2geometry/src/s2/s2r2rect.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 248
    functionName: S2R2Rect::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 2
    functionsReached:
    - S2R2Rect::is_empty
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 249
    functionName: S2R2Rect::GetVertex
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 4
    functionsReached:
    - S2R2Rect::GetVertex
    linkageType: ''
    returnType: R2Point
    signature: R2Point S2R2Rect::GetVertex(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: S2R2Rect::GetVertex
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 5
    functionsReached:
    - S2R2Rect::GetVertex
    linkageType: ''
    returnType: R2Point
    signature: R2Point S2R2Rect::GetVertex(int i, int j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::GetCenter
      Src: /src/s2geometry/src/s2/s2r2rect.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: S2R2Rect::GetCenter
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 2
    functionsReached:
    - S2R2Rect::GetCenter
    linkageType: ''
    returnType: R2Point
    signature: R2Point S2R2Rect::GetCenter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::GetSize
      Src: /src/s2geometry/src/s2/s2r2rect.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: S2R2Rect::GetSize
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::GetSize
    linkageType: ''
    returnType: R2Point
    signature: R2Point S2R2Rect::GetSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: S2R2Rect::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 2
    functionsReached:
    - S2R2Rect::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::Contains(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::InteriorContains
      Src: /src/s2geometry/src/s2/s2r2rect.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: S2R2Rect::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 2
    functionsReached:
    - S2R2Rect::InteriorContains
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::InteriorContains(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: S2R2Rect::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 3
    functionsReached:
    - S2R2Rect::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::Contains(const S2R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::InteriorContains
      Src: /src/s2geometry/src/s2/s2r2rect.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: S2R2Rect::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 3
    functionsReached:
    - S2R2Rect::InteriorContains
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::InteriorContains(const S2R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::Intersects
      Src: /src/s2geometry/src/s2/s2r2rect.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: S2R2Rect::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::Intersects
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::Intersects(const S2R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::InteriorIntersects
      Src: /src/s2geometry/src/s2/s2r2rect.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: S2R2Rect::InteriorIntersects
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::InteriorIntersects
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::InteriorIntersects(const S2R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/s2r2rect.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: S2R2Rect::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 3
    functionsReached:
    - S2R2Rect::AddPoint
    linkageType: ''
    returnType: void
    signature: void S2R2Rect::AddPoint(const R2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::Project
      Src: /src/s2geometry/src/s2/s2r2rect.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: S2R2Rect::Project
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 2
    functionsReached:
    - S2R2Rect::Project
    linkageType: ''
    returnType: R2Point
    signature: R2Point S2R2Rect::Project(const R2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect.h:280,1
    - Dst: S2R2Rect::Expanded
      Src: /src/s2geometry/src/s2/s2r2rect.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' margin'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: S2R2Rect::Expanded
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::S2R2Rect
    - S2R2Rect::Expanded
    linkageType: ''
    returnType: S2R2Rect
    signature: S2R2Rect S2R2Rect::Expanded(const R2Point& margin) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect.h:283,1
    - Dst: S2R2Rect::Expanded
      Src: /src/s2geometry/src/s2/s2r2rect.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - margin
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: S2R2Rect::Expanded
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 2
    functionsReached:
    - S2R2Rect::S2R2Rect
    - S2R2Rect::Expanded
    linkageType: ''
    returnType: S2R2Rect
    signature: S2R2Rect S2R2Rect::Expanded(double margin) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect.h:286,1
    - Dst: S2R2Rect::Union
      Src: /src/s2geometry/src/s2/s2r2rect.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: S2R2Rect::Union
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::S2R2Rect
    - S2R2Rect::Union
    linkageType: ''
    returnType: S2R2Rect
    signature: S2R2Rect S2R2Rect::Union(const S2R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect.h:289,1
    - Dst: S2R2Rect::Intersection
      Src: /src/s2geometry/src/s2/s2r2rect.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: S2R2Rect::Intersection
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::S2R2Rect
    - S2R2Rect::Intersection
    linkageType: ''
    returnType: S2R2Rect
    signature: S2R2Rect S2R2Rect::Intersection(const S2R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: S2R2Rect::operator==(const S2R2Rect& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::operator==(const S2R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: S2R2Rect::operator!=(const S2R2Rect& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::operator!=(const S2R2Rect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2r2rect.h:299,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2r2rect.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' other'
    - max_error
    argTypes:
    - S2R2Rect
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: S2R2Rect::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.h
    functionUses: 1
    functionsReached:
    - S2R2Rect::ApproxEquals
    - S1Angle::radians
    linkageType: ''
    returnType: bool
    signature: "bool S2R2Rect::ApproxEquals(const S2R2Rect& other,\n                                   S1Angle
      max_error) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:66,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:66,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - lat_lo
    - lng_lo
    - lat_hi
    - lng_hi
    argTypes:
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: RectFromDegrees
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromDegrees
    - S2LatLngRect
    linkageType: ''
    returnType: S2LatLngRect
    signature: "S2LatLngRect RectFromDegrees(double lat_lo, double lng_lo,\n                                    double
      lat_hi, double lng_hi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:72,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:74,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:75,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:76,1
    - Dst: S2LatLngRect::is_point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:76,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:77,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:78,1
    - Dst: S2LatLngRect::is_full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:78,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:79,1
    - Dst: S2LatLngRect::is_point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:79,1
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:81,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:82,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:83,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:84,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:84,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:85,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:85,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 86
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::is_valid
    - S2LatLngRect::lat
    - S2LatLngRect::is_empty
    - EXPECT_TRUE
    - S2LatLngRect::is_full
    - S2LatLngRect::S2LatLngRect
    - S2LatLngRect::lng
    - S2LatLngRect::Empty
    - S2LatLngRect::is_point
    - EXPECT_EQ
    - S2LatLngRect::Full
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, EmptyAndFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:90,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:91,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:91,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:92,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:92,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:93,1
    - Dst: S2LatLngRect::lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:93,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:94,1
    - Dst: S2LatLngRect::lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:95,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:95,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:96,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:96,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::lng_lo
    - S2LatLngRect::lat
    - EXPECT_DOUBLE_EQ
    - RectFromDegrees
    - R1Interval
    - S2LatLngRect::lng
    - S1Interval
    - S2LatLngRect::lat_lo
    - S2LatLngRect::lat_hi
    - EXPECT_EQ
    - S2LatLngRect::lng_hi
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, Accessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:102,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:102,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:102,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:103,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:103,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:103,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:104,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:104,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:108,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:108,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:109,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:110,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:111,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:111,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:112,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:116,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:116,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:117,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:118,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:119,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:119,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:120,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 122
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - RectFromDegrees
    - S1Angle::Degrees
    - S2LatLngRect::Empty
    - S2LatLng::FromDegrees
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, ApproxEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:125,1
    - Dst: S2LatLngRect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:125,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:125,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:126,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:128,1
    - Dst: S2LatLngRect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:128,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:128,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:129,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:131,1
    - Dst: S2LatLngRect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:131,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:131,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:132,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::FromCenterSize
    - S2LatLng::FromDegrees
    - RectFromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, FromCenterSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:138,1
    - Dst: S2LatLngRect::FromPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:138,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:139,1
    - Dst: S2LatLngRect::FromPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - S2LatLngRect
    - S2LatLngRect::FromPoint
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, FromPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:143,1
    - Dst: S2LatLngRect::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:143,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:143,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:144,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:146,1
    - Dst: S2LatLngRect::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:146,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:146,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:147,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2LatLngRect::FromPointPair
    - S2LatLng::FromDegrees
    - RectFromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, FromPointPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:152,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:153,1
    - Dst: S2LatLngRect::GetCenter
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:153,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:154,1
    - Dst: S2LatLngRect::GetSize
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:154,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:154,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:155,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:155,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:156,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_LT
    - R1Interval
    - S1Interval
    - S2LatLng::FromRadians
    - S2LatLngRect::Empty
    - S2LatLngRect::GetSize
    - EXPECT_EQ
    - S2LatLngRect::GetCenter
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetCenterSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:160,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:161,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:161,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:162,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:162,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:163,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:163,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:164,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:164,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:164,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:170,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:171,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:171,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:172,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:174,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:174,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:174,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:175,1
    - Dst: S2LatLngRect::GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 179
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - s2pred::Sign
    - R1Interval
    - S1Interval
    - S2LatLng::FromRadians
    - remainder
    - EXPECT_EQ
    - S2LatLngRect::GetVertex
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:183,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:184,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:187,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:187,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:187,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:188,1
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:188,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:188,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:189,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:189,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:189,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:190,1
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:190,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:190,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:191,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:191,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:192,1
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:192,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:193,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:193,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:194,1
    - Dst: S2LatLngRect::InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:194,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:195,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:195,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:195,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:196,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:196,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 197
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Point
    - S2LatLng::FromRadians
    - S2LatLng::FromDegrees
    - S2LatLngRect::InteriorContains
    - EXPECT_FALSE
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, Contains)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:208,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:209,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:210,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:211,1
    - Dst: InteriorIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:213,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:213,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:214,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:214,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:216,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:217,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:217,1
    - Dst: GetSize
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:219,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:219,1
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:221,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ' x'
    - ' y'
    - expected_relation
    - ' expected_union'
    - ' expected_intersection'
    argTypes:
    - S2LatLngRect
    - S2LatLngRect
    - string_view
    - S2LatLngRect
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 224
    functionName: TestIntervalOps
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 3
    functionsReached:
    - Intersection
    - Intersects
    - S2LatLngRect::AddPoint
    - GetSize
    - S2LatLng::FromRadians
    - lo
    - Union
    - InteriorContains
    - EXPECT_EQ
    - InteriorIntersects
    - Contains
    linkageType: ''
    returnType: void
    signature: "void TestIntervalOps(const S2LatLngRect& x, const S2LatLngRect& y,\n
      \                           string_view expected_relation,\n                            const
      S2LatLngRect& expected_union,\n                            const S2LatLngRect&
      expected_intersection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:234,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:237,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:238,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:240,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:241,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:243,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:244,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:246,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:246,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:247,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:248,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:249,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:249,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:250,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:251,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:252,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:252,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:253,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:254,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:256,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:256,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:257,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:258,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:259,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:260,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:260,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:261,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:262,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:263,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:267,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:267,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:268,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:269,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:269,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:270,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:270,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:271,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:272,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 273
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::Empty
    - TestIntervalOps
    - RectFromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, IntervalOps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:276,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:277,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:277,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:278,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:278,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:279,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::BoundaryIntersects
    - S2LatLngRect::Empty
    - S2LatLngRect::hi
    - S2LatLngRect::lo
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BoundaryIntersects, EmptyRectangle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:283,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:284,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:284,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:285,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:285,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:286,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::BoundaryIntersects
    - S2LatLngRect::hi
    - S2LatLngRect::Full
    - S2LatLngRect::lo
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BoundaryIntersects, FullRectangle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:291,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:292,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:292,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:293,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:293,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:294,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:294,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:295,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:295,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:296,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:296,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:297,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:297,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:298,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:298,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:299,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::BoundaryIntersects
    - EXPECT_TRUE
    - RectFromDegrees
    - MakePointOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BoundaryIntersects, SphericalLune)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:304,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:305,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:305,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:306,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:306,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:307,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:307,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:308,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:308,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:309,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:309,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:310,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 311
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::BoundaryIntersects
    - EXPECT_TRUE
    - RectFromDegrees
    - MakePointOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BoundaryIntersects, NorthHemisphere)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:315,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:316,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:316,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:317,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:317,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:318,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:318,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:319,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:319,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:320,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:320,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:321,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 322
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::BoundaryIntersects
    - EXPECT_TRUE
    - RectFromDegrees
    - MakePointOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BoundaryIntersects, SouthHemisphere)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:325,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:326,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:326,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:326,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:329,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:329,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:330,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:330,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:331,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:331,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:332,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:332,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:333,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:333,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:334,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:334,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:335,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:335,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:336,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:336,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:340,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:340,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:341,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:341,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:342,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:342,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:343,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:343,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:344,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:344,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:345,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:345,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:346,1
    - Dst: S2LatLngRect::BoundaryIntersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:346,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:347,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 348
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::BoundaryIntersects
    - EXPECT_TRUE
    - RectFromDegrees
    - MakePointOrDie
    - EXPECT_FALSE
    - S2LatLngRect::Contains
    linkageType: ''
    returnType: void
    signature: void TEST(BoundaryIntersects, RectCrossingAntiMeridian)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:351,1
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:352,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:352,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:353,1
    - Dst: S2LatLngRect::is_point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:353,1
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:354,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:354,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:355,1
    - Dst: S2LatLngRect::is_point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:355,1
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:356,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:356,1
    - Dst: S2LatLngRect::AddPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:357,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:357,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:358,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::AddPoint
    - EXPECT_TRUE
    - S2Point
    - RectFromDegrees
    - S2LatLng::FromRadians
    - S2LatLngRect::Empty
    - S2LatLng::FromDegrees
    - S2LatLngRect::is_point
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, AddPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:362,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:362,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:363,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:364,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:365,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:365,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:365,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:367,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:367,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:367,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:369,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:369,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:370,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:371,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:374,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:374,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:375,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:376,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:377,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:377,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:378,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:379,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:380,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:380,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:381,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:382,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:382,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:383,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:384,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:384,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:385,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:386,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:387,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:387,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:387,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:389,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:389,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:389,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:390,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:393,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:393,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:394,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:395,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:396,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:396,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:397,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:398,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:399,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:399,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:400,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:401,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:402,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:402,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:403,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:404,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:405,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:405,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:406,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:407,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:407,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:408,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:409,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:409,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:409,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:411,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:411,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 414
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - RectFromDegrees
    - S2LatLngRect::Empty
    - S2LatLng::FromDegrees
    - S2LatLngRect::Full
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, Expanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:417,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:417,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:418,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:419,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:419,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:420,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:421,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:421,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:422,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:423,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:423,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2LatLngRect::Full
    - RectFromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, PolarClosure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:428,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:428,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:429,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:430,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:431,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:431,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:432,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - RectFromDegrees
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, PositiveDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:437,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:438,1
    - Dst: S2LatLngRect::ExpandedByDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:441,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:443,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 444
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - RectFromDegrees
    - S1Angle::Degrees
    - S2LatLngRect::ExpandedByDistance
    - S2LatLngRect::ApproxEquals
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, NegativeDistanceNorthEast)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:447,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:448,1
    - Dst: S2LatLngRect::ExpandedByDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:451,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:453,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - RectFromDegrees
    - S1Angle::Degrees
    - S2LatLngRect::ExpandedByDistance
    - S2LatLngRect::ApproxEquals
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, NegativeDistanceSouthWest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:457,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:458,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:460,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:460,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::ApproxEquals
    - RectFromDegrees
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, NegativeDistanceLatWithNorthPole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:465,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:466,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:468,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:468,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::ApproxEquals
    - RectFromDegrees
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, NegativeDistanceLatWithNorthPoleAndLngFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:473,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:474,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:476,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:476,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 478
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::ApproxEquals
    - RectFromDegrees
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, NegativeDistanceLatWithSouthPole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:481,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:482,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:484,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:484,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 486
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::ApproxEquals
    - RectFromDegrees
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, NegativeDistanceLatWithSouthPoleAndLngFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:489,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:492,1
    - Dst: S2LatLngRect::ApproxEquals
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:492,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 494
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::ApproxEquals
    - RectFromDegrees
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, NegativeDistanceLngFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:497,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:498,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:500,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::is_empty
    - RectFromDegrees
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, NegativeDistanceLatResultEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:504,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:505,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:511,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LatLngRect::is_empty
    - RectFromDegrees
    - S1Angle::Degrees
    linkageType: ''
    returnType: void
    signature: void TEST(ExpandedByDistance, NegativeDistanceLngResultEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:516,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:516,1
    - Dst: S2Cap::FromCenterHeight
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:517,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:517,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:520,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:520,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:521,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:521,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:521,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:524,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:524,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:525,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:525,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:525,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:534,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:534,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:535,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:535,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:535,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:538,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:538,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 514
    functionDepth: 4
    functionLinenumber: 514
    functionLinenumberEnd: 540
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Point
    - S2Cap
    - RectFromDegrees
    - S2Cap::FromCenterHeight
    - S1Angle::Degrees
    - EXPECT_GE
    - S1ChordAngle::Right
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetCapBound)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:550,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:550,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:551,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:551,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:551,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:554,1
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:554,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:555,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:555,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:556,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:557,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' r'
    - ' cell'
    - level
    argTypes:
    - S2LatLngRect
    - S2Cell
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 558
    functionName: TestCellOps
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 1
    functionsReached:
    - Intersects
    - MayIntersect
    - GetVertex
    - GetVertexRaw
    - EXPECT_EQ
    - Contains
    - is_empty
    linkageType: ''
    returnType: void
    signature: "void TestCellOps(const S2LatLngRect& r, const S2Cell& cell,\n                        int
      level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:564,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:564,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:564,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:565,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:565,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:565,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:566,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:566,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:566,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:570,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:571,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:571,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:572,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:572,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:573,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:573,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:576,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:577,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:577,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:578,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:578,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:579,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:579,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:582,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:582,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:582,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:586,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:586,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:586,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:587,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:587,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:587,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:591,1
    - Dst: S2Cell::GetRectBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:592,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:593,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:594,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:594,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:594,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:595,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:596,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:597,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:603,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:603,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:603,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:606,1
    - Dst: S2Cell::GetRectBound
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:607,1
    - Dst: TestCellOps
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:608,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:608,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:608,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:609,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:610,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 613
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::lat
    - S2LatLng::lng
    - S2Cell::GetVertexRaw
    - S2Point
    - RectFromDegrees
    - TestCellOps
    - S2Cell::FromFacePosLevel
    - S2Cell::FromFace
    - S2LatLngRect::Empty
    - S2Cell::GetRectBound
    - S2LatLngRect::hi
    - S2LatLngRect::Full
    - S2LatLngRect::lo
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, CellOps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:616,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:617,1
    - Dst: S2LatLngRect::Encode
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:618,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:619,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:619,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:620,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:621,1
    - Dst: S2LatLngRect::Decode
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:621,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 623
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::Decode
    - EXPECT_TRUE
    - RectFromDegrees
    - Encoder::length
    - S2LatLngRect::Empty
    - Encoder::base
    - EXPECT_EQ
    - S2LatLngRect::Encode
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, EncodeDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:626,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:626,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:627,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:627,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:628,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 629
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - RectFromDegrees
    - S2LatLngRect::Empty
    - EXPECT_EQ
    - S2LatLngRect::Full
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, Area)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:635,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:636,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:637,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:637,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:637,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:638,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:638,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:638,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:638,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:639,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:639,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:639,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:639,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:641,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:641,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:641,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:642,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:642,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:642,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:643,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:643,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:643,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:643,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:644,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:644,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:644,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:644,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:647,1
    - Dst: GetCentroid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:648,1
    - Dst: S2LatLngRect::GetCentroid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:648,1
    - Dst: GetCentroid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:648,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:648,1
    - Dst: TestCentroidSplitting
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:651,1
    - Dst: TestCentroidSplitting
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - bitgen
    - ' r'
    - splits_left
    argTypes:
    - absl::BitGenRef
    - S2LatLngRect
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 633
    functionDepth: 4
    functionLinenumber: 633
    functionLinenumberEnd: 654
    functionName: TestCentroidSplitting
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 1
    functionsReached:
    - absl::Bernoulli
    - ABSL_DCHECK_LE
    - Norm
    - S2LatLngRect::S2LatLngRect
    - R1Interval
    - S1Interval
    - TestCentroidSplitting
    - lng
    - EXPECT_LE
    - s2random::LogUniform
    - lat
    - GetCentroid
    - S2LatLngRect::GetCentroid
    - S2LatLngRect
    linkageType: ''
    returnType: void
    signature: "void TestCentroidSplitting(absl::BitGenRef bitgen, const S2LatLngRect&
      r,\n                                  int splits_left)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:657,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:658,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:661,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:661,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:661,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:662,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:662,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:666,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:667,1
    - Dst: S2LatLngRect::GetCentroid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:669,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:670,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:670,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:670,1
    - Dst: S2LatLngRect::Area
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:670,1
    - Dst: S2Point::z
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:670,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:671,1
    - Dst: Vector2_d
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:671,1
    - Dst: S2Point::x
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:671,1
    - Dst: S2Point::y
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:671,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:676,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:677,1
    - Dst: S2LatLngRect::GetCentroid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:680,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:681,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:681,1
    - Dst: S2Point::z
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:681,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:682,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:682,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:682,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:683,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:684,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:684,1
    - Dst: S2LatLngRect::Area
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:684,1
    - Dst: Vector2_d
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:685,1
    - Dst: S2Point::x
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:685,1
    - Dst: S2Point::y
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:685,1
    - Dst: TestCentroidSplitting
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:692,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:693,1
    - Dst: S2LatLngRect::FullLat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:693,1
    - Dst: S1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 656
    functionDepth: 5
    functionLinenumber: 656
    functionLinenumberEnd: 695
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - TestCentroidSplitting
    - S1Interval
    - S2LatLngRect::Empty
    - S2Point::y
    - S2LatLngRect::GetCentroid
    - EXPECT_NEAR
    - Vector2_d
    - S2Point::x
    - sin
    - EXPECT_EQ
    - S2LatLngRect
    - S2LatLngRect::Area
    - fabs
    - S2LatLng
    - S2LatLngRect::FullLat
    - S2LatLngRect::lng
    - EXPECT_LE
    - S2Testing::MakeTaggedSeedSeq
    - S2Point::z
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2LatLngRect::Full
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetCentroid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:702,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:702,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:703,1
    - Dst: is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:703,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:706,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:706,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:707,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:707,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:710,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:710,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:710,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:710,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:710,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:711,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:711,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:711,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' x'
    - ' lat'
    - ' interval'
    argTypes:
    - S2LatLng
    - S1Angle
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 712
    functionName: GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 51
    functionsReached:
    - EXPECT_TRUE
    - S1Angle::Radians
    - S2LatLng
    - min
    - is_valid
    - lo
    - lng
    - GetDistance
    - Contains
    - lat
    - hi
    - abs
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle GetDistance(const S2LatLng& x,\n                    const
      S1Angle& lat,\n                    const S1Interval& interval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:716,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:717,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:723,1
    - Dst: lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:723,1
    - Dst: lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:723,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:724,1
    - Dst: lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:724,1
    - Dst: lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:724,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:725,1
    - Dst: lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:725,1
    - Dst: lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:725,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:726,1
    - Dst: lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:726,1
    - Dst: lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:726,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:727,1
    - Dst: lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:727,1
    - Dst: lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:727,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:728,1
    - Dst: lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:728,1
    - Dst: lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:728,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:729,1
    - Dst: lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:729,1
    - Dst: lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:729,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:730,1
    - Dst: lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:730,1
    - Dst: lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:730,1
    - Dst: lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:733,1
    - Dst: lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:733,1
    - Dst: lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:734,1
    - Dst: lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:734,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:735,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:735,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:736,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:736,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:737,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:737,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:738,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:738,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:740,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:748,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:748,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:749,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:749,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:750,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:751,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:752,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:753,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:755,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:756,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:756,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLngRect
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 714
    functionDepth: 3
    functionLinenumber: 714
    functionLinenumberEnd: 760
    functionName: BruteForceDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - Intersects
    - lng_hi
    - ToPoint
    - S2::GetDistance
    - S1Angle::Radians
    - S2LatLng
    - lat_lo
    - S1Angle::Degrees
    - min
    - lng_lo
    - lat_hi
    - lng
    - GetDistance
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle BruteForceDistance(const S2LatLngRect& a,\n                                  const
      S2LatLngRect& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:764,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:765,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:768,1
    - Dst: lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:768,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:768,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:769,1
    - Dst: lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:769,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:769,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:770,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:771,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:772,1
    - Dst: lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:772,1
    - Dst: lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:772,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:773,1
    - Dst: lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:773,1
    - Dst: lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:773,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:774,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:775,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:776,1
    - Dst: lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:776,1
    - Dst: lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:776,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:777,1
    - Dst: lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:777,1
    - Dst: lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:777,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:778,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:778,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLngRect
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 779
    functionName: BruteForceRectPointDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - ToPoint
    - lng_hi
    - S2::GetDistance
    - S1Angle::Radians
    - S2LatLng
    - lat_lo
    - min
    - lng_lo
    - lat_hi
    - lng
    - GetDistance
    - Contains
    linkageType: ''
    returnType: S1Angle
    signature: "S1Angle BruteForceRectPointDistance(const S2LatLngRect& a,\n                                           const
      S2LatLng& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BruteForceDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:785,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:786,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:787,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:787,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLngRect
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 789
    functionName: VerifyGetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - S1Angle::radians
    - BruteForceDistance
    - GetDistance
    linkageType: ''
    returnType: void
    signature: void VerifyGetDistance(const S2LatLngRect& a, const S2LatLngRect& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::FromPoint
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:792,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lat
    - lng
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 794
    functionName: PointRectFromDegrees
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLng::FromDegrees
    - S2LatLngRect::FromPoint
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect PointRectFromDegrees(double lat, double lng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BruteForceRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:801,1
    - Dst: Normalized
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:801,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:802,1
    - Dst: Normalized
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:802,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:803,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:803,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:803,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' p'
    argTypes:
    - S2LatLngRect
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 805
    functionName: VerifyGetRectPointDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - BruteForceRectPointDistance
    - fabs
    - EXPECT_NEAR
    - Normalized
    - S1Angle::radians
    - GetDistance
    linkageType: ''
    returnType: void
    signature: "void VerifyGetRectPointDistance(\n    const S2LatLngRect& a, const
      S2LatLng& p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:809,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:810,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:811,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:811,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:811,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:812,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:812,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:812,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:813,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:813,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:813,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:814,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:814,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:814,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:814,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:815,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:815,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:815,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:815,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:816,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:816,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:816,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:816,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:817,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:817,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:817,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:817,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:818,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:818,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:818,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:818,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:819,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:819,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:819,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:819,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:820,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:820,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:820,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 807
    functionDepth: 3
    functionLinenumber: 807
    functionLinenumberEnd: 821
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::GetDistance
    - S1Angle::Radians
    - RectFromDegrees
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - PointRectFromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDistanceOverlapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:825,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:826,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:826,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:827,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:827,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:829,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:829,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:830,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:830,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:832,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:832,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:833,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:833,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:836,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:837,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:837,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:838,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:838,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:839,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:839,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:840,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:840,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:841,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:841,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:842,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:842,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:843,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:843,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:845,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:845,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:846,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:846,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:847,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:847,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:848,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:848,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:849,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:849,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:850,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:850,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:851,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:851,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:853,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:853,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:854,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:854,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:855,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:855,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:856,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:856,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:857,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:857,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:858,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:858,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:859,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:859,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:862,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:863,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:863,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:864,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:864,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:865,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:865,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:866,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:866,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:867,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:867,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:868,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 823
    functionDepth: 5
    functionLinenumber: 823
    functionLinenumberEnd: 869
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - VerifyGetDistance
    - VerifyGetRectPointDistance
    - RectFromDegrees
    - S2LatLng::FromDegrees
    - PointRectFromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDistanceRectVsPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:873,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:874,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:874,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:875,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:875,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:878,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:879,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:879,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:880,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:880,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:881,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:881,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:882,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:882,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:883,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:883,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:884,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 871
    functionDepth: 5
    functionLinenumber: 871
    functionLinenumberEnd: 885
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - RectFromDegrees
    - VerifyGetDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDistanceRectVsRect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:889,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:890,1
    - Dst: S2LatLngRect::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:892,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:893,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:893,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:893,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:893,1
    - Dst: S2LatLngRect::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:894,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:895,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:895,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:895,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:895,1
    - Dst: VerifyGetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:896,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:899,1
    - Dst: VerifyGetRectPointDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 887
    functionDepth: 5
    functionLinenumber: 887
    functionLinenumberEnd: 902
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - VerifyGetDistance
    - S2LatLngRect::FromPointPair
    - VerifyGetRectPointDistance
    - S2LatLng
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDistanceRandomPairs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:910,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:913,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:916,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:916,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:918,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:918,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:919,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:920,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:922,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:924,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:926,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:927,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:935,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:935,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:935,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:937,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:937,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:937,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLngRect
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 908
    functionDepth: 3
    functionLinenumber: 908
    functionLinenumberEnd: 939
    functionName: VerifyGetDirectedHausdorffDistance
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::S1Angle
    - S2LatLng::FromRadians
    - EXPECT_GE
    - lng
    - static_cast<int>
    - EXPECT_LE
    - S1Angle::radians
    - GetDistance
    - lat
    - GetDirectedHausdorffDistance
    linkageType: ''
    returnType: void
    signature: "void VerifyGetDirectedHausdorffDistance(const S2LatLngRect& a,\n                                               const
      S2LatLngRect& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:945,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:946,1
    - Dst: S2LatLngRect::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:949,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:950,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:950,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:950,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:950,1
    - Dst: S2LatLngRect::FromPointPair
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:951,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:952,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:952,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:952,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:952,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:956,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:956,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:957,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:957,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:961,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:962,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:963,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 942
    functionDepth: 4
    functionLinenumber: 942
    functionLinenumberEnd: 966
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::lat
    - s2random::Point
    - VerifyGetDirectedHausdorffDistance
    - S2LatLngRect::FromPointPair
    - S2LatLng
    - S2LatLngRect::lng
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDirectedHausdorffDistanceRandomPairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:970,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:971,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:971,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:972,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:972,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:973,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:973,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:974,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:974,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:975,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:975,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:976,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:976,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:977,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:977,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:978,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 968
    functionDepth: 3
    functionLinenumber: 968
    functionLinenumberEnd: 979
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S1Angle::Radians
    - RectFromDegrees
    - S2LatLngRect::GetDirectedHausdorffDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDirectedHausdorffDistanceContained)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:984,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:985,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:987,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:988,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:988,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:989,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:990,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:990,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:991,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:993,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:994,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:994,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:995,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:996,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:996,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:997,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:999,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1000,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1000,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1001,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1002,1
    - Dst: S2LatLngRect::GetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1002,1
    - Dst: S2LatLngRect::GetDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 1004
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::GetDirectedHausdorffDistance
    - S2LatLngRect::GetDistance
    - EXPECT_DOUBLE_EQ
    - RectFromDegrees
    - PointRectFromDegrees
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDirectHausdorffDistancePointToRect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1007,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1008,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1008,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1009,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1009,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1011,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1011,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1013,1
    - Dst: PointRectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1006
    functionDepth: 4
    functionLinenumber: 1006
    functionLinenumberEnd: 1014
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - PointRectFromDegrees
    - RectFromDegrees
    - VerifyGetDirectedHausdorffDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDirectedHausdorffDistanceRectToPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1018,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1019,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1019,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1020,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1020,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1021,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1021,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1022,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1022,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1023,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1023,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1024,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1016
    functionDepth: 4
    functionLinenumber: 1016
    functionLinenumberEnd: 1025
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - RectFromDegrees
    - VerifyGetDirectedHausdorffDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDirectedHausdorffDistanceRectToRectNearPole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1029,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1030,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1030,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1031,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1032,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1032,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1035,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1036,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1037,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1038,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1038,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1039,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1042,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1043,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1043,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1044,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1045,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1045,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1049,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1050,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1050,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1051,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1052,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1052,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1055,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1056,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1056,1
    - Dst: VerifyGetDirectedHausdorffDistance
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1057,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1058,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1027
    functionDepth: 4
    functionLinenumber: 1027
    functionLinenumberEnd: 1059
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::lat
    - RectFromDegrees
    - S2LatLngRect::lng
    - VerifyGetDirectedHausdorffDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, GetDirectedHausdorffDistanceRectToRectDegenerateCases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1062,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1064,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1065,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1065,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1067
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::RoundTrip
    - RectFromDegrees
    - s2coding::S2HintCoder::S2HintCoder
    - EXPECT_EQ
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, S2CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1070,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1070,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1071,1
    - Dst: RectFromDegrees
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1071,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1072,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect_test.cc:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1073
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - RectFromDegrees
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - S2LatLngRect::Empty
    - S2LatLngRect::Full
    linkageType: ''
    returnType: void
    signature: void TEST(S2LatLngRect, Hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2cell_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:89,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:90,1
    - Dst: S2Cell::face
      Src: /src/s2geometry/src/s2/s2cell_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:91,1
    - Dst: S2Cell::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:93,1
    - Dst: S2Cell::orientation
      Src: /src/s2geometry/src/s2/s2cell_test.cc:93,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:94,1
    - Dst: S2Cell::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_test.cc:94,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:96,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:97,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:98,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:98,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:98,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:99,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:100,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:100,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:101,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:102,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:102,1
    - Dst: S2Cell::GetEdge
      Src: /src/s2geometry/src/s2/s2cell_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 113
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::is_leaf
    - S2Cell::GetEdgeRaw
    - EXPECT_DOUBLE_EQ
    - S2Cell::GetEdge
    - S2Cell::GetVertexRaw
    - S2Cell::face
    - S2Cell::id
    - S2Cell::level
    - S2CellId::FromFace
    - EXPECT_EQ
    - S2Cell::orientation
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, TestFaces)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: LevelStats
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LevelStats()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:134,1
    - Dst: ExactArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:135,1
    - Dst: ApproxArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:136,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:142,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:142,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:143,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:144,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:146,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:146,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2cell_test.cc:147,1
    - Dst: GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:147,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:148,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:149,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:151,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:151,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:152,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:153,1
    - Dst: GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:154,1
    - Dst: GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:154,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:155,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:156,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:160,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:161,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:163,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:164,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:166,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:167,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:169,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:170,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:171,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:173,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:174,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:175,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:178,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2cell_test.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 180
    functionName: GatherStats
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - level
    - GetVertexRaw
    - ApproxArea
    - min
    - S2Point::Angle
    - GetEdgeRaw
    - ExactArea
    - max
    linkageType: ''
    returnType: void
    signature: void GatherStats(const S2Cell& cell)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GatherStats
      Src: /src/s2geometry/src/s2/s2cell_test.cc:183,1
    - Dst: is_leaf
      Src: /src/s2geometry/src/s2/s2cell_test.cc:184,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2cell_test.cc:187,1
    - Dst: Subdivide
      Src: /src/s2geometry/src/s2/s2cell_test.cc:187,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:188,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_test.cc:192,1
    - Dst: ExactArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:193,1
    - Dst: ApproxArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:194,1
    - Dst: AverageArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:198,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:198,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:199,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2cell_test.cc:199,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2cell_test.cc:199,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2cell_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:201,1
    - Dst: S2Cell::face
      Src: /src/s2geometry/src/s2/s2cell_test.cc:201,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2cell_test.cc:201,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:202,1
    - Dst: S2Cell::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:202,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:202,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:203,1
    - Dst: S2Cell::orientation
      Src: /src/s2geometry/src/s2/s2cell_test.cc:203,1
    - Dst: orientation
      Src: /src/s2geometry/src/s2/s2cell_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:204,1
    - Dst: S2Cell::GetCenterRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:204,1
    - Dst: GetCenterRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:204,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:206,1
    - Dst: S2Cell::GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:206,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:207,1
    - Dst: S2Cell::GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:207,1
    - Dst: GetEdgeRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:207,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:211,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:211,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:212,1
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2cell_test.cc:212,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:213,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:213,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:214,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:214,1
    - Dst: GetCenterRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:214,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:216,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:216,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:216,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:218,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:218,1
    - Dst: GetCenterRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:218,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:219,1
    - Dst: MayIntersect
      Src: /src/s2geometry/src/s2/s2cell_test.cc:219,1
    - Dst: GetCapBound
      Src: /src/s2geometry/src/s2/s2cell_test.cc:224,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2cell_test.cc:225,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:226,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:226,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:226,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:226,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:227,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2cell_test.cc:227,1
    - Dst: GetCapBound
      Src: /src/s2geometry/src/s2/s2cell_test.cc:229,1
    - Dst: GetRectBound
      Src: /src/s2geometry/src/s2/s2cell_test.cc:230,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:231,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:231,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2cell_test.cc:231,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:232,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:232,1
    - Dst: GetCenterRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:232,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:233,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:233,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2cell_test.cc:233,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:234,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:234,1
    - Dst: GetCenterRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:234,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:236,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:236,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:236,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:237,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:237,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:237,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:238,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:238,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:238,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:239,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:239,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:239,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:240,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:240,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:240,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:241,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:241,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:241,1
    - Dst: S2Cap::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:248,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:248,1
    - Dst: S2LatLngRect::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:250,1
    - Dst: GetVertexRaw
      Src: /src/s2geometry/src/s2/s2cell_test.cc:250,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:253,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2cell_test.cc:254,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2cell_test.cc:255,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:258,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:270,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:271,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:272,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:273,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:274,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell_test.cc:278,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:281,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_test.cc:282,1
    - Dst: TestSubdivide
      Src: /src/s2geometry/src/s2/s2cell_test.cc:283,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:298,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_test.cc:298,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2cell_test.cc:298,1
    - Dst: ExactArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:298,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_test.cc:298,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2cell_test.cc:298,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:299,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_test.cc:299,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2cell_test.cc:299,1
    - Dst: ApproxArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:299,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_test.cc:299,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2cell_test.cc:299,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:300,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_test.cc:300,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2cell_test.cc:300,1
    - Dst: AverageArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:300,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_test.cc:300,1
    - Dst: log
      Src: /src/s2geometry/src/s2/s2cell_test.cc:300,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 2
    argNames:
    - bitgen
    - ' cell'
    argTypes:
    - absl::BitGenRef
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 301
    functionName: TestSubdivide
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 1
    functionsReached:
    - absl::Bernoulli
    - S2Point
    - ExactArea
    - S2Cell::GetEdgeRaw
    - GetVertex
    - id
    - ABSL_CHECK
    - S2CellId::next
    - GetCapBound
    - S2Cell::level
    - GetEdgeRaw
    - S2LatLngRect::lat_lo
    - S2Cell::orientation
    - EXPECT_EQ
    - R2Point
    - S2Cell::GetCenterRaw
    - level
    - fabs
    - GatherStats
    - EXPECT_TRUE
    - MayIntersect
    - S2Cell::face
    - GetVertexRaw
    - ApproxArea
    - S2LatLngRect::lng
    - face
    - EXPECT_LE
    - is_leaf
    - orientation
    - Contains
    - S2LatLngRect::lat_hi
    - log
    - TestSubdivide
    - GetCenter
    - S2LatLngRect::Contains
    - GetCenterRaw
    - S2CellId::ToPoint
    - S2Cell::GetVertexRaw
    - S2Cap::Contains
    - S2::ApproxEquals
    - GetRectBound
    - Subdivide
    - GetBoundUV
    - EXPECT_FALSE
    - AverageArea
    linkageType: ''
    returnType: void
    signature: void TestSubdivide(absl::BitGenRef bitgen, const S2Cell& cell)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:323,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:323,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2cell_test.cc:324,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:324,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:327,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:328,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2cell_test.cc:329,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:329,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2cell_test.cc:330,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:338,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:338,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:339,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:339,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:340,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:340,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:341,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:341,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:342,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 10
    argNames:
    - label
    - level
    - count
    - abs_error
    - min_value
    - max_value
    - avg_value
    - ' min_metric'
    - ' max_metric'
    - ' avg_metric'
    argTypes:
    - string_view
    - int
    - double
    - double
    - double
    - double
    - double
    - S2::Metric<dim>
    - S2::Metric<dim>
    - S2::Metric<dim>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 343
    functionName: CheckMinMaxAvg
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 1
    functionsReached:
    - fabs
    - EXPECT_NEAR
    - min
    - GetValue
    - sqrt
    - EXPECT_GE
    - absl::PrintF
    - EXPECT_LE
    linkageType: ''
    returnType: void
    signature: "void CheckMinMaxAvg(string_view label, int level, double count,\n
      \                          double abs_error, double min_value, double max_value,\n
      \                          double avg_value, const S2::Metric<dim>& min_metric,\n
      \                          const S2::Metric<dim>& max_metric,\n                           const
      S2::Metric<dim>& avg_metric)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:346,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:347,1
    - Dst: TestSubdivide
      Src: /src/s2geometry/src/s2/s2cell_test.cc:350,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2cell_test.cc:350,1
    - Dst: TestSubdivide
      Src: /src/s2geometry/src/s2/s2cell_test.cc:351,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2cell_test.cc:351,1
    - Dst: TestSubdivide
      Src: /src/s2geometry/src/s2/s2cell_test.cc:352,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2cell_test.cc:352,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2cell_test.cc:364,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2cell_test.cc:380,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:384,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2cell_test.cc:385,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2cell_test.cc:393,1
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2cell_test.cc:400,1
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2cell_test.cc:403,1
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2cell_test.cc:406,1
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2cell_test.cc:409,1
    - Dst: CheckMinMaxAvg
      Src: /src/s2geometry/src/s2/s2cell_test.cc:412,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:418,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 421
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::AverageArea
    - absl::PrintF
    - EXPECT_LE
    - absl::LogInfoStreamer
    - CheckMinMaxAvg
    - S2Cell::FromFace
    - S2Testing::MakeTaggedSeedSeq
    - TestSubdivide
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, TestSubdivide)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2cell_test.cc:427,1
    - Dst: Subdivide
      Src: /src/s2geometry/src/s2/s2cell_test.cc:427,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:428,1
    - Dst: ExpandChildren1
      Src: /src/s2geometry/src/s2/s2cell_test.cc:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 433
    functionName: ExpandChildren1
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 1
    functionsReached:
    - Subdivide
    - level
    - ABSL_CHECK
    - ExpandChildren1
    linkageType: ''
    returnType: void
    signature: void ExpandChildren1(const S2Cell& cell)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:436,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2cell_test.cc:437,1
    - Dst: S2Cell::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:439,1
    - Dst: ExpandChildren2
      Src: /src/s2geometry/src/s2/s2cell_test.cc:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: ExpandChildren2
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 1
    functionsReached:
    - ExpandChildren2
    - id
    - S2Cell::level
    - S2CellId::next
    linkageType: ''
    returnType: void
    signature: void ExpandChildren2(const S2Cell& cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpandChildren1
      Src: /src/s2geometry/src/s2/s2cell_test.cc:445,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2cell_test.cc:445,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2cell_test.cc:449,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2cell_test.cc:450,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2cell_test.cc:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 451
    functionName: BM_Subdivide
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - SetItemsProcessed
    - iterations
    - pow
    - S2Cell::FromFace
    - ExpandChildren1
    linkageType: ''
    returnType: void
    signature: void BM_Subdivide(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpandChildren2
      Src: /src/s2geometry/src/s2/s2cell_test.cc:456,1
    - Dst: S2Cell::FromFace
      Src: /src/s2geometry/src/s2/s2cell_test.cc:456,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/s2cell_test.cc:459,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2cell_test.cc:460,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2cell_test.cc:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: BM_Constructor
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - SetItemsProcessed
    - iterations
    - pow
    - ExpandChildren2
    - S2Cell::FromFace
    linkageType: ''
    returnType: void
    signature: void BM_Constructor(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:477,1
    - Dst: S2LatLngRectBounder::MaxErrorForTests
      Src: /src/s2geometry/src/s2/s2cell_test.cc:480,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:482,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:483,1
    - Dst: S2Cell::GetRectBound
      Src: /src/s2geometry/src/s2/s2cell_test.cc:487,1
    - Dst: S2Loop::GetRectBound
      Src: /src/s2geometry/src/s2/s2cell_test.cc:488,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:489,1
    - Dst: S2LatLngRect::Expanded
      Src: /src/s2geometry/src/s2/s2cell_test.cc:489,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:490,1
    - Dst: S2LatLngRect::Expanded
      Src: /src/s2geometry/src/s2/s2cell_test.cc:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 492
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRect::Expanded
    - S2LatLngRectBounder::MaxErrorForTests
    - EXPECT_TRUE
    - S2Loop::GetRectBound
    - S2LatLng::FromRadians
    - S2Cell::GetRectBound
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, CellVsLoopRectBound)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:497,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:498,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_test.cc:502,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:503,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2cell_test.cc:504,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cell_test.cc:505,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:505,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:505,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2cell_test.cc:506,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_test.cc:506,1
    - Dst: S2Loop
      Src: /src/s2geometry/src/s2/s2cell_test.cc:507,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:508,1
    - Dst: S2Cell::GetRectBound
      Src: /src/s2geometry/src/s2/s2cell_test.cc:508,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2cell_test.cc:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 512
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Loop
    - S2::Interpolate
    - EXPECT_TRUE
    - S2Cap
    - S1Angle::Radians
    - S2LatLng
    - s2random::SamplePoint
    - S2Cell::GetRectBound
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Cell::GetVertex
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, RectBoundIsLargeEnough)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:518,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:519,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_test.cc:525,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_test.cc:525,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_test.cc:527,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:528,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2cell_test.cc:529,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cell_test.cc:530,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:530,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:530,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2cell_test.cc:531,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_test.cc:531,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:532,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:532,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_test.cc:532,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:533,1
    - Dst: S2Cell::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:533,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_test.cc:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 514
    functionDepth: 4
    functionLinenumber: 514
    functionLinenumberEnd: 536
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2::Interpolate
    - absl::Bernoulli
    - S2CellId
    - EXPECT_TRUE
    - S2Cell
    - S2Cap
    - S1Angle::Radians
    - s2random::SamplePoint
    - S2Cell::id
    - S2Cell::level
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2Cell::GetVertex
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, ConsistentWithS2CellIdFromPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_test.cc:544,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:545,1
    - Dst: S2Cell::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:545,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 546
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Cell::Contains
    - S2Cell::id
    - S2CellId
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, ConsistentWithS2CellIdFromPointExample1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2cell_test.cc:561,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2cell_test.cc:562,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:564,1
    - Dst: S2Cell::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 565
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Cell::Contains
    - S2LatLng::FromDegrees
    - S2CellId
    linkageType: ''
    returnType: void
    signature: void TEST(S2CellId, AmbiguousContainsPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2cell_test.cc:569,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:571,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:571,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' cell'
    - ' target'
    argTypes:
    - S2Cell
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 567
    functionDepth: 5
    functionLinenumber: 567
    functionLinenumberEnd: 575
    functionName: GetDistanceToPointBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2::UpdateMinDistance
    - GetVertex
    - S1ChordAngle::Infinity
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle GetDistanceToPointBruteForce(const S2Cell& cell,\n                                                 const
      S2Point& target)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:579,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell_test.cc:580,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2cell_test.cc:582,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:584,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:584,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' cell'
    - ' target'
    argTypes:
    - S2Cell
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 588
    functionName: GetMaxDistanceToPointBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2::UpdateMaxDistance
    - GetVertex
    - S1ChordAngle::Straight
    - Contains
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle GetMaxDistanceToPointBruteForce(const S2Cell& cell,\n
      \                                                   const S2Point& target)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: face
      Src: /src/s2geometry/src/s2/s2cell_test.cc:596,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2cell_test.cc:596,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell_test.cc:596,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell_test.cc:596,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:597,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:605,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:606,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2cell_test.cc:608,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:611,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2cell_test.cc:612,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2cell_test.cc:613,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:615,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2cell_test.cc:616,1
    - Dst: S1ChordAngle::degrees
      Src: /src/s2geometry/src/s2/s2cell_test.cc:617,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Cell
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 591
    functionDepth: 5
    functionLinenumber: 591
    functionLinenumberEnd: 622
    functionName: GetDistanceToCellBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::degrees
    - GetVertex
    - S1ChordAngle::Zero
    - face
    - S2::UpdateMinDistance
    - ABSL_VLOG
    - S1ChordAngle::Infinity
    - GetBoundUV
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle GetDistanceToCellBruteForce(const S2Cell& a,\n                                                const
      S2Cell& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:625,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:626,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:628,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_test.cc:628,1
    - Dst: GetDistanceToCellBruteForce
      Src: /src/s2geometry/src/s2/s2cell_test.cc:631,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:632,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:633,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:633,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:633,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:634,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:634,1
    - Dst: S2Cell::GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell_test.cc:635,1
    - Dst: S2Cell::GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell_test.cc:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 6
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - EXPECT_NEAR
    - GetDistanceToCellBruteForce
    - S1ChordAngle::radians
    - S2Cell::GetDistance
    - SCOPED_TRACE
    - S2Cell::id
    - S2Cell::GetBoundUV
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetDistanceToCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_test.cc:644,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_test.cc:645,1
    - Dst: GetDistanceToCellBruteForce
      Src: /src/s2geometry/src/s2/s2cell_test.cc:646,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:647,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:648,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:648,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 640
    functionDepth: 6
    functionLinenumber: 640
    functionLinenumberEnd: 649
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - GetDistanceToCellBruteForce
    - S1ChordAngle::radians
    - S2CellId::FromDebugString
    - S2Cell::GetDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetDistanceToCellHighDifferenceExample)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_test.cc:661,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_test.cc:662,1
    - Dst: GetDistanceToCellBruteForce
      Src: /src/s2geometry/src/s2/s2cell_test.cc:663,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:664,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:665,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:665,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 651
    functionDepth: 6
    functionLinenumber: 651
    functionLinenumberEnd: 666
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - GetDistanceToCellBruteForce
    - S1ChordAngle::radians
    - S2CellId::FromDebugString
    - S2Cell::GetDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetDistanceToCellProjectionExample1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_test.cc:678,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2cell_test.cc:679,1
    - Dst: GetDistanceToCellBruteForce
      Src: /src/s2geometry/src/s2/s2cell_test.cc:680,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:681,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:682,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:682,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 668
    functionDepth: 6
    functionLinenumber: 668
    functionLinenumberEnd: 683
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - GetDistanceToCellBruteForce
    - S1ChordAngle::radians
    - S2CellId::FromDebugString
    - S2Cell::GetDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetDistanceToCellProjectionExample2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:686,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:687,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:689,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_test.cc:689,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:691,1
    - Dst: GetDistanceToPointBruteForce
      Src: /src/s2geometry/src/s2/s2cell_test.cc:693,1
    - Dst: S2Cell::Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:695,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:695,1
    - Dst: GetMaxDistanceToPointBruteForce
      Src: /src/s2geometry/src/s2/s2cell_test.cc:697,1
    - Dst: S2Cell::GetBoundaryDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:698,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:699,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:700,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:703,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:703,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:704,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:705,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:705,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:706,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:707,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:707,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:708,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:709,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:710,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:710,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:711,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:712,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:712,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:713,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:715,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:716,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:716,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 685
    functionDepth: 6
    functionLinenumber: 685
    functionLinenumberEnd: 719
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::Contains
    - S2Cell::GetMaxDistance
    - s2random::Point
    - StrCat
    - EXPECT_NEAR
    - S2Cell::GetDistance
    - GetMaxDistanceToPointBruteForce
    - SCOPED_TRACE
    - GetDistanceToPointBruteForce
    - S1Angle::radians
    - absl::LogInfoStreamer
    - S2Cell::GetBoundaryDistance
    - S1Angle::Zero
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetDistanceToPoint)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCapBound
      Src: /src/s2geometry/src/s2/s2cell_test.cc:723,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_test.cc:724,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:726,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2cell_test.cc:729,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cell_test.cc:730,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2cell_test.cc:730,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cell_test.cc:730,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2cell_test.cc:735,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_test.cc:735,1
    - Dst: S2Cap::GetRadius
      Src: /src/s2geometry/src/s2/s2cell_test.cc:735,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2cell_test.cc:737,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cell_test.cc:737,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:737,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2cell_test.cc:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - bitgen
    - ' cell'
    - a
    - b
    argTypes:
    - absl::BitGenRef
    - S2Cell
    - S2Point*
    - S2Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 721
    functionDepth: 4
    functionLinenumber: 721
    functionLinenumberEnd: 744
    functionName: ChooseEdgeNearCell
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - s2random::Point
    - absl::Bernoulli
    - S2Cap
    - S1Angle::Radians
    - min
    - GetCapBound
    - s2random::SamplePoint
    - s2random::LogUniform
    - S2Cap::GetRadius
    linkageType: ''
    returnType: void
    signature: "void ChooseEdgeNearCell(absl::BitGenRef bitgen, const S2Cell& cell,\n
      \                              S2Point* a, S2Point* b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:748,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:748,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:749,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2cell_test.cc:752,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:754,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:755,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2cell_test.cc:757,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:758,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:760,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:761,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ' cell'
    - ' a'
    - ' b'
    argTypes:
    - S2Cell
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 746
    functionDepth: 5
    functionLinenumber: 746
    functionLinenumberEnd: 765
    functionName: GetDistanceToEdgeBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - GetVertex
    - S2::CrossingSign
    - S1ChordAngle::Zero
    - S2::UpdateMinDistance
    - S1ChordAngle::Infinity
    - Contains
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle GetDistanceToEdgeBruteForce(\n    const S2Cell& cell,
      const S2Point& a, const S2Point& b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:770,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2cell_test.cc:770,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell_test.cc:771,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2cell_test.cc:774,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:776,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:777,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2cell_test.cc:779,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell_test.cc:780,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:782,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:783,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:784,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ' cell'
    - ' a'
    - ' b'
    argTypes:
    - S2Cell
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 787
    functionName: GetMaxDistanceToEdgeBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2::UpdateMaxDistance
    - GetVertex
    - S2::CrossingSign
    - S1ChordAngle::Straight
    - Contains
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle GetMaxDistanceToEdgeBruteForce(\n    const S2Cell& cell,
      const S2Point& a, const S2Point& b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:790,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:791,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:793,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_test.cc:793,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2cell_test.cc:795,1
    - Dst: ChooseEdgeNearCell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:796,1
    - Dst: GetDistanceToEdgeBruteForce
      Src: /src/s2geometry/src/s2/s2cell_test.cc:797,1
    - Dst: GetMaxDistanceToEdgeBruteForce
      Src: /src/s2geometry/src/s2/s2cell_test.cc:799,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:800,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:801,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:804,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:806,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:806,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:806,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:807,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:808,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:808,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:808,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:810,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:810,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:810,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:813,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:813,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:813,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:814,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:815,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:815,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 789
    functionDepth: 6
    functionLinenumber: 789
    functionLinenumberEnd: 818
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetMaxDistance
    - StrCat
    - ChooseEdgeNearCell
    - GetDistanceToEdgeBruteForce
    - GetMaxDistanceToEdgeBruteForce
    - EXPECT_NEAR
    - S2Cell::GetDistance
    - S2Point::S2Point
    - SCOPED_TRACE
    - S1Angle::radians
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetDistanceToEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_test.cc:823,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2cell_test.cc:824,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2cell_test.cc:824,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:824,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2cell_test.cc:825,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2cell_test.cc:825,1
    - Dst: S2Cell::GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:825,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:827,1
    - Dst: GetMaxDistanceToEdgeBruteForce
      Src: /src/s2geometry/src/s2/s2cell_test.cc:828,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:830,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:830,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell_test.cc:830,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:831,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:831,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell_test.cc:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 820
    functionDepth: 4
    functionLinenumber: 820
    functionLinenumberEnd: 832
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetMaxDistance
    - S2::Interpolate
    - GetMaxDistanceToEdgeBruteForce
    - S2Cell::GetCenter
    - EXPECT_NEAR
    - S1ChordAngle::radians
    - S2Cell::FromFacePosLevel
    - S1ChordAngle::Straight
    - S2Cell::GetVertex
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetMaxDistanceToEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2cell_test.cc:835,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:838,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:839,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell_test.cc:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 834
    functionDepth: 2
    functionLinenumber: 834
    functionLinenumberEnd: 840
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Cell::GetMaxDistance
    - MakePointOrDie
    - S1ChordAngle::Straight
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetMaxDistanceToCellAntipodal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:843,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:844,1
    - Dst: S2Cell::GetCenter
      Src: /src/s2geometry/src/s2/s2cell_test.cc:848,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2cell_test.cc:849,1
    - Dst: S2Cell::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:849,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2cell_test.cc:851,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:852,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:853,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2cell_test.cc:854,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:854,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 856
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetMaxDistance
    - EXPECT_NEAR
    - S2Cell::GetCenter
    - S1ChordAngle::radians
    - S2Cell::GetDistance
    - S2CellId::parent
    - S2Cell::level
    - S1ChordAngle::Straight
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetMaxDistanceToCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:859,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:860,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:861,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:862,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:864,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:865,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:866,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:868,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:870,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:870,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:871,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:871,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:872,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:874,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:874,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:874,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:875,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:875,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:876,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:876,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:877,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:877,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:879,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:879,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:879,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:880,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:880,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:881,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:881,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:882,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:882,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:884,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:884,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:884,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:885,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:885,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:886,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:886,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:887,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:887,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:888,1
    - Dst: S2Cell::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 858
    functionDepth: 6
    functionLinenumber: 858
    functionLinenumberEnd: 889
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_TRUE
    - S1ChordAngle::Zero
    - S2Cell::IsDistanceLess
    - ASSERT_GT
    - S2Cell::GetDistance
    - S1ChordAngle::Radians
    - S2CellId::FromToken
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, IsDistanceLess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:892,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:893,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:894,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:895,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:897,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:898,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:899,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:901,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:903,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:903,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:904,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:904,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:905,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:908,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:908,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:908,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:909,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:909,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:910,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:910,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:911,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:911,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:913,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:913,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:913,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:914,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:914,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:915,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:915,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:916,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:916,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:918,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:918,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:918,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:919,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:919,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:920,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:920,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:921,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:921,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:922,1
    - Dst: S2Cell::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 891
    functionDepth: 2
    functionLinenumber: 891
    functionLinenumberEnd: 923
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_TRUE
    - S1ChordAngle::Zero
    - S2Cell::IsDistanceLessOrEqual
    - ASSERT_GT
    - S2Cell::GetDistance
    - S1ChordAngle::Radians
    - S2CellId::FromToken
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, IsDistanceLessOrEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:926,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:927,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:928,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:929,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:931,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:932,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:933,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:935,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:937,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:938,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:939,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:942,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:942,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:942,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:943,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:943,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:944,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:944,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:945,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:945,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:946,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:946,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:948,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:948,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:948,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:949,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:949,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:950,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:950,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:951,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:951,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:952,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:952,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:954,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:954,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:954,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:955,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:955,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:956,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:956,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:957,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:957,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:958,1
    - Dst: S2Cell::IsMaxDistanceLess
      Src: /src/s2geometry/src/s2/s2cell_test.cc:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 925
    functionDepth: 2
    functionLinenumber: 925
    functionLinenumberEnd: 959
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetMaxDistance
    - S2Cell::IsMaxDistanceLess
    - EXPECT_TRUE
    - S1ChordAngle::Zero
    - ASSERT_GT
    - S1ChordAngle::Radians
    - S2CellId::FromToken
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, IsMaxDistanceLess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:962,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:963,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:964,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:965,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:967,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:968,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:969,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:971,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:973,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:974,1
    - Dst: ASSERT_GT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:975,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:978,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:978,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:978,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:979,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:979,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:980,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:980,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:981,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:981,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:982,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:982,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:984,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:984,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:984,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:985,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:985,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:986,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:986,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:987,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:987,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:988,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:988,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:990,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:990,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2cell_test.cc:990,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:991,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:991,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:992,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:992,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:993,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:993,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:994,1
    - Dst: S2Cell::IsMaxDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2cell_test.cc:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 995
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetMaxDistance
    - EXPECT_TRUE
    - S1ChordAngle::Zero
    - ASSERT_GT
    - S2Cell::IsMaxDistanceLessOrEqual
    - S1ChordAngle::Radians
    - S2CellId::FromToken
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, IsMaxDistanceLessOrEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2cell_test.cc:998,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2cell_test.cc:999,1
    - Dst: S2Cell::Encode
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1000,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1002,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1003,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1003,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1004,1
    - Dst: S2Cell::Decode
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1004,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1006,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1007,1
    - Dst: S2Cell::face
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1007,1
    - Dst: S2Cell::face
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1007,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1008,1
    - Dst: S2Cell::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1008,1
    - Dst: S2Cell::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1008,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1009,1
    - Dst: S2Cell::orientation
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1009,1
    - Dst: S2Cell::orientation
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1009,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1010,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1010,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1010,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1011,1
    - Dst: S2Cell::GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1011,1
    - Dst: S2Cell::GetBoundUV
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1012
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::Decode
    - S2Cell::face
    - S2Cell::Encode
    - Encoder::length
    - S2Cell::id
    - S2LatLng::FromDegrees
    - Encoder::base
    - ASSERT_TRUE
    - S2Cell::level
    - S2Cell::orientation
    - EXPECT_EQ
    - S2Cell::GetBoundUV
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, EncodeDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1017,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1017,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1017,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1017,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1018,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1018,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1018,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1018,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1022,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1022,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1022,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1022,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1023,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1023,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1023,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1023,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1026,1
    - Dst: GetUVCoordOfEdge
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1026,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1026,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1027,1
    - Dst: GetUVCoordOfEdge
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1027,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1027,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1028,1
    - Dst: GetUVCoordOfEdge
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1028,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1028,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1029,1
    - Dst: GetUVCoordOfEdge
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1029,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1031
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - S2Cell
    - S2CellId::FromToken
    - GetUVCoordOfEdge
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetUVCoordOfEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1034,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1035,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1037,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1039,1
    - Dst: S2Cell::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1039,1
    - Dst: S2CellId::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1039,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1033
    functionDepth: 4
    functionLinenumber: 1033
    functionLinenumberEnd: 1041
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetSizeIJ
    - S2CellId::level
    - S2CellId::GetSizeIJ
    - s2random::CellId
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetSizeIJAgreesWithCellId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1044,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1045,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1047,1
    - Dst: S2CellId::ToFaceIJOrientation
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1053,1
    - Dst: S2Cell::GetSizeIJ
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1055,1
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1056,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1065,1
    - Dst: S2Cell::GetIJCoordOfEdge
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1065,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1066,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1066,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1043
    functionDepth: 4
    functionLinenumber: 1043
    functionLinenumberEnd: 1069
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetIJCoordOfEdge
    - Eq
    - S2Cell::GetSizeIJ
    - EXPECT_THAT
    - R2Rect::GetVertex
    - s2random::CellId
    - R2Rect::R2Rect
    - S2CellId::ToFaceIJOrientation
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, GetIJCoordOfEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1072,1
    - Dst: S2Cell::GetCellUnionBound
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1074,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1075,1
    - Dst: ElementsAre
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1075,1
    - Dst: S2Cell::id
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1076
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - S2Cell::GetCellUnionBound
    - S2Cell::id
    - S2CellId::FromToken
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(S2Cell, CellUnionBoundIncludesOnlySelf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1086,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1086,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1087,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1087,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1089,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1090,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1091,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1092,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1093,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1097,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1098,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1099,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1099,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1100,1
    - Dst: GetValue
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1100,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1100,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1101,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1102,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1102,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1102,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1103,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1104,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1104,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1084
    functionDepth: 4
    functionLinenumber: 1084
    functionLinenumberEnd: 1106
    functionName: MakeBenchmarkData
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - reserve
    - emplace_back
    - S2CellId::ToPoint
    - string::end
    - S1Angle::Radians
    - S2CellId::level
    - GetValue
    - push_back
    - S2Cap
    - s2random::SamplePoint
    - s2random::CellId
    - empty
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void MakeBenchmarkData()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeBenchmarkData
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1109,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1110,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1112,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1108
    functionDepth: 5
    functionLinenumber: 1108
    functionLinenumberEnd: 1116
    functionName: BM_GetDistanceToPoint
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - MakeBenchmarkData
    - benchmark::DoNotOptimize
    - KeepRunningBatch
    - GetDistance
    linkageType: ''
    returnType: void
    signature: void BM_GetDistanceToPoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeBenchmarkData
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1120,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1121,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1124,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1119
    functionDepth: 5
    functionLinenumber: 1119
    functionLinenumberEnd: 1128
    functionName: BM_GetDistanceToEdge
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - MakeBenchmarkData
    - benchmark::DoNotOptimize
    - KeepRunningBatch
    - GetDistance
    linkageType: ''
    returnType: void
    signature: void BM_GetDistanceToEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeBenchmarkData
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1132,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1133,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1135,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1131
    functionDepth: 5
    functionLinenumber: 1131
    functionLinenumberEnd: 1139
    functionName: BM_GetDistanceToCell
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - MakeBenchmarkData
    - benchmark::DoNotOptimize
    - KeepRunningBatch
    - GetDistance
    linkageType: ''
    returnType: void
    signature: void BM_GetDistanceToCell(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1143,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1144,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1145,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1145,1
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1148,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1153,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1154,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1155,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1156,1
    - Dst: S2CellId::pos
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1156,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1156,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1160,1
    - Dst: GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1163,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1142
    functionDepth: 4
    functionLinenumber: 1142
    functionLinenumberEnd: 1168
    functionName: BM_GetDistanceToCellSameFace
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - GetDistance
    - StrCat
    - KeepRunningBatch
    - S2CellId::pos
    - string::end
    - S2CellId::level
    - s2random::CellId
    - S2CellId::FromFacePosLevel
    - s2random::LogUniform
    - std::vector::emplace_back
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_GetDistanceToCellSameFace(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1182,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1190,1
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1192,1
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1194,1
    - Dst: S2Cell::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1197,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1198,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1199,1
    - Dst: S2Cell::GetDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1199,1
    - Dst: std::vector::back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1199,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1200,1
    - Dst: S2Cell::GetMaxDistance
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1200,1
    - Dst: std::vector::back
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1200,1
    - Dst: std::vector::begin
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1204,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1204,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1204,1
    - Dst: std::nth_element
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1205,1
    - Dst: std::vector::begin
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1205,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1205,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1208,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1208,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1213,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1213,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1214,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1214,1
    - Dst: absl::c_shuffle
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1216,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1218,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1218,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1221,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1224,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1224,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2cell_test.cc:1224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1181
    functionDepth: 2
    functionLinenumber: 1181
    functionLinenumberEnd: 1225
    functionName: BM_DistanceCompare
    functionSourceFile: /src/s2geometry/src/s2/s2cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::GetMaxDistance
    - string::end
    - SetItemsProcessed
    - S2Cell::GetDistance
    - std::vector::begin
    - string::begin
    - std::vector::size
    - S1ChordAngle::Infinity
    - std::nth_element
    - std::vector::push_back
    - absl::c_shuffle
    - iterations
    - std::vector::end
    - std::vector::reserve
    - StrCat
    - KeepRunningBatch
    - static_cast<size_t>
    - range
    - S2Cell::FromFacePosLevel
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - std::vector::back
    linkageType: ''
    returnType: void
    signature: void BM_DistanceCompare(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: S2LaxPolylineShape::S2LaxPolylineShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2LaxPolylineShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: S2LaxPolylineShape::num_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& vertex(int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.h:86,1
    - Dst: S2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: S2LaxPolylineShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 12
    functionsReached:
    - S2LaxPolylineShape::num_vertices
    - std::max
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: S2LaxPolylineShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: S2LaxPolylineShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 1
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: S2LaxPolylineShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: EncodedS2LaxPolylineShape::EncodedS2LaxPolylineShape
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedS2LaxPolylineShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: EncodedS2LaxPolylineShape::num_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: EncodedS2LaxPolylineShape::vertex
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: S2Point
    signature: S2Point vertex(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.h:134,1
    - Dst: EncodedS2LaxPolylineShape::num_vertices
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: EncodedS2LaxPolylineShape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 4
    functionsReached:
    - EncodedS2LaxPolylineShape::num_vertices
    - std::max
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: EncodedS2LaxPolylineShape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape::Contained
      Src: /src/s2geometry/src/s2/s2lax_polyline_shape.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: EncodedS2LaxPolylineShape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 0
    functionsReached:
    - S2Shape::Contained
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: EncodedS2LaxPolylineShape::type_tag
    functionSourceFile: /src/s2geometry/src/s2/s2lax_polyline_shape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeTag
    signature: TypeTag type_tag() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2earth.h:148,1
    - Dst: S2Earth::MetersToRadians
      Src: /src/s2geometry/src/s2/s2earth.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meters
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: S2Earth::MetersToAngle
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S1Angle::Radians
    - S2Earth::MetersToRadians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Earth::MetersToAngle(double meters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2earth.h:152,1
    - Dst: S2Earth::MetersToAngle
      Src: /src/s2geometry/src/s2/s2earth.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meters
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: S2Earth::MetersToChordAngle
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::MetersToAngle
    - S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Earth::MetersToChordAngle(double meters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meters
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: S2Earth::MetersToRadians
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 3
    functionsReached:
    - S2Earth::RadiusMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::MetersToRadians(double meters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2earth.h:160,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' angle'
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: S2Earth::ToMeters
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - radians
    - S2Earth::RadiusMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::ToMeters(const S1Angle& angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::ToMeters
      Src: /src/s2geometry/src/s2/s2earth.h:164,1
    - Dst: S2Earth::ToAngle
      Src: /src/s2geometry/src/s2/s2earth.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cangle'
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: S2Earth::ToMeters
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 2
    functionsReached:
    - S2Earth::ToAngle
    - S2Earth::ToMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::ToMeters(const S1ChordAngle& cangle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - radians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: S2Earth::RadiansToMeters
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::RadiusMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::RadiansToMeters(double radians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2earth.h:172,1
    - Dst: S2Earth::KmToRadians
      Src: /src/s2geometry/src/s2/s2earth.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - km
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: S2Earth::KmToAngle
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::KmToRadians
    - S1Angle::Radians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Earth::KmToAngle(double km)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2earth.h:176,1
    - Dst: S2Earth::KmToAngle
      Src: /src/s2geometry/src/s2/s2earth.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - km
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: S2Earth::KmToChordAngle
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::KmToAngle
    - S1ChordAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Earth::KmToChordAngle(double km)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - km
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: S2Earth::KmToRadians
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 4
    functionsReached:
    - S2Earth::RadiusKm
    linkageType: ''
    returnType: double
    signature: double S2Earth::KmToRadians(double km)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radians
      Src: /src/s2geometry/src/s2/s2earth.h:182,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' angle'
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: S2Earth::ToKm
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::RadiusKm
    - radians
    linkageType: ''
    returnType: double
    signature: double S2Earth::ToKm(const S1Angle& angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::ToKm
      Src: /src/s2geometry/src/s2/s2earth.h:186,1
    - Dst: S2Earth::ToAngle
      Src: /src/s2geometry/src/s2/s2earth.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cangle'
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: S2Earth::ToKm
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 2
    functionsReached:
    - S2Earth::ToKm
    - S2Earth::ToAngle
    linkageType: ''
    returnType: double
    signature: double S2Earth::ToKm(const S1ChordAngle& cangle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - radians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: S2Earth::RadiansToKm
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 2
    functionsReached:
    - S2Earth::RadiusKm
    linkageType: ''
    returnType: double
    signature: double S2Earth::RadiansToKm(double radians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2earth.h:194,1
    - Dst: S2Earth::ToRadians
      Src: /src/s2geometry/src/s2/s2earth.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' distance'
    argTypes:
    - util::units::Meters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: S2Earth::ToAngle
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 3
    functionsReached:
    - S1Angle::Radians
    - S2Earth::ToRadians
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Earth::ToAngle(const util::units::Meters& distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2earth.h:198,1
    - Dst: S2Earth::ToAngle
      Src: /src/s2geometry/src/s2/s2earth.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' distance'
    argTypes:
    - util::units::Meters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: S2Earth::ToChordAngle
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S1ChordAngle
    - S2Earth::ToAngle
    linkageType: ''
    returnType: S1ChordAngle
    signature: S1ChordAngle S2Earth::ToChordAngle(const util::units::Meters& distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/s2geometry/src/s2/s2earth.h:202,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' distance'
    argTypes:
    - util::units::Meters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: S2Earth::ToRadians
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 2
    functionsReached:
    - value
    - S2Earth::RadiusMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::ToRadians(const util::units::Meters& distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_ContainsVsRadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:206,1
    - Dst: S2Earth::ToMeters
      Src: /src/s2geometry/src/s2/s2earth.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' angle'
    argTypes:
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: S2Earth::ToDistance
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - BM_ContainsVsRadiusMeters
    - S2Earth::ToMeters
    linkageType: ''
    returnType: util::units::Meters
    signature: util::units::Meters S2Earth::ToDistance(const S1Angle& angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_ContainsVsRadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:210,1
    - Dst: S2Earth::ToMeters
      Src: /src/s2geometry/src/s2/s2earth.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cangle'
    argTypes:
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: S2Earth::ToDistance
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - BM_ContainsVsRadiusMeters
    - S2Earth::ToMeters
    linkageType: ''
    returnType: util::units::Meters
    signature: util::units::Meters S2Earth::ToDistance(const S1ChordAngle& cangle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_ContainsVsRadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:214,1
    - Dst: S2Earth::RadiansToMeters
      Src: /src/s2geometry/src/s2/s2earth.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - radians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: S2Earth::RadiansToDistance
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - BM_ContainsVsRadiusMeters
    - S2Earth::RadiansToMeters
    linkageType: ''
    returnType: util::units::Meters
    signature: util::units::Meters S2Earth::RadiansToDistance(double radians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth.h:218,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - km2
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: S2Earth::SquareKmToSteradians
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::RadiusKm
    linkageType: ''
    returnType: double
    signature: double S2Earth::SquareKmToSteradians(double km2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:222,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m2
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: S2Earth::SquareMetersToSteradians
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::RadiusMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::SquareMetersToSteradians(double m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth.h:226,1
    - Dst: S2Earth::RadiusKm
      Src: /src/s2geometry/src/s2/s2earth.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - steradians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: S2Earth::SteradiansToSquareKm
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::RadiusKm
    linkageType: ''
    returnType: double
    signature: double S2Earth::SteradiansToSquareKm(double steradians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:230,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - steradians
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: S2Earth::SteradiansToSquareMeters
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::RadiusMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::SteradiansToSquareMeters(double steradians)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::MetersToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - km
    - latitude_radians
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: S2Earth::KmToLongitudeRadians
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::MetersToLongitudeRadians
    linkageType: ''
    returnType: double
    signature: "double S2Earth::KmToLongitudeRadians(double km,\n                                            double
      latitude_radians)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::MetersToLongitudeRadians
      Src: /src/s2geometry/src/s2/s2earth.h:240,1
    - Dst: value
      Src: /src/s2geometry/src/s2/s2earth.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' distance'
    - latitude_radians
    argTypes:
    - util::units::Meters
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: S2Earth::ToLongitudeRadians
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::MetersToLongitudeRadians
    - value
    linkageType: ''
    returnType: double
    signature: "double S2Earth::ToLongitudeRadians(const util::units::Meters& distance,\n
      \                                         double latitude_radians)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiansToMeters
      Src: /src/s2geometry/src/s2/s2earth.h:244,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2earth.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: S2Earth::GetDistanceMeters
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - Angle
    - S2Earth::RadiansToMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::GetDistanceMeters(const S2Point& a, const S2Point&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::ToMeters
      Src: /src/s2geometry/src/s2/s2earth.h:248,1
    - Dst: S2Earth::GetDistance
      Src: /src/s2geometry/src/s2/s2earth.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: S2Earth::GetDistanceMeters
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::GetDistance
    - S2Earth::ToMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::GetDistanceMeters(const S2LatLng& a, const S2LatLng&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiansToKm
      Src: /src/s2geometry/src/s2/s2earth.h:252,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2earth.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: S2Earth::GetDistanceKm
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - Angle
    - S2Earth::RadiansToKm
    linkageType: ''
    returnType: double
    signature: double S2Earth::GetDistanceKm(const S2Point& a, const S2Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::ToKm
      Src: /src/s2geometry/src/s2/s2earth.h:256,1
    - Dst: S2Earth::GetDistance
      Src: /src/s2geometry/src/s2/s2earth.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: S2Earth::GetDistanceKm
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 1
    functionsReached:
    - S2Earth::ToKm
    - S2Earth::GetDistance
    linkageType: ''
    returnType: double
    signature: double S2Earth::GetDistanceKm(const S2LatLng& a, const S2LatLng& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiansToDistance
      Src: /src/s2geometry/src/s2/s2earth.h:261,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2earth.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: S2Earth::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 3
    functionsReached:
    - Angle
    - S2Earth::RadiansToDistance
    linkageType: ''
    returnType: util::units::Meters
    signature: "util::units::Meters S2Earth::GetDistance(const S2Point& a,\n                                                const
      S2Point& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::ToDistance
      Src: /src/s2geometry/src/s2/s2earth.h:266,1
    - Dst: S2Earth::GetDistance
      Src: /src/s2geometry/src/s2/s2earth.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: S2Earth::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 4
    functionsReached:
    - S2Earth::GetDistance
    - S2Earth::ToDistance
    linkageType: ''
    returnType: util::units::Meters
    signature: "util::units::Meters S2Earth::GetDistance(const S2LatLng& a,\n                                                const
      S2LatLng& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: S2Earth::RadiusMeters
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double S2Earth::RadiusMeters()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: S2Earth::RadiusKm
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 8
    functionsReached:
    - S2Earth::RadiusMeters
    linkageType: ''
    returnType: double
    signature: double S2Earth::RadiusKm()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_ContainsVsRadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:274,1
    - Dst: S2Earth::RadiusMeters
      Src: /src/s2geometry/src/s2/s2earth.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: S2Earth::Radius
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 3
    functionsReached:
    - BM_ContainsVsRadiusMeters
    - S2Earth::RadiusMeters
    linkageType: ''
    returnType: util::units::Meters
    signature: util::units::Meters S2Earth::Radius()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: S2Earth::LowestAltitudeMeters
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double S2Earth::LowestAltitudeMeters()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: S2Earth::HighestAltitudeMeters
    functionSourceFile: /src/s2geometry/src/s2/s2earth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double S2Earth::HighestAltitudeMeters()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: ~S2Region()
    functionSourceFile: /src/s2geometry/src/s2/s2region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2Region()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: S2Region::S2Region
    functionSourceFile: /src/s2geometry/src/s2/s2region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Region()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: S2Region::S2Region
    functionSourceFile: /src/s2geometry/src/s2/s2region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Region(const S2Region&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: S2Region::S2Region
    functionSourceFile: /src/s2geometry/src/s2/s2region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Region(S2Region&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: '& operator=(const S2Region&)'
    functionSourceFile: /src/s2geometry/src/s2/s2region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Region
    signature: S2Region & operator=(const S2Region&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: '& operator=(S2Region&&)'
    functionSourceFile: /src/s2geometry/src/s2/s2region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Region
    signature: S2Region & operator=(S2Region&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:43,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:43,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:44,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:44,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:45,1
    - Dst: padding
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:46,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:46,1
    - Dst: bound
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:46,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:48,1
    - Dst: R2Rect::FromPoint
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:48,1
    - Dst: middle
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:49,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:49,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ' cell'
    - ' pcell'
    - padding
    argTypes:
    - S2Cell
    - S2PaddedCell
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: CompareS2CellToPadded
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 0
    functionsReached:
    - padding
    - level
    - middle
    - id
    - R2Rect::FromPoint
    - bound
    - EXPECT_EQ
    - GetBoundUV
    - GetCenter
    linkageType: ''
    returnType: void
    signature: "void CompareS2CellToPadded(const S2Cell& cell, const S2PaddedCell&
      pcell,\n                           double padding)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:54,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:55,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:58,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:59,1
    - Dst: CompareS2CellToPadded
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:62,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:65,1
    - Dst: S2Cell::Subdivide
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:65,1
    - Dst: S2PaddedCell::GetChildIJ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:68,1
    - Dst: CompareS2CellToPadded
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:69,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::Subdivide
    - S2CellId::is_leaf
    - EXPECT_TRUE
    - S2PaddedCell
    - s2random::CellId
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2PaddedCell::GetChildIJ
    - S2Testing::MakeTaggedSeedSeq
    - CompareS2CellToPadded
    linkageType: ''
    returnType: void
    signature: void TEST(S2PaddedCell, S2CellMethods)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:77,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:78,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:83,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:83,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:85,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:85,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:91,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:91,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:92,1
    - Dst: S2CellId::next_wrap
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:92,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:97,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:97,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:98,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:99,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:99,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:100,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_leaf
    - S2CellId::next_wrap
    - s2random::CellId
    - S2PaddedCell
    - EXPECT_EQ
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST(S2PaddedCell, GetEntryExitVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:106,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:106,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - ' x'
    argTypes:
    - absl::BitGenRef
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: SampleInterval
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 0
    functionsReached:
    - absl::Uniform<double>
    - lo
    - hi
    linkageType: ''
    returnType: double
    signature: double SampleInterval(absl::BitGenRef bitgen, const R1Interval& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:111,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:112,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:115,1
    - Dst: S2CellId::GetBoundUV
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:116,1
    - Dst: R2Rect::GetSize
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:117,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:121,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:122,1
    - Dst: R2Rect::Expanded
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:123,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:126,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:127,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:128,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:129,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:132,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:137,1
    - Dst: S2CellId::GetCenterUV
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:138,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:143,1
    - Dst: R1Interval::Intersection
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:143,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:144,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:144,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:144,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:145,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:145,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:145,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:147,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:151,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:151,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:152,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 154
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 0
    functionsReached:
    - s2random::CellId
    - R2Rect::GetSize
    - S2CellId::is_leaf
    - R2Rect::Expanded
    - R2Rect::FromPointPair
    - min
    - R1Interval
    - S2PaddedCell
    - EXPECT_EQ
    - hi
    - S2CellId::GetCenterUV
    - S2CellId::level
    - SampleInterval
    - S2CellId::GetBoundUV
    - S2Testing::MakeTaggedSeedSeq
    - lo
    - S2CellId::parent
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - R1Interval::Intersection
    linkageType: ''
    returnType: void
    signature: void TEST(S2PaddedCell, ShrinkToFit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:43,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:43,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:44,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:44,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:45,1
    - Dst: padding
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:46,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:46,1
    - Dst: bound
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:46,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:48,1
    - Dst: R2Rect::FromPoint
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:48,1
    - Dst: middle
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:49,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:49,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ' cell'
    - ' pcell'
    - padding
    argTypes:
    - S2Cell
    - S2PaddedCell
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: CompareS2CellToPadded
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 1
    functionsReached:
    - padding
    - level
    - middle
    - id
    - R2Rect::FromPoint
    - bound
    - EXPECT_EQ
    - GetBoundUV
    - GetCenter
    linkageType: ''
    returnType: void
    signature: "void CompareS2CellToPadded(const S2Cell& cell, const S2PaddedCell&
      pcell,\n                           double padding)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:54,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:55,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:58,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:59,1
    - Dst: CompareS2CellToPadded
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:62,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:65,1
    - Dst: S2Cell::Subdivide
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:65,1
    - Dst: S2PaddedCell::GetChildIJ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:68,1
    - Dst: CompareS2CellToPadded
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:69,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 0
    functionsReached:
    - S2Cell::Subdivide
    - S2CellId::is_leaf
    - EXPECT_TRUE
    - S2PaddedCell
    - s2random::CellId
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2PaddedCell::GetChildIJ
    - S2Testing::MakeTaggedSeedSeq
    - CompareS2CellToPadded
    linkageType: ''
    returnType: void
    signature: void TEST(S2PaddedCell, S2CellMethods)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:77,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:78,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:83,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:83,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:85,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:85,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:91,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:91,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:92,1
    - Dst: S2CellId::next_wrap
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:92,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:97,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:97,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:98,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:99,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:99,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:100,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_leaf
    - S2CellId::next_wrap
    - s2random::CellId
    - S2PaddedCell
    - EXPECT_EQ
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST(S2PaddedCell, GetEntryExitVertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:106,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:106,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - ' x'
    argTypes:
    - absl::BitGenRef
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: SampleInterval
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 1
    functionsReached:
    - absl::Uniform<double>
    - lo
    - hi
    linkageType: ''
    returnType: double
    signature: double SampleInterval(absl::BitGenRef bitgen, const R1Interval& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:111,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:112,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:115,1
    - Dst: S2CellId::GetBoundUV
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:116,1
    - Dst: R2Rect::GetSize
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:117,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:121,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:122,1
    - Dst: R2Rect::Expanded
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:123,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:126,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:127,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:128,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:129,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:132,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:137,1
    - Dst: S2CellId::GetCenterUV
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:138,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:143,1
    - Dst: R1Interval::Intersection
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:143,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:144,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:144,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:144,1
    - Dst: SampleInterval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:145,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:145,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:145,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:147,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:151,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:151,1
    - Dst: S2CellId::level
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:152,1
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/s2padded_cell_test.cc:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 154
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2padded_cell_test.cc
    functionUses: 0
    functionsReached:
    - s2random::CellId
    - R2Rect::GetSize
    - S2CellId::is_leaf
    - R2Rect::Expanded
    - R2Rect::FromPointPair
    - min
    - R1Interval
    - S2PaddedCell
    - EXPECT_EQ
    - hi
    - S2CellId::GetCenterUV
    - S2CellId::level
    - SampleInterval
    - S2CellId::GetBoundUV
    - S2Testing::MakeTaggedSeedSeq
    - lo
    - S2CellId::parent
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - R1Interval::Intersection
    linkageType: ''
    returnType: void
    signature: void TEST(S2PaddedCell, ShrinkToFit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:111,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:112,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: s2builderutil::IndexedLaxPolylineLayer::IndexedLaxPolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached:
    - S2LaxPolylineShape::S2LaxPolylineShape
    - Options
    - get
    linkageType: ''
    returnType: void
    signature: "void IndexedLaxPolylineLayer(MutableS2ShapeIndex* index,\n                                   const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedLaxPolylineLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: s2builderutil::IndexedLaxPolylineLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 1
    functionsReached:
    - s2builderutil::IndexedLaxPolylineLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedLaxPolylineLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:120,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:121,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:121,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:122,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: s2builderutil::IndexedLaxPolylineLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 1
    functionsReached:
    - Add
    - num_vertices
    - std::move
    - s2builderutil::IndexedLaxPolylineLayer::Build
    - ok
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: LaxPolylineLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaxPolylineLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: LaxPolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaxPolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: LaxPolylineLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType LaxPolylineLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: "LaxPolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void LaxPolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:111,1
    - Dst: S2LaxPolylineShape::S2LaxPolylineShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:112,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: s2builderutil::IndexedLaxPolylineLayer::IndexedLaxPolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached:
    - S2LaxPolylineShape::S2LaxPolylineShape
    - Options
    - get
    linkageType: ''
    returnType: void
    signature: "void IndexedLaxPolylineLayer(MutableS2ShapeIndex* index,\n                                   const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedLaxPolylineLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: s2builderutil::IndexedLaxPolylineLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 2
    functionsReached:
    - s2builderutil::IndexedLaxPolylineLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedLaxPolylineLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:120,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:121,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:121,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:122,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: s2builderutil::IndexedLaxPolylineLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 2
    functionsReached:
    - Add
    - num_vertices
    - std::move
    - s2builderutil::IndexedLaxPolylineLayer::Build
    - ok
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: LaxPolylineLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaxPolylineLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: LaxPolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaxPolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: LaxPolylineLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType LaxPolylineLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: "LaxPolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void LaxPolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: S2Loop::num_vertices
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_vertices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2loop.h:194,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2loop.h:195,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.h:195,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: '& vertex(int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - num_vertices
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Point
    signature: S2Point & vertex(int i) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2loop.h:208,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2loop.h:209,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.h:209,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.h:210,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2loop.h:212,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.h:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: '& oriented_vertex(int i) const'
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - is_hole
    - num_vertices
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: S2Point
    signature: S2Point & oriented_vertex(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2loop.h:219,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2loop.h:219,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: S2Loop::vertices_span
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - S2Loop::num_vertices
    - S2PointLoopSpan
    - get
    linkageType: ''
    returnType: S2PointLoopSpan
    signature: S2PointLoopSpan vertices_span() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: S2Loop::depth
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int depth() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: S2Loop::set_depth
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_depth(int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: S2Loop::is_hole
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_hole() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::is_hole
      Src: /src/s2geometry/src/s2/s2loop.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: S2Loop::sign
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - S2Loop::is_hole
    linkageType: ''
    returnType: int
    signature: int sign() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 407
    functionName: S2Loop::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect GetRectBound() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: S2Loop::Shape::Shape
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Shape::Init
      Src: /src/s2geometry/src/s2/s2loop.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2Loop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 474
    functionName: S2Loop::Shape::Shape
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - S2Loop::Shape::Init
    linkageType: ''
    returnType: void
    signature: void Shape(const S2Loop* loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2Loop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 475
    functionName: S2Loop::Shape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Init(const S2Loop* loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 477
    functionName: S2Loop::Shape::loop
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: S2Loop
    signature: S2Loop * loop() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.h:481,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 482
    functionName: S2Loop::Shape::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 3
    functionsReached:
    - num_vertices
    - is_empty_or_full
    linkageType: ''
    returnType: int
    signature: int num_edges() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2loop.h:484,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.h:484,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: S2Loop::Shape::edge
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached:
    - Edge
    - vertex
    linkageType: ''
    returnType: Edge
    signature: Edge edge(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 486
    functionName: S2Loop::Shape::dimension
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dimension() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferencePoint
      Src: /src/s2geometry/src/s2/s2loop.h:488,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2loop.h:488,1
    - Dst: contains_origin
      Src: /src/s2geometry/src/s2/s2loop.h:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: S2Loop::Shape::GetReferencePoint
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 3
    functionsReached:
    - S2::Origin
    - ReferencePoint
    - contains_origin
    linkageType: ''
    returnType: ReferencePoint
    signature: ReferencePoint GetReferencePoint() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop.h:493,1
    - Dst: Edge
      Src: /src/s2geometry/src/s2/s2loop.h:494,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.h:494,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.h:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: S2Loop::Shape::chain_edge
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - Edge
    - vertex
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: Edge
    signature: Edge chain_edge(int i, int j) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChainPosition
      Src: /src/s2geometry/src/s2/s2loop.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: S2Loop::Shape::chain_position
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - ChainPosition
    linkageType: ''
    returnType: ChainPosition
    signature: ChainPosition chain_position(int e) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 513
    functionName: S2Loop::OwningShape::OwningShape
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OwningShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<const S2Loop>::release
      Src: /src/s2geometry/src/s2/s2loop.h:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - loop
    argTypes:
    - std::unique_ptr<const S2Loop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 516
    functionName: S2Loop::OwningShape::OwningShape
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached:
    - std::unique_ptr<const S2Loop>::release
    linkageType: ''
    returnType: void
    signature: void OwningShape(std::unique_ptr<const S2Loop> loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LaxPolygonShape::Init
      Src: /src/s2geometry/src/s2/s2loop.h:518,1
    - Dst: std::unique_ptr<const S2Loop>::release
      Src: /src/s2geometry/src/s2/s2loop.h:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - std::unique_ptr<const S2Loop>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: S2Loop::OwningShape::Init
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached:
    - S2LaxPolygonShape::Init
    - std::unique_ptr<const S2Loop>::release
    linkageType: ''
    returnType: void
    signature: void Init(std::unique_ptr<const S2Loop> loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loop
      Src: /src/s2geometry/src/s2/s2loop.h:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    functionName: ~OwningShape() override
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - loop
    linkageType: ''
    returnType: void
    signature: void ~OwningShape() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ForceBuild
      Src: /src/s2geometry/src/s2/s2loop.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 525
    functionName: S2Loop::ForceBuildIndex
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 1
    functionsReached:
    - ForceBuild
    linkageType: ''
    returnType: void
    signature: void ForceBuildIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 541
    functionName: S2Loop::contains_origin
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool contains_origin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::MakeConstSpan
      Src: /src/s2geometry/src/s2/s2loop.h:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 679
    functionName: S2Loop::kEmpty
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 12
    functionsReached:
    - absl::MakeConstSpan
    linkageType: ''
    returnType: absl::Span<const S2Point>
    signature: absl::Span<const S2Point> S2Loop::kEmpty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::MakeConstSpan
      Src: /src/s2geometry/src/s2/s2loop.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 683
    functionName: S2Loop::kFull
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 22
    functionsReached:
    - absl::MakeConstSpan
    linkageType: ''
    returnType: absl::Span<const S2Point>
    signature: absl::Span<const S2Point> S2Loop::kFull()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.h:686,1
    - Dst: S2Loop::contains_origin
      Src: /src/s2geometry/src/s2/s2loop.h:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 687
    functionName: S2Loop::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - S2Loop::contains_origin
    - S2Loop::is_empty_or_full
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.h:690,1
    - Dst: S2Loop::contains_origin
      Src: /src/s2geometry/src/s2/s2loop.h:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 691
    functionName: S2Loop::is_full
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - S2Loop::contains_origin
    - S2Loop::is_empty_or_full
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::is_full() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.h:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 695
    functionName: S2Loop::is_empty_or_full
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 2
    functionsReached:
    - S2Loop::num_vertices
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::is_empty_or_full() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetSurfaceIntegral
      Src: /src/s2geometry/src/s2/s2loop.h:703,1
    - Dst: S2Loop::vertices_span
      Src: /src/s2geometry/src/s2/s2loop.h:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f_tri
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 704
    functionName: S2Loop::GetSurfaceIntegral
    functionSourceFile: /src/s2geometry/src/s2/s2loop.h
    functionUses: 0
    functionsReached:
    - S2::GetSurfaceIntegral
    - S2Loop::vertices_span
    linkageType: ''
    returnType: T
    signature: "T S2Loop::GetSurfaceIntegral(T f_tri(const S2Point&, const S2Point&,\n
      \                                    const S2Point&)) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:173,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: S2ClosestCellQueryBase::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached:
    - S2MinDistance::Infinity
    - S2CellId::None
    linkageType: ''
    returnType: void
    signature: void Result()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - distance
    - cell_id
    - label
    argTypes:
    - Distance
    - S2CellId
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: S2ClosestCellQueryBase::Result::Result
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Result(Distance distance, S2CellId cell_id, Label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: S2ClosestCellQueryBase::Result::distance
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Distance
    signature: Distance distance() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: S2ClosestCellQueryBase::Result::cell_id
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId cell_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: S2ClosestCellQueryBase::Result::label
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Label
    signature: Label label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: S2ClosestCellQueryBase::Result::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached:
    - S2CellId::None
    linkageType: ''
    returnType: bool
    signature: bool is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: operator==(const Result& x, const Result& y)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Result& x, const Result& y)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: operator<(const Result& x, const Result& y)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Result& x, const Result& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: S2ClosestCellQueryBase::S2ClosestCellQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase(const S2ClosestCellQueryBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: operator=(const S2ClosestCellQueryBase&)
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const S2ClosestCellQueryBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _distance
    - _id
    argTypes:
    - Distance
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: S2ClosestCellQueryBase::QueueEntry
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void QueueEntry(Distance _distance, S2CellId _id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - QueueEntry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: operator<(const QueueEntry& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const QueueEntry& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: S2ClosestCellQueryBase<Distance>::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase<Distance>::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: S2ClosestCellQueryBase<Distance>::Options::max_results() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S2ClosestCellQueryBase<Distance>::Options::max_results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - max_results
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: "S2ClosestCellQueryBase<Distance>::Options::set_max_results(\n    int
      max_results)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::Options::set_max_results(\n
      \   int max_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: "S2ClosestCellQueryBase<Distance>::Options::max_distance()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Distance
    signature: "Distance S2ClosestCellQueryBase<Distance>::Options::max_distance()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_distance
    argTypes:
    - Distance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: "S2ClosestCellQueryBase<Distance>::Options::set_max_distance(\n
      \   Distance max_distance)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::Options::set_max_distance(\n
      \   Distance max_distance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: S2ClosestCellQueryBase<Distance>::Options::max_error() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename Distance::Delta
    signature: typename Distance::Delta S2ClosestCellQueryBase<Distance>::Options::max_error()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_error
    argTypes:
    - Delta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: "S2ClosestCellQueryBase<Distance>::Options::set_max_error(\n    Delta
      max_error)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::Options::set_max_error(\n    Delta
      max_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: "* S2ClosestCellQueryBase<Distance>::Options::region()\n    const"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Region
    signature: "S2Region * S2ClosestCellQueryBase<Distance>::Options::region()\n    const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - region
    argTypes:
    - S2Region*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: "S2ClosestCellQueryBase<Distance>::Options::set_region(\n    const
      S2Region* region)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::Options::set_region(\n    const
      S2Region* region)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    functionName: S2ClosestCellQueryBase<Distance>::Options::use_brute_force() const
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2ClosestCellQueryBase<Distance>::Options::use_brute_force() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - use_brute_force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: "S2ClosestCellQueryBase<Distance>::Options::set_use_brute_force(\n
      \   bool use_brute_force)"
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::Options::set_use_brute_force(\n
      \   bool use_brute_force)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: S2ClosestCellQueryBase<Distance>::S2ClosestCellQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase<Distance>::S2ClosestCellQueryBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: S2ClosestCellQueryBase<Distance>::~S2ClosestCellQueryBase()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase<Distance>::~S2ClosestCellQueryBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQueryBase<Distance>::Init
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: S2ClosestCellQueryBase<Distance>::S2ClosestCellQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached:
    - S2ClosestCellQueryBase<Distance>::Init
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::S2ClosestCellQueryBase(\n    const
      S2CellIndex* index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQueryBase<Distance>::Init
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:461,1
    - Dst: S2ClosestCellQueryBase<Distance>::ReInit
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - S2CellIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 463
    functionName: S2ClosestCellQueryBase<Distance>::Init
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 2
    functionsReached:
    - S2ClosestCellQueryBase<Distance>::Init
    - S2ClosestCellQueryBase<Distance>::ReInit
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::Init(\n    const S2CellIndex*
      index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 468
    functionName: S2ClosestCellQueryBase<Distance>::ReInit
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 1
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase<Distance>::ReInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: '&

      S2ClosestCellQueryBase<Distance>::index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellIndex
    signature: 'S2CellIndex &

      S2ClosestCellQueryBase<Distance>::index() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQueryBase<Distance>::FindClosestCells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - target
    - ' options'
    argTypes:
    - Target*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 483
    functionName: S2ClosestCellQueryBase<Distance>::FindClosestCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 1
    functionsReached:
    - S2ClosestCellQueryBase<Distance>::FindClosestCells
    linkageType: ''
    returnType: std::vector<typename S2ClosestCellQueryBase<Distance>::Result>
    signature: "std::vector<typename S2ClosestCellQueryBase<Distance>::Result> S2ClosestCellQueryBase<Distance>::FindClosestCells(\n
      \   Target* target, const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:489,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:489,1
    - Dst: S2ClosestCellQueryBase<Distance>::FindClosestCellsInternal
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - target
    - ' options'
    argTypes:
    - Target*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 492
    functionName: S2ClosestCellQueryBase<Distance>::FindClosestCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 0
    functionsReached:
    - max_results
    - S2ClosestCellQueryBase<Distance>::FindClosestCellsInternal
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: typename S2ClosestCellQueryBase<Distance>::Result
    signature: "typename S2ClosestCellQueryBase<Distance>::Result S2ClosestCellQueryBase<Distance>::FindClosestCell(\n
      \   Target* target, const Options& options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQueryBase<Distance>::FindClosestCellsInternal
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:497,1
    - Dst: std::vector<Result>*::clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:498,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:499,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:500,1
    - Dst: std::vector<Result>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:501,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:503,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:504,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:504,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:504,1
    - Dst: std::unique_copy
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:505,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:505,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:505,1
    - Dst: std::back_inserter
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:506,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:507,1
    - Dst: std::vector<Result>*::assign
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:509,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:509,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:509,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - target
    - ' options'
    - results
    argTypes:
    - Target*
    - Options
    - std::vector<Result>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 512
    functionName: S2ClosestCellQueryBase<Distance>::FindClosestCells
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 1
    functionsReached:
    - std::vector<Result>*::push_back
    - std::vector<Result>*::clear
    - end
    - std::back_inserter
    - clear
    - S2ClosestCellQueryBase<Distance>::FindClosestCellsInternal
    - begin
    - std::vector<Result>*::assign
    - std::sort
    - std::unique_copy
    - max_results
    - is_empty
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::FindClosestCells(\n    Target*
      target, const Options& options, std::vector<Result>* results)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:520,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:521,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:522,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:523,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:524,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:524,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:525,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:525,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:526,1
    - Dst: Target*::max_brute_force_index_size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:526,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:527,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:529,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:530,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:530,1
    - Dst: region
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:531,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:532,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:557,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:557,1
    - Dst: set_max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:558,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:558,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:563,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:564,1
    - Dst: max_error
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:564,1
    - Dst: use_brute_force
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:567,1
    - Dst: num_cells
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:568,1
    - Dst: max_brute_force_index_size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:568,1
    - Dst: S2ClosestCellQueryBase<Distance>::FindClosestCellsBruteForce
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:570,1
    - Dst: max_results
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:574,1
    - Dst: S2ClosestCellQueryBase<Distance>::FindClosestCellsOptimized
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:575,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - target
    - ' options'
    argTypes:
    - Target*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 577
    functionName: S2ClosestCellQueryBase<Distance>::FindClosestCellsInternal
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 2
    functionsReached:
    - Result
    - ABSL_LOG
    - ABSL_DCHECK_GE
    - num_cells
    - ABSL_DCHECK
    - max_distance
    - S2ClosestCellQueryBase<Distance>::FindClosestCellsBruteForce
    - Clear
    - S2MinDistance::Infinity
    - empty
    - region
    - max_error
    - S2MinDistance::Zero
    - set_max_error
    - use_brute_force
    - max_brute_force_index_size
    - Target*::max_brute_force_index_size
    - clear
    - S1ChordAngle::Zero
    - S2ClosestCellQueryBase<Distance>::FindClosestCellsOptimized
    - max_results
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::FindClosestCellsInternal(\n
      \   Target* target, const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CellIterator::done
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:581,1
    - Dst: CellIterator::Next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:581,1
    - Dst: S2ClosestCellQueryBase<Distance>::MaybeAddResult
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:582,1
    - Dst: CellIterator::cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:582,1
    - Dst: CellIterator::label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: S2ClosestCellQueryBase<Distance>::FindClosestCellsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 1
    functionsReached:
    - CellIterator::cell_id
    - CellIterator::done
    - CellIterator::label
    - CellIterator::Next
    - S2ClosestCellQueryBase<Distance>::MaybeAddResult
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase<Distance>::FindClosestCellsBruteForce()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestCellQueryBase<Distance>::InitQueue
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:588,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:589,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:592,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:593,1
    - Dst: CellQueue
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:595,1
    - Dst: QueueEntry::id::child_begin
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:598,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:604,1
    - Dst: S2ClosestCellQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 608
    functionName: S2ClosestCellQueryBase<Distance>::FindClosestCellsOptimized
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 1
    functionsReached:
    - CellQueue
    - pop
    - top
    - QueueEntry::id::child_begin
    - S2ClosestCellQueryBase<Distance>::InitQueue
    - S2CellId::next
    - S2ClosestCellQueryBase<Distance>::ProcessOrEnqueue
    - empty
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase<Distance>::FindClosestCellsOptimized()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:612,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:612,1
    - Dst: GetCapBound
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:618,1
    - Dst: S2Cap::is_empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:619,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:620,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:632,1
    - Dst: NonEmptyRangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:633,1
    - Dst: S2ClosestCellQueryBase<Distance>::AddRange
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:634,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:635,1
    - Dst: NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:639,1
    - Dst: NonEmptyRangeIterator::Prev
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:639,1
    - Dst: S2ClosestCellQueryBase<Distance>::AddRange
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:640,1
    - Dst: S2MinDistance::Zero
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:641,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:660,1
    - Dst: S2ClosestCellQueryBase<Distance>::InitCovering
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:660,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:662,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:663,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:664,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:665,1
    - Dst: GetChordAngleBound
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:665,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:666,1
    - Dst: S2RegionCoverer::GetFastCovering
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:667,1
    - Dst: S2CellUnion::GetIntersection
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:668,1
    - Dst: std::vector*::size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:673,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:675,1
    - Dst: NonEmptyRangeIterator::limit_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:675,1
    - Dst: S2ClosestCellQueryBase<Distance>::ProcessOrEnqueue
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:676,1
    - Dst: NonEmptyRangeIterator::done
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:677,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 679
    functionName: S2ClosestCellQueryBase<Distance>::InitQueue
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 1
    functionsReached:
    - S2Cap::center
    - S2ClosestCellQueryBase<Distance>::InitCovering
    - S2ClosestCellQueryBase<Distance>::AddRange
    - S2CellId::range_min
    - S2RegionCoverer::mutable_options
    - NonEmptyRangeIterator::Prev
    - NonEmptyRangeIterator::start_id
    - ABSL_DCHECK
    - GetChordAngleBound
    - S2Cap::is_empty
    - GetCapBound
    - options
    - S2MinDistance::Infinity
    - S2RegionCoverer::GetFastCovering
    - empty
    - S2Cap::radius
    - std::vector*::size
    - S2MinDistance::Zero
    - S2ClosestCellQueryBase<Distance>::ProcessOrEnqueue
    - NonEmptyRangeIterator::done
    - S2RegionCoverer::S2RegionCoverer
    - NonEmptyRangeIterator::Seek
    - NonEmptyRangeIterator::limit_id
    - S2CellUnion::GetIntersection
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase<Distance>::InitQueue()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:698,1
    - Dst: NonEmptyRangeIterator::Begin
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:700,1
    - Dst: Finish
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:701,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:702,1
    - Dst: limit_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:703,1
    - Dst: NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:704,1
    - Dst: start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:704,1
    - Dst: NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:709,1
    - Dst: NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:712,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:713,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:714,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:716,1
    - Dst: NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:716,1
    - Dst: NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:720,1
    - Dst: NonEmptyRangeIterator::Seek
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:721,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:721,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:724,1
    - Dst: S2ClosestCellQueryBase<Distance>::AddInitialRange
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:725,1
    - Dst: limit_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:725,1
    - Dst: S2ClosestCellQueryBase<Distance>::AddInitialRange
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:728,1
    - Dst: NonEmptyRangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:728,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 729
    functionName: S2ClosestCellQueryBase<Distance>::InitCovering
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 1
    functionsReached:
    - start_id
    - S2CellId::range_max
    - reserve
    - NonEmptyRangeIterator::Begin
    - Prev
    - S2CellId::next
    - S2CellId::parent
    - limit_id
    - NonEmptyRangeIterator::Seek
    - S2ClosestCellQueryBase<Distance>::AddInitialRange
    - Finish
    - NonEmptyRangeIterator::start_id
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase<Distance>::InitCovering()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetCommonAncestorLevel
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:738,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:739,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:740,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - first_id
    - last_id
    argTypes:
    - S2CellId
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 741
    functionName: S2ClosestCellQueryBase<Distance>::AddInitialRange
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 1
    functionsReached:
    - S2CellId::parent
    - push_back
    - ABSL_DCHECK_GE
    - S2CellId::GetCommonAncestorLevel
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::AddInitialRange(\n    S2CellId
      first_id, S2CellId last_id)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:749,1
    - Dst: UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:759,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:761,1
    - Dst: S2Region*::MayIntersect
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:762,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:765,1
    - Dst: Result::distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:768,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:768,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:769,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:770,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:775,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:776,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:777,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:778,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:779,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:779,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:781,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:781,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:782,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - cell_id
    - label
    argTypes:
    - S2CellId
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 785
    functionName: S2ClosestCellQueryBase<Distance>::MaybeAddResult
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 1
    functionsReached:
    - Result::distance
    - end
    - size
    - UpdateMinDistance
    - push_back
    - options
    - erase
    - distance
    - insert
    - S2Region*::MayIntersect
    linkageType: ''
    returnType: void
    signature: "void S2ClosestCellQueryBase<Distance>::MaybeAddResult(S2CellId cell_id,\n
      \                                                     Label label)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NonEmptyRangeIterator*::Seek
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:797,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:797,1
    - Dst: S2CellId::range_max
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:798,1
    - Dst: NonEmptyRangeIterator*::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:799,1
    - Dst: RangeIterator::Advance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:807,1
    - Dst: RangeIterator::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:807,1
    - Dst: UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:812,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:813,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:813,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:816,1
    - Dst: push
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:818,1
    - Dst: QueueEntry
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:818,1
    - Dst: NonEmptyRangeIterator*::start_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:823,1
    - Dst: NonEmptyRangeIterator*::Next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:823,1
    - Dst: S2ClosestCellQueryBase<Distance>::AddRange
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:824,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - id
    - iter
    - seek
    argTypes:
    - S2CellId
    - NonEmptyRangeIterator*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 827
    functionName: S2ClosestCellQueryBase<Distance>::ProcessOrEnqueue
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 2
    functionsReached:
    - S2CellId::range_max
    - S2ClosestCellQueryBase<Distance>::AddRange
    - S2CellId::range_min
    - NonEmptyRangeIterator*::Seek
    - NonEmptyRangeIterator*::Next
    - NonEmptyRangeIterator*::start_id
    - UpdateMinDistance
    - QueueEntry
    - options
    - RangeIterator::Advance
    - RangeIterator::start_id
    - push
    linkageType: ''
    returnType: bool
    signature: "bool S2ClosestCellQueryBase<Distance>::ProcessOrEnqueue(\n    S2CellId
      id, NonEmptyRangeIterator* iter, bool seek)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StartUnion
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:831,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:832,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:832,1
    - Dst: S2ClosestCellQueryBase<Distance>::MaybeAddResult
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:833,1
    - Dst: cell_id
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:833,1
    - Dst: label
      Src: /src/s2geometry/src/s2/s2closest_cell_query_base.h:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 835
    functionName: S2ClosestCellQueryBase<Distance>::AddRange
    functionSourceFile: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    functionUses: 2
    functionsReached:
    - done
    - label
    - StartUnion
    - cell_id
    - Next
    - S2ClosestCellQueryBase<Distance>::MaybeAddResult
    linkageType: ''
    returnType: void
    signature: void S2ClosestCellQueryBase<Distance>::AddRange(const RangeIterator&
      range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:29,1
    - Dst: S2PointSpan::size
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:30,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - S2PointSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: S2::GetLength
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_measures.cc
    functionUses: 10
    functionsReached:
    - S1Angle::S1Angle
    - S1Angle
    - S2PointSpan::size
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetLength(S2PointSpan polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:37,1
    - Dst: S2PointSpan::size
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:38,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - S2PointSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: S2::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_measures.cc
    functionUses: 16
    functionsReached:
    - S2::TrueCentroid
    - S2PointSpan::size
    - S2Point::S2Point
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetCentroid(S2PointSpan polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:29,1
    - Dst: S2PointSpan::size
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:30,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - S2PointSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: S2::GetLength
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_measures.cc
    functionUses: 10
    functionsReached:
    - S1Angle::S1Angle
    - S1Angle
    - S2PointSpan::size
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetLength(S2PointSpan polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:37,1
    - Dst: S2PointSpan::size
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:38,1
    - Dst: S2::TrueCentroid
      Src: /src/s2geometry/src/s2/s2polyline_measures.cc:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - S2PointSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: S2::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline_measures.cc
    functionUses: 16
    functionsReached:
    - S2::TrueCentroid
    - S2PointSpan::size
    - S2Point::S2Point
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetCentroid(S2PointSpan polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:55,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:56,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:58,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:59,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:59,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:60,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:62,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:62,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:64,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:65,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:66,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - input_strs
    - expected_str
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - string_view
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: TestS2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - S2ShapeNestingQuery::Options::Options
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - s2textformat::ToString
    - SCOPED_TRACE
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2Polyline(absl::Span<const string_view> input_strs,\n                    string_view
      expected_str, EdgeType edge_type,\n                    const S2Builder::Options&
      options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:72,1
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:73,1
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_str
    argTypes:
    - absl::Span<const string_view>
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: TestS2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 1
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: "void TestS2Polyline(absl::Span<const string_view> input_strs,\n                    string_view
      expected_str,\n                    const S2Builder::Options& options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: TestS2PolylineUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: void TestS2PolylineUnchanged(string_view input_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:88,1
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, OneEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, StraightLineWithBacktracking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:104,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:104,1
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - TestS2Polyline
    - S2Builder::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, EarlyWalkTerminationWithEndLoop1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, EarlyWalkTerminationWithEndLoop2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, SimpleLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, ManyLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, UnorderedLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:152,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:153,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:153,1
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - S2Builder::Options::set_split_crossing_edges
    - TestS2Polyline
    - S2Builder::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, SplitEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:162,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:163,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:165,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:166,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:166,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:168,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:169,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:170,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:170,1
    - Dst: S2Builder::push_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:171,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:172,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:172,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:173,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:174,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:174,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:175,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:176,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:176,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:177,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:178,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:178,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:180,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:180,1
    - Dst: S2PolylineLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:180,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:181,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:182,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:182,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:183,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 189
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::AddPolyline
    - IdSetLexicon::id_set
    - vector::size
    - S2Error::S2Error
    - S2PolylineLayer::LabelSetIds::size
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Polyline::S2Polyline
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - MakePolylineOrDie
    - S2Builder::push_label
    - size
    - S2Builder::clear_labels
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, SimpleEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:192,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:193,1
    - Dst: S2PolylineLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:195,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:196,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:196,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:198,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:198,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:199,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:199,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:201,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:202,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:203,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:204,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Polyline::S2Polyline
    - S2ShapeNestingQuery::Options::Options
    - S2Point
    - S2Builder::AddPolyline
    - S2PolylineLayer::Options::set_validate
    - S2Error::code
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, InvalidPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:209,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:210,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:211,1
    - Dst: make_unique<IndexedS2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:211,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:213,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:213,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:214,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:215,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:216,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:216,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:217,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:219,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::num_shape_ids
    - down_cast
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - make_unique<IndexedS2PolylineLayer>
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolylineLayer, AddsShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:223,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:224,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:225,1
    - Dst: make_unique<IndexedS2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:225,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:226,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:227,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:228,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:229,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:230,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - S2ShapeNestingQuery::Options::Options
    - MutableS2ShapeIndex::num_shape_ids
    - S2Builder::AddPolyline
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - make_unique<IndexedS2PolylineLayer>
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolylineLayer, AddsEmptyShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:55,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:56,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:58,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:59,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:59,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:60,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:62,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:62,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:64,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:65,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:66,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - input_strs
    - expected_str
    - edge_type
    argTypes:
    - absl::Span<const string_view>
    - string_view
    - EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: TestS2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 7
    functionsReached:
    - S2Polyline::S2Polyline
    - S2ShapeNestingQuery::Options::Options
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - s2textformat::ToString
    - SCOPED_TRACE
    - ASSERT_TRUE
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void TestS2Polyline(absl::Span<const string_view> input_strs,\n                    string_view
      expected_str, EdgeType edge_type,\n                    const S2Builder::Options&
      options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:72,1
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:73,1
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input_strs
    - expected_str
    argTypes:
    - absl::Span<const string_view>
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: TestS2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 8
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: "void TestS2Polyline(absl::Span<const string_view> input_strs,\n                    string_view
      expected_str,\n                    const S2Builder::Options& options = S2Builder::Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: TestS2PolylineUnchanged
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 4
    functionsReached:
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: void TestS2PolylineUnchanged(string_view input_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:88,1
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, OneEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, StraightLineWithBacktracking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:104,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:104,1
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - TestS2Polyline
    - S2Builder::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, EarlyWalkTerminationWithEndLoop1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, EarlyWalkTerminationWithEndLoop2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, SimpleLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2PolylineUnchanged
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2PolylineUnchanged
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, ManyLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - TestS2Polyline
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, UnorderedLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_split_crossing_edges
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:152,1
    - Dst: S2Builder::Options::set_snap_function
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:153,1
    - Dst: s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:153,1
    - Dst: TestS2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 159
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
    - S2Builder::Options::set_split_crossing_edges
    - TestS2Polyline
    - S2Builder::Options::set_snap_function
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, SplitEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:162,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:163,1
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:165,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:166,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:166,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:168,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:169,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:170,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:170,1
    - Dst: S2Builder::push_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:171,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:172,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:172,1
    - Dst: S2Builder::clear_labels
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:173,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:174,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:174,1
    - Dst: S2Builder::set_label
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:175,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:176,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:176,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:177,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:178,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:178,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:180,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:180,1
    - Dst: S2PolylineLayer::LabelSetIds::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:180,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:181,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:182,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:182,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:183,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 189
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2Builder::AddPolyline
    - IdSetLexicon::id_set
    - vector::size
    - S2Error::S2Error
    - S2PolylineLayer::LabelSetIds::size
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - S2Builder::StartLayer
    - S2Polyline::S2Polyline
    - ASSERT_EQ
    - IdSetLexicon::IdSetLexicon
    - S2ShapeNestingQuery::Options::Options
    - S2Builder::set_label
    - MakePolylineOrDie
    - S2Builder::push_label
    - size
    - S2Builder::clear_labels
    - ASSERT_TRUE
    - S2Builder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, SimpleEdgeLabels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:192,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:193,1
    - Dst: S2PolylineLayer::Options::set_validate
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:195,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:196,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:196,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:198,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:198,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:199,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:199,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:201,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:202,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:203,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:204,1
    - Dst: S2Error::code
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2Polyline::S2Polyline
    - S2ShapeNestingQuery::Options::Options
    - S2Point
    - S2Builder::AddPolyline
    - S2PolylineLayer::Options::set_validate
    - S2Error::code
    - S2Builder::Build
    - make_unique<S2PolylineLayer>
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2PolylineLayer, InvalidPolyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:209,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:210,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:211,1
    - Dst: make_unique<IndexedS2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:211,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:213,1
    - Dst: MakePolylineOrDie
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:213,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:214,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:215,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:216,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:216,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:217,1
    - Dst: MutableS2ShapeIndex::shape
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:219,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::shape
    - S2ShapeNestingQuery::Options::Options
    - s2textformat::ToString
    - MakePolylineOrDie
    - S2Builder::AddPolyline
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - MutableS2ShapeIndex::num_shape_ids
    - down_cast
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - make_unique<IndexedS2PolylineLayer>
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolylineLayer, AddsShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:223,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:224,1
    - Dst: S2Builder::StartLayer
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:225,1
    - Dst: make_unique<IndexedS2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:225,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:226,1
    - Dst: S2Builder::AddPolyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:227,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:228,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:229,1
    - Dst: S2Builder::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:230,1
    - Dst: MutableS2ShapeIndex::num_shape_ids
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - S2ShapeNestingQuery::Options::Options
    - MutableS2ShapeIndex::num_shape_ids
    - S2Builder::AddPolyline
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_TRUE
    - S2Builder::Build
    - EXPECT_EQ
    - make_unique<IndexedS2PolylineLayer>
    - S2Builder::StartLayer
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(IndexedS2PolylineLayer, AddsEmptyShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:33,1
    - Dst: absl::Span<const int32_t>::size
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:33,1
    - Dst: size
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:33,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:34,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:34,1
    - Dst: absl::Span<const int32_t>::begin
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:34,1
    - Dst: absl::Span<const int32_t>::end
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:34,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - expected
    - ' actual'
    argTypes:
    - absl::Span<const int32_t>
    - IdSetLexicon::IdSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: ExpectIdSet
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const int32_t>::end
    - EXPECT_TRUE
    - size
    - absl::Span<const int32_t>::size
    - begin
    - EXPECT_EQ
    - equal
    - absl::Span<const int32_t>::begin
    linkageType: ''
    returnType: void
    signature: "void ExpectIdSet(absl::Span<const int32_t> expected,\n                 const
      IdSetLexicon::IdSet& actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:41,1
    - Dst: ExpectIdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:42,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:42,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - IdSetLexicon::Add
    - IdSetLexicon::IdSetLexicon
    - ExpectIdSet
    - IdSetLexicon::id_set
    linkageType: ''
    returnType: void
    signature: void TEST(IdSetLexicon, EmptySet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:47,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:48,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:49,1
    - Dst: IdSetLexicon::AddSingleton
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:49,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:51,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:51,1
    - Dst: ExpectIdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:53,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:53,1
    - Dst: ExpectIdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:54,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:54,1
    - Dst: ExpectIdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:55,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:55,1
    - Dst: ExpectIdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:56,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - IdSetLexicon::AddSingleton
    - IdSetLexicon::IdSetLexicon
    - ExpectIdSet
    - Stats::max
    - IdSetLexicon::Add
    - IdSetLexicon::id_set
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IdSetLexicon, SingletonSets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:61,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:62,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:63,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:64,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:64,1
    - Dst: ExpectIdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:66,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:66,1
    - Dst: ExpectIdSet
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:67,1
    - Dst: IdSetLexicon::id_set
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - IdSetLexicon::IdSetLexicon
    - ExpectIdSet
    - IdSetLexicon::Add
    - IdSetLexicon::id_set
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IdSetLexicon, SetsAreSorted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSetLexicon::IdSetLexicon
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:72,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:73,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:73,1
    - Dst: IdSetLexicon::Clear
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:75,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:76,1
    - Dst: IdSetLexicon::Add
      Src: /src/s2geometry/src/s2/id_set_lexicon_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/id_set_lexicon_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IdSetLexicon::Add
    - IdSetLexicon::Clear
    - IdSetLexicon::IdSetLexicon
    linkageType: ''
    returnType: void
    signature: void TEST(IdSetLexicon, Clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2CellUnion>::size
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:39,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:40,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - coverings
    argTypes:
    - absl::Span<const S2CellUnion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: S2RegionSharderTest::IndexFromCoverings
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const S2CellUnion>::size
    - S2CellIndex::Add
    - S2CellIndex::Build
    linkageType: ''
    returnType: S2CellIndex
    signature: S2CellIndex IndexFromCoverings(absl::Span<const S2CellUnion> coverings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:49,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:49,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:50,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:51,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:52,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:54,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:59,1
    - Dst: at
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:59,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:60,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:61,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:70,1
    - Dst: S2RegionSharder
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:70,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:71,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:71,1
    - Dst: IndexFromCoverings
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:75,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:77,1
    - Dst: S2RegionSharder
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:77,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:78,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 80
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map::emplace
    - Run
    - at
    - std::move
    - S2RegionSharder
    - S2CellId::FromFacePosLevel
    - IndexFromCoverings
    - EXPECT_EQ
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionSharderTest, StoreInMap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:84,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:84,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:85,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:86,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:87,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:89,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:94,1
    - Dst: GetMostIntersectingShard
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:94,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:95,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:101,1
    - Dst: GetMostIntersectingShard
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:101,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:102,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:103,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:104,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:110,1
    - Dst: GetMostIntersectingShard
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:110,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:111,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:111,1
    - Dst: IndexFromCoverings
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:116,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:119,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:119,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:124,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 126
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - Run
    - GetMostIntersectingShard
    - std::move
    - S2CellId::FromFacePosLevel
    - IndexFromCoverings
    - EXPECT_EQ
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionSharderTest, GetMostIntersectingShard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:130,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:130,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:131,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:132,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:133,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:135,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:135,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:140,1
    - Dst: GetIntersectingShards
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:140,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:140,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:141,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:146,1
    - Dst: GetIntersectingShards
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:146,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:146,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:147,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:148,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:149,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:151,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:154,1
    - Dst: GetIntersectingShards
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:154,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:155,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:155,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:156,1
    - Dst: IndexFromCoverings
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:160,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:161,1
    - Dst: S2RegionSharder
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:161,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:162,1
    - Dst: S2RegionSharder
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 163
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::IsEmpty
    - Run
    - testing::UnorderedElementsAre
    - EXPECT_THAT
    - GetIntersectingShards
    - S2RegionSharder
    - S2CellId::FromFacePosLevel
    - IndexFromCoverings
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionSharderTest, GetIntersectingShards)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:166,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:167,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:168,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:168,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:168,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:171,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:184,1
    - Dst: S2RegionSharder::GetMostIntersectingShard
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:184,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:184,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 165
    functionDepth: 6
    functionLinenumber: 165
    functionLinenumberEnd: 189
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2CellId::lsb
    - swap
    - S2CellId::FromFace
    - EXPECT_EQ
    - S2RegionSharder::GetMostIntersectingShard
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionSharderTest, GetMostIntersectingShardTieBreaking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2CellUnion>::size
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:39,1
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:40,1
    - Dst: S2CellIndex::Build
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - coverings
    argTypes:
    - absl::Span<const S2CellUnion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: S2RegionSharderTest::IndexFromCoverings
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const S2CellUnion>::size
    - S2CellIndex::Add
    - S2CellIndex::Build
    linkageType: ''
    returnType: S2CellIndex
    signature: S2CellIndex IndexFromCoverings(absl::Span<const S2CellUnion> coverings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:49,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:49,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:50,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:51,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:52,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:54,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:59,1
    - Dst: at
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:59,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:60,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:61,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:70,1
    - Dst: S2RegionSharder
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:70,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:71,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:71,1
    - Dst: IndexFromCoverings
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:75,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:77,1
    - Dst: S2RegionSharder
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:77,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:78,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 80
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map::emplace
    - Run
    - at
    - std::move
    - S2RegionSharder
    - S2CellId::FromFacePosLevel
    - IndexFromCoverings
    - EXPECT_EQ
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionSharderTest, StoreInMap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:84,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:84,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:85,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:86,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:87,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:89,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:94,1
    - Dst: GetMostIntersectingShard
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:94,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:95,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:101,1
    - Dst: GetMostIntersectingShard
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:101,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:102,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:103,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:104,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:110,1
    - Dst: GetMostIntersectingShard
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:110,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:111,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:111,1
    - Dst: IndexFromCoverings
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:116,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:119,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:119,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:124,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 126
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - Run
    - GetMostIntersectingShard
    - std::move
    - S2CellId::FromFacePosLevel
    - IndexFromCoverings
    - EXPECT_EQ
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionSharderTest, GetMostIntersectingShard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:130,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:130,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:131,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:132,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:133,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:135,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:135,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:140,1
    - Dst: GetIntersectingShards
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:140,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:140,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:141,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:146,1
    - Dst: GetIntersectingShards
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:146,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:146,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:147,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:148,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:149,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:151,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:154,1
    - Dst: GetIntersectingShards
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:154,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:155,1
    - Dst: S2CellId::FromFacePosLevel
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:155,1
    - Dst: S2BooleanOperation::IsEmpty
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:156,1
    - Dst: IndexFromCoverings
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:160,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:161,1
    - Dst: S2RegionSharder
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:161,1
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:162,1
    - Dst: S2RegionSharder
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 163
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::IsEmpty
    - Run
    - testing::UnorderedElementsAre
    - EXPECT_THAT
    - GetIntersectingShards
    - S2RegionSharder
    - S2CellId::FromFacePosLevel
    - IndexFromCoverings
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionSharderTest, GetIntersectingShards)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:166,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:167,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:168,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:168,1
    - Dst: S2CellId::lsb
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:168,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:171,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:184,1
    - Dst: S2RegionSharder::GetMostIntersectingShard
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:184,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:184,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2region_sharder_test.cc:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 165
    functionDepth: 6
    functionLinenumber: 165
    functionLinenumberEnd: 189
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2region_sharder_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2CellId::lsb
    - swap
    - S2CellId::FromFace
    - EXPECT_EQ
    - S2RegionSharder::GetMostIntersectingShard
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2RegionSharderTest, GetMostIntersectingShardTieBreaking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' point'
    - level
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: SnapPointToLevel
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    linkageType: ''
    returnType: S2Point
    signature: S2Point SnapPointToLevel(const S2Point& point, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:56,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:57,1
    - Dst: SnapPointToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - points
    - level
    argTypes:
    - absl::Span<const S2Point>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: SnapPointsToLevel
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - SnapPointToLevel
    - absl::Span<const S2Point>::size
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> SnapPointsToLevel(absl::Span<const S2Point> points,
      int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:68,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:69,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:72,1
    - Dst: SnapPointsToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num_vertices
    - radius_km
    - level
    argTypes:
    - int
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: MakeRegularPoints
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 30
    functionsReached:
    - S2Point
    - S2Testing::KmToAngle
    - SnapPointsToLevel
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: vector<S2Point>
    signature: "vector<S2Point> MakeRegularPoints(int num_vertices,\n                                  double
      radius_km,\n                                  int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:79,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:79,1
    - Dst: Span<S2XYZFaceSiTi>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:79,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:80,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - points
    - result
    argTypes:
    - Span<const S2Point>
    - Span<S2XYZFaceSiTi>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: MakeXYZFaceSiTiPoints
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Span<const S2Point>::size
    - S2::XYZtoFaceSiTi
    - Span<S2XYZFaceSiTi>::size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void MakeXYZFaceSiTiPoints(Span<const S2Point> points,\n                           Span<S2XYZFaceSiTi>
      result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:90,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:92,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:93,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:94,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:98,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:100,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:102,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:104,1
    - Dst: SnapPointToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:106,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:110,1
    - Dst: SnapPointToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:112,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:118,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:121,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:122,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:123,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:124,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:125,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:126,1
    - Dst: SnapPointsToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:127,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:130,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:133,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:134,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:135,1
    - Dst: SnapPointsToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 138
    functionName: S2PointCompressionTest::SetUp
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - S2::STtoUV
    - S2Point
    - SnapPointToLevel
    - MakeRegularPoints
    - S2::FaceUVtoXYZ
    - S2Testing::KmToAngle
    - SnapPointsToLevel
    - vector::size
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:141,1
    - Dst: MakeXYZFaceSiTiPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:142,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:142,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - points
    - level
    argTypes:
    - Span<const S2Point>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: S2PointCompressionTest::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Span<const S2Point>::size
    - MakeSpan
    - S2EncodePointsCompressed
    - MakeXYZFaceSiTiPoints
    linkageType: ''
    returnType: void
    signature: void Encode(Span<const S2Point> points, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:147,1
    - Dst: base
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:147,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:147,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:148,1
    - Dst: S2DecodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - level
    - points
    argTypes:
    - int
    - Span<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: S2PointCompressionTest::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2DecodePointsCompressed
    - reset
    - length
    - base
    linkageType: ''
    returnType: void
    signature: void Decode(int level, Span<S2Point> points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointCompressionTest::Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:152,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:153,1
    - Dst: S2PointCompressionTest::Decode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:154,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:154,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:156,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:157,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' loop'
    - level
    argTypes:
    - vector<S2Point>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: S2PointCompressionTest::Roundtrip
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - S2PointCompressionTest::Decode
    - EXPECT_TRUE
    - size
    - s2textformat::ToString
    - MakeSpan
    - S2PointCompressionTest::Encode
    linkageType: ''
    returnType: void
    signature: void Roundtrip(const vector<S2Point>& loop, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:195,1
    - Dst: Span<S2Point>
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:195,1
    - Dst: Decode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:196,1
    - Dst: Span<S2Point>
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Decode
    - Span<S2Point>
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, RoundtripsEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, RoundtripsFourVertexLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, RoundtripsFourVertexLoopUnsnapped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:210,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, FourVertexLoopSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, RoundtripsFourVertexLevel14Loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:222,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, FourVertexLevel14LoopSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLoopUnsnapped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:234,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:235,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLoopMixed15)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:240,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLoopMixed25)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:245,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, OneHundredVertexLoopSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:249,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:250,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, OneHundredVertexLoopUnsnappedSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLevel22Loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:260,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, OneHundredVertexLoopLevel22Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, MultiFaceLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:270,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:270,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - size
    - length
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, StraightLineCompressesWell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:284,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:291,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:298,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:299,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:300,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:300,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:302,1
    - Dst: S2DecodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:302,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:303,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 305
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2EncodePointsCompressed
    - ABSL_CHECK
    - Encoder::length
    - Encoder::base
    - ASSERT_TRUE
    - S2DecodePointsCompressed
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, FirstPointOnFaceEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:308,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:310,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:312,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:313,1
    - Dst: MakeXYZFaceSiTiPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:315,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:315,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:316,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:318,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:319,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 307
    functionDepth: 5
    functionLinenumber: 307
    functionLinenumberEnd: 322
    functionName: BM_S2EncodePointsCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Encoder::clear
    - MakeRegularPoints
    - range
    - S2EncodePointsCompressed
    - MakeSpan
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - Encoder::Encoder
    - MakeXYZFaceSiTiPoints
    linkageType: ''
    returnType: void
    signature: void BM_S2EncodePointsCompressed(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:326,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:327,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:328,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:329,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:330,1
    - Dst: MakeXYZFaceSiTiPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:332,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:332,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:333,1
    - Dst: Decoder::Decoder
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:334,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:335,1
    - Dst: Decoder::reset
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:337,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:337,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:337,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:338,1
    - Dst: S2DecodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:339,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:339,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 325
    functionDepth: 5
    functionLinenumber: 325
    functionLinenumberEnd: 342
    functionName: BM_S2DecodePointsCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - S2EncodePointsCompressed
    - MakeRegularPoints
    - range
    - Decoder::Decoder
    - ABSL_CHECK
    - Encoder::length
    - MakeSpan
    - vector::size
    - Decoder::reset
    - Encoder::base
    - S2DecodePointsCompressed
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - Encoder::Encoder
    - MakeXYZFaceSiTiPoints
    linkageType: ''
    returnType: void
    signature: void BM_S2DecodePointsCompressed(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' point'
    - level
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: SnapPointToLevel
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 2
    functionsReached:
    - S2CellId
    linkageType: ''
    returnType: S2Point
    signature: S2Point SnapPointToLevel(const S2Point& point, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:56,1
    - Dst: absl::Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:57,1
    - Dst: SnapPointToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - points
    - level
    argTypes:
    - absl::Span<const S2Point>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: SnapPointsToLevel
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 2
    functionsReached:
    - SnapPointToLevel
    - absl::Span<const S2Point>::size
    linkageType: ''
    returnType: vector<S2Point>
    signature: vector<S2Point> SnapPointsToLevel(absl::Span<const S2Point> points,
      int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:68,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:69,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:72,1
    - Dst: SnapPointsToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num_vertices
    - radius_km
    - level
    argTypes:
    - int
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: MakeRegularPoints
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 34
    functionsReached:
    - S2Point
    - S2Testing::KmToAngle
    - SnapPointsToLevel
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: vector<S2Point>
    signature: "vector<S2Point> MakeRegularPoints(int num_vertices,\n                                  double
      radius_km,\n                                  int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:79,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:79,1
    - Dst: Span<S2XYZFaceSiTi>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:79,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:80,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - points
    - result
    argTypes:
    - Span<const S2Point>
    - Span<S2XYZFaceSiTi>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: MakeXYZFaceSiTiPoints
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 3
    functionsReached:
    - Span<const S2Point>::size
    - S2::XYZtoFaceSiTi
    - Span<S2XYZFaceSiTi>::size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void MakeXYZFaceSiTiPoints(Span<const S2Point> points,\n                           Span<S2XYZFaceSiTi>
      result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:90,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:92,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:93,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:94,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:98,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:100,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:102,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:104,1
    - Dst: SnapPointToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:106,1
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:110,1
    - Dst: SnapPointToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:112,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:118,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:121,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:122,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:123,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:124,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:125,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:126,1
    - Dst: SnapPointsToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:127,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:130,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:133,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:134,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:135,1
    - Dst: SnapPointsToLevel
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 138
    functionName: S2PointCompressionTest::SetUp
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - S2::STtoUV
    - S2Point
    - SnapPointToLevel
    - MakeRegularPoints
    - S2::FaceUVtoXYZ
    - S2Testing::KmToAngle
    - SnapPointsToLevel
    - vector::size
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:141,1
    - Dst: MakeXYZFaceSiTiPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:142,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:142,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - points
    - level
    argTypes:
    - Span<const S2Point>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: S2PointCompressionTest::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 1
    functionsReached:
    - Span<const S2Point>::size
    - MakeSpan
    - S2EncodePointsCompressed
    - MakeXYZFaceSiTiPoints
    linkageType: ''
    returnType: void
    signature: void Encode(Span<const S2Point> points, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:147,1
    - Dst: base
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:147,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:147,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:148,1
    - Dst: S2DecodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - level
    - points
    argTypes:
    - int
    - Span<S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: S2PointCompressionTest::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_TRUE
    - S2DecodePointsCompressed
    - reset
    - length
    - base
    linkageType: ''
    returnType: void
    signature: void Decode(int level, Span<S2Point> points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointCompressionTest::Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:152,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:153,1
    - Dst: S2PointCompressionTest::Decode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:154,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:154,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:156,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:157,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' loop'
    - level
    argTypes:
    - vector<S2Point>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: S2PointCompressionTest::Roundtrip
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - S2PointCompressionTest::Decode
    - EXPECT_TRUE
    - size
    - s2textformat::ToString
    - MakeSpan
    - S2PointCompressionTest::Encode
    linkageType: ''
    returnType: void
    signature: void Roundtrip(const vector<S2Point>& loop, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:195,1
    - Dst: Span<S2Point>
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:195,1
    - Dst: Decode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:196,1
    - Dst: Span<S2Point>
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Decode
    - Span<S2Point>
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, RoundtripsEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, RoundtripsFourVertexLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, RoundtripsFourVertexLoopUnsnapped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:210,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, FourVertexLoopSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, RoundtripsFourVertexLevel14Loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:222,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, FourVertexLevel14LoopSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLoopUnsnapped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:234,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:235,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLoopMixed15)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:240,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLoopMixed25)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:245,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, OneHundredVertexLoopSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:249,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:250,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, OneHundredVertexLoopUnsnappedSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, Roundtrips100VertexLevel22Loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:260,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - length
    - Encode
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, OneHundredVertexLoopLevel22Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, MultiFaceLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Roundtrip
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:270,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:270,1
    - Dst: length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - size
    - length
    - Roundtrip
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, StraightLineCompressesWell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:284,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:291,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:298,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:299,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:300,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:300,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:302,1
    - Dst: S2DecodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:302,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:303,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 305
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2EncodePointsCompressed
    - ABSL_CHECK
    - Encoder::length
    - Encoder::base
    - ASSERT_TRUE
    - S2DecodePointsCompressed
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointCompressionTest, FirstPointOnFaceEdge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:308,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:310,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:312,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:313,1
    - Dst: MakeXYZFaceSiTiPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:315,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:315,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:316,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:318,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:319,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 307
    functionDepth: 5
    functionLinenumber: 307
    functionLinenumberEnd: 322
    functionName: BM_S2EncodePointsCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - Encoder::clear
    - MakeRegularPoints
    - range
    - S2EncodePointsCompressed
    - MakeSpan
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - Encoder::Encoder
    - MakeXYZFaceSiTiPoints
    linkageType: ''
    returnType: void
    signature: void BM_S2EncodePointsCompressed(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:326,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:327,1
    - Dst: MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:328,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:329,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:330,1
    - Dst: MakeXYZFaceSiTiPoints
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:332,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:332,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:333,1
    - Dst: Decoder::Decoder
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:334,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:335,1
    - Dst: Decoder::reset
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:337,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:337,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:337,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:338,1
    - Dst: S2DecodePointsCompressed
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:339,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:339,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2point_compression_test.cc:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 325
    functionDepth: 5
    functionLinenumber: 325
    functionLinenumberEnd: 342
    functionName: BM_S2DecodePointsCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2point_compression_test.cc
    functionUses: 0
    functionsReached:
    - S2EncodePointsCompressed
    - MakeRegularPoints
    - range
    - Decoder::Decoder
    - ABSL_CHECK
    - Encoder::length
    - MakeSpan
    - vector::size
    - Decoder::reset
    - Encoder::base
    - S2DecodePointsCompressed
    - benchmark::DoNotOptimize
    - absl::GetFlag
    - Encoder::Encoder
    - MakeXYZFaceSiTiPoints
    linkageType: ''
    returnType: void
    signature: void BM_S2DecodePointsCompressed(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: S2ValidationQueryBase::S2ValidationQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ValidationQueryBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: ~S2ValidationQueryBase()
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~S2ValidationQueryBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - absl_nonnull
    argTypes:
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: S2ValidationQueryBase::Start
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Start(S2Error* absl_nonnull)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' iter'
    - ' shape'
    - shape_id
    - absl_nonnull
    argTypes:
    - Iterator
    - S2Shape
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: S2ValidationQueryBase::CheckShape
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool CheckShape(Iterator& iter, const S2Shape& shape, int shape_id,\n
      \                         S2Error* absl_nonnull)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - absl_nonnull
    argTypes:
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: S2ValidationQueryBase::StartCell
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool StartCell(S2Error* absl_nonnull)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - absl_nonnull
    argTypes:
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: S2ValidationQueryBase::StartShape
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool StartShape(const S2Shape&, const S2ClippedShape&,\n                          S2Error*
      absl_nonnull)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - absl_nonnull
    argTypes:
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: S2ValidationQueryBase::CheckEdge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool CheckEdge(const S2Shape&, const S2ClippedShape&,\n                         const
      EdgeAndIdChain&, S2Error* absl_nonnull)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - absl_nonnull
    argTypes:
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: S2ValidationQueryBase::FinishShape
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool FinishShape(const S2Shape&, const S2ClippedShape&,\n                           S2Error*
      absl_nonnull)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - absl_nonnull
    argTypes:
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: S2ValidationQueryBase::Finish
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Finish(S2Error* absl_nonnull error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: '& Index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: IndexType
    signature: IndexType & Index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IncidentEdges
      Src: /src/s2geometry/src/s2/s2validation_query.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: '& IncidentEdges() const'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - IncidentEdges
    linkageType: ''
    returnType: IncidentEdgeSet
    signature: IncidentEdgeSet & IncidentEdges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: '& CurrentCell() const'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2IndexCellData
    signature: S2IndexCellData & CurrentCell() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: S2ValidationQueryBase::S2ValidationQueryBase
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ValidationQueryBase(const S2ValidationQueryBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: '& operator=(const S2ValidationQueryBase&)'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ValidationQueryBase
    signature: S2ValidationQueryBase & operator=(const S2ValidationQueryBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - IndexType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: S2ValidationQueryBase::SetIndex
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIndex(const IndexType* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:199,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2validation_query.h:199,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2validation_query.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' iter'
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: S2ValidationQueryBase::SetCurrentCell
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - LoadCell
    - id
    - cell
    linkageType: ''
    returnType: void
    signature: void SetCurrentCell(const Iterator& iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_allowed_touches
      Src: /src/s2geometry/src/s2/s2validation_query.h:253,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2validation_query.h:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: S2ValidQuery::Options::Options
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - set_allowed_touches
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void Options()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2validation_query.h:261,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2validation_query.h:262,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2validation_query.h:263,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2validation_query.h:264,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2validation_query.h:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dima
    - dimb
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 272
    functionName: S2ValidQuery::Options::allowed_touches
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - swap
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: std::pair<TouchType, TouchType>
    signature: std::pair<TouchType, TouchType> allowed_touches(int dima, int dimb)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query.h:279,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query.h:280,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2validation_query.h:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - dima
    - dimb
    - types
    argTypes:
    - int
    - int
    - std::pair<TouchType, TouchType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: "& set_allowed_touches(  //\n        int dima, int dimb, std::pair<TouchType,
      TouchType> types)"
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - swap
    - ABSL_DCHECK
    linkageType: ''
    returnType: Options
    signature: "Options & set_allowed_touches(  //\n        int dima, int dimb, std::pair<TouchType,
      TouchType> types)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: S2ValidQuery::Options::allow_duplicate_polyline_edges
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_duplicate_polyline_edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: '& set_allow_duplicate_polyline_edges(bool flag)'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & set_allow_duplicate_polyline_edges(bool flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: S2ValidQuery::Options::allow_polyline_interior_crossings
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_polyline_interior_crossings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: '& set_allow_polyline_interior_crossings(bool flag)'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & set_allow_polyline_interior_crossings(bool flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: S2ValidQuery::Options::allow_reverse_duplicates
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_reverse_duplicates() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: '& set_allow_reverse_duplicates(bool flag)'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & set_allow_reverse_duplicates(bool flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: S2ValidQuery::Options::allow_degenerate_edges
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_degenerate_edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: '& set_allow_degenerate_edges(bool flag)'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & set_allow_degenerate_edges(bool flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    functionName: '& mutable_options()'
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & mutable_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/s2geometry/src/s2/s2validation_query.h:359,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2validation_query.h:359,1
    - Dst: std::isfinite
      Src: /src/s2geometry/src/s2/s2validation_query.h:359,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2validation_query.h:359,1
    - Dst: std::isfinite
      Src: /src/s2geometry/src/s2/s2validation_query.h:359,1
    - Dst: z
      Src: /src/s2geometry/src/s2/s2validation_query.h:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: S2ValidQuery::ValidPoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - std::isfinite
    - y
    - x
    - z
    linkageType: ''
    returnType: bool
    signature: bool ValidPoint(const S2Point& p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query.h:434,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query.h:436,1
    - Dst: absl::c_sort
      Src: /src/s2geometry/src/s2/s2validation_query.h:438,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query.h:441,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query.h:442,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query.h:452,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2validation_query.h:465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - origin
    - first
    - ' data'
    argTypes:
    - S2Point
    - S2Shape::Edge
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 467
    functionName: SortEdgesCcw
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 8
    functionsReached:
    - Reversed
    - absl::c_sort
    - s2pred::OrderedCCW
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void SortEdgesCcw(S2Point origin, S2Shape::Edge first, Container& data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SetIndex
      Src: /src/s2geometry/src/s2/s2validation_query.h:472,1
    - Dst: Reset
      Src: /src/s2geometry/src/s2/s2validation_query.h:473,1
    - Dst: Reset
      Src: /src/s2geometry/src/s2/s2validation_query.h:474,1
    - Dst: Start
      Src: /src/s2geometry/src/s2/s2validation_query.h:476,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2validation_query.h:482,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2validation_query.h:483,1
    - Dst: CheckShape
      Src: /src/s2geometry/src/s2/s2validation_query.h:485,1
    - Dst: Iterator::Begin
      Src: /src/s2geometry/src/s2/s2validation_query.h:491,1
    - Dst: Iterator::done
      Src: /src/s2geometry/src/s2/s2validation_query.h:491,1
    - Dst: Iterator::Next
      Src: /src/s2geometry/src/s2/s2validation_query.h:491,1
    - Dst: SetCurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:492,1
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:496,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2validation_query.h:497,1
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:498,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2validation_query.h:499,1
    - Dst: StartShape
      Src: /src/s2geometry/src/s2/s2validation_query.h:503,1
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:504,1
    - Dst: AddEdge
      Src: /src/s2geometry/src/s2/s2validation_query.h:505,1
    - Dst: FinishShape
      Src: /src/s2geometry/src/s2/s2validation_query.h:507,1
    - Dst: StartCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:511,1
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:516,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2validation_query.h:517,1
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:518,1
    - Dst: StartShape
      Src: /src/s2geometry/src/s2/s2validation_query.h:519,1
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:523,1
    - Dst: CheckEdge
      Src: /src/s2geometry/src/s2/s2validation_query.h:524,1
    - Dst: FinishShape
      Src: /src/s2geometry/src/s2/s2validation_query.h:529,1
    - Dst: Finish
      Src: /src/s2geometry/src/s2/s2validation_query.h:536,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - ' index'
    - absl_nonnull
    argTypes:
    - IndexType
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 537
    functionName: S2ValidationQueryBase<IndexType>::Validate
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - Iterator::Next
    - shape_id
    - shape
    - FinishShape
    - StartCell
    - Iterator::done
    - SetIndex
    - num_shape_ids
    - Iterator::Begin
    - Reset
    - CheckShape
    - Start
    - CheckEdge
    - StartShape
    - AddEdge
    - Finish
    - CurrentCell
    - S2Shape*::dimension
    - SetCurrentCell
    linkageType: ''
    returnType: bool
    signature: "bool S2ValidationQueryBase<IndexType>::Validate(const IndexType& index,\n
      \                                               S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - shape
    - chain
    - vertex
    argTypes:
    - int
    - int
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 579
    functionName: S2LegacyValidQuery::ShapeChainVertex
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShapeChainVertex(int shape, int chain, S2Point vertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2validation_query.h:588,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2validation_query.h:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' a'
    argTypes:
    - H
    - ShapeChainVertex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 589
    functionName: S2LegacyValidQuery::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const ShapeChainVertex& a)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2validation_query.h:600,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:602,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:604,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2validation_query.h:609,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2validation_query.h:610,1
    - Dst: s2shapeutil::PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2validation_query.h:618,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2validation_query.h:620,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2validation_query.h:620,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:621,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:622,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2validation_query.h:629,1
    - Dst: ValidPoint
      Src: /src/s2geometry/src/s2/s2validation_query.h:632,1
    - Dst: ValidPoint
      Src: /src/s2geometry/src/s2/s2validation_query.h:632,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:633,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:635,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2validation_query.h:640,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2validation_query.h:640,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:641,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:643,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2validation_query.h:648,1
    - Dst: IsDegenerate
      Src: /src/s2geometry/src/s2/s2validation_query.h:649,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:650,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:652,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:661,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:662,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2validation_query.h:669,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:672,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:673,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2validation_query.h:690,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2validation_query.h:691,1
    - Dst: absl::InlinedVector::emplace_back
      Src: /src/s2geometry/src/s2/s2validation_query.h:706,1
    - Dst: S2ValidQuery<IndexType>::CheckChainOrientation
      Src: /src/s2geometry/src/s2/s2validation_query.h:711,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 56
    argCount: 4
    argNames:
    - ' iter'
    - ' shape'
    - shape_id
    - absl_nonnull
    argTypes:
    - Iterator
    - S2Shape
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 716
    functionName: S2ValidQuery<IndexType>::CheckShape
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - IsDegenerate
    - S2Error
    - S2ValidQuery<IndexType>::CheckChainOrientation
    - chain_edge
    - ValidPoint
    - dimension
    - num_chains
    - chain
    - edge
    - S2::IsUnitLength
    - options
    - vertices
    - absl::InlinedVector::emplace_back
    - s2shapeutil::PrevEdgeWrap
    linkageType: ''
    returnType: bool
    signature: "bool S2ValidQuery<IndexType>::CheckShape(Iterator& iter, const S2Shape&
      shape,\n                                         int shape_id,\n                                         S2Error*
      absl_nonnull error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/s2geometry/src/s2/s2validation_query.h:721,1
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:727,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/s2validation_query.h:728,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2validation_query.h:733,1
    - Dst: Reversed
      Src: /src/s2geometry/src/s2/s2validation_query.h:734,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 746
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - CurrentCell
    - S2Error
    - absl::Span::size
    - options
    - Reversed
    linkageType: ''
    returnType: bool
    signature: bool const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:752,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2validation_query.h:757,1
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:758,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/s2validation_query.h:763,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/s2validation_query.h:767,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2validation_query.h:771,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2validation_query.h:782,1
    - Dst: S2EdgeCrosser::c
      Src: /src/s2geometry/src/s2/s2validation_query.h:782,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2validation_query.h:783,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2validation_query.h:786,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:788,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:789,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 797
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - CurrentCell
    - absl::StrFormat
    - S2EdgeCrosser::CrossingSign
    - S2Error
    - absl::Span::size
    - options
    - S2EdgeCrosser::c
    - std::max
    - S2EdgeCrosser::RestartAt
    linkageType: ''
    returnType: bool
    signature: bool const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2validation_query.h:807,1
    - Dst: s2shapeutil::PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2validation_query.h:811,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2validation_query.h:812,1
    - Dst: s2shapeutil::NextEdgeWrap
      Src: /src/s2geometry/src/s2/s2validation_query.h:814,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ' shape'
    - ' edge'
    - vertex
    argTypes:
    - S2Shape
    - internal::S2IndexCellData::EdgeAndIdChain
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 818
    functionName: PolylineVertexIsBoundaryPoint
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - chain
    - s2shapeutil::NextEdgeWrap
    - s2shapeutil::PrevEdgeWrap
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool PolylineVertexIsBoundaryPoint(\n    const S2Shape& shape, const
      internal::S2IndexCellData::EdgeAndIdChain& edge,\n    int vertex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:969,1
    - Dst: clipped_shapes
      Src: /src/s2geometry/src/s2/s2validation_query.h:970,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2validation_query.h:971,1
    - Dst: Index
      Src: /src/s2geometry/src/s2/s2validation_query.h:975,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2validation_query.h:975,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2validation_query.h:978,1
    - Dst: ShapeContains
      Src: /src/s2geometry/src/s2/s2validation_query.h:982,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:983,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - cell_id
    - shape_id
    - ' point'
    - absl_nonnull
    argTypes:
    - S2CellId
    - int
    - S2Point
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 993
    functionName: S2ValidQuery<IndexType>::PointContained
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - clipped_shapes
    - CurrentCell
    - absl::StrFormat
    - S2Error
    - shape_id
    - Index
    - dimension
    - ShapeContains
    linkageType: ''
    returnType: bool
    signature: "bool S2ValidQuery<IndexType>::PointContained(S2CellId cell_id, int
      shape_id,\n                                             const S2Point& point,\n
      \                                            S2Error* absl_nonnull error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2validation_query.h:999,1
    - Dst: S2ContainsVertexQuery::S2ContainsVertexQuery
      Src: /src/s2geometry/src/s2/s2validation_query.h:1009,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2validation_query.h:1011,1
    - Dst: S2ContainsVertexQuery::Init
      Src: /src/s2geometry/src/s2/s2validation_query.h:1012,1
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2validation_query.h:1015,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2validation_query.h:1016,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2validation_query.h:1019,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2validation_query.h:1021,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2validation_query.h:1022,1
    - Dst: S2ClippedShape*::contains_center
      Src: /src/s2geometry/src/s2/s2validation_query.h:1025,1
    - Dst: S2ClippedShape*::num_edges
      Src: /src/s2geometry/src/s2/s2validation_query.h:1028,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2validation_query.h:1029,1
    - Dst: S2ClippedShape*::edge
      Src: /src/s2geometry/src/s2/s2validation_query.h:1029,1
    - Dst: S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2validation_query.h:1032,1
    - Dst: IncidentOn
      Src: /src/s2geometry/src/s2/s2validation_query.h:1035,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2validation_query.h:1037,1
    - Dst: S2ContainsVertexQuery::AddEdge
      Src: /src/s2geometry/src/s2/s2validation_query.h:1039,1
    - Dst: S2ContainsVertexQuery::DuplicateEdges
      Src: /src/s2geometry/src/s2/s2validation_query.h:1044,1
    - Dst: S2ContainsVertexQuery::ContainsSign
      Src: /src/s2geometry/src/s2/s2validation_query.h:1051,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:1060,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:1062,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - ' iter'
    - ' shape'
    - shape_id
    - chain_id
    - absl_nonnull
    argTypes:
    - Iterator
    - S2Shape
    - int
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 996
    functionDepth: 4
    functionLinenumber: 996
    functionLinenumberEnd: 1070
    functionName: S2ValidQuery<IndexType>::CheckChainOrientation
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 1
    functionsReached:
    - S2Error::DataLoss
    - S2ContainsVertexQuery::ContainsSign
    - IncidentOn
    - S2ContainsVertexQuery::AddEdge
    - S2ContainsVertexQuery::DuplicateEdges
    - absl::StrFormat
    - id
    - S2CopyingEdgeCrosser::SignedEdgeOrVertexCrossing
    - S2ContainsVertexQuery::Init
    - cell
    - S2ClippedShape*::contains_center
    - S2Error
    - S2ClippedShape*::num_edges
    - chain_edge
    - ABSL_DCHECK_NE
    - chain
    - S2ContainsVertexQuery::S2ContainsVertexQuery
    - edge
    - Locate
    - S2ClippedShape*::edge
    linkageType: ''
    returnType: bool
    signature: "bool S2ValidQuery<IndexType>::CheckChainOrientation(\n    Iterator&
      iter, const S2Shape& shape, int shape_id, int chain_id,\n    S2Error* absl_nonnull
      error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CurrentCell
      Src: /src/s2geometry/src/s2/s2validation_query.h:1077,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2validation_query.h:1078,1
    - Dst: S2ValidQuery<IndexType>::PointContained
      Src: /src/s2geometry/src/s2/s2validation_query.h:1083,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2validation_query.h:1083,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2validation_query.h:1083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' shape'
    - ' clipped'
    - ' edge'
    - absl_nonnull
    argTypes:
    - S2Shape
    - S2ClippedShape
    - EdgeAndIdChain
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1089
    functionName: S2ValidQuery<IndexType>::CheckEdge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - CurrentCell
    - S2ValidQuery<IndexType>::PointContained
    - shape_id
    - id
    - dimension
    linkageType: ''
    returnType: bool
    signature: "bool S2ValidQuery<IndexType>::CheckEdge(const S2Shape& shape,\n                                        const
      S2ClippedShape& clipped,\n                                        const EdgeAndIdChain&
      edge,\n                                        S2Error* absl_nonnull error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2validation_query.h:1117,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2validation_query.h:1118,1
    - Dst: absl::InlinedVector::push_back
      Src: /src/s2geometry/src/s2/s2validation_query.h:1119,1
    - Dst: s2shapeutil::PrevEdgeWrap
      Src: /src/s2geometry/src/s2/s2validation_query.h:1123,1
    - Dst: SortEdgesCcw
      Src: /src/s2geometry/src/s2/s2validation_query.h:1127,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/s2geometry/src/s2/s2validation_query.h:1133,1
    - Dst: absl::InlinedVector::size
      Src: /src/s2geometry/src/s2/s2validation_query.h:1135,1
    - Dst: absl::flat_hash_map::clear
      Src: /src/s2geometry/src/s2/s2validation_query.h:1144,1
    - Dst: absl::InlinedVector::size
      Src: /src/s2geometry/src/s2/s2validation_query.h:1146,1
    - Dst: absl::InlinedVector::size
      Src: /src/s2geometry/src/s2/s2validation_query.h:1147,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:1151,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:1153,1
    - Dst: absl::InlinedVector::size
      Src: /src/s2geometry/src/s2/s2validation_query.h:1167,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:1168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - ' vertex'
    - ' shape'
    - shape_id
    - ' edge_ids'
    - absl_nonnull
    argTypes:
    - S2Point
    - S2Shape
    - int
    - absl::flat_hash_set<int32_t>
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1099
    functionDepth: 2
    functionLinenumber: 1099
    functionLinenumberEnd: 1175
    functionName: CheckVertexCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - absl::flat_hash_map::reserve
    - absl::InlinedVector::push_back
    - absl::flat_hash_map::clear
    - S2Error
    - SortEdgesCcw
    - absl::InlinedVector::size
    - edge
    - chain_position
    - s2shapeutil::PrevEdgeWrap
    linkageType: ''
    returnType: bool
    signature: "bool CheckVertexCrossings(const S2Point& vertex, const S2Shape& shape,\n
      \                                int shape_id,\n                                 const
      absl::flat_hash_set<int32_t>& edge_ids,\n                                 S2Error*
      absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - edge
    - id
    - chain
    - prev
    - sign
    argTypes:
    - S2Shape::Edge
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1106
    functionName: EdgeWithInfo
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EdgeWithInfo(S2Shape::Edge edge, int id, int chain, int prev,
      int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2HausdorffDistanceQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2validation_query.h:1236,1
    - Dst: S2HausdorffDistanceQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2validation_query.h:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1238
    functionName: S2LegacyValidQuery<IndexType>::S2LegacyValidQuery
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - S2HausdorffDistanceQuery::mutable_options
    linkageType: ''
    returnType: void
    signature: void S2LegacyValidQuery<IndexType>::S2LegacyValidQuery()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2validation_query.h:1271,1
    - Dst: chains
      Src: /src/s2geometry/src/s2/s2validation_query.h:1273,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:1277,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:1279,1
    - Dst: num_chains
      Src: /src/s2geometry/src/s2/s2validation_query.h:1286,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2validation_query.h:1287,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2validation_query.h:1289,1
    - Dst: S2ValidationQueryBase::CheckShape
      Src: /src/s2geometry/src/s2/s2validation_query.h:1294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - ' iter'
    - ' shape'
    - shape_id
    - absl_nonnull
    argTypes:
    - Iterator
    - S2Shape
    - int
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1299
    functionName: S2LegacyValidQuery<IndexType>::CheckShape
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - S2Error
    - chains
    - S2ValidationQueryBase::CheckShape
    - dimension
    - num_chains
    linkageType: ''
    returnType: bool
    signature: "bool S2LegacyValidQuery<IndexType>::CheckShape(Iterator& iter,\n                                               const
      S2Shape& shape,\n                                               int shape_id,\n
      \                                              S2Error* absl_nonnull error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ValidationQueryBase::CheckEdge
      Src: /src/s2geometry/src/s2/s2validation_query.h:1334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' shape'
    - ' clipped'
    - ' edge'
    - absl_nonnull
    argTypes:
    - S2Shape
    - S2ClippedShape
    - EdgeAndIdChain
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1330
    functionDepth: 1
    functionLinenumber: 1330
    functionLinenumberEnd: 1338
    functionName: S2LegacyValidQuery<IndexType>::CheckEdge
    functionSourceFile: /src/s2geometry/src/s2/s2validation_query.h
    functionUses: 0
    functionsReached:
    - S2ValidationQueryBase::CheckEdge
    linkageType: ''
    returnType: bool
    signature: "bool S2LegacyValidQuery<IndexType>::CheckEdge(const S2Shape& shape,\n
      \                                             const S2ClippedShape& clipped,\n
      \                                             const EdgeAndIdChain& edge,\n
      \                                             S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lo
    - hi
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: R1Interval::R1Interval
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void R1Interval(double lo, double hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: R1Interval::R1Interval
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void R1Interval()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::R1Interval
      Src: /src/s2geometry/src/s2/r1interval.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: R1Interval::Empty
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 4
    functionsReached:
    - R1Interval::R1Interval
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval Empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::R1Interval
      Src: /src/s2geometry/src/s2/r1interval.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: R1Interval::FromPoint
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached:
    - R1Interval::R1Interval
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval FromPoint(double p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::R1Interval
      Src: /src/s2geometry/src/s2/r1interval.h:65,1
    - Dst: R1Interval::R1Interval
      Src: /src/s2geometry/src/s2/r1interval.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: R1Interval::FromPointPair
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 5
    functionsReached:
    - R1Interval::R1Interval
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval FromPointPair(double p1, double p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: R1Interval::lo
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double lo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: R1Interval::hi
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double hi() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: R1Interval::set_lo
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_lo(double p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: R1Interval::set_hi
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_hi(double p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: operator[](int i) const
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: '& operator[](int i)'
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double & operator[](int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& bounds() const'
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vector2_d
    signature: Vector2_d & bounds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: R1Interval::mutable_bounds
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vector2_d
    signature: Vector2_d * mutable_bounds()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:93,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: R1Interval::is_empty
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 7
    functionsReached:
    - R1Interval::lo
    - R1Interval::hi
    linkageType: ''
    returnType: bool
    signature: bool is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:97,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: R1Interval::GetCenter
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::lo
    - R1Interval::hi
    linkageType: ''
    returnType: double
    signature: double GetCenter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:101,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: R1Interval::GetLength
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 2
    functionsReached:
    - R1Interval::hi
    - R1Interval::lo
    linkageType: ''
    returnType: double
    signature: double GetLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:105,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: R1Interval::Contains
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::lo
    - R1Interval::hi
    linkageType: ''
    returnType: bool
    signature: bool Contains(double p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:110,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: R1Interval::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::lo
    - R1Interval::hi
    linkageType: ''
    returnType: bool
    signature: bool InteriorContains(double p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:115,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:116,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:116,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:116,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: R1Interval::Contains
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::is_empty
    - R1Interval::hi
    - R1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool Contains(const R1Interval& y) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:122,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:123,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:123,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:123,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: R1Interval::InteriorContains
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::is_empty
    - R1Interval::hi
    - R1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool InteriorContains(const R1Interval& y) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:129,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:129,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:130,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:130,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:130,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:130,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:132,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:132,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:132,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: R1Interval::Intersects
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached:
    - R1Interval::lo
    - R1Interval::hi
    linkageType: ''
    returnType: bool
    signature: bool Intersects(const R1Interval& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:139,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:139,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:139,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:139,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:139,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:139,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:139,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: R1Interval::InteriorIntersects
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached:
    - R1Interval::lo
    - R1Interval::hi
    linkageType: ''
    returnType: bool
    signature: bool InteriorIntersects(const R1Interval& y) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:146,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:147,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/r1interval.h:148,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/r1interval.h:148,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:148,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:148,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:148,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: R1Interval::GetDirectedHausdorffDistance
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached:
    - R1Interval::is_empty
    - R1Interval::hi
    - R1Interval::lo
    - std::max
    linkageType: ''
    returnType: double
    signature: double GetDirectedHausdorffDistance(const R1Interval& y) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:153,1
    - Dst: R1Interval::set_lo
      Src: /src/s2geometry/src/s2/r1interval.h:154,1
    - Dst: R1Interval::set_hi
      Src: /src/s2geometry/src/s2/r1interval.h:155,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:156,1
    - Dst: R1Interval::set_lo
      Src: /src/s2geometry/src/s2/r1interval.h:157,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:158,1
    - Dst: R1Interval::set_hi
      Src: /src/s2geometry/src/s2/r1interval.h:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: R1Interval::AddPoint
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::lo
    - R1Interval::set_hi
    - R1Interval::set_lo
    - R1Interval::hi
    - R1Interval::is_empty
    linkageType: ''
    returnType: void
    signature: void AddPoint(double p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:165,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:166,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:167,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:167,1
    - Dst: R1Interval::set_lo
      Src: /src/s2geometry/src/s2/r1interval.h:167,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:167,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:168,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:168,1
    - Dst: R1Interval::set_hi
      Src: /src/s2geometry/src/s2/r1interval.h:168,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: R1Interval::AddInterval
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::lo
    - R1Interval::set_hi
    - R1Interval::set_lo
    - R1Interval::hi
    - R1Interval::is_empty
    linkageType: ''
    returnType: void
    signature: void AddInterval(const R1Interval& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/r1interval.h:174,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:174,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/r1interval.h:175,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:175,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: R1Interval::Project
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached:
    - R1Interval::lo
    - clamp
    - R1Interval::hi
    - R1Interval::is_empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double Project(double p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:183,1
    - Dst: R1Interval::R1Interval
      Src: /src/s2geometry/src/s2/r1interval.h:184,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:184,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - margin
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: R1Interval::Expanded
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::is_empty
    - R1Interval::hi
    - R1Interval::lo
    - R1Interval::R1Interval
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval Expanded(double margin) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:190,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:191,1
    - Dst: R1Interval::R1Interval
      Src: /src/s2geometry/src/s2/r1interval.h:192,1
    - Dst: min
      Src: /src/s2geometry/src/s2/r1interval.h:192,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:192,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:192,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/r1interval.h:192,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:192,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: R1Interval::Union
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::lo
    - min
    - R1Interval::hi
    - R1Interval::R1Interval
    - std::max
    - R1Interval::is_empty
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval Union(const R1Interval& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::R1Interval
      Src: /src/s2geometry/src/s2/r1interval.h:198,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/r1interval.h:198,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:198,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:198,1
    - Dst: min
      Src: /src/s2geometry/src/s2/r1interval.h:198,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:198,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: R1Interval::Intersection
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 4
    functionsReached:
    - R1Interval::lo
    - min
    - R1Interval::R1Interval
    - std::max
    - R1Interval::hi
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval Intersection(const R1Interval& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/s2geometry/src/s2/r1interval.h:203,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/r1interval.h:203,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/r1interval.h:203,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/r1interval.h:203,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:203,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: operator==(const R1Interval& y) const
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached:
    - lo
    - is_empty
    - hi
    linkageType: ''
    returnType: bool
    signature: bool operator==(const R1Interval& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: operator!=(const R1Interval& y) const
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const R1Interval& y) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:216,1
    - Dst: R1Interval::GetLength
      Src: /src/s2geometry/src/s2/r1interval.h:216,1
    - Dst: R1Interval::is_empty
      Src: /src/s2geometry/src/s2/r1interval.h:217,1
    - Dst: R1Interval::GetLength
      Src: /src/s2geometry/src/s2/r1interval.h:217,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/r1interval.h:218,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:218,1
    - Dst: R1Interval::lo
      Src: /src/s2geometry/src/s2/r1interval.h:218,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/r1interval.h:219,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:219,1
    - Dst: R1Interval::hi
      Src: /src/s2geometry/src/s2/r1interval.h:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: R1Interval::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 1
    functionsReached:
    - R1Interval::lo
    - R1Interval::hi
    - std::fabs
    - R1Interval::is_empty
    - R1Interval::GetLength
    linkageType: ''
    returnType: bool
    signature: bool ApproxEquals(const R1Interval& y, double max_error = 1e-15) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/s2geometry/src/s2/r1interval.h:227,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/r1interval.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' x'
    argTypes:
    - std::ostream
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: '& operator<<(std::ostream& os, const R1Interval& x)'
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached:
    - lo
    - hi
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const R1Interval& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/r1interval.h:232,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/r1interval.h:232,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/r1interval.h:232,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/r1interval.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' interval'
    argTypes:
    - H
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/r1interval.h
    functionUses: 0
    functionsReached:
    - std::move
    - lo
    - H::combine
    - hi
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const R1Interval& interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: SequenceLexicon::Sequence::begin
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iterator
    signature: Iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: SequenceLexicon::Sequence::end
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iterator
    signature: Iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: SequenceLexicon::Sequence::size
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: SequenceLexicon::Sequence::Sequence
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sequence(Iterator begin, Iterator end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' hasher'
    - lexicon
    argTypes:
    - Hasher
    - SequenceLexicon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: "SequenceLexicon<T, Hasher, KeyEqual>::IdHasher::IdHasher(\n    const
      Hasher& hasher, const SequenceLexicon* lexicon)"
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SequenceLexicon<T, Hasher, KeyEqual>::IdHasher::IdHasher(\n    const
      Hasher& hasher, const SequenceLexicon* lexicon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: '& SequenceLexicon<T, Hasher, KeyEqual>::IdHasher::hasher() const'
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Hasher
    signature: Hasher & SequenceLexicon<T, Hasher, KeyEqual>::IdHasher::hasher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMix::HashMix
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:172,1
    - Dst: sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:173,1
    - Dst: HashMix::Mix
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:174,1
    - Dst: hasher_
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:174,1
    - Dst: HashMix::get
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: "SequenceLexicon<T, Hasher, KeyEqual>::IdHasher::operator()(\n    uint32_t
      id) const"
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - HashMix::get
    - HashMix::Mix
    - hasher_
    - sequence
    - HashMix::HashMix
    linkageType: ''
    returnType: size_t
    signature: "size_t SequenceLexicon<T, Hasher, KeyEqual>::IdHasher::operator()(\n
      \   uint32_t id) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key_equal'
    - lexicon
    argTypes:
    - KeyEqual
    - SequenceLexicon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: "SequenceLexicon<T, Hasher, KeyEqual>::IdKeyEqual::IdKeyEqual(\n
      \   const KeyEqual& key_equal, const SequenceLexicon* lexicon)"
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SequenceLexicon<T, Hasher, KeyEqual>::IdKeyEqual::IdKeyEqual(\n
      \   const KeyEqual& key_equal, const SequenceLexicon* lexicon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: "& SequenceLexicon<T, Hasher, KeyEqual>::IdKeyEqual::key_equal()\n
      \   const"
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyEqual
    signature: "KeyEqual & SequenceLexicon<T, Hasher, KeyEqual>::IdKeyEqual::key_equal()\n
      \   const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:198,1
    - Dst: sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:199,1
    - Dst: SequenceLexicon::Sequence::size
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:200,1
    - Dst: SequenceLexicon::Sequence::size
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:200,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:201,1
    - Dst: SequenceLexicon::Sequence::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:201,1
    - Dst: SequenceLexicon::Sequence::end
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:201,1
    - Dst: SequenceLexicon::Sequence::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - id1
    - id2
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: "SequenceLexicon<T, Hasher, KeyEqual>::IdKeyEqual::operator()(\n
      \   uint32_t id1, uint32_t id2) const"
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - SequenceLexicon::Sequence::size
    - SequenceLexicon::Sequence::end
    - sequence
    - equal
    - SequenceLexicon::Sequence::begin
    linkageType: ''
    returnType: bool
    signature: "bool SequenceLexicon<T, Hasher, KeyEqual>::IdKeyEqual::operator()(\n
      \   uint32_t id1, uint32_t id2) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:207,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:208,1
    - Dst: set_empty_key
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:209,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' hasher'
    - ' key_equal'
    argTypes:
    - Hasher
    - KeyEqual
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: SequenceLexicon<T, Hasher, KeyEqual>::SequenceLexicon
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - push_back
    - set_empty_key
    - IdKeyEqual
    linkageType: ''
    returnType: void
    signature: "void SequenceLexicon<T, Hasher, KeyEqual>::SequenceLexicon(const Hasher&
      hasher,\n                                                      const KeyEqual&
      key_equal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id_set_::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:218,1
    - Dst: id_set_::end
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:218,1
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:219,1
    - Dst: id_set_::hash_funct
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:219,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:220,1
    - Dst: id_set_::key_eq
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - SequenceLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: SequenceLexicon<T, Hasher, KeyEqual>::SequenceLexicon
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - id_set_::key_eq
    - id_set_::hash_funct
    - IdKeyEqual
    - id_set_::begin
    - id_set_::end
    linkageType: ''
    returnType: void
    signature: void SequenceLexicon<T, Hasher, KeyEqual>::SequenceLexicon(const SequenceLexicon&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:226,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:227,1
    - Dst: id_set_::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:230,1
    - Dst: id_set_::end
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:230,1
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:231,1
    - Dst: id_set_::hash_funct
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:231,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:232,1
    - Dst: id_set_::key_eq
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - SequenceLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: SequenceLexicon<T, Hasher, KeyEqual>::SequenceLexicon
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - std::move
    - id_set_::key_eq
    - id_set_::hash_funct
    - IdKeyEqual
    - id_set_::begin
    - id_set_::end
    linkageType: ''
    returnType: void
    signature: "void SequenceLexicon<T, Hasher, KeyEqual>::SequenceLexicon(\n    SequenceLexicon&&
      x) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSet
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:242,1
    - Dst: id_set_::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:242,1
    - Dst: id_set_::end
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:242,1
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:243,1
    - Dst: id_set_::hash_funct
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:243,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:244,1
    - Dst: id_set_::key_eq
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - SequenceLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 246
    functionName: '&

      SequenceLexicon<T, Hasher, KeyEqual>::operator=(const SequenceLexicon& x)'
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - id_set_::key_eq
    - id_set_::hash_funct
    - IdKeyEqual
    - id_set_::begin
    - id_set_::end
    - IdSet
    linkageType: ''
    returnType: SequenceLexicon<T, Hasher, KeyEqual>
    signature: 'SequenceLexicon<T, Hasher, KeyEqual> &

      SequenceLexicon<T, Hasher, KeyEqual>::operator=(const SequenceLexicon& x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:252,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:253,1
    - Dst: IdSet
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:256,1
    - Dst: id_set_::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:256,1
    - Dst: id_set_::end
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:256,1
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:257,1
    - Dst: id_set_::hash_funct
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:257,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:258,1
    - Dst: id_set_::key_eq
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - SequenceLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: '&

      SequenceLexicon<T, Hasher, KeyEqual>::operator=(SequenceLexicon&& x) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - std::move
    - id_set_::key_eq
    - id_set_::hash_funct
    - IdKeyEqual
    - id_set_::begin
    - id_set_::end
    - IdSet
    linkageType: ''
    returnType: SequenceLexicon<T, Hasher, KeyEqual>
    signature: 'SequenceLexicon<T, Hasher, KeyEqual> &

      SequenceLexicon<T, Hasher, KeyEqual>::operator=(SequenceLexicon&& x) noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:264,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:265,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:266,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: SequenceLexicon<T, Hasher, KeyEqual>::Clear
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - push_back
    - clear
    linkageType: ''
    returnType: void
    signature: void SequenceLexicon<T, Hasher, KeyEqual>::Clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:275,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:277,1
    - Dst: SequenceLexicon<T, Hasher, KeyEqual>::size
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:277,1
    - Dst: SequenceLexicon<T, Hasher, KeyEqual>::size
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:278,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:279,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:283,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:284,1
    - Dst: back
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - FwdIterator
    - FwdIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 287
    functionName: SequenceLexicon<T, Hasher, KeyEqual>::Add
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - push_back
    - back
    - resize
    - SequenceLexicon<T, Hasher, KeyEqual>::size
    - insert
    - pop_back
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t SequenceLexicon<T, Hasher, KeyEqual>::Add(FwdIterator begin,\n
      \                                                  FwdIterator end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SequenceLexicon<T, Hasher, KeyEqual>::Add
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:292,1
    - Dst: std::begin
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:292,1
    - Dst: std::end
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: SequenceLexicon<T, Hasher, KeyEqual>::Add
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 1
    functionsReached:
    - std::begin
    - std::end
    - SequenceLexicon<T, Hasher, KeyEqual>::Add
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SequenceLexicon<T, Hasher, KeyEqual>::Add(const Container&
      container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SequenceLexicon<T, Hasher, KeyEqual>::size
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: SequenceLexicon<T, Hasher, KeyEqual>::size
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 2
    functionsReached:
    - SequenceLexicon<T, Hasher, KeyEqual>::size
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SequenceLexicon<T, Hasher, KeyEqual>::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sequence
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:303,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:303,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/sequence_lexicon.h:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: SequenceLexicon<T, Hasher, KeyEqual>::sequence
    functionSourceFile: /src/s2geometry/src/s2/sequence_lexicon.h
    functionUses: 0
    functionsReached:
    - begin
    - Sequence
    linkageType: ''
    returnType: typename SequenceLexicon<T, Hasher, KeyEqual>::Sequence
    signature: typename SequenceLexicon<T, Hasher, KeyEqual>::Sequence SequenceLexicon<T,
      Hasher, KeyEqual>::sequence(uint32_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:45,1
    - Dst: S2MinDistance::Negative
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2MinDistance::Negative
    linkageType: ''
    returnType: void
    signature: void TEST(S2MinDistance, NegativeIsNegative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:51,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:54,1
    - Dst: S2MinDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:54,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:55,1
    - Dst: S2MinDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ParsePointsOrDie
    - S2MinDistancePointTarget::UpdateMinDistance
    - MakePointOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(PointTarget, UpdateMinDistanceToEdgeWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:61,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:63,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:64,1
    - Dst: S2MinDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:64,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:65,1
    - Dst: S2MinDistancePointTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - EXPECT_TRUE
    - S2MinDistancePointTarget::UpdateMinDistance
    - MakePointOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(PointTarget, UpdateMinDistanceToCellWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:69,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:69,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:71,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:72,1
    - Dst: S2MinDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:72,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:73,1
    - Dst: S2MinDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2MinDistanceEdgeTarget::UpdateMinDistance
    - ParsePointsOrDie
    - MakePointOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTarget, UpdateMinDistanceToEdgeWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:77,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:77,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:79,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:79,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:80,1
    - Dst: S2MinDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:81,1
    - Dst: S2MinDistanceEdgeTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - EXPECT_TRUE
    - S2MinDistanceEdgeTarget::UpdateMinDistance
    - MakePointOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTarget, UpdateMinDistanceToCellWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:85,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:87,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:88,1
    - Dst: S2MinDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:88,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:89,1
    - Dst: S2MinDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ParsePointsOrDie
    - MakePointOrDie
    - S2MinDistanceCellTarget::UpdateMinDistance
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CellTarget, UpdateMinDistanceToEdgeWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:93,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:95,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:96,1
    - Dst: S2MinDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:97,1
    - Dst: S2MinDistanceCellTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId
    - EXPECT_TRUE
    - MakePointOrDie
    - S2MinDistanceCellTarget::UpdateMinDistance
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CellTarget, UpdateMinDistanceToCellWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:102,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:103,1
    - Dst: S2MinDistanceCellUnionTarget::use_brute_force
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:103,1
    - Dst: S2MinDistanceCellUnionTarget::set_use_brute_force
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:104,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:105,1
    - Dst: S2MinDistanceCellUnionTarget::use_brute_force
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2MinDistanceCellUnionTarget::use_brute_force
    - EXPECT_TRUE
    - S2MinDistanceCellUnionTarget::set_use_brute_force
    - S2CellUnion
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CellUnionTarget, MinDistanceUseBruteForce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:110,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:110,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:113,1
    - Dst: S2MinDistanceCellUnionTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:113,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:114,1
    - Dst: S2MinDistanceCellUnionTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2MinDistanceCellUnionTarget::UpdateMinDistance
    - EXPECT_TRUE
    - ParsePointsOrDie
    - MakePointOrDie
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(CellUnionTarget, UpdateMinDistanceToEdgeWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:119,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:119,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:121,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:121,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:122,1
    - Dst: S2MinDistanceCellUnionTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:122,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:123,1
    - Dst: S2MinDistanceCellUnionTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2MinDistanceCellUnionTarget::UpdateMinDistance
    - EXPECT_TRUE
    - S2CellId
    - MakePointOrDie
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(CellUnionTarget, UpdateMinDistanceToCellWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:128,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:129,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:130,1
    - Dst: S2MinDistanceShapeIndexTarget::use_brute_force
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:130,1
    - Dst: S2MinDistanceShapeIndexTarget::set_use_brute_force
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:131,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:132,1
    - Dst: S2MinDistanceShapeIndexTarget::use_brute_force
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - S2MinDistanceShapeIndexTarget::use_brute_force
    - auto::get
    - EXPECT_TRUE
    - S2MinDistanceShapeIndexTarget::set_use_brute_force
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeIndexTarget, MinDistanceUseBruteForce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:136,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:137,1
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:139,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:140,1
    - Dst: S2MinDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:140,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:141,1
    - Dst: S2MinDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - EXPECT_TRUE
    - ParsePointsOrDie
    - S2MinDistanceShapeIndexTarget::UpdateMinDistance
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeIndexTarget, UpdateMinDistanceToEdgeWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:145,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:146,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:148,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:148,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:149,1
    - Dst: S2MinDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:150,1
    - Dst: S2MinDistanceShapeIndexTarget::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S2CellId
    - EXPECT_TRUE
    - S2MinDistanceShapeIndexTarget::UpdateMinDistance
    - MakePointOrDie
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeIndexTarget, UpdateMinDistanceToCellWhenEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MinDistanceTarget*::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:156,1
    - Dst: absl::btree_set::insert
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:159,1
    - Dst: absl::btree_set::size
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:160,1
    - Dst: vector<int>
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:162,1
    - Dst: absl::btree_set::begin
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:162,1
    - Dst: absl::btree_set::end
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - target
    - ' index'
    - max_shapes
    argTypes:
    - S2MinDistanceTarget*
    - S2ShapeIndex
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: GetContainingShapes
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 6
    functionsReached:
    - absl::btree_set::end
    - S2MinDistanceTarget*::VisitContainingShapeIds
    - absl::btree_set::begin
    - vector<int>
    - absl::btree_set::size
    - absl::btree_set::insert
    linkageType: ''
    returnType: vector<int>
    signature: "vector<int> GetContainingShapes(S2MinDistanceTarget* target,\n                                const
      S2ShapeIndex& index, int max_shapes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const int>::size
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:169,1
    - Dst: std::includes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:170,1
    - Dst: absl::Span<const int>::begin
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:170,1
    - Dst: absl::Span<const int>::end
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:170,1
    - Dst: absl::Span<const int>::begin
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:170,1
    - Dst: absl::Span<const int>::end
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - x
    - y
    - x_size
    argTypes:
    - absl::Span<const int>
    - absl::Span<const int>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: IsSubsetOfSize
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const int>::size
    - std::includes
    - absl::Span<const int>::begin
    - absl::Span<const int>::end
    linkageType: ''
    returnType: bool
    signature: "bool IsSubsetOfSize(absl::Span<const int> x, absl::Span<const int>
      y,\n                    int x_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:175,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:178,1
    - Dst: IsSubsetOfSize
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:178,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:180,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetContainingShapes
    - IsSubsetOfSize
    - MakePointOrDie
    - EXPECT_EQ
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(PointTarget, VisitContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:185,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:187,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:187,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:188,1
    - Dst: IsSubsetOfSize
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:188,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:190,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetContainingShapes
    - IsSubsetOfSize
    - MakePointOrDie
    - EXPECT_EQ
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(EdgeTarget, VisitContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:194,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:197,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:198,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:199,1
    - Dst: IsSubsetOfSize
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:199,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:201,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:201,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:207,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:209,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 210
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetContainingShapes
    - S2CellId::parent
    - IsSubsetOfSize
    - MakePointOrDie
    - S2Cell
    - EXPECT_EQ
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(CellTarget, VisitContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:213,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:217,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:217,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:218,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:219,1
    - Dst: IsSubsetOfSize
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:219,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:221,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetContainingShapes
    - IsSubsetOfSize
    - MakePointOrDie
    - EXPECT_EQ
    - S2CellUnion
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(CellUnionTarget, VisitContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:227,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:235,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:241,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 242
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetContainingShapes
    - auto::get
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeIndexTarget, VisitContainingShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:249,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:252,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:254,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:254,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:257,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:259,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:259,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:264,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:266,1
    - Dst: GetContainingShapes
      Src: /src/s2geometry/src/s2/s2min_distance_targets_test.cc:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 267
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetContainingShapes
    - auto::get
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(ShapeIndexTarget, VisitContainingShapesEmptyAndFull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:54,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:57,1
    - Dst: S2ShapeIndexBufferedRegion::radius
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:57,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:58,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:60,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 7
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellUnion::empty
    - S1Angle::Degrees
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeIndexBufferedRegion::radius
    - S2RegionCoverer::S2RegionCoverer
    - S2RegionCoverer::GetCovering
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, EmptyIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:66,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:67,1
    - Dst: S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:68,1
    - Dst: S2ShapeIndexBufferedRegion::Init
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:69,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:70,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:71,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:72,1
    - Dst: S2CellUnion::empty
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 7
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2CellUnion::empty
    - S1Angle::Degrees
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2RegionCoverer::GetCovering
    - S2ShapeIndexBufferedRegion::Init
    - S2RegionCoverer::S2RegionCoverer
    - S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, InitEmptyIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:77,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:78,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:79,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:80,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:82,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:84,1
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 7
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - auto::get
    - is_face
    - S2CellUnion::num_cells
    - EXPECT_TRUE
    - S1Angle::Degrees
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::S2RegionCoverer
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:90,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:91,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:92,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:93,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:94,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:95,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:96,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:96,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:98,1
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - auto::get
    - is_face
    - S2CellUnion::num_cells
    - EXPECT_TRUE
    - S2RegionCoverer::mutable_options
    - S1Angle::Degrees
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::S2RegionCoverer
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, FullAfterBuffering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:105,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:106,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:106,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:107,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:109,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:111,1
    - Dst: is_leaf
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 7
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S2CellUnion::num_cells
    - EXPECT_TRUE
    - S1ChordAngle::Zero
    - EXPECT_EQ
    - S2RegionCoverer::GetCovering
    - is_leaf
    - S2RegionCoverer::S2RegionCoverer
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, PointZeroRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:118,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:119,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:120,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:121,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:122,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:123,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:124,1
    - Dst: S2Testing::CheckCovering
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 7
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S2RegionCoverer::mutable_options
    - S1Angle::Degrees
    - S2RegionCoverer::GetCovering
    - MakePointOrDie
    - S2RegionCoverer::S2RegionCoverer
    - S2Testing::CheckCovering
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, BufferedPointVsCap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:137,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:139,1
    - Dst: S2RegionCoverer*::GetCovering
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:140,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:141,1
    - Dst: S2CellUnion::num_cells
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:141,1
    - Dst: S2RegionCoverer*::options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:142,1
    - Dst: ABSL_VLOG_IS_ON
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:143,1
    - Dst: s2textformat::ToString
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:146,1
    - Dst: S2Polygon
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:146,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:146,1
    - Dst: S2Polygon::S2Polygon
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:151,1
    - Dst: S2Polygon::InitToCellUnionBorder
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:152,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:153,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:154,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:154,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:157,1
    - Dst: S2BooleanOperation::Contains
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:157,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:162,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:164,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - index_str
    - radius_angle
    - coverer
    argTypes:
    - string_view
    - S1Angle
    - S2RegionCoverer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 165
    functionName: TestBufferIndex
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::num_cells
    - ABSL_LOG
    - S2RegionCoverer*::GetCovering
    - make_unique<S2Polygon::Shape>
    - S2Polygon
    - S2ClosestEdgeQuery::IsDistanceLess
    - S2Polygon::S2Polygon
    - S2Cell
    - S2RegionCoverer*::options
    - MutableS2ShapeIndex::Add
    - auto::get
    - EXPECT_TRUE
    - s2textformat::ToString
    - S2Polygon::InitToCellUnionBorder
    - S2BooleanOperation::Contains
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ClosestEdgeQuery::mutable_options
    - ABSL_VLOG_IS_ON
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: "void TestBufferIndex(string_view index_str, S1Angle radius_angle,\n
      \                    S2RegionCoverer* coverer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:169,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:170,1
    - Dst: TestBufferIndex
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:171,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 5
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::S2RegionCoverer
    - S1Angle::Degrees
    - S2RegionCoverer::mutable_options
    - TestBufferIndex
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, PointSet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:176,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:177,1
    - Dst: TestBufferIndex
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:178,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::S2RegionCoverer
    - S1Angle::Degrees
    - S2RegionCoverer::mutable_options
    - TestBufferIndex
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:184,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:185,1
    - Dst: TestBufferIndex
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:186,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::S2RegionCoverer
    - S1Angle::Degrees
    - S2RegionCoverer::mutable_options
    - TestBufferIndex
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, PolygonWithHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:192,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:193,1
    - Dst: TestBufferIndex
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:194,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 5
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::S2RegionCoverer
    - S1Angle::Degrees
    - S2RegionCoverer::mutable_options
    - TestBufferIndex
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeIndexBufferedRegion, HugeBufferRadius)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:62,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:62,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:63,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - actual
    - max_error
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: CheckUpdateMinDistanceMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S1Angle::radians
    - S1ChordAngle::PlusError
    - S2::GetUpdateMinDistanceMaxError
    - EXPECT_LE
    linkageType: ''
    returnType: void
    signature: void CheckUpdateMinDistanceMaxError(double actual, double max_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:68,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:69,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:70,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:71,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:72,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:73,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:74,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:75,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - CheckUpdateMinDistanceMaxError
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetUpdateMinDistanceMaxError)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:83,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:84,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:86,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:88,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:88,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:89,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:89,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:90,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:90,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:95,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:96,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:97,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:99,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:99,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:100,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:100,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:101,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:102,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:103,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:106,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:107,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:107,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:108,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:109,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:109,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 112
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S1ChordAngle::PlusError
    - S2::GetPointOnLine
    - absl::Bernoulli
    - S2::UpdateMinInteriorDistance
    - S1Angle::Radians
    - S2::GetUpdateMinDistanceMaxError
    - s2pred::CompareEdgeDistance
    - EXPECT_GE
    - Normalize
    - S1ChordAngle::Infinity
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_LE
    - S2::RobustCrossProd
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetUpdateMinInteriorDistanceMaxError)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:118,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:119,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:120,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:121,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:122,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:122,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:123,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:124,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:124,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:125,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:129,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:131,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:133,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:133,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:136,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:137,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:137,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:139,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:139,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:140,1
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - x
    - a
    - b
    - distance_radians
    - expected_closest
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - double
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 141
    functionName: CheckDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetDistance
    - S1ChordAngle::ToAngle
    - EXPECT_NEAR
    - EXPECT_LT
    - S2Point::Normalize
    - S2Point
    - EXPECT_TRUE
    - S2::ApproxEquals
    - S1ChordAngle::Zero
    - S2::UpdateMinDistance
    - s2pred::CompareEdgeDistance
    - S1ChordAngle::Infinity
    - S2::Project
    - S1ChordAngle
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: "void CheckDistance(S2Point x, S2Point a, S2Point b,\n                   double
      distance_radians, S2Point expected_closest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:145,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:146,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:146,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:146,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:146,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:147,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:149,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:151,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:152,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:152,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:152,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:152,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:153,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:155,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:157,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:157,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:157,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:157,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:158,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:159,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:159,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:159,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:159,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:160,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:163,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:165,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:167,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:167,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:167,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:167,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:168,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:168,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:168,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:169,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:169,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:169,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:169,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:170,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:170,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:170,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:172,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:172,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:172,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:172,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:173,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:175,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:176,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:176,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:176,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:176,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 143
    functionDepth: 6
    functionLinenumber: 143
    functionLinenumberEnd: 178
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - CheckDistance
    - asin
    - sqrt
    linkageType: ''
    returnType: void
    signature: void TEST(S2, Distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:186,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:187,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:187,1
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:188,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:189,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2::UpdateMinDistance
    - S1ChordAngle::Successor
    - S1ChordAngle::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(S2, UpdateMinInteriorDistanceLowerBoundOptimizationIsConservative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:203,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:204,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:204,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:210,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:211,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:211,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:218,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:219,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 221
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S1ChordAngle::FromLength2
    - S2::UpdateMinInteriorDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2, UpdateMinInteriorDistanceRejectionTestIsConservative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:225,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:226,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:227,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:229,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:230,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:230,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:231,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:232,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:232,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:233,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - x
    - a
    - b
    - distance_radians
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 234
    functionName: CheckMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2::UpdateMaxDistance
    - EXPECT_TRUE
    - EXPECT_NEAR
    - S2Point::Normalize
    - S1ChordAngle::radians
    - S1ChordAngle::Straight
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: "void CheckMaxDistance(S2Point x, S2Point a, S2Point b,\n                      double
      distance_radians)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:237,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:237,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:237,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:237,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:239,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:239,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:239,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:239,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:241,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:241,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:241,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:241,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:243,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:243,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:243,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:243,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:246,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:246,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:246,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:246,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:247,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:247,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:248,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:248,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:248,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:248,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:249,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:249,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:251,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:251,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:251,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:251,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:253,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:253,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:253,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:253,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:255,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:255,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:255,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:255,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:258,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:258,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:258,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:258,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:260,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:260,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:260,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:260,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:263,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:263,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:263,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 265
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - sqrt
    - S2Point
    - asin
    - CheckMaxDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2, MaxDistance)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:271,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:273,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:274,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: ChoosePoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 17
    functionsReached:
    - S2Point::Normalize
    - s2random::Point
    - s2random::LogUniform
    - absl::Bernoulli
    linkageType: ''
    returnType: S2Point
    signature: S2Point ChoosePoint(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:281,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:282,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:284,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:285,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:286,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:288,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:288,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:288,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:289,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:290,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:290,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - ChoosePoint
    - EXPECT_LT
    - S2Cap
    - S1Angle::Radians
    - S2::Project
    - s2random::SamplePoint
    - s2pred::CompareEdgeDistance
    - absl::LogInfoStreamer
    - S2::RobustCrossProd
    - S2Testing::MakeTaggedSeedSeq
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2, ProjectError)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:296,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:297,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:298,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:302,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:303,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:303,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:303,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:306,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:307,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:307,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:307,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:308,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:309,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:309,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:309,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:311,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:311,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:313,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:313,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:313,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:314,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:315,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:315,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - a
    - b
    - t
    - expected
    argTypes:
    - S2Point
    - S2Point
    - double
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 318
    functionName: TestInterpolate
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2::Interpolate
    - S2::GetPointOnLine
    - S2::GetPointOnRay
    - S2Point::Normalize
    - S1Angle::Radians
    - S2Point::DotProd
    - S1Angle
    - S1Angle::radians
    - EXPECT_LE
    linkageType: ''
    returnType: void
    signature: void TestInterpolate(S2Point a, S2Point b, double t, S2Point expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:322,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:323,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:326,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:327,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:330,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:330,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:330,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:330,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:331,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:331,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:331,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:332,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:332,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:333,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:334,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:334,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:337,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:338,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:339,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:343,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:343,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:343,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:344,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:344,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:345,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:345,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:345,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:346,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:346,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:352,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:353,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:355,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:356,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:357,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:358,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:365,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:366,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 320
    functionDepth: 5
    functionLinenumber: 320
    functionLinenumberEnd: 368
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2::Interpolate
    - S2CellId::range_min
    - EXPECT_NEAR
    - S2Point
    - sqrt
    - S2LatLng::FromRadians
    - S1Angle
    - TestInterpolate
    linkageType: ''
    returnType: void
    signature: void TEST(S2, Interpolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:374,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:374,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:375,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:375,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:376,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:376,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:377,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:377,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:378,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:378,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:379,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:379,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:382,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:382,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:383,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:383,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:384,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:384,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:385,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:385,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:388,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:388,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:388,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:389,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:389,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:389,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:390,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:390,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:390,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:393,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:393,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:393,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:396,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 399
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2::Interpolate
    - TestInterpolate
    linkageType: ''
    returnType: void
    signature: void TEST(S2, InterpolateCanExtrapolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:405,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:406,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:408,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:409,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:411,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:413,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 415
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2::Interpolate
    - EXPECT_TRUE
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, RepeatedInterpolation)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:428,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:429,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:430,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:431,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:432,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:433,1
    - Dst: S2::GetEdgePairClosestPoints
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:434,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:437,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:439,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:441,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:441,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:443,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:445,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:447,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:447,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:449,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:450,1
    - Dst: S2::UpdateEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:450,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:451,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:452,1
    - Dst: S2::UpdateEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:452,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:453,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 7
    argNames:
    - a0
    - a1
    - b0
    - b1
    - distance_radians
    - expected_a
    - expected_b
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - double
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 425
    functionDepth: 6
    functionLinenumber: 425
    functionLinenumberEnd: 454
    functionName: CheckEdgePairMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2Point
    - S2Point::Normalize
    - EXPECT_NEAR
    - S1ChordAngle::radians
    - S2::GetEdgePairClosestPoints
    - S2::ApproxEquals
    - S1ChordAngle::Zero
    - S1ChordAngle::Infinity
    - S2::UpdateEdgePairMinDistance
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: "void CheckEdgePairMinDistance(S2Point a0, S2Point a1, S2Point b0,
      S2Point b1,\n                              double distance_radians,\n                              S2Point
      expected_a, S2Point expected_b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:460,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:460,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:462,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:462,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:463,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:463,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:466,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:466,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:466,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:467,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:467,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:468,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:468,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:471,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:471,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:471,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:472,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:472,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:473,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:473,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:476,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:476,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:476,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:477,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:477,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:478,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:478,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:481,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:481,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:481,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:483,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:483,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:487,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:487,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:488,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:488,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:489,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:489,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:489,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:490,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:490,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:491,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:491,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:492,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:492,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:492,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:494,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:494,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:495,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:495,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:495,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:496,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:496,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:497,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:497,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:501,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:501,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:502,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:502,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:506,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:506,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:506,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:507,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:507,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:508,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:508,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:508,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:509,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:509,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:509,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:510,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:510,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:511,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:512,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:512,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:512,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:513,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:513,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:514,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:514,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 456
    functionDepth: 7
    functionLinenumber: 456
    functionLinenumberEnd: 515
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - acos
    - S2Point
    - CheckEdgePairMinDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2, EdgePairMinDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:522,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:523,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:524,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:525,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:527,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:528,1
    - Dst: S2::UpdateEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:528,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:529,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:530,1
    - Dst: S2::UpdateEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:530,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:531,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - a0
    - a1
    - b0
    - b1
    - distance_radians
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: CheckEdgePairMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_NEAR
    - S2Point::Normalize
    - S1ChordAngle::radians
    - S1ChordAngle::Straight
    - S2::UpdateEdgePairMaxDistance
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: "void CheckEdgePairMaxDistance(S2Point a0, S2Point a1, S2Point b0,
      S2Point b1,\n                              double distance_radians)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:536,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:536,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:536,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:537,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:537,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:538,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:538,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:542,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:542,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:543,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:544,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:544,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:544,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:545,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:545,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:546,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:549,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:549,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:549,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:550,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:550,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:554,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:554,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:554,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:555,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:555,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:559,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:559,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:559,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:560,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:560,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:564,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:564,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:564,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:565,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:565,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:569,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:569,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:569,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:570,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:570,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:575,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:575,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:575,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:576,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 534
    functionDepth: 4
    functionLinenumber: 534
    functionLinenumberEnd: 578
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - acos
    - S2Point
    - sqrt
    - CheckEdgePairMaxDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2, EdgePairMaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:583,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:583,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:585,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:585,1
    - Dst: S2::IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:586,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:586,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:586,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:587,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:587,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a_str
    - b_str
    - max_error_degrees
    argTypes:
    - string_view
    - string_view
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 589
    functionName: IsEdgeBNearEdgeA
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 3
    functionsReached:
    - unique_ptr::num_vertices
    - S1Angle::Degrees
    - S2::IsEdgeBNearEdgeA
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: bool
    signature: "bool IsEdgeBNearEdgeA(string_view a_str, string_view b_str,\n                      double
      max_error_degrees)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:597,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:598,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:599,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:603,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:603,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:604,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:604,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:607,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:608,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:608,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:609,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:609,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:610,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:610,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:613,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:613,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:614,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:614,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:615,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:615,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:616,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:616,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:617,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:617,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:618,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:618,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:621,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:621,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:622,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:622,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:623,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:623,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:627,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:627,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:628,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:628,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:629,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:629,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:630,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 631
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::Radians
    - EXPECT_EQ
    - IsEdgePairDistanceLess
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(IsEdgePairDistanceLess, Coverage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:635,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:635,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:638,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:638,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:641,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:641,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:644,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:644,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:647,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:647,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:650,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:650,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:658,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:658,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:659,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:659,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:662,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:662,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:671,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:671,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:672,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:672,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:675,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:675,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:680,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:680,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:687,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:687,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:693,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:693,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:697,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:697,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:701,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:701,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:706,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 707
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsEdgeBNearEdgeA
    linkageType: ''
    returnType: void
    signature: void TEST(S2, EdgeBNearEdgeA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:710,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:711,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:712,1
    - Dst: S2::GetPointToLeft
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:714,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:715,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:715,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:715,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:717,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 709
    functionDepth: 3
    functionLinenumber: 709
    functionLinenumberEnd: 718
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointToLeft
    - EXPECT_NEAR
    - S2Testing::MetersToAngle
    - S2::TurnAngle
    - S1Angle
    - S2LatLng::FromDegrees
    - S1Angle::radians
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetPointToLeftS1Angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:721,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:722,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:723,1
    - Dst: S2::GetPointToLeft
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:725,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:725,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:726,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:726,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:726,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:728,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 720
    functionDepth: 3
    functionLinenumber: 720
    functionLinenumberEnd: 729
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointToLeft
    - EXPECT_NEAR
    - S2Testing::MetersToAngle
    - S2::TurnAngle
    - S1Angle
    - S2LatLng::FromDegrees
    - S1Angle::radians
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetPointToLeftS1ChordAngle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:732,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:733,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:734,1
    - Dst: S2::GetPointToRight
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:736,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:737,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:737,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:737,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:739,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 740
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - S2Testing::MetersToAngle
    - S2::TurnAngle
    - S1Angle
    - S2LatLng::FromDegrees
    - S1Angle::radians
    - S2::GetPointToRight
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetPointToRightS1Angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:743,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:744,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:745,1
    - Dst: S2::GetPointToRight
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:747,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:747,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:748,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:748,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:748,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:750,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 751
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - S2Testing::MetersToAngle
    - S2::TurnAngle
    - S1Angle
    - S2LatLng::FromDegrees
    - S1Angle::radians
    - S2::GetPointToRight
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetPointToRightS1ChordAngle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:62,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:62,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:63,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - actual
    - max_error
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: CheckUpdateMinDistanceMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 1
    functionsReached:
    - S1Angle::radians
    - S1ChordAngle::PlusError
    - S2::GetUpdateMinDistanceMaxError
    - EXPECT_LE
    linkageType: ''
    returnType: void
    signature: void CheckUpdateMinDistanceMaxError(double actual, double max_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:68,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:69,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:70,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:71,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:72,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:73,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:74,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:75,1
    - Dst: CheckUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - CheckUpdateMinDistanceMaxError
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetUpdateMinDistanceMaxError)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:83,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:84,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:86,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:88,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:88,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:89,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:89,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:90,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:90,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:95,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:96,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:97,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:99,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:99,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:100,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:100,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:101,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:102,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:103,1
    - Dst: S2::GetUpdateMinDistanceMaxError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:106,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:107,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:107,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:108,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:109,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:109,1
    - Dst: S1ChordAngle::PlusError
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 112
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S1ChordAngle::PlusError
    - S2::GetPointOnLine
    - absl::Bernoulli
    - S2::UpdateMinInteriorDistance
    - S1Angle::Radians
    - S2::GetUpdateMinDistanceMaxError
    - s2pred::CompareEdgeDistance
    - EXPECT_GE
    - Normalize
    - S1ChordAngle::Infinity
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_LE
    - S2::RobustCrossProd
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetUpdateMinInteriorDistanceMaxError)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:118,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:119,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:120,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:121,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:122,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:122,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:123,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:124,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:124,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:125,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:129,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:131,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:133,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:133,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:136,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:137,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:137,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:138,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:139,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:139,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:140,1
    - Dst: S1ChordAngle::ToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - x
    - a
    - b
    - distance_radians
    - expected_closest
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - double
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 141
    functionName: CheckDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 1
    functionsReached:
    - S2::GetDistance
    - S1ChordAngle::ToAngle
    - EXPECT_NEAR
    - EXPECT_LT
    - S2Point::Normalize
    - S2Point
    - EXPECT_TRUE
    - S2::ApproxEquals
    - S1ChordAngle::Zero
    - S2::UpdateMinDistance
    - s2pred::CompareEdgeDistance
    - S1ChordAngle::Infinity
    - S2::Project
    - S1ChordAngle
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: "void CheckDistance(S2Point x, S2Point a, S2Point b,\n                   double
      distance_radians, S2Point expected_closest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:144,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:145,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:146,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:146,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:146,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:146,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:147,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:148,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:149,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:151,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:152,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:152,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:152,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:152,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:153,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:154,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:155,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:157,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:157,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:157,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:157,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:158,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:159,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:159,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:159,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:159,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:160,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:162,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:163,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:164,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:165,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:167,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:167,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:167,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:167,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:168,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:168,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:168,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:169,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:169,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:169,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:169,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:170,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:170,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:170,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:172,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:172,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:172,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:172,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:173,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:174,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:175,1
    - Dst: CheckDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:176,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:176,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:176,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:176,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 143
    functionDepth: 6
    functionLinenumber: 143
    functionLinenumberEnd: 178
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - CheckDistance
    - asin
    - sqrt
    linkageType: ''
    returnType: void
    signature: void TEST(S2, Distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:186,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:187,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:187,1
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:188,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:189,1
    - Dst: S2::UpdateMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2::UpdateMinDistance
    - S1ChordAngle::Successor
    - S1ChordAngle::Infinity
    linkageType: ''
    returnType: void
    signature: void TEST(S2, UpdateMinInteriorDistanceLowerBoundOptimizationIsConservative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:203,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:204,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:204,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:210,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:211,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:211,1
    - Dst: S1ChordAngle::FromLength2
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:218,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:219,1
    - Dst: S2::UpdateMinInteriorDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 221
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S1ChordAngle::FromLength2
    - S2::UpdateMinInteriorDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2, UpdateMinInteriorDistanceRejectionTestIsConservative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:225,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:226,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:227,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:229,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:230,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:230,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:231,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:232,1
    - Dst: S2::UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:232,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:233,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - x
    - a
    - b
    - distance_radians
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 234
    functionName: CheckMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_FALSE
    - S2::UpdateMaxDistance
    - EXPECT_TRUE
    - EXPECT_NEAR
    - S2Point::Normalize
    - S1ChordAngle::radians
    - S1ChordAngle::Straight
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: "void CheckMaxDistance(S2Point x, S2Point a, S2Point b,\n                      double
      distance_radians)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:237,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:237,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:237,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:237,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:239,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:239,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:239,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:239,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:241,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:241,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:241,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:241,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:243,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:243,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:243,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:243,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:246,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:246,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:246,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:246,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:247,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:247,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:248,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:248,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:248,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:248,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:249,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:249,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:251,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:251,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:251,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:251,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:253,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:253,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:253,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:253,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:255,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:255,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:255,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:255,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:258,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:258,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:258,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:258,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:260,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:260,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:260,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:260,1
    - Dst: CheckMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:263,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:263,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:263,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 265
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - sqrt
    - S2Point
    - asin
    - CheckMaxDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2, MaxDistance)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:271,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:273,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:274,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: ChoosePoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 18
    functionsReached:
    - S2Point::Normalize
    - s2random::Point
    - s2random::LogUniform
    - absl::Bernoulli
    linkageType: ''
    returnType: S2Point
    signature: S2Point ChoosePoint(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:281,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:282,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:284,1
    - Dst: ChoosePoint
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:285,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:286,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:288,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:288,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:288,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:289,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:290,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:290,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - ChoosePoint
    - EXPECT_LT
    - S2Cap
    - S1Angle::Radians
    - S2::Project
    - s2random::SamplePoint
    - s2pred::CompareEdgeDistance
    - absl::LogInfoStreamer
    - S2::RobustCrossProd
    - S2Testing::MakeTaggedSeedSeq
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2, ProjectError)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:296,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:297,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:298,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:302,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:303,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:303,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:303,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:306,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:307,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:307,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:307,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:308,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:309,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:309,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:309,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:311,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:311,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:313,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:313,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:313,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:314,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:315,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:315,1
    - Dst: S2::GetPointOnRay
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - a
    - b
    - t
    - expected
    argTypes:
    - S2Point
    - S2Point
    - double
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 318
    functionName: TestInterpolate
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 2
    functionsReached:
    - S2::Interpolate
    - S2::GetPointOnLine
    - S2::GetPointOnRay
    - S2Point::Normalize
    - S1Angle::Radians
    - S2Point::DotProd
    - S1Angle
    - S1Angle::radians
    - EXPECT_LE
    linkageType: ''
    returnType: void
    signature: void TestInterpolate(S2Point a, S2Point b, double t, S2Point expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:322,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:323,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:326,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:327,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:330,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:330,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:330,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:330,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:331,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:331,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:331,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:332,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:332,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:333,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:334,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:334,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:337,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:338,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:339,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:343,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:343,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:343,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:344,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:344,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:345,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:345,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:345,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:346,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:346,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:352,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:353,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:355,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:356,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:357,1
    - Dst: S2LatLng::FromRadians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:358,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:365,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:366,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 320
    functionDepth: 5
    functionLinenumber: 320
    functionLinenumberEnd: 368
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2::Interpolate
    - S2CellId::range_min
    - EXPECT_NEAR
    - S2Point
    - sqrt
    - S2LatLng::FromRadians
    - S1Angle
    - TestInterpolate
    linkageType: ''
    returnType: void
    signature: void TEST(S2, Interpolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:374,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:374,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:375,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:375,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:376,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:376,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:377,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:377,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:378,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:378,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:379,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:379,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:382,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:382,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:383,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:383,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:384,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:384,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:385,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:385,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:388,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:388,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:388,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:389,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:389,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:389,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:390,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:390,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:390,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:393,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:393,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:393,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:396,1
    - Dst: TestInterpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 399
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - S2::Interpolate
    - TestInterpolate
    linkageType: ''
    returnType: void
    signature: void TEST(S2, InterpolateCanExtrapolate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:405,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:406,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:408,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:409,1
    - Dst: S2::Interpolate
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:411,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:413,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 415
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2::Interpolate
    - EXPECT_TRUE
    - S2::IsUnitLength
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, RepeatedInterpolation)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:428,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:429,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:430,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:431,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:432,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:433,1
    - Dst: S2::GetEdgePairClosestPoints
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:434,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:437,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:439,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:441,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:441,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:443,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:445,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:447,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:447,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:449,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:450,1
    - Dst: S2::UpdateEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:450,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:451,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:452,1
    - Dst: S2::UpdateEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:452,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:453,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 7
    argNames:
    - a0
    - a1
    - b0
    - b1
    - distance_radians
    - expected_a
    - expected_b
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - double
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 425
    functionDepth: 6
    functionLinenumber: 425
    functionLinenumberEnd: 454
    functionName: CheckEdgePairMinDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_TRUE
    - S2Point
    - S2Point::Normalize
    - EXPECT_NEAR
    - S1ChordAngle::radians
    - S2::GetEdgePairClosestPoints
    - S2::ApproxEquals
    - S1ChordAngle::Zero
    - S1ChordAngle::Infinity
    - S2::UpdateEdgePairMinDistance
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: "void CheckEdgePairMinDistance(S2Point a0, S2Point a1, S2Point b0,
      S2Point b1,\n                              double distance_radians,\n                              S2Point
      expected_a, S2Point expected_b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:458,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:459,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:460,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:460,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:461,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:462,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:462,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:463,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:463,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:466,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:466,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:466,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:467,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:467,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:468,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:468,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:471,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:471,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:471,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:472,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:472,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:473,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:473,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:476,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:476,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:476,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:477,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:477,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:478,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:478,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:481,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:481,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:481,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:482,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:483,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:483,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:486,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:487,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:487,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:488,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:488,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:489,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:489,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:489,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:490,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:490,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:491,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:491,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:492,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:492,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:492,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:493,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:494,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:494,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:495,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:495,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:495,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:496,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:496,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:497,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:497,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:500,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:501,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:501,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:502,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:502,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:506,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:506,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:506,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:507,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:507,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:508,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:508,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:508,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:509,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:509,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:509,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:510,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:510,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:511,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:511,1
    - Dst: CheckEdgePairMinDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:512,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:512,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:512,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:513,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:513,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:514,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:514,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 456
    functionDepth: 7
    functionLinenumber: 456
    functionLinenumberEnd: 515
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - acos
    - S2Point
    - CheckEdgePairMinDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2, EdgePairMinDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:522,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:523,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:524,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:525,1
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:527,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:528,1
    - Dst: S2::UpdateEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:528,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:529,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:530,1
    - Dst: S2::UpdateEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:530,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:531,1
    - Dst: S1ChordAngle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - a0
    - a1
    - b0
    - b1
    - distance_radians
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: CheckEdgePairMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_NEAR
    - S2Point::Normalize
    - S1ChordAngle::radians
    - S1ChordAngle::Straight
    - S2::UpdateEdgePairMaxDistance
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: void
    signature: "void CheckEdgePairMaxDistance(S2Point a0, S2Point a1, S2Point b0,
      S2Point b1,\n                              double distance_radians)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:536,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:536,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:536,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:537,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:537,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:538,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:538,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:541,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:542,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:542,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:543,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:544,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:544,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:544,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:545,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:545,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:546,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:549,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:549,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:549,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:550,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:550,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:554,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:554,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:554,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:555,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:555,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:559,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:559,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:559,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:560,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:560,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:564,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:564,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:564,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:565,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:565,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:569,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:569,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:569,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:570,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:570,1
    - Dst: CheckEdgePairMaxDistance
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:575,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:575,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:575,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:576,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 534
    functionDepth: 4
    functionLinenumber: 534
    functionLinenumberEnd: 578
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - acos
    - S2Point
    - sqrt
    - CheckEdgePairMaxDistance
    linkageType: ''
    returnType: void
    signature: void TEST(S2, EdgePairMaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:583,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:583,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:585,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:585,1
    - Dst: S2::IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:586,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:586,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:586,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:587,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:587,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a_str
    - b_str
    - max_error_degrees
    argTypes:
    - string_view
    - string_view
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 589
    functionName: IsEdgeBNearEdgeA
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 5
    functionsReached:
    - unique_ptr::num_vertices
    - S1Angle::Degrees
    - S2::IsEdgeBNearEdgeA
    - unique_ptr::vertex
    - EXPECT_EQ
    linkageType: ''
    returnType: bool
    signature: "bool IsEdgeBNearEdgeA(string_view a_str, string_view b_str,\n                      double
      max_error_degrees)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:597,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:598,1
    - Dst: S1ChordAngle::Radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:599,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:603,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:603,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:604,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:604,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:607,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:608,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:608,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:609,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:609,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:610,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:610,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:613,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:613,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:614,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:614,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:615,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:615,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:616,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:616,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:617,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:617,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:618,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:618,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:621,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:621,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:622,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:622,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:623,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:623,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:627,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:627,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:628,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:628,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:629,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:629,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:630,1
    - Dst: IsEdgePairDistanceLess
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 631
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::Radians
    - EXPECT_EQ
    - IsEdgePairDistanceLess
    - S1ChordAngle::Zero
    linkageType: ''
    returnType: void
    signature: void TEST(IsEdgePairDistanceLess, Coverage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:635,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:635,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:638,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:638,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:641,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:641,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:644,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:644,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:647,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:647,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:650,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:650,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:658,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:658,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:659,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:659,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:662,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:662,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:671,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:671,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:672,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:672,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:675,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:675,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:680,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:680,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:687,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:687,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:693,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:693,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:697,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:697,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:701,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:701,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:706,1
    - Dst: IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 707
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsEdgeBNearEdgeA
    linkageType: ''
    returnType: void
    signature: void TEST(S2, EdgeBNearEdgeA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:710,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:711,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:712,1
    - Dst: S2::GetPointToLeft
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:714,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:715,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:715,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:715,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:717,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 709
    functionDepth: 3
    functionLinenumber: 709
    functionLinenumberEnd: 718
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointToLeft
    - EXPECT_NEAR
    - S2Testing::MetersToAngle
    - S2::TurnAngle
    - S1Angle
    - S2LatLng::FromDegrees
    - S1Angle::radians
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetPointToLeftS1Angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:721,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:722,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:723,1
    - Dst: S2::GetPointToLeft
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:725,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:725,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:726,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:726,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:726,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:728,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 720
    functionDepth: 3
    functionLinenumber: 720
    functionLinenumberEnd: 729
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetPointToLeft
    - EXPECT_NEAR
    - S2Testing::MetersToAngle
    - S2::TurnAngle
    - S1Angle
    - S2LatLng::FromDegrees
    - S1Angle::radians
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetPointToLeftS1ChordAngle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:732,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:733,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:734,1
    - Dst: S2::GetPointToRight
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:736,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:737,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:737,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:737,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:739,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 740
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - S2Testing::MetersToAngle
    - S2::TurnAngle
    - S1Angle
    - S2LatLng::FromDegrees
    - S1Angle::radians
    - S2::GetPointToRight
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetPointToRightS1Angle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:743,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:744,1
    - Dst: S2Testing::MetersToAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:745,1
    - Dst: S2::GetPointToRight
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:747,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:747,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:748,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:748,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:748,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:750,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2edge_distances_test.cc:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 751
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_distances_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - S2Testing::MetersToAngle
    - S2::TurnAngle
    - S1Angle
    - S2LatLng::FromDegrees
    - S1Angle::radians
    - S2::GetPointToRight
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2, GetPointToRightS1ChordAngle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:56,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:57,1
    - Dst: S2::GetFaceSegments
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:61,1
    - Dst: S2::FaceSegmentVector::size
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:62,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:63,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:67,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:72,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:74,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:74,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:78,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:78,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:78,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:80,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:80,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:85,1
    - Dst: S2::FaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:86,1
    - Dst: S2::FaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:86,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:87,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:87,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:88,1
    - Dst: Norm
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:88,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:90,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:91,1
    - Dst: S2Point::CrossProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:92,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:95,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:96,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:96,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:102,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:102,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:103,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:108,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:109,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:109,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:109,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:110,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:110,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:111,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:111,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:120,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:122,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:124,1
    - Dst: S1Interval::Expanded
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:125,1
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:126,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:129,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:130,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:131,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:132,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:132,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:132,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:133,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:133,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:133,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:134,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:135,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:135,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:135,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:135,1
    - Dst: S2Point::Angle
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:137,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:138,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:138,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:138,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:138,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:140,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:140,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:140,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:141,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:141,1
    - Dst: S2Point::DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:141,1
    - Dst: S1Interval::FromPointPair
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:145,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:146,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:146,1
    - Dst: S1Interval::Union
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:147,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:150,1
    - Dst: S1Interval::Expanded
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 3
    argNames:
    - bitgen
    - ' a_raw'
    - ' b_raw'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 151
    functionName: TestFaceClipping
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Contains
    - absl::Bernoulli
    - S1Interval::Contains
    - S1Interval::Union
    - S2::FaceXYZtoUV
    - S2Point::DotProd
    - R1Interval
    - S2Point::Angle
    - EXPECT_GE
    - S1Interval::FromPointPair
    - EXPECT_NE
    - EXPECT_EQ
    - atan2
    - fabs
    - EXPECT_TRUE
    - S1Interval::S1Interval
    - S2::ClipToPaddedFace
    - EXPECT_LE
    - S2Point::CrossProd
    - max
    - Norm
    - S2::FaceUVtoXYZ
    - S2::GetFaceSegments
    - EXPECT_DOUBLE_EQ
    - SCOPED_TRACE
    - S1Interval::Expanded
    - Normalize
    - s2random::LogUniform
    - S2::RobustCrossProd
    - S2::FaceSegmentVector::size
    linkageType: ''
    returnType: void
    signature: "void TestFaceClipping(absl::BitGenRef bitgen, const S2Point& a_raw,\n
      \                     const S2Point& b_raw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFaceClipping
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:155,1
    - Dst: TestFaceClipping
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitgen
    - ' a'
    - ' b'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: TestFaceClippingEdgePair
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - TestFaceClipping
    linkageType: ''
    returnType: void
    signature: "void TestFaceClippingEdgePair(absl::BitGenRef bitgen, const S2Point&
      a,\n                              const S2Point& b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:167,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:167,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:168,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:172,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:172,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:173,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:176,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:179,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:179,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:181,1
    - Dst: PerturbedCornerOrMidpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - bitgen
    - ' p'
    - ' q'
    argTypes:
    - absl::BitGenRef
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 186
    functionName: PerturbedCornerOrMidpoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 1
    functionsReached:
    - s2random::Point
    - absl::Bernoulli
    - PerturbedCornerOrMidpoint
    - s2random::LogUniform
    - S2Point::Norm2
    linkageType: ''
    returnType: S2Point
    signature: "S2Point PerturbedCornerOrMidpoint(absl::BitGenRef bitgen, const S2Point&
      p,\n                                  const S2Point& q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:189,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:190,1
    - Dst: TestFaceClippingEdgePair
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:193,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:193,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:194,1
    - Dst: TestFaceClippingEdgePair
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:196,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:196,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:196,1
    - Dst: TestFaceClippingEdgePair
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:198,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:198,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:198,1
    - Dst: TestFaceClippingEdgePair
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:200,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:200,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:200,1
    - Dst: TestFaceClippingEdgePair
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:202,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:202,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:203,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:207,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:207,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:210,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:210,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:212,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:213,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:215,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:215,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:216,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:216,1
    - Dst: PerturbedCornerOrMidpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:220,1
    - Dst: PerturbedCornerOrMidpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:221,1
    - Dst: TestFaceClipping
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 188
    functionDepth: 6
    functionLinenumber: 188
    functionLinenumberEnd: 224
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - S2Point
    - TestFaceClipping
    - R1Interval
    - PerturbedCornerOrMidpoint
    - SCOPED_TRACE
    - R2Rect::GetVertex
    - TestFaceClippingEdgePair
    - absl::LogInfoStreamer
    - s2random::LogUniform
    - S2Testing::MakeTaggedSeedSeq
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: void
    signature: void TEST(S2, FaceClipping)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:230,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:231,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:232,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:233,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:237,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:237,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bitgen
    - ' a'
    - ' b'
    argTypes:
    - absl::BitGenRef
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: ChooseRectPoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - s2random::LogUniform
    - R2Point
    - absl::Bernoulli
    linkageType: ''
    returnType: R2Point
    signature: "R2Point ChooseRectPoint(absl::BitGenRef bitgen, const R2Point& a,\n
      \                       const R2Point& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:250,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:251,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:251,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:251,1
    - Dst: R2Point::Ortho
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:251,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - R2Point
    - R2Point
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: GetFraction
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - fabs
    - R2Point::Ortho
    - Normalize
    - EXPECT_LE
    linkageType: ''
    returnType: double
    signature: double GetFraction(const R2Point& x, const R2Point& a, const R2Point&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:260,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:260,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:262,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:262,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:262,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:262,1
    - Dst: nextafter
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' p'
    - ' a'
    - ' clip'
    argTypes:
    - R2Point
    - R2Point
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: CheckPointOnBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - nextafter
    - R2Point
    - Contains
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: "void CheckPointOnBoundary(const R2Point& p, const R2Point& a,\n                          const
      R2Rect& clip)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2::ClipEdge
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:276,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:277,1
    - Dst: S2::IntersectsRect
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:277,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:277,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:279,1
    - Dst: S2::IntersectsRect
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:279,1
    - Dst: Expanded
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:279,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:282,1
    - Dst: GetFraction
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:282,1
    - Dst: GetFraction
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:282,1
    - Dst: CheckPointOnBoundary
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:284,1
    - Dst: CheckPointOnBoundary
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:285,1
    - Dst: ChooseRectPoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:288,1
    - Dst: ChooseRectPoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:289,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:290,1
    - Dst: S2::GetClippedEdgeBound
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:291,1
    - Dst: R2Rect::is_empty
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:292,1
    - Dst: R2Rect::Intersection
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:293,1
    - Dst: S2::ClipEdgeBound
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:294,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:295,1
    - Dst: S2::IntersectsRect
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:295,1
    - Dst: R2Rect::Expanded
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:295,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:297,1
    - Dst: S2::IntersectsRect
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:297,1
    - Dst: R2Rect::Expanded
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:297,1
    - Dst: CheckPointOnBoundary
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:300,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:300,1
    - Dst: CheckPointOnBoundary
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:301,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - bitgen
    - ' a'
    - ' b'
    - ' clip'
    argTypes:
    - absl::BitGenRef
    - R2Point
    - R2Point
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 303
    functionName: TestClipEdge
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - ChooseRectPoint
    - R2Rect::Expanded
    - CheckPointOnBoundary
    - R2Rect::is_empty
    - EXPECT_TRUE
    - R2Rect::FromPointPair
    - S2::ClipEdgeBound
    - S2::ClipEdge
    - S2::IntersectsRect
    - S2::GetClippedEdgeBound
    - R2Rect::GetVertex
    - EXPECT_LE
    - Expanded
    - R2Rect::Intersection
    - GetFraction
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: "void TestClipEdge(absl::BitGenRef bitgen, const R2Point& a, const
      R2Point& b,\n                  const R2Rect& clip)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:309,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:310,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:310,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:310,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:312,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:314,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:314,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:316,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:316,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:318,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:318,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - bitgen
    - ' clip'
    argTypes:
    - absl::BitGenRef
    - R1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 321
    functionName: ChooseEndpoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - lo
    - s2random::LogUniform
    - hi
    - absl::Bernoulli
    linkageType: ''
    returnType: double
    signature: double ChooseEndpoint(absl::BitGenRef bitgen, const R1Interval& clip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:330,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:332,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:333,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:334,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:334,1
    - Dst: ChooseEndpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:336,1
    - Dst: ChooseEndpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:337,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bitgen
    - ' clip'
    argTypes:
    - absl::BitGenRef
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 340
    functionName: ChooseEndpoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 1
    functionsReached:
    - absl::Bernoulli
    - GetVertex
    - ChooseEndpoint
    - s2random::LogUniform
    - R2Point
    linkageType: ''
    returnType: R2Point
    signature: R2Point ChooseEndpoint(absl::BitGenRef bitgen, const R2Rect& clip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:347,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:347,1
    - Dst: ChooseEndpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:348,1
    - Dst: ChooseEndpoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:349,1
    - Dst: TestClipEdge
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bitgen
    - ' clip'
    argTypes:
    - absl::BitGenRef
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: TestEdgeClipping
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - SCOPED_TRACE
    - TestClipEdge
    - StrCat
    - ChooseEndpoint
    linkageType: ''
    returnType: void
    signature: void TestEdgeClipping(absl::BitGenRef bitgen, const R2Rect& clip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:355,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:356,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:360,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:361,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:362,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:363,1
    - Dst: TestEdgeClipping
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:364,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:364,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:364,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:365,1
    - Dst: TestEdgeClipping
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:368,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:369,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:369,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:369,1
    - Dst: TestEdgeClipping
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:370,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:370,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:370,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:370,1
    - Dst: TestEdgeClipping
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:371,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:371,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:371,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:371,1
    - Dst: TestEdgeClipping
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:372,1
    - Dst: R2Rect::FromPoint
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:372,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:372,1
    - Dst: TestEdgeClipping
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:373,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 354
    functionDepth: 6
    functionLinenumber: 354
    functionLinenumberEnd: 374
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Empty
    - R2Rect::FromPointPair
    - R2Rect
    - R1Interval
    - R2Rect::FromPoint
    - R2Point
    - s2random::LogUniform
    - TestEdgeClipping
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2, EdgeClipping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:380,1
    - Dst: S2CellId::FromToken
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:380,1
    - Dst: S2Cell::face
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:381,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:383,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:385,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:385,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:386,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:386,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:390,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:394,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:394,1
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:394,1
    - Dst: KeepRunningBatch
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:397,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:400,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:401,1
    - Dst: S2::ClipEdge
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:402,1
    - Dst: S2Cell::GetBoundUV
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:402,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:403,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:404,1
    - Dst: SetItemsProcessed
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:407,1
    - Dst: iterations
      Src: /src/s2geometry/src/s2/s2edge_clipping_test.cc:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 408
    functionName: BM_EdgeClippingDisjoint
    functionSourceFile: /src/s2geometry/src/s2/s2edge_clipping_test.cc
    functionUses: 0
    functionsReached:
    - StrCat
    - std::string::end
    - KeepRunningBatch
    - vector::emplace_back
    - S2Cell::face
    - vector::reserve
    - range
    - S2::ClipEdge
    - benchmark::DoNotOptimize
    - SetItemsProcessed
    - S2::FaceUVtoXYZ
    - iterations
    - S2::ValidFaceXYZtoUV
    - S2Cell::GetBoundUV
    - S2Cell
    - S2CellId::FromToken
    - absl::GetFlag
    - std::string::begin
    linkageType: ''
    returnType: void
    signature: void BM_EdgeClippingDisjoint(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: s2builderutil::PolygonDegeneracy
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolygonDegeneracy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _edge_id
    - _is_hole
    argTypes:
    - S2Builder::Graph::EdgeId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2builderutil::PolygonDegeneracy
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolygonDegeneracy(S2Builder::Graph::EdgeId _edge_id, bool _is_hole)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - PolygonDegeneracy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: operator==(PolygonDegeneracy y) const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(PolygonDegeneracy y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - PolygonDegeneracy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator<(PolygonDegeneracy y) const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(PolygonDegeneracy y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: s2builderutil::PolygonDegeneracy
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolygonDegeneracy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _edge_id
    - _is_hole
    argTypes:
    - S2Builder::Graph::EdgeId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: s2builderutil::PolygonDegeneracy
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolygonDegeneracy(S2Builder::Graph::EdgeId _edge_id, bool _is_hole)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - PolygonDegeneracy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: operator==(PolygonDegeneracy y) const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(PolygonDegeneracy y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - PolygonDegeneracy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator<(PolygonDegeneracy y) const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(PolygonDegeneracy y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:72,1
    - Dst: TestQuery::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:74,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - TestQuery::FindClosestPoints
    - S2Point
    - EXPECT_EQ
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestPointQuery, NoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:82,1
    - Dst: TestQuery::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:87,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - TestQuery::FindClosestPoints
    - EXPECT_EQ
    - TestIndex::Add
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestPointQuery, ManyDuplicatePoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:93,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:94,1
    - Dst: TestIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:97,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:97,1
    - Dst: TestQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:100,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:100,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:103,1
    - Dst: TestQuery::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - TestQuery::FindClosestPoints
    - s2random::Point
    - TestIndex::Add
    - S1Angle::Radians
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - TestQuery::mutable_options
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestPointQuery, EmptyTargetOptimized)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: ~PointIndexFactory()
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PointIndexFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeRegularPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:124,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:125,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:125,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:126,1
    - Dst: TestIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' index_cap'
    - num_points
    - bitgen
    - index
    argTypes:
    - S2Cap
    - int
    - absl::BitGenRef
    - TestIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: AddPoints
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - TestIndex*::Add
    - center
    - GetRadius
    - vector::size
    - S2Testing::MakeRegularPoints
    linkageType: ''
    returnType: void
    signature: "void AddPoints(const S2Cap& index_cap, int num_points, absl::BitGenRef
      bitgen,\n                 TestIndex* index) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:138,1
    - Dst: S2Fractal::set_fractal_dimension
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:139,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:140,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:141,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:141,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:141,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:142,1
    - Dst: TestIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:143,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' index_cap'
    - num_points
    - bitgen
    - index
    argTypes:
    - S2Cap
    - int
    - absl::BitGenRef
    - TestIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: AddPoints
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - S2Fractal::set_fractal_dimension
    - center
    - GetRadius
    - unique_ptr::vertex
    - unique_ptr::num_vertices
    - TestIndex*::Add
    linkageType: ''
    returnType: void
    signature: "void AddPoints(const S2Cap& index_cap, int num_points, absl::BitGenRef
      bitgen,\n                 TestIndex* index) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceil
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:152,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:152,1
    - Dst: s2random::FrameAt
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:153,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:153,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:154,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:158,1
    - Dst: tan
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:159,1
    - Dst: TestIndex*::Add
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:160,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:160,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ' index_cap'
    - num_points
    - bitgen
    - index
    argTypes:
    - S2Cap
    - int
    - absl::BitGenRef
    - TestIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: AddPoints
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - s2random::FrameAt
    - S2Point::Normalize
    - sqrt
    - S2::FromFrame
    - center
    - tan
    - GetRadius
    - ceil
    - TestIndex*::Add
    linkageType: ''
    returnType: void
    signature: "void AddPoints(const S2Cap& index_cap, int num_points, absl::BitGenRef
      bitgen,\n                 TestIndex* index) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TestQuery*::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:178,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:179,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:179,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:179,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:180,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:181,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:183,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:183,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:183,1
    - Dst: TestQuery*::index
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:184,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:185,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:189,1
    - Dst: S2Region*::Contains
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:189,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:189,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:192,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:192,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:192,1
    - Dst: vector<TestingResult>*::push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:193,1
    - Dst: TestingResult
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:193,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:193,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - target
    - query
    - results
    argTypes:
    - TestQuery::Target*
    - TestQuery*
    - vector<TestingResult>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: GetClosestPoints
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - vector<TestingResult>*::push_back
    - S2Region*::Contains
    - EXPECT_TRUE
    - EXPECT_LT
    - min
    - TestingResult
    - auto::size
    - TestQuery*::FindClosestPoints
    - data
    - S1ChordAngle::Infinity
    - EXPECT_LE
    - distance
    - EXPECT_EQ
    - point
    - TestQuery*::index
    - TestQuery*::options
    linkageType: ''
    returnType: void
    signature: "void GetClosestPoints(TestQuery::Target* target, TestQuery* query,\n
      \                            vector<TestingResult>* results)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TestQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:199,1
    - Dst: GetClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:200,1
    - Dst: TestQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:201,1
    - Dst: GetClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:202,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:203,1
    - Dst: CheckDistanceResults
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:203,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:204,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:205,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:206,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:207,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:208,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:209,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:211,1
    - Dst: TestQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:219,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:221,1
    - Dst: TestQuery*::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:221,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:224,1
    - Dst: TestQuery*::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:224,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:225,1
    - Dst: TestQuery*::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:225,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:226,1
    - Dst: TestQuery*::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - target
    - query
    argTypes:
    - TestQuery::Target*
    - TestQuery*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 227
    functionName: TestFindClosestPoints
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - TestQuery*::mutable_options
    - EXPECT_FALSE
    - EXPECT_TRUE
    - CheckDistanceResults
    - TestQuery*::IsDistanceLess
    - TestQuery*::IsConservativeDistanceLessOrEqual
    - vector::empty
    - TestQuery*::IsDistanceLessOrEqual
    - EXPECT_LE
    - TestQuery*::GetDistance
    - GetClosestPoints
    - TestQuery*::options
    linkageType: ''
    returnType: void
    signature: void TestFindClosestPoints(TestQuery::Target* target, TestQuery *query)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:237,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:237,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:237,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:238,1
    - Dst: make_unique<TestIndex>
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:238,1
    - Dst: AddPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:239,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:239,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:240,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:243,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:248,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:249,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:250,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:254,1
    - Dst: TestQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:255,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:255,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:258,1
    - Dst: TestQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:259,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:260,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:262,1
    - Dst: TestQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:265,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:265,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:266,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:266,1
    - Dst: S2LatLngRect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:268,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:269,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:269,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:270,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:270,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:271,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:272,1
    - Dst: TestQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:273,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:275,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:278,1
    - Dst: TestFindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:280,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:283,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:284,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:286,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:286,1
    - Dst: TestFindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:288,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:291,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:291,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:292,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:294,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:295,1
    - Dst: TestFindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:297,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:299,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:300,1
    - Dst: s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:301,1
    - Dst: TestQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:304,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:304,1
    - Dst: TestFindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:305,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - ' factory'
    - num_indexes
    - num_points
    - num_queries
    - bitgen
    argTypes:
    - PointIndexFactory
    - int
    - int
    - int
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 230
    functionDepth: 6
    functionLinenumber: 230
    functionLinenumberEnd: 308
    functionName: TestWithIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 9
    functionsReached:
    - s2random::Point
    - absl::Bernoulli
    - S2CellId
    - vector::back
    - center
    - TestQuery::mutable_options
    - GetLevelForMaxValue
    - S2Cap
    - S1Angle::Radians
    - make_unique<TestIndex>
    - GetRadius
    - TestFindClosestPoints
    - vector::push_back
    - ABSL_DCHECK_EQ
    - absl::Uniform<size_t>
    - S2LatLng
    - s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
    - S1Angle::radians
    - get
    - TestQuery::ShapeIndexTarget::set_include_interiors
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLngRect::FromCenterSize
    - s2random::SamplePoint
    - s2random::LogUniform
    - AddPoints
    linkageType: ''
    returnType: void
    signature: "void TestWithIndexFactory(const PointIndexFactory& factory,\n                                 int
      num_indexes, int num_points,\n                                 int num_queries,
      absl::BitGenRef bitgen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:315,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:316,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:317,1
    - Dst: CirclePointIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - CirclePointIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestPointQueryTest, CirclePoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:322,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:323,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:324,1
    - Dst: FractalPointIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - FractalPointIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestPointQueryTest, FractalPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:330,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:330,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:331,1
    - Dst: GridPointIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - GridPointIndexFactory
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestPointQueryTest, GridPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:336,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:337,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:338,1
    - Dst: FractalPointIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - TestWithIndexFactory
    - FractalPointIndexFactory
    - S2Testing::MakeTaggedSeedSeq
    - absl::LogInfoStreamer
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestPointQueryTest, ConservativeCellDistanceIsUsed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:351,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:352,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:353,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:353,1
    - Dst: TestQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:359,1
    - Dst: TestQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:361,1
    - Dst: TestQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:363,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:364,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:384,1
    - Dst: TestIndex::Clear
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:386,1
    - Dst: AddPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:388,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:389,1
    - Dst: TestIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:390,1
    - Dst: TestIndex::Iterator::Next
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:390,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:391,1
    - Dst: TestIndex::Iterator::point
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:391,1
    - Dst: TestQuery::ReInit
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:393,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:394,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:397,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:399,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:400,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:402,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:404,1
    - Dst: make_unique<S2ClosestPointQueryPointTarget>
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:404,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:406,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:407,1
    - Dst: absl::Uniform<size_t>
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:409,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:409,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:413,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:414,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:416,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:416,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:418,1
    - Dst: make_unique<S2ClosestPointQueryEdgeTarget>
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:418,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:421,1
    - Dst: TestQuery::FindClosestPoint
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:423,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:423,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:424,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 6
    argNames:
    - ' state'
    - ' factory'
    - num_points
    - max_distance_fraction
    - target_type
    - choose_target_from_index
    argTypes:
    - benchmark::State
    - PointIndexFactory
    - int
    - double
    - TargetType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 426
    functionName: BenchmarkFindClosest
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 40
    functionsReached:
    - TestIndex::Iterator::done
    - TestIndex::Clear
    - TestQuery::mutable_options
    - TestQuery::FindClosestPoint
    - vector::size
    - ABSL_DCHECK
    - S2Cap
    - S2Point::S2Point
    - TestIndex::Iterator::Next
    - vector::push_back
    - make_unique<S2ClosestPointQueryEdgeTarget>
    - ResumeTiming
    - std::string::end
    - absl::Uniform<size_t>
    - TestQuery::ReInit
    - std::string::begin
    - vector::clear
    - PauseTiming
    - get
    - absl::StrCat
    - TestIndex::Iterator::point
    - s2random::SamplePoint
    - s2random::LogUniform
    - AddPoints
    - make_unique<S2ClosestPointQueryPointTarget>
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void BenchmarkFindClosest(benchmark::State& state,\n                                 const
      PointIndexFactory& factory,\n                                 int num_points,
      double max_distance_fraction,\n                                 TargetType target_type,\n
      \                                bool choose_target_from_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:442,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:443,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: BM_FindClosest
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosest(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:454,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:455,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:456,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:456,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 459
    functionName: BM_FindClosestMaxDistPow10
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    - exp
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestMaxDistPow10(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:466,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:467,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 469
    functionName: BM_FindClosestNearSite
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestNearSite(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:480,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:481,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 483
    functionName: BM_FindClosestToEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:489,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:490,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_point_query_test.cc:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: BM_FindClosestToEdgeNearSite
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    functionUses: 0
    functionsReached:
    - BenchmarkFindClosest
    - range
    - Factory
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToEdgeNearSite(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: s2coding::EncodedUintVector::EncodedUintVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedUintVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:145,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:146,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:146,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:149,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - value
    - length
    - encoder
    argTypes:
    - T
    - int
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: s2coding::EncodeUintWithLength
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 4
    functionsReached:
    - ABSL_DCHECK_EQ
    - Encoder*::put8
    - ABSL_DCHECK_GE
    - Encoder*::avail
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void EncodeUintWithLength(T value, int length, Encoder* encoder)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:159,1
    - Dst: LittleEndian::Load<T>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:178,1
    - Dst: LittleEndian::Load<uint32_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:183,1
    - Dst: LittleEndian::Load<uint16_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:186,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - ptr
    - length
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 192
    functionName: s2coding::GetUintWithLength
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached:
    - LittleEndian::Load<uint16_t>
    - LittleEndian::Load<T>
    - LittleEndian::Load<uint32_t>
    - static_cast<uint8_t>
    - ABSL_DCHECK
    linkageType: ''
    returnType: T
    signature: T GetUintWithLength(const char* ptr, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:196,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:196,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:197,1
    - Dst: s2coding::GetUintWithLength
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:198,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - length
    - decoder
    - result
    argTypes:
    - int
    - Decoder*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: s2coding::DecodeUintWithLength
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Decoder*::avail
    - s2coding::GetUintWithLength
    - Decoder*::skip
    linkageType: ''
    returnType: bool
    signature: bool DecodeUintWithLength(int length, Decoder* decoder, T* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_ASSUME
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:215,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:216,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:217,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:220,1
    - Dst: absl::Span<const T>::size
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:220,1
    - Dst: absl::Span<const T>::size
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:221,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:222,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - v
    - encoder
    argTypes:
    - absl::Span<const T>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 226
    functionName: s2coding::EncodeUintVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 8
    functionsReached:
    - Encoder*::put_varint64
    - absl::Span<const T>::size
    - s2coding::EncodeUintWithLength
    - ABSL_ASSUME
    - Encoder*::Ensure
    - exactfloat_internal::bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void EncodeUintVector(absl::Span<const T> v, Encoder* encoder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:231,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:234,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:235,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:235,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:236,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:237,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: s2coding::EncodedUintVector<T>::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached:
    - Decoder*::skip
    - static_cast<size_t>
    - Stats::max
    - Decoder*::get_varint64
    - Decoder*::avail
    linkageType: ''
    returnType: bool
    signature: bool EncodedUintVector<T>::Init(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: s2coding::EncodedUintVector<T>::Clear
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedUintVector<T>::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: s2coding::EncodedUintVector<T>::size
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedUintVector<T>::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:255,1
    - Dst: GetUintWithLength<T>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: EncodedUintVector<T>::operator[](int i) const
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached:
    - GetUintWithLength<T>
    - ABSL_DCHECK
    linkageType: ''
    returnType: T
    signature: T EncodedUintVector<T>::operator[](int i) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:262,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:271,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:272,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:273,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:274,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:275,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:276,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:277,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:278,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - target
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 281
    functionName: s2coding::EncodedUintVector<T>::lower_bound
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 1
    functionsReached:
    - s2coding::EncodedUintVector<T>::lower_bound
    - ABSL_UNREACHABLE
    - ABSL_DCHECK
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedUintVector<T>::lower_bound(T target) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetUintWithLength<T>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - target
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 296
    functionName: s2coding::EncodedUintVector<T>::lower_bound
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 1
    functionsReached:
    - GetUintWithLength<T>
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedUintVector<T>::lower_bound(T target) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 305
    functionName: s2coding::EncodedUintVector<T>::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> EncodedUintVector<T>::Decode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:312,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:313,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: s2coding::EncodedUintVector<T>::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached:
    - Encoder*::Ensure
    - Encoder*::put_varint64
    - Encoder*::putn
    linkageType: ''
    returnType: void
    signature: void EncodedUintVector<T>::Encode(Encoder* encoder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: s2coding::EncodedUintVector::EncodedUintVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedUintVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:145,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:146,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:146,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:149,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - value
    - length
    - encoder
    argTypes:
    - T
    - int
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: s2coding::EncodeUintWithLength
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 5
    functionsReached:
    - ABSL_DCHECK_EQ
    - Encoder*::put8
    - ABSL_DCHECK_GE
    - Encoder*::avail
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void EncodeUintWithLength(T value, int length, Encoder* encoder)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:159,1
    - Dst: LittleEndian::Load<T>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:178,1
    - Dst: LittleEndian::Load<uint32_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:183,1
    - Dst: LittleEndian::Load<uint16_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:186,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - ptr
    - length
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 192
    functionName: s2coding::GetUintWithLength
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 1
    functionsReached:
    - LittleEndian::Load<uint16_t>
    - LittleEndian::Load<T>
    - LittleEndian::Load<uint32_t>
    - static_cast<uint8_t>
    - ABSL_DCHECK
    linkageType: ''
    returnType: T
    signature: T GetUintWithLength(const char* ptr, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:196,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:196,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:197,1
    - Dst: s2coding::GetUintWithLength
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:198,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - length
    - decoder
    - result
    argTypes:
    - int
    - Decoder*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: s2coding::DecodeUintWithLength
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Decoder*::avail
    - s2coding::GetUintWithLength
    - Decoder*::skip
    linkageType: ''
    returnType: bool
    signature: bool DecodeUintWithLength(int length, Decoder* decoder, T* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_ASSUME
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:215,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:216,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:217,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:220,1
    - Dst: absl::Span<const T>::size
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:220,1
    - Dst: absl::Span<const T>::size
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:221,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:222,1
    - Dst: s2coding::EncodeUintWithLength
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - v
    - encoder
    argTypes:
    - absl::Span<const T>
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 226
    functionName: s2coding::EncodeUintVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 8
    functionsReached:
    - Encoder*::put_varint64
    - absl::Span<const T>::size
    - s2coding::EncodeUintWithLength
    - ABSL_ASSUME
    - Encoder*::Ensure
    - exactfloat_internal::bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void EncodeUintVector(absl::Span<const T> v, Encoder* encoder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::get_varint64
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:231,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:234,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:235,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:235,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:236,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:237,1
    - Dst: Decoder*::skip
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: s2coding::EncodedUintVector<T>::Init
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached:
    - Decoder*::skip
    - static_cast<size_t>
    - Stats::max
    - Decoder*::get_varint64
    - Decoder*::avail
    linkageType: ''
    returnType: bool
    signature: bool EncodedUintVector<T>::Init(Decoder* decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: s2coding::EncodedUintVector<T>::Clear
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodedUintVector<T>::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: s2coding::EncodedUintVector<T>::size
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedUintVector<T>::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:255,1
    - Dst: GetUintWithLength<T>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: EncodedUintVector<T>::operator[](int i) const
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached:
    - GetUintWithLength<T>
    - ABSL_DCHECK
    linkageType: ''
    returnType: T
    signature: T EncodedUintVector<T>::operator[](int i) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:262,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:271,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:272,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:273,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:274,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:275,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:276,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:277,1
    - Dst: s2coding::EncodedUintVector<T>::lower_bound
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:278,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - target
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 281
    functionName: s2coding::EncodedUintVector<T>::lower_bound
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 2
    functionsReached:
    - s2coding::EncodedUintVector<T>::lower_bound
    - ABSL_UNREACHABLE
    - ABSL_DCHECK
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedUintVector<T>::lower_bound(T target) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetUintWithLength<T>
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - target
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 296
    functionName: s2coding::EncodedUintVector<T>::lower_bound
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 2
    functionsReached:
    - GetUintWithLength<T>
    linkageType: ''
    returnType: size_t
    signature: size_t EncodedUintVector<T>::lower_bound(T target) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 305
    functionName: s2coding::EncodedUintVector<T>::Decode
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> EncodedUintVector<T>::Decode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:312,1
    - Dst: Encoder*::put_varint64
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:313,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/encoded_uint_vector.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: s2coding::EncodedUintVector<T>::Encode
    functionSourceFile: /src/s2geometry/src/s2/encoded_uint_vector.h
    functionUses: 0
    functionsReached:
    - Encoder*::Ensure
    - Encoder*::put_varint64
    - Encoder*::putn
    linkageType: ''
    returnType: void
    signature: void EncodedUintVector<T>::Encode(Encoder* encoder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: S2Loop::S2Loop
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Loop::S2Loop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2loop.cc:112,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2loop.cc:117,1
    - Dst: vertices_::get
      Src: /src/s2geometry/src/s2/s2loop.cc:117,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2loop.cc:117,1
    - Dst: S2Loop::InitIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: S2Loop::S2Loop
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 20
    functionsReached:
    - MakeS2PointArrayForOverwrite
    - get
    - S2Loop::InitIndex
    - vertices_::get
    - std::copy_n
    linkageType: ''
    returnType: void
    signature: void S2Loop::S2Loop(const S2Loop& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2loop.cc:126,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2loop.cc:131,1
    - Dst: vertices_::get
      Src: /src/s2geometry/src/s2/s2loop.cc:131,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2loop.cc:131,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2loop.cc:133,1
    - Dst: InitIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: '& S2Loop::operator=(const S2Loop& src)'
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - InitIndex
    - MakeS2PointArrayForOverwrite
    - get
    - Clear
    - vertices_::get
    - std::copy_n
    linkageType: ''
    returnType: S2Loop
    signature: S2Loop & S2Loop::operator=(const S2Loop& src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2loop.cc:140,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2loop.cc:141,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:142,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:143,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:144,1
    - Dst: unindexed_contains_calls_::exchange
      Src: /src/s2geometry/src/s2/s2loop.cc:146,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:147,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:148,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:149,1
    - Dst: const_cast<Shape*>
      Src: /src/s2geometry/src/s2/s2loop.cc:153,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2loop.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 155
    functionName: S2Loop::S2Loop
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 20
    functionsReached:
    - const_cast<Shape*>
    - std::move
    - std::exchange
    - down_cast
    - unindexed_contains_calls_::exchange
    linkageType: ''
    returnType: void
    signature: void S2Loop::S2Loop(S2Loop&& b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2loop.cc:159,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2loop.cc:160,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:161,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:162,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:163,1
    - Dst: store
      Src: /src/s2geometry/src/s2/s2loop.cc:164,1
    - Dst: unindexed_contains_calls_::exchange
      Src: /src/s2geometry/src/s2/s2loop.cc:165,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:167,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:168,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2loop.cc:169,1
    - Dst: const_cast<Shape*>
      Src: /src/s2geometry/src/s2/s2loop.cc:174,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2loop.cc:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: '& S2Loop::operator=(S2Loop&& b) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - const_cast<Shape*>
    - std::move
    - std::exchange
    - down_cast
    - store
    - unindexed_contains_calls_::exchange
    linkageType: ''
    returnType: S2Loop
    signature: S2Loop & S2Loop::operator=(S2Loop&& b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: S2Loop::S2Loop
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Loop::S2Loop(Span<const S2Point> vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Init
      Src: /src/s2geometry/src/s2/s2loop.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vertices
    - override
    argTypes:
    - Span<const S2Point>
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: S2Loop::S2Loop
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 20
    functionsReached:
    - S2Loop::Init
    linkageType: ''
    returnType: void
    signature: void S2Loop::S2Loop(Span<const S2Point> vertices, S2Debug override)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - override
    argTypes:
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: S2Loop::set_s2debug_override
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Loop::set_s2debug_override(S2Debug override)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: S2Loop::s2debug_override
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Debug
    signature: S2Debug S2Loop::s2debug_override() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/s2geometry/src/s2/s2loop.cc:197,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2loop.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: S2Loop::ClearIndex
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - store
    - Clear
    linkageType: ''
    returnType: void
    signature: void S2Loop::ClearIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::ClearIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:202,1
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2loop.cc:203,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2loop.cc:204,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2loop.cc:205,1
    - Dst: Span<const S2Point>::data
      Src: /src/s2geometry/src/s2/s2loop.cc:205,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2loop.cc:205,1
    - Dst: S2Loop::InitOriginAndBound
      Src: /src/s2geometry/src/s2/s2loop.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: S2Loop::Init
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 3
    functionsReached:
    - Span<const S2Point>::size
    - MakeS2PointArrayForOverwrite
    - get
    - Span<const S2Point>::data
    - S2Loop::InitOriginAndBound
    - S2Loop::ClearIndex
    - std::copy_n
    linkageType: ''
    returnType: void
    signature: void S2Loop::Init(Span<const S2Point> vertices)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2loop.cc:210,1
    - Dst: FindValidationError
      Src: /src/s2geometry/src/s2/s2loop.cc:211,1
    - Dst: ABSL_LOG_IF
      Src: /src/s2geometry/src/s2/s2loop.cc:212,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop.cc:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: S2Loop::IsValid
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 2
    functionsReached:
    - FindValidationError
    - ABSL_LOG_IF
    - absl::GetFlag
    - S2Error::S2Error
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::IsValid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindValidationErrorNoIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:219,1
    - Dst: s2shapeutil::FindSelfIntersection
      Src: /src/s2geometry/src/s2/s2loop.cc:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - FindValidationErrorNoIndex
    - s2shapeutil::FindSelfIntersection
    linkageType: ''
    returnType: bool
    signature: bool const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop.cc:226,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:226,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:232,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2loop.cc:233,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:233,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2loop.cc:234,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2loop.cc:235,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:240,1
    - Dst: is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:241,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2loop.cc:244,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:254,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:255,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:255,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2loop.cc:256,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2loop.cc:258,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:261,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:261,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2loop.cc:262,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2loop.cc:263,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:264,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 269
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - num_vertices
    - S2Error
    - vertex
    - S2::IsUnitLength
    - Contains
    - is_empty_or_full
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:272,1
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:274,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:280,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:294,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:294,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:294,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:294,1
    - Dst: S2::AngleContainsVertex
      Src: /src/s2geometry/src/s2/s2loop.cc:295,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:295,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:295,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:295,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:300,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:300,1
    - Dst: S2Loop::InitBound
      Src: /src/s2geometry/src/s2/s2loop.cc:311,1
    - Dst: S2Loop::InitIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 313
    functionName: S2Loop::InitOriginAndBound
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2::AngleContainsVertex
    - S2Loop::InitIndex
    - vertex
    - S2Loop::num_vertices
    - S2Loop::InitBound
    - S2Loop::Contains
    - S2Loop::is_empty_or_full
    linkageType: ''
    returnType: void
    signature: void S2Loop::InitOriginAndBound()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:317,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:318,1
    - Dst: S2LatLngRect::Empty
      Src: /src/s2geometry/src/s2/s2loop.cc:319,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2loop.cc:321,1
    - Dst: S2LatLngRectBounder::S2LatLngRectBounder
      Src: /src/s2geometry/src/s2/s2loop.cc:333,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:334,1
    - Dst: S2LatLngRectBounder::AddPoint
      Src: /src/s2geometry/src/s2/s2loop.cc:335,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:335,1
    - Dst: S2LatLngRectBounder::GetBound
      Src: /src/s2geometry/src/s2/s2loop.cc:337,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:338,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop.cc:338,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2loop.cc:339,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2loop.cc:339,1
    - Dst: S2LatLngRect::lat
      Src: /src/s2geometry/src/s2/s2loop.cc:339,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2loop.cc:339,1
    - Dst: S2LatLngRect::lng
      Src: /src/s2geometry/src/s2/s2loop.cc:346,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:346,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2loop.cc:346,1
    - Dst: S2LatLngRect::mutable_lat
      Src: /src/s2geometry/src/s2/s2loop.cc:347,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2loop.cc:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 351
    functionName: S2Loop::InitBound
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2Loop::is_empty
    - S2LatLngRect::lat
    - S2LatLngRectBounder::ExpandForSubregions
    - S2Point
    - S2LatLngRectBounder::S2LatLngRectBounder
    - R1Interval
    - S2LatLngRectBounder::AddPoint
    - S2LatLngRectBounder::GetBound
    - S2LatLngRect::lng
    - vertex
    - S2LatLngRect::Empty
    - S2Loop::num_vertices
    - S2Loop::Contains
    - S1Interval::Full
    - S2LatLngRect::mutable_lat
    - S2LatLngRect::Full
    - S2Loop::is_empty_or_full
    - S2LatLngRect
    linkageType: ''
    returnType: void
    signature: void S2Loop::InitBound()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2loop.cc:354,1
    - Dst: make_unique<Shape>
      Src: /src/s2geometry/src/s2/s2loop.cc:354,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop.cc:355,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2loop.cc:357,1
    - Dst: S2Loop::IsValid
      Src: /src/s2geometry/src/s2/s2loop.cc:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: S2Loop::InitIndex
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 3
    functionsReached:
    - S2Loop::IsValid
    - Add
    - make_unique<Shape>
    - ABSL_CHECK
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void S2Loop::InitIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2loop.cc:362,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2loop.cc:364,1
    - Dst: S2Loop::InitOriginAndBound
      Src: /src/s2geometry/src/s2/s2loop.cc:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 361
    functionDepth: 5
    functionLinenumber: 361
    functionLinenumberEnd: 369
    functionName: S2Loop::S2Loop
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 20
    functionsReached:
    - GetVertex
    - MakeS2PointArrayForOverwrite
    - S2Loop::InitOriginAndBound
    linkageType: ''
    returnType: void
    signature: void S2Loop::S2Loop(const S2Cell& cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: S2Loop::~S2Loop()
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Loop::~S2Loop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::S2Loop
      Src: /src/s2geometry/src/s2/s2loop.cc:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: S2Loop::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2Loop::S2Loop
    linkageType: ''
    returnType: S2Loop
    signature: S2Loop * S2Loop::Clone() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:378,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:380,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:381,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/s2loop.cc:386,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/s2loop.cc:388,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:389,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2loop.cc:390,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:392,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:392,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:393,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 396
    functionName: S2Loop::FindVertex
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Iterator::Locate
    - num_edges
    - vertex
    - S2Loop::num_vertices
    - edge
    - MutableS2ShapeIndex::Iterator::cell
    linkageType: ''
    returnType: int
    signature: int S2Loop::FindVertex(const S2Point& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2loop.cc:401,1
    - Dst: S2::IsNormalized
      Src: /src/s2geometry/src/s2/s2loop.cc:403,1
    - Dst: S2Loop::vertices_span
      Src: /src/s2geometry/src/s2/s2loop.cc:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: S2Loop::IsNormalized
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 2
    functionsReached:
    - lng
    - S2::IsNormalized
    - S2Loop::vertices_span
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::IsNormalized() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::IsNormalized
      Src: /src/s2geometry/src/s2/s2loop.cc:407,1
    - Dst: S2Loop::Invert
      Src: /src/s2geometry/src/s2/s2loop.cc:407,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop.cc:408,1
    - Dst: S2Loop::IsNormalized
      Src: /src/s2geometry/src/s2/s2loop.cc:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: S2Loop::Normalize
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2Loop::Invert
    - ABSL_DCHECK
    - S2Loop::IsNormalized
    linkageType: ''
    returnType: void
    signature: void S2Loop::Normalize()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::ClearIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:412,1
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:413,1
    - Dst: S2Loop::is_full
      Src: /src/s2geometry/src/s2/s2loop.cc:414,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2loop.cc:416,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:416,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2loop.cc:420,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2loop.cc:420,1
    - Dst: S2LatLngRect::Full
      Src: /src/s2geometry/src/s2/s2loop.cc:422,1
    - Dst: S2Loop::InitBound
      Src: /src/s2geometry/src/s2/s2loop.cc:424,1
    - Dst: S2Loop::InitIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 427
    functionName: S2Loop::Invert
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 9
    functionsReached:
    - std::reverse
    - S2Loop::InitIndex
    - S2Loop::num_vertices
    - S2Loop::InitBound
    - S2Loop::is_full
    - lat
    - S2Loop::ClearIndex
    - S2LatLngRect::Full
    - S2Loop::is_empty_or_full
    linkageType: ''
    returnType: void
    signature: void S2Loop::Invert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:431,1
    - Dst: S2Loop::contains_origin
      Src: /src/s2geometry/src/s2/s2loop.cc:432,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2loop.cc:434,1
    - Dst: S2Loop::vertices_span
      Src: /src/s2geometry/src/s2/s2loop.cc:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: S2Loop::GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 3
    functionsReached:
    - S2Loop::contains_origin
    - S2::GetArea
    - S2Loop::is_empty_or_full
    - S2Loop::vertices_span
    linkageType: ''
    returnType: double
    signature: double S2Loop::GetArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2loop.cc:439,1
    - Dst: S2Loop::vertices_span
      Src: /src/s2geometry/src/s2/s2loop.cc:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: S2Loop::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2::GetCentroid
    - S2Loop::vertices_span
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Loop::GetCentroid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop.cc:443,1
    - Dst: S2Loop::vertices_span
      Src: /src/s2geometry/src/s2/s2loop.cc:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: S2Loop::GetCanonicalLoopOrder
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2Loop::vertices_span
    - S2::GetCanonicalLoopOrder
    linkageType: ''
    returnType: S2::LoopOrder
    signature: S2::LoopOrder S2Loop::GetCanonicalLoopOrder() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:449,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2loop.cc:449,1
    - Dst: S2Loop::GetDistanceToBoundary
      Src: /src/s2geometry/src/s2/s2loop.cc:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 451
    functionName: S2Loop::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2Loop::GetDistanceToBoundary
    - S2Loop::Contains
    - S1Angle::Zero
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Loop::GetDistance(const S2Point& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2loop.cc:455,1
    - Dst: S2ClosestEdgeQuery
      Src: /src/s2geometry/src/s2/s2loop.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: S2Loop::GetDistanceToBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - S2ClosestEdgeQuery
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Loop::GetDistanceToBoundary(const S2Point& x) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:461,1
    - Dst: S2Loop::ProjectToBoundary
      Src: /src/s2geometry/src/s2/s2loop.cc:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: S2Loop::Project
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2Loop::ProjectToBoundary
    - S2Loop::Contains
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Loop::Project(const S2Point& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2loop.cc:467,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2loop.cc:470,1
    - Dst: S2ClosestEdgeQuery::Project
      Src: /src/s2geometry/src/s2/s2loop.cc:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 472
    functionName: S2Loop::ProjectToBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2ClosestEdgeQuery::FindClosestEdge
    - S2ClosestEdgeQuery::Project
    - S2ClosestEdgeQuery::Options::set_include_interiors
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Loop::ProjectToBoundary(const S2Point& x) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:477,1
    - Dst: S2Loop::contains_origin
      Src: /src/s2geometry/src/s2/s2loop.cc:478,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop.cc:480,1
    - Dst: S2Loop::vertices_span
      Src: /src/s2geometry/src/s2/s2loop.cc:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 481
    functionName: S2Loop::GetCurvature
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 2
    functionsReached:
    - S2Loop::contains_origin
    - S2::GetCurvature
    - S2Loop::is_empty_or_full
    - S2Loop::vertices_span
    linkageType: ''
    returnType: double
    signature: double S2Loop::GetCurvature() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2loop.cc:484,1
    - Dst: S2Loop::vertices_span
      Src: /src/s2geometry/src/s2/s2loop.cc:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: S2Loop::GetCurvatureMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2::GetCurvatureMaxError
    - S2Loop::vertices_span
    linkageType: ''
    returnType: double
    signature: double S2Loop::GetCurvatureMaxError() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::GetCapBound
      Src: /src/s2geometry/src/s2/s2loop.cc:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: S2Loop::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2Loop::GetCapBound
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Loop::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::GetCapBound
      Src: /src/s2geometry/src/s2/s2loop.cc:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: S2Loop::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2Loop::GetCapBound
    linkageType: ''
    returnType: void
    signature: void S2Loop::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/s2loop.cc:497,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2loop.cc:497,1
    - Dst: S2Loop::BoundaryApproxIntersects
      Src: /src/s2geometry/src/s2/s2loop.cc:508,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:511,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2loop.cc:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 512
    functionName: S2Loop::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 12
    functionsReached:
    - MutableS2ShapeIndex::Iterator::Locate
    - id
    - S2Loop::Contains
    - S2Loop::BoundaryApproxIntersects
    - GetCenter
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::Contains(const S2Cell& target) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/s2loop.cc:516,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2loop.cc:516,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2loop.cc:528,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2loop.cc:528,1
    - Dst: S2Loop::BoundaryApproxIntersects
      Src: /src/s2geometry/src/s2/s2loop.cc:531,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:534,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2loop.cc:534,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 535
    functionName: S2Loop::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - MutableS2ShapeIndex::Iterator::Locate
    - id
    - MutableS2ShapeIndex::Iterator::id
    - S2Loop::Contains
    - S2Loop::BoundaryApproxIntersects
    - GetCenter
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::MayIntersect(const S2Cell& target) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop.cc:539,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2loop.cc:539,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2loop.cc:539,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2loop.cc:540,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:541,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2loop.cc:547,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2loop.cc:547,1
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2loop.cc:552,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2loop.cc:554,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/s2loop.cc:556,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:556,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:556,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2loop.cc:556,1
    - Dst: S2::IntersectsRect
      Src: /src/s2geometry/src/s2/s2loop.cc:558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' it'
    - ' target'
    argTypes:
    - MutableS2ShapeIndex::Iterator
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 563
    functionName: S2Loop::BoundaryApproxIntersects
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 2
    functionsReached:
    - num_edges
    - id
    - face
    - vertex
    - edge
    - S2::ClipToPaddedFace
    - S2::IntersectsRect
    - GetBoundUV
    - cell
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool S2Loop::BoundaryApproxIntersects(const MutableS2ShapeIndex::Iterator&
      it,\n                                      const S2Cell& target) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/s2loop.cc:568,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:568,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2loop.cc:592,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:593,1
    - Dst: is_fresh
      Src: /src/s2geometry/src/s2/s2loop.cc:594,1
    - Dst: S2Loop::BruteForceContains
      Src: /src/s2geometry/src/s2/s2loop.cc:596,1
    - Dst: MutableS2ShapeIndex::Iterator::Locate
      Src: /src/s2geometry/src/s2/s2loop.cc:601,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:602,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 603
    functionName: S2Loop::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 14
    functionsReached:
    - MutableS2ShapeIndex::Iterator::Locate
    - is_fresh
    - S2Loop::BruteForceContains
    - num_shape_ids
    - S2Loop::num_vertices
    - S2Loop::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::Contains(const S2Point& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:608,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2loop.cc:610,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:611,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:613,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2loop.cc:614,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 617
    functionName: S2Loop::BruteForceContains
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2::Origin
    - S2Loop::num_vertices
    - S2EdgeCrosser::EdgeOrVertexCrossing
    - vertex
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::BruteForceContains(const S2Point& p) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2loop.cc:623,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2loop.cc:624,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:625,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2loop.cc:627,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2loop.cc:631,1
    - Dst: S2EdgeCrosser::RestartAt
      Src: /src/s2geometry/src/s2/s2loop.cc:632,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:632,1
    - Dst: S2EdgeCrosser::EdgeOrVertexCrossing
      Src: /src/s2geometry/src/s2/s2loop.cc:634,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' it'
    - ' p'
    argTypes:
    - MutableS2ShapeIndex::Iterator
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 638
    functionName: S2Loop::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 14
    functionsReached:
    - num_edges
    - id
    - vertex
    - edge
    - S2EdgeCrosser::EdgeOrVertexCrossing
    - S2EdgeCrosser::RestartAt
    - contains_center
    - cell
    linkageType: ''
    returnType: bool
    signature: "bool S2Loop::Contains(const MutableS2ShapeIndex::Iterator& it,\n                      const
      S2Point& p) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2loop.cc:641,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2loop.cc:643,1
    - Dst: Encoder*::put32
      Src: /src/s2geometry/src/s2/s2loop.cc:644,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/s2loop.cc:645,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2loop.cc:645,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2loop.cc:646,1
    - Dst: Encoder*::put32
      Src: /src/s2geometry/src/s2/s2loop.cc:647,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2loop.cc:648,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2loop.cc:648,1
    - Dst: S2Loop::Encode
      Src: /src/s2geometry/src/s2/s2loop.cc:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 651
    functionName: S2Loop::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 2
    functionsReached:
    - get
    - Encoder*::put8
    - Encoder*::putn
    - Encoder*::put32
    - Encoder*::Ensure
    - S2Loop::Encode
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: void S2Loop::Encode(Encoder* const encoder) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2loop.cc:654,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2loop.cc:655,1
    - Dst: S2Loop::DecodeInternal
      Src: /src/s2geometry/src/s2/s2loop.cc:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 661
    functionName: S2Loop::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 2
    functionsReached:
    - Decoder*::avail
    - S2Loop::DecodeInternal
    - Decoder*::get8
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::Decode(Decoder* const decoder)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2loop.cc:667,1
    - Dst: Decoder*::get32
      Src: /src/s2geometry/src/s2/s2loop.cc:668,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2loop.cc:669,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop.cc:669,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2loop.cc:673,1
    - Dst: S2Loop::ClearIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:677,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2loop.cc:680,1
    - Dst: Decoder*::getn
      Src: /src/s2geometry/src/s2/s2loop.cc:681,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2loop.cc:681,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2loop.cc:682,1
    - Dst: Decoder*::get32
      Src: /src/s2geometry/src/s2/s2loop.cc:683,1
    - Dst: S2Loop::Decode
      Src: /src/s2geometry/src/s2/s2loop.cc:684,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2loop.cc:685,1
    - Dst: S2Loop::InitIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 696
    functionName: S2Loop::DecodeInternal
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2LatLngRectBounder::ExpandForSubregions
    - MakeS2PointArrayForOverwrite
    - get
    - static_cast<uint32_t>
    - S2Loop::Decode
    - S2Loop::InitIndex
    - Decoder*::getn
    - Decoder*::get32
    - Decoder*::avail
    - S2Loop::ClearIndex
    - Decoder*::get8
    - absl::GetFlag
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::DecodeInternal(Decoder* const decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 702
    functionName: LoopRelation::LoopRelation
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LoopRelation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: ~LoopRelation()
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~LoopRelation()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RangeIterator::Refresh
      Src: /src/s2geometry/src/s2/s2loop.cc:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 745
    functionName: RangeIterator::RangeIterator
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - RangeIterator::Refresh
    linkageType: ''
    returnType: void
    signature: void RangeIterator(const MutableS2ShapeIndex* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RangeIterator::id
      Src: /src/s2geometry/src/s2/s2loop.cc:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 748
    functionName: RangeIterator::id
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 2
    functionsReached:
    - RangeIterator::id
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2loop.cc:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 749
    functionName: '& cell() const'
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - cell
    linkageType: ''
    returnType: S2ShapeIndexCell
    signature: S2ShapeIndexCell & cell() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 753
    functionName: RangeIterator::range_min
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId range_min() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 754
    functionName: RangeIterator::range_max
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId range_max() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2loop.cc:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 757
    functionName: '& clipped() const'
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - cell
    linkageType: ''
    returnType: S2ClippedShape
    signature: S2ClippedShape & clipped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2loop.cc:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 759
    functionName: RangeIterator::num_edges
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - clipped
    linkageType: ''
    returnType: int
    signature: int num_edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2loop.cc:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    functionName: RangeIterator::contains_center
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - clipped
    linkageType: ''
    returnType: bool
    signature: bool contains_center() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2loop.cc:762,1
    - Dst: RangeIterator::Refresh
      Src: /src/s2geometry/src/s2/s2loop.cc:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 762
    functionName: RangeIterator::Next
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 9
    functionsReached:
    - RangeIterator::Refresh
    - RangeIterator::Next
    linkageType: ''
    returnType: void
    signature: void Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: done
      Src: /src/s2geometry/src/s2/s2loop.cc:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 763
    functionName: RangeIterator::Done
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - done
    linkageType: ''
    returnType: bool
    signature: bool Done()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2loop.cc:768,1
    - Dst: RangeIterator::range_min
      Src: /src/s2geometry/src/s2/s2loop.cc:768,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2loop.cc:772,1
    - Dst: RangeIterator::id
      Src: /src/s2geometry/src/s2/s2loop.cc:772,1
    - Dst: RangeIterator::range_max
      Src: /src/s2geometry/src/s2/s2loop.cc:772,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2loop.cc:773,1
    - Dst: RangeIterator::id
      Src: /src/s2geometry/src/s2/s2loop.cc:773,1
    - Dst: RangeIterator::id
      Src: /src/s2geometry/src/s2/s2loop.cc:773,1
    - Dst: RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2loop.cc:773,1
    - Dst: RangeIterator::Refresh
      Src: /src/s2geometry/src/s2/s2loop.cc:775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - RangeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 776
    functionName: RangeIterator::SeekTo
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - done
    - RangeIterator::range_max
    - Seek
    - RangeIterator::id
    - Prev
    - RangeIterator::Next
    - RangeIterator::Refresh
    - RangeIterator::range_min
    linkageType: ''
    returnType: void
    signature: void SeekTo(const RangeIterator& target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2loop.cc:781,1
    - Dst: RangeIterator::range_max
      Src: /src/s2geometry/src/s2/s2loop.cc:781,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2loop.cc:782,1
    - Dst: RangeIterator::id
      Src: /src/s2geometry/src/s2/s2loop.cc:782,1
    - Dst: RangeIterator::range_max
      Src: /src/s2geometry/src/s2/s2loop.cc:782,1
    - Dst: RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2loop.cc:783,1
    - Dst: RangeIterator::Refresh
      Src: /src/s2geometry/src/s2/s2loop.cc:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - RangeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: RangeIterator::SeekBeyond
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - done
    - RangeIterator::range_max
    - Seek
    - RangeIterator::id
    - RangeIterator::Next
    - RangeIterator::Refresh
    linkageType: ''
    returnType: void
    signature: void SeekBeyond(const RangeIterator& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RangeIterator::id
      Src: /src/s2geometry/src/s2/s2loop.cc:791,1
    - Dst: RangeIterator::id
      Src: /src/s2geometry/src/s2/s2loop.cc:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 793
    functionName: RangeIterator::Refresh
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 4
    functionsReached:
    - RangeIterator::id
    linkageType: ''
    returnType: void
    signature: void Refresh()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LoopRelation*::a_crossing_target
      Src: /src/s2geometry/src/s2/s2loop.cc:811,1
    - Dst: LoopRelation*::b_crossing_target
      Src: /src/s2geometry/src/s2/s2loop.cc:812,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2loop.cc:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - relation
    - swapped
    argTypes:
    - S2Loop
    - S2Loop
    - LoopRelation*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 816
    functionName: LoopCrosser::LoopCrosser
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - LoopRelation*::a_crossing_target
    - LoopRelation*::b_crossing_target
    - swap
    linkageType: ''
    returnType: void
    signature: "void LoopCrosser(const S2Loop& a, const S2Loop& b,\n              LoopRelation*
      relation, bool swapped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 820
    functionName: LoopCrosser::a_crossing_target
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int a_crossing_target() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 821
    functionName: LoopCrosser::b_crossing_target
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_crossing_target() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2loop.cc:869,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:869,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aj
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 872
    functionName: LoopCrosser::StartEdge
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - Init
    - vertex
    linkageType: ''
    returnType: void
    signature: void LoopCrosser::StartEdge(int aj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:876,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2loop.cc:878,1
    - Dst: RestartAt
      Src: /src/s2geometry/src/s2/s2loop.cc:879,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:879,1
    - Dst: CrossingSign
      Src: /src/s2geometry/src/s2/s2loop.cc:881,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:881,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:886,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:886,1
    - Dst: WedgesCross
      Src: /src/s2geometry/src/s2/s2loop.cc:888,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:889,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:889,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:889,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:890,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:890,1
    - Dst: WedgesCross
      Src: /src/s2geometry/src/s2/s2loop.cc:891,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:892,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:892,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:892,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:893,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:893,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' b_clipped'
    argTypes:
    - S2ClippedShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 899
    functionName: LoopCrosser::EdgeCrossesCell
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - WedgesCross
    - num_edges
    - CrossingSign
    - vertex
    - edge
    - RestartAt
    linkageType: ''
    returnType: bool
    signature: bool LoopCrosser::EdgeCrossesCell(const S2ClippedShape& b_clipped)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:904,1
    - Dst: LoopCrosser::StartEdge
      Src: /src/s2geometry/src/s2/s2loop.cc:906,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2loop.cc:906,1
    - Dst: LoopCrosser::EdgeCrossesCell
      Src: /src/s2geometry/src/s2/s2loop.cc:907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' a_clipped'
    - ' b_clipped'
    argTypes:
    - S2ClippedShape
    - S2ClippedShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 910
    functionName: LoopCrosser::CellCrossesCell
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - edge
    - LoopCrosser::EdgeCrossesCell
    - LoopCrosser::StartEdge
    linkageType: ''
    returnType: bool
    signature: "bool LoopCrosser::CellCrossesCell(const S2ClippedShape& a_clipped,\n
      \                                 const S2ClippedShape& b_clipped)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:918,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2loop.cc:920,1
    - Dst: GetCells
      Src: /src/s2geometry/src/s2/s2loop.cc:923,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:923,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:923,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2loop.cc:924,1
    - Dst: LoopCrosser::StartEdge
      Src: /src/s2geometry/src/s2/s2loop.cc:925,1
    - Dst: LoopCrosser::EdgeCrossesCell
      Src: /src/s2geometry/src/s2/s2loop.cc:927,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2loop.cc:927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' a_clipped'
    - b_id
    argTypes:
    - S2ClippedShape
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 931
    functionName: LoopCrosser::CellCrossesAnySubcell
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - LoopCrosser::EdgeCrossesCell
    - vertex
    - edge
    - clipped
    - empty
    - GetCells
    - LoopCrosser::StartEdge
    linkageType: ''
    returnType: bool
    signature: "bool LoopCrosser::CellCrossesAnySubcell(const S2ClippedShape& a_clipped,\n
      \                                       S2CellId b_id)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop.cc:934,1
    - Dst: RangeIterator*::id
      Src: /src/s2geometry/src/s2/s2loop.cc:934,1
    - Dst: RangeIterator*::id
      Src: /src/s2geometry/src/s2/s2loop.cc:934,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2loop.cc:943,1
    - Dst: RangeIterator*::num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:945,1
    - Dst: RangeIterator*::num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:946,1
    - Dst: LoopCrosser::CellCrossesAnySubcell
      Src: /src/s2geometry/src/s2/s2loop.cc:950,1
    - Dst: RangeIterator*::clipped
      Src: /src/s2geometry/src/s2/s2loop.cc:950,1
    - Dst: RangeIterator*::id
      Src: /src/s2geometry/src/s2/s2loop.cc:950,1
    - Dst: RangeIterator*::SeekBeyond
      Src: /src/s2geometry/src/s2/s2loop.cc:951,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2loop.cc:954,1
    - Dst: RangeIterator*::cell
      Src: /src/s2geometry/src/s2/s2loop.cc:954,1
    - Dst: RangeIterator*::Next
      Src: /src/s2geometry/src/s2/s2loop.cc:956,1
    - Dst: RangeIterator*::id
      Src: /src/s2geometry/src/s2/s2loop.cc:957,1
    - Dst: RangeIterator*::range_max
      Src: /src/s2geometry/src/s2/s2loop.cc:957,1
    - Dst: LoopCrosser::CellCrossesCell
      Src: /src/s2geometry/src/s2/s2loop.cc:961,1
    - Dst: RangeIterator*::clipped
      Src: /src/s2geometry/src/s2/s2loop.cc:961,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2loop.cc:961,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ai
    - bi
    argTypes:
    - RangeIterator*
    - RangeIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 966
    functionName: LoopCrosser::HasCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - RangeIterator*::cell
    - RangeIterator*::id
    - LoopCrosser::CellCrossesAnySubcell
    - clear
    - push_back
    - RangeIterator*::Next
    - LoopCrosser::CellCrossesCell
    - RangeIterator*::clipped
    - RangeIterator*::num_edges
    - clipped
    - RangeIterator*::SeekBeyond
    - RangeIterator*::range_max
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool LoopCrosser::HasCrossing(RangeIterator* ai, RangeIterator* bi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop.cc:969,1
    - Dst: RangeIterator*::id
      Src: /src/s2geometry/src/s2/s2loop.cc:969,1
    - Dst: RangeIterator*::id
      Src: /src/s2geometry/src/s2/s2loop.cc:969,1
    - Dst: RangeIterator*::num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:970,1
    - Dst: RangeIterator*::contains_center
      Src: /src/s2geometry/src/s2/s2loop.cc:971,1
    - Dst: RangeIterator*::contains_center
      Src: /src/s2geometry/src/s2/s2loop.cc:976,1
    - Dst: RangeIterator*::Next
      Src: /src/s2geometry/src/s2/s2loop.cc:977,1
    - Dst: RangeIterator*::id
      Src: /src/s2geometry/src/s2/s2loop.cc:978,1
    - Dst: RangeIterator*::range_max
      Src: /src/s2geometry/src/s2/s2loop.cc:978,1
    - Dst: RangeIterator*::SeekBeyond
      Src: /src/s2geometry/src/s2/s2loop.cc:982,1
    - Dst: LoopCrosser::HasCrossing
      Src: /src/s2geometry/src/s2/s2loop.cc:986,1
    - Dst: RangeIterator*::Next
      Src: /src/s2geometry/src/s2/s2loop.cc:988,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ai
    - bi
    argTypes:
    - RangeIterator*
    - RangeIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 968
    functionDepth: 3
    functionLinenumber: 968
    functionLinenumberEnd: 990
    functionName: LoopCrosser::HasCrossingRelation
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - RangeIterator*::contains_center
    - RangeIterator*::id
    - RangeIterator*::Next
    - RangeIterator*::num_edges
    - RangeIterator*::SeekBeyond
    - LoopCrosser::HasCrossing
    - RangeIterator*::range_max
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool LoopCrosser::HasCrossingRelation(RangeIterator* ai, RangeIterator*
      bi)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RangeIterator::Done
      Src: /src/s2geometry/src/s2/s2loop.cc:999,1
    - Dst: Done
      Src: /src/s2geometry/src/s2/s2loop.cc:999,1
    - Dst: RangeIterator::range_max
      Src: /src/s2geometry/src/s2/s2loop.cc:1000,1
    - Dst: range_min
      Src: /src/s2geometry/src/s2/s2loop.cc:1000,1
    - Dst: RangeIterator::SeekTo
      Src: /src/s2geometry/src/s2/s2loop.cc:1002,1
    - Dst: range_max
      Src: /src/s2geometry/src/s2/s2loop.cc:1003,1
    - Dst: RangeIterator::range_min
      Src: /src/s2geometry/src/s2/s2loop.cc:1003,1
    - Dst: SeekTo
      Src: /src/s2geometry/src/s2/s2loop.cc:1005,1
    - Dst: RangeIterator::id
      Src: /src/s2geometry/src/s2/s2loop.cc:1008,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2loop.cc:1008,1
    - Dst: LoopCrosser::HasCrossingRelation
      Src: /src/s2geometry/src/s2/s2loop.cc:1011,1
    - Dst: LoopCrosser::HasCrossingRelation
      Src: /src/s2geometry/src/s2/s2loop.cc:1014,1
    - Dst: RangeIterator::contains_center
      Src: /src/s2geometry/src/s2/s2loop.cc:1018,1
    - Dst: LoopCrosser::a_crossing_target
      Src: /src/s2geometry/src/s2/s2loop.cc:1018,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2loop.cc:1019,1
    - Dst: LoopCrosser::b_crossing_target
      Src: /src/s2geometry/src/s2/s2loop.cc:1019,1
    - Dst: RangeIterator::num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:1023,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:1023,1
    - Dst: LoopCrosser::CellCrossesCell
      Src: /src/s2geometry/src/s2/s2loop.cc:1024,1
    - Dst: RangeIterator::clipped
      Src: /src/s2geometry/src/s2/s2loop.cc:1024,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2loop.cc:1024,1
    - Dst: RangeIterator::Next
      Src: /src/s2geometry/src/s2/s2loop.cc:1027,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2loop.cc:1028,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - relation
    argTypes:
    - S2Loop
    - S2Loop
    - LoopRelation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 992
    functionDepth: 4
    functionLinenumber: 992
    functionLinenumberEnd: 1033
    functionName: S2Loop::HasCrossingRelation
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - RangeIterator::clipped
    - num_edges
    - LoopCrosser::CellCrossesCell
    - range_max
    - SeekTo
    - LoopCrosser::b_crossing_target
    - id
    - range_min
    - LoopCrosser::HasCrossingRelation
    - RangeIterator::num_edges
    - RangeIterator::range_max
    - RangeIterator::id
    - RangeIterator::contains_center
    - RangeIterator::Next
    - clipped
    - contains_center
    - LoopCrosser::a_crossing_target
    - RangeIterator::Done
    - Done
    - RangeIterator::SeekTo
    - Next
    - RangeIterator::range_min
    linkageType: ''
    returnType: bool
    signature: "bool S2Loop::HasCrossingRelation(const S2Loop& a, const S2Loop& b,\n
      \                                           LoopRelation* relation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1038
    functionName: ContainsRelation::ContainsRelation
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ContainsRelation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1039
    functionName: ContainsRelation::found_shared_vertex
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool found_shared_vertex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1043
    functionName: ContainsRelation::a_crossing_target
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int a_crossing_target() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1044
    functionName: ContainsRelation::b_crossing_target
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_crossing_target() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::WedgeContains
      Src: /src/s2geometry/src/s2/s2loop.cc:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b0'
    - ' b2'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1046
    functionDepth: 2
    functionLinenumber: 1046
    functionLinenumberEnd: 1050
    functionName: ContainsRelation::WedgesCross
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2::WedgeContains
    linkageType: ''
    returnType: bool
    signature: "bool WedgesCross(const S2Point& a0, const S2Point& ab1, const S2Point&
      a2,\n                   const S2Point& b0, const S2Point& b2) override"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1072,1
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1075,1
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1075,1
    - Dst: S2Loop::is_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1076,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1076,1
    - Dst: ContainsRelation::ContainsRelation
      Src: /src/s2geometry/src/s2/s2loop.cc:1081,1
    - Dst: S2Loop::HasCrossingRelation
      Src: /src/s2geometry/src/s2/s2loop.cc:1082,1
    - Dst: ContainsRelation::found_shared_vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1086,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1091,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1091,1
    - Dst: subregion_bound_::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1095,1
    - Dst: bound_::Union
      Src: /src/s2geometry/src/s2/s2loop.cc:1096,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1097,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1097,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1056
    functionDepth: 5
    functionLinenumber: 1056
    functionLinenumberEnd: 1101
    functionName: S2Loop::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 15
    functionsReached:
    - S2Loop::is_empty
    - subregion_bound_::Contains
    - ContainsRelation::found_shared_vertex
    - bound_::Union
    - S2Loop::HasCrossingRelation
    - vertex
    - S2Loop::is_full
    - ContainsRelation::ContainsRelation
    - S2Loop::Contains
    - S2Loop::is_empty_or_full
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::Contains(const S2Loop& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: IntersectsRelation::IntersectsRelation
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntersectsRelation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1107
    functionName: IntersectsRelation::found_shared_vertex
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool found_shared_vertex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1111
    functionName: IntersectsRelation::a_crossing_target
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int a_crossing_target() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1112
    functionName: IntersectsRelation::b_crossing_target
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_crossing_target() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::WedgeIntersects
      Src: /src/s2geometry/src/s2/s2loop.cc:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b0'
    - ' b2'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1118
    functionName: IntersectsRelation::WedgesCross
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2::WedgeIntersects
    linkageType: ''
    returnType: bool
    signature: "bool WedgesCross(const S2Point& a0, const S2Point& ab1, const S2Point&
      a2,\n                   const S2Point& b0, const S2Point& b2) override"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Intersects
      Src: /src/s2geometry/src/s2/s2loop.cc:1128,1
    - Dst: IntersectsRelation::IntersectsRelation
      Src: /src/s2geometry/src/s2/s2loop.cc:1132,1
    - Dst: S2Loop::HasCrossingRelation
      Src: /src/s2geometry/src/s2/s2loop.cc:1133,1
    - Dst: IntersectsRelation::found_shared_vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1134,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1144,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/s2loop.cc:1144,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1145,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1145,1
    - Dst: subregion_bound_::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1148,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1149,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1124
    functionDepth: 5
    functionLinenumber: 1124
    functionLinenumberEnd: 1152
    functionName: S2Loop::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - subregion_bound_::Contains
    - S2Loop::Intersects
    - S2Loop::HasCrossingRelation
    - IntersectsRelation::found_shared_vertex
    - vertex
    - Union
    - S2Loop::Contains
    - IntersectsRelation::IntersectsRelation
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::Intersects(const S2Loop& b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2loop.cc:1165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b2'
    - reverse_b
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1167
    functionName: WedgeContainsSemiwedge
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - s2pred::OrderedCCW
    linkageType: ''
    returnType: bool
    signature: "bool WedgeContainsSemiwedge(const S2Point& a0, const S2Point& ab1,\n
      \                                         const S2Point& a2, const S2Point&
      b2,\n                                          bool reverse_b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reverse_b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1175
    functionName: CompareBoundaryRelation::CompareBoundaryRelation
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CompareBoundaryRelation(bool reverse_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1176
    functionName: CompareBoundaryRelation::found_shared_vertex
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool found_shared_vertex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1177
    functionName: CompareBoundaryRelation::contains_edge
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool contains_edge() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1190
    functionName: CompareBoundaryRelation::a_crossing_target
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int a_crossing_target() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1191
    functionDepth: 0
    functionLinenumber: 1191
    functionLinenumberEnd: 1191
    functionName: CompareBoundaryRelation::b_crossing_target
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_crossing_target() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WedgeContainsSemiwedge
      Src: /src/s2geometry/src/s2/s2loop.cc:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ' a0'
    - ' ab1'
    - ' a2'
    - ' b0'
    - ' b2'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1193
    functionDepth: 2
    functionLinenumber: 1193
    functionLinenumberEnd: 1204
    functionName: CompareBoundaryRelation::WedgesCross
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - WedgeContainsSemiwedge
    linkageType: ''
    returnType: bool
    signature: "bool WedgesCross(const S2Point& a0, const S2Point& ab1, const S2Point&
      a2,\n                   const S2Point& b0, const S2Point& b2) override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop.cc:1214,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1214,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1214,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop.cc:1215,1
    - Dst: S2Loop::is_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1215,1
    - Dst: S2Loop::is_hole
      Src: /src/s2geometry/src/s2/s2loop.cc:1215,1
    - Dst: S2Loop::Intersects
      Src: /src/s2geometry/src/s2/s2loop.cc:1218,1
    - Dst: S2Loop::is_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1221,1
    - Dst: S2Loop::is_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1222,1
    - Dst: S2Loop::is_hole
      Src: /src/s2geometry/src/s2/s2loop.cc:1226,1
    - Dst: S2Loop::HasCrossingRelation
      Src: /src/s2geometry/src/s2/s2loop.cc:1227,1
    - Dst: CompareBoundaryRelation::found_shared_vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1228,1
    - Dst: CompareBoundaryRelation::contains_edge
      Src: /src/s2geometry/src/s2/s2loop.cc:1229,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1234,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1213
    functionDepth: 6
    functionLinenumber: 1213
    functionLinenumberEnd: 1235
    functionName: S2Loop::CompareBoundary
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2Loop::is_empty
    - CompareBoundaryRelation::found_shared_vertex
    - S2Loop::Intersects
    - S2Loop::is_hole
    - S2Loop::HasCrossingRelation
    - vertex
    - CompareBoundaryRelation::contains_edge
    - S2Loop::is_full
    - S2Loop::Contains
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int S2Loop::CompareBoundary(const S2Loop& b) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1238,1
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1244,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1244,1
    - Dst: S2Loop::is_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1245,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1245,1
    - Dst: S2Loop::FindVertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1250,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1250,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1253,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1253,1
    - Dst: S2::WedgeContains
      Src: /src/s2geometry/src/s2/s2loop.cc:1257,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1257,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1257,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1257,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1257,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1237
    functionDepth: 2
    functionLinenumber: 1237
    functionLinenumberEnd: 1259
    functionName: S2Loop::ContainsNested
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2Loop::is_empty
    - S2Loop::FindVertex
    - vertex
    - S2Loop::num_vertices
    - S2::WedgeContains
    - S2Loop::is_full
    - S2Loop::Contains
    - S2Loop::is_empty_or_full
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::ContainsNested(const S2Loop& b) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1262,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1262,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1263,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1264,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1267
    functionName: S2Loop::Equals
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 2
    functionsReached:
    - vertex
    - S2Loop::num_vertices
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::Equals(const S2Loop& b) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1270,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1270,1
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1274,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1274,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1274,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1276,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1277,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1277,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1279,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1280,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Loop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1286
    functionName: S2Loop::BoundaryEquals
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2Loop::is_empty
    - S2Loop::num_vertices
    - S2Loop::is_empty_or_full
    - vertex
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::BoundaryEquals(const S2Loop& b) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1289,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1289,1
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1293,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1293,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1293,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1295,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2loop.cc:1296,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1296,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1296,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1298,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2loop.cc:1299,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1299,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - ' b'
    - max_error
    argTypes:
    - S2Loop
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1310
    functionName: S2Loop::BoundaryApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2Loop::is_empty
    - S2::ApproxEquals
    - vertex
    - S2Loop::num_vertices
    - S2Loop::is_empty_or_full
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::BoundaryApproxEquals(const S2Loop& b, S1Angle max_error)
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop.cc:1327,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2loop.cc:1327,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1328,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2loop.cc:1329,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2loop.cc:1330,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2loop.cc:1331,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1332,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1332,1
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2loop.cc:1335,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2loop.cc:1335,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1341,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1341,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1343,1
    - Dst: flat_hash_set::contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1343,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2loop.cc:1343,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2loop.cc:1344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1345,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop.cc:1346,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2loop.cc:1346,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1348,1
    - Dst: flat_hash_set::contains
      Src: /src/s2geometry/src/s2/s2loop.cc:1348,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2loop.cc:1348,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2loop.cc:1349,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1349,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1349,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1350,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop.cc:1351,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2loop.cc:1351,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - a_offset
    - max_error
    argTypes:
    - S2Loop
    - S2Loop
    - int
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1355
    functionName: MatchBoundaries
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - num_vertices
    - S2::GetDistance
    - vector::pop_back
    - vector::back
    - vertex
    - vector::empty
    - std::make_pair
    - flat_hash_set::insert
    - flat_hash_set::contains
    linkageType: ''
    returnType: bool
    signature: "bool MatchBoundaries(const S2Loop& a, const S2Loop& b, int a_offset,\n
      \                           S1Angle max_error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1359,1
    - Dst: S2Loop::is_empty_or_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1359,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1360,1
    - Dst: S2Loop::is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1360,1
    - Dst: S2Loop::is_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1360,1
    - Dst: S2Loop::is_full
      Src: /src/s2geometry/src/s2/s2loop.cc:1360,1
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1363,1
    - Dst: MatchBoundaries
      Src: /src/s2geometry/src/s2/s2loop.cc:1364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - ' b'
    - max_error
    argTypes:
    - S2Loop
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1357
    functionDepth: 2
    functionLinenumber: 1357
    functionLinenumberEnd: 1367
    functionName: S2Loop::BoundaryNear
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2Loop::is_empty
    - S2Loop::num_vertices
    - MatchBoundaries
    - S2Loop::is_full
    - S2Loop::is_empty_or_full
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::BoundaryNear(const S2Loop& b, S1Angle max_error) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1370,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2loop.cc:1371,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/s2loop.cc:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - S2XYZFaceSiTi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1369
    functionDepth: 4
    functionLinenumber: 1369
    functionLinenumberEnd: 1375
    functionName: S2Loop::GetXYZFaceSiTiVertices
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2::XYZtoFaceSiTi
    - vertex
    - S2Loop::num_vertices
    linkageType: ''
    returnType: void
    signature: void S2Loop::GetXYZFaceSiTiVertices(S2XYZFaceSiTi* vertices) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2loop.cc:1381,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2loop.cc:1382,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2loop.cc:1384,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2loop.cc:1384,1
    - Dst: S2Loop::GetCompressedEncodingProperties
      Src: /src/s2geometry/src/s2/s2loop.cc:1387,1
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2loop.cc:1391,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2loop.cc:1392,1
    - Dst: std::bitset::to_ulong
      Src: /src/s2geometry/src/s2/s2loop.cc:1392,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2loop.cc:1393,1
    - Dst: std::bitset::test
      Src: /src/s2geometry/src/s2/s2loop.cc:1394,1
    - Dst: S2Loop::Encode
      Src: /src/s2geometry/src/s2/s2loop.cc:1395,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2loop.cc:1397,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2loop.cc:1397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - encoder
    - vertices
    - snap_level
    argTypes:
    - Encoder*
    - S2XYZFaceSiTi*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1377
    functionDepth: 4
    functionLinenumber: 1377
    functionLinenumberEnd: 1398
    functionName: S2Loop::EncodeCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - Encoder*::put_varint32
    - S2EncodePointsCompressed
    - std::bitset::to_ulong
    - std::bitset::test
    - MakeSpan
    - S2Loop::GetCompressedEncodingProperties
    - Encoder*::Ensure
    - S2Loop::Encode
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: "void S2Loop::EncodeCompressed(Encoder* encoder, const S2XYZFaceSiTi*
      vertices,\n                              int snap_level) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2loop.cc:1404,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/s2loop.cc:1408,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2loop.cc:1408,1
    - Dst: S2Loop::ClearIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:1412,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2loop.cc:1414,1
    - Dst: S2DecodePointsCompressed
      Src: /src/s2geometry/src/s2/s2loop.cc:1416,1
    - Dst: MakeSpan
      Src: /src/s2geometry/src/s2/s2loop.cc:1417,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2loop.cc:1417,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2loop.cc:1421,1
    - Dst: std::bitset::test
      Src: /src/s2geometry/src/s2/s2loop.cc:1425,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2loop.cc:1428,1
    - Dst: std::bitset::test
      Src: /src/s2geometry/src/s2/s2loop.cc:1433,1
    - Dst: S2Loop::Decode
      Src: /src/s2geometry/src/s2/s2loop.cc:1434,1
    - Dst: S2LatLngRectBounder::ExpandForSubregions
      Src: /src/s2geometry/src/s2/s2loop.cc:1437,1
    - Dst: S2Loop::InitBound
      Src: /src/s2geometry/src/s2/s2loop.cc:1439,1
    - Dst: S2Loop::InitIndex
      Src: /src/s2geometry/src/s2/s2loop.cc:1441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - decoder
    - snap_level
    argTypes:
    - Decoder*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1400
    functionDepth: 4
    functionLinenumber: 1400
    functionLinenumberEnd: 1443
    functionName: S2Loop::DecodeCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - S2LatLngRectBounder::ExpandForSubregions
    - MakeS2PointArrayForOverwrite
    - get
    - static_cast<uint32_t>
    - std::bitset::test
    - Decoder*::get_varint32
    - MakeSpan
    - S2Loop::InitIndex
    - S2DecodePointsCompressed
    - S2Loop::InitBound
    - S2Loop::Decode
    - S2Loop::ClearIndex
    - absl::GetFlag
    linkageType: ''
    returnType: bool
    signature: bool S2Loop::DecodeCompressed(Decoder* decoder, int snap_level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::bitset::set
      Src: /src/s2geometry/src/s2/s2loop.cc:1448,1
    - Dst: std::bitset::set
      Src: /src/s2geometry/src/s2/s2loop.cc:1460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1463
    functionName: S2Loop::GetCompressedEncodingProperties
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - std::bitset::set
    linkageType: ''
    returnType: std::bitset<kNumProperties>
    signature: std::bitset<kNumProperties> S2Loop::GetCompressedEncodingProperties()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2loop.cc:1468,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2loop.cc:1468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' center'
    - radius
    - num_vertices
    argTypes:
    - S2Point
    - S1Angle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1466
    functionDepth: 2
    functionLinenumber: 1466
    functionLinenumberEnd: 1469
    functionName: S2Loop::MakeRegularLoop
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 45
    functionsReached:
    - S2Loop::MakeRegularLoop
    - S2::GetFrame
    linkageType: ''
    returnType: unique_ptr<S2Loop>
    signature: "unique_ptr<S2Loop> S2Loop::MakeRegularLoop(const S2Point& center,\n
      \                                          S1Angle radius, int num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::SinCos
      Src: /src/s2geometry/src/s2/s2loop.cc:1478,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2loop.cc:1483,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2loop.cc:1485,1
    - Dst: S1Angle::SinCos
      Src: /src/s2geometry/src/s2/s2loop.cc:1486,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2loop.cc:1488,1
    - Dst: S2::FromFrame
      Src: /src/s2geometry/src/s2/s2loop.cc:1488,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2loop.cc:1490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' frame'
    - radius
    - num_vertices
    argTypes:
    - Matrix3x3_d
    - S1Angle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1491
    functionName: S2Loop::MakeRegularLoop
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 45
    functionsReached:
    - vector::push_back
    - make_unique<S2Loop>
    - S1Angle::SinCos
    - vector::reserve
    - S1Angle::Radians
    - S2::FromFrame
    linkageType: ''
    returnType: unique_ptr<S2Loop>
    signature: "unique_ptr<S2Loop> S2Loop::MakeRegularLoop(const Matrix3x3_d& frame,\n
      \                                          S1Angle radius, int num_vertices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Loop::num_vertices
      Src: /src/s2geometry/src/s2/s2loop.cc:1495,1
    - Dst: S2Loop::SpaceUsed
      Src: /src/s2geometry/src/s2/s2loop.cc:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1499
    functionName: S2Loop::SpaceUsed
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 1
    functionsReached:
    - S2Loop::num_vertices
    - S2Loop::SpaceUsed
    linkageType: ''
    returnType: size_t
    signature: size_t S2Loop::SpaceUsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2loop.cc:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1503
    functionName: S2Loop::Shape::num_chains() const
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - is_empty
    linkageType: ''
    returnType: int
    signature: int S2Loop::Shape::num_chains() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop.cc:1506,1
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2loop.cc:1507,1
    - Dst: S2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2loop.cc:1507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1505
    functionDepth: 2
    functionLinenumber: 1505
    functionLinenumberEnd: 1508
    functionName: S2Loop::Shape::chain(int i) const
    functionSourceFile: /src/s2geometry/src/s2/s2loop.cc
    functionUses: 0
    functionsReached:
    - Chain
    - S2LaxPolygonShape::num_edges
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: S2Shape::Chain
    signature: S2Shape::Chain S2Loop::Shape::chain(int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:74,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:75,1
    - Dst: center::lat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:75,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:76,1
    - Dst: center::lat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:76,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:82,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:82,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:82,1
    - Dst: Normalized
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:83,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:87,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:87,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:87,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:90,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:90,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - vertices_per_loop
    - ring_specs
    argTypes:
    - int
    - Span<const RingSpec>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: RingShape
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - std::reverse
    - make_unique<S2LaxPolygonShape>
    - Normalized
    - std::move
    - vector::end
    - ABSL_CHECK_GT
    - std::fabs
    - S2LatLng::FromDegrees
    - vector::begin
    - sin
    - center::lat
    - ABSL_CHECK_LT
    - cos
    linkageType: ''
    returnType: unique_ptr<S2LaxPolygonShape>
    signature: "unique_ptr<S2LaxPolygonShape> RingShape(int vertices_per_loop,\n                                        Span<const
      RingSpec> ring_specs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: deg2rad
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:131,1
    - Dst: deg2rad
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:132,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:134,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:135,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:136,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:137,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:146,1
    - Dst: center::lat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:147,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:148,1
    - Dst: center::lat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:149,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:155,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:156,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:159,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:161,1
    - Dst: Normalized
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:163,1
    - Dst: Normalized
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:165,1
    - Dst: std::rotate
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:170,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:170,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:170,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:170,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:174,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:174,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:174,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:177,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:177,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - vertices_per_loop
    - specs
    argTypes:
    - int
    - Span<const ArcSpec>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 180
    functionName: ArcShape
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - std::rotate
    - std::reverse
    - make_unique<S2LaxPolygonShape>
    - Normalized
    - std::move
    - vector::end
    - ABSL_CHECK_EQ
    - deg2rad
    - ABSL_CHECK_GT
    - vector::begin
    - S2LatLng::FromDegrees
    - sin
    - vector::emplace_back
    - center::lat
    - ABSL_CHECK_LT
    - cos
    linkageType: ''
    returnType: unique_ptr<S2LaxPolygonShape>
    signature: "unique_ptr<S2LaxPolygonShape> ArcShape(int vertices_per_loop,\n                                       Span<const
      ArcSpec> specs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:74,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:75,1
    - Dst: center::lat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:75,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:76,1
    - Dst: center::lat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:76,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:82,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:82,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:82,1
    - Dst: Normalized
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:83,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:87,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:87,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:87,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:90,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:90,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - vertices_per_loop
    - ring_specs
    argTypes:
    - int
    - Span<const RingSpec>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: RingShape
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - std::reverse
    - make_unique<S2LaxPolygonShape>
    - Normalized
    - std::move
    - vector::end
    - ABSL_CHECK_GT
    - std::fabs
    - S2LatLng::FromDegrees
    - vector::begin
    - sin
    - center::lat
    - ABSL_CHECK_LT
    - cos
    linkageType: ''
    returnType: unique_ptr<S2LaxPolygonShape>
    signature: "unique_ptr<S2LaxPolygonShape> RingShape(int vertices_per_loop,\n                                        Span<const
      RingSpec> ring_specs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: deg2rad
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:131,1
    - Dst: deg2rad
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:132,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:134,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:135,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:136,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:137,1
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:146,1
    - Dst: center::lat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:147,1
    - Dst: ABSL_CHECK_GT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:148,1
    - Dst: center::lat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:149,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:155,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:156,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:159,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:161,1
    - Dst: Normalized
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:163,1
    - Dst: Normalized
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:165,1
    - Dst: std::rotate
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:170,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:170,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:170,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:170,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:174,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:174,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:174,1
    - Dst: vector::emplace_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:177,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:177,1
    - Dst: make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - vertices_per_loop
    - specs
    argTypes:
    - int
    - Span<const ArcSpec>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 180
    functionName: ArcShape
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - std::rotate
    - std::reverse
    - make_unique<S2LaxPolygonShape>
    - Normalized
    - std::move
    - vector::end
    - ABSL_CHECK_EQ
    - deg2rad
    - ABSL_CHECK_GT
    - vector::begin
    - S2LatLng::FromDegrees
    - sin
    - vector::emplace_back
    - center::lat
    - ABSL_CHECK_LT
    - cos
    linkageType: ''
    returnType: unique_ptr<S2LaxPolygonShape>
    signature: "unique_ptr<S2LaxPolygonShape> ArcShape(int vertices_per_loop,\n                                       Span<const
      ArcSpec> specs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:186,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:188,1
    - Dst: RingShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:188,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:188,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:193,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:193,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:194,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:194,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:195,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:195,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:196,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:196,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:197,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 198
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - RingShape
    - S2ShapeNestingQuery::ComputeShapeNesting
    - is_hole
    - holes
    - EXPECT_TRUE
    - EXPECT_LT
    - is_shell
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLng::FromDegrees
    - parent_id
    - EXPECT_EQ
    - vector::size
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeNestingQuery, OneChainAlwaysShell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:202,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:206,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:207,1
    - Dst: RingShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:208,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:215,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:215,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:216,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:216,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:217,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:217,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:218,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:218,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:219,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:219,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:222,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:223,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:224,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:227,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:228,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:228,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:233,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:234,1
    - Dst: RingShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:235,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:242,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:242,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:243,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:243,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:244,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:244,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:245,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:245,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:246,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:246,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:249,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:249,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:250,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:251,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:251,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:254,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:255,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:255,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:261,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:262,1
    - Dst: RingShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:263,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:270,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:270,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:272,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:272,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:273,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:273,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:274,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:275,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 278
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - RingShape
    - S2ShapeNestingQuery::ComputeShapeNesting
    - is_hole
    - holes
    - EXPECT_TRUE
    - EXPECT_LT
    - is_shell
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLng::FromDegrees
    - parent_id
    - EXPECT_EQ
    - vector::size
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeNestingQuery, TwoChainsFormPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:283,1
    - Dst: P
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:293,1
    - Dst: P
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:293,1
    - Dst: P
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:293,1
    - Dst: P
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:293,1
    - Dst: P
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:294,1
    - Dst: P
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:294,1
    - Dst: P
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:294,1
    - Dst: P
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:294,1
    - Dst: P
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:294,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:297,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:298,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:300,1
    - Dst: std::make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:300,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:301,1
    - Dst: std::make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:301,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:304,1
    - Dst: S2Polygon::GetParent
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:305,1
    - Dst: S2Polygon::GetParent
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:305,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:307,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:308,1
    - Dst: std::make_unique<S2LaxPolygonShape>
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:308,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:312,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:315,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:315,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:316,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:316,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:317,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:317,1
    - Dst: std::rotate
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:319,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:319,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:319,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:319,1
    - Dst: std::rotate
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:321,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:321,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:321,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 323
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2ShapeNestingQuery::ComputeShapeNesting
    - std::rotate
    - std::vector::size
    - EXPECT_TRUE
    - end
    - std::make_unique<S2Loop>
    - is_shell
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLng::FromDegrees
    - S2Polygon::GetParent
    - begin
    - std::vector::emplace_back
    - EXPECT_EQ
    - vector::size
    - MutableS2ShapeIndex::Add
    - P
    - std::make_unique<S2LaxPolygonShape>
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeNestingQuery, TwoChainsWithSharedVertex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:327,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:330,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:331,1
    - Dst: RingShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:332,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:335,1
    - Dst: S2ShapeNestingQuery::Options::set_datum_strategy
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:336,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:343,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:343,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:344,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:344,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:345,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:345,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:346,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:346,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:347,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 348
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - RingShape
    - S2ShapeNestingQuery::ComputeShapeNesting
    - is_hole
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - is_shell
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ShapeNestingQuery::Options::set_datum_strategy
    - S2LatLng::FromDegrees
    - EXPECT_EQ
    - vector::size
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeNestingQuery, CanSetDatumShellOption)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:354,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:355,1
    - Dst: RingShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:356,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:356,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:357,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:358,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:359,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:360,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:367,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:367,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:368,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:368,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:369,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:369,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:370,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:371,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:376,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:376,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:378,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:378,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:379,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:379,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:380,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:381,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 383
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - RingShape
    - S2ShapeNestingQuery::ComputeShapeNesting
    - is_hole
    - holes
    - EXPECT_TRUE
    - EXPECT_LT
    - is_shell
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLng::FromDegrees
    - parent_id
    - EXPECT_EQ
    - vector::size
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeNestingQuery, ShellCanHaveMultipleHoles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:387,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:396,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:398,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:399,1
    - Dst: ArcShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:399,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:408,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:410,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:410,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:411,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:411,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:412,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:412,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:413,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:413,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:414,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:414,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:415,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:415,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:416,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 419
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - is_hole
    - S2ShapeNestingQuery::ComputeShapeNesting
    - EXPECT_TRUE
    - is_shell
    - ArcShape
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ABSL_CHECK_EQ
    - ABSL_VLOG
    - S2LatLng::FromDegrees
    - parent_id
    - EXPECT_EQ
    - vector::size
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ShapeNestingQuery, ExactPathIsIrrelevant)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:431,1
    - Dst: GetParam
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:433,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:436,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:443,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:447,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:448,1
    - Dst: std::shuffle
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:449,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:449,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:449,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:452,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:453,1
    - Dst: RingShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:453,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:457,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:458,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:458,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:464,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:464,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:465,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:465,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:466,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:466,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:471,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:471,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:472,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:473,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:473,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:476,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:476,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:477,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:478,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:478,1
    - Dst: is_shell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:488,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:490,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:491,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:491,1
    - Dst: is_hole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:495,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:497,1
    - Dst: holes
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:498,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:499,1
    - Dst: std::find
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:499,1
    - Dst: absl::Span::begin
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:499,1
    - Dst: absl::Span::end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:499,1
    - Dst: absl::Span::end
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:504,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 505
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::end
    - GetParam
    - parent_id
    - vector::size
    - RingShape
    - S2ShapeNestingQuery::ComputeShapeNesting
    - ABSL_CHECK_EQ
    - EXPECT_NE
    - EXPECT_EQ
    - absl::Span::end
    - vector::begin
    - MutableS2ShapeIndex::Add
    - vector::push_back
    - holes
    - is_hole
    - EXPECT_TRUE
    - is_shell
    - std::shuffle
    - absl::Span::begin
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLng::FromDegrees
    - std::find
    - absl::LogInfoStreamer
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(NestingTest, NestedChainsPartitionCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:528,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:530,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:531,1
    - Dst: RingShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:532,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:532,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:533,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:534,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:535,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:536,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:537,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:542,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 545
    functionName: BM_ShapeNestingQueryButtonLoop
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - RingShape
    - S2ShapeNestingQuery::ComputeShapeNesting
    - MutableS2ShapeIndex::ForceBuild
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLng::FromDegrees
    - benchmark::DoNotOptimize
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_ShapeNestingQueryButtonLoop(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:554,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:560,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:560,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:563,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:564,1
    - Dst: RingShape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:564,1
    - Dst: MutableS2ShapeIndex::ForceBuild
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:565,1
    - Dst: S2ShapeNestingQuery::ComputeShapeNesting
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:570,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 573
    functionName: BM_ShapeNestingQueryChainScaling
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - RingShape
    - MutableS2ShapeIndex::ForceBuild
    - S2ShapeNestingQuery::ComputeShapeNesting
    - range
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2LatLng::FromDegrees
    - benchmark::DoNotOptimize
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void BM_ShapeNestingQueryChainScaling(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::TaggedShapeFactory::size
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: s2shapeutil::TaggedShapeFactory::size
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 1
    functionsReached:
    - s2shapeutil::TaggedShapeFactory::size
    linkageType: ''
    returnType: int
    signature: int size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<TaggedShapeFactory>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: s2shapeutil::TaggedShapeFactory::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - std::make_unique<TaggedShapeFactory>
    linkageType: ''
    returnType: std::unique_ptr<ShapeFactory>
    signature: std::unique_ptr<ShapeFactory> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::VectorShapeFactory::size
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: s2shapeutil::VectorShapeFactory::size
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 1
    functionsReached:
    - s2shapeutil::VectorShapeFactory::size
    linkageType: ''
    returnType: int
    signature: int size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<VectorShapeFactory>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: s2shapeutil::VectorShapeFactory::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - std::make_unique<VectorShapeFactory>
    linkageType: ''
    returnType: std::unique_ptr<ShapeFactory>
    signature: std::unique_ptr<ShapeFactory> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: s2shapeutil::WrappedShapeFactory::WrappedShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void WrappedShapeFactory(\n      const S2ShapeIndex* absl_nonnull
      index ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: s2shapeutil::WrappedShapeFactory::size
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - num_shape_ids
    linkageType: ''
    returnType: int
    signature: int size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<WrappedShapeFactory>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: s2shapeutil::WrappedShapeFactory::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - std::make_unique<WrappedShapeFactory>
    linkageType: ''
    returnType: std::unique_ptr<ShapeFactory>
    signature: std::unique_ptr<ShapeFactory> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::HomogeneousShapeFactory::size
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: s2shapeutil::HomogeneousShapeFactory::size
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 1
    functionsReached:
    - s2shapeutil::HomogeneousShapeFactory::size
    linkageType: ''
    returnType: int
    signature: int size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HomogeneousShapeFactory>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: s2shapeutil::HomogeneousShapeFactory::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - std::make_unique<HomogeneousShapeFactory>
    linkageType: ''
    returnType: std::unique_ptr<ShapeFactory>
    signature: std::unique_ptr<ShapeFactory> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::StringVectorEncoder::StringVectorEncoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:283,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:285,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:286,1
    - Dst: s2coding::StringVectorEncoder::AddViaEncoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:286,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' index'
    - encoder
    - hint
    argTypes:
    - S2ShapeIndex
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: s2shapeutil::EncodeHomogeneousShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - s2coding::StringVectorEncoder::Encode
    - down_cast
    - s2coding::StringVectorEncoder::AddViaEncoder
    - s2coding::StringVectorEncoder::StringVectorEncoder
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void EncodeHomogeneousShapes(const S2ShapeIndex& index, Encoder* encoder,\n
      \                            s2coding::CodingHint hint)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:293,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: s2shapeutil::HomogeneousShapeFactory<Shape>::HomogeneousShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - Init
    - Clear
    linkageType: ''
    returnType: void
    signature: void HomogeneousShapeFactory<Shape>::HomogeneousShapeFactory(Decoder*
      decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDecoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:299,1
    - Dst: std::make_unique<Shape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:300,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:301,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: "HomogeneousShapeFactory<Shape>::operator[](\n    int shape_id)
      const"
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - GetDecoder
    - std::move
    - std::make_unique<Shape>
    - auto::Init
    linkageType: ''
    returnType: std::unique_ptr<S2Shape>
    signature: "std::unique_ptr<S2Shape> HomogeneousShapeFactory<Shape>::operator[](\n
      \   int shape_id) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::TaggedShapeFactory::size
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: s2shapeutil::TaggedShapeFactory::size
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 2
    functionsReached:
    - s2shapeutil::TaggedShapeFactory::size
    linkageType: ''
    returnType: int
    signature: int size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<TaggedShapeFactory>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: s2shapeutil::TaggedShapeFactory::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - std::make_unique<TaggedShapeFactory>
    linkageType: ''
    returnType: std::unique_ptr<ShapeFactory>
    signature: std::unique_ptr<ShapeFactory> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::VectorShapeFactory::size
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: s2shapeutil::VectorShapeFactory::size
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 2
    functionsReached:
    - s2shapeutil::VectorShapeFactory::size
    linkageType: ''
    returnType: int
    signature: int size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<VectorShapeFactory>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: s2shapeutil::VectorShapeFactory::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - std::make_unique<VectorShapeFactory>
    linkageType: ''
    returnType: std::unique_ptr<ShapeFactory>
    signature: std::unique_ptr<ShapeFactory> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: s2shapeutil::WrappedShapeFactory::WrappedShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void WrappedShapeFactory(\n      const S2ShapeIndex* absl_nonnull
      index ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: s2shapeutil::WrappedShapeFactory::size
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - num_shape_ids
    linkageType: ''
    returnType: int
    signature: int size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<WrappedShapeFactory>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: s2shapeutil::WrappedShapeFactory::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - std::make_unique<WrappedShapeFactory>
    linkageType: ''
    returnType: std::unique_ptr<ShapeFactory>
    signature: std::unique_ptr<ShapeFactory> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::HomogeneousShapeFactory::size
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: s2shapeutil::HomogeneousShapeFactory::size
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 2
    functionsReached:
    - s2shapeutil::HomogeneousShapeFactory::size
    linkageType: ''
    returnType: int
    signature: int size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HomogeneousShapeFactory>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: s2shapeutil::HomogeneousShapeFactory::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - std::make_unique<HomogeneousShapeFactory>
    linkageType: ''
    returnType: std::unique_ptr<ShapeFactory>
    signature: std::unique_ptr<ShapeFactory> Clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::StringVectorEncoder::StringVectorEncoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:283,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:285,1
    - Dst: down_cast
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:286,1
    - Dst: s2coding::StringVectorEncoder::AddViaEncoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:286,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' index'
    - encoder
    - hint
    argTypes:
    - S2ShapeIndex
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: s2shapeutil::EncodeHomogeneousShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - s2coding::StringVectorEncoder::Encode
    - down_cast
    - s2coding::StringVectorEncoder::AddViaEncoder
    - s2coding::StringVectorEncoder::StringVectorEncoder
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void EncodeHomogeneousShapes(const S2ShapeIndex& index, Encoder* encoder,\n
      \                            s2coding::CodingHint hint)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:293,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: s2shapeutil::HomogeneousShapeFactory<Shape>::HomogeneousShapeFactory
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - Init
    - Clear
    linkageType: ''
    returnType: void
    signature: void HomogeneousShapeFactory<Shape>::HomogeneousShapeFactory(Decoder*
      decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDecoder
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:299,1
    - Dst: std::make_unique<Shape>
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:300,1
    - Dst: auto::Init
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:301,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_coding.h:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: "HomogeneousShapeFactory<Shape>::operator[](\n    int shape_id)
      const"
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_coding.h
    functionUses: 0
    functionsReached:
    - GetDecoder
    - std::move
    - std::make_unique<Shape>
    - auto::Init
    linkageType: ''
    returnType: std::unique_ptr<S2Shape>
    signature: "std::unique_ptr<S2Shape> HomogeneousShapeFactory<Shape>::operator[](\n
      \   int shape_id) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2memory_tracker.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: S2MemoryTracker::SetError
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void S2MemoryTracker::SetError(S2Error error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::ResourceExhausted
      Src: /src/s2geometry/src/s2/s2memory_tracker.cc:32,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2memory_tracker.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: S2MemoryTracker::SetLimitExceededError
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.cc
    functionUses: 1
    functionsReached:
    - absl::StrFormat
    - S2Error::ResourceExhausted
    linkageType: ''
    returnType: void
    signature: void S2MemoryTracker::SetLimitExceededError()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.cc:38,1
    - Dst: S2MemoryTracker::Client::Tally
      Src: /src/s2geometry/src/s2/s2memory_tracker.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - delta_bytes
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: S2MemoryTracker::Client::TallyTemp(int64_t delta_bytes)
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.cc
    functionUses: 0
    functionsReached:
    - S2MemoryTracker::Client::Tally
    linkageType: ''
    returnType: bool
    signature: bool S2MemoryTracker::Client::TallyTemp(int64_t delta_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2memory_tracker.cc:43,1
    - Dst: error
      Src: /src/s2geometry/src/s2/s2memory_tracker.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: '& S2MemoryTracker::Client::error() const'
    functionSourceFile: /src/s2geometry/src/s2/s2memory_tracker.cc
    functionUses: 0
    functionsReached:
    - error
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error & S2MemoryTracker::Client::error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Successor
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:44,1
    - Dst: S2ShapeIndexBufferedRegion::Init
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:45,1
    - Dst: mutable_options
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - index
    - radius
    argTypes:
    - S2ShapeIndex*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: S2ShapeIndexBufferedRegion::Init
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
    functionUses: 2
    functionsReached:
    - mutable_options
    - S1ChordAngle::Successor
    - S2ShapeIndexBufferedRegion::Init
    linkageType: ''
    returnType: void
    signature: "void S2ShapeIndexBufferedRegion::Init(const S2ShapeIndex* index,\n
      \                                     S1ChordAngle radius)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:50,1
    - Dst: S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: S2ShapeIndexBufferedRegion::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
    functionUses: 0
    functionsReached:
    - index
    - S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
    linkageType: ''
    returnType: S2Region
    signature: S2Region * S2ShapeIndexBufferedRegion::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:54,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:54,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:55,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:55,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: S2ShapeIndexBufferedRegion::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - index
    - S2Cap
    - S2ShapeIndexRegion
    - S2Cap::radius
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2ShapeIndexBufferedRegion::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:59,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:59,1
    - Dst: S2LatLngRect::ExpandedByDistance
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:60,1
    - Dst: ToAngle
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: S2ShapeIndexBufferedRegion::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
    functionUses: 0
    functionsReached:
    - ToAngle
    - index
    - S2LatLngRect::ExpandedByDistance
    - S2ShapeIndexRegion
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2ShapeIndexBufferedRegion::GetRectBound() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ToAngle
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:67,1
    - Dst: GetLevelForMinValue
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:68,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:70,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:81,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:81,1
    - Dst: vector<S2CellId>*::clear
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:82,1
    - Dst: is_face
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:84,1
    - Dst: S2Cap::Full
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:85,1
    - Dst: AppendVertexNeighbors
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:87,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:87,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cellids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: S2ShapeIndexBufferedRegion::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
    functionUses: 0
    functionsReached:
    - index
    - is_face
    - vector<S2CellId>*::clear
    - level
    - min
    - S2ShapeIndexRegion
    - AppendVertexNeighbors
    - ToAngle
    - GetLevelForMinValue
    - S2Cap::Full
    linkageType: ''
    returnType: void
    signature: "void S2ShapeIndexBufferedRegion::GetCellUnionBound(vector<S2CellId>
      *cellids)\n    const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Straight
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:93,1
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:101,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:101,1
    - Dst: S2ShapeIndexBufferedRegion::GetCapBound
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:109,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:110,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:114,1
    - Dst: IsDistanceLess
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:115,1
    - Dst: S2Cap::radius
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 116
    functionName: S2ShapeIndexBufferedRegion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
    functionUses: 0
    functionsReached:
    - index
    - S2ShapeIndexBufferedRegion::GetCapBound
    - IsDistanceLess
    - S2ShapeIndexRegion
    - S1ChordAngle::Straight
    - S2Cap::radius
    - GetCenter
    linkageType: ''
    returnType: bool
    signature: bool S2ShapeIndexBufferedRegion::Contains(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsDistanceLess
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: S2ShapeIndexBufferedRegion::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
    functionUses: 0
    functionsReached:
    - IsDistanceLess
    linkageType: ''
    returnType: bool
    signature: bool S2ShapeIndexBufferedRegion::MayIntersect(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsDistanceLess
      Src: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: S2ShapeIndexBufferedRegion::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
    functionUses: 0
    functionsReached:
    - IsDistanceLess
    linkageType: ''
    returnType: bool
    signature: bool S2ShapeIndexBufferedRegion::Contains(const S2Point& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: S2Polyline::S2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Polyline::S2Polyline()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2polyline.cc:84,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2polyline.cc:85,1
    - Dst: vertices_::get
      Src: /src/s2geometry/src/s2/s2polyline.cc:85,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polyline.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: S2Polyline::S2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 61
    functionsReached:
    - vertices_::get
    - MakeS2PointArrayForOverwrite
    - std::copy_n
    - get
    linkageType: ''
    returnType: void
    signature: void S2Polyline::S2Polyline(const S2Polyline& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2polyline.cc:92,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2polyline.cc:93,1
    - Dst: vertices_::get
      Src: /src/s2geometry/src/s2/s2polyline.cc:93,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polyline.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: '& S2Polyline::operator=(const S2Polyline& src)'
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - vertices_::get
    - MakeS2PointArrayForOverwrite
    - std::copy_n
    - get
    linkageType: ''
    returnType: S2Polyline
    signature: S2Polyline & S2Polyline::operator=(const S2Polyline& src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2polyline.cc:99,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline.cc:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: S2Polyline::S2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 61
    functionsReached:
    - std::move
    - std::exchange
    linkageType: ''
    returnType: void
    signature: void S2Polyline::S2Polyline(S2Polyline&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/s2polyline.cc:104,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline.cc:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: '& S2Polyline::operator=(S2Polyline&& other) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - std::move
    - std::exchange
    linkageType: ''
    returnType: S2Polyline
    signature: S2Polyline & S2Polyline::operator=(S2Polyline&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: S2Polyline::S2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Polyline::S2Polyline(Span<const S2Point> vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2LatLng>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: S2Polyline::S2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Polyline::S2Polyline(Span<const S2LatLng> vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::Init
      Src: /src/s2geometry/src/s2/s2polyline.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vertices
    - override
    argTypes:
    - Span<const S2Point>
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: S2Polyline::S2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 61
    functionsReached:
    - S2Polyline::Init
    linkageType: ''
    returnType: void
    signature: "void S2Polyline::S2Polyline(Span<const S2Point> vertices,\n                       S2Debug
      override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::Init
      Src: /src/s2geometry/src/s2/s2polyline.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vertices
    - override
    argTypes:
    - Span<const S2LatLng>
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: S2Polyline::S2Polyline
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 61
    functionsReached:
    - S2Polyline::Init
    linkageType: ''
    returnType: void
    signature: void S2Polyline::S2Polyline(Span<const S2LatLng> vertices, S2Debug
      override)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: S2Polyline::~S2Polyline()
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Polyline::~S2Polyline()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - override
    argTypes:
    - S2Debug
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: S2Polyline::set_s2debug_override
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Polyline::set_s2debug_override(S2Debug override)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: S2Polyline::s2debug_override
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Debug
    signature: S2Debug S2Polyline::s2debug_override() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Span<const S2Point>::size
      Src: /src/s2geometry/src/s2/s2polyline.cc:137,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2polyline.cc:138,1
    - Dst: std::copy_n
      Src: /src/s2geometry/src/s2/s2polyline.cc:139,1
    - Dst: Span<const S2Point>::data
      Src: /src/s2geometry/src/s2/s2polyline.cc:139,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polyline.cc:139,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline.cc:140,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline.cc:141,1
    - Dst: S2Polyline::IsValid
      Src: /src/s2geometry/src/s2/s2polyline.cc:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2Point>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: S2Polyline::Init
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - Span<const S2Point>::size
    - MakeS2PointArrayForOverwrite
    - get
    - Span<const S2Point>::data
    - ABSL_CHECK
    - S2Polyline::IsValid
    - absl::GetFlag
    - std::copy_n
    linkageType: ''
    returnType: void
    signature: void S2Polyline::Init(Span<const S2Point> vertices)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Span<const S2LatLng>::size
      Src: /src/s2geometry/src/s2/s2polyline.cc:146,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2polyline.cc:147,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/s2polyline.cc:149,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline.cc:151,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline.cc:152,1
    - Dst: S2Polyline::IsValid
      Src: /src/s2geometry/src/s2/s2polyline.cc:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - vertices
    argTypes:
    - Span<const S2LatLng>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: S2Polyline::Init
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - Span<const S2LatLng>::size
    - ToPoint
    - MakeS2PointArrayForOverwrite
    - ABSL_CHECK
    - S2Polyline::IsValid
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void S2Polyline::Init(Span<const S2LatLng> vertices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2polyline.cc:157,1
    - Dst: S2CellIdSnapFunction
      Src: /src/s2geometry/src/s2/s2polyline.cc:157,1
    - Dst: S2Polyline::InitFromBuilder
      Src: /src/s2geometry/src/s2/s2polyline.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' polyline'
    - snap_level
    argTypes:
    - S2Polyline
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: S2Polyline::InitToSnapped
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - S2ShapeNestingQuery::Options::Options
    - S2Polyline::InitFromBuilder
    - S2CellIdSnapFunction
    linkageType: ''
    returnType: void
    signature: void S2Polyline::InitToSnapped(const S2Polyline& polyline, int snap_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder::Options::set_simplify_edge_chains
      Src: /src/s2geometry/src/s2/s2polyline.cc:164,1
    - Dst: S2Polyline::InitFromBuilder
      Src: /src/s2geometry/src/s2/s2polyline.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' polyline'
    - ' snap_function'
    argTypes:
    - S2Polyline
    - S2Builder::SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: S2Polyline::InitToSimplified
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - S2Builder::Options::set_simplify_edge_chains
    - S2Polyline::InitFromBuilder
    linkageType: ''
    returnType: void
    signature: "void S2Polyline::InitToSimplified(\n    const S2Polyline& polyline,
      const S2Builder::SnapFunction& snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Builder*::StartLayer
      Src: /src/s2geometry/src/s2/s2polyline.cc:171,1
    - Dst: make_unique<S2PolylineLayer>
      Src: /src/s2geometry/src/s2/s2polyline.cc:171,1
    - Dst: S2Builder*::AddPolyline
      Src: /src/s2geometry/src/s2/s2polyline.cc:172,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polyline.cc:173,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline.cc:174,1
    - Dst: S2Builder*::Build
      Src: /src/s2geometry/src/s2/s2polyline.cc:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' polyline'
    - builder
    argTypes:
    - S2Polyline
    - S2Builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: S2Polyline::InitFromBuilder
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - S2Builder*::AddPolyline
    - ABSL_CHECK
    - S2Builder*::StartLayer
    - S2Builder*::Build
    - make_unique<S2PolylineLayer>
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: "void S2Polyline::InitFromBuilder(const S2Polyline& polyline,\n                                 S2Builder*
      builder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2polyline.cc:178,1
    - Dst: FindValidationError
      Src: /src/s2geometry/src/s2/s2polyline.cc:179,1
    - Dst: ABSL_LOG_IF
      Src: /src/s2geometry/src/s2/s2polyline.cc:180,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline.cc:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: S2Polyline::IsValid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - FindValidationError
    - ABSL_LOG_IF
    - absl::GetFlag
    - S2Error::S2Error
    linkageType: ''
    returnType: bool
    signature: bool S2Polyline::IsValid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:188,1
    - Dst: S2::IsUnitLength
      Src: /src/s2geometry/src/s2/s2polyline.cc:189,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:189,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2polyline.cc:190,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2polyline.cc:191,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:196,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:197,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:197,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2polyline.cc:198,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2polyline.cc:200,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:203,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:203,1
    - Dst: S2Error
      Src: /src/s2geometry/src/s2/s2polyline.cc:204,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/s2polyline.cc:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 211
    functionName: const
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - num_vertices
    - S2Error
    - vertex
    - S2::IsUnitLength
    linkageType: ''
    returnType: bool
    signature: bool const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2polyline.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: S2Polyline::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - S2Polyline::S2Polyline
    linkageType: ''
    returnType: S2Polyline
    signature: S2Polyline * S2Polyline::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2polyline.cc:218,1
    - Dst: S2Polyline::vertices_span
      Src: /src/s2geometry/src/s2/s2polyline.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: S2Polyline::GetLength
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 4
    functionsReached:
    - S2::GetLength
    - S2Polyline::vertices_span
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle S2Polyline::GetLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2polyline.cc:222,1
    - Dst: S2Polyline::vertices_span
      Src: /src/s2geometry/src/s2/s2polyline.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: S2Polyline::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 4
    functionsReached:
    - S2::GetCentroid
    - S2Polyline::vertices_span
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Polyline::GetCentroid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/s2polyline.cc:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: S2Polyline::GetSnapLevel
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 4
    functionsReached:
    - S2::XYZtoFaceSiTi
    linkageType: ''
    returnType: int
    signature: int S2Polyline::GetSnapLevel() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2polyline.cc:244,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:244,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:250,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2polyline.cc:252,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:253,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polyline.cc:254,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:254,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:254,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:257,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:258,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:258,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2polyline.cc:262,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:262,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:262,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:264,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:269,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:270,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - fraction
    - next_vertex
    argTypes:
    - double
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 271
    functionName: S2Polyline::GetSuffix
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 4
    functionsReached:
    - S2::GetPointOnLine
    - S1Angle::S1Angle
    - S2Polyline::num_vertices
    - vertex
    - S1Angle
    - ABSL_DCHECK_GT
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Polyline::GetSuffix(double fraction, int* next_vertex) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::GetSuffix
      Src: /src/s2geometry/src/s2/s2polyline.cc:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fraction
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: S2Polyline::Interpolate
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 4
    functionsReached:
    - S2Polyline::GetSuffix
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Polyline::Interpolate(double fraction) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2polyline.cc:279,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:279,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:280,1
    - Dst: S1Angle::S1Angle
      Src: /src/s2geometry/src/s2/s2polyline.cc:283,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polyline.cc:285,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:285,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:285,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polyline.cc:287,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:287,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:288,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polyline.cc:289,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:289,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:289,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline.cc:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' point'
    - next_vertex
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: S2Polyline::UnInterpolate
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - S1Angle::S1Angle
    - S2Polyline::num_vertices
    - min
    - vertex
    - S1Angle
    - ABSL_DCHECK_GT
    linkageType: ''
    returnType: double
    signature: double S2Polyline::UnInterpolate(const S2Point& point, int next_vertex)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2polyline.cc:297,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:297,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:299,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:302,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:306,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:310,1
    - Dst: S2::GetDistance
      Src: /src/s2geometry/src/s2/s2polyline.cc:311,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:311,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:312,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2polyline.cc:318,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2polyline.cc:322,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:322,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:322,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ' point'
    - next_vertex
    argTypes:
    - S2Point
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 326
    functionName: S2Polyline::Project
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - S2::GetDistance
    - ABSL_DCHECK_NE
    - S2Polyline::num_vertices
    - S1Angle::Radians
    - vertex
    - S2::Project
    - ABSL_DCHECK_GT
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2Polyline::Project(const S2Point& point, int* next_vertex)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2polyline.cc:329,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:329,1
    - Dst: S2Polyline::Project
      Src: /src/s2geometry/src/s2/s2polyline.cc:332,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2polyline.cc:334,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2polyline.cc:335,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:335,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:340,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:341,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:342,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2polyline.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:344,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:345,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:350,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2polyline.cc:353,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:353,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 354
    functionName: S2Polyline::IsOnRight
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - S2Polyline::Project
    - ABSL_DCHECK_LE
    - s2pred::Sign
    - S2Polyline::num_vertices
    - s2pred::OrderedCCW
    - vertex
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: bool
    signature: bool S2Polyline::IsOnRight(const S2Point& point) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:357,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:357,1
    - Dst: S2Polyline::GetRectBound
      Src: /src/s2geometry/src/s2/s2polyline.cc:361,1
    - Dst: S2Polyline::GetRectBound
      Src: /src/s2geometry/src/s2/s2polyline.cc:361,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:366,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:367,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:367,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:367,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:368,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2polyline.cc:369,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' line'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 375
    functionName: S2Polyline::Intersects
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - vertex
    - S2Polyline::num_vertices
    - S2Polyline::GetRectBound
    - S2EdgeCrosser::CrossingSign
    linkageType: ''
    returnType: bool
    signature: bool S2Polyline::Intersects(const S2Polyline& line) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2polyline.cc:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: S2Polyline::Reverse
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 4
    functionsReached:
    - std::reverse
    linkageType: ''
    returnType: void
    signature: void S2Polyline::Reverse()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRectBounder::S2LatLngRectBounder
      Src: /src/s2geometry/src/s2/s2polyline.cc:384,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:385,1
    - Dst: S2LatLngRectBounder::AddPoint
      Src: /src/s2geometry/src/s2/s2polyline.cc:386,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:386,1
    - Dst: S2LatLngRectBounder::GetBound
      Src: /src/s2geometry/src/s2/s2polyline.cc:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 389
    functionName: S2Polyline::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 3
    functionsReached:
    - S2LatLngRectBounder::S2LatLngRectBounder
    - S2Polyline::num_vertices
    - S2LatLngRectBounder::AddPoint
    - S2LatLngRectBounder::GetBound
    - vertex
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2Polyline::GetRectBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::GetRectBound
      Src: /src/s2geometry/src/s2/s2polyline.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: S2Polyline::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::GetRectBound
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2Polyline::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::GetCapBound
      Src: /src/s2geometry/src/s2/s2polyline.cc:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: S2Polyline::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::GetCapBound
    linkageType: ''
    returnType: void
    signature: void S2Polyline::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:400,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:405,1
    - Dst: S2Polyline::Contains
      Src: /src/s2geometry/src/s2/s2polyline.cc:406,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:406,1
    - Dst: GetVertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:410,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:414,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:415,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2polyline.cc:416,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 423
    functionName: S2Polyline::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - S2EdgeCrosser::CrossingSign
    - GetVertex
    - S2Polyline::num_vertices
    - vertex
    - S2Polyline::Contains
    linkageType: ''
    returnType: bool
    signature: bool S2Polyline::MayIntersect(const S2Cell& cell) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::EncodeMostCompact
      Src: /src/s2geometry/src/s2/s2polyline.cc:428,1
    - Dst: S2Polyline::EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polyline.cc:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - encoder
    - hint
    argTypes:
    - Encoder*
    - s2coding::CodingHint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 433
    functionName: S2Polyline::Encode
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::EncodeUncompressed
    - S2Polyline::EncodeMostCompact
    linkageType: ''
    returnType: void
    signature: "void S2Polyline::Encode(Encoder* const encoder,\n                        s2coding::CodingHint
      hint) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2polyline.cc:436,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2polyline.cc:438,1
    - Dst: Encoder*::put32
      Src: /src/s2geometry/src/s2/s2polyline.cc:439,1
    - Dst: Encoder*::putn
      Src: /src/s2geometry/src/s2/s2polyline.cc:440,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2polyline.cc:440,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2polyline.cc:442,1
    - Dst: Encoder*::avail
      Src: /src/s2geometry/src/s2/s2polyline.cc:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 443
    functionName: S2Polyline::EncodeUncompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 3
    functionsReached:
    - get
    - Encoder*::put8
    - Encoder*::putn
    - Encoder*::put32
    - Encoder*::Ensure
    - ABSL_DCHECK_GE
    - Encoder*::avail
    linkageType: ''
    returnType: void
    signature: void S2Polyline::EncodeUncompressed(Encoder* const encoder) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2polyline.cc:446,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2polyline.cc:449,1
    - Dst: S2Polyline::DecodeUncompressed
      Src: /src/s2geometry/src/s2/s2polyline.cc:452,1
    - Dst: S2Polyline::DecodeCompressed
      Src: /src/s2geometry/src/s2/s2polyline.cc:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 457
    functionName: S2Polyline::Decode
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 14
    functionsReached:
    - S2Polyline::DecodeUncompressed
    - Decoder*::avail
    - Decoder*::get8
    - S2Polyline::DecodeCompressed
    linkageType: ''
    returnType: bool
    signature: bool S2Polyline::Decode(Decoder* const decoder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2polyline.cc:460,1
    - Dst: Decoder*::get32
      Src: /src/s2geometry/src/s2/s2polyline.cc:463,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2polyline.cc:467,1
    - Dst: MakeS2PointArrayForOverwrite
      Src: /src/s2geometry/src/s2/s2polyline.cc:468,1
    - Dst: Decoder*::getn
      Src: /src/s2geometry/src/s2/s2polyline.cc:469,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2polyline.cc:471,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2polyline.cc:472,1
    - Dst: S2Polyline::IsValid
      Src: /src/s2geometry/src/s2/s2polyline.cc:472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 475
    functionName: S2Polyline::DecodeUncompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 1
    functionsReached:
    - MakeS2PointArrayForOverwrite
    - ABSL_CHECK
    - Decoder*::getn
    - Decoder*::get32
    - Decoder*::avail
    - S2Polyline::IsValid
    - absl::GetFlag
    linkageType: ''
    returnType: bool
    signature: bool S2Polyline::DecodeUncompressed(Decoder* const decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::EncodeCompressed
      Src: /src/s2geometry/src/s2/s2polyline.cc:479,1
    - Dst: S2::XYZtoFaceSiTi
      Src: /src/s2geometry/src/s2/s2polyline.cc:487,1
    - Dst: std::array::fill
      Src: /src/s2geometry/src/s2/s2polyline.cc:497,1
    - Dst: std::max_element
      Src: /src/s2geometry/src/s2/s2polyline.cc:508,1
    - Dst: std::array::begin
      Src: /src/s2geometry/src/s2/s2polyline.cc:508,1
    - Dst: std::array::end
      Src: /src/s2geometry/src/s2/s2polyline.cc:508,1
    - Dst: std::array::begin
      Src: /src/s2geometry/src/s2/s2polyline.cc:510,1
    - Dst: S2Polyline::EncodeCompressed
      Src: /src/s2geometry/src/s2/s2polyline.cc:521,1
    - Dst: S2Polyline::EncodeUncompressed
      Src: /src/s2geometry/src/s2/s2polyline.cc:523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 525
    functionName: S2Polyline::EncodeMostCompact
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 3
    functionsReached:
    - std::array::end
    - std::array::fill
    - S2::XYZtoFaceSiTi
    - S2Polyline::EncodeCompressed
    - std::array::begin
    - S2Polyline::EncodeUncompressed
    - std::max_element
    linkageType: ''
    returnType: void
    signature: void S2Polyline::EncodeMostCompact(Encoder* encoder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder*::Ensure
      Src: /src/s2geometry/src/s2/s2polyline.cc:531,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2polyline.cc:532,1
    - Dst: Encoder*::put8
      Src: /src/s2geometry/src/s2/s2polyline.cc:533,1
    - Dst: Encoder*::put_varint32
      Src: /src/s2geometry/src/s2/s2polyline.cc:534,1
    - Dst: S2EncodePointsCompressed
      Src: /src/s2geometry/src/s2/s2polyline.cc:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - encoder
    - all_vertices
    - snap_level
    argTypes:
    - Encoder*
    - absl::Span<const S2XYZFaceSiTi>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 536
    functionName: S2Polyline::EncodeCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 1
    functionsReached:
    - Encoder*::Ensure
    - Encoder*::put8
    - S2EncodePointsCompressed
    - Encoder*::put_varint32
    linkageType: ''
    returnType: void
    signature: "void S2Polyline::EncodeCompressed(Encoder* encoder,\n                                  absl::Span<const
      S2XYZFaceSiTi> all_vertices,\n                                  int snap_level)
      const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2polyline.cc:539,1
    - Dst: Decoder*::get8
      Src: /src/s2geometry/src/s2/s2polyline.cc:540,1
    - Dst: Decoder*::get_varint32
      Src: /src/s2geometry/src/s2/s2polyline.cc:545,1
    - Dst: S2Polyline::Init
      Src: /src/s2geometry/src/s2/s2polyline.cc:548,1
    - Dst: Decoder*::avail
      Src: /src/s2geometry/src/s2/s2polyline.cc:554,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2polyline.cc:555,1
    - Dst: S2DecodePointsCompressed
      Src: /src/s2geometry/src/s2/s2polyline.cc:556,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/s2polyline.cc:556,1
    - Dst: S2Polyline::Init
      Src: /src/s2geometry/src/s2/s2polyline.cc:559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 538
    functionDepth: 4
    functionLinenumber: 538
    functionLinenumberEnd: 561
    functionName: S2Polyline::DecodeCompressed
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 1
    functionsReached:
    - absl::MakeSpan
    - Decoder*::get_varint32
    - vector::resize
    - S2DecodePointsCompressed
    - Decoder*::avail
    - Decoder*::get8
    - S2Polyline::Init
    linkageType: ''
    returnType: bool
    signature: bool S2Polyline::DecodeCompressed(Decoder* decoder)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2polyline.cc:570,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:570,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2polyline.cc:571,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:571,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:589,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2polyline.cc:590,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2polyline.cc:594,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:597,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:598,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2polyline.cc:599,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:608,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:613,1
    - Dst: S2::ToFrame
      Src: /src/s2geometry/src/s2/s2polyline.cc:621,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2polyline.cc:622,1
    - Dst: S2Point::y
      Src: /src/s2geometry/src/s2/s2polyline.cc:622,1
    - Dst: S2Point::x
      Src: /src/s2geometry/src/s2/s2polyline.cc:622,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s2polyline.cc:623,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2polyline.cc:634,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2polyline.cc:634,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:634,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2polyline.cc:634,1
    - Dst: S1Interval::FromPoint
      Src: /src/s2geometry/src/s2/s2polyline.cc:635,1
    - Dst: S1Interval::Intersection
      Src: /src/s2geometry/src/s2/s2polyline.cc:636,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline.cc:637,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2polyline.cc:637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - ' polyline'
    - tolerance
    - index
    argTypes:
    - S2Polyline
    - S1Angle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 642
    functionName: FindEndVertex
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - S1Interval::is_empty
    - S2Point::y
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    - S1Interval::Contains
    - num_vertices
    - S2::GetFrame
    - S2Point::x
    - Angle
    - S1Interval::Full
    - sin
    - ABSL_DCHECK_LT
    - S1Interval::FromPoint
    - atan2
    - S1Angle::radians
    - S1Interval::Intersection
    - S2::ToFrame
    - asin
    - vertex
    linkageType: ''
    returnType: int
    signature: "int FindEndVertex(const S2Polyline& polyline,\n                  S1Angle
      tolerance, int index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2polyline.cc:570,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:570,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2polyline.cc:571,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:571,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:589,1
    - Dst: S2::GetFrame
      Src: /src/s2geometry/src/s2/s2polyline.cc:590,1
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2polyline.cc:594,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:597,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:598,1
    - Dst: Angle
      Src: /src/s2geometry/src/s2/s2polyline.cc:599,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:608,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:613,1
    - Dst: S2::ToFrame
      Src: /src/s2geometry/src/s2/s2polyline.cc:621,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/s2polyline.cc:622,1
    - Dst: S2Point::y
      Src: /src/s2geometry/src/s2/s2polyline.cc:622,1
    - Dst: S2Point::x
      Src: /src/s2geometry/src/s2/s2polyline.cc:622,1
    - Dst: S1Interval::Contains
      Src: /src/s2geometry/src/s2/s2polyline.cc:623,1
    - Dst: asin
      Src: /src/s2geometry/src/s2/s2polyline.cc:634,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2polyline.cc:634,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:634,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/s2polyline.cc:634,1
    - Dst: S1Interval::FromPoint
      Src: /src/s2geometry/src/s2/s2polyline.cc:635,1
    - Dst: S1Interval::Intersection
      Src: /src/s2geometry/src/s2/s2polyline.cc:636,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2polyline.cc:637,1
    - Dst: S1Interval::is_empty
      Src: /src/s2geometry/src/s2/s2polyline.cc:637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - ' polyline'
    - tolerance
    - index
    argTypes:
    - S2Polyline
    - S1Angle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 642
    functionName: FindEndVertex
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - S1Interval::is_empty
    - S2Point::y
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    - S1Interval::Contains
    - num_vertices
    - S2::GetFrame
    - S2Point::x
    - Angle
    - S1Interval::Full
    - sin
    - ABSL_DCHECK_LT
    - S1Interval::FromPoint
    - atan2
    - S1Angle::radians
    - S1Interval::Intersection
    - S2::ToFrame
    - asin
    - vertex
    linkageType: ''
    returnType: int
    signature: "int FindEndVertex(const S2Polyline& polyline,\n                  S1Angle
      tolerance, int index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector<int>*::clear
      Src: /src/s2geometry/src/s2/s2polyline.cc:647,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:648,1
    - Dst: vector<int>*::push_back
      Src: /src/s2geometry/src/s2/s2polyline.cc:650,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2polyline.cc:651,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2polyline.cc:651,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:652,1
    - Dst: FindEndVertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:653,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:655,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:655,1
    - Dst: vector<int>*::push_back
      Src: /src/s2geometry/src/s2/s2polyline.cc:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tolerance
    - indices
    argTypes:
    - S1Angle
    - vector<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 660
    functionName: S2Polyline::SubsampleVertices
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - vector<int>*::push_back
    - S2Polyline::num_vertices
    - S1Angle::Radians
    - vector<int>*::clear
    - FindEndVertex
    - vertex
    - max
    linkageType: ''
    returnType: void
    signature: "void S2Polyline::SubsampleVertices(S1Angle tolerance,\n                                   vector<int>*
      indices) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:663,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:663,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:664,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:665,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - S2Polyline
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 668
    functionName: S2Polyline::Equals
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 2
    functionsReached:
    - vertex
    - S2Polyline::num_vertices
    linkageType: ''
    returnType: bool
    signature: bool S2Polyline::Equals(const S2Polyline& b) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:671,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:671,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:672,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2polyline.cc:673,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:673,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' b'
    - max_error
    argTypes:
    - S2Polyline
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 678
    functionName: S2Polyline::ApproxEquals
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 8
    functionsReached:
    - vertex
    - S2Polyline::num_vertices
    - S2::ApproxEquals
    linkageType: ''
    returnType: bool
    signature: bool S2Polyline::ApproxEquals(const S2Polyline& b, S1Angle max_error)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 682
    functionName: S2Polyline::SpaceUsed
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::num_vertices
    linkageType: ''
    returnType: size_t
    signature: size_t S2Polyline::SpaceUsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:689,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:692,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' pline'
    - index
    argTypes:
    - S2Polyline
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 694
    functionName: NextDistinctVertex
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - vertex
    - num_vertices
    linkageType: ''
    returnType: int
    signature: int NextDistinctVertex(const S2Polyline& pline, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - i_val
    - j_val
    - i_in_progress_val
    argTypes:
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 700
    functionName: SearchState
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SearchState(int i_val, int j_val, bool i_in_progress_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SearchState
    - SearchState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: operator==(const SearchState& a, const SearchState& b)
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const SearchState& a, const SearchState& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2polyline.cc:708,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline.cc:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' s'
    argTypes:
    - H
    - SearchState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 709
    functionName: AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const SearchState& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:689,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:692,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' pline'
    - index
    argTypes:
    - S2Polyline
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 694
    functionName: NextDistinctVertex
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - vertex
    - num_vertices
    linkageType: ''
    returnType: int
    signature: int NextDistinctVertex(const S2Polyline& pline, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - i_val
    - j_val
    - i_in_progress_val
    argTypes:
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 700
    functionName: SearchState
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SearchState(int i_val, int j_val, bool i_in_progress_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SearchState
    - SearchState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: operator==(const SearchState& a, const SearchState& b)
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const SearchState& a, const SearchState& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2polyline.cc:708,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2polyline.cc:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' s'
    argTypes:
    - H
    - SearchState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 709
    functionName: AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const SearchState& s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:764,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:765,1
    - Dst: NextDistinctVertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:771,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:772,1
    - Dst: NextDistinctVertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:773,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2polyline.cc:774,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:775,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:775,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:775,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:779,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:780,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2polyline.cc:781,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:781,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline.cc:782,1
    - Dst: SearchState
      Src: /src/s2geometry/src/s2/s2polyline.cc:782,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2polyline.cc:786,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2polyline.cc:787,1
    - Dst: vector::pop_back
      Src: /src/s2geometry/src/s2/s2polyline.cc:788,1
    - Dst: flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2polyline.cc:789,1
    - Dst: NextDistinctVertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:791,1
    - Dst: NextDistinctVertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:792,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:793,1
    - Dst: S2Polyline::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:795,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2polyline.cc:799,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:801,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2polyline.cc:802,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:803,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:803,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:805,1
    - Dst: S2::Project
      Src: /src/s2geometry/src/s2/s2polyline.cc:806,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:807,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:807,1
    - Dst: S2::IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2polyline.cc:810,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:810,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:811,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline.cc:812,1
    - Dst: SearchState
      Src: /src/s2geometry/src/s2/s2polyline.cc:812,1
    - Dst: S2::IsEdgeBNearEdgeA
      Src: /src/s2geometry/src/s2/s2polyline.cc:814,1
    - Dst: S2Polyline::vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:814,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2polyline.cc:815,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2polyline.cc:816,1
    - Dst: SearchState
      Src: /src/s2geometry/src/s2/s2polyline.cc:816,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - ' covered'
    - max_error
    argTypes:
    - S2Polyline
    - S1Angle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 820
    functionName: S2Polyline::NearlyCovers
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - S2Polyline::vertex
    - vector::push_back
    - SearchState
    - vector::pop_back
    - S2Polyline::num_vertices
    - vector::back
    - NextDistinctVertex
    - S2Point::S2Point
    - vertex
    - S1Angle
    - vector::empty
    - flat_hash_set::insert
    - S2::IsEdgeBNearEdgeA
    - S2::Project
    linkageType: ''
    returnType: bool
    signature: "bool S2Polyline::NearlyCovers(const S2Polyline& covered,\n                              S1Angle
      max_error) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG_IF
      Src: /src/s2geometry/src/s2/s2polyline.cc:823,1
    - Dst: S2Polyline*::num_vertices
      Src: /src/s2geometry/src/s2/s2polyline.cc:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - polyline
    argTypes:
    - S2Polyline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 826
    functionName: S2Polyline::Shape::Init(const S2Polyline* polyline)
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG_IF
    - S2Polyline*::num_vertices
    linkageType: ''
    returnType: void
    signature: void S2Polyline::Shape::Init(const S2Polyline* polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/s2polyline.cc:829,1
    - Dst: S2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2polyline.cc:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: S2Polyline::Shape::num_chains() const
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::num_edges
    - min
    linkageType: ''
    returnType: int
    signature: int S2Polyline::Shape::num_chains() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2polyline.cc:833,1
    - Dst: Chain
      Src: /src/s2geometry/src/s2/s2polyline.cc:834,1
    - Dst: S2LaxPolygonShape::num_edges
      Src: /src/s2geometry/src/s2/s2polyline.cc:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: S2Polyline::Shape::chain(int i) const
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached:
    - Chain
    - S2LaxPolygonShape::num_edges
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: S2Shape::Chain
    signature: S2Shape::Chain S2Polyline::Shape::chain(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 837
    functionName: S2Polyline::OwningShape::~OwningShape()
    functionSourceFile: /src/s2geometry/src/s2/s2polyline.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2Polyline::OwningShape::~OwningShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:36,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:37,1
    - Dst: S2PointRegion::Contains
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:37,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:38,1
    - Dst: S2PointRegion::Contains
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:38,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:38,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:39,1
    - Dst: S2PointRegion::Contains
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:39,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:41,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:41,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:42,1
    - Dst: S2PointRegion::GetCapBound
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:42,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:44,1
    - Dst: S2PointRegion::GetRectBound
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:44,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:44,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:48,1
    - Dst: S2PointRegion::Contains
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:49,1
    - Dst: S2PointRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_region_test.cc
    functionUses: 0
    functionsReached:
    - S2PointRegion::GetCapBound
    - S2PointRegion::Contains
    - EXPECT_TRUE
    - S2Point
    - S2PointRegion::GetRectBound
    - S2Cap::FromPoint
    - S2PointRegion::MayIntersect
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2LatLngRect
    - S2PointRegion::point
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointRegionTest, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:56,1
    - Dst: S2PointRegion::Encode
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:57,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:59,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:59,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:60,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:61,1
    - Dst: S2PointRegion::Decode
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:61,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_region_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Encoder::length
    - Encoder::base
    - S2PointRegion::Decode
    - ASSERT_TRUE
    - EXPECT_EQ
    - S2PointRegion::Encode
    - Encoder::Encoder
    - S2PointRegion::point
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointRegionTest, EncodeAndDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:71,1
    - Dst: Encoder::Ensure
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:72,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:74,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:75,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:76,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:77,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:79,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:79,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:80,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:81,1
    - Dst: S2PointRegion::Decode
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_region_test.cc
    functionUses: 0
    functionsReached:
    - Encoder::put8
    - Encoder::Ensure
    - S2Point
    - Encoder::length
    - Encoder::base
    - S2PointRegion::Decode
    - ASSERT_TRUE
    - Encoder::putdouble
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointRegionTest, DecodeUnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:87,1
    - Dst: Encoder::Ensure
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:88,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:90,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:91,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:92,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:93,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:95,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:95,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:96,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:97,1
    - Dst: S2PointRegion::Decode
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_region_test.cc
    functionUses: 0
    functionsReached:
    - Encoder::put8
    - Encoder::Ensure
    - S2Point
    - Encoder::length
    - Encoder::base
    - ASSERT_FALSE
    - S2PointRegion::Decode
    - Encoder::putdouble
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointRegionTest, DecodeNonUnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:36,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:37,1
    - Dst: S2PointRegion::Contains
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:37,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:38,1
    - Dst: S2PointRegion::Contains
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:38,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:38,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:39,1
    - Dst: S2PointRegion::Contains
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:39,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:41,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:41,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:42,1
    - Dst: S2PointRegion::GetCapBound
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:42,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:44,1
    - Dst: S2PointRegion::GetRectBound
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:44,1
    - Dst: S2LatLngRect
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:44,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:48,1
    - Dst: S2PointRegion::Contains
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:49,1
    - Dst: S2PointRegion::MayIntersect
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_region_test.cc
    functionUses: 0
    functionsReached:
    - S2PointRegion::GetCapBound
    - S2PointRegion::Contains
    - EXPECT_TRUE
    - S2Point
    - S2PointRegion::GetRectBound
    - S2Cap::FromPoint
    - S2PointRegion::MayIntersect
    - EXPECT_EQ
    - EXPECT_FALSE
    - S2LatLngRect
    - S2PointRegion::point
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointRegionTest, Basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:56,1
    - Dst: S2PointRegion::Encode
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:57,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:59,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:59,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:60,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:61,1
    - Dst: S2PointRegion::Decode
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:61,1
    - Dst: S2PointRegion::point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_region_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Encoder::length
    - Encoder::base
    - S2PointRegion::Decode
    - ASSERT_TRUE
    - EXPECT_EQ
    - S2PointRegion::Encode
    - Encoder::Encoder
    - S2PointRegion::point
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointRegionTest, EncodeAndDecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:71,1
    - Dst: Encoder::Ensure
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:72,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:74,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:75,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:76,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:77,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:79,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:79,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:80,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:81,1
    - Dst: S2PointRegion::Decode
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_region_test.cc
    functionUses: 0
    functionsReached:
    - Encoder::put8
    - Encoder::Ensure
    - S2Point
    - Encoder::length
    - Encoder::base
    - S2PointRegion::Decode
    - ASSERT_TRUE
    - Encoder::putdouble
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointRegionTest, DecodeUnitLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:87,1
    - Dst: Encoder::Ensure
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:88,1
    - Dst: Encoder::put8
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:90,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:91,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:92,1
    - Dst: Encoder::putdouble
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:93,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:95,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:95,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:96,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:97,1
    - Dst: S2PointRegion::Decode
      Src: /src/s2geometry/src/s2/s2point_region_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_region_test.cc
    functionUses: 0
    functionsReached:
    - Encoder::put8
    - Encoder::Ensure
    - S2Point
    - Encoder::length
    - Encoder::base
    - ASSERT_FALSE
    - S2PointRegion::Decode
    - Encoder::putdouble
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointRegionTest, DecodeNonUnitLength)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:42,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:43,1
    - Dst: InteriorContains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:44,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/r2rect_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:45,1
    - Dst: InteriorIntersects
      Src: /src/s2geometry/src/s2/r2rect_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:47,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/r2rect_test.cc:47,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:48,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/r2rect_test.cc:48,1
    - Dst: Intersects
      Src: /src/s2geometry/src/s2/r2rect_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:50,1
    - Dst: Union
      Src: /src/s2geometry/src/s2/r2rect_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:51,1
    - Dst: Intersection
      Src: /src/s2geometry/src/s2/r2rect_test.cc:51,1
    - Dst: R2Rect::AddRect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:55,1
    - Dst: GetSize
      Src: /src/s2geometry/src/s2/r2rect_test.cc:56,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:56,1
    - Dst: R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/r2rect_test.cc:58,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/r2rect_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - ' x'
    - ' y'
    - expected_rexion
    - ' expected_union'
    - ' expected_intersection'
    argTypes:
    - R2Rect
    - R2Rect
    - string_view
    - R2Rect
    - R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 61
    functionName: TestIntervalOps
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 4
    functionsReached:
    - Intersection
    - Intersects
    - GetSize
    - R2Rect::AddRect
    - lo
    - Union
    - R2Point
    - R2Rect::AddPoint
    - InteriorContains
    - EXPECT_EQ
    - InteriorIntersects
    - Contains
    linkageType: ''
    returnType: void
    signature: "void TestIntervalOps(const R2Rect& x, const R2Rect& y,\n                            string_view
      expected_rexion,\n                            const R2Rect& expected_union,\n
      \                           const R2Rect& expected_intersection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:66,1
    - Dst: R2Rect::is_valid
      Src: /src/s2geometry/src/s2/r2rect_test.cc:66,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:67,1
    - Dst: R2Rect::is_empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Empty
    - R2Rect::is_empty
    - EXPECT_TRUE
    - EXPECT_EQ
    - R2Rect::is_valid
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, EmptyRectangles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:73,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:73,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:74,1
    - Dst: R2Rect::x
      Src: /src/s2geometry/src/s2/r2rect_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:75,1
    - Dst: R2Rect::x
      Src: /src/s2geometry/src/s2/r2rect_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:76,1
    - Dst: R2Rect::y
      Src: /src/s2geometry/src/s2/r2rect_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:77,1
    - Dst: R2Rect::y
      Src: /src/s2geometry/src/s2/r2rect_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:84,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:84,1
    - Dst: R2Rect::x
      Src: /src/s2geometry/src/s2/r2rect_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:85,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:85,1
    - Dst: R2Rect::y
      Src: /src/s2geometry/src/s2/r2rect_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:87,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:88,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:88,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:93,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:94,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:96,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:97,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:97,1
    - Dst: R2Rect::R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:99,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:100,1
    - Dst: R2Rect::is_empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:101,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Empty
    - R2Rect::x
    - EXPECT_TRUE
    - R2Rect::y
    - R2Rect
    - R1Interval
    - R2Point
    - R2Rect::R2Rect
    - EXPECT_NE
    - EXPECT_EQ
    - R2Rect::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, ConstructorsAndAccessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:106,1
    - Dst: R2Rect::FromCenterSize
      Src: /src/s2geometry/src/s2/r2rect_test.cc:106,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:106,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:106,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:107,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:107,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:107,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:108,1
    - Dst: R2Rect::FromCenterSize
      Src: /src/s2geometry/src/s2/r2rect_test.cc:108,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:108,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:108,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:109,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:109,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - R2Rect::FromCenterSize
    - R2Point
    - R2Rect
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, FromCenterSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:114,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:114,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:115,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:115,1
    - Dst: R2Rect::lo
      Src: /src/s2geometry/src/s2/r2rect_test.cc:115,1
    - Dst: R2Rect::lo
      Src: /src/s2geometry/src/s2/r2rect_test.cc:115,1
    - Dst: R2Rect::FromPoint
      Src: /src/s2geometry/src/s2/r2rect_test.cc:115,1
    - Dst: R2Rect::lo
      Src: /src/s2geometry/src/s2/r2rect_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:116,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:116,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:116,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:116,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/r2rect_test.cc:117,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:117,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:118,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:118,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:118,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:118,1
    - Dst: R2Rect::FromPointPair
      Src: /src/s2geometry/src/s2/r2rect_test.cc:119,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:119,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - R2Rect::FromPointPair
    - R2Rect
    - R2Rect::FromPoint
    - R2Rect::lo
    - R2Point
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, FromPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:124,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:128,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:128,1
    - Dst: R2Rect::GetCenter
      Src: /src/s2geometry/src/s2/r2rect_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:129,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:129,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/r2rect_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:130,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:130,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/r2rect_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:131,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:131,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/r2rect_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:132,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:132,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/r2rect_test.cc:132,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:133,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:133,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:133,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:134,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:134,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:134,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:135,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:135,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:135,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:136,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:136,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:137,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:137,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:138,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:138,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:139,1
    - Dst: R2Rect::InteriorContains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:139,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:140,1
    - Dst: R2Rect::InteriorContains
      Src: /src/s2geometry/src/s2/r2rect_test.cc:140,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/r2rect_test.cc:144,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/r2rect_test.cc:145,1
    - Dst: R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/r2rect_test.cc:146,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/r2rect_test.cc:147,1
    - Dst: Ortho
      Src: /src/s2geometry/src/s2/r2rect_test.cc:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - R2Rect::Contains
    - R2Rect::InteriorContains
    - EXPECT_TRUE
    - R2Rect::GetVertex
    - R2Rect::GetCenter
    - R2Point
    - Ortho
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, SimplePredicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:158,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:159,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:160,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:162,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:162,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:162,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r2rect_test.cc:166,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r2rect_test.cc:167,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r2rect_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:170,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:170,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:170,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:170,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r2rect_test.cc:171,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:171,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:171,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:171,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:172,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:172,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:172,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:173,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:173,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:173,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r2rect_test.cc:174,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:174,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:174,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:174,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:175,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:175,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:175,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:176,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:176,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:176,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r2rect_test.cc:177,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:177,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:177,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:177,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:178,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:178,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:178,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:179,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:179,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:179,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r2rect_test.cc:181,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:181,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:181,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:181,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:182,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:182,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:182,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:183,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:183,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:183,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r2rect_test.cc:188,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:188,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:188,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:188,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:189,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:189,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:189,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:190,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:190,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:190,1
    - Dst: TestIntervalOps
      Src: /src/s2geometry/src/s2/r2rect_test.cc:191,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:191,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:191,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:191,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:192,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:192,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:192,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:193,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:193,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 194
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Empty
    - TestIntervalOps
    - R2Rect
    - R2Point
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, IntervalOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:198,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:199,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:202,1
    - Dst: R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/r2rect_test.cc:203,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:203,1
    - Dst: R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/r2rect_test.cc:204,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:204,1
    - Dst: R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/r2rect_test.cc:205,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:205,1
    - Dst: R2Rect::AddPoint
      Src: /src/s2geometry/src/s2/r2rect_test.cc:206,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 208
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - R2Rect::Empty
    - R2Point
    - R2Rect::AddPoint
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, AddPoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:211,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:213,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:213,1
    - Dst: R2Rect::Project
      Src: /src/s2geometry/src/s2/r2rect_test.cc:213,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:214,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:214,1
    - Dst: R2Rect::Project
      Src: /src/s2geometry/src/s2/r2rect_test.cc:214,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:215,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:215,1
    - Dst: R2Rect::Project
      Src: /src/s2geometry/src/s2/r2rect_test.cc:215,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:216,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:216,1
    - Dst: R2Rect::Project
      Src: /src/s2geometry/src/s2/r2rect_test.cc:216,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:217,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:217,1
    - Dst: R2Rect::Project
      Src: /src/s2geometry/src/s2/r2rect_test.cc:217,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:218,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:218,1
    - Dst: R2Rect::Project
      Src: /src/s2geometry/src/s2/r2rect_test.cc:218,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:219,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:219,1
    - Dst: R2Rect::Project
      Src: /src/s2geometry/src/s2/r2rect_test.cc:219,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:220,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:220,1
    - Dst: R2Rect::Project
      Src: /src/s2geometry/src/s2/r2rect_test.cc:220,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/r2rect_test.cc:221,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:221,1
    - Dst: R2Rect::Project
      Src: /src/s2geometry/src/s2/r2rect_test.cc:221,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 222
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - R2Rect::Project
    - R1Interval
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, Project)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:226,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:226,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:226,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:227,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:227,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:228,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:228,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:228,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:228,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:229,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:230,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:230,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:230,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:231,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:231,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:231,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:231,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:232,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:233,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:233,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:233,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:233,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:234,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:235,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:235,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:235,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:235,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:236,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:237,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:237,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:237,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:238,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:238,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:238,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:238,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:239,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:239,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - R2Rect::Empty
    - R2Rect
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, Expanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/r2rect_test.cc:243,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/s2geometry/src/s2/r2rect_test.cc:243,1
    - Dst: R2Rect::Empty
      Src: /src/s2geometry/src/s2/r2rect_test.cc:244,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:245,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:245,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:245,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:246,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:246,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:246,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:247,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:247,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:247,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:248,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:248,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/r2rect_test.cc:248,1
    - Dst: R2Rect
      Src: /src/s2geometry/src/s2/r2rect_test.cc:249,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:249,1
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/r2rect_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/r2rect_test.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Empty
    - EXPECT_TRUE
    - R2Rect
    - R1Interval
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - R2Point
    linkageType: ''
    returnType: void
    signature: void TEST(R2Rect, SupportsAbslHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' hasher'
    - lexicon
    argTypes:
    - Hasher
    - ValueLexicon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: "ValueLexicon<T, Hasher, KeyEqual>::IdHasher::IdHasher(\n    const
      Hasher& hasher, const ValueLexicon* lexicon)"
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ValueLexicon<T, Hasher, KeyEqual>::IdHasher::IdHasher(\n    const
      Hasher& hasher, const ValueLexicon* lexicon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: '& ValueLexicon<T, Hasher, KeyEqual>::IdHasher::hasher() const'
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Hasher
    signature: Hasher & ValueLexicon<T, Hasher, KeyEqual>::IdHasher::hasher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher_
      Src: /src/s2geometry/src/s2/value_lexicon.h:134,1
    - Dst: value
      Src: /src/s2geometry/src/s2/value_lexicon.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: "ValueLexicon<T, Hasher, KeyEqual>::IdHasher::operator()(\n    uint32_t
      id) const"
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached:
    - hasher_
    - value
    linkageType: ''
    returnType: size_t
    signature: "size_t ValueLexicon<T, Hasher, KeyEqual>::IdHasher::operator()(\n
      \   uint32_t id) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key_equal'
    - lexicon
    argTypes:
    - KeyEqual
    - ValueLexicon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: "ValueLexicon<T, Hasher, KeyEqual>::IdKeyEqual::IdKeyEqual(\n    const
      KeyEqual& key_equal, const ValueLexicon* lexicon)"
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ValueLexicon<T, Hasher, KeyEqual>::IdKeyEqual::IdKeyEqual(\n
      \   const KeyEqual& key_equal, const ValueLexicon* lexicon)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: key_equal_
      Src: /src/s2geometry/src/s2/value_lexicon.h:150,1
    - Dst: value
      Src: /src/s2geometry/src/s2/value_lexicon.h:150,1
    - Dst: value
      Src: /src/s2geometry/src/s2/value_lexicon.h:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - id1
    - id2
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: "ValueLexicon<T, Hasher, KeyEqual>::IdKeyEqual::operator()(\n    uint32_t
      id1, uint32_t id2) const"
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached:
    - value
    - key_equal_
    linkageType: ''
    returnType: bool
    signature: "bool ValueLexicon<T, Hasher, KeyEqual>::IdKeyEqual::operator()(\n
      \   uint32_t id1, uint32_t id2) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/value_lexicon.h:157,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/value_lexicon.h:158,1
    - Dst: set_empty_key
      Src: /src/s2geometry/src/s2/value_lexicon.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' hasher'
    - ' key_equal'
    argTypes:
    - Hasher
    - KeyEqual
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: ValueLexicon<T, Hasher, KeyEqual>::ValueLexicon
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - set_empty_key
    - IdKeyEqual
    linkageType: ''
    returnType: void
    signature: "void ValueLexicon<T, Hasher, KeyEqual>::ValueLexicon(const Hasher&
      hasher,\n                                                const KeyEqual& key_equal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id_set_::begin
      Src: /src/s2geometry/src/s2/value_lexicon.h:167,1
    - Dst: id_set_::end
      Src: /src/s2geometry/src/s2/value_lexicon.h:167,1
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/value_lexicon.h:168,1
    - Dst: id_set_::hash_funct
      Src: /src/s2geometry/src/s2/value_lexicon.h:168,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/value_lexicon.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ValueLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: ValueLexicon<T, Hasher, KeyEqual>::ValueLexicon
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - id_set_::hash_funct
    - IdKeyEqual
    - id_set_::begin
    - id_set_::end
    linkageType: ''
    returnType: void
    signature: void ValueLexicon<T, Hasher, KeyEqual>::ValueLexicon(const ValueLexicon&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/value_lexicon.h:174,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/value_lexicon.h:175,1
    - Dst: id_set_::begin
      Src: /src/s2geometry/src/s2/value_lexicon.h:178,1
    - Dst: id_set_::end
      Src: /src/s2geometry/src/s2/value_lexicon.h:178,1
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/value_lexicon.h:179,1
    - Dst: id_set_::hash_funct
      Src: /src/s2geometry/src/s2/value_lexicon.h:179,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/value_lexicon.h:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ValueLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: ValueLexicon<T, Hasher, KeyEqual>::ValueLexicon
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - std::move
    - id_set_::hash_funct
    - IdKeyEqual
    - id_set_::begin
    - id_set_::end
    linkageType: ''
    returnType: void
    signature: void ValueLexicon<T, Hasher, KeyEqual>::ValueLexicon(ValueLexicon&&
      x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdSet
      Src: /src/s2geometry/src/s2/value_lexicon.h:190,1
    - Dst: id_set_::begin
      Src: /src/s2geometry/src/s2/value_lexicon.h:190,1
    - Dst: id_set_::end
      Src: /src/s2geometry/src/s2/value_lexicon.h:190,1
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/value_lexicon.h:191,1
    - Dst: id_set_::hash_funct
      Src: /src/s2geometry/src/s2/value_lexicon.h:191,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/value_lexicon.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ValueLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: '&

      ValueLexicon<T, Hasher, KeyEqual>::operator=(const ValueLexicon& x)'
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - id_set_::hash_funct
    - IdKeyEqual
    - id_set_::begin
    - id_set_::end
    - IdSet
    linkageType: ''
    returnType: ValueLexicon<T, Hasher, KeyEqual>
    signature: 'ValueLexicon<T, Hasher, KeyEqual> &

      ValueLexicon<T, Hasher, KeyEqual>::operator=(const ValueLexicon& x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/value_lexicon.h:200,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/value_lexicon.h:201,1
    - Dst: IdSet
      Src: /src/s2geometry/src/s2/value_lexicon.h:204,1
    - Dst: id_set_::begin
      Src: /src/s2geometry/src/s2/value_lexicon.h:204,1
    - Dst: id_set_::end
      Src: /src/s2geometry/src/s2/value_lexicon.h:204,1
    - Dst: IdHasher
      Src: /src/s2geometry/src/s2/value_lexicon.h:205,1
    - Dst: id_set_::hash_funct
      Src: /src/s2geometry/src/s2/value_lexicon.h:205,1
    - Dst: IdKeyEqual
      Src: /src/s2geometry/src/s2/value_lexicon.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ValueLexicon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 208
    functionName: "& ValueLexicon<T, Hasher, KeyEqual>::operator=(\n    ValueLexicon&&
      x) noexcept"
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached:
    - IdHasher
    - std::move
    - id_set_::hash_funct
    - IdKeyEqual
    - id_set_::begin
    - id_set_::end
    - IdSet
    linkageType: ''
    returnType: ValueLexicon<T, Hasher, KeyEqual>
    signature: "ValueLexicon<T, Hasher, KeyEqual> & ValueLexicon<T, Hasher, KeyEqual>::operator=(\n
      \   ValueLexicon&& x) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/value_lexicon.h:212,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/value_lexicon.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: ValueLexicon<T, Hasher, KeyEqual>::Clear
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ValueLexicon<T, Hasher, KeyEqual>::Clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/value_lexicon.h:218,1
    - Dst: key_equal_
      Src: /src/s2geometry/src/s2/value_lexicon.h:218,1
    - Dst: back
      Src: /src/s2geometry/src/s2/value_lexicon.h:218,1
    - Dst: ValueLexicon<T, Hasher, KeyEqual>::size
      Src: /src/s2geometry/src/s2/value_lexicon.h:219,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/value_lexicon.h:221,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/value_lexicon.h:222,1
    - Dst: ValueLexicon<T, Hasher, KeyEqual>::size
      Src: /src/s2geometry/src/s2/value_lexicon.h:222,1
    - Dst: ValueLexicon<T, Hasher, KeyEqual>::size
      Src: /src/s2geometry/src/s2/value_lexicon.h:224,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/value_lexicon.h:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: ValueLexicon<T, Hasher, KeyEqual>::Add
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached:
    - ValueLexicon<T, Hasher, KeyEqual>::size
    - push_back
    - back
    - empty
    - insert
    - pop_back
    - key_equal_
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ValueLexicon<T, Hasher, KeyEqual>::Add(const T& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueLexicon<T, Hasher, KeyEqual>::size
      Src: /src/s2geometry/src/s2/value_lexicon.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: ValueLexicon<T, Hasher, KeyEqual>::size
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 2
    functionsReached:
    - ValueLexicon<T, Hasher, KeyEqual>::size
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ValueLexicon<T, Hasher, KeyEqual>::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: '& ValueLexicon<T, Hasher, KeyEqual>::value(uint32_t id) const'
    functionSourceFile: /src/s2geometry/src/s2/value_lexicon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & ValueLexicon<T, Hasher, KeyEqual>::value(uint32_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:122,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:123,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: s2builderutil::IndexedS2PolylineLayer::IndexedS2PolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - Options
    - get
    linkageType: ''
    returnType: void
    signature: "void IndexedS2PolylineLayer(MutableS2ShapeIndex* index,\n                                 const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolylineLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: s2builderutil::IndexedS2PolylineLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 1
    functionsReached:
    - s2builderutil::IndexedS2PolylineLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolylineLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:131,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:132,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:132,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:133,1
    - Dst: std::make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:134,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: s2builderutil::IndexedS2PolylineLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 1
    functionsReached:
    - Add
    - num_vertices
    - std::make_unique<S2Polyline::OwningShape>
    - std::move
    - ok
    - s2builderutil::IndexedS2PolylineLayer::Build
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: S2PolylineLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: S2PolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: S2PolylineLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType S2PolylineLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: "S2PolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: S2PolylineLayer::Options::validate() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2PolylineLayer::Options::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - validate
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: S2PolylineLayer::Options::set_validate(bool validate)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineLayer::Options::set_validate(bool validate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:122,1
    - Dst: S2Polyline::S2Polyline
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:123,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: s2builderutil::IndexedS2PolylineLayer::IndexedS2PolylineLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached:
    - S2Polyline::S2Polyline
    - Options
    - get
    linkageType: ''
    returnType: void
    signature: "void IndexedS2PolylineLayer(MutableS2ShapeIndex* index,\n                                 const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolylineLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: s2builderutil::IndexedS2PolylineLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 2
    functionsReached:
    - s2builderutil::IndexedS2PolylineLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedS2PolylineLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:131,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:132,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:132,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:133,1
    - Dst: std::make_unique<S2Polyline::OwningShape>
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:134,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: s2builderutil::IndexedS2PolylineLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 2
    functionsReached:
    - Add
    - num_vertices
    - std::make_unique<S2Polyline::OwningShape>
    - std::move
    - ok
    - s2builderutil::IndexedS2PolylineLayer::Build
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: S2PolylineLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: S2PolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: S2PolylineLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType S2PolylineLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: "S2PolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2PolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: S2PolylineLayer::Options::validate() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2PolylineLayer::Options::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - validate
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: S2PolylineLayer::Options::set_validate(bool validate)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2PolylineLayer::Options::set_validate(bool validate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::VisitCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:64,1
    - Dst: EdgePairVector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:66,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:66,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:66,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:66,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:69,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:70,1
    - Dst: EdgePairVector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:70,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:70,1
    - Dst: EdgePairVector::erase
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:71,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:71,1
    - Dst: EdgePairVector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:71,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:71,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' index'
    - type
    argTypes:
    - S2ShapeIndex
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: s2shapeutil::GetCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - EdgePairVector::end
    - s2shapeutil::VisitCrossingEdgePairs
    - EdgePairVector::size
    - s2shapeutil::id
    - EdgePairVector::erase
    - std::make_pair
    - std::sort
    - EdgePairVector::begin
    - EdgePairVector::push_back
    - std::unique
    linkageType: ''
    returnType: EdgePairVector
    signature: EdgePairVector GetCrossings(const S2ShapeIndex& index, CrossingType
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::VisitCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:81,1
    - Dst: EdgePairVector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:84,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:84,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:84,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:84,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:87,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:88,1
    - Dst: EdgePairVector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:88,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:88,1
    - Dst: EdgePairVector::erase
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:89,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:89,1
    - Dst: EdgePairVector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:89,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:89,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' indexA'
    - ' indexB'
    - type
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: s2shapeutil::GetCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - EdgePairVector::end
    - s2shapeutil::VisitCrossingEdgePairs
    - EdgePairVector::size
    - s2shapeutil::id
    - EdgePairVector::erase
    - std::make_pair
    - std::sort
    - EdgePairVector::begin
    - EdgePairVector::push_back
    - std::unique
    linkageType: ''
    returnType: EdgePairVector
    signature: "EdgePairVector GetCrossings(const S2ShapeIndex& indexA,\n                            const
      S2ShapeIndex& indexB, CrossingType type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:100,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:100,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:101,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:103,1
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:103,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:103,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:104,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:105,1
    - Dst: EdgePairVector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:106,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:107,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:107,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' index'
    - type
    argTypes:
    - S2ShapeIndex
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: s2shapeutil::GetCrossingEdgePairsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - EdgeIterator::Next
    - EdgeIterator::Done
    - S2::CrossingSign
    - EdgeIterator::edge
    - std::make_pair
    - EdgeIterator::shape_edge_id
    - EdgePairVector::push_back
    linkageType: ''
    returnType: EdgePairVector
    signature: "EdgePairVector GetCrossingEdgePairsBruteForce(const S2ShapeIndex&
      index,\n                                              CrossingType type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:120,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:120,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:121,1
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:122,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:122,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:123,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:124,1
    - Dst: EdgePairVector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:125,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:126,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:126,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ' indexA'
    - ' indexB'
    - type
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: s2shapeutil::GetCrossingEdgePairsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - EdgeIterator::Next
    - EdgeIterator::Done
    - S2::CrossingSign
    - EdgeIterator::edge
    - std::make_pair
    - EdgeIterator::shape_edge_id
    - EdgePairVector::push_back
    linkageType: ''
    returnType: EdgePairVector
    signature: "EdgePairVector GetCrossingEdgePairsBruteForce(const S2ShapeIndex&
      indexA,\n                                              const S2ShapeIndex& indexB,\n
      \                                             CrossingType type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' pair'
    argTypes:
    - std::ostream
    - std::pair<ShapeEdgeId, ShapeEdgeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: "& operator<<(std::ostream& os,\n                         const
      std::pair<ShapeEdgeId, ShapeEdgeId>& pair)"
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                         const
      std::pair<ShapeEdgeId, ShapeEdgeId>& pair)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:143,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:144,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:145,1
    - Dst: std::count
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:147,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:147,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:147,1
    - Dst: std::count
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:152,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:152,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' expected'
    - ' actual'
    argTypes:
    - EdgePairVector
    - EdgePairVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: s2shapeutil::TestCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - end
    - ADD_FAILURE
    - std::count
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: "void TestCrossingEdgePairs(const EdgePairVector& expected,\n                           const
      EdgePairVector& actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetCrossingEdgePairsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:163,1
    - Dst: s2shapeutil::GetCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:165,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:166,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:166,1
    - Dst: s2shapeutil::TestCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' index'
    - type
    - expected_crossing_count
    argTypes:
    - S2ShapeIndex
    - CrossingType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: s2shapeutil::TestGetCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - EdgePairVector::size
    - s2shapeutil::GetCrossingEdgePairsBruteForce
    - s2shapeutil::TestCrossingEdgePairs
    - s2shapeutil::GetCrossings
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestGetCrossingEdgePairs(const S2ShapeIndex& index,\n                              CrossingType
      type, int expected_crossing_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetCrossingEdgePairsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:176,1
    - Dst: s2shapeutil::GetCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:178,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:179,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:179,1
    - Dst: s2shapeutil::TestCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' indexA'
    - ' indexB'
    - type
    - expected_crossing_count
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: s2shapeutil::TestGetCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - EdgePairVector::size
    - s2shapeutil::GetCrossingEdgePairsBruteForce
    - s2shapeutil::TestCrossingEdgePairs
    - s2shapeutil::GetCrossings
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestGetCrossingEdgePairs(const S2ShapeIndex& indexA,\n                              const
      S2ShapeIndex& indexB, CrossingType type,\n                             int expected_crossing_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:184,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:185,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::TestGetCrossingEdgePairs
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingEdgePairs, NoIntersectionsOneIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:190,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:191,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:192,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::TestGetCrossingEdgePairs
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingEdgePairs, NoIntersectionsTwoIndexes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:208,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:209,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:212,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:212,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:213,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:214,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:214,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:215,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:217,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:217,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:218,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 220
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - std::move
    - s2shapeutil::TestGetCrossingEdgePairs
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2EdgeVectorShape>
    - S2LatLng::FromDegrees
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingEdgePairs, EdgeGridOneIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:226,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:227,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:228,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:229,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:232,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:232,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:233,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:234,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:234,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:235,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:237,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:237,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:238,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:238,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:240,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 242
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - std::move
    - s2shapeutil::TestGetCrossingEdgePairs
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2EdgeVectorShape>
    - S2LatLng::FromDegrees
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingEdgePairs, EdgeGridTwoIndexes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:248,1
    - Dst: s2shapeutil::FindSelfIntersection
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:249,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: s2shapeutil::HasSelfIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_VLOG
    - s2shapeutil::FindSelfIntersection
    - S2Error::S2Error
    linkageType: ''
    returnType: bool
    signature: bool HasSelfIntersection(const MutableS2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector<unique_ptr<S2Loop>>*::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:261,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:262,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:263,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:264,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:265,1
    - Dst: s2shapeutil::HasSelfIntersection
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:265,1
    - Dst: S2Polygon::Release
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:266,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:268,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:269,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:271,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:272,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:272,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:274,1
    - Dst: s2shapeutil::TestHasCrossingPermutations
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:275,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - loops
    - i
    - has_crossing
    argTypes:
    - vector<unique_ptr<S2Loop>>*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 279
    functionName: s2shapeutil::TestHasCrossingPermutations
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - make_unique<S2Polygon::Shape>
    - unique_ptr::num_vertices
    - make_unique<S2Loop>
    - std::move
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2shapeutil::TestHasCrossingPermutations
    - S2Polygon::Release
    - unique_ptr::vertex
    - EXPECT_EQ
    - vector<unique_ptr<S2Loop>>*::size
    - s2shapeutil::HasSelfIntersection
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void TestHasCrossingPermutations(vector<unique_ptr<S2Loop>>* loops,
      int i,\n                                 bool has_crossing)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:288,1
    - Dst: unique_ptr::Release
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:289,1
    - Dst: s2shapeutil::TestHasCrossingPermutations
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polygon_str
    - has_crossing
    argTypes:
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: s2shapeutil::TestHasCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::TestHasCrossingPermutations
    - s2textformat::MakePolygonOrDie
    - unique_ptr::Release
    linkageType: ''
    returnType: void
    signature: void TestHasCrossing(string_view polygon_str, bool has_crossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:295,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:296,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:297,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:298,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:299,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::TestHasCrossing
    linkageType: ''
    returnType: void
    signature: void TEST(FindSelfIntersection, Basic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::VisitCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:64,1
    - Dst: EdgePairVector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:66,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:66,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:66,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:66,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:69,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:70,1
    - Dst: EdgePairVector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:70,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:70,1
    - Dst: EdgePairVector::erase
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:71,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:71,1
    - Dst: EdgePairVector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:71,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:71,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' index'
    - type
    argTypes:
    - S2ShapeIndex
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: s2shapeutil::GetCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 2
    functionsReached:
    - EdgePairVector::end
    - s2shapeutil::VisitCrossingEdgePairs
    - EdgePairVector::size
    - s2shapeutil::id
    - EdgePairVector::erase
    - std::make_pair
    - std::sort
    - EdgePairVector::begin
    - EdgePairVector::push_back
    - std::unique
    linkageType: ''
    returnType: EdgePairVector
    signature: EdgePairVector GetCrossings(const S2ShapeIndex& index, CrossingType
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::VisitCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:81,1
    - Dst: EdgePairVector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:84,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:84,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:84,1
    - Dst: s2shapeutil::id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:84,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:87,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:88,1
    - Dst: EdgePairVector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:88,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:88,1
    - Dst: EdgePairVector::erase
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:89,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:89,1
    - Dst: EdgePairVector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:89,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:89,1
    - Dst: EdgePairVector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' indexA'
    - ' indexB'
    - type
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: s2shapeutil::GetCrossings
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 2
    functionsReached:
    - EdgePairVector::end
    - s2shapeutil::VisitCrossingEdgePairs
    - EdgePairVector::size
    - s2shapeutil::id
    - EdgePairVector::erase
    - std::make_pair
    - std::sort
    - EdgePairVector::begin
    - EdgePairVector::push_back
    - std::unique
    linkageType: ''
    returnType: EdgePairVector
    signature: "EdgePairVector GetCrossings(const S2ShapeIndex& indexA,\n                            const
      S2ShapeIndex& indexB, CrossingType type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:100,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:100,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:101,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:103,1
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:103,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:103,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:104,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:105,1
    - Dst: EdgePairVector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:106,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:107,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:107,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' index'
    - type
    argTypes:
    - S2ShapeIndex
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: s2shapeutil::GetCrossingEdgePairsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 2
    functionsReached:
    - EdgeIterator::Next
    - EdgeIterator::Done
    - S2::CrossingSign
    - EdgeIterator::edge
    - std::make_pair
    - EdgeIterator::shape_edge_id
    - EdgePairVector::push_back
    linkageType: ''
    returnType: EdgePairVector
    signature: "EdgePairVector GetCrossingEdgePairsBruteForce(const S2ShapeIndex&
      index,\n                                              CrossingType type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:120,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:120,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:121,1
    - Dst: EdgeIterator::Done
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:122,1
    - Dst: EdgeIterator::Next
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:122,1
    - Dst: EdgeIterator::edge
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:123,1
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:124,1
    - Dst: EdgePairVector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:125,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:126,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:126,1
    - Dst: EdgeIterator::shape_edge_id
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ' indexA'
    - ' indexB'
    - type
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: s2shapeutil::GetCrossingEdgePairsBruteForce
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 2
    functionsReached:
    - EdgeIterator::Next
    - EdgeIterator::Done
    - S2::CrossingSign
    - EdgeIterator::edge
    - std::make_pair
    - EdgeIterator::shape_edge_id
    - EdgePairVector::push_back
    linkageType: ''
    returnType: EdgePairVector
    signature: "EdgePairVector GetCrossingEdgePairsBruteForce(const S2ShapeIndex&
      indexA,\n                                              const S2ShapeIndex& indexB,\n
      \                                             CrossingType type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' pair'
    argTypes:
    - std::ostream
    - std::pair<ShapeEdgeId, ShapeEdgeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: "& operator<<(std::ostream& os,\n                         const
      std::pair<ShapeEdgeId, ShapeEdgeId>& pair)"
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                         const
      std::pair<ShapeEdgeId, ShapeEdgeId>& pair)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:143,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:144,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:145,1
    - Dst: std::count
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:147,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:147,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:147,1
    - Dst: std::count
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:152,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:152,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' expected'
    - ' actual'
    argTypes:
    - EdgePairVector
    - EdgePairVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: s2shapeutil::TestCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 2
    functionsReached:
    - end
    - ADD_FAILURE
    - std::count
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: "void TestCrossingEdgePairs(const EdgePairVector& expected,\n                           const
      EdgePairVector& actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetCrossingEdgePairsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:163,1
    - Dst: s2shapeutil::GetCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:165,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:166,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:166,1
    - Dst: s2shapeutil::TestCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' index'
    - type
    - expected_crossing_count
    argTypes:
    - S2ShapeIndex
    - CrossingType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: s2shapeutil::TestGetCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 4
    functionsReached:
    - EdgePairVector::size
    - s2shapeutil::GetCrossingEdgePairsBruteForce
    - s2shapeutil::TestCrossingEdgePairs
    - s2shapeutil::GetCrossings
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestGetCrossingEdgePairs(const S2ShapeIndex& index,\n                              CrossingType
      type, int expected_crossing_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::GetCrossingEdgePairsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:176,1
    - Dst: s2shapeutil::GetCrossings
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:178,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:179,1
    - Dst: EdgePairVector::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:179,1
    - Dst: s2shapeutil::TestCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' indexA'
    - ' indexB'
    - type
    - expected_crossing_count
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - CrossingType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: s2shapeutil::TestGetCrossingEdgePairs
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 4
    functionsReached:
    - EdgePairVector::size
    - s2shapeutil::GetCrossingEdgePairsBruteForce
    - s2shapeutil::TestCrossingEdgePairs
    - s2shapeutil::GetCrossings
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestGetCrossingEdgePairs(const S2ShapeIndex& indexA,\n                              const
      S2ShapeIndex& indexB, CrossingType type,\n                             int expected_crossing_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:184,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:185,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::TestGetCrossingEdgePairs
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingEdgePairs, NoIntersectionsOneIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:190,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:191,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:192,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::TestGetCrossingEdgePairs
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingEdgePairs, NoIntersectionsTwoIndexes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:208,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:209,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:212,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:212,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:213,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:214,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:214,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:215,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:217,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:217,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:218,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 220
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - std::move
    - s2shapeutil::TestGetCrossingEdgePairs
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2EdgeVectorShape>
    - S2LatLng::FromDegrees
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingEdgePairs, EdgeGridOneIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:226,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:227,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:228,1
    - Dst: make_unique<S2EdgeVectorShape>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:229,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:232,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:232,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:233,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:234,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:234,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:235,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:237,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:237,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:238,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:238,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:240,1
    - Dst: s2shapeutil::TestGetCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 242
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - std::move
    - s2shapeutil::TestGetCrossingEdgePairs
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - make_unique<S2EdgeVectorShape>
    - S2LatLng::FromDegrees
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(GetCrossingEdgePairs, EdgeGridTwoIndexes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:248,1
    - Dst: s2shapeutil::FindSelfIntersection
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:249,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - MutableS2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: s2shapeutil::HasSelfIntersection
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 1
    functionsReached:
    - ABSL_VLOG
    - s2shapeutil::FindSelfIntersection
    - S2Error::S2Error
    linkageType: ''
    returnType: bool
    signature: bool HasSelfIntersection(const MutableS2ShapeIndex& index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector<unique_ptr<S2Loop>>*::size
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:261,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:262,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:263,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:264,1
    - Dst: make_unique<S2Polygon::Shape>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:265,1
    - Dst: s2shapeutil::HasSelfIntersection
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:265,1
    - Dst: S2Polygon::Release
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:266,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:268,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:269,1
    - Dst: unique_ptr::num_vertices
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:271,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:272,1
    - Dst: unique_ptr::vertex
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:272,1
    - Dst: make_unique<S2Loop>
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:274,1
    - Dst: s2shapeutil::TestHasCrossingPermutations
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:275,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - loops
    - i
    - has_crossing
    argTypes:
    - vector<unique_ptr<S2Loop>>*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 279
    functionName: s2shapeutil::TestHasCrossingPermutations
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 3
    functionsReached:
    - vector::push_back
    - make_unique<S2Polygon::Shape>
    - unique_ptr::num_vertices
    - make_unique<S2Loop>
    - std::move
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2shapeutil::TestHasCrossingPermutations
    - S2Polygon::Release
    - unique_ptr::vertex
    - EXPECT_EQ
    - vector<unique_ptr<S2Loop>>*::size
    - s2shapeutil::HasSelfIntersection
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: "void TestHasCrossingPermutations(vector<unique_ptr<S2Loop>>* loops,
      int i,\n                                 bool has_crossing)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:288,1
    - Dst: unique_ptr::Release
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:289,1
    - Dst: s2shapeutil::TestHasCrossingPermutations
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - polygon_str
    - has_crossing
    argTypes:
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: s2shapeutil::TestHasCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 1
    functionsReached:
    - s2shapeutil::TestHasCrossingPermutations
    - s2textformat::MakePolygonOrDie
    - unique_ptr::Release
    linkageType: ''
    returnType: void
    signature: void TestHasCrossing(string_view polygon_str, bool has_crossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:295,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:296,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:297,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:298,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:299,1
    - Dst: s2shapeutil::TestHasCrossing
      Src: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
    functionUses: 0
    functionsReached:
    - s2shapeutil::TestHasCrossing
    linkageType: ''
    returnType: void
    signature: void TEST(FindSelfIntersection, Basic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:46,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:51,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:53,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:57,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ' target'
    - ' shape'
    - chain
    - num_points
    argTypes:
    - S2Point
    - S2Shape
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 65
    functionName: ClosestOfNPoints
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.cc
    functionUses: 0
    functionsReached:
    - S1ChordAngle::is_infinity
    - Norm2
    - chain_edge
    - chain
    - std::max
    linkageType: ''
    returnType: int
    signature: "int ClosestOfNPoints(const S2Point& target, const S2Shape& shape,\n
      \                                  int chain, int num_points)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape*::chain_edge
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:70,1
    - Dst: S2Shape*::chain
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - shape
    - chain
    - edge
    argTypes:
    - S2Shape*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: NextChainEdge
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.cc
    functionUses: 0
    functionsReached:
    - S2Shape*::chain
    - S2Shape*::chain_edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: "S2Shape::Edge NextChainEdge(const S2Shape* shape, int chain,\n                                          int
      edge)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape*::chain
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:78,1
    - Dst: S2Shape*::chain_edge
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - shape
    - chain
    - edge
    argTypes:
    - S2Shape*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: PrevChainEdge
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.cc
    functionUses: 0
    functionsReached:
    - S2Shape*::chain
    - S2Shape*::chain_edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: "S2Shape::Edge PrevChainEdge(const S2Shape* shape, int chain,\n                                          int
      edge)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeNestingQuery::Init
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - S2ShapeIndex*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: S2ShapeNestingQuery::S2ShapeNestingQuery
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.cc
    functionUses: 0
    functionsReached:
    - S2ShapeNestingQuery::Init
    linkageType: ''
    returnType: void
    signature: "void S2ShapeNestingQuery::S2ShapeNestingQuery(const S2ShapeIndex*
      index,\n                                         const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - S2ShapeIndex*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: S2ShapeNestingQuery::Init
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ShapeNestingQuery::Init(const S2ShapeIndex* index,\n                               const
      Options& options)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:99,1
    - Dst: S2Shape*::num_chains
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:100,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:103,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:103,1
    - Dst: S2Shape*::num_chains
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:105,1
    - Dst: S2ShapeNestingQuery::ChainRelation::MakeShell
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:109,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:120,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:122,1
    - Dst: S2Shape*::chain
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:122,1
    - Dst: S2Shape*::chain_edge
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:124,1
    - Dst: S2Shape*::chain_edge
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:125,1
    - Dst: S2Shape*::chain_edge
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:126,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:130,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:131,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:137,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:140,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:143,1
    - Dst: S2Shape*::chain
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:143,1
    - Dst: ClosestOfNPoints
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:146,1
    - Dst: S2Shape*::chain_edge
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:147,1
    - Dst: NextChainEdge
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:164,1
    - Dst: PrevChainEdge
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:165,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:167,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:168,1
    - Dst: Set
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:169,1
    - Dst: Set
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:170,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:175,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:176,1
    - Dst: Set
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:177,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:179,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:179,1
    - Dst: S2CrossingEdgeQuery::GetCrossingEdges
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:186,1
    - Dst: S2Shape*::chain_position
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:192,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:192,1
    - Dst: Toggle
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:194,1
    - Dst: Toggle
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:196,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:198,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:199,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:199,1
    - Dst: Set
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:206,1
    - Dst: Get
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:206,1
    - Dst: Get
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:207,1
    - Dst: Set
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:208,1
    - Dst: ABSL_VLOG_IS_ON
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:211,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:212,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:214,1
    - Dst: absl::StreamFormat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:214,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:215,1
    - Dst: GetOnesCount
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:223,1
    - Dst: FindFirstSetBit
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:228,1
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:232,1
    - Dst: Get
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:233,1
    - Dst: Set
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:234,1
    - Dst: GetOnesCount
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:238,1
    - Dst: ABSL_VLOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:244,1
    - Dst: ABSL_VLOG_IS_ON
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:245,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:246,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:248,1
    - Dst: absl::StreamFormat
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:248,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:249,1
    - Dst: static_cast<Bitmap64::size_type>
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:254,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:263,1
    - Dst: GetOnesCount
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:263,1
    - Dst: FindFirstSetBit
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:266,1
    - Dst: SetParent
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:267,1
    - Dst: AddHole
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:268,1
    - Dst: parent_id
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:278,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:280,1
    - Dst: ClearParent
      Src: /src/s2geometry/src/s2/s2shape_nesting_query.cc:283,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 89
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 288
    functionName: S2ShapeNestingQuery::ComputeShapeNesting
    functionSourceFile: /src/s2geometry/src/s2/s2shape_nesting_query.cc
    functionUses: 9
    functionsReached:
    - static_cast<Bitmap64::size_type>
    - s2pred::OrderedCCW
    - shape
    - S2Shape*::num_chains
    - absl::StreamFormat
    - parent_id
    - ABSL_LOG
    - NextChainEdge
    - S2Shape*::chain_position
    - ABSL_DCHECK_GE
    - ToString
    - GetOnesCount
    - id
    - S2Shape*::chain
    - options
    - ABSL_DCHECK_LT
    - PrevChainEdge
    - S2ShapeNestingQuery::ChainRelation::MakeShell
    - ClosestOfNPoints
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_LE
    - Toggle
    - AddHole
    - S2CrossingEdgeQuery::GetCrossingEdges
    - FindNextSetBit
    - Set
    - FindFirstSetBit
    - Get
    - ABSL_DCHECK_NE
    - S2Shape*::dimension
    - ABSL_VLOG
    - SetParent
    - ClearParent
    - ABSL_VLOG_IS_ON
    - S2Shape*::chain_edge
    linkageType: ''
    returnType: vector<S2ShapeNestingQuery::ChainRelation>
    signature: vector<S2ShapeNestingQuery::ChainRelation> S2ShapeNestingQuery::ComputeShapeNesting(int
      shape_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2cell_index.cc:34,1
    - Dst: S2CellId::is_leaf
      Src: /src/s2geometry/src/s2/s2cell_index.cc:34,1
    - Dst: std::upper_bound
      Src: /src/s2geometry/src/s2/s2cell_index.cc:35,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2cell_index.cc:35,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2cell_index.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: S2CellIndex::RangeIterator::Seek(S2CellId target)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.cc
    functionUses: 0
    functionsReached:
    - S2CellId::is_leaf
    - std::upper_bound
    - end
    - begin
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::RangeIterator::Seek(S2CellId target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_id
      Src: /src/s2geometry/src/s2/s2cell_index.cc:40,1
    - Dst: start_id
      Src: /src/s2geometry/src/s2/s2cell_index.cc:43,1
    - Dst: S2CellIndex::ContentsIterator::set_done
      Src: /src/s2geometry/src/s2/s2cell_index.cc:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 65
    functionName: S2CellIndex::ContentsIterator::StartUnion(const RangeIterator& range)
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.cc
    functionUses: 0
    functionsReached:
    - start_id
    - S2CellIndex::ContentsIterator::set_done
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::ContentsIterator::StartUnion(const RangeIterator&
      range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::Add
      Src: /src/s2geometry/src/s2/s2cell_index.cc:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' cell_ids'
    - label
    argTypes:
    - S2CellUnion
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: S2CellIndex::Add
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.cc
    functionUses: 17
    functionsReached:
    - S2CellIndex::Add
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::Add(const S2CellUnion& cell_ids, Label label)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2cell_index.cc:102,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2cell_index.cc:102,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index.cc:107,1
    - Dst: Delta
      Src: /src/s2geometry/src/s2/s2cell_index.cc:107,1
    - Dst: cell_id::range_min
      Src: /src/s2geometry/src/s2/s2cell_index.cc:107,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index.cc:108,1
    - Dst: Delta
      Src: /src/s2geometry/src/s2/s2cell_index.cc:108,1
    - Dst: cell_id::range_max
      Src: /src/s2geometry/src/s2/s2cell_index.cc:108,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_index.cc:109,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index.cc:113,1
    - Dst: Delta
      Src: /src/s2geometry/src/s2/s2cell_index.cc:114,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2cell_index.cc:114,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index.cc:114,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2cell_index.cc:115,1
    - Dst: Delta
      Src: /src/s2geometry/src/s2/s2cell_index.cc:116,1
    - Dst: S2CellId::End
      Src: /src/s2geometry/src/s2/s2cell_index.cc:116,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2cell_index.cc:116,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2cell_index.cc:117,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2cell_index.cc:117,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2cell_index.cc:117,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2cell_index.cc:121,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2cell_index.cc:122,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_index.cc:122,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_index.cc:124,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2cell_index.cc:127,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index.cc:129,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2cell_index.cc:130,1
    - Dst: S2CellId::Sentinel
      Src: /src/s2geometry/src/s2/s2cell_index.cc:131,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2cell_index.cc:135,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 137
    functionName: S2CellIndex::Build
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.cc
    functionUses: 20
    functionsReached:
    - vector::push_back
    - Delta
    - reserve
    - S2CellId::None
    - cell_id::range_min
    - size
    - vector::reserve
    - vector::end
    - clear
    - push_back
    - vector::size
    - S2CellId::Sentinel
    - S2CellId::Begin
    - std::sort
    - S2CellId::End
    - cell_id::range_max
    - vector::begin
    linkageType: ''
    returnType: void
    signature: void S2CellIndex::Build()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - _start_id
    - _cell_id
    - _label
    argTypes:
    - S2CellId
    - S2CellId
    - Label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: Delta
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.cc
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Delta(S2CellId _start_id, S2CellId _cell_id, Label _label)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - Delta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: operator<(const Delta& y) const
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Delta& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellIndex::GetIntersectingLabels
      Src: /src/s2geometry/src/s2/s2cell_index.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: S2CellIndex::GetIntersectingLabels
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.cc
    functionUses: 3
    functionsReached:
    - S2CellIndex::GetIntersectingLabels
    linkageType: ''
    returnType: flat_hash_set<Label>
    signature: "flat_hash_set<Label> S2CellIndex::GetIntersectingLabels(\n    const
      S2CellUnion& target) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flat_hash_set<Label>*::clear
      Src: /src/s2geometry/src/s2/s2cell_index.cc:148,1
    - Dst: S2CellIndex::VisitIntersectingCells
      Src: /src/s2geometry/src/s2/s2cell_index.cc:149,1
    - Dst: flat_hash_set<Label>*::insert
      Src: /src/s2geometry/src/s2/s2cell_index.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' target'
    - labels
    argTypes:
    - S2CellUnion
    - flat_hash_set<Label>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: S2CellIndex::GetIntersectingLabels
    functionSourceFile: /src/s2geometry/src/s2/s2cell_index.cc
    functionUses: 3
    functionsReached:
    - flat_hash_set<Label>*::clear
    - flat_hash_set<Label>*::insert
    - S2CellIndex::VisitIntersectingCells
    linkageType: ''
    returnType: void
    signature: "void S2CellIndex::GetIntersectingLabels(const S2CellUnion& target,\n
      \                                       flat_hash_set<Label>* labels) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2error.cc:28,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2error.cc:30,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:34,1
    - Dst: code
      Src: /src/s2geometry/src/s2/s2error.cc:36,1
    - Dst: S2Error::Cancelled
      Src: /src/s2geometry/src/s2/s2error.cc:38,1
    - Dst: S2Error::InvalidArgument
      Src: /src/s2geometry/src/s2/s2error.cc:42,1
    - Dst: S2Error::DataLoss
      Src: /src/s2geometry/src/s2/s2error.cc:46,1
    - Dst: S2Error::ResourceExhausted
      Src: /src/s2geometry/src/s2/s2error.cc:50,1
    - Dst: S2Error::FailedPrecondition
      Src: /src/s2geometry/src/s2/s2error.cc:54,1
    - Dst: S2Error::OutOfRange
      Src: /src/s2geometry/src/s2/s2error.cc:58,1
    - Dst: S2Error::Unimplemented
      Src: /src/s2geometry/src/s2/s2error.cc:62,1
    - Dst: S2Error::Internal
      Src: /src/s2geometry/src/s2/s2error.cc:66,1
    - Dst: S2Error::Unknown
      Src: /src/s2geometry/src/s2/s2error.cc:70,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - ' status'
    argTypes:
    - absl::Status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 74
    functionName: ToS2Error
    functionSourceFile: /src/s2geometry/src/s2/s2error.cc
    functionUses: 1
    functionsReached:
    - S2Error::DataLoss
    - S2Error::Cancelled
    - S2Error::FailedPrecondition
    - S2Error::OutOfRange
    - S2Error::InvalidArgument
    - message
    - S2Error::ResourceExhausted
    - S2Error::Unimplemented
    - code
    - ok
    - S2Error::Internal
    - S2Error::Unknown
    - S2Error::S2Error
    linkageType: ''
    returnType: S2Error
    signature: S2Error ToS2Error(const absl::Status& status)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: code
      Src: /src/s2geometry/src/s2/s2error.cc:79,1
    - Dst: code
      Src: /src/s2geometry/src/s2/s2error.cc:80,1
    - Dst: absl::UnknownError
      Src: /src/s2geometry/src/s2/s2error.cc:81,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2error.cc:82,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:82,1
    - Dst: code
      Src: /src/s2geometry/src/s2/s2error.cc:82,1
    - Dst: static_cast<S2Error::Code>
      Src: /src/s2geometry/src/s2/s2error.cc:85,1
    - Dst: code
      Src: /src/s2geometry/src/s2/s2error.cc:85,1
    - Dst: absl::OkStatus
      Src: /src/s2geometry/src/s2/s2error.cc:87,1
    - Dst: absl::CancelledError
      Src: /src/s2geometry/src/s2/s2error.cc:90,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:90,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2error.cc:93,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:93,1
    - Dst: absl::DataLossError
      Src: /src/s2geometry/src/s2/s2error.cc:96,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:96,1
    - Dst: absl::ResourceExhaustedError
      Src: /src/s2geometry/src/s2/s2error.cc:99,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:99,1
    - Dst: absl::FailedPreconditionError
      Src: /src/s2geometry/src/s2/s2error.cc:102,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:102,1
    - Dst: absl::InvalidArgumentError
      Src: /src/s2geometry/src/s2/s2error.cc:129,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2error.cc:130,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:130,1
    - Dst: code
      Src: /src/s2geometry/src/s2/s2error.cc:130,1
    - Dst: absl::OutOfRangeError
      Src: /src/s2geometry/src/s2/s2error.cc:133,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:133,1
    - Dst: absl::UnimplementedError
      Src: /src/s2geometry/src/s2/s2error.cc:136,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:136,1
    - Dst: absl::InternalError
      Src: /src/s2geometry/src/s2/s2error.cc:139,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:139,1
    - Dst: absl::UnknownError
      Src: /src/s2geometry/src/s2/s2error.cc:142,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/s2error.cc:143,1
    - Dst: message
      Src: /src/s2geometry/src/s2/s2error.cc:143,1
    - Dst: code
      Src: /src/s2geometry/src/s2/s2error.cc:143,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2error.cc:149,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2error.cc:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - S2Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 152
    functionName: ToStatus
    functionSourceFile: /src/s2geometry/src/s2/s2error.cc
    functionUses: 4
    functionsReached:
    - absl::InvalidArgumentError
    - absl::ResourceExhaustedError
    - absl::OkStatus
    - absl::OutOfRangeError
    - absl::InternalError
    - absl::CancelledError
    - absl::UnknownError
    - absl::StrCat
    - message
    - static_cast<S2Error::Code>
    - code
    - absl::UnimplementedError
    - ABSL_UNREACHABLE
    - absl::FailedPreconditionError
    - absl::DataLossError
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status ToStatus(const S2Error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: S2ShapeIndexRegion::S2ShapeIndexRegion
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexRegion(const S2ShapeIndexRegion&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& operator=(const S2ShapeIndexRegion&)'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndexRegion
    signature: S2ShapeIndexRegion & operator=(const S2ShapeIndexRegion&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: S2ShapeIndexRegion::S2ShapeIndexRegion
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexRegion(S2ShapeIndexRegion&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: '& operator=(S2ShapeIndexRegion&&)'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndexRegion
    signature: S2ShapeIndexRegion & operator=(S2ShapeIndexRegion&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - IndexType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: S2ShapeIndexRegion<IndexType>::S2ShapeIndexRegion
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ShapeIndexRegion<IndexType>::S2ShapeIndexRegion(const IndexType*
      index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: '& S2ShapeIndexRegion<IndexType>::index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached:
    - index
    linkageType: ''
    returnType: IndexType
    signature: IndexType & S2ShapeIndexRegion<IndexType>::index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:215,1
    - Dst: S2ShapeIndexRegion::S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: S2ShapeIndexRegion<IndexType>::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached:
    - index
    - S2ShapeIndexRegion::S2ShapeIndexRegion
    linkageType: ''
    returnType: S2Region
    signature: S2Region * S2ShapeIndexRegion<IndexType>::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion<IndexType>::GetCellUnionBound
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:221,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:222,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: S2ShapeIndexRegion<IndexType>::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached:
    - std::move
    - S2ShapeIndexRegion<IndexType>::GetCellUnionBound
    - S2CellUnion
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2ShapeIndexRegion<IndexType>::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion<IndexType>::GetCellUnionBound
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:228,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:229,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: S2ShapeIndexRegion<IndexType>::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached:
    - std::move
    - S2ShapeIndexRegion<IndexType>::GetCellUnionBound
    - S2CellUnion
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2ShapeIndexRegion<IndexType>::GetRectBound() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<S2CellId>*::clear
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:256,1
    - Dst: std::vector<S2CellId>*::reserve
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:257,1
    - Dst: Finish
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:260,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:261,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:262,1
    - Dst: Begin
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:263,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:264,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:268,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:272,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:273,1
    - Dst: auto::next
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:273,1
    - Dst: auto::range_max
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:275,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:275,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:279,1
    - Dst: Seek
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:280,1
    - Dst: auto::range_max
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:280,1
    - Dst: Prev
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:281,1
    - Dst: S2ShapeIndexRegion<IndexType>::CoverRange
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:282,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:282,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:283,1
    - Dst: S2ShapeIndexRegion<IndexType>::CoverRange
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:286,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - std::vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 287
    functionName: S2ShapeIndexRegion<IndexType>::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 2
    functionsReached:
    - std::vector<S2CellId>*::clear
    - Seek
    - auto::range_max
    - id
    - Prev
    - auto::next
    - S2ShapeIndexRegion<IndexType>::CoverRange
    - S2CellId::parent
    - Next
    - std::vector<S2CellId>*::reserve
    - Finish
    - Begin
    linkageType: ''
    returnType: void
    signature: "void S2ShapeIndexRegion<IndexType>::GetCellUnionBound(\n    std::vector<S2CellId>
      *cell_ids) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:298,1
    - Dst: S2CellId::GetCommonAncestorLevel
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:301,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:302,1
    - Dst: std::vector<S2CellId>*::push_back
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:303,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - first
    - last
    - cell_ids
    argTypes:
    - S2CellId
    - S2CellId
    - std::vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 305
    functionName: S2ShapeIndexRegion<IndexType>::CoverRange
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 1
    functionsReached:
    - S2CellId::parent
    - std::vector<S2CellId>*::push_back
    - ABSL_DCHECK_GE
    - S2CellId::GetCommonAncestorLevel
    linkageType: ''
    returnType: void
    signature: "void S2ShapeIndexRegion<IndexType>::CoverRange(\n    S2CellId first,
      S2CellId last, std::vector<S2CellId> *cell_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShapeContains
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:310,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' clipped'
    - ' p'
    argTypes:
    - S2ClippedShape
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: S2ShapeIndexRegion<IndexType>::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached:
    - id
    - ShapeContains
    linkageType: ''
    returnType: bool
    signature: "bool S2ShapeIndexRegion<IndexType>::Contains(\n    const S2ClippedShape&
      clipped, const S2Point& p) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:315,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:315,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:324,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:324,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:324,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:325,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:326,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:327,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:330,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:330,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:331,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:331,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:334,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:334,1
    - Dst: S2ShapeIndexRegion<IndexType>::AnyEdgeIntersects
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:335,1
    - Dst: S2ShapeIndexRegion<IndexType>::Contains
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:336,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:336,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 342
    functionName: S2ShapeIndexRegion<IndexType>::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 1
    functionsReached:
    - index
    - S2ShapeIndexRegion<IndexType>::Contains
    - S2ShapeIndexRegion<IndexType>::AnyEdgeIntersects
    - num_edges
    - id
    - shape_id
    - Locate
    - clipped
    - contains_center
    - ABSL_DCHECK
    - cell
    - GetCenter
    - num_clipped
    linkageType: ''
    returnType: bool
    signature: bool S2ShapeIndexRegion<IndexType>::Contains(const S2Cell& target)
      const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:346,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:346,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:360,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:360,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:360,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:361,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:361,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:364,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:365,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:366,1
    - Dst: S2ShapeIndexRegion<IndexType>::AnyEdgeIntersects
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:367,1
    - Dst: S2ShapeIndexRegion<IndexType>::Contains
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:368,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 371
    functionName: S2ShapeIndexRegion<IndexType>::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached:
    - S2ShapeIndexRegion<IndexType>::Contains
    - S2ShapeIndexRegion<IndexType>::AnyEdgeIntersects
    - id
    - Locate
    - clipped
    - ABSL_DCHECK
    - cell
    - GetCenter
    - num_clipped
    linkageType: ''
    returnType: bool
    signature: bool S2ShapeIndexRegion<IndexType>::MayIntersect(const S2Cell& target)
      const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:377,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:377,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:387,1
    - Dst: done
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:388,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:388,1
    - Dst: Next
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:388,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:389,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:390,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:391,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:392,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:393,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:393,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:397,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:403,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:404,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:407,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:409,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:409,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:410,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:410,1
    - Dst: S2ShapeIndexRegion<IndexType>::AnyEdgeIntersects
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:412,1
    - Dst: S2ShapeIndexRegion<IndexType>::Contains
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:413,1
    - Dst: GetCenter
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:413,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:419,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:419,1
    - Dst: ABSL_UNREACHABLE
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:424,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - ' target'
    - visitor
    argTypes:
    - S2Cell
    - absl::FunctionRef<bool(int shape_id, bool contains_target)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 425
    functionName: S2ShapeIndexRegion<IndexType>::VisitIntersectingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached:
    - done
    - S2ShapeIndexRegion<IndexType>::Contains
    - S2ShapeIndexRegion<IndexType>::AnyEdgeIntersects
    - num_edges
    - id
    - shape_id
    - clipped
    - Locate
    - visitor
    - Next
    - contains_center
    - ABSL_UNREACHABLE
    - cell
    - GetCenter
    - num_clipped
    linkageType: ''
    returnType: bool
    signature: "bool S2ShapeIndexRegion<IndexType>::VisitIntersectingShapeIds(\n    const
      S2Cell& target,\n    absl::FunctionRef<bool(int shape_id, bool contains_target)>
      visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion<IndexType>::VisitIntersectingShapeIds
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:432,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:433,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' target'
    - visitor
    argTypes:
    - S2Cell
    - absl::FunctionRef<bool(const S2Shape* shape, bool contains_target)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: S2ShapeIndexRegion<IndexType>::VisitIntersectingShapes
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached:
    - index
    - visitor
    - S2ShapeIndexRegion<IndexType>::VisitIntersectingShapeIds
    linkageType: ''
    returnType: bool
    signature: "bool S2ShapeIndexRegion<IndexType>::VisitIntersectingShapes(\n    const
      S2Cell& target,\n    absl::FunctionRef<bool(const S2Shape* shape, bool contains_target)>\n
      \       visitor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:439,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:440,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:441,1
    - Dst: S2ShapeIndexRegion<IndexType>::Contains
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:442,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 446
    functionName: S2ShapeIndexRegion<IndexType>::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 4
    functionsReached:
    - S2ShapeIndexRegion<IndexType>::Contains
    - Locate
    - clipped
    - cell
    - num_clipped
    linkageType: ''
    returnType: bool
    signature: bool S2ShapeIndexRegion<IndexType>::Contains(const S2Point& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetBoundUV
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:453,1
    - Dst: face
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:454,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:455,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:455,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:456,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:458,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:458,1
    - Dst: S2::ClipToPaddedFace
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:460,1
    - Dst: S2::IntersectsRect
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' clipped'
    - ' target'
    argTypes:
    - S2ClippedShape
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 466
    functionName: S2ShapeIndexRegion<IndexType>::AnyEdgeIntersects
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 3
    functionsReached:
    - index
    - num_edges
    - shape_id
    - face
    - S2::IntersectsRect
    - edge
    - S2::ClipToPaddedFace
    - GetBoundUV
    linkageType: ''
    returnType: bool
    signature: "bool S2ShapeIndexRegion<IndexType>::AnyEdgeIntersects(\n    const
      S2ClippedShape& clipped, const S2Cell& target) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndexRegion
      Src: /src/s2geometry/src/s2/s2shape_index_region.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - IndexType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 473
    functionName: MakeS2ShapeIndexRegion
    functionSourceFile: /src/s2geometry/src/s2/s2shape_index_region.h
    functionUses: 0
    functionsReached:
    - S2ShapeIndexRegion
    linkageType: ''
    returnType: S2ShapeIndexRegion<IndexType>
    signature: "S2ShapeIndexRegion<IndexType> MakeS2ShapeIndexRegion(\n    const IndexType*
      index ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:58,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:59,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:60,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:60,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:61,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:61,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:62,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:62,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:67,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:67,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:68,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:68,1
    - Dst: set_allow_vertex_filtering
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:76,1
    - Dst: set_degenerate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:78,1
    - Dst: set_degenerate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:79,1
    - Dst: set_sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' options'
    - ' graph_options_out'
    argTypes:
    - Options
    - vector<GraphOptions>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: s2builderutil::ClosedSetNormalizer::ClosedSetNormalizer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - edge_type
    - ABSL_DCHECK_EQ
    - set_sibling_pairs
    - Stats::max
    - size
    - set_degenerate_edges
    - set_allow_vertex_filtering
    - sibling_pairs
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void ClosedSetNormalizer::ClosedSetNormalizer(\n    const Options&
      options, const vector<GraphOptions>& graph_options_out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:87,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:87,1
    - Dst: suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:89,1
    - Dst: GetInEdgeIds
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:91,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:92,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:92,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:94,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:95,1
    - Dst: NormalizeEdges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:105,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:116,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:116,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:116,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:124,1
    - Dst: Graph
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:124,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:125,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:125,1
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:126,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:126,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:127,1
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:127,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:128,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:133,1
    - Dst: Graph::ProcessEdges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:136,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:140,1
    - Dst: Graph
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:140,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:141,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:143,1
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:143,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:144,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - vector<Graph>
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 148
    functionName: "& ClosedSetNormalizer::Run(const vector<Graph>& g,\n                                              S2Error*
      absl_nonnull error)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - Graph::ProcessEdges
    - label_set_ids
    - num_edges
    - is_full_polygon_predicate
    - edges
    - resize
    - ABSL_DCHECK
    - suppress_lower_dimensions
    - input_edge_id_set_lexicon
    - Graph
    - vertices
    - options
    - NormalizeEdges
    - push_back
    - input_edge_id_set_ids
    - static_cast<size_t>
    - size
    - GetInEdgeIds
    - edge
    - label_set_lexicon
    linkageType: ''
    returnType: vector<Graph>
    signature: "vector<Graph> & ClosedSetNormalizer::Run(const vector<Graph>& g,\n
      \                                             S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:153,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - e
    argTypes:
    - Graph
    - EdgeId*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: s2builderutil::ClosedSetNormalizer::Advance
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - num_edges
    - edge
    linkageType: ''
    returnType: Edge
    signature: Edge ClosedSetNormalizer::Advance(const Graph& g, EdgeId* e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:160,1
    - Dst: absl::Span<const EdgeId>::size
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:160,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:162,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' g'
    - in_edges
    - i
    argTypes:
    - Graph
    - absl::Span<const EdgeId>
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: s2builderutil::ClosedSetNormalizer::AdvanceIncoming
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - edge
    - BUF_reverse
    - absl::Span<const EdgeId>::size
    linkageType: ''
    returnType: Edge
    signature: "Edge ClosedSetNormalizer::AdvanceIncoming(\n    const Graph& g, absl::Span<const
      EdgeId> in_edges, int* i) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FindPolygonDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:169,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:170,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:178,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:179,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:180,1
    - Dst: s2builderutil::ClosedSetNormalizer::AdvanceIncoming
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:181,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:185,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:187,1
    - Dst: suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:188,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:189,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:194,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:198,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:199,1
    - Dst: s2builderutil::ClosedSetNormalizer::is_suppressed
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:204,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:204,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:207,1
    - Dst: s2builderutil::ClosedSetNormalizer::AdvanceIncoming
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:213,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:215,1
    - Dst: s2builderutil::ClosedSetNormalizer::is_suppressed
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:218,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:218,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:219,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:221,1
    - Dst: s2builderutil::ClosedSetNormalizer::is_suppressed
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:224,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:224,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:225,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 2
    argNames:
    - g
    - absl_nonnull
    argTypes:
    - absl::Span<const Graph>
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 228
    functionName: s2builderutil::ClosedSetNormalizer::NormalizeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - auto::end
    - s2builderutil::ClosedSetNormalizer::AdvanceIncoming
    - suppress_lower_dimensions
    - auto::begin
    - options
    - s2builderutil::ClosedSetNormalizer::Advance
    - s2builderutil::ClosedSetNormalizer::is_suppressed
    - FindPolygonDegeneracies
    - s2builderutil::ClosedSetNormalizer::AddEdge
    linkageType: ''
    returnType: void
    signature: "void ClosedSetNormalizer::NormalizeEdges(absl::Span<const Graph> g,\n
      \                                        S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:232,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:232,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:233,1
    - Dst: input_edge_id_set_id
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - new_dim
    - ' g'
    - e
    argTypes:
    - int
    - Graph
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: s2builderutil::ClosedSetNormalizer::AddEdge
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 1
    functionsReached:
    - input_edge_id_set_id
    - edge
    - push_back
    linkageType: ''
    returnType: void
    signature: "void ClosedSetNormalizer::AddEdge(int new_dim, const Graph& g,\n                                         EdgeId
      e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: s2builderutil::ClosedSetNormalizer::is_suppressed
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 1
    functionsReached:
    - suppress_lower_dimensions
    linkageType: ''
    returnType: bool
    signature: bool ClosedSetNormalizer::is_suppressed(VertexId v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:262,1
    - Dst: Impl::Impl
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:262,1
    - Dst: LayerVector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:265,1
    - Dst: make_unique<DimensionLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:265,1
    - Dst: shared_ptr::normalizer_::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - output_layers
    - ' options'
    argTypes:
    - LayerVector
    - ClosedSetNormalizer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: s2builderutil::NormalizeClosedSetImpl::Create
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - std::move
    - LayerVector::push_back
    - Impl::Impl
    - make_unique<DimensionLayer>
    - shared_ptr::normalizer_::graph_options
    linkageType: ''
    returnType: LayerVector
    signature: "LayerVector Create(LayerVector output_layers,\n                            const
      ClosedSetNormalizer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:274,1
    - Dst: graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:276,1
    - Dst: graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:277,1
    - Dst: graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:278,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:280,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - output_layers
    - ' options'
    argTypes:
    - LayerVector
    - ClosedSetNormalizer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: s2builderutil::NormalizeClosedSetImpl::NormalizeClosedSetImpl
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - graph_options
    - std::move
    - size
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void NormalizeClosedSetImpl(LayerVector output_layers,\n                         const
      ClosedSetNormalizer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - dimension
    - ' graph_options'
    - impl
    argTypes:
    - int
    - GraphOptions
    - shared_ptr<NormalizeClosedSetImpl>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: s2builderutil::NormalizeClosedSetImpl::DimensionLayer::DimensionLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void DimensionLayer(int dimension, const GraphOptions& graph_options,\n
      \                  shared_ptr<NormalizeClosedSetImpl> impl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: s2builderutil::NormalizeClosedSetImpl::DimensionLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::NormalizeClosedSetImpl::DimensionLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: s2builderutil::NormalizeClosedSetImpl::DimensionLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 1
    functionsReached:
    - s2builderutil::NormalizeClosedSetImpl::DimensionLayer::Build
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:307,1
    - Dst: s2builderutil::NormalizeClosedSetImpl::Build
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - dimension
    - ' g'
    - absl_nonnull
    argTypes:
    - int
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 311
    functionName: s2builderutil::NormalizeClosedSetImpl::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 1
    functionsReached:
    - s2builderutil::NormalizeClosedSetImpl::Build
    - Run
    linkageType: ''
    returnType: void
    signature: void Build(int dimension, const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::NormalizeClosedSetImpl::Create
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:322,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - output_layers
    - ' options'
    argTypes:
    - LayerVector
    - ClosedSetNormalizer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: s2builderutil::NormalizeClosedSet
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - std::move
    - s2builderutil::NormalizeClosedSetImpl::Create
    linkageType: ''
    returnType: LayerVector
    signature: "LayerVector NormalizeClosedSet(LayerVector output_layers,\n                               const
      ClosedSetNormalizer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:58,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:59,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:60,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:60,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:61,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:61,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:62,1
    - Dst: edge_type
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:62,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:67,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:67,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:68,1
    - Dst: sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:68,1
    - Dst: set_allow_vertex_filtering
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:76,1
    - Dst: set_degenerate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:78,1
    - Dst: set_degenerate_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:79,1
    - Dst: set_sibling_pairs
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' options'
    - ' graph_options_out'
    argTypes:
    - Options
    - vector<GraphOptions>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: s2builderutil::ClosedSetNormalizer::ClosedSetNormalizer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - edge_type
    - ABSL_DCHECK_EQ
    - set_sibling_pairs
    - Stats::max
    - size
    - set_degenerate_edges
    - set_allow_vertex_filtering
    - sibling_pairs
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: "void ClosedSetNormalizer::ClosedSetNormalizer(\n    const Options&
      options, const vector<GraphOptions>& graph_options_out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:87,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:87,1
    - Dst: suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:89,1
    - Dst: GetInEdgeIds
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:91,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:92,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:92,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:94,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:95,1
    - Dst: NormalizeEdges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:105,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:116,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:116,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:116,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:124,1
    - Dst: Graph
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:124,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:125,1
    - Dst: edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:125,1
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:126,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:126,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:127,1
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:127,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:128,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:133,1
    - Dst: Graph::ProcessEdges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:136,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:140,1
    - Dst: Graph
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:140,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:141,1
    - Dst: label_set_ids
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:143,1
    - Dst: label_set_lexicon
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:143,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:144,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - vector<Graph>
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 148
    functionName: "& ClosedSetNormalizer::Run(const vector<Graph>& g,\n                                              S2Error*
      absl_nonnull error)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - Graph::ProcessEdges
    - label_set_ids
    - num_edges
    - is_full_polygon_predicate
    - edges
    - resize
    - ABSL_DCHECK
    - suppress_lower_dimensions
    - input_edge_id_set_lexicon
    - Graph
    - vertices
    - options
    - NormalizeEdges
    - push_back
    - input_edge_id_set_ids
    - static_cast<size_t>
    - size
    - GetInEdgeIds
    - edge
    - label_set_lexicon
    linkageType: ''
    returnType: vector<Graph>
    signature: "vector<Graph> & ClosedSetNormalizer::Run(const vector<Graph>& g,\n
      \                                             S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:153,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - e
    argTypes:
    - Graph
    - EdgeId*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: s2builderutil::ClosedSetNormalizer::Advance
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 1
    functionsReached:
    - num_edges
    - edge
    linkageType: ''
    returnType: Edge
    signature: Edge ClosedSetNormalizer::Advance(const Graph& g, EdgeId* e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:160,1
    - Dst: absl::Span<const EdgeId>::size
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:160,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:162,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' g'
    - in_edges
    - i
    argTypes:
    - Graph
    - absl::Span<const EdgeId>
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: s2builderutil::ClosedSetNormalizer::AdvanceIncoming
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - edge
    - BUF_reverse
    - absl::Span<const EdgeId>::size
    linkageType: ''
    returnType: Edge
    signature: "Edge ClosedSetNormalizer::AdvanceIncoming(\n    const Graph& g, absl::Span<const
      EdgeId> in_edges, int* i) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FindPolygonDegeneracies
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:169,1
    - Dst: auto::begin
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:170,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:178,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:179,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:180,1
    - Dst: s2builderutil::ClosedSetNormalizer::AdvanceIncoming
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:181,1
    - Dst: auto::end
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:185,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:187,1
    - Dst: suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:188,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:189,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:194,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:198,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:199,1
    - Dst: s2builderutil::ClosedSetNormalizer::is_suppressed
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:204,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:204,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:207,1
    - Dst: s2builderutil::ClosedSetNormalizer::AdvanceIncoming
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:213,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:215,1
    - Dst: s2builderutil::ClosedSetNormalizer::is_suppressed
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:218,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:218,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:219,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:221,1
    - Dst: s2builderutil::ClosedSetNormalizer::is_suppressed
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:224,1
    - Dst: s2builderutil::ClosedSetNormalizer::AddEdge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:224,1
    - Dst: s2builderutil::ClosedSetNormalizer::Advance
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:225,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 2
    argNames:
    - g
    - absl_nonnull
    argTypes:
    - absl::Span<const Graph>
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 228
    functionName: s2builderutil::ClosedSetNormalizer::NormalizeEdges
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - auto::end
    - s2builderutil::ClosedSetNormalizer::AdvanceIncoming
    - suppress_lower_dimensions
    - auto::begin
    - options
    - s2builderutil::ClosedSetNormalizer::Advance
    - s2builderutil::ClosedSetNormalizer::is_suppressed
    - FindPolygonDegeneracies
    - s2builderutil::ClosedSetNormalizer::AddEdge
    linkageType: ''
    returnType: void
    signature: "void ClosedSetNormalizer::NormalizeEdges(absl::Span<const Graph> g,\n
      \                                        S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:232,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:232,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:233,1
    - Dst: input_edge_id_set_id
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - new_dim
    - ' g'
    - e
    argTypes:
    - int
    - Graph
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: s2builderutil::ClosedSetNormalizer::AddEdge
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 2
    functionsReached:
    - input_edge_id_set_id
    - edge
    - push_back
    linkageType: ''
    returnType: void
    signature: "void ClosedSetNormalizer::AddEdge(int new_dim, const Graph& g,\n                                         EdgeId
      e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suppress_lower_dimensions
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: s2builderutil::ClosedSetNormalizer::is_suppressed
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 2
    functionsReached:
    - suppress_lower_dimensions
    linkageType: ''
    returnType: bool
    signature: bool ClosedSetNormalizer::is_suppressed(VertexId v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:262,1
    - Dst: Impl::Impl
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:262,1
    - Dst: LayerVector::push_back
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:265,1
    - Dst: make_unique<DimensionLayer>
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:265,1
    - Dst: shared_ptr::normalizer_::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - output_layers
    - ' options'
    argTypes:
    - LayerVector
    - ClosedSetNormalizer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: s2builderutil::NormalizeClosedSetImpl::Create
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 1
    functionsReached:
    - std::move
    - LayerVector::push_back
    - Impl::Impl
    - make_unique<DimensionLayer>
    - shared_ptr::normalizer_::graph_options
    linkageType: ''
    returnType: LayerVector
    signature: "LayerVector Create(LayerVector output_layers,\n                            const
      ClosedSetNormalizer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:274,1
    - Dst: graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:276,1
    - Dst: graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:277,1
    - Dst: graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:278,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:280,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - output_layers
    - ' options'
    argTypes:
    - LayerVector
    - ClosedSetNormalizer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: s2builderutil::NormalizeClosedSetImpl::NormalizeClosedSetImpl
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - graph_options
    - std::move
    - size
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: void
    signature: "void NormalizeClosedSetImpl(LayerVector output_layers,\n                         const
      ClosedSetNormalizer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - dimension
    - ' graph_options'
    - impl
    argTypes:
    - int
    - GraphOptions
    - shared_ptr<NormalizeClosedSetImpl>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: s2builderutil::NormalizeClosedSetImpl::DimensionLayer::DimensionLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void DimensionLayer(int dimension, const GraphOptions& graph_options,\n
      \                  shared_ptr<NormalizeClosedSetImpl> impl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: s2builderutil::NormalizeClosedSetImpl::DimensionLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::NormalizeClosedSetImpl::DimensionLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: s2builderutil::NormalizeClosedSetImpl::DimensionLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 2
    functionsReached:
    - s2builderutil::NormalizeClosedSetImpl::DimensionLayer::Build
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:307,1
    - Dst: s2builderutil::NormalizeClosedSetImpl::Build
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - dimension
    - ' g'
    - absl_nonnull
    argTypes:
    - int
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 311
    functionName: s2builderutil::NormalizeClosedSetImpl::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 2
    functionsReached:
    - s2builderutil::NormalizeClosedSetImpl::Build
    - Run
    linkageType: ''
    returnType: void
    signature: void Build(int dimension, const Graph& g, S2Error* absl_nonnull error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::NormalizeClosedSetImpl::Create
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:322,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - output_layers
    - ' options'
    argTypes:
    - LayerVector
    - ClosedSetNormalizer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: s2builderutil::NormalizeClosedSet
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
    functionUses: 0
    functionsReached:
    - std::move
    - s2builderutil::NormalizeClosedSetImpl::Create
    linkageType: ''
    returnType: LayerVector
    signature: "LayerVector NormalizeClosedSet(LayerVector output_layers,\n                               const
      ClosedSetNormalizer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - input_id
    - left_to_right
    argTypes:
    - InputEdgeId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: CrossingInputEdge::CrossingInputEdge
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CrossingInputEdge(InputEdgeId input_id, bool left_to_right)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: CrossingInputEdge::input_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputEdgeId
    signature: InputEdgeId input_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: CrossingInputEdge::left_to_right
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool left_to_right() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CrossingInputEdge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: operator<(const CrossingInputEdge& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const CrossingInputEdge& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - InputEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: operator<(const InputEdgeId& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const InputEdgeId& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - _id
    - _a_index
    - _outgoing
    - _dst
    argTypes:
    - EdgeId
    - int
    - bool
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: CrossingGraphEdge
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CrossingGraphEdge(EdgeId _id, int _a_index, bool _outgoing, VertexId
      _dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:217,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:217,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:218,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:218,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:219,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:219,1
    - Dst: GetInputEdgeOrder
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:224,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:229,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:230,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:233,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:243,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:243,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:243,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:244,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:246,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:246,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:246,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:249,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:252,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:257,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:260,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:260,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:260,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:260,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:261,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:264,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - ' g'
    - input_ids
    argTypes:
    - Graph
    - absl::Span<const InputEdgeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 267
    functionName: GetInputEdgeChainOrder
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - num_vertices
    - ABSL_DCHECK_EQ
    - num_edges
    - vector::end
    - edge
    - vector::begin
    - options
    - make_pair
    - std::sort
    - GetInputEdgeOrder
    - vector::size
    - vector::clear
    - lower_bound
    - ABSL_DCHECK
    linkageType: ''
    returnType: vector<EdgeId>
    signature: "vector<EdgeId> GetInputEdgeChainOrder(\n    const Graph& g, absl::Span<const
      InputEdgeId> input_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:343,1
    - Dst: GetInputEdgeChainOrder
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:344,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:345,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:346,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:351,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:351,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:352,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' g'
    - ' input_dimensions'
    - ' input_crossings'
    - new_edges
    - new_input_edge_ids
    argTypes:
    - Graph
    - vector<int8_t>
    - InputEdgeCrossings
    - vector<Graph::Edge>*
    - vector<InputEdgeIdSetId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 353
    functionName: GraphEdgeClipper::GraphEdgeClipper
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - reserve
    - input_edge_id_set_ids
    - num_edges
    - size
    - GetInputEdgeChainOrder
    linkageType: ''
    returnType: void
    signature: "void GraphEdgeClipper::GraphEdgeClipper(const Graph& g,\n                                   const
      vector<int8_t>& input_dimensions,\n                                   const
      InputEdgeCrossings& input_crossings,\n                                   vector<Graph::Edge>*
      new_edges,\n                                   vector<InputEdgeIdSetId>* new_input_edge_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:357,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - edge
    - input_edge_id
    argTypes:
    - Graph::Edge
    - InputEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: GraphEdgeClipper::AddEdge
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void GraphEdgeClipper::AddEdge(Graph::Edge edge,\n                                      InputEdgeId
      input_edge_id)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:372,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:373,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:377,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:378,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:379,1
    - Dst: auto::second::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:381,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:382,1
    - Dst: auto::second::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:383,1
    - Dst: auto::second::left_to_right
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:384,1
    - Dst: auto::second::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:385,1
    - Dst: auto::second::left_to_right
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:386,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:388,1
    - Dst: auto::second::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:388,1
    - Dst: auto::second::left_to_right
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:389,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:396,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:397,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:401,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:407,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:407,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:414,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:415,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:416,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:417,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:417,1
    - Dst: GraphEdgeClipper::GatherIncidentEdges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:418,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:419,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:420,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:420,1
    - Dst: GraphEdgeClipper::GatherIncidentEdges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:421,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:421,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:441,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:442,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:442,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:443,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:444,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:444,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:445,1
    - Dst: left_to_right
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:446,1
    - Dst: GraphEdgeClipper::GetCrossedVertexIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:447,1
    - Dst: input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:451,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:460,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:471,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:478,1
    - Dst: s2testing::SampleEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:478,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:482,1
    - Dst: s2testing::SampleEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:482,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:487,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:493,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:495,1
    - Dst: s2testing::SampleEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:495,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 500
    functionName: GraphEdgeClipper::Run
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - end
    - GraphEdgeClipper::GetCrossedVertexIndex
    - begin
    - GraphEdgeClipper::AddEdge
    - ABSL_LOG
    - s2testing::SampleEdge
    - vector::size
    - ABSL_DCHECK
    - auto::second::input_id
    - vector::resize
    - vector::push_back
    - ABSL_DCHECK_EQ
    - input_id
    - auto::second::left_to_right
    - vector::empty
    - vector::clear
    - size
    - BUF_reverse
    - GraphEdgeClipper::GatherIncidentEdges
    - edge
    - left_to_right
    linkageType: ''
    returnType: void
    signature: void GraphEdgeClipper::Run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:514,1
    - Dst: absl::Span<const CrossingInputEdge>::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:514,1
    - Dst: vector<CrossingGraphEdgeVector>*::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:514,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:515,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:517,1
    - Dst: absl::Span<const CrossingInputEdge>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:517,1
    - Dst: absl::Span<const CrossingInputEdge>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:517,1
    - Dst: absl::Span<const CrossingInputEdge>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:518,1
    - Dst: auto::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:518,1
    - Dst: absl::Span<const CrossingInputEdge>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:519,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:520,1
    - Dst: CrossingGraphEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:520,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:520,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:523,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:525,1
    - Dst: absl::Span<const CrossingInputEdge>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:525,1
    - Dst: absl::Span<const CrossingInputEdge>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:525,1
    - Dst: absl::Span<const CrossingInputEdge>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:526,1
    - Dst: auto::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:526,1
    - Dst: absl::Span<const CrossingInputEdge>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:527,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:528,1
    - Dst: CrossingGraphEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:528,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - a
    - ai
    - b_input_edges
    - b_edges
    argTypes:
    - absl::Span<const VertexId>
    - int
    - absl::Span<const CrossingInputEdge>
    - vector<CrossingGraphEdgeVector>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 531
    functionName: GraphEdgeClipper::GatherIncidentEdges
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached:
    - vector<CrossingGraphEdgeVector>*::size
    - absl::Span<const CrossingInputEdge>::end
    - absl::Span<const CrossingInputEdge>::begin
    - absl::Span<const CrossingInputEdge>::size
    - ABSL_DCHECK_EQ
    - auto::input_id
    - push_back
    - CrossingGraphEdge
    - edge
    - edge_ids
    - lower_bound
    linkageType: ''
    returnType: void
    signature: "void GraphEdgeClipper::GatherIncidentEdges(\n    absl::Span<const
      VertexId> a, int ai,\n    absl::Span<const CrossingInputEdge> b_input_edges,\n
      \   vector<CrossingGraphEdgeVector>* b_edges) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - CrossingGraphEdge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 542
    functionName: GraphEdgeClipper::GetVertexRank
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GraphEdgeClipper::GetVertexRank(const CrossingGraphEdge& e) const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const VertexId>::empty
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:553,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:553,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:554,1
    - Dst: absl::Span<const VertexId>::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:555,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:555,1
    - Dst: absl::Span<const VertexId>::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:584,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:588,1
    - Dst: GraphEdgeClipper::GetVertexRank
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:593,1
    - Dst: GraphEdgeClipper::GetVertexRank
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:593,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:593,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:610,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:625,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:625,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:625,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:626,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:626,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:635,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:639,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:656,1
    - Dst: GraphEdgeClipper::EdgeChainOnLeft
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:672,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:674,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:676,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:684,1
    - Dst: GraphEdgeClipper::GetVertexRank
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:687,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 48
    argCount: 3
    argNames:
    - a
    - ' b'
    - left_to_right
    argTypes:
    - absl::Span<const VertexId>
    - CrossingGraphEdgeVector
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 693
    functionName: GraphEdgeClipper::GetCrossedVertexIndex
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached:
    - GraphEdgeClipper::GetVertexRank
    - ABSL_DCHECK_LE
    - size
    - s2pred::OrderedCCW
    - absl::Span<const VertexId>::empty
    - min
    - back
    - absl::Span<const VertexId>::size
    - vertex
    - swap
    - GraphEdgeClipper::EdgeChainOnLeft
    - empty
    - ABSL_LOG
    - max
    linkageType: ''
    returnType: int
    signature: "int GraphEdgeClipper::GetCrossedVertexIndex(absl::Span<const VertexId>
      a,\n                                            const CrossingGraphEdgeVector&
      b,\n                                            bool left_to_right) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:707,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:707,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:710,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:710,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:710,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:710,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:711,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:711,1
    - Dst: absl::Span<const VertexId>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:711,1
    - Dst: absl::Span<const VertexId>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:711,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:714,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:714,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:714,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:718,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:719,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:719,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:719,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b_first
    - b_last
    argTypes:
    - absl::Span<const VertexId>
    - EdgeId
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 723
    functionName: GraphEdgeClipper::EdgeChainOnLeft
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - std::reverse
    - absl::Span<const VertexId>::end
    - S2::TurnAngle
    - vector::end
    - vector::size
    - edge
    - absl::Span<const VertexId>::begin
    - vertex
    - vector::insert
    - vector::begin
    linkageType: ''
    returnType: bool
    signature: "bool GraphEdgeClipper::EdgeChainOnLeft(absl::Span<const VertexId>
      a,\n                                       EdgeId b_first, EdgeId b_last) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - layers
    - input_dimensions
    - input_crossings
    - tracker
    argTypes:
    - vector<unique_ptr<S2Builder::Layer>>*
    - vector<int8_t>*
    - InputEdgeCrossings*
    - S2MemoryTracker::Client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 739
    functionName: EdgeClippingLayer::EdgeClippingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EdgeClippingLayer(const vector<unique_ptr<S2Builder::Layer>>*
      layers,\n                    const vector<int8_t>* input_dimensions,\n                    const
      InputEdgeCrossings* input_crossings,\n                    S2MemoryTracker::Client*
      tracker)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: EdgeClippingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions EdgeClippingLayer::graph_options() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:773,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:774,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:776,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:780,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:780,1
    - Dst: GraphEdgeClipper
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:790,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:796,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:797,1
    - Dst: MakeSubgraph
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:798,1
    - Dst: EdgeClippingLayer::graph_options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:799,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:800,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:802,1
    - Dst: EdgeClippingLayer::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:802,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:803,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:804,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:808,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:808,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:812,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:814,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:815,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:816,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:817,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:820,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:821,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:824,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:826,1
    - Dst: MakeSubgraph
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:826,1
    - Dst: EdgeClippingLayer::graph_options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:827,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:829,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:830,1
    - Dst: EdgeClippingLayer::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:830,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:833,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:834,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 837
    functionName: EdgeClippingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached:
    - GraphEdgeClipper
    - num_edges
    - is_full_polygon_predicate
    - vector::reserve
    - Untally
    - ok
    - vector::size
    - num_vertices
    - input_edge_id_set_lexicon
    - Clear
    - vector::push_back
    - ABSL_DCHECK_EQ
    - Tally
    - push_back
    - EdgeClippingLayer::Build
    - TallyTemp
    - size
    - EdgeClippingLayer::graph_options
    - AddSpace
    - MakeSubgraph
    linkageType: ''
    returnType: void
    signature: void EdgeClippingLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - input_id
    - left_to_right
    argTypes:
    - InputEdgeId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: CrossingInputEdge::CrossingInputEdge
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CrossingInputEdge(InputEdgeId input_id, bool left_to_right)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: CrossingInputEdge::input_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputEdgeId
    signature: InputEdgeId input_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: CrossingInputEdge::left_to_right
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool left_to_right() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CrossingInputEdge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: operator<(const CrossingInputEdge& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const CrossingInputEdge& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - InputEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: operator<(const InputEdgeId& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const InputEdgeId& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - _id
    - _a_index
    - _outgoing
    - _dst
    argTypes:
    - EdgeId
    - int
    - bool
    - VertexId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: CrossingGraphEdge
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CrossingGraphEdge(EdgeId _id, int _a_index, bool _outgoing, VertexId
      _dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:217,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:217,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:218,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:218,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:219,1
    - Dst: options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:219,1
    - Dst: GetInputEdgeOrder
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:224,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:229,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:230,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:233,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:243,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:243,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:243,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:244,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:246,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:246,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:246,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:249,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:252,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:257,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:260,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:260,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:260,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:260,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:261,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:264,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - ' g'
    - input_ids
    argTypes:
    - Graph
    - absl::Span<const InputEdgeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 267
    functionName: GetInputEdgeChainOrder
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached:
    - vector::push_back
    - num_vertices
    - ABSL_DCHECK_EQ
    - num_edges
    - vector::end
    - edge
    - vector::begin
    - options
    - make_pair
    - std::sort
    - GetInputEdgeOrder
    - vector::size
    - vector::clear
    - lower_bound
    - ABSL_DCHECK
    linkageType: ''
    returnType: vector<EdgeId>
    signature: "vector<EdgeId> GetInputEdgeChainOrder(\n    const Graph& g, absl::Span<const
      InputEdgeId> input_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_edge_id_set_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:343,1
    - Dst: GetInputEdgeChainOrder
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:344,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:345,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:346,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:351,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:351,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:352,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' g'
    - ' input_dimensions'
    - ' input_crossings'
    - new_edges
    - new_input_edge_ids
    argTypes:
    - Graph
    - vector<int8_t>
    - InputEdgeCrossings
    - vector<Graph::Edge>*
    - vector<InputEdgeIdSetId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 353
    functionName: GraphEdgeClipper::GraphEdgeClipper
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - reserve
    - input_edge_id_set_ids
    - num_edges
    - size
    - GetInputEdgeChainOrder
    linkageType: ''
    returnType: void
    signature: "void GraphEdgeClipper::GraphEdgeClipper(const Graph& g,\n                                   const
      vector<int8_t>& input_dimensions,\n                                   const
      InputEdgeCrossings& input_crossings,\n                                   vector<Graph::Edge>*
      new_edges,\n                                   vector<InputEdgeIdSetId>* new_input_edge_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:357,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - edge
    - input_edge_id
    argTypes:
    - Graph::Edge
    - InputEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: GraphEdgeClipper::AddEdge
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void GraphEdgeClipper::AddEdge(Graph::Edge edge,\n                                      InputEdgeId
      input_edge_id)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:372,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:373,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:377,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:378,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:379,1
    - Dst: auto::second::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:381,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:382,1
    - Dst: auto::second::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:383,1
    - Dst: auto::second::left_to_right
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:384,1
    - Dst: auto::second::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:385,1
    - Dst: auto::second::left_to_right
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:386,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:388,1
    - Dst: auto::second::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:388,1
    - Dst: auto::second::left_to_right
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:389,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:396,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:397,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:401,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:407,1
    - Dst: BUF_reverse
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:407,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:414,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:415,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:416,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:417,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:417,1
    - Dst: GraphEdgeClipper::GatherIncidentEdges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:418,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:419,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:420,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:420,1
    - Dst: GraphEdgeClipper::GatherIncidentEdges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:421,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:421,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:441,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:442,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:442,1
    - Dst: vector::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:443,1
    - Dst: vector::resize
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:444,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:444,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:445,1
    - Dst: left_to_right
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:446,1
    - Dst: GraphEdgeClipper::GetCrossedVertexIndex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:447,1
    - Dst: input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:451,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:460,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:471,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:478,1
    - Dst: s2testing::SampleEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:478,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:482,1
    - Dst: s2testing::SampleEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:482,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:487,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:493,1
    - Dst: GraphEdgeClipper::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:495,1
    - Dst: s2testing::SampleEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:495,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 500
    functionName: GraphEdgeClipper::Run
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - end
    - GraphEdgeClipper::GetCrossedVertexIndex
    - begin
    - GraphEdgeClipper::AddEdge
    - ABSL_LOG
    - s2testing::SampleEdge
    - vector::size
    - ABSL_DCHECK
    - auto::second::input_id
    - vector::resize
    - vector::push_back
    - ABSL_DCHECK_EQ
    - input_id
    - auto::second::left_to_right
    - vector::empty
    - vector::clear
    - size
    - BUF_reverse
    - GraphEdgeClipper::GatherIncidentEdges
    - edge
    - left_to_right
    linkageType: ''
    returnType: void
    signature: void GraphEdgeClipper::Run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:514,1
    - Dst: absl::Span<const CrossingInputEdge>::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:514,1
    - Dst: vector<CrossingGraphEdgeVector>*::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:514,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:515,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:517,1
    - Dst: absl::Span<const CrossingInputEdge>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:517,1
    - Dst: absl::Span<const CrossingInputEdge>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:517,1
    - Dst: absl::Span<const CrossingInputEdge>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:518,1
    - Dst: auto::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:518,1
    - Dst: absl::Span<const CrossingInputEdge>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:519,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:520,1
    - Dst: CrossingGraphEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:520,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:520,1
    - Dst: edge_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:523,1
    - Dst: lower_bound
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:525,1
    - Dst: absl::Span<const CrossingInputEdge>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:525,1
    - Dst: absl::Span<const CrossingInputEdge>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:525,1
    - Dst: absl::Span<const CrossingInputEdge>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:526,1
    - Dst: auto::input_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:526,1
    - Dst: absl::Span<const CrossingInputEdge>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:527,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:528,1
    - Dst: CrossingGraphEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:528,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - a
    - ai
    - b_input_edges
    - b_edges
    argTypes:
    - absl::Span<const VertexId>
    - int
    - absl::Span<const CrossingInputEdge>
    - vector<CrossingGraphEdgeVector>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 531
    functionName: GraphEdgeClipper::GatherIncidentEdges
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 2
    functionsReached:
    - vector<CrossingGraphEdgeVector>*::size
    - absl::Span<const CrossingInputEdge>::end
    - absl::Span<const CrossingInputEdge>::begin
    - absl::Span<const CrossingInputEdge>::size
    - ABSL_DCHECK_EQ
    - auto::input_id
    - push_back
    - CrossingGraphEdge
    - edge
    - edge_ids
    - lower_bound
    linkageType: ''
    returnType: void
    signature: "void GraphEdgeClipper::GatherIncidentEdges(\n    absl::Span<const
      VertexId> a, int ai,\n    absl::Span<const CrossingInputEdge> b_input_edges,\n
      \   vector<CrossingGraphEdgeVector>* b_edges) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - CrossingGraphEdge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 542
    functionName: GraphEdgeClipper::GetVertexRank
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GraphEdgeClipper::GetVertexRank(const CrossingGraphEdge& e) const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const VertexId>::empty
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:553,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:553,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:554,1
    - Dst: absl::Span<const VertexId>::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:555,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:555,1
    - Dst: absl::Span<const VertexId>::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:584,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:588,1
    - Dst: GraphEdgeClipper::GetVertexRank
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:593,1
    - Dst: GraphEdgeClipper::GetVertexRank
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:593,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:593,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:610,1
    - Dst: s2pred::OrderedCCW
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:625,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:625,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:625,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:626,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:626,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:635,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:639,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:656,1
    - Dst: GraphEdgeClipper::EdgeChainOnLeft
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:672,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:674,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:676,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:684,1
    - Dst: GraphEdgeClipper::GetVertexRank
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:687,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 48
    argCount: 3
    argNames:
    - a
    - ' b'
    - left_to_right
    argTypes:
    - absl::Span<const VertexId>
    - CrossingGraphEdgeVector
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 693
    functionName: GraphEdgeClipper::GetCrossedVertexIndex
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 2
    functionsReached:
    - GraphEdgeClipper::GetVertexRank
    - ABSL_DCHECK_LE
    - size
    - s2pred::OrderedCCW
    - absl::Span<const VertexId>::empty
    - min
    - back
    - absl::Span<const VertexId>::size
    - vertex
    - swap
    - GraphEdgeClipper::EdgeChainOnLeft
    - empty
    - ABSL_LOG
    - max
    linkageType: ''
    returnType: int
    signature: "int GraphEdgeClipper::GetCrossedVertexIndex(absl::Span<const VertexId>
      a,\n                                            const CrossingGraphEdgeVector&
      b,\n                                            bool left_to_right) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:707,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:707,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:710,1
    - Dst: std::reverse
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:710,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:710,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:710,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:711,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:711,1
    - Dst: absl::Span<const VertexId>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:711,1
    - Dst: absl::Span<const VertexId>::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:711,1
    - Dst: vector::insert
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:714,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:714,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:714,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:718,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:719,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:719,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:719,1
    - Dst: vertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b_first
    - b_last
    argTypes:
    - absl::Span<const VertexId>
    - EdgeId
    - EdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 723
    functionName: GraphEdgeClipper::EdgeChainOnLeft
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 2
    functionsReached:
    - vector::push_back
    - std::reverse
    - absl::Span<const VertexId>::end
    - S2::TurnAngle
    - vector::end
    - vector::size
    - edge
    - absl::Span<const VertexId>::begin
    - vertex
    - vector::insert
    - vector::begin
    linkageType: ''
    returnType: bool
    signature: "bool GraphEdgeClipper::EdgeChainOnLeft(absl::Span<const VertexId>
      a,\n                                       EdgeId b_first, EdgeId b_last) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - layers
    - input_dimensions
    - input_crossings
    - tracker
    argTypes:
    - vector<unique_ptr<S2Builder::Layer>>*
    - vector<int8_t>*
    - InputEdgeCrossings*
    - S2MemoryTracker::Client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 739
    functionName: EdgeClippingLayer::EdgeClippingLayer
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EdgeClippingLayer(const vector<unique_ptr<S2Builder::Layer>>*
      layers,\n                    const vector<int8_t>* input_dimensions,\n                    const
      InputEdgeCrossings* input_crossings,\n                    S2MemoryTracker::Client*
      tracker)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GraphOptions
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: EdgeClippingLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached:
    - GraphOptions
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions EdgeClippingLayer::graph_options() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:773,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:774,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:776,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:780,1
    - Dst: TallyTemp
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:780,1
    - Dst: GraphEdgeClipper
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:790,1
    - Dst: input_edge_id_set_lexicon
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:796,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:797,1
    - Dst: MakeSubgraph
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:798,1
    - Dst: EdgeClippingLayer::graph_options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:799,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:800,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:802,1
    - Dst: EdgeClippingLayer::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:802,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:803,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:804,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:808,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:808,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:812,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:814,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:815,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:816,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:817,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:820,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:821,1
    - Dst: vector::reserve
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:824,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:826,1
    - Dst: MakeSubgraph
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:826,1
    - Dst: EdgeClippingLayer::graph_options
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:827,1
    - Dst: is_full_polygon_predicate
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:829,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:830,1
    - Dst: EdgeClippingLayer::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:830,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:833,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:834,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 837
    functionName: EdgeClippingLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 2
    functionsReached:
    - GraphEdgeClipper
    - num_edges
    - is_full_polygon_predicate
    - vector::reserve
    - Untally
    - ok
    - vector::size
    - num_vertices
    - input_edge_id_set_lexicon
    - Clear
    - vector::push_back
    - ABSL_DCHECK_EQ
    - Tally
    - push_back
    - EdgeClippingLayer::Build
    - TallyTemp
    - size
    - EdgeClippingLayer::graph_options
    - AddSpace
    - MakeSubgraph
    linkageType: ''
    returnType: void
    signature: void EdgeClippingLayer::Build(const Graph& g, S2Error* absl_nonnull
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation*::options_::memory_tracker
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - op
    argTypes:
    - S2BooleanOperation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: S2BooleanOperation::Impl::Impl
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation*::options_::memory_tracker
    linkageType: ''
    returnType: void
    signature: void Impl(S2BooleanOperation* op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - ShapeEdgeId
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 879
    functionName: S2BooleanOperation::Impl::IndexCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IndexCrossing(ShapeEdgeId _a, ShapeEdgeId _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - IndexCrossing
    - IndexCrossing
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 883
    functionName: operator==(const IndexCrossing& x, const IndexCrossing& y)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const IndexCrossing& x, const IndexCrossing& y)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - IndexCrossing
    - IndexCrossing
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 895
    functionName: operator<(const IndexCrossing& x, const IndexCrossing& y)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const IndexCrossing& x, const IndexCrossing& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetBtreeMinBytesPerEntry<T>
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:907,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_entries
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 910
    functionName: S2BooleanOperation::Impl::MemoryTracker::TallySourceIdMap
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - GetBtreeMinBytesPerEntry<T>
    - Tally
    linkageType: ''
    returnType: bool
    signature: bool TallySourceIdMap(int num_entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T*::clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:916,1
    - Dst: Tally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:917,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - source_id_map
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 920
    functionName: S2BooleanOperation::Impl::MemoryTracker::ClearSourceIdMap
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - ok
    - Tally
    - T*::clear
    linkageType: ''
    returnType: bool
    signature: bool ClearSourceIdMap(T* source_id_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 927
    functionName: S2BooleanOperation::Impl::is_boolean_output
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_boolean_output() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IndexCrossings*::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1023,1
    - Dst: S2BooleanOperation::Impl::CrossingIterator::Update
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b_index
    - crossings
    - crossings_complete
    argTypes:
    - S2ShapeIndex*
    - IndexCrossings*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1026
    functionName: S2BooleanOperation::Impl::CrossingIterator::CrossingIterator
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Impl::CrossingIterator::Update
    - IndexCrossings*::begin
    linkageType: ''
    returnType: void
    signature: "void CrossingIterator(const S2ShapeIndex* b_index,\n                   const
      IndexCrossings* crossings, bool crossings_complete)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Impl::CrossingIterator::Update
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1030
    functionName: S2BooleanOperation::Impl::CrossingIterator::Next
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Impl::CrossingIterator::Update
    linkageType: ''
    returnType: void
    signature: void Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Impl::CrossingIterator::a_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1031
    functionName: S2BooleanOperation::Impl::CrossingIterator::Done
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Impl::CrossingIterator::a_id
    linkageType: ''
    returnType: bool
    signature: bool Done(ShapeEdgeId id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1034
    functionName: S2BooleanOperation::Impl::CrossingIterator::crossings_complete
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool crossings_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1037
    functionName: S2BooleanOperation::Impl::CrossingIterator::is_interior_crossing
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_interior_crossing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1041
    functionName: S2BooleanOperation::Impl::CrossingIterator::is_vertex_crossing
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_vertex_crossing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1044
    functionName: S2BooleanOperation::Impl::CrossingIterator::left_to_right
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool left_to_right() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1046
    functionName: S2BooleanOperation::Impl::CrossingIterator::a_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ShapeEdgeId
    signature: ShapeEdgeId a_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1047
    functionName: S2BooleanOperation::Impl::CrossingIterator::b_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ShapeEdgeId
    signature: ShapeEdgeId b_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1048
    functionName: '& b_index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex & b_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1049
    functionName: '& b_shape() const'
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape & b_shape() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1050
    functionName: S2BooleanOperation::Impl::CrossingIterator::b_dimension
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_dimension() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1051
    functionName: S2BooleanOperation::Impl::CrossingIterator::b_shape_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_shape_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Impl::CrossingIterator::b_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1052
    functionName: S2BooleanOperation::Impl::CrossingIterator::b_edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Impl::CrossingIterator::b_id
    linkageType: ''
    returnType: int
    signature: int b_edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1055,1
    - Dst: S2BooleanOperation::Impl::CrossingIterator::b_edge_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1056
    functionName: S2BooleanOperation::Impl::CrossingIterator::b_edge
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Impl::CrossingIterator::b_edge_id
    - edge
    linkageType: ''
    returnType: S2Shape::Edge
    signature: S2Shape::Edge b_edge() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1067,1
    - Dst: b_edge_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1067,1
    - Dst: b_shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1073
    functionName: '& b_chain_info() const'
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - b_edge_id
    - b_shape
    linkageType: ''
    returnType: ChainInfo
    signature: ChainInfo & b_chain_info() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Impl::CrossingIterator::a_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1078,1
    - Dst: S2BooleanOperation::Impl::CrossingIterator::b_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1078,1
    - Dst: S2BooleanOperation::Impl::CrossingIterator::b_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1079,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1080,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1084
    functionName: S2BooleanOperation::Impl::CrossingIterator::Update
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 2
    functionsReached:
    - S2BooleanOperation::Impl::CrossingIterator::b_id
    - dimension
    - S2BooleanOperation::Impl::CrossingIterator::a_id
    - shape
    linkageType: ''
    returnType: void
    signature: void Update()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 7
    argNames:
    - ' polygon_model'
    - ' polyline_model'
    - polyline_loops_have_boundaries
    - builder
    - input_dimensions
    - input_crossings
    - tracker
    argTypes:
    - PolygonModel
    - PolylineModel
    - bool
    - S2Builder*
    - vector<int8_t>*
    - InputEdgeCrossings*
    - MemoryTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1120
    functionName: S2BooleanOperation::Impl::CrossingProcessor::CrossingProcessor
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CrossingProcessor(const PolygonModel& polygon_model,\n                    const
      PolylineModel& polyline_model,\n                    bool polyline_loops_have_boundaries,
      S2Builder* builder,\n                    vector<int8_t>* input_dimensions,\n
      \                   InputEdgeCrossings* input_crossings, MemoryTracker* tracker)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1159
    functionName: S2BooleanOperation::Impl::CrossingProcessor::inside
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool inside() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1169
    functionName: S2BooleanOperation::Impl::CrossingProcessor::input_edge_id
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: InputEdgeId
    signature: InputEdgeId input_edge_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a_id
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1177
    functionName: S2BooleanOperation::Impl::CrossingProcessor::is_v0_isolated
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_v0_isolated(ShapeEdgeId a_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - a_id
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1185
    functionName: S2BooleanOperation::Impl::CrossingProcessor::is_chain_last_vertex_isolated
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_chain_last_vertex_isolated(ShapeEdgeId a_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - edge_id
    - chain_start
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1191
    functionName: S2BooleanOperation::Impl::CrossingProcessor::polyline_contains_v0
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool polyline_contains_v0(int edge_id, int chain_start) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_id
    argTypes:
    - ShapeEdgeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1195
    functionName: S2BooleanOperation::Impl::CrossingProcessor::is_degenerate
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool is_degenerate(ShapeEdgeId a_id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1198,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1199,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1199,1
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::input_edge_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' crossing'
    argTypes:
    - SourceEdgeCrossing
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1200
    functionName: S2BooleanOperation::Impl::CrossingProcessor::AddCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - AddSpace
    - make_pair
    - push_back
    - S2BooleanOperation::Impl::CrossingProcessor::input_edge_id
    linkageType: ''
    returnType: void
    signature: void AddCrossing(const SourceEdgeCrossing& crossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' crossing'
    argTypes:
    - SourceEdgeCrossing
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1202
    functionDepth: 0
    functionLinenumber: 1202
    functionLinenumberEnd: 1207
    functionName: S2BooleanOperation::Impl::CrossingProcessor::AddInteriorCrossing
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddInteriorCrossing(const SourceEdgeCrossing& crossing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::AddCrossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1210,1
    - Dst: SourceEdgeCrossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1210,1
    - Dst: SourceId
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - parameter
    - state
    argTypes:
    - InputEdgeId
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1209
    functionDepth: 2
    functionLinenumber: 1209
    functionLinenumberEnd: 1211
    functionName: S2BooleanOperation::Impl::CrossingProcessor::SetClippingState
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - SourceId
    - S2BooleanOperation::Impl::CrossingProcessor::AddCrossing
    - SourceEdgeCrossing
    linkageType: ''
    returnType: void
    signature: void SetClippingState(InputEdgeId parameter, bool state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1221,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1222,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1226,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1226,1
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::input_edge_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1226,1
    - Dst: TallySourceIdMap
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1230,1
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::input_edge_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1234,1
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::SetClippingState
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1237,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1238,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1239,1
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1240,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1243,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - a_id
    - ' a'
    - dimension
    - interior_crossings
    argTypes:
    - ShapeEdgeId
    - S2Shape::Edge
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1215
    functionDepth: 3
    functionLinenumber: 1215
    functionLinenumberEnd: 1244
    functionName: S2BooleanOperation::Impl::CrossingProcessor::AddEdge
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 1
    functionsReached:
    - TallySourceIdMap
    - size
    - push_back
    - S2BooleanOperation::Impl::CrossingProcessor::input_edge_id
    - AddSpace
    - S2BooleanOperation::Impl::CrossingProcessor::AddEdge
    - make_pair
    - ok
    - S2BooleanOperation::Impl::CrossingProcessor::SetClippingState
    linkageType: ''
    returnType: bool
    signature: "bool AddEdge(ShapeEdgeId a_id, const S2Shape::Edge& a,\n               int
      dimension, int interior_crossings)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::SetClippingState
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1250,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1251,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1252,1
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1253,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - dimension
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1248
    functionDepth: 4
    functionLinenumber: 1248
    functionLinenumberEnd: 1256
    functionName: S2BooleanOperation::Impl::CrossingProcessor::AddPointEdge
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - push_back
    - AddSpace
    - S2BooleanOperation::Impl::CrossingProcessor::AddEdge
    - ok
    - S2BooleanOperation::Impl::CrossingProcessor::SetClippingState
    linkageType: ''
    returnType: bool
    signature: bool AddPointEdge(const S2Point& p, int dimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::SetClippingState
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1393,1
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::SetClippingState
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - a_region_id
    - invert_a
    - invert_b
    - invert_result
    argTypes:
    - int
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1383
    functionDepth: 3
    functionLinenumber: 1383
    functionLinenumberEnd: 1395
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::StartBoundary(\n    int
      a_region_id, bool invert_a, bool invert_b, bool invert_result)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2BooleanOperation::Impl::CrossingProcessor::SetClippingState
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::Impl::CrossingProcessor::StartBoundary(\n
      \   int a_region_id, bool invert_a, bool invert_b, bool invert_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a_shape
    argTypes:
    - S2Shape*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1402
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::StartShape(\n    const
      S2Shape* a_shape)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2Shape*::dimension
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::Impl::CrossingProcessor::StartShape(\n    const
      S2Shape* a_shape)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - chain_id
    - chain
    - inside
    argTypes:
    - int
    - S2Shape::Chain
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1413
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::StartChain(\n    int
      chain_id, S2Shape::Chain chain, bool inside)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::Impl::CrossingProcessor::StartChain(\n    int
      chain_id, S2Shape::Chain chain, bool inside)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1419,1
    - Dst: ProcessEdge0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1421,1
    - Dst: ProcessEdge1
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1423,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1425,1
    - Dst: ProcessEdge2
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a_id
    - it
    argTypes:
    - ShapeEdgeId
    - CrossingIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1428
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge(\n    ShapeEdgeId
      a_id, CrossingIterator* it)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - ProcessEdge2
    - ProcessEdge1
    - ABSL_DCHECK_EQ
    - ProcessEdge0
    - chain_edge
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge(\n    ShapeEdgeId
      a_id, CrossingIterator* it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1436
    functionName: PointCrossingResult
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PointCrossingResult()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1451,1
    - Dst: SkipCrossings
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1454,1
    - Dst: ProcessPointCrossings
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1457,1
    - Dst: AddPointEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - a_id
    - ' a'
    - it
    argTypes:
    - ShapeEdgeId
    - S2Shape::Edge
    - CrossingIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1474
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge0(\n    ShapeEdgeId
      a_id, const S2Shape::Edge& a, CrossingIterator* it)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - ProcessPointCrossings
    - AddPointEdge
    - SkipCrossings
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge0(\n
      \   ShapeEdgeId a_id, const S2Shape::Edge& a, CrossingIterator* it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CrossingIterator*::Done
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1479,1
    - Dst: CrossingIterator*::Next
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a_id
    - it
    argTypes:
    - ShapeEdgeId
    - CrossingIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1480
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::SkipCrossings(\n    ShapeEdgeId
      a_id, CrossingIterator* it)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - CrossingIterator*::Done
    - CrossingIterator*::Next
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::Impl::CrossingProcessor::SkipCrossings(\n
      \   ShapeEdgeId a_id, CrossingIterator* it)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CrossingIterator*::Done
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1488,1
    - Dst: CrossingIterator*::Next
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1488,1
    - Dst: CrossingIterator*::b_dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1489,1
    - Dst: CrossingIterator*::b_dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1491,1
    - Dst: PolylineEdgeContainsVertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - a_id
    - ' a0'
    - it
    argTypes:
    - ShapeEdgeId
    - S2Point
    - CrossingIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1484
    functionDepth: 0
    functionLinenumber: 1484
    functionLinenumberEnd: 1500
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::ProcessPointCrossings(\n
      \   ShapeEdgeId a_id, const S2Point& a0, CrossingIterator* it) const"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - CrossingIterator*::Done
    - CrossingIterator*::Next
    - CrossingIterator*::b_dimension
    - PolylineEdgeContainsVertex
    linkageType: ''
    returnType: S2BooleanOperation::Impl::CrossingProcessor::PointCrossingResult
    signature: "S2BooleanOperation::Impl::CrossingProcessor::PointCrossingResult S2BooleanOperation::Impl::CrossingProcessor::ProcessPointCrossings(\n
      \   ShapeEdgeId a_id, const S2Point& a0, CrossingIterator* it) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1531
    functionName: matches_polygon
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool matches_polygon() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1532
    functionName: matches_sibling
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool matches_sibling() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1533
    functionName: loop_matches_a0
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool loop_matches_a0() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SkipCrossings
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1550,1
    - Dst: ProcessEdgeCrossings
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1555,1
    - Dst: IsPolylineVertexInside
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1556,1
    - Dst: IsPolylineEdgeInside
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1563,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1571,1
    - Dst: is_v0_isolated
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1576,1
    - Dst: polyline_contains_v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1577,1
    - Dst: AddPointEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1578,1
    - Dst: AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1584,1
    - Dst: CrossingIterator*::crossings_complete
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1594,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1595,1
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1595,1
    - Dst: CrossingIterator*::b_index
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1595,1
    - Dst: CrossingIterator*::crossings_complete
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1601,1
    - Dst: is_chain_last_vertex_isolated
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1602,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1605,1
    - Dst: IsPolylineVertexInside
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1606,1
    - Dst: AddPointEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1607,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 33
    argCount: 3
    argNames:
    - a_id
    - ' a'
    - it
    argTypes:
    - ShapeEdgeId
    - S2Shape::Edge
    - CrossingIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1610
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge1(\n    ShapeEdgeId
      a_id, const S2Shape::Edge& a, CrossingIterator* it)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - ProcessEdgeCrossings
    - SkipCrossings
    - polyline_contains_v0
    - ABSL_DCHECK_EQ
    - chain_edge
    - CrossingIterator*::crossings_complete
    - is_v0_isolated
    - S2ContainsPointQuery
    - AddPointEdge
    - AddEdge
    - CrossingIterator*::b_index
    - IsPolylineVertexInside
    - IsPolylineEdgeInside
    - is_chain_last_vertex_isolated
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge1(\n
      \   ShapeEdgeId a_id, const S2Shape::Edge& a, CrossingIterator* it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - matches_polyline
    - matches_polygon
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1632
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::IsPolylineVertexInside(\n
      \   bool matches_polyline, bool matches_polygon) const"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::CrossingProcessor::IsPolylineVertexInside(\n
      \   bool matches_polyline, bool matches_polygon) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: matches_polygon
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1661,1
    - Dst: matches_sibling
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1664,1
    - Dst: matches_sibling
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1667,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - ' r'
    - is_degenerate
    argTypes:
    - EdgeCrossingResult
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1672
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::IsPolylineEdgeInside(\n
      \   const EdgeCrossingResult& r, bool is_degenerate) const"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - matches_sibling
    - matches_polygon
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::CrossingProcessor::IsPolylineEdgeInside(\n
      \   const EdgeCrossingResult& r, bool is_degenerate) const"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ProcessEdgeCrossings
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1730,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1731,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1734,1
    - Dst: EdgeCrossingResult::loop_matches_a0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1741,1
    - Dst: EdgeCrossingResult::matches_polygon
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1759,1
    - Dst: EdgeCrossingResult::matches_sibling
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1759,1
    - Dst: EdgeCrossingResult::matches_polygon
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1761,1
    - Dst: EdgeCrossingResult::matches_sibling
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1761,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1765,1
    - Dst: EdgeCrossingResult::matches_polygon
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1772,1
    - Dst: EdgeCrossingResult::matches_sibling
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1772,1
    - Dst: EdgeCrossingResult::loop_matches_a0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1782,1
    - Dst: EdgeCrossingResult::matches_polygon
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1796,1
    - Dst: is_degenerate
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1797,1
    - Dst: EdgeCrossingResult::matches_sibling
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1804,1
    - Dst: EdgeCrossingResult::matches_sibling
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1809,1
    - Dst: EdgeCrossingResult::matches_sibling
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1811,1
    - Dst: is_degenerate
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1812,1
    - Dst: EdgeCrossingResult::loop_matches_a0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1838,1
    - Dst: AddPointEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1839,1
    - Dst: EdgeCrossingResult::matches_sibling
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1850,1
    - Dst: is_degenerate
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1851,1
    - Dst: AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1853,1
    - Dst: AddEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1861,1
    - Dst: CrossingIterator*::crossings_complete
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1868,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1869,1
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1869,1
    - Dst: CrossingIterator*::b_index
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1869,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 74
    argCount: 3
    argNames:
    - a_id
    - ' a'
    - it
    argTypes:
    - ShapeEdgeId
    - S2Shape::Edge
    - CrossingIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1678
    functionDepth: 1
    functionLinenumber: 1678
    functionLinenumberEnd: 1873
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge2(\n    ShapeEdgeId
      a_id, const S2Shape::Edge& a, CrossingIterator* it)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - ProcessEdgeCrossings
    - ABSL_DCHECK_EQ
    - is_degenerate
    - AddEdge
    - EdgeCrossingResult::loop_matches_a0
    - swap
    - S2ContainsPointQuery
    - EdgeCrossingResult::matches_polygon
    - EdgeCrossingResult::matches_sibling
    - AddPointEdge
    - CrossingIterator*::b_index
    - CrossingIterator*::crossings_complete
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge2(\n
      \   ShapeEdgeId a_id, const S2Shape::Edge& a, CrossingIterator* it)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1884,1
    - Dst: CrossingIterator*::Done
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1886,1
    - Dst: CrossingIterator*::Done
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1888,1
    - Dst: CrossingIterator*::Next
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1888,1
    - Dst: CrossingIterator*::b_dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1890,1
    - Dst: CrossingIterator*::b_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1891,1
    - Dst: CrossingIterator*::is_interior_crossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1892,1
    - Dst: CrossingIterator*::b_dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1898,1
    - Dst: CrossingIterator*::b_dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1899,1
    - Dst: CrossingIterator*::b_shape_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1900,1
    - Dst: CrossingIterator*::b_edge_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1900,1
    - Dst: AddInteriorCrossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1901,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1901,1
    - Dst: CrossingIterator*::left_to_right
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1901,1
    - Dst: CrossingIterator*::b_dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1903,1
    - Dst: CrossingIterator*::b_dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1904,1
    - Dst: PolylineEdgeContainsVertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1911,1
    - Dst: PolylineEdgeContainsVertex
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1915,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1919,1
    - Dst: CrossingIterator*::b_dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1919,1
    - Dst: CrossingIterator*::b_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1923,1
    - Dst: CrossingIterator*::b_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1927,1
    - Dst: CrossingIterator*::b_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1930,1
    - Dst: CrossingIterator*::is_vertex_crossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1931,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 56
    argCount: 3
    argNames:
    - a_id
    - ' a'
    - it
    argTypes:
    - ShapeEdgeId
    - S2Shape::Edge
    - CrossingIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1881
    functionDepth: 0
    functionLinenumber: 1881
    functionLinenumberEnd: 1947
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdgeCrossings(\n
      \   ShapeEdgeId a_id, const S2Shape::Edge& a, CrossingIterator* it)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - CrossingIterator*::Done
    - CrossingIterator*::Next
    - CrossingIterator*::is_interior_crossing
    - CrossingIterator*::b_shape_id
    - ABSL_DCHECK_EQ
    - CrossingIterator*::b_dimension
    - CrossingIterator*::is_vertex_crossing
    - CrossingIterator*::b_edge_id
    - clear
    - CrossingIterator*::left_to_right
    - AddInteriorCrossing
    - CrossingIterator*::b_edge
    - make_pair
    - PolylineEdgeContainsVertex
    - CrossingIterator*::b_id
    linkageType: ''
    returnType: S2BooleanOperation::Impl::CrossingProcessor::EdgeCrossingResult
    signature: "S2BooleanOperation::Impl::CrossingProcessor::EdgeCrossingResult S2BooleanOperation::Impl::CrossingProcessor::ProcessEdgeCrossings(\n
      \   ShapeEdgeId a_id, const S2Shape::Edge& a, CrossingIterator* it)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1960,1
    - Dst: b_dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1960,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1961,1
    - Dst: b_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1961,1
    - Dst: b_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1961,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1962,1
    - Dst: b_chain_info
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1969,1
    - Dst: b_edge_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1970,1
    - Dst: b_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1976,1
    - Dst: b_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1977,1
    - Dst: S2BooleanOperation::Impl::CrossingProcessor::polyline_contains_v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1984,1
    - Dst: b_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1985,1
    - Dst: b_shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1987,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 3
    argNames:
    - ' v'
    - ' it'
    - dimension
    argTypes:
    - S2Point
    - CrossingIterator
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1958
    functionDepth: 1
    functionLinenumber: 1958
    functionLinenumberEnd: 1989
    functionName: "S2BooleanOperation::Impl::CrossingProcessor::PolylineEdgeContainsVertex(\n
      \   const S2Point& v, const CrossingIterator& it, int dimension) const"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - b_edge_id
    - b_chain_info
    - S2BooleanOperation::Impl::CrossingProcessor::polyline_contains_v0
    - ABSL_DCHECK_EQ
    - b_dimension
    - b_shape
    - b_edge
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::CrossingProcessor::PolylineEdgeContainsVertex(\n
      \   const S2Point& v, const CrossingIterator& it, int dimension) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AddSpaceExact
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1994,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1994,1
    - Dst: TallySourceIdMap
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1995,1
    - Dst: SourceId
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1998,1
    - Dst: SourceId
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:1999,1
    - Dst: SourceId
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2000,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2002,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2003,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2003,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2004,1
    - Dst: make_pair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2004,1
    - Dst: CrossingInputEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2005,1
    - Dst: Clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2007,1
    - Dst: ClearSourceIdMap
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 2009
    functionName: S2BooleanOperation::Impl::CrossingProcessor::DoneBoundaryPair()
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - TallySourceIdMap
    - end
    - size
    - find
    - CrossingInputEdge
    - push_back
    - Clear
    - AddSpaceExact
    - make_pair
    - SourceId
    - ClearSourceIdMap
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::Impl::CrossingProcessor::DoneBoundaryPair()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: InitIndexCrossings
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2033,1
    - Dst: CrossingProcessor*::StartBoundary
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2034,1
    - Dst: absl::Span<const ShapeEdgeId>::begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2038,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2041,1
    - Dst: CrossingIterator::a_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2041,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2044,1
    - Dst: CrossingProcessor*::StartShape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2045,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2050,1
    - Dst: chain
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2052,1
    - Dst: CrossingProcessor*::StartChain
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2055,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2059,1
    - Dst: CrossingProcessor*::inside
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2059,1
    - Dst: CrossingIterator::a_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2059,1
    - Dst: CrossingProcessor*::ProcessEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2060,1
    - Dst: CrossingProcessor*::inside
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2063,1
    - Dst: CrossingIterator::a_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2065,1
    - Dst: CrossingIterator::a_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2066,1
    - Dst: CrossingIterator::a_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2067,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2072,1
    - Dst: CrossingIterator::a_id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2072,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 6
    argNames:
    - a_region_id
    - invert_a
    - invert_b
    - invert_result
    - a_chain_starts
    - cp
    argTypes:
    - int
    - bool
    - bool
    - bool
    - absl::Span<const ShapeEdgeId>
    - CrossingProcessor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2076
    functionName: "S2BooleanOperation::Impl::AddBoundary(\n    int a_region_id, bool
      invert_a, bool invert_b, bool invert_result,\n    absl::Span<const ShapeEdgeId>
      a_chain_starts, CrossingProcessor* cp)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - CrossingProcessor*::ProcessEdge
    - CrossingProcessor*::StartBoundary
    - InitIndexCrossings
    - min
    - shape
    - CrossingIterator::a_id
    - chain
    - CrossingProcessor*::inside
    - ABSL_DCHECK
    - chain_position
    - absl::Span<const ShapeEdgeId>::begin
    - CrossingProcessor*::StartChain
    - CrossingProcessor*::StartShape
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::AddBoundary(\n    int a_region_id,
      bool invert_a, bool invert_b, bool invert_result,\n    absl::Span<const ShapeEdgeId>
      a_chain_starts, CrossingProcessor* cp)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: S2BooleanOperation::Impl::is_boolean_output
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2094,1
    - Dst: CrossingProcessor*::StartBoundary
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2099,1
    - Dst: HasInterior
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2107,1
    - Dst: S2BooleanOperation::Impl::is_boolean_output
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2108,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2110,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2112,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2118,1
    - Dst: S2BooleanOperation::Impl::is_boolean_output
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2120,1
    - Dst: CrossingProcessor*::StartShape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2120,1
    - Dst: S2Shape*::num_chains
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2121,1
    - Dst: S2Shape*::chain
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2123,1
    - Dst: S2Shape*::chain_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2125,1
    - Dst: S2ContainsPointQuery::Contains
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2126,1
    - Dst: ShapeEdge::v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2126,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2128,1
    - Dst: vector<ShapeEdgeId>*::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2129,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2129,1
    - Dst: S2BooleanOperation::Impl::is_boolean_output
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2131,1
    - Dst: CrossingProcessor*::StartChain
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2132,1
    - Dst: ProcessIncidentEdges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2133,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2138,1
    - Dst: vector<ShapeEdgeId>*::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2139,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 32
    argCount: 6
    argNames:
    - a_region_id
    - invert_a
    - invert_b
    - invert_result
    - cp
    - chain_starts
    argTypes:
    - int
    - bool
    - bool
    - bool
    - CrossingProcessor*
    - vector<ShapeEdgeId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2141
    functionName: "S2BooleanOperation::Impl::GetChainStarts(\n    int a_region_id,
      bool invert_a, bool invert_b, bool invert_result,\n    CrossingProcessor* cp,
      vector<ShapeEdgeId>* chain_starts)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - CrossingProcessor*::StartBoundary
    - ShapeEdge::v0
    - num_shape_ids
    - S2Shape*::dimension
    - S2BooleanOperation::Impl::is_boolean_output
    - shape
    - S2Shape*::num_chains
    - ShapeEdgeId
    - S2Shape*::chain
    - AddSpace
    - ProcessIncidentEdges
    - CrossingProcessor*::StartChain
    - S2ContainsPointQuery::Contains
    - HasInterior
    - S2Shape*::chain_edge
    - vector<ShapeEdgeId>*::push_back
    - CrossingProcessor*::StartShape
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::GetChainStarts(\n    int a_region_id,
      bool invert_a, bool invert_b, bool invert_result,\n    CrossingProcessor* cp,
      vector<ShapeEdgeId>* chain_starts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2146,1
    - Dst: S2ContainsPointQuery<S2ShapeIndex>*::VisitIncidentEdges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2147,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2147,1
    - Dst: AddIndexCrossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2148,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2152,1
    - Dst: CrossingProcessor*::inside
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2153,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2157,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2158,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2158,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2158,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2160,1
    - Dst: std::adjacent_find
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2161,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2161,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2161,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2162,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2164,1
    - Dst: S2BooleanOperation::Impl::IndexCrossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2164,1
    - Dst: S2ContainsPointQuery<S2ShapeIndex>*::index
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2165,1
    - Dst: CrossingProcessor*::ProcessEdge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2167,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ' a'
    - query
    - cp
    argTypes:
    - ShapeEdge
    - S2ContainsPointQuery<S2ShapeIndex>*
    - CrossingProcessor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2143
    functionDepth: 1
    functionLinenumber: 2143
    functionLinenumberEnd: 2168
    functionName: "S2BooleanOperation::Impl::ProcessIncidentEdges(\n    const ShapeEdge&
      a, S2ContainsPointQuery<S2ShapeIndex>* query,\n    CrossingProcessor* cp)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2ContainsPointQuery<S2ShapeIndex>*::VisitIncidentEdges
    - CrossingProcessor*::ProcessEdge
    - std::sort
    - end
    - size
    - S2BooleanOperation::Impl::IndexCrossing
    - id
    - v0
    - clear
    - push_back
    - std::adjacent_find
    - AddIndexCrossing
    - CrossingProcessor*::inside
    - S2ContainsPointQuery<S2ShapeIndex>*::index
    - begin
    - empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::ProcessIncidentEdges(\n    const ShapeEdge&
      a, S2ContainsPointQuery<S2ShapeIndex>* query,\n    CrossingProcessor* cp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2171,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2172,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2176
    functionName: S2BooleanOperation::Impl::HasInterior(const S2ShapeIndex& index)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - num_shape_ids
    - shape
    - S2Shape*::dimension
    linkageType: ''
    returnType: bool
    signature: bool S2BooleanOperation::Impl::HasInterior(const S2ShapeIndex& index)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2181,1
    - Dst: IndexCrossings*::push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2182,1
    - Dst: S2BooleanOperation::Impl::IndexCrossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2182,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2182,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2182,1
    - Dst: IndexCrossings*::back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2183,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2186,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2186,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2186,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2186,1
    - Dst: AddIntersection
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2189,1
    - Dst: S2::GetIntersection
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2190,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2190,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2190,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2190,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2190,1
    - Dst: S2::VertexCrossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2195,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2195,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2195,1
    - Dst: v0
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2195,1
    - Dst: v1
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - is_interior
    - crossings
    argTypes:
    - ShapeEdge
    - ShapeEdge
    - bool
    - IndexCrossings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2178
    functionDepth: 5
    functionLinenumber: 2178
    functionLinenumberEnd: 2200
    functionName: "S2BooleanOperation::Impl::AddIndexCrossing(\n    const ShapeEdge&
      a, const ShapeEdge& b, bool is_interior,\n    IndexCrossings* crossings)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - AddIntersection
    - S2::VertexCrossing
    - S2BooleanOperation::Impl::IndexCrossing
    - s2pred::Sign
    - id
    - IndexCrossings*::push_back
    - v1
    - v0
    - IndexCrossings*::back
    - AddSpace
    - S2::GetIntersection
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::AddIndexCrossing(\n    const ShapeEdge&
      a, const ShapeEdge& b, bool is_interior,\n    IndexCrossings* crossings)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2210,1
    - Dst: s2shapeutil::VisitCrossingEdgePairs
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2214,1
    - Dst: S2BooleanOperation::Impl::is_boolean_output
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2221,1
    - Dst: AddIndexCrossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2222,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2226,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2227,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2227,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2227,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2228,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2229,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2229,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2229,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2230,1
    - Dst: AddSpace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2233,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2234,1
    - Dst: S2BooleanOperation::Impl::IndexCrossing
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2234,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2239,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2244,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2244,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2244,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2247,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - region_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2207
    functionDepth: 2
    functionLinenumber: 2207
    functionLinenumberEnd: 2248
    functionName: S2BooleanOperation::Impl::InitIndexCrossings(int region_id)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    - s2shapeutil::VisitCrossingEdgePairs
    - end
    - size
    - S2BooleanOperation::Impl::IndexCrossing
    - S2BooleanOperation::Impl::is_boolean_output
    - push_back
    - AddIndexCrossing
    - AddSpace
    - erase
    - begin
    - swap
    - std::sort
    - ok
    - std::unique
    linkageType: ''
    returnType: bool
    signature: bool S2BooleanOperation::Impl::InitIndexCrossings(int region_id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AreRegionsIdentical
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2259,1
    - Dst: S2BooleanOperation::Impl::is_boolean_output
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2260,1
    - Dst: absl::MakeCleanup
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2266,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2267,1
    - Dst: Untally
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2268,1
    - Dst: GetChainStarts
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2270,1
    - Dst: GetChainStarts
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2271,1
    - Dst: AddBoundary
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2272,1
    - Dst: AddBoundary
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2273,1
    - Dst: S2BooleanOperation::Impl::is_boolean_output
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2276,1
    - Dst: CrossingProcessor*::DoneBoundaryPair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2276,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2277,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - invert_a
    - invert_b
    - invert_result
    - cp
    argTypes:
    - bool
    - bool
    - bool
    - CrossingProcessor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2252
    functionDepth: 1
    functionLinenumber: 2252
    functionLinenumberEnd: 2278
    functionName: "S2BooleanOperation::Impl::AddBoundaryPair(\n    bool invert_a,
      bool invert_b, bool invert_result, CrossingProcessor* cp)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - AddBoundary
    - S2BooleanOperation::Impl::is_boolean_output
    - absl::MakeCleanup
    - CrossingProcessor*::DoneBoundaryPair
    - AreRegionsIdentical
    - Untally
    - ok
    - GetChainStarts
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::AddBoundaryPair(\n    bool invert_a,
      bool invert_b, bool invert_result, CrossingProcessor* cp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: options_::polygon_model
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2284,1
    - Dst: options_::polyline_model
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2285,1
    - Dst: options_::polyline_loops_have_boundaries
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2286,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2287,1
    - Dst: AddBoundaryPair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2292,1
    - Dst: AddBoundaryPair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2296,1
    - Dst: AddBoundaryPair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2305,1
    - Dst: AddBoundaryPair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2309,1
    - Dst: AddBoundaryPair
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2310,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - op_type
    argTypes:
    - OpType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2282
    functionDepth: 0
    functionLinenumber: 2282
    functionLinenumberEnd: 2314
    functionName: S2BooleanOperation::Impl::BuildOpType(OpType op_type)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - get
    - options_::polyline_loops_have_boundaries
    - options_::polygon_model
    - AddBoundaryPair
    - options_::polyline_model
    - ABSL_LOG
    linkageType: ''
    returnType: bool
    signature: bool S2BooleanOperation::Impl::BuildOpType(OpType op_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex::Iterator::done
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2321,1
    - Dst: S2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2322,1
    - Dst: S2ShapeIndex::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2324,1
    - Dst: S2CellId::FromFace
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' index'
    argTypes:
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2318
    functionDepth: 2
    functionLinenumber: 2318
    functionLinenumberEnd: 2327
    functionName: GetFaceMask
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - S2ShapeIndex::Iterator::Seek
    - S2CellId::FromFace
    - S2ShapeIndex::Iterator::id
    - S2ShapeIndex::Iterator::done
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t GetFaceMask(const S2ShapeIndex& index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2349,1
    - Dst: S2Builder::SnapFunction::kMaxSnapRadius
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2349,1
    - Dst: IsFullPolygonUnion
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2366,1
    - Dst: IsFullPolygonIntersection
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2369,1
    - Dst: IsFullPolygonDifference
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2372,1
    - Dst: IsFullPolygonSymmetricDifference
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2375,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - S2Builder::Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2381
    functionName: "S2BooleanOperation::Impl::IsFullPolygonResult(\n    const S2Builder::Graph&
      g, S2Error* absl_nonnull error) const"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - IsFullPolygonDifference
    - ABSL_DCHECK_LE
    - S2Builder::SnapFunction::kMaxSnapRadius
    - IsFullPolygonIntersection
    - IsFullPolygonSymmetricDifference
    - ABSL_LOG
    - IsFullPolygonUnion
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::IsFullPolygonResult(\n    const S2Builder::Graph&
      g, S2Error* absl_nonnull error) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetFaceMask
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2390,1
    - Dst: GetFaceMask
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2390,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2398,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2398,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2399,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2383
    functionDepth: 3
    functionLinenumber: 2383
    functionLinenumberEnd: 2402
    functionName: "S2BooleanOperation::Impl::IsFullPolygonUnion(\n    const S2ShapeIndex&
      a, const S2ShapeIndex& b) const"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - GetFaceMask
    - S2::GetArea
    - min
    - max
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::IsFullPolygonUnion(\n    const S2ShapeIndex&
      a, const S2ShapeIndex& b) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetFaceMask
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2411,1
    - Dst: GetFaceMask
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2411,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2419,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2419,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2420,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2404
    functionDepth: 3
    functionLinenumber: 2404
    functionLinenumberEnd: 2423
    functionName: "S2BooleanOperation::Impl::IsFullPolygonIntersection(\n    const
      S2ShapeIndex& a, const S2ShapeIndex& b) const"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - GetFaceMask
    - S2::GetArea
    - min
    - max
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::IsFullPolygonIntersection(\n    const
      S2ShapeIndex& a, const S2ShapeIndex& b) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetFaceMask
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2433,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2441,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2441,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2442,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2425
    functionDepth: 3
    functionLinenumber: 2425
    functionLinenumberEnd: 2445
    functionName: "S2BooleanOperation::Impl::IsFullPolygonDifference(\n    const S2ShapeIndex&
      a, const S2ShapeIndex& b) const"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - GetFaceMask
    - S2::GetArea
    - min
    - max
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::IsFullPolygonDifference(\n    const
      S2ShapeIndex& a, const S2ShapeIndex& b) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFaceMask
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2454,1
    - Dst: GetFaceMask
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2455,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2463,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2463,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2464,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2465,1
    - Dst: edge_snap_radius
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2477,1
    - Dst: auto::radians
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2478,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2447
    functionDepth: 3
    functionLinenumber: 2447
    functionLinenumberEnd: 2505
    functionName: "S2BooleanOperation::Impl::IsFullPolygonSymmetricDifference(\n    const
      S2ShapeIndex& a, const S2ShapeIndex& b) const"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - fabs
    - GetFaceMask
    - edge_snap_radius
    - auto::radians
    - S2::GetArea
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Impl::IsFullPolygonSymmetricDifference(\n
      \   const S2ShapeIndex& a, const S2ShapeIndex& b) const"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S2ShapeIndex*::num_shape_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2520,1
    - Dst: S2ShapeIndex*::num_shape_ids
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2521,1
    - Dst: S2ShapeIndex*::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2523,1
    - Dst: S2ShapeIndex*::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2524,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2525,1
    - Dst: S2Shape*::dimension
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2526,1
    - Dst: S2Shape*::num_chains
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2527,1
    - Dst: S2Shape*::num_chains
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2528,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2529,1
    - Dst: S2Shape*::num_edges
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2530,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2532,1
    - Dst: S2Shape*::chain
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2536,1
    - Dst: S2Shape*::chain
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2537,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2538,1
    - Dst: S2ShapeIndex*::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2544,1
    - Dst: S2ShapeIndex*::shape
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2545,1
    - Dst: S2Shape*::num_chains
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2546,1
    - Dst: S2Shape*::chain
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2548,1
    - Dst: S2Shape*::chain_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2550,1
    - Dst: S2Shape*::chain_edge
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2551,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2509
    functionDepth: 0
    functionLinenumber: 2509
    functionLinenumberEnd: 2562
    functionName: S2BooleanOperation::Impl::AreRegionsIdentical() const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_EQ
    - S2Shape*::dimension
    - S2Shape*::num_chains
    - S2Shape*::num_edges
    - S2ShapeIndex*::num_shape_ids
    - S2ShapeIndex*::shape
    - S2Shape*::chain
    - S2Shape*::chain_edge
    linkageType: ''
    returnType: bool
    signature: bool S2BooleanOperation::Impl::AreRegionsIdentical() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique<s2builderutil::IdentitySnapFunction>
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2609,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2608
    functionDepth: 1
    functionLinenumber: 2608
    functionLinenumberEnd: 2611
    functionName: S2BooleanOperation::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - make_unique<s2builderutil::IdentitySnapFunction>
    - S1Angle::Zero
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' snap_function'
    argTypes:
    - SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2613
    functionDepth: 0
    functionLinenumber: 2613
    functionLinenumberEnd: 2615
    functionName: S2BooleanOperation::Options::Options(const SnapFunction& snap_function)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::Options::Options(const SnapFunction& snap_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function_::Clone
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2617
    functionDepth: 0
    functionLinenumber: 2617
    functionLinenumberEnd: 2628
    functionName: S2BooleanOperation::Options::Options(const Options& options)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - snap_function_::Clone
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::Options::Options(const Options& options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snap_function_::Clone
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2630
    functionDepth: 0
    functionLinenumber: 2630
    functionLinenumberEnd: 2643
    functionName: "& S2BooleanOperation::Options::operator=(\n    const Options& options)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - snap_function_::Clone
    linkageType: ''
    returnType: S2BooleanOperation::Options
    signature: "S2BooleanOperation::Options & S2BooleanOperation::Options::operator=(\n
      \   const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2645
    functionDepth: 0
    functionLinenumber: 2645
    functionLinenumberEnd: 2647
    functionName: '& S2BooleanOperation::Options::snap_function() const'
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SnapFunction
    signature: SnapFunction & S2BooleanOperation::Options::snap_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clone
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' snap_function'
    argTypes:
    - SnapFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2649
    functionDepth: 0
    functionLinenumber: 2649
    functionLinenumberEnd: 2652
    functionName: "S2BooleanOperation::Options::set_snap_function(\n    const SnapFunction&
      snap_function)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - Clone
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::Options::set_snap_function(\n    const SnapFunction&
      snap_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2654
    functionDepth: 0
    functionLinenumber: 2654
    functionLinenumberEnd: 2656
    functionName: S2BooleanOperation::Options::polygon_model() const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PolygonModel
    signature: PolygonModel S2BooleanOperation::Options::polygon_model() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - model
    argTypes:
    - PolygonModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2658
    functionDepth: 0
    functionLinenumber: 2658
    functionLinenumberEnd: 2660
    functionName: S2BooleanOperation::Options::set_polygon_model(PolygonModel model)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::Options::set_polygon_model(PolygonModel model)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2662
    functionDepth: 0
    functionLinenumber: 2662
    functionLinenumberEnd: 2664
    functionName: S2BooleanOperation::Options::polyline_model() const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PolylineModel
    signature: PolylineModel S2BooleanOperation::Options::polyline_model() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - model
    argTypes:
    - PolylineModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2666
    functionDepth: 0
    functionLinenumber: 2666
    functionLinenumberEnd: 2668
    functionName: S2BooleanOperation::Options::set_polyline_model(PolylineModel model)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::Options::set_polyline_model(PolylineModel
      model)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2670
    functionDepth: 0
    functionLinenumber: 2670
    functionLinenumberEnd: 2672
    functionName: S2BooleanOperation::Options::polyline_loops_have_boundaries() const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2BooleanOperation::Options::polyline_loops_have_boundaries()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2674
    functionDepth: 0
    functionLinenumber: 2674
    functionLinenumberEnd: 2677
    functionName: "S2BooleanOperation::Options::set_polyline_loops_have_boundaries(\n
      \   bool value)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::Options::set_polyline_loops_have_boundaries(\n
      \   bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2679
    functionDepth: 0
    functionLinenumber: 2679
    functionLinenumberEnd: 2681
    functionName: S2BooleanOperation::Options::split_all_crossing_polyline_edges()
      const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2BooleanOperation::Options::split_all_crossing_polyline_edges()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2686
    functionName: "S2BooleanOperation::Options::set_split_all_crossing_polyline_edges(\n
      \   bool value)"
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::Options::set_split_all_crossing_polyline_edges(\n
      \   bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2688
    functionDepth: 0
    functionLinenumber: 2688
    functionLinenumberEnd: 2690
    functionName: S2BooleanOperation::Options::precision() const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Precision
    signature: Precision S2BooleanOperation::Options::precision() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2692
    functionDepth: 0
    functionLinenumber: 2692
    functionLinenumberEnd: 2694
    functionName: S2BooleanOperation::Options::conservative_output() const
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2BooleanOperation::Options::conservative_output() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2696
    functionDepth: 0
    functionLinenumber: 2696
    functionLinenumberEnd: 2699
    functionName: '*

      S2BooleanOperation::Options::source_id_lexicon() const'
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ValueLexicon<S2BooleanOperation::SourceId>
    signature: 'ValueLexicon<S2BooleanOperation::SourceId> *

      S2BooleanOperation::Options::source_id_lexicon() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2701
    functionDepth: 0
    functionLinenumber: 2701
    functionLinenumberEnd: 2703
    functionName: '* S2BooleanOperation::Options::memory_tracker() const'
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2MemoryTracker
    signature: S2MemoryTracker * S2BooleanOperation::Options::memory_tracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - S2MemoryTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2705
    functionDepth: 0
    functionLinenumber: 2705
    functionLinenumberEnd: 2707
    functionName: S2BooleanOperation::Options::set_memory_tracker(S2MemoryTracker*
      tracker)
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::Options::set_memory_tracker(S2MemoryTracker*
      tracker)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op_type
    argTypes:
    - OpType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2709
    functionDepth: 0
    functionLinenumber: 2709
    functionLinenumberEnd: 2717
    functionName: S2BooleanOperation::OpTypeToString
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: string_view
    signature: string_view S2BooleanOperation::OpTypeToString(OpType op_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - model
    argTypes:
    - PolygonModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2719
    functionDepth: 0
    functionLinenumber: 2719
    functionLinenumberEnd: 2726
    functionName: S2BooleanOperation::PolygonModelToString
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: string_view
    signature: string_view S2BooleanOperation::PolygonModelToString(PolygonModel model)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - model
    argTypes:
    - PolylineModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2728
    functionDepth: 0
    functionLinenumber: 2728
    functionLinenumberEnd: 2735
    functionName: S2BooleanOperation::PolylineModelToString
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: string_view
    signature: string_view S2BooleanOperation::PolylineModelToString(PolylineModel
      model)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - op_type
    - ' options'
    argTypes:
    - OpType
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2737
    functionDepth: 0
    functionLinenumber: 2737
    functionLinenumberEnd: 2738
    functionName: S2BooleanOperation::S2BooleanOperation
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2BooleanOperation::S2BooleanOperation(OpType op_type, const Options&
      options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - op_type
    - result_empty
    - ' options'
    argTypes:
    - OpType
    - bool*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2740
    functionDepth: 0
    functionLinenumber: 2740
    functionLinenumberEnd: 2743
    functionName: S2BooleanOperation::S2BooleanOperation
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::S2BooleanOperation(OpType op_type, bool*
      result_empty,\n                                       const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2749,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - op_type
    - layer
    - ' options'
    argTypes:
    - OpType
    - unique_ptr<S2Builder::Layer>
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2745
    functionDepth: 0
    functionLinenumber: 2745
    functionLinenumberEnd: 2750
    functionName: S2BooleanOperation::S2BooleanOperation
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::S2BooleanOperation(OpType op_type,\n                                       unique_ptr<S2Builder::Layer>
      layer,\n                                       const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - op_type
    - layers
    - ' options'
    argTypes:
    - OpType
    - vector<unique_ptr<S2Builder::Layer>>
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2752
    functionDepth: 0
    functionLinenumber: 2752
    functionLinenumberEnd: 2755
    functionName: S2BooleanOperation::S2BooleanOperation
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void S2BooleanOperation::S2BooleanOperation(\n    OpType op_type,
      vector<unique_ptr<S2Builder::Layer>> layers,\n    const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Impl
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - absl_nonnull
    argTypes:
    - S2ShapeIndex
    - S2ShapeIndex
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2757
    functionDepth: 0
    functionLinenumber: 2757
    functionLinenumberEnd: 2762
    functionName: S2BooleanOperation::Build
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 14
    functionsReached:
    - Impl
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::Build(const S2ShapeIndex& a, const S2ShapeIndex&
      b,\n                               S2Error* absl_nonnull error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2769,1
    - Dst: S2BooleanOperation::Build
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2770,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2771,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2boolean_operation.cc:2771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - op_type
    - ' a'
    - ' b'
    - ' options'
    argTypes:
    - OpType
    - S2ShapeIndex
    - S2ShapeIndex
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2764
    functionDepth: 1
    functionLinenumber: 2764
    functionLinenumberEnd: 2773
    functionName: S2BooleanOperation::IsEmpty
    functionSourceFile: /src/s2geometry/src/s2/s2boolean_operation.cc
    functionUses: 10
    functionsReached:
    - S2BooleanOperation::Build
    - S2Error::ok
    - ABSL_DCHECK
    - S2Error::S2Error
    linkageType: ''
    returnType: bool
    signature: "bool S2BooleanOperation::IsEmpty(\n    OpType op_type, const S2ShapeIndex&
      a, const S2ShapeIndex& b,\n    const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2point_test.cc:52,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2point_test.cc:53,1
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2point_test.cc:56,1
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2point_test.cc:58,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:60,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:64,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2point_test.cc:65,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2point_test.cc:66,1
    - Dst: hasher
      Src: /src/s2geometry/src/s2/s2point_test.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2point_test.cc:67,1
    - Dst: absl::c_sort
      Src: /src/s2geometry/src/s2/s2point_test.cc:70,1
    - Dst: std::vector::erase
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: std::vector::begin
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: absl::c_sort
      Src: /src/s2geometry/src/s2/s2point_test.cc:73,1
    - Dst: std::vector::erase
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::vector::begin
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2point_test.cc:80,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2point_test.cc:81,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2point_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 85
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - absl::c_sort
    - std::vector::push_back
    - s2random::Point
    - std::vector::size
    - std::vector::erase
    - S2Point
    - S2Point::Normalize
    - std::vector::end
    - EXPECT_LE
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - std::vector::reserve
    - hasher
    - S2Testing::MakeTaggedSeedSeq
    - std::vector::begin
    - std::unique
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, HashSpreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, IsAVector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2point_test.cc:96,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2point_test.cc:96,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:98,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2point_test.cc:99,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2point_test.cc:100,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2point_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_test.cc:101,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2point_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::RoundTrip
    - s2random::Point
    - EXPECT_TRUE
    - s2coding::S2HintCoder::S2HintCoder
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Error::ok
    - S2Testing::MakeTaggedSeedSeq
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:109,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:109,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Eq
    - EXPECT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, SubtractionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:115,1
    - Dst: S2Point::DivComponents
      Src: /src/s2geometry/src/s2/s2point_test.cc:115,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:115,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point::DivComponents
    - Eq
    - EXPECT_THAT
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, ElementWiseDivisionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:120,1
    - Dst: S2Point::Sqrt
      Src: /src/s2geometry/src/s2/s2point_test.cc:120,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:120,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point::Sqrt
    - Eq
    - EXPECT_THAT
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, SqrtWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:125,1
    - Dst: S2Point::Floor
      Src: /src/s2geometry/src/s2/s2point_test.cc:125,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:125,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Eq
    - EXPECT_THAT
    - S2Point::Floor
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, FloorWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:130,1
    - Dst: S2Point::Ceil
      Src: /src/s2geometry/src/s2/s2point_test.cc:130,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:130,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Eq
    - EXPECT_THAT
    - S2Point::Ceil
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, CeilWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:135,1
    - Dst: S2Point::FRound
      Src: /src/s2geometry/src/s2/s2point_test.cc:135,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:135,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Eq
    - EXPECT_THAT
    - S2Point::FRound
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, FRoundWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:141,1
    - Dst: S2Point::x
      Src: /src/s2geometry/src/s2/s2point_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:142,1
    - Dst: S2Point::y
      Src: /src/s2geometry/src/s2/s2point_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:143,1
    - Dst: S2Point::z
      Src: /src/s2geometry/src/s2/s2point_test.cc:143,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:144,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2point_test.cc:144,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2point_test.cc:147,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:148,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2point_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - S2Point::z
    - S2Point::Normalize
    - S2Point::x
    - S2Point::Norm
    - EXPECT_EQ
    - S2Point::y
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, UnnormalizedPointAccepted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2point_test.cc:52,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2point_test.cc:53,1
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2point_test.cc:56,1
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/s2point_test.cc:58,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:60,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:64,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2point_test.cc:65,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2point_test.cc:66,1
    - Dst: hasher
      Src: /src/s2geometry/src/s2/s2point_test.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2point_test.cc:67,1
    - Dst: absl::c_sort
      Src: /src/s2geometry/src/s2/s2point_test.cc:70,1
    - Dst: std::vector::erase
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: std::vector::begin
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2point_test.cc:71,1
    - Dst: absl::c_sort
      Src: /src/s2geometry/src/s2/s2point_test.cc:73,1
    - Dst: std::vector::erase
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::unique
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::vector::begin
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::vector::end
      Src: /src/s2geometry/src/s2/s2point_test.cc:74,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2point_test.cc:80,1
    - Dst: std::vector::size
      Src: /src/s2geometry/src/s2/s2point_test.cc:81,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2point_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 85
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - absl::c_sort
    - std::vector::push_back
    - s2random::Point
    - std::vector::size
    - std::vector::erase
    - S2Point
    - S2Point::Normalize
    - std::vector::end
    - EXPECT_LE
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - std::vector::reserve
    - hasher
    - S2Testing::MakeTaggedSeedSeq
    - std::vector::begin
    - std::unique
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, HashSpreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, IsAVector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2point_test.cc:96,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2point_test.cc:96,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:98,1
    - Dst: S2Error::S2Error
      Src: /src/s2geometry/src/s2/s2point_test.cc:99,1
    - Dst: s2coding::RoundTrip
      Src: /src/s2geometry/src/s2/s2point_test.cc:100,1
    - Dst: s2coding::S2HintCoder::S2HintCoder
      Src: /src/s2geometry/src/s2/s2point_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_test.cc:101,1
    - Dst: S2Error::ok
      Src: /src/s2geometry/src/s2/s2point_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::RoundTrip
    - s2random::Point
    - EXPECT_TRUE
    - s2coding::S2HintCoder::S2HintCoder
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Error::ok
    - S2Testing::MakeTaggedSeedSeq
    - S2Error::S2Error
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, CoderWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:109,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:109,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Eq
    - EXPECT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, SubtractionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:115,1
    - Dst: S2Point::DivComponents
      Src: /src/s2geometry/src/s2/s2point_test.cc:115,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:115,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point::DivComponents
    - Eq
    - EXPECT_THAT
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, ElementWiseDivisionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:120,1
    - Dst: S2Point::Sqrt
      Src: /src/s2geometry/src/s2/s2point_test.cc:120,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:120,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point::Sqrt
    - Eq
    - EXPECT_THAT
    - S2Point
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, SqrtWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:125,1
    - Dst: S2Point::Floor
      Src: /src/s2geometry/src/s2/s2point_test.cc:125,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:125,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Eq
    - EXPECT_THAT
    - S2Point::Floor
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, FloorWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:130,1
    - Dst: S2Point::Ceil
      Src: /src/s2geometry/src/s2/s2point_test.cc:130,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:130,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Eq
    - EXPECT_THAT
    - S2Point::Ceil
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, CeilWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/s2point_test.cc:135,1
    - Dst: S2Point::FRound
      Src: /src/s2geometry/src/s2/s2point_test.cc:135,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/s2point_test.cc:135,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Eq
    - EXPECT_THAT
    - S2Point::FRound
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, FRoundWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:141,1
    - Dst: S2Point::x
      Src: /src/s2geometry/src/s2/s2point_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:142,1
    - Dst: S2Point::y
      Src: /src/s2geometry/src/s2/s2point_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:143,1
    - Dst: S2Point::z
      Src: /src/s2geometry/src/s2/s2point_test.cc:143,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:144,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2point_test.cc:144,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2point_test.cc:147,1
    - Dst: EXPECT_DOUBLE_EQ
      Src: /src/s2geometry/src/s2/s2point_test.cc:148,1
    - Dst: S2Point::Norm
      Src: /src/s2geometry/src/s2/s2point_test.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DOUBLE_EQ
    - S2Point::z
    - S2Point::Normalize
    - S2Point::x
    - S2Point::Norm
    - EXPECT_EQ
    - S2Point::y
    linkageType: ''
    returnType: void
    signature: void TEST(S2Point, UnnormalizedPointAccepted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:26,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:27,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:28,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:29,1
    - Dst: S2Point::Normalize
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:31,1
    - Dst: S2::WedgeContains
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:32,1
    - Dst: S2::WedgeIntersects
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:33,1
    - Dst: S2::GetWedgeRelation
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - a0
    - ab1
    - a2
    - b0
    - b2
    - contains
    - intersects
    - wedge_relation
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - bool
    - bool
    - S2::WedgeRelation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: TestWedge
    functionSourceFile: /src/s2geometry/src/s2/s2wedge_relations_test.cc
    functionUses: 0
    functionsReached:
    - S2::GetWedgeRelation
    - S2Point::Normalize
    - S2::WedgeIntersects
    - S2::WedgeContains
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestWedge(S2Point a0, S2Point ab1, S2Point a2, S2Point b0, S2Point
      b2,\n               bool contains, bool intersects,\n               S2::WedgeRelation
      wedge_relation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:42,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:42,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:42,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:42,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:43,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:43,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:46,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:46,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:46,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:46,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:47,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:47,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:51,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:51,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:51,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:51,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:52,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:52,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:55,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:55,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:55,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:55,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:56,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:56,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:59,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:59,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:59,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:59,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:60,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:60,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:64,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:64,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:64,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:64,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:65,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:65,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:69,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:69,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:69,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:69,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:70,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:70,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:73,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:73,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:73,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:73,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:74,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:74,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:77,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:77,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:77,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:77,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:78,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:78,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:82,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:82,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:82,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:82,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:83,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:83,1
    - Dst: TestWedge
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:86,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:86,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:86,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:86,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:87,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2wedge_relations_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 89
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2wedge_relations_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - TestWedge
    linkageType: ''
    returnType: void
    signature: void TEST(S2WedgeRelations, Wedges)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: S1Interval::lo
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double lo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: S1Interval::hi
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double hi() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: operator[](int i) const
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: '& bounds() const'
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vector2_d
    signature: Vector2_d & bounds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.h:98,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: S1Interval::is_full
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 7
    functionsReached:
    - S1Interval::hi
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool is_full() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.h:101,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: S1Interval::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 18
    functionsReached:
    - S1Interval::hi
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.h:104,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: S1Interval::is_inverted
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 7
    functionsReached:
    - S1Interval::hi
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool is_inverted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s1interval.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: S1Interval::IsValidPoint
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 8
    functionsReached:
    - std::fabs
    linkageType: ''
    returnType: bool
    signature: bool IsValidPoint(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::set_lo
      Src: /src/s2geometry/src/s2/s1interval.h:231,1
    - Dst: S1Interval::set_hi
      Src: /src/s2geometry/src/s2/s1interval.h:232,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.h:233,1
    - Dst: S1Interval::is_valid
      Src: /src/s2geometry/src/s2/s1interval.h:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - lo
    - hi
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: S1Interval::S1Interval
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 8
    functionsReached:
    - S1Interval::set_hi
    - S1Interval::is_valid
    - S1Interval::set_lo
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S1Interval::S1Interval(double lo, double hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.h:238,1
    - Dst: S1Interval::is_valid
      Src: /src/s2geometry/src/s2/s1interval.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lo
    - hi
    - dummy
    argTypes:
    - double
    - double
    - ArgsChecked
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: S1Interval::S1Interval
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 8
    functionsReached:
    - S1Interval::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S1Interval::S1Interval(double lo, double hi, ArgsChecked dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: S1Interval::S1Interval
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S1Interval::S1Interval()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: S1Interval::Empty
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 6
    functionsReached:
    - S1Interval::S1Interval
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval S1Interval::Empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::S1Interval
      Src: /src/s2geometry/src/s2/s1interval.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: S1Interval::Full
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 14
    functionsReached:
    - S1Interval::S1Interval
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval S1Interval::Full()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s1interval.h:253,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.h:253,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s1interval.h:253,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.h:253,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.h:254,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.h:254,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.h:255,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.h:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: S1Interval::is_valid
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 3
    functionsReached:
    - std::fabs
    - S1Interval::hi
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.h:259,1
    - Dst: S1Interval::lo
      Src: /src/s2geometry/src/s2/s1interval.h:259,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.h:259,1
    - Dst: S1Interval::hi
      Src: /src/s2geometry/src/s2/s1interval.h:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: S1Interval::operator==(const S1Interval& y) const
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 0
    functionsReached:
    - S1Interval::hi
    - S1Interval::lo
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::operator==(const S1Interval& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: S1Interval::operator!=(const S1Interval& y) const
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S1Interval::operator!=(const S1Interval& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.h:268,1
    - Dst: S1Interval::is_valid
      Src: /src/s2geometry/src/s2/s1interval.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: S1Interval::set_lo
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 3
    functionsReached:
    - S1Interval::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S1Interval::set_lo(double p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s1interval.h:273,1
    - Dst: S1Interval::is_valid
      Src: /src/s2geometry/src/s2/s1interval.h:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: S1Interval::set_hi
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 2
    functionsReached:
    - S1Interval::is_valid
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void S1Interval::set_hi(double p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval.h:277,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' x'
    argTypes:
    - std::ostream
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: '& operator<<(std::ostream& os, const S1Interval& x)'
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 0
    functionsReached:
    - lo
    - hi
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const S1Interval& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s1interval.h:282,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s1interval.h:282,1
    - Dst: lo
      Src: /src/s2geometry/src/s2/s1interval.h:282,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s1interval.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' interval'
    argTypes:
    - H
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s1interval.h
    functionUses: 0
    functionsReached:
    - std::move
    - lo
    - H::combine
    - hi
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const S1Interval& interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndexTest::Add
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:41,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:42,1
    - Dst: PointData
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - data
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: S2PointIndexTest::Add
    functionSourceFile: /src/s2geometry/src/s2/s2point_index_test.cc
    functionUses: 1
    functionsReached:
    - PointData
    - insert
    - S2PointIndexTest::Add
    linkageType: ''
    returnType: void
    signature: void Add(const S2Point& point, int data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:47,1
    - Dst: find
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:47,1
    - Dst: PointData
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:47,1
    - Dst: S2PointIndexTest::Remove
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - data
    argTypes:
    - S2Point
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: S2PointIndexTest::Remove
    functionSourceFile: /src/s2geometry/src/s2/s2point_index_test.cc
    functionUses: 1
    functionsReached:
    - S2PointIndexTest::Remove
    - find
    - erase
    - PointData
    linkageType: ''
    returnType: void
    signature: void Remove(const S2Point& point, int data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndexTest::VerifyContents
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:52,1
    - Dst: S2PointIndexTest::VerifyIteratorMethods
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: S2PointIndexTest::Verify
    functionSourceFile: /src/s2geometry/src/s2/s2point_index_test.cc
    functionUses: 0
    functionsReached:
    - S2PointIndexTest::VerifyContents
    - S2PointIndexTest::VerifyIteratorMethods
    linkageType: ''
    returnType: void
    signature: void Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Index::Iterator::done
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:58,1
    - Dst: Index::Iterator::Next
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:58,1
    - Dst: Contents::find
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:59,1
    - Dst: Index::Iterator::point_data
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:60,1
    - Dst: Contents::end
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:60,1
    - Dst: Contents::erase
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:63,1
    - Dst: Contents::empty
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: S2PointIndexTest::VerifyContents
    functionSourceFile: /src/s2geometry/src/s2/s2point_index_test.cc
    functionUses: 1
    functionsReached:
    - Contents::find
    - Index::Iterator::point_data
    - Index::Iterator::Next
    - EXPECT_TRUE
    - Contents::empty
    - Contents::erase
    - Contents::end
    - Index::Iterator::done
    linkageType: ''
    returnType: void
    signature: void VerifyContents()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:68,1
    - Dst: Index::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:68,1
    - Dst: Index::Iterator::Finish
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:70,1
    - Dst: Index::Iterator::done
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:70,1
    - Dst: S2CellId::None
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:73,1
    - Dst: S2CellId::Begin
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:74,1
    - Dst: Index::Iterator::Begin
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:75,1
    - Dst: Index::Iterator::done
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:75,1
    - Dst: Index::Iterator::Next
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:75,1
    - Dst: Index::Iterator::id
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:77,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:77,1
    - Dst: Index::Iterator::point
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:77,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:78,1
    - Dst: typename Index::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:82,1
    - Dst: S2CellUnion::FromBeginEnd
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:89,1
    - Dst: typename Index::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:91,1
    - Dst: typename Index::Iterator::id
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:91,1
    - Dst: S2CellId::is_valid
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:97,1
    - Dst: typename Index::Iterator::Prev
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:98,1
    - Dst: typename Index::Iterator::id
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:98,1
    - Dst: typename Index::Iterator::Next
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:100,1
    - Dst: typename Index::Iterator::id
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:100,1
    - Dst: typename Index::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:102,1
    - Dst: typename Index::Iterator::id
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:102,1
    - Dst: S2CellId::next
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 107
    functionName: S2PointIndexTest::VerifyIteratorMethods
    functionSourceFile: /src/s2geometry/src/s2/s2point_index_test.cc
    functionUses: 1
    functionsReached:
    - S2CellUnion::FromBeginEnd
    - S2CellId
    - typename Index::Iterator::Seek
    - typename Index::Iterator::id
    - Index::Iterator::done
    - Index::Iterator::Prev
    - S2CellId::next
    - EXPECT_GE
    - typename Index::Iterator::Prev
    - EXPECT_EQ
    - S2CellId::is_valid
    - S2CellId::None
    - Index::Iterator::Next
    - EXPECT_TRUE
    - Index::Iterator::point
    - Index::Iterator::Begin
    - Index::Iterator::Finish
    - typename Index::Iterator::Next
    - Index::Iterator::id
    - S2CellId::Begin
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void VerifyIteratorMethods()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Verify
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_index_test.cc
    functionUses: 0
    functionsReached:
    - Verify
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointIndexTest, NoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:116,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:116,1
    - Dst: Verify
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:118,1
    - Dst: Remove
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:121,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:121,1
    - Dst: Verify
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_index_test.cc
    functionUses: 0
    functionsReached:
    - S2Point
    - Add
    - Remove
    - Verify
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointIndexTest, DuplicatePoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:127,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:128,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:130,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:130,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:130,1
    - Dst: Verify
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:132,1
    - Dst: S2PointIndex<int>::Iterator::Seek
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:137,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:137,1
    - Dst: S2PointIndex<int>::Iterator::done
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:138,1
    - Dst: Remove
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:139,1
    - Dst: S2PointIndex<int>::Iterator::point
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:139,1
    - Dst: S2PointIndex<int>::Iterator::data
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:139,1
    - Dst: Verify
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 142
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2point_index_test.cc
    functionUses: 0
    functionsReached:
    - Add
    - s2random::Point
    - Verify
    - S2PointIndex<int>::Iterator::point
    - s2random::CellId
    - S2PointIndex<int>::Iterator::done
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - Remove
    - S2Testing::MakeTaggedSeedSeq
    - S2PointIndex<int>::Iterator::Seek
    - S2PointIndex<int>::Iterator::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(S2PointIndexTest, RandomPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:146,1
    - Dst: S2PointIndex::S2PointIndex
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:149,1
    - Dst: S2PointIndex::Add
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:150,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:150,1
    - Dst: S2PointIndex::Remove
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:151,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:152,1
    - Dst: S2PointIndex::num_points
      Src: /src/s2geometry/src/s2/s2point_index_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2point_index_test.cc
    functionUses: 0
    functionsReached:
    - S2PointIndex::Add
    - S2PointIndex::Remove
    - S2Point
    - S2PointIndex::S2PointIndex
    - EXPECT_EQ
    - S2PointIndex::num_points
    linkageType: ''
    returnType: void
    signature: void TEST(S2PointIndex, EmptyData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:38,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:40,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:40,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:42,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:42,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:44,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:44,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:47,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:49,1
    - Dst: EncodedStringVector::Decode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:49,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:53,1
    - Dst: EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:55,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:55,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:55,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:55,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:56,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:56,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - input
    - expected_bytes
    argTypes:
    - absl::Span<const string>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: s2coding::TestEncodedStringVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - EncodedStringVector::Decode
    - s2coding::StringVectorEncoder::Encode
    - string_view
    - Encoder::length
    - Encoder::base
    - ASSERT_TRUE
    - EncodedStringVector::Init
    - EncodedStringVector::Encode
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: "void TestEncodedStringVector(absl::Span<const string> input,\n                             size_t
      expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, EmptyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, RepeatedEmptyStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, OneString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, TwoStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:80,1
    - Dst: string
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:80,1
    - Dst: string
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, TwoBigStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:87,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:88,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:90,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:90,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:92,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:92,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:94,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2coding::StringVectorEncoder::Encode
    - Encoder::length
    - EncodedStringVector::size
    - Encoder::base
    - ASSERT_TRUE
    - EncodedStringVector::Init
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, SubscriptOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:104,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:105,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:108,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:109,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:109,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:110,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:110,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:111,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:112,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:115,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:116,1
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:117,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:117,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:118,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:119,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:120,1
    - Dst: EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:123,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:123,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:123,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:123,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:124,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:124,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:124,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:127,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:128,1
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:129,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:129,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:129,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:130,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:130,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:131,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:132,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:134,1
    - Dst: EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:136,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:136,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:136,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:136,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:137,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:137,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:137,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:140,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:141,1
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:142,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:142,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:142,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:143,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:143,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:144,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:144,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:146,1
    - Dst: EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:148,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:148,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:148,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:148,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:149,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:149,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:149,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:152,1
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:153,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:153,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:153,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:154,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 155
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2coding::StringVectorEncoder::Encode
    - Encoder::clear
    - string_view
    - Decoder
    - Encoder::length
    - EncodedStringVector::size
    - Encoder::base
    - ASSERT_FALSE
    - ASSERT_TRUE
    - EncodedStringVector::Init
    - EncodedStringVector::Encode
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, ReInitialize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:38,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:40,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:40,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:42,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:42,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:44,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:44,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:47,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:49,1
    - Dst: EncodedStringVector::Decode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:49,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:53,1
    - Dst: EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:55,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:55,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:55,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:55,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:56,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:56,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - input
    - expected_bytes
    argTypes:
    - absl::Span<const string>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: s2coding::TestEncodedStringVector
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 6
    functionsReached:
    - vector::push_back
    - EncodedStringVector::Decode
    - s2coding::StringVectorEncoder::Encode
    - string_view
    - Encoder::length
    - Encoder::base
    - ASSERT_TRUE
    - EncodedStringVector::Init
    - EncodedStringVector::Encode
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: "void TestEncodedStringVector(absl::Span<const string> input,\n                             size_t
      expected_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, EmptyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, RepeatedEmptyStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, OneString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, TwoStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2coding::TestEncodedStringVector
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:80,1
    - Dst: string
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:80,1
    - Dst: string
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - s2coding::TestEncodedStringVector
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, TwoBigStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:87,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:88,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:90,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:90,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:92,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:92,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:94,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2coding::StringVectorEncoder::Encode
    - Encoder::length
    - EncodedStringVector::size
    - Encoder::base
    - ASSERT_TRUE
    - EncodedStringVector::Init
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, SubscriptOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:104,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:105,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:108,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:109,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:109,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:110,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:110,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:111,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:112,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:115,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:116,1
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:117,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:117,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:118,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:119,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:120,1
    - Dst: EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:123,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:123,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:123,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:123,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:124,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:124,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:124,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:127,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:128,1
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:129,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:129,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:129,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:130,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:130,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:131,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:132,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:134,1
    - Dst: EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:136,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:136,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:136,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:136,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:137,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:137,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:137,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:140,1
    - Dst: s2coding::StringVectorEncoder::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:141,1
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:142,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:142,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:142,1
    - Dst: ASSERT_TRUE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:143,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:143,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:144,1
    - Dst: EncodedStringVector::size
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:144,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:146,1
    - Dst: EncodedStringVector::Encode
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:148,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:148,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:148,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:148,1
    - Dst: string_view
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:149,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:149,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:149,1
    - Dst: Encoder::clear
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:152,1
    - Dst: Decoder
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:153,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:153,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:153,1
    - Dst: ASSERT_FALSE
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:154,1
    - Dst: EncodedStringVector::Init
      Src: /src/s2geometry/src/s2/encoded_string_vector_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 155
    functionName: s2coding::TEST
    functionSourceFile: /src/s2geometry/src/s2/encoded_string_vector_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2coding::StringVectorEncoder::Encode
    - Encoder::clear
    - string_view
    - Decoder
    - Encoder::length
    - EncodedStringVector::size
    - Encoder::base
    - ASSERT_FALSE
    - ASSERT_TRUE
    - EncodedStringVector::Init
    - EncodedStringVector::Encode
    - EXPECT_EQ
    - Encoder::Encoder
    linkageType: ''
    returnType: void
    signature: void TEST(EncodedStringVectorTest, ReInitialize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:106,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: S2LatLngRect::lat_lo
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 6
    functionsReached:
    - S1Angle::Radians
    - S2LatLngRect::lo
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle lat_lo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:107,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: S2LatLngRect::lat_hi
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 6
    functionsReached:
    - S1Angle::Radians
    - S2LatLngRect::hi
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle lat_hi() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:108,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: S2LatLngRect::lng_lo
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 3
    functionsReached:
    - S1Angle::Radians
    - S2LatLngRect::lo
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle lng_lo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:109,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: S2LatLngRect::lng_hi
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 3
    functionsReached:
    - S1Angle::Radians
    - S2LatLngRect::hi
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle lng_hi() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '& lat() const'
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval & lat() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: '& lng() const'
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval & lng() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: S2LatLngRect::mutable_lat
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval *mutable_lat()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: S2LatLngRect::mutable_lng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval *mutable_lng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:114,1
    - Dst: S2LatLngRect::lat_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:114,1
    - Dst: S2LatLngRect::lng_lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: S2LatLngRect::lo
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 12
    functionsReached:
    - S2LatLngRect::lng_lo
    - S2LatLng
    - S2LatLngRect::lat_lo
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng lo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:115,1
    - Dst: S2LatLngRect::lat_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:115,1
    - Dst: S2LatLngRect::lng_hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: S2LatLngRect::hi
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 12
    functionsReached:
    - S2LatLng
    - S2LatLngRect::lng_hi
    - S2LatLngRect::lat_hi
    linkageType: ''
    returnType: S2LatLng
    signature: S2LatLng hi() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: S2LatLngRect::FullLat
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 4
    functionsReached:
    - R1Interval
    linkageType: ''
    returnType: R1Interval
    signature: R1Interval FullLat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Interval::Full
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: S2LatLngRect::FullLng
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 0
    functionsReached:
    - S1Interval::Full
    linkageType: ''
    returnType: S1Interval
    signature: S1Interval FullLng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::is_inverted
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: S2LatLngRect::is_inverted
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 1
    functionsReached:
    - S2LatLngRect::is_inverted
    linkageType: ''
    returnType: bool
    signature: bool is_inverted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:333,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:333,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:333,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' rect'
    argTypes:
    - H
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 334
    functionName: S2LatLngRect::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine
    - S2LatLngRect::lo
    - S2LatLngRect::hi
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const S2LatLngRect& rect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:395,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:395,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:396,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:396,1
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:397,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lo'
    - ' hi'
    argTypes:
    - S2LatLng
    - S2LatLng
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: S2LatLngRect::S2LatLngRect
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 17
    functionsReached:
    - S2LatLngRect::is_valid
    - lat
    - lng
    - ABSL_DLOG_IF
    linkageType: ''
    returnType: void
    signature: void S2LatLngRect::S2LatLngRect(const S2LatLng& lo, const S2LatLng&
      hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DLOG_IF
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:402,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lat'
    - ' lng'
    argTypes:
    - R1Interval
    - S1Interval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: S2LatLngRect::S2LatLngRect
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 17
    functionsReached:
    - S2LatLngRect::is_valid
    - ABSL_DLOG_IF
    linkageType: ''
    returnType: void
    signature: void S2LatLngRect::S2LatLngRect(const R1Interval& lat, const S1Interval&
      lng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R1Interval::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:406,1
    - Dst: S1Interval::Empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: S2LatLngRect::S2LatLngRect
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 17
    functionsReached:
    - R1Interval::Empty
    - S1Interval::Empty
    linkageType: ''
    returnType: void
    signature: void S2LatLngRect::S2LatLngRect()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: S2LatLngRect::Empty
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 31
    functionsReached:
    - S2LatLngRect::S2LatLngRect
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRect::Empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::S2LatLngRect
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:414,1
    - Dst: S2LatLngRect::FullLat
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:414,1
    - Dst: S2LatLngRect::FullLng
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: S2LatLngRect::Full
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 17
    functionsReached:
    - S2LatLngRect::FullLat
    - S2LatLngRect::FullLng
    - S2LatLngRect::S2LatLngRect
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2LatLngRect::Full()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:419,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:419,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:420,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:420,1
    - Dst: S2LatLngRect::is_valid
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:421,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:422,1
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: S2LatLngRect::is_valid
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 11
    functionsReached:
    - S2LatLngRect::is_valid
    - S2LatLngRect::is_empty
    - std::fabs
    - S2LatLngRect::hi
    - S2LatLngRect::lo
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::is_empty
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: S2LatLngRect::is_empty
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 14
    functionsReached:
    - S2LatLngRect::is_empty
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::is_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::FullLat
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:430,1
    - Dst: S2LatLngRect::is_full
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: S2LatLngRect::is_full
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 3
    functionsReached:
    - S2LatLngRect::is_full
    - S2LatLngRect::FullLat
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::is_full() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:434,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:434,1
    - Dst: S2LatLngRect::lo
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:434,1
    - Dst: S2LatLngRect::hi
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: S2LatLngRect::is_point
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 2
    functionsReached:
    - S2LatLngRect::lo
    - S2LatLngRect::hi
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::is_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:438,1
    - Dst: lat
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:438,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:438,1
    - Dst: lng
      Src: /src/s2geometry/src/s2/s2latlng_rect.h:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 439
    functionName: S2LatLngRect::operator==(const S2LatLngRect& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 0
    functionsReached:
    - lat
    - lng
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::operator==(const S2LatLngRect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - S2LatLngRect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 443
    functionName: S2LatLngRect::operator!=(const S2LatLngRect& other) const
    functionSourceFile: /src/s2geometry/src/s2/s2latlng_rect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool S2LatLngRect::operator!=(const S2LatLngRect& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: S2ContainsPointQueryOptions::S2ContainsPointQueryOptions
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ContainsPointQueryOptions()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: '& index() const'
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IndexType
    signature: IndexType & index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& options() const'
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Options
    signature: Options & options() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: S2ContainsPointQuery::mutable_iter
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iterator
    signature: Iterator * mutable_iter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    argTypes:
    - IndexType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: MakeS2ContainsPointQuery
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached:
    - S2ContainsPointQuery
    linkageType: ''
    returnType: S2ContainsPointQuery<IndexType>
    signature: "S2ContainsPointQuery<IndexType> MakeS2ContainsPointQuery(\n    const
      IndexType* index ABSL_ATTRIBUTE_LIFETIME_BOUND)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsPointQuery
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ABSL_ATTRIBUTE_LIFETIME_BOUND
    - ' options'
    argTypes:
    - IndexType*
    - S2ContainsPointQueryOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: MakeS2ContainsPointQuery
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached:
    - S2ContainsPointQuery
    linkageType: ''
    returnType: S2ContainsPointQuery<IndexType>
    signature: "S2ContainsPointQuery<IndexType> MakeS2ContainsPointQuery(\n    const
      IndexType* index ABSL_ATTRIBUTE_LIFETIME_BOUND,\n    const S2ContainsPointQueryOptions&
      options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - vertex_model
    argTypes:
    - S2VertexModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: S2ContainsPointQueryOptions::S2ContainsPointQueryOptions
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ContainsPointQueryOptions::S2ContainsPointQueryOptions(\n    S2VertexModel
      vertex_model)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: S2ContainsPointQueryOptions::vertex_model
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2VertexModel
    signature: S2VertexModel S2ContainsPointQueryOptions::vertex_model() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - model
    argTypes:
    - S2VertexModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: S2ContainsPointQueryOptions::set_vertex_model
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ContainsPointQueryOptions::set_vertex_model(S2VertexModel model)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: S2ContainsPointQuery<IndexType>::S2ContainsPointQuery
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2ContainsPointQuery<IndexType>::S2ContainsPointQuery()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - IndexType*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: S2ContainsPointQuery<IndexType>::S2ContainsPointQuery
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2ContainsPointQuery<IndexType>::S2ContainsPointQuery(\n    const
      IndexType* index, const Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - index
    - vertex_model
    argTypes:
    - IndexType*
    - S2VertexModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: S2ContainsPointQuery<IndexType>::S2ContainsPointQuery
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached:
    - Options
    linkageType: ''
    returnType: void
    signature: "void S2ContainsPointQuery<IndexType>::S2ContainsPointQuery(\n    const
      IndexType* index, S2VertexModel vertex_model)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsPointQuery<IndexType>::Init
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - index
    - ' options'
    argTypes:
    - IndexType*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: S2ContainsPointQuery<IndexType>::Init
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 1
    functionsReached:
    - S2ContainsPointQuery<IndexType>::Init
    linkageType: ''
    returnType: void
    signature: "void S2ContainsPointQuery<IndexType>::Init(const IndexType* index,\n
      \                                          const Options& options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:257,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:259,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:260,1
    - Dst: S2ContainsPointQuery<IndexType>::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:262,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:262,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: S2ContainsPointQuery<IndexType>::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached:
    - id
    - S2ContainsPointQuery<IndexType>::ShapeContains
    - Locate
    - clipped
    - cell
    - num_clipped
    linkageType: ''
    returnType: bool
    signature: bool S2ContainsPointQuery<IndexType>::Contains(const S2Point& p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:270,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:274,1
    - Dst: S2ContainsPointQuery<IndexType>::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:279,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - shape_id
    - ' p'
    argTypes:
    - int
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: S2ContainsPointQuery<IndexType>::ShapeContains
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 2
    functionsReached:
    - id
    - Locate
    - S2ContainsPointQuery<IndexType>::ShapeContains
    - cell
    linkageType: ''
    returnType: bool
    signature: "bool S2ContainsPointQuery<IndexType>::ShapeContains(int shape_id,\n
      \                                                   const S2Point& p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:287,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:289,1
    - Dst: S2ContainsPointQuery<IndexType>::ShapeContains
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:290,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:290,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:290,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' p'
    - visitor
    argTypes:
    - S2Point
    - absl::FunctionRef<bool(int shape_id)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: S2ContainsPointQuery<IndexType>::VisitContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached:
    - id
    - S2ContainsPointQuery<IndexType>::ShapeContains
    - shape_id
    - visitor
    - Locate
    - cell
    linkageType: ''
    returnType: bool
    signature: "bool S2ContainsPointQuery<IndexType>::VisitContainingShapeIds(\n    const
      S2Point& p, absl::FunctionRef<bool(int shape_id)> visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsPointQuery<IndexType>::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:300,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:301,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - visitor
    argTypes:
    - S2Point
    - absl::FunctionRef<bool(const S2Shape* shape)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: S2ContainsPointQuery<IndexType>::VisitContainingShapes
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached:
    - visitor
    - shape
    - S2ContainsPointQuery<IndexType>::VisitContainingShapeIds
    linkageType: ''
    returnType: bool
    signature: "bool S2ContainsPointQuery<IndexType>::VisitContainingShapes(\n    const
      S2Point& p, absl::FunctionRef<bool(const S2Shape* shape)> visitor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:309,1
    - Dst: cell
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:311,1
    - Dst: num_clipped
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:312,1
    - Dst: clipped
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:314,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:315,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:317,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:317,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:319,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:320,1
    - Dst: visitor
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:322,1
    - Dst: s2shapeutil::ShapeEdge
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:322,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:322,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - ' p'
    - ' visitor'
    argTypes:
    - S2Point
    - EdgeVisitor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 328
    functionName: S2ContainsPointQuery<IndexType>::VisitIncidentEdges
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached:
    - num_edges
    - shape_id
    - shape
    - s2shapeutil::ShapeEdge
    - edge
    - Locate
    - visitor
    - clipped
    - cell
    - num_clipped
    linkageType: ''
    returnType: bool
    signature: "bool S2ContainsPointQuery<IndexType>::VisitIncidentEdges(\n    const
      S2Point& p, const EdgeVisitor& visitor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsPointQuery<IndexType>::VisitContainingShapes
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:334,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 339
    functionName: S2ContainsPointQuery<IndexType>::GetContainingShapes
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - S2ContainsPointQuery<IndexType>::VisitContainingShapes
    linkageType: ''
    returnType: std::vector<const S2Shape*>
    signature: std::vector<const S2Shape*> S2ContainsPointQuery<IndexType>::GetContainingShapes(const
      S2Point& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ContainsPointQuery<IndexType>::VisitContainingShapeIds
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:345,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 350
    functionName: S2ContainsPointQuery<IndexType>::GetContainingShapeIds
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - S2ContainsPointQuery<IndexType>::VisitContainingShapeIds
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> S2ContainsPointQuery<IndexType>::GetContainingShapeIds(\n
      \   const S2Point& p)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:355,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:356,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:358,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:358,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:359,1
    - Dst: vertex_model
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:361,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:365,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:365,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:372,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:374,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:374,1
    - Dst: S2CopyingEdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:375,1
    - Dst: vertex_model
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:379,1
    - Dst: vertex_model
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:381,1
    - Dst: S2::VertexCrossing
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:383,1
    - Dst: S2CopyingEdgeCrosser::a
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:383,1
    - Dst: S2CopyingEdgeCrosser::b
      Src: /src/s2geometry/src/s2/s2contains_point_query.h:383,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 3
    argNames:
    - cell_id
    - ' clipped'
    - ' p'
    argTypes:
    - S2CellId
    - S2ClippedShape
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 389
    functionName: S2ContainsPointQuery<IndexType>::ShapeContains
    functionSourceFile: /src/s2geometry/src/s2/s2contains_point_query.h
    functionUses: 3
    functionsReached:
    - S2CellId::ToPoint
    - S2::VertexCrossing
    - S2CopyingEdgeCrosser::a
    - num_edges
    - vertex_model
    - shape_id
    - shape
    - dimension
    - edge
    - S2CopyingEdgeCrosser::CrossingSign
    - contains_center
    - S2CopyingEdgeCrosser::b
    linkageType: ''
    returnType: bool
    signature: "bool S2ContainsPointQuery<IndexType>::ShapeContains(\n    S2CellId
      cell_id, const S2ClippedShape& clipped, const S2Point& p) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:84,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:86,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:88,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:88,1
    - Dst: auto::distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:89,1
    - Dst: auto::shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:90,1
    - Dst: auto::edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:90,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:91,1
    - Dst: auto::is_interior
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:92,1
    - Dst: auto::is_empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:93,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:93,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::FindClosestEdge
    - auto::shape_id
    - S2ClosestEdgeQuery::GetDistance
    - EXPECT_TRUE
    - S2Point
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1ChordAngle::Infinity
    - auto::is_interior
    - EXPECT_EQ
    - auto::distance
    - auto::edge_id
    - EXPECT_FALSE
    - auto::is_empty
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, NoEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:101,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:102,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:102,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:103,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:103,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:104,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:105,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:107,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:107,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:108,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:108,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:109,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:109,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:112,1
    - Dst: S2ClosestEdgeQuery::Options::max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:112,1
    - Dst: S2ClosestEdgeQuery::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:113,1
    - Dst: S2ClosestEdgeQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:113,1
    - Dst: S2ClosestEdgeQuery::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:114,1
    - Dst: S2ClosestEdgeQuery::Options::max_error
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:114,1
    - Dst: S2ClosestEdgeQuery::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::FindClosestEdge
    - S2ClosestEdgeQuery::GetDistance
    - auto::get
    - S2ClosestEdgeQuery::Options::max_distance
    - S2ClosestEdgeQuery::IsDistanceLess
    - EXPECT_NEAR
    - EXPECT_TRUE
    - S2ClosestEdgeQuery::Options::max_error
    - S2ClosestEdgeQuery::Options::max_results
    - S1ChordAngle::Degrees
    - S2ClosestEdgeQuery::Options::set_max_distance
    - MakePointOrDie
    - S2ClosestEdgeQuery::Options::set_max_error
    - EXPECT_EQ
    - S2ClosestEdgeQuery::options
    - S2ClosestEdgeQuery::Options::set_max_results
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, OptionsNotModified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:122,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:122,1
    - Dst: set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:123,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:124,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:124,1
    - Dst: S2ClosestEdgeQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:124,1
    - Dst: S2ClosestEdgeQuery::Options::set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:126,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:126,1
    - Dst: set_inclusive_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:127,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:128,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:128,1
    - Dst: S2ClosestEdgeQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:128,1
    - Dst: S2ClosestEdgeQuery::Options::set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:130,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:130,1
    - Dst: set_conservative_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:131,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:132,1
    - Dst: max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:132,1
    - Dst: S2ClosestEdgeQuery::Options::max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::Options::set_inclusive_max_distance
    - set_conservative_max_distance
    - S2ClosestEdgeQuery::Options::max_distance
    - max_distance
    - S2ClosestEdgeQuery::Options::set_conservative_max_distance
    - set_inclusive_max_distance
    - S1Angle::Degrees
    - set_max_distance
    - S1ChordAngle::Degrees
    - S2ClosestEdgeQuery::Options::set_max_distance
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, OptionsS1AngleSetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:139,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:139,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:141,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:142,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:142,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:147,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:148,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:148,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:149,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:149,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:150,1
    - Dst: S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:150,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:155,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:155,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:156,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:156,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:157,1
    - Dst: S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 158
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::IsDistanceLess
    - S2ClosestEdgeQuery::IsDistanceLessOrEqual
    - EXPECT_TRUE
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S1ChordAngle::Zero
    - make_unique<S2PointVectorShape>
    - MakePointOrDie
    - S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, DistanceEqualToLimit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1ChordAngle::Predecessor
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:170,1
    - Dst: ASSERT_LT
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:171,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:171,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:175,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:176,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:179,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:180,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:180,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:181,1
    - Dst: S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 182
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::IsDistanceLess
    - S2ClosestEdgeQuery::IsDistanceLessOrEqual
    - EXPECT_TRUE
    - S1ChordAngle::Predecessor
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - ASSERT_LT
    - s2pred::CompareDistance
    - make_unique<S2PointVectorShape>
    - S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual
    - EXPECT_FALSE
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, TrueDistanceLessThanS1ChordAngleDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:187,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:188,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:189,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:189,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:190,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:191,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:192,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:193,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:194,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:194,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 195
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S1Angle::Degrees
    - auto::size
    - S2ClosestEdgeQuery::mutable_options
    - EXPECT_EQ
    - S2ClosestEdgeQuery::FindClosestEdges
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, TestReuseOfQuery)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:200,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:202,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:203,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:203,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:204,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:205,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:206,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:207,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:208,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:208,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:209,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:210,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:210,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:211,1
    - Dst: is_interior
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:211,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:212,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 213
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - ASSERT_EQ
    - auto::get
    - EXPECT_TRUE
    - shape_id
    - S1Angle::Degrees
    - S1ChordAngle::Zero
    - auto::size
    - S2ClosestEdgeQuery::Options::set_max_distance
    - is_interior
    - MakePointOrDie
    - distance
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - EXPECT_EQ
    - S2ClosestEdgeQuery::FindClosestEdges
    - is_empty
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, TargetPointInsideIndexedPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:220,1
    - Dst: auto::num_shape_ids
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:220,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:223,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:227,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:229,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:230,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:230,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:230,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:236,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:238,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:239,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:240,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 243
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S2ClosestEdgeQuery::IsDistanceLess
    - EXPECT_TRUE
    - S1ChordAngle::Degrees
    - MakePointOrDie
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - EXPECT_EQ
    - auto::num_shape_ids
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, ShapeFilteringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:256,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:257,1
    - Dst: num_shape_ids
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:257,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:259,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: VisitClosestEdgesTest::VisitClosestEdgesTest
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - get
    - num_shape_ids
    - EXPECT_EQ
    - Init
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void VisitClosestEdgesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:264,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:265,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:266,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:266,1
    - Dst: S2::RobustCrossProd
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:267,1
    - Dst: Matrix3x3::FromCols
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:268,1
    - Dst: S2Fractal::SetLevelForApproxMaxEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:271,1
    - Dst: std::make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:272,1
    - Dst: S2Fractal::MakeLoop
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:272,1
    - Dst: Init
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:273,1
    - Dst: index
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:273,1
    - Dst: num_vertices
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: VisitClosestEdgesTest::FractalQuery
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - index
    - Init
    - num_vertices
    - S2Fractal::SetLevelForApproxMaxEdges
    - S2Fractal::MakeLoop
    - S2Point
    - S1Angle::Degrees
    - S2LatLng::FromDegrees
    - Matrix3x3::FromCols
    - std::make_unique<S2Polygon>
    - S2::RobustCrossProd
    linkageType: ''
    returnType: int
    signature: "int FractalQuery(absl::BitGenRef bitgen,\n                   S1Angle
      radius = S1Angle::Degrees(10))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: '& query()'
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ClosestEdgeQuery
    signature: S2ClosestEdgeQuery & query()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:284,1
    - Dst: VisitClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - target
    argTypes:
    - S2MinDistanceTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 296
    functionName: VisitClosestEdgesTest::Visit
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - Options
    - VisitClosestEdges
    linkageType: ''
    returnType: int
    signature: "int Visit(S2MinDistanceTarget* target, const Options& options = Options(),\n
      \           std::optional<ResultVisitor> visitor = {},\n            ShapeFilter
      filter = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: VisitClosestEdgesTest::FalseVisitor
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FalseVisitor(const Result&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:311,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Visit
    - MakePointOrDie
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, CanVisitClosestEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:316,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:317,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:317,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:318,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:318,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:319,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Visit
    - MakePointOrDie
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, CanFilterShapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_set::contains
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:324,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:328,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:328,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:331,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:331,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:336,1
    - Dst: absl::flat_hash_set::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 337
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set::contains
    - absl::flat_hash_set::insert
    - shape_id
    - absl::flat_hash_set::size
    - MakePointOrDie
    - EXPECT_EQ
    - Visit
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, UpdatingShapeFilterWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:341,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:342,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Visit
    - MakePointOrDie
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, CanBreakFromShapeIteration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::Options::set_use_brute_force
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:349,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:350,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:353,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:354,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::Options::set_use_brute_force
    - MakePointOrDie
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - EXPECT_EQ
    - Visit
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, CanBreakFromBruteForce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:358,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:359,1
    - Dst: FractalQuery
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:360,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:363,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:367,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 368
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - FractalQuery
    - MakePointOrDie
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - Visit
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, CanBreakFromNormalIteration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:371,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:372,1
    - Dst: FractalQuery
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:373,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:376,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:378,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:381,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:382,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:383,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:383,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 390
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - FractalQuery
    - S1ChordAngle::Zero
    - EXPECT_GE
    - MakePointOrDie
    - distance
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - Visit
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, DistanceIsMonotonic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:393,1
    - Dst: query
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:395,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:396,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:399,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:399,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:400,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:401,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:402,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:403,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 404
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - vector::push_back
    - query
    - shape_id
    - MakePointOrDie
    - EXPECT_EQ
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, OnlyClosestEdgePerShapeIsReturned)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:407,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:408,1
    - Dst: FractalQuery
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:409,1
    - Dst: S1ChordAngle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:411,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:414,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:415,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:417,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:419,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:420,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:421,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:422,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:428,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 432
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - FractalQuery
    - EXPECT_LT
    - S1ChordAngle::Zero
    - S1ChordAngle::Degrees
    - S2ClosestEdgeQuery::Options::set_max_distance
    - MakePointOrDie
    - distance
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - absl::LogInfoStreamer
    - Visit
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, CanLimitByDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:435,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:436,1
    - Dst: FractalQuery
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:437,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:442,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:443,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:445,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:446,1
    - Dst: Visit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - FractalQuery
    - MakePointOrDie
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - Visit
    - S2ClosestEdgeQuery::Options::set_max_results
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_F(VisitClosestEdgesTest, CanLimitByNumResults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:452,1
    - Dst: S2ClosestEdgeQuery::Options::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:454,1
    - Dst: S2ClosestEdgeQuery::Options::set_max_distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:455,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:455,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:456,1
    - Dst: MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:457,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:458,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:459,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 460
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - S1Angle::Degrees
    - auto::size
    - S2ClosestEdgeQuery::Options::set_max_distance
    - MakePointOrDie
    - S2ClosestEdgeQuery::Options::set_include_interiors
    - EXPECT_EQ
    - S2ClosestEdgeQuery::FindClosestEdges
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, TargetPointOutsideIndexedPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:465,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:466,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:467,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:467,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:468,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:470,1
    - Dst: S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:471,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:472,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:473,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:475,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:475,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:475,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:476,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:477,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:477,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:478,1
    - Dst: is_interior
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:478,1
    - Dst: S2ClosestEdgeQuery::GetEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:479,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:480,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:480,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:480,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:481,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:482,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:482,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:482,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:483,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:485,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:485,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:486,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:487,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:487,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:488,1
    - Dst: is_interior
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:488,1
    - Dst: S2ClosestEdgeQuery::GetEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:489,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:490,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:490,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:490,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:491,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:492,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:492,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:492,1
    - Dst: S2LatLng
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 494
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - edge_id
    - shape_id
    - auto::size
    - is_interior
    - S2ClosestEdgeQuery::FindClosestEdges
    - EXPECT_EQ
    - auto::get
    - S2ClosestEdgeQuery::GetEdge
    - EXPECT_TRUE
    - S2LatLng
    - S1Angle::Degrees
    - ASSERT_EQ
    - S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - S1ChordAngle::Zero
    - S2::ApproxEquals
    - S2ClosestEdgeQuery::mutable_options
    - S2LatLng::FromDegrees
    - distance
    - EXPECT_FALSE
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, TargetPolygonContainingIndexedPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:499,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:500,1
    - Dst: make_unique<S2Polygon::OwningShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:500,1
    - Dst: make_unique<S2Polygon>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:500,1
    - Dst: S2Loop::MakeRegularLoop
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:501,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:501,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:501,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:503,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:503,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:504,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:506,1
    - Dst: S2ClosestEdgeQuery::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 507
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - make_unique<S2Polygon::OwningShape>
    - S2Point
    - S2Loop::MakeRegularLoop
    - S1Angle::Radians
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ClosestEdgeQuery::mutable_options
    - make_unique<S2Polygon>
    - EXPECT_EQ
    - S2ClosestEdgeQuery::FindClosestEdges
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, EmptyTargetOptimized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:511,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:512,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:513,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:514,1
    - Dst: S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:515,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:517,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:518,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:519,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:519,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:519,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:521,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:522,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:523,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:523,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:523,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:525,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:526,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:527,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:527,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 528
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::GetDistance
    - auto::get
    - S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - S2ClosestEdgeQuery::mutable_options
    - S1ChordAngle::Infinity
    - EXPECT_EQ
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, EmptyPolygonTarget)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:532,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:533,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:534,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:535,1
    - Dst: S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:536,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:538,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:539,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:540,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:540,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:540,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:542,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:543,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:544,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:544,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:544,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:546,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:547,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:548,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:548,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 549
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery::GetDistance
    - auto::get
    - S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - S1ChordAngle::Zero
    - S2ClosestEdgeQuery::mutable_options
    - S1ChordAngle::Infinity
    - EXPECT_EQ
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, FullLaxPolygonTarget)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:554,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:555,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:556,1
    - Dst: auto::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:557,1
    - Dst: make_unique<S2Polygon::OwningShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:557,1
    - Dst: s2textformat::MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:558,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:560,1
    - Dst: S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:561,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:563,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:564,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:565,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:565,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:565,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:567,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:569,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:569,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:569,1
    - Dst: auto::get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:571,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:572,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:573,1
    - Dst: S1ChordAngle::Zero
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:573,1
    - Dst: S2ClosestEdgeQuery::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 574
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - auto::Add
    - S2ClosestEdgeQuery::GetDistance
    - auto::get
    - S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - make_unique<S2Polygon::OwningShape>
    - S1ChordAngle::Zero
    - S2ClosestEdgeQuery::mutable_options
    - S1ChordAngle::Infinity
    - EXPECT_EQ
    - s2textformat::MakePolygonOrDie
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, FullS2PolygonTarget)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - num_trials
    - z
    argTypes:
    - double
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 580
    functionName: ConfidenceBound
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 1
    functionsReached:
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double ConfidenceBound(double p, int num_trials, double z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:587,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:588,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:591,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:592,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:594,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:594,1
    - Dst: S2::GetPointOnLine
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:595,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:597,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:598,1
    - Dst: MutableS2ShapeIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:599,1
    - Dst: make_unique<S2PointVectorShape>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:599,1
    - Dst: vector<S2Point>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:599,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:602,1
    - Dst: S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:602,1
    - Dst: S2ClosestEdgeQuery::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:604,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:613,1
    - Dst: ConfidenceBound
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:614,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:615,1
    - Dst: ConfidenceBound
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:616,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:617,1
    - Dst: ConfidenceBound
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:619,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:620,1
    - Dst: ConfidenceBound
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 582
    functionDepth: 4
    functionLinenumber: 582
    functionLinenumberEnd: 623
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - s2random::Point
    - S2::GetPointOnLine
    - S2ClosestEdgeQuery::IsDistanceLess
    - EXPECT_TRUE
    - ConfidenceBound
    - S1Angle::Radians
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - s2pred::CompareDistance
    - make_unique<S2PointVectorShape>
    - EXPECT_GE
    - EXPECT_LE
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual
    - vector<S2Point>
    - S2Testing::MakeTaggedSeedSeq
    - MutableS2ShapeIndex::Add
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestEdgeQuery, IsConservativeDistanceLessOrEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:639,1
    - Dst: TestingResult
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:640,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:640,1
    - Dst: ShapeEdgeId
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:641,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:641,1
    - Dst: edge_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - results
    argTypes:
    - absl::Span<const S2ClosestEdgeQuery::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 644
    functionName: ConvertResults
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 1
    functionsReached:
    - edge_id
    - vector::push_back
    - shape_id
    - ShapeEdgeId
    - TestingResult
    - distance
    linkageType: ''
    returnType: vector<TestingResult>
    signature: "vector<TestingResult> ConvertResults(\n    absl::Span<const S2ClosestEdgeQuery::Result>
      results)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:652,1
    - Dst: S2ClosestEdgeQuery*::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:653,1
    - Dst: S2ClosestEdgeQuery*::FindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:655,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:656,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:660,1
    - Dst: vector<S2ClosestEdgeQuery::Result>*::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:660,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:660,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:661,1
    - Dst: S2MinDistance::Infinity
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:662,1
    - Dst: s2shapeutil::CountEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:663,1
    - Dst: S2ClosestEdgeQuery*::index
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:663,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:666,1
    - Dst: S2ClosestEdgeQuery*::index
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:669,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:673,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:673,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:675,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:677,1
    - Dst: vector<S2ClosestEdgeQuery::Result>*::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:677,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:680,1
    - Dst: vector<S2ClosestEdgeQuery::Result>*::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:680,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:685,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:685,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:685,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - target
    - query
    - edges
    - ' allowed_shapes'
    argTypes:
    - S2ClosestEdgeQuery::Target*
    - S2ClosestEdgeQuery*
    - vector<S2ClosestEdgeQuery::Result>*
    - absl::flat_hash_set<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 687
    functionName: GetClosestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - S2ClosestEdgeQuery*::options
    - EXPECT_LT
    - S2ClosestEdgeQuery*::FindClosestEdges
    - min
    - vector<S2ClosestEdgeQuery::Result>*::size
    - S2MinDistance::Infinity
    - EXPECT_LE
    - distance
    - empty
    - EXPECT_EQ
    - s2shapeutil::CountEdges
    - contains
    - S2ClosestEdgeQuery*::index
    linkageType: ''
    returnType: void
    signature: "void GetClosestEdges(S2ClosestEdgeQuery::Target* target,\n                            S2ClosestEdgeQuery*
      query,\n                            vector<S2ClosestEdgeQuery::Result>* edges,\n
      \                           const absl::flat_hash_set<int>& allowed_shapes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:693,1
    - Dst: GetClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:694,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:698,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:700,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:700,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:700,1
    - Dst: S2ClosestEdgeQuery*::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:704,1
    - Dst: GetClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:705,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:706,1
    - Dst: CheckDistanceResults
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:706,1
    - Dst: ConvertResults
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:706,1
    - Dst: ConvertResults
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:707,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:708,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:709,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:710,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:711,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:712,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:713,1
    - Dst: vector::empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:715,1
    - Dst: S2ChainInterpolationQuery::Result::Result
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:715,1
    - Dst: contains
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:720,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:724,1
    - Dst: S2ClosestEdgeQuery::ShapeFilter
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:724,1
    - Dst: S2ClosestEdgeQuery*::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:732,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:733,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:734,1
    - Dst: S2ClosestEdgeQuery*::GetDistance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:734,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:737,1
    - Dst: S2ClosestEdgeQuery*::IsDistanceLess
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:737,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:738,1
    - Dst: S2ClosestEdgeQuery*::IsConservativeDistanceLessOrEqual
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - target
    - query
    argTypes:
    - S2ClosestEdgeQuery::Target*
    - S2ClosestEdgeQuery*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 689
    functionDepth: 5
    functionLinenumber: 689
    functionLinenumberEnd: 743
    functionName: TestFindClosestEdges
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2ClosestEdgeQuery*::options
    - EXPECT_TRUE
    - shape_id
    - S2ClosestEdgeQuery::ShapeFilter
    - ConvertResults
    - S2ChainInterpolationQuery::Result::Result
    - S2ClosestEdgeQuery*::IsConservativeDistanceLessOrEqual
    - vector::empty
    - S2ClosestEdgeQuery*::GetDistance
    - distance
    - EXPECT_LE
    - empty
    - S2ClosestEdgeQuery*::IsDistanceLess
    - S2ClosestEdgeQuery*::mutable_options
    - CheckDistanceResults
    - contains
    - GetClosestEdges
    linkageType: ''
    returnType: S2ClosestEdgeQuery::Result
    signature: "S2ClosestEdgeQuery::Result TestFindClosestEdges(\n    S2ClosestEdgeQuery::Target*
      target, S2ClosestEdgeQuery* query,\n    absl::flat_hash_set<int> allowed_shapes
      = {})"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:757,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:757,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:757,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:758,1
    - Dst: make_unique<MutableS2ShapeIndex>
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:758,1
    - Dst: AddEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:761,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:761,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:761,1
    - Dst: AddEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:762,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:762,1
    - Dst: vector::back
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:762,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:765,1
    - Dst: GetRadius
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:770,1
    - Dst: center
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:771,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:772,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:776,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:777,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:777,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:780,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:781,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:782,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:784,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:787,1
    - Dst: S1Angle::Radians
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:787,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:788,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:788,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:790,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:791,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:792,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:795,1
    - Dst: TestFindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:797,1
    - Dst: auto::distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:798,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:800,1
    - Dst: auto::distance
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:801,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:802,1
    - Dst: S2ClosestEdgeQuery::Project
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:802,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:807,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:808,1
    - Dst: S2Cap
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:810,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:810,1
    - Dst: TestFindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:812,1
    - Dst: GetLevelForMaxValue
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:815,1
    - Dst: S1Angle::radians
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:815,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:816,1
    - Dst: s2random::SamplePoint
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:818,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:819,1
    - Dst: TestFindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:821,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:823,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:825,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:826,1
    - Dst: S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:827,1
    - Dst: absl::Bernoulli
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:827,1
    - Dst: TestFindClosestEdges
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:828,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - ' factory'
    - num_indexes
    - num_edges
    - num_queries
    - ' allowed_shapes'
    - bitgen
    argTypes:
    - s2testing::ShapeIndexFactory
    - int
    - int
    - int
    - absl::flat_hash_set<int>
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 748
    functionDepth: 6
    functionLinenumber: 748
    functionLinenumberEnd: 831
    functionName: TestWithIndexFactory
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 13
    functionsReached:
    - s2random::Point
    - absl::Bernoulli
    - S2CellId
    - S2ClosestEdgeQuery::Project
    - vector::back
    - S1Angle
    - center
    - auto::distance
    - EXPECT_NEAR
    - GetLevelForMaxValue
    - S2Cap
    - S1Angle::Radians
    - GetRadius
    - make_unique<MutableS2ShapeIndex>
    - vector::push_back
    - ABSL_DCHECK_EQ
    - TestFindClosestEdges
    - S1Angle::radians
    - S2ClosestEdgeQuery::ShapeIndexTarget::set_include_interiors
    - get
    - S2ClosestEdgeQuery::mutable_options
    - s2random::SamplePoint
    - AddEdges
    - s2random::LogUniform
    linkageType: ''
    returnType: void
    signature: "void TestWithIndexFactory(const s2testing::ShapeIndexFactory& factory,\n
      \                                int num_indexes, int num_edges,\n                                 int
      num_queries,\n                                 const absl::flat_hash_set<int>&
      allowed_shapes,\n                                 absl::BitGenRef bitgen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 845
    functionName: S2ClosestEdgeQueryShapeTest::allowed_shapes
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: absl::flat_hash_set<int>
    signature: absl::flat_hash_set<int> allowed_shapes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:849,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:850,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:851,1
    - Dst: s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:851,1
    - Dst: allowed_shapes
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 853
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - allowed_shapes
    - s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
    - TestWithIndexFactory
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(S2ClosestEdgeQueryShapeTest, CircleEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:856,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:857,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:858,1
    - Dst: s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:858,1
    - Dst: allowed_shapes
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 861
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - allowed_shapes
    - TestWithIndexFactory
    - s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(S2ClosestEdgeQueryShapeTest, FractalEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:864,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:865,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:866,1
    - Dst: s2testing::PointCloudShapeIndexFactory::PointCloudShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:866,1
    - Dst: allowed_shapes
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 869
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - allowed_shapes
    - s2testing::PointCloudShapeIndexFactory::PointCloudShapeIndexFactory
    - TestWithIndexFactory
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(S2ClosestEdgeQueryShapeTest, PointCloudEdges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:872,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:873,1
    - Dst: TestWithIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:876,1
    - Dst: s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:876,1
    - Dst: allowed_shapes
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 878
    functionName: TEST_P
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - allowed_shapes
    - TestWithIndexFactory
    - s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(S2ClosestEdgeQueryShapeTest, ConservativeCellDistanceIsUsed)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:914,1
    - Dst: MutableS2ShapeIndex::MutableS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:921,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:923,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:924,1
    - Dst: S2Testing::KmToAngle
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:926,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:926,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:928,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:931,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:933,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:934,1
    - Dst: EncodedS2ShapeIndex::EncodedS2ShapeIndex
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:937,1
    - Dst: S2ClosestEdgeQuery::options
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:938,1
    - Dst: PauseTiming
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:958,1
    - Dst: s2testing::S2ClosestEdgeQueryBenchmarkHarness::GenerateEdgeQueryWithTargets
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:960,1
    - Dst: Encoder::Encoder
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:963,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:965,1
    - Dst: MutableS2ShapeIndex::Encode
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:968,1
    - Dst: string
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:969,1
    - Dst: Encoder::base
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:969,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:969,1
    - Dst: string::data
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:970,1
    - Dst: string::length
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:970,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:972,1
    - Dst: EncodedS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:972,1
    - Dst: s2shapeutil::LazyDecodeShapeFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:973,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:975,1
    - Dst: EncodedS2ShapeIndex::Init
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:975,1
    - Dst: s2shapeutil::VectorShapeFactory::VectorShapeFactory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:976,1
    - Dst: MutableS2ShapeIndex::ReleaseAll
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:976,1
    - Dst: S2ClosestEdgeQuery::ReInit
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:978,1
    - Dst: ResumeTiming
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:980,1
    - Dst: S2ClosestEdgeQuery*::FindClosestEdge
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:982,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:982,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:983,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 14
    argNames:
    - bitgen
    - ' state'
    - ' factory'
    - encode_index
    - encode_shapes
    - num_index_edges
    - include_interiors
    - target_type
    - num_target_edges
    - max_distance_fraction
    - max_error_fraction
    - choose_target_from_index
    - target_radius_fraction
    - center_separation_fraction
    argTypes:
    - absl::BitGenRef
    - benchmark::State
    - s2testing::ShapeIndexFactory
    - bool
    - bool
    - int
    - bool
    - s2testing::TargetType
    - int
    - double
    - double
    - bool
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 906
    functionDepth: 3
    functionLinenumber: 906
    functionLinenumberEnd: 985
    functionName: BenchmarkFindClosest
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 45
    functionsReached:
    - string::data
    - Encoder::length
    - ABSL_LOG
    - S2ClosestEdgeQuery::ReInit
    - vector::size
    - ABSL_DCHECK
    - EncodedS2ShapeIndex::Init
    - EncodedS2ShapeIndex::EncodedS2ShapeIndex
    - MutableS2ShapeIndex::ReleaseAll
    - ABSL_CHECK
    - s2shapeutil::LazyDecodeShapeFactory
    - MutableS2ShapeIndex::Encode
    - S2ClosestEdgeQuery*::FindClosestEdge
    - ResumeTiming
    - string
    - S2Testing::KmToAngle
    - s2shapeutil::VectorShapeFactory::VectorShapeFactory
    - string::length
    - Encoder::Encoder
    - PauseTiming
    - get
    - MutableS2ShapeIndex::MutableS2ShapeIndex
    - S2ClosestEdgeQuery::mutable_options
    - Encoder::base
    - s2testing::S2ClosestEdgeQueryBenchmarkHarness::GenerateEdgeQueryWithTargets
    - S2ClosestEdgeQuery::options
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void BenchmarkFindClosest(\n    absl::BitGenRef bitgen, benchmark::State&
      state,\n    const s2testing::ShapeIndexFactory& factory, bool encode_index,\n
      \   bool encode_shapes, int num_index_edges, bool include_interiors,\n    s2testing::TargetType
      target_type, int num_target_edges,\n    double max_distance_fraction, double
      max_error_fraction,\n    bool choose_target_from_index, double target_radius_fraction,\n
      \   double center_separation_fraction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1002,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1002,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1003,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1003,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1005,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1006,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1008
    functionName: BM_FindClosest
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosest(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1015,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1015,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1016,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1016,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1018,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1019,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1021
    functionName: BM_FindClosestEncodedIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestEncodedIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1032,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1032,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1033,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1033,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1035,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1036,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1038
    functionName: BM_FindClosestEncodedIndexAndShapes
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestEncodedIndexAndShapes(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1045,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1045,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1046,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1046,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1048,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1049,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1051
    functionName: BM_FindClosestInterior
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestInterior(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1059,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1059,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1060,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1060,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1062,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1063,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1064,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1067
    functionName: BM_FindClosestMaxErrorPct
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestMaxErrorPct(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1076,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1076,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1077,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1077,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1079,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1080,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1081,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1081,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1085
    functionName: BM_FindClosestMaxDistPow10
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - exp
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestMaxDistPow10(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1093,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1093,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1094,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1094,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1096,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1097,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1099
    functionName: BM_FindClosestNearVertex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestNearVertex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1107,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1107,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1108,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1108,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1110,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1111,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1112,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1112,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1116
    functionName: BM_FindClosestNearVertexMaxDistPow10
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - exp
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestNearVertexMaxDistPow10(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1127,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1127,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1128,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1128,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1130,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1131,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1133
    functionName: BM_FindClosestToEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1139,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1139,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1140,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1140,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1142,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1143,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1145
    functionName: BM_FindClosestToEdgeInterior
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToEdgeInterior(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1151,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1151,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1152,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1152,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1154,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1155,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1157
    functionName: BM_FindClosestToEdgeNearEdge
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToEdgeNearEdge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1165,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1165,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1166,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1166,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1168,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1169,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1171
    functionName: BM_FindClosestToCell
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToCell(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1177,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1177,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1178,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1178,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1180,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1181,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1183
    functionName: BM_FindClosestToCellInterior
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToCellInterior(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1189,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1189,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1190,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1190,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1192,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1193,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1195
    functionName: BM_FindClosestToCellInIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToCellInIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1203,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1203,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1204,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1204,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1206,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1209,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1202
    functionDepth: 0
    functionLinenumber: 1202
    functionLinenumberEnd: 1212
    functionName: BM_FindClosestToSmallAbuttingIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallAbuttingIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1218,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1218,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1219,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1219,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1221,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1225,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1217
    functionDepth: 0
    functionLinenumber: 1217
    functionLinenumberEnd: 1228
    functionName: BM_FindClosestFromSmallAbuttingIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestFromSmallAbuttingIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1234,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1234,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1235,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1235,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1237,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1240,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1243
    functionName: BM_FindClosestToSameSizeAbuttingIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSameSizeAbuttingIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1249,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1249,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1250,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1250,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1252,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1257,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1260
    functionName: BM_FindClosestToSameSizeContainedIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSameSizeContainedIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1266,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1266,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1267,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1267,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1269,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1274,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1277
    functionName: BM_FindClosestToSameSizeContainingIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSameSizeContainingIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1283,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1283,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1284,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1284,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1286,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1289,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1292
    functionName: BM_FindClosestToSameSizeDistantIndex
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSameSizeDistantIndex(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1299,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1299,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1300,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1300,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1302,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1307,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1310
    functionName: BM_IsDistanceLessSameSizeDistantIndexFalse
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void BM_IsDistanceLessSameSizeDistantIndexFalse(\n    benchmark::State&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1316,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1316,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1317,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1317,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1319,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1325,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1328
    functionName: BM_IsDistanceLessSameSizeDistantIndexTrue
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_IsDistanceLessSameSizeDistantIndexTrue(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1334,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1334,1
    - Dst: string::begin
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1335,1
    - Dst: string::end
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1335,1
    - Dst: range
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1337,1
    - Dst: BenchmarkFindClosest
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1339,1
    - Dst: Factory
      Src: /src/s2geometry/src/s2/s2closest_edge_query_test.cc:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1341
    functionName: BM_FindClosestToSmallIndexEdgeSample
    functionSourceFile: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
    functionUses: 0
    functionsReached:
    - string::begin
    - StrCat
    - BenchmarkFindClosest
    - string::end
    - range
    - Factory
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void BM_FindClosestToSmallIndexEdgeSample(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:48,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: s2pred::Sign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 48
    functionsReached:
    - CrossProd
    - s2pred::Sign
    linkageType: ''
    returnType: int
    signature: int Sign(const S2Point& a, const S2Point& b, const S2Point& c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Vector3_d::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:68,1
    - Dst: Vector3_d::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:69,1
    - Dst: Vector3_d::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:70,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:86,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:87,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:90,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:91,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:94,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:95,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:98,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 102
    functionName: s2pred::StableSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - Vector3_d::CrossProd
    - Vector3_d::Norm2
    - fabs
    - sqrt
    linkageType: ''
    returnType: int
    signature: int StableSign(const S2Point& a, const S2Point& b, const S2Point& c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:143,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:192,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:194,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:196,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:199,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:201,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:203,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:205,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:207,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2predicates.cc:211,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:211,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:213,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:215,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:217,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:219,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' b_cross_c'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 222
    functionName: s2pred::SymbolicallyPerturbedSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - sgn
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int SymbolicallyPerturbedSign(\n    const Vector3_xf& a, const Vector3_xf&
      b,\n    const Vector3_xf& c, const Vector3_xf& b_cross_c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:228,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:235,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:236,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:237,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:238,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:242,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:243,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:244,1
    - Dst: Vector3_xf::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:245,1
    - Dst: Vector3_xf::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:246,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:250,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/s2predicates.cc:250,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates.cc:251,1
    - Dst: ExactFloat::prec
      Src: /src/s2geometry/src/s2/s2predicates.cc:251,1
    - Dst: ExactFloat::max_prec
      Src: /src/s2geometry/src/s2/s2predicates.cc:251,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:254,1
    - Dst: s2pred::SymbolicallyPerturbedSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:258,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:259,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - perturb
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 262
    functionName: s2pred::ExactSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - Vector3_xf::CrossProd
    - ExactFloat::max_prec
    - ExactFloat::sgn
    - isnan
    - ExactFloat::prec
    - ABSL_DCHECK_NE
    - s2pred::ToExact
    - swap
    - s2pred::SymbolicallyPerturbedSign
    - ABSL_DCHECK_LT
    - ABSL_DCHECK
    - Vector3_xf::DotProd
    linkageType: ''
    returnType: int
    signature: "int ExactSign(const S2Point& a, const S2Point& b, const S2Point& c,\n
      \             bool perturb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::StableSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:286,1
    - Dst: s2pred::ExactSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - perturb
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 297
    functionName: s2pred::ExpensiveSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 9
    functionsReached:
    - s2pred::ExactSign
    - s2pred::StableSign
    linkageType: ''
    returnType: int
    signature: "int ExpensiveSign(const S2Point& a, const S2Point& b, const S2Point&
      c,\n                  bool perturb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:301,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:308,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:309,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' o'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 312
    functionName: s2pred::OrderedCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 33
    functionsReached:
    - s2pred::Sign
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool OrderedCCW(const S2Point& a, const S2Point& b, const S2Point&
      c,\n                const S2Point& o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:318,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - error
    argTypes:
    - S2Point
    - S2Point
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: s2pred::GetCosDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - fabs
    linkageType: ''
    returnType: double
    signature: "double GetCosDistance(const S2Point& x, const S2Point& y,\n                             double*
      error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:330,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:330,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:330,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:330,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - error
    argTypes:
    - Vector3_ld
    - Vector3_ld
    - long double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: s2pred::GetCosDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - fabs
    - Norm2
    - sqrt
    linkageType: ''
    returnType: long double
    signature: "long double GetCosDistance(const Vector3_ld& x, const Vector3_ld&
      y,\n                                  long double* error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:345,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:346,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:347,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:348,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - error
    argTypes:
    - S2Point
    - S2Point
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: s2pred::GetSin2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - CrossProd
    - S2Point::Norm2
    - sqrt
    linkageType: ''
    returnType: double
    signature: "double GetSin2Distance(const S2Point& x, const S2Point& y,\n                              double*
      error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:363,1
    - Dst: Vector3_ld::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:364,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:364,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:364,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:365,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:366,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - error
    argTypes:
    - Vector3_ld
    - Vector3_ld
    - long double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 369
    functionName: s2pred::GetSin2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - CrossProd
    - Vector3_ld::Norm2
    - Norm2
    - sqrt
    linkageType: ''
    returnType: long double
    signature: "long double GetSin2Distance(const Vector3_ld& x, const Vector3_ld&
      y,\n                                   long double* error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::GetCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:375,1
    - Dst: s2pred::GetCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 380
    functionName: s2pred::TriageCompareCosDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - s2pred::GetCosDistance
    linkageType: ''
    returnType: int
    signature: "int TriageCompareCosDistances(const Vector3<T>& x,\n                              const
      Vector3<T>& a, const Vector3<T>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::GetSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:386,1
    - Dst: s2pred::GetSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 391
    functionName: s2pred::TriageCompareSin2Distances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - s2pred::GetSin2Distance
    linkageType: ''
    returnType: int
    signature: "int TriageCompareSin2Distances(const Vector3<T>& x,\n                               const
      Vector3<T>& a, const Vector3<T>& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:399,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:400,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:403,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:403,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:407,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:407,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 409
    functionName: s2pred::ExactCompareDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - DotProd
    - Norm2
    - ExactFloat::sgn
    linkageType: ''
    returnType: int
    signature: "int ExactCompareDistances(const Vector3_xf& x,\n                          const
      Vector3_xf& a, const Vector3_xf& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 434
    functionName: s2pred::SymbolicCompareDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SymbolicCompareDistances(const S2Point& x,\n                             const
      S2Point& a, const S2Point& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates.cc:438,1
    - Dst: s2pred::TriageCompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates.cc:440,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:440,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:440,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: s2pred::CompareSin2Distances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - s2pred::ToLD
    - s2pred::TriageCompareSin2Distances
    linkageType: ''
    returnType: int
    signature: "int CompareSin2Distances(const S2Point& x,\n                                const
      S2Point& a, const S2Point& b)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareCosDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:451,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:462,1
    - Dst: s2pred::CompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates.cc:465,1
    - Dst: s2pred::CompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates.cc:468,1
    - Dst: s2pred::TriageCompareCosDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:471,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:471,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:471,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:471,1
    - Dst: s2pred::ExactCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:474,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:474,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:474,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:474,1
    - Dst: s2pred::SymbolicCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 477
    functionName: s2pred::CompareDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 13
    functionsReached:
    - DotProd
    - s2pred::ExactCompareDistances
    - s2pred::SymbolicCompareDistances
    - s2pred::ToLD
    - s2pred::TriageCompareCosDistances
    - s2pred::ToExact
    - s2pred::CompareSin2Distances
    linkageType: ''
    returnType: int
    signature: int CompareDistances(const S2Point& x, const S2Point& a, const S2Point&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:481,1
    - Dst: s2pred::GetCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 489
    functionName: s2pred::TriageCompareCosDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - s2pred::GetCosDistance
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: int TriageCompareCosDistance(const Vector3<T>& x, const Vector3<T>&
      y, T r2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates.cc:493,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:495,1
    - Dst: s2pred::GetSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 503
    functionName: s2pred::TriageCompareSin2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - s2pred::rounding_epsilon
    - s2pred::GetSin2Distance
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: int
    signature: int TriageCompareSin2Distance(const Vector3<T>& x, const Vector3<T>&
      y, T r2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:511,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:515,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:515,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:519,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:519,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' r2'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 521
    functionName: s2pred::ExactCompareDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - DotProd
    - Norm2
    - ExactFloat::sgn
    linkageType: ''
    returnType: int
    signature: "int ExactCompareDistance(const Vector3_xf& x, const Vector3_xf& y,\n
      \                        const ExactFloat& r2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:527,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:527,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:531,1
    - Dst: s2pred::TriageCompareSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:538,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:538,1
    - Dst: s2pred::TriageCompareSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:546,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:546,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:546,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 547
    functionName: s2pred::CompareDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 11
    functionsReached:
    - s2pred::ToLD
    - S1ChordAngle::length2
    - s2pred::TriageCompareSin2Distance
    - s2pred::ToExact
    - s2pred::TriageCompareCosDistance
    - s2pred::ExactCompareDistance
    linkageType: ''
    returnType: int
    signature: int CompareDistance(const S2Point& x, const S2Point& y, S1ChordAngle
      r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:556,1
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:557,1
    - Dst: s2pred::TriageCompareSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 561
    functionName: s2pred::TriageCompareDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - s2pred::TriageCompareCosDistance
    - length2
    - s2pred::TriageCompareSin2Distance
    linkageType: ''
    returnType: int
    signature: int TriageCompareDistance(const Vector3<T>& x, const Vector3<T>& y,
      T r2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:568,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - ax2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 577
    functionName: s2pred::GetClosestVertex
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - Norm2
    linkageType: ''
    returnType: Vector3<T>
    signature: "Vector3<T> GetClosestVertex(const Vector3<T>& x, const Vector3<T>&
      a0,\n                                   const Vector3<T>& a1, T* ax2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:592,1
    - Dst: s2pred::GetClosestVertex
      Src: /src/s2geometry/src/s2/s2predicates.cc:603,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:603,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:605,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:605,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:606,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:607,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r2
    - ' n'
    - n1
    - n2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    - Vector3<T>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 621
    functionName: s2pred::TriageCompareLineSin2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - s2pred::GetClosestVertex
    - DotProd
    - fabs
    - Norm2
    - sqrt
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: "int TriageCompareLineSin2Distance(const Vector3<T>& x, const Vector3<T>&
      a0,\n                                  const Vector3<T>& a1, T r2,\n                                  const
      Vector3<T>& n, T n1, T n2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:630,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:643,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:644,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:645,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:645,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r2
    - ' n'
    - n1
    - n2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    - Vector3<T>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 660
    functionName: s2pred::TriageCompareLineCos2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - CrossProd
    - s2pred::rounding_epsilon
    - Norm2
    - sqrt
    linkageType: ''
    returnType: int
    signature: "int TriageCompareLineCos2Distance(const Vector3<T>& x, const Vector3<T>&
      a0,\n                                  const Vector3<T>& a1, T r2,\n                                  const
      Vector3<T>& n, T n1, T n2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:666,1
    - Dst: s2pred::TriageCompareLineSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:667,1
    - Dst: s2pred::TriageCompareLineCos2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r2
    - ' n'
    - n1
    - n2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    - Vector3<T>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 663
    functionDepth: 4
    functionLinenumber: 663
    functionLinenumberEnd: 671
    functionName: s2pred::TriageCompareLineDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - s2pred::TriageCompareLineSin2Distance
    - length2
    - s2pred::TriageCompareLineCos2Distance
    linkageType: ''
    returnType: int
    signature: "int TriageCompareLineDistance(const Vector3<T>& x, const Vector3<T>&
      a0,\n                                     const Vector3<T>& a1, T r2,\n                                     const
      Vector3<T>& n, T n1, T n2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:676,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:686,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:687,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:692,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:693,1
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:694,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:695,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:696,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:696,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:697,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:698,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:704,1
    - Dst: s2pred::TriageCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:704,1
    - Dst: s2pred::TriageCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:705,1
    - Dst: s2pred::TriageCompareLineDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:706,1
    - Dst: s2pred::TriageCompareLineDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:710,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:713,1
    - Dst: s2pred::TriageCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:713,1
    - Dst: s2pred::TriageCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 674
    functionDepth: 5
    functionLinenumber: 674
    functionLinenumberEnd: 715
    functionName: s2pred::TriageCompareEdgeDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - s2pred::TriageCompareLineDistance
    - Vector3::Norm
    - s2pred::TriageCompareDistance
    - min
    - sqrt
    - CrossProd
    - Vector3::CrossProd
    - Vector3::DotProd
    - Vector3::Norm2
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: "int TriageCompareEdgeDistance(const Vector3<T>& x, const Vector3<T>&
      a0,\n                              const Vector3<T>& a1, T r2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:726,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:727,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:729,1
    - Dst: Vector3_xf::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:729,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - ' r2'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 731
    functionName: s2pred::ExactCompareLineDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - Vector3_xf::Norm2
    - ExactFloat::sgn
    - Norm2
    - CrossProd
    linkageType: ''
    returnType: int
    signature: "int ExactCompareLineDistance(const Vector3_xf& x, const Vector3_xf&
      a0,\n                             const Vector3_xf& a1, const ExactFloat& r2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:746,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:747,1
    - Dst: s2pred::ExactCompareLineDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:749,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:749,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:749,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:749,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:750,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:753,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:753,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 733
    functionDepth: 5
    functionLinenumber: 733
    functionLinenumberEnd: 755
    functionName: s2pred::ExactCompareEdgeDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - min
    - s2pred::CompareDistance
    - s2pred::ToExact
    - S1ChordAngle::length2
    - s2pred::CompareEdgeDirections
    - s2pred::ExactCompareLineDistance
    linkageType: ''
    returnType: int
    signature: "int ExactCompareEdgeDistance(const S2Point& x, const S2Point& a0,\n
      \                            const S2Point& a1, S1ChordAngle r)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:761,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:763,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:763,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:767,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:769,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:769,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:769,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:769,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:770,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:770,1
    - Dst: s2pred::ExactCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:773,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 757
    functionDepth: 6
    functionLinenumber: 757
    functionLinenumberEnd: 774
    functionName: s2pred::CompareEdgeDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 17
    functionsReached:
    - s2pred::TriageCompareEdgeDistance
    - s2pred::ToLD
    - ABSL_DCHECK_NE
    - s2pred::CompareDistance
    - s2pred::ExactCompareEdgeDistance
    - S1ChordAngle::length2
    linkageType: ''
    returnType: int
    signature: "int CompareEdgeDistance(const S2Point& x, const S2Point& a0, const
      S2Point& a1,\n                        S1ChordAngle r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:782,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:783,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:783,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:787,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:787,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:787,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:788,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:789,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:789,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 776
    functionDepth: 7
    functionLinenumber: 776
    functionLinenumberEnd: 791
    functionName: s2pred::CompareEdgePairDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - S1ChordAngle::length2
    - s2pred::CompareEdgeDistance
    - min
    - S2::CrossingSign
    linkageType: ''
    returnType: int
    signature: "int CompareEdgePairDistance(const S2Point& a0, const S2Point& a1,\n
      \                           const S2Point& b0, const S2Point& b1,\n                            S1ChordAngle
      r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:797,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:798,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:799,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:800,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:801,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:802,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:844,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:846,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:847,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:848,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:849,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:851,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:852,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:853,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:854,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - ' m'
    - ' n'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 863
    functionName: s2pred::TriageIntersectionOrdering
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - DotProd
    - ABSL_DCHECK_NE
    - s2pred::rounding_epsilon
    - std::fabs
    linkageType: ''
    returnType: int
    signature: "int TriageIntersectionOrdering(const Vector3<T>& a, const Vector3<T>&
      b,\n                               const Vector3<T>& c, const Vector3<T>& d,\n
      \                              const Vector3<T>& m, const Vector3<T>& n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:868,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:869,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:870,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:871,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:872,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:873,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:875,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:876,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:877,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:878,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:880,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:881,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:882,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - ' m'
    - ' n'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 891
    functionName: s2pred::ExactIntersectionOrdering
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - ABSL_DCHECK_NE
    linkageType: ''
    returnType: int
    signature: "int ExactIntersectionOrdering(const Vector3_xf& a, const Vector3_xf&
      b,\n                              const Vector3_xf& c, const Vector3_xf& d,\n
      \                             const Vector3_xf& m, const Vector3_xf& n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates.cc:896,1
    - Dst: s2pred::TriageIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:909,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:909,1
    - Dst: s2pred::ExactIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates.cc:915,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - ' m'
    - ' n'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 917
    functionName: s2pred::CircleEdgeIntersectionOrdering
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - s2pred::TriageIntersectionOrdering
    - s2pred::ExactIntersectionOrdering
    - s2pred::ToExact
    - s2pred::ToLD
    linkageType: ''
    returnType: int
    signature: "int CircleEdgeIntersectionOrdering(const S2Point& a, const S2Point&
      b,\n                                   const S2Point& c, const S2Point& d,\n
      \                                  const S2Point& m, const S2Point& n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.cc:921,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:921,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.cc:922,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:922,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:935,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:937,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 920
    functionDepth: 3
    functionLinenumber: 920
    functionLinenumberEnd: 940
    functionName: s2pred::TriageSignDotProd
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - DotProd
    - Norm2
    - ABSL_DCHECK_LE
    - std::fabs
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: int TriageSignDotProd(const Vector3<T>& a, const Vector3<T>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:943,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/s2predicates.cc:944,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 948
    functionName: s2pred::ExactSignDotProd
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - ExactFloat::is_zero
    - ExactFloat::sgn
    linkageType: ''
    returnType: int
    signature: int ExactSignDotProd(const Vector3_xf& a, const Vector3_xf& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:951,1
    - Dst: s2pred::TriageSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:957,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:957,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:957,1
    - Dst: s2pred::ExactSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:963,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:963,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 950
    functionDepth: 4
    functionLinenumber: 950
    functionLinenumberEnd: 964
    functionName: s2pred::SignDotProd
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - s2pred::ToExact
    - s2pred::ExactSignDotProd
    - s2pred::ToLD
    - s2pred::TriageSignDotProd
    linkageType: ''
    returnType: int
    signature: int SignDotProd(const S2Point& a, const S2Point& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:969,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:970,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:987,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:989,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:990,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:991,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:992,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' n'
    - ' x'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 967
    functionDepth: 3
    functionLinenumber: 967
    functionLinenumberEnd: 1001
    functionName: s2pred::TriageCircleEdgeIntersectionSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - DotProd
    - ABSL_DCHECK_NE
    - s2pred::rounding_epsilon
    - std::fabs
    linkageType: ''
    returnType: int
    signature: "int TriageCircleEdgeIntersectionSign(const Vector3<T>& a, const Vector3<T>&
      b,\n                                     const Vector3<T>& n, const Vector3<T>&
      x)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1005,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1006,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1008,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1009,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1010,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1011,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/s2predicates.cc:1015,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' n'
    - ' x'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1019
    functionName: s2pred::ExactCircleEdgeIntersectionSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - ExactFloat::is_zero
    - ABSL_DCHECK_NE
    - ExactFloat::sgn
    linkageType: ''
    returnType: int
    signature: "int ExactCircleEdgeIntersectionSign(const Vector3_xf& a, const Vector3_xf&
      b,\n                                    const Vector3_xf& n, const Vector3_xf&
      x)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1023,1
    - Dst: s2pred::TriageCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ExactCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1035,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1036,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1036,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1036,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' n'
    - ' x'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1021
    functionDepth: 4
    functionLinenumber: 1021
    functionLinenumberEnd: 1037
    functionName: s2pred::CircleEdgeIntersectionSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - s2pred::ToExact
    - s2pred::TriageCircleEdgeIntersectionSign
    - s2pred::ExactCircleEdgeIntersectionSign
    - s2pred::ToLD
    linkageType: ''
    returnType: int
    signature: "int CircleEdgeIntersectionSign(const S2Point& a, const S2Point& b,\n
      \                              const S2Point& n, const S2Point& x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:1042,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1043,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1044,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1045,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1045,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1046,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1047,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1040
    functionDepth: 3
    functionLinenumber: 1040
    functionLinenumberEnd: 1050
    functionName: s2pred::TriageCompareEdgeDirections
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - Vector3::Norm
    - sqrt
    - CrossProd
    - Vector3::DotProd
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: "int TriageCompareEdgeDirections(const Vector3<T>& a0, const Vector3<T>&
      a1,\n                                const Vector3<T>& b0, const Vector3<T>&
      b1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2predicates.cc:1053,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1054
    functionName: s2pred::ArePointsLinearlyDependent
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - s2pred::IsZero
    - CrossProd
    linkageType: ''
    returnType: bool
    signature: bool ArePointsLinearlyDependent(const Vector3_xf& x, const Vector3_xf&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::ArePointsLinearlyDependent
      Src: /src/s2geometry/src/s2/s2predicates.cc:1057,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1056
    functionDepth: 3
    functionLinenumber: 1056
    functionLinenumberEnd: 1058
    functionName: s2pred::ArePointsAntipodal
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - DotProd
    - s2pred::ArePointsLinearlyDependent
    linkageType: ''
    returnType: bool
    signature: bool ArePointsAntipodal(const Vector3_xf& x, const Vector3_xf& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1062,1
    - Dst: s2pred::ArePointsAntipodal
      Src: /src/s2geometry/src/s2/s2predicates.cc:1062,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1063,1
    - Dst: s2pred::ArePointsAntipodal
      Src: /src/s2geometry/src/s2/s2predicates.cc:1063,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1064,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1060
    functionDepth: 4
    functionLinenumber: 1060
    functionLinenumberEnd: 1065
    functionName: s2pred::ExactCompareEdgeDirections
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - s2pred::ArePointsAntipodal
    - CrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int ExactCompareEdgeDirections(const Vector3_xf& a0, const Vector3_xf&
      a1,\n                               const Vector3_xf& b0, const Vector3_xf&
      b1)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1071,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1072,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:1074,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ExactCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:1083,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1083,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1083,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1084,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1067
    functionDepth: 5
    functionLinenumber: 1067
    functionLinenumberEnd: 1085
    functionName: s2pred::CompareEdgeDirections
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 8
    functionsReached:
    - s2pred::ExactCompareEdgeDirections
    - s2pred::ToLD
    - ABSL_DCHECK_NE
    - s2pred::TriageCompareEdgeDirections
    - s2pred::ToExact
    linkageType: ''
    returnType: int
    signature: "int CompareEdgeDirections(const S2Point& a0, const S2Point& a1,\n
      \                         const S2Point& b0, const S2Point& b1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:1092,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1104,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1105,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1106,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1107,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1108,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1109,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1110,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1111,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1112,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1114,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - error
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1090
    functionDepth: 3
    functionLinenumber: 1090
    functionLinenumberEnd: 1117
    functionName: s2pred::GetCircumcenter
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached:
    - Vector3::CrossProd
    - s2pred::rounding_epsilon
    - Vector3::Norm
    - sqrt
    linkageType: ''
    returnType: Vector3<T>
    signature: "Vector3<T> GetCircumcenter(const Vector3<T>& a, const Vector3<T>&
      b,\n                           const Vector3<T>& c, T* error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:1123,1
    - Dst: s2pred::GetCircumcenter
      Src: /src/s2geometry/src/s2/s2predicates.cc:1128,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1129,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1132,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1134,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1135,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1136,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' x0'
    - ' x1'
    - ' a'
    - ' b'
    - ' c'
    - abc_sign
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1120
    functionDepth: 4
    functionLinenumber: 1120
    functionLinenumberEnd: 1139
    functionName: s2pred::TriageEdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - s2pred::GetCircumcenter
    - Vector3::Norm
    - sqrt
    - CrossProd
    - Vector3::DotProd
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: "int TriageEdgeCircumcenterSign(const Vector3<T>& x0, const Vector3<T>&
      x1,\n                               const Vector3<T>& a, const Vector3<T>& b,\n
      \                              const Vector3<T>& c, int abc_sign)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::ArePointsLinearlyDependent
      Src: /src/s2geometry/src/s2/s2predicates.cc:1146,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1147,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1147,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1197,1
    - Dst: Vector3_xf::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1198,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1198,1
    - Dst: Vector3_xf::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1199,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1199,1
    - Dst: Vector3_xf::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1200,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1200,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1201,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1202,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1203,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1208,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1208,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2predicates.cc:1209,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:1209,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1213,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1217,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2predicates.cc:1218,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:1218,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1231,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1231,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2predicates.cc:1233,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:1233,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1233,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - ' x0'
    - ' x1'
    - ' a'
    - ' b'
    - ' c'
    - abc_sign
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1141
    functionDepth: 3
    functionLinenumber: 1141
    functionLinenumberEnd: 1245
    functionName: s2pred::ExactEdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - DotProd
    - sgn
    - Norm2
    - ExactFloat::sgn
    - min
    - CrossProd
    - s2pred::ArePointsLinearlyDependent
    - ABSL_DCHECK_GT
    - max
    - Vector3_xf::DotProd
    linkageType: ''
    returnType: int
    signature: "int ExactEdgeCircumcenterSign(const Vector3_xf& x0, const Vector3_xf&
      x1,\n                              const Vector3_xf& a, const Vector3_xf& b,\n
      \                             const Vector3_xf& c, int abc_sign)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:1307,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:1308,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:1309,1
    - Dst: s2pred::UnperturbedSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1312,1
    - Dst: s2pred::UnperturbedSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1314,1
    - Dst: s2pred::UnperturbedSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 5
    argNames:
    - ' x0'
    - ' x1'
    - ' a_arg'
    - ' b_arg'
    - ' c_arg'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1252
    functionDepth: 3
    functionLinenumber: 1252
    functionLinenumberEnd: 1317
    functionName: s2pred::SymbolicEdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - s2pred::UnperturbedSign
    - swap
    linkageType: ''
    returnType: int
    signature: "int SymbolicEdgeCircumcenterSign(\n    const S2Point& x0, const S2Point&
      x1,\n    const S2Point& a_arg, const S2Point& b_arg, const S2Point& c_arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1324,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1326,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1327,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1334,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ExactEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1338,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::SymbolicEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1344,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 5
    argNames:
    - ' x0'
    - ' x1'
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1319
    functionDepth: 5
    functionLinenumber: 1319
    functionLinenumberEnd: 1345
    functionName: s2pred::EdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::ToLD
    - s2pred::Sign
    - ABSL_DCHECK_NE
    - s2pred::ToExact
    - s2pred::ExactEdgeCircumcenterSign
    - s2pred::SymbolicEdgeCircumcenterSign
    - s2pred::TriageEdgeCircumcenterSign
    linkageType: ''
    returnType: int
    signature: "int EdgeCircumcenterSign(const S2Point& x0, const S2Point& x1,\n                         const
      S2Point& a, const S2Point& b,\n                         const S2Point& c)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:1351,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1436,1
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1437,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1438,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1440,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1440,1
    - Dst: s2pred::GetClosestVertex
      Src: /src/s2geometry/src/s2/s2predicates.cc:1447,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1447,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1449,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1452,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1457,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1459,1
    - Dst: s2pred::GetClosestVertex
      Src: /src/s2geometry/src/s2/s2predicates.cc:1461,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1461,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1463,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1466,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1469,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1471,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1477,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1481,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1482,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1483,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1484,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1485,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates.cc:1516,1
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1517,1
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1518,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1523,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1532,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1534,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1534,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1535,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1547,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' x0'
    - ' x1'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1348
    functionDepth: 4
    functionLinenumber: 1348
    functionLinenumberEnd: 1549
    functionName: s2pred::TriageVoronoiSiteExclusion
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - s2pred::GetClosestVertex
    - DotProd
    - fabs
    - Vector3::Norm
    - sqrt
    - CrossProd
    - Vector3::DotProd
    - Vector3::Norm2
    - s2pred::TriageCompareCosDistance
    - ABSL_DCHECK_GT
    - s2pred::rounding_epsilon
    - S1ChordAngle::Right
    - ABSL_DCHECK
    linkageType: ''
    returnType: Excluded
    signature: "Excluded TriageVoronoiSiteExclusion(const Vector3<T>& a, const Vector3<T>&
      b,\n                                    const Vector3<T>& x0, const Vector3<T>&
      x1,\n                                    T r2)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1554,1
    - Dst: s2pred::ArePointsAntipodal
      Src: /src/s2geometry/src/s2/s2predicates.cc:1554,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1580,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1581,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1582,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates.cc:1585,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1586,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1587,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1589,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1590,1
    - Dst: Vector3_xf::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1596,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1597,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1598,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1599,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1600,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1608,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1609,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1613,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1620,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1636,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1643,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' x0'
    - ' x1'
    - ' r2'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1551
    functionDepth: 4
    functionLinenumber: 1551
    functionLinenumberEnd: 1662
    functionName: s2pred::ExactVoronoiSiteExclusion
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - s2pred::ExactCompareDistance
    - DotProd
    - Vector3_xf::Norm2
    - ExactFloat::sgn
    - Norm2
    - CrossProd
    - s2pred::ArePointsAntipodal
    - ABSL_DCHECK_GT
    - sgn
    - S1ChordAngle::Right
    - ABSL_DCHECK
    linkageType: ''
    returnType: Excluded
    signature: "Excluded ExactVoronoiSiteExclusion(const Vector3_xf& a, const Vector3_xf&
      b,\n                                   const Vector3_xf& x0, const Vector3_xf&
      x1,\n                                   const ExactFloat& r2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1667,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates.cc:1667,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1668,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:1668,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1669,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1669,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1670,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1670,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1673,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:1682,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates.cc:1686,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1686,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1690,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1690,1
    - Dst: s2pred::ExactVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates.cc:1693,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1693,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1693,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1693,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1694,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' x0'
    - ' x1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1664
    functionDepth: 7
    functionLinenumber: 1664
    functionLinenumberEnd: 1695
    functionName: s2pred::GetVoronoiSiteExclusion
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::ExactVoronoiSiteExclusion
    - s2pred::ToLD
    - ABSL_DCHECK_LE
    - ABSL_DCHECK_NE
    - s2pred::CompareDistances
    - s2pred::ToExact
    - s2pred::CompareEdgeDistance
    - s2pred::TriageVoronoiSiteExclusion
    - ABSL_DCHECK_LT
    - S1ChordAngle::length2
    - S1ChordAngle::Right
    linkageType: ''
    returnType: Excluded
    signature: "Excluded GetVoronoiSiteExclusion(const S2Point& a, const S2Point&
      b,\n                                 const S2Point& x0, const S2Point& x1,\n
      \                                S1ChordAngle r)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ' os'
    - excluded
    argTypes:
    - std::ostream
    - Excluded
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1705
    functionName: '& operator<<(std::ostream& os, Excluded excluded)'
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, Excluded excluded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:48,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: s2pred::Sign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 51
    functionsReached:
    - CrossProd
    - s2pred::Sign
    linkageType: ''
    returnType: int
    signature: int Sign(const S2Point& a, const S2Point& b, const S2Point& c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Vector3_d::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:68,1
    - Dst: Vector3_d::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:69,1
    - Dst: Vector3_d::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:70,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:86,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:87,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:90,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:91,1
    - Dst: Vector3_d::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:94,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:95,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:98,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 102
    functionName: s2pred::StableSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - Vector3_d::CrossProd
    - Vector3_d::Norm2
    - fabs
    - sqrt
    linkageType: ''
    returnType: int
    signature: int StableSign(const S2Point& a, const S2Point& b, const S2Point& c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:143,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:192,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:194,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:196,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:199,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:201,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:203,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:205,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:207,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2predicates.cc:211,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:211,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:213,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:215,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:217,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:219,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' b_cross_c'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 222
    functionName: s2pred::SymbolicallyPerturbedSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - sgn
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int SymbolicallyPerturbedSign(\n    const Vector3_xf& a, const Vector3_xf&
      b,\n    const Vector3_xf& c, const Vector3_xf& b_cross_c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:228,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:235,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:236,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:237,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:238,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:242,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:243,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:244,1
    - Dst: Vector3_xf::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:245,1
    - Dst: Vector3_xf::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:246,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:250,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/s2predicates.cc:250,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates.cc:251,1
    - Dst: ExactFloat::prec
      Src: /src/s2geometry/src/s2/s2predicates.cc:251,1
    - Dst: ExactFloat::max_prec
      Src: /src/s2geometry/src/s2/s2predicates.cc:251,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:254,1
    - Dst: s2pred::SymbolicallyPerturbedSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:258,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:259,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - perturb
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 262
    functionName: s2pred::ExactSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - Vector3_xf::CrossProd
    - ExactFloat::max_prec
    - ExactFloat::sgn
    - isnan
    - ExactFloat::prec
    - ABSL_DCHECK_NE
    - s2pred::ToExact
    - swap
    - s2pred::SymbolicallyPerturbedSign
    - ABSL_DCHECK_LT
    - ABSL_DCHECK
    - Vector3_xf::DotProd
    linkageType: ''
    returnType: int
    signature: "int ExactSign(const S2Point& a, const S2Point& b, const S2Point& c,\n
      \             bool perturb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::StableSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:286,1
    - Dst: s2pred::ExactSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - perturb
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 297
    functionName: s2pred::ExpensiveSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 9
    functionsReached:
    - s2pred::ExactSign
    - s2pred::StableSign
    linkageType: ''
    returnType: int
    signature: "int ExpensiveSign(const S2Point& a, const S2Point& b, const S2Point&
      c,\n                  bool perturb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:301,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:308,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:309,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' o'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 312
    functionName: s2pred::OrderedCCW
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 33
    functionsReached:
    - s2pred::Sign
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool OrderedCCW(const S2Point& a, const S2Point& b, const S2Point&
      c,\n                const S2Point& o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:318,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - error
    argTypes:
    - S2Point
    - S2Point
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: s2pred::GetCosDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - DotProd
    - fabs
    linkageType: ''
    returnType: double
    signature: "double GetCosDistance(const S2Point& x, const S2Point& y,\n                             double*
      error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:330,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:330,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:330,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:330,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - error
    argTypes:
    - Vector3_ld
    - Vector3_ld
    - long double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: s2pred::GetCosDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - DotProd
    - fabs
    - Norm2
    - sqrt
    linkageType: ''
    returnType: long double
    signature: "long double GetCosDistance(const Vector3_ld& x, const Vector3_ld&
      y,\n                                  long double* error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:345,1
    - Dst: S2Point::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:346,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:347,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:348,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - error
    argTypes:
    - S2Point
    - S2Point
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: s2pred::GetSin2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - CrossProd
    - S2Point::Norm2
    - sqrt
    linkageType: ''
    returnType: double
    signature: "double GetSin2Distance(const S2Point& x, const S2Point& y,\n                              double*
      error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:363,1
    - Dst: Vector3_ld::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:364,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:364,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:364,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:365,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:366,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - error
    argTypes:
    - Vector3_ld
    - Vector3_ld
    - long double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 369
    functionName: s2pred::GetSin2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - CrossProd
    - Vector3_ld::Norm2
    - Norm2
    - sqrt
    linkageType: ''
    returnType: long double
    signature: "long double GetSin2Distance(const Vector3_ld& x, const Vector3_ld&
      y,\n                                   long double* error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::GetCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:375,1
    - Dst: s2pred::GetCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 380
    functionName: s2pred::TriageCompareCosDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - s2pred::GetCosDistance
    linkageType: ''
    returnType: int
    signature: "int TriageCompareCosDistances(const Vector3<T>& x,\n                              const
      Vector3<T>& a, const Vector3<T>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::GetSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:386,1
    - Dst: s2pred::GetSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 391
    functionName: s2pred::TriageCompareSin2Distances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - s2pred::GetSin2Distance
    linkageType: ''
    returnType: int
    signature: "int TriageCompareSin2Distances(const Vector3<T>& x,\n                               const
      Vector3<T>& a, const Vector3<T>& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:399,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:400,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:403,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:403,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:407,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:407,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 409
    functionName: s2pred::ExactCompareDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - DotProd
    - Norm2
    - ExactFloat::sgn
    linkageType: ''
    returnType: int
    signature: "int ExactCompareDistances(const Vector3_xf& x,\n                          const
      Vector3_xf& a, const Vector3_xf& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 434
    functionName: s2pred::SymbolicCompareDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SymbolicCompareDistances(const S2Point& x,\n                             const
      S2Point& a, const S2Point& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates.cc:438,1
    - Dst: s2pred::TriageCompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates.cc:440,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:440,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:440,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: s2pred::CompareSin2Distances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - s2pred::ToLD
    - s2pred::TriageCompareSin2Distances
    linkageType: ''
    returnType: int
    signature: "int CompareSin2Distances(const S2Point& x,\n                                const
      S2Point& a, const S2Point& b)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareCosDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:451,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:462,1
    - Dst: s2pred::CompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates.cc:465,1
    - Dst: s2pred::CompareSin2Distances
      Src: /src/s2geometry/src/s2/s2predicates.cc:468,1
    - Dst: s2pred::TriageCompareCosDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:471,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:471,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:471,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:471,1
    - Dst: s2pred::ExactCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:474,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:474,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:474,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:474,1
    - Dst: s2pred::SymbolicCompareDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - ' x'
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 477
    functionName: s2pred::CompareDistances
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 14
    functionsReached:
    - DotProd
    - s2pred::ExactCompareDistances
    - s2pred::SymbolicCompareDistances
    - s2pred::ToLD
    - s2pred::TriageCompareCosDistances
    - s2pred::ToExact
    - s2pred::CompareSin2Distances
    linkageType: ''
    returnType: int
    signature: int CompareDistances(const S2Point& x, const S2Point& a, const S2Point&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:481,1
    - Dst: s2pred::GetCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 489
    functionName: s2pred::TriageCompareCosDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 3
    functionsReached:
    - s2pred::GetCosDistance
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: int TriageCompareCosDistance(const Vector3<T>& x, const Vector3<T>&
      y, T r2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates.cc:493,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:495,1
    - Dst: s2pred::GetSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 503
    functionName: s2pred::TriageCompareSin2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - s2pred::rounding_epsilon
    - s2pred::GetSin2Distance
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: int
    signature: int TriageCompareSin2Distance(const Vector3<T>& x, const Vector3<T>&
      y, T r2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:511,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:515,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:515,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:519,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:519,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' r2'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 521
    functionName: s2pred::ExactCompareDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 6
    functionsReached:
    - DotProd
    - Norm2
    - ExactFloat::sgn
    linkageType: ''
    returnType: int
    signature: "int ExactCompareDistance(const Vector3_xf& x, const Vector3_xf& y,\n
      \                        const ExactFloat& r2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:527,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:527,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:531,1
    - Dst: s2pred::TriageCompareSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:538,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:538,1
    - Dst: s2pred::TriageCompareSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:540,1
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:543,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:546,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:546,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:546,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 547
    functionName: s2pred::CompareDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 13
    functionsReached:
    - s2pred::ToLD
    - S1ChordAngle::length2
    - s2pred::TriageCompareSin2Distance
    - s2pred::ToExact
    - s2pred::TriageCompareCosDistance
    - s2pred::ExactCompareDistance
    linkageType: ''
    returnType: int
    signature: int CompareDistance(const S2Point& x, const S2Point& y, S1ChordAngle
      r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:556,1
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:557,1
    - Dst: s2pred::TriageCompareSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 561
    functionName: s2pred::TriageCompareDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - s2pred::TriageCompareCosDistance
    - length2
    - s2pred::TriageCompareSin2Distance
    linkageType: ''
    returnType: int
    signature: int TriageCompareDistance(const Vector3<T>& x, const Vector3<T>& y,
      T r2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:568,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - ax2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 577
    functionName: s2pred::GetClosestVertex
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - Norm2
    linkageType: ''
    returnType: Vector3<T>
    signature: "Vector3<T> GetClosestVertex(const Vector3<T>& x, const Vector3<T>&
      a0,\n                                   const Vector3<T>& a1, T* ax2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:592,1
    - Dst: s2pred::GetClosestVertex
      Src: /src/s2geometry/src/s2/s2predicates.cc:603,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:603,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:605,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:605,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:606,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:607,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r2
    - ' n'
    - n1
    - n2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    - Vector3<T>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 621
    functionName: s2pred::TriageCompareLineSin2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - s2pred::GetClosestVertex
    - DotProd
    - fabs
    - Norm2
    - sqrt
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: "int TriageCompareLineSin2Distance(const Vector3<T>& x, const Vector3<T>&
      a0,\n                                  const Vector3<T>& a1, T r2,\n                                  const
      Vector3<T>& n, T n1, T n2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:630,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:643,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:644,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:645,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:645,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r2
    - ' n'
    - n1
    - n2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    - Vector3<T>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 660
    functionName: s2pred::TriageCompareLineCos2Distance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - CrossProd
    - s2pred::rounding_epsilon
    - Norm2
    - sqrt
    linkageType: ''
    returnType: int
    signature: "int TriageCompareLineCos2Distance(const Vector3<T>& x, const Vector3<T>&
      a0,\n                                  const Vector3<T>& a1, T r2,\n                                  const
      Vector3<T>& n, T n1, T n2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:666,1
    - Dst: s2pred::TriageCompareLineSin2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:667,1
    - Dst: s2pred::TriageCompareLineCos2Distance
      Src: /src/s2geometry/src/s2/s2predicates.cc:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r2
    - ' n'
    - n1
    - n2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    - Vector3<T>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 663
    functionDepth: 4
    functionLinenumber: 663
    functionLinenumberEnd: 671
    functionName: s2pred::TriageCompareLineDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - s2pred::TriageCompareLineSin2Distance
    - length2
    - s2pred::TriageCompareLineCos2Distance
    linkageType: ''
    returnType: int
    signature: "int TriageCompareLineDistance(const Vector3<T>& x, const Vector3<T>&
      a0,\n                                     const Vector3<T>& a1, T r2,\n                                     const
      Vector3<T>& n, T n1, T n2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:676,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:686,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:687,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:692,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:693,1
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:694,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:695,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:696,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:696,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:697,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:698,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:704,1
    - Dst: s2pred::TriageCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:704,1
    - Dst: s2pred::TriageCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:705,1
    - Dst: s2pred::TriageCompareLineDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:706,1
    - Dst: s2pred::TriageCompareLineDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:710,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:713,1
    - Dst: s2pred::TriageCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:713,1
    - Dst: s2pred::TriageCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 674
    functionDepth: 5
    functionLinenumber: 674
    functionLinenumberEnd: 715
    functionName: s2pred::TriageCompareEdgeDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::TriageCompareLineDistance
    - Vector3::Norm
    - s2pred::TriageCompareDistance
    - min
    - sqrt
    - CrossProd
    - Vector3::CrossProd
    - Vector3::DotProd
    - Vector3::Norm2
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: "int TriageCompareEdgeDistance(const Vector3<T>& x, const Vector3<T>&
      a0,\n                              const Vector3<T>& a1, T r2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:726,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:727,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:729,1
    - Dst: Vector3_xf::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:729,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - ' r2'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 731
    functionName: s2pred::ExactCompareLineDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - Vector3_xf::Norm2
    - ExactFloat::sgn
    - Norm2
    - CrossProd
    linkageType: ''
    returnType: int
    signature: "int ExactCompareLineDistance(const Vector3_xf& x, const Vector3_xf&
      a0,\n                             const Vector3_xf& a1, const ExactFloat& r2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:746,1
    - Dst: s2pred::CompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:747,1
    - Dst: s2pred::ExactCompareLineDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:749,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:749,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:749,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:749,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:750,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:753,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:753,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 733
    functionDepth: 6
    functionLinenumber: 733
    functionLinenumberEnd: 755
    functionName: s2pred::ExactCompareEdgeDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - min
    - s2pred::CompareDistance
    - s2pred::ToExact
    - S1ChordAngle::length2
    - s2pred::CompareEdgeDirections
    - s2pred::ExactCompareLineDistance
    linkageType: ''
    returnType: int
    signature: "int ExactCompareEdgeDistance(const S2Point& x, const S2Point& a0,\n
      \                            const S2Point& a1, S1ChordAngle r)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:761,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:763,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:763,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:767,1
    - Dst: s2pred::TriageCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:769,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:769,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:769,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:769,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:770,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:770,1
    - Dst: s2pred::ExactCompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:773,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - ' x'
    - ' a0'
    - ' a1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 757
    functionDepth: 6
    functionLinenumber: 757
    functionLinenumberEnd: 774
    functionName: s2pred::CompareEdgeDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 19
    functionsReached:
    - s2pred::TriageCompareEdgeDistance
    - s2pred::ToLD
    - ABSL_DCHECK_NE
    - s2pred::CompareDistance
    - s2pred::ExactCompareEdgeDistance
    - S1ChordAngle::length2
    linkageType: ''
    returnType: int
    signature: "int CompareEdgeDistance(const S2Point& x, const S2Point& a0, const
      S2Point& a1,\n                        S1ChordAngle r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::CrossingSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:782,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:783,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:783,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:787,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:787,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:787,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:788,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:789,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:789,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 776
    functionDepth: 7
    functionLinenumber: 776
    functionLinenumberEnd: 791
    functionName: s2pred::CompareEdgePairDistance
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 4
    functionsReached:
    - S1ChordAngle::length2
    - s2pred::CompareEdgeDistance
    - min
    - S2::CrossingSign
    linkageType: ''
    returnType: int
    signature: "int CompareEdgePairDistance(const S2Point& a0, const S2Point& a1,\n
      \                           const S2Point& b0, const S2Point& b1,\n                            S1ChordAngle
      r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:797,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:798,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:799,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:800,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:801,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:802,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:844,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:846,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:847,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:848,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:849,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:851,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:852,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:853,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:854,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - ' m'
    - ' n'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 863
    functionName: s2pred::TriageIntersectionOrdering
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 3
    functionsReached:
    - DotProd
    - ABSL_DCHECK_NE
    - s2pred::rounding_epsilon
    - std::fabs
    linkageType: ''
    returnType: int
    signature: "int TriageIntersectionOrdering(const Vector3<T>& a, const Vector3<T>&
      b,\n                               const Vector3<T>& c, const Vector3<T>& d,\n
      \                              const Vector3<T>& m, const Vector3<T>& n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:868,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:869,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:870,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:871,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:872,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:873,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:875,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:876,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:877,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:878,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:880,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:881,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:882,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - ' m'
    - ' n'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 891
    functionName: s2pred::ExactIntersectionOrdering
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - ABSL_DCHECK_NE
    linkageType: ''
    returnType: int
    signature: "int ExactIntersectionOrdering(const Vector3_xf& a, const Vector3_xf&
      b,\n                              const Vector3_xf& c, const Vector3_xf& d,\n
      \                             const Vector3_xf& m, const Vector3_xf& n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates.cc:896,1
    - Dst: s2pred::TriageIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:908,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:909,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:909,1
    - Dst: s2pred::ExactIntersectionOrdering
      Src: /src/s2geometry/src/s2/s2predicates.cc:915,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:916,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - ' m'
    - ' n'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 917
    functionName: s2pred::CircleEdgeIntersectionOrdering
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - s2pred::TriageIntersectionOrdering
    - s2pred::ExactIntersectionOrdering
    - s2pred::ToExact
    - s2pred::ToLD
    linkageType: ''
    returnType: int
    signature: "int CircleEdgeIntersectionOrdering(const S2Point& a, const S2Point&
      b,\n                                   const S2Point& c, const S2Point& d,\n
      \                                  const S2Point& m, const S2Point& n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.cc:921,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:921,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.cc:922,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:922,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:935,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:937,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 920
    functionDepth: 3
    functionLinenumber: 920
    functionLinenumberEnd: 940
    functionName: s2pred::TriageSignDotProd
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 3
    functionsReached:
    - DotProd
    - Norm2
    - ABSL_DCHECK_LE
    - std::fabs
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: int TriageSignDotProd(const Vector3<T>& a, const Vector3<T>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:943,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/s2predicates.cc:944,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 948
    functionName: s2pred::ExactSignDotProd
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - ExactFloat::is_zero
    - ExactFloat::sgn
    linkageType: ''
    returnType: int
    signature: int ExactSignDotProd(const Vector3_xf& a, const Vector3_xf& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:951,1
    - Dst: s2pred::TriageSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:957,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:957,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:957,1
    - Dst: s2pred::ExactSignDotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:963,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:963,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 950
    functionDepth: 4
    functionLinenumber: 950
    functionLinenumberEnd: 964
    functionName: s2pred::SignDotProd
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - s2pred::ToExact
    - s2pred::ExactSignDotProd
    - s2pred::ToLD
    - s2pred::TriageSignDotProd
    linkageType: ''
    returnType: int
    signature: int SignDotProd(const S2Point& a, const S2Point& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:969,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:970,1
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:987,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:989,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:990,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:991,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:992,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' n'
    - ' x'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 967
    functionDepth: 3
    functionLinenumber: 967
    functionLinenumberEnd: 1001
    functionName: s2pred::TriageCircleEdgeIntersectionSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 3
    functionsReached:
    - DotProd
    - ABSL_DCHECK_NE
    - s2pred::rounding_epsilon
    - std::fabs
    linkageType: ''
    returnType: int
    signature: "int TriageCircleEdgeIntersectionSign(const Vector3<T>& a, const Vector3<T>&
      b,\n                                     const Vector3<T>& n, const Vector3<T>&
      x)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1005,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1006,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1008,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1009,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1010,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1011,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/s2predicates.cc:1015,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' n'
    - ' x'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1019
    functionName: s2pred::ExactCircleEdgeIntersectionSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - DotProd
    - ExactFloat::is_zero
    - ABSL_DCHECK_NE
    - ExactFloat::sgn
    linkageType: ''
    returnType: int
    signature: "int ExactCircleEdgeIntersectionSign(const Vector3_xf& a, const Vector3_xf&
      b,\n                                    const Vector3_xf& n, const Vector3_xf&
      x)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::TriageCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1023,1
    - Dst: s2pred::TriageCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1029,1
    - Dst: s2pred::ExactCircleEdgeIntersectionSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1035,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1036,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1036,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1036,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' n'
    - ' x'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1021
    functionDepth: 4
    functionLinenumber: 1021
    functionLinenumberEnd: 1037
    functionName: s2pred::CircleEdgeIntersectionSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - s2pred::ToExact
    - s2pred::TriageCircleEdgeIntersectionSign
    - s2pred::ExactCircleEdgeIntersectionSign
    - s2pred::ToLD
    linkageType: ''
    returnType: int
    signature: "int CircleEdgeIntersectionSign(const S2Point& a, const S2Point& b,\n
      \                              const S2Point& n, const S2Point& x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:1042,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1043,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1044,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1045,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1045,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1046,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1047,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1040
    functionDepth: 3
    functionLinenumber: 1040
    functionLinenumberEnd: 1050
    functionName: s2pred::TriageCompareEdgeDirections
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - Vector3::Norm
    - sqrt
    - CrossProd
    - Vector3::DotProd
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: "int TriageCompareEdgeDirections(const Vector3<T>& a0, const Vector3<T>&
      a1,\n                                const Vector3<T>& b0, const Vector3<T>&
      b1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::IsZero
      Src: /src/s2geometry/src/s2/s2predicates.cc:1053,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1054
    functionName: s2pred::ArePointsLinearlyDependent
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - s2pred::IsZero
    - CrossProd
    linkageType: ''
    returnType: bool
    signature: bool ArePointsLinearlyDependent(const Vector3_xf& x, const Vector3_xf&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::ArePointsLinearlyDependent
      Src: /src/s2geometry/src/s2/s2predicates.cc:1057,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1056
    functionDepth: 3
    functionLinenumber: 1056
    functionLinenumberEnd: 1058
    functionName: s2pred::ArePointsAntipodal
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 2
    functionsReached:
    - DotProd
    - s2pred::ArePointsLinearlyDependent
    linkageType: ''
    returnType: bool
    signature: bool ArePointsAntipodal(const Vector3_xf& x, const Vector3_xf& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1062,1
    - Dst: s2pred::ArePointsAntipodal
      Src: /src/s2geometry/src/s2/s2predicates.cc:1062,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1063,1
    - Dst: s2pred::ArePointsAntipodal
      Src: /src/s2geometry/src/s2/s2predicates.cc:1063,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1064,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1060
    functionDepth: 4
    functionLinenumber: 1060
    functionLinenumberEnd: 1065
    functionName: s2pred::ExactCompareEdgeDirections
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::ArePointsAntipodal
    - CrossProd
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: "int ExactCompareEdgeDirections(const Vector3_xf& a0, const Vector3_xf&
      a1,\n                               const Vector3_xf& b0, const Vector3_xf&
      b1)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1071,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1072,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:1074,1
    - Dst: s2pred::TriageCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1080,1
    - Dst: s2pred::ExactCompareEdgeDirections
      Src: /src/s2geometry/src/s2/s2predicates.cc:1083,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1083,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1083,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1084,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - ' a0'
    - ' a1'
    - ' b0'
    - ' b1'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1067
    functionDepth: 5
    functionLinenumber: 1067
    functionLinenumberEnd: 1085
    functionName: s2pred::CompareEdgeDirections
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 9
    functionsReached:
    - s2pred::ExactCompareEdgeDirections
    - s2pred::ToLD
    - ABSL_DCHECK_NE
    - s2pred::TriageCompareEdgeDirections
    - s2pred::ToExact
    linkageType: ''
    returnType: int
    signature: "int CompareEdgeDirections(const S2Point& a0, const S2Point& a1,\n
      \                         const S2Point& b0, const S2Point& b1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:1092,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1104,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1105,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1106,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1107,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1108,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1109,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1110,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1111,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1112,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1114,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - error
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1090
    functionDepth: 3
    functionLinenumber: 1090
    functionLinenumberEnd: 1117
    functionName: s2pred::GetCircumcenter
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 1
    functionsReached:
    - Vector3::CrossProd
    - s2pred::rounding_epsilon
    - Vector3::Norm
    - sqrt
    linkageType: ''
    returnType: Vector3<T>
    signature: "Vector3<T> GetCircumcenter(const Vector3<T>& a, const Vector3<T>&
      b,\n                           const Vector3<T>& c, T* error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:1123,1
    - Dst: s2pred::GetCircumcenter
      Src: /src/s2geometry/src/s2/s2predicates.cc:1128,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1129,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1132,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1134,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1135,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1136,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' x0'
    - ' x1'
    - ' a'
    - ' b'
    - ' c'
    - abc_sign
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1120
    functionDepth: 4
    functionLinenumber: 1120
    functionLinenumberEnd: 1139
    functionName: s2pred::TriageEdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::GetCircumcenter
    - Vector3::Norm
    - sqrt
    - CrossProd
    - Vector3::DotProd
    - s2pred::rounding_epsilon
    linkageType: ''
    returnType: int
    signature: "int TriageEdgeCircumcenterSign(const Vector3<T>& x0, const Vector3<T>&
      x1,\n                               const Vector3<T>& a, const Vector3<T>& b,\n
      \                              const Vector3<T>& c, int abc_sign)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::ArePointsLinearlyDependent
      Src: /src/s2geometry/src/s2/s2predicates.cc:1146,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1147,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1147,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1197,1
    - Dst: Vector3_xf::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1198,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1198,1
    - Dst: Vector3_xf::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1199,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1199,1
    - Dst: Vector3_xf::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1200,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1200,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1201,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1202,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1203,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1208,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1208,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2predicates.cc:1209,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:1209,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1213,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1217,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2predicates.cc:1218,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:1218,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1231,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1231,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2predicates.cc:1233,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2predicates.cc:1233,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1233,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - ' x0'
    - ' x1'
    - ' a'
    - ' b'
    - ' c'
    - abc_sign
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1141
    functionDepth: 3
    functionLinenumber: 1141
    functionLinenumberEnd: 1245
    functionName: s2pred::ExactEdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - DotProd
    - sgn
    - Norm2
    - ExactFloat::sgn
    - min
    - CrossProd
    - s2pred::ArePointsLinearlyDependent
    - ABSL_DCHECK_GT
    - max
    - Vector3_xf::DotProd
    linkageType: ''
    returnType: int
    signature: "int ExactEdgeCircumcenterSign(const Vector3_xf& x0, const Vector3_xf&
      x1,\n                              const Vector3_xf& a, const Vector3_xf& b,\n
      \                             const Vector3_xf& c, int abc_sign)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:1307,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:1308,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/s2predicates.cc:1309,1
    - Dst: s2pred::UnperturbedSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1312,1
    - Dst: s2pred::UnperturbedSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1314,1
    - Dst: s2pred::UnperturbedSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 5
    argNames:
    - ' x0'
    - ' x1'
    - ' a_arg'
    - ' b_arg'
    - ' c_arg'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1252
    functionDepth: 3
    functionLinenumber: 1252
    functionLinenumberEnd: 1317
    functionName: s2pred::SymbolicEdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::UnperturbedSign
    - swap
    linkageType: ''
    returnType: int
    signature: "int SymbolicEdgeCircumcenterSign(\n    const S2Point& x0, const S2Point&
      x1,\n    const S2Point& a_arg, const S2Point& b_arg, const S2Point& c_arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1324,1
    - Dst: s2pred::Sign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1326,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1327,1
    - Dst: s2pred::TriageEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1334,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1335,1
    - Dst: s2pred::ExactEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1338,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1339,1
    - Dst: s2pred::SymbolicEdgeCircumcenterSign
      Src: /src/s2geometry/src/s2/s2predicates.cc:1344,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 5
    argNames:
    - ' x0'
    - ' x1'
    - ' a'
    - ' b'
    - ' c'
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1319
    functionDepth: 5
    functionLinenumber: 1319
    functionLinenumberEnd: 1345
    functionName: s2pred::EdgeCircumcenterSign
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::ToLD
    - s2pred::Sign
    - ABSL_DCHECK_NE
    - s2pred::ToExact
    - s2pred::ExactEdgeCircumcenterSign
    - s2pred::SymbolicEdgeCircumcenterSign
    - s2pred::TriageEdgeCircumcenterSign
    linkageType: ''
    returnType: int
    signature: "int EdgeCircumcenterSign(const S2Point& x0, const S2Point& x1,\n                         const
      S2Point& a, const S2Point& b,\n                         const S2Point& c)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: s2pred::rounding_epsilon
      Src: /src/s2geometry/src/s2/s2predicates.cc:1351,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1436,1
    - Dst: Vector3::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1437,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1438,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1440,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1440,1
    - Dst: s2pred::GetClosestVertex
      Src: /src/s2geometry/src/s2/s2predicates.cc:1447,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1447,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1449,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1452,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1457,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1459,1
    - Dst: s2pred::GetClosestVertex
      Src: /src/s2geometry/src/s2/s2predicates.cc:1461,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1461,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1463,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1466,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1469,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1471,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1477,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1481,1
    - Dst: Vector3::Norm
      Src: /src/s2geometry/src/s2/s2predicates.cc:1482,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1483,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1484,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/s2predicates.cc:1485,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates.cc:1516,1
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1517,1
    - Dst: s2pred::TriageCompareCosDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1518,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1523,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1532,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1534,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1534,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2predicates.cc:1535,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1547,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' x0'
    - ' x1'
    - r2
    argTypes:
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1348
    functionDepth: 4
    functionLinenumber: 1348
    functionLinenumberEnd: 1549
    functionName: s2pred::TriageVoronoiSiteExclusion
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::GetClosestVertex
    - DotProd
    - fabs
    - Vector3::Norm
    - sqrt
    - CrossProd
    - Vector3::DotProd
    - Vector3::Norm2
    - s2pred::TriageCompareCosDistance
    - ABSL_DCHECK_GT
    - s2pred::rounding_epsilon
    - S1ChordAngle::Right
    - ABSL_DCHECK
    linkageType: ''
    returnType: Excluded
    signature: "Excluded TriageVoronoiSiteExclusion(const Vector3<T>& a, const Vector3<T>&
      b,\n                                    const Vector3<T>& x0, const Vector3<T>&
      x1,\n                                    T r2)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1554,1
    - Dst: s2pred::ArePointsAntipodal
      Src: /src/s2geometry/src/s2/s2predicates.cc:1554,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1580,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1581,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1582,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates.cc:1585,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1586,1
    - Dst: s2pred::ExactCompareDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1587,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1589,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2predicates.cc:1590,1
    - Dst: Vector3_xf::Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1596,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1597,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1598,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/s2predicates.cc:1599,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1600,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1608,1
    - Dst: Norm2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1609,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1613,1
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1620,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1636,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/s2predicates.cc:1643,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' x0'
    - ' x1'
    - ' r2'
    argTypes:
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - Vector3_xf
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1551
    functionDepth: 4
    functionLinenumber: 1551
    functionLinenumberEnd: 1662
    functionName: s2pred::ExactVoronoiSiteExclusion
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::ExactCompareDistance
    - DotProd
    - Vector3_xf::Norm2
    - ExactFloat::sgn
    - Norm2
    - CrossProd
    - s2pred::ArePointsAntipodal
    - ABSL_DCHECK_GT
    - sgn
    - S1ChordAngle::Right
    - ABSL_DCHECK
    linkageType: ''
    returnType: Excluded
    signature: "Excluded ExactVoronoiSiteExclusion(const Vector3_xf& a, const Vector3_xf&
      b,\n                                   const Vector3_xf& x0, const Vector3_xf&
      x1,\n                                   const ExactFloat& r2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1667,1
    - Dst: S1ChordAngle::Right
      Src: /src/s2geometry/src/s2/s2predicates.cc:1667,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/s2predicates.cc:1668,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:1668,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1669,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1669,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1670,1
    - Dst: s2pred::CompareEdgeDistance
      Src: /src/s2geometry/src/s2/s2predicates.cc:1670,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/s2predicates.cc:1673,1
    - Dst: s2pred::CompareDistances
      Src: /src/s2geometry/src/s2/s2predicates.cc:1682,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates.cc:1686,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1686,1
    - Dst: s2pred::TriageVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1689,1
    - Dst: s2pred::ToLD
      Src: /src/s2geometry/src/s2/s2predicates.cc:1690,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1690,1
    - Dst: s2pred::ExactVoronoiSiteExclusion
      Src: /src/s2geometry/src/s2/s2predicates.cc:1693,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1693,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1693,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1693,1
    - Dst: s2pred::ToExact
      Src: /src/s2geometry/src/s2/s2predicates.cc:1694,1
    - Dst: S1ChordAngle::length2
      Src: /src/s2geometry/src/s2/s2predicates.cc:1694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ' a'
    - ' b'
    - ' x0'
    - ' x1'
    - r
    argTypes:
    - S2Point
    - S2Point
    - S2Point
    - S2Point
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1664
    functionDepth: 7
    functionLinenumber: 1664
    functionLinenumberEnd: 1695
    functionName: s2pred::GetVoronoiSiteExclusion
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 5
    functionsReached:
    - s2pred::ExactVoronoiSiteExclusion
    - s2pred::ToLD
    - ABSL_DCHECK_LE
    - ABSL_DCHECK_NE
    - s2pred::CompareDistances
    - s2pred::ToExact
    - s2pred::CompareEdgeDistance
    - s2pred::TriageVoronoiSiteExclusion
    - ABSL_DCHECK_LT
    - S1ChordAngle::length2
    - S1ChordAngle::Right
    linkageType: ''
    returnType: Excluded
    signature: "Excluded GetVoronoiSiteExclusion(const S2Point& a, const S2Point&
      b,\n                                 const S2Point& x0, const S2Point& x1,\n
      \                                S1ChordAngle r)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ' os'
    - excluded
    argTypes:
    - std::ostream
    - Excluded
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1705
    functionName: '& operator<<(std::ostream& os, Excluded excluded)'
    functionSourceFile: /src/s2geometry/src/s2/s2predicates.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, Excluded excluded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:50,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:50,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:51,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:52,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:52,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:53,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolygonOrDie
    - S2::GetLength
    - EXPECT_EQ
    - S1Angle::Zero
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, WrongDimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:57,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:57,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:57,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - MakeLaxPolylineOrDie
    - S1Angle::Zero
    - S2::GetLength
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, NoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:65,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:65,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetLength
    - S1Angle::Degrees
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, ThreePolylinesInOneShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:69,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:69,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:70,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:71,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:71,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:72,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, WrongDimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:76,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:76,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:76,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:80,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:80,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:80,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:85,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:85,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:86,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Degrees
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, TwoLoopPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:90,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:90,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:91,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:91,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - MakeLaxPolylineOrDie
    - S2::GetArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, WrongDimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:95,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:95,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:99,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:99,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:100,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:101,1
    - Dst: S2Polygon::OwningShape::OwningShape
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:101,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolygonOrDie
    - S2Polygon::OwningShape::OwningShape
    - MakePolygonOrDie
    - S2::GetArea
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:107,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:107,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - S1Angle::Degrees
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, TwoTinyShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:115,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:115,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - S1Angle::Degrees
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, TinyShellAndHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:122,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:122,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - S2::GetApproxArea
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetApproxArea, LargeShellAndHolePolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:129,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:129,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:130,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:135,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:135,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:136,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:137,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2::GetCentroid
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:142,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:142,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:143,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:144,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolygonOrDie
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2::GetCentroid
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:50,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:50,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:51,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:52,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:52,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:53,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolygonOrDie
    - S2::GetLength
    - EXPECT_EQ
    - S1Angle::Zero
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, WrongDimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:57,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:57,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:57,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - MakeLaxPolylineOrDie
    - S1Angle::Zero
    - S2::GetLength
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, NoPolylines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:65,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:65,1
    - Dst: S2::GetLength
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetLength
    - S1Angle::Degrees
    - ParsePointsOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetLength, ThreePolylinesInOneShape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:69,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:69,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:70,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:71,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:71,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:72,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, WrongDimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:76,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:76,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:76,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:80,1
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:80,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:80,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Zero
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:85,1
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:85,1
    - Dst: S2::GetPerimeter
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:86,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetPerimeter
    - S1Angle::Degrees
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetPerimeter, TwoLoopPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:90,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:90,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:91,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:91,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - MakeLaxPolylineOrDie
    - S2::GetArea
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, WrongDimension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:95,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:95,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:99,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:99,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:100,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:101,1
    - Dst: S2Polygon::OwningShape::OwningShape
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:101,1
    - Dst: MakePolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolygonOrDie
    - S2Polygon::OwningShape::OwningShape
    - MakePolygonOrDie
    - S2::GetArea
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:107,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:107,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - S1Angle::Degrees
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, TwoTinyShells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Degrees
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:115,1
    - Dst: S2::GetArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:115,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2::GetArea
    - S1Angle::Degrees
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetArea, TinyShellAndHole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:122,1
    - Dst: S2::GetApproxArea
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:122,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - S2::GetApproxArea
    - MakeLaxPolygonOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetApproxArea, LargeShellAndHolePolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:129,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:129,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:130,1
    - Dst: MakeIndexOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - S2Point
    - S2::GetCentroid
    - MakeIndexOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Points)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:135,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:135,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:136,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:137,1
    - Dst: MakeLaxPolylineOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolylineOrDie
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2::GetCentroid
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Polyline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:142,1
    - Dst: S2::ApproxEquals
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:142,1
    - Dst: S2Point
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:143,1
    - Dst: S2::GetCentroid
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:144,1
    - Dst: MakeLaxPolygonOrDie
      Src: /src/s2geometry/src/s2/s2shape_measures_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shape_measures_test.cc
    functionUses: 0
    functionsReached:
    - MakeLaxPolygonOrDie
    - EXPECT_TRUE
    - S2Point
    - S2::ApproxEquals
    - S2::GetCentroid
    linkageType: ''
    returnType: void
    signature: void TEST(GetCentroid, Polygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:43,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:44,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2LaxPolygonShape::GetReferencePoint
    - S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:48,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:49,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LaxPolygonShape::GetReferencePoint
    - S2Polygon
    - s2textformat::MakeLoopOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:54,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:55,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:56,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:58,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::GetReferencePoint
    - s2textformat::ParsePointsOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, DegenerateLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:63,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:64,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:66,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:66,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2::Origin
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::ContainsBruteForce
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, InvertedLoops)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:70,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:71,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:79,1
    - Dst: S2CellId::advance_wrap
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:80,1
    - Dst: S2CellId::advance_wrap
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:82,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:82,1
    - Dst: S2CellId::next_wrap
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:84,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:88,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:88,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:89,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:89,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:90,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:90,1
    - Dst: S2LaxPolygonShape::Loop*::insert
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:91,1
    - Dst: S2LaxPolygonShape::Loop*::end
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:91,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:91,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:91,1
    - Dst: S2LaxPolygonShape::Loop*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:92,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:92,1
    - Dst: S2LaxPolygonShape::Loop*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:94,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:94,1
    - Dst: S2CellId::prev_wrap
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:99,1
    - Dst: S2LaxPolygonShape::Loop*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:101,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:101,1
    - Dst: S2LaxPolygonShape::Loop*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:103,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:103,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:109,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 111
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2CellId::ToPoint
    - S2CellId::advance_wrap
    - S2CellId::next_wrap
    - S2LaxPolygonShape::GetReferencePoint
    - S2LaxPolygonShape::Loop*::push_back
    - vector::end
    - S2LaxPolygonShape::Loop*::end
    - s2random::CellId
    - vector::begin
    - S2LaxPolygonShape::Loop*::insert
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Loop::Contains
    - S2Testing::MakeTaggedSeedSeq
    - S2CellId::prev_wrap
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, PartiallyDegenerateLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:43,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:44,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - S2LaxPolygonShape::GetReferencePoint
    - S2Polygon
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, EmptyPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:48,1
    - Dst: s2textformat::MakeLoopOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:49,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2LaxPolygonShape::GetReferencePoint
    - S2Polygon
    - s2textformat::MakeLoopOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, FullPolygon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:54,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:55,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:56,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:58,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::GetReferencePoint
    - s2textformat::ParsePointsOrDie
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, DegenerateLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:63,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:64,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:66,1
    - Dst: s2shapeutil::ContainsBruteForce
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:66,1
    - Dst: S2::Origin
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2::Origin
    - s2textformat::ParsePointsOrDie
    - s2shapeutil::ContainsBruteForce
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, InvertedLoops)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:70,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:71,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:79,1
    - Dst: S2CellId::advance_wrap
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:80,1
    - Dst: S2CellId::advance_wrap
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:82,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:82,1
    - Dst: S2CellId::next_wrap
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:84,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:88,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:88,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:89,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:89,1
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:90,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:90,1
    - Dst: S2LaxPolygonShape::Loop*::insert
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:91,1
    - Dst: S2LaxPolygonShape::Loop*::end
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:91,1
    - Dst: vector::begin
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:91,1
    - Dst: vector::end
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:91,1
    - Dst: S2LaxPolygonShape::Loop*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:92,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:92,1
    - Dst: S2LaxPolygonShape::Loop*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:94,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:94,1
    - Dst: S2CellId::prev_wrap
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:99,1
    - Dst: S2LaxPolygonShape::Loop*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:101,1
    - Dst: S2CellId::child
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:101,1
    - Dst: S2LaxPolygonShape::Loop*::push_back
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:103,1
    - Dst: S2CellId::ToPoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:103,1
    - Dst: S2LaxPolygonShape::GetReferencePoint
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:109,1
    - Dst: S2Loop::Contains
      Src: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 111
    functionName: s2shapeutil::TEST
    functionSourceFile: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2CellId::ToPoint
    - S2CellId::advance_wrap
    - S2CellId::next_wrap
    - S2LaxPolygonShape::GetReferencePoint
    - S2LaxPolygonShape::Loop*::push_back
    - vector::end
    - S2LaxPolygonShape::Loop*::end
    - s2random::CellId
    - vector::begin
    - S2LaxPolygonShape::Loop*::insert
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - EXPECT_EQ
    - S2Loop::Contains
    - S2Testing::MakeTaggedSeedSeq
    - S2CellId::prev_wrap
    - S2CellId::child
    linkageType: ''
    returnType: void
    signature: void TEST(GetReferencePoint, PartiallyDegenerateLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:172,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:173,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: s2builderutil::IndexedLaxPolygonLayer::IndexedLaxPolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::S2LaxPolygonShape
    - Options
    - get
    linkageType: ''
    returnType: void
    signature: "void IndexedLaxPolygonLayer(MutableS2ShapeIndex* index,\n                                 const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedLaxPolygonLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: s2builderutil::IndexedLaxPolygonLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 1
    functionsReached:
    - s2builderutil::IndexedLaxPolygonLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedLaxPolygonLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:181,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:182,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:182,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:183,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: s2builderutil::IndexedLaxPolygonLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 1
    functionsReached:
    - Add
    - s2builderutil::IndexedLaxPolygonLayer::Build
    - std::move
    - ok
    - is_empty
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: LaxPolygonLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaxPolygonLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: LaxPolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaxPolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: LaxPolygonLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType LaxPolygonLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: "LaxPolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: LaxPolygonLayer::Options::degenerate_boundaries() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LaxPolygonLayer::Options::DegenerateBoundaries
    signature: LaxPolygonLayer::Options::DegenerateBoundaries LaxPolygonLayer::Options::degenerate_boundaries()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - degenerate_boundaries
    argTypes:
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: "LaxPolygonLayer::Options::set_degenerate_boundaries(\n    DegenerateBoundaries
      degenerate_boundaries)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::Options::set_degenerate_boundaries(\n    DegenerateBoundaries
      degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:172,1
    - Dst: S2LaxPolygonShape::S2LaxPolygonShape
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:173,1
    - Dst: get
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - MutableS2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: s2builderutil::IndexedLaxPolygonLayer::IndexedLaxPolygonLayer
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached:
    - S2LaxPolygonShape::S2LaxPolygonShape
    - Options
    - get
    linkageType: ''
    returnType: void
    signature: "void IndexedLaxPolygonLayer(MutableS2ShapeIndex* index,\n                                 const
      Options& options = Options())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedLaxPolygonLayer::graph_options
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: s2builderutil::IndexedLaxPolygonLayer::graph_options
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 2
    functionsReached:
    - s2builderutil::IndexedLaxPolygonLayer::graph_options
    linkageType: ''
    returnType: GraphOptions
    signature: GraphOptions graph_options() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2builderutil::IndexedLaxPolygonLayer::Build
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:181,1
    - Dst: ok
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:182,1
    - Dst: is_empty
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:182,1
    - Dst: Add
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:183,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' g'
    - absl_nonnull
    argTypes:
    - Graph
    - S2Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: s2builderutil::IndexedLaxPolygonLayer::Build
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 2
    functionsReached:
    - Add
    - s2builderutil::IndexedLaxPolygonLayer::Build
    - std::move
    - ok
    - is_empty
    linkageType: ''
    returnType: void
    signature: void Build(const Graph& g, S2Error* absl_nonnull error) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: LaxPolygonLayer::Options::Options()
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaxPolygonLayer::Options::Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: LaxPolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaxPolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: LaxPolygonLayer::Options::edge_type() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2Builder::EdgeType
    signature: S2Builder::EdgeType LaxPolygonLayer::Options::edge_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - edge_type
    argTypes:
    - S2Builder::EdgeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: "LaxPolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType
      edge_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: LaxPolygonLayer::Options::degenerate_boundaries() const
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LaxPolygonLayer::Options::DegenerateBoundaries
    signature: LaxPolygonLayer::Options::DegenerateBoundaries LaxPolygonLayer::Options::degenerate_boundaries()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - degenerate_boundaries
    argTypes:
    - DegenerateBoundaries
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: "LaxPolygonLayer::Options::set_degenerate_boundaries(\n    DegenerateBoundaries
      degenerate_boundaries)"
    functionSourceFile: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void LaxPolygonLayer::Options::set_degenerate_boundaries(\n    DegenerateBoundaries
      degenerate_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:73,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:74,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:77,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:82,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:83,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:83,1
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:83,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:84,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:85,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToToken
    - StrCat
    - S2Cell
    - SCOPED_TRACE
    - s2random::CellId
    - S2RegionCoverer::GetCovering
    - EXPECT_EQ
    - vector::size
    - absl::LogInfoStreamer
    - S2RegionCoverer::Options::set_max_cells
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, RandomCells)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:97,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:98,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:98,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:99,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:100,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:100,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:100,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:101,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:101,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:103,1
    - Dst: max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:107,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:112,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:112,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:112,1
    - Dst: S2Testing::CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ' options'
    - ' region'
    - ' covering'
    - interior
    argTypes:
    - S2RegionCoverer::Options
    - S2Region
    - vector<S2CellId>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 118
    functionName: CheckCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 5
    functionsReached:
    - level_mod
    - level
    - EXPECT_TRUE
    - size
    - EXPECT_GE
    - S2Testing::CheckCovering
    - max_level
    - EXPECT_LE
    - max_cells
    - S2Cell
    - EXPECT_EQ
    - Contains
    - parent
    - min_level
    linkageType: ''
    returnType: void
    signature: "void CheckCovering(const S2RegionCoverer::Options& options,\n                          const
      S2Region& region,\n                          const vector<S2CellId>& covering,\n
      \                         bool interior)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:122,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:122,1
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:126,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:127,1
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:128,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:128,1
    - Dst: S2RegionCoverer::Options::min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:129,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:130,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:130,1
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:131,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:131,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:132,1
    - Dst: S2RegionCoverer::Options::max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:132,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:133,1
    - Dst: S2RegionCoverer::Options::min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:133,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:135,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:135,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:138,1
    - Dst: CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:139,1
    - Dst: S2RegionCoverer::GetInteriorCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:140,1
    - Dst: CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:141,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:146,1
    - Dst: S2CellUnion::Denormalize
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:154,1
    - Dst: S2RegionCoverer::Options::min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:154,1
    - Dst: S2RegionCoverer::Options::level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:154,1
    - Dst: CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 157
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Denormalize
    - S2RegionCoverer::Options::min_level
    - s2random::Cap
    - S2Cell::AverageArea
    - min
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::Options::max_cells
    - EXPECT_EQ
    - S2RegionCoverer::Options::set_max_cells
    - S2RegionCoverer::Options::level_mod
    - CheckCovering
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::GetInteriorCovering
    - S2Testing::MakeTaggedSeedSeq
    - s2random::SkewedInt
    - S2RegionCoverer::Options::set_level_mod
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2RegionCoverer::Options::set_max_level
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, RandomCaps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:160,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:161,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:164,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:164,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:166,1
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:167,1
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:168,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:169,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:169,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:171,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:171,1
    - Dst: S2RegionCoverer::GetSimpleCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:173,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:173,1
    - Dst: CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - s2random::Cap
    - S2Cell::AverageArea
    - Stats::max
    - S2RegionCoverer::Options::set_max_level
    - min
    - CheckCovering
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::GetSimpleCovering
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2RegionCoverer::Options::set_max_cells
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, SimpleCoverings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - WorstCap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: operator<(const WorstCap& o) const
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const WorstCap& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - r
    - ' c'
    - n
    argTypes:
    - double
    - S2Cap
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: WorstCap
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WorstCap(double r, const S2Cap& c, int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:189,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:189,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:190,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:191,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:202,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:203,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:218,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:222,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:225,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:226,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:237,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:241,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:243,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:244,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:246,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:250,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:251,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:252,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:253,1
    - Dst: push
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:254,1
    - Dst: WorstCap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:254,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:255,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:256,1
    - Dst: push
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:257,1
    - Dst: WorstCap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:257,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:266,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:267,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:269,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:269,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:270,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:271,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:273,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:273,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:273,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:274,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:274,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:275,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:276,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:278,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:280,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:280,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:281,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:283,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:283,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:285,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:286,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:286,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:287,1
    - Dst: cap::center
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:288,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:289,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:292,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:292,1
    - Dst: cap::GetRadius
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:293,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 1
    argNames:
    - max_cells
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 188
    functionDepth: 7
    functionLinenumber: 188
    functionLinenumberEnd: 296
    functionName: TestAccuracy
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - WorstCap
    - top
    - end
    - S2RegionCoverer::mutable_options
    - static_cast<double>
    - begin
    - vector::size
    - s2random::Cap
    - pop
    - S2Cell::AverageArea
    - cap::center
    - min
    - absl::PrintF
    - S2Cell
    - empty
    - push
    - S2Cap::GetArea
    - S2LatLng::lng
    - std::sort
    - push_back
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::S2RegionCoverer
    - max
    - S2Testing::MakeTaggedSeedSeq
    - StrCat
    - S2LatLng::lat
    - size
    - SCOPED_TRACE
    - absl::LogInfoStreamer
    - cap::GetRadius
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TestAccuracy(int max_cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:300,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:300,1
    - Dst: absl::SkipEmpty
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:300,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:302,1
    - Dst: absl::SimpleAtoi
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:302,1
    - Dst: TestAccuracy
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 8
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - TestAccuracy
    - absl::SkipEmpty
    - absl::SimpleAtoi
    - ABSL_CHECK
    - absl::GetFlag
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, Accuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:315,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:316,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:318,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:318,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:319,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:321,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:321,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:323,1
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:324,1
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:325,1
    - Dst: S2RegionCoverer::GetInteriorCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:328,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:329,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:329,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:331,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 307
    functionDepth: 7
    functionLinenumber: 307
    functionLinenumberEnd: 333
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2random::Point
    - level
    - S2CellId
    - S2RegionCoverer::Options::set_max_level
    - S2CellId::parent
    - vector::size
    - EXPECT_EQ
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::GetInteriorCovering
    - absl::LogInfoStreamer
    - S2RegionCoverer::Options::set_max_cells
    - S2Testing::MakeTaggedSeedSeq
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, InteriorCovering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:338,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:341,1
    - Dst: S2RegionCoverer::GetFastCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:342,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:343,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromDebugString
    - EXPECT_GE
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::GetFastCovering
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(GetFastCovering, HugeFixedLevelCovering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:350,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:350,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input_str
    - ' options'
    argTypes:
    - absl::Span<const string>
    - S2RegionCoverer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: IsCanonical
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 6
    functionsReached:
    - S2CellId::FromDebugString
    - vector::push_back
    - S2RegionCoverer::IsCanonical
    linkageType: ''
    returnType: bool
    signature: "bool IsCanonical(absl::Span<const string> input_str,\n                 const
      S2RegionCoverer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:357,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:357,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:357,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:358,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:358,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - IsCanonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, InvalidS2CellId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:362,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:362,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:362,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:363,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:363,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - IsCanonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, Unsorted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:367,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:367,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:367,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:368,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:368,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - IsCanonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, Overlapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:373,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:374,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:374,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:375,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - IsCanonical
    - S2RegionCoverer::Options::set_min_level
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, MinLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:380,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:381,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:381,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:382,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_level
    - IsCanonical
    - EXPECT_TRUE
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, MaxLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:387,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:388,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:388,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:389,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsCanonical
    - S2RegionCoverer::Options::set_level_mod
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, LevelMod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:394,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:395,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:395,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:396,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:396,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:397,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_cells
    - IsCanonical
    - EXPECT_TRUE
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, MaxCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:403,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:403,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:404,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:404,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:406,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:406,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:407,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:407,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:409,1
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:410,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:411,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:411,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:416,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 421
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - IsCanonical
    - S2RegionCoverer::Options::set_level_mod
    - S2RegionCoverer::Options::set_max_cells
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, Normalized)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:429,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:429,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:432,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:432,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:435,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:435,1
    - Dst: S2RegionCoverer::CanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:445,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:446,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:446,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:447,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:447,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:447,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:448,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:448,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:450,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:450,1
    - Dst: S2RegionCoverer::CanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:454,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:455,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:455,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - input_str
    - expected_str
    - ' options'
    argTypes:
    - absl::Span<const string>
    - absl::Span<const string>
    - S2RegionCoverer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 458
    functionName: TestCanonicalizeCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - vector::push_back
    - S2RegionCoverer::CanonicalizeCovering
    - S2CellUnion::cell_ids
    - EXPECT_TRUE
    - push_back
    - S2CellId::FromDebugString
    - S2RegionCoverer::IsCanonical
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: "void TestCanonicalizeCovering(absl::Span<const string> input_str,\n
      \                             absl::Span<const string> expected_str,\n                              const
      S2RegionCoverer::Options& options,\n                              const bool
      test_cell_union = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, UnsortedDuplicateCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:468,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 471
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_level
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, MaxLevelExceeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:475,1
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:476,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::Options::set_level_mod
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, WrongLevelMod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:484,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_level_mod
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, ReplacedByParent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:495,1
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:496,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::Options::set_level_mod
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, DenormalizedCellUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:508,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 512
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_cells
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, MaxCellsMergesSmallest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:518,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 524
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_cells
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, MaxCellsMergesRepeatedly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:529,1
    - Dst: ToToken
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cell_union'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 532
    functionName: ToTokens
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - ToToken
    - vector::push_back
    linkageType: ''
    returnType: vector<string>
    signature: vector<string> ToTokens(const S2CellUnion& cell_union)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:536,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:537,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:539,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:540,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:541,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:542,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:543,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:556,1
    - Dst: ToTokens
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 534
    functionDepth: 7
    functionLinenumber: 534
    functionLinenumberEnd: 557
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::mutable_options
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - S2RegionCoverer::GetCovering
    - ToTokens
    - S2RegionCoverer::S2RegionCoverer
    linkageType: ''
    returnType: void
    signature: void TEST(JavaCcConsistency, CheckCovering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:73,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:74,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:77,1
    - Dst: s2random::CellId
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:82,1
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:83,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:83,1
    - Dst: S2CellId::ToToken
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:83,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:84,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:85,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::ToToken
    - StrCat
    - S2Cell
    - SCOPED_TRACE
    - s2random::CellId
    - S2RegionCoverer::GetCovering
    - EXPECT_EQ
    - vector::size
    - absl::LogInfoStreamer
    - S2RegionCoverer::Options::set_max_cells
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, RandomCells)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:97,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:98,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:98,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:99,1
    - Dst: max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:100,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:100,1
    - Dst: level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:100,1
    - Dst: parent
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:101,1
    - Dst: min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:101,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:103,1
    - Dst: max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:107,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:112,1
    - Dst: Contains
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:112,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:112,1
    - Dst: S2Testing::CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ' options'
    - ' region'
    - ' covering'
    - interior
    argTypes:
    - S2RegionCoverer::Options
    - S2Region
    - vector<S2CellId>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 118
    functionName: CheckCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 8
    functionsReached:
    - level_mod
    - level
    - EXPECT_TRUE
    - size
    - EXPECT_GE
    - S2Testing::CheckCovering
    - max_level
    - EXPECT_LE
    - max_cells
    - S2Cell
    - EXPECT_EQ
    - Contains
    - parent
    - min_level
    linkageType: ''
    returnType: void
    signature: "void CheckCovering(const S2RegionCoverer::Options& options,\n                          const
      S2Region& region,\n                          const vector<S2CellId>& covering,\n
      \                         bool interior)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:122,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:122,1
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:126,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:127,1
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:128,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:128,1
    - Dst: S2RegionCoverer::Options::min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:129,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:130,1
    - Dst: s2random::SkewedInt
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:130,1
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:131,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:131,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:132,1
    - Dst: S2RegionCoverer::Options::max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:132,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:133,1
    - Dst: S2RegionCoverer::Options::min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:133,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:135,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:135,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:138,1
    - Dst: CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:139,1
    - Dst: S2RegionCoverer::GetInteriorCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:140,1
    - Dst: CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:141,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:146,1
    - Dst: S2CellUnion::Denormalize
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:154,1
    - Dst: S2RegionCoverer::Options::min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:154,1
    - Dst: S2RegionCoverer::Options::level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:154,1
    - Dst: CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 157
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2CellUnion::Denormalize
    - S2RegionCoverer::Options::min_level
    - s2random::Cap
    - S2Cell::AverageArea
    - min
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::Options::max_cells
    - EXPECT_EQ
    - S2RegionCoverer::Options::set_max_cells
    - S2RegionCoverer::Options::level_mod
    - CheckCovering
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::GetInteriorCovering
    - S2Testing::MakeTaggedSeedSeq
    - s2random::SkewedInt
    - S2RegionCoverer::Options::set_level_mod
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2RegionCoverer::Options::set_max_level
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, RandomCaps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:160,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:161,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:164,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:164,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:166,1
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:167,1
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:168,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:169,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:169,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:171,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:171,1
    - Dst: S2RegionCoverer::GetSimpleCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:173,1
    - Dst: S2Cap::center
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:173,1
    - Dst: CheckCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 176
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2Cap::center
    - s2random::Cap
    - S2Cell::AverageArea
    - Stats::max
    - S2RegionCoverer::Options::set_max_level
    - min
    - CheckCovering
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::GetSimpleCovering
    - s2random::LogUniform
    - absl::LogInfoStreamer
    - S2RegionCoverer::Options::set_max_cells
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, SimpleCoverings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - WorstCap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: operator<(const WorstCap& o) const
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const WorstCap& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - r
    - ' c'
    - n
    argTypes:
    - double
    - S2Cap
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: WorstCap
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WorstCap(double r, const S2Cap& c, int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SCOPED_TRACE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:189,1
    - Dst: StrCat
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:189,1
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:190,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:191,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:202,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:203,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:218,1
    - Dst: S2Cell::AverageArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:222,1
    - Dst: s2random::Cap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:225,1
    - Dst: S2Cap::GetArea
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:226,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:237,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:241,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:243,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:244,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:246,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:250,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:251,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:252,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:253,1
    - Dst: push
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:254,1
    - Dst: WorstCap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:254,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:255,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:256,1
    - Dst: push
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:257,1
    - Dst: WorstCap
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:257,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:266,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:267,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:269,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:269,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:270,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:271,1
    - Dst: std::sort
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:273,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:273,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:273,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:274,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:274,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:275,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:276,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:278,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:280,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:280,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:281,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:283,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:283,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:285,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:286,1
    - Dst: pop
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:286,1
    - Dst: top
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:287,1
    - Dst: cap::center
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:288,1
    - Dst: absl::PrintF
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:289,1
    - Dst: S2LatLng::lat
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:292,1
    - Dst: S2LatLng::lng
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:292,1
    - Dst: cap::GetRadius
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:293,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 1
    argNames:
    - max_cells
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 188
    functionDepth: 7
    functionLinenumber: 188
    functionLinenumberEnd: 296
    functionName: TestAccuracy
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 1
    functionsReached:
    - WorstCap
    - top
    - end
    - S2RegionCoverer::mutable_options
    - static_cast<double>
    - begin
    - vector::size
    - s2random::Cap
    - pop
    - S2Cell::AverageArea
    - cap::center
    - min
    - absl::PrintF
    - S2Cell
    - empty
    - push
    - S2Cap::GetArea
    - S2LatLng::lng
    - std::sort
    - push_back
    - S2RegionCoverer::GetCovering
    - S2RegionCoverer::S2RegionCoverer
    - max
    - S2Testing::MakeTaggedSeedSeq
    - StrCat
    - S2LatLng::lat
    - size
    - SCOPED_TRACE
    - absl::LogInfoStreamer
    - cap::GetRadius
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: void TestAccuracy(int max_cells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:300,1
    - Dst: absl::GetFlag
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:300,1
    - Dst: absl::SkipEmpty
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:300,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:302,1
    - Dst: absl::SimpleAtoi
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:302,1
    - Dst: TestAccuracy
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 8
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - TestAccuracy
    - absl::SkipEmpty
    - absl::SimpleAtoi
    - ABSL_CHECK
    - absl::GetFlag
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, Accuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:315,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:316,1
    - Dst: S2CellId
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:318,1
    - Dst: s2random::Point
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:318,1
    - Dst: S2CellId::parent
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:319,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:321,1
    - Dst: S2CellUnion
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:321,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:323,1
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:324,1
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:325,1
    - Dst: S2RegionCoverer::GetInteriorCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:328,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:329,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:329,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:331,1
    - Dst: level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 307
    functionDepth: 7
    functionLinenumber: 307
    functionLinenumberEnd: 333
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - s2random::Point
    - level
    - S2CellId
    - S2RegionCoverer::Options::set_max_level
    - S2CellId::parent
    - vector::size
    - EXPECT_EQ
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::GetInteriorCovering
    - absl::LogInfoStreamer
    - S2RegionCoverer::Options::set_max_cells
    - S2Testing::MakeTaggedSeedSeq
    - S2CellUnion
    linkageType: ''
    returnType: void
    signature: void TEST(S2RegionCoverer, InteriorCovering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:338,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:341,1
    - Dst: S2RegionCoverer::GetFastCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:342,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:343,1
    - Dst: vector::size
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2CellId::FromDebugString
    - EXPECT_GE
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::GetFastCovering
    - vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(GetFastCovering, HugeFixedLevelCovering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:350,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:350,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input_str
    - ' options'
    argTypes:
    - absl::Span<const string>
    - S2RegionCoverer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: IsCanonical
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 16
    functionsReached:
    - S2CellId::FromDebugString
    - vector::push_back
    - S2RegionCoverer::IsCanonical
    linkageType: ''
    returnType: bool
    signature: "bool IsCanonical(absl::Span<const string> input_str,\n                 const
      S2RegionCoverer::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:357,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:357,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:357,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:358,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:358,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - IsCanonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, InvalidS2CellId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:362,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:362,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:362,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:363,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:363,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - IsCanonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, Unsorted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:367,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:367,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:367,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:368,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:368,1
    - Dst: S2ShapeNestingQuery::Options::Options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - S2ShapeNestingQuery::Options::Options
    - IsCanonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, Overlapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:373,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:374,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:374,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:375,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - IsCanonical
    - S2RegionCoverer::Options::set_min_level
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, MinLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:380,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:381,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:381,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:382,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_level
    - IsCanonical
    - EXPECT_TRUE
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, MaxLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:387,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:388,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:388,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:389,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsCanonical
    - S2RegionCoverer::Options::set_level_mod
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, LevelMod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:394,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:395,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:395,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:396,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:396,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:397,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_cells
    - IsCanonical
    - EXPECT_TRUE
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, MaxCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:403,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:403,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:404,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:404,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:406,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:406,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:407,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:407,1
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:409,1
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:410,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:411,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:411,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:416,1
    - Dst: IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 421
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - IsCanonical
    - S2RegionCoverer::Options::set_level_mod
    - S2RegionCoverer::Options::set_max_cells
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(IsCanonical, Normalized)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:429,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:429,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:432,1
    - Dst: S2CellId::FromDebugString
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:432,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:435,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:435,1
    - Dst: S2RegionCoverer::CanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:445,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:446,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:446,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:447,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:447,1
    - Dst: S2CellUnion::cell_ids
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:447,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:448,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:448,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:450,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:450,1
    - Dst: S2RegionCoverer::CanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:454,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:455,1
    - Dst: S2RegionCoverer::IsCanonical
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:455,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - input_str
    - expected_str
    - ' options'
    argTypes:
    - absl::Span<const string>
    - absl::Span<const string>
    - S2RegionCoverer::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 458
    functionName: TestCanonicalizeCovering
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 7
    functionsReached:
    - vector::push_back
    - S2RegionCoverer::CanonicalizeCovering
    - S2CellUnion::cell_ids
    - EXPECT_TRUE
    - push_back
    - S2CellId::FromDebugString
    - S2RegionCoverer::IsCanonical
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: "void TestCanonicalizeCovering(absl::Span<const string> input_str,\n
      \                             absl::Span<const string> expected_str,\n                              const
      S2RegionCoverer::Options& options,\n                              const bool
      test_cell_union = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, UnsortedDuplicateCells)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:468,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 471
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_level
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, MaxLevelExceeded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:475,1
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:476,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::Options::set_level_mod
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, WrongLevelMod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:484,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_level_mod
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, ReplacedByParent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_min_level
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:495,1
    - Dst: S2RegionCoverer::Options::set_level_mod
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:496,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_min_level
    - S2RegionCoverer::Options::set_level_mod
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, DenormalizedCellUnion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:508,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 512
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_cells
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, MaxCellsMergesSmallest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2RegionCoverer::Options::set_max_cells
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:518,1
    - Dst: TestCanonicalizeCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 524
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::Options::set_max_cells
    - TestCanonicalizeCovering
    linkageType: ''
    returnType: void
    signature: void TEST(CanonicalizeCovering, MaxCellsMergesRepeatedly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:529,1
    - Dst: ToToken
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cell_union'
    argTypes:
    - S2CellUnion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 532
    functionName: ToTokens
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 1
    functionsReached:
    - ToToken
    - vector::push_back
    linkageType: ''
    returnType: vector<string>
    signature: vector<string> ToTokens(const S2CellUnion& cell_union)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:536,1
    - Dst: S2LatLng::FromDegrees
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:537,1
    - Dst: S2RegionCoverer::S2RegionCoverer
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:539,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:540,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:541,1
    - Dst: S2RegionCoverer::mutable_options
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:542,1
    - Dst: S2RegionCoverer::GetCovering
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:543,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:556,1
    - Dst: ToTokens
      Src: /src/s2geometry/src/s2/s2region_coverer_test.cc:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 534
    functionDepth: 7
    functionLinenumber: 534
    functionLinenumberEnd: 557
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2region_coverer_test.cc
    functionUses: 0
    functionsReached:
    - S2RegionCoverer::mutable_options
    - EXPECT_EQ
    - S2LatLng::FromDegrees
    - S2RegionCoverer::GetCovering
    - ToTokens
    - S2RegionCoverer::S2RegionCoverer
    linkageType: ''
    returnType: void
    signature: void TEST(JavaCcConsistency, CheckCovering)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: FurthestPointTarget::FurthestPointTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FurthestPointTarget(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: FurthestPointTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_brute_force_index_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndex::S2PointIndex
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:52,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:53,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:54,1
    - Dst: S2PointIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:55,1
    - Dst: FurthestPointQuery<int>::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:59,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:60,1
    - Dst: FurthestPointQuery::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:61,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:62,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:63,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:64,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:64,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:65,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:65,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2PointIndex::Add
    - FurthestPointQuery<int>::Options::set_max_results
    - FurthestPointQuery::FindClosestPoints
    - EXPECT_NEAR
    - data
    - auto::size
    - S2PointIndex::S2PointIndex
    - s2textformat::ParsePointsOrDie
    - s2textformat::MakePointOrDie
    - distance
    - EXPECT_EQ
    - point
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestPointQueryBase, MaxDistance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: FurthestPointTarget::FurthestPointTarget
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FurthestPointTarget(const S2Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: FurthestPointTarget::max_brute_force_index_size
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_brute_force_index_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointIndex::S2PointIndex
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:52,1
    - Dst: s2textformat::ParsePointsOrDie
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:53,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:54,1
    - Dst: S2PointIndex::Add
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:55,1
    - Dst: FurthestPointQuery<int>::Options::set_max_results
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:59,1
    - Dst: s2textformat::MakePointOrDie
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:60,1
    - Dst: FurthestPointQuery::FindClosestPoints
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:61,1
    - Dst: ASSERT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:62,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:63,1
    - Dst: point
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:64,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:64,1
    - Dst: EXPECT_NEAR
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:65,1
    - Dst: S1ChordAngle
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:65,1
    - Dst: distance
      Src: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - S2PointIndex::Add
    - FurthestPointQuery<int>::Options::set_max_results
    - FurthestPointQuery::FindClosestPoints
    - EXPECT_NEAR
    - data
    - auto::size
    - S2PointIndex::S2PointIndex
    - s2textformat::ParsePointsOrDie
    - s2textformat::MakePointOrDie
    - distance
    - EXPECT_EQ
    - point
    - S1ChordAngle
    linkageType: ''
    returnType: void
    signature: void TEST(S2ClosestPointQueryBase, MaxDistance)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:43,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:44,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:45,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: S2::GetPerimeter
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 22
    functionsReached:
    - S1Angle
    - S1Angle::Zero
    - S2PointLoopSpan::size
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetPerimeter(S2PointLoopSpan loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:52,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:53,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: S2::GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 29
    functionsReached:
    - ABSL_DCHECK_LE
    - fabs
    - S2::GetSignedArea
    linkageType: ''
    returnType: double
    signature: double GetArea(S2PointLoopSpan loop)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetSurfaceIntegralKahan
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:125,1
    - Dst: S2::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:126,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:130,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:135,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:136,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:138,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:141,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 149
    functionName: S2::GetSignedArea
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 7
    functionsReached:
    - S2::GetCurvature
    - fabs
    - S2::GetCurvatureMaxError
    - S2CellId::range_min
    - remainder
    - S2::GetSurfaceIntegralKahan
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double GetSignedArea(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: S2::GetApproxArea
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 10
    functionsReached:
    - S2::GetCurvature
    linkageType: ''
    returnType: double
    signature: double GetApproxArea(S2PointLoopSpan loop)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:158,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:159,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:159,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:164,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:165,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:169,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:169,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:171,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:176,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:178,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:178,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:180,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:187,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:187,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:199,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:200,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:203,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:203,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:203,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - loop
    - new_vertices
    argTypes:
    - S2PointLoopSpan
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 204
    functionName: S2::PruneDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 2
    functionsReached:
    - reserve
    - S2PointLoopSpan::size
    - end
    - size
    - S2PointLoopSpan
    - data
    - clear
    - back
    - push_back
    - empty
    - pop_back
    linkageType: ''
    returnType: S2PointLoopSpan
    signature: "S2PointLoopSpan PruneDegeneracies(S2PointLoopSpan loop,\n                                  vector<S2Point>*
      new_vertices)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::empty
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:208,1
    - Dst: S2::PruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:212,1
    - Dst: S2PointLoopSpan::empty
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:215,1
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:228,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:229,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:230,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:235,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:243,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 244
    functionName: S2::GetCurvature
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 9
    functionsReached:
    - S2PointLoopSpan::empty
    - S2PointLoopSpan::size
    - S2::GetCanonicalLoopOrder
    - S2::TurnAngle
    - min
    - S2::PruneDegeneracies
    - max
    linkageType: ''
    returnType: double
    signature: double GetCurvature(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 264
    functionName: S2::GetCurvatureMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 6
    functionsReached:
    - S2PointLoopSpan::size
    linkageType: ''
    returnType: double
    signature: double GetCurvatureMaxError(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetSurfaceIntegral
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: S2::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 24
    functionsReached:
    - S2::GetSurfaceIntegral
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetCentroid(S2PointLoopSpan loop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:280,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - order1
    - order2
    - loop
    argTypes:
    - LoopOrder
    - LoopOrder
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: S2::IsOrderLess
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 0
    functionsReached:
    - S2PointLoopSpan::size
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: bool
    signature: "bool IsOrderLess(LoopOrder order1, LoopOrder order2,\n                               S2PointLoopSpan
      loop)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:306,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:307,1
    - Dst: absl::InlinedVector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:310,1
    - Dst: absl::InlinedVector::clear
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:313,1
    - Dst: absl::InlinedVector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:314,1
    - Dst: S2::IsOrderLess
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:321,1
    - Dst: S2::IsOrderLess
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 325
    functionName: S2::GetCanonicalLoopOrder
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 6
    functionsReached:
    - S2PointLoopSpan::size
    - absl::InlinedVector::push_back
    - S2::LoopOrder
    - S2::IsOrderLess
    - absl::InlinedVector::clear
    linkageType: ''
    returnType: LoopOrder
    signature: LoopOrder GetCanonicalLoopOrder(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:333,1
    - Dst: S2::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: S2::IsNormalized
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 3
    functionsReached:
    - S2::GetCurvature
    - S2::GetCurvatureMaxError
    linkageType: ''
    returnType: bool
    signature: bool IsNormalized(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - order
    argTypes:
    - std::ostream
    - LoopOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: '& operator<<(std::ostream& os, LoopOrder order)'
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, LoopOrder order)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S1Angle::Zero
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:43,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:44,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:45,1
    - Dst: S1Angle
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: S2::GetPerimeter
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 22
    functionsReached:
    - S1Angle
    - S1Angle::Zero
    - S2PointLoopSpan::size
    linkageType: ''
    returnType: S1Angle
    signature: S1Angle GetPerimeter(S2PointLoopSpan loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetSignedArea
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:52,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:53,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: S2::GetArea
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 29
    functionsReached:
    - ABSL_DCHECK_LE
    - fabs
    - S2::GetSignedArea
    linkageType: ''
    returnType: double
    signature: double GetArea(S2PointLoopSpan loop)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetSurfaceIntegralKahan
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:125,1
    - Dst: S2::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:126,1
    - Dst: remainder
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:130,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:135,1
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:136,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:138,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:141,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 149
    functionName: S2::GetSignedArea
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 8
    functionsReached:
    - S2::GetCurvature
    - fabs
    - S2::GetCurvatureMaxError
    - S2CellId::range_min
    - remainder
    - S2::GetSurfaceIntegralKahan
    - ABSL_DCHECK
    linkageType: ''
    returnType: double
    signature: double GetSignedArea(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: S2::GetApproxArea
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 10
    functionsReached:
    - S2::GetCurvature
    linkageType: ''
    returnType: double
    signature: double GetApproxArea(S2PointLoopSpan loop)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:158,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:159,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:159,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:164,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:165,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:169,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:169,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:171,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:176,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:178,1
    - Dst: back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:178,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:180,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:187,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:187,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:199,1
    - Dst: end
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:200,1
    - Dst: S2PointLoopSpan
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:203,1
    - Dst: data
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:203,1
    - Dst: size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:203,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - loop
    - new_vertices
    argTypes:
    - S2PointLoopSpan
    - vector<S2Point>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 204
    functionName: S2::PruneDegeneracies
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 3
    functionsReached:
    - reserve
    - S2PointLoopSpan::size
    - end
    - size
    - S2PointLoopSpan
    - data
    - clear
    - back
    - push_back
    - empty
    - pop_back
    linkageType: ''
    returnType: S2PointLoopSpan
    signature: "S2PointLoopSpan PruneDegeneracies(S2PointLoopSpan loop,\n                                  vector<S2Point>*
      new_vertices)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::empty
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:208,1
    - Dst: S2::PruneDegeneracies
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:212,1
    - Dst: S2PointLoopSpan::empty
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:215,1
    - Dst: S2::GetCanonicalLoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:228,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:229,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:230,1
    - Dst: S2::TurnAngle
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:235,1
    - Dst: max
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:243,1
    - Dst: min
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 244
    functionName: S2::GetCurvature
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 12
    functionsReached:
    - S2PointLoopSpan::empty
    - S2PointLoopSpan::size
    - S2::GetCanonicalLoopOrder
    - S2::TurnAngle
    - min
    - S2::PruneDegeneracies
    - max
    linkageType: ''
    returnType: double
    signature: double GetCurvature(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 264
    functionName: S2::GetCurvatureMaxError
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 8
    functionsReached:
    - S2PointLoopSpan::size
    linkageType: ''
    returnType: double
    signature: double GetCurvatureMaxError(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetSurfaceIntegral
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: S2::GetCentroid
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 24
    functionsReached:
    - S2::GetSurfaceIntegral
    linkageType: ''
    returnType: S2Point
    signature: S2Point GetCentroid(S2PointLoopSpan loop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:280,1
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - order1
    - order2
    - loop
    argTypes:
    - LoopOrder
    - LoopOrder
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: S2::IsOrderLess
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 1
    functionsReached:
    - S2PointLoopSpan::size
    - ABSL_DCHECK_EQ
    linkageType: ''
    returnType: bool
    signature: "bool IsOrderLess(LoopOrder order1, LoopOrder order2,\n                               S2PointLoopSpan
      loop)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2PointLoopSpan::size
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:306,1
    - Dst: S2::LoopOrder
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:307,1
    - Dst: absl::InlinedVector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:310,1
    - Dst: absl::InlinedVector::clear
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:313,1
    - Dst: absl::InlinedVector::push_back
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:314,1
    - Dst: S2::IsOrderLess
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:321,1
    - Dst: S2::IsOrderLess
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 325
    functionName: S2::GetCanonicalLoopOrder
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 7
    functionsReached:
    - S2PointLoopSpan::size
    - absl::InlinedVector::push_back
    - S2::LoopOrder
    - S2::IsOrderLess
    - absl::InlinedVector::clear
    linkageType: ''
    returnType: LoopOrder
    signature: LoopOrder GetCanonicalLoopOrder(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetCurvature
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:333,1
    - Dst: S2::GetCurvatureMaxError
      Src: /src/s2geometry/src/s2/s2loop_measures.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - S2PointLoopSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: S2::IsNormalized
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 3
    functionsReached:
    - S2::GetCurvature
    - S2::GetCurvatureMaxError
    linkageType: ''
    returnType: bool
    signature: bool IsNormalized(S2PointLoopSpan loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - order
    argTypes:
    - std::ostream
    - LoopOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: '& operator<<(std::ostream& os, LoopOrder order)'
    functionSourceFile: /src/s2geometry/src/s2/s2loop_measures.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, LoopOrder order)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:43,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:44,1
    - Dst: FindClosestEdge
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:52,1
    - Dst: S2ClosestEdgeQuery::Result::is_empty
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:53,1
    - Dst: S2ClosestEdgeQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:53,1
    - Dst: S2ClosestEdgeQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:54,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - ' point'
    - ' closest_edge_query'
    - ' max_distance'
    - ' target_point'
    - ' source_point'
    argTypes:
    - S2Point
    - S2ClosestEdgeQuery
    - S1ChordAngle
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 58
    functionName: UpdateMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 10
    functionsReached:
    - s2pred::CompareDistance
    - S2ClosestEdgeQuery::Result::is_empty
    - FindClosestEdge
    - S2ClosestEdgeQuery::Result::distance
    - is_negative
    - Project
    linkageType: ''
    returnType: void
    signature: "void UpdateMaxDistance(const S2Point& point,\n                       S2ClosestEdgeQuery&
      closest_edge_query,\n                       S1ChordAngle& max_distance, S2Point&
      target_point,\n                       S2Point& source_point)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:43,1
    - Dst: s2pred::CompareDistance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:44,1
    - Dst: FindClosestEdge
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:52,1
    - Dst: S2ClosestEdgeQuery::Result::is_empty
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:53,1
    - Dst: S2ClosestEdgeQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:53,1
    - Dst: S2ClosestEdgeQuery::Result::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:54,1
    - Dst: Project
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - ' point'
    - ' closest_edge_query'
    - ' max_distance'
    - ' target_point'
    - ' source_point'
    argTypes:
    - S2Point
    - S2ClosestEdgeQuery
    - S1ChordAngle
    - S2Point
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 58
    functionName: UpdateMaxDistance
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 10
    functionsReached:
    - s2pred::CompareDistance
    - S2ClosestEdgeQuery::Result::is_empty
    - FindClosestEdge
    - S2ClosestEdgeQuery::Result::distance
    - is_negative
    - Project
    linkageType: ''
    returnType: void
    signature: "void UpdateMaxDistance(const S2Point& point,\n                       S2ClosestEdgeQuery&
      closest_edge_query,\n                       S1ChordAngle& max_distance, S2Point&
      target_point,\n                       S2Point& source_point)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2HausdorffDistanceQuery::Init
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - S2HausdorffDistanceQuery::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: S2HausdorffDistanceQuery::S2HausdorffDistanceQuery
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 1
    functionsReached:
    - S2HausdorffDistanceQuery::Init
    linkageType: ''
    returnType: void
    signature: "void S2HausdorffDistanceQuery::S2HausdorffDistanceQuery(\n    const
      S2HausdorffDistanceQuery::Options& options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - S2HausdorffDistanceQuery::Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: S2HausdorffDistanceQuery::Init
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S2HausdorffDistanceQuery::Init(\n    const S2HausdorffDistanceQuery::Options&
      options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2HausdorffDistanceQuery::GetResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:73,1
    - Dst: absl::optional::has_value
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:74,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:74,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - S2ShapeIndex*
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: S2HausdorffDistanceQuery::GetDistance
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 2
    functionsReached:
    - absl::optional::distance
    - absl::optional::has_value
    - S1ChordAngle::Infinity
    - S2HausdorffDistanceQuery::GetResult
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle S2HausdorffDistanceQuery::GetDistance(\n    const S2ShapeIndex*
      target, const S2ShapeIndex* source) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:80,1
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:84,1
    - Dst: Result
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - S2ShapeIndex*
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: S2HausdorffDistanceQuery::GetResult
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 4
    functionsReached:
    - Result
    - S2HausdorffDistanceQuery::GetDirectedResult
    linkageType: ''
    returnType: absl::optional<Result>
    signature: "absl::optional<Result> S2HausdorffDistanceQuery::GetResult(\n    const
      S2ShapeIndex* target, const S2ShapeIndex* source) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2HausdorffDistanceQuery::GetDirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:96,1
    - Dst: absl::optional::has_value
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:97,1
    - Dst: absl::optional::distance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:97,1
    - Dst: S1ChordAngle::Infinity
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - S2ShapeIndex*
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: S2HausdorffDistanceQuery::GetDirectedDistance
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 1
    functionsReached:
    - absl::optional::distance
    - absl::optional::has_value
    - S1ChordAngle::Infinity
    - S2HausdorffDistanceQuery::GetDirectedResult
    linkageType: ''
    returnType: S1ChordAngle
    signature: "S1ChordAngle S2HausdorffDistanceQuery::GetDirectedDistance(\n    const
      S2ShapeIndex* target, const S2ShapeIndex* source) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:104,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:105,1
    - Dst: include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:106,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:107,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:108,1
    - Dst: chains
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:116,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:117,1
    - Dst: UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:118,1
    - Dst: S1ChordAngle::is_negative
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:124,1
    - Dst: DirectedResult
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - S2ShapeIndex*
    - S2ShapeIndex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 6
    functionLinenumber: 101
    functionLinenumberEnd: 129
    functionName: S2HausdorffDistanceQuery::GetDirectedResult
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 6
    functionsReached:
    - chains
    - UpdateMaxDistance
    - S1ChordAngle::is_negative
    - DirectedResult
    - S2Point::S2Point
    - S2ClosestEdgeQuery::mutable_options
    - vertices
    - include_interiors
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: absl::optional<DirectedResult>
    signature: "absl::optional<DirectedResult> S2HausdorffDistanceQuery::GetDirectedResult(\n
      \   const S2ShapeIndex* target, const S2ShapeIndex* source) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:135,1
    - Dst: S2ClosestEdgeQuery::mutable_options
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:136,1
    - Dst: include_interiors
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:137,1
    - Dst: S1ChordAngle::Negative
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:138,1
    - Dst: S2Point::S2Point
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:139,1
    - Dst: chains
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:147,1
    - Dst: vertices
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:148,1
    - Dst: UpdateMaxDistance
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:149,1
    - Dst: S1ChordAngle::is_negative
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - target
    - source
    - distance_limit
    argTypes:
    - S2ShapeIndex*
    - S2ShapeIndex*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 131
    functionDepth: 6
    functionLinenumber: 131
    functionLinenumberEnd: 158
    functionName: S2HausdorffDistanceQuery::IsDirectedDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 4
    functionsReached:
    - chains
    - UpdateMaxDistance
    - S1ChordAngle::is_negative
    - S2Point::S2Point
    - S2ClosestEdgeQuery::mutable_options
    - vertices
    - include_interiors
    - S1ChordAngle::Negative
    linkageType: ''
    returnType: bool
    signature: "bool S2HausdorffDistanceQuery::IsDirectedDistanceLess(\n    const
      S2ShapeIndex* target, const S2ShapeIndex* source,\n    S1ChordAngle distance_limit)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:163,1
    - Dst: S2HausdorffDistanceQuery::IsDirectedDistanceLess
      Src: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - target
    - source
    - distance_limit
    argTypes:
    - S2ShapeIndex*
    - S2ShapeIndex*
    - S1ChordAngle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 7
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: S2HausdorffDistanceQuery::IsDistanceLess
    functionSourceFile: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
    functionUses: 4
    functionsReached:
    - S2HausdorffDistanceQuery::IsDirectedDistanceLess
    linkageType: ''
    returnType: bool
    signature: "bool S2HausdorffDistanceQuery::IsDistanceLess(\n    const S2ShapeIndex*
      target, const S2ShapeIndex* source,\n    S1ChordAngle distance_limit) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSizeST
      Src: /src/s2geometry/src/s2/s2r2rect.cc:35,1
    - Dst: S2R2Rect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2r2rect.cc:36,1
    - Dst: id
      Src: /src/s2geometry/src/s2/s2r2rect.cc:36,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: S2R2Rect::FromCell
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 1
    functionsReached:
    - id
    - S2R2Rect::FromCenterSize
    - GetSizeST
    - R2Point
    linkageType: ''
    returnType: S2R2Rect
    signature: S2R2Rect S2R2Rect::FromCell(const S2Cell& cell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::GetSizeST
      Src: /src/s2geometry/src/s2/s2r2rect.cc:40,1
    - Dst: S2R2Rect::FromCenterSize
      Src: /src/s2geometry/src/s2/s2r2rect.cc:41,1
    - Dst: S2CellId::GetCenterST
      Src: /src/s2geometry/src/s2/s2r2rect.cc:41,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - S2CellId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: S2R2Rect::FromCellId
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 2
    functionsReached:
    - S2CellId::GetCenterST
    - S2R2Rect::FromCenterSize
    - S2CellId::GetSizeST
    - R2Point
    linkageType: ''
    returnType: S2R2Rect
    signature: S2R2Rect S2R2Rect::FromCellId(S2CellId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::S2R2Rect
      Src: /src/s2geometry/src/s2/s2r2rect.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: S2R2Rect::Clone
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 0
    functionsReached:
    - S2R2Rect::S2R2Rect
    linkageType: ''
    returnType: S2Region
    signature: S2Region * S2R2Rect::Clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2::FaceUVtoXYZ
      Src: /src/s2geometry/src/s2/s2r2rect.cc:49,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2r2rect.cc:49,1
    - Dst: x
      Src: /src/s2geometry/src/s2/s2r2rect.cc:49,1
    - Dst: S2::STtoUV
      Src: /src/s2geometry/src/s2/s2r2rect.cc:49,1
    - Dst: y
      Src: /src/s2geometry/src/s2/s2r2rect.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - R2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: S2R2Rect::ToS2Point
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 3
    functionsReached:
    - x
    - y
    - S2::STtoUV
    - S2::FaceUVtoXYZ
    linkageType: ''
    returnType: S2Point
    signature: S2Point S2R2Rect::ToS2Point(const R2Point& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::is_empty
      Src: /src/s2geometry/src/s2/s2r2rect.cc:53,1
    - Dst: S2Cap::Empty
      Src: /src/s2geometry/src/s2/s2r2rect.cc:53,1
    - Dst: S2Cap::FromPoint
      Src: /src/s2geometry/src/s2/s2r2rect.cc:60,1
    - Dst: S2R2Rect::ToS2Point
      Src: /src/s2geometry/src/s2/s2r2rect.cc:60,1
    - Dst: S2R2Rect::GetCenter
      Src: /src/s2geometry/src/s2/s2r2rect.cc:60,1
    - Dst: S2Cap::AddPoint
      Src: /src/s2geometry/src/s2/s2r2rect.cc:62,1
    - Dst: S2R2Rect::ToS2Point
      Src: /src/s2geometry/src/s2/s2r2rect.cc:62,1
    - Dst: S2R2Rect::GetVertex
      Src: /src/s2geometry/src/s2/s2r2rect.cc:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: S2R2Rect::GetCapBound
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 1
    functionsReached:
    - S2Cap::Empty
    - S2Cap::AddPoint
    - S2R2Rect::is_empty
    - S2Cap::FromPoint
    - S2R2Rect::ToS2Point
    - S2R2Rect::GetVertex
    - S2R2Rect::GetCenter
    linkageType: ''
    returnType: S2Cap
    signature: S2Cap S2R2Rect::GetCapBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::GetCapBound
      Src: /src/s2geometry/src/s2/s2r2rect.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: S2R2Rect::GetRectBound
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 1
    functionsReached:
    - S2R2Rect::GetCapBound
    linkageType: ''
    returnType: S2LatLngRect
    signature: S2LatLngRect S2R2Rect::GetRectBound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2R2Rect::GetCapBound
      Src: /src/s2geometry/src/s2/s2r2rect.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_ids
    argTypes:
    - vector<S2CellId>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: S2R2Rect::GetCellUnionBound
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 0
    functionsReached:
    - S2R2Rect::GetCapBound
    linkageType: ''
    returnType: void
    signature: void S2R2Rect::GetCellUnionBound(vector<S2CellId>* cell_ids) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S2::GetFace
      Src: /src/s2geometry/src/s2/s2r2rect.cc:77,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/s2r2rect.cc:79,1
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect.cc:80,1
    - Dst: R2Point
      Src: /src/s2geometry/src/s2/s2r2rect.cc:80,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2r2rect.cc:80,1
    - Dst: S2::UVtoST
      Src: /src/s2geometry/src/s2/s2r2rect.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: S2R2Rect::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 4
    functionsReached:
    - S2R2Rect::Contains
    - S2::UVtoST
    - S2::ValidFaceXYZtoUV
    - S2::GetFace
    - R2Point
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::Contains(const S2Point& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: face
      Src: /src/s2geometry/src/s2/s2r2rect.cc:84,1
    - Dst: S2R2Rect::Contains
      Src: /src/s2geometry/src/s2/s2r2rect.cc:85,1
    - Dst: S2R2Rect::FromCell
      Src: /src/s2geometry/src/s2/s2r2rect.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: S2R2Rect::Contains
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 5
    functionsReached:
    - face
    - S2R2Rect::Contains
    - S2R2Rect::FromCell
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::Contains(const S2Cell& cell) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: face
      Src: /src/s2geometry/src/s2/s2r2rect.cc:89,1
    - Dst: S2R2Rect::Intersects
      Src: /src/s2geometry/src/s2/s2r2rect.cc:90,1
    - Dst: S2R2Rect::FromCell
      Src: /src/s2geometry/src/s2/s2r2rect.cc:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cell'
    argTypes:
    - S2Cell
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: S2R2Rect::MayIntersect
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 0
    functionsReached:
    - face
    - S2R2Rect::Intersects
    - S2R2Rect::FromCell
    linkageType: ''
    returnType: bool
    signature: bool S2R2Rect::MayIntersect(const S2Cell& cell) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/s2geometry/src/s2/s2r2rect.cc:94,1
    - Dst: hi
      Src: /src/s2geometry/src/s2/s2r2rect.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' r'
    argTypes:
    - std::ostream
    - S2R2Rect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: '& operator<<(std::ostream& os, const S2R2Rect& r)'
    functionSourceFile: /src/s2geometry/src/s2/s2r2rect.cc
    functionUses: 0
    functionsReached:
    - lo
    - hi
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const S2R2Rect& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: internal::IncidentEdgeKey
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncidentEdgeKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: internal::IncidentEdgeKey
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncidentEdgeKey(int shape_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - shape_id
    - vertex
    argTypes:
    - int
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: internal::IncidentEdgeKey
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncidentEdgeKey(int shape_id, S2Point vertex)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - IncidentEdgeKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: operator<(const IncidentEdgeKey& b) const
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const IncidentEdgeKey& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: internal::S2IncidentEdgeTracker::Reset
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: '& IncidentEdges() const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IncidentEdgeSet
    signature: IncidentEdgeSet & IncidentEdges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: internal::IncidentEdgeKey
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncidentEdgeKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: internal::IncidentEdgeKey
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncidentEdgeKey(int shape_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - shape_id
    - vertex
    argTypes:
    - int
    - S2Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: internal::IncidentEdgeKey
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncidentEdgeKey(int shape_id, S2Point vertex)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - IncidentEdgeKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: operator<(const IncidentEdgeKey& b) const
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const IncidentEdgeKey& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: internal::S2IncidentEdgeTracker::Reset
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: '& IncidentEdges() const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IncidentEdgeSet
    signature: IncidentEdgeSet & IncidentEdges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: internal::S2IndexCellData::EdgeAndIdChain
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EdgeAndIdChain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' edge'
    - edge_id
    - chain
    - offset
    argTypes:
    - Edge
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: internal::S2IndexCellData::EdgeAndIdChain
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EdgeAndIdChain(const Edge& edge, int edge_id, int chain, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' edge'
    - edge_id
    - pos
    argTypes:
    - Edge
    - int
    - S2Shape::ChainPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: internal::S2IndexCellData::EdgeAndIdChain
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EdgeAndIdChain(const Edge& edge, int edge_id, S2Shape::ChainPosition
      pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EdgeAndIdChain
    - EdgeAndIdChain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: operator==(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EdgeAndIdChain
    - EdgeAndIdChain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: operator<(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: internal::S2IndexCellData::S2IndexCellData
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2IndexCellData()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal::S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - index
    - id
    - cell
    argTypes:
    - S2ShapeIndex*
    - S2CellId
    - S2ShapeIndexCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: internal::S2IndexCellData::S2IndexCellData
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - internal::S2IndexCellData::LoadCell
    linkageType: ''
    returnType: void
    signature: "void S2IndexCellData(const S2ShapeIndex* index, S2CellId id,\n                  const
      S2ShapeIndexCell* cell)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:119,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: internal::S2IndexCellData::Reset
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - dim
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: internal::S2IndexCellData::dim_wanted
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool dim_wanted(int dim) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - dim
    - wanted
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: internal::S2IndexCellData::set_dim_wanted
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void set_dim_wanted(int dim, bool wanted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: internal::S2IndexCellData::id
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: internal::S2IndexCellData::index
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex * index() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:144,1
    - Dst: load
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:146,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:147,1
    - Dst: store
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:148,1
    - Dst: ABSL_TS_UNCHECKED_READ
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: '& cell() const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - store
    - S2Cell
    - ABSL_TS_UNCHECKED_READ
    - load
    linkageType: ''
    returnType: S2Cell
    signature: S2Cell & cell() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:158,1
    - Dst: load
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:160,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:161,1
    - Dst: store
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:162,1
    - Dst: ABSL_TS_UNCHECKED_READ
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: '& center() const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - store
    - ToPoint
    - ABSL_TS_UNCHECKED_READ
    - load
    linkageType: ''
    returnType: S2Point
    signature: S2Point & center() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal::S2IndexCellData::num_clipped
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: internal::S2IndexCellData::num_clipped
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 1
    functionsReached:
    - internal::S2IndexCellData::num_clipped
    linkageType: ''
    returnType: int
    signature: int num_clipped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shape
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:186,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:186,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' clipped'
    argTypes:
    - S2ClippedShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: '& shape(const S2ClippedShape& clipped) const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - shape_id
    - shape
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape & shape(const S2ClippedShape& clipped) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shape
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:193,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: '& shape(int shape_id) const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - shape
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape & shape(int shape_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal::S2IndexCellData::clipped_shapes
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: internal::S2IndexCellData::clipped_shapes
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 1
    functionsReached:
    - internal::S2IndexCellData::clipped_shapes
    linkageType: ''
    returnType: absl::Span<const S2ClippedShape>
    signature: absl::Span<const S2ClippedShape> clipped_shapes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: internal::S2IndexCellData::edges
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Span<const EdgeAndIdChain>
    signature: absl::Span<const EdgeAndIdChain> edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: internal::S2IndexCellData::EdgeAndIdChain
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EdgeAndIdChain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' edge'
    - edge_id
    - chain
    - offset
    argTypes:
    - Edge
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: internal::S2IndexCellData::EdgeAndIdChain
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EdgeAndIdChain(const Edge& edge, int edge_id, int chain, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' edge'
    - edge_id
    - pos
    argTypes:
    - Edge
    - int
    - S2Shape::ChainPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: internal::S2IndexCellData::EdgeAndIdChain
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EdgeAndIdChain(const Edge& edge, int edge_id, S2Shape::ChainPosition
      pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EdgeAndIdChain
    - EdgeAndIdChain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: operator==(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EdgeAndIdChain
    - EdgeAndIdChain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: operator<(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: internal::S2IndexCellData::S2IndexCellData
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S2IndexCellData()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal::S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - index
    - id
    - cell
    argTypes:
    - S2ShapeIndex*
    - S2CellId
    - S2ShapeIndexCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: internal::S2IndexCellData::S2IndexCellData
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - internal::S2IndexCellData::LoadCell
    linkageType: ''
    returnType: void
    signature: "void S2IndexCellData(const S2ShapeIndex* index, S2CellId id,\n                  const
      S2ShapeIndexCell* cell)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:119,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: internal::S2IndexCellData::Reset
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - dim
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: internal::S2IndexCellData::dim_wanted
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool dim_wanted(int dim) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - dim
    - wanted
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: internal::S2IndexCellData::set_dim_wanted
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void set_dim_wanted(int dim, bool wanted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: internal::S2IndexCellData::id
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2CellId
    signature: S2CellId id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: internal::S2IndexCellData::index
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S2ShapeIndex
    signature: S2ShapeIndex * index() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:144,1
    - Dst: load
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:146,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:147,1
    - Dst: store
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:148,1
    - Dst: ABSL_TS_UNCHECKED_READ
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: '& cell() const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - store
    - S2Cell
    - ABSL_TS_UNCHECKED_READ
    - load
    linkageType: ''
    returnType: S2Cell
    signature: S2Cell & cell() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:158,1
    - Dst: load
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:160,1
    - Dst: ToPoint
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:161,1
    - Dst: store
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:162,1
    - Dst: ABSL_TS_UNCHECKED_READ
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: '& center() const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - store
    - ToPoint
    - ABSL_TS_UNCHECKED_READ
    - load
    linkageType: ''
    returnType: S2Point
    signature: S2Point & center() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal::S2IndexCellData::num_clipped
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: internal::S2IndexCellData::num_clipped
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 2
    functionsReached:
    - internal::S2IndexCellData::num_clipped
    linkageType: ''
    returnType: int
    signature: int num_clipped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shape
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:186,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:186,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' clipped'
    argTypes:
    - S2ClippedShape
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: '& shape(const S2ClippedShape& clipped) const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - shape_id
    - shape
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape & shape(const S2ClippedShape& clipped) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shape
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:193,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: '& shape(int shape_id) const'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_NE
    - shape
    linkageType: ''
    returnType: S2Shape
    signature: S2Shape & shape(int shape_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal::S2IndexCellData::clipped_shapes
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: internal::S2IndexCellData::clipped_shapes
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 2
    functionsReached:
    - internal::S2IndexCellData::clipped_shapes
    linkageType: ''
    returnType: absl::Span<const S2ClippedShape>
    signature: absl::Span<const S2ClippedShape> clipped_shapes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: internal::S2IndexCellData::edges
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Span<const EdgeAndIdChain>
    signature: absl::Span<const EdgeAndIdChain> edges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: internal::S2IncidentEdgeTracker::StartShape
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void S2IncidentEdgeTracker::StartShape(int shape_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:31,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:34,1
    - Dst: IsDegenerate
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:35,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - edge_id
    - ' edge'
    argTypes:
    - int
    - S2Shape::Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: internal::S2IncidentEdgeTracker::AddEdge
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc
    functionUses: 0
    functionsReached:
    - IsDegenerate
    - push_back
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2IncidentEdgeTracker::AddEdge(int edge_id, const S2Shape::Edge&
      edge)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:41,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:52,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:62,1
    - Dst: ABSL_PREDICT_TRUE
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:69,1
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:79,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:80,1
    - Dst: emplace
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:81,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:85,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:85,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 90
    functionName: internal::S2IncidentEdgeTracker::FinishShape
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_TRUE
    - reserve
    - emplace
    - end
    - find
    - size
    - swap
    - insert
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2IncidentEdgeTracker::FinishShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shape_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: internal::S2IncidentEdgeTracker::StartShape
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void S2IncidentEdgeTracker::StartShape(int shape_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:31,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:34,1
    - Dst: IsDegenerate
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:35,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - edge_id
    - ' edge'
    argTypes:
    - int
    - S2Shape::Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: internal::S2IncidentEdgeTracker::AddEdge
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc
    functionUses: 0
    functionsReached:
    - IsDegenerate
    - push_back
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2IncidentEdgeTracker::AddEdge(int edge_id, const S2Shape::Edge&
      edge)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:41,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:52,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:62,1
    - Dst: ABSL_PREDICT_TRUE
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:69,1
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:79,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:80,1
    - Dst: emplace
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:81,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:85,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:85,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 90
    functionName: internal::S2IncidentEdgeTracker::FinishShape
    functionSourceFile: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_TRUE
    - reserve
    - emplace
    - end
    - find
    - size
    - swap
    - insert
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void S2IncidentEdgeTracker::FinishShape()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:44,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:46,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: S2IndexCellData::index
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: NotNull
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    - Dst: S2IndexCellData::num_clipped
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - unique_ptr::get
    - NotNull
    - MutableS2ShapeIndex::Iterator::cell
    - S2IndexCellData::index
    - MutableS2ShapeIndex::Iterator::id
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    - S2IndexCellData::num_clipped
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, Accessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:55,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:60,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:74,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:75,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:76,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:86,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:87,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:88,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: S2IndexCellData::dim_range_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: S2IndexCellData::dim_range_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:96,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:97,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:98,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:107,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:108,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:109,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:118,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:119,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:120,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:129,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:130,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:131,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 137
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - S2IndexCellData::dim_edges
    - S2IndexCellData::dim_range_edges
    - Not
    - S2IndexCellData::set_dim_wanted
    - EXPECT_THAT
    - unique_ptr::get
    - IsEmpty
    - MutableS2ShapeIndex::Iterator::cell
    - MutableS2ShapeIndex::Iterator::id
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, DimensionFilteringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:145,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:148,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:148,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:151,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:152,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:154,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:155,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:155,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:158,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:161,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:161,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:162,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:162,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:166,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:167,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:169,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:169,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:170,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 171
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - auto::done
    - unique_ptr::get
    - ABSL_CHECK
    - auto::Next
    - auto::id
    - auto::iterator
    - Ne
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    - S2IndexCellData::center
    - S2IndexCellData::cell
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, CellAndCenterRecomputed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:44,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:46,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: S2IndexCellData::index
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: NotNull
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    - Dst: S2IndexCellData::num_clipped
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - unique_ptr::get
    - NotNull
    - MutableS2ShapeIndex::Iterator::cell
    - S2IndexCellData::index
    - MutableS2ShapeIndex::Iterator::id
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    - S2IndexCellData::num_clipped
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, Accessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:55,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:60,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:74,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:75,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:76,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:86,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:87,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:88,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: S2IndexCellData::dim_range_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: S2IndexCellData::dim_range_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:96,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:97,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:98,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:107,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:108,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:109,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:118,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:119,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:120,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:129,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:130,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:131,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 137
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - S2IndexCellData::dim_edges
    - S2IndexCellData::dim_range_edges
    - Not
    - S2IndexCellData::set_dim_wanted
    - EXPECT_THAT
    - unique_ptr::get
    - IsEmpty
    - MutableS2ShapeIndex::Iterator::cell
    - MutableS2ShapeIndex::Iterator::id
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, DimensionFilteringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:145,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:148,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:148,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:151,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:152,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:154,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:155,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:155,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:158,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:161,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:161,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:162,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:162,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:166,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:167,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:169,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:169,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:170,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 171
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - auto::done
    - unique_ptr::get
    - ABSL_CHECK
    - auto::Next
    - auto::id
    - auto::iterator
    - Ne
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    - S2IndexCellData::center
    - S2IndexCellData::cell
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, CellAndCenterRecomputed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:44,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:46,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: S2IndexCellData::index
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: NotNull
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    - Dst: S2IndexCellData::num_clipped
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - unique_ptr::get
    - NotNull
    - MutableS2ShapeIndex::Iterator::cell
    - S2IndexCellData::index
    - MutableS2ShapeIndex::Iterator::id
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    - S2IndexCellData::num_clipped
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, Accessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:55,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:60,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:74,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:75,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:76,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:86,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:87,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:88,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: S2IndexCellData::dim_range_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: S2IndexCellData::dim_range_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:96,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:97,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:98,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:107,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:108,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:109,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:118,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:119,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:120,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:129,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:130,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:131,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 137
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - S2IndexCellData::dim_edges
    - S2IndexCellData::dim_range_edges
    - Not
    - S2IndexCellData::set_dim_wanted
    - EXPECT_THAT
    - unique_ptr::get
    - IsEmpty
    - MutableS2ShapeIndex::Iterator::cell
    - MutableS2ShapeIndex::Iterator::id
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, DimensionFilteringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:145,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:148,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:148,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:151,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:152,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:154,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:155,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:155,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:158,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:161,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:161,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:162,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:162,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:166,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:167,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:169,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:169,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:170,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 171
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - auto::done
    - unique_ptr::get
    - ABSL_CHECK
    - auto::Next
    - auto::id
    - auto::iterator
    - Ne
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    - S2IndexCellData::center
    - S2IndexCellData::cell
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, CellAndCenterRecomputed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:44,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:46,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:49,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: S2IndexCellData::index
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: NotNull
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    - Dst: S2IndexCellData::num_clipped
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - unique_ptr::get
    - NotNull
    - MutableS2ShapeIndex::Iterator::cell
    - S2IndexCellData::index
    - MutableS2ShapeIndex::Iterator::id
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    - S2IndexCellData::num_clipped
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, Accessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:55,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:60,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:66,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:67,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:68,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:74,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:75,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:76,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:78,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:80,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:86,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:87,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:88,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:89,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: S2IndexCellData::dim_range_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: S2IndexCellData::dim_range_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:91,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:96,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:97,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:98,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:99,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:100,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:101,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:102,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:107,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:108,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:109,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:110,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:111,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:112,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:113,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:118,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:119,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:120,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:122,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:123,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:124,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:129,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:130,1
    - Dst: S2IndexCellData::set_dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:131,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Iterator::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: MutableS2ShapeIndex::Iterator::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:133,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: S2IndexCellData::dim_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: Not
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    - Dst: IsEmpty
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 137
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - S2IndexCellData::dim_edges
    - S2IndexCellData::dim_range_edges
    - Not
    - S2IndexCellData::set_dim_wanted
    - EXPECT_THAT
    - unique_ptr::get
    - IsEmpty
    - MutableS2ShapeIndex::Iterator::cell
    - MutableS2ShapeIndex::Iterator::id
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, DimensionFilteringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2textformat::MakeIndexOrDie
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:145,1
    - Dst: MakeS2CellRangeIterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:148,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:148,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:150,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:151,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:152,1
    - Dst: auto::Next
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:154,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:155,1
    - Dst: auto::done
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:155,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:157,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:158,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:161,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:161,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:162,1
    - Dst: Ne
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:162,1
    - Dst: S2IndexCellData::LoadCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: unique_ptr::get
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: auto::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: auto::iterator
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:165,1
    - Dst: S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:166,1
    - Dst: S2IndexCellData::cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:167,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:169,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:169,1
    - Dst: EXPECT_THAT
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:170,1
    - Dst: Eq
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 171
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - MakeS2CellRangeIterator
    - EXPECT_THAT
    - auto::done
    - unique_ptr::get
    - ABSL_CHECK
    - auto::Next
    - auto::id
    - auto::iterator
    - Ne
    - s2textformat::MakeIndexOrDie
    - S2IndexCellData::LoadCell
    - S2IndexCellData::center
    - S2IndexCellData::cell
    linkageType: ''
    returnType: void
    signature: void TEST(S2IndexCellData, CellAndCenterRecomputed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: internal::DisjointSet::Size
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int Size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: internal::DisjointSet::Clear
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: internal::DisjointSet::Reserve
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - reserve
    linkageType: ''
    returnType: void
    signature: void Reserve(int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: internal::DisjointSet::Node
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Node(const T& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:88,1
    - Dst: Node
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: internal::DisjointSet<T>::Add
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - emplace
    - Node
    linkageType: ''
    returnType: bool
    signature: bool DisjointSet<T>::Add(const T& val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:94,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:95,1
    - Dst: FindRootImpl
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: internal::DisjointSet<T>::FindRoot
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - end
    - find
    - FindRootImpl
    linkageType: ''
    returnType: std::optional<T>
    signature: std::optional<T> DisjointSet<T>::FindRoot(const T& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:108,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:109,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:109,1
    - Dst: FindRootImpl
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: '& DisjointSet<T>::FindRootImpl(const T& val)'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - end
    - find
    - FindRootImpl
    - ABSL_DCHECK
    linkageType: ''
    returnType: typename DisjointSet<T>::Node
    signature: typename DisjointSet<T>::Node & DisjointSet<T>::FindRootImpl(const
      T& val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:126,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:127,1
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:131,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:132,1
    - Dst: FindRootImpl
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:136,1
    - Dst: FindRootImpl
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: internal::DisjointSet<T>::Union
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - end
    - find
    - FindRootImpl
    linkageType: ''
    returnType: bool
    signature: bool DisjointSet<T>::Union(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: internal::DisjointSet::Size
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int Size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: internal::DisjointSet::Clear
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: internal::DisjointSet::Reserve
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - reserve
    linkageType: ''
    returnType: void
    signature: void Reserve(int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: internal::DisjointSet::Node
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Node(const T& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:88,1
    - Dst: Node
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: internal::DisjointSet<T>::Add
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - emplace
    - Node
    linkageType: ''
    returnType: bool
    signature: bool DisjointSet<T>::Add(const T& val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:94,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:95,1
    - Dst: FindRootImpl
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: internal::DisjointSet<T>::FindRoot
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - end
    - find
    - FindRootImpl
    linkageType: ''
    returnType: std::optional<T>
    signature: std::optional<T> DisjointSet<T>::FindRoot(const T& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:108,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:109,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:109,1
    - Dst: FindRootImpl
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: '& DisjointSet<T>::FindRootImpl(const T& val)'
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - end
    - find
    - FindRootImpl
    - ABSL_DCHECK
    linkageType: ''
    returnType: typename DisjointSet<T>::Node
    signature: typename DisjointSet<T>::Node & DisjointSet<T>::FindRootImpl(const
      T& val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:126,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:127,1
    - Dst: find
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:131,1
    - Dst: end
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:132,1
    - Dst: FindRootImpl
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:136,1
    - Dst: FindRootImpl
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set.h:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: internal::DisjointSet<T>::Union
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    functionUses: 0
    functionsReached:
    - end
    - find
    - FindRootImpl
    linkageType: ''
    returnType: bool
    signature: bool DisjointSet<T>::Union(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, S2PointSetCompiles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:37,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:37,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:38,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:38,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:39,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - DisjointSet::Add
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, InsertMoreThanOnceFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:44,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:45,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:46,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:47,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:47,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:48,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - std::optional::value
    - ABSL_CHECK
    - DisjointSet::FindRoot
    - DisjointSet::Add
    - EXPECT_EQ
    - std::optional::has_value
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, FindRootWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:54,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:54,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:59,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:59,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:60,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:60,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:65,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:66,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:67,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:67,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:69,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:70,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:71,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:71,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:75,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:76,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:77,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:77,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:80,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:80,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:82,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:83,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:84,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Union
    - std::optional::value
    - DisjointSet::FindRoot
    - ABSL_CHECK
    - DisjointSet::Add
    - EXPECT_EQ
    - std::optional::has_value
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, UnionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisjointSet::Reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:90,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:92,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:95,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:95,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:96,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:97,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:101,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:101,1
    - Dst: DisjointSet::Clear
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:103,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Reserve
    - DisjointSet::Union
    - DisjointSet::Clear
    - DisjointSet::Size
    - ABSL_CHECK
    - DisjointSet::Add
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, SizeAndClearWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::State::range
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:107,1
    - Dst: DisjointSet::Reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:110,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:112,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:116,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:117,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:122,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:122,1
    - Dst: benchmark::State::SetItemsProcessed
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:124,1
    - Dst: benchmark::State::iterations
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: internal::BM_FindRoot
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Reserve
    - benchmark::State::SetItemsProcessed
    - DisjointSet::Union
    - DisjointSet::Size
    - DisjointSet::FindRoot
    - DisjointSet::Add
    - benchmark::State::range
    - benchmark::DoNotOptimize
    - benchmark::State::iterations
    linkageType: ''
    returnType: void
    signature: void BM_FindRoot(benchmark::State &state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, S2PointSetCompiles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:37,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:37,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:38,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:38,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:39,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - DisjointSet::Add
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, InsertMoreThanOnceFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:44,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:45,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:46,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:47,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:47,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:48,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - std::optional::value
    - ABSL_CHECK
    - DisjointSet::FindRoot
    - DisjointSet::Add
    - EXPECT_EQ
    - std::optional::has_value
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, FindRootWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:54,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:54,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:59,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:59,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:60,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:60,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:65,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:66,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:67,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:67,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:69,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:70,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:71,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:71,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:75,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:76,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:77,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:77,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:80,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:80,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:82,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:83,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:84,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Union
    - std::optional::value
    - DisjointSet::FindRoot
    - ABSL_CHECK
    - DisjointSet::Add
    - EXPECT_EQ
    - std::optional::has_value
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, UnionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisjointSet::Reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:90,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:92,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:95,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:95,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:96,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:97,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:101,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:101,1
    - Dst: DisjointSet::Clear
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:103,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Reserve
    - DisjointSet::Union
    - DisjointSet::Clear
    - DisjointSet::Size
    - ABSL_CHECK
    - DisjointSet::Add
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, SizeAndClearWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::State::range
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:107,1
    - Dst: DisjointSet::Reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:110,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:112,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:116,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:117,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:122,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:122,1
    - Dst: benchmark::State::SetItemsProcessed
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:124,1
    - Dst: benchmark::State::iterations
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: internal::BM_FindRoot
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Reserve
    - benchmark::State::SetItemsProcessed
    - DisjointSet::Union
    - DisjointSet::Size
    - DisjointSet::FindRoot
    - DisjointSet::Add
    - benchmark::State::range
    - benchmark::DoNotOptimize
    - benchmark::State::iterations
    linkageType: ''
    returnType: void
    signature: void BM_FindRoot(benchmark::State &state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, S2PointSetCompiles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:37,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:37,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:38,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:38,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:39,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - DisjointSet::Add
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, InsertMoreThanOnceFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:44,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:45,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:46,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:47,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:47,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:48,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - std::optional::value
    - ABSL_CHECK
    - DisjointSet::FindRoot
    - DisjointSet::Add
    - EXPECT_EQ
    - std::optional::has_value
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, FindRootWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:54,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:54,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:59,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:59,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:60,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:60,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:65,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:66,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:67,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:67,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:69,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:70,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:71,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:71,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:75,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:76,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:77,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:77,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:80,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:80,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:82,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:83,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:84,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Union
    - std::optional::value
    - DisjointSet::FindRoot
    - ABSL_CHECK
    - DisjointSet::Add
    - EXPECT_EQ
    - std::optional::has_value
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, UnionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisjointSet::Reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:90,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:92,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:95,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:95,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:96,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:97,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:101,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:101,1
    - Dst: DisjointSet::Clear
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:103,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Reserve
    - DisjointSet::Union
    - DisjointSet::Clear
    - DisjointSet::Size
    - ABSL_CHECK
    - DisjointSet::Add
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, SizeAndClearWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::State::range
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:107,1
    - Dst: DisjointSet::Reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:110,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:112,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:116,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:117,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:122,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:122,1
    - Dst: benchmark::State::SetItemsProcessed
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:124,1
    - Dst: benchmark::State::iterations
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: internal::BM_FindRoot
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Reserve
    - benchmark::State::SetItemsProcessed
    - DisjointSet::Union
    - DisjointSet::Size
    - DisjointSet::FindRoot
    - DisjointSet::Add
    - benchmark::State::range
    - benchmark::DoNotOptimize
    - benchmark::State::iterations
    linkageType: ''
    returnType: void
    signature: void BM_FindRoot(benchmark::State &state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, S2PointSetCompiles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:37,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:37,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:38,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:38,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:39,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - DisjointSet::Add
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, InsertMoreThanOnceFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:44,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:45,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:46,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:47,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:47,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:48,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - std::optional::value
    - ABSL_CHECK
    - DisjointSet::FindRoot
    - DisjointSet::Add
    - EXPECT_EQ
    - std::optional::has_value
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, FindRootWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:54,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:54,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:59,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:59,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:60,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:60,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:65,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:66,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:67,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:67,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:69,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:70,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:71,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:71,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:75,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:76,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:77,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:77,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:80,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:80,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:82,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:83,1
    - Dst: std::optional::has_value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:84,1
    - Dst: std::optional::value
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Union
    - std::optional::value
    - DisjointSet::FindRoot
    - ABSL_CHECK
    - DisjointSet::Add
    - EXPECT_EQ
    - std::optional::has_value
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, UnionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisjointSet::Reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:90,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:92,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:95,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:95,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:96,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:97,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:101,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:101,1
    - Dst: DisjointSet::Clear
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:103,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Reserve
    - DisjointSet::Union
    - DisjointSet::Clear
    - DisjointSet::Size
    - ABSL_CHECK
    - DisjointSet::Add
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(DisjointSetTest, SizeAndClearWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::State::range
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:107,1
    - Dst: DisjointSet::Reserve
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:110,1
    - Dst: DisjointSet::Add
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:112,1
    - Dst: DisjointSet::Size
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:116,1
    - Dst: DisjointSet::Union
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:117,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:122,1
    - Dst: DisjointSet::FindRoot
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:122,1
    - Dst: benchmark::State::SetItemsProcessed
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:124,1
    - Dst: benchmark::State::iterations
      Src: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: internal::BM_FindRoot
    functionSourceFile: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
    functionUses: 0
    functionsReached:
    - DisjointSet::Reserve
    - benchmark::State::SetItemsProcessed
    - DisjointSet::Union
    - DisjointSet::Size
    - DisjointSet::FindRoot
    - DisjointSet::Add
    - benchmark::State::range
    - benchmark::DoNotOptimize
    - benchmark::State::iterations
    linkageType: ''
    returnType: void
    signature: void BM_FindRoot(benchmark::State &state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:32,1
    - Dst: store
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:46,1
    - Dst: store
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:47,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:52,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:53,1
    - Dst: Region
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:57,1
    - Dst: internal::S2IndexCellData::dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:61,1
    - Dst: internal::S2IndexCellData::dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:66,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:76,1
    - Dst: internal::S2IndexCellData::clipped_shapes
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:78,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:79,1
    - Dst: S2ShapeIndex*::shape
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:80,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:83,1
    - Dst: internal::S2IndexCellData::dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:88,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:94,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:95,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:96,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:102,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:104,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:105,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:109,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:109,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:110,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:114,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - index
    - id
    - cell
    argTypes:
    - S2ShapeIndex*
    - S2CellId
    - S2ShapeIndexCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 116
    functionName: internal::S2IndexCellData::LoadCell
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 2
    functionsReached:
    - emplace_back
    - num_edges
    - size
    - ABSL_DCHECK_NE
    - shape_id
    - chain_edge
    - Region
    - clear
    - internal::S2IndexCellData::clipped_shapes
    - internal::S2IndexCellData::dim_wanted
    - S2ShapeIndex*::shape
    - dimension
    - edge
    - std::make_pair
    - chain_position
    - store
    linkageType: ''
    returnType: void
    signature: "void S2IndexCellData::LoadCell(const S2ShapeIndex* index, S2CellId
      id,\n                               const S2ShapeIndexCell* cell)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:123,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: internal::S2IndexCellData::shape_edges
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - size
    linkageType: ''
    returnType: absl::Span<const S2IndexCellData::EdgeAndIdChain>
    signature: "absl::Span<const S2IndexCellData::EdgeAndIdChain> S2IndexCellData::shape_edges(\n
      \   int id) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:134,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:136,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dim
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: internal::S2IndexCellData::dim_edges
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - size
    - ABSL_DCHECK
    linkageType: ''
    returnType: absl::Span<const S2IndexCellData::EdgeAndIdChain>
    signature: "absl::Span<const S2IndexCellData::EdgeAndIdChain> S2IndexCellData::dim_edges(\n
      \   int dim) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:144,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:145,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:146,1
    - Dst: min
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:151,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:151,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - dim0
    - dim1
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: internal::S2IndexCellData::dim_range_edges
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - size
    - static_cast<size_t>
    - min
    - ABSL_DCHECK
    linkageType: ''
    returnType: absl::Span<const S2IndexCellData::EdgeAndIdChain>
    signature: absl::Span<const S2IndexCellData::EdgeAndIdChain> S2IndexCellData::dim_range_edges(int
      dim0, int dim1) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:165,1
    - Dst: internal::S2IndexCellData::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:165,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:168,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:168,1
    - Dst: internal::S2IndexCellData::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:168,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:169,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:169,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:173,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:173,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:174,1
    - Dst: internal::S2IndexCellData::shape_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:180,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:180,1
    - Dst: internal::S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:190,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:193,1
    - Dst: internal::S2IndexCellData::shape_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:194,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:194,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:195,1
    - Dst: S2::VertexCrossing
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:203,1
    - Dst: S2EdgeCrosser::a
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:203,1
    - Dst: S2EdgeCrosser::b
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:203,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - ' clipped'
    - ' point'
    - model
    argTypes:
    - S2ClippedShape
    - S2Point
    - S2VertexModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: internal::S2IndexCellData::ShapeContains
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Contains
    - S2EdgeCrosser::CrossingSign
    - S2::VertexCrossing
    - S2PaddedCell
    - shape_id
    - S2EdgeCrosser::b
    - shape
    - dimension
    - internal::S2IndexCellData::center
    - S2::ValidFaceXYZtoUV
    - internal::S2IndexCellData::id
    - S2Cell
    - contains_center
    - S2EdgeCrosser::a
    - internal::S2IndexCellData::shape_edges
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool S2IndexCellData::ShapeContains(const S2ClippedShape& clipped,\n
      \                                   const S2Point& point,\n                                    S2VertexModel
      model) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:32,1
    - Dst: store
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:46,1
    - Dst: store
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:47,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:52,1
    - Dst: clear
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:53,1
    - Dst: Region
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:57,1
    - Dst: internal::S2IndexCellData::dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:61,1
    - Dst: internal::S2IndexCellData::dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:66,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:76,1
    - Dst: internal::S2IndexCellData::clipped_shapes
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:78,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:79,1
    - Dst: S2ShapeIndex*::shape
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:80,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:83,1
    - Dst: internal::S2IndexCellData::dim_wanted
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:88,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:94,1
    - Dst: num_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:95,1
    - Dst: edge
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:96,1
    - Dst: chain_position
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:102,1
    - Dst: chain_edge
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:104,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:105,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:109,1
    - Dst: std::make_pair
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:109,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:110,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:114,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - index
    - id
    - cell
    argTypes:
    - S2ShapeIndex*
    - S2CellId
    - S2ShapeIndexCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 116
    functionName: internal::S2IndexCellData::LoadCell
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 2
    functionsReached:
    - emplace_back
    - num_edges
    - size
    - ABSL_DCHECK_NE
    - shape_id
    - chain_edge
    - Region
    - clear
    - internal::S2IndexCellData::clipped_shapes
    - internal::S2IndexCellData::dim_wanted
    - S2ShapeIndex*::shape
    - dimension
    - edge
    - std::make_pair
    - chain_position
    - store
    linkageType: ''
    returnType: void
    signature: "void S2IndexCellData::LoadCell(const S2ShapeIndex* index, S2CellId
      id,\n                               const S2ShapeIndexCell* cell)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:123,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: internal::S2IndexCellData::shape_edges
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - size
    linkageType: ''
    returnType: absl::Span<const S2IndexCellData::EdgeAndIdChain>
    signature: "absl::Span<const S2IndexCellData::EdgeAndIdChain> S2IndexCellData::shape_edges(\n
      \   int id) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:134,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:136,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dim
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: internal::S2IndexCellData::dim_edges
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - size
    - ABSL_DCHECK
    linkageType: ''
    returnType: absl::Span<const S2IndexCellData::EdgeAndIdChain>
    signature: "absl::Span<const S2IndexCellData::EdgeAndIdChain> S2IndexCellData::dim_edges(\n
      \   int dim) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:144,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:145,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:146,1
    - Dst: min
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:151,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:151,1
    - Dst: size
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - dim0
    - dim1
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: internal::S2IndexCellData::dim_range_edges
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - size
    - static_cast<size_t>
    - min
    - ABSL_DCHECK
    linkageType: ''
    returnType: absl::Span<const S2IndexCellData::EdgeAndIdChain>
    signature: absl::Span<const S2IndexCellData::EdgeAndIdChain> S2IndexCellData::dim_range_edges(int
      dim0, int dim1) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S2PaddedCell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:165,1
    - Dst: internal::S2IndexCellData::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:165,1
    - Dst: S2::ValidFaceXYZtoUV
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:168,1
    - Dst: S2Cell
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:168,1
    - Dst: internal::S2IndexCellData::id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:168,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:169,1
    - Dst: R2Rect::Contains
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:169,1
    - Dst: shape
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:173,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:173,1
    - Dst: dimension
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:174,1
    - Dst: internal::S2IndexCellData::shape_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:180,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:180,1
    - Dst: internal::S2IndexCellData::center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:190,1
    - Dst: contains_center
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:193,1
    - Dst: internal::S2IndexCellData::shape_edges
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:194,1
    - Dst: shape_id
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:194,1
    - Dst: S2EdgeCrosser::CrossingSign
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:195,1
    - Dst: S2::VertexCrossing
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:203,1
    - Dst: S2EdgeCrosser::a
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:203,1
    - Dst: S2EdgeCrosser::b
      Src: /src/s2geometry/src/s2/internal/s2index_cell_data.cc:203,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - ' clipped'
    - ' point'
    - model
    argTypes:
    - S2ClippedShape
    - S2Point
    - S2VertexModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: internal::S2IndexCellData::ShapeContains
    functionSourceFile: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
    functionUses: 0
    functionsReached:
    - R2Rect::Contains
    - S2EdgeCrosser::CrossingSign
    - S2::VertexCrossing
    - S2PaddedCell
    - shape_id
    - S2EdgeCrosser::b
    - shape
    - dimension
    - internal::S2IndexCellData::center
    - S2::ValidFaceXYZtoUV
    - internal::S2IndexCellData::id
    - S2Cell
    - contains_center
    - S2EdgeCrosser::a
    - internal::S2IndexCellData::shape_edges
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: "bool S2IndexCellData::ShapeContains(const S2ClippedShape& clipped,\n
      \                                   const S2Point& point,\n                                    S2VertexModel
      model) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: nallocx
    functionSourceFile: /src/s2geometry/src/s2/base/malloc_extension.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_WEAK
    signature: "ABSL_ATTRIBUTE_WEAK nallocx(size_t size,\n                                                           int)
      noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator new
      Src: /src/s2geometry/src/s2/base/malloc_extension.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: __size_returning_new
    functionSourceFile: /src/s2geometry/src/s2/base/malloc_extension.cc
    functionUses: 0
    functionsReached:
    - ::operator new
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_WEAK
    signature: ABSL_ATTRIBUTE_WEAK __size_returning_new(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SpinLock
      Src: /src/s2geometry/src/s2/base/spinlock.h:25,1
    - Dst: exchange
      Src: /src/s2geometry/src/s2/base/spinlock.h:31,1
    - Dst: store
      Src: /src/s2geometry/src/s2/base/spinlock.h:38,1
    - Dst: load
      Src: /src/s2geometry/src/s2/base/spinlock.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 47
    functionName: ABSL_ATTRIBUTE_WARN_UNUSED
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 0
    functionsReached:
    - load
    - store
    - SpinLock
    - exchange
    linkageType: ''
    returnType: class ABSL_LOCKABLE
    signature: class ABSL_LOCKABLE ABSL_ATTRIBUTE_WARN_UNUSED
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: ~SpinLock()
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SpinLock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: SpinLock
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SpinLock(SpinLock const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exchange
      Src: /src/s2geometry/src/s2/base/spinlock.h:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: ABSL_EXCLUSIVE_LOCK_FUNCTION
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 0
    functionsReached:
    - exchange
    linkageType: ''
    returnType: void
    signature: void ABSL_EXCLUSIVE_LOCK_FUNCTION()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/s2geometry/src/s2/base/spinlock.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: ABSL_UNLOCK_FUNCTION
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 0
    functionsReached:
    - store
    linkageType: ''
    returnType: void
    signature: void ABSL_UNLOCK_FUNCTION()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/s2geometry/src/s2/base/spinlock.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: IsHeld
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 1
    functionsReached:
    - load
    linkageType: ''
    returnType: bool
    signature: bool IsHeld() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/s2geometry/src/s2/base/spinlock.h:53,1
    - Dst: unlock
      Src: /src/s2geometry/src/s2/base/spinlock.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: SpinLockHolder
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 0
    functionsReached:
    - unlock
    - lock
    linkageType: ''
    returnType: class [[nodiscard]] ABSL_SCOPED_LOCKABLE
    signature: class [[nodiscard]] ABSL_SCOPED_LOCKABLE SpinLockHolder
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/s2geometry/src/s2/base/spinlock.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: ABSL_EXCLUSIVE_LOCK_FUNCTION
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: void
    signature: void ABSL_EXCLUSIVE_LOCK_FUNCTION(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/s2geometry/src/s2/base/spinlock.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: ABSL_UNLOCK_FUNCTION
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 0
    functionsReached:
    - unlock
    linkageType: ''
    returnType: void
    signature: void ABSL_UNLOCK_FUNCTION()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: SpinLockHolder
    functionSourceFile: /src/s2geometry/src/s2/base/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SpinLockHolder(const SpinLockHolder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/base/casts.h:32,1
    - Dst: dynamic_cast<To>
      Src: /src/s2geometry/src/s2/base/casts.h:32,1
    - Dst: static_cast<To>
      Src: /src/s2geometry/src/s2/base/casts.h:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - From*
    assertStmts:
    - condition: (f == nullptr || dynamic_cast<To>(f) != nullptr)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/s2geometry/src/s2/base/casts.h
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: down_cast
    functionSourceFile: /src/s2geometry/src/s2/base/casts.h
    functionUses: 27
    functionsReached:
    - dynamic_cast<To>
    - static_cast<To>
    - assert
    linkageType: ''
    returnType: To
    signature: To down_cast(From* f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/base/casts.h:55,1
    - Dst: dynamic_cast<std::remove_reference_t<To>*>
      Src: /src/s2geometry/src/s2/base/casts.h:55,1
    - Dst: static_cast<To>
      Src: /src/s2geometry/src/s2/base/casts.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - From
    assertStmts:
    - condition: (dynamic_cast<std::remove_reference_t<To>*>(&f) != nullptr)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/s2geometry/src/s2/base/casts.h
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: down_cast
    functionSourceFile: /src/s2geometry/src/s2/base/casts.h
    functionUses: 27
    functionsReached:
    - dynamic_cast<std::remove_reference_t<To>*>
    - static_cast<To>
    - assert
    linkageType: ''
    returnType: To
    signature: To down_cast(From& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: CycleTimer::CycleTimer
    functionSourceFile: /src/s2geometry/src/s2/base/timer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CycleTimer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CycleTimer::Now
      Src: /src/s2geometry/src/s2/base/timer.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: CycleTimer::Start
    functionSourceFile: /src/s2geometry/src/s2/base/timer.h
    functionUses: 1
    functionsReached:
    - CycleTimer::Now
    linkageType: ''
    returnType: void
    signature: void Start()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<msec>
      Src: /src/s2geometry/src/s2/base/timer.h:32,1
    - Dst: CycleTimer::GetDuration
      Src: /src/s2geometry/src/s2/base/timer.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: CycleTimer::GetInMs
    functionSourceFile: /src/s2geometry/src/s2/base/timer.h
    functionUses: 1
    functionsReached:
    - CycleTimer::GetDuration
    - std::chrono::duration_cast<msec>
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetInMs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_default_ct_policy_eval_ctx_time_is_now
      Src: /src/s2geometry/src/s2/base/timer.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: CycleTimer::Now
    functionSourceFile: /src/s2geometry/src/s2/base/timer.h
    functionUses: 1
    functionsReached:
    - test_default_ct_policy_eval_ctx_time_is_now
    linkageType: ''
    returnType: Clock::time_point
    signature: Clock::time_point Now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CycleTimer::Now
      Src: /src/s2geometry/src/s2/base/timer.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: CycleTimer::GetDuration
    functionSourceFile: /src/s2geometry/src/s2/base/timer.h
    functionUses: 1
    functionsReached:
    - CycleTimer::Now
    linkageType: ''
    returnType: Clock::duration
    signature: Clock::duration GetDuration() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/s2geometry/src/s2/testing/test_main.cc:34,1
    - Dst: strncmp
      Src: /src/s2geometry/src/s2/testing/test_main.cc:37,1
    - Dst: benchmark::MaybeReenterWithoutASLR
      Src: /src/s2geometry/src/s2/testing/test_main.cc:40,1
    - Dst: FuzzerInitialize
      Src: /src/s2geometry/src/s2/testing/test_main.cc:42,1
    - Dst: testing::InitGoogleTest
      Src: /src/s2geometry/src/s2/testing/test_main.cc:43,1
    - Dst: benchmark::GetBenchmarkFilter
      Src: /src/s2geometry/src/s2/testing/test_main.cc:46,1
    - Dst: benchmark::RunSpecifiedBenchmarks
      Src: /src/s2geometry/src/s2/testing/test_main.cc:47,1
    - Dst: std::exit
      Src: /src/s2geometry/src/s2/testing/test_main.cc:48,1
    - Dst: RUN_ALL_TESTS
      Src: /src/s2geometry/src/s2/testing/test_main.cc:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: main
    functionSourceFile: /src/s2geometry/src/s2/testing/test_main.cc
    functionUses: 0
    functionsReached:
    - std::any_of
    - benchmark::MaybeReenterWithoutASLR
    - FuzzerInitialize
    - std::exit
    - testing::InitGoogleTest
    - benchmark::RunSpecifiedBenchmarks
    - benchmark::GetBenchmarkFilter
    - RUN_ALL_TESTS
    - strncmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test_case_name
    - ','
    - test_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: FRIEND_TEST
    functionSourceFile: /src/s2geometry/src/s2/testing/gtest_prod.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FRIEND_TEST(test_case_name, test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:32,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:33,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:34,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Encoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: Encoder::Encoder
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.cc
    functionUses: 117
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: void
    signature: void Encoder::Encoder(Encoder&& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ensure_allowed
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:39,1
    - Dst: DeleteBuffer
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:39,1
    - Dst: capacity
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:39,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:40,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:41,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:42,1
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Encoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: '& Encoder::operator=(Encoder&& other)'
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.cc
    functionUses: 0
    functionsReached:
    - DeleteBuffer
    - capacity
    - std::exchange
    - ensure_allowed
    linkageType: ''
    returnType: Encoder
    signature: Encoder & Encoder::operator=(Encoder&& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:48,1
    - Dst: Encoder::ensure_allowed
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:49,1
    - Dst: Encoder::DeleteBuffer
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:49,1
    - Dst: Encoder::capacity
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Encoder::~Encoder()
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.cc
    functionUses: 0
    functionsReached:
    - Encoder::capacity
    - Encoder::DeleteBuffer
    - ABSL_CHECK_LE
    - Encoder::ensure_allowed
    linkageType: ''
    returnType: void
    signature: void Encoder::~Encoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Length32
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Encoder::varint32_length
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.cc
    functionUses: 0
    functionsReached:
    - Varint::Length32
    linkageType: ''
    returnType: int
    signature: int Encoder::varint32_length(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Length64
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Encoder::varint64_length
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.cc
    functionUses: 0
    functionsReached:
    - Varint::Length64
    linkageType: ''
    returnType: int
    signature: int Encoder::varint64_length(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __size_returning_new
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:57,1
    - Dst: static_cast<unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: Encoder::NewBuffer
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.cc
    functionUses: 0
    functionsReached:
    - __size_returning_new
    - static_cast<unsigned char*>
    linkageType: ''
    returnType: std::pair<unsigned char*, size_t>
    signature: std::pair<unsigned char*, size_t> Encoder::NewBuffer(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Encoder::DeleteBuffer
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.cc
    functionUses: 1
    functionsReached:
    - ::operator delete
    linkageType: ''
    returnType: void
    signature: void Encoder::DeleteBuffer(unsigned char* buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:66,1
    - Dst: Encoder::ensure_allowed
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:66,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:67,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:67,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:68,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:68,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:71,1
    - Dst: Encoder::NewBuffer
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:73,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:73,1
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:76,1
    - Dst: Encoder::DeleteBuffer
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:77,1
    - Dst: Encoder::capacity
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:77,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:84,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - N
    argTypes:
    - size_t
    assertStmts:
    - condition: (length() == 0 || orig_ == underlying_buffer_)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/s2geometry/src/s2/util/coding/coder.cc
    - condition: (avail() < N)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/s2geometry/src/s2/util/coding/coder.cc
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: Encoder::EnsureSlowPath
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.cc
    functionUses: 0
    functionsReached:
    - std::max
    - Encoder::avail
    - Encoder::ensure_allowed
    - Encoder::NewBuffer
    - ABSL_CHECK
    - memcpy
    - Encoder::length
    - Encoder::capacity
    - Encoder::DeleteBuffer
    - assert
    linkageType: ''
    returnType: void
    signature: void Encoder::EnsureSlowPath(size_t N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:88,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:88,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:90,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/util/coding/coder.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - N
    argTypes:
    - size_t
    assertStmts:
    - condition: (length() == N)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/s2geometry/src/s2/util/coding/coder.cc
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: Encoder::Resize
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.cc
    functionUses: 0
    functionsReached:
    - Encoder::length
    - ABSL_CHECK
    - assert
    linkageType: ''
    returnType: void
    signature: void Encoder::Resize(size_t N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Encode32Inline
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sptr
    - v
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Varint::Encode32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - Varint::Encode32Inline
    linkageType: ''
    returnType: char
    signature: char * Varint::Encode32(char* sptr, uint32_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Encode32
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:34,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:37,1
    - Dst: reinterpret_cast<char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:48,1
    - Dst: Varint::Encode32
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:51,1
    - Dst: reinterpret_cast<char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - sptr
    - v
    argTypes:
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: Varint::Encode64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char*>
    - Varint::Encode32
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: char
    signature: char * Varint::Encode64(char* sptr, uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Parse32FallbackInline
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - OUTPUT
    argTypes:
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Varint::Parse32Fallback
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - Varint::Parse32FallbackInline
    linkageType: ''
    returnType: char
    signature: char * Varint::Parse32Fallback(const char* ptr, uint32_t* OUTPUT)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const int8_t*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:75,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:80,1
    - Dst: SHLD_SIGN
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:103,1
    - Dst: SHLD_SIGN
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:107,1
    - Dst: SHLD
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:111,1
    - Dst: SHLD
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:115,1
    - Dst: SHLD
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:119,1
    - Dst: SHLD
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:123,1
    - Dst: SHLD
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:127,1
    - Dst: SHLD
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:131,1
    - Dst: ABSL_PREDICT_TRUE
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:138,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:140,1
    - Dst: DONE
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:149,1
    - Dst: DONE
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:150,1
    - Dst: DONE
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:151,1
    - Dst: DONE
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:152,1
    - Dst: DONE
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:153,1
    - Dst: DONE
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:154,1
    - Dst: DONE
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:155,1
    - Dst: DONE
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:156,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 2
    argNames:
    - p
    - res1
    argTypes:
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 158
    functionName: Varint::Parse64FallbackPair
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_TRUE
    - ABSL_DCHECK_EQ
    - DONE
    - static_cast<uint64_t>
    - SHLD
    - SHLD_SIGN
    - reinterpret_cast<const int8_t*>
    linkageType: ''
    returnType: std::pair<const char*, uint64_t>
    signature: "std::pair<const char*, uint64_t> Varint::Parse64FallbackPair(const
      char* p,\n                                                             int64_t
      res1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: SHLD
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHLD(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: SHLD_SIGN
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHLD_SIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: SHLD_SIGN
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHLD_SIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: DONE
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DONE(n)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:163,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:164,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:190,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:191,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:193,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:196,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:198,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:202,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 2
    argNames:
    - p
    - OUTPUT
    argTypes:
    - char*
    - uint64_t*
    assertStmts:
    - condition: (*ptr >= 128)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/s2geometry/src/s2/util/coding/varint.cc
    - condition: (res2 == 0)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/s2geometry/src/s2/util/coding/varint.cc
    - condition: (res3 == 0)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/s2geometry/src/s2/util/coding/varint.cc
    - condition: (res3 == 0)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/s2geometry/src/s2/util/coding/varint.cc
    constantsTouched: []
    func_position:
      end: 203
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 203
    functionName: Varint::Parse64Fallback
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - assert
    linkageType: ''
    returnType: char
    signature: char * Varint::Parse64Fallback(const char* p, uint64_t* OUTPUT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Skip32BackwardSlow
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:211,1
    - Dst: Varint::Parse32
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - base
    - OUTPUT
    argTypes:
    - char*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: Varint::Parse32BackwardSlow
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - Varint::Skip32BackwardSlow
    - Varint::Parse32
    linkageType: ''
    returnType: char
    signature: "char * Varint::Parse32BackwardSlow(const char* ptr, const char* base,\n
      \                                      uint32_t* OUTPUT)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Skip64BackwardSlow
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:222,1
    - Dst: Varint::Parse64
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - base
    - OUTPUT
    argTypes:
    - char*
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: Varint::Parse64BackwardSlow
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - Varint::Parse64
    - Varint::Skip64BackwardSlow
    linkageType: ''
    returnType: char
    signature: "char * Varint::Parse64BackwardSlow(const char* ptr, const char* base,\n
      \                                      uint64_t* OUTPUT)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Parse64
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:232,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:236,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:237,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:290,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 151
    argCount: 3
    argNames:
    - p
    - l
    - OUTPUT
    argTypes:
    - char*
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 292
    functionName: Varint::Parse64WithLimit
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - Varint::Parse64
    linkageType: ''
    returnType: char
    signature: "char * Varint::Parse64WithLimit(const char* p, const char* l,\n                                    uint64_t*
      OUTPUT)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:295,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:296,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:297,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:306,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - p
    - b
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (ptr >= base)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/s2geometry/src/s2/util/coding/varint.cc
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: Varint::Skip32BackwardSlow
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - assert
    linkageType: ''
    returnType: char
    signature: char * Varint::Skip32BackwardSlow(const char* p, const char* b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:314,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:315,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:316,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:325,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - p
    - b
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (ptr >= base)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/s2geometry/src/s2/util/coding/varint.cc
    constantsTouched: []
    func_position:
      end: 330
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 330
    functionName: Varint::Skip64BackwardSlow
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - assert
    linkageType: ''
    returnType: char
    signature: char * Varint::Skip64BackwardSlow(const char* p, const char* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:333,1
    - Dst: std::string*::resize
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:334,1
    - Dst: Varint::Length32
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:335,1
    - Dst: Varint::Encode32
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - std::string*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: Varint::Append32Slow
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - std::string*::size
    - Varint::Encode32
    - std::string*::resize
    - Varint::Length32
    linkageType: ''
    returnType: void
    signature: void Varint::Append32Slow(std::string* s, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:340,1
    - Dst: std::string*::resize
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:341,1
    - Dst: Varint::Length64
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:342,1
    - Dst: Varint::Encode64
      Src: /src/s2geometry/src/s2/util/coding/varint.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - std::string*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: Varint::Append64Slow
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.cc
    functionUses: 0
    functionsReached:
    - std::string*::size
    - Varint::Length64
    - std::string*::resize
    - Varint::Encode64
    linkageType: ''
    returnType: void
    signature: void Varint::Append64Slow(std::string* s, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/coding/transforms.h:44,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/coding/transforms.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: ZigZagEncode
    functionSourceFile: /src/s2geometry/src/s2/util/coding/transforms.h
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ZigZagEncode(int32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: ZigZagDecode
    functionSourceFile: /src/s2geometry/src/s2/util/coding/transforms.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t ZigZagDecode(uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/coding/transforms.h:54,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/coding/transforms.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: ZigZagEncode64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/transforms.h
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ZigZagEncode64(int64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: ZigZagDecode64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/transforms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t ZigZagDecode64(uint64_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:173,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/coding/varint.h:176,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:184,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - p
    - OUTPUT
    argTypes:
    - char*
    - uint32_t*
    assertStmts:
    - condition: (byte >= 128)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/s2geometry/src/s2/util/coding/varint.h
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: Varint::Parse32FallbackInline
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - assert
    linkageType: ''
    returnType: char
    signature: "char * Varint::Parse32FallbackInline(const char* p,\n                                                 uint32_t*
      OUTPUT)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:189,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:193,1
    - Dst: Varint::Parse32Fallback
      Src: /src/s2geometry/src/s2/util/coding/varint.h:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - OUTPUT
    argTypes:
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: Varint::Parse32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - Varint::Parse32Fallback
    linkageType: ''
    returnType: char
    signature: char * Varint::Parse32(const char* p, uint32_t* OUTPUT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:201,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:205,1
    - Dst: Varint::Parse32FallbackInline
      Src: /src/s2geometry/src/s2/util/coding/varint.h:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - OUTPUT
    argTypes:
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: Varint::Parse32Inline
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - Varint::Parse32FallbackInline
    linkageType: ''
    returnType: char
    signature: char * Varint::Parse32Inline(const char* p, uint32_t* OUTPUT)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:212,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:213,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:214,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:215,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:216,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: Varint::Skip32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: char
    signature: char * Varint::Skip32(const char* p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:225,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:241,1
    - Dst: Varint::Parse32BackwardSlow
      Src: /src/s2geometry/src/s2/util/coding/varint.h:243,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - p
    - base
    - OUTPUT
    argTypes:
    - char*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 245
    functionName: Varint::Parse32Backward
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - Varint::Parse32BackwardSlow
    linkageType: ''
    returnType: char
    signature: "char * Varint::Parse32Backward(const char* p, const char* base,\n
      \                                          uint32_t* OUTPUT)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:249,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:251,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:252,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:253,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:254,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:255,1
    - Dst: Varint::Skip32BackwardSlow
      Src: /src/s2geometry/src/s2/util/coding/varint.h:258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - p
    - base
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: Varint::Skip32Backward
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - Varint::Skip32BackwardSlow
    linkageType: ''
    returnType: char
    signature: char * Varint::Skip32Backward(const char* p, const char* base)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:267,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:268,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:283,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - p
    - l
    - OUTPUT
    argTypes:
    - char*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: Varint::Parse32WithLimit
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: char
    signature: "char * Varint::Parse32WithLimit(const char* p, const char* l,\n                                            uint32_t*
      OUTPUT)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const int8_t*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:288,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:291,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:292,1
    - Dst: Varint::Parse64FallbackPair
      Src: /src/s2geometry/src/s2/util/coding/varint.h:294,1
    - Dst: ABSL_PREDICT_TRUE
      Src: /src/s2geometry/src/s2/util/coding/varint.h:295,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:299,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:303,1
    - Dst: Varint::Parse64Fallback
      Src: /src/s2geometry/src/s2/util/coding/varint.h:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - p
    - OUTPUT
    argTypes:
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 308
    functionName: Varint::Parse64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 2
    functionsReached:
    - reinterpret_cast<const char*>
    - ABSL_PREDICT_TRUE
    - static_cast<uint64_t>
    - Varint::Parse64Fallback
    - Varint::Parse64FallbackPair
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const int8_t*>
    linkageType: ''
    returnType: char
    signature: char * Varint::Parse64(const char* p, uint64_t* OUTPUT)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:311,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:312,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:313,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:314,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:315,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:316,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:317,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:318,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:319,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:320,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:321,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 323
    functionName: Varint::Skip64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: char
    signature: char * Varint::Skip64(const char* p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:329,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:360,1
    - Dst: Varint::Parse64BackwardSlow
      Src: /src/s2geometry/src/s2/util/coding/varint.h:362,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 3
    argNames:
    - p
    - b
    - OUTPUT
    argTypes:
    - char*
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 364
    functionName: Varint::Parse64Backward
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - Varint::Parse64BackwardSlow
    linkageType: ''
    returnType: char
    signature: "char * Varint::Parse64Backward(const char* p, const char* b,\n                                           uint64_t*
      OUTPUT)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:369,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:371,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:372,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:373,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:374,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:375,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:376,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:377,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:378,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:379,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:380,1
    - Dst: Varint::Skip64BackwardSlow
      Src: /src/s2geometry/src/s2/util/coding/varint.h:383,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - p
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 385
    functionName: Varint::Skip64Backward
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - Varint::Skip64BackwardSlow
    linkageType: ''
    returnType: char
    signature: char * Varint::Skip64Backward(const char* p, const char* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/coding/varint.h:402,1
    - Dst: absl::countl_zero
      Src: /src/s2geometry/src/s2/util/coding/varint.h:430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 433
    functionName: Varint::LengthImpl
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - absl::countl_zero
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: int
    signature: int Varint::LengthImpl(T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::LengthImpl
      Src: /src/s2geometry/src/s2/util/coding/varint.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 435
    functionName: Varint::Length32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 2
    functionsReached:
    - Varint::LengthImpl
    linkageType: ''
    returnType: int
    signature: int Varint::Length32(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::LengthImpl
      Src: /src/s2geometry/src/s2/util/coding/varint.h:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 436
    functionName: Varint::Length64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 3
    functionsReached:
    - Varint::LengthImpl
    linkageType: ''
    returnType: int
    signature: int Varint::Length64(uint64_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/coding/varint.h:442,1
    - Dst: std::string*::capacity
      Src: /src/s2geometry/src/s2/util/coding/varint.h:442,1
    - Dst: std::string*::push_back
      Src: /src/s2geometry/src/s2/util/coding/varint.h:443,1
    - Dst: static_cast<unsigned char>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:443,1
    - Dst: Varint::Append32Slow
      Src: /src/s2geometry/src/s2/util/coding/varint.h:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - std::string*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: Varint::Append32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - std::string*::capacity
    - std::string*::push_back
    - std::string*::size
    - Varint::Append32Slow
    - static_cast<unsigned char>
    linkageType: ''
    returnType: void
    signature: void Varint::Append32(std::string* s, uint32_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/coding/varint.h:453,1
    - Dst: std::string*::capacity
      Src: /src/s2geometry/src/s2/util/coding/varint.h:453,1
    - Dst: std::string*::push_back
      Src: /src/s2geometry/src/s2/util/coding/varint.h:454,1
    - Dst: static_cast<unsigned char>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:454,1
    - Dst: Varint::Append64Slow
      Src: /src/s2geometry/src/s2/util/coding/varint.h:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - std::string*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 458
    functionName: Varint::Append64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 1
    functionsReached:
    - std::string*::capacity
    - std::string*::push_back
    - std::string*::size
    - Varint::Append64Slow
    - static_cast<unsigned char>
    linkageType: ''
    returnType: void
    signature: void Varint::Append64(std::string* s, uint64_t value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:462,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:465,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:467,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:468,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:470,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:471,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:472,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:474,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:475,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:476,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:477,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:479,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:480,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:481,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:482,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:483,1
    - Dst: reinterpret_cast<char*>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - sptr
    - v
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 486
    functionName: Varint::Encode32Inline
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - reinterpret_cast<char*>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: char
    signature: char * Varint::Encode32Inline(char* sptr, uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int8_t>
      Src: /src/s2geometry/src/s2/util/coding/varint.h:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - goal
    - out
    argTypes:
    - char*
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 511
    functionName: Varint::FastDecodeDeltas
    functionSourceFile: /src/s2geometry/src/s2/util/coding/varint.h
    functionUses: 0
    functionsReached:
    - static_cast<int8_t>
    linkageType: ''
    returnType: char
    signature: "char * Varint::FastDecodeDeltas(const char* ptr, int64_t goal,\n                                            int64_t*
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: NthDerivativeCoder::n
    functionSourceFile: /src/s2geometry/src/s2/util/coding/nth-derivative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int n() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/util/coding/nth-derivative.h:105,1
    - Dst: NthDerivativeCoder::Reset
      Src: /src/s2geometry/src/s2/util/coding/nth-derivative.h:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: NthDerivativeCoder::NthDerivativeCoder
    functionSourceFile: /src/s2geometry/src/s2/util/coding/nth-derivative.h
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - NthDerivativeCoder::Reset
    linkageType: ''
    returnType: void
    signature: void NthDerivativeCoder::NthDerivativeCoder(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/coding/nth-derivative.h:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - k
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: NthDerivativeCoder::Encode
    functionSourceFile: /src/s2geometry/src/s2/util/coding/nth-derivative.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: int32_t
    signature: int32_t NthDerivativeCoder::Encode(int32_t k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/coding/nth-derivative.h:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - k
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: NthDerivativeCoder::Decode
    functionSourceFile: /src/s2geometry/src/s2/util/coding/nth-derivative.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: int32_t
    signature: int32_t NthDerivativeCoder::Decode(int32_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: NthDerivativeCoder::Reset
    functionSourceFile: /src/s2geometry/src/s2/util/coding/nth-derivative.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NthDerivativeCoder::Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Encoder::Encoder
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 117
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:62,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:62,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: Encoder::put8
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 8
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Encoder::avail
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void put8(unsigned char v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:66,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:66,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Encoder::put16
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Encoder::avail
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void put16(uint16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:70,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:70,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Encoder::put32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 4
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Encoder::avail
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void put32(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:74,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:74,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: Encoder::put64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Encoder::avail
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void put64(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:78,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:78,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - absl::uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Encoder::put128
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Encoder::avail
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void put128(absl::uint128 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:82,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:82,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mem
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Encoder::putn
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Encoder::avail
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void putn(const void* mem, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:88,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:88,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mem
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: Encoder::putcn
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Encoder::avail
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void putcn(const void* mem, int c, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: Encoder::puts
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void puts(const void* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Encoder::puts_without_null
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void puts_without_null(const char* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:110,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:110,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:111,1
    - Dst: absl::bit_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: Encoder::putfloat
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Encoder::avail
    - absl::bit_cast<uint32_t>
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void putfloat(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:114,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:114,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:115,1
    - Dst: absl::bit_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: Encoder::putdouble
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 4
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Encoder::avail
    - absl::bit_cast<uint64_t>
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void putdouble(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:125,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:125,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:125,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:126,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:126,1
    - Dst: Varint::Length32
      Src: /src/s2geometry/src/s2/util/coding/coder.h:126,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: Encoder::put_varint32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::avail
    - static_cast<size_t>
    - ABSL_HARDENING_ASSERT
    - Varint::Length32
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void put_varint32(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:131,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:131,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:131,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:132,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:132,1
    - Dst: Varint::Length32
      Src: /src/s2geometry/src/s2/util/coding/coder.h:132,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: Encoder::put_varint32_inline
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::avail
    - static_cast<size_t>
    - ABSL_HARDENING_ASSERT
    - Varint::Length32
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void put_varint32_inline(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:137,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:137,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:137,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:138,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:138,1
    - Dst: Varint::Length64
      Src: /src/s2geometry/src/s2/util/coding/coder.h:138,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Encoder::put_varint64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::avail
    - static_cast<size_t>
    - Varint::Length64
    - ABSL_HARDENING_ASSERT
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void put_varint64(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Encoder::capacity
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: Encoder::ensure_allowed
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ensure_allowed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: Encoder::base
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 94
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: char
    signature: char * base() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:189,1
    - Dst: static_cast<ptrdiff_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:189,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/util/coding/coder.h:189,1
    - Dst: static_cast<ptrdiff_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:190,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:190,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - N
    argTypes:
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: Encoder::skip
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::avail
    - ABSL_HARDENING_ASSERT
    - Encoder::length
    - Encoder::writer
    - static_cast<ptrdiff_t>
    linkageType: ''
    returnType: char
    signature: char * skip(ptrdiff_t N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:196,1
    - Dst: Encoder::length
      Src: /src/s2geometry/src/s2/util/coding/coder.h:196,1
    - Dst: Encoder::writer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:197,1
    - Dst: static_cast<ptrdiff_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - N
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: Encoder::RemoveLast
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::length
    - static_cast<ptrdiff_t>
    - ABSL_HARDENING_ASSERT
    - Encoder::writer
    linkageType: ''
    returnType: void
    signature: void RemoveLast(size_t N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:213,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:214,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: ~Writer()
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char*>
    - ABSL_DCHECK_LE
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void ~Writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/s2geometry/src/s2/util/coding/coder.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - N
    argTypes:
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: Encoder::skip
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: char
    signature: char * skip(ptrdiff_t N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: Encoder::put8
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put8(unsigned char v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::Store16
      Src: /src/s2geometry/src/s2/util/coding/coder.h:221,1
    - Dst: Encoder::skip
      Src: /src/s2geometry/src/s2/util/coding/coder.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: Encoder::put16
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - LittleEndian::Store16
    - Encoder::skip
    linkageType: ''
    returnType: void
    signature: void put16(uint16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::Store32
      Src: /src/s2geometry/src/s2/util/coding/coder.h:222,1
    - Dst: Encoder::skip
      Src: /src/s2geometry/src/s2/util/coding/coder.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: Encoder::put32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 4
    functionsReached:
    - LittleEndian::Store32
    - Encoder::skip
    linkageType: ''
    returnType: void
    signature: void put32(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::Store64
      Src: /src/s2geometry/src/s2/util/coding/coder.h:223,1
    - Dst: Encoder::skip
      Src: /src/s2geometry/src/s2/util/coding/coder.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: Encoder::put64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - LittleEndian::Store64
    - Encoder::skip
    linkageType: ''
    returnType: void
    signature: void put64(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::Store128
      Src: /src/s2geometry/src/s2/util/coding/coder.h:224,1
    - Dst: Encoder::skip
      Src: /src/s2geometry/src/s2/util/coding/coder.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - absl::uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: Encoder::put128
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - LittleEndian::Store128
    - Encoder::skip
    linkageType: ''
    returnType: void
    signature: void put128(absl::uint128 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/coding/coder.h:225,1
    - Dst: Encoder::skip
      Src: /src/s2geometry/src/s2/util/coding/coder.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: Encoder::putn
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::skip
    - memcpy
    linkageType: ''
    returnType: void
    signature: void putn(const void* src, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:228,1
    - Dst: memccpy
      Src: /src/s2geometry/src/s2/util/coding/coder.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - src
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: Encoder::putcn
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - static_cast<char*>
    - memccpy
    linkageType: ''
    returnType: void
    signature: void putcn(const void* src, int c, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::putcn
      Src: /src/s2geometry/src/s2/util/coding/coder.h:231,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: Encoder::puts
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::avail
    - Encoder::putcn
    linkageType: ''
    returnType: void
    signature: void puts(const void* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: Encoder::puts_no_null
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: void
    signature: void puts_no_null(const char* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Encode32
      Src: /src/s2geometry/src/s2/util/coding/coder.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: Encoder::put_varint32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Varint::Encode32
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: ABSL_ATTRIBUTE_ALWAYS_INLINE put_varint32(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Encode32Inline
      Src: /src/s2geometry/src/s2/util/coding/coder.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: Encoder::put_varint32_inline
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Varint::Encode32Inline
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: ABSL_ATTRIBUTE_ALWAYS_INLINE put_varint32_inline(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Encode64
      Src: /src/s2geometry/src/s2/util/coding/coder.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: Encoder::put_varint64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Varint::Encode64
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: ABSL_ATTRIBUTE_ALWAYS_INLINE put_varint64(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 247
    functionName: Encoder::writer
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: Writer
    signature: Writer writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: Decoder
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/util/coding/coder.h:289,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/util/coding/coder.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buf
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: Decoder
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 13
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    linkageType: ''
    returnType: void
    signature: void Decoder(absl::string_view buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:342,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:343,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - maxn
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: Encoder::Encoder
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 117
    functionsReached:
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: void
    signature: void Encoder::Encoder(void* b, size_t maxn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::ensure_allowed
      Src: /src/s2geometry/src/s2/util/coding/coder.h:347,1
    - Dst: Encoder::DeleteBuffer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:347,1
    - Dst: Encoder::capacity
      Src: /src/s2geometry/src/s2/util/coding/coder.h:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: Encoder::reset
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 1
    functionsReached:
    - Encoder::DeleteBuffer
    - Encoder::capacity
    - Encoder::ensure_allowed
    linkageType: ''
    returnType: void
    signature: void Encoder::reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::ensure_allowed
      Src: /src/s2geometry/src/s2/util/coding/coder.h:353,1
    - Dst: Encoder::DeleteBuffer
      Src: /src/s2geometry/src/s2/util/coding/coder.h:353,1
    - Dst: Encoder::capacity
      Src: /src/s2geometry/src/s2/util/coding/coder.h:353,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - b
    - maxn
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: Encoder::reset
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<unsigned char*>
    - Encoder::DeleteBuffer
    - Encoder::capacity
    - Encoder::ensure_allowed
    linkageType: ''
    returnType: void
    signature: void Encoder::reset(void* b, size_t maxn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: Encoder::clear
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encoder::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/coding/coder.h:364,1
    - Dst: Encoder::ensure_allowed
      Src: /src/s2geometry/src/s2/util/coding/coder.h:364,1
    - Dst: Encoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:365,1
    - Dst: Encoder::EnsureSlowPath
      Src: /src/s2geometry/src/s2/util/coding/coder.h:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - N
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 368
    functionName: Encoder::Ensure
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 8
    functionsReached:
    - Encoder::EnsureSlowPath
    - Encoder::ensure_allowed
    - Encoder::avail
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void Encoder::Ensure(size_t N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:371,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: Encoder::length
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 107
    functionsReached:
    - ABSL_DCHECK_LE
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: size_t
    signature: size_t Encoder::length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: Encoder::avail
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 16
    functionsReached:
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: size_t
    signature: size_t Encoder::avail() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/coding/coder.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - uint8_t**
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: CopyAndAdvance
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void CopyAndAdvance(const uint8_t** src, uint8_t** dst)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_TRUE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:404,1
    - Dst: CopyAndAdvance
      Src: /src/s2geometry/src/s2/util/coding/coder.h:407,1
    - Dst: CopyAndAdvance
      Src: /src/s2geometry/src/s2/util/coding/coder.h:409,1
    - Dst: CopyAndAdvance
      Src: /src/s2geometry/src/s2/util/coding/coder.h:411,1
    - Dst: CopyAndAdvance
      Src: /src/s2geometry/src/s2/util/coding/coder.h:413,1
    - Dst: CopyAndAdvance
      Src: /src/s2geometry/src/s2/util/coding/coder.h:415,1
    - Dst: CopyAndAdvance
      Src: /src/s2geometry/src/s2/util/coding/coder.h:417,1
    - Dst: CopyAndAdvance
      Src: /src/s2geometry/src/s2/util/coding/coder.h:419,1
    - Dst: CopyAndAdvance
      Src: /src/s2geometry/src/s2/util/coding/coder.h:422,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - dec
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 448
    functionName: Encoder::PutVarint64FromDecoderLessCommonSizes
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - CopyAndAdvance
    - ABSL_PREDICT_TRUE
    linkageType: ''
    returnType: bool
    signature: bool Encoder::PutVarint64FromDecoderLessCommonSizes(Decoder* dec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_TRUE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:470,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:471,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:481,1
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/coding/coder.h:484,1
    - Dst: Encoder::PutVarint64FromDecoderLessCommonSizes
      Src: /src/s2geometry/src/s2/util/coding/coder.h:491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - dec
    argTypes:
    - Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 492
    functionName: Encoder::put_varint64_from_decoder
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Encoder::PutVarint64FromDecoderLessCommonSizes
    - ABSL_PREDICT_FALSE
    - ABSL_PREDICT_TRUE
    - memcpy
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE Encoder::put_varint64_from_decoder(\n
      \   Decoder* dec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::reset
      Src: /src/s2geometry/src/s2/util/coding/coder.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - maxn
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: Decoder::Decoder
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 2
    functionsReached:
    - Decoder::reset
    linkageType: ''
    returnType: void
    signature: void Decoder::Decoder(const void* b, size_t maxn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - maxn
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: Decoder::reset
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 6
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: void
    signature: void Decoder::reset(const void* b, size_t maxn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: Decoder::pos
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: size_t
    signature: size_t Decoder::pos() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: Decoder::avail
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: size_t
    signature: size_t Decoder::avail() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/coding/coder.h:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: Decoder::getn
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Decoder::getn(void* dst, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memccpy
      Src: /src/s2geometry/src/s2/util/coding/coder.h:520,1
    - Dst: reinterpret_cast<unsigned char *>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:524,1
    - Dst: reinterpret_cast<unsigned char *>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 526
    functionName: Decoder::getcn
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char *>
    - memccpy
    linkageType: ''
    returnType: void
    signature: void Decoder::getcn(void* dst, int c, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/coding/coder.h:530,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:531,1
    - Dst: reinterpret_cast<char *>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:534,1
    - Dst: Decoder::getcn
      Src: /src/s2geometry/src/s2/util/coding/coder.h:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 536
    functionName: Decoder::gets
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Decoder::getcn
    - reinterpret_cast<char *>
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: void
    signature: void Decoder::gets(void* dst, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:541,1
    - Dst: static_cast<ptrdiff_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:541,1
    - Dst: Decoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:541,1
    - Dst: static_cast<ptrdiff_t>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:542,1
    - Dst: Decoder::pos
      Src: /src/s2geometry/src/s2/util/coding/coder.h:542,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 546
    functionName: Decoder::skip
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 2
    functionsReached:
    - Decoder::avail
    - reinterpret_cast<const char*>
    - ABSL_HARDENING_ASSERT
    - Decoder::pos
    - static_cast<ptrdiff_t>
    linkageType: ''
    returnType: char
    signature: char * Decoder::skip(ptrdiff_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 550
    functionName: Decoder::ptr
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char * Decoder::ptr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/s2geometry/src/s2/util/coding/coder.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - num_decoders
    argTypes:
    - Decoder*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 563
    functionName: DecoderExtensions::FillArray
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - std::memset
    linkageType: ''
    returnType: void
    signature: void DecoderExtensions::FillArray(Decoder* array, int num_decoders)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:566,1
    - Dst: Decoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: Decoder::get8
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 1
    functionsReached:
    - Decoder::avail
    - ABSL_HARDENING_ASSERT
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char Decoder::get8()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:573,1
    - Dst: Decoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:573,1
    - Dst: LittleEndian::Load16
      Src: /src/s2geometry/src/s2/util/coding/coder.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: Decoder::get16
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Decoder::avail
    - ABSL_HARDENING_ASSERT
    - LittleEndian::Load16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Decoder::get16()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:580,1
    - Dst: Decoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:580,1
    - Dst: LittleEndian::Load32
      Src: /src/s2geometry/src/s2/util/coding/coder.h:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: Decoder::get32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Decoder::avail
    - ABSL_HARDENING_ASSERT
    - LittleEndian::Load32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Decoder::get32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:587,1
    - Dst: Decoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:587,1
    - Dst: LittleEndian::Load64
      Src: /src/s2geometry/src/s2/util/coding/coder.h:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: Decoder::get64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Decoder::avail
    - ABSL_HARDENING_ASSERT
    - LittleEndian::Load64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Decoder::get64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/coding/coder.h:594,1
    - Dst: Decoder::avail
      Src: /src/s2geometry/src/s2/util/coding/coder.h:594,1
    - Dst: LittleEndian::Load128
      Src: /src/s2geometry/src/s2/util/coding/coder.h:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 598
    functionName: Decoder::get128
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Decoder::avail
    - ABSL_HARDENING_ASSERT
    - LittleEndian::Load128
    linkageType: ''
    returnType: absl::uint128
    signature: absl::uint128 Decoder::get128()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::bit_cast<float>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:601,1
    - Dst: Decoder::get32
      Src: /src/s2geometry/src/s2/util/coding/coder.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: Decoder::getfloat
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - Decoder::get32
    - absl::bit_cast<float>
    linkageType: ''
    returnType: float
    signature: float Decoder::getfloat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::bit_cast<double>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:605,1
    - Dst: Decoder::get64
      Src: /src/s2geometry/src/s2/util/coding/coder.h:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: Decoder::getdouble
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 0
    functionsReached:
    - absl::bit_cast<double>
    - Decoder::get64
    linkageType: ''
    returnType: double
    signature: double Decoder::getdouble()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Parse32WithLimit
      Src: /src/s2geometry/src/s2/util/coding/coder.h:610,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:610,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:611,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 617
    functionName: Decoder::get_varint32
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 2
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - Varint::Parse32WithLimit
    linkageType: ''
    returnType: bool
    signature: bool Decoder::get_varint32(uint32_t* v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Varint::Parse64WithLimit
      Src: /src/s2geometry/src/s2/util/coding/coder.h:621,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:621,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:622,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/s2geometry/src/s2/util/coding/coder.h:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 628
    functionName: Decoder::get_varint64
    functionSourceFile: /src/s2geometry/src/s2/util/coding/coder.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<const char*>
    - Varint::Parse64WithLimit
    linkageType: ''
    returnType: bool
    signature: bool Decoder::get_varint64(uint64_t* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - map
    - index
    - value
    argTypes:
    - W*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: util::bitmap::SetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetBit(W* map, size_t index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fetch_or
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:69,1
    - Dst: fetch_and
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - map
    - index
    - value
    argTypes:
    - std::atomic<W>*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: util::bitmap::SetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_or
    - fetch_and
    linkageType: ''
    returnType: bool
    signature: bool SetBit(std::atomic<W>* map, size_t index, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: util::bitmap::GetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetBit(const W* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - std::atomic<W>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: util::bitmap::GetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetBit(const std::atomic<W>* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrefetchToLocalCache
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: util::bitmap::PrefetchBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - absl::PrefetchToLocalCache
    linkageType: ''
    returnType: void
    signature: void PrefetchBit(const W* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrefetchToLocalCache
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - std::atomic<W>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: util::bitmap::PrefetchBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - absl::PrefetchToLocalCache
    linkageType: ''
    returnType: void
    signature: void PrefetchBit(std::atomic<W>* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::SetAll
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size, bool fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const bool>::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:144,1
    - Dst: util::bitmap::internal::BasicBitmap::Set
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - values
    argTypes:
    - absl::Span<const bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Set
    - absl::Span<const bool>::size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(const absl::Span<const bool> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BasicBitmap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::bitmap::internal::BasicBitmap::CreateConst
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BasicBitmap
    linkageType: ''
    returnType: BasicBitmap<const W>
    signature: BasicBitmap<const W> CreateConst(const W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: ~BasicBitmap()
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void ~BasicBitmap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: util::bitmap::internal::BasicBitmap::bits
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: util::bitmap::internal::BasicBitmap::array_size
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::RequiredArraySize
    linkageType: ''
    returnType: size_type
    signature: size_type array_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: util::bitmap::internal::BasicBitmap::GetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:198,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:200,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: util::bitmap::internal::BasicBitmap::GetMaskedMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMaskedMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array_index
    - value
    argTypes:
    - size_type
    - Word
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: util::bitmap::internal::BasicBitmap::SetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void SetMapElement(size_type array_index, Word value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Word
    signature: Word HighOrderMapElementMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:221,1
    - Dst: PrefetchBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: util::bitmap::internal::BasicBitmap::Prefetch
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - PrefetchBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Prefetch(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:226,1
    - Dst: GetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: util::bitmap::internal::BasicBitmap::Get
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Get(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountInRange(size_type start, size_type end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: util::bitmap::internal::BasicBitmap::IsAllZeroes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllZeroes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: util::bitmap::internal::BasicBitmap::IsAllOnes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllOnes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextSetBitInVector(const W* words, size_t* bit_index,\n                                     size_t
      bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: util::bitmap::internal::BasicBitmap::FindFirstSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: bool
    signature: bool FindFirstSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextUnsetBitInVector(const W* words, size_t* bit_index,\n
      \                                      size_t bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: util::bitmap::internal::BasicBitmap::FindLastSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindLastSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:413,1
    - Dst: SetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: util::bitmap::internal::BasicBitmap::Set
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - SetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Set(size_type index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:418,1
    - Dst: fetch_xor
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: util::bitmap::internal::BasicBitmap::Toggle
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_xor
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Toggle(size_type index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: util::bitmap::internal::BasicBitmap::SetAll
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - util::bitmap::internal::BasicBitmap::array_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void SetAll(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: util::bitmap::internal::BasicBitmap::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::SetAll
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: util::bitmap::internal::BasicBitmap::Complement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void Complement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: util::bitmap::internal::BasicBitmap::Difference
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void Difference(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: util::bitmap::internal::BasicBitmap::ExclusiveOr
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void ExclusiveOr(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:486,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: util::bitmap::internal::BasicBitmap::IsEqual
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - equal
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const BasicBitmap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:546,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:549,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 553
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - std::string::size
    - util::bitmap::internal::BasicBitmap::ToString
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(int group) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: util::bitmap::internal::BasicBitmap::HashCode
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HashCode() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:563,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:564,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: load
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:572,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:573,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:574,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - ' bitmap'
    argTypes:
    - H
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 579
    functionName: util::bitmap::internal::BasicBitmap::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - load
    - util::bitmap::internal::BasicBitmap::array_size
    - std::move
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - std::accumulate
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H state, const BasicBitmap& bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_bits
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: util::bitmap::internal::BasicBitmap::RequiredArraySize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RequiredArraySize(size_type num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 595
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 602
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 604
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: operator==(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: operator!=(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexRange(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 643
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::begin
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::end
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - Stats::max
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_index_lower_bound
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter LowerBound(size_t bit_index_lower_bound) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitIndexRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: util::bitmap::internal::BasicBitmap::TrueBitIndices
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - BitIndexRange
    linkageType: ''
    returnType: BitIndexRange
    signature: BitIndexRange TrueBitIndices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::Log2
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: util::bitmap::internal::BasicBitmap::Log2
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Log2
    linkageType: ''
    returnType: unsigned
    signature: unsigned Log2(unsigned n, unsigned p = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete[]
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    - Dst: const_cast<std::remove_const_t<W>*>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: util::bitmap::internal::BasicBitmap::DeleteMap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ::operator delete[]
    - const_cast<std::remove_const_t<W>*>
    linkageType: ''
    returnType: void
    signature: void DeleteMap(W* map, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' bitmap'
    argTypes:
    - std::ostream
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: "& operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::SetAll
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size, bool fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const bool>::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:144,1
    - Dst: util::bitmap::internal::BasicBitmap::Set
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - values
    argTypes:
    - absl::Span<const bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Set
    - absl::Span<const bool>::size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(const absl::Span<const bool> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BasicBitmap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::bitmap::internal::BasicBitmap::CreateConst
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BasicBitmap
    linkageType: ''
    returnType: BasicBitmap<const W>
    signature: BasicBitmap<const W> CreateConst(const W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: ~BasicBitmap()
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void ~BasicBitmap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: util::bitmap::internal::BasicBitmap::bits
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: util::bitmap::internal::BasicBitmap::array_size
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 15
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::RequiredArraySize
    linkageType: ''
    returnType: size_type
    signature: size_type array_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: util::bitmap::internal::BasicBitmap::GetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:198,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:200,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: util::bitmap::internal::BasicBitmap::GetMaskedMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMaskedMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array_index
    - value
    argTypes:
    - size_type
    - Word
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: util::bitmap::internal::BasicBitmap::SetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void SetMapElement(size_type array_index, Word value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Word
    signature: Word HighOrderMapElementMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:221,1
    - Dst: PrefetchBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: util::bitmap::internal::BasicBitmap::Prefetch
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - PrefetchBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Prefetch(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:226,1
    - Dst: GetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: util::bitmap::internal::BasicBitmap::Get
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Get(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountInRange(size_type start, size_type end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: util::bitmap::internal::BasicBitmap::IsAllZeroes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllZeroes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: util::bitmap::internal::BasicBitmap::IsAllOnes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllOnes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - FindNextSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextSetBitInVector(const W* words, size_t* bit_index,\n                                     size_t
      bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: util::bitmap::internal::BasicBitmap::FindFirstSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: bool
    signature: bool FindFirstSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextUnsetBitInVector(const W* words, size_t* bit_index,\n
      \                                      size_t bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: util::bitmap::internal::BasicBitmap::FindLastSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindLastSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:413,1
    - Dst: SetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: util::bitmap::internal::BasicBitmap::Set
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - SetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Set(size_type index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:418,1
    - Dst: fetch_xor
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: util::bitmap::internal::BasicBitmap::Toggle
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_xor
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Toggle(size_type index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: util::bitmap::internal::BasicBitmap::SetAll
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - util::bitmap::internal::BasicBitmap::array_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void SetAll(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: util::bitmap::internal::BasicBitmap::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::SetAll
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: util::bitmap::internal::BasicBitmap::Complement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void Complement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: util::bitmap::internal::BasicBitmap::Difference
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void Difference(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: util::bitmap::internal::BasicBitmap::ExclusiveOr
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void ExclusiveOr(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:486,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: util::bitmap::internal::BasicBitmap::IsEqual
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - equal
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const BasicBitmap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:546,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:549,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 553
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - std::string::size
    - util::bitmap::internal::BasicBitmap::ToString
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(int group) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: util::bitmap::internal::BasicBitmap::HashCode
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HashCode() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:563,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:564,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: load
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:572,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:573,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:574,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - ' bitmap'
    argTypes:
    - H
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 579
    functionName: util::bitmap::internal::BasicBitmap::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - load
    - util::bitmap::internal::BasicBitmap::array_size
    - std::move
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - std::accumulate
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H state, const BasicBitmap& bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_bits
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: util::bitmap::internal::BasicBitmap::RequiredArraySize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RequiredArraySize(size_type num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 595
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 602
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 604
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: operator==(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: operator!=(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexRange(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 643
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::begin
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::end
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - Stats::max
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_index_lower_bound
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter LowerBound(size_t bit_index_lower_bound) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitIndexRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: util::bitmap::internal::BasicBitmap::TrueBitIndices
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - BitIndexRange
    linkageType: ''
    returnType: BitIndexRange
    signature: BitIndexRange TrueBitIndices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::Log2
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: util::bitmap::internal::BasicBitmap::Log2
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Log2
    linkageType: ''
    returnType: unsigned
    signature: unsigned Log2(unsigned n, unsigned p = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete[]
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    - Dst: const_cast<std::remove_const_t<W>*>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: util::bitmap::internal::BasicBitmap::DeleteMap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ::operator delete[]
    - const_cast<std::remove_const_t<W>*>
    linkageType: ''
    returnType: void
    signature: void DeleteMap(W* map, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' bitmap'
    argTypes:
    - std::ostream
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: "& operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:778,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:779,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - store
    - W::W
    - array_size
    - std::copy
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(const BasicBitmap& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(BasicBitmap&& src) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:801,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:802,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:803,1
    - Dst: std::min<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: exchange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:808,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:811,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::SetRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 823
    functionName: util::bitmap::internal::BasicBitmap<W>::Resize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - RequiredArraySize
    - std::min<size_t>
    - std::copy
    - exchange
    - util::bitmap::internal::BasicBitmap<W>::SetRange
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Resize(size_type size, bool fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:838,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:839,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 854
    functionName: '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - std::copy
    - store
    - DeleteMap
    linkageType: ''
    returnType: BasicBitmap<W>
    signature: BasicBitmap<W> & BasicBitmap<W>::operator=(const BasicBitmap<W>& src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: util::bitmap::internal::BasicBitmap<W>::TestRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::TestRange(size_type begin, size_type end) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:896,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - array_size
    - HighOrderMapElementMask
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsSubsetOf(const BasicBitmap& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::TestRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:920,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:921,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:922,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' first'
    - ' second'
    argTypes:
    - BasicBitmap<W>
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 942
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - array_size
    - util::bitmap::internal::BasicBitmap<W>::TestRange
    - HighOrderMapElementMask
    linkageType: ''
    returnType: int
    signature: "int BasicBitmap<W>::CompareToHelper(const BasicBitmap<W>& first,\n
      \                                   const BasicBitmap<W>& second)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:947,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareTo
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    linkageType: ''
    returnType: int
    signature: int BasicBitmap<W>::CompareTo(const BasicBitmap<W>& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:957,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:958,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:959,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:966,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:970,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:971,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: util::bitmap::internal::BasicBitmap<W>::Union
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - static_cast<Word>
    - std::transform
    - HighOrderMapElementMask
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Union(const BasicBitmap<W>& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:979,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:980,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:981,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:983,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:988,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 992
    functionName: util::bitmap::internal::BasicBitmap<W>::Intersection
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - std::transform
    - HighOrderMapElementMask
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Intersection(const BasicBitmap<W>& other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1006,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1008,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1011,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - HighOrderMapElementMask
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsIntersectionNonEmpty(const BasicBitmap<W>& other)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1018,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1019,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1029,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1045
    functionName: util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - static_cast<ArithmeticWord>
    - ABSL_CHECK_LE
    - absl::popcount
    linkageType: ''
    returnType: typename BasicBitmap<W>::size_type
    signature: "typename BasicBitmap<W>::size_type BasicBitmap<W>::GetOnesCountInRange(\n
      \   size_type start, size_type end) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1050,1
    - Dst: FindNextSetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1052,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextSetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextSetBitBeforeLimit(size_type* index,\n
      \                                              size_type limit) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1062,1
    - Dst: FindNextUnsetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1064,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextUnsetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextUnsetBitBeforeLimit(size_type* index,\n
      \                                                size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1100,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1116
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextBitInVector(bool complement, const W*
      words,\n                                         size_t* bit_index_inout,\n
      \                                        size_t limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1153
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousBitInVector(bool complement, const
      W* words,\n                                             size_t* bit_index_inout,\n
      \                                            size_t limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1160,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousSetBitBeforeLimit(size_type* index,\n
      \                                                  size_type limit) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1173,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit(size_type* index,\n
      \                                                    size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - begin
    - end
    - value
    argTypes:
    - size_type
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1220
    functionName: util::bitmap::internal::BasicBitmap<W>::SetRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::SetRange(size_type begin, size_type end, bool
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1228,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1229,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1232,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: auto
    signature: auto BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1253,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1254,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitmap
    - start_bit
    argTypes:
    - BasicBitmap*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1259
    functionName: "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n
      \                                          size_type start_bit)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    linkageType: ''
    returnType: void
    signature: "void BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap*
      bitmap,\n                                           size_type start_bit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:778,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:779,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - store
    - W::W
    - array_size
    - std::copy
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(const BasicBitmap& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(BasicBitmap&& src) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:801,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:802,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:803,1
    - Dst: std::min<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: exchange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:808,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:811,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::SetRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 823
    functionName: util::bitmap::internal::BasicBitmap<W>::Resize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - RequiredArraySize
    - std::min<size_t>
    - std::copy
    - exchange
    - util::bitmap::internal::BasicBitmap<W>::SetRange
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Resize(size_type size, bool fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:838,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:839,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 854
    functionName: '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - std::copy
    - store
    - DeleteMap
    linkageType: ''
    returnType: BasicBitmap<W>
    signature: BasicBitmap<W> & BasicBitmap<W>::operator=(const BasicBitmap<W>& src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: util::bitmap::internal::BasicBitmap<W>::TestRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::TestRange(size_type begin, size_type end) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:896,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - array_size
    - HighOrderMapElementMask
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsSubsetOf(const BasicBitmap& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::TestRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:920,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:921,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:922,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' first'
    - ' second'
    argTypes:
    - BasicBitmap<W>
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 942
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 1
    functionsReached:
    - bits
    - array_size
    - util::bitmap::internal::BasicBitmap<W>::TestRange
    - HighOrderMapElementMask
    linkageType: ''
    returnType: int
    signature: "int BasicBitmap<W>::CompareToHelper(const BasicBitmap<W>& first,\n
      \                                   const BasicBitmap<W>& second)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:947,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareTo
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    linkageType: ''
    returnType: int
    signature: int BasicBitmap<W>::CompareTo(const BasicBitmap<W>& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:957,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:958,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:959,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:966,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:970,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:971,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: util::bitmap::internal::BasicBitmap<W>::Union
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - static_cast<Word>
    - std::transform
    - HighOrderMapElementMask
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Union(const BasicBitmap<W>& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:979,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:980,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:981,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:983,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:988,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 992
    functionName: util::bitmap::internal::BasicBitmap<W>::Intersection
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - std::transform
    - HighOrderMapElementMask
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Intersection(const BasicBitmap<W>& other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1006,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1008,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1011,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - HighOrderMapElementMask
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsIntersectionNonEmpty(const BasicBitmap<W>& other)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1018,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1019,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1029,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1045
    functionName: util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - static_cast<ArithmeticWord>
    - ABSL_CHECK_LE
    - absl::popcount
    linkageType: ''
    returnType: typename BasicBitmap<W>::size_type
    signature: "typename BasicBitmap<W>::size_type BasicBitmap<W>::GetOnesCountInRange(\n
      \   size_type start, size_type end) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1050,1
    - Dst: FindNextSetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1052,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextSetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextSetBitBeforeLimit(size_type* index,\n
      \                                              size_type limit) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1062,1
    - Dst: FindNextUnsetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1064,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextUnsetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextUnsetBitBeforeLimit(size_type* index,\n
      \                                                size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1100,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1116
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextBitInVector(bool complement, const W*
      words,\n                                         size_t* bit_index_inout,\n
      \                                        size_t limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1153
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousBitInVector(bool complement, const
      W* words,\n                                             size_t* bit_index_inout,\n
      \                                            size_t limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1160,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousSetBitBeforeLimit(size_type* index,\n
      \                                                  size_type limit) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1173,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit(size_type* index,\n
      \                                                    size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - begin
    - end
    - value
    argTypes:
    - size_type
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1220
    functionName: util::bitmap::internal::BasicBitmap<W>::SetRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::SetRange(size_type begin, size_type end, bool
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1228,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1229,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1232,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: auto
    signature: auto BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1253,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1254,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitmap
    - start_bit
    argTypes:
    - BasicBitmap*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1259
    functionName: "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n
      \                                          size_type start_bit)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    linkageType: ''
    returnType: void
    signature: "void BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap*
      bitmap,\n                                           size_type start_bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - map
    - index
    - value
    argTypes:
    - W*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: util::bitmap::SetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetBit(W* map, size_t index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fetch_or
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:69,1
    - Dst: fetch_and
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - map
    - index
    - value
    argTypes:
    - std::atomic<W>*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: util::bitmap::SetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_or
    - fetch_and
    linkageType: ''
    returnType: bool
    signature: bool SetBit(std::atomic<W>* map, size_t index, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: util::bitmap::GetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetBit(const W* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - std::atomic<W>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: util::bitmap::GetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetBit(const std::atomic<W>* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrefetchToLocalCache
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: util::bitmap::PrefetchBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - absl::PrefetchToLocalCache
    linkageType: ''
    returnType: void
    signature: void PrefetchBit(const W* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrefetchToLocalCache
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - std::atomic<W>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: util::bitmap::PrefetchBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - absl::PrefetchToLocalCache
    linkageType: ''
    returnType: void
    signature: void PrefetchBit(std::atomic<W>* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::SetAll
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size, bool fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const bool>::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:144,1
    - Dst: util::bitmap::internal::BasicBitmap::Set
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - values
    argTypes:
    - absl::Span<const bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Set
    - absl::Span<const bool>::size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(const absl::Span<const bool> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BasicBitmap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::bitmap::internal::BasicBitmap::CreateConst
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BasicBitmap
    linkageType: ''
    returnType: BasicBitmap<const W>
    signature: BasicBitmap<const W> CreateConst(const W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: ~BasicBitmap()
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void ~BasicBitmap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: util::bitmap::internal::BasicBitmap::bits
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: util::bitmap::internal::BasicBitmap::array_size
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 28
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::RequiredArraySize
    linkageType: ''
    returnType: size_type
    signature: size_type array_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: util::bitmap::internal::BasicBitmap::GetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:198,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:200,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: util::bitmap::internal::BasicBitmap::GetMaskedMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMaskedMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array_index
    - value
    argTypes:
    - size_type
    - Word
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: util::bitmap::internal::BasicBitmap::SetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void SetMapElement(size_type array_index, Word value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: Word
    signature: Word HighOrderMapElementMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:221,1
    - Dst: PrefetchBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: util::bitmap::internal::BasicBitmap::Prefetch
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - PrefetchBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Prefetch(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:226,1
    - Dst: GetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: util::bitmap::internal::BasicBitmap::Get
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Get(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountInRange(size_type start, size_type end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: util::bitmap::internal::BasicBitmap::IsAllZeroes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllZeroes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: util::bitmap::internal::BasicBitmap::IsAllOnes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllOnes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - FindNextSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextSetBitInVector(const W* words, size_t* bit_index,\n                                     size_t
      bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: util::bitmap::internal::BasicBitmap::FindFirstSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: bool
    signature: bool FindFirstSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextUnsetBitInVector(const W* words, size_t* bit_index,\n
      \                                      size_t bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: util::bitmap::internal::BasicBitmap::FindLastSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindLastSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:413,1
    - Dst: SetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: util::bitmap::internal::BasicBitmap::Set
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - SetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Set(size_type index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:418,1
    - Dst: fetch_xor
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: util::bitmap::internal::BasicBitmap::Toggle
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_xor
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Toggle(size_type index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: util::bitmap::internal::BasicBitmap::SetAll
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - util::bitmap::internal::BasicBitmap::array_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void SetAll(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: util::bitmap::internal::BasicBitmap::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::SetAll
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: util::bitmap::internal::BasicBitmap::Complement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void Complement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: util::bitmap::internal::BasicBitmap::Difference
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void Difference(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: util::bitmap::internal::BasicBitmap::ExclusiveOr
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void ExclusiveOr(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:486,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: util::bitmap::internal::BasicBitmap::IsEqual
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - equal
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const BasicBitmap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:546,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:549,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 553
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - std::string::size
    - util::bitmap::internal::BasicBitmap::ToString
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(int group) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: util::bitmap::internal::BasicBitmap::HashCode
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HashCode() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:563,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:564,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: load
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:572,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:573,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:574,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - ' bitmap'
    argTypes:
    - H
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 579
    functionName: util::bitmap::internal::BasicBitmap::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - load
    - util::bitmap::internal::BasicBitmap::array_size
    - std::move
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - std::accumulate
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H state, const BasicBitmap& bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_bits
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: util::bitmap::internal::BasicBitmap::RequiredArraySize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RequiredArraySize(size_type num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 595
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 602
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 604
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: operator==(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: operator!=(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexRange(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 643
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::begin
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::end
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - Stats::max
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_index_lower_bound
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter LowerBound(size_t bit_index_lower_bound) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitIndexRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: util::bitmap::internal::BasicBitmap::TrueBitIndices
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - BitIndexRange
    linkageType: ''
    returnType: BitIndexRange
    signature: BitIndexRange TrueBitIndices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::Log2
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: util::bitmap::internal::BasicBitmap::Log2
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Log2
    linkageType: ''
    returnType: unsigned
    signature: unsigned Log2(unsigned n, unsigned p = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete[]
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    - Dst: const_cast<std::remove_const_t<W>*>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: util::bitmap::internal::BasicBitmap::DeleteMap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ::operator delete[]
    - const_cast<std::remove_const_t<W>*>
    linkageType: ''
    returnType: void
    signature: void DeleteMap(W* map, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' bitmap'
    argTypes:
    - std::ostream
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: "& operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::SetAll
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size, bool fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const bool>::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:144,1
    - Dst: util::bitmap::internal::BasicBitmap::Set
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - values
    argTypes:
    - absl::Span<const bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Set
    - absl::Span<const bool>::size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(const absl::Span<const bool> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BasicBitmap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::bitmap::internal::BasicBitmap::CreateConst
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BasicBitmap
    linkageType: ''
    returnType: BasicBitmap<const W>
    signature: BasicBitmap<const W> CreateConst(const W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: ~BasicBitmap()
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void ~BasicBitmap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: util::bitmap::internal::BasicBitmap::bits
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: util::bitmap::internal::BasicBitmap::array_size
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 41
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::RequiredArraySize
    linkageType: ''
    returnType: size_type
    signature: size_type array_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: util::bitmap::internal::BasicBitmap::GetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:198,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:200,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: util::bitmap::internal::BasicBitmap::GetMaskedMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMaskedMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array_index
    - value
    argTypes:
    - size_type
    - Word
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: util::bitmap::internal::BasicBitmap::SetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void SetMapElement(size_type array_index, Word value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: Word
    signature: Word HighOrderMapElementMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:221,1
    - Dst: PrefetchBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: util::bitmap::internal::BasicBitmap::Prefetch
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - PrefetchBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Prefetch(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:226,1
    - Dst: GetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: util::bitmap::internal::BasicBitmap::Get
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Get(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountInRange(size_type start, size_type end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: util::bitmap::internal::BasicBitmap::IsAllZeroes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllZeroes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: util::bitmap::internal::BasicBitmap::IsAllOnes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllOnes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - FindNextSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextSetBitInVector(const W* words, size_t* bit_index,\n                                     size_t
      bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: util::bitmap::internal::BasicBitmap::FindFirstSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: bool
    signature: bool FindFirstSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextUnsetBitInVector(const W* words, size_t* bit_index,\n
      \                                      size_t bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: util::bitmap::internal::BasicBitmap::FindLastSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindLastSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:413,1
    - Dst: SetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: util::bitmap::internal::BasicBitmap::Set
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - SetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Set(size_type index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:418,1
    - Dst: fetch_xor
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: util::bitmap::internal::BasicBitmap::Toggle
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_xor
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Toggle(size_type index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: util::bitmap::internal::BasicBitmap::SetAll
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - util::bitmap::internal::BasicBitmap::array_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void SetAll(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: util::bitmap::internal::BasicBitmap::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::SetAll
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: util::bitmap::internal::BasicBitmap::Complement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void Complement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: util::bitmap::internal::BasicBitmap::Difference
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void Difference(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: util::bitmap::internal::BasicBitmap::ExclusiveOr
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void ExclusiveOr(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:486,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: util::bitmap::internal::BasicBitmap::IsEqual
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - equal
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const BasicBitmap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:546,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:549,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 553
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - std::string::size
    - util::bitmap::internal::BasicBitmap::ToString
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(int group) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: util::bitmap::internal::BasicBitmap::HashCode
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HashCode() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:563,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:564,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: load
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:572,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:573,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:574,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - ' bitmap'
    argTypes:
    - H
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 579
    functionName: util::bitmap::internal::BasicBitmap::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - load
    - util::bitmap::internal::BasicBitmap::array_size
    - std::move
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - std::accumulate
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H state, const BasicBitmap& bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_bits
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: util::bitmap::internal::BasicBitmap::RequiredArraySize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RequiredArraySize(size_type num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 595
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 602
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 604
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: operator==(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: operator!=(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexRange(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 643
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::begin
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::end
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - Stats::max
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_index_lower_bound
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter LowerBound(size_t bit_index_lower_bound) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitIndexRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: util::bitmap::internal::BasicBitmap::TrueBitIndices
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - BitIndexRange
    linkageType: ''
    returnType: BitIndexRange
    signature: BitIndexRange TrueBitIndices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::Log2
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: util::bitmap::internal::BasicBitmap::Log2
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Log2
    linkageType: ''
    returnType: unsigned
    signature: unsigned Log2(unsigned n, unsigned p = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete[]
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    - Dst: const_cast<std::remove_const_t<W>*>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: util::bitmap::internal::BasicBitmap::DeleteMap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ::operator delete[]
    - const_cast<std::remove_const_t<W>*>
    linkageType: ''
    returnType: void
    signature: void DeleteMap(W* map, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' bitmap'
    argTypes:
    - std::ostream
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: "& operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:778,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:779,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - store
    - W::W
    - array_size
    - std::copy
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(const BasicBitmap& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(BasicBitmap&& src) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:801,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:802,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:803,1
    - Dst: std::min<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: exchange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:808,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:811,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::SetRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 823
    functionName: util::bitmap::internal::BasicBitmap<W>::Resize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - RequiredArraySize
    - std::min<size_t>
    - std::copy
    - exchange
    - util::bitmap::internal::BasicBitmap<W>::SetRange
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Resize(size_type size, bool fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:838,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:839,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 854
    functionName: '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - std::copy
    - store
    - DeleteMap
    linkageType: ''
    returnType: BasicBitmap<W>
    signature: BasicBitmap<W> & BasicBitmap<W>::operator=(const BasicBitmap<W>& src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: util::bitmap::internal::BasicBitmap<W>::TestRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::TestRange(size_type begin, size_type end) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:896,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - array_size
    - HighOrderMapElementMask
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsSubsetOf(const BasicBitmap& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::TestRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:920,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:921,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:922,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' first'
    - ' second'
    argTypes:
    - BasicBitmap<W>
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 942
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 2
    functionsReached:
    - bits
    - array_size
    - util::bitmap::internal::BasicBitmap<W>::TestRange
    - HighOrderMapElementMask
    linkageType: ''
    returnType: int
    signature: "int BasicBitmap<W>::CompareToHelper(const BasicBitmap<W>& first,\n
      \                                   const BasicBitmap<W>& second)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:947,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareTo
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    linkageType: ''
    returnType: int
    signature: int BasicBitmap<W>::CompareTo(const BasicBitmap<W>& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:957,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:958,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:959,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:966,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:970,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:971,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: util::bitmap::internal::BasicBitmap<W>::Union
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - static_cast<Word>
    - std::transform
    - HighOrderMapElementMask
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Union(const BasicBitmap<W>& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:979,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:980,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:981,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:983,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:988,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 992
    functionName: util::bitmap::internal::BasicBitmap<W>::Intersection
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - std::transform
    - HighOrderMapElementMask
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Intersection(const BasicBitmap<W>& other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1006,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1008,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1011,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - HighOrderMapElementMask
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsIntersectionNonEmpty(const BasicBitmap<W>& other)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1018,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1019,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1029,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1045
    functionName: util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - static_cast<ArithmeticWord>
    - ABSL_CHECK_LE
    - absl::popcount
    linkageType: ''
    returnType: typename BasicBitmap<W>::size_type
    signature: "typename BasicBitmap<W>::size_type BasicBitmap<W>::GetOnesCountInRange(\n
      \   size_type start, size_type end) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1050,1
    - Dst: FindNextSetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1052,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextSetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextSetBitBeforeLimit(size_type* index,\n
      \                                              size_type limit) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1062,1
    - Dst: FindNextUnsetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1064,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextUnsetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextUnsetBitBeforeLimit(size_type* index,\n
      \                                                size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1100,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1116
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextBitInVector(bool complement, const W*
      words,\n                                         size_t* bit_index_inout,\n
      \                                        size_t limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1153
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousBitInVector(bool complement, const
      W* words,\n                                             size_t* bit_index_inout,\n
      \                                            size_t limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1160,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousSetBitBeforeLimit(size_type* index,\n
      \                                                  size_type limit) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1173,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit(size_type* index,\n
      \                                                    size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - begin
    - end
    - value
    argTypes:
    - size_type
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1220
    functionName: util::bitmap::internal::BasicBitmap<W>::SetRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::SetRange(size_type begin, size_type end, bool
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1228,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1229,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1232,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: auto
    signature: auto BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1253,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1254,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitmap
    - start_bit
    argTypes:
    - BasicBitmap*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1259
    functionName: "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n
      \                                          size_type start_bit)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    linkageType: ''
    returnType: void
    signature: "void BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap*
      bitmap,\n                                           size_type start_bit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:778,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:779,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - store
    - W::W
    - array_size
    - std::copy
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(const BasicBitmap& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(BasicBitmap&& src) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:801,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:802,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:803,1
    - Dst: std::min<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: exchange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:808,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:811,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::SetRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 823
    functionName: util::bitmap::internal::BasicBitmap<W>::Resize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - RequiredArraySize
    - std::min<size_t>
    - std::copy
    - exchange
    - util::bitmap::internal::BasicBitmap<W>::SetRange
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Resize(size_type size, bool fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:838,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:839,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 854
    functionName: '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - std::copy
    - store
    - DeleteMap
    linkageType: ''
    returnType: BasicBitmap<W>
    signature: BasicBitmap<W> & BasicBitmap<W>::operator=(const BasicBitmap<W>& src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: util::bitmap::internal::BasicBitmap<W>::TestRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::TestRange(size_type begin, size_type end) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:896,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - array_size
    - HighOrderMapElementMask
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsSubsetOf(const BasicBitmap& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::TestRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:920,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:921,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:922,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' first'
    - ' second'
    argTypes:
    - BasicBitmap<W>
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 942
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 3
    functionsReached:
    - bits
    - array_size
    - util::bitmap::internal::BasicBitmap<W>::TestRange
    - HighOrderMapElementMask
    linkageType: ''
    returnType: int
    signature: "int BasicBitmap<W>::CompareToHelper(const BasicBitmap<W>& first,\n
      \                                   const BasicBitmap<W>& second)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:947,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareTo
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    linkageType: ''
    returnType: int
    signature: int BasicBitmap<W>::CompareTo(const BasicBitmap<W>& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:957,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:958,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:959,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:966,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:970,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:971,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: util::bitmap::internal::BasicBitmap<W>::Union
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - static_cast<Word>
    - std::transform
    - HighOrderMapElementMask
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Union(const BasicBitmap<W>& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:979,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:980,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:981,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:983,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:988,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 992
    functionName: util::bitmap::internal::BasicBitmap<W>::Intersection
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - std::transform
    - HighOrderMapElementMask
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Intersection(const BasicBitmap<W>& other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1006,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1008,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1011,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - HighOrderMapElementMask
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsIntersectionNonEmpty(const BasicBitmap<W>& other)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1018,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1019,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1029,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1045
    functionName: util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - static_cast<ArithmeticWord>
    - ABSL_CHECK_LE
    - absl::popcount
    linkageType: ''
    returnType: typename BasicBitmap<W>::size_type
    signature: "typename BasicBitmap<W>::size_type BasicBitmap<W>::GetOnesCountInRange(\n
      \   size_type start, size_type end) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1050,1
    - Dst: FindNextSetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1052,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextSetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextSetBitBeforeLimit(size_type* index,\n
      \                                              size_type limit) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1062,1
    - Dst: FindNextUnsetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1064,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextUnsetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextUnsetBitBeforeLimit(size_type* index,\n
      \                                                size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1100,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1116
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextBitInVector(bool complement, const W*
      words,\n                                         size_t* bit_index_inout,\n
      \                                        size_t limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1153
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousBitInVector(bool complement, const
      W* words,\n                                             size_t* bit_index_inout,\n
      \                                            size_t limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1160,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousSetBitBeforeLimit(size_type* index,\n
      \                                                  size_type limit) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1173,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit(size_type* index,\n
      \                                                    size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - begin
    - end
    - value
    argTypes:
    - size_type
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1220
    functionName: util::bitmap::internal::BasicBitmap<W>::SetRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::SetRange(size_type begin, size_type end, bool
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1228,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1229,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1232,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: auto
    signature: auto BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1253,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1254,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitmap
    - start_bit
    argTypes:
    - BasicBitmap*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1259
    functionName: "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n
      \                                          size_type start_bit)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    linkageType: ''
    returnType: void
    signature: "void BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap*
      bitmap,\n                                           size_type start_bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - map
    - index
    - value
    argTypes:
    - W*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: util::bitmap::SetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetBit(W* map, size_t index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fetch_or
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:69,1
    - Dst: fetch_and
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - map
    - index
    - value
    argTypes:
    - std::atomic<W>*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: util::bitmap::SetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_or
    - fetch_and
    linkageType: ''
    returnType: bool
    signature: bool SetBit(std::atomic<W>* map, size_t index, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: util::bitmap::GetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetBit(const W* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - std::atomic<W>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: util::bitmap::GetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetBit(const std::atomic<W>* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrefetchToLocalCache
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: util::bitmap::PrefetchBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - absl::PrefetchToLocalCache
    linkageType: ''
    returnType: void
    signature: void PrefetchBit(const W* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrefetchToLocalCache
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - std::atomic<W>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: util::bitmap::PrefetchBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - absl::PrefetchToLocalCache
    linkageType: ''
    returnType: void
    signature: void PrefetchBit(std::atomic<W>* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::SetAll
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size, bool fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const bool>::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:144,1
    - Dst: util::bitmap::internal::BasicBitmap::Set
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - values
    argTypes:
    - absl::Span<const bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Set
    - absl::Span<const bool>::size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(const absl::Span<const bool> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BasicBitmap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::bitmap::internal::BasicBitmap::CreateConst
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BasicBitmap
    linkageType: ''
    returnType: BasicBitmap<const W>
    signature: BasicBitmap<const W> CreateConst(const W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: ~BasicBitmap()
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void ~BasicBitmap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: util::bitmap::internal::BasicBitmap::bits
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: util::bitmap::internal::BasicBitmap::array_size
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 54
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::RequiredArraySize
    linkageType: ''
    returnType: size_type
    signature: size_type array_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: util::bitmap::internal::BasicBitmap::GetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:198,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:200,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: util::bitmap::internal::BasicBitmap::GetMaskedMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMaskedMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array_index
    - value
    argTypes:
    - size_type
    - Word
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: util::bitmap::internal::BasicBitmap::SetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void SetMapElement(size_type array_index, Word value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: Word
    signature: Word HighOrderMapElementMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:221,1
    - Dst: PrefetchBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: util::bitmap::internal::BasicBitmap::Prefetch
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - PrefetchBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Prefetch(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:226,1
    - Dst: GetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: util::bitmap::internal::BasicBitmap::Get
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Get(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountInRange(size_type start, size_type end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: util::bitmap::internal::BasicBitmap::IsAllZeroes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllZeroes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: util::bitmap::internal::BasicBitmap::IsAllOnes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllOnes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached:
    - FindNextSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextSetBitInVector(const W* words, size_t* bit_index,\n                                     size_t
      bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: util::bitmap::internal::BasicBitmap::FindFirstSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: bool
    signature: bool FindFirstSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextUnsetBitInVector(const W* words, size_t* bit_index,\n
      \                                      size_t bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: util::bitmap::internal::BasicBitmap::FindLastSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindLastSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:413,1
    - Dst: SetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: util::bitmap::internal::BasicBitmap::Set
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - SetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Set(size_type index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:418,1
    - Dst: fetch_xor
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: util::bitmap::internal::BasicBitmap::Toggle
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_xor
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Toggle(size_type index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: util::bitmap::internal::BasicBitmap::SetAll
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 9
    functionsReached:
    - util::bitmap::internal::BasicBitmap::array_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void SetAll(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: util::bitmap::internal::BasicBitmap::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::SetAll
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: util::bitmap::internal::BasicBitmap::Complement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void Complement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: util::bitmap::internal::BasicBitmap::Difference
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void Difference(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: util::bitmap::internal::BasicBitmap::ExclusiveOr
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void ExclusiveOr(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:486,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: util::bitmap::internal::BasicBitmap::IsEqual
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - equal
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const BasicBitmap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:546,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:549,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 553
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - std::string::size
    - util::bitmap::internal::BasicBitmap::ToString
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(int group) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: util::bitmap::internal::BasicBitmap::HashCode
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HashCode() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:563,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:564,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: load
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:572,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:573,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:574,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - ' bitmap'
    argTypes:
    - H
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 579
    functionName: util::bitmap::internal::BasicBitmap::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - load
    - util::bitmap::internal::BasicBitmap::array_size
    - std::move
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - std::accumulate
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H state, const BasicBitmap& bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_bits
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: util::bitmap::internal::BasicBitmap::RequiredArraySize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RequiredArraySize(size_type num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 595
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 602
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 604
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: operator==(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: operator!=(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexRange(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 643
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::begin
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::end
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - Stats::max
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_index_lower_bound
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 10
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter LowerBound(size_t bit_index_lower_bound) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitIndexRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: util::bitmap::internal::BasicBitmap::TrueBitIndices
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - BitIndexRange
    linkageType: ''
    returnType: BitIndexRange
    signature: BitIndexRange TrueBitIndices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::Log2
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: util::bitmap::internal::BasicBitmap::Log2
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Log2
    linkageType: ''
    returnType: unsigned
    signature: unsigned Log2(unsigned n, unsigned p = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete[]
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    - Dst: const_cast<std::remove_const_t<W>*>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: util::bitmap::internal::BasicBitmap::DeleteMap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ::operator delete[]
    - const_cast<std::remove_const_t<W>*>
    linkageType: ''
    returnType: void
    signature: void DeleteMap(W* map, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' bitmap'
    argTypes:
    - std::ostream
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: "& operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::SetAll
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size, bool fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const bool>::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:144,1
    - Dst: util::bitmap::internal::BasicBitmap::Set
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - values
    argTypes:
    - absl::Span<const bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Set
    - absl::Span<const bool>::size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(const absl::Span<const bool> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BasicBitmap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::bitmap::internal::BasicBitmap::CreateConst
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BasicBitmap
    linkageType: ''
    returnType: BasicBitmap<const W>
    signature: BasicBitmap<const W> CreateConst(const W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: ~BasicBitmap()
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void ~BasicBitmap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: util::bitmap::internal::BasicBitmap::bits
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: util::bitmap::internal::BasicBitmap::array_size
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 67
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::RequiredArraySize
    linkageType: ''
    returnType: size_type
    signature: size_type array_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: util::bitmap::internal::BasicBitmap::GetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:198,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:200,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: util::bitmap::internal::BasicBitmap::GetMaskedMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMaskedMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array_index
    - value
    argTypes:
    - size_type
    - Word
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: util::bitmap::internal::BasicBitmap::SetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void SetMapElement(size_type array_index, Word value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: Word
    signature: Word HighOrderMapElementMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:221,1
    - Dst: PrefetchBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: util::bitmap::internal::BasicBitmap::Prefetch
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - PrefetchBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Prefetch(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:226,1
    - Dst: GetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: util::bitmap::internal::BasicBitmap::Get
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Get(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountInRange(size_type start, size_type end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: util::bitmap::internal::BasicBitmap::IsAllZeroes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllZeroes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: util::bitmap::internal::BasicBitmap::IsAllOnes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllOnes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 10
    functionsReached:
    - FindNextSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextSetBitInVector(const W* words, size_t* bit_index,\n                                     size_t
      bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: util::bitmap::internal::BasicBitmap::FindFirstSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: bool
    signature: bool FindFirstSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextUnsetBitInVector(const W* words, size_t* bit_index,\n
      \                                      size_t bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: util::bitmap::internal::BasicBitmap::FindLastSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindLastSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:413,1
    - Dst: SetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: util::bitmap::internal::BasicBitmap::Set
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - SetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Set(size_type index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:418,1
    - Dst: fetch_xor
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: util::bitmap::internal::BasicBitmap::Toggle
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_xor
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Toggle(size_type index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: util::bitmap::internal::BasicBitmap::SetAll
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 11
    functionsReached:
    - util::bitmap::internal::BasicBitmap::array_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void SetAll(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: util::bitmap::internal::BasicBitmap::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::SetAll
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: util::bitmap::internal::BasicBitmap::Complement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void Complement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: util::bitmap::internal::BasicBitmap::Difference
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void Difference(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: util::bitmap::internal::BasicBitmap::ExclusiveOr
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void ExclusiveOr(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:486,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: util::bitmap::internal::BasicBitmap::IsEqual
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - equal
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const BasicBitmap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:546,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:549,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 553
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - std::string::size
    - util::bitmap::internal::BasicBitmap::ToString
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(int group) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: util::bitmap::internal::BasicBitmap::HashCode
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HashCode() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:563,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:564,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: load
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:572,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:573,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:574,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - ' bitmap'
    argTypes:
    - H
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 579
    functionName: util::bitmap::internal::BasicBitmap::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - load
    - util::bitmap::internal::BasicBitmap::array_size
    - std::move
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - std::accumulate
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H state, const BasicBitmap& bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_bits
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: util::bitmap::internal::BasicBitmap::RequiredArraySize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RequiredArraySize(size_type num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 595
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 602
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 604
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: operator==(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: operator!=(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexRange(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 643
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::begin
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::end
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - Stats::max
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_index_lower_bound
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 12
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter LowerBound(size_t bit_index_lower_bound) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitIndexRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: util::bitmap::internal::BasicBitmap::TrueBitIndices
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - BitIndexRange
    linkageType: ''
    returnType: BitIndexRange
    signature: BitIndexRange TrueBitIndices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::Log2
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: util::bitmap::internal::BasicBitmap::Log2
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Log2
    linkageType: ''
    returnType: unsigned
    signature: unsigned Log2(unsigned n, unsigned p = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete[]
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    - Dst: const_cast<std::remove_const_t<W>*>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: util::bitmap::internal::BasicBitmap::DeleteMap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ::operator delete[]
    - const_cast<std::remove_const_t<W>*>
    linkageType: ''
    returnType: void
    signature: void DeleteMap(W* map, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' bitmap'
    argTypes:
    - std::ostream
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: "& operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:778,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:779,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - store
    - W::W
    - array_size
    - std::copy
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(const BasicBitmap& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(BasicBitmap&& src) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:801,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:802,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:803,1
    - Dst: std::min<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: exchange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:808,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:811,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::SetRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 823
    functionName: util::bitmap::internal::BasicBitmap<W>::Resize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - RequiredArraySize
    - std::min<size_t>
    - std::copy
    - exchange
    - util::bitmap::internal::BasicBitmap<W>::SetRange
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Resize(size_type size, bool fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:838,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:839,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 854
    functionName: '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - std::copy
    - store
    - DeleteMap
    linkageType: ''
    returnType: BasicBitmap<W>
    signature: BasicBitmap<W> & BasicBitmap<W>::operator=(const BasicBitmap<W>& src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: util::bitmap::internal::BasicBitmap<W>::TestRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::TestRange(size_type begin, size_type end) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:896,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - array_size
    - HighOrderMapElementMask
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsSubsetOf(const BasicBitmap& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::TestRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:920,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:921,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:922,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' first'
    - ' second'
    argTypes:
    - BasicBitmap<W>
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 942
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 4
    functionsReached:
    - bits
    - array_size
    - util::bitmap::internal::BasicBitmap<W>::TestRange
    - HighOrderMapElementMask
    linkageType: ''
    returnType: int
    signature: "int BasicBitmap<W>::CompareToHelper(const BasicBitmap<W>& first,\n
      \                                   const BasicBitmap<W>& second)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:947,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareTo
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    linkageType: ''
    returnType: int
    signature: int BasicBitmap<W>::CompareTo(const BasicBitmap<W>& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:957,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:958,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:959,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:966,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:970,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:971,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: util::bitmap::internal::BasicBitmap<W>::Union
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - static_cast<Word>
    - std::transform
    - HighOrderMapElementMask
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Union(const BasicBitmap<W>& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:979,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:980,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:981,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:983,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:988,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 992
    functionName: util::bitmap::internal::BasicBitmap<W>::Intersection
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - std::transform
    - HighOrderMapElementMask
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Intersection(const BasicBitmap<W>& other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1006,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1008,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1011,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - HighOrderMapElementMask
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsIntersectionNonEmpty(const BasicBitmap<W>& other)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1018,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1019,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1029,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1045
    functionName: util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - static_cast<ArithmeticWord>
    - ABSL_CHECK_LE
    - absl::popcount
    linkageType: ''
    returnType: typename BasicBitmap<W>::size_type
    signature: "typename BasicBitmap<W>::size_type BasicBitmap<W>::GetOnesCountInRange(\n
      \   size_type start, size_type end) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1050,1
    - Dst: FindNextSetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1052,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextSetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextSetBitBeforeLimit(size_type* index,\n
      \                                              size_type limit) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1062,1
    - Dst: FindNextUnsetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1064,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextUnsetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextUnsetBitBeforeLimit(size_type* index,\n
      \                                                size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1100,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1116
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextBitInVector(bool complement, const W*
      words,\n                                         size_t* bit_index_inout,\n
      \                                        size_t limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1153
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached:
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousBitInVector(bool complement, const
      W* words,\n                                             size_t* bit_index_inout,\n
      \                                            size_t limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1160,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousSetBitBeforeLimit(size_type* index,\n
      \                                                  size_type limit) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1173,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit(size_type* index,\n
      \                                                    size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - begin
    - end
    - value
    argTypes:
    - size_type
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1220
    functionName: util::bitmap::internal::BasicBitmap<W>::SetRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::SetRange(size_type begin, size_type end, bool
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1228,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1229,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1232,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: auto
    signature: auto BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1253,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1254,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitmap
    - start_bit
    argTypes:
    - BasicBitmap*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1259
    functionName: "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n
      \                                          size_type start_bit)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    linkageType: ''
    returnType: void
    signature: "void BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap*
      bitmap,\n                                           size_type start_bit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:778,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:779,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - store
    - W::W
    - array_size
    - std::copy
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(const BasicBitmap& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(BasicBitmap&& src) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:801,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:802,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:803,1
    - Dst: std::min<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: exchange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:808,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:811,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::SetRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 823
    functionName: util::bitmap::internal::BasicBitmap<W>::Resize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - RequiredArraySize
    - std::min<size_t>
    - std::copy
    - exchange
    - util::bitmap::internal::BasicBitmap<W>::SetRange
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Resize(size_type size, bool fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:838,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:839,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 854
    functionName: '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - std::copy
    - store
    - DeleteMap
    linkageType: ''
    returnType: BasicBitmap<W>
    signature: BasicBitmap<W> & BasicBitmap<W>::operator=(const BasicBitmap<W>& src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: util::bitmap::internal::BasicBitmap<W>::TestRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::TestRange(size_type begin, size_type end) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:896,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - array_size
    - HighOrderMapElementMask
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsSubsetOf(const BasicBitmap& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::TestRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:920,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:921,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:922,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' first'
    - ' second'
    argTypes:
    - BasicBitmap<W>
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 942
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 5
    functionsReached:
    - bits
    - array_size
    - util::bitmap::internal::BasicBitmap<W>::TestRange
    - HighOrderMapElementMask
    linkageType: ''
    returnType: int
    signature: "int BasicBitmap<W>::CompareToHelper(const BasicBitmap<W>& first,\n
      \                                   const BasicBitmap<W>& second)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:947,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareTo
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    linkageType: ''
    returnType: int
    signature: int BasicBitmap<W>::CompareTo(const BasicBitmap<W>& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:957,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:958,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:959,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:966,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:970,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:971,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: util::bitmap::internal::BasicBitmap<W>::Union
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - static_cast<Word>
    - std::transform
    - HighOrderMapElementMask
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Union(const BasicBitmap<W>& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:979,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:980,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:981,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:983,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:988,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 992
    functionName: util::bitmap::internal::BasicBitmap<W>::Intersection
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - std::transform
    - HighOrderMapElementMask
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Intersection(const BasicBitmap<W>& other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1006,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1008,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1011,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - HighOrderMapElementMask
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsIntersectionNonEmpty(const BasicBitmap<W>& other)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1018,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1019,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1029,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1045
    functionName: util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - static_cast<ArithmeticWord>
    - ABSL_CHECK_LE
    - absl::popcount
    linkageType: ''
    returnType: typename BasicBitmap<W>::size_type
    signature: "typename BasicBitmap<W>::size_type BasicBitmap<W>::GetOnesCountInRange(\n
      \   size_type start, size_type end) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1050,1
    - Dst: FindNextSetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1052,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextSetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextSetBitBeforeLimit(size_type* index,\n
      \                                              size_type limit) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1062,1
    - Dst: FindNextUnsetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1064,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextUnsetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextUnsetBitBeforeLimit(size_type* index,\n
      \                                                size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1100,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1116
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextBitInVector(bool complement, const W*
      words,\n                                         size_t* bit_index_inout,\n
      \                                        size_t limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1153
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 10
    functionsReached:
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousBitInVector(bool complement, const
      W* words,\n                                             size_t* bit_index_inout,\n
      \                                            size_t limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1160,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousSetBitBeforeLimit(size_type* index,\n
      \                                                  size_type limit) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1173,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit(size_type* index,\n
      \                                                    size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - begin
    - end
    - value
    argTypes:
    - size_type
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1220
    functionName: util::bitmap::internal::BasicBitmap<W>::SetRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::SetRange(size_type begin, size_type end, bool
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1228,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1229,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1232,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: auto
    signature: auto BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1253,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1254,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitmap
    - start_bit
    argTypes:
    - BasicBitmap*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1259
    functionName: "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n
      \                                          size_type start_bit)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    linkageType: ''
    returnType: void
    signature: "void BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap*
      bitmap,\n                                           size_type start_bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - map
    - index
    - value
    argTypes:
    - W*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: util::bitmap::SetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetBit(W* map, size_t index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fetch_or
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:69,1
    - Dst: fetch_and
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - map
    - index
    - value
    argTypes:
    - std::atomic<W>*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: util::bitmap::SetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_or
    - fetch_and
    linkageType: ''
    returnType: bool
    signature: bool SetBit(std::atomic<W>* map, size_t index, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: util::bitmap::GetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetBit(const W* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - std::atomic<W>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: util::bitmap::GetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetBit(const std::atomic<W>* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrefetchToLocalCache
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: util::bitmap::PrefetchBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - absl::PrefetchToLocalCache
    linkageType: ''
    returnType: void
    signature: void PrefetchBit(const W* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::PrefetchToLocalCache
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - index
    argTypes:
    - std::atomic<W>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: util::bitmap::PrefetchBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - absl::PrefetchToLocalCache
    linkageType: ''
    returnType: void
    signature: void PrefetchBit(std::atomic<W>* map, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::SetAll
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size, bool fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const bool>::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:144,1
    - Dst: util::bitmap::internal::BasicBitmap::Set
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - values
    argTypes:
    - absl::Span<const bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Set
    - absl::Span<const bool>::size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(const absl::Span<const bool> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BasicBitmap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::bitmap::internal::BasicBitmap::CreateConst
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BasicBitmap
    linkageType: ''
    returnType: BasicBitmap<const W>
    signature: BasicBitmap<const W> CreateConst(const W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: ~BasicBitmap()
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void ~BasicBitmap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: util::bitmap::internal::BasicBitmap::bits
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: util::bitmap::internal::BasicBitmap::array_size
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 80
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::RequiredArraySize
    linkageType: ''
    returnType: size_type
    signature: size_type array_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: util::bitmap::internal::BasicBitmap::GetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:198,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:200,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: util::bitmap::internal::BasicBitmap::GetMaskedMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMaskedMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array_index
    - value
    argTypes:
    - size_type
    - Word
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: util::bitmap::internal::BasicBitmap::SetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void SetMapElement(size_type array_index, Word value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: Word
    signature: Word HighOrderMapElementMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:221,1
    - Dst: PrefetchBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: util::bitmap::internal::BasicBitmap::Prefetch
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - PrefetchBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Prefetch(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:226,1
    - Dst: GetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: util::bitmap::internal::BasicBitmap::Get
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Get(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountInRange(size_type start, size_type end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: util::bitmap::internal::BasicBitmap::IsAllZeroes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllZeroes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: util::bitmap::internal::BasicBitmap::IsAllOnes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllOnes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 12
    functionsReached:
    - FindNextSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextSetBitInVector(const W* words, size_t* bit_index,\n                                     size_t
      bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: util::bitmap::internal::BasicBitmap::FindFirstSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: bool
    signature: bool FindFirstSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextUnsetBitInVector(const W* words, size_t* bit_index,\n
      \                                      size_t bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: util::bitmap::internal::BasicBitmap::FindLastSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindLastSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:413,1
    - Dst: SetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: util::bitmap::internal::BasicBitmap::Set
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - SetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Set(size_type index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:418,1
    - Dst: fetch_xor
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: util::bitmap::internal::BasicBitmap::Toggle
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_xor
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Toggle(size_type index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: util::bitmap::internal::BasicBitmap::SetAll
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 13
    functionsReached:
    - util::bitmap::internal::BasicBitmap::array_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void SetAll(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: util::bitmap::internal::BasicBitmap::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::SetAll
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: util::bitmap::internal::BasicBitmap::Complement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void Complement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: util::bitmap::internal::BasicBitmap::Difference
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void Difference(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: util::bitmap::internal::BasicBitmap::ExclusiveOr
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void ExclusiveOr(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:486,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: util::bitmap::internal::BasicBitmap::IsEqual
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - equal
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const BasicBitmap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:546,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:549,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 553
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - std::string::size
    - util::bitmap::internal::BasicBitmap::ToString
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(int group) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: util::bitmap::internal::BasicBitmap::HashCode
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HashCode() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:563,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:564,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: load
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:572,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:573,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:574,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - ' bitmap'
    argTypes:
    - H
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 579
    functionName: util::bitmap::internal::BasicBitmap::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - load
    - util::bitmap::internal::BasicBitmap::array_size
    - std::move
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - std::accumulate
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H state, const BasicBitmap& bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_bits
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: util::bitmap::internal::BasicBitmap::RequiredArraySize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RequiredArraySize(size_type num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 595
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 602
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 604
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: operator==(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: operator!=(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexRange(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 643
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::begin
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::end
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - Stats::max
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_index_lower_bound
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 14
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter LowerBound(size_t bit_index_lower_bound) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitIndexRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: util::bitmap::internal::BasicBitmap::TrueBitIndices
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - BitIndexRange
    linkageType: ''
    returnType: BitIndexRange
    signature: BitIndexRange TrueBitIndices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::Log2
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: util::bitmap::internal::BasicBitmap::Log2
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Log2
    linkageType: ''
    returnType: unsigned
    signature: unsigned Log2(unsigned n, unsigned p = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete[]
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    - Dst: const_cast<std::remove_const_t<W>*>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: util::bitmap::internal::BasicBitmap::DeleteMap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ::operator delete[]
    - const_cast<std::remove_const_t<W>*>
    linkageType: ''
    returnType: void
    signature: void DeleteMap(W* map, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' bitmap'
    argTypes:
    - std::ostream
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: "& operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:136,1
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::SetAll
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size, bool fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const bool>::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:144,1
    - Dst: util::bitmap::internal::BasicBitmap::Set
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - values
    argTypes:
    - absl::Span<const bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Set
    - absl::Span<const bool>::size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(const absl::Span<const bool> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap(W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BasicBitmap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::bitmap::internal::BasicBitmap::CreateConst
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BasicBitmap
    linkageType: ''
    returnType: BasicBitmap<const W>
    signature: BasicBitmap<const W> CreateConst(const W* map, size_type size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: util::bitmap::internal::BasicBitmap::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached:
    - W::W
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void BasicBitmap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: ~BasicBitmap()
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void ~BasicBitmap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: util::bitmap::internal::BasicBitmap::bits
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: util::bitmap::internal::BasicBitmap::array_size
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 93
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::RequiredArraySize
    linkageType: ''
    returnType: size_type
    signature: size_type array_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: util::bitmap::internal::BasicBitmap::GetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:198,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:199,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:200,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: util::bitmap::internal::BasicBitmap::GetMaskedMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: Word
    signature: Word GetMaskedMapElement(size_type array_index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array_index
    - value
    argTypes:
    - size_type
    - Word
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: util::bitmap::internal::BasicBitmap::SetMapElement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ABSL_CHECK_LT
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void SetMapElement(size_type array_index, Word value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: Word
    signature: Word HighOrderMapElementMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:221,1
    - Dst: PrefetchBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: util::bitmap::internal::BasicBitmap::Prefetch
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - PrefetchBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Prefetch(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:226,1
    - Dst: GetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: util::bitmap::internal::BasicBitmap::Get
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Get(size_type index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: util::bitmap::internal::BasicBitmap::GetOnesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetOnesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountInRange(size_type start, size_type end) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCountBeforeLimit(size_type limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOnesCountInRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: util::bitmap::internal::BasicBitmap::GetZeroesCount
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - GetOnesCountInRange
    linkageType: ''
    returnType: size_type
    signature: size_type GetZeroesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:262,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: util::bitmap::internal::BasicBitmap::IsAllZeroes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllZeroes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:269,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: util::bitmap::internal::BasicBitmap::IsAllOnes
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::all_of
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsAllOnes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 14
    functionsReached:
    - FindNextSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextSetBitInVector(const W* words, size_t* bit_index,\n                                     size_t
      bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: util::bitmap::internal::BasicBitmap::FindFirstSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: bool
    signature: bool FindFirstSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindNextUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindNextBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - words
    - bit_index
    - bit_limit
    argTypes:
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindNextBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool FindNextUnsetBitInVector(const W* words, size_t* bit_index,\n
      \                                      size_t bit_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousUnsetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousUnsetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindPreviousUnsetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindPreviousSetBitBeforeLimit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: util::bitmap::internal::BasicBitmap::FindLastSetBit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - FindPreviousSetBitBeforeLimit
    linkageType: ''
    returnType: bool
    signature: bool FindLastSetBit(size_type* index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:413,1
    - Dst: SetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: util::bitmap::internal::BasicBitmap::Set
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached:
    - SetBit
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool Set(size_type index, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:418,1
    - Dst: fetch_xor
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: util::bitmap::internal::BasicBitmap::Toggle
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - fetch_xor
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void Toggle(size_type index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: util::bitmap::internal::BasicBitmap::SetAll
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 15
    functionsReached:
    - util::bitmap::internal::BasicBitmap::array_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void SetAll(bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::SetAll
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: util::bitmap::internal::BasicBitmap::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::SetAll
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: util::bitmap::internal::BasicBitmap::Complement
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: void
    signature: void Complement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:464,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: util::bitmap::internal::BasicBitmap::Difference
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void Difference(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:473,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: util::bitmap::internal::BasicBitmap::ExclusiveOr
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - std::transform
    - util::bitmap::internal::BasicBitmap::bits
    - util::bitmap::internal::BasicBitmap::array_size
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: void
    signature: void ExclusiveOr(const BasicBitmap& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:485,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:486,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:487,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:488,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: util::bitmap::internal::BasicBitmap::IsEqual
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::bits
    - equal
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - util::bitmap::internal::BasicBitmap::array_size
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const BasicBitmap& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqual
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - IsEqual
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompareTo
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - BasicBitmap
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - CompareTo
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - util::bitmap::internal::BasicBitmap::FindNextSetBit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:546,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:549,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 553
    functionName: util::bitmap::internal::BasicBitmap::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached:
    - std::string::size
    - util::bitmap::internal::BasicBitmap::ToString
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(int group) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: util::bitmap::internal::BasicBitmap::HashCode
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HashCode() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:563,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:564,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: load
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:565,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:568,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:572,1
    - Dst: util::bitmap::internal::BasicBitmap::array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:573,1
    - Dst: util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:574,1
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - ' bitmap'
    argTypes:
    - H
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 579
    functionName: util::bitmap::internal::BasicBitmap::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - load
    - util::bitmap::internal::BasicBitmap::array_size
    - std::move
    - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
    - std::accumulate
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H state, const BasicBitmap& bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_bits
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: util::bitmap::internal::BasicBitmap::RequiredArraySize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RequiredArraySize(size_type num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 595
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexIter(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 602
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 604
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: operator++(int)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: operator==(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitIndexIter
    - BitIndexIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: operator!=(const BitIndexIter& a, const BitIndexIter& b)
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - BasicBitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitIndexRange(const BasicBitmap* bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 643
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::begin
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::end
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - Stats::max
    - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_index_lower_bound
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 16
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: BitIndexIter
    signature: BitIndexIter LowerBound(size_t bit_index_lower_bound) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitIndexRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: util::bitmap::internal::BasicBitmap::TrueBitIndices
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - BitIndexRange
    linkageType: ''
    returnType: BitIndexRange
    signature: BitIndexRange TrueBitIndices() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap::Log2
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: util::bitmap::internal::BasicBitmap::Log2
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached:
    - util::bitmap::internal::BasicBitmap::Log2
    linkageType: ''
    returnType: unsigned
    signature: unsigned Log2(unsigned n, unsigned p = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::operator delete[]
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    - Dst: const_cast<std::remove_const_t<W>*>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - W*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: util::bitmap::internal::BasicBitmap::DeleteMap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ::operator delete[]
    - const_cast<std::remove_const_t<W>*>
    linkageType: ''
    returnType: void
    signature: void DeleteMap(W* map, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' bitmap'
    argTypes:
    - std::ostream
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: "& operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                const
      BasicBitmap<W>& bitmap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:778,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:779,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - store
    - W::W
    - array_size
    - std::copy
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(const BasicBitmap& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(BasicBitmap&& src) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:801,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:802,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:803,1
    - Dst: std::min<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: exchange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:808,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:811,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::SetRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 823
    functionName: util::bitmap::internal::BasicBitmap<W>::Resize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - RequiredArraySize
    - std::min<size_t>
    - std::copy
    - exchange
    - util::bitmap::internal::BasicBitmap<W>::SetRange
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Resize(size_type size, bool fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:838,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:839,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 854
    functionName: '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - std::copy
    - store
    - DeleteMap
    linkageType: ''
    returnType: BasicBitmap<W>
    signature: BasicBitmap<W> & BasicBitmap<W>::operator=(const BasicBitmap<W>& src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: util::bitmap::internal::BasicBitmap<W>::TestRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::TestRange(size_type begin, size_type end) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:896,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - array_size
    - HighOrderMapElementMask
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsSubsetOf(const BasicBitmap& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::TestRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:920,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:921,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:922,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' first'
    - ' second'
    argTypes:
    - BasicBitmap<W>
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 942
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 6
    functionsReached:
    - bits
    - array_size
    - util::bitmap::internal::BasicBitmap<W>::TestRange
    - HighOrderMapElementMask
    linkageType: ''
    returnType: int
    signature: "int BasicBitmap<W>::CompareToHelper(const BasicBitmap<W>& first,\n
      \                                   const BasicBitmap<W>& second)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:947,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareTo
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    linkageType: ''
    returnType: int
    signature: int BasicBitmap<W>::CompareTo(const BasicBitmap<W>& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:957,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:958,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:959,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:966,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:970,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:971,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: util::bitmap::internal::BasicBitmap<W>::Union
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - static_cast<Word>
    - std::transform
    - HighOrderMapElementMask
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Union(const BasicBitmap<W>& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:979,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:980,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:981,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:983,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:988,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 992
    functionName: util::bitmap::internal::BasicBitmap<W>::Intersection
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - std::transform
    - HighOrderMapElementMask
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Intersection(const BasicBitmap<W>& other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1006,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1008,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1011,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - HighOrderMapElementMask
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsIntersectionNonEmpty(const BasicBitmap<W>& other)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1018,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1019,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1029,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1045
    functionName: util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - static_cast<ArithmeticWord>
    - ABSL_CHECK_LE
    - absl::popcount
    linkageType: ''
    returnType: typename BasicBitmap<W>::size_type
    signature: "typename BasicBitmap<W>::size_type BasicBitmap<W>::GetOnesCountInRange(\n
      \   size_type start, size_type end) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1050,1
    - Dst: FindNextSetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1052,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextSetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextSetBitBeforeLimit(size_type* index,\n
      \                                              size_type limit) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1062,1
    - Dst: FindNextUnsetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1064,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextUnsetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextUnsetBitBeforeLimit(size_type* index,\n
      \                                                size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1100,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1116
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextBitInVector(bool complement, const W*
      words,\n                                         size_t* bit_index_inout,\n
      \                                        size_t limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1153
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 12
    functionsReached:
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousBitInVector(bool complement, const
      W* words,\n                                             size_t* bit_index_inout,\n
      \                                            size_t limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1160,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousSetBitBeforeLimit(size_type* index,\n
      \                                                  size_type limit) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1173,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit(size_type* index,\n
      \                                                    size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - begin
    - end
    - value
    argTypes:
    - size_type
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1220
    functionName: util::bitmap::internal::BasicBitmap<W>::SetRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::SetRange(size_type begin, size_type end, bool
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1228,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1229,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1232,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: auto
    signature: auto BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1253,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1254,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitmap
    - start_bit
    argTypes:
    - BasicBitmap*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1259
    functionName: "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n
      \                                          size_type start_bit)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    linkageType: ''
    returnType: void
    signature: "void BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap*
      bitmap,\n                                           size_type start_bit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:776,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:778,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:779,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - store
    - W::W
    - array_size
    - std::copy
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(const BasicBitmap& src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: util::bitmap::internal::BasicBitmap<W>::BasicBitmap
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::BasicBitmap(BasicBitmap&& src) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RequiredArraySize
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:801,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:802,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:803,1
    - Dst: std::min<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:805,1
    - Dst: exchange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:808,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:811,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:814,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::SetRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 823
    functionName: util::bitmap::internal::BasicBitmap<W>::Resize
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - RequiredArraySize
    - std::min<size_t>
    - std::copy
    - exchange
    - util::bitmap::internal::BasicBitmap<W>::SetRange
    - DeleteMap
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Resize(size_type size, bool fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:828,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:829,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:830,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: W::W
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:835,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:838,1
    - Dst: store
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:839,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:842,1
    - Dst: DeleteMap
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ' src'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 854
    functionName: '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - W::W
    - array_size
    - std::copy
    - store
    - DeleteMap
    linkageType: ''
    returnType: BasicBitmap<W>
    signature: BasicBitmap<W> & BasicBitmap<W>::operator=(const BasicBitmap<W>& src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: util::bitmap::internal::BasicBitmap<W>::TestRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::TestRange(size_type begin, size_type end) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:894,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:896,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - array_size
    - HighOrderMapElementMask
    - ABSL_CHECK_EQ
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsSubsetOf(const BasicBitmap& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::TestRange
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:912,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:920,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:921,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:922,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' first'
    - ' second'
    argTypes:
    - BasicBitmap<W>
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 942
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 7
    functionsReached:
    - bits
    - array_size
    - util::bitmap::internal::BasicBitmap<W>::TestRange
    - HighOrderMapElementMask
    linkageType: ''
    returnType: int
    signature: "int BasicBitmap<W>::CompareToHelper(const BasicBitmap<W>& first,\n
      \                                   const BasicBitmap<W>& second)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:946,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:947,1
    - Dst: util::bitmap::internal::BasicBitmap<W>::CompareToHelper
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: util::bitmap::internal::BasicBitmap<W>::CompareTo
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
    linkageType: ''
    returnType: int
    signature: int BasicBitmap<W>::CompareTo(const BasicBitmap<W>& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:957,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:958,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:959,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:966,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:970,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:971,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: util::bitmap::internal::BasicBitmap<W>::Union
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - static_cast<Word>
    - std::transform
    - HighOrderMapElementMask
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Union(const BasicBitmap<W>& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:979,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:980,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:981,1
    - Dst: std::transform
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:983,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:988,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 992
    functionName: util::bitmap::internal::BasicBitmap<W>::Intersection
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - std::transform
    - HighOrderMapElementMask
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::Intersection(const BasicBitmap<W>& other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:997,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1005,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1006,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: array_size
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1007,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1008,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1011,1
    - Dst: HighOrderMapElementMask
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicBitmap<W>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - array_size
    - min
    - HighOrderMapElementMask
    linkageType: ''
    returnType: bool
    signature: bool BasicBitmap<W>::IsIntersectionNonEmpty(const BasicBitmap<W>& other)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1018,1
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1019,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1029,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1034,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1037,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1040,1
    - Dst: absl::popcount
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<Word>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1043,1
    - Dst: static_cast<ArithmeticWord>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1045
    functionName: util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<Word>
    - static_cast<ArithmeticWord>
    - ABSL_CHECK_LE
    - absl::popcount
    linkageType: ''
    returnType: typename BasicBitmap<W>::size_type
    signature: "typename BasicBitmap<W>::size_type BasicBitmap<W>::GetOnesCountInRange(\n
      \   size_type start, size_type end) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1050,1
    - Dst: FindNextSetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1052,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextSetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextSetBitBeforeLimit(size_type* index,\n
      \                                              size_type limit) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK_LE
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1062,1
    - Dst: FindNextUnsetBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1064,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - FindNextUnsetBitInVector
    - ABSL_CHECK_LE
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextUnsetBitBeforeLimit(size_type* index,\n
      \                                                size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1100,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1116
    functionName: util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindNextBitInVector(bool complement, const W*
      words,\n                                         size_t* bit_index_inout,\n
      \                                        size_t limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - complement
    - words
    - bit_index_inout
    - limit
    argTypes:
    - bool
    - W*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1153
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 14
    functionsReached:
    - exactfloat_internal::bit_width
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousBitInVector(bool complement, const
      W* words,\n                                             size_t* bit_index_inout,\n
      \                                            size_t limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1160,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousSetBitBeforeLimit(size_type* index,\n
      \                                                  size_type limit) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1173,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - limit
    argTypes:
    - size_type*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
    linkageType: ''
    returnType: bool
    signature: "bool BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit(size_type* index,\n
      \                                                    size_type limit) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - begin
    - end
    - value
    argTypes:
    - size_type
    - size_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1220
    functionName: util::bitmap::internal::BasicBitmap<W>::SetRange
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 8
    functionsReached:
    - std::fill
    linkageType: ''
    returnType: void
    signature: void BasicBitmap<W>::SetRange(size_type begin, size_type end, bool
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1228,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1229,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1232,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: auto
    signature: auto BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindNextSetBit
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1253,1
    - Dst: bits
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1254,1
    - Dst: GetMaskedMapElement
      Src: /src/s2geometry/src/s2/util/bitmap/bitmap.h:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitmap
    - start_bit
    argTypes:
    - BasicBitmap*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1259
    functionName: "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n
      \                                          size_type start_bit)"
    functionSourceFile: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    functionUses: 0
    functionsReached:
    - bits
    - GetMaskedMapElement
    - FindNextSetBit
    linkageType: ''
    returnType: void
    signature: "void BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap*
      bitmap,\n                                           size_type start_bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lhs
    - ','
    - rhs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: ASSIGN_OR_RETURN
    functionSourceFile: /src/s2geometry/src/s2/util/task/status_macros.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSIGN_OR_RETURN(lhs, rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: HashMix::HashMix
    functionSourceFile: /src/s2geometry/src/s2/util/hash/mix.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HashMix()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: HashMix::HashMix
    functionSourceFile: /src/s2geometry/src/s2/util/hash/mix.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HashMix(size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/hash/mix.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: HashMix::Mix
    functionSourceFile: /src/s2geometry/src/s2/util/hash/mix.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void Mix(size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: HashMix::get
    functionSourceFile: /src/s2geometry/src/s2/util/hash/mix.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:54,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:55,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Matrix3x3::Matrix3x3
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - VType
    linkageType: ''
    returnType: void
    signature: void Matrix3x3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 9
    argNames:
    - m00
    - m01
    - m02
    - m10
    - m11
    - m12
    - m20
    - m21
    - m22
    argTypes:
    - VType
    - VType
    - VType
    - VType
    - VType
    - VType
    - VType
    - VType
    - VType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: Matrix3x3::Matrix3x3
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Matrix3x3(const VType &m00, const VType &m01, const VType &m02,\n
      \           const VType &m10, const VType &m11, const VType &m12,\n            const
      VType &m20, const VType &m21, const VType &m22)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:80,1
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:80,1
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:80,1
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:81,1
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:81,1
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:82,1
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:82,1
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:83,1
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:83,1
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:84,1
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:84,1
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:85,1
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:85,1
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:86,1
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:86,1
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:87,1
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:87,1
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:88,1
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mb
    argTypes:
    - Matrix3x3<VType2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: Matrix3x3::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - static_cast<VType>
    - mb
    - Matrix3x3::Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Cast(const Matrix3x3<VType2> &mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 9
    argNames:
    - m00
    - m01
    - m02
    - m10
    - m11
    - m12
    - m20
    - m21
    - m22
    argTypes:
    - VType
    - VType
    - VType
    - VType
    - VType
    - VType
    - VType
    - VType
    - VType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: "&Set(const VType &m00, const VType &m01, const VType &m02,\n                        const
      VType &m10, const VType &m11, const VType &m12,\n                        const
      VType &m20, const VType &m21, const VType &m22)"
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Matrix3x3
    signature: "Matrix3x3 &Set(const VType &m00, const VType &m01, const VType &m02,\n
      \                       const VType &m10, const VType &m11, const VType &m12,\n
      \                       const VType &m20, const VType &m21, const VType &m22)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - mb
    argTypes:
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: '&operator+=(const Matrix3x3 &mb)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 &operator+=(const Matrix3x3 &mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - mb
    argTypes:
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: '&operator-=(const Matrix3x3 &mb)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 &operator-=(const Matrix3x3 &mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - k
    argTypes:
    - VType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 155
    functionName: '&operator*=(const VType &k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 &operator*=(const VType &k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mb
    argTypes:
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: operator+(const Matrix3x3 &mb) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 operator+(const Matrix3x3 &mb) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mb
    argTypes:
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: operator-(const Matrix3x3 &mb) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 operator-(const Matrix3x3 &mb) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vb
    argTypes:
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: operator-(const Matrix3x3 &vb)
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 operator-(const Matrix3x3 &vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - VType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: operator*(const VType &k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 operator*(const VType &k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - mb
    argTypes:
    - VType
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: operator*(const VType &k, const Matrix3x3 &mb)
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 operator*(const VType &k, const Matrix3x3 &mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mb
    argTypes:
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 199
    functionName: operator*(const Matrix3x3 &mb) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 operator*(const Matrix3x3 &mb) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MVector
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: operator*(const MVector &v) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - MVector
    linkageType: ''
    returnType: MVector
    signature: MVector operator*(const MVector &v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: Matrix3x3::Det
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VType
    signature: VType Det() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    functionName: Matrix3x3::Trace
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VType
    signature: VType Trace() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<VType *>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: Matrix3x3::Data
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<VType *>
    linkageType: ''
    returnType: VType
    signature: VType *Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const VType *>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: Matrix3x3::Data
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const VType *>
    linkageType: ''
    returnType: VType
    signature: VType *Data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:225,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:226,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:227,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: '&operator()(const int i, const int j)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: VType
    signature: VType &operator()(const int i, const int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:232,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:233,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:234,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: operator()(const int i, const int j) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: VType
    signature: VType operator()(const int i, const int j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:241,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:242,1
    - Dst: reinterpret_cast<VType *>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: '&operator[](const int i)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<VType *>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: VType
    signature: VType &operator[](const int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:246,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:247,1
    - Dst: reinterpret_cast<const VType *>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: operator[](const int i) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const VType *>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: VType
    signature: VType operator[](const int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: Matrix3x3::Transpose
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Transpose() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 272
    functionName: Matrix3x3::ComatrixTransposed
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 ComatrixTransposed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Det
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:275,1
    - Dst: ABSL_CHECK_NE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:276,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:276,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:277,1
    - Dst: Matrix3x3::ComatrixTransposed
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: Matrix3x3::Inverse
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Det
    - ABSL_CHECK_NE
    - Matrix3x3::ComatrixTransposed
    - VType
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Inverse() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:282,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:283,1
    - Dst: MVector
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: Matrix3x3::Row
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - MVector
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: MVector
    signature: MVector Row(const int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:289,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:290,1
    - Dst: MVector
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: Matrix3x3::Col
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - MVector
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: MVector
    signature: MVector Col(const int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:297,1
    - Dst: Matrix3x3::Set
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v1
    - v2
    - v3
    argTypes:
    - MVector
    - MVector
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 302
    functionName: Matrix3x3::FromRows
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Set
    - Matrix3x3::Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: "Matrix3x3 FromRows(const MVector &v1, const MVector &v2,\n                                   const
      MVector &v3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:307,1
    - Dst: Matrix3x3::Set
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v1
    - v2
    - v3
    argTypes:
    - MVector
    - MVector
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: Matrix3x3::FromCols
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 5
    functionsReached:
    - Matrix3x3::Set
    - Matrix3x3::Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: "Matrix3x3 FromCols(const MVector &v1, const MVector &v2,\n                                   const
      MVector &v3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:316,1
    - Dst: Matrix3x3::SetRow
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ma
    - mb
    argTypes:
    - MVector
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: Matrix3x3::FromOuter
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::SetRow
    - Matrix3x3::Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 FromOuter(const MVector &ma, const MVector &mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:325,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - i
    - v1
    argTypes:
    - int
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: Matrix3x3::SetRow
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void SetRow(int i, const MVector &v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:334,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - i
    - v1
    argTypes:
    - int
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: Matrix3x3::SetCol
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: void
    signature: void SetCol(int i, const MVector &v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Row
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:345,1
    - Dst: Matrix3x3::Row
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:346,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:346,1
    - Dst: MVector::CrossProd
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:347,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:347,1
    - Dst: Matrix3x3::FromRows
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: Matrix3x3::Orthogonalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - MVector::CrossProd
    - Matrix3x3::Row
    - Normalize
    - Matrix3x3::FromRows
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Orthogonalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:353,1
    - Dst: Matrix3x3::Set
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:354,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:354,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:354,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:354,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:355,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:355,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:355,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:356,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:356,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: Matrix3x3::Identity
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Set
    - Matrix3x3::Matrix3x3
    - VType
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Matrix3x3::Zero
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:365,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:365,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:365,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:366,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:366,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:367,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: Matrix3x3::Diagonal
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Matrix3x3
    - VType
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Diagonal(const MVector &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: Matrix3x3::Sym3
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Matrix3x3
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Sym3(const MVector &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:379,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:379,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:380,1
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: Matrix3x3::AntiSym3
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Matrix3x3
    - VType
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 AntiSym3(const MVector &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Matrix3x3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:386,1
    - Dst: MVector::Norm
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:387,1
    - Dst: MVector::Normalize
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:388,1
    - Dst: Matrix3x3::AntiSym3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:389,1
    - Dst: Matrix3x3::Identity
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:390,1
    - Dst: Matrix3x3::Sym3
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:391,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:394,1
    - Dst: sin
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:394,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rot
    argTypes:
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: Matrix3x3::Rodrigues
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Identity
    - Matrix3x3::AntiSym3
    - sin
    - MVector::Normalize
    - Matrix3x3::Sym3
    - Matrix3x3::Matrix3x3
    - cos
    - MVector::Norm
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Rodrigues(const MVector &rot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MVector::Normalize
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:400,1
    - Dst: Matrix3x3::Identity
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:401,1
    - Dst: Matrix3x3::FromOuter
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normal
    argTypes:
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: Matrix3x3::Householder
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Identity
    - Matrix3x3::FromOuter
    - MVector::Normalize
    linkageType: ''
    returnType: Matrix3x3
    signature: Matrix3x3 Householder(const MVector &normal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - u
    argTypes:
    - MVector
    - MVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: Matrix3x3::MulBothSides
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - DotProd
    linkageType: ''
    returnType: VType
    signature: VType MulBothSides(const MVector &v, const MVector &u) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MVector
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:411,1
    - Dst: Vector2<VType>
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vector2<VType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: Matrix3x3::Project
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - MVector
    - Vector2<VType>
    linkageType: ''
    returnType: Vector2<VType>
    signature: Vector2<VType> Project(const Vector2<VType> &v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VType
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:417,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: Matrix3x3::FrobeniusNorm
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - sqrt
    - VType
    linkageType: ''
    returnType: VType
    signature: VType FrobeniusNorm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Trace
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:436,1
    - Dst: Matrix3x3::Det
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:439,1
    - Dst: MathUtil::RealRootsForCubic
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - eig_val
    argTypes:
    - MVector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 448
    functionName: Matrix3x3::EigenValues
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - Matrix3x3::Det
    - Matrix3x3::Trace
    - MathUtil::RealRootsForCubic
    linkageType: ''
    returnType: int
    signature: int EigenValues(MVector *eig_val) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Matrix3x3::Trace
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:462,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:481,1
    - Dst: atan2
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:485,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:485,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:487,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:488,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:489,1
    - Dst: MVector*::ComponentOrder
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:492,1
    - Dst: MVector
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:493,1
    - Dst: MVector::CrossProd
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:510,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:511,1
    - Dst: CrossProd
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:512,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:515,1
    - Dst: DotProd
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:516,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:517,1
    - Dst: Matrix3x3*::SetCol
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - eig_val
    - eig_vec
    argTypes:
    - MVector*
    - Matrix3x3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 520
    functionName: Matrix3x3::SymmetricEigenSolver
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - MVector::CrossProd
    - MVector
    - atan2
    - DotProd
    - sqrt
    - CrossProd
    - Normalize
    - Matrix3x3::Trace
    - MVector*::ComponentOrder
    - Matrix3x3*::SetCol
    - cos
    linkageType: ''
    returnType: void
    signature: "void SymmetricEigenSolver(MVector *eig_val,\n                            Matrix3x3
      *eig_vec /*nullable*/) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 532
    functionName: Matrix3x3::IsNaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - isnan
    linkageType: ''
    returnType: bool
    signature: bool IsNaN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Matrix3x3
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: operator==(const Matrix3x3 &a, const Matrix3x3 &b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Matrix3x3 &a, const Matrix3x3 &b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Matrix3x3
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: operator!=(const Matrix3x3 &a, const Matrix3x3 &b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Matrix3x3 &a, const Matrix3x3 &b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mb
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - out
    - mb
    argTypes:
    - std::ostream
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 564
    functionName: '&operator<<(std::ostream &out, const Matrix3x3 &mb)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - mb
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const Matrix3x3 &mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:568,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:568,1
    - Dst: Matrix3x3::Data
      Src: /src/s2geometry/src/s2/util/math/matrix3x3.h:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - m
    argTypes:
    - H
    - Matrix3x3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: Matrix3x3::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/math/matrix3x3.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine_contiguous
    - Matrix3x3::Data
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Matrix3x3 &m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:63,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: util::math::internal_vector::BasicVector::Reduce
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto Reduce(F f, As*... as) -> decltype(f(as[I]...))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: util::math::internal_vector::BasicVector::Reduce
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: util::math::internal_vector::BasicVector::GenerateEach
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - R
    - util::math::internal_vector::BasicVector::Reduce
    linkageType: ''
    returnType: R
    signature: R GenerateEach(absl::index_sequence<Is...>, F f, As*... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::GenerateEach
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: IdxSeqN
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::forward<As>
      Src: /src/s2geometry/src/s2/util/math/vector.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: util::math::internal_vector::BasicVector::Generate
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::GenerateEach
    - std::move
    - IdxSeqN
    - std::forward<As>
    linkageType: ''
    returnType: R
    signature: R Generate(F f, As&&... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: util::math::internal_vector::BasicVector::Size
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: util::math::internal_vector::BasicVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:88,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:89,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: '& operator[](int b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T & operator[](int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:93,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:94,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: operator[](int b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T operator[](int b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::math::internal_vector::BasicVector::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - AsD
    linkageType: ''
    returnType: std::tuple_element_t<I, D>
    signature: std::tuple_element_t<I, D> & get() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:106,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: util::math::internal_vector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::Size
    - equal
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: operator!=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:111,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:112,1
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: util::math::internal_vector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: operator<(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::Size
    - std::lexicographical_compare
    - AsD
    - Size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator>(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator<=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: operator>=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: '& operator+=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - PlusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator+=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MinusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '& operator-=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MinusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator-=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: '& operator*=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<D&>
    - MulEq
    linkageType: ''
    returnType: D
    signature: D & operator*=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: '& operator/=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - DivEq
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & operator/=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: operator+(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator+(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator-(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator-(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: operator*(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator*(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator/(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator/(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator-(const D& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Generate
    linkageType: ''
    returnType: D
    signature: D operator-(const D& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - VecTemplate<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: util::math::internal_vector::BasicVector::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - static_cast<T>
    linkageType: ''
    returnType: D
    signature: D Cast(const VecTemplate<T2>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::math::internal_vector::BasicVector::MulComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: util::math::internal_vector::BasicVector::DivComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: util::math::internal_vector::BasicVector::Max
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::max
    linkageType: ''
    returnType: D
    signature: D Max(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: util::math::internal_vector::BasicVector::Min
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - min
    linkageType: ''
    returnType: D
    signature: D Min(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Dot
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: util::math::internal_vector::BasicVector::DotProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Dot
    - static_cast<const D&>
    - static_cast<T>
    - Data
    linkageType: ''
    returnType: T
    signature: T DotProd(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: util::math::internal_vector::BasicVector::Norm2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::DotProd
    - AsD
    linkageType: ''
    returnType: T
    signature: T Norm2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    - Dst: util::math::internal_vector::BasicVector::Norm2
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: util::math::internal_vector::BasicVector::Norm
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Norm2
    - sqrt
    linkageType: ''
    returnType: FloatType
    signature: FloatType Norm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Norm
      Src: /src/s2geometry/src/s2/util/math/vector.h:193,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:194,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:195,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: util::math::internal_vector::BasicVector::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    - util::math::internal_vector::BasicVector::Norm
    - T
    linkageType: ''
    returnType: D
    signature: D Normalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:202,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:205,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: util::math::internal_vector::BasicVector::Sqrt
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - sqrt
    linkageType: ''
    returnType: D
    signature: D Sqrt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:212,1
    - Dst: floor
      Src: /src/s2geometry/src/s2/util/math/vector.h:215,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: util::math::internal_vector::BasicVector::Floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - floor
    - AsD
    linkageType: ''
    returnType: D
    signature: D Floor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:222,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/util/math/vector.h:225,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: util::math::internal_vector::BasicVector::Ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - ceil
    - AsD
    linkageType: ''
    returnType: D
    signature: D Ceil() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: util::math::internal_vector::BasicVector::FRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - rint
    - AsD
    linkageType: ''
    returnType: D
    signature: D FRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: lrint
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: util::math::internal_vector::BasicVector::IRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - lrint
    linkageType: ''
    returnType: VecTemplate<int>
    signature: VecTemplate<int> IRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:246,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/vector.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: util::math::internal_vector::BasicVector::IsNaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - isnan
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool IsNaN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    - Dst: std::numeric_limits<T>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: util::math::internal_vector::BasicVector::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::numeric_limits<T>::quiet_NaN
    linkageType: ''
    returnType: D
    signature: D NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Print
      Src: /src/s2geometry/src/s2/util/math/vector.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: '& operator<<(std::ostream& out, const D& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Print
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const D& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: util::math::internal_vector::BasicVector::MulScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: util::math::internal_vector::BasicVector::DivScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    - Dst: util::math::internal_vector::BasicVector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' vec'
    argTypes:
    - H
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::math::internal_vector::BasicVector::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine_contiguous
    - static_cast<const D&>
    - util::math::internal_vector::BasicVector::Size
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e
      Src: /src/s2geometry/src/s2/util/math/vector.h:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ' vec'
    argTypes:
    - E
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: util::math::internal_vector::BasicVector::FlumeEncode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - e
    linkageType: ''
    returnType: void
    signature: void FlumeEncode(E e, const BasicVector& vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/s2geometry/src/s2/util/math/vector.h:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ' vec'
    argTypes:
    - D
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: util::math::internal_vector::BasicVector::FlumeDecode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - d
    linkageType: ''
    returnType: bool
    signature: bool FlumeDecode(D d, BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& AsD() const'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    linkageType: ''
    returnType: D
    signature: D & AsD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: '& AsD()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & AsD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, const U& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/vector.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - v
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: util::math::internal_vector::BasicVector::Ignore
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ignore(std::initializer_list<bool>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - T
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: util::math::internal_vector::BasicVector::Dot
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: T
    signature: T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: util::math::internal_vector::BasicVector::PlusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void PlusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: util::math::internal_vector::BasicVector::MinusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MinusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: util::math::internal_vector::BasicVector::MulEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MulEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: util::math::internal_vector::BasicVector::DivEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void DivEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MulScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - DivScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:63,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: util::math::internal_vector::BasicVector::Reduce
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto Reduce(F f, As*... as) -> decltype(f(as[I]...))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: util::math::internal_vector::BasicVector::Reduce
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: util::math::internal_vector::BasicVector::GenerateEach
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached:
    - std::move
    - R
    - util::math::internal_vector::BasicVector::Reduce
    linkageType: ''
    returnType: R
    signature: R GenerateEach(absl::index_sequence<Is...>, F f, As*... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::GenerateEach
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: IdxSeqN
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::forward<As>
      Src: /src/s2geometry/src/s2/util/math/vector.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: util::math::internal_vector::BasicVector::Generate
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 13
    functionsReached:
    - util::math::internal_vector::BasicVector::GenerateEach
    - std::move
    - IdxSeqN
    - std::forward<As>
    linkageType: ''
    returnType: R
    signature: R Generate(F f, As&&... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: util::math::internal_vector::BasicVector::Size
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: util::math::internal_vector::BasicVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:88,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:89,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: '& operator[](int b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T & operator[](int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:93,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:94,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: operator[](int b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T operator[](int b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::math::internal_vector::BasicVector::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - AsD
    linkageType: ''
    returnType: std::tuple_element_t<I, D>
    signature: std::tuple_element_t<I, D> & get() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:106,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: util::math::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::Size
    - equal
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: operator!=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:111,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:112,1
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: util::math::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: operator<(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::lexicographical_compare
    - util::math::Size
    - AsD
    - Size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator>(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator<=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: operator>=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: '& operator+=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - PlusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator+=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MinusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '& operator-=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MinusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator-=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: '& operator*=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<D&>
    - MulEq
    linkageType: ''
    returnType: D
    signature: D & operator*=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: '& operator/=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - DivEq
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & operator/=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: operator+(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator+(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator-(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator-(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: operator*(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator*(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator/(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator/(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator-(const D& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Generate
    linkageType: ''
    returnType: D
    signature: D operator-(const D& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - VecTemplate<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: util::math::internal_vector::BasicVector::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - static_cast<T>
    linkageType: ''
    returnType: D
    signature: D Cast(const VecTemplate<T2>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::math::internal_vector::BasicVector::MulComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: util::math::internal_vector::BasicVector::DivComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: util::math::internal_vector::BasicVector::Max
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::max
    linkageType: ''
    returnType: D
    signature: D Max(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: util::math::internal_vector::BasicVector::Min
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - min
    linkageType: ''
    returnType: D
    signature: D Min(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Dot
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: util::math::internal_vector::BasicVector::DotProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached:
    - util::math::internal_vector::BasicVector::Dot
    - static_cast<const D&>
    - static_cast<T>
    - Data
    linkageType: ''
    returnType: T
    signature: T DotProd(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: util::math::internal_vector::BasicVector::Norm2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached:
    - util::math::internal_vector::BasicVector::DotProd
    - AsD
    linkageType: ''
    returnType: T
    signature: T Norm2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    - Dst: util::math::internal_vector::BasicVector::Norm2
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: util::math::internal_vector::BasicVector::Norm
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached:
    - util::math::internal_vector::BasicVector::Norm2
    - sqrt
    linkageType: ''
    returnType: FloatType
    signature: FloatType Norm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Norm
      Src: /src/s2geometry/src/s2/util/math/vector.h:193,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:194,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:195,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: util::math::internal_vector::BasicVector::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    - util::math::internal_vector::BasicVector::Norm
    - T
    linkageType: ''
    returnType: D
    signature: D Normalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:202,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:205,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: util::math::internal_vector::BasicVector::Sqrt
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - sqrt
    linkageType: ''
    returnType: D
    signature: D Sqrt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:212,1
    - Dst: floor
      Src: /src/s2geometry/src/s2/util/math/vector.h:215,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: util::math::internal_vector::BasicVector::Floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - floor
    - AsD
    linkageType: ''
    returnType: D
    signature: D Floor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:222,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/util/math/vector.h:225,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: util::math::internal_vector::BasicVector::Ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - ceil
    - AsD
    linkageType: ''
    returnType: D
    signature: D Ceil() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: util::math::internal_vector::BasicVector::FRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - rint
    - AsD
    linkageType: ''
    returnType: D
    signature: D FRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: lrint
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: util::math::internal_vector::BasicVector::IRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - lrint
    linkageType: ''
    returnType: VecTemplate<int>
    signature: VecTemplate<int> IRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:246,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/vector.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: util::math::internal_vector::BasicVector::IsNaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - isnan
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool IsNaN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    - Dst: std::numeric_limits<T>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: util::math::internal_vector::BasicVector::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::numeric_limits<T>::quiet_NaN
    linkageType: ''
    returnType: D
    signature: D NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Print
      Src: /src/s2geometry/src/s2/util/math/vector.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: '& operator<<(std::ostream& out, const D& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Print
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const D& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: util::math::internal_vector::BasicVector::MulScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: util::math::internal_vector::BasicVector::DivScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    - Dst: util::math::internal_vector::BasicVector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' vec'
    argTypes:
    - H
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::math::internal_vector::BasicVector::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine_contiguous
    - static_cast<const D&>
    - util::math::internal_vector::BasicVector::Size
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e
      Src: /src/s2geometry/src/s2/util/math/vector.h:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ' vec'
    argTypes:
    - E
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: util::math::internal_vector::BasicVector::FlumeEncode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - e
    linkageType: ''
    returnType: void
    signature: void FlumeEncode(E e, const BasicVector& vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/s2geometry/src/s2/util/math/vector.h:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ' vec'
    argTypes:
    - D
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: util::math::internal_vector::BasicVector::FlumeDecode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - d
    linkageType: ''
    returnType: bool
    signature: bool FlumeDecode(D d, BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& AsD() const'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    linkageType: ''
    returnType: D
    signature: D & AsD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: '& AsD()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & AsD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, const U& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/vector.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - v
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: util::math::internal_vector::BasicVector::Ignore
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ignore(std::initializer_list<bool>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - T
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: util::math::internal_vector::BasicVector::Dot
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: T
    signature: T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: util::math::internal_vector::BasicVector::PlusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void PlusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: util::math::internal_vector::BasicVector::MinusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MinusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: util::math::internal_vector::BasicVector::MulEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MulEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: util::math::internal_vector::BasicVector::DivEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void DivEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MulScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - DivScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:63,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: util::math::internal_vector::BasicVector::Reduce
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto Reduce(F f, As*... as) -> decltype(f(as[I]...))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: util::math::internal_vector::BasicVector::Reduce
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: util::math::internal_vector::BasicVector::GenerateEach
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached:
    - std::move
    - R
    - util::math::internal_vector::BasicVector::Reduce
    linkageType: ''
    returnType: R
    signature: R GenerateEach(absl::index_sequence<Is...>, F f, As*... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::GenerateEach
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: IdxSeqN
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::forward<As>
      Src: /src/s2geometry/src/s2/util/math/vector.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: util::math::internal_vector::BasicVector::Generate
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 26
    functionsReached:
    - util::math::internal_vector::BasicVector::GenerateEach
    - std::move
    - IdxSeqN
    - std::forward<As>
    linkageType: ''
    returnType: R
    signature: R Generate(F f, As&&... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: util::math::internal_vector::BasicVector::Size
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: util::math::internal_vector::BasicVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:88,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:89,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: '& operator[](int b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T & operator[](int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:93,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:94,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: operator[](int b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T operator[](int b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::math::internal_vector::BasicVector::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - AsD
    linkageType: ''
    returnType: std::tuple_element_t<I, D>
    signature: std::tuple_element_t<I, D> & get() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:106,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: util::internal_vector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - equal
    - util::internal_vector::Size
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: operator!=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:111,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:112,1
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: util::internal_vector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: operator<(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::lexicographical_compare
    - util::internal_vector::Size
    - AsD
    - Size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator>(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator<=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: operator>=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: '& operator+=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - PlusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator+=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MinusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '& operator-=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MinusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator-=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: '& operator*=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<D&>
    - MulEq
    linkageType: ''
    returnType: D
    signature: D & operator*=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: '& operator/=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - DivEq
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & operator/=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: operator+(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator+(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator-(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator-(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: operator*(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator*(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator/(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator/(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator-(const D& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Generate
    linkageType: ''
    returnType: D
    signature: D operator-(const D& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - VecTemplate<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: util::math::internal_vector::BasicVector::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - static_cast<T>
    linkageType: ''
    returnType: D
    signature: D Cast(const VecTemplate<T2>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::math::internal_vector::BasicVector::MulComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: util::math::internal_vector::BasicVector::DivComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: util::math::internal_vector::BasicVector::Max
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::max
    linkageType: ''
    returnType: D
    signature: D Max(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: util::math::internal_vector::BasicVector::Min
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - min
    linkageType: ''
    returnType: D
    signature: D Min(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Dot
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: util::math::internal_vector::BasicVector::DotProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached:
    - util::math::internal_vector::BasicVector::Dot
    - static_cast<const D&>
    - static_cast<T>
    - Data
    linkageType: ''
    returnType: T
    signature: T DotProd(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: util::math::internal_vector::BasicVector::Norm2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached:
    - util::math::internal_vector::BasicVector::DotProd
    - AsD
    linkageType: ''
    returnType: T
    signature: T Norm2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    - Dst: util::math::internal_vector::BasicVector::Norm2
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: util::math::internal_vector::BasicVector::Norm
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached:
    - util::math::internal_vector::BasicVector::Norm2
    - sqrt
    linkageType: ''
    returnType: FloatType
    signature: FloatType Norm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Norm
      Src: /src/s2geometry/src/s2/util/math/vector.h:193,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:194,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:195,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: util::math::internal_vector::BasicVector::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    - util::math::internal_vector::BasicVector::Norm
    - T
    linkageType: ''
    returnType: D
    signature: D Normalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:202,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:205,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: util::math::internal_vector::BasicVector::Sqrt
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - sqrt
    linkageType: ''
    returnType: D
    signature: D Sqrt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:212,1
    - Dst: floor
      Src: /src/s2geometry/src/s2/util/math/vector.h:215,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: util::math::internal_vector::BasicVector::Floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - floor
    - AsD
    linkageType: ''
    returnType: D
    signature: D Floor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:222,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/util/math/vector.h:225,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: util::math::internal_vector::BasicVector::Ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - ceil
    - AsD
    linkageType: ''
    returnType: D
    signature: D Ceil() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: util::math::internal_vector::BasicVector::FRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - rint
    - AsD
    linkageType: ''
    returnType: D
    signature: D FRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: lrint
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: util::math::internal_vector::BasicVector::IRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - lrint
    linkageType: ''
    returnType: VecTemplate<int>
    signature: VecTemplate<int> IRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:246,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/vector.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: util::math::internal_vector::BasicVector::IsNaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - isnan
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool IsNaN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    - Dst: std::numeric_limits<T>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: util::math::internal_vector::BasicVector::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::numeric_limits<T>::quiet_NaN
    linkageType: ''
    returnType: D
    signature: D NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Print
      Src: /src/s2geometry/src/s2/util/math/vector.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: '& operator<<(std::ostream& out, const D& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Print
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const D& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: util::math::internal_vector::BasicVector::MulScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: util::math::internal_vector::BasicVector::DivScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    - Dst: util::math::internal_vector::BasicVector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' vec'
    argTypes:
    - H
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::math::internal_vector::BasicVector::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine_contiguous
    - static_cast<const D&>
    - util::math::internal_vector::BasicVector::Size
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e
      Src: /src/s2geometry/src/s2/util/math/vector.h:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ' vec'
    argTypes:
    - E
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: util::math::internal_vector::BasicVector::FlumeEncode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - e
    linkageType: ''
    returnType: void
    signature: void FlumeEncode(E e, const BasicVector& vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/s2geometry/src/s2/util/math/vector.h:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ' vec'
    argTypes:
    - D
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: util::math::internal_vector::BasicVector::FlumeDecode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - d
    linkageType: ''
    returnType: bool
    signature: bool FlumeDecode(D d, BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& AsD() const'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    linkageType: ''
    returnType: D
    signature: D & AsD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: '& AsD()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & AsD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, const U& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/vector.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - v
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: util::math::internal_vector::BasicVector::Ignore
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ignore(std::initializer_list<bool>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - T
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: util::math::internal_vector::BasicVector::Dot
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: T
    signature: T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: util::math::internal_vector::BasicVector::PlusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void PlusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: util::math::internal_vector::BasicVector::MinusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MinusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: util::math::internal_vector::BasicVector::MulEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MulEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: util::math::internal_vector::BasicVector::DivEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void DivEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MulScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - DivScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:63,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: util::math::internal_vector::BasicVector::Reduce
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto Reduce(F f, As*... as) -> decltype(f(as[I]...))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: util::math::internal_vector::BasicVector::Reduce
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: util::math::internal_vector::BasicVector::GenerateEach
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached:
    - std::move
    - R
    - util::math::internal_vector::BasicVector::Reduce
    linkageType: ''
    returnType: R
    signature: R GenerateEach(absl::index_sequence<Is...>, F f, As*... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::GenerateEach
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: IdxSeqN
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::forward<As>
      Src: /src/s2geometry/src/s2/util/math/vector.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: util::math::internal_vector::BasicVector::Generate
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 39
    functionsReached:
    - util::math::internal_vector::BasicVector::GenerateEach
    - std::move
    - IdxSeqN
    - std::forward<As>
    linkageType: ''
    returnType: R
    signature: R Generate(F f, As&&... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: util::math::internal_vector::BasicVector::Size
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: util::math::internal_vector::BasicVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:88,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:89,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: '& operator[](int b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T & operator[](int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:93,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:94,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: operator[](int b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T operator[](int b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::math::internal_vector::BasicVector::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - AsD
    linkageType: ''
    returnType: std::tuple_element_t<I, D>
    signature: std::tuple_element_t<I, D> & get() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:106,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: util::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::Size
    - equal
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: operator!=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:111,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:112,1
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: util::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: operator<(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::Size
    - std::lexicographical_compare
    - AsD
    - Size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator>(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator<=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: operator>=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: '& operator+=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - PlusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator+=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MinusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '& operator-=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MinusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator-=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: '& operator*=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<D&>
    - MulEq
    linkageType: ''
    returnType: D
    signature: D & operator*=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: '& operator/=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - DivEq
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & operator/=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: operator+(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator+(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator-(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator-(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: operator*(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator*(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator/(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator/(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator-(const D& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Generate
    linkageType: ''
    returnType: D
    signature: D operator-(const D& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - VecTemplate<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: util::math::internal_vector::BasicVector::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - static_cast<T>
    linkageType: ''
    returnType: D
    signature: D Cast(const VecTemplate<T2>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::math::internal_vector::BasicVector::MulComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: util::math::internal_vector::BasicVector::DivComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: util::math::internal_vector::BasicVector::Max
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::max
    linkageType: ''
    returnType: D
    signature: D Max(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: util::math::internal_vector::BasicVector::Min
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - min
    linkageType: ''
    returnType: D
    signature: D Min(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Dot
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: util::math::internal_vector::BasicVector::DotProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached:
    - util::math::internal_vector::BasicVector::Dot
    - static_cast<const D&>
    - static_cast<T>
    - Data
    linkageType: ''
    returnType: T
    signature: T DotProd(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: util::math::internal_vector::BasicVector::Norm2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached:
    - util::math::internal_vector::BasicVector::DotProd
    - AsD
    linkageType: ''
    returnType: T
    signature: T Norm2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    - Dst: util::math::internal_vector::BasicVector::Norm2
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: util::math::internal_vector::BasicVector::Norm
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached:
    - util::math::internal_vector::BasicVector::Norm2
    - sqrt
    linkageType: ''
    returnType: FloatType
    signature: FloatType Norm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Norm
      Src: /src/s2geometry/src/s2/util/math/vector.h:193,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:194,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:195,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: util::math::internal_vector::BasicVector::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    - util::math::internal_vector::BasicVector::Norm
    - T
    linkageType: ''
    returnType: D
    signature: D Normalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:202,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:205,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: util::math::internal_vector::BasicVector::Sqrt
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - sqrt
    linkageType: ''
    returnType: D
    signature: D Sqrt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:212,1
    - Dst: floor
      Src: /src/s2geometry/src/s2/util/math/vector.h:215,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: util::math::internal_vector::BasicVector::Floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - floor
    - AsD
    linkageType: ''
    returnType: D
    signature: D Floor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:222,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/util/math/vector.h:225,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: util::math::internal_vector::BasicVector::Ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - ceil
    - AsD
    linkageType: ''
    returnType: D
    signature: D Ceil() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: util::math::internal_vector::BasicVector::FRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - rint
    - AsD
    linkageType: ''
    returnType: D
    signature: D FRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: lrint
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: util::math::internal_vector::BasicVector::IRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - lrint
    linkageType: ''
    returnType: VecTemplate<int>
    signature: VecTemplate<int> IRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:246,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/vector.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: util::math::internal_vector::BasicVector::IsNaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - isnan
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool IsNaN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    - Dst: std::numeric_limits<T>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: util::math::internal_vector::BasicVector::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::numeric_limits<T>::quiet_NaN
    linkageType: ''
    returnType: D
    signature: D NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Print
      Src: /src/s2geometry/src/s2/util/math/vector.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: '& operator<<(std::ostream& out, const D& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Print
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const D& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: util::math::internal_vector::BasicVector::MulScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: util::math::internal_vector::BasicVector::DivScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    - Dst: util::math::internal_vector::BasicVector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' vec'
    argTypes:
    - H
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::math::internal_vector::BasicVector::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine_contiguous
    - static_cast<const D&>
    - util::math::internal_vector::BasicVector::Size
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e
      Src: /src/s2geometry/src/s2/util/math/vector.h:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ' vec'
    argTypes:
    - E
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: util::math::internal_vector::BasicVector::FlumeEncode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - e
    linkageType: ''
    returnType: void
    signature: void FlumeEncode(E e, const BasicVector& vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/s2geometry/src/s2/util/math/vector.h:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ' vec'
    argTypes:
    - D
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: util::math::internal_vector::BasicVector::FlumeDecode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - d
    linkageType: ''
    returnType: bool
    signature: bool FlumeDecode(D d, BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& AsD() const'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    linkageType: ''
    returnType: D
    signature: D & AsD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: '& AsD()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & AsD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, const U& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/vector.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - v
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: util::math::internal_vector::BasicVector::Ignore
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ignore(std::initializer_list<bool>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - T
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: util::math::internal_vector::BasicVector::Dot
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 4
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: T
    signature: T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: util::math::internal_vector::BasicVector::PlusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void PlusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: util::math::internal_vector::BasicVector::MinusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MinusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: util::math::internal_vector::BasicVector::MulEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MulEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: util::math::internal_vector::BasicVector::DivEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void DivEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MulScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - DivScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:63,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: util::math::internal_vector::BasicVector::Reduce
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 4
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto Reduce(F f, As*... as) -> decltype(f(as[I]...))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: util::math::internal_vector::BasicVector::Reduce
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: util::math::internal_vector::BasicVector::GenerateEach
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 4
    functionsReached:
    - std::move
    - R
    - util::math::internal_vector::BasicVector::Reduce
    linkageType: ''
    returnType: R
    signature: R GenerateEach(absl::index_sequence<Is...>, F f, As*... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::GenerateEach
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: IdxSeqN
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::forward<As>
      Src: /src/s2geometry/src/s2/util/math/vector.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: util::math::internal_vector::BasicVector::Generate
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 52
    functionsReached:
    - util::math::internal_vector::BasicVector::GenerateEach
    - std::move
    - IdxSeqN
    - std::forward<As>
    linkageType: ''
    returnType: R
    signature: R Generate(F f, As&&... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: util::math::internal_vector::BasicVector::Size
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: util::math::internal_vector::BasicVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:88,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:89,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: '& operator[](int b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T & operator[](int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:93,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:94,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: operator[](int b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T operator[](int b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::math::internal_vector::BasicVector::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - AsD
    linkageType: ''
    returnType: std::tuple_element_t<I, D>
    signature: std::tuple_element_t<I, D> & get() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:106,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: math::internal_vector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - math::internal_vector::Size
    - equal
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: operator!=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:111,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:112,1
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: math::internal_vector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: operator<(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - math::internal_vector::Size
    - std::lexicographical_compare
    - AsD
    - Size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator>(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator<=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: operator>=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: '& operator+=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - PlusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator+=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MinusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '& operator-=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MinusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator-=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: '& operator*=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<D&>
    - MulEq
    linkageType: ''
    returnType: D
    signature: D & operator*=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: '& operator/=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - DivEq
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & operator/=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: operator+(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator+(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator-(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator-(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: operator*(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator*(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator/(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator/(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator-(const D& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Generate
    linkageType: ''
    returnType: D
    signature: D operator-(const D& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - VecTemplate<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: util::math::internal_vector::BasicVector::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - static_cast<T>
    linkageType: ''
    returnType: D
    signature: D Cast(const VecTemplate<T2>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::math::internal_vector::BasicVector::MulComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: util::math::internal_vector::BasicVector::DivComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: util::math::internal_vector::BasicVector::Max
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::max
    linkageType: ''
    returnType: D
    signature: D Max(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: util::math::internal_vector::BasicVector::Min
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - min
    linkageType: ''
    returnType: D
    signature: D Min(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Dot
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: util::math::internal_vector::BasicVector::DotProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 4
    functionsReached:
    - util::math::internal_vector::BasicVector::Dot
    - static_cast<const D&>
    - static_cast<T>
    - Data
    linkageType: ''
    returnType: T
    signature: T DotProd(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: util::math::internal_vector::BasicVector::Norm2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 4
    functionsReached:
    - util::math::internal_vector::BasicVector::DotProd
    - AsD
    linkageType: ''
    returnType: T
    signature: T Norm2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    - Dst: util::math::internal_vector::BasicVector::Norm2
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: util::math::internal_vector::BasicVector::Norm
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 4
    functionsReached:
    - util::math::internal_vector::BasicVector::Norm2
    - sqrt
    linkageType: ''
    returnType: FloatType
    signature: FloatType Norm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Norm
      Src: /src/s2geometry/src/s2/util/math/vector.h:193,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:194,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:195,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: util::math::internal_vector::BasicVector::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    - util::math::internal_vector::BasicVector::Norm
    - T
    linkageType: ''
    returnType: D
    signature: D Normalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:202,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:205,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: util::math::internal_vector::BasicVector::Sqrt
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - sqrt
    linkageType: ''
    returnType: D
    signature: D Sqrt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:212,1
    - Dst: floor
      Src: /src/s2geometry/src/s2/util/math/vector.h:215,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: util::math::internal_vector::BasicVector::Floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - floor
    - AsD
    linkageType: ''
    returnType: D
    signature: D Floor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:222,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/util/math/vector.h:225,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: util::math::internal_vector::BasicVector::Ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - ceil
    - AsD
    linkageType: ''
    returnType: D
    signature: D Ceil() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: util::math::internal_vector::BasicVector::FRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - rint
    - AsD
    linkageType: ''
    returnType: D
    signature: D FRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: lrint
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: util::math::internal_vector::BasicVector::IRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - lrint
    linkageType: ''
    returnType: VecTemplate<int>
    signature: VecTemplate<int> IRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:246,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/vector.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: util::math::internal_vector::BasicVector::IsNaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - isnan
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool IsNaN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    - Dst: std::numeric_limits<T>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: util::math::internal_vector::BasicVector::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::numeric_limits<T>::quiet_NaN
    linkageType: ''
    returnType: D
    signature: D NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Print
      Src: /src/s2geometry/src/s2/util/math/vector.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: '& operator<<(std::ostream& out, const D& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Print
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const D& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: util::math::internal_vector::BasicVector::MulScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: util::math::internal_vector::BasicVector::DivScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    - Dst: util::math::internal_vector::BasicVector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' vec'
    argTypes:
    - H
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::math::internal_vector::BasicVector::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine_contiguous
    - static_cast<const D&>
    - util::math::internal_vector::BasicVector::Size
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e
      Src: /src/s2geometry/src/s2/util/math/vector.h:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ' vec'
    argTypes:
    - E
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: util::math::internal_vector::BasicVector::FlumeEncode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - e
    linkageType: ''
    returnType: void
    signature: void FlumeEncode(E e, const BasicVector& vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/s2geometry/src/s2/util/math/vector.h:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ' vec'
    argTypes:
    - D
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: util::math::internal_vector::BasicVector::FlumeDecode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - d
    linkageType: ''
    returnType: bool
    signature: bool FlumeDecode(D d, BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& AsD() const'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    linkageType: ''
    returnType: D
    signature: D & AsD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: '& AsD()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & AsD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, const U& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/vector.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - v
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: util::math::internal_vector::BasicVector::Ignore
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ignore(std::initializer_list<bool>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - T
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: util::math::internal_vector::BasicVector::Dot
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 5
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: T
    signature: T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: util::math::internal_vector::BasicVector::PlusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void PlusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: util::math::internal_vector::BasicVector::MinusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MinusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: util::math::internal_vector::BasicVector::MulEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MulEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: util::math::internal_vector::BasicVector::DivEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void DivEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MulScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - DivScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:63,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: util::math::internal_vector::BasicVector::Reduce
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 5
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto Reduce(F f, As*... as) -> decltype(f(as[I]...))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: util::math::internal_vector::BasicVector::Reduce
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: util::math::internal_vector::BasicVector::GenerateEach
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 5
    functionsReached:
    - std::move
    - R
    - util::math::internal_vector::BasicVector::Reduce
    linkageType: ''
    returnType: R
    signature: R GenerateEach(absl::index_sequence<Is...>, F f, As*... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::GenerateEach
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: IdxSeqN
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::forward<As>
      Src: /src/s2geometry/src/s2/util/math/vector.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: util::math::internal_vector::BasicVector::Generate
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 65
    functionsReached:
    - util::math::internal_vector::BasicVector::GenerateEach
    - std::move
    - IdxSeqN
    - std::forward<As>
    linkageType: ''
    returnType: R
    signature: R Generate(F f, As&&... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: util::math::internal_vector::BasicVector::Size
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: util::math::internal_vector::BasicVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:88,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:89,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: '& operator[](int b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T & operator[](int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:93,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:94,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: operator[](int b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T operator[](int b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::math::internal_vector::BasicVector::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - AsD
    linkageType: ''
    returnType: std::tuple_element_t<I, D>
    signature: std::tuple_element_t<I, D> & get() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:106,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: math::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - equal
    - AsD
    - math::Size
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: operator!=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:111,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:112,1
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: math::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: operator<(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Size
    - std::lexicographical_compare
    - AsD
    - math::Size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator>(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator<=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: operator>=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: '& operator+=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - PlusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator+=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MinusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '& operator-=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MinusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator-=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: '& operator*=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<D&>
    - MulEq
    linkageType: ''
    returnType: D
    signature: D & operator*=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: '& operator/=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - DivEq
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & operator/=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: operator+(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator+(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator-(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator-(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: operator*(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator*(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator/(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator/(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator-(const D& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Generate
    linkageType: ''
    returnType: D
    signature: D operator-(const D& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - VecTemplate<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: util::math::internal_vector::BasicVector::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - static_cast<T>
    linkageType: ''
    returnType: D
    signature: D Cast(const VecTemplate<T2>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::math::internal_vector::BasicVector::MulComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: util::math::internal_vector::BasicVector::DivComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: util::math::internal_vector::BasicVector::Max
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::max
    linkageType: ''
    returnType: D
    signature: D Max(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: util::math::internal_vector::BasicVector::Min
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - min
    linkageType: ''
    returnType: D
    signature: D Min(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Dot
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: util::math::internal_vector::BasicVector::DotProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 5
    functionsReached:
    - util::math::internal_vector::BasicVector::Dot
    - static_cast<const D&>
    - static_cast<T>
    - Data
    linkageType: ''
    returnType: T
    signature: T DotProd(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: util::math::internal_vector::BasicVector::Norm2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 5
    functionsReached:
    - util::math::internal_vector::BasicVector::DotProd
    - AsD
    linkageType: ''
    returnType: T
    signature: T Norm2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    - Dst: util::math::internal_vector::BasicVector::Norm2
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: util::math::internal_vector::BasicVector::Norm
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 5
    functionsReached:
    - util::math::internal_vector::BasicVector::Norm2
    - sqrt
    linkageType: ''
    returnType: FloatType
    signature: FloatType Norm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Norm
      Src: /src/s2geometry/src/s2/util/math/vector.h:193,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:194,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:195,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: util::math::internal_vector::BasicVector::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    - util::math::internal_vector::BasicVector::Norm
    - T
    linkageType: ''
    returnType: D
    signature: D Normalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:202,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:205,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: util::math::internal_vector::BasicVector::Sqrt
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - sqrt
    linkageType: ''
    returnType: D
    signature: D Sqrt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:212,1
    - Dst: floor
      Src: /src/s2geometry/src/s2/util/math/vector.h:215,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: util::math::internal_vector::BasicVector::Floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - floor
    - AsD
    linkageType: ''
    returnType: D
    signature: D Floor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:222,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/util/math/vector.h:225,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: util::math::internal_vector::BasicVector::Ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - ceil
    - AsD
    linkageType: ''
    returnType: D
    signature: D Ceil() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: util::math::internal_vector::BasicVector::FRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - rint
    - AsD
    linkageType: ''
    returnType: D
    signature: D FRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: lrint
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: util::math::internal_vector::BasicVector::IRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - lrint
    linkageType: ''
    returnType: VecTemplate<int>
    signature: VecTemplate<int> IRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:246,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/vector.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: util::math::internal_vector::BasicVector::IsNaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - isnan
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool IsNaN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    - Dst: std::numeric_limits<T>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: util::math::internal_vector::BasicVector::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::numeric_limits<T>::quiet_NaN
    linkageType: ''
    returnType: D
    signature: D NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Print
      Src: /src/s2geometry/src/s2/util/math/vector.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: '& operator<<(std::ostream& out, const D& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Print
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const D& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: util::math::internal_vector::BasicVector::MulScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: util::math::internal_vector::BasicVector::DivScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    - Dst: util::math::internal_vector::BasicVector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' vec'
    argTypes:
    - H
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::math::internal_vector::BasicVector::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine_contiguous
    - static_cast<const D&>
    - util::math::internal_vector::BasicVector::Size
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e
      Src: /src/s2geometry/src/s2/util/math/vector.h:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ' vec'
    argTypes:
    - E
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: util::math::internal_vector::BasicVector::FlumeEncode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - e
    linkageType: ''
    returnType: void
    signature: void FlumeEncode(E e, const BasicVector& vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/s2geometry/src/s2/util/math/vector.h:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ' vec'
    argTypes:
    - D
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: util::math::internal_vector::BasicVector::FlumeDecode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - d
    linkageType: ''
    returnType: bool
    signature: bool FlumeDecode(D d, BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& AsD() const'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    linkageType: ''
    returnType: D
    signature: D & AsD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: '& AsD()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & AsD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, const U& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/vector.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - v
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: util::math::internal_vector::BasicVector::Ignore
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ignore(std::initializer_list<bool>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - T
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: util::math::internal_vector::BasicVector::Dot
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 6
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: T
    signature: T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: util::math::internal_vector::BasicVector::PlusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void PlusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: util::math::internal_vector::BasicVector::MinusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MinusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: util::math::internal_vector::BasicVector::MulEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MulEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: util::math::internal_vector::BasicVector::DivEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void DivEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MulScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - DivScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:63,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: util::math::internal_vector::BasicVector::Reduce
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 6
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto Reduce(F f, As*... as) -> decltype(f(as[I]...))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: util::math::internal_vector::BasicVector::Reduce
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: util::math::internal_vector::BasicVector::GenerateEach
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 6
    functionsReached:
    - std::move
    - R
    - util::math::internal_vector::BasicVector::Reduce
    linkageType: ''
    returnType: R
    signature: R GenerateEach(absl::index_sequence<Is...>, F f, As*... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::GenerateEach
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: IdxSeqN
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::forward<As>
      Src: /src/s2geometry/src/s2/util/math/vector.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: util::math::internal_vector::BasicVector::Generate
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 78
    functionsReached:
    - util::math::internal_vector::BasicVector::GenerateEach
    - std::move
    - IdxSeqN
    - std::forward<As>
    linkageType: ''
    returnType: R
    signature: R Generate(F f, As&&... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: util::math::internal_vector::BasicVector::Size
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: util::math::internal_vector::BasicVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:88,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:89,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: '& operator[](int b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T & operator[](int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:93,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:94,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: operator[](int b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T operator[](int b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::math::internal_vector::BasicVector::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - AsD
    linkageType: ''
    returnType: std::tuple_element_t<I, D>
    signature: std::tuple_element_t<I, D> & get() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:106,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: internal_vector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - internal_vector::Size
    - equal
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: operator!=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:111,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:112,1
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: internal_vector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: operator<(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::lexicographical_compare
    - internal_vector::Size
    - AsD
    - Size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator>(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator<=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: operator>=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: '& operator+=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - PlusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator+=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MinusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '& operator-=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MinusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator-=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: '& operator*=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<D&>
    - MulEq
    linkageType: ''
    returnType: D
    signature: D & operator*=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: '& operator/=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - DivEq
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & operator/=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: operator+(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator+(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator-(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator-(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: operator*(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator*(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator/(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator/(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator-(const D& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Generate
    linkageType: ''
    returnType: D
    signature: D operator-(const D& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - VecTemplate<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: util::math::internal_vector::BasicVector::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - static_cast<T>
    linkageType: ''
    returnType: D
    signature: D Cast(const VecTemplate<T2>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::math::internal_vector::BasicVector::MulComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: util::math::internal_vector::BasicVector::DivComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: util::math::internal_vector::BasicVector::Max
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::max
    linkageType: ''
    returnType: D
    signature: D Max(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: util::math::internal_vector::BasicVector::Min
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - min
    linkageType: ''
    returnType: D
    signature: D Min(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Dot
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: util::math::internal_vector::BasicVector::DotProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 6
    functionsReached:
    - util::math::internal_vector::BasicVector::Dot
    - static_cast<const D&>
    - static_cast<T>
    - Data
    linkageType: ''
    returnType: T
    signature: T DotProd(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: util::math::internal_vector::BasicVector::Norm2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 6
    functionsReached:
    - util::math::internal_vector::BasicVector::DotProd
    - AsD
    linkageType: ''
    returnType: T
    signature: T Norm2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    - Dst: util::math::internal_vector::BasicVector::Norm2
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: util::math::internal_vector::BasicVector::Norm
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 6
    functionsReached:
    - util::math::internal_vector::BasicVector::Norm2
    - sqrt
    linkageType: ''
    returnType: FloatType
    signature: FloatType Norm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Norm
      Src: /src/s2geometry/src/s2/util/math/vector.h:193,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:194,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:195,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: util::math::internal_vector::BasicVector::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    - util::math::internal_vector::BasicVector::Norm
    - T
    linkageType: ''
    returnType: D
    signature: D Normalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:202,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:205,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: util::math::internal_vector::BasicVector::Sqrt
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - sqrt
    linkageType: ''
    returnType: D
    signature: D Sqrt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:212,1
    - Dst: floor
      Src: /src/s2geometry/src/s2/util/math/vector.h:215,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: util::math::internal_vector::BasicVector::Floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - floor
    - AsD
    linkageType: ''
    returnType: D
    signature: D Floor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:222,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/util/math/vector.h:225,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: util::math::internal_vector::BasicVector::Ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - ceil
    - AsD
    linkageType: ''
    returnType: D
    signature: D Ceil() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: util::math::internal_vector::BasicVector::FRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - rint
    - AsD
    linkageType: ''
    returnType: D
    signature: D FRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: lrint
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: util::math::internal_vector::BasicVector::IRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - lrint
    linkageType: ''
    returnType: VecTemplate<int>
    signature: VecTemplate<int> IRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:246,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/vector.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: util::math::internal_vector::BasicVector::IsNaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - isnan
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool IsNaN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    - Dst: std::numeric_limits<T>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: util::math::internal_vector::BasicVector::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::numeric_limits<T>::quiet_NaN
    linkageType: ''
    returnType: D
    signature: D NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Print
      Src: /src/s2geometry/src/s2/util/math/vector.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: '& operator<<(std::ostream& out, const D& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Print
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const D& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: util::math::internal_vector::BasicVector::MulScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: util::math::internal_vector::BasicVector::DivScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    - Dst: util::math::internal_vector::BasicVector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' vec'
    argTypes:
    - H
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::math::internal_vector::BasicVector::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine_contiguous
    - static_cast<const D&>
    - util::math::internal_vector::BasicVector::Size
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e
      Src: /src/s2geometry/src/s2/util/math/vector.h:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ' vec'
    argTypes:
    - E
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: util::math::internal_vector::BasicVector::FlumeEncode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - e
    linkageType: ''
    returnType: void
    signature: void FlumeEncode(E e, const BasicVector& vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/s2geometry/src/s2/util/math/vector.h:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ' vec'
    argTypes:
    - D
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: util::math::internal_vector::BasicVector::FlumeDecode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - d
    linkageType: ''
    returnType: bool
    signature: bool FlumeDecode(D d, BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& AsD() const'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    linkageType: ''
    returnType: D
    signature: D & AsD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: '& AsD()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & AsD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, const U& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/vector.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - v
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: util::math::internal_vector::BasicVector::Ignore
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ignore(std::initializer_list<bool>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - T
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: util::math::internal_vector::BasicVector::Dot
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 7
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: T
    signature: T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: util::math::internal_vector::BasicVector::PlusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void PlusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: util::math::internal_vector::BasicVector::MinusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MinusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: util::math::internal_vector::BasicVector::MulEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MulEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: util::math::internal_vector::BasicVector::DivEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void DivEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MulScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - DivScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:63,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/vector.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: util::math::internal_vector::BasicVector::Reduce
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 7
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto Reduce(F f, As*... as) -> decltype(f(as[I]...))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: util::math::internal_vector::BasicVector::Reduce
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: util::math::internal_vector::BasicVector::GenerateEach
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 7
    functionsReached:
    - std::move
    - R
    - util::math::internal_vector::BasicVector::Reduce
    linkageType: ''
    returnType: R
    signature: R GenerateEach(absl::index_sequence<Is...>, F f, As*... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::GenerateEach
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: IdxSeqN
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:77,1
    - Dst: std::forward<As>
      Src: /src/s2geometry/src/s2/util/math/vector.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: util::math::internal_vector::BasicVector::Generate
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 91
    functionsReached:
    - util::math::internal_vector::BasicVector::GenerateEach
    - std::move
    - IdxSeqN
    - std::forward<As>
    linkageType: ''
    returnType: R
    signature: R Generate(F f, As&&... as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: util::math::internal_vector::BasicVector::Size
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: util::math::internal_vector::BasicVector::Clear
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:88,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:89,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: '& operator[](int b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T & operator[](int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/vector.h:93,1
    - Dst: ABSL_DCHECK_LT
      Src: /src/s2geometry/src/s2/util/math/vector.h:94,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: operator[](int b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    - ABSL_DCHECK_GE
    - ABSL_DCHECK_LT
    linkageType: ''
    returnType: T
    signature: T operator[](int b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::math::internal_vector::BasicVector::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - AsD
    linkageType: ''
    returnType: std::tuple_element_t<I, D>
    signature: std::tuple_element_t<I, D> & get() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:106,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - equal
    - AsD
    - Size
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: operator!=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:111,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:112,1
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:113,1
    - Dst: Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: operator<(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::lexicographical_compare
    - AsD
    - Size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator>(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator<=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: operator>=(const BasicVector& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const BasicVector& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:121,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: '& operator+=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - PlusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator+=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MinusEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:126,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '& operator-=(const D& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MinusEq
    - static_cast<D&>
    - Data
    linkageType: ''
    returnType: D
    signature: D & operator-=(const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:131,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: '& operator*=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<D&>
    - MulEq
    linkageType: ''
    returnType: D
    signature: D & operator*=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivEq
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:136,1
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: '& operator/=(T k)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - DivEq
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & operator/=(T k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: operator+(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator+(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator-(const D& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator-(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: operator*(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator*(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator/(T k) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    linkageType: ''
    returnType: D
    signature: D operator/(T k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator-(const D& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Generate
    linkageType: ''
    returnType: D
    signature: D operator-(const D& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - VecTemplate<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: util::math::internal_vector::BasicVector::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - static_cast<T>
    linkageType: ''
    returnType: D
    signature: D Cast(const VecTemplate<T2>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: util::math::internal_vector::BasicVector::MulComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: util::math::internal_vector::BasicVector::DivComponents
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivComponents(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/vector.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: util::math::internal_vector::BasicVector::Max
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::max
    linkageType: ''
    returnType: D
    signature: D Max(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/vector.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - D
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: util::math::internal_vector::BasicVector::Min
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - min
    linkageType: ''
    returnType: D
    signature: D Min(const D& a, const D& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Dot
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    - Dst: Data
      Src: /src/s2geometry/src/s2/util/math/vector.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: util::math::internal_vector::BasicVector::DotProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 7
    functionsReached:
    - util::math::internal_vector::BasicVector::Dot
    - static_cast<const D&>
    - static_cast<T>
    - Data
    linkageType: ''
    returnType: T
    signature: T DotProd(const D& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: util::math::internal_vector::BasicVector::Norm2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 7
    functionsReached:
    - util::math::internal_vector::BasicVector::DotProd
    - AsD
    linkageType: ''
    returnType: T
    signature: T Norm2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    - Dst: util::math::internal_vector::BasicVector::Norm2
      Src: /src/s2geometry/src/s2/util/math/vector.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: util::math::internal_vector::BasicVector::Norm
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 7
    functionsReached:
    - util::math::internal_vector::BasicVector::Norm2
    - sqrt
    linkageType: ''
    returnType: FloatType
    signature: FloatType Norm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Norm
      Src: /src/s2geometry/src/s2/util/math/vector.h:193,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:194,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:195,1
    - Dst: D
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: util::math::internal_vector::BasicVector::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - D
    - AsD
    - util::math::internal_vector::BasicVector::Norm
    - T
    linkageType: ''
    returnType: D
    signature: D Normalize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:202,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/vector.h:205,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: util::math::internal_vector::BasicVector::Sqrt
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - sqrt
    linkageType: ''
    returnType: D
    signature: D Sqrt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:212,1
    - Dst: floor
      Src: /src/s2geometry/src/s2/util/math/vector.h:215,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: util::math::internal_vector::BasicVector::Floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - floor
    - AsD
    linkageType: ''
    returnType: D
    signature: D Floor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:222,1
    - Dst: ceil
      Src: /src/s2geometry/src/s2/util/math/vector.h:225,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: util::math::internal_vector::BasicVector::Ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - ceil
    - AsD
    linkageType: ''
    returnType: D
    signature: D Ceil() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: util::math::internal_vector::BasicVector::FRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - rint
    - AsD
    linkageType: ''
    returnType: D
    signature: D FRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: lrint
      Src: /src/s2geometry/src/s2/util/math/vector.h:239,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: util::math::internal_vector::BasicVector::IRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    - lrint
    linkageType: ''
    returnType: VecTemplate<int>
    signature: VecTemplate<int> IRound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:246,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/vector.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: util::math::internal_vector::BasicVector::IsNaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - isnan
    - AsD
    linkageType: ''
    returnType: bool
    signature: bool IsNaN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    - Dst: std::numeric_limits<T>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/vector.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: util::math::internal_vector::BasicVector::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - std::numeric_limits<T>::quiet_NaN
    linkageType: ''
    returnType: D
    signature: D NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Print
      Src: /src/s2geometry/src/s2/util/math/vector.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: '& operator<<(std::ostream& out, const D& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Print
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const D& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: util::math::internal_vector::BasicVector::MulScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D MulScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Generate
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    - Dst: AsD
      Src: /src/s2geometry/src/s2/util/math/vector.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: util::math::internal_vector::BasicVector::DivScalarInternal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Generate
    - AsD
    linkageType: ''
    returnType: D
    signature: D DivScalarInternal(const K& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:280,1
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    - Dst: util::math::internal_vector::BasicVector::Size
      Src: /src/s2geometry/src/s2/util/math/vector.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' vec'
    argTypes:
    - H
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::math::internal_vector::BasicVector::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - H::combine_contiguous
    - static_cast<const D&>
    - util::math::internal_vector::BasicVector::Size
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e
      Src: /src/s2geometry/src/s2/util/math/vector.h:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ' vec'
    argTypes:
    - E
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: util::math::internal_vector::BasicVector::FlumeEncode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - e
    linkageType: ''
    returnType: void
    signature: void FlumeEncode(E e, const BasicVector& vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/s2geometry/src/s2/util/math/vector.h:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ' vec'
    argTypes:
    - D
    - BasicVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: util::math::internal_vector::BasicVector::FlumeDecode
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - d
    linkageType: ''
    returnType: bool
    signature: bool FlumeDecode(D d, BasicVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& AsD() const'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<const D&>
    linkageType: ''
    returnType: D
    signature: D & AsD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<D&>
      Src: /src/s2geometry/src/s2/util/math/vector.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: '& AsD()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<D&>
    linkageType: ''
    returnType: D
    signature: D & AsD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, const U& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/vector.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - v
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: util::math::internal_vector::BasicVector::Print
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void Print(std::ostream& out, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: util::math::internal_vector::BasicVector::Ignore
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ignore(std::initializer_list<bool>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - T
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: util::math::internal_vector::BasicVector::Dot
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 8
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: T
    signature: T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: util::math::internal_vector::BasicVector::PlusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void PlusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: util::math::internal_vector::BasicVector::MinusEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MinusEq(T* a, const T* b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: util::math::internal_vector::BasicVector::MulEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void MulEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::math::internal_vector::BasicVector::Ignore
      Src: /src/s2geometry/src/s2/util/math/vector.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: util::math::internal_vector::BasicVector::DivEq
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - util::math::internal_vector::BasicVector::Ignore
    linkageType: ''
    returnType: void
    signature: void DivEq(T* a, T b, absl::index_sequence<Is...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MulScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - MulScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivScalarInternal
      Src: /src/s2geometry/src/s2/util/math/vector.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - ' a'
    argTypes:
    - K
    - BasicVector<VT2, T2, N2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - DivScalarInternal
    linkageType: ''
    returnType: VT2<T2>
    signature: VT2<T2> operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: Vector2::Vector2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Vector2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:373,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: Vector2::Vector2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Vector2(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector2::x
      Src: /src/s2geometry/src/s2/util/math/vector.h:376,1
    - Dst: Vector2::y
      Src: /src/s2geometry/src/s2/util/math/vector.h:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Vector3<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 376
    functionName: Vector2::Vector2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector2::y
    - Vector2::x
    linkageType: ''
    returnType: void
    signature: void Vector2(const Vector3<T>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector2::x
      Src: /src/s2geometry/src/s2/util/math/vector.h:377,1
    - Dst: Vector2::y
      Src: /src/s2geometry/src/s2/util/math/vector.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Vector4<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 377
    functionName: Vector2::Vector2
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector2::y
    - Vector2::x
    linkageType: ''
    returnType: void
    signature: void Vector2(const Vector4<T>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: Vector2::Data
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 380
    functionName: Vector2::Data
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 382
    functionName: Vector2::x
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void x(T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 383
    functionName: Vector2::y
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void y(T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    functionName: Vector2::x
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: Vector2::y
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:390,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' vb'
    - margin
    argTypes:
    - Vector2
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: Vector2::aequal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool aequal(const Vector2& vb, FloatType margin) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector2::Vector2
      Src: /src/s2geometry/src/s2/util/math/vector.h:394,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:394,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: Vector2::Set
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - Vector2::Vector2
    linkageType: ''
    returnType: void
    signature: void Set(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vb'
    argTypes:
    - Vector2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: Vector2::CrossProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T CrossProd(const Vector2& vb) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atan2
      Src: /src/s2geometry/src/s2/util/math/vector.h:407,1
    - Dst: Vector2::CrossProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:407,1
    - Dst: Vector2::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Vector2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: Vector2::Angle
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - atan2
    - Vector2::CrossProd
    - Vector2::DotProd
    linkageType: ''
    returnType: FloatType
    signature: FloatType Angle(const Vector2& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector2::Vector2
      Src: /src/s2geometry/src/s2/util/math/vector.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: Vector2::Ortho
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector2::Vector2
    linkageType: ''
    returnType: Vector2
    signature: Vector2 Ortho() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector2::Vector2
      Src: /src/s2geometry/src/s2/util/math/vector.h:417,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:417,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: Vector2::Fabs
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector2::Vector2
    - fabs
    linkageType: ''
    returnType: Vector2
    signature: Vector2 Fabs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/vector.h:421,1
    - Dst: Vector2::Vector2
      Src: /src/s2geometry/src/s2/util/math/vector.h:423,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:423,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: Vector2::Abs
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<VType>
    - Vector2::Vector2
    - abs
    linkageType: ''
    returnType: Vector2
    signature: Vector2 Abs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 441
    functionName: Vector3::Vector3
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Vector3()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:443,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:444,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: Vector3::Vector3
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Vector3(T x, T y, T z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector3::x
      Src: /src/s2geometry/src/s2/util/math/vector.h:447,1
    - Dst: Vector3::y
      Src: /src/s2geometry/src/s2/util/math/vector.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' b'
    - z
    argTypes:
    - Vector2<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 447
    functionName: Vector3::Vector3
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached:
    - Vector3::x
    - Vector3::y
    linkageType: ''
    returnType: void
    signature: void Vector3(const Vector2<T>& b, T z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector3::x
      Src: /src/s2geometry/src/s2/util/math/vector.h:448,1
    - Dst: Vector3::y
      Src: /src/s2geometry/src/s2/util/math/vector.h:448,1
    - Dst: Vector3::z
      Src: /src/s2geometry/src/s2/util/math/vector.h:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Vector4<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 448
    functionName: Vector3::Vector3
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached:
    - Vector3::x
    - Vector3::z
    - Vector3::y
    linkageType: ''
    returnType: void
    signature: void Vector3(const Vector4<T>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 450
    functionName: Vector3::Data
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 451
    functionName: Vector3::Data
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 453
    functionName: Vector3::x
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void x(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: Vector3::y
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void y(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    functionName: Vector3::z
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void z(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: Vector3::x
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: Vector3::y
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: Vector3::z
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T z() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:463,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:464,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' vb'
    - margin
    argTypes:
    - Vector3
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: Vector3::aequal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: bool
    signature: bool aequal(const Vector3& vb, FloatType margin) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector3::Vector3
      Src: /src/s2geometry/src/s2/util/math/vector.h:469,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:469,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:469,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 470
    functionName: Vector3::Set
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - Vector3::Vector3
    linkageType: ''
    returnType: void
    signature: void Set(T x, T y, T z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector3::Vector3
      Src: /src/s2geometry/src/s2/util/math/vector.h:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vb'
    argTypes:
    - Vector3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: Vector3::CrossProd
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 4
    functionsReached:
    - Vector3::Vector3
    linkageType: ''
    returnType: Vector3
    signature: Vector3 CrossProd(const Vector3& vb) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Vector3::LargestAbsComponent
      Src: /src/s2geometry/src/s2/util/math/vector.h:482,1
    - Dst: Vector3::Vector3
      Src: /src/s2geometry/src/s2/util/math/vector.h:484,1
    - Dst: T
      Src: /src/s2geometry/src/s2/util/math/vector.h:485,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: Vector3::Ortho
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector3::CrossProd
    - Vector3::LargestAbsComponent
    - T
    - Vector3::Vector3
    linkageType: ''
    returnType: Vector3
    signature: Vector3 Ortho() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atan2
      Src: /src/s2geometry/src/s2/util/math/vector.h:494,1
    - Dst: Vector3::CrossProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:494,1
    - Dst: Vector3::DotProd
      Src: /src/s2geometry/src/s2/util/math/vector.h:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Vector3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: Vector3::Angle
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector3::CrossProd
    - atan2
    - Vector3::DotProd
    linkageType: ''
    returnType: FloatType
    signature: FloatType Angle(const Vector3& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector3::Abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 497
    functionName: Vector3::Fabs
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector3::Abs
    linkageType: ''
    returnType: Vector3
    signature: Vector3 Fabs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/vector.h:501,1
    - Dst: Vector3::Vector3
      Src: /src/s2geometry/src/s2/util/math/vector.h:504,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:504,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:504,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 505
    functionName: Vector3::Abs
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached:
    - static_cast<VType>
    - abs
    - Vector3::Vector3
    linkageType: ''
    returnType: Vector3
    signature: Vector3 Abs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector3::Abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: Vector3::LargestAbsComponent
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached:
    - Vector3::Abs
    linkageType: ''
    returnType: int
    signature: int LargestAbsComponent() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/math/vector.h:519,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/math/vector.h:520,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/math/vector.h:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 523
    functionName: Vector3::ComponentOrder
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: Vector3<int>
    signature: Vector3<int> ComponentOrder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: Vector4::Vector4
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Vector4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:542,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:543,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:544,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - x
    - y
    - z
    - w
    argTypes:
    - T
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: Vector4::Vector4
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Vector4(T x, T y, T z, T w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector4::x
      Src: /src/s2geometry/src/s2/util/math/vector.h:548,1
    - Dst: Vector4::y
      Src: /src/s2geometry/src/s2/util/math/vector.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' b'
    - z
    - w
    argTypes:
    - Vector2<T>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 548
    functionName: Vector4::Vector4
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector4::x
    - Vector4::y
    linkageType: ''
    returnType: void
    signature: void Vector4(const Vector2<T>& b, T z, T w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector4::x
      Src: /src/s2geometry/src/s2/util/math/vector.h:550,1
    - Dst: Vector4::y
      Src: /src/s2geometry/src/s2/util/math/vector.h:550,1
    - Dst: Vector4::x
      Src: /src/s2geometry/src/s2/util/math/vector.h:550,1
    - Dst: Vector4::y
      Src: /src/s2geometry/src/s2/util/math/vector.h:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Vector2<T>
    - Vector2<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 550
    functionName: Vector4::Vector4
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector4::x
    - Vector4::y
    linkageType: ''
    returnType: void
    signature: void Vector4(const Vector2<T>& a, const Vector2<T>& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector4::x
      Src: /src/s2geometry/src/s2/util/math/vector.h:552,1
    - Dst: Vector4::y
      Src: /src/s2geometry/src/s2/util/math/vector.h:552,1
    - Dst: Vector4::z
      Src: /src/s2geometry/src/s2/util/math/vector.h:552,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/vector.h:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' b'
    - w
    argTypes:
    - Vector3<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 552
    functionName: Vector4::Vector4
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - std::move
    - Vector4::x
    - Vector4::y
    - Vector4::z
    linkageType: ''
    returnType: void
    signature: void Vector4(const Vector3<T>& b, T w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 554
    functionName: Vector4::Data
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 555
    functionName: Vector4::Data
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:560,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:561,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:562,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' vb'
    - margin
    argTypes:
    - Vector4
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 564
    functionName: Vector4::aequal
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool aequal(const Vector4& vb, FloatType margin) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    functionName: Vector4::x
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void x(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 567
    functionName: Vector4::y
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void y(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 568
    functionName: Vector4::z
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void z(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 569
    functionName: Vector4::w
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void w(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 570
    functionName: Vector4::x
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 571
    functionName: Vector4::y
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: Vector4::z
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T z() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 573
    functionName: Vector4::w
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T w() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector4::Vector4
      Src: /src/s2geometry/src/s2/util/math/vector.h:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - y
    - z
    - w
    argTypes:
    - T
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 575
    functionName: Vector4::Set
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - Vector4::Vector4
    linkageType: ''
    returnType: void
    signature: void Set(T x, T y, T z, T w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vector4::Vector4
      Src: /src/s2geometry/src/s2/util/math/vector.h:579,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:579,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:579,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:579,1
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/vector.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: Vector4::Fabs
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - fabs
    - Vector4::Vector4
    linkageType: ''
    returnType: Vector4
    signature: Vector4 Fabs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VType>
      Src: /src/s2geometry/src/s2/util/math/vector.h:584,1
    - Dst: Vector4::Vector4
      Src: /src/s2geometry/src/s2/util/math/vector.h:586,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:586,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:586,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:586,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/vector.h:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: Vector4::Abs
    functionSourceFile: /src/s2geometry/src/s2/util/math/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<VType>
    - abs
    - Vector4::Vector4
    linkageType: ''
    returnType: Vector4
    signature: Vector4 Abs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: sgn
    functionSourceFile: /src/s2geometry/src/s2/util/math/mathutil.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T sgn(const T x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<IntOut>
      Src: /src/s2geometry/src/s2/util/math/mathutil.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - FloatIn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: MathUtil::Round
    functionSourceFile: /src/s2geometry/src/s2/util/math/mathutil.h
    functionUses: 0
    functionsReached:
    - static_cast<IntOut>
    linkageType: ''
    returnType: IntOut
    signature: IntOut Round(FloatIn x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MathUtil::Round
      Src: /src/s2geometry/src/s2/util/math/mathutil.h:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 139
    functionName: MathUtil::FastIntRound
    functionSourceFile: /src/s2geometry/src/s2/util/math/mathutil.h
    functionUses: 0
    functionsReached:
    - MathUtil::Round
    linkageType: ''
    returnType: int32_t
    signature: int32_t FastIntRound(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MathUtil::Round
      Src: /src/s2geometry/src/s2/util/math/mathutil.h:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 165
    functionName: MathUtil::FastInt64Round
    functionSourceFile: /src/s2geometry/src/s2/util/math/mathutil.h
    functionUses: 0
    functionsReached:
    - MathUtil::Round
    linkageType: ''
    returnType: int64_t
    signature: int64_t FastInt64Round(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MathUtil::FastIntRound
      Src: /src/s2geometry/src/s2/util/math/mathutil.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: MathUtil::Round<int32_t, double>(double x)
    functionSourceFile: /src/s2geometry/src/s2/util/math/mathutil.h
    functionUses: 0
    functionsReached:
    - MathUtil::FastIntRound
    linkageType: ''
    returnType: int32_t
    signature: int32_t MathUtil::Round<int32_t, double>(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MathUtil::FastIntRound
      Src: /src/s2geometry/src/s2/util/math/mathutil.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: MathUtil::Round<int32_t, float>(float x)
    functionSourceFile: /src/s2geometry/src/s2/util/math/mathutil.h
    functionUses: 0
    functionsReached:
    - MathUtil::FastIntRound
    linkageType: ''
    returnType: int32_t
    signature: int32_t MathUtil::Round<int32_t, float>(float x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MathUtil::FastInt64Round
      Src: /src/s2geometry/src/s2/util/math/mathutil.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: MathUtil::Round<int64_t, double>(double x)
    functionSourceFile: /src/s2geometry/src/s2/util/math/mathutil.h
    functionUses: 0
    functionsReached:
    - MathUtil::FastInt64Round
    linkageType: ''
    returnType: int64_t
    signature: int64_t MathUtil::Round<int64_t, double>(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MathUtil::FastInt64Round
      Src: /src/s2geometry/src/s2/util/math/mathutil.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: MathUtil::Round<int64_t, float>(float x)
    functionSourceFile: /src/s2geometry/src/s2/util/math/mathutil.h
    functionUses: 0
    functionsReached:
    - MathUtil::FastInt64Round
    linkageType: ''
    returnType: int64_t
    signature: int64_t MathUtil::Round<int64_t, float>(float x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:42,1
    - Dst: acos
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:44,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:44,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:47,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:48,1
    - Dst: cos
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:49,1
    - Dst: sgn
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:55,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:55,1
    - Dst: abs
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:55,1
    - Dst: sqrt
      Src: /src/s2geometry/src/s2/util/math/mathutil.cc:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - a
    - b
    - c
    - r1
    - r2
    - r3
    argTypes:
    - long double
    - long double
    - long double
    - long double*
    - long double*
    - long double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 64
    functionName: MathUtil::RealRootsForCubic
    functionSourceFile: /src/s2geometry/src/s2/util/math/mathutil.cc
    functionUses: 1
    functionsReached:
    - sqrt
    - pow
    - acos
    - sgn
    - cos
    - abs
    linkageType: ''
    returnType: bool
    signature: "bool MathUtil::RealRootsForCubic(long double const a,\n                                 long
      double const b,\n                                 long double const c,\n                                 long
      double *const r1,\n                                 long double *const r2,\n
      \                                long double *const r3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: exactfloat_internal::Bignum::Bignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bignum()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' b'
    argTypes:
    - std::ostream
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: '& operator<<(std::ostream& os, const Bignum& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const Bignum& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - ' b'
    argTypes:
    - std::ostream
    - std::optional<Bignum>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: "& operator<<(std::ostream& os,\n                                  const
      std::optional<Bignum>& b)"
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                                  const
      std::optional<Bignum>& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:102,1
    - Dst: exactfloat_internal::Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: exactfloat_internal::Bignum::ConvertTo
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::Cast
    - exactfloat_internal::Bignum::FitsIn
    linkageType: ''
    returnType: std::optional<T>
    signature: std::optional<T> ConvertTo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: '& set_zero()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: Bignum
    signature: Bignum & set_zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: '& set_negative(bool negative = true)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: Bignum
    signature: Bignum & set_negative(bool negative = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: exactfloat_internal::Bignum::is_zero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: exactfloat_internal::Bignum::is_negative
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_negative() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: exactfloat_internal::Bignum::is_odd
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::is_bit_set
    linkageType: ''
    returnType: bool
    signature: bool is_odd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::is_odd
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: exactfloat_internal::Bignum::is_even
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::is_odd
    linkageType: ''
    returnType: bool
    signature: bool is_even() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: operator==(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: operator!=(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: operator<(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: operator<=(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: operator>(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: operator>=(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: operator+() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator+() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ' b'
    argTypes:
    - Bignum
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: operator+(Bignum a, const Bignum& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator+(Bignum a, const Bignum& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ' b'
    argTypes:
    - Bignum
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: operator-(Bignum a, const Bignum& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator-(Bignum a, const Bignum& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ' b'
    argTypes:
    - Bignum
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: operator*(Bignum a, const Bignum& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator*(Bignum a, const Bignum& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - nbit
    argTypes:
    - Bignum
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: operator<<(Bignum a, int nbit)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator<<(Bignum a, int nbit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - nbit
    argTypes:
    - Bignum
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: operator>>(Bignum a, int nbit)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator>>(Bignum a, int nbit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: exactfloat_internal::Bignum::negate
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void negate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:201,1
    - Dst: exactfloat_internal::Bignum::Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bigits
    argTypes:
    - BigitVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: exactfloat_internal::Bignum::Bignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - std::move
    - exactfloat_internal::Bignum::Normalize
    linkageType: ''
    returnType: void
    signature: void Bignum(BigitVector bigits, bool negative = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:207,1
    - Dst: back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:207,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:208,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: exactfloat_internal::Bignum::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 1
    functionsReached:
    - back
    - pop_back
    - empty
    linkageType: ''
    returnType: void
    signature: void Normalize()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UT>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:244,1
    - Dst: UT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:247,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:253,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:253,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:256,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 260
    functionName: exactfloat_internal::Bignum::Bignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - static_cast<Bigit>
    - static_cast<UT>
    - push_back
    - UT
    linkageType: ''
    returnType: void
    signature: void Bignum::Bignum(T value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:265,1
    - Dst: Append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:266,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:271,1
    - Dst: Append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:272,1
    - Dst: Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:286,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:288,1
    - Dst: Bignum::bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:288,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:290,1
    - Dst: absl::uint128
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:291,1
    - Dst: Bignum::Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:295,1
    - Dst: Bignum::BigitVector::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:296,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:296,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:298,1
    - Dst: Bignum::BigitVector::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:298,1
    - Dst: isValidFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:301,1
    - Dst: Bignum::BigitVector::back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:301,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:304,1
    - Dst: Bignum::BigitVector::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:304,1
    - Dst: isValidFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' sink'
    - ' b'
    argTypes:
    - Sink
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 307
    functionName: exactfloat_internal::AbslStringify
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - is_zero
    - Bignum::bigits_::size
    - Bignum::BigitVector::push_back
    - Bignum::BigitVector::empty
    - Bignum::is_zero
    - static_cast<Bigit>
    - Append
    - static_cast<int>
    - absl::uint128
    - Bignum::Normalize
    - Bignum::BigitVector::back
    - isValidFormat
    - Bignum::BigitVector::size
    - is_negative
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void AbslStringify(Sink& sink, const Bignum& b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:313,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:322,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:329,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:332,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:336,1
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:336,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:338,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:342,1
    - Dst: countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:343,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:345,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:347,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 349
    functionName: exactfloat_internal::Bignum::FitsIn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 1
    functionsReached:
    - exactfloat_internal::Bignum::is_negative
    - bit_width
    - exactfloat_internal::Bignum::is_zero
    - size
    - countr_zero
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool Bignum::FitsIn() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:357,1
    - Dst: static_cast<UT>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:364,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:366,1
    - Dst: static_cast<UT>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:368,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:374,1
    - Dst: UT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:375,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 379
    functionName: exactfloat_internal::Bignum::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_EQ
    - UT
    - static_cast<T>
    - static_cast<UT>
    - empty
    - exactfloat_internal::Bignum::is_negative
    linkageType: ''
    returnType: T
    signature: T Bignum::Cast() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: exactfloat_internal::Bignum::Bignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bignum()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' b'
    argTypes:
    - std::ostream
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: '& operator<<(std::ostream& os, const Bignum& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const Bignum& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - ' b'
    argTypes:
    - std::ostream
    - std::optional<Bignum>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: "& operator<<(std::ostream& os,\n                                  const
      std::optional<Bignum>& b)"
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                                  const
      std::optional<Bignum>& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:102,1
    - Dst: exactfloat_internal::Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: exactfloat_internal::Bignum::ConvertTo
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::Cast
    - exactfloat_internal::Bignum::FitsIn
    linkageType: ''
    returnType: std::optional<T>
    signature: std::optional<T> ConvertTo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: '& set_zero()'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: Bignum
    signature: Bignum & set_zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: '& set_negative(bool negative = true)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: Bignum
    signature: Bignum & set_negative(bool negative = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: exactfloat_internal::Bignum::is_zero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 1
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: exactfloat_internal::Bignum::is_negative
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_negative() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: exactfloat_internal::Bignum::is_odd
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 1
    functionsReached:
    - exactfloat_internal::Bignum::is_bit_set
    linkageType: ''
    returnType: bool
    signature: bool is_odd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::is_odd
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: exactfloat_internal::Bignum::is_even
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::is_odd
    linkageType: ''
    returnType: bool
    signature: bool is_even() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: operator==(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: operator!=(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: operator<(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: operator<=(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: operator>(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: operator>=(const Bignum& b) const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Bignum& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: operator+() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator+() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ' b'
    argTypes:
    - Bignum
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: operator+(Bignum a, const Bignum& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator+(Bignum a, const Bignum& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ' b'
    argTypes:
    - Bignum
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: operator-(Bignum a, const Bignum& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator-(Bignum a, const Bignum& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ' b'
    argTypes:
    - Bignum
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: operator*(Bignum a, const Bignum& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator*(Bignum a, const Bignum& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - nbit
    argTypes:
    - Bignum
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: operator<<(Bignum a, int nbit)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator<<(Bignum a, int nbit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - nbit
    argTypes:
    - Bignum
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: operator>>(Bignum a, int nbit)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bignum
    signature: Bignum operator>>(Bignum a, int nbit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: exactfloat_internal::Bignum::negate
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void negate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:201,1
    - Dst: exactfloat_internal::Bignum::Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bigits
    argTypes:
    - BigitVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: exactfloat_internal::Bignum::Bignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - std::move
    - exactfloat_internal::Bignum::Normalize
    linkageType: ''
    returnType: void
    signature: void Bignum(BigitVector bigits, bool negative = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:207,1
    - Dst: back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:207,1
    - Dst: pop_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:208,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: exactfloat_internal::Bignum::Normalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 2
    functionsReached:
    - back
    - pop_back
    - empty
    linkageType: ''
    returnType: void
    signature: void Normalize()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UT>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:244,1
    - Dst: UT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:247,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:253,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:253,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:256,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 260
    functionName: exactfloat_internal::Bignum::Bignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - static_cast<Bigit>
    - static_cast<UT>
    - push_back
    - UT
    linkageType: ''
    returnType: void
    signature: void Bignum::Bignum(T value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:265,1
    - Dst: Append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:266,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:271,1
    - Dst: Append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:272,1
    - Dst: Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:286,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:288,1
    - Dst: Bignum::bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:288,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:290,1
    - Dst: absl::uint128
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:291,1
    - Dst: Bignum::Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:295,1
    - Dst: Bignum::BigitVector::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:296,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:296,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:298,1
    - Dst: Bignum::BigitVector::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:298,1
    - Dst: isValidFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:301,1
    - Dst: Bignum::BigitVector::back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:301,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:304,1
    - Dst: Bignum::BigitVector::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:304,1
    - Dst: isValidFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' sink'
    - ' b'
    argTypes:
    - Sink
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 307
    functionName: exactfloat_internal::AbslStringify
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 0
    functionsReached:
    - is_zero
    - Bignum::bigits_::size
    - Bignum::BigitVector::push_back
    - Bignum::BigitVector::empty
    - Bignum::is_zero
    - static_cast<Bigit>
    - Append
    - static_cast<int>
    - absl::uint128
    - Bignum::Normalize
    - Bignum::BigitVector::back
    - isValidFormat
    - Bignum::BigitVector::size
    - is_negative
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void AbslStringify(Sink& sink, const Bignum& b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:313,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:322,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:329,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:332,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:336,1
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:336,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:338,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:342,1
    - Dst: countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:343,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:345,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:347,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 349
    functionName: exactfloat_internal::Bignum::FitsIn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 2
    functionsReached:
    - exactfloat_internal::Bignum::is_negative
    - bit_width
    - exactfloat_internal::Bignum::is_zero
    - size
    - countr_zero
    - ABSL_DCHECK
    linkageType: ''
    returnType: bool
    signature: bool Bignum::FitsIn() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:357,1
    - Dst: static_cast<UT>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:364,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:366,1
    - Dst: static_cast<UT>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:368,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:374,1
    - Dst: UT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:375,1
    - Dst: static_cast<T>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 379
    functionName: exactfloat_internal::Bignum::Cast
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_EQ
    - UT
    - static_cast<T>
    - static_cast<UT>
    - empty
    - exactfloat_internal::Bignum::is_negative
    linkageType: ''
    returnType: T
    signature: T Bignum::Cast() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: exactfloat_internal::Bn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::FromString
    linkageType: ''
    returnType: auto
    signature: auto Bn(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:66,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:66,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:67,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:67,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:68,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:68,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:69,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:69,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:70,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:70,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:71,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:71,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:72,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:72,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:73,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:73,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:74,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:74,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, ZeroInputsNormalizeToZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:78,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:78,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:79,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:79,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:80,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:80,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, BasicSmallNumbers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:84,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:84,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:85,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:85,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:86,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:86,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:90,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:90,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:91,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:91,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:94,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:94,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:97,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:97,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:98,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:98,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:102,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:102,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:104,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:104,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:108,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:108,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:110,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:110,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 112
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, LeadingZeros)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:115,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:116,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:117,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:118,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, MultipleSignsBeforeDigitsCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:122,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:123,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:124,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:125,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, SignInWrongPlaceCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:130,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:130,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:131,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:131,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:132,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:132,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:133,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:133,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:134,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:134,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:135,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:135,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:136,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:137,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, ZeroAlwaysFitsIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:142,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:143,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:144,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:145,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:146,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:147,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:148,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:149,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum::Cast
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, ZeroAlwaysCastsToZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:154,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:154,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:155,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:155,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:156,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:156,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:157,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:159,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:159,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:160,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:160,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:161,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:162,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, NegativeOnlyFitsInSigned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:168,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:168,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:169,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:169,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:170,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:171,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:171,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:172,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:172,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:173,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:173,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:177,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:178,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:179,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:180,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:180,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:181,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:182,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:182,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:186,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:186,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:187,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:187,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:188,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:188,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:189,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:189,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:190,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:191,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:191,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:194,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:194,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:197,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:198,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 199
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - exactfloat_internal::Bn
    - EXPECT_FALSE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, FitsInUnsignedBoundsChecks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:204,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:204,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:205,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:205,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:206,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:206,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:207,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:207,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:208,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:208,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:209,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:209,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:213,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:213,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:214,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:214,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:215,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:215,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:216,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:216,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:217,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:217,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:218,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:218,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:222,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:222,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:223,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:223,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:224,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:225,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:225,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:226,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:226,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:227,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:230,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:230,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:233,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:234,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:234,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:238,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:238,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:239,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:239,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:240,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:240,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:241,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:241,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:242,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:242,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:243,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:243,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:247,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:247,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:248,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:248,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:249,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:249,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:250,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:250,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:251,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:251,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:252,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:252,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:256,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:256,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:257,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:257,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:258,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:258,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:259,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:259,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:260,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:260,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:261,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:261,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:264,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 265
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - exactfloat_internal::Bn
    - EXPECT_FALSE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, FitsInSignedBoundsChecks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:269,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:269,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:270,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:270,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:271,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:271,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:272,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:272,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:273,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:273,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:274,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:274,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:275,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:275,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:276,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:276,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:279,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:279,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:280,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:280,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:281,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:281,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:282,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:282,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:283,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:283,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:284,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:284,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:285,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:285,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:286,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 287
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, FitsInBasicSanityChecks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:290,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:290,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:294,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:294,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:295,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:295,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:295,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:296,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:296,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:296,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:297,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:297,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:297,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:300,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:301,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:301,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:305,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:305,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:305,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:308,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:309,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 310
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bn
    - Stats::max
    - Bignum::Cast
    - Bignum
    - EXPECT_EQ
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, UnsignedCasting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:315,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:319,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:319,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:323,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:327,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:327,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:331,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:331,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:331,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:335,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:335,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:339,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:339,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 340
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bn
    - S2CellId::range_min
    - Stats::max
    - Bignum::Cast
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, SignedCasting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:345,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:346,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:346,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:349,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:350,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:350,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:351,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Stats::max
    - Bignum::Cast
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, CastingLargeResidues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:355,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:355,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:356,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:356,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:357,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:357,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:357,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:358,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:358,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:358,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:359,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:359,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:359,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:360,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:360,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, UnaryOperators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:365,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:365,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:365,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:366,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:366,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:366,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:367,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:367,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:367,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:367,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:368,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:368,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:368,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:368,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:371,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:371,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:371,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:372,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:372,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:372,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:373,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:373,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:373,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:373,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:377,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:377,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:378,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:378,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:383,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 384
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Addition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:388,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:388,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:388,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:388,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:389,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:389,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:389,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:389,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:390,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:390,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:390,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:390,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:391,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:391,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:391,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:391,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:392,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:392,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:392,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:392,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:395,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:395,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:395,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:396,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:396,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:396,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:396,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:397,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:397,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:397,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:397,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:400,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:402,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:407,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 408
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Subtraction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:412,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:413,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:414,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:414,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:415,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, MixedOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:420,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:421,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:422,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:425,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:425,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:428,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:428,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:432,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:433,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:433,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:436,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:436,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:439,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:439,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:442,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:443,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:446,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 448
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, LargeNumberArithmetic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:451,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:451,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:451,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:452,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:452,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:452,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:453,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:453,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:453,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:454,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:454,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:454,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:455,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:455,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:455,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:457,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:459,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:460,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:464,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:464,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:467,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:467,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:467,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:468,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:468,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 469
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, LeftShift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:472,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:472,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:473,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:473,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:474,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:474,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:475,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:475,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:475,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:476,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:476,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:476,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:479,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:479,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:480,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:481,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:481,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:483,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:483,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:486,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:489,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:493,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:496,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:496,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:496,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:497,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:497,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:500,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:500,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 501
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Stats::max
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, RightShift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:505,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:505,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:505,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:505,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:506,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:506,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:506,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:506,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:509,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:509,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:509,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:509,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:510,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:510,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:510,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:510,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:511,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:511,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:511,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:511,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:514,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:514,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:514,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:514,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:515,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:515,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:515,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:515,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:516,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:516,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:516,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:517,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:517,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:517,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:517,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:520,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:521,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:521,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:521,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:524,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:525,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:525,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:525,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:529,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:530,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:531,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:531,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:536,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:536,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:538,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:540,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:540,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:545,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:546,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:550,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 552
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Multiplication)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:555,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:555,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:555,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:556,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:556,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:556,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:557,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:557,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:557,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:558,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:558,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:558,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:560,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:560,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:560,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:561,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:561,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:561,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:562,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:562,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:562,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:563,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:563,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:563,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:566,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:566,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:569,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:569,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:571,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:572,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 573
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, CountrZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:576,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:576,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:577,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:577,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:581,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:581,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:582,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:582,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:583,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:583,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:584,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:584,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:588,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:588,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:589,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:589,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:590,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:590,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:593,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:594,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:594,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:595,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:595,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:596,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:596,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:598,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:598,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:599,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:599,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:600,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:600,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:601,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:601,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:602,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 603
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Bignum
    - EXPECT_FALSE
    - Bignum::is_bit_set
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, is_bit_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:607,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:607,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:608,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:608,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:608,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:609,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:609,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:609,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:610,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:610,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:610,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:613,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:613,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:613,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:614,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:614,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:614,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:615,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:615,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:615,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:616,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:616,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:616,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:619,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:619,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:619,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:620,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:620,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:620,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:621,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:621,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:621,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:624,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:625,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:625,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:628,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:629,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:630,1
    - Dst: Bignum::Pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 631
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    - Bignum::Pow
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Pow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bignum::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:635,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:636,1
    - Dst: Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:636,1
    - Dst: Bignum::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:639,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:640,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 641
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - Bignum::set_zero
    - EXPECT_TRUE
    - Bignum::is_zero
    - Bignum
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, SetZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bignum::set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:645,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:646,1
    - Dst: Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:646,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:647,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:647,1
    - Dst: Bignum::set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:649,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:650,1
    - Dst: Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:650,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:651,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:651,1
    - Dst: Bignum::set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:655,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:656,1
    - Dst: Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:656,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:657,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 658
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - Bignum::is_negative
    - EXPECT_TRUE
    - Bignum::set_negative
    - Bignum
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, SetNegativeSetPositive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:661,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:661,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:661,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:662,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:662,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:662,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:663,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:663,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:663,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:664,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:664,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:664,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:665,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:665,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:665,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:668,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:668,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:668,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:669,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:669,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:669,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:670,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:670,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:670,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:671,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:671,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:671,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:674,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:674,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:674,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:675,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:675,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:675,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:676,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:676,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:676,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:677,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:677,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:677,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:680,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:680,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:680,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:681,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:681,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:681,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:684,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:684,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:684,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:685,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:685,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:685,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:686,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:686,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:686,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:687,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:687,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:687,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:690,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:691,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:691,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:692,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:692,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:693,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:693,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:694,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:694,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:696,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:696,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:696,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:697,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:697,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:697,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:698,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:698,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:698,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:699,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:699,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:699,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:700,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:700,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:700,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:702,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:702,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:702,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:703,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:703,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:703,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:704,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:704,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:704,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:705,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:705,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:705,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:706,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:706,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:706,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:708,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:708,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:708,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:709,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:709,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 710
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - exactfloat_internal::Bn
    - EXPECT_LT
    - EXPECT_GE
    - Bignum
    - EXPECT_LE
    - EXPECT_NE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Comparisons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 715
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:720,1
    - Dst: BN_dec2bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:721,1
    - Dst: data
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' decimal'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 722
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_dec2bn
    - BN_new
    - data
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum(const std::string& decimal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:724,1
    - Dst: BN_set_word
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 726
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_set_word
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum(uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 728
    functionName: ~OpenSSLBignum()
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ~OpenSSLBignum()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - OpenSSLBignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 732
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum(OpenSSLBignum&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - OpenSSLBignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 741
    functionName: '& operator=(OpenSSLBignum&& other) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: OpenSSLBignum
    signature: OpenSSLBignum & operator=(OpenSSLBignum&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - OpenSSLBignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 743
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_dup
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum(const OpenSSLBignum& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - OpenSSLBignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 750
    functionName: '& operator=(const OpenSSLBignum& other)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: OpenSSLBignum
    signature: OpenSSLBignum & operator=(const OpenSSLBignum& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 752
    functionName: exactfloat_internal::OpenSSLBignum::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:764,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:773,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:773,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:773,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:775,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitgen
    - bits
    argTypes:
    - absl::BitGenRef
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 761
    functionDepth: 3
    functionLinenumber: 761
    functionLinenumberEnd: 782
    functionName: exactfloat_internal::GenerateRandomNumberStrings
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - std::vector::push_back
    - absl::StrAppend
    - s2random::LogUniform
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GenerateRandomNumberStrings(\n    absl::BitGenRef
      bitgen, int bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:790,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:790,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:790,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:790,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:792,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:792,1
    - Dst: EXPECT_STREQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:793,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 795
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_add
    - EXPECT_STREQ
    - OPENSSL_free
    - BN_bn2dec
    - OpenSSLBignum::get
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, OpenSSLIntegration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:806,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:806,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:806,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:806,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:808,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:808,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:809,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:811,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:811,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 813
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_add
    - absl::StrFormat
    - OPENSSL_free
    - std::string
    - BN_bn2dec
    - OpenSSLBignum::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, ResultsMatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::GenerateRandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:826,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - size_class
    argTypes:
    - absl::BitGenRef
    - NumberSizeClass
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 4
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: exactfloat_internal::RandomNumberStrings
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::GenerateRandomNumberStrings
    - static_cast<int>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> RandomNumberStrings(absl::BitGenRef bitgen,\n
      \                                            NumberSizeClass size_class)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:840,1
    - Dst: GetParam
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:840,1
    - Dst: RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:841,1
    - Dst: GetParam
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:841,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:842,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:842,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:842,1
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:845,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:845,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:847,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 851
    functionName: exactfloat_internal::VsOpenSSLTest::Numbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - ABSL_CHECK_EQ
    - GetParam
    - std::vector::emplace_back
    - std::vector::reserve
    - RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::pair<std::string, std::string>>
    signature: "std::vector<std::pair<std::string, std::string>> Numbers(\n      absl::BitGenRef
      bitgen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:855,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:856,1
    - Dst: BN_CTX_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:859,1
    - Dst: Numbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:860,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:861,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:862,1
    - Dst: BN_mul
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:868,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:868,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:868,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:868,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:871,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:871,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:872,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:874,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:874,1
    - Dst: std::string::substr
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:876,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:877,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:878,1
    - Dst: BN_CTX_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 881
    functionName: exactfloat_internal::TEST_P
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - std::string::substr
    - absl::StrFormat
    - exactfloat_internal::Bignum::FromString
    - OPENSSL_free
    - BN_mul
    - std::string
    - BN_bn2dec
    - BN_CTX_free
    - OpenSSLBignum::get
    - Numbers
    - EXPECT_EQ
    - BN_CTX_new
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(VsOpenSSLTest, MultiplyCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:884,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:885,1
    - Dst: Numbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:888,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:889,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:890,1
    - Dst: BN_add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:897,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:897,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:897,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:897,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:900,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:900,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:901,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:903,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:903,1
    - Dst: std::string::substr
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:905,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:906,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 909
    functionName: exactfloat_internal::TEST_P
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_add
    - absl::StrFormat
    - std::string::substr
    - exactfloat_internal::Bignum::FromString
    - OPENSSL_free
    - std::string
    - BN_bn2dec
    - OpenSSLBignum::get
    - Numbers
    - EXPECT_EQ
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(VsOpenSSLTest, AdditionCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:912,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:914,1
    - Dst: Numbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:918,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:919,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:920,1
    - Dst: BN_sub
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:927,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:927,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:927,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:927,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:930,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:930,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:931,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:933,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:933,1
    - Dst: std::string::substr
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:935,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:936,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 939
    functionName: exactfloat_internal::TEST_P
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - std::string::substr
    - absl::StrFormat
    - exactfloat_internal::Bignum::FromString
    - OPENSSL_free
    - std::string
    - BN_bn2dec
    - EXPECT_EQ
    - OpenSSLBignum::get
    - Numbers
    - BN_sub
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(VsOpenSSLTest, SubtractionCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:962,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:962,1
    - Dst: op
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:970,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - op
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - BinaryOp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 974
    functionName: exactfloat_internal::BignumBinaryOpBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - op
    - std::vector::push_back
    - benchmark::DoNotOptimize
    - exactfloat_internal::Bignum::FromString
    linkageType: ''
    returnType: void
    signature: "void BignumBinaryOpBenchmark(benchmark::State& state,\n                             const
      std::vector<std::string>& number_strings,\n                             BinaryOp
      op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:981,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:981,1
    - Dst: Pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:988,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - exponent
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 992
    functionName: exactfloat_internal::BignumPowBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - benchmark::DoNotOptimize
    - exactfloat_internal::Bignum::FromString
    - Pow
    linkageType: ''
    returnType: void
    signature: "void BignumPowBenchmark(benchmark::State& state,\n                        const
      std::vector<std::string>& number_strings,\n                        int exponent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1000,1
    - Dst: op
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1009,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1009,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1009,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1009,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1010,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - op
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - BinaryOp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: exactfloat_internal::OpenSSLBinaryOpBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - get
    - op
    - OpenSSLBignum::get
    - std::vector::emplace_back
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: "void OpenSSLBinaryOpBenchmark(benchmark::State& state,\n                              const
      std::vector<std::string>& number_strings,\n                              BinaryOp
      op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1021,1
    - Dst: BN_CTX_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1024,1
    - Dst: op
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1031,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1031,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1031,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1031,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1032,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1032,1
    - Dst: BN_CTX_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - op
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - MulOp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1037
    functionName: exactfloat_internal::OpenSSLMulOpBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - get
    - op
    - BN_CTX_free
    - OpenSSLBignum::get
    - std::vector::emplace_back
    - BN_CTX_new
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: "void OpenSSLMulOpBenchmark(benchmark::State& state,\n                           const
      std::vector<std::string>& number_strings,\n                           MulOp
      op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1044,1
    - Dst: BN_CTX_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1048,1
    - Dst: BN_exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1054,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1054,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1054,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1054,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1055,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1055,1
    - Dst: BN_CTX_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - exponent
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1060
    functionName: exactfloat_internal::OpenSSLPowBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - get
    - BN_exp
    - BN_CTX_free
    - OpenSSLBignum::get
    - std::vector::emplace_back
    - BN_CTX_new
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: "void OpenSSLPowBenchmark(benchmark::State& state,\n                         const
      std::vector<std::string>& number_strings,\n                         int exponent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1062
    functionDepth: 5
    functionLinenumber: 1062
    functionLinenumberEnd: 1064
    functionName: exactfloat_internal::SmallNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> SmallNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1066
    functionDepth: 5
    functionLinenumber: 1066
    functionLinenumberEnd: 1068
    functionName: exactfloat_internal::MediumNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> MediumNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1070
    functionDepth: 5
    functionLinenumber: 1070
    functionLinenumberEnd: 1072
    functionName: exactfloat_internal::LargeNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> LargeNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1074
    functionDepth: 5
    functionLinenumber: 1074
    functionLinenumberEnd: 1076
    functionName: exactfloat_internal::HugeNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HugeNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1078
    functionDepth: 5
    functionLinenumber: 1078
    functionLinenumberEnd: 1080
    functionName: exactfloat_internal::MegaNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> MegaNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1084,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1082
    functionDepth: 6
    functionLinenumber: 1082
    functionLinenumberEnd: 1085
    functionName: exactfloat_internal::BM_Bignum_AddSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::SmallNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1090,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1088
    functionDepth: 6
    functionLinenumber: 1088
    functionLinenumberEnd: 1091
    functionName: exactfloat_internal::BM_Bignum_AddMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MediumNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1096,1
    - Dst: exactfloat_internal::LargeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1094
    functionDepth: 6
    functionLinenumber: 1094
    functionLinenumberEnd: 1097
    functionName: exactfloat_internal::BM_Bignum_AddLarge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::LargeNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddLarge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1102,1
    - Dst: exactfloat_internal::HugeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1100
    functionDepth: 6
    functionLinenumber: 1100
    functionLinenumberEnd: 1103
    functionName: exactfloat_internal::BM_Bignum_AddHuge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::HugeNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddHuge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1108,1
    - Dst: exactfloat_internal::MegaNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1106
    functionDepth: 6
    functionLinenumber: 1106
    functionLinenumberEnd: 1109
    functionName: exactfloat_internal::BM_Bignum_AddMega
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MegaNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddMega(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1114,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1112
    functionDepth: 6
    functionLinenumber: 1112
    functionLinenumberEnd: 1115
    functionName: exactfloat_internal::BM_OpenSSL_AddSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::SmallNumbers
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1120,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1118
    functionDepth: 6
    functionLinenumber: 1118
    functionLinenumberEnd: 1121
    functionName: exactfloat_internal::BM_OpenSSL_AddMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MediumNumbers
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1126,1
    - Dst: exactfloat_internal::LargeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1124
    functionDepth: 6
    functionLinenumber: 1124
    functionLinenumberEnd: 1127
    functionName: exactfloat_internal::BM_OpenSSL_AddLarge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::LargeNumbers
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddLarge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1132,1
    - Dst: exactfloat_internal::HugeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1130
    functionDepth: 6
    functionLinenumber: 1130
    functionLinenumberEnd: 1133
    functionName: exactfloat_internal::BM_OpenSSL_AddHuge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::HugeNumbers
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddHuge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1138,1
    - Dst: exactfloat_internal::MegaNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1136
    functionDepth: 6
    functionLinenumber: 1136
    functionLinenumberEnd: 1139
    functionName: exactfloat_internal::BM_OpenSSL_AddMega
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    - exactfloat_internal::MegaNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddMega(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1144,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1142
    functionDepth: 6
    functionLinenumber: 1142
    functionLinenumberEnd: 1146
    functionName: exactfloat_internal::BM_Bignum_MulSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::SmallNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1151,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1149
    functionDepth: 6
    functionLinenumber: 1149
    functionLinenumberEnd: 1153
    functionName: exactfloat_internal::BM_Bignum_MulMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MediumNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1158,1
    - Dst: exactfloat_internal::LargeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1156
    functionDepth: 6
    functionLinenumber: 1156
    functionLinenumberEnd: 1160
    functionName: exactfloat_internal::BM_Bignum_MulLarge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::LargeNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulLarge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1165,1
    - Dst: exactfloat_internal::HugeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1163
    functionDepth: 6
    functionLinenumber: 1163
    functionLinenumberEnd: 1167
    functionName: exactfloat_internal::BM_Bignum_MulHuge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::HugeNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulHuge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1172,1
    - Dst: exactfloat_internal::MegaNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1170
    functionDepth: 6
    functionLinenumber: 1170
    functionLinenumberEnd: 1174
    functionName: exactfloat_internal::BM_Bignum_MulMega
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MegaNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulMega(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1179,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1177
    functionDepth: 6
    functionLinenumber: 1177
    functionLinenumberEnd: 1180
    functionName: exactfloat_internal::BM_OpenSSL_MulSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLMulOpBenchmark
    - exactfloat_internal::SmallNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1185,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1183
    functionDepth: 6
    functionLinenumber: 1183
    functionLinenumberEnd: 1186
    functionName: exactfloat_internal::BM_OpenSSL_MulMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MediumNumbers
    - exactfloat_internal::OpenSSLMulOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1191,1
    - Dst: exactfloat_internal::LargeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1189
    functionDepth: 6
    functionLinenumber: 1189
    functionLinenumberEnd: 1192
    functionName: exactfloat_internal::BM_OpenSSL_MulLarge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::LargeNumbers
    - exactfloat_internal::OpenSSLMulOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulLarge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1197,1
    - Dst: exactfloat_internal::HugeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1195
    functionDepth: 6
    functionLinenumber: 1195
    functionLinenumberEnd: 1198
    functionName: exactfloat_internal::BM_OpenSSL_MulHuge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::HugeNumbers
    - exactfloat_internal::OpenSSLMulOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulHuge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1203,1
    - Dst: exactfloat_internal::MegaNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1201
    functionDepth: 6
    functionLinenumber: 1201
    functionLinenumberEnd: 1204
    functionName: exactfloat_internal::BM_OpenSSL_MulMega
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLMulOpBenchmark
    - exactfloat_internal::MegaNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulMega(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumPowBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1209,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1207
    functionDepth: 6
    functionLinenumber: 1207
    functionLinenumberEnd: 1210
    functionName: exactfloat_internal::BM_Bignum_PowSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::BignumPowBenchmark
    - exactfloat_internal::SmallNumbers
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_PowSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumPowBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1215,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1213
    functionDepth: 6
    functionLinenumber: 1213
    functionLinenumberEnd: 1216
    functionName: exactfloat_internal::BM_Bignum_PowMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::BignumPowBenchmark
    - exactfloat_internal::MediumNumbers
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_PowMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLPowBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1221,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1219
    functionDepth: 6
    functionLinenumber: 1219
    functionLinenumberEnd: 1222
    functionName: exactfloat_internal::BM_OpenSSL_PowSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLPowBenchmark
    - exactfloat_internal::SmallNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_PowSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLPowBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1227,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1225
    functionDepth: 6
    functionLinenumber: 1225
    functionLinenumberEnd: 1228
    functionName: exactfloat_internal::BM_OpenSSL_PowMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLPowBenchmark
    - exactfloat_internal::MediumNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_PowMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: exactfloat_internal::Bn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 18
    functionsReached:
    - exactfloat_internal::Bignum::FromString
    linkageType: ''
    returnType: auto
    signature: auto Bn(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:66,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:66,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:67,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:67,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:68,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:68,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:69,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:69,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:70,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:70,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:71,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:71,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:72,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:72,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:73,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:73,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:74,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:74,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, ZeroInputsNormalizeToZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:78,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:78,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:79,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:79,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:80,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:80,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, BasicSmallNumbers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:84,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:84,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:85,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:85,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:86,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:86,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:90,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:90,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:91,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:91,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:94,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:94,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:97,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:97,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:98,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:98,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:102,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:102,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:104,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:104,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:108,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:108,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:110,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:110,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 112
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, LeadingZeros)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:115,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:116,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:117,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:118,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, MultipleSignsBeforeDigitsCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:122,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:123,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:124,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:125,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, SignInWrongPlaceCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:130,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:130,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:131,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:131,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:132,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:132,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:133,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:133,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:134,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:134,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:135,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:135,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:136,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:137,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, ZeroAlwaysFitsIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:142,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:143,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:144,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:145,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:146,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:147,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:148,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:149,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum::Cast
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, ZeroAlwaysCastsToZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:154,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:154,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:155,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:155,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:156,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:156,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:157,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:159,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:159,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:160,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:160,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:161,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:162,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, NegativeOnlyFitsInSigned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:168,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:168,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:169,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:169,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:170,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:171,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:171,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:172,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:172,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:173,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:173,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:177,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:178,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:179,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:180,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:180,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:181,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:182,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:182,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:186,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:186,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:187,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:187,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:188,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:188,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:189,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:189,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:190,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:191,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:191,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:194,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:194,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:197,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:198,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 199
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - exactfloat_internal::Bn
    - EXPECT_FALSE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, FitsInUnsignedBoundsChecks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:204,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:204,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:205,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:205,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:206,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:206,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:207,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:207,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:208,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:208,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:209,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:209,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:213,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:213,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:214,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:214,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:215,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:215,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:216,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:216,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:217,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:217,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:218,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:218,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:222,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:222,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:223,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:223,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:224,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:225,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:225,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:226,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:226,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:227,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:230,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:230,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:233,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:234,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:234,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:238,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:238,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:239,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:239,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:240,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:240,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:241,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:241,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:242,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:242,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:243,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:243,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:247,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:247,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:248,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:248,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:249,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:249,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:250,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:250,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:251,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:251,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:252,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:252,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:256,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:256,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:257,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:257,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:258,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:258,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:259,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:259,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:260,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:260,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:261,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:261,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:264,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 265
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - exactfloat_internal::Bn
    - EXPECT_FALSE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, FitsInSignedBoundsChecks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:269,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:269,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:270,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:270,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:271,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:271,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:272,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:272,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:273,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:273,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:274,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:274,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:275,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:275,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:276,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:276,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:279,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:279,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:280,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:280,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:281,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:281,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:282,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:282,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:283,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:283,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:284,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:284,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:285,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:285,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:286,1
    - Dst: Bignum::FitsIn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 287
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Bignum::FitsIn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, FitsInBasicSanityChecks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:290,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:290,1
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:294,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:294,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:295,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:295,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:295,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:296,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:296,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:296,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:297,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:297,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:297,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:300,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:301,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:301,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:304,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:305,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:305,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:305,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:308,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:309,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 310
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bn
    - Stats::max
    - Bignum::Cast
    - Bignum
    - EXPECT_EQ
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, UnsignedCasting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:315,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:319,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:319,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:323,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:327,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:327,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:331,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:331,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:331,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:335,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:335,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:339,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:339,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 340
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bn
    - S2CellId::range_min
    - Stats::max
    - Bignum::Cast
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, SignedCasting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:345,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:346,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:346,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:349,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:350,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:350,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:351,1
    - Dst: Bignum::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Stats::max
    - Bignum::Cast
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, CastingLargeResidues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:355,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:355,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:356,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:356,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:357,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:357,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:357,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:358,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:358,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:358,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:359,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:359,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:359,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:360,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:360,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, UnaryOperators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:365,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:365,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:365,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:366,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:366,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:366,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:367,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:367,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:367,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:367,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:368,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:368,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:368,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:368,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:371,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:371,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:371,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:372,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:372,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:372,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:373,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:373,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:373,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:373,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:377,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:377,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:378,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:378,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:383,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 384
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Addition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:388,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:388,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:388,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:388,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:389,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:389,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:389,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:389,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:390,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:390,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:390,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:390,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:391,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:391,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:391,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:391,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:392,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:392,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:392,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:392,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:395,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:395,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:395,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:396,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:396,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:396,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:396,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:397,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:397,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:397,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:397,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:400,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:402,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:407,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 408
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Subtraction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:412,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:413,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:414,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:414,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:415,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, MixedOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:420,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:421,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:422,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:425,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:425,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:428,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:428,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:432,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:433,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:433,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:436,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:436,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:439,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:439,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:442,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:443,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:446,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 448
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::Bn
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, LargeNumberArithmetic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:451,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:451,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:451,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:452,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:452,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:452,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:453,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:453,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:453,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:454,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:454,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:454,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:455,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:455,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:455,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:457,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:459,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:460,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:464,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:464,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:467,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:467,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:467,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:468,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:468,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 469
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, LeftShift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:472,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:472,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:473,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:473,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:474,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:474,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:475,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:475,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:475,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:476,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:476,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:476,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:479,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:479,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:480,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:481,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:481,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:483,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:483,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:486,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:489,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:493,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:496,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:496,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:496,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:497,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:497,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:500,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:500,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 501
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Stats::max
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, RightShift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:505,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:505,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:505,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:505,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:506,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:506,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:506,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:506,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:509,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:509,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:509,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:509,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:510,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:510,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:510,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:510,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:511,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:511,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:511,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:511,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:514,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:514,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:514,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:514,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:515,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:515,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:515,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:515,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:516,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:516,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:516,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:517,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:517,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:517,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:517,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:520,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:521,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:521,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:521,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:524,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:525,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:525,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:525,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:529,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:530,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:531,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:531,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:536,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:536,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:538,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:540,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:540,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:545,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:546,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:550,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 552
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Multiplication)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:555,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:555,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:555,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:556,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:556,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:556,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:557,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:557,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:557,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:558,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:558,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:558,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:560,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:560,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:560,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:561,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:561,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:561,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:562,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:562,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:562,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:563,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:563,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:563,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:566,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:566,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:569,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:569,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:571,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:572,1
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 573
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Bignum
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, CountrZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:576,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:576,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:577,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:577,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:581,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:581,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:582,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:582,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:583,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:583,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:584,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:584,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:588,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:588,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:589,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:589,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:590,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:590,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:593,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:594,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:594,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:595,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:595,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:596,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:596,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:598,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:598,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:599,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:599,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:600,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:600,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:601,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:601,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:602,1
    - Dst: Bignum::is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 603
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - Bignum
    - EXPECT_FALSE
    - Bignum::is_bit_set
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, is_bit_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:607,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:607,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:608,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:608,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:608,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:609,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:609,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:609,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:610,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:610,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:610,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:613,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:613,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:613,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:614,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:614,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:614,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:615,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:615,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:615,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:616,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:616,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:616,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:619,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:619,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:619,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:620,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:620,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:620,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:621,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:621,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:621,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:624,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:625,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:625,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:628,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:629,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:630,1
    - Dst: Bignum::Pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 631
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - exactfloat_internal::Bn
    - Bignum
    - Bignum::Pow
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Pow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bignum::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:635,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:636,1
    - Dst: Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:636,1
    - Dst: Bignum::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:639,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:640,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 641
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - Bignum::set_zero
    - EXPECT_TRUE
    - Bignum::is_zero
    - Bignum
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, SetZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bignum::set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:645,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:646,1
    - Dst: Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:646,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:647,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:647,1
    - Dst: Bignum::set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:649,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:650,1
    - Dst: Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:650,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:651,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:651,1
    - Dst: Bignum::set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:655,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:656,1
    - Dst: Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:656,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:657,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 658
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - Bignum::is_negative
    - EXPECT_TRUE
    - Bignum::set_negative
    - Bignum
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, SetNegativeSetPositive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:661,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:661,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:661,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:662,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:662,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:662,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:663,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:663,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:663,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:664,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:664,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:664,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:665,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:665,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:665,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:668,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:668,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:668,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:669,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:669,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:669,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:670,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:670,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:670,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:671,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:671,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:671,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:674,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:674,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:674,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:675,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:675,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:675,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:676,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:676,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:676,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:677,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:677,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:677,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:680,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:680,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:680,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:681,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:681,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:681,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:684,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:684,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:684,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:685,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:685,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:685,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:686,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:686,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:686,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:687,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:687,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:687,1
    - Dst: exactfloat_internal::Bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:690,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:691,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:691,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:692,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:692,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:693,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:693,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:694,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:694,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:696,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:696,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:696,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:697,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:697,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:697,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:698,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:698,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:698,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:699,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:699,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:699,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:700,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:700,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:700,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:702,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:702,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:702,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:703,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:703,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:703,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:704,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:704,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:704,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:705,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:705,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:705,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:706,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:706,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:706,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:708,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:708,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:708,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:709,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:709,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 710
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GT
    - exactfloat_internal::Bn
    - EXPECT_LT
    - EXPECT_GE
    - Bignum
    - EXPECT_LE
    - EXPECT_NE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, Comparisons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 715
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:720,1
    - Dst: BN_dec2bn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:721,1
    - Dst: data
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' decimal'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 722
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_dec2bn
    - BN_new
    - data
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum(const std::string& decimal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:724,1
    - Dst: BN_set_word
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 726
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_set_word
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum(uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 728
    functionName: ~OpenSSLBignum()
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ~OpenSSLBignum()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - OpenSSLBignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 732
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum(OpenSSLBignum&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - OpenSSLBignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 741
    functionName: '& operator=(OpenSSLBignum&& other) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: OpenSSLBignum
    signature: OpenSSLBignum & operator=(OpenSSLBignum&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - OpenSSLBignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 743
    functionName: exactfloat_internal::OpenSSLBignum::OpenSSLBignum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_dup
    linkageType: ''
    returnType: void
    signature: void OpenSSLBignum(const OpenSSLBignum& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - OpenSSLBignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 750
    functionName: '& operator=(const OpenSSLBignum& other)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: OpenSSLBignum
    signature: OpenSSLBignum & operator=(const OpenSSLBignum& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 752
    functionName: exactfloat_internal::OpenSSLBignum::get
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:764,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:773,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:773,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:773,1
    - Dst: s2random::LogUniform
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:775,1
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bitgen
    - bits
    argTypes:
    - absl::BitGenRef
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 761
    functionDepth: 3
    functionLinenumber: 761
    functionLinenumberEnd: 782
    functionName: exactfloat_internal::GenerateRandomNumberStrings
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 1
    functionsReached:
    - absl::StrFormat
    - std::vector::push_back
    - absl::StrAppend
    - s2random::LogUniform
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GenerateRandomNumberStrings(\n    absl::BitGenRef
      bitgen, int bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:790,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:790,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:790,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:790,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:792,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:792,1
    - Dst: EXPECT_STREQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:793,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 795
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_add
    - EXPECT_STREQ
    - OPENSSL_free
    - BN_bn2dec
    - OpenSSLBignum::get
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, OpenSSLIntegration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:806,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:806,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:806,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:806,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:808,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:808,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:809,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:811,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:811,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 813
    functionName: exactfloat_internal::TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_add
    - absl::StrFormat
    - OPENSSL_free
    - std::string
    - BN_bn2dec
    - OpenSSLBignum::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BignumTest, ResultsMatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::GenerateRandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:826,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitgen
    - size_class
    argTypes:
    - absl::BitGenRef
    - NumberSizeClass
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 4
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: exactfloat_internal::RandomNumberStrings
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 5
    functionsReached:
    - exactfloat_internal::GenerateRandomNumberStrings
    - static_cast<int>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> RandomNumberStrings(absl::BitGenRef bitgen,\n
      \                                            NumberSizeClass size_class)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:840,1
    - Dst: GetParam
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:840,1
    - Dst: RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:841,1
    - Dst: GetParam
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:841,1
    - Dst: ABSL_CHECK_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:842,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:842,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:842,1
    - Dst: std::vector::reserve
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:845,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:845,1
    - Dst: auto::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:847,1
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 851
    functionName: exactfloat_internal::VsOpenSSLTest::Numbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - ABSL_CHECK_EQ
    - GetParam
    - std::vector::emplace_back
    - std::vector::reserve
    - RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::pair<std::string, std::string>>
    signature: "std::vector<std::pair<std::string, std::string>> Numbers(\n      absl::BitGenRef
      bitgen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:855,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:856,1
    - Dst: BN_CTX_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:859,1
    - Dst: Numbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:860,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:861,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:862,1
    - Dst: BN_mul
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:868,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:868,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:868,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:868,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:871,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:871,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:872,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:874,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:874,1
    - Dst: std::string::substr
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:876,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:877,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:878,1
    - Dst: BN_CTX_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 881
    functionName: exactfloat_internal::TEST_P
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - std::string::substr
    - absl::StrFormat
    - exactfloat_internal::Bignum::FromString
    - OPENSSL_free
    - BN_mul
    - std::string
    - BN_bn2dec
    - BN_CTX_free
    - OpenSSLBignum::get
    - Numbers
    - EXPECT_EQ
    - BN_CTX_new
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(VsOpenSSLTest, MultiplyCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:884,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:885,1
    - Dst: Numbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:888,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:889,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:890,1
    - Dst: BN_add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:897,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:897,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:897,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:897,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:900,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:900,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:901,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:903,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:903,1
    - Dst: std::string::substr
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:905,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:906,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 909
    functionName: exactfloat_internal::TEST_P
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - BN_add
    - absl::StrFormat
    - std::string::substr
    - exactfloat_internal::Bignum::FromString
    - OPENSSL_free
    - std::string
    - BN_bn2dec
    - OpenSSLBignum::get
    - Numbers
    - EXPECT_EQ
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(VsOpenSSLTest, AdditionCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Testing::MakeTaggedSeedSeq
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:912,1
    - Dst: absl::LogInfoStreamer
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:914,1
    - Dst: Numbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:918,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:919,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:920,1
    - Dst: BN_sub
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:927,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:927,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:927,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:927,1
    - Dst: BN_bn2dec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:930,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:930,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:931,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:933,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:933,1
    - Dst: std::string::substr
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:935,1
    - Dst: std::string
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:936,1
    - Dst: OPENSSL_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 939
    functionName: exactfloat_internal::TEST_P
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - std::string::substr
    - absl::StrFormat
    - exactfloat_internal::Bignum::FromString
    - OPENSSL_free
    - std::string
    - BN_bn2dec
    - EXPECT_EQ
    - OpenSSLBignum::get
    - Numbers
    - BN_sub
    - absl::LogInfoStreamer
    - S2Testing::MakeTaggedSeedSeq
    linkageType: ''
    returnType: void
    signature: void TEST_P(VsOpenSSLTest, SubtractionCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:962,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:962,1
    - Dst: op
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:970,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - op
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - BinaryOp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 974
    functionName: exactfloat_internal::BignumBinaryOpBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 10
    functionsReached:
    - op
    - std::vector::push_back
    - benchmark::DoNotOptimize
    - exactfloat_internal::Bignum::FromString
    linkageType: ''
    returnType: void
    signature: "void BignumBinaryOpBenchmark(benchmark::State& state,\n                             const
      std::vector<std::string>& number_strings,\n                             BinaryOp
      op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:981,1
    - Dst: exactfloat_internal::Bignum::FromString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:981,1
    - Dst: Pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:988,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - exponent
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 992
    functionName: exactfloat_internal::BignumPowBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - benchmark::DoNotOptimize
    - exactfloat_internal::Bignum::FromString
    - Pow
    linkageType: ''
    returnType: void
    signature: "void BignumPowBenchmark(benchmark::State& state,\n                        const
      std::vector<std::string>& number_strings,\n                        int exponent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1000,1
    - Dst: op
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1009,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1009,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1009,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1009,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1010,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - op
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - BinaryOp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    functionName: exactfloat_internal::OpenSSLBinaryOpBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 5
    functionsReached:
    - get
    - op
    - OpenSSLBignum::get
    - std::vector::emplace_back
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: "void OpenSSLBinaryOpBenchmark(benchmark::State& state,\n                              const
      std::vector<std::string>& number_strings,\n                              BinaryOp
      op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1021,1
    - Dst: BN_CTX_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1024,1
    - Dst: op
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1031,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1031,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1031,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1031,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1032,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1032,1
    - Dst: BN_CTX_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - op
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - MulOp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1037
    functionName: exactfloat_internal::OpenSSLMulOpBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 5
    functionsReached:
    - get
    - op
    - BN_CTX_free
    - OpenSSLBignum::get
    - std::vector::emplace_back
    - BN_CTX_new
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: "void OpenSSLMulOpBenchmark(benchmark::State& state,\n                           const
      std::vector<std::string>& number_strings,\n                           MulOp
      op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1044,1
    - Dst: BN_CTX_new
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1048,1
    - Dst: BN_exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1054,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1054,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1054,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1054,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1055,1
    - Dst: OpenSSLBignum::get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1055,1
    - Dst: BN_CTX_free
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' state'
    - ' number_strings'
    - exponent
    argTypes:
    - benchmark::State
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1060
    functionName: exactfloat_internal::OpenSSLPowBenchmark
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 2
    functionsReached:
    - get
    - BN_exp
    - BN_CTX_free
    - OpenSSLBignum::get
    - std::vector::emplace_back
    - BN_CTX_new
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: "void OpenSSLPowBenchmark(benchmark::State& state,\n                         const
      std::vector<std::string>& number_strings,\n                         int exponent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1062
    functionDepth: 5
    functionLinenumber: 1062
    functionLinenumberEnd: 1064
    functionName: exactfloat_internal::SmallNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 6
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> SmallNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1066
    functionDepth: 5
    functionLinenumber: 1066
    functionLinenumberEnd: 1068
    functionName: exactfloat_internal::MediumNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 6
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> MediumNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1070
    functionDepth: 5
    functionLinenumber: 1070
    functionLinenumberEnd: 1072
    functionName: exactfloat_internal::LargeNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 4
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> LargeNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1074
    functionDepth: 5
    functionLinenumber: 1074
    functionLinenumberEnd: 1076
    functionName: exactfloat_internal::HugeNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 4
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HugeNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::RandomNumberStrings
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitgen
    argTypes:
    - absl::BitGenRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1078
    functionDepth: 5
    functionLinenumber: 1078
    functionLinenumberEnd: 1080
    functionName: exactfloat_internal::MegaNumbers
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 4
    functionsReached:
    - exactfloat_internal::RandomNumberStrings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> MegaNumbers(absl::BitGenRef bitgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1084,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1082
    functionDepth: 6
    functionLinenumber: 1082
    functionLinenumberEnd: 1085
    functionName: exactfloat_internal::BM_Bignum_AddSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::SmallNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1090,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1088
    functionDepth: 6
    functionLinenumber: 1088
    functionLinenumberEnd: 1091
    functionName: exactfloat_internal::BM_Bignum_AddMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MediumNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1096,1
    - Dst: exactfloat_internal::LargeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1094
    functionDepth: 6
    functionLinenumber: 1094
    functionLinenumberEnd: 1097
    functionName: exactfloat_internal::BM_Bignum_AddLarge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::LargeNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddLarge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1102,1
    - Dst: exactfloat_internal::HugeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1100
    functionDepth: 6
    functionLinenumber: 1100
    functionLinenumberEnd: 1103
    functionName: exactfloat_internal::BM_Bignum_AddHuge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::HugeNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddHuge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1108,1
    - Dst: exactfloat_internal::MegaNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1106
    functionDepth: 6
    functionLinenumber: 1106
    functionLinenumberEnd: 1109
    functionName: exactfloat_internal::BM_Bignum_AddMega
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MegaNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_AddMega(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1114,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1112
    functionDepth: 6
    functionLinenumber: 1112
    functionLinenumberEnd: 1115
    functionName: exactfloat_internal::BM_OpenSSL_AddSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::SmallNumbers
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1120,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1118
    functionDepth: 6
    functionLinenumber: 1118
    functionLinenumberEnd: 1121
    functionName: exactfloat_internal::BM_OpenSSL_AddMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MediumNumbers
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1126,1
    - Dst: exactfloat_internal::LargeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1124
    functionDepth: 6
    functionLinenumber: 1124
    functionLinenumberEnd: 1127
    functionName: exactfloat_internal::BM_OpenSSL_AddLarge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::LargeNumbers
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddLarge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1132,1
    - Dst: exactfloat_internal::HugeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1130
    functionDepth: 6
    functionLinenumber: 1130
    functionLinenumberEnd: 1133
    functionName: exactfloat_internal::BM_OpenSSL_AddHuge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::HugeNumbers
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddHuge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1138,1
    - Dst: exactfloat_internal::MegaNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1136
    functionDepth: 6
    functionLinenumber: 1136
    functionLinenumberEnd: 1139
    functionName: exactfloat_internal::BM_OpenSSL_AddMega
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLBinaryOpBenchmark
    - exactfloat_internal::MegaNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_AddMega(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1144,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1142
    functionDepth: 6
    functionLinenumber: 1142
    functionLinenumberEnd: 1146
    functionName: exactfloat_internal::BM_Bignum_MulSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::SmallNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1151,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1149
    functionDepth: 6
    functionLinenumber: 1149
    functionLinenumberEnd: 1153
    functionName: exactfloat_internal::BM_Bignum_MulMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MediumNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1158,1
    - Dst: exactfloat_internal::LargeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1156
    functionDepth: 6
    functionLinenumber: 1156
    functionLinenumberEnd: 1160
    functionName: exactfloat_internal::BM_Bignum_MulLarge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::LargeNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulLarge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1165,1
    - Dst: exactfloat_internal::HugeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1163
    functionDepth: 6
    functionLinenumber: 1163
    functionLinenumberEnd: 1167
    functionName: exactfloat_internal::BM_Bignum_MulHuge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::HugeNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulHuge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumBinaryOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1172,1
    - Dst: exactfloat_internal::MegaNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1170
    functionDepth: 6
    functionLinenumber: 1170
    functionLinenumberEnd: 1174
    functionName: exactfloat_internal::BM_Bignum_MulMega
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MegaNumbers
    - exactfloat_internal::BignumBinaryOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_MulMega(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1179,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1177
    functionDepth: 6
    functionLinenumber: 1177
    functionLinenumberEnd: 1180
    functionName: exactfloat_internal::BM_OpenSSL_MulSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLMulOpBenchmark
    - exactfloat_internal::SmallNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1185,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1183
    functionDepth: 6
    functionLinenumber: 1183
    functionLinenumberEnd: 1186
    functionName: exactfloat_internal::BM_OpenSSL_MulMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MediumNumbers
    - exactfloat_internal::OpenSSLMulOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1191,1
    - Dst: exactfloat_internal::LargeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1189
    functionDepth: 6
    functionLinenumber: 1189
    functionLinenumberEnd: 1192
    functionName: exactfloat_internal::BM_OpenSSL_MulLarge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::LargeNumbers
    - exactfloat_internal::OpenSSLMulOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulLarge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1197,1
    - Dst: exactfloat_internal::HugeNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1195
    functionDepth: 6
    functionLinenumber: 1195
    functionLinenumberEnd: 1198
    functionName: exactfloat_internal::BM_OpenSSL_MulHuge
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::HugeNumbers
    - exactfloat_internal::OpenSSLMulOpBenchmark
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulHuge(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLMulOpBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1203,1
    - Dst: exactfloat_internal::MegaNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1201
    functionDepth: 6
    functionLinenumber: 1201
    functionLinenumberEnd: 1204
    functionName: exactfloat_internal::BM_OpenSSL_MulMega
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLMulOpBenchmark
    - exactfloat_internal::MegaNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_MulMega(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumPowBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1209,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1207
    functionDepth: 6
    functionLinenumber: 1207
    functionLinenumberEnd: 1210
    functionName: exactfloat_internal::BM_Bignum_PowSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::BignumPowBenchmark
    - exactfloat_internal::SmallNumbers
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_PowSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::BignumPowBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1215,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1213
    functionDepth: 6
    functionLinenumber: 1213
    functionLinenumberEnd: 1216
    functionName: exactfloat_internal::BM_Bignum_PowMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::BignumPowBenchmark
    - exactfloat_internal::MediumNumbers
    linkageType: ''
    returnType: void
    signature: void BM_Bignum_PowMedium(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLPowBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1221,1
    - Dst: exactfloat_internal::SmallNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1219
    functionDepth: 6
    functionLinenumber: 1219
    functionLinenumberEnd: 1222
    functionName: exactfloat_internal::BM_OpenSSL_PowSmall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLPowBenchmark
    - exactfloat_internal::SmallNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_PowSmall(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::OpenSSLPowBenchmark
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1227,1
    - Dst: exactfloat_internal::MediumNumbers
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1225
    functionDepth: 6
    functionLinenumber: 1225
    functionLinenumberEnd: 1228
    functionName: exactfloat_internal::BM_OpenSSL_PowMedium
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::OpenSSLPowBenchmark
    - exactfloat_internal::MediumNumbers
    linkageType: ''
    returnType: void
    signature: void BM_OpenSSL_PowMedium(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:46,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:47,1
    - Dst: exactfloat::ExactFloat::set_nan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:48,1
    - Dst: std::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:49,1
    - Dst: exactfloat::ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:50,1
    - Dst: std::frexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:59,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:59,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:60,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:60,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:61,1
    - Dst: exactfloat::ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 65
    functionName: exactfloat::ExactFloat::ExactFloat
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - std::signbit
    - exactfloat::ExactFloat::set_nan
    - static_cast<uint64_t>
    - std::isinf
    - std::fabs
    - std::isnan
    - exactfloat::ExactFloat::set_inf
    - Bignum
    - exactfloat::ExactFloat::Canonicalize
    - ldexp
    - std::frexp
    linkageType: ''
    returnType: void
    signature: void ExactFloat::ExactFloat(double v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: exactfloat::SafeAbs
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    linkageType: ''
    returnType: unsigned
    signature: unsigned SafeAbs(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:75,1
    - Dst: SafeAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:75,1
    - Dst: exactfloat::ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: exactfloat::ExactFloat::ExactFloat
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - SafeAbs
    - exactfloat::ExactFloat::Canonicalize
    - Bignum
    linkageType: ''
    returnType: void
    signature: void ExactFloat::ExactFloat(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: exactfloat::ExactFloat::SignedZero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ExactFloat::set_zero
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::SignedZero(int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: exactfloat::ExactFloat::Infinity
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ExactFloat::set_inf
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::Infinity(int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloat::set_nan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: exactfloat::ExactFloat::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ExactFloat::set_nan
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: exactfloat::ExactFloat::prec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - bit_width
    linkageType: ''
    returnType: int
    signature: int ExactFloat::prec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:100,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:100,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: exactfloat::ExactFloat::exp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isnormal
    - bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int ExactFloat::exp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: exactfloat::ExactFloat::set_zero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - exactfloat::ExactFloat::set_zero
    linkageType: ''
    returnType: void
    signature: void ExactFloat::set_zero(int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: exactfloat::ExactFloat::set_inf
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - exactfloat::ExactFloat::set_zero
    linkageType: ''
    returnType: void
    signature: void ExactFloat::set_inf(int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: exactfloat::ExactFloat::set_nan
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - exactfloat::ExactFloat::set_zero
    linkageType: ''
    returnType: void
    signature: void ExactFloat::set_nan()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: exactfloat::fpclassify
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fpclassify(ExactFloat const& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:138,1
    - Dst: ToDoubleHelper
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:139,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:141,1
    - Dst: ExactFloat::ToDoubleHelper
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: ExactFloat::operator double() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToMaxPrec
    - ToDoubleHelper
    - ExactFloat::ToDoubleHelper
    - prec
    linkageType: ''
    returnType: void
    signature: void ExactFloat::operator double() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:147,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:147,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:148,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:149,1
    - Dst: std::copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:149,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:150,1
    - Dst: std::copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:151,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:151,1
    - Dst: std::copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:153,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:153,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:156,1
    - Dst: Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:156,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 161
    functionName: exactfloat::ExactFloat::ToDoubleHelper
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isinf
    - S1ChordAngle::is_infinity
    - bit_width
    - ABSL_DCHECK_LE
    - static_cast<double>
    - isnormal
    - exactfloat::ExactFloat::is_zero
    - std::numeric_limits<double>::quiet_NaN
    - Cast
    - ldexp
    - std::copysign
    linkageType: ''
    returnType: double
    signature: double ExactFloat::ToDoubleHelper() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:166,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:167,1
    - Dst: exactfloat::ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:170,1
    - Dst: exactfloat::ExactFloat::RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - max_prec
    - mode
    argTypes:
    - int
    - RoundingMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 178
    functionName: exactfloat::ExactFloat::RoundToMaxPrec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - exactfloat::ExactFloat::RoundToPowerOf2
    - ABSL_DCHECK_GE
    - exactfloat::ExactFloat::prec
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::RoundToMaxPrec(int max_prec, RoundingMode mode)
      const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:181,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:182,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:188,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:188,1
    - Dst: is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:208,1
    - Dst: countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:211,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:213,1
    - Dst: is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:220,1
    - Dst: is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:221,1
    - Dst: countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:221,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:228,1
    - Dst: ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:231,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - bit_exp
    - mode
    argTypes:
    - int
    - RoundingMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 233
    functionName: exactfloat::ExactFloat::RoundToPowerOf2
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_LE
    - ExactFloat::Canonicalize
    - is_bit_set
    - isnormal
    - Bignum
    - countr_zero
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::RoundToPowerOf2(int bit_exp, RoundingMode mode)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:247,1
    - Dst: std::ceil
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prec
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 248
    functionName: exactfloat::ExactFloat::NumSignificantDigitsForPrec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - std::ceil
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int ExactFloat::NumSignificantDigitsForPrec(int prec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:259,1
    - Dst: exactfloat::ExactFloat::NumSignificantDigitsForPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:259,1
    - Dst: exactfloat::ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:259,1
    - Dst: exactfloat::ExactFloat::ToStringWithMaxDigits
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: exactfloat::ExactFloat::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::NumSignificantDigitsForPrec
    - max
    - exactfloat::ExactFloat::ToStringWithMaxDigits
    - exactfloat::ExactFloat::prec
    linkageType: ''
    returnType: std::string
    signature: std::string ExactFloat::ToString() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:264,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:265,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:266,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:267,1
    - Dst: exactfloat::ExactFloat::GetDecimalDigits
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:271,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:273,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:284,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:285,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:286,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:287,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:287,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:287,1
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:289,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:294,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:294,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:295,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:296,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:297,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:300,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:300,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:300,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:301,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:302,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:302,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:302,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:305,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:307,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:309,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - max_digits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 313
    functionName: exactfloat::ExactFloat::ToStringWithMaxDigits
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - std::string::end
    - absl::StrAppendFormat
    - absl::StrAppend
    - isnan
    - static_cast<size_t>
    - std::string::size
    - isnormal
    - exactfloat::ExactFloat::GetDecimalDigits
    - exactfloat::ExactFloat::is_zero
    - std::string::push_back
    - ABSL_DCHECK_GT
    - std::string::begin
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ExactFloat::ToStringWithMaxDigits(int max_digits) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::end
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:317,1
    - Dst: std::string*::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:318,1
    - Dst: std::string*::insert
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - digits
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: exactfloat::IncrementDecimalDigits
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - std::string*::begin
    - std::string*::insert
    - std::string*::end
    linkageType: ''
    returnType: void
    signature: void IncrementDecimalDigits(std::string* digits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:329,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:329,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:341,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:345,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:346,1
    - Dst: std::string::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:346,1
    - Dst: std::string::length
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:348,1
    - Dst: std::string*::assign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:352,1
    - Dst: std::string::find_first_not_of
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:359,1
    - Dst: IncrementDecimalDigits
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:363,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:370,1
    - Dst: std::string*::find_last_not_of
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:371,1
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:372,1
    - Dst: std::string*::erase
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:373,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:374,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:374,1
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:374,1
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - max_digits
    - digits
    argTypes:
    - int
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 379
    functionName: exactfloat::ExactFloat::GetDecimalDigits
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - IncrementDecimalDigits
    - absl::StrFormat
    - std::string::find_first_not_of
    - std::string*::erase
    - ABSL_DCHECK_LE
    - ABSL_DCHECK_NE
    - std::string*::find_last_not_of
    - std::string*::size
    - isnormal
    - Bignum
    - std::string::length
    - static_cast<int>
    - std::string*::assign
    - std::string::empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int ExactFloat::GetDecimalDigits(int max_digits, std::string* digits)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:382,1
    - Dst: exactfloat::ExactFloat::ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:382,1
    - Dst: exactfloat::ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: exactfloat::ExactFloat::ToUniqueString
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - exactfloat::ExactFloat::ToString
    - exactfloat::ExactFloat::prec
    linkageType: ''
    returnType: std::string
    signature: std::string ExactFloat::ToUniqueString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: ExactFloat::operator-() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - CopyWithSign
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::SignedSum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: operator+(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::SignedSum
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat operator+(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::SignedSum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: operator-(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::SignedSum
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat operator-(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:397,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:397,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:399,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:400,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:401,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:403,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:403,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:404,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:406,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:406,1
    - Dst: ExactFloat*::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:407,1
    - Dst: ExactFloat*::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:408,1
    - Dst: ExactFloat*::CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:408,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:410,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:412,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:414,1
    - Dst: ExactFloat*::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:414,1
    - Dst: ExactFloat*::CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:415,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:420,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:421,1
    - Dst: ExactFloat::bn_::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:435,1
    - Dst: ExactFloat::bn_::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:437,1
    - Dst: ExactFloat::bn_::set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:440,1
    - Dst: ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:446,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 4
    argNames:
    - a_sign
    - a
    - b_sign
    - b
    argTypes:
    - int
    - ExactFloat*
    - int
    - ExactFloat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 448
    functionName: exactfloat::ExactFloat::SignedSum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 2
    functionsReached:
    - isinf
    - isnan
    - exactfloat::ExactFloat::NaN
    - ExactFloat*::is_zero
    - exactfloat::ExactFloat::SignedZero
    - ExactFloat::bn_::is_negative
    - ExactFloat::bn_::set_negative
    - ExactFloat::Canonicalize
    - ExactFloat*::CopyWithSign
    - ExactFloat::bn_::is_zero
    - isnormal
    - swap
    - exactfloat::ExactFloat::Infinity
    - ABSL_DCHECK
    linkageType: ''
    returnType: ExactFloat
    signature: "ExactFloat ExactFloat::SignedSum(int a_sign, const ExactFloat* a,
      int b_sign,\n                                 const ExactFloat* b)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:451,1
    - Dst: exactfloat::ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:455,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:456,1
    - Dst: exactfloat::ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:457,1
    - Dst: exactfloat::ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:459,1
    - Dst: is_even
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:460,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:462,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:462,1
    - Dst: countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:463,1
    - Dst: exactfloat::ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:471,1
    - Dst: exactfloat::ExactFloat::set_nan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:472,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 450
    functionDepth: 3
    functionLinenumber: 450
    functionLinenumberEnd: 474
    functionName: exactfloat::ExactFloat::Canonicalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 2
    functionsReached:
    - exactfloat::ExactFloat::set_zero
    - exactfloat::ExactFloat::set_nan
    - exactfloat::ExactFloat::exp
    - exactfloat::ExactFloat::set_inf
    - isnormal
    - exactfloat::ExactFloat::is_zero
    - is_even
    - countr_zero
    - exactfloat::ExactFloat::prec
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void ExactFloat::Canonicalize()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:478,1
    - Dst: exactfloat::isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:478,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:480,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:481,1
    - Dst: exactfloat::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:482,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:484,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:484,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:485,1
    - Dst: exactfloat::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:487,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:488,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:488,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:489,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:491,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:491,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:491,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:492,1
    - Dst: ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:498,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 500
    functionName: operator*(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::NaN
    - exactfloat::ExactFloat::SignedZero
    - is_zero
    - ExactFloat::Canonicalize
    - exactfloat::isnormal
    - exactfloat::isinf
    - exactfloat::ExactFloat::Infinity
    - exactfloat::isnan
    - ABSL_DCHECK
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat operator*(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:504,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:504,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:511,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:511,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: operator==(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - is_zero
    - exactfloat::isnan
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:519,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:519,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:519,1
    - Dst: ExactFloat::bn_::Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 523
    functionName: exactfloat::ExactFloat::ScaleAndCompare
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ExactFloat::bn_::Compare
    - isnormal
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int ExactFloat::ScaleAndCompare(const ExactFloat& b) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:527,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:527,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:528,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:528,1
    - Dst: exactfloat::ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:530,1
    - Dst: exactfloat::ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:530,1
    - Dst: exactfloat::ExactFloat::ScaleAndCompare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:534,1
    - Dst: exactfloat::ExactFloat::ScaleAndCompare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 536
    functionName: exactfloat::ExactFloat::UnsignedLess
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isinf
    - exactfloat::ExactFloat::exp
    - exactfloat::ExactFloat::is_zero
    - exactfloat::ExactFloat::ScaleAndCompare
    linkageType: ''
    returnType: bool
    signature: bool ExactFloat::UnsignedLess(const ExactFloat& b) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:540,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:540,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:542,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:542,1
    - Dst: UnsignedLess
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:546,1
    - Dst: UnsignedLess
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 547
    functionName: operator<(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - is_zero
    - exactfloat::isnan
    - UnsignedLess
    linkageType: ''
    returnType: bool
    signature: bool operator<(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::abs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 549
    functionName: exactfloat::fabs
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::abs
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fabs(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 551
    functionName: exactfloat::abs
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - CopyWithSign
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat abs(const ExactFloat& a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:555,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 562
    functionName: exactfloat::fmax
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::isnan
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fmax(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:566,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 573
    functionName: exactfloat::fmin
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::isnan
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fmin(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: exactfloat::fdim
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fdim(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 582
    functionName: exactfloat::ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ceil(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 586
    functionName: exactfloat::floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat floor(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 590
    functionName: exactfloat::trunc
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat trunc(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 594
    functionName: exactfloat::round
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat round(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 598
    functionName: exactfloat::rint
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat rint(const ExactFloat& a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:605,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:606,1
    - Dst: exactfloat::ExactFloat::RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:608,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:609,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:610,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:611,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:613,1
    - Dst: ExactFloat::bn_::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:614,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - mode
    argTypes:
    - RoundingMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 620
    functionName: exactfloat::ExactFloat::ToInteger
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isinf
    - S2CellId::range_min
    - isnan
    - Stats::max
    - ExactFloat::exp
    - clamp
    - exactfloat::ExactFloat::RoundToPowerOf2
    - ExactFloat::is_zero
    - ExactFloat::bn_::Cast
    linkageType: ''
    returnType: T
    signature: T ExactFloat::ToInteger(RoundingMode mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToInteger
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 625
    functionName: exactfloat::lrint
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ToInteger
    linkageType: ''
    returnType: long
    signature: long lrint(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToInteger
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 629
    functionName: exactfloat::llrint
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ToInteger
    linkageType: ''
    returnType: long long
    signature: long long llrint(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToInteger
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 633
    functionName: exactfloat::lround
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ToInteger
    linkageType: ''
    returnType: long
    signature: long lround(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToInteger
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 637
    functionName: exactfloat::llround
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ToInteger
    linkageType: ''
    returnType: long long
    signature: long long llround(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 642
    functionName: exactfloat::copysign
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - CopyWithSign
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat copysign(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:645,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:651,1
    - Dst: exactfloat::ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:652,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - exp
    argTypes:
    - ExactFloat
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: exactfloat::frexp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::ldexp
    - exactfloat::isnormal
    - exp
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat frexp(const ExactFloat& a, int* exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:656,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:660,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:661,1
    - Dst: ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - exp
    argTypes:
    - ExactFloat
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 670
    functionName: exactfloat::ldexp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - clamp
    - exactfloat::isnormal
    - ExactFloat::Canonicalize
    - exp
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ldexp(const ExactFloat& a, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::clamp<long>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:675,1
    - Dst: exactfloat::ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:676,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - exp
    argTypes:
    - ExactFloat
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 677
    functionName: exactfloat::scalbln
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - exactfloat::ldexp
    - std::clamp<long>
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat scalbln(const ExactFloat& a, long exp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:680,1
    - Dst: exactfloat::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:681,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:682,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 685
    functionName: exactfloat::ilogb
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - is_zero
    - exactfloat::isnan
    - exp
    - exactfloat::isinf
    linkageType: ''
    returnType: int
    signature: int ilogb(const ExactFloat& a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:688,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:688,1
    - Dst: exactfloat::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:689,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:689,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:690,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:692,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: exactfloat::logb
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ExactFloat
    - is_zero
    - exp
    - exactfloat::isinf
    - exactfloat::ExactFloat::Infinity
    - exactfloat::isnan
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat logb(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:696,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: exactfloat::ExactFloat::Unimplemented
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - exactfloat::ExactFloat::NaN
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::Unimplemented()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:46,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:47,1
    - Dst: exactfloat::ExactFloat::set_nan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:48,1
    - Dst: std::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:49,1
    - Dst: exactfloat::ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:50,1
    - Dst: std::frexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:59,1
    - Dst: std::fabs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:59,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:60,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:60,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:61,1
    - Dst: exactfloat::ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 65
    functionName: exactfloat::ExactFloat::ExactFloat
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - std::signbit
    - exactfloat::ExactFloat::set_nan
    - static_cast<uint64_t>
    - std::isinf
    - std::fabs
    - std::isnan
    - exactfloat::ExactFloat::set_inf
    - Bignum
    - exactfloat::ExactFloat::Canonicalize
    - ldexp
    - std::frexp
    linkageType: ''
    returnType: void
    signature: void ExactFloat::ExactFloat(double v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: exactfloat::SafeAbs
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    linkageType: ''
    returnType: unsigned
    signature: unsigned SafeAbs(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:75,1
    - Dst: SafeAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:75,1
    - Dst: exactfloat::ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: exactfloat::ExactFloat::ExactFloat
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - SafeAbs
    - exactfloat::ExactFloat::Canonicalize
    - Bignum
    linkageType: ''
    returnType: void
    signature: void ExactFloat::ExactFloat(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: exactfloat::ExactFloat::SignedZero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 2
    functionsReached:
    - ExactFloat::set_zero
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::SignedZero(int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: exactfloat::ExactFloat::Infinity
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 3
    functionsReached:
    - ExactFloat::set_inf
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::Infinity(int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloat::set_nan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: exactfloat::ExactFloat::NaN
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 3
    functionsReached:
    - ExactFloat::set_nan
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::NaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: exactfloat::ExactFloat::prec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 4
    functionsReached:
    - bit_width
    linkageType: ''
    returnType: int
    signature: int ExactFloat::prec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:100,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:100,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: exactfloat::ExactFloat::exp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 2
    functionsReached:
    - isnormal
    - bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int ExactFloat::exp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: exactfloat::ExactFloat::set_zero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 5
    functionsReached:
    - exactfloat::ExactFloat::set_zero
    linkageType: ''
    returnType: void
    signature: void ExactFloat::set_zero(int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: exactfloat::ExactFloat::set_inf
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 3
    functionsReached:
    - exactfloat::ExactFloat::set_zero
    linkageType: ''
    returnType: void
    signature: void ExactFloat::set_inf(int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: exactfloat::ExactFloat::set_nan
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 3
    functionsReached:
    - exactfloat::ExactFloat::set_zero
    linkageType: ''
    returnType: void
    signature: void ExactFloat::set_nan()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: exactfloat::fpclassify
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fpclassify(ExactFloat const& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:138,1
    - Dst: ToDoubleHelper
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:139,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:141,1
    - Dst: ExactFloat::ToDoubleHelper
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: ExactFloat::operator double() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToMaxPrec
    - ToDoubleHelper
    - ExactFloat::ToDoubleHelper
    - prec
    linkageType: ''
    returnType: void
    signature: void ExactFloat::operator double() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:147,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:147,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:148,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:149,1
    - Dst: std::copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:149,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:150,1
    - Dst: std::copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:151,1
    - Dst: S1ChordAngle::is_infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:151,1
    - Dst: std::copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:153,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:153,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:156,1
    - Dst: Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:156,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 161
    functionName: exactfloat::ExactFloat::ToDoubleHelper
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isinf
    - S1ChordAngle::is_infinity
    - bit_width
    - ABSL_DCHECK_LE
    - static_cast<double>
    - isnormal
    - exactfloat::ExactFloat::is_zero
    - std::numeric_limits<double>::quiet_NaN
    - Cast
    - ldexp
    - std::copysign
    linkageType: ''
    returnType: double
    signature: double ExactFloat::ToDoubleHelper() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:166,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:167,1
    - Dst: exactfloat::ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:170,1
    - Dst: exactfloat::ExactFloat::RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - max_prec
    - mode
    argTypes:
    - int
    - RoundingMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 178
    functionName: exactfloat::ExactFloat::RoundToMaxPrec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - exactfloat::ExactFloat::RoundToPowerOf2
    - ABSL_DCHECK_GE
    - exactfloat::ExactFloat::prec
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::RoundToMaxPrec(int max_prec, RoundingMode mode)
      const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:181,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:182,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:188,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:188,1
    - Dst: is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:208,1
    - Dst: countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:211,1
    - Dst: ABSL_DCHECK_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:213,1
    - Dst: is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:220,1
    - Dst: is_bit_set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:221,1
    - Dst: countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:221,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:228,1
    - Dst: ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:231,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - bit_exp
    - mode
    argTypes:
    - int
    - RoundingMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 233
    functionName: exactfloat::ExactFloat::RoundToPowerOf2
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 3
    functionsReached:
    - ABSL_DCHECK_EQ
    - ABSL_DCHECK_LE
    - ExactFloat::Canonicalize
    - is_bit_set
    - isnormal
    - Bignum
    - countr_zero
    - ABSL_DCHECK_GE
    - ABSL_DCHECK
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::RoundToPowerOf2(int bit_exp, RoundingMode mode)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:247,1
    - Dst: std::ceil
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prec
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 248
    functionName: exactfloat::ExactFloat::NumSignificantDigitsForPrec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - std::ceil
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int ExactFloat::NumSignificantDigitsForPrec(int prec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:259,1
    - Dst: exactfloat::ExactFloat::NumSignificantDigitsForPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:259,1
    - Dst: exactfloat::ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:259,1
    - Dst: exactfloat::ExactFloat::ToStringWithMaxDigits
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: exactfloat::ExactFloat::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - exactfloat::ExactFloat::NumSignificantDigitsForPrec
    - max
    - exactfloat::ExactFloat::ToStringWithMaxDigits
    - exactfloat::ExactFloat::prec
    linkageType: ''
    returnType: std::string
    signature: std::string ExactFloat::ToString() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:264,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:265,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:266,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:267,1
    - Dst: exactfloat::ExactFloat::GetDecimalDigits
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:271,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:273,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:284,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:285,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:286,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:287,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:287,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:287,1
    - Dst: absl::StrAppendFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:289,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:294,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:294,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:295,1
    - Dst: std::string::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:296,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:297,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:300,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:300,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:300,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:301,1
    - Dst: std::string::append
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:302,1
    - Dst: std::string::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:302,1
    - Dst: std::string::end
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:302,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:305,1
    - Dst: std::string::push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:307,1
    - Dst: absl::StrAppend
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:309,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - max_digits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 313
    functionName: exactfloat::ExactFloat::ToStringWithMaxDigits
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 2
    functionsReached:
    - std::string::end
    - absl::StrAppendFormat
    - absl::StrAppend
    - isnan
    - static_cast<size_t>
    - std::string::size
    - isnormal
    - exactfloat::ExactFloat::GetDecimalDigits
    - exactfloat::ExactFloat::is_zero
    - std::string::push_back
    - ABSL_DCHECK_GT
    - std::string::begin
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string ExactFloat::ToStringWithMaxDigits(int max_digits) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::end
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:317,1
    - Dst: std::string*::begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:318,1
    - Dst: std::string*::insert
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - digits
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: exactfloat::IncrementDecimalDigits
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - std::string*::begin
    - std::string*::insert
    - std::string*::end
    linkageType: ''
    returnType: void
    signature: void IncrementDecimalDigits(std::string* digits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:329,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:329,1
    - Dst: Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:341,1
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:345,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:346,1
    - Dst: std::string::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:346,1
    - Dst: std::string::length
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:348,1
    - Dst: std::string*::assign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:352,1
    - Dst: std::string::find_first_not_of
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:359,1
    - Dst: IncrementDecimalDigits
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:363,1
    - Dst: ABSL_DCHECK_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:370,1
    - Dst: std::string*::find_last_not_of
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:371,1
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:372,1
    - Dst: std::string*::erase
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:373,1
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:374,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:374,1
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:374,1
    - Dst: std::string*::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - max_digits
    - digits
    argTypes:
    - int
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 379
    functionName: exactfloat::ExactFloat::GetDecimalDigits
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 2
    functionsReached:
    - IncrementDecimalDigits
    - absl::StrFormat
    - std::string::find_first_not_of
    - std::string*::erase
    - ABSL_DCHECK_LE
    - ABSL_DCHECK_NE
    - std::string*::find_last_not_of
    - std::string*::size
    - isnormal
    - Bignum
    - std::string::length
    - static_cast<int>
    - std::string*::assign
    - std::string::empty
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int ExactFloat::GetDecimalDigits(int max_digits, std::string* digits)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:382,1
    - Dst: exactfloat::ExactFloat::ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:382,1
    - Dst: exactfloat::ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: exactfloat::ExactFloat::ToUniqueString
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    - exactfloat::ExactFloat::ToString
    - exactfloat::ExactFloat::prec
    linkageType: ''
    returnType: std::string
    signature: std::string ExactFloat::ToUniqueString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: ExactFloat::operator-() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - CopyWithSign
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::SignedSum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: operator+(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::SignedSum
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat operator+(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::SignedSum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: operator-(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::SignedSum
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat operator-(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:397,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:397,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:399,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:400,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:401,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:403,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:403,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:404,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:406,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:406,1
    - Dst: ExactFloat*::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:407,1
    - Dst: ExactFloat*::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:408,1
    - Dst: ExactFloat*::CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:408,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:410,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:412,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:414,1
    - Dst: ExactFloat*::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:414,1
    - Dst: ExactFloat*::CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:415,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:420,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:421,1
    - Dst: ExactFloat::bn_::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:435,1
    - Dst: ExactFloat::bn_::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:437,1
    - Dst: ExactFloat::bn_::set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:440,1
    - Dst: ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:446,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 4
    argNames:
    - a_sign
    - a
    - b_sign
    - b
    argTypes:
    - int
    - ExactFloat*
    - int
    - ExactFloat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 448
    functionName: exactfloat::ExactFloat::SignedSum
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 4
    functionsReached:
    - isinf
    - isnan
    - exactfloat::ExactFloat::NaN
    - ExactFloat*::is_zero
    - exactfloat::ExactFloat::SignedZero
    - ExactFloat::bn_::is_negative
    - ExactFloat::bn_::set_negative
    - ExactFloat::Canonicalize
    - ExactFloat*::CopyWithSign
    - ExactFloat::bn_::is_zero
    - isnormal
    - swap
    - exactfloat::ExactFloat::Infinity
    - ABSL_DCHECK
    linkageType: ''
    returnType: ExactFloat
    signature: "ExactFloat ExactFloat::SignedSum(int a_sign, const ExactFloat* a,
      int b_sign,\n                                 const ExactFloat* b)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:451,1
    - Dst: exactfloat::ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:455,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:456,1
    - Dst: exactfloat::ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:457,1
    - Dst: exactfloat::ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:459,1
    - Dst: is_even
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:460,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:462,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:462,1
    - Dst: countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:463,1
    - Dst: exactfloat::ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:471,1
    - Dst: exactfloat::ExactFloat::set_nan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:472,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 450
    functionDepth: 3
    functionLinenumber: 450
    functionLinenumberEnd: 474
    functionName: exactfloat::ExactFloat::Canonicalize
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 4
    functionsReached:
    - exactfloat::ExactFloat::set_zero
    - exactfloat::ExactFloat::set_nan
    - exactfloat::ExactFloat::exp
    - exactfloat::ExactFloat::set_inf
    - isnormal
    - exactfloat::ExactFloat::is_zero
    - is_even
    - countr_zero
    - exactfloat::ExactFloat::prec
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void ExactFloat::Canonicalize()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:478,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:478,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:480,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:481,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:482,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:484,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:484,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:485,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:487,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:488,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:488,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:489,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:491,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:491,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:491,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:492,1
    - Dst: ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:498,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 500
    functionName: operator*(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isinf
    - isnan
    - exactfloat::ExactFloat::NaN
    - exactfloat::ExactFloat::SignedZero
    - is_zero
    - ExactFloat::Canonicalize
    - isnormal
    - exactfloat::ExactFloat::Infinity
    - ABSL_DCHECK
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat operator*(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:504,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:504,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:511,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:511,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: operator==(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isnan
    - is_zero
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:519,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:519,1
    - Dst: isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:519,1
    - Dst: ExactFloat::bn_::Compare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 523
    functionName: exactfloat::ExactFloat::ScaleAndCompare
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 1
    functionsReached:
    - ExactFloat::bn_::Compare
    - isnormal
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int ExactFloat::ScaleAndCompare(const ExactFloat& b) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:527,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:527,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:528,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:528,1
    - Dst: exactfloat::ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:530,1
    - Dst: exactfloat::ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:530,1
    - Dst: exactfloat::ExactFloat::ScaleAndCompare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:534,1
    - Dst: exactfloat::ExactFloat::ScaleAndCompare
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 536
    functionName: exactfloat::ExactFloat::UnsignedLess
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isinf
    - exactfloat::ExactFloat::exp
    - exactfloat::ExactFloat::is_zero
    - exactfloat::ExactFloat::ScaleAndCompare
    linkageType: ''
    returnType: bool
    signature: bool ExactFloat::UnsignedLess(const ExactFloat& b) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:540,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:540,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:542,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:542,1
    - Dst: UnsignedLess
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:546,1
    - Dst: UnsignedLess
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 547
    functionName: operator<(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isnan
    - is_zero
    - UnsignedLess
    linkageType: ''
    returnType: bool
    signature: bool operator<(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::abs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 549
    functionName: exactfloat::fabs
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::abs
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fabs(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 551
    functionName: exactfloat::abs
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 2
    functionsReached:
    - CopyWithSign
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat abs(const ExactFloat& a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:555,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 562
    functionName: exactfloat::fmax
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::isnan
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fmax(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:566,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 573
    functionName: exactfloat::fmin
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::isnan
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fmin(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: exactfloat::fdim
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fdim(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 582
    functionName: exactfloat::ceil
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ceil(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 586
    functionName: exactfloat::floor
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat floor(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 590
    functionName: exactfloat::trunc
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat trunc(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 594
    functionName: exactfloat::round
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat round(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 598
    functionName: exactfloat::rint
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - RoundToPowerOf2
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat rint(const ExactFloat& a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:605,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:606,1
    - Dst: exactfloat::ExactFloat::RoundToPowerOf2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:608,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:609,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:610,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:611,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:613,1
    - Dst: ExactFloat::bn_::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:614,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - mode
    argTypes:
    - RoundingMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 620
    functionName: exactfloat::ExactFloat::ToInteger
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - isinf
    - S2CellId::range_min
    - isnan
    - Stats::max
    - ExactFloat::exp
    - clamp
    - exactfloat::ExactFloat::RoundToPowerOf2
    - ExactFloat::is_zero
    - ExactFloat::bn_::Cast
    linkageType: ''
    returnType: T
    signature: T ExactFloat::ToInteger(RoundingMode mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToInteger
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 625
    functionName: exactfloat::lrint
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ToInteger
    linkageType: ''
    returnType: long
    signature: long lrint(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToInteger
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 629
    functionName: exactfloat::llrint
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ToInteger
    linkageType: ''
    returnType: long long
    signature: long long llrint(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToInteger
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 633
    functionName: exactfloat::lround
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ToInteger
    linkageType: ''
    returnType: long
    signature: long lround(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToInteger
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 637
    functionName: exactfloat::llround
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ToInteger
    linkageType: ''
    returnType: long long
    signature: long long llround(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CopyWithSign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 642
    functionName: exactfloat::copysign
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - CopyWithSign
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat copysign(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:645,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:651,1
    - Dst: exactfloat::ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:652,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - exp
    argTypes:
    - ExactFloat
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: exactfloat::frexp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - exactfloat::ldexp
    - exactfloat::isnormal
    - exp
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat frexp(const ExactFloat& a, int* exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnormal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:656,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:660,1
    - Dst: clamp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:661,1
    - Dst: ExactFloat::Canonicalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - exp
    argTypes:
    - ExactFloat
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 670
    functionName: exactfloat::ldexp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 3
    functionsReached:
    - clamp
    - exactfloat::isnormal
    - ExactFloat::Canonicalize
    - exp
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ldexp(const ExactFloat& a, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::clamp<long>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:675,1
    - Dst: exactfloat::ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:676,1
    - Dst: static_cast<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - exp
    argTypes:
    - ExactFloat
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 677
    functionName: exactfloat::scalbln
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - exactfloat::ldexp
    - std::clamp<long>
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat scalbln(const ExactFloat& a, long exp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:680,1
    - Dst: exactfloat::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:681,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:682,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 685
    functionName: exactfloat::ilogb
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - is_zero
    - exactfloat::isnan
    - exp
    - exactfloat::isinf
    linkageType: ''
    returnType: int
    signature: int ilogb(const ExactFloat& a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:688,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:688,1
    - Dst: exactfloat::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:689,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:689,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:690,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:692,1
    - Dst: exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: exactfloat::logb
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ExactFloat
    - is_zero
    - exp
    - exactfloat::isinf
    - exactfloat::ExactFloat::Infinity
    - exactfloat::isnan
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat logb(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:696,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: exactfloat::ExactFloat::Unimplemented
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
    functionUses: 0
    functionsReached:
    - ABSL_LOG
    - exactfloat::ExactFloat::NaN
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::Unimplemented()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::fdim
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: fdim
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 1
    functionsReached:
    - exactfloat::fdim
    linkageType: ''
    returnType: double
    signature: double fdim(double a, double b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::fmax
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: fmax
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 1
    functionsReached:
    - exactfloat::fmax
    linkageType: ''
    returnType: double
    signature: double fmax(double a, double b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:89,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:89,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:90,1
    - Dst: exactfloat::fmin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: fmin
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 1
    functionsReached:
    - copysign
    - exactfloat::fmin
    - std::signbit
    linkageType: ''
    returnType: double
    signature: double fmin(double a, double b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:98,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:98,1
    - Dst: exactfloat::logb
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:99,1
    - Dst: scalbn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:99,1
    - Dst: exactfloat::logb
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: logb
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 7
    functionsReached:
    - scalbn
    - exactfloat::logb
    - fabs
    - S2CellId::range_min
    linkageType: ''
    returnType: double
    signature: double logb(double a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:107,1
    - Dst: std::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:108,1
    - Dst: std::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:108,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - exp
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: ldexp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 21
    functionsReached:
    - std::isinf
    - copysign
    - exactfloat::ldexp
    linkageType: ''
    returnType: double
    signature: double ldexp(double a, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - exp
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: scalbn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 1
    functionsReached:
    - ldexp
    linkageType: ''
    returnType: double
    signature: double scalbn(double a, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:120,1
    - Dst: static_cast<long>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:120,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:121,1
    - Dst: static_cast<long>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:121,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - exp
    argTypes:
    - double
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: scalbln
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ldexp
    - static_cast<long>
    - min
    - std::max
    linkageType: ''
    returnType: double
    signature: double scalbln(double a, long exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: FIX_INT_ROUNDING
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIX_INT_ROUNDING(T, fname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:215,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:215,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:217,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:220,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: ExactFloatTest::SetUpTestSuite
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::isnan
    - push_back
    - ABSL_CHECK
    - empty
    linkageType: ''
    returnType: void
    signature: void SetUpTestSuite()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: ExactFloatTest::TearDownTestSuite
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void TearDownTestSuite()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:235,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:235,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:236,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:236,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:237,1
    - Dst: absl::bit_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:243,1
    - Dst: absl::bit_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:244,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:245,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:245,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: ExactFloatTest::GetErrorUlps
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::signbit
    - static_cast<uint64_t>
    - Stats::max
    - std::isnan
    - absl::bit_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t GetErrorUlps(double a, double b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:260,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:261,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:261,1
    - Dst: ExactFloatTest::GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - expected
    - actual
    - ulps
    argTypes:
    - double
    - double
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: ExactFloatTest::IsExpected
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloatTest::GetErrorUlps
    - std::isnan
    - std::signbit
    linkageType: ''
    returnType: bool
    signature: bool IsExpected(double expected, double actual, uint64_t ulps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:271,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:272,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:273,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:273,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:276,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - expected
    - ' xf_actual'
    argTypes:
    - double
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: ExactFloatTest::ExpectSame
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::signbit
    - EXPECT_TRUE
    - static_cast<double>
    - std::isnan
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void ExpectSame(double expected, const ExactFloat& xf_actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloatTest::ExpectSame
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:287,1
    - Dst: prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - expected_value
    - expected_prec
    - ' xf_actual'
    argTypes:
    - double
    - int
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: ExactFloatTest::ExpectSameWithPrec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ExactFloatTest::ExpectSame
    - prec
    linkageType: ''
    returnType: void
    signature: "void ExpectSameWithPrec(double expected_value, int expected_prec,\n
      \                         const ExactFloat& xf_actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:293,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:293,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:294,1
    - Dst: ExactFloatTest::GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' call_msg'
    - expected
    - actual
    argTypes:
    - testing::Message
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: ExactFloatTest::AddMathcallFailure
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloatTest::GetErrorUlps
    - ADD_FAILURE
    - ExactFloat
    linkageType: ''
    returnType: void
    signature: "void AddMathcallFailure(const testing::Message& call_msg,\n                                 double
      expected, double actual)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:305,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:306,1
    - Dst: mp_f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:306,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:306,1
    - Dst: ExactFloatTest::IsExpected
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:307,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:308,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:308,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - fname
    - f
    - mp_f
    - ulps
    argTypes:
    - char*
    - double
    - ExactFloat
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 313
    functionName: ExactFloatTest::TestMathcall1
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - mp_f
    - ExactFloatTest::IsExpected
    - ExactFloat
    - f
    - static_cast<double>
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestMathcall1(const char* fname, double f(double),\n                     ExactFloat
      mp_f(const ExactFloat&), uint64_t ulps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:323,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:324,1
    - Dst: mp_f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:324,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:324,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:324,1
    - Dst: ExactFloatTest::IsExpected
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:325,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:326,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:326,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:326,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - fname
    - f
    - mp_f
    - ulps
    argTypes:
    - char*
    - double
    - ExactFloat
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: ExactFloatTest::TestMathcall2
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - mp_f
    - ExactFloatTest::IsExpected
    - ExactFloat
    - f
    - static_cast<double>
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestMathcall2(const char* fname, double f(double, double),\n
      \                    ExactFloat mp_f(const ExactFloat&, const ExactFloat&),\n
      \                    uint64_t ulps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f_dbl
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:341,1
    - Dst: f_xf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:342,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:342,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:344,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:344,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - fname
    - f_dbl
    - f_xf
    argTypes:
    - char*
    - ResultType
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: ExactFloatTest::TestFn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloat
    - f_dbl
    - f_xf
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestFn(const char* fname, ResultType f_dbl(double),\n              ResultType
      f_xf(const ExactFloat&))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:358,1
    - Dst: mp_f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:359,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:359,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:361,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:362,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:362,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:363,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - fname
    - f
    - mp_f
    argTypes:
    - char*
    - ResultType
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 366
    functionName: ExactFloatTest::TestIntMathcall1
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - mp_f
    - ExactFloat
    - f
    - static_cast<double>
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestIntMathcall1(const char* fname, ResultType f(double),\n                        ResultType
      mp_f(const ExactFloat&))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:379,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:406,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:407,1
    - Dst: mp_f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:407,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:407,1
    - Dst: ExactFloatTest::IsExpected
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:408,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:409,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:409,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - fname
    - f
    - mp_f
    argTypes:
    - char*
    - double
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 417
    functionName: ExactFloatTest::TestLdexpCall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - mp_f
    - ExactFloatTest::IsExpected
    - ExactFloat
    - f
    - Stats::max
    - static_cast<double>
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestLdexpCall(const char* fname, double f(double, ExpType),\n
      \                    ExactFloat mp_f(const ExactFloat&, ExpType))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:429,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:429,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:430,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:430,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:430,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:431,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:431,1
    - Dst: std::numeric_limits<double>::denorm_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:431,1
    - Dst: std::numeric_limits<double>::denorm_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:432,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:433,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:433,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:433,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:434,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:434,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::denorm_min
    - Stats::max
    - GetErrorUlps
    - EXPECT_EQ
    - copysign
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, GetErrorUlps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:440,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:447,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:451,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:455,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 460
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExpectSameWithPrec
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Constructors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectSame
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExpectSame
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, IntMinConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:469,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:469,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:470,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:470,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:470,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:471,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:471,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:472,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:472,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:472,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:474,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:474,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:475,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:475,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:475,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:476,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:476,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:477,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:477,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:477,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:479,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:479,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 480
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - isinf
    - signbit
    - EXPECT_TRUE
    - exactfloat::ExactFloat::SignedZero
    - isnan
    - exactfloat::ExactFloat::NaN
    - exactfloat::ExactFloat::Infinity
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Constants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:486,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:487,1
    - Dst: ExactFloat::max_prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:487,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:490,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:491,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:491,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:494,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:495,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 496
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ExpectSameWithPrec
    - ExactFloat::max_prec
    - ExactFloat::exp
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Accessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:500,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:500,1
    - Dst: ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:502,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:503,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:503,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:504,1
    - Dst: ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:506,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:507,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:507,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:508,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 509
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ExactFloat::set_zero
    - copysign
    - ExactFloat::is_zero
    - ExpectSameWithPrec
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, set_zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:513,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:513,1
    - Dst: ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:515,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:516,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:516,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:517,1
    - Dst: ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:519,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:520,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:520,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:521,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:524,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:524,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:527,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:527,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:528,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:531,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:531,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 533
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - isinf
    - EXPECT_TRUE
    - ExactFloat::set_inf
    - ExpectSameWithPrec
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, set_inf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:537,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:537,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:538,1
    - Dst: ExactFloat::set_nan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:540,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:541,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:541,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:542,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:545,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:545,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:548,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:548,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 550
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - isnan
    - EXPECT_TRUE
    - ExactFloat::set_nan
    - ExpectSameWithPrec
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, set_nan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:553,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:553,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:553,1
    - Dst: ExpectSame
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:554,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:554,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:554,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:555,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:556,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:557,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:557,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:557,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:558,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:559,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:560,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:560,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:560,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:561,1
    - Dst: std::numeric_limits<double>::denorm_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:561,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:562,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:563,1
    - Dst: std::numeric_limits<double>::denorm_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:563,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:564,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:564,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:564,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:565,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:565,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:566,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:566,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:566,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:567,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:567,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:567,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:568,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:568,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:568,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 569
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::denorm_min
    - ExpectSame
    - ExactFloat
    - S2CellId::range_min
    - EXPECT_TRUE
    - Stats::max
    - static_cast<double>
    - std::isnan
    - EXPECT_EQ
    - copysign
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, OperatorDouble)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:572,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:572,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:573,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:573,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:574,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:574,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:575,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:575,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:576,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:576,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:577,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:577,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:578,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:578,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:579,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:579,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:580,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:580,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:581,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:581,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:582,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:582,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:583,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:583,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:584,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:584,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:585,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:585,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:585,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:586,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:586,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:586,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:587,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:587,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:587,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:588,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:589,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:589,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:589,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:590,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:590,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:593,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:593,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:594,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:594,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:595,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:595,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:600,1
    - Dst: exactfloat::ExactFloat::NumSignificantDigitsForPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:601,1
    - Dst: exactfloat::ExactFloat::NumSignificantDigitsForPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:601,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:603,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 604
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - ABSL_LOG
    - ExactFloat
    - exactfloat::ExactFloat::NumSignificantDigitsForPrec
    - pow
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, ToString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloat::RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:610,1
    - Dst: ExactFloat::RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:611,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:612,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:613,1
    - Dst: ExactFloat::ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:613,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:614,1
    - Dst: ExactFloat::ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:614,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:615,1
    - Dst: ExactFloat::ToUniqueString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:615,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:616,1
    - Dst: ExactFloat::ToUniqueString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 617
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloat::ToString
    - ExactFloat::RoundToMaxPrec
    - EXPECT_NE
    - EXPECT_EQ
    - ExactFloat::ToUniqueString
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, ToUniqueString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:623,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:623,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:623,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:624,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:624,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:624,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:626,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:626,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:626,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:627,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:627,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:627,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:629,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:629,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:629,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:630,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:630,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:630,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:632,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:632,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:632,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:633,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:633,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:633,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:635,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 637
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - pow
    - RoundToMaxPrec
    - ExactFloat
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, RoundToMaxPrec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op_name
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 647
    functionName: TEST_MATHOP1
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_MATHOP1(op_name, op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::fdim
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: fdim
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 2
    functionsReached:
    - exactfloat::fdim
    linkageType: ''
    returnType: double
    signature: double fdim(double a, double b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::fmax
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: fmax
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 2
    functionsReached:
    - exactfloat::fmax
    linkageType: ''
    returnType: double
    signature: double fmax(double a, double b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:89,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:89,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:90,1
    - Dst: exactfloat::fmin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: fmin
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 2
    functionsReached:
    - copysign
    - exactfloat::fmin
    - std::signbit
    linkageType: ''
    returnType: double
    signature: double fmin(double a, double b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:98,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:98,1
    - Dst: exactfloat::logb
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:99,1
    - Dst: scalbn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:99,1
    - Dst: exactfloat::logb
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: logb
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 8
    functionsReached:
    - scalbn
    - exactfloat::logb
    - fabs
    - S2CellId::range_min
    linkageType: ''
    returnType: double
    signature: double logb(double a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:107,1
    - Dst: std::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:108,1
    - Dst: std::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:108,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - exp
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: ldexp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 24
    functionsReached:
    - std::isinf
    - copysign
    - exactfloat::ldexp
    linkageType: ''
    returnType: double
    signature: double ldexp(double a, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - exp
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: scalbn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 2
    functionsReached:
    - ldexp
    linkageType: ''
    returnType: double
    signature: double scalbn(double a, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:120,1
    - Dst: static_cast<long>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:120,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:121,1
    - Dst: static_cast<long>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:121,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - exp
    argTypes:
    - double
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: scalbln
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ldexp
    - static_cast<long>
    - min
    - std::max
    linkageType: ''
    returnType: double
    signature: double scalbln(double a, long exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: FIX_INT_ROUNDING
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIX_INT_ROUNDING(T, fname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:215,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:215,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:217,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:220,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: ExactFloatTest::SetUpTestSuite
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::isnan
    - push_back
    - ABSL_CHECK
    - empty
    linkageType: ''
    returnType: void
    signature: void SetUpTestSuite()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: ExactFloatTest::TearDownTestSuite
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void TearDownTestSuite()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:235,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:235,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:236,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:236,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:237,1
    - Dst: absl::bit_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:243,1
    - Dst: absl::bit_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:244,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:245,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:245,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: ExactFloatTest::GetErrorUlps
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 2
    functionsReached:
    - std::signbit
    - static_cast<uint64_t>
    - Stats::max
    - std::isnan
    - absl::bit_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t GetErrorUlps(double a, double b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:260,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:261,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:261,1
    - Dst: ExactFloatTest::GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - expected
    - actual
    - ulps
    argTypes:
    - double
    - double
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: ExactFloatTest::IsExpected
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 3
    functionsReached:
    - ExactFloatTest::GetErrorUlps
    - std::isnan
    - std::signbit
    linkageType: ''
    returnType: bool
    signature: bool IsExpected(double expected, double actual, uint64_t ulps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:271,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:272,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:273,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:273,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:276,1
    - Dst: std::signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - expected
    - ' xf_actual'
    argTypes:
    - double
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: ExactFloatTest::ExpectSame
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 1
    functionsReached:
    - std::signbit
    - EXPECT_TRUE
    - static_cast<double>
    - std::isnan
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void ExpectSame(double expected, const ExactFloat& xf_actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloatTest::ExpectSame
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:287,1
    - Dst: prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - expected_value
    - expected_prec
    - ' xf_actual'
    argTypes:
    - double
    - int
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: ExactFloatTest::ExpectSameWithPrec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ExactFloatTest::ExpectSame
    - prec
    linkageType: ''
    returnType: void
    signature: "void ExpectSameWithPrec(double expected_value, int expected_prec,\n
      \                         const ExactFloat& xf_actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:293,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:293,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:294,1
    - Dst: ExactFloatTest::GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' call_msg'
    - expected
    - actual
    argTypes:
    - testing::Message
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: ExactFloatTest::AddMathcallFailure
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 5
    functionsReached:
    - ExactFloatTest::GetErrorUlps
    - ADD_FAILURE
    - ExactFloat
    linkageType: ''
    returnType: void
    signature: "void AddMathcallFailure(const testing::Message& call_msg,\n                                 double
      expected, double actual)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:305,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:306,1
    - Dst: mp_f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:306,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:306,1
    - Dst: ExactFloatTest::IsExpected
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:307,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:308,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:308,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - fname
    - f
    - mp_f
    - ulps
    argTypes:
    - char*
    - double
    - ExactFloat
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 313
    functionName: ExactFloatTest::TestMathcall1
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - mp_f
    - ExactFloatTest::IsExpected
    - ExactFloat
    - f
    - static_cast<double>
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestMathcall1(const char* fname, double f(double),\n                     ExactFloat
      mp_f(const ExactFloat&), uint64_t ulps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:323,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:324,1
    - Dst: mp_f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:324,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:324,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:324,1
    - Dst: ExactFloatTest::IsExpected
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:325,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:326,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:326,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:326,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - fname
    - f
    - mp_f
    - ulps
    argTypes:
    - char*
    - double
    - ExactFloat
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: ExactFloatTest::TestMathcall2
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - mp_f
    - ExactFloatTest::IsExpected
    - ExactFloat
    - f
    - static_cast<double>
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestMathcall2(const char* fname, double f(double, double),\n
      \                    ExactFloat mp_f(const ExactFloat&, const ExactFloat&),\n
      \                    uint64_t ulps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f_dbl
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:341,1
    - Dst: f_xf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:342,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:342,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:344,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:344,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - fname
    - f_dbl
    - f_xf
    argTypes:
    - char*
    - ResultType
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: ExactFloatTest::TestFn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloat
    - f_dbl
    - f_xf
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestFn(const char* fname, ResultType f_dbl(double),\n              ResultType
      f_xf(const ExactFloat&))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:358,1
    - Dst: mp_f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:359,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:359,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:361,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:362,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:362,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:363,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - fname
    - f
    - mp_f
    argTypes:
    - char*
    - ResultType
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 366
    functionName: ExactFloatTest::TestIntMathcall1
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - mp_f
    - ExactFloat
    - f
    - static_cast<double>
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestIntMathcall1(const char* fname, ResultType f(double),\n                        ResultType
      mp_f(const ExactFloat&))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:379,1
    - Dst: f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:406,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:407,1
    - Dst: mp_f
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:407,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:407,1
    - Dst: ExactFloatTest::IsExpected
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:408,1
    - Dst: ExactFloatTest::AddMathcallFailure
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:409,1
    - Dst: LogMessage
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:409,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - fname
    - f
    - mp_f
    argTypes:
    - char*
    - double
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 417
    functionName: ExactFloatTest::TestLdexpCall
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - mp_f
    - ExactFloatTest::IsExpected
    - ExactFloat
    - f
    - Stats::max
    - static_cast<double>
    - LogMessage
    - ExactFloatTest::AddMathcallFailure
    linkageType: ''
    returnType: void
    signature: "void TestLdexpCall(const char* fname, double f(double, ExpType),\n
      \                    ExactFloat mp_f(const ExactFloat&, ExpType))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:429,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:429,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:430,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:430,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:430,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:431,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:431,1
    - Dst: std::numeric_limits<double>::denorm_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:431,1
    - Dst: std::numeric_limits<double>::denorm_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:432,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:433,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:433,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:433,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:434,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:434,1
    - Dst: GetErrorUlps
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::denorm_min
    - Stats::max
    - GetErrorUlps
    - EXPECT_EQ
    - copysign
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, GetErrorUlps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:440,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:447,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:451,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:455,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 460
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExpectSameWithPrec
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Constructors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectSame
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExpectSame
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, IntMinConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:469,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:469,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:470,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:470,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:470,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:471,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:471,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:472,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:472,1
    - Dst: exactfloat::ExactFloat::SignedZero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:472,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:474,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:474,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:475,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:475,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:475,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:476,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:476,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:477,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:477,1
    - Dst: exactfloat::ExactFloat::Infinity
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:477,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:479,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:479,1
    - Dst: exactfloat::ExactFloat::NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 480
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - isinf
    - signbit
    - EXPECT_TRUE
    - exactfloat::ExactFloat::SignedZero
    - isnan
    - exactfloat::ExactFloat::NaN
    - exactfloat::ExactFloat::Infinity
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Constants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:486,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:487,1
    - Dst: ExactFloat::max_prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:487,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:490,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:491,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:491,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:494,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:495,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 496
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ExpectSameWithPrec
    - ExactFloat::max_prec
    - ExactFloat::exp
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Accessors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:500,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:500,1
    - Dst: ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:502,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:503,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:503,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:504,1
    - Dst: ExactFloat::set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:506,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:507,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:507,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:508,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 509
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ExactFloat::set_zero
    - copysign
    - ExactFloat::is_zero
    - ExpectSameWithPrec
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, set_zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:513,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:513,1
    - Dst: ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:515,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:516,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:516,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:517,1
    - Dst: ExactFloat::set_inf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:519,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:520,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:520,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:521,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:524,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:524,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:527,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:527,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:528,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:531,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:531,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 533
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - isinf
    - EXPECT_TRUE
    - ExactFloat::set_inf
    - ExpectSameWithPrec
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, set_inf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:537,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:537,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:538,1
    - Dst: ExactFloat::set_nan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:540,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:541,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:541,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:542,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:545,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:545,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:548,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:548,1
    - Dst: ExpectSameWithPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 550
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - isnan
    - EXPECT_TRUE
    - ExactFloat::set_nan
    - ExpectSameWithPrec
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, set_nan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:553,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:553,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:553,1
    - Dst: ExpectSame
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:554,1
    - Dst: copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:554,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:554,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:555,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:556,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:557,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:557,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:557,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:558,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:559,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:560,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:560,1
    - Dst: S2CellId::range_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:560,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:561,1
    - Dst: std::numeric_limits<double>::denorm_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:561,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:562,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:563,1
    - Dst: std::numeric_limits<double>::denorm_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:563,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:564,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:564,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:564,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:565,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:565,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:566,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:566,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:566,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:567,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:567,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:567,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:568,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:568,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:568,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 569
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::denorm_min
    - ExpectSame
    - ExactFloat
    - S2CellId::range_min
    - EXPECT_TRUE
    - Stats::max
    - static_cast<double>
    - std::isnan
    - EXPECT_EQ
    - copysign
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, OperatorDouble)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:572,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:572,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:573,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:573,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:574,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:574,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:575,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:575,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:576,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:576,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:577,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:577,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:578,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:578,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:579,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:579,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:580,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:580,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:581,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:581,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:582,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:582,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:583,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:583,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:584,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:584,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:585,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:585,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:585,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:586,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:586,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:586,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:587,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:587,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:587,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:588,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:589,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:589,1
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:589,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:590,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:590,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:593,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:593,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:594,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:594,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:595,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:595,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:600,1
    - Dst: exactfloat::ExactFloat::NumSignificantDigitsForPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:601,1
    - Dst: exactfloat::ExactFloat::NumSignificantDigitsForPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:601,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:603,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 604
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - ABSL_LOG
    - ExactFloat
    - exactfloat::ExactFloat::NumSignificantDigitsForPrec
    - pow
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, ToString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExactFloat::RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:610,1
    - Dst: ExactFloat::RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:611,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:612,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:613,1
    - Dst: ExactFloat::ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:613,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:614,1
    - Dst: ExactFloat::ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:614,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:615,1
    - Dst: ExactFloat::ToUniqueString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:615,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:616,1
    - Dst: ExactFloat::ToUniqueString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 617
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloat::ToString
    - ExactFloat::RoundToMaxPrec
    - EXPECT_NE
    - EXPECT_EQ
    - ExactFloat::ToUniqueString
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, ToUniqueString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:623,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:623,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:623,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:624,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:624,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:624,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:626,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:626,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:626,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:627,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:627,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:627,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:629,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:629,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:629,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:630,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:630,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:630,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:632,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:632,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:632,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:633,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:633,1
    - Dst: RoundToMaxPrec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:633,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:635,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 637
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - pow
    - RoundToMaxPrec
    - ExactFloat
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, RoundToMaxPrec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op_name
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 647
    functionName: TEST_MATHOP1
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_MATHOP1(op_name, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - ulps
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 719
    functionName: TEST_MATHCALL2
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_MATHCALL2(func, ulps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ResultType
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 733
    functionName: TEST_INTEGER_MATHCALL1
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_INTEGER_MATHCALL1(ResultType, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 745
    functionName: frexp_frac
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - frexp
    linkageType: ''
    returnType: double
    signature: double frexp_frac(double a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 750
    functionName: frexp_exp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - frexp
    linkageType: ''
    returnType: int
    signature: int frexp_exp(double a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 754
    functionName: mp_frexp_frac
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - frexp
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat mp_frexp_frac(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 759
    functionName: mp_frexp_exp
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - frexp
    linkageType: ''
    returnType: int
    signature: int mp_frexp_exp(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestMathcall1
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:763,1
    - Dst: TestIntMathcall1
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 765
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - TestMathcall1
    - TestIntMathcall1
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, frexp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ExpType
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 775
    functionName: TEST_LDEXP_CALL
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_LDEXP_CALL(ExpType, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ResultType
    - ','
    - fn_xf
    - ','
    - fn_dbl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 786
    functionName: TEST_FN_VS_REF
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FN_VS_REF(ResultType, fn_xf, fn_dbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 788
    functionName: ref_iszero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ref_iszero(double a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:790,1
    - Dst: std::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 791
    functionName: ref_isnormal
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::isinf
    - std::isnan
    linkageType: ''
    returnType: bool
    signature: bool ref_isnormal(double a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 792
    functionName: ref_sgn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ref_sgn(double a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' xf'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 794
    functionName: xf_iszero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - is_zero
    linkageType: ''
    returnType: bool
    signature: bool xf_iszero(const ExactFloat& xf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sgn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' xf'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 795
    functionName: xf_sgn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - sgn
    linkageType: ''
    returnType: int
    signature: int xf_sgn(const ExactFloat& xf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ResultType
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 806
    functionName: TEST_FN_VS_STD_FN
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FN_VS_STD_FN(ResultType, fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:812,1
    - Dst: fpclassify
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:812,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 812
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - fpclassify
    - ExactFloat
    linkageType: ''
    returnType: void
    signature: void TEST(FpClassify, Nan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:815,1
    - Dst: fpclassify
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:815,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:815,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:816,1
    - Dst: fpclassify
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:816,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - fpclassify
    - ExactFloat
    linkageType: ''
    returnType: void
    signature: void TEST(FpClassify, Infinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:820,1
    - Dst: fpclassify
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:820,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:820,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:821,1
    - Dst: fpclassify
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:821,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:821,1
    - Dst: std::copysign
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - fpclassify
    - std::copysign
    - ExactFloat
    linkageType: ''
    returnType: void
    signature: void TEST(FpClassify, Zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:825,1
    - Dst: fpclassify
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:825,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:825,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:827,1
    - Dst: fpclassify
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:827,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:827,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:827,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:830,1
    - Dst: fpclassify
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:830,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:830,1
    - Dst: std::numeric_limits<double>::denorm_min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 832
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::denorm_min
    - ExactFloat
    - Stats::max
    - fpclassify
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(FpClassify, Normal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:849,1
    - Dst: MyVec2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:850,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:851,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:853,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:854,1
    - Dst: MyVec3::aequal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:854,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:855,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:856,1
    - Dst: EXPECT_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:857,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:858,1
    - Dst: MyVec3::aequal
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:858,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:859,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:860,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:862,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:862,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:862,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:862,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:863,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:863,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:863,1
    - Dst: Vector3<ExactFloat>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:863,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:868,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:869,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:869,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:871,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:871,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:871,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:872,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:873,1
    - Dst: Vector3_d
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 874
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - S2Point::Cast
    - ExactFloat
    - EXPECT_TRUE
    - EXPECT_LT
    - MyVec3::aequal
    - Vector3_d
    - static_cast<double>
    - MyVec2
    - Vector3<ExactFloat>
    - EXPECT_NE
    - EXPECT_EQ
    - MyVec3
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Vector3_Part1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MyVec3::Set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:878,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:879,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:879,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:880,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:881,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:881,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:882,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:883,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:883,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:884,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:885,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:885,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:887,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:887,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:888,1
    - Dst: MyVec3::MulComponents
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:890,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:891,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:891,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:892,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:893,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:893,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:893,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:894,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:894,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:894,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:895,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:895,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:896,1
    - Dst: MyVec3::DotProd
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:896,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:897,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 898
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - MyVec3::Set
    - MyVec3::MulComponents
    - EXPECT_EQ
    - MyVec3::DotProd
    - MyVec3
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Vector3_Part2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:903,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:903,1
    - Dst: MyVec3::CrossProd
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:903,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:904,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:906,1
    - Dst: MyVec3::x
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:906,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:907,1
    - Dst: MyVec3::y
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:907,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:908,1
    - Dst: MyVec3::z
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:908,1
    - Dst: MyVec3::x
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:909,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:910,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:910,1
    - Dst: MyVec3::Data
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:911,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:913,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:913,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:914,1
    - Dst: MyVec3::Data
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:914,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:914,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:915,1
    - Dst: MyVec3::Norm2
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:915,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:916,1
    - Dst: MyVec3::DotProd
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:916,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:917,1
    - Dst: MyVec3::LargestAbsComponent
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:917,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:918,1
    - Dst: Vector3<int>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:918,1
    - Dst: MyVec3::ComponentOrder
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:918,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:919,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:919,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:920,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:920,1
    - Dst: MyVec3::MulComponents
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:920,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:921,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:921,1
    - Dst: MyVec3::Abs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:921,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:922,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:922,1
    - Dst: MyVec3::Fabs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:922,1
    - Dst: MyVec3::Set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:923,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:924,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:924,1
    - Dst: MyVec3::Floor
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:924,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:925,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:925,1
    - Dst: MyVec3::Ceil
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:925,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:926,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:926,1
    - Dst: MyVec3::FRound
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:926,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:927,1
    - Dst: Vector3_i
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:927,1
    - Dst: MyVec3::IRound
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:927,1
    - Dst: MyVec3::Set
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:928,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:929,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:929,1
    - Dst: Max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:929,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:930,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:930,1
    - Dst: Min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:930,1
    - Dst: MyVec3::Clear
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:931,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:932,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:932,1
    - Dst: ABSL_LOG
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 934
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - MyVec3::Set
    - MyVec3::FRound
    - MyVec3::IRound
    - MyVec3::Fabs
    - ABSL_LOG
    - MyVec3::MulComponents
    - MyVec3::ComponentOrder
    - MyVec3::Floor
    - MyVec3::x
    - Max
    - EXPECT_EQ
    - MyVec3::y
    - Vector3<int>
    - MyVec3::Data
    - MyVec3::Abs
    - Min
    - MyVec3::Norm2
    - Vector3_i
    - MyVec3::Ceil
    - MyVec3::CrossProd
    - ExactFloat
    - MyVec3::Clear
    - MyVec3::z
    - MyVec3::DotProd
    - MyVec3::LargestAbsComponent
    - MyVec3
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Vector3_Part3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:937,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 938
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - MyVec3
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Vector3_IsNaN_NoNaNsReturnsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:941,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:942,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:942,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:943,1
    - Dst: MyVec3
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 944
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - MyVec3
    - std::numeric_limits<double>::quiet_NaN
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, Vector3_IsNaN_AnyNanReturnsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:951,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:951,1
    - Dst: EXPECT_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:952,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:952,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:957,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:958,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:959,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:962,1
    - Dst: fmax
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:962,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 963
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - fmax
    - EXPECT_LE
    - ExactFloat
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, ImplicitConversions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:967,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:968,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:969,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:970,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:970,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:971,1
    - Dst: pow
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:971,1
    - Dst: Vector3_xf::CrossProd
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:979,1
    - Dst: EXPECT_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:980,1
    - Dst: ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:980,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:981,1
    - Dst: ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 982
    functionName: TEST_F
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - Vector3_xf::CrossProd
    - EXPECT_LT
    - ExactFloat::prec
    - EXPECT_GE
    - pow
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExactFloatTest, ExactCalculations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:990,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:991,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:992,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:993,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:994,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:995,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:996,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:997,1
    - Dst: absl::Uniform<double>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:998,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:1001,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:1002,1
    - Dst: S2Point::Cast
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:1003,1
    - Dst: Vector3_xf::CrossProd
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:1004,1
    - Dst: ABSL_CHECK_NE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:1005,1
    - Dst: ExactFloat::sgn
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc:1005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1007
    functionName: BM_Det3x3
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
    functionUses: 0
    functionsReached:
    - Vector3_xf::CrossProd
    - S2Point::Cast
    - ExactFloat::sgn
    - absl::Uniform<double>
    - ABSL_CHECK_NE
    linkageType: ''
    returnType: void
    signature: void BM_Det3x3(benchmark::State &state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:27,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:27,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:28,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:28,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:29,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:29,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:32,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:32,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:33,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:34,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:34,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:38,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc
    functionUses: 0
    functionsReached:
    - isinf
    - EXPECT_GT
    - ExactFloat
    - ExactFloat::exp
    - EXPECT_TRUE
    - EXPECT_LT
    - EXPECT_EQ
    - ldexp
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ExactFloatTest, Overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:48,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:48,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:48,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:49,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:50,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:51,1
    - Dst: ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:51,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:54,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:55,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:55,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:55,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:56,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:56,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:62,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:63,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:63,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:64,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:64,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:65,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:65,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:65,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:70,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:70,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:70,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:72,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:72,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:73,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 74
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc
    functionUses: 0
    functionsReached:
    - isinf
    - ExactFloat
    - ExactFloat::exp
    - ExactFloat::prec
    - EXPECT_TRUE
    - isnan
    - EXPECT_EQ
    - ldexp
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ExactFloatTest, OverflowMaxExpAndPrecision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:79,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:79,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:80,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:81,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:81,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:84,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:84,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:85,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:86,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:86,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:87,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:87,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:90,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloat
    - signbit
    - ExactFloat::exp
    - EXPECT_TRUE
    - is_zero
    - EXPECT_EQ
    - ldexp
    - ExactFloat::is_zero
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ExactFloatTest, Underflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:102,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:102,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:102,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:103,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:104,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:105,1
    - Dst: ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:109,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:109,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:111,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:111,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:114,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:114,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:114,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:114,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:119,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:119,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:119,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:120,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:121,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:121,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 122
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloat
    - signbit
    - ExactFloat::exp
    - ExactFloat::prec
    - EXPECT_TRUE
    - isnan
    - EXPECT_EQ
    - ldexp
    - ExactFloat::is_zero
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ExactFloatTest, UnderflowMaxExpAndMinPrecision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:27,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:27,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:28,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:28,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:29,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:29,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:32,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:32,1
    - Dst: EXPECT_GT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:33,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:34,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:34,1
    - Dst: EXPECT_LT
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:38,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc
    functionUses: 0
    functionsReached:
    - isinf
    - EXPECT_GT
    - ExactFloat
    - ExactFloat::exp
    - EXPECT_TRUE
    - EXPECT_LT
    - EXPECT_EQ
    - ldexp
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ExactFloatTest, Overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:48,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:48,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:48,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:49,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:50,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:51,1
    - Dst: ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:51,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:54,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:55,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:55,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:55,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:56,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:56,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:62,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:63,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:63,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:64,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:64,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:65,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:65,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:65,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:70,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:70,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:70,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:72,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:72,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:73,1
    - Dst: isinf
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 74
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc
    functionUses: 0
    functionsReached:
    - isinf
    - ExactFloat
    - ExactFloat::exp
    - ExactFloat::prec
    - EXPECT_TRUE
    - isnan
    - EXPECT_EQ
    - ldexp
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ExactFloatTest, OverflowMaxExpAndPrecision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:79,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:79,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:80,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:81,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:81,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:84,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:84,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:85,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:86,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:86,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:87,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:87,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:90,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloat
    - signbit
    - ExactFloat::exp
    - EXPECT_TRUE
    - is_zero
    - EXPECT_EQ
    - ldexp
    - ExactFloat::is_zero
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ExactFloatTest, Underflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:102,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:102,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:102,1
    - Dst: EXPECT_FALSE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:103,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:104,1
    - Dst: ExactFloat::exp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:105,1
    - Dst: ExactFloat::prec
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:109,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:109,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:111,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:111,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:114,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:114,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:114,1
    - Dst: ExactFloat
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:114,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:119,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:119,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:119,1
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:120,1
    - Dst: EXPECT_TRUE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:121,1
    - Dst: ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:121,1
    - Dst: signbit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 122
    functionName: TEST
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc
    functionUses: 0
    functionsReached:
    - ExactFloat
    - signbit
    - ExactFloat::exp
    - ExactFloat::prec
    - EXPECT_TRUE
    - isnan
    - EXPECT_EQ
    - ldexp
    - ExactFloat::is_zero
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ExactFloatTest, UnderflowMaxExpAndMinPrecision)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: exactfloat::ExactFloat::ExactFloat
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExactFloat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::Unimplemented
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: exactfloat::ExactFloat::ExactFloat
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::Unimplemented
    linkageType: ''
    returnType: void
    signature: void ExactFloat(const char* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: exactfloat::ExactFloat::max_prec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_prec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' f'
    argTypes:
    - std::ostream
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: '& operator<<(std::ostream& o, ExactFloat const& f)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& o, ExactFloat const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 310
    functionName: operator+() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat operator+() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 329
    functionName: '& operator+=(const ExactFloat& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat & operator+=(const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 330
    functionName: '& operator-=(const ExactFloat& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat & operator-=(const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: '& operator*=(const ExactFloat& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat & operator*=(const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: exactfloat::ExactFloat::nearbyint
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - rint
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat nearbyint(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::Unimplemented
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: exactfloat::ExactFloat::fmod
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::Unimplemented
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fmod(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::Unimplemented
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: exactfloat::ExactFloat::remainder
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::Unimplemented
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat remainder(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::remainder
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 432
    functionName: exactfloat::ExactFloat::drem
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::remainder
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat drem(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::Unimplemented
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - i_ptr
    argTypes:
    - ExactFloat
    - ExactFloat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: exactfloat::ExactFloat::modf
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::Unimplemented
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat modf(const ExactFloat& a, ExactFloat* i_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - exp
    argTypes:
    - ExactFloat
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 461
    functionName: exactfloat::ExactFloat::scalbn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - ldexp
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat scalbn(const ExactFloat& a, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 563
    functionName: exactfloat::isinf
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isinf(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 566
    functionName: exactfloat::isnan
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isnan(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: exactfloat::isnormal
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isnormal(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 572
    functionName: exactfloat::isfinite
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isfinite(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 573
    functionName: exactfloat::signbit
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool signbit(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 575
    functionName: exactfloat::ExactFloat::is_zero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ExactFloat::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:578,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: exactfloat::ExactFloat::sgn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - isnan
    - exactfloat::ExactFloat::is_zero
    linkageType: ''
    returnType: int
    signature: int ExactFloat::sgn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 583
    functionName: operator!=(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:587,1
    - Dst: exactfloat::isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 589
    functionName: operator<=(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::isnan
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: operator>(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: operator>=(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: exactfloat::ExactFloat::CopyWithSign
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::CopyWithSign(int sign) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: exactfloat::ExactFloat::ExactFloat
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExactFloat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::Unimplemented
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: exactfloat::ExactFloat::ExactFloat
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::Unimplemented
    linkageType: ''
    returnType: void
    signature: void ExactFloat(const char* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: exactfloat::ExactFloat::max_prec
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_prec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' f'
    argTypes:
    - std::ostream
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: '& operator<<(std::ostream& o, ExactFloat const& f)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& o, ExactFloat const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 310
    functionName: operator+() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat operator+() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 329
    functionName: '& operator+=(const ExactFloat& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat & operator+=(const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 330
    functionName: '& operator-=(const ExactFloat& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat & operator-=(const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: '& operator*=(const ExactFloat& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat & operator*=(const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rint
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: exactfloat::ExactFloat::nearbyint
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - rint
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat nearbyint(const ExactFloat& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::Unimplemented
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: exactfloat::ExactFloat::fmod
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::Unimplemented
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat fmod(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::Unimplemented
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: exactfloat::ExactFloat::remainder
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 1
    functionsReached:
    - exactfloat::ExactFloat::Unimplemented
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat remainder(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::remainder
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 432
    functionName: exactfloat::ExactFloat::drem
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::remainder
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat drem(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat::ExactFloat::Unimplemented
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - i_ptr
    argTypes:
    - ExactFloat
    - ExactFloat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: exactfloat::ExactFloat::modf
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - exactfloat::ExactFloat::Unimplemented
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat modf(const ExactFloat& a, ExactFloat* i_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - exp
    argTypes:
    - ExactFloat
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 461
    functionName: exactfloat::ExactFloat::scalbn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - ldexp
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat scalbn(const ExactFloat& a, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 563
    functionName: exactfloat::isinf
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isinf(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 566
    functionName: exactfloat::isnan
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isnan(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: exactfloat::isnormal
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isnormal(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 572
    functionName: exactfloat::isfinite
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isfinite(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 573
    functionName: exactfloat::signbit
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool signbit(ExactFloat const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 575
    functionName: exactfloat::ExactFloat::is_zero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ExactFloat::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:578,1
    - Dst: exactfloat::ExactFloat::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: exactfloat::ExactFloat::sgn
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - isnan
    - exactfloat::ExactFloat::is_zero
    linkageType: ''
    returnType: int
    signature: int ExactFloat::sgn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 583
    functionName: operator!=(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:587,1
    - Dst: isnan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 589
    functionName: operator<=(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached:
    - isnan
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: operator>(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ExactFloat
    - ExactFloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: operator>=(const ExactFloat& a, const ExactFloat& b)
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const ExactFloat& a, const ExactFloat& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: exactfloat::ExactFloat::CopyWithSign
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExactFloat
    signature: ExactFloat ExactFloat::CopyWithSign(int sign) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:56,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:56,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:57,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:57,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: exactfloat_internal::CmpAbs
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: int
    signature: int CmpAbs(absl::Span<const Bigit> a, absl::Span<const Bigit> b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:70,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:70,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:71,1
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:75,1
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:75,1
    - Dst: CmpAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:80,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: exactfloat_internal::Bignum::Compare
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::is_zero
    - CmpAbs
    - exactfloat_internal::Bignum::is_negative
    linkageType: ''
    returnType: int
    signature: int Bignum::Compare(const Bignum& b) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::array::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:97,1
    - Dst: absl::string_view::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:104,1
    - Dst: Bignum::bigits_::reserve
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:108,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:108,1
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:113,1
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:119,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:119,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:122,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:122,1
    - Dst: std::from_chars
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:124,1
    - Dst: std::errc
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:125,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:126,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:132,1
    - Dst: MulWithCarry
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:133,1
    - Dst: Bignum::bigits_::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:135,1
    - Dst: Bignum::Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 142
    functionName: exactfloat_internal::Bignum::FromString
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 12
    functionsReached:
    - absl::MakeSpan
    - MulWithCarry
    - std::errc
    - static_cast<size_t>
    - Bignum::bigits_::emplace_back
    - absl::string_view::size
    - min
    - std::from_chars
    - std::array::size
    - absl::string_view::empty
    - Bignum::Normalize
    - Bignum::bigits_::reserve
    - absl::string_view::data
    linkageType: ''
    returnType: std::optional<Bignum>
    signature: std::optional<Bignum> Bignum::FromString(absl::string_view s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:145,1
    - Dst: bigits_::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:145,1
    - Dst: bigits_::back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:145,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:146,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:152,1
    - Dst: bigits_::back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:152,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 155
    functionName: exactfloat_internal::bit_width
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 20
    functionsReached:
    - bigits_::size
    - bigits_::empty
    - is_zero
    - bigits_::back
    - exactfloat_internal::bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int bit_width(const Bignum& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: exactfloat_internal::countr_zero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 28
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: int
    signature: int countr_zero(const Bignum& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:171,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nbit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: exactfloat_internal::Bignum::is_bit_set
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 2
    functionsReached:
    - size
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: bool
    signature: bool Bignum::is_bit_set(int nbit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bignum::negate
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Bignum::operator-() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - Bignum::negate
    linkageType: ''
    returnType: Bignum
    signature: Bignum Bignum::operator-() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:189,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:190,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:198,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:198,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:203,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - nbit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 215
    functionName: '& Bignum::operator<<=(int nbit)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - size
    - is_zero
    - push_back
    - begin
    - insert
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator<<=(int nbit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:218,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:219,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:224,1
    - Dst: set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:225,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:232,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:232,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:232,1
    - Dst: static_cast<int64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:237,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:237,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - nbit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 247
    functionName: '& Bignum::operator>>=(int nbit)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - bit_width
    - static_cast<int64_t>
    - set_zero
    - size
    - is_zero
    - Normalize
    - erase
    - begin
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator>>=(int nbit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:251,1
    - Dst: exactfloat_internal::Bignum::Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:255,1
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:258,1
    - Dst: exactfloat_internal::Bignum::Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:259,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pow
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 276
    functionName: exactfloat_internal::Bignum::Pow
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::is_zero
    - exactfloat_internal::Bignum::Bignum
    - static_cast<uint32_t>
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: Bignum
    signature: Bignum Bignum::Pow(int32_t pow) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _addcarry_u64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:299,1
    - Dst: reinterpret_cast<unsigned long long*>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:299,1
    - Dst: absl::uint128
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:302,1
    - Dst: absl::Uint128High64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:303,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - absl_nonnull
    argTypes:
    - Bigit
    - Bigit
    - Bigit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 306
    functionName: exactfloat_internal::AddBigit
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned long long*>
    - static_cast<Bigit>
    - _addcarry_u64
    - absl::uint128
    - absl::Uint128High64
    linkageType: ''
    returnType: Bigit
    signature: Bigit AddBigit(Bigit a, Bigit b, Bigit* absl_nonnull carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:312,1
    - Dst: Bigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:312,1
    - Dst: _subborrow_u64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:316,1
    - Dst: static_cast<char>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:316,1
    - Dst: reinterpret_cast<unsigned long long*>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - absl_nonnull
    argTypes:
    - Bigit
    - Bigit
    - Bigit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 324
    functionName: exactfloat_internal::SubBigit
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned long long*>
    - ABSL_DCHECK_LE
    - _subborrow_u64
    - static_cast<char>
    - Bigit
    linkageType: ''
    returnType: Bigit
    signature: Bigit SubBigit(Bigit a, Bigit b, Bigit* absl_nonnull borrow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::uint128
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:328,1
    - Dst: absl::Uint128High64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:329,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - absl_nonnull
    argTypes:
    - Bigit
    - Bigit
    - Bigit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: exactfloat_internal::MulBigit
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - static_cast<Bigit>
    - absl::Uint128High64
    - absl::uint128
    linkageType: ''
    returnType: Bigit
    signature: Bigit MulBigit(Bigit a, Bigit b, Bigit* absl_nonnull carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:371,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:371,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:371,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:377,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:379,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:384,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:385,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:389,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 394
    functionName: exactfloat_internal::AddInPlace
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::AddBigit
    - absl::Span<Bigit>::size
    - absl::Span<const Bigit>::size
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_NOINLINE
    signature: "ABSL_ATTRIBUTE_NOINLINE AddInPlace(absl::Span<Bigit> a,\n                                                absl::Span<const
      Bigit> b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:412,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:412,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:412,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:413,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:413,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:413,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:414,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:414,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:423,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:429,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:433,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:433,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:436,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:439,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - dst
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 454
    functionName: exactfloat_internal::Add
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - absl::Span<Bigit>::size
    - exactfloat_internal::AddBigit
    - absl::Span<const Bigit>::size
    - min
    - absl::Span::size
    - std::max
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: size_t
    signature: "size_t Add(absl::Span<Bigit> dst, absl::Span<const Bigit> a,\n                  absl::Span<const
      Bigit> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:460,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:460,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:460,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:461,1
    - Dst: exactfloat_internal::CmpAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:461,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:466,1
    - Dst: exactfloat_internal::SubBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:470,1
    - Dst: exactfloat_internal::SubBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:476,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:480,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 484
    functionName: exactfloat_internal::SubInPlace
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::SubBigit
    - exactfloat_internal::CmpAbs
    - absl::Span<Bigit>::size
    - ABSL_DCHECK_GE
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: void
    signature: void SubInPlace(absl::Span<Bigit> a, absl::Span<const Bigit> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:493,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:493,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:493,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:494,1
    - Dst: exactfloat_internal::CmpAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:494,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:499,1
    - Dst: exactfloat_internal::SubBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:503,1
    - Dst: exactfloat_internal::SubBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 511
    functionName: exactfloat_internal::SubReverseInPlace
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::SubBigit
    - exactfloat_internal::CmpAbs
    - absl::Span<Bigit>::size
    - ABSL_DCHECK_GE
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: void
    signature: void SubReverseInPlace(absl::Span<Bigit> a, absl::Span<const Bigit>
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:515,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:515,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:515,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:519,1
    - Dst: exactfloat_internal::MulBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:521,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:525,1
    - Dst: exactfloat_internal::MulBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - dst
    - a
    - b
    - carry
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - Bigit
    - Bigit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 530
    functionName: exactfloat_internal::MulWithCarry
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::MulBigit
    - absl::Span<Bigit>::size
    - absl::Span<const Bigit>::size
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: Bigit
    signature: "Bigit MulWithCarry(absl::Span<Bigit> dst, absl::Span<const Bigit>
      a,\n                          Bigit b, Bigit carry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:540,1
    - Dst: MulAddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:542,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:547,1
    - Dst: MulAddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - Bigit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 552
    functionName: exactfloat_internal::MulAddInPlace
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - MulAddBigit
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: Bigit
    signature: "Bigit MulAddInPlace(absl::Span<Bigit> sum, absl::Span<const Bigit>
      a,\n                           Bigit b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:562,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:562,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:562,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:562,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:565,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:565,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:567,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:570,1
    - Dst: absl::c_fill
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:571,1
    - Dst: absl::Span<Bigit>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:578,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:578,1
    - Dst: exactfloat_internal::MulWithCarry
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:579,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:581,1
    - Dst: exactfloat_internal::MulAddInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:584,1
    - Dst: absl::Span<Bigit>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:584,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 591
    functionName: exactfloat_internal::MulQuadratic
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - absl::Span<Bigit>::size
    - absl::Span<const Bigit>::empty
    - absl::Span::size
    - absl::Span<Bigit>::subspan
    - exactfloat_internal::MulAddInPlace
    - swap
    - absl::c_fill
    - exactfloat_internal::MulWithCarry
    - ABSL_DCHECK_GE
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: void
    signature: "void MulQuadratic(absl::Span<Bigit> dst, absl::Span<const Bigit> a,\n
      \                        absl::Span<const Bigit> b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<T>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:601,1
    - Dst: absl::Span<T>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:602,1
    - Dst: absl::Span<T>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:602,1
    - Dst: absl::Span<T>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - span
    - a
    - b
    argTypes:
    - absl::Span<T>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 605
    functionName: exactfloat_internal::Split
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - absl::Span<T>::size
    - absl::Span<T>::subspan
    linkageType: ''
    returnType: std::pair<absl::Span<T>, absl::Span<T>>
    signature: "std::pair<absl::Span<T>, absl::Span<T>> Split(absl::Span<T> span,\n
      \                                                    size_t a, size_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bigit::Bigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 619
    functionName: exactfloat_internal::Arena::Arena
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - Bigit::Bigit
    linkageType: ''
    returnType: void
    signature: void Arena(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:623,1
    - Dst: absl::Span<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:626,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 627
    functionName: exactfloat_internal::Arena::Alloc
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - get
    - absl::Span<Bigit>
    linkageType: ''
    returnType: absl::Span<Bigit>
    signature: absl::Span<Bigit> Alloc(size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 629
    functionName: exactfloat_internal::Arena::Available
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 631
    functionName: exactfloat_internal::Arena::Used
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - to
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 637
    functionName: exactfloat_internal::Arena::Reset
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    linkageType: ''
    returnType: void
    signature: void Reset(size_t to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:656,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a_size
    - b_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 664
    functionName: exactfloat_internal::ArenaSize
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - min
    - std::max
    linkageType: ''
    returnType: size_t
    signature: size_t ArenaSize(size_t a_size, size_t b_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:677,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:677,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:677,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:677,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: Available
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: exactfloat_internal::ArenaSize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:679,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:679,1
    - Dst: absl::c_fill
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:680,1
    - Dst: Used
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:684,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:711,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:711,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:711,1
    - Dst: exactfloat_internal::MulQuadratic
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:712,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:716,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:716,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:716,1
    - Dst: exactfloat_internal::Split
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:719,1
    - Dst: exactfloat_internal::Split
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:720,1
    - Dst: exactfloat_internal::Split
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: exactfloat_internal::KaratsubaMulRecursive
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:726,1
    - Dst: exactfloat_internal::KaratsubaMulRecursive
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:727,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:734,1
    - Dst: Alloc
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:735,1
    - Dst: absl::Span::first
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:736,1
    - Dst: exactfloat_internal::Add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:736,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:740,1
    - Dst: Alloc
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:741,1
    - Dst: absl::Span::first
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:742,1
    - Dst: exactfloat_internal::Add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:742,1
    - Dst: Alloc
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:746,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:746,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:746,1
    - Dst: exactfloat_internal::KaratsubaMulRecursive
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:749,1
    - Dst: exactfloat_internal::SubInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:752,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:753,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:753,1
    - Dst: exactfloat_internal::SubInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:754,1
    - Dst: absl::Span<Bigit>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:759,1
    - Dst: exactfloat_internal::AddInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: absl::Span::first
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: Reset
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - dst
    - a
    - b
    - absl_nonnull
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    - Arena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 770
    functionName: exactfloat_internal::KaratsubaMulRecursive
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 1
    functionsReached:
    - absl::Span<const Bigit>::empty
    - exactfloat_internal::SubInPlace
    - absl::Span::size
    - std::max
    - Used
    - ABSL_DCHECK_GE
    - exactfloat_internal::ArenaSize
    - exactfloat_internal::MulQuadratic
    - min
    - absl::Span<Bigit>::subspan
    - empty
    - absl::c_fill
    - exactfloat_internal::Add
    - Reset
    - absl::Span<const Bigit>::size
    - absl::Span<Bigit>::size
    - Alloc
    - exactfloat_internal::AddInPlace
    - Available
    - size
    - exactfloat_internal::KaratsubaMulRecursive
    - absl::Span::first
    - exactfloat_internal::Split
    linkageType: ''
    returnType: void
    signature: "void KaratsubaMulRecursive(absl::Span<Bigit> dst,\n                                  absl::Span<const
      Bigit> a,\n                                  absl::Span<const Bigit> b,\n                                  Arena*
      absl_nonnull arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:778,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:778,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:778,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:778,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:779,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:779,1
    - Dst: absl::c_fill
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:780,1
    - Dst: exactfloat_internal::ArenaSize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:784,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:784,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:784,1
    - Dst: exactfloat_internal::KaratsubaMulRecursive
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - dst
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 776
    functionDepth: 4
    functionLinenumber: 776
    functionLinenumberEnd: 786
    functionName: exactfloat_internal::KaratsubaMul
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - absl::Span<Bigit>::size
    - absl::Span<const Bigit>::empty
    - exactfloat_internal::ArenaSize
    - exactfloat_internal::KaratsubaMulRecursive
    - absl::c_fill
    - ABSL_DCHECK_GE
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: void
    signature: "void KaratsubaMul(absl::Span<Bigit> dst, absl::Span<const Bigit> a,\n
      \                 absl::Span<const Bigit> b)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:789,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:793,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:798,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:798,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:804,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:804,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:804,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:804,1
    - Dst: AddInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:805,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:805,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:807,1
    - Dst: CmpAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:815,1
    - Dst: SubInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:821,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:821,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:828,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:828,1
    - Dst: SubReverseInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:829,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:829,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:830,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:834,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 836
    functionName: '& Bignum::operator+=(const Bignum& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - bigits_::size
    - CmpAbs
    - emplace_back
    - size
    - is_zero
    - Normalize
    - SubInPlace
    - std::max
    - resize
    - SubReverseInPlace
    - is_negative
    - AddInPlace
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator+=(const Bignum& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:840,1
    - Dst: negate
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:845,1
    - Dst: negate
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 849
    functionName: '& Bignum::operator-=(const Bignum& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - set_zero
    - negate
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator-=(const Bignum& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:852,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:852,1
    - Dst: set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:853,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:857,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:857,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:860,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:860,1
    - Dst: absl::uint128
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:861,1
    - Dst: absl::Uint128Low64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:862,1
    - Dst: absl::Uint128High64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:863,1
    - Dst: set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:869,1
    - Dst: BigitVector::resize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:876,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:876,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:876,1
    - Dst: KaratsubaMul
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:877,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:877,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:878,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:881,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 883
    functionName: '& Bignum::operator*=(const Bignum& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - set_negative
    - absl::MakeSpan
    - absl::Uint128Low64
    - set_zero
    - size
    - is_zero
    - is_negative
    - std::move
    - Normalize
    - absl::uint128
    - BigitVector::resize
    - KaratsubaMul
    - absl::Uint128High64
    - bigits_::size
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator*=(const Bignum& b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:56,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:56,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:57,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:57,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: exactfloat_internal::CmpAbs
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 2
    functionsReached:
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: int
    signature: int CmpAbs(absl::Span<const Bigit> a, absl::Span<const Bigit> b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:70,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:70,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:71,1
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:75,1
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:75,1
    - Dst: CmpAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:80,1
    - Dst: exactfloat_internal::Bignum::is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: exactfloat_internal::Bignum::Compare
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::is_zero
    - CmpAbs
    - exactfloat_internal::Bignum::is_negative
    linkageType: ''
    returnType: int
    signature: int Bignum::Compare(const Bignum& b) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::array::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:97,1
    - Dst: absl::string_view::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:104,1
    - Dst: Bignum::bigits_::reserve
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:108,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:108,1
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:113,1
    - Dst: absl::string_view::data
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:119,1
    - Dst: absl::string_view::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:119,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:122,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:122,1
    - Dst: std::from_chars
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:124,1
    - Dst: std::errc
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:125,1
    - Dst: static_cast<size_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:126,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:132,1
    - Dst: MulWithCarry
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:133,1
    - Dst: Bignum::bigits_::emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:135,1
    - Dst: Bignum::Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 142
    functionName: exactfloat_internal::Bignum::FromString
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 12
    functionsReached:
    - absl::MakeSpan
    - MulWithCarry
    - std::errc
    - static_cast<size_t>
    - Bignum::bigits_::emplace_back
    - absl::string_view::size
    - min
    - std::from_chars
    - std::array::size
    - absl::string_view::empty
    - Bignum::Normalize
    - Bignum::bigits_::reserve
    - absl::string_view::data
    linkageType: ''
    returnType: std::optional<Bignum>
    signature: std::optional<Bignum> Bignum::FromString(absl::string_view s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:145,1
    - Dst: bigits_::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:145,1
    - Dst: bigits_::back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:145,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:146,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:152,1
    - Dst: bigits_::back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:152,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 155
    functionName: exactfloat_internal::bit_width
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 21
    functionsReached:
    - bigits_::size
    - bigits_::empty
    - is_zero
    - bigits_::back
    - exactfloat_internal::bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: int
    signature: int bit_width(const Bignum& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exactfloat_internal::countr_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: exactfloat_internal::countr_zero
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 29
    functionsReached:
    - exactfloat_internal::countr_zero
    linkageType: ''
    returnType: int
    signature: int countr_zero(const Bignum& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:171,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nbit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: exactfloat_internal::Bignum::is_bit_set
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 2
    functionsReached:
    - size
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: bool
    signature: bool Bignum::is_bit_set(int nbit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bignum::negate
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Bignum::operator-() const
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - Bignum::negate
    linkageType: ''
    returnType: Bignum
    signature: Bignum Bignum::operator-() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:189,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:190,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:198,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:198,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:203,1
    - Dst: push_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - nbit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 215
    functionName: '& Bignum::operator<<=(int nbit)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - size
    - is_zero
    - push_back
    - begin
    - insert
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator<<=(int nbit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:218,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:219,1
    - Dst: bit_width
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:224,1
    - Dst: set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:225,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:232,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:232,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:232,1
    - Dst: static_cast<int64_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:237,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:237,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - nbit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 247
    functionName: '& Bignum::operator>>=(int nbit)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - bit_width
    - static_cast<int64_t>
    - set_zero
    - size
    - is_zero
    - Normalize
    - erase
    - begin
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator>>=(int nbit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:251,1
    - Dst: exactfloat_internal::Bignum::Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:255,1
    - Dst: exactfloat_internal::Bignum::is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:258,1
    - Dst: exactfloat_internal::Bignum::Bignum
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:259,1
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pow
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 276
    functionName: exactfloat_internal::Bignum::Pow
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::Bignum::is_zero
    - exactfloat_internal::Bignum::Bignum
    - static_cast<uint32_t>
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: Bignum
    signature: Bignum Bignum::Pow(int32_t pow) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _addcarry_u64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:299,1
    - Dst: reinterpret_cast<unsigned long long*>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:299,1
    - Dst: absl::uint128
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:302,1
    - Dst: absl::Uint128High64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:303,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - absl_nonnull
    argTypes:
    - Bigit
    - Bigit
    - Bigit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 306
    functionName: exactfloat_internal::AddBigit
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 2
    functionsReached:
    - reinterpret_cast<unsigned long long*>
    - static_cast<Bigit>
    - _addcarry_u64
    - absl::uint128
    - absl::Uint128High64
    linkageType: ''
    returnType: Bigit
    signature: Bigit AddBigit(Bigit a, Bigit b, Bigit* absl_nonnull carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:312,1
    - Dst: Bigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:312,1
    - Dst: _subborrow_u64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:316,1
    - Dst: static_cast<char>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:316,1
    - Dst: reinterpret_cast<unsigned long long*>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - absl_nonnull
    argTypes:
    - Bigit
    - Bigit
    - Bigit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 324
    functionName: exactfloat_internal::SubBigit
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 2
    functionsReached:
    - reinterpret_cast<unsigned long long*>
    - ABSL_DCHECK_LE
    - _subborrow_u64
    - static_cast<char>
    - Bigit
    linkageType: ''
    returnType: Bigit
    signature: Bigit SubBigit(Bigit a, Bigit b, Bigit* absl_nonnull borrow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::uint128
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:328,1
    - Dst: absl::Uint128High64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:329,1
    - Dst: static_cast<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - absl_nonnull
    argTypes:
    - Bigit
    - Bigit
    - Bigit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: exactfloat_internal::MulBigit
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 1
    functionsReached:
    - static_cast<Bigit>
    - absl::Uint128High64
    - absl::uint128
    linkageType: ''
    returnType: Bigit
    signature: Bigit MulBigit(Bigit a, Bigit b, Bigit* absl_nonnull carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:371,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:371,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:371,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:377,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:379,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:384,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:385,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:389,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 394
    functionName: exactfloat_internal::AddInPlace
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 1
    functionsReached:
    - exactfloat_internal::AddBigit
    - absl::Span<Bigit>::size
    - absl::Span<const Bigit>::size
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_NOINLINE
    signature: "ABSL_ATTRIBUTE_NOINLINE AddInPlace(absl::Span<Bigit> a,\n                                                absl::Span<const
      Bigit> b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:412,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:412,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:412,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:413,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:413,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:413,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:414,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:414,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:423,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:429,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:433,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:433,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:436,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:439,1
    - Dst: exactfloat_internal::AddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - dst
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 454
    functionName: exactfloat_internal::Add
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 1
    functionsReached:
    - absl::Span<Bigit>::size
    - exactfloat_internal::AddBigit
    - absl::Span<const Bigit>::size
    - min
    - absl::Span::size
    - std::max
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: size_t
    signature: "size_t Add(absl::Span<Bigit> dst, absl::Span<const Bigit> a,\n                  absl::Span<const
      Bigit> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:460,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:460,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:460,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:461,1
    - Dst: exactfloat_internal::CmpAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:461,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:466,1
    - Dst: exactfloat_internal::SubBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:470,1
    - Dst: exactfloat_internal::SubBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:476,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:480,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 484
    functionName: exactfloat_internal::SubInPlace
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 1
    functionsReached:
    - exactfloat_internal::SubBigit
    - exactfloat_internal::CmpAbs
    - absl::Span<Bigit>::size
    - ABSL_DCHECK_GE
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: void
    signature: void SubInPlace(absl::Span<Bigit> a, absl::Span<const Bigit> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:493,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:493,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:493,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:494,1
    - Dst: exactfloat_internal::CmpAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:494,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:499,1
    - Dst: exactfloat_internal::SubBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:503,1
    - Dst: exactfloat_internal::SubBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 511
    functionName: exactfloat_internal::SubReverseInPlace
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - exactfloat_internal::SubBigit
    - exactfloat_internal::CmpAbs
    - absl::Span<Bigit>::size
    - ABSL_DCHECK_GE
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: void
    signature: void SubReverseInPlace(absl::Span<Bigit> a, absl::Span<const Bigit>
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:515,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:515,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:515,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:519,1
    - Dst: exactfloat_internal::MulBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:521,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:525,1
    - Dst: exactfloat_internal::MulBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - dst
    - a
    - b
    - carry
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - Bigit
    - Bigit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 530
    functionName: exactfloat_internal::MulWithCarry
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 1
    functionsReached:
    - exactfloat_internal::MulBigit
    - absl::Span<Bigit>::size
    - absl::Span<const Bigit>::size
    - ABSL_DCHECK_GE
    linkageType: ''
    returnType: Bigit
    signature: "Bigit MulWithCarry(absl::Span<Bigit> dst, absl::Span<const Bigit>
      a,\n                          Bigit b, Bigit carry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:540,1
    - Dst: MulAddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:542,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:547,1
    - Dst: MulAddBigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - Bigit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 552
    functionName: exactfloat_internal::MulAddInPlace
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 1
    functionsReached:
    - MulAddBigit
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: Bigit
    signature: "Bigit MulAddInPlace(absl::Span<Bigit> sum, absl::Span<const Bigit>
      a,\n                           Bigit b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:562,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:562,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:562,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:562,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:565,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:565,1
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:567,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:570,1
    - Dst: absl::c_fill
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:571,1
    - Dst: absl::Span<Bigit>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:578,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:578,1
    - Dst: exactfloat_internal::MulWithCarry
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:579,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:581,1
    - Dst: exactfloat_internal::MulAddInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:584,1
    - Dst: absl::Span<Bigit>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:584,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 591
    functionName: exactfloat_internal::MulQuadratic
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 1
    functionsReached:
    - absl::Span<Bigit>::size
    - absl::Span<const Bigit>::empty
    - absl::Span::size
    - absl::Span<Bigit>::subspan
    - exactfloat_internal::MulAddInPlace
    - swap
    - absl::c_fill
    - exactfloat_internal::MulWithCarry
    - ABSL_DCHECK_GE
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: void
    signature: "void MulQuadratic(absl::Span<Bigit> dst, absl::Span<const Bigit> a,\n
      \                        absl::Span<const Bigit> b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<T>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:601,1
    - Dst: absl::Span<T>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:602,1
    - Dst: absl::Span<T>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:602,1
    - Dst: absl::Span<T>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - span
    - a
    - b
    argTypes:
    - absl::Span<T>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 605
    functionName: exactfloat_internal::Split
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 1
    functionsReached:
    - absl::Span<T>::size
    - absl::Span<T>::subspan
    linkageType: ''
    returnType: std::pair<absl::Span<T>, absl::Span<T>>
    signature: "std::pair<absl::Span<T>, absl::Span<T>> Split(absl::Span<T> span,\n
      \                                                    size_t a, size_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bigit::Bigit
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 619
    functionName: exactfloat_internal::Arena::Arena
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - Bigit::Bigit
    linkageType: ''
    returnType: void
    signature: void Arena(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:623,1
    - Dst: absl::Span<Bigit>
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:626,1
    - Dst: get
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 627
    functionName: exactfloat_internal::Arena::Alloc
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - get
    - absl::Span<Bigit>
    linkageType: ''
    returnType: absl::Span<Bigit>
    signature: absl::Span<Bigit> Alloc(size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 629
    functionName: exactfloat_internal::Arena::Available
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 631
    functionName: exactfloat_internal::Arena::Used
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - to
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 637
    functionName: exactfloat_internal::Arena::Reset
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    linkageType: ''
    returnType: void
    signature: void Reset(size_t to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:656,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a_size
    - b_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 664
    functionName: exactfloat_internal::ArenaSize
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 2
    functionsReached:
    - min
    - std::max
    linkageType: ''
    returnType: size_t
    signature: size_t ArenaSize(size_t a_size, size_t b_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:677,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:677,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:677,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:677,1
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: Available
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: exactfloat_internal::ArenaSize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:678,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:679,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:679,1
    - Dst: absl::c_fill
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:680,1
    - Dst: Used
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:684,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:711,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:711,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:711,1
    - Dst: exactfloat_internal::MulQuadratic
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:712,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:716,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:716,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:716,1
    - Dst: exactfloat_internal::Split
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:719,1
    - Dst: exactfloat_internal::Split
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:720,1
    - Dst: exactfloat_internal::Split
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:725,1
    - Dst: exactfloat_internal::KaratsubaMulRecursive
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:726,1
    - Dst: exactfloat_internal::KaratsubaMulRecursive
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:727,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:734,1
    - Dst: Alloc
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:735,1
    - Dst: absl::Span::first
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:736,1
    - Dst: exactfloat_internal::Add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:736,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:740,1
    - Dst: Alloc
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:741,1
    - Dst: absl::Span::first
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:742,1
    - Dst: exactfloat_internal::Add
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:742,1
    - Dst: Alloc
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:746,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:746,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:746,1
    - Dst: exactfloat_internal::KaratsubaMulRecursive
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:749,1
    - Dst: exactfloat_internal::SubInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:752,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:753,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:753,1
    - Dst: exactfloat_internal::SubInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:754,1
    - Dst: absl::Span<Bigit>::subspan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:759,1
    - Dst: exactfloat_internal::AddInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: absl::Span::first
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: min
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: absl::Span::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:766,1
    - Dst: Reset
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - dst
    - a
    - b
    - absl_nonnull
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    - Arena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 770
    functionName: exactfloat_internal::KaratsubaMulRecursive
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 3
    functionsReached:
    - absl::Span<const Bigit>::empty
    - exactfloat_internal::SubInPlace
    - absl::Span::size
    - std::max
    - Used
    - ABSL_DCHECK_GE
    - exactfloat_internal::ArenaSize
    - exactfloat_internal::MulQuadratic
    - min
    - absl::Span<Bigit>::subspan
    - empty
    - absl::c_fill
    - exactfloat_internal::Add
    - Reset
    - absl::Span<const Bigit>::size
    - absl::Span<Bigit>::size
    - Alloc
    - exactfloat_internal::AddInPlace
    - Available
    - size
    - exactfloat_internal::KaratsubaMulRecursive
    - absl::Span::first
    - exactfloat_internal::Split
    linkageType: ''
    returnType: void
    signature: "void KaratsubaMulRecursive(absl::Span<Bigit> dst,\n                                  absl::Span<const
      Bigit> a,\n                                  absl::Span<const Bigit> b,\n                                  Arena*
      absl_nonnull arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_GE
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:778,1
    - Dst: absl::Span<Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:778,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:778,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:778,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:779,1
    - Dst: absl::Span<const Bigit>::empty
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:779,1
    - Dst: absl::c_fill
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:780,1
    - Dst: exactfloat_internal::ArenaSize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:784,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:784,1
    - Dst: absl::Span<const Bigit>::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:784,1
    - Dst: exactfloat_internal::KaratsubaMulRecursive
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - dst
    - a
    - b
    argTypes:
    - absl::Span<Bigit>
    - absl::Span<const Bigit>
    - absl::Span<const Bigit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 776
    functionDepth: 4
    functionLinenumber: 776
    functionLinenumberEnd: 786
    functionName: exactfloat_internal::KaratsubaMul
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - absl::Span<Bigit>::size
    - absl::Span<const Bigit>::empty
    - exactfloat_internal::ArenaSize
    - exactfloat_internal::KaratsubaMulRecursive
    - absl::c_fill
    - ABSL_DCHECK_GE
    - absl::Span<const Bigit>::size
    linkageType: ''
    returnType: void
    signature: "void KaratsubaMul(absl::Span<Bigit> dst, absl::Span<const Bigit> a,\n
      \                 absl::Span<const Bigit> b)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:789,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:793,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:798,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:798,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:804,1
    - Dst: std::max
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:804,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:804,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:804,1
    - Dst: AddInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:805,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:805,1
    - Dst: emplace_back
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:807,1
    - Dst: CmpAbs
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:815,1
    - Dst: SubInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:821,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:821,1
    - Dst: resize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:828,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:828,1
    - Dst: SubReverseInPlace
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:829,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:829,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:830,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:834,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 836
    functionName: '& Bignum::operator+=(const Bignum& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - absl::MakeSpan
    - bigits_::size
    - CmpAbs
    - emplace_back
    - size
    - is_zero
    - Normalize
    - SubInPlace
    - std::max
    - resize
    - SubReverseInPlace
    - is_negative
    - AddInPlace
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator+=(const Bignum& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:840,1
    - Dst: negate
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:845,1
    - Dst: negate
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 849
    functionName: '& Bignum::operator-=(const Bignum& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - set_zero
    - negate
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator-=(const Bignum& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:852,1
    - Dst: is_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:852,1
    - Dst: set_zero
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:853,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:857,1
    - Dst: is_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:857,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:860,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:860,1
    - Dst: absl::uint128
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:861,1
    - Dst: absl::Uint128Low64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:862,1
    - Dst: absl::Uint128High64
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:863,1
    - Dst: set_negative
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:869,1
    - Dst: BigitVector::resize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:876,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:876,1
    - Dst: bigits_::size
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:876,1
    - Dst: KaratsubaMul
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:877,1
    - Dst: absl::MakeSpan
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:877,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:878,1
    - Dst: Normalize
      Src: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc:881,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Bignum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 883
    functionName: '& Bignum::operator*=(const Bignum& b)'
    functionSourceFile: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
    functionUses: 0
    functionsReached:
    - set_negative
    - absl::MakeSpan
    - absl::Uint128Low64
    - set_zero
    - size
    - is_zero
    - is_negative
    - std::move
    - Normalize
    - absl::uint128
    - BigitVector::resize
    - KaratsubaMul
    - absl::Uint128High64
    - bigits_::size
    linkageType: ''
    returnType: Bignum
    signature: Bignum & Bignum::operator*=(const Bignum& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:121,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:122,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:123,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:124,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:126,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:127,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:129,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:129,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:132,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:132,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:135,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: util::units::Convert
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - static_cast<Float>
    - static_cast<double>
    linkageType: ''
    returnType: Float
    signature: Float Convert(Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit(Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::Convert
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:190,1
    - Dst: PhysicalUnit<Float, Base, Unit2>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - other
    argTypes:
    - PhysicalUnit<Float, Base, Unit2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit2>::value
    - util::units::Convert
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit(PhysicalUnit<Float, Base, Unit2> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::Convert
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:195,1
    - Dst: PhysicalUnit<Float, Base, Unit2>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - PhysicalUnit<Float, Base, Unit2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: '& operator=(PhysicalUnit<Float, Base, Unit2> other)'
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit2>::value
    - util::units::Convert
    linkageType: ''
    returnType: Type
    signature: Type & operator=(PhysicalUnit<Float, Base, Unit2> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: util::units::PhysicalUnit::value
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Float
    signature: Float value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: operator-() const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scale
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: operator*(const Float scale) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator*(const Float scale) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:219,1
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: operator+(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator+(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:224,1
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: operator-(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator-(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: operator/(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Float
    signature: Float operator/(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - scale
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: operator*=(const Float scale)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type operator*=(const Float scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: operator+=(const Type other)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Type
    signature: Type operator+=(const Type other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: operator-=(const Type other)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Type
    signature: Type operator-=(const Type other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: operator<(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: operator>(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: operator<=(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: operator>=(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Type other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - other
    - epsilon
    argTypes:
    - Type
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: util::units::PhysicalUnit::equals
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: bool
    signature: "bool equals(const Type other,\n              const Type epsilon) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: util::units::PhysicalUnit::abs
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: Type
    signature: Type abs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CastType
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:281,1
    - Dst: static_cast<OtherFloat>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::units::PhysicalUnit::precision_cast
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - CastType
    - static_cast<OtherFloat>
    linkageType: ''
    returnType: PhysicalUnit<OtherFloat, Base, Unit>
    signature: PhysicalUnit<OtherFloat, Base, Unit> precision_cast() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - scale
    - value
    argTypes:
    - Scale
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: "operator * (\n         const Scale scale,\n         const PhysicalUnit<Float,
      Base, Unit> value)"
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: PhysicalUnit<Float, Base, Unit>
    signature: "PhysicalUnit<Float, Base, Unit> operator * (\n         const Scale
      scale,\n         const PhysicalUnit<Float, Base, Unit> value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PhysicalUnit<Float, Base, Unit>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:305,1
    - Dst: util::units::GetInBaseUnit
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - value
    argTypes:
    - std::ostream
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: "& operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
      Base, Unit> value)"
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit>::value
    - util::units::GetInBaseUnit
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
      Base, Unit> value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: util::units::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(PhysicalUnit<Float, Base, Unit> value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:121,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:122,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:123,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:124,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:126,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:127,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:129,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:129,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:132,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:132,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:135,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: util::units::Convert
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 2
    functionsReached:
    - static_cast<uint64_t>
    - static_cast<Float>
    - static_cast<double>
    linkageType: ''
    returnType: Float
    signature: Float Convert(Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit(Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::Convert
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:190,1
    - Dst: PhysicalUnit<Float, Base, Unit2>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - other
    argTypes:
    - PhysicalUnit<Float, Base, Unit2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit2>::value
    - util::units::Convert
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit(PhysicalUnit<Float, Base, Unit2> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::Convert
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:195,1
    - Dst: PhysicalUnit<Float, Base, Unit2>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - PhysicalUnit<Float, Base, Unit2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: '& operator=(PhysicalUnit<Float, Base, Unit2> other)'
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit2>::value
    - util::units::Convert
    linkageType: ''
    returnType: Type
    signature: Type & operator=(PhysicalUnit<Float, Base, Unit2> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: util::units::PhysicalUnit::value
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Float
    signature: Float value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: operator-() const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scale
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: operator*(const Float scale) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator*(const Float scale) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:219,1
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: operator+(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator+(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:224,1
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: operator-(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator-(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: operator/(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Float
    signature: Float operator/(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - scale
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: operator*=(const Float scale)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type operator*=(const Float scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: operator+=(const Type other)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Type
    signature: Type operator+=(const Type other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: operator-=(const Type other)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Type
    signature: Type operator-=(const Type other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: operator<(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: operator>(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: operator<=(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: operator>=(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Type other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - other
    - epsilon
    argTypes:
    - Type
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: util::units::PhysicalUnit::equals
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: bool
    signature: "bool equals(const Type other,\n              const Type epsilon) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: util::units::PhysicalUnit::abs
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: Type
    signature: Type abs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CastType
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:281,1
    - Dst: static_cast<OtherFloat>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::units::PhysicalUnit::precision_cast
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - CastType
    - static_cast<OtherFloat>
    linkageType: ''
    returnType: PhysicalUnit<OtherFloat, Base, Unit>
    signature: PhysicalUnit<OtherFloat, Base, Unit> precision_cast() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - scale
    - value
    argTypes:
    - Scale
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: "operator * (\n         const Scale scale,\n         const PhysicalUnit<Float,
      Base, Unit> value)"
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: PhysicalUnit<Float, Base, Unit>
    signature: "PhysicalUnit<Float, Base, Unit> operator * (\n         const Scale
      scale,\n         const PhysicalUnit<Float, Base, Unit> value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PhysicalUnit<Float, Base, Unit>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:305,1
    - Dst: util::units::GetInBaseUnit
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - value
    argTypes:
    - std::ostream
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: "& operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
      Base, Unit> value)"
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit>::value
    - util::units::GetInBaseUnit
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
      Base, Unit> value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: util::units::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(PhysicalUnit<Float, Base, Unit> value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:121,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:122,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:123,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:124,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:126,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:127,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:129,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:129,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:132,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:132,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:135,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: util::units::Convert
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 4
    functionsReached:
    - static_cast<uint64_t>
    - static_cast<Float>
    - static_cast<double>
    linkageType: ''
    returnType: Float
    signature: Float Convert(Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit(Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::Convert
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:190,1
    - Dst: PhysicalUnit<Float, Base, Unit2>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - other
    argTypes:
    - PhysicalUnit<Float, Base, Unit2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit2>::value
    - util::units::Convert
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit(PhysicalUnit<Float, Base, Unit2> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::Convert
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:195,1
    - Dst: PhysicalUnit<Float, Base, Unit2>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - PhysicalUnit<Float, Base, Unit2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: '& operator=(PhysicalUnit<Float, Base, Unit2> other)'
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit2>::value
    - util::units::Convert
    linkageType: ''
    returnType: Type
    signature: Type & operator=(PhysicalUnit<Float, Base, Unit2> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: util::units::PhysicalUnit::value
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Float
    signature: Float value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: operator-() const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scale
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: operator*(const Float scale) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator*(const Float scale) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:219,1
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: operator+(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator+(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:224,1
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: operator-(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator-(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: operator/(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Float
    signature: Float operator/(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - scale
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: operator*=(const Float scale)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type operator*=(const Float scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: operator+=(const Type other)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Type
    signature: Type operator+=(const Type other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: operator-=(const Type other)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Type
    signature: Type operator-=(const Type other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: operator<(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: operator>(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: operator<=(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: operator>=(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Type other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - other
    - epsilon
    argTypes:
    - Type
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: util::units::PhysicalUnit::equals
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: bool
    signature: "bool equals(const Type other,\n              const Type epsilon) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: util::units::PhysicalUnit::abs
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: Type
    signature: Type abs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CastType
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:281,1
    - Dst: static_cast<OtherFloat>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::units::PhysicalUnit::precision_cast
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - CastType
    - static_cast<OtherFloat>
    linkageType: ''
    returnType: PhysicalUnit<OtherFloat, Base, Unit>
    signature: PhysicalUnit<OtherFloat, Base, Unit> precision_cast() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - scale
    - value
    argTypes:
    - Scale
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: "operator * (\n         const Scale scale,\n         const PhysicalUnit<Float,
      Base, Unit> value)"
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: PhysicalUnit<Float, Base, Unit>
    signature: "PhysicalUnit<Float, Base, Unit> operator * (\n         const Scale
      scale,\n         const PhysicalUnit<Float, Base, Unit> value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PhysicalUnit<Float, Base, Unit>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:305,1
    - Dst: util::units::GetInBaseUnit
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - value
    argTypes:
    - std::ostream
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: "& operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
      Base, Unit> value)"
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit>::value
    - util::units::GetInBaseUnit
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
      Base, Unit> value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: util::units::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(PhysicalUnit<Float, Base, Unit> value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:121,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:122,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:123,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:124,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:126,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:127,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:129,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:129,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:132,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:132,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:135,1
    - Dst: static_cast<double>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: util::units::Convert
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 6
    functionsReached:
    - static_cast<uint64_t>
    - static_cast<Float>
    - static_cast<double>
    linkageType: ''
    returnType: Float
    signature: Float Convert(Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit(Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::Convert
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:190,1
    - Dst: PhysicalUnit<Float, Base, Unit2>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - other
    argTypes:
    - PhysicalUnit<Float, Base, Unit2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: util::units::PhysicalUnit::PhysicalUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit2>::value
    - util::units::Convert
    linkageType: ''
    returnType: void
    signature: void PhysicalUnit(PhysicalUnit<Float, Base, Unit2> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::Convert
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:195,1
    - Dst: PhysicalUnit<Float, Base, Unit2>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - PhysicalUnit<Float, Base, Unit2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: '& operator=(PhysicalUnit<Float, Base, Unit2> other)'
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit2>::value
    - util::units::Convert
    linkageType: ''
    returnType: Type
    signature: Type & operator=(PhysicalUnit<Float, Base, Unit2> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: util::units::PhysicalUnit::value
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Float
    signature: Float value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: operator-() const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scale
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: operator*(const Float scale) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator*(const Float scale) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:219,1
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: operator+(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator+(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:224,1
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: operator-(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    - Type
    linkageType: ''
    returnType: Type
    signature: Type operator-(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: operator/(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Float
    signature: Float operator/(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - scale
    argTypes:
    - Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: operator*=(const Float scale)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type operator*=(const Float scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: operator+=(const Type other)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Type
    signature: Type operator+=(const Type other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: operator-=(const Type other)
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: Type
    signature: Type operator-=(const Type other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: operator<(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: operator>(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: operator<=(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Type other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: operator>=(const Type other) const
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - Type::value
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Type other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - other
    - epsilon
    argTypes:
    - Type
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: util::units::PhysicalUnit::equals
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: bool
    signature: "bool equals(const Type other,\n              const Type epsilon) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: util::units::PhysicalUnit::abs
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: Type
    signature: Type abs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CastType
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:281,1
    - Dst: static_cast<OtherFloat>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: util::units::PhysicalUnit::precision_cast
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - CastType
    - static_cast<OtherFloat>
    linkageType: ''
    returnType: PhysicalUnit<OtherFloat, Base, Unit>
    signature: PhysicalUnit<OtherFloat, Base, Unit> precision_cast() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Float>
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - scale
    - value
    argTypes:
    - Scale
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: "operator * (\n         const Scale scale,\n         const PhysicalUnit<Float,
      Base, Unit> value)"
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - static_cast<Float>
    linkageType: ''
    returnType: PhysicalUnit<Float, Base, Unit>
    signature: "PhysicalUnit<Float, Base, Unit> operator * (\n         const Scale
      scale,\n         const PhysicalUnit<Float, Base, Unit> value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PhysicalUnit<Float, Base, Unit>::value
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:305,1
    - Dst: util::units::GetInBaseUnit
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - value
    argTypes:
    - std::ostream
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: "& operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
      Base, Unit> value)"
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - PhysicalUnit<Float, Base, Unit>::value
    - util::units::GetInBaseUnit
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
      Base, Unit> value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::ostringstream::str
      Src: /src/s2geometry/src/s2/util/units/physical-units.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - PhysicalUnit<Float, Base, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: util::units::ToString
    functionSourceFile: /src/s2geometry/src/s2/util/units/physical-units.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(PhysicalUnit<Float, Base, Unit> value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: util::units::GetInBaseUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetMeters
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetInBaseUnit(\n      const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_ContainsVsRadiusMeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: util::units::GetMeters
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 1
    functionsReached:
    - BM_ContainsVsRadiusMeters
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetMeters(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetKilometers
      Src: /src/s2geometry/src/s2/util/units/length-units.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: util::units::GetKilometers
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 1
    functionsReached:
    - util::units::GetKilometers
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetKilometers(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetInches
      Src: /src/s2geometry/src/s2/util/units/length-units.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::units::GetInches
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 1
    functionsReached:
    - util::units::GetInches
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetInches(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetFeet
      Src: /src/s2geometry/src/s2/util/units/length-units.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: util::units::GetFeet
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 2
    functionsReached:
    - util::units::GetFeet
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetFeet(const PhysicalUnit<ValueType, LengthBase, Unit> u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMiles
      Src: /src/s2geometry/src/s2/util/units/length-units.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: util::units::GetMiles
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 2
    functionsReached:
    - util::units::GetMiles
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetMiles(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMillimeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: util::units::GetMillimeters
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 1
    functionsReached:
    - util::units::GetMillimeters
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetMillimeters(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetNauticalMiles
      Src: /src/s2geometry/src/s2/util/units/length-units.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: util::units::GetNauticalMiles
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 1
    functionsReached:
    - util::units::GetNauticalMiles
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetNauticalMiles(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetYards
      Src: /src/s2geometry/src/s2/util/units/length-units.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: util::units::GetYards
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 1
    functionsReached:
    - util::units::GetYards
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetYards(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: util::units::GetInBaseUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetMeters
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetInBaseUnit(\n      const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_ContainsVsRadiusMeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: util::units::GetMeters
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 2
    functionsReached:
    - BM_ContainsVsRadiusMeters
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetMeters(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetKilometers
      Src: /src/s2geometry/src/s2/util/units/length-units.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: util::units::GetKilometers
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 2
    functionsReached:
    - util::units::GetKilometers
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetKilometers(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetInches
      Src: /src/s2geometry/src/s2/util/units/length-units.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::units::GetInches
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 2
    functionsReached:
    - util::units::GetInches
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetInches(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetFeet
      Src: /src/s2geometry/src/s2/util/units/length-units.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: util::units::GetFeet
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 3
    functionsReached:
    - util::units::GetFeet
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetFeet(const PhysicalUnit<ValueType, LengthBase, Unit> u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMiles
      Src: /src/s2geometry/src/s2/util/units/length-units.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: util::units::GetMiles
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 3
    functionsReached:
    - util::units::GetMiles
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetMiles(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMillimeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: util::units::GetMillimeters
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 2
    functionsReached:
    - util::units::GetMillimeters
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetMillimeters(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetNauticalMiles
      Src: /src/s2geometry/src/s2/util/units/length-units.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: util::units::GetNauticalMiles
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 2
    functionsReached:
    - util::units::GetNauticalMiles
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetNauticalMiles(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetYards
      Src: /src/s2geometry/src/s2/util/units/length-units.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: util::units::GetYards
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 2
    functionsReached:
    - util::units::GetYards
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetYards(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: util::units::GetInBaseUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetMeters
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetInBaseUnit(\n      const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_ContainsVsRadiusMeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: util::units::GetMeters
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 3
    functionsReached:
    - BM_ContainsVsRadiusMeters
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetMeters(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetKilometers
      Src: /src/s2geometry/src/s2/util/units/length-units.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: util::units::GetKilometers
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 3
    functionsReached:
    - util::units::GetKilometers
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetKilometers(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetInches
      Src: /src/s2geometry/src/s2/util/units/length-units.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::units::GetInches
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 3
    functionsReached:
    - util::units::GetInches
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetInches(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetFeet
      Src: /src/s2geometry/src/s2/util/units/length-units.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: util::units::GetFeet
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetFeet
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetFeet(const PhysicalUnit<ValueType, LengthBase, Unit> u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMiles
      Src: /src/s2geometry/src/s2/util/units/length-units.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: util::units::GetMiles
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetMiles
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetMiles(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMillimeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: util::units::GetMillimeters
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 3
    functionsReached:
    - util::units::GetMillimeters
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetMillimeters(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetNauticalMiles
      Src: /src/s2geometry/src/s2/util/units/length-units.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: util::units::GetNauticalMiles
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 3
    functionsReached:
    - util::units::GetNauticalMiles
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetNauticalMiles(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetYards
      Src: /src/s2geometry/src/s2/util/units/length-units.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: util::units::GetYards
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 3
    functionsReached:
    - util::units::GetYards
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetYards(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: util::units::GetInBaseUnit
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetMeters
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetInBaseUnit(\n      const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_ContainsVsRadiusMeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: util::units::GetMeters
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - BM_ContainsVsRadiusMeters
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetMeters(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetKilometers
      Src: /src/s2geometry/src/s2/util/units/length-units.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: util::units::GetKilometers
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetKilometers
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetKilometers(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetInches
      Src: /src/s2geometry/src/s2/util/units/length-units.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: util::units::GetInches
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetInches
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetInches(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetFeet
      Src: /src/s2geometry/src/s2/util/units/length-units.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: util::units::GetFeet
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 5
    functionsReached:
    - util::units::GetFeet
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetFeet(const PhysicalUnit<ValueType, LengthBase, Unit> u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMiles
      Src: /src/s2geometry/src/s2/util/units/length-units.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: util::units::GetMiles
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 5
    functionsReached:
    - util::units::GetMiles
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetMiles(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetMillimeters
      Src: /src/s2geometry/src/s2/util/units/length-units.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: util::units::GetMillimeters
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetMillimeters
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetMillimeters(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetNauticalMiles
      Src: /src/s2geometry/src/s2/util/units/length-units.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: util::units::GetNauticalMiles
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetNauticalMiles
    linkageType: ''
    returnType: ValueType
    signature: "ValueType GetNauticalMiles(\n    const PhysicalUnit<ValueType, LengthBase,
      Unit> u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util::units::GetYards
      Src: /src/s2geometry/src/s2/util/units/length-units.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - PhysicalUnit<ValueType, LengthBase, Unit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: util::units::GetYards
    functionSourceFile: /src/s2geometry/src/s2/util/units/length-units.h
    functionUses: 4
    functionsReached:
    - util::units::GetYards
    linkageType: ''
    returnType: ValueType
    signature: ValueType GetYards(const PhysicalUnit<ValueType, LengthBase, Unit>
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/value_or_die.h:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - absl::StatusOr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: gtl::ValueOrDie
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/value_or_die.h
    functionUses: 28
    functionsReached:
    - std::move
    linkageType: ''
    returnType: T
    signature: T ValueOrDie(absl::StatusOr<T>&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/value_or_die.h:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - absl::StatusOr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: gtl::ValueOrDie
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/value_or_die.h
    functionUses: 28
    functionsReached:
    - std::move
    linkageType: ''
    returnType: T
    signature: T ValueOrDie(absl::StatusOr<T>&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - num_probes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: JUMP_
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_(key, num_probes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - take_from
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: PUT_
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_(take_from, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - add_to
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: GET_
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_(add_to, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - num_probes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: JUMP_
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_(key, num_probes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - take_from
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: PUT_
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_(take_from, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - add_to
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: GET_
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_(add_to, offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advance_past_empty_and_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - h
    - it
    - it_end
    - advance
    argTypes:
    - dense_hashtable<V, K, HF, ExK, SetK, EqK, A>*
    - pointer
    - pointer
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: dense_hashtable_iterator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - advance_past_empty_and_deleted
    linkageType: ''
    returnType: void
    signature: "void dense_hashtable_iterator(\n      const dense_hashtable<V, K,
      HF, ExK, SetK, EqK, A>* h, pointer it,\n      pointer it_end, bool advance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: dense_hashtable_iterator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dense_hashtable_iterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:223,1
    - Dst: test_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: advance_past_empty_and_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - test_empty
    - test_deleted
    linkageType: ''
    returnType: void
    signature: void advance_past_empty_and_deleted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:227,1
    - Dst: advance_past_empty_and_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (pos != end)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: '& operator++()'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - advance_past_empty_and_deleted
    - assert
    linkageType: ''
    returnType: iterator
    signature: iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: operator++(int /*unused*/)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iterator
    signature: iterator operator++(int /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: operator==(const iterator& it) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iterator& it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: operator!=(const iterator& it) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iterator& it) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advance_past_empty_and_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - h
    - it
    - it_end
    - advance
    argTypes:
    - dense_hashtable<V, K, HF, ExK, SetK, EqK, A>*
    - pointer
    - pointer
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: dense_hashtable_const_iterator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - advance_past_empty_and_deleted
    linkageType: ''
    returnType: void
    signature: "void dense_hashtable_const_iterator(\n      const dense_hashtable<V,
      K, HF, ExK, SetK, EqK, A>* h, pointer it,\n      pointer it_end, bool advance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pointer
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:276,1
    - Dst: pointer
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: dense_hashtable_const_iterator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - pointer
    linkageType: ''
    returnType: void
    signature: void dense_hashtable_const_iterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: dense_hashtable_const_iterator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dense_hashtable_const_iterator(const iterator& it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: operator*() const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: operator->() const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:290,1
    - Dst: test_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: advance_past_empty_and_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 3
    functionsReached:
    - test_empty
    - test_deleted
    linkageType: ''
    returnType: void
    signature: void advance_past_empty_and_deleted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:294,1
    - Dst: advance_past_empty_and_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (pos != end)
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: '& operator++()'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - advance_past_empty_and_deleted
    - assert
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: operator++(int /*unused*/)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator++(int /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 306
    functionName: operator==(const const_iterator& it) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const const_iterator& it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: operator!=(const const_iterator& it) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const const_iterator& it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: dense_hashtable::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - iterator
    linkageType: ''
    returnType: iterator
    signature: iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: dense_hashtable::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - iterator
    linkageType: ''
    returnType: iterator
    signature: iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: dense_hashtable::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: dense_hashtable::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: dense_hashtable::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - local_iterator
    linkageType: ''
    returnType: local_iterator
    signature: local_iterator begin(size_type i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::begin
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:389,1
    - Dst: dense_hashtable::test_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:390,1
    - Dst: dense_hashtable::test_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: dense_hashtable::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::begin
    - dense_hashtable::test_empty
    - dense_hashtable::test_deleted
    linkageType: ''
    returnType: local_iterator
    signature: local_iterator end(size_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_local_iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: dense_hashtable::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - const_local_iterator
    linkageType: ''
    returnType: const_local_iterator
    signature: const_local_iterator begin(size_type i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::begin
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:397,1
    - Dst: dense_hashtable::test_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:398,1
    - Dst: dense_hashtable::test_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: dense_hashtable::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::begin
    - dense_hashtable::test_empty
    - dense_hashtable::test_deleted
    linkageType: ''
    returnType: const_local_iterator
    signature: const_local_iterator end(size_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: dense_hashtable::hash_funct
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: hasher
    signature: hasher hash_funct() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 404
    functionName: dense_hashtable::key_eq
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: key_equal
    signature: key_equal key_eq() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: dense_hashtable::get_allocator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_alloc_type
    signature: value_alloc_type get_allocator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_ht_copies
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 408
    functionName: dense_hashtable::num_table_copies
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - num_ht_copies
    linkageType: ''
    returnType: int
    signature: int num_table_copies() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pointer::~value_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:416,1
    - Dst: value_type::value_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - pointer
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: dense_hashtable::set_value
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - pointer::~value_type
    - value_type::value_type
    linkageType: ''
    returnType: void
    signature: void set_value(pointer dst, const_reference src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pointer::~value_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:421,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:422,1
    - Dst: value_type::value_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - ' src'
    argTypes:
    - pointer
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: dense_hashtable::set_value
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - pointer::~value_type
    - std::move
    - value_type::value_type
    linkageType: ''
    returnType: void
    signature: void set_value(pointer dst, value_type&& src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ~value_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: dense_hashtable::destroy_buckets
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - ~value_type
    linkageType: ''
    returnType: void
    signature: void destroy_buckets(size_type first, size_type last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::rebucket
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:439,1
    - Dst: min_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:439,1
    - Dst: dense_hashtable::size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:439,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (num_deleted == 0)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: dense_hashtable::squash_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::size
    - dense_hashtable::rebucket
    - min_buckets
    - assert
    linkageType: ''
    returnType: void
    signature: void squash_deleted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:448,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts:
    - condition: (num_deleted > 0)
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: dense_hashtable::test_deleted_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::equals
    - assert
    linkageType: ''
    returnType: bool
    signature: bool test_deleted_key(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:456,1
    - Dst: use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:456,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:456,1
    - Dst: dense_hashtable::squash_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:459,1
    - Dst: set_use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts:
    - condition: "((!settings.use_empty() || !equals(key, key_info.empty)) &&\n           \"Passed
        the empty-key to set_deleted_key\")"
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 462
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 462
    functionName: dense_hashtable::set_deleted_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::squash_deleted
    - set_use_deleted
    - assert
    - use_empty
    - dense_hashtable::equals
    linkageType: ''
    returnType: void
    signature: void set_deleted_key(const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:464,1
    - Dst: use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(settings.use_deleted() &&\n           \"Must set deleted key before
        calling deleted_key\")"
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: dense_hashtable::deleted_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - use_deleted
    - assert
    linkageType: ''
    returnType: key_type
    signature: key_type deleted_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:473,1
    - Dst: use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:473,1
    - Dst: dense_hashtable::test_deleted_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:474,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - bucknum
    argTypes:
    - size_type
    assertStmts:
    - condition: (settings.use_deleted() || num_deleted == 0)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: dense_hashtable::test_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 2
    functionsReached:
    - dense_hashtable::test_deleted_key
    - dense_hashtable::get_key
    - use_deleted
    - assert
    linkageType: ''
    returnType: bool
    signature: bool test_deleted(size_type bucknum) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:478,1
    - Dst: use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:478,1
    - Dst: dense_hashtable::test_deleted_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:479,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - iterator
    assertStmts:
    - condition: (settings.use_deleted() || num_deleted == 0)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: dense_hashtable::test_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 2
    functionsReached:
    - dense_hashtable::test_deleted_key
    - dense_hashtable::get_key
    - use_deleted
    - assert
    linkageType: ''
    returnType: bool
    signature: bool test_deleted(const iterator& it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:483,1
    - Dst: use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:483,1
    - Dst: dense_hashtable::test_deleted_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:484,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - const_iterator
    assertStmts:
    - condition: (settings.use_deleted() || num_deleted == 0)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: dense_hashtable::test_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 2
    functionsReached:
    - dense_hashtable::test_deleted_key
    - dense_hashtable::get_key
    - use_deleted
    - assert
    linkageType: ''
    returnType: bool
    signature: bool test_deleted(const const_iterator& it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:490,1
    - Dst: use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - caller
    argTypes:
    - char*
    assertStmts:
    - condition: (settings.use_deleted())
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: dense_hashtable::check_use_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - use_deleted
    - assert
    linkageType: ''
    returnType: void
    signature: void check_use_deleted(const char* caller)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::check_use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:496,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:497,1
    - Dst: dense_hashtable::test_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:497,1
    - Dst: dense_hashtable::set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - iterator
    assertStmts:
    - condition: (!test_deleted(it))
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: dense_hashtable::set_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::set_key
    - dense_hashtable::check_use_deleted
    - dense_hashtable::test_deleted
    - assert
    linkageType: ''
    returnType: void
    signature: void set_deleted(iterator& it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::check_use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:509,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:510,1
    - Dst: dense_hashtable::test_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:510,1
    - Dst: dense_hashtable::set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:511,1
    - Dst: const_cast<pointer>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - const_iterator
    assertStmts:
    - condition: (!test_deleted(it))
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: dense_hashtable::set_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - const_cast<pointer>
    - dense_hashtable::check_use_deleted
    - dense_hashtable::test_deleted
    - assert
    - dense_hashtable::set_key
    linkageType: ''
    returnType: void
    signature: void set_deleted(const_iterator& it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:524,1
    - Dst: use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:524,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:525,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bucknum
    argTypes:
    - size_type
    assertStmts:
    - condition: (settings.use_empty())
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: dense_hashtable::test_empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 2
    functionsReached:
    - use_empty
    - dense_hashtable::get_key
    - dense_hashtable::equals
    - assert
    linkageType: ''
    returnType: bool
    signature: bool test_empty(size_type bucknum) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:528,1
    - Dst: use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:528,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:529,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - iterator
    assertStmts:
    - condition: (settings.use_empty())
      pos:
        line_end: 527
        line_start: 527
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: dense_hashtable::test_empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 2
    functionsReached:
    - use_empty
    - dense_hashtable::get_key
    - dense_hashtable::equals
    - assert
    linkageType: ''
    returnType: bool
    signature: bool test_empty(const iterator& it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:532,1
    - Dst: use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:532,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:533,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - const_iterator
    assertStmts:
    - condition: (settings.use_empty())
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: dense_hashtable::test_empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 2
    functionsReached:
    - use_empty
    - dense_hashtable::get_key
    - dense_hashtable::equals
    - assert
    linkageType: ''
    returnType: bool
    signature: bool test_empty(const const_iterator& it) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:538,1
    - Dst: use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:538,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:539,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bucknum
    - ptable
    argTypes:
    - size_type
    - const_pointer
    assertStmts:
    - condition: (settings.use_empty())
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 540
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 540
    functionName: dense_hashtable::test_empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 2
    functionsReached:
    - use_empty
    - dense_hashtable::get_key
    - dense_hashtable::equals
    - assert
    linkageType: ''
    returnType: bool
    signature: bool test_empty(size_type bucknum, const_pointer ptable) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_type::value_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:544,1
    - Dst: dense_hashtable::set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - table_start
    - table_end
    argTypes:
    - pointer
    - pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: dense_hashtable::fill_range_with_empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::set_key
    - value_type::value_type
    linkageType: ''
    returnType: void
    signature: void fill_range_with_empty(pointer table_start, pointer table_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:554,1
    - Dst: use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:554,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:557,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:558,1
    - Dst: use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:558,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:558,1
    - Dst: set_use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:560,1
    - Dst: empty::~key_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:561,1
    - Dst: key_type::key_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:562,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:564,1
    - Dst: get_internal_allocator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:566,1
    - Dst: dense_hashtable::fill_range_with_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - const_reference
    assertStmts:
    - condition: (!settings.use_empty() && "Calling set_empty_key multiple times")
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: "((!settings.use_deleted() || !equals(key, key_info.delkey)) &&\n
        \          \"Setting the empty key the same as the deleted key\")"
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: (!table)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 568
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 568
    functionName: dense_hashtable::set_empty_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - key_type::key_type
    - empty::~key_type
    - use_deleted
    - get_internal_allocator
    - set_use_empty
    - assert
    - use_empty
    - dense_hashtable::get_key
    - dense_hashtable::equals
    - dense_hashtable::fill_range_with_empty
    linkageType: ''
    returnType: void
    signature: void set_empty_key(const_reference val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:571,1
    - Dst: use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:571,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:572,1
    - Dst: dense_hashtable::set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (settings.use_empty())
      pos:
        line_end: 570
        line_start: 570
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: dense_hashtable::empty_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - use_empty
    - dense_hashtable::set_key
    - value_type
    - assert
    linkageType: ''
    returnType: value_type
    signature: value_type empty_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 579
    functionName: dense_hashtable::size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::max_size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:581,1
    - Dst: dense_hashtable::get_allocator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 582
    functionName: dense_hashtable::max_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - dense_hashtable::get_allocator
    - dense_hashtable::max_size
    linkageType: ''
    returnType: size_type
    signature: size_type max_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 583
    functionName: dense_hashtable::empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::size
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 584
    functionName: dense_hashtable::bucket_count
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type bucket_count() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:594,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:595,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:595,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:595,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:596,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:596,1
    - Dst: shrink_threshold
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:605,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:607,1
    - Dst: shrink_factor
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:608,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:609,1
    - Dst: dense_hashtable::rebucket
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:614,1
    - Dst: set_consider_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (num_elements >= num_deleted)
      pos:
        line_end: 593
        line_start: 593
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: ((bucket_count() & (bucket_count() - 1)) == 0)
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: (bucket_count() >= HT_MIN_BUCKETS)
      pos:
        line_end: 595
        line_start: 595
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 619
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 619
    functionName: dense_hashtable::maybe_shrink
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::rebucket
    - dense_hashtable::bucket_count
    - shrink_factor
    - shrink_threshold
    - set_consider_shrink
    - assert
    linkageType: ''
    returnType: bool
    signature: bool maybe_shrink()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: consider_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:626,1
    - Dst: dense_hashtable::maybe_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:627,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:629,1
    - Dst: std::length_error
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:630,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:633,1
    - Dst: enlarge_threshold
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:633,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:633,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:635,1
    - Dst: enlarge_threshold
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:636,1
    - Dst: min_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:646,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:647,1
    - Dst: min_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:651,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:652,1
    - Dst: static_cast<size_type>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:666,1
    - Dst: shrink_size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:666,1
    - Dst: dense_hashtable::rebucket
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:672,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - delta
    argTypes:
    - size_type
    assertStmts:
    - condition: (settings.enlarge_threshold() < bucket_count())
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 674
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 674
    functionName: dense_hashtable::resize_delta
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    - dense_hashtable::rebucket
    - min_buckets
    - Stats::max
    - dense_hashtable::bucket_count
    - shrink_size
    - consider_shrink
    - enlarge_threshold
    - dense_hashtable::maybe_shrink
    - assert
    - std::length_error
    linkageType: ''
    returnType: bool
    signature: bool resize_delta(size_type delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_allocator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:678,1
    - Dst: get_internal_allocator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - old_size
    - new_size
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: dense_hashtable::resize_table
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - get_internal_allocator
    linkageType: ''
    returnType: void
    signature: void resize_table(size_type old_size, size_type new_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:688,1
    - Dst: dense_hashtable::hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:696,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:696,1
    - Dst: dense_hashtable::test_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:697,1
    - Dst: JUMP_
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:699,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:701,1
    - Dst: dense_hashtable::set_value
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - src_first
    - src_last
    - dest_table
    - dest_bucket_count
    argTypes:
    - Iter
    - Iter
    - pointer
    - size_type
    assertStmts:
    - condition: ((dest_bucket_count & (dest_bucket_count - 1)) == 0)
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: "(num_probes < dest_bucket_count &&\n               \"Hashtable is
        full: an error in key_equal<> or hash<>\")"
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 707
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 707
    functionName: dense_hashtable::copy_elements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::hash
    - dense_hashtable::test_empty
    - dense_hashtable::set_value
    - JUMP_
    - assert
    - dense_hashtable::get_key
    linkageType: ''
    returnType: void
    signature: "void copy_elements(Iter src_first, Iter src_last, pointer dest_table,\n
      \                    size_type dest_bucket_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:711,1
    - Dst: dense_hashtable::clear_to_size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:712,1
    - Dst: min_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:712,1
    - Dst: dense_hashtable::size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:712,1
    - Dst: dense_hashtable::copy_elements
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:713,1
    - Dst: dense_hashtable::begin
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:713,1
    - Dst: dense_hashtable::end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:713,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:713,1
    - Dst: inc_num_ht_copies
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' ht'
    - min_buckets_wanted
    argTypes:
    - dense_hashtable
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 716
    functionName: dense_hashtable::copy_from
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::begin
    - min_buckets
    - inc_num_ht_copies
    - dense_hashtable::clear_to_size
    - dense_hashtable::bucket_count
    - dense_hashtable::end
    - dense_hashtable::size
    - dense_hashtable::copy_elements
    linkageType: ''
    returnType: void
    signature: void copy_from(const dense_hashtable& ht, size_type min_buckets_wanted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:725,1
    - Dst: use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:725,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:726,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:728,1
    - Dst: shrink_factor
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:728,1
    - Dst: get_internal_allocator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:729,1
    - Dst: dense_hashtable::fill_range_with_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:731,1
    - Dst: dense_hashtable::copy_elements
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:732,1
    - Dst: std::make_move_iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:732,1
    - Dst: dense_hashtable::begin
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:732,1
    - Dst: std::make_move_iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:733,1
    - Dst: dense_hashtable::end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:733,1
    - Dst: dense_hashtable::destroy_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:735,1
    - Dst: get_internal_allocator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:736,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:740,1
    - Dst: reset_thresholds
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:743,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:743,1
    - Dst: inc_num_ht_copies
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - new_num_buckets
    argTypes:
    - size_type
    assertStmts:
    - condition: (num_elements >= num_deleted)
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: ((new_num_buckets & (new_num_buckets - 1)) == 0)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: (settings.use_empty())
      pos:
        line_end: 724
        line_start: 724
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: (settings.shrink_factor() > 0 || new_num_buckets >= num_buckets)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 745
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 745
    functionName: dense_hashtable::rebucket
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 3
    functionsReached:
    - dense_hashtable::destroy_buckets
    - dense_hashtable::begin
    - inc_num_ht_copies
    - dense_hashtable::bucket_count
    - shrink_factor
    - get_internal_allocator
    - reset_thresholds
    - dense_hashtable::end
    - assert
    - std::make_move_iterator
    - use_empty
    - dense_hashtable::copy_elements
    - dense_hashtable::fill_range_with_empty
    linkageType: ''
    returnType: void
    signature: void rebucket(size_type new_num_buckets)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: consider_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:753,1
    - Dst: dense_hashtable::maybe_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:753,1
    - Dst: dense_hashtable::resize_delta
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - req_elements
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 755
    functionName: dense_hashtable::resize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::maybe_shrink
    - dense_hashtable::resize_delta
    - consider_shrink
    linkageType: ''
    returnType: void
    signature: void resize(size_type req_elements)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shrink_factor
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:762,1
    - Dst: enlarge_factor
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - shrink
    - grow
    argTypes:
    - float*
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 764
    functionName: dense_hashtable::get_resizing_parameters
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - enlarge_factor
    - shrink_factor
    linkageType: ''
    returnType: void
    signature: void get_resizing_parameters(float* shrink, float* grow) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::set_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:766,1
    - Dst: reset_thresholds
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:767,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - shrink
    - grow
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 768
    functionName: dense_hashtable::set_resizing_parameters
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - dense_hashtable::set_resizing_parameters
    - reset_thresholds
    - dense_hashtable::bucket_count
    linkageType: ''
    returnType: void
    signature: void set_resizing_parameters(float shrink, float grow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashFcn
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:775,1
    - Dst: EqualKey
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:776,1
    - Dst: ExtractKey
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:777,1
    - Dst: SetKey
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:778,1
    - Dst: Alloc
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:779,1
    - Dst: value_alloc_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:781,1
    - Dst: min_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:786,1
    - Dst: reset_thresholds
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:790,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 791
    functionName: dense_hashtable::dense_hashtable
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - min_buckets
    - ExtractKey
    - dense_hashtable::bucket_count
    - HashFcn
    - SetKey
    - EqualKey
    - reset_thresholds
    - value_alloc_type
    - Alloc
    linkageType: ''
    returnType: void
    signature: "void dense_hashtable(size_type expected_max_items_in_table = 0,\n
      \                          const HashFcn& hf = HashFcn(),\n                           const
      EqualKey& eql = EqualKey(),\n                           const ExtractKey& ext
      = ExtractKey(),\n                           const SetKey& set = SetKey(),\n
      \                          const Alloc& alloc = Alloc())"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_info::as_extract_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:798,1
    - Dst: key_info::as_set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:798,1
    - Dst: key_info::as_equal_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:799,1
    - Dst: value_alloc_type
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:800,1
    - Dst: "std::allocator_traits<value_alloc_type>::\n                                      select_on_container_copy_construction"
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:800,1
    - Dst: key_info::as_value_alloc
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:802,1
    - Dst: settings::use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:809,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:811,1
    - Dst: dense_hashtable::empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:811,1
    - Dst: min_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:812,1
    - Dst: dense_hashtable::size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:812,1
    - Dst: reset_thresholds
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:813,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:813,1
    - Dst: reset_thresholds
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:816,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:816,1
    - Dst: dense_hashtable::copy_from
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' ht'
    argTypes:
    - dense_hashtable
    assertStmts:
    - condition: (ht.empty())
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 818
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 818
    functionName: dense_hashtable::dense_hashtable
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - min_buckets
    - key_info::as_equal_key
    - dense_hashtable::bucket_count
    - key_info::as_extract_key
    - dense_hashtable::empty
    - key_info::as_value_alloc
    - dense_hashtable::copy_from
    - settings::use_empty
    - reset_thresholds
    - key_info::as_set_key
    - assert
    - dense_hashtable::size
    - value_alloc_type
    - "std::allocator_traits<value_alloc_type>::\n                                      select_on_container_copy_construction"
    linkageType: ''
    returnType: void
    signature: "void dense_hashtable(const dense_hashtable& ht,\n                  size_type
      min_buckets_wanted = HT_DEFAULT_STARTING_BUCKETS)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: as_extract_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:823,1
    - Dst: key_info::as_extract_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:823,1
    - Dst: as_set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:824,1
    - Dst: key_info::as_set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:824,1
    - Dst: as_equal_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:825,1
    - Dst: key_info::as_equal_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:825,1
    - Dst: as_value_alloc
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:830,1
    - Dst: key_info::as_value_alloc
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:830,1
    - Dst: destroy_table
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:831,1
    - Dst: static_cast<value_alloc_type&>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:833,1
    - Dst: static_cast<const value_alloc_type&>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:834,1
    - Dst: settings::use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:839,1
    - Dst: copy_from
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:841,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:843,1
    - Dst: empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:843,1
    - Dst: destroy_table
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' ht'
    argTypes:
    - dense_hashtable
    assertStmts:
    - condition: (ht.empty())
      pos:
        line_end: 842
        line_start: 842
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 849
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 849
    functionName: '& operator=(const dense_hashtable& ht)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - as_equal_key
    - key_info::as_equal_key
    - as_set_key
    - key_info::as_extract_key
    - key_info::as_value_alloc
    - copy_from
    - static_cast<const value_alloc_type&>
    - settings::use_empty
    - as_extract_key
    - empty
    - key_info::as_set_key
    - static_cast<value_alloc_type&>
    - destroy_table
    - assert
    - as_value_alloc
    linkageType: ''
    returnType: dense_hashtable
    signature: dense_hashtable & operator=(const dense_hashtable& ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:852,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:853,1
    - Dst: settings::set_use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:862,1
    - Dst: settings::set_use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ht'
    argTypes:
    - dense_hashtable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 864
    functionName: dense_hashtable::dense_hashtable
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - std::move
    - settings::set_use_deleted
    - settings::set_use_empty
    linkageType: ''
    returnType: void
    signature: void dense_hashtable(dense_hashtable&& ht) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: as_value_alloc
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:872,1
    - Dst: key_info::as_value_alloc
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:872,1
    - Dst: destroy_table
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:875,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:880,1
    - Dst: as_extract_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:884,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:884,1
    - Dst: key_info::as_extract_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:884,1
    - Dst: as_set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:885,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:885,1
    - Dst: key_info::as_set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:885,1
    - Dst: as_equal_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:886,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:886,1
    - Dst: key_info::as_equal_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:886,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:887,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:888,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:891,1
    - Dst: settings::set_use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:898,1
    - Dst: settings::set_use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:899,1
    - Dst: get_internal_allocator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:909,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:911,1
    - Dst: Value::Value
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:911,1
    - Dst: destroy_table
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:913,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - ' ht'
    argTypes:
    - dense_hashtable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 917
    functionName: '& operator=(dense_hashtable&& ht) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - as_equal_key
    - key_info::as_equal_key
    - std::move
    - as_set_key
    - key_info::as_extract_key
    - key_info::as_value_alloc
    - settings::set_use_empty
    - get_internal_allocator
    - as_extract_key
    - key_info::as_set_key
    - destroy_table
    - settings::set_use_deleted
    - Value::Value
    - as_value_alloc
    linkageType: ''
    returnType: dense_hashtable
    signature: dense_hashtable & operator=(dense_hashtable&& ht) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_table
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 919
    functionName: ~dense_hashtable()
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - destroy_table
    linkageType: ''
    returnType: void
    signature: void ~dense_hashtable()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:925,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:927,1
    - Dst: as_extract_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:927,1
    - Dst: key_info::as_extract_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:927,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:928,1
    - Dst: as_set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:928,1
    - Dst: key_info::as_set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:928,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:929,1
    - Dst: as_equal_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:929,1
    - Dst: key_info::as_equal_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:929,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:932,1
    - Dst: static_cast<value_alloc_type&>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:932,1
    - Dst: static_cast<value_alloc_type&>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:933,1
    - Dst: ABSL_CHECK
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:937,1
    - Dst: as_value_alloc
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:937,1
    - Dst: key_info::as_value_alloc
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:937,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:939,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:940,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:941,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:942,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:943,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ' ht'
    argTypes:
    - dense_hashtable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 945
    functionName: dense_hashtable::swap
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - as_equal_key
    - key_info::as_equal_key
    - as_set_key
    - key_info::as_extract_key
    - dense_hashtable::swap
    - ABSL_CHECK
    - key_info::as_value_alloc
    - as_extract_key
    - key_info::as_set_key
    - static_cast<value_alloc_type&>
    - as_value_alloc
    linkageType: ''
    returnType: void
    signature: void swap(dense_hashtable& ht) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::destroy_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:950,1
    - Dst: get_internal_allocator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 954
    functionName: dense_hashtable::destroy_table
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::destroy_buckets
    - get_internal_allocator
    linkageType: ''
    returnType: void
    signature: void destroy_table()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_allocator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:958,1
    - Dst: dense_hashtable::destroy_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:960,1
    - Dst: dense_hashtable::resize_table
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:962,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:965,1
    - Dst: dense_hashtable::fill_range_with_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:966,1
    - Dst: reset_thresholds
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:970,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - new_num_buckets
    argTypes:
    - size_type
    assertStmts:
    - condition: (table)
      pos:
        line_end: 964
        line_start: 964
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 971
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 971
    functionName: dense_hashtable::clear_to_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - dense_hashtable::destroy_buckets
    - dense_hashtable::bucket_count
    - get_internal_allocator
    - reset_thresholds
    - assert
    - dense_hashtable::resize_table
    - dense_hashtable::fill_range_with_empty
    linkageType: ''
    returnType: void
    signature: void clear_to_size(size_type new_num_buckets)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:978,1
    - Dst: dense_hashtable::clear_to_size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 975
    functionDepth: 3
    functionLinenumber: 975
    functionLinenumberEnd: 983
    functionName: dense_hashtable::clear
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::clear_to_size
    - min_buckets
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:990,1
    - Dst: dense_hashtable::destroy_buckets
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:991,1
    - Dst: dense_hashtable::fill_range_with_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:992,1
    - Dst: reset_thresholds
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:995,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (table)
      pos:
        line_end: 989
        line_start: 989
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 998
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 998
    functionName: dense_hashtable::clear_no_resize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::destroy_buckets
    - dense_hashtable::bucket_count
    - reset_thresholds
    - assert
    - dense_hashtable::fill_range_with_empty
    linkageType: ''
    returnType: void
    signature: void clear_no_resize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1004,1
    - Dst: use_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1004,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1005,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1005,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1007,1
    - Dst: use_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1007,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1007,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - K
    assertStmts:
    - condition: (settings.use_empty() && "set_empty_key() was not called")
      pos:
        line_end: 1003
        line_start: 1003
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: "((!settings.use_deleted() || !equals(key, key_info.delkey)) &&\n
        \          \"Using the deleted key as a regular key\")"
      pos:
        line_end: 1007
        line_start: 1006
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - condition: "(!equals(key, key_info.empty) &&\n           \"Using the empty key
        as a regular key\")"
      pos:
        line_end: 1005
        line_start: 1004
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 1009
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1009
    functionName: dense_hashtable::assert_key_is_not_empty_or_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - use_empty
    - use_deleted
    - dense_hashtable::equals
    - assert
    linkageType: ''
    returnType: void
    signature: void assert_key_is_not_empty_or_deleted(const K& key) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::assert_key_is_not_empty_or_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1019,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1021,1
    - Dst: dense_hashtable::test_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1025,1
    - Dst: std::pair<size_type, size_type>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1027,1
    - Dst: std::pair<size_type, size_type>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1029,1
    - Dst: dense_hashtable::test_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1031,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1035,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1035,1
    - Dst: std::pair<size_type, size_type>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1036,1
    - Dst: JUMP_
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1039,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1040,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1040,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - key_hash
    - ' key'
    argTypes:
    - size_type
    - K
    assertStmts:
    - condition: "(num_probes < bucket_count() &&\n             \"Hashtable is full:
        an error in key_equal<> or hash<>\")"
      pos:
        line_end: 1040
        line_start: 1039
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 1043
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1043
    functionName: dense_hashtable::find_position_using_hash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::assert_key_is_not_empty_or_deleted
    - dense_hashtable::test_empty
    - dense_hashtable::test_deleted
    - dense_hashtable::bucket_count
    - JUMP_
    - std::pair<size_type, size_type>
    - assert
    - dense_hashtable::get_key
    - dense_hashtable::equals
    linkageType: ''
    returnType: std::pair<size_type, size_type>
    signature: "std::pair<size_type, size_type> find_position_using_hash(\n      const
      size_type key_hash, const K& key) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find_if_present_using_hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1047,1
    - Dst: dense_hashtable::hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1048
    functionName: dense_hashtable::find_if_present
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::hash
    - dense_hashtable::find_if_present_using_hash
    linkageType: ''
    returnType: std::pair<size_type, bool>
    signature: std::pair<size_type, bool> find_if_present(const K& key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::assert_key_is_not_empty_or_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1057,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1059,1
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1062,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1062,1
    - Dst: std::pair<size_type, bool>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1063,1
    - Dst: dense_hashtable::test_empty
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1064,1
    - Dst: std::pair<size_type, bool>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1065,1
    - Dst: JUMP_
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1068,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1069,1
    - Dst: dense_hashtable::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1069,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - key_hash
    - ' key'
    argTypes:
    - size_type
    - K
    assertStmts:
    - condition: "(num_probes < bucket_count() &&\n             \"Hashtable is full:
        an error in key_equal<> or hash<>\")"
      pos:
        line_end: 1069
        line_start: 1068
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 1072
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1072
    functionName: dense_hashtable::find_if_present_using_hash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - dense_hashtable::assert_key_is_not_empty_or_deleted
    - dense_hashtable::test_empty
    - std::pair<size_type, bool>
    - dense_hashtable::bucket_count
    - JUMP_
    - assert
    - dense_hashtable::get_key
    - dense_hashtable::equals
    linkageType: ''
    returnType: std::pair<size_type, bool>
    signature: "std::pair<size_type, bool> find_if_present_using_hash(\n      const
      size_type key_hash, const K& key) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find_if_present
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1077,1
    - Dst: iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1079,1
    - Dst: dense_hashtable::end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1076
    functionDepth: 2
    functionLinenumber: 1076
    functionLinenumberEnd: 1081
    functionName: dense_hashtable::find_impl
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::end
    - iterator
    - dense_hashtable::find_if_present
    linkageType: ''
    returnType: iterator
    signature: iterator find_impl(const K& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find_if_present
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1085,1
    - Dst: const_iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1086,1
    - Dst: dense_hashtable::end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1089
    functionName: dense_hashtable::find_impl
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::end
    - dense_hashtable::find_if_present
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator find_impl(const K& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find_if_present
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1092
    functionDepth: 2
    functionLinenumber: 1092
    functionLinenumberEnd: 1094
    functionName: dense_hashtable::count_impl
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::find_if_present
    linkageType: ''
    returnType: size_type
    signature: size_type count_impl(const K& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1098,1
    - Dst: dense_hashtable::end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1099,1
    - Dst: std::pair<iterator, iterator>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1100,1
    - Dst: std::pair<iterator, iterator>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1105
    functionName: dense_hashtable::equal_range_impl
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - std::pair<iterator, iterator>
    - dense_hashtable::find
    - dense_hashtable::end
    linkageType: ''
    returnType: std::pair<iterator, iterator>
    signature: std::pair<iterator, iterator> equal_range_impl(const K& key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1110,1
    - Dst: dense_hashtable::end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1111,1
    - Dst: std::pair<const_iterator, const_iterator>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1112,1
    - Dst: std::pair<const_iterator, const_iterator>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1117
    functionName: dense_hashtable::equal_range_impl
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::find
    - dense_hashtable::end
    - std::pair<const_iterator, const_iterator>
    linkageType: ''
    returnType: std::pair<const_iterator, const_iterator>
    signature: "std::pair<const_iterator, const_iterator> equal_range_impl(\n      const
      K& key) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find_impl
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1120
    functionName: dense_hashtable::find
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 2
    functionsReached:
    - dense_hashtable::find_impl
    linkageType: ''
    returnType: iterator
    signature: iterator find(const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find_impl
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1122
    functionDepth: 3
    functionLinenumber: 1122
    functionLinenumberEnd: 1122
    functionName: dense_hashtable::find
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 2
    functionsReached:
    - dense_hashtable::find_impl
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator find(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::count_impl
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1125
    functionDepth: 3
    functionLinenumber: 1125
    functionLinenumberEnd: 1125
    functionName: dense_hashtable::count
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::count_impl
    linkageType: ''
    returnType: size_type
    signature: size_type count(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::equal_range_impl
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1130
    functionName: dense_hashtable::equal_range
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::equal_range_impl
    linkageType: ''
    returnType: std::pair<iterator, iterator>
    signature: std::pair<iterator, iterator> equal_range(const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::equal_range_impl
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1135
    functionName: dense_hashtable::equal_range
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::equal_range_impl
    linkageType: ''
    returnType: std::pair<const_iterator, const_iterator>
    signature: "std::pair<const_iterator, const_iterator> equal_range(\n      const
      key_type& key) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1144,1
    - Dst: dense_hashtable::max_size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1144,1
    - Dst: std::length_error
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1145,1
    - Dst: dense_hashtable::test_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1147,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1148,1
    - Dst: dense_hashtable::set_value
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1153,1
    - Dst: std::forward<U>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1153,1
    - Dst: iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' obj'
    - pos
    argTypes:
    - U
    - size_type
    assertStmts:
    - condition: (num_deleted > 0)
      pos:
        line_end: 1147
        line_start: 1147
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 1155
      start: 1143
    functionDepth: 3
    functionLinenumber: 1143
    functionLinenumberEnd: 1155
    functionName: dense_hashtable::insert_at
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::set_value
    - dense_hashtable::test_deleted
    - std::forward<U>
    - iterator
    - dense_hashtable::max_size
    - assert
    - std::length_error
    - dense_hashtable::size
    linkageType: ''
    returnType: iterator
    signature: iterator insert_at(U&& obj, size_type pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::insert_noresize_using_hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1161,1
    - Dst: dense_hashtable::hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1161,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1161,1
    - Dst: std::forward<U>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1162
    functionName: dense_hashtable::insert_noresize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::hash
    - std::forward<U>
    - dense_hashtable::get_key
    - dense_hashtable::insert_noresize_using_hash
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> insert_noresize(U&& obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find_position_using_hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1170,1
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1170,1
    - Dst: std::pair<iterator, bool>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1172,1
    - Dst: iterator
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1173,1
    - Dst: dense_hashtable::insert_at
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1176,1
    - Dst: std::forward<U>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1176,1
    - Dst: std::pair<iterator, bool>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key_hash
    - ' obj'
    argTypes:
    - size_type
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1179
    functionName: dense_hashtable::insert_noresize_using_hash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - dense_hashtable::find_position_using_hash
    - std::forward<U>
    - iterator
    - dense_hashtable::insert_at
    - std::pair<iterator, bool>
    - dense_hashtable::get_key
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: "std::pair<iterator, bool> insert_noresize_using_hash(const size_type
      key_hash,\n                                                       U&& obj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1185,1
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1186,1
    - Dst: std::length_error
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1187,1
    - Dst: dense_hashtable::resize_delta
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1189,1
    - Dst: static_cast<size_type>
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1189,1
    - Dst: dense_hashtable::insert_noresize
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - ForwardIterator
    - ForwardIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1193
    functionName: dense_hashtable::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    - Stats::max
    - dense_hashtable::resize_delta
    - std::distance
    - std::length_error
    - dense_hashtable::insert_noresize
    linkageType: ''
    returnType: void
    signature: void insert(ForwardIterator f, ForwardIterator l, std::forward_iterator_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::insert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - InputIterator
    - InputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1199
    functionName: dense_hashtable::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - dense_hashtable::insert
    linkageType: ''
    returnType: void
    signature: void insert(InputIterator f, InputIterator l, std::input_iterator_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::resize_delta
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1204,1
    - Dst: dense_hashtable::insert_noresize
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1203
    functionDepth: 3
    functionLinenumber: 1203
    functionLinenumberEnd: 1206
    functionName: dense_hashtable::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - dense_hashtable::insert_noresize
    - dense_hashtable::resize_delta
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> insert(const value_type& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::resize_delta
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1209,1
    - Dst: dense_hashtable::insert_noresize
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1210,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1208
    functionDepth: 3
    functionLinenumber: 1208
    functionLinenumberEnd: 1211
    functionName: dense_hashtable::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - std::move
    - dense_hashtable::insert_noresize
    - dense_hashtable::resize_delta
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> insert(value_type&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - InputIterator
    - InputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1219
    functionName: dense_hashtable::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void insert(InputIterator f, InputIterator l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find_or_insert_using_hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1223,1
    - Dst: dense_hashtable::hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1224
    functionName: dense_hashtable::find_or_insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::hash
    - dense_hashtable::find_or_insert_using_hash
    linkageType: ''
    returnType: value_type
    signature: value_type & find_or_insert(const key_type& key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find_position_using_hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1232,1
    - Dst: dense_hashtable::resize_delta
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1236,1
    - Dst: dense_hashtable::insert_noresize
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1238,1
    - Dst: default_value
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1238,1
    - Dst: dense_hashtable::insert_at
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1240,1
    - Dst: default_value
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - key_hash
    - ' key'
    argTypes:
    - size_type
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1229
    functionDepth: 4
    functionLinenumber: 1229
    functionLinenumberEnd: 1242
    functionName: dense_hashtable::find_or_insert_using_hash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 1
    functionsReached:
    - dense_hashtable::find_position_using_hash
    - default_value
    - dense_hashtable::resize_delta
    - dense_hashtable::insert_at
    - dense_hashtable::insert_noresize
    linkageType: ''
    returnType: value_type
    signature: "value_type & find_or_insert_using_hash(const size_type key_hash,\n
      \                                       const key_type& key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::find
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1248,1
    - Dst: dense_hashtable::end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1249,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1250,1
    - Dst: dense_hashtable::test_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1250,1
    - Dst: dense_hashtable::set_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1251,1
    - Dst: set_consider_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - K
    assertStmts:
    - condition: (!test_deleted(pos))
      pos:
        line_end: 1249
        line_start: 1249
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    constantsTouched: []
    func_position:
      end: 1259
      start: 1247
    functionDepth: 4
    functionLinenumber: 1247
    functionLinenumberEnd: 1259
    functionName: dense_hashtable::erase_impl
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::test_deleted
    - dense_hashtable::find
    - set_consider_shrink
    - dense_hashtable::end
    - assert
    - dense_hashtable::set_deleted
    linkageType: ''
    returnType: size_type
    signature: size_type erase_impl(const K& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::erase_impl
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1262
    functionDepth: 5
    functionLinenumber: 1262
    functionLinenumberEnd: 1262
    functionName: dense_hashtable::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::erase_impl
    linkageType: ''
    returnType: size_type
    signature: size_type erase(const key_type& key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1266,1
    - Dst: dense_hashtable::set_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1267,1
    - Dst: set_consider_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pos
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1265
    functionDepth: 4
    functionLinenumber: 1265
    functionLinenumberEnd: 1271
    functionName: dense_hashtable::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - set_consider_shrink
    - dense_hashtable::end
    - dense_hashtable::set_deleted
    linkageType: ''
    returnType: void
    signature: void erase(iterator pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::set_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1275,1
    - Dst: set_consider_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - iterator
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1273
    functionDepth: 4
    functionLinenumber: 1273
    functionLinenumberEnd: 1280
    functionName: dense_hashtable::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - set_consider_shrink
    - dense_hashtable::set_deleted
    linkageType: ''
    returnType: void
    signature: void erase(iterator f, iterator l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1288,1
    - Dst: dense_hashtable::set_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1289,1
    - Dst: set_consider_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pos
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1287
    functionDepth: 4
    functionLinenumber: 1287
    functionLinenumberEnd: 1293
    functionName: dense_hashtable::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - set_consider_shrink
    - dense_hashtable::end
    - dense_hashtable::set_deleted
    linkageType: ''
    returnType: void
    signature: void erase(const_iterator pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::set_deleted
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1296,1
    - Dst: set_consider_shrink
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1294
    functionDepth: 4
    functionLinenumber: 1294
    functionLinenumberEnd: 1301
    functionName: dense_hashtable::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - set_consider_shrink
    - dense_hashtable::set_deleted
    linkageType: ''
    returnType: void
    signature: void erase(const_iterator f, const_iterator l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1305,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1305,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1312,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1312,1
    - Dst: find
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1313,1
    - Dst: get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1313,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ' ht'
    argTypes:
    - dense_hashtable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1320
    functionName: operator==(const dense_hashtable& ht) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached:
    - end
    - size
    - find
    - begin
    - get_key
    linkageType: ''
    returnType: bool
    signature: bool operator==(const dense_hashtable& ht) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ht'
    argTypes:
    - dense_hashtable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1321
    functionName: operator!=(const dense_hashtable& ht) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const dense_hashtable& ht) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' hf'
    argTypes:
    - hasher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1340
    functionName: dense_hashtable::Settings
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Settings(const hasher& hf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ek'
    - ' sk'
    - ' eq'
    - ' a'
    argTypes:
    - ExtractKey
    - SetKey
    - EqualKey
    - value_alloc_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1356
    functionName: dense_hashtable::KeyInfo
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void KeyInfo(const ExtractKey& ek, const SetKey& sk, const EqualKey&
      eq,\n            const value_alloc_type& a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1359
    functionName: '& as_extract_key()'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExtractKey
    signature: ExtractKey & as_extract_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1360
    functionName: '& as_extract_key() const'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExtractKey
    signature: ExtractKey & as_extract_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1361
    functionName: '& as_set_key()'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SetKey
    signature: SetKey & as_set_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1362
    functionName: '& as_set_key() const'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SetKey
    signature: SetKey & as_set_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1363
    functionName: '& as_equal_key()'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EqualKey
    signature: EqualKey & as_equal_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1364
    functionName: '& as_equal_key() const'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EqualKey
    signature: EqualKey & as_equal_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1365
    functionName: '& as_value_alloc()'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_alloc_type
    signature: value_alloc_type & as_value_alloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1366
    functionName: '& as_value_alloc() const'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_alloc_type
    signature: value_alloc_type & as_value_alloc() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExtractKey::operator()
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1371
    functionName: dense_hashtable::get_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 13
    functionsReached:
    - ExtractKey::operator()
    linkageType: ''
    returnType: typename ExtractKey::result_type
    signature: typename ExtractKey::result_type get_key(const_reference v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetKey::operator()
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - ' k'
    argTypes:
    - pointer
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1374
    functionName: dense_hashtable::set_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 4
    functionsReached:
    - SetKey::operator()
    linkageType: ''
    returnType: void
    signature: void set_key(pointer v, const key_type& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EqualKey::operator()
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - key_type
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1382
    functionName: dense_hashtable::equals
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 10
    functionsReached:
    - EqualKey::operator()
    linkageType: ''
    returnType: bool
    signature: bool equals(const key_type& a, const K& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1393
    functionName: '& get_internal_allocator()'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_alloc_type
    signature: value_alloc_type & get_internal_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::hash
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1396
    functionName: dense_hashtable::hash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 5
    functionsReached:
    - dense_hashtable::hash
    linkageType: ''
    returnType: size_type
    signature: size_type hash(const key_type& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::equals
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - key_type
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1399
    functionName: dense_hashtable::equals
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 11
    functionsReached:
    - dense_hashtable::equals
    linkageType: ''
    returnType: bool
    signature: bool equals(const key_type& a, const key_type& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::get_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1404
    functionName: dense_hashtable::get_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 14
    functionsReached:
    - dense_hashtable::get_key
    linkageType: ''
    returnType: typename ExtractKey::result_type
    signature: typename ExtractKey::result_type get_key(const_reference v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::set_key
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - ' k'
    argTypes:
    - pointer
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1405
    functionName: dense_hashtable::set_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 5
    functionsReached:
    - dense_hashtable::set_key
    linkageType: ''
    returnType: void
    signature: void set_key(pointer v, const key_type& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/gtl/densehashtable.h:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - dense_hashtable<V, K, HF, ExK, SetK, EqK, A>
    - dense_hashtable<V, K, HF, ExK, SetK, EqK, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1423
    functionName: swap
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    functionUses: 58
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: "void swap(dense_hashtable<V, K, HF, ExK, SetK, EqK, A>& x,\n                 dense_hashtable<V,
      K, HF, ExK, SetK, EqK, A>& y) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_hashtable_settings::set_enlarge_factor
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:89,1
    - Dst: sh_hashtable_settings::set_shrink_factor
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' hf'
    - ht_occupancy_flt
    - ht_empty_flt
    argTypes:
    - hasher
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: sh_hashtable_settings::sh_hashtable_settings
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached:
    - sh_hashtable_settings::set_shrink_factor
    - sh_hashtable_settings::set_enlarge_factor
    linkageType: ''
    returnType: void
    signature: "void sh_hashtable_settings(const hasher& hf, const float ht_occupancy_flt,\n
      \                       const float ht_empty_flt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_hashtable_settings::hash_munger::MungedHash
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:98,1
    - Dst: hasher::operator()
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: sh_hashtable_settings::hash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached:
    - sh_hashtable_settings::hash_munger::MungedHash
    - hasher::operator()
    linkageType: ''
    returnType: size_type
    signature: size_type hash(const K& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: sh_hashtable_settings::enlarge_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float enlarge_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: sh_hashtable_settings::set_enlarge_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_enlarge_factor(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: sh_hashtable_settings::shrink_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float shrink_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: sh_hashtable_settings::set_shrink_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_shrink_factor(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: sh_hashtable_settings::enlarge_threshold
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type enlarge_threshold() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: sh_hashtable_settings::set_enlarge_threshold
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_enlarge_threshold(size_type t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: sh_hashtable_settings::shrink_threshold
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type shrink_threshold() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: sh_hashtable_settings::set_shrink_threshold
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_shrink_threshold(size_type t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min<size_type>
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: sh_hashtable_settings::enlarge_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached:
    - std::min<size_type>
    linkageType: ''
    returnType: size_type
    signature: size_type enlarge_size(size_type x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_type>
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: sh_hashtable_settings::shrink_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    linkageType: ''
    returnType: size_type
    signature: size_type shrink_size(size_type x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: sh_hashtable_settings::consider_shrink
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool consider_shrink() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: sh_hashtable_settings::set_consider_shrink
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_consider_shrink(bool t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: sh_hashtable_settings::use_empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool use_empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: sh_hashtable_settings::set_use_empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_use_empty(bool t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: sh_hashtable_settings::use_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool use_deleted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: sh_hashtable_settings::set_use_deleted
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_use_deleted(bool t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_type>
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: sh_hashtable_settings::num_ht_copies
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    linkageType: ''
    returnType: size_type
    signature: size_type num_ht_copies() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: sh_hashtable_settings::inc_num_ht_copies
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void inc_num_ht_copies()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_hashtable_settings::set_enlarge_threshold
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:134,1
    - Dst: sh_hashtable_settings::enlarge_size
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:134,1
    - Dst: sh_hashtable_settings::set_shrink_threshold
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:135,1
    - Dst: sh_hashtable_settings::shrink_size
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:135,1
    - Dst: sh_hashtable_settings::set_consider_shrink
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num_buckets
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: sh_hashtable_settings::reset_thresholds
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached:
    - sh_hashtable_settings::set_shrink_threshold
    - sh_hashtable_settings::enlarge_size
    - sh_hashtable_settings::set_enlarge_threshold
    - sh_hashtable_settings::shrink_size
    - sh_hashtable_settings::set_consider_shrink
    linkageType: ''
    returnType: void
    signature: void reset_thresholds(size_type num_buckets)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:143,1
    - Dst: assert
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:144,1
    - Dst: sh_hashtable_settings::set_shrink_factor
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:147,1
    - Dst: sh_hashtable_settings::set_enlarge_factor
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - shrink
    - grow
    argTypes:
    - float
    - float
    assertStmts:
    - condition: (shrink >= 0.0)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    - condition: (grow <= 1.0)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: sh_hashtable_settings::set_resizing_parameters
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached:
    - sh_hashtable_settings::set_shrink_factor
    - sh_hashtable_settings::set_enlarge_factor
    - assert
    linkageType: ''
    returnType: void
    signature: void set_resizing_parameters(float shrink, float grow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sh_hashtable_settings::enlarge_factor
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:155,1
    - Dst: static_cast<size_type>
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:158,1
    - Dst: static_cast<size_type>
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:161,1
    - Dst: std::length_error
      Src: /src/s2geometry/src/s2/util/gtl/hashtable_common.h:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - num_elts
    - min_buckets_wanted
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: sh_hashtable_settings::min_buckets
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    - sh_hashtable_settings::enlarge_factor
    - std::length_error
    linkageType: ''
    returnType: size_type
    signature: size_type min_buckets(size_type num_elts, size_type min_buckets_wanted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: sh_hashtable_settings::hash_munger::MungedHash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t MungedHash(size_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: sh_hashtable_settings::hash_munger<HashKey*>::MungedHash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t MungedHash(size_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::IsInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:101,1
    - Dst: gtl::compact_array_base::InlinedSpace
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: gtl::compact_array_base::Array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::IsInlined
    - gtl::compact_array_base::InlinedSpace
    linkageType: ''
    returnType: T
    signature: T * Array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: gtl::compact_array_base::SetArray
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetArray(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:109,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: gtl::compact_array_base::SetInlined
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - gtl::compact_array_base::capacity
    linkageType: ''
    returnType: void
    signature: void SetInlined()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: gtl::compact_array_base::InlinedSpace
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T * InlinedSpace()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: gtl::compact_array_base::Array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: gtl::compact_array_base::SetArray
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetArray(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: gtl::compact_array_base::InlinedSpace
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * InlinedSpace()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: gtl::compact_array_base::IsInlined
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInlined() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<compact_array_base<T, A>*>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: gtl::compact_array_base::ConstArray
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - const_cast<compact_array_base<T, A>*>
    linkageType: ''
    returnType: T
    signature: T * ConstArray() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: gtl::compact_array_base::Init
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Init() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:169,1
    - Dst: gtl::compact_array_base::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:170,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: gtl::compact_array_base::Construct
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::value_init
    - gtl::compact_array_base::Init
    - value_type
    linkageType: ''
    returnType: void
    signature: void Construct(size_type n, const value_type& v = value_type())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:177,1
    - Dst: gtl::compact_array_base::initialize
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:179,1
    - Dst: Int
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: gtl::compact_array_base::Copy
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::initialize
    - gtl::compact_array_base::Init
    - Int
    linkageType: ''
    returnType: void
    signature: void Copy(Iterator first, Iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:183,1
    - Dst: gtl::compact_array_base::initialize
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:184,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:184,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:184,1
    - Dst: std::false_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: gtl::compact_array_base::CopyFrom
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::end
    - gtl::compact_array_base::Init
    - std::false_type
    - gtl::compact_array_base::initialize
    - gtl::compact_array_base::begin
    linkageType: ''
    returnType: void
    signature: void CopyFrom(const compact_array_base& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:191,1
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:191,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:192,1
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:192,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: gtl::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: gtl::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: gtl::erase
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:196,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:196,1
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:196,1
    - Dst: gtl::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:196,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:197,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:197,1
    - Dst: gtl::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:197,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: '& AssignFrom(const compact_array_base& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - reserve
    - gtl::begin
    - gtl::end
    - std::copy
    - gtl::insert
    - gtl::size
    - gtl::erase
    linkageType: ''
    returnType: compact_array_base
    signature: compact_array_base & AssignFrom(const compact_array_base& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::MayBeInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:204,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:204,1
    - Dst: gtl::compact_array_base::InlinedSpace
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:204,1
    - Dst: value_allocator_type::deallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:206,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:206,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:206,1
    - Dst: gtl::compact_array_base::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: gtl::compact_array_base::Destruct
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::Init
    - value_allocator_type::deallocate
    - gtl::compact_array_base::capacity
    - gtl::compact_array_base::MayBeInlined
    - gtl::compact_array_base::InlinedSpace
    linkageType: ''
    returnType: void
    signature: void Destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: gtl::compact_array_base::swap
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(compact_array_base& v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: gtl::compact_array_base::size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: gtl::compact_array_base::empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::size
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: gtl::compact_array_base::max_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type max_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: gtl::compact_array_base::MayBeInlined
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool MayBeInlined()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: gtl::compact_array_base::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: iterator
    signature: iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:231,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: gtl::compact_array_base::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::size
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: iterator
    signature: iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: gtl::compact_array_base::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::ConstArray
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:233,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: gtl::compact_array_base::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::ConstArray
    - gtl::compact_array_base::size
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:235,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: gtl::compact_array_base::rbegin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - reverse_iterator
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rbegin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:236,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: gtl::compact_array_base::rend
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - reverse_iterator
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rend()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:238,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: gtl::compact_array_base::rbegin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::end
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rbegin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:241,1
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: gtl::compact_array_base::rend
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::ConstArray
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rend() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:247,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:247,1
    - Dst: absl::ThrowStdLengthError
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:248,1
    - Dst: gtl::compact_array_base::make_hole
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - ' v'
    argTypes:
    - const_iterator
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: gtl::compact_array_base::Insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdLengthError
    - gtl::compact_array_base::make_hole
    - gtl::compact_array_base::size
    linkageType: ''
    returnType: iterator
    signature: iterator Insert(const_iterator p, const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - ' v'
    argTypes:
    - const_iterator
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::Insert
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator p, const value_type& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:261,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:261,1
    - Dst: absl::ThrowStdLengthError
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:262,1
    - Dst: gtl::compact_array_base::value_insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - n
    - ' v'
    argTypes:
    - const_iterator
    - size_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdLengthError
    - gtl::compact_array_base::value_insert
    - gtl::compact_array_base::size
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator p, size_type n, const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:271,1
    - Dst: Int
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - first
    - last
    argTypes:
    - const_iterator
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - Int
    - gtl::compact_array_base::insert
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator p, Iterator first, Iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:276,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:276,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:276,1
    - Dst: std::forward<Args>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: gtl::compact_array_base::emplace_back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - value_type
    - gtl::compact_array_base::Insert
    - gtl::compact_array_base::end
    - std::forward<Args>
    linkageType: ''
    returnType: reference
    signature: reference emplace_back(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:280,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:280,1
    - Dst: std::forward<Args>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: gtl::compact_array_base::emplace
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::Insert
    - value_type
    - std::forward<Args>
    linkageType: ''
    returnType: iterator
    signature: iterator emplace(const_iterator p, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:284,1
    - Dst: gtl::compact_array_base::erase_aux
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:285,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: gtl::compact_array_base::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::begin
    - gtl::compact_array_base::erase_aux
    linkageType: ''
    returnType: iterator
    signature: iterator erase(const_iterator p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:290,1
    - Dst: gtl::compact_array_base::erase_aux
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:291,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: gtl::compact_array_base::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::begin
    - gtl::compact_array_base::erase_aux
    linkageType: ''
    returnType: iterator
    signature: iterator erase(const_iterator first, const_iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: gtl::compact_array_base::clear
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::set_size
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: gtl::compact_array_base::front
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::begin
    linkageType: ''
    returnType: reference
    signature: reference front()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: gtl::compact_array_base::front
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::begin
    linkageType: ''
    returnType: const_reference
    signature: const_reference front() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: gtl::compact_array_base::back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: reference
    signature: reference back()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: gtl::compact_array_base::back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: const_reference
    signature: const_reference back() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::make_hole
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:305,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: gtl::compact_array_base::push_back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::make_hole
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: void
    signature: void push_back(const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::erase_aux
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:308,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: gtl::compact_array_base::pop_back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::erase_aux
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: void
    signature: void pop_back()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:311,1
    - Dst: Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: operator[](size_type n)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Array
    linkageType: ''
    returnType: reference
    signature: reference operator[](size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:316,1
    - Dst: ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: operator[](size_type n) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - ConstArray
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](size_type n) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:321,1
    - Dst: absl::ThrowStdOutOfRange
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:322,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: gtl::compact_array_base::at
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdOutOfRange
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: reference
    signature: reference at(size_type n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:328,1
    - Dst: absl::ThrowStdOutOfRange
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:329,1
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: gtl::compact_array_base::at
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::ConstArray
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdOutOfRange
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(size_type n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::reallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 335
    functionName: gtl::compact_array_base::reserve
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::reallocate
    linkageType: ''
    returnType: void
    signature: void reserve(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: gtl::compact_array_base::capacity
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type capacity() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:342,1
    - Dst: gtl::compact_array_base::reserve
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:342,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:348,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:351,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:352,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:352,1
    - Dst: value_type::value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:353,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 356
    functionName: gtl::compact_array_base::resize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::capacity
    - value_type::value_type
    - gtl::compact_array_base::size
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::set_size
    - gtl::compact_array_base::reserve
    linkageType: ''
    returnType: void
    signature: void resize(size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:360,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:361,1
    - Dst: gtl::compact_array_base::move
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:361,1
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:361,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:361,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - compact_array_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: gtl::compact_array_base::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::move
    - gtl::compact_array_base::ConstArray
    - gtl::compact_array_base::size
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const compact_array_base& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:367,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: gtl::compact_array_base::set_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - ABSL_DCHECK_LE
    - gtl::compact_array_base::capacity
    linkageType: ''
    returnType: void
    signature: void set_size(size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:372,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:372,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:374,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:379,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 380
    functionName: gtl::compact_array_base::set_capacity
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_DCHECK_LE
    - gtl::compact_array_base::capacity
    - gtl::compact_array_base::size
    - exactfloat_internal::bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void set_capacity(size_type n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:384,1
    - Dst: nallocx
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:388,1
    - Dst: gtl::compact_array_base::set_capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:390,1
    - Dst: gtl::compact_array_base::MayBeInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:391,1
    - Dst: gtl::compact_array_base::IsInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:392,1
    - Dst: gtl::compact_array_base::SetInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:393,1
    - Dst: gtl::compact_array_base::IsInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:395,1
    - Dst: value_allocator_type::allocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:398,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:398,1
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:399,1
    - Dst: gtl::compact_array_base::InlinedSpace
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:399,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:399,1
    - Dst: gtl::compact_array_base::SetArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:400,1
    - Dst: value_allocator_type::allocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:407,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:407,1
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:409,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:409,1
    - Dst: value_allocator_type::deallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:410,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:410,1
    - Dst: gtl::compact_array_base::SetArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:413,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 414
    functionName: gtl::compact_array_base::reallocate
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - value_allocator_type::allocate
    - gtl::compact_array_base::SetInlined
    - nallocx
    - gtl::compact_array_base::Array
    - memcpy
    - value_allocator_type::deallocate
    - gtl::compact_array_base::capacity
    - gtl::compact_array_base::SetArray
    - gtl::compact_array_base::MayBeInlined
    - gtl::compact_array_base::InlinedSpace
    - gtl::compact_array_base::size
    - gtl::compact_array_base::set_capacity
    - gtl::compact_array_base::IsInlined
    linkageType: ''
    returnType: void
    signature: void reallocate(size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:416,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: gtl::compact_array_base::lastp
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::size
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: value_type
    signature: value_type * lastp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - first
    - last
    - out
    argTypes:
    - value_type*
    - value_type*
    - value_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: gtl::compact_array_base::move
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void move(const value_type* first, const value_type* last, value_type*
      out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<iterator>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:423,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:425,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:426,1
    - Dst: gtl::compact_array_base::reallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:427,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:428,1
    - Dst: gtl::compact_array_base::move
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:429,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:429,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - const_iterator
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 433
    functionName: gtl::compact_array_base::make_hole
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - gtl::compact_array_base::move
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::reallocate
    - gtl::compact_array_base::size
    - gtl::compact_array_base::set_size
    - const_cast<iterator>
    linkageType: ''
    returnType: iterator
    signature: iterator make_hole(const_iterator p, size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<iterator>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:436,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:437,1
    - Dst: gtl::compact_array_base::move
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:438,1
    - Dst: gtl::compact_array_base::lastp
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:438,1
    - Dst: gtl::compact_array_base::reallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:439,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - const_iterator
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 4
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: gtl::compact_array_base::erase_aux
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 3
    functionsReached:
    - gtl::compact_array_base::lastp
    - gtl::compact_array_base::move
    - gtl::compact_array_base::reallocate
    - gtl::compact_array_base::size
    - gtl::compact_array_base::set_size
    - const_cast<iterator>
    linkageType: ''
    returnType: void
    signature: void erase_aux(const_iterator p, size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::reserve
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:445,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:446,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:447,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:447,1
    - Dst: gtl::compact_array_base::lastp
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - n
    - ' v'
    argTypes:
    - size_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: gtl::compact_array_base::value_init
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 10
    functionsReached:
    - gtl::compact_array_base::reserve
    - gtl::compact_array_base::lastp
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::set_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void value_init(size_type n, const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::push_back
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIter
    - InputIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 4
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: gtl::compact_array_base::range_init
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::push_back
    linkageType: ''
    returnType: void
    signature: void range_init(InputIter first, InputIter last, std::input_iterator_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:457,1
    - Dst: gtl::compact_array_base::reserve
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:458,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:459,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:460,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - ForwIter
    - ForwIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: gtl::compact_array_base::range_init
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - std::copy
    - std::distance
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::set_size
    - gtl::compact_array_base::reserve
    linkageType: ''
    returnType: void
    signature: void range_init(ForwIter first, ForwIter last, std::forward_iterator_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - v
    argTypes:
    - Integer
    - Integer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: gtl::compact_array_base::initialize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - gtl::compact_array_base::value_init
    linkageType: ''
    returnType: void
    signature: void initialize(Integer n, Integer v, std::true_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::range_init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:471,1
    - Dst: Cat
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: gtl::compact_array_base::initialize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - Cat
    - gtl::compact_array_base::range_init
    linkageType: ''
    returnType: void
    signature: void initialize(Iterator first, Iterator last, std::false_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:475,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:475,1
    - Dst: absl::ThrowStdLengthError
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:476,1
    - Dst: gtl::compact_array_base::make_hole
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:478,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - n
    - ' v'
    argTypes:
    - const_iterator
    - size_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 480
    functionName: gtl::compact_array_base::value_insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdLengthError
    - gtl::compact_array_base::size
    - gtl::compact_array_base::make_hole
    - std::fill
    linkageType: ''
    returnType: void
    signature: void value_insert(const_iterator p, size_type n, const value_type&
      v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:485,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:486,1
    - Dst: gtl::compact_array_base::push_back
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:487,1
    - Dst: std::rotate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:488,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:488,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:488,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - first
    - last
    argTypes:
    - const_iterator
    - InputIter
    - InputIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 489
    functionName: gtl::compact_array_base::range_insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::push_back
    - std::rotate
    - gtl::compact_array_base::end
    - gtl::compact_array_base::size
    - gtl::compact_array_base::begin
    linkageType: ''
    returnType: void
    signature: "void range_insert(const_iterator p, InputIter first, InputIter last,\n
      \                   std::input_iterator_tag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:494,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:495,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:495,1
    - Dst: absl::ThrowStdLengthError
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:496,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:498,1
    - Dst: gtl::compact_array_base::make_hole
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - first
    - last
    argTypes:
    - const_iterator
    - ForwIter
    - ForwIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 492
    functionDepth: 5
    functionLinenumber: 492
    functionLinenumberEnd: 499
    functionName: gtl::compact_array_base::range_insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdLengthError
    - std::copy
    - std::distance
    - gtl::compact_array_base::size
    - gtl::compact_array_base::make_hole
    linkageType: ''
    returnType: void
    signature: "void range_insert(const_iterator p, ForwIter first, ForwIter last,\n
      \                   std::forward_iterator_tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::value_insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - n
    - v
    argTypes:
    - const_iterator
    - Integer
    - Integer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 502
    functionDepth: 6
    functionLinenumber: 502
    functionLinenumberEnd: 504
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::value_insert
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator p, Integer n, Integer v, std::true_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::range_insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:510,1
    - Dst: Cat
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - first
    - last
    argTypes:
    - const_iterator
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 5
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::range_insert
    - Cat
    linkageType: ''
    returnType: void
    signature: "void insert(const_iterator p, Iterator first, Iterator last,\n              std::false_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:550,1
    - Dst: std::declval<Base&>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:550,1
    - Dst: S2PolylineSimplifier::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 552
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - std::declval<Base&>
    - noexcept
    - S2PolylineSimplifier::Init
    linkageType: ''
    returnType: void
    signature: void compact_array() noexcept(noexcept(std::declval<Base&>().Init()))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_CopyConstruct
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:554,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 554
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - BM_CopyConstruct
    - value_type
    linkageType: ''
    returnType: void
    signature: void compact_array(size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_CopyConstruct
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - ' v'
    argTypes:
    - size_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 556
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - BM_CopyConstruct
    linkageType: ''
    returnType: void
    signature: void compact_array(size_type n, const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 562
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - S2Polygon::Copy
    linkageType: ''
    returnType: void
    signature: void compact_array(Iterator first, Iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::CopyFrom
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::CopyFrom
    linkageType: ''
    returnType: void
    signature: void compact_array(const compact_array& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:567,1
    - Dst: gtl::compact_array::compact_array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:567,1
    - Dst: noexcept
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:567,1
    - Dst: std::declval<Base&>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:567,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 570
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - std::declval<Base&>
    - noexcept
    - gtl::compact_array::compact_array
    - dense_hashtable::swap
    linkageType: ''
    returnType: void
    signature: "void compact_array(compact_array&& v) noexcept(\n      noexcept(compact_array())
      && noexcept(std::declval<Base&>().swap(v)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::AssignFrom
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: '& operator=(const compact_array& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - Base::AssignFrom
    linkageType: ''
    returnType: compact_array
    signature: compact_array & operator=(const compact_array& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: '& operator=(compact_array&& v) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::swap
    linkageType: ''
    returnType: compact_array
    signature: compact_array & operator=(compact_array&& v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClippedShape::Destruct
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 585
    functionName: ~compact_array()
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - S2ClippedShape::Destruct
    linkageType: ''
    returnType: void
    signature: void ~compact_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: gtl::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 592
    functionName: operator==(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::size
    - equal
    - gtl::begin
    - gtl::end
    linkageType: ''
    returnType: bool
    signature: bool operator==(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: operator!=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    - Dst: gtl::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    - Dst: gtl::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: operator<(const compact_array<T, A>& x, const compact_array<T, A>&
      y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - std::lexicographical_compare
    - gtl::begin
    - gtl::end
    linkageType: ''
    returnType: bool
    signature: bool operator<(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: operator>(const compact_array<T, A>& x, const compact_array<T, A>&
      y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: operator<=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 617
    functionName: operator>=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::swap
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: gtl::swap
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::swap
    linkageType: ''
    returnType: void
    signature: void swap(compact_array<T, A>& x, compact_array<T, A>& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' element'
    argTypes:
    - std::ostream
    - ElementT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 630
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, const ElementT& element) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - std::ostream
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 633
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, int8_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 636
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, uint8_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: gtl::compact_array_internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: gtl::compact_array_internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' element'
    argTypes:
    - std::ostream
    - ElementT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 630
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, const ElementT& element) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - std::ostream
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 633
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, int8_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 636
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, uint8_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: gtl::compact_array_internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: gtl::compact_array_internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRangeToStream
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:649,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:649,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:649,1
    - Dst: compact_array_internal::LogArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' array'
    argTypes:
    - std::ostream
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: '& operator<<(std::ostream& out, const compact_array<T, A>& array)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - end
    - gtl::LogRangeToStream
    - compact_array_internal::LogArray
    - begin
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const compact_array<T,
      A>& array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::IsInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:101,1
    - Dst: gtl::compact_array_base::InlinedSpace
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: gtl::compact_array_base::Array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 11
    functionsReached:
    - gtl::compact_array_base::IsInlined
    - gtl::compact_array_base::InlinedSpace
    linkageType: ''
    returnType: T
    signature: T * Array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: gtl::compact_array_base::SetArray
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetArray(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:109,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: gtl::compact_array_base::SetInlined
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_LE
    - gtl::compact_array_base::capacity
    linkageType: ''
    returnType: void
    signature: void SetInlined()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: gtl::compact_array_base::InlinedSpace
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 4
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T * InlinedSpace()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: gtl::compact_array_base::Array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: gtl::compact_array_base::SetArray
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetArray(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: gtl::compact_array_base::InlinedSpace
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * InlinedSpace()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: gtl::compact_array_base::IsInlined
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInlined() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<compact_array_base<T, A>*>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: gtl::compact_array_base::ConstArray
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 5
    functionsReached:
    - const_cast<compact_array_base<T, A>*>
    linkageType: ''
    returnType: T
    signature: T * ConstArray() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: gtl::compact_array_base::Init
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Init() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:169,1
    - Dst: gtl::compact_array_base::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:170,1
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: gtl::compact_array_base::Construct
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::value_init
    - gtl::compact_array_base::Init
    - value_type
    linkageType: ''
    returnType: void
    signature: void Construct(size_type n, const value_type& v = value_type())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:177,1
    - Dst: gtl::compact_array_base::initialize
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:179,1
    - Dst: Int
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 5
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: gtl::compact_array_base::Copy
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::initialize
    - gtl::compact_array_base::Init
    - Int
    linkageType: ''
    returnType: void
    signature: void Copy(Iterator first, Iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:183,1
    - Dst: gtl::compact_array_base::initialize
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:184,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:184,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:184,1
    - Dst: std::false_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: gtl::compact_array_base::CopyFrom
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::end
    - gtl::compact_array_base::Init
    - std::false_type
    - gtl::compact_array_base::initialize
    - gtl::compact_array_base::begin
    linkageType: ''
    returnType: void
    signature: void CopyFrom(const compact_array_base& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:191,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:191,1
    - Dst: reserve
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:192,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:192,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:193,1
    - Dst: insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:194,1
    - Dst: erase
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:196,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:196,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:196,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:196,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:197,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:197,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:197,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: '& AssignFrom(const compact_array_base& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - reserve
    - end
    - size
    - std::copy
    - erase
    - begin
    - insert
    linkageType: ''
    returnType: compact_array_base
    signature: compact_array_base & AssignFrom(const compact_array_base& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::MayBeInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:204,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:204,1
    - Dst: gtl::compact_array_base::InlinedSpace
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:204,1
    - Dst: value_allocator_type::deallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:206,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:206,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:206,1
    - Dst: gtl::compact_array_base::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: gtl::compact_array_base::Destruct
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::Init
    - value_allocator_type::deallocate
    - gtl::compact_array_base::capacity
    - gtl::compact_array_base::MayBeInlined
    - gtl::compact_array_base::InlinedSpace
    linkageType: ''
    returnType: void
    signature: void Destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: gtl::compact_array_base::swap
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(compact_array_base& v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: gtl::compact_array_base::size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: gtl::compact_array_base::empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::size
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: gtl::compact_array_base::max_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type max_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: gtl::compact_array_base::MayBeInlined
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool MayBeInlined()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: gtl::compact_array_base::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 7
    functionsReached:
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: iterator
    signature: iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:231,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: gtl::compact_array_base::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 10
    functionsReached:
    - gtl::compact_array_base::size
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: iterator
    signature: iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: gtl::compact_array_base::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 7
    functionsReached:
    - gtl::compact_array_base::ConstArray
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:233,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: gtl::compact_array_base::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 10
    functionsReached:
    - gtl::compact_array_base::ConstArray
    - gtl::compact_array_base::size
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:235,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: gtl::compact_array_base::rbegin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - reverse_iterator
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rbegin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:236,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: gtl::compact_array_base::rend
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - reverse_iterator
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rend()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:238,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: gtl::compact_array_base::rbegin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::end
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rbegin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:241,1
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: gtl::compact_array_base::rend
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::ConstArray
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rend() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:247,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:247,1
    - Dst: absl::ThrowStdLengthError
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:248,1
    - Dst: gtl::compact_array_base::make_hole
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - ' v'
    argTypes:
    - const_iterator
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: gtl::compact_array_base::Insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 3
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdLengthError
    - gtl::compact_array_base::make_hole
    - gtl::compact_array_base::size
    linkageType: ''
    returnType: iterator
    signature: iterator Insert(const_iterator p, const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - ' v'
    argTypes:
    - const_iterator
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::Insert
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator p, const value_type& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:261,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:261,1
    - Dst: absl::ThrowStdLengthError
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:262,1
    - Dst: gtl::compact_array_base::value_insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - n
    - ' v'
    argTypes:
    - const_iterator
    - size_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdLengthError
    - gtl::compact_array_base::value_insert
    - gtl::compact_array_base::size
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator p, size_type n, const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:271,1
    - Dst: Int
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - first
    - last
    argTypes:
    - const_iterator
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - Int
    - gtl::compact_array_base::insert
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator p, Iterator first, Iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:276,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:276,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:276,1
    - Dst: std::forward<Args>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: gtl::compact_array_base::emplace_back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - value_type
    - gtl::compact_array_base::Insert
    - gtl::compact_array_base::end
    - std::forward<Args>
    linkageType: ''
    returnType: reference
    signature: reference emplace_back(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:280,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:280,1
    - Dst: std::forward<Args>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: gtl::compact_array_base::emplace
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::Insert
    - value_type
    - std::forward<Args>
    linkageType: ''
    returnType: iterator
    signature: iterator emplace(const_iterator p, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:284,1
    - Dst: gtl::compact_array_base::erase_aux
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:285,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 5
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: gtl::compact_array_base::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::begin
    - gtl::compact_array_base::erase_aux
    linkageType: ''
    returnType: iterator
    signature: iterator erase(const_iterator p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:290,1
    - Dst: gtl::compact_array_base::erase_aux
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:291,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 5
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: gtl::compact_array_base::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::begin
    - gtl::compact_array_base::erase_aux
    linkageType: ''
    returnType: iterator
    signature: iterator erase(const_iterator first, const_iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: gtl::compact_array_base::clear
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::set_size
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: gtl::compact_array_base::front
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::begin
    linkageType: ''
    returnType: reference
    signature: reference front()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: gtl::compact_array_base::front
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::begin
    linkageType: ''
    returnType: const_reference
    signature: const_reference front() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: gtl::compact_array_base::back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: reference
    signature: reference back()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: gtl::compact_array_base::back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: const_reference
    signature: const_reference back() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::make_hole
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:305,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 5
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: gtl::compact_array_base::push_back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - gtl::compact_array_base::make_hole
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: void
    signature: void push_back(const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::erase_aux
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:308,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 5
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: gtl::compact_array_base::pop_back
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::erase_aux
    - gtl::compact_array_base::end
    linkageType: ''
    returnType: void
    signature: void pop_back()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:311,1
    - Dst: Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: operator[](size_type n)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - Array
    linkageType: ''
    returnType: reference
    signature: reference operator[](size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_HARDENING_ASSERT
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:316,1
    - Dst: ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: operator[](size_type n) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_HARDENING_ASSERT
    - ConstArray
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](size_type n) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:321,1
    - Dst: absl::ThrowStdOutOfRange
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:322,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: gtl::compact_array_base::at
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdOutOfRange
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: reference
    signature: reference at(size_type n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:328,1
    - Dst: absl::ThrowStdOutOfRange
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:329,1
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: gtl::compact_array_base::at
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::ConstArray
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdOutOfRange
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(size_type n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::reallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 335
    functionDepth: 4
    functionLinenumber: 335
    functionLinenumberEnd: 335
    functionName: gtl::compact_array_base::reserve
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 3
    functionsReached:
    - gtl::compact_array_base::reallocate
    linkageType: ''
    returnType: void
    signature: void reserve(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: gtl::compact_array_base::capacity
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_type
    signature: size_type capacity() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:342,1
    - Dst: gtl::compact_array_base::reserve
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:342,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:348,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:351,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:352,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:352,1
    - Dst: value_type::value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:353,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 356
    functionName: gtl::compact_array_base::resize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::capacity
    - value_type::value_type
    - gtl::compact_array_base::size
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::set_size
    - gtl::compact_array_base::reserve
    linkageType: ''
    returnType: void
    signature: void resize(size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:360,1
    - Dst: H::combine_contiguous
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:361,1
    - Dst: gtl::compact_array_base::move
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:361,1
    - Dst: gtl::compact_array_base::ConstArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:361,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:361,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - compact_array_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: gtl::compact_array_base::AbslHashValue
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - gtl::compact_array_base::move
    - gtl::compact_array_base::ConstArray
    - gtl::compact_array_base::size
    - H::combine_contiguous
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const compact_array_base& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:367,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: gtl::compact_array_base::set_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 8
    functionsReached:
    - ABSL_DCHECK_LE
    - gtl::compact_array_base::capacity
    linkageType: ''
    returnType: void
    signature: void set_size(size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DCHECK_LE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:372,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:372,1
    - Dst: exactfloat_internal::bit_width
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:374,1
    - Dst: ABSL_DCHECK
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:379,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 380
    functionName: gtl::compact_array_base::set_capacity
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - ABSL_DCHECK_LE
    - gtl::compact_array_base::capacity
    - gtl::compact_array_base::size
    - exactfloat_internal::bit_width
    - ABSL_DCHECK
    linkageType: ''
    returnType: void
    signature: void set_capacity(size_type n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:384,1
    - Dst: nallocx
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:388,1
    - Dst: gtl::compact_array_base::set_capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:390,1
    - Dst: gtl::compact_array_base::MayBeInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:391,1
    - Dst: gtl::compact_array_base::IsInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:392,1
    - Dst: gtl::compact_array_base::SetInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:393,1
    - Dst: gtl::compact_array_base::IsInlined
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:395,1
    - Dst: value_allocator_type::allocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:398,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:398,1
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:399,1
    - Dst: gtl::compact_array_base::InlinedSpace
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:399,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:399,1
    - Dst: gtl::compact_array_base::SetArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:400,1
    - Dst: value_allocator_type::allocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:407,1
    - Dst: gtl::compact_array_base::capacity
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:407,1
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:409,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:409,1
    - Dst: value_allocator_type::deallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:410,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:410,1
    - Dst: gtl::compact_array_base::SetArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:413,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 414
    functionName: gtl::compact_array_base::reallocate
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 4
    functionsReached:
    - value_allocator_type::allocate
    - gtl::compact_array_base::SetInlined
    - nallocx
    - gtl::compact_array_base::Array
    - memcpy
    - value_allocator_type::deallocate
    - gtl::compact_array_base::capacity
    - gtl::compact_array_base::SetArray
    - gtl::compact_array_base::MayBeInlined
    - gtl::compact_array_base::InlinedSpace
    - gtl::compact_array_base::size
    - gtl::compact_array_base::set_capacity
    - gtl::compact_array_base::IsInlined
    linkageType: ''
    returnType: void
    signature: void reallocate(size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:416,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: gtl::compact_array_base::lastp
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - gtl::compact_array_base::size
    - gtl::compact_array_base::Array
    linkageType: ''
    returnType: value_type
    signature: value_type * lastp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - first
    - last
    - out
    argTypes:
    - value_type*
    - value_type*
    - value_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: gtl::compact_array_base::move
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 4
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void move(const value_type* first, const value_type* last, value_type*
      out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<iterator>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:423,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:425,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:426,1
    - Dst: gtl::compact_array_base::reallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:427,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:428,1
    - Dst: gtl::compact_array_base::move
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:429,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:429,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - const_iterator
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 433
    functionName: gtl::compact_array_base::make_hole
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 6
    functionsReached:
    - gtl::compact_array_base::move
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::reallocate
    - gtl::compact_array_base::size
    - gtl::compact_array_base::set_size
    - const_cast<iterator>
    linkageType: ''
    returnType: iterator
    signature: iterator make_hole(const_iterator p, size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<iterator>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:436,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:437,1
    - Dst: gtl::compact_array_base::move
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:438,1
    - Dst: gtl::compact_array_base::lastp
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:438,1
    - Dst: gtl::compact_array_base::reallocate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:439,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - const_iterator
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 4
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: gtl::compact_array_base::erase_aux
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 6
    functionsReached:
    - gtl::compact_array_base::lastp
    - gtl::compact_array_base::move
    - gtl::compact_array_base::reallocate
    - gtl::compact_array_base::size
    - gtl::compact_array_base::set_size
    - const_cast<iterator>
    linkageType: ''
    returnType: void
    signature: void erase_aux(const_iterator p, size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::reserve
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:445,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:446,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:447,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:447,1
    - Dst: gtl::compact_array_base::lastp
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - n
    - ' v'
    argTypes:
    - size_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: gtl::compact_array_base::value_init
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 12
    functionsReached:
    - gtl::compact_array_base::reserve
    - gtl::compact_array_base::lastp
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::set_size
    - std::fill
    linkageType: ''
    returnType: void
    signature: void value_init(size_type n, const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::push_back
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIter
    - InputIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 4
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: gtl::compact_array_base::range_init
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::push_back
    linkageType: ''
    returnType: void
    signature: void range_init(InputIter first, InputIter last, std::input_iterator_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:457,1
    - Dst: gtl::compact_array_base::reserve
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:458,1
    - Dst: gtl::compact_array_base::set_size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:459,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:460,1
    - Dst: gtl::compact_array_base::Array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - ForwIter
    - ForwIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: gtl::compact_array_base::range_init
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - std::copy
    - std::distance
    - gtl::compact_array_base::Array
    - gtl::compact_array_base::set_size
    - gtl::compact_array_base::reserve
    linkageType: ''
    returnType: void
    signature: void range_init(ForwIter first, ForwIter last, std::forward_iterator_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::value_init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - v
    argTypes:
    - Integer
    - Integer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: gtl::compact_array_base::initialize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 4
    functionsReached:
    - gtl::compact_array_base::value_init
    linkageType: ''
    returnType: void
    signature: void initialize(Integer n, Integer v, std::true_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::range_init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:471,1
    - Dst: Cat
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: gtl::compact_array_base::initialize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 4
    functionsReached:
    - Cat
    - gtl::compact_array_base::range_init
    linkageType: ''
    returnType: void
    signature: void initialize(Iterator first, Iterator last, std::false_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:475,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:475,1
    - Dst: absl::ThrowStdLengthError
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:476,1
    - Dst: gtl::compact_array_base::make_hole
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:478,1
    - Dst: std::fill
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - n
    - ' v'
    argTypes:
    - const_iterator
    - size_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 480
    functionName: gtl::compact_array_base::value_insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 3
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdLengthError
    - gtl::compact_array_base::size
    - gtl::compact_array_base::make_hole
    - std::fill
    linkageType: ''
    returnType: void
    signature: void value_insert(const_iterator p, size_type n, const value_type&
      v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:485,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:486,1
    - Dst: gtl::compact_array_base::push_back
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:487,1
    - Dst: std::rotate
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:488,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:488,1
    - Dst: gtl::compact_array_base::begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:488,1
    - Dst: gtl::compact_array_base::end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - first
    - last
    argTypes:
    - const_iterator
    - InputIter
    - InputIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 489
    functionName: gtl::compact_array_base::range_insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::push_back
    - std::rotate
    - gtl::compact_array_base::end
    - gtl::compact_array_base::size
    - gtl::compact_array_base::begin
    linkageType: ''
    returnType: void
    signature: "void range_insert(const_iterator p, InputIter first, InputIter last,\n
      \                   std::input_iterator_tag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:494,1
    - Dst: ABSL_PREDICT_FALSE
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:495,1
    - Dst: gtl::compact_array_base::size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:495,1
    - Dst: absl::ThrowStdLengthError
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:496,1
    - Dst: std::copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:498,1
    - Dst: gtl::compact_array_base::make_hole
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - first
    - last
    argTypes:
    - const_iterator
    - ForwIter
    - ForwIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 492
    functionDepth: 5
    functionLinenumber: 492
    functionLinenumberEnd: 499
    functionName: gtl::compact_array_base::range_insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - ABSL_PREDICT_FALSE
    - absl::ThrowStdLengthError
    - std::copy
    - std::distance
    - gtl::compact_array_base::size
    - gtl::compact_array_base::make_hole
    linkageType: ''
    returnType: void
    signature: "void range_insert(const_iterator p, ForwIter first, ForwIter last,\n
      \                   std::forward_iterator_tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::value_insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - n
    - v
    argTypes:
    - const_iterator
    - Integer
    - Integer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 502
    functionDepth: 6
    functionLinenumber: 502
    functionLinenumberEnd: 504
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - gtl::compact_array_base::value_insert
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator p, Integer n, Integer v, std::true_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::range_insert
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:510,1
    - Dst: Cat
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - first
    - last
    argTypes:
    - const_iterator
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 5
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: gtl::compact_array_base::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - gtl::compact_array_base::range_insert
    - Cat
    linkageType: ''
    returnType: void
    signature: "void insert(const_iterator p, Iterator first, Iterator last,\n              std::false_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:550,1
    - Dst: std::declval<Base&>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:550,1
    - Dst: S2PolylineSimplifier::Init
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 552
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - std::declval<Base&>
    - noexcept
    - S2PolylineSimplifier::Init
    linkageType: ''
    returnType: void
    signature: void compact_array() noexcept(noexcept(std::declval<Base&>().Init()))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_CopyConstruct
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:554,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 554
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - BM_CopyConstruct
    - value_type
    linkageType: ''
    returnType: void
    signature: void compact_array(size_type n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_CopyConstruct
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - ' v'
    argTypes:
    - size_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 556
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - BM_CopyConstruct
    linkageType: ''
    returnType: void
    signature: void compact_array(size_type n, const value_type& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2Polygon::Copy
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 562
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - S2Polygon::Copy
    linkageType: ''
    returnType: void
    signature: void compact_array(Iterator first, Iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::compact_array_base::CopyFrom
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 1
    functionsReached:
    - gtl::compact_array_base::CopyFrom
    linkageType: ''
    returnType: void
    signature: void compact_array(const compact_array& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:567,1
    - Dst: gtl::compact_array::compact_array
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:567,1
    - Dst: noexcept
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:567,1
    - Dst: std::declval<Base&>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:567,1
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 570
    functionName: gtl::compact_array::compact_array
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - std::declval<Base&>
    - noexcept
    - gtl::compact_array::compact_array
    - dense_hashtable::swap
    linkageType: ''
    returnType: void
    signature: "void compact_array(compact_array&& v) noexcept(\n      noexcept(compact_array())
      && noexcept(std::declval<Base&>().swap(v)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Base::AssignFrom
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: '& operator=(const compact_array& v)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - Base::AssignFrom
    linkageType: ''
    returnType: compact_array
    signature: compact_array & operator=(const compact_array& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dense_hashtable::swap
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - compact_array
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: '& operator=(compact_array&& v) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - dense_hashtable::swap
    linkageType: ''
    returnType: compact_array
    signature: compact_array & operator=(compact_array&& v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S2ClippedShape::Destruct
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 585
    functionName: ~compact_array()
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - S2ClippedShape::Destruct
    linkageType: ''
    returnType: void
    signature: void ~compact_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: size
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: equal
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 592
    functionName: operator==(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - end
    - size
    - equal
    - begin
    linkageType: ''
    returnType: bool
    signature: bool operator==(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: operator!=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: operator<(const compact_array<T, A>& x, const compact_array<T, A>&
      y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - end
    - std::lexicographical_compare
    - begin
    linkageType: ''
    returnType: bool
    signature: bool operator<(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: operator>(const compact_array<T, A>& x, const compact_array<T, A>&
      y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: operator<=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 617
    functionName: operator>=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const compact_array<T, A>& x, const compact_array<T,
      A>& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::swap
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - compact_array<T, A>
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: gtl::swap
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 2
    functionsReached:
    - gtl::swap
    linkageType: ''
    returnType: void
    signature: void swap(compact_array<T, A>& x, compact_array<T, A>& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' element'
    argTypes:
    - std::ostream
    - ElementT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 630
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, const ElementT& element) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - std::ostream
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 633
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, int8_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 636
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, uint8_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: gtl::compact_array_internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: gtl::compact_array_internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' element'
    argTypes:
    - std::ostream
    - ElementT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 630
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, const ElementT& element) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - std::ostream
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 633
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, int8_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - std::ostream
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 636
    functionName: gtl::compact_array_internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream& out, uint8_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: gtl::compact_array_internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: gtl::compact_array_internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRangeToStream
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:649,1
    - Dst: begin
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:649,1
    - Dst: end
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:649,1
    - Dst: compact_array_internal::LogArray
      Src: /src/s2geometry/src/s2/util/gtl/compact_array.h:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' array'
    argTypes:
    - std::ostream
    - compact_array<T, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: '& operator<<(std::ostream& out, const compact_array<T, A>& array)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/compact_array.h
    functionUses: 0
    functionsReached:
    - end
    - gtl::LogRangeToStream
    - compact_array_internal::LogArray
    - begin
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const compact_array<T,
      A>& array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: gtl::Requires
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/requires.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Requires(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: gtl::Requires
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/requires.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Requires(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/gtl/unaligned.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: gtl::UnalignedLoad
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/unaligned.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: T
    signature: T UnalignedLoad(const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/gtl/unaligned.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: gtl::UnalignedStore
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/unaligned.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void UnalignedStore(T v, char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/gtl/unaligned.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: gtl::UnalignedLoad
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/unaligned.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: T
    signature: T UnalignedLoad(const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/s2geometry/src/s2/util/gtl/unaligned.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: gtl::UnalignedStore
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/unaligned.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void UnalignedStore(T v, char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Requires<std::ostream, ElementT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:83,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - element
    argTypes:
    - std::ostream
    - ElementT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: gtl::internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Requires<std::ostream, ElementT>
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream &out, const ElementT &element) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: gtl::internal::LogEllipsis
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogEllipsis(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Requires<std::ostream, ElementT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:83,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - element
    argTypes:
    - std::ostream
    - ElementT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: gtl::internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Requires<std::ostream, ElementT>
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream &out, const ElementT &element) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: gtl::internal::LogEllipsis
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogEllipsis(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: gtl::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Stats::max
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_elements
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: gtl::LogShortUpToN::LogShortUpToN
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogShortUpToN(int64_t max_elements)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: gtl::LogShortUpToN::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: gtl::LogShortUpTo100
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogShortUpTo100()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: gtl::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Stats::max
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_elements
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: gtl::LogMultilineUpToN::LogMultilineUpToN
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogMultilineUpToN(int64_t max_elements)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: gtl::LogMultilineUpToN::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: gtl::LogMultilineUpTo100
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogMultilineUpTo100()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: gtl::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: gtl::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Stats::max
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PolicyT::LogOpening
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:187,1
    - Dst: PolicyT::MaxElements
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:188,1
    - Dst: PolicyT::LogFirstSeparator
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:190,1
    - Dst: PolicyT::LogSeparator
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:192,1
    - Dst: PolicyT::Log
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:194,1
    - Dst: PolicyT::LogSeparator
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:197,1
    - Dst: PolicyT::LogEllipsis
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:198,1
    - Dst: PolicyT::LogClosing
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - out
    - begin
    - end
    - policy
    argTypes:
    - std::ostream
    - IteratorT
    - IteratorT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 201
    functionName: gtl::LogRangeToStream
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 2
    functionsReached:
    - PolicyT::LogEllipsis
    - PolicyT::LogClosing
    - PolicyT::Log
    - PolicyT::LogSeparator
    - PolicyT::MaxElements
    - PolicyT::LogOpening
    - PolicyT::LogFirstSeparator
    linkageType: ''
    returnType: void
    signature: "void LogRangeToStream(std::ostream &out,  // NOLINT\n                             IteratorT
      begin, IteratorT end,\n                             const PolicyT &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - begin
    - end
    - policy
    argTypes:
    - IteratorT
    - IteratorT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: gtl::detail::RangeLogger::RangeLogger
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RangeLogger(const IteratorT &begin, const IteratorT &end,\n              const
      PolicyT &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRangeToStream<IteratorT, PolicyT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - range
    argTypes:
    - std::ostream
    - RangeLogger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: '&operator<<(std::ostream &out, const RangeLogger &range)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - gtl::LogRangeToStream<IteratorT, PolicyT>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const RangeLogger &range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::str
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: gtl::detail::RangeLogger::str
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string str() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: gtl::detail::EnumLogger::EnumLogger
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumLogger(E e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<I>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - v
    argTypes:
    - std::ostream
    - EnumLogger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: '&operator<<(std::ostream &out, const EnumLogger &v)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - static_cast<I>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const EnumLogger &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - begin
    - end
    - policy
    argTypes:
    - IteratorT
    - IteratorT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: gtl::detail::RangeLogger::RangeLogger
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RangeLogger(const IteratorT &begin, const IteratorT &end,\n              const
      PolicyT &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRangeToStream<IteratorT, PolicyT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - range
    argTypes:
    - std::ostream
    - RangeLogger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: '&operator<<(std::ostream &out, const RangeLogger &range)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - gtl::LogRangeToStream<IteratorT, PolicyT>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const RangeLogger &range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::str
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: gtl::detail::RangeLogger::str
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string str() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: gtl::detail::EnumLogger::EnumLogger
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumLogger(E e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<I>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - v
    argTypes:
    - std::ostream
    - EnumLogger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: '&operator<<(std::ostream &out, const EnumLogger &v)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - static_cast<I>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const EnumLogger &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::detail::RangeLogger<IteratorT, PolicyT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - begin
    - end
    - policy
    argTypes:
    - IteratorT
    - IteratorT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: gtl::LogRange
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - gtl::detail::RangeLogger<IteratorT, PolicyT>
    linkageType: ''
    returnType: detail::RangeLogger<IteratorT, PolicyT>
    signature: "detail::RangeLogger<IteratorT, PolicyT> LogRange(const IteratorT &begin,\n
      \                                                const IteratorT &end,\n                                                 const
      PolicyT &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRange
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:276,1
    - Dst: LogDefault
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IteratorT
    - IteratorT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: gtl::LogRange
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 1
    functionsReached:
    - gtl::LogRange
    - LogDefault
    linkageType: ''
    returnType: detail::RangeLogger<IteratorT, LogDefault>
    signature: "detail::RangeLogger<IteratorT, LogDefault> LogRange(const IteratorT
      &begin,\n                                                    const IteratorT
      &end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRange
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:287,1
    - Dst: ContainerT::begin
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:287,1
    - Dst: ContainerT::end
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:287,1
    - Dst: gtl::LogRange
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:288,1
    - Dst: ContainerT::begin
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:288,1
    - Dst: ContainerT::end
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - container
    - policy
    argTypes:
    - ContainerT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: gtl::LogContainer
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - ContainerT::end
    - ContainerT::begin
    - gtl::LogRange
    linkageType: ''
    returnType: auto
    signature: "auto LogContainer(const ContainerT &container, const PolicyT &policy)\n
      \   -> decltype(gtl::LogRange(container.begin(), container.end(), policy))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogContainer
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:299,1
    - Dst: LogDefault
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:299,1
    - Dst: gtl::LogContainer
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:300,1
    - Dst: LogDefault
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - container
    argTypes:
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: gtl::LogContainer
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 1
    functionsReached:
    - gtl::LogContainer
    - LogDefault
    linkageType: ''
    returnType: auto
    signature: "auto LogContainer(const ContainerT &container)\n    -> decltype(gtl::LogContainer(container,
      LogDefault()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::EnumLogger<E>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: gtl::LogEnum
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - detail::EnumLogger<E>
    linkageType: ''
    returnType: detail::EnumLogger<E>
    signature: detail::EnumLogger<E> LogEnum(E e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Requires<std::ostream, ElementT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:83,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - element
    argTypes:
    - std::ostream
    - ElementT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: gtl::internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Requires<std::ostream, ElementT>
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream &out, const ElementT &element) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: gtl::internal::LogEllipsis
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogEllipsis(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Requires<std::ostream, ElementT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:83,1
    - Dst: absl::StrCat
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - element
    argTypes:
    - std::ostream
    - ElementT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: gtl::internal::Log
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Requires<std::ostream, ElementT>
    - absl::StrCat
    linkageType: ''
    returnType: void
    signature: void Log(std::ostream &out, const ElementT &element) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: gtl::internal::LogEllipsis
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogEllipsis(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: gtl::internal::LogOpening
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogOpening(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: gtl::internal::LogClosing
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogClosing(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: gtl::internal::LogFirstSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogFirstSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: gtl::internal::LogSeparator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogSeparator(std::ostream &out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: gtl::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Stats::max
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_elements
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: gtl::LogShortUpToN::LogShortUpToN
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogShortUpToN(int64_t max_elements)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: gtl::LogShortUpToN::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: gtl::LogShortUpTo100
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogShortUpTo100()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: gtl::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Stats::max
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_elements
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: gtl::LogMultilineUpToN::LogMultilineUpToN
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogMultilineUpToN(int64_t max_elements)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: gtl::LogMultilineUpToN::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: gtl::LogMultilineUpTo100
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogMultilineUpTo100()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: gtl::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stats::max
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: gtl::MaxElements
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - Stats::max
    linkageType: ''
    returnType: int64_t
    signature: int64_t MaxElements() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PolicyT::LogOpening
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:187,1
    - Dst: PolicyT::MaxElements
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:188,1
    - Dst: PolicyT::LogFirstSeparator
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:190,1
    - Dst: PolicyT::LogSeparator
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:192,1
    - Dst: PolicyT::Log
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:194,1
    - Dst: PolicyT::LogSeparator
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:197,1
    - Dst: PolicyT::LogEllipsis
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:198,1
    - Dst: PolicyT::LogClosing
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - out
    - begin
    - end
    - policy
    argTypes:
    - std::ostream
    - IteratorT
    - IteratorT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 201
    functionName: gtl::LogRangeToStream
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 2
    functionsReached:
    - PolicyT::LogEllipsis
    - PolicyT::LogClosing
    - PolicyT::Log
    - PolicyT::LogSeparator
    - PolicyT::MaxElements
    - PolicyT::LogOpening
    - PolicyT::LogFirstSeparator
    linkageType: ''
    returnType: void
    signature: "void LogRangeToStream(std::ostream &out,  // NOLINT\n                             IteratorT
      begin, IteratorT end,\n                             const PolicyT &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - begin
    - end
    - policy
    argTypes:
    - IteratorT
    - IteratorT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: gtl::detail::RangeLogger::RangeLogger
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RangeLogger(const IteratorT &begin, const IteratorT &end,\n              const
      PolicyT &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRangeToStream<IteratorT, PolicyT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - range
    argTypes:
    - std::ostream
    - RangeLogger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: '&operator<<(std::ostream &out, const RangeLogger &range)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - gtl::LogRangeToStream<IteratorT, PolicyT>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const RangeLogger &range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::str
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: gtl::detail::RangeLogger::str
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string str() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: gtl::detail::EnumLogger::EnumLogger
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumLogger(E e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<I>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - v
    argTypes:
    - std::ostream
    - EnumLogger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: '&operator<<(std::ostream &out, const EnumLogger &v)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - static_cast<I>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const EnumLogger &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - begin
    - end
    - policy
    argTypes:
    - IteratorT
    - IteratorT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: gtl::detail::RangeLogger::RangeLogger
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RangeLogger(const IteratorT &begin, const IteratorT &end,\n              const
      PolicyT &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRangeToStream<IteratorT, PolicyT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - range
    argTypes:
    - std::ostream
    - RangeLogger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: '&operator<<(std::ostream &out, const RangeLogger &range)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - gtl::LogRangeToStream<IteratorT, PolicyT>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const RangeLogger &range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::str
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: gtl::detail::RangeLogger::str
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string str() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: gtl::detail::EnumLogger::EnumLogger
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumLogger(E e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<I>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - v
    argTypes:
    - std::ostream
    - EnumLogger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: '&operator<<(std::ostream &out, const EnumLogger &v)'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - static_cast<I>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const EnumLogger &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::detail::RangeLogger<IteratorT, PolicyT>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - begin
    - end
    - policy
    argTypes:
    - IteratorT
    - IteratorT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: gtl::LogRange
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 2
    functionsReached:
    - gtl::detail::RangeLogger<IteratorT, PolicyT>
    linkageType: ''
    returnType: detail::RangeLogger<IteratorT, PolicyT>
    signature: "detail::RangeLogger<IteratorT, PolicyT> LogRange(const IteratorT &begin,\n
      \                                                const IteratorT &end,\n                                                 const
      PolicyT &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRange
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:276,1
    - Dst: LogDefault
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IteratorT
    - IteratorT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: gtl::LogRange
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 3
    functionsReached:
    - gtl::LogRange
    - LogDefault
    linkageType: ''
    returnType: detail::RangeLogger<IteratorT, LogDefault>
    signature: "detail::RangeLogger<IteratorT, LogDefault> LogRange(const IteratorT
      &begin,\n                                                    const IteratorT
      &end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogRange
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:287,1
    - Dst: ContainerT::begin
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:287,1
    - Dst: ContainerT::end
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:287,1
    - Dst: gtl::LogRange
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:288,1
    - Dst: ContainerT::begin
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:288,1
    - Dst: ContainerT::end
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - container
    - policy
    argTypes:
    - ContainerT
    - PolicyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: gtl::LogContainer
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 1
    functionsReached:
    - ContainerT::end
    - ContainerT::begin
    - gtl::LogRange
    linkageType: ''
    returnType: auto
    signature: "auto LogContainer(const ContainerT &container, const PolicyT &policy)\n
      \   -> decltype(gtl::LogRange(container.begin(), container.end(), policy))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::LogContainer
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:299,1
    - Dst: LogDefault
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:299,1
    - Dst: gtl::LogContainer
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:300,1
    - Dst: LogDefault
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - container
    argTypes:
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: gtl::LogContainer
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 2
    functionsReached:
    - gtl::LogContainer
    - LogDefault
    linkageType: ''
    returnType: auto
    signature: "auto LogContainer(const ContainerT &container)\n    -> decltype(gtl::LogContainer(container,
      LogDefault()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::EnumLogger<E>
      Src: /src/s2geometry/src/s2/util/gtl/container_logging.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: gtl::LogEnum
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/container_logging.h
    functionUses: 0
    functionsReached:
    - detail::EnumLogger<E>
    linkageType: ''
    returnType: detail::EnumLogger<E>
    signature: detail::EnumLogger<E> LogEnum(E e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& operator()(const Value& v) const'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Value
    signature: Value & operator()(const Value& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - ' new_key'
    argTypes:
    - Value*
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: operator()(Value* value, const Value& new_key) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(Value* value, const Value& new_key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: gtl::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 4
    functionsReached:
    - gtl::begin
    linkageType: ''
    returnType: iterator
    signature: iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::end
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: gtl::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 4
    functionsReached:
    - gtl::end
    linkageType: ''
    returnType: iterator
    signature: iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: gtl::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 5
    functionsReached:
    - gtl::begin
    linkageType: ''
    returnType: local_iterator
    signature: local_iterator begin(size_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::get_allocator
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: gtl::get_allocator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::get_allocator
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::hash_funct
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: gtl::hash_funct
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::hash_funct
    linkageType: ''
    returnType: hasher
    signature: hasher hash_funct() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::hash_funct
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: gtl::hash_function
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::hash_funct
    linkageType: ''
    returnType: hasher
    signature: hasher hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::key_eq
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: gtl::key_eq
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::key_eq
    linkageType: ''
    returnType: key_equal
    signature: key_equal key_eq() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: gtl::dense_hash_set
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dense_hash_set()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:197,1
    - Dst: key_equal
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:198,1
    - Dst: allocator_type
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:199,1
    - Dst: Identity
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:200,1
    - Dst: SetKey
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - expected_max_items_in_table
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: gtl::dense_hash_set
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - Identity
    - allocator_type
    - SetKey
    - key_equal
    - hasher
    linkageType: ''
    returnType: void
    signature: "void dense_hash_set(size_type expected_max_items_in_table,\n                          const
      hasher& hf = hasher(),\n                          const key_equal& eql = key_equal(),\n
      \                         const allocator_type& alloc = allocator_type())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:207,1
    - Dst: key_equal
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:208,1
    - Dst: allocator_type
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:209,1
    - Dst: Identity
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:210,1
    - Dst: SetKey
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:210,1
    - Dst: gtl::set_empty_key
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:211,1
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - f
    - l
    - ' empty_key_val'
    argTypes:
    - InputIterator
    - InputIterator
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: gtl::dense_hash_set
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - Identity
    - allocator_type
    - SetKey
    - key_equal
    - gtl::set_empty_key
    - gtl::insert
    - hasher
    linkageType: ''
    returnType: void
    signature: "void dense_hash_set(InputIterator f, InputIterator l,\n                 const
      key_type& empty_key_val,\n                 size_type expected_max_items_in_table
      = 0,\n                 const hasher& hf = hasher(),\n                 const
      key_equal& eql = key_equal(),\n                 const allocator_type& alloc
      = allocator_type())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::clear
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: gtl::clear
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::clear_no_resize
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: gtl::clear_no_resize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::clear_no_resize
    linkageType: ''
    returnType: void
    signature: void clear_no_resize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::swap
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hs'
    argTypes:
    - dense_hash_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: gtl::swap
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 3
    functionsReached:
    - gtl::swap
    linkageType: ''
    returnType: void
    signature: void swap(dense_hash_set& hs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: gtl::size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 3
    functionsReached:
    - gtl::size
    linkageType: ''
    returnType: size_type
    signature: size_type size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::max_size
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: gtl::max_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::max_size
    linkageType: ''
    returnType: size_type
    signature: size_type max_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::empty
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: gtl::empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: gtl::bucket_count
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::bucket_count
    linkageType: ''
    returnType: size_type
    signature: size_type bucket_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:230,1
    - Dst: gtl::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: gtl::load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::size
    - gtl::bucket_count
    linkageType: ''
    returnType: float
    signature: float load_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: gtl::max_load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - get_resizing_parameters
    linkageType: ''
    returnType: float
    signature: float max_load_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:238,1
    - Dst: gtl::set_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - new_grow
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: gtl::max_load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::set_resizing_parameters
    - get_resizing_parameters
    linkageType: ''
    returnType: void
    signature: void max_load_factor(float new_grow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: gtl::min_load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - get_resizing_parameters
    linkageType: ''
    returnType: float
    signature: float min_load_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:252,1
    - Dst: gtl::set_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - new_shrink
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: gtl::min_load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::set_resizing_parameters
    - get_resizing_parameters
    linkageType: ''
    returnType: void
    signature: void min_load_factor(float new_shrink)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::set_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - shrink
    - grow
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: gtl::set_resizing_parameters
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 3
    functionsReached:
    - gtl::set_resizing_parameters
    linkageType: ''
    returnType: void
    signature: void set_resizing_parameters(float shrink, float grow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::resize
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hint
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: gtl::resize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::resize
    linkageType: ''
    returnType: void
    signature: void resize(size_type hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::resize
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hint
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: gtl::rehash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::resize
    linkageType: ''
    returnType: void
    signature: void rehash(size_type hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::find
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: gtl::find
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::find
    linkageType: ''
    returnType: iterator
    signature: iterator find(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::count
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: gtl::count
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::count
    linkageType: ''
    returnType: size_type
    signature: size_type count(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::equal_range
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: gtl::equal_range
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::equal_range
    linkageType: ''
    returnType: std::pair<iterator, iterator>
    signature: std::pair<iterator, iterator> equal_range(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:273,1
    - Dst: std::pair<iterator, bool>
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 3
    functionsReached:
    - std::pair<iterator, bool>
    - gtl::insert
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> insert(const value_type& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:277,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:277,1
    - Dst: std::pair<iterator, bool>
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 4
    functionsReached:
    - std::move
    - std::pair<iterator, bool>
    - gtl::insert
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> insert(value_type&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - InputIterator
    - InputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 5
    functionsReached:
    - gtl::insert
    linkageType: ''
    returnType: void
    signature: void insert(InputIterator f, InputIterator l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 6
    functionsReached:
    - gtl::insert
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator f, const_iterator l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 7
    functionsReached:
    - gtl::insert
    linkageType: ''
    returnType: iterator
    signature: iterator insert(iterator, const value_type& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:288,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 8
    functionsReached:
    - std::move
    - gtl::insert
    linkageType: ''
    returnType: iterator
    signature: iterator insert(iterator, value_type&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:296,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:296,1
    - Dst: std::forward<Args>
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: gtl::emplace
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - gtl::insert
    - value_type
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> emplace(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:301,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:301,1
    - Dst: std::forward<Args>
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: gtl::emplace_hint
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - gtl::insert
    - value_type
    linkageType: ''
    returnType: iterator
    signature: iterator emplace_hint(const_iterator, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::set_empty_key
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: gtl::set_empty_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::set_empty_key
    linkageType: ''
    returnType: void
    signature: void set_empty_key(const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::set_deleted_key
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: gtl::set_deleted_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 1
    functionsReached:
    - gtl::set_deleted_key
    linkageType: ''
    returnType: void
    signature: void set_deleted_key(const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::erase
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: gtl::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::erase
    linkageType: ''
    returnType: size_type
    signature: size_type erase(const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::erase
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 313
    functionName: gtl::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 3
    functionsReached:
    - gtl::erase
    linkageType: ''
    returnType: void
    signature: void erase(iterator it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::erase
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - iterator
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: gtl::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 4
    functionsReached:
    - gtl::erase
    linkageType: ''
    returnType: void
    signature: void erase(iterator f, iterator l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hs'
    argTypes:
    - dense_hash_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: operator==(const dense_hash_set& hs) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const dense_hash_set& hs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hs'
    argTypes:
    - dense_hash_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: operator!=(const dense_hash_set& hs) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const dense_hash_set& hs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& operator()(const Value& v) const'
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Value
    signature: Value & operator()(const Value& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - ' new_key'
    argTypes:
    - Value*
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: operator()(Value* value, const Value& new_key) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(Value* value, const Value& new_key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: gtl::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 6
    functionsReached:
    - gtl::begin
    linkageType: ''
    returnType: iterator
    signature: iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::end
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: gtl::end
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 5
    functionsReached:
    - gtl::end
    linkageType: ''
    returnType: iterator
    signature: iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::begin
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: gtl::begin
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 7
    functionsReached:
    - gtl::begin
    linkageType: ''
    returnType: local_iterator
    signature: local_iterator begin(size_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::get_allocator
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: gtl::get_allocator
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::get_allocator
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::hash_funct
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: gtl::hash_funct
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 3
    functionsReached:
    - gtl::hash_funct
    linkageType: ''
    returnType: hasher
    signature: hasher hash_funct() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::hash_funct
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: gtl::hash_function
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::hash_funct
    linkageType: ''
    returnType: hasher
    signature: hasher hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::key_eq
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: gtl::key_eq
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::key_eq
    linkageType: ''
    returnType: key_equal
    signature: key_equal key_eq() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: gtl::dense_hash_set
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dense_hash_set()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:197,1
    - Dst: key_equal
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:198,1
    - Dst: allocator_type
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:199,1
    - Dst: Identity
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:200,1
    - Dst: SetKey
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - expected_max_items_in_table
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: gtl::dense_hash_set
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - Identity
    - allocator_type
    - SetKey
    - key_equal
    - hasher
    linkageType: ''
    returnType: void
    signature: "void dense_hash_set(size_type expected_max_items_in_table,\n                          const
      hasher& hf = hasher(),\n                          const key_equal& eql = key_equal(),\n
      \                         const allocator_type& alloc = allocator_type())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:207,1
    - Dst: key_equal
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:208,1
    - Dst: allocator_type
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:209,1
    - Dst: Identity
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:210,1
    - Dst: SetKey
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:210,1
    - Dst: gtl::set_empty_key
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:211,1
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - f
    - l
    - ' empty_key_val'
    argTypes:
    - InputIterator
    - InputIterator
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: gtl::dense_hash_set
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - Identity
    - allocator_type
    - SetKey
    - key_equal
    - gtl::set_empty_key
    - gtl::insert
    - hasher
    linkageType: ''
    returnType: void
    signature: "void dense_hash_set(InputIterator f, InputIterator l,\n                 const
      key_type& empty_key_val,\n                 size_type expected_max_items_in_table
      = 0,\n                 const hasher& hf = hasher(),\n                 const
      key_equal& eql = key_equal(),\n                 const allocator_type& alloc
      = allocator_type())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::clear
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: gtl::clear
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::clear_no_resize
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: gtl::clear_no_resize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::clear_no_resize
    linkageType: ''
    returnType: void
    signature: void clear_no_resize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::swap
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hs'
    argTypes:
    - dense_hash_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: gtl::swap
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 4
    functionsReached:
    - gtl::swap
    linkageType: ''
    returnType: void
    signature: void swap(dense_hash_set& hs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: gtl::size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 5
    functionsReached:
    - gtl::size
    linkageType: ''
    returnType: size_type
    signature: size_type size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::max_size
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: gtl::max_size
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::max_size
    linkageType: ''
    returnType: size_type
    signature: size_type max_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::empty
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: gtl::empty
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: gtl::bucket_count
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 3
    functionsReached:
    - gtl::bucket_count
    linkageType: ''
    returnType: size_type
    signature: size_type bucket_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::size
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:230,1
    - Dst: gtl::bucket_count
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: gtl::load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::size
    - gtl::bucket_count
    linkageType: ''
    returnType: float
    signature: float load_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: gtl::max_load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - get_resizing_parameters
    linkageType: ''
    returnType: float
    signature: float max_load_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:238,1
    - Dst: gtl::set_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - new_grow
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: gtl::max_load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::set_resizing_parameters
    - get_resizing_parameters
    linkageType: ''
    returnType: void
    signature: void max_load_factor(float new_grow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: gtl::min_load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - get_resizing_parameters
    linkageType: ''
    returnType: float
    signature: float min_load_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:252,1
    - Dst: gtl::set_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - new_shrink
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: gtl::min_load_factor
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::set_resizing_parameters
    - get_resizing_parameters
    linkageType: ''
    returnType: void
    signature: void min_load_factor(float new_shrink)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::set_resizing_parameters
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - shrink
    - grow
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: gtl::set_resizing_parameters
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 6
    functionsReached:
    - gtl::set_resizing_parameters
    linkageType: ''
    returnType: void
    signature: void set_resizing_parameters(float shrink, float grow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::resize
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hint
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: gtl::resize
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 3
    functionsReached:
    - gtl::resize
    linkageType: ''
    returnType: void
    signature: void resize(size_type hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::resize
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hint
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: gtl::rehash
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - gtl::resize
    linkageType: ''
    returnType: void
    signature: void rehash(size_type hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::find
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: gtl::find
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::find
    linkageType: ''
    returnType: iterator
    signature: iterator find(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::count
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: gtl::count
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::count
    linkageType: ''
    returnType: size_type
    signature: size_type count(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::equal_range
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: gtl::equal_range
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::equal_range
    linkageType: ''
    returnType: std::pair<iterator, iterator>
    signature: std::pair<iterator, iterator> equal_range(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:273,1
    - Dst: std::pair<iterator, bool>
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 12
    functionsReached:
    - std::pair<iterator, bool>
    - gtl::insert
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> insert(const value_type& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:277,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:277,1
    - Dst: std::pair<iterator, bool>
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 13
    functionsReached:
    - std::move
    - std::pair<iterator, bool>
    - gtl::insert
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> insert(value_type&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - InputIterator
    - InputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 14
    functionsReached:
    - gtl::insert
    linkageType: ''
    returnType: void
    signature: void insert(InputIterator f, InputIterator l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 15
    functionsReached:
    - gtl::insert
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator f, const_iterator l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 16
    functionsReached:
    - gtl::insert
    linkageType: ''
    returnType: iterator
    signature: iterator insert(iterator, const value_type& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:288,1
    - Dst: std::move
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: gtl::insert
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 17
    functionsReached:
    - std::move
    - gtl::insert
    linkageType: ''
    returnType: iterator
    signature: iterator insert(iterator, value_type&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:296,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:296,1
    - Dst: std::forward<Args>
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: gtl::emplace
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - gtl::insert
    - value_type
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> emplace(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::insert
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:301,1
    - Dst: value_type
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:301,1
    - Dst: std::forward<Args>
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: gtl::emplace_hint
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - gtl::insert
    - value_type
    linkageType: ''
    returnType: iterator
    signature: iterator emplace_hint(const_iterator, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::set_empty_key
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: gtl::set_empty_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 4
    functionsReached:
    - gtl::set_empty_key
    linkageType: ''
    returnType: void
    signature: void set_empty_key(const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::set_deleted_key
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: gtl::set_deleted_key
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 2
    functionsReached:
    - gtl::set_deleted_key
    linkageType: ''
    returnType: void
    signature: void set_deleted_key(const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::erase
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: gtl::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 5
    functionsReached:
    - gtl::erase
    linkageType: ''
    returnType: size_type
    signature: size_type erase(const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::erase
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 313
    functionName: gtl::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 6
    functionsReached:
    - gtl::erase
    linkageType: ''
    returnType: void
    signature: void erase(iterator it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtl::erase
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - l
    argTypes:
    - iterator
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: gtl::erase
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 7
    functionsReached:
    - gtl::erase
    linkageType: ''
    returnType: void
    signature: void erase(iterator f, iterator l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hs'
    argTypes:
    - dense_hash_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: operator==(const dense_hash_set& hs) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const dense_hash_set& hs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hs'
    argTypes:
    - dense_hash_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: operator!=(const dense_hash_set& hs) const
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const dense_hash_set& hs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' hs1'
    - ' hs2'
    argTypes:
    - dense_hash_set<Val, HashFcn, EqualKey, Alloc>
    - dense_hash_set<Val, HashFcn, EqualKey, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: swap
    functionSourceFile: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    functionUses: 67
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: "void swap(dense_hash_set<Val, HashFcn, EqualKey, Alloc>& hs1,\n                 dense_hash_set<Val,
      HashFcn, EqualKey, Alloc>& hs2) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: util_random::SharedBitGen::SharedBitGen
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SharedBitGen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: util_random::SharedBitGen::SharedBitGen
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SharedBitGen(SharedBitGen&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(SharedBitGen&&) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SharedBitGen
    signature: SharedBitGen & operator=(SharedBitGen&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: util_random::SharedBitGen::SharedBitGen
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SharedBitGen(const SharedBitGen&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& operator=(const SharedBitGen&)'
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SharedBitGen
    signature: SharedBitGen & operator=(const SharedBitGen&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: util_random::SharedBitGen::result_type
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_type(min)()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: util_random::SharedBitGen::result_type
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_type(max)()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: operator()()
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type operator()()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: util_random::SharedBitGen::SharedBitGen
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SharedBitGen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: util_random::SharedBitGen::SharedBitGen
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SharedBitGen(SharedBitGen&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(SharedBitGen&&) noexcept'
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SharedBitGen
    signature: SharedBitGen & operator=(SharedBitGen&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: util_random::SharedBitGen::SharedBitGen
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SharedBitGen(const SharedBitGen&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& operator=(const SharedBitGen&)'
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SharedBitGen
    signature: SharedBitGen & operator=(const SharedBitGen&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: util_random::SharedBitGen::result_type
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_type(min)()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: util_random::SharedBitGen::result_type
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_type(max)()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: operator()()
    functionSourceFile: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type operator()()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::MakeUint128
      Src: /src/s2geometry/src/s2/util/endian/endian.h:28,1
    - Dst: s2endian::byteswap
      Src: /src/s2geometry/src/s2/util/endian/endian.h:28,1
    - Dst: absl::Uint128Low64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:28,1
    - Dst: s2endian::byteswap
      Src: /src/s2geometry/src/s2/util/endian/endian.h:29,1
    - Dst: absl::Uint128High64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - host_int
    argTypes:
    - absl::uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: s2endian::byteswap
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 1
    functionsReached:
    - s2endian::byteswap
    - absl::Uint128High64
    - absl::MakeUint128
    - absl::Uint128Low64
    linkageType: ''
    returnType: absl::uint128
    signature: absl::uint128 byteswap(absl::uint128 host_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::MakeUint128
      Src: /src/s2geometry/src/s2/util/endian/endian.h:28,1
    - Dst: s2endian::byteswap
      Src: /src/s2geometry/src/s2/util/endian/endian.h:28,1
    - Dst: absl::Uint128Low64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:28,1
    - Dst: s2endian::byteswap
      Src: /src/s2geometry/src/s2/util/endian/endian.h:29,1
    - Dst: absl::Uint128High64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - host_int
    argTypes:
    - absl::uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: s2endian::byteswap
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 2
    functionsReached:
    - s2endian::byteswap
    - absl::Uint128High64
    - absl::MakeUint128
    - absl::Uint128Low64
    linkageType: ''
    returnType: absl::uint128
    signature: absl::uint128 byteswap(absl::uint128 host_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::byteswap_if_big_endian
      Src: /src/s2geometry/src/s2/util/endian/endian.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: LittleEndian::FromHost16
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 0
    functionsReached:
    - LittleEndian::byteswap_if_big_endian
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t FromHost16(uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::byteswap_if_big_endian
      Src: /src/s2geometry/src/s2/util/endian/endian.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: LittleEndian::ToHost16
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 0
    functionsReached:
    - LittleEndian::byteswap_if_big_endian
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ToHost16(uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::byteswap_if_big_endian
      Src: /src/s2geometry/src/s2/util/endian/endian.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: LittleEndian::FromHost32
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 0
    functionsReached:
    - LittleEndian::byteswap_if_big_endian
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t FromHost32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::byteswap_if_big_endian
      Src: /src/s2geometry/src/s2/util/endian/endian.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: LittleEndian::ToHost32
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 0
    functionsReached:
    - LittleEndian::byteswap_if_big_endian
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ToHost32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::byteswap_if_big_endian
      Src: /src/s2geometry/src/s2/util/endian/endian.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: LittleEndian::FromHost64
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 2
    functionsReached:
    - LittleEndian::byteswap_if_big_endian
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FromHost64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::byteswap_if_big_endian
      Src: /src/s2geometry/src/s2/util/endian/endian.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: LittleEndian::ToHost64
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 2
    functionsReached:
    - LittleEndian::byteswap_if_big_endian
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ToHost64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::byteswap_if_big_endian
      Src: /src/s2geometry/src/s2/util/endian/endian.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - absl::uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: LittleEndian::FromHost128
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 0
    functionsReached:
    - LittleEndian::byteswap_if_big_endian
    linkageType: ''
    returnType: absl::uint128
    signature: absl::uint128 FromHost128(absl::uint128 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::byteswap_if_big_endian
      Src: /src/s2geometry/src/s2/util/endian/endian.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - absl::uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: LittleEndian::ToHost128
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 0
    functionsReached:
    - LittleEndian::byteswap_if_big_endian
    linkageType: ''
    returnType: absl::uint128
    signature: absl::uint128 ToHost128(absl::uint128 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: LittleEndian::IsLittleEndian
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLittleEndian()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:63,1
    - Dst: LittleEndian::byteswap_if_big_endian
      Src: /src/s2geometry/src/s2/util/endian/endian.h:64,1
    - Dst: gtl::UnalignedLoad<T>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: LittleEndian::Load
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 0
    functionsReached:
    - gtl::UnalignedLoad<T>
    - reinterpret_cast<const char*>
    - LittleEndian::byteswap_if_big_endian
    linkageType: ''
    returnType: T
    signature: T Load(const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:68,1
    - Dst: LittleEndian::ToHost16
      Src: /src/s2geometry/src/s2/util/endian/endian.h:69,1
    - Dst: gtl::UnalignedLoad<uint16_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: LittleEndian::Load16
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 1
    functionsReached:
    - LittleEndian::ToHost16
    - reinterpret_cast<const char*>
    - gtl::UnalignedLoad<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Load16(const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:73,1
    - Dst: gtl::UnalignedStore<uint16_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:74,1
    - Dst: LittleEndian::FromHost16
      Src: /src/s2geometry/src/s2/util/endian/endian.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: LittleEndian::Store16
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 1
    functionsReached:
    - LittleEndian::FromHost16
    - reinterpret_cast<char*>
    - gtl::UnalignedStore<uint16_t>
    linkageType: ''
    returnType: void
    signature: void Store16(void* p, uint16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:78,1
    - Dst: LittleEndian::ToHost32
      Src: /src/s2geometry/src/s2/util/endian/endian.h:79,1
    - Dst: gtl::UnalignedLoad<uint32_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: LittleEndian::Load32
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 1
    functionsReached:
    - LittleEndian::ToHost32
    - reinterpret_cast<const char*>
    - gtl::UnalignedLoad<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Load32(const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:83,1
    - Dst: gtl::UnalignedStore<uint32_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:84,1
    - Dst: LittleEndian::FromHost32
      Src: /src/s2geometry/src/s2/util/endian/endian.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: LittleEndian::Store32
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 1
    functionsReached:
    - LittleEndian::FromHost32
    - reinterpret_cast<char*>
    - gtl::UnalignedStore<uint32_t>
    linkageType: ''
    returnType: void
    signature: void Store32(void* p, uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:88,1
    - Dst: LittleEndian::ToHost64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:89,1
    - Dst: gtl::UnalignedLoad<uint64_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: LittleEndian::Load64
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 1
    functionsReached:
    - LittleEndian::ToHost64
    - reinterpret_cast<const char*>
    - gtl::UnalignedLoad<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Load64(const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:93,1
    - Dst: gtl::UnalignedStore<uint64_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:94,1
    - Dst: LittleEndian::FromHost64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: LittleEndian::Store64
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 1
    functionsReached:
    - gtl::UnalignedStore<uint64_t>
    - reinterpret_cast<char*>
    - LittleEndian::FromHost64
    linkageType: ''
    returnType: void
    signature: void Store64(void* p, uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:98,1
    - Dst: absl::MakeUint128
      Src: /src/s2geometry/src/s2/util/endian/endian.h:99,1
    - Dst: LittleEndian::ToHost64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:100,1
    - Dst: gtl::UnalignedLoad<uint64_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:100,1
    - Dst: LittleEndian::ToHost64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:101,1
    - Dst: gtl::UnalignedLoad<uint64_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: LittleEndian::Load128
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 1
    functionsReached:
    - LittleEndian::ToHost64
    - reinterpret_cast<const char*>
    - absl::MakeUint128
    - gtl::UnalignedLoad<uint64_t>
    linkageType: ''
    returnType: absl::uint128
    signature: absl::uint128 Load128(const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:105,1
    - Dst: gtl::UnalignedStore<uint64_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:106,1
    - Dst: LittleEndian::FromHost64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:106,1
    - Dst: absl::Uint128Low64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:106,1
    - Dst: gtl::UnalignedStore<uint64_t>
      Src: /src/s2geometry/src/s2/util/endian/endian.h:107,1
    - Dst: LittleEndian::FromHost64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:107,1
    - Dst: absl::Uint128High64
      Src: /src/s2geometry/src/s2/util/endian/endian.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - void*
    - absl::uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: LittleEndian::Store128
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 1
    functionsReached:
    - absl::Uint128Low64
    - reinterpret_cast<char*>
    - LittleEndian::FromHost64
    - gtl::UnalignedStore<uint64_t>
    - absl::Uint128High64
    linkageType: ''
    returnType: void
    signature: void Store128(void* p, const absl::uint128 v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: byteswap
      Src: /src/s2geometry/src/s2/util/endian/endian.h:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: LittleEndian::byteswap_if_big_endian
    functionSourceFile: /src/s2geometry/src/s2/util/endian/endian.h
    functionUses: 9
    functionsReached:
    - byteswap
    linkageType: ''
    returnType: T
    signature: T byteswap_if_big_endian(T x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val0
    - val1
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: util_bits::InterleaveUint8
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t InterleaveUint8(const uint8_t val0, const uint8_t val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val0
    - val1
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: util_bits::InterleaveUint16
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t InterleaveUint16(const uint16_t val0, const uint16_t val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:95,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:96,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:97,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:98,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:99,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:100,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:101,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val0
    - val1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: util_bits::InterleaveUint32
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 4
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t InterleaveUint32(const uint32_t val0, const uint32_t val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: util_bits::ExtractEvenBits
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ExtractEvenBits(uint16_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:117,1
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - val0
    - val1
    argTypes:
    - uint16_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: util_bits::DeinterleaveUint8
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached:
    - util_bits::ExtractEvenBits
    linkageType: ''
    returnType: void
    signature: void DeinterleaveUint8(uint16_t val, uint8_t *val0, uint8_t *val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: util_bits::ExtractEvenBits
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ExtractEvenBits(uint32_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:135,1
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - code
    - val0
    - val1
    argTypes:
    - uint32_t
    - uint16_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: util_bits::DeinterleaveUint16
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached:
    - util_bits::ExtractEvenBits
    linkageType: ''
    returnType: void
    signature: void DeinterleaveUint16(uint32_t code, uint16_t *val0, uint16_t *val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: util_bits::ExtractEvenBits
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ExtractEvenBits(uint64_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:155,1
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - code
    - val0
    - val1
    argTypes:
    - uint64_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: util_bits::DeinterleaveUint32
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 6
    functionsReached:
    - util_bits::ExtractEvenBits
    linkageType: ''
    returnType: void
    signature: void DeinterleaveUint32(uint64_t code, uint32_t *val0, uint32_t *val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: util_bits::SplitFor3
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t SplitFor3(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:200,1
    - Dst: util_bits::SplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:201,1
    - Dst: util_bits::SplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:201,1
    - Dst: util_bits::SplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val0
    - val1
    - val2
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: util_bits::InterleaveUint8
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - util_bits::SplitFor3
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t InterleaveUint8(uint8_t val0, uint8_t val1, uint8_t val2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: util_bits::UnsplitFor3
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t UnsplitFor3(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::UnsplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:244,1
    - Dst: util_bits::UnsplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:245,1
    - Dst: util_bits::UnsplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - x
    - a
    - b
    - c
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: util_bits::DeinterleaveUint8
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached:
    - util_bits::UnsplitFor3
    linkageType: ''
    returnType: void
    signature: void DeinterleaveUint8(uint32_t x, uint8_t *a, uint8_t *b, uint8_t
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val0
    - val1
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: util_bits::InterleaveUint8
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t InterleaveUint8(const uint8_t val0, const uint8_t val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val0
    - val1
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: util_bits::InterleaveUint16
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t InterleaveUint16(const uint16_t val0, const uint16_t val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:95,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:96,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:97,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:98,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:99,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:100,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:101,1
    - Dst: static_cast<uint64_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val0
    - val1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: util_bits::InterleaveUint32
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 4
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t InterleaveUint32(const uint32_t val0, const uint32_t val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: util_bits::ExtractEvenBits
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 3
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ExtractEvenBits(uint16_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:117,1
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - val0
    - val1
    argTypes:
    - uint16_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: util_bits::DeinterleaveUint8
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached:
    - util_bits::ExtractEvenBits
    linkageType: ''
    returnType: void
    signature: void DeinterleaveUint8(uint16_t val, uint8_t *val0, uint8_t *val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: util_bits::ExtractEvenBits
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ExtractEvenBits(uint32_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:135,1
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - code
    - val0
    - val1
    argTypes:
    - uint32_t
    - uint16_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: util_bits::DeinterleaveUint16
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached:
    - util_bits::ExtractEvenBits
    linkageType: ''
    returnType: void
    signature: void DeinterleaveUint16(uint32_t code, uint16_t *val0, uint16_t *val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: util_bits::ExtractEvenBits
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 5
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ExtractEvenBits(uint64_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:155,1
    - Dst: util_bits::ExtractEvenBits
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - code
    - val0
    - val1
    argTypes:
    - uint64_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: util_bits::DeinterleaveUint32
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 6
    functionsReached:
    - util_bits::ExtractEvenBits
    linkageType: ''
    returnType: void
    signature: void DeinterleaveUint32(uint64_t code, uint32_t *val0, uint32_t *val1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: util_bits::SplitFor3
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t SplitFor3(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:200,1
    - Dst: util_bits::SplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:201,1
    - Dst: util_bits::SplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:201,1
    - Dst: util_bits::SplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val0
    - val1
    - val2
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: util_bits::InterleaveUint8
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - util_bits::SplitFor3
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t InterleaveUint8(uint8_t val0, uint8_t val1, uint8_t val2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: util_bits::UnsplitFor3
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t UnsplitFor3(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_bits::UnsplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:244,1
    - Dst: util_bits::UnsplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:245,1
    - Dst: util_bits::UnsplitFor3
      Src: /src/s2geometry/src/s2/util/bits/bit-interleave.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - x
    - a
    - b
    - c
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: util_bits::DeinterleaveUint8
    functionSourceFile: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
    functionUses: 0
    functionsReached:
    - util_bits::UnsplitFor3
    linkageType: ''
    returnType: void
    signature: void DeinterleaveUint8(uint32_t x, uint8_t *a, uint8_t *b, uint8_t
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: get_last_sys_error
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_last_sys_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: clear_sys_error
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_sys_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: set_sys_error
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_sys_error(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: get_last_sys_error
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_last_sys_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: clear_sys_error
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_sys_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: set_sys_error
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_sys_error(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: HAS_LFN_SUPPORT
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_LFN_SUPPORT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: strlen
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strlen(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: _strlen31
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _strlen31(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: EXIT
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: check_winnt
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_winnt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: check_win_minplat
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_win_minplat(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: check_winnt
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_winnt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: check_win_minplat
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_win_minplat(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: EXIT
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: EXIT
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: sleep
    functionSourceFile: /src/openssl-1.1.1g/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sleep(a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:60,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:61,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:62,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:63,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:65,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:66,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:67,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:68,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:69,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 75
    functionName: digest_md5
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_input_blocksize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_final
    - EVP_MD_meth_new
    - EVP_MD_meth_free
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_md5(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:89,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:90,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:91,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:92,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:94,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:95,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:96,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:97,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: digest_sha1
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_input_blocksize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_final
    - EVP_MD_meth_new
    - EVP_MD_meth_free
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_sha1(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:118,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:119,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:120,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:121,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:123,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:124,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:125,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:126,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:127,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 133
    functionName: digest_sha256
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_input_blocksize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_final
    - EVP_MD_meth_new
    - EVP_MD_meth_free
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_sha256(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:149,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:150,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:151,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:152,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:154,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:155,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:156,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:157,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 164
    functionName: digest_sha384
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_input_blocksize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_final
    - EVP_MD_meth_new
    - EVP_MD_meth_free
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_sha384(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:171,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:172,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:173,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:174,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:176,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:177,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:178,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:179,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 186
    functionName: digest_sha512
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_input_blocksize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_final
    - EVP_MD_meth_new
    - EVP_MD_meth_free
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_sha512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:189,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:191,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:193,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:195,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: destroy_digests
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_digests(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: digest_md5
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:208,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:209,1
    - Dst: digest_sha1
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:210,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:211,1
    - Dst: digest_sha256
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:212,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:213,1
    - Dst: digest_sha384
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:214,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:215,1
    - Dst: digest_sha512
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:216,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 223
    functionName: ossltest_digest_nids
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - digest_sha1
    - EVP_MD_type
    - digest_md5
    - digest_sha256
    - digest_sha512
    - digest_sha384
    linkageType: ''
    returnType: int
    signature: int ossltest_digest_nids(const int **nids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:250,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:253,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:254,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:257,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:259,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:261,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:262,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:262,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 267
    functionName: ossltest_aes_128_cbc
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_impl_ctx_size
    - EVP_aes_128_cbc
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_init
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *ossltest_aes_128_cbc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:279,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:282,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:283,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:284,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:286,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:288,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:290,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:291,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:291,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:292,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 296
    functionName: ossltest_aes_128_gcm
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_impl_ctx_size
    - EVP_aes_128_gcm
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_ctrl
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_init
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *ossltest_aes_128_gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:300,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: destroy_ciphers
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_ciphers(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_OSSLTEST_strings
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:308,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:310,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:311,1
    - Dst: ENGINE_set_digests
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:312,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:313,1
    - Dst: ENGINE_set_RAND
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:314,1
    - Dst: ossltest_rand_method
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:314,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:315,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:316,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:317,1
    - Dst: OSSLTESTerr
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 323
    functionName: bind_ossltest
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ossltest_rand_method
    - ENGINE_set_destroy_function
    - OSSLTESTerr
    - ERR_load_OSSLTEST_strings
    - ENGINE_set_RAND
    - ENGINE_set_init_function
    - ENGINE_set_name
    - ENGINE_set_digests
    - ENGINE_set_finish_function
    - ENGINE_set_id
    - ENGINE_set_ciphers
    linkageType: ''
    returnType: int
    signature: int bind_ossltest(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:328,1
    - Dst: bind_ossltest
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: bind_helper
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - strcmp
    - bind_ossltest
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:341,1
    - Dst: bind_ossltest
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:344,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 349
    functionName: engine_ossltest
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ENGINE_new
    - ENGINE_free
    - bind_ossltest
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_ossltest(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_ossltest
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:354,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:357,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:358,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 360
    functionName: ENGINE_load_ossltest
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ENGINE_free
    - ERR_clear_error
    - engine_ossltest
    linkageType: ''
    returnType: void
    signature: void ENGINE_load_ossltest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: ossltest_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossltest_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: ossltest_finish
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossltest_finish(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_digests
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:377,1
    - Dst: destroy_ciphers
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:378,1
    - Dst: ERR_unload_OSSLTEST_strings
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: ossltest_destroy
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - destroy_digests
    - ERR_unload_OSSLTEST_strings
    - destroy_ciphers
    linkageType: ''
    returnType: int
    signature: int ossltest_destroy(ENGINE *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossltest_digest_nids
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:389,1
    - Dst: digest_md5
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:394,1
    - Dst: digest_sha1
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:397,1
    - Dst: digest_sha256
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:400,1
    - Dst: digest_sha384
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:403,1
    - Dst: digest_sha512
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:406,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 414
    functionName: ossltest_digests
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - digest_sha1
    - ossltest_digest_nids
    - digest_md5
    - digest_sha256
    - digest_sha512
    - digest_sha384
    linkageType: ''
    returnType: int
    signature: "int ossltest_digests(ENGINE *e, const EVP_MD **digest,\n                          const
      int **nids, int nid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossltest_aes_128_cbc
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:429,1
    - Dst: ossltest_aes_128_gcm
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 440
    functionName: ossltest_ciphers
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ossltest_aes_128_cbc
    - ossltest_aes_128_gcm
    linkageType: ''
    returnType: int
    signature: "int ossltest_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                          const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - md
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 449
    functionName: fill_known_data
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_known_data(unsigned char *md, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 459
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:461,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: digest_md5_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - data
    - MD5_Init
    linkageType: ''
    returnType: int
    signature: int digest_md5_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:467,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: digest_md5_update
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - MD5_Update
    - data
    linkageType: ''
    returnType: int
    signature: "int digest_md5_update(EVP_MD_CTX *ctx, const void *data,\n                             size_t
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:473,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:473,1
    - Dst: fill_known_data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 479
    functionName: digest_md5_final
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - fill_known_data
    - MD5_Final
    - data
    linkageType: ''
    returnType: int
    signature: int digest_md5_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 94
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:488,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: digest_sha1_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA1_Init
    - data
    linkageType: ''
    returnType: int
    signature: int digest_sha1_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:494,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: digest_sha1_update
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA1_Update
    - data
    linkageType: ''
    returnType: int
    signature: "int digest_sha1_update(EVP_MD_CTX *ctx, const void *data,\n                              size_t
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:500,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:500,1
    - Dst: fill_known_data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 506
    functionName: digest_sha1_final
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA1_Final
    - fill_known_data
    - data
    linkageType: ''
    returnType: int
    signature: int digest_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 97
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:515,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: digest_sha256_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - data
    - SHA256_Init
    linkageType: ''
    returnType: int
    signature: int digest_sha256_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:521,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: digest_sha256_update
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - data
    linkageType: ''
    returnType: int
    signature: "int digest_sha256_update(EVP_MD_CTX *ctx, const void *data,\n                                size_t
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:527,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:527,1
    - Dst: fill_known_data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 533
    functionName: digest_sha256_final
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - fill_known_data
    - SHA256_Final
    - data
    linkageType: ''
    returnType: int
    signature: int digest_sha256_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 540
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 100
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:542,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: digest_sha384_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA384_Init
    - data
    linkageType: ''
    returnType: int
    signature: int digest_sha384_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:547,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: digest_sha512_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - data
    linkageType: ''
    returnType: int
    signature: int digest_sha512_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:553,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 554
    functionName: digest_sha512_update
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - data
    - SHA512_Update
    linkageType: ''
    returnType: int
    signature: "int digest_sha512_update(EVP_MD_CTX *ctx, const void *data,\n                                size_t
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:560,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:560,1
    - Dst: fill_known_data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 566
    functionName: digest_sha384_final
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    - fill_known_data
    - data
    linkageType: ''
    returnType: int
    signature: int digest_sha384_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:571,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:571,1
    - Dst: fill_known_data
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 577
    functionName: digest_sha512_final
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    - fill_known_data
    - data
    linkageType: ''
    returnType: int
    signature: int digest_sha512_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_get_init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:586,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: ossltest_aes128_init_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_get_init
    - EVP_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_init_key(EVP_CIPHER_CTX *ctx, const unsigned char
      *key,\n                             const unsigned char *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:595,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:603,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:606,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:606,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:610,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 614
    functionName: ossltest_aes128_cbc_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_get_do_cipher
    - OPENSSL_malloc
    - EVP_aes_128_cbc
    - OPENSSL_free
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char
      *out,\n                               const unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_get_init
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:619,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 620
    functionName: ossltest_aes128_gcm_init_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_get_init
    - EVP_aes_128_gcm
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned
      char *key,\n                             const unsigned char *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:626,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:634,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:637,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:637,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:641,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 645
    functionName: ossltest_aes128_gcm_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_get_do_cipher
    - OPENSSL_malloc
    - EVP_aes_128_gcm
    - OPENSSL_free
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char
      *out,\n                               const unsigned char *in, size_t inl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:651,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:651,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/engines/e_ossltest.c:659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 667
    functionName: ossltest_aes128_gcm_ctrl
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_get_ctrl
    - EVP_aes_128_gcm
    - memset
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_gcm_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                   void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 676
    functionName: ossltest_rand_bytes
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossltest_rand_bytes(unsigned char *buf, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: ossltest_rand_status
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossltest_rand_status(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 696
    functionName: ossltest_rand_method
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: RAND_METHOD
    signature: RAND_METHOD *ossltest_rand_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: AFALGerr
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg_err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AFALGerr(f, r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-1.1.1g/engines/e_dasync_err.c:45,1
    - Dst: ERR_load_strings
      Src: /src/openssl-1.1.1g/engines/e_dasync_err.c:49,1
    - Dst: ERR_load_strings
      Src: /src/openssl-1.1.1g/engines/e_dasync_err.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: ERR_load_DASYNC_strings
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings
    - ERR_get_next_error_library
    linkageType: ''
    returnType: int
    signature: int ERR_load_DASYNC_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openssl-1.1.1g/engines/e_dasync_err.c:61,1
    - Dst: ERR_unload_strings
      Src: /src/openssl-1.1.1g/engines/e_dasync_err.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: ERR_unload_DASYNC_strings
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync_err.c
    functionUses: 0
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: void ERR_unload_DASYNC_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-1.1.1g/engines/e_dasync_err.c:71,1
    - Dst: ERR_PUT_error
      Src: /src/openssl-1.1.1g/engines/e_dasync_err.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: ERR_DASYNC_error
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync_err.c
    functionUses: 0
    functionsReached:
    - ERR_PUT_error
    - ERR_get_next_error_library
    linkageType: ''
    returnType: void
    signature: void ERR_DASYNC_error(int function, int reason, char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: dasync_sha1
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *dasync_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: destroy_digests
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 1
    functionsReached:
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_digests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dasync_sha1
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:86,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: dasync_digest_nids
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_MD_type
    - dasync_sha1
    linkageType: ''
    returnType: int
    signature: int dasync_digest_nids(const int **nids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: dasync_aes_128_cbc
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *dasync_aes_128_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: dasync_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *dasync_aes_128_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:175,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: destroy_ciphers
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_ciphers(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_new
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:193,1
    - Dst: RSA_meth_set_pub_enc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:194,1
    - Dst: RSA_meth_set_pub_dec
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:195,1
    - Dst: RSA_meth_set_priv_enc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:196,1
    - Dst: RSA_meth_set_priv_dec
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:197,1
    - Dst: RSA_meth_set_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:198,1
    - Dst: RSA_meth_set_bn_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:199,1
    - Dst: RSA_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:200,1
    - Dst: RSA_meth_set_finish
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:201,1
    - Dst: DASYNCerr
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:202,1
    - Dst: ERR_load_DASYNC_strings
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:207,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:209,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:210,1
    - Dst: ENGINE_set_RSA
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:211,1
    - Dst: ENGINE_set_digests
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:212,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:213,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:214,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:215,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:216,1
    - Dst: DASYNCerr
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:217,1
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:225,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:227,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:228,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:229,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:231,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:232,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:233,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:234,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:235,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:239,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:243,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:244,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:248,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:250,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:252,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:254,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:256,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:258,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:262,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:267,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:268,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:273,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:275,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:277,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:279,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:281,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:283,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 26
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 288
    functionName: bind_dasync
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - RSA_meth_new
    - ENGINE_set_RSA
    - RSA_meth_set_priv_dec
    - ENGINE_set_destroy_function
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_flags
    - RSA_meth_set_init
    - EVP_MD_meth_set_init
    - ENGINE_set_finish_function
    - RSA_meth_set_bn_mod_exp
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_final
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_ctrl
    - EVP_CIPHER_meth_set_iv_length
    - EVP_MD_meth_new
    - RSA_meth_set_pub_dec
    - EVP_MD_meth_free
    - EVP_CIPHER_meth_set_init
    - RSA_meth_set_mod_exp
    - DASYNCerr
    - EVP_CIPHER_meth_new
    - RSA_meth_set_finish
    - EVP_CIPHER_meth_free
    - ERR_load_DASYNC_strings
    - ENGINE_set_ciphers
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_MD_meth_set_input_blocksize
    - EVP_CIPHER_meth_set_do_cipher
    - ENGINE_set_init_function
    - ENGINE_set_name
    - ENGINE_set_digests
    - EVP_MD_meth_set_result_size
    - RSA_meth_set_priv_enc
    - EVP_CIPHER_meth_set_cleanup
    - ENGINE_set_id
    - RSA_meth_set_pub_enc
    linkageType: ''
    returnType: int
    signature: int bind_dasync(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:293,1
    - Dst: bind_dasync
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: bind_helper
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - strcmp
    - bind_dasync
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:306,1
    - Dst: bind_dasync
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:309,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: engine_dasync
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - bind_dasync
    - ENGINE_new
    - ENGINE_free
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_dasync(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_dasync
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:318,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:321,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:322,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 324
    functionName: engine_load_dasync_int
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - engine_dasync
    - ENGINE_free
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: void engine_load_dasync_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: dasync_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dasync_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: dasync_finish
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dasync_finish(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_digests
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:340,1
    - Dst: destroy_ciphers
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:341,1
    - Dst: RSA_meth_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:342,1
    - Dst: ERR_unload_DASYNC_strings
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: dasync_destroy
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - destroy_digests
    - ERR_unload_DASYNC_strings
    - RSA_meth_free
    - destroy_ciphers
    linkageType: ''
    returnType: int
    signature: int dasync_destroy(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dasync_digest_nids
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:353,1
    - Dst: dasync_sha1
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 366
    functionName: dasync_digests
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_digest_nids
    - dasync_sha1
    linkageType: ''
    returnType: int
    signature: "int dasync_digests(ENGINE *e, const EVP_MD **digest,\n                          const
      int **nids, int nid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dasync_aes_128_cbc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:381,1
    - Dst: dasync_aes_128_cbc_hmac_sha1
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 392
    functionName: dasync_ciphers
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_aes_128_cbc_hmac_sha1
    - dasync_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: "int dasync_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                                   const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:399,1
    - Dst: CloseHandle
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:400,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:402,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:403,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - key
    - readfd
    - pvwritefd
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 406
    functionName: wait_cleanup
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - OPENSSL_free
    - close
    linkageType: ''
    returnType: void
    signature: "void wait_cleanup(ASYNC_WAIT_CTX *ctx, const void *key,\n                         OSSL_ASYNC_FD
      readfd, void *pvwritefd)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:422,1
    - Dst: ASYNC_get_wait_ctx
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:425,1
    - Dst: ASYNC_WAIT_CTX_get_fd
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:427,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:431,1
    - Dst: CreatePipe
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:435,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:436,1
    - Dst: pipe
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:440,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:441,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:447,1
    - Dst: wait_cleanup
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:449,1
    - Dst: WriteFile
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:459,1
    - Dst: write
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:461,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:466,1
    - Dst: ReadFile
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:470,1
    - Dst: read
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:472,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 475
    functionName: dummy_pause_job
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - WriteFile
    - OPENSSL_free
    - wait_cleanup
    - ASYNC_get_wait_ctx
    - pipe
    - ASYNC_pause_job
    - ReadFile
    - read
    - ASYNC_get_current_job
    - ASYNC_WAIT_CTX_set_wait_fd
    - write
    - CreatePipe
    - ASYNC_WAIT_CTX_get_fd
    linkageType: ''
    returnType: void
    signature: void dummy_pause_job(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 105
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:485,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:487,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: dasync_sha1_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - SHA1_Init
    - data
    linkageType: ''
    returnType: int
    signature: int dasync_sha1_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:493,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:495,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 496
    functionName: dasync_sha1_update
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - SHA1_Update
    - data
    linkageType: ''
    returnType: int
    signature: "int dasync_sha1_update(EVP_MD_CTX *ctx, const void *data,\n                             size_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:500,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:502,1
    - Dst: data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: dasync_sha1_final
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - data
    - SHA1_Final
    linkageType: ''
    returnType: int
    signature: int dasync_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:512,1
    - Dst: RSA_meth_get_pub_enc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:513,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 515
    functionName: dasync_pub_enc
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - RSA_meth_get_pub_enc
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: "int dasync_pub_enc(int flen, const unsigned char *from,\n                    unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:520,1
    - Dst: RSA_meth_get_pub_dec
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:521,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 523
    functionName: dasync_pub_dec
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - RSA_meth_get_pub_dec
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: "int dasync_pub_dec(int flen, const unsigned char *from,\n                    unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:529,1
    - Dst: RSA_meth_get_priv_enc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:530,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 532
    functionName: dasync_rsa_priv_enc
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - RSA_meth_get_priv_enc
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: "int dasync_rsa_priv_enc(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:538,1
    - Dst: RSA_meth_get_priv_dec
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:539,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: dasync_rsa_priv_dec
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - RSA_meth_get_priv_dec
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: "int dasync_rsa_priv_dec(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:546,1
    - Dst: RSA_meth_get_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:547,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r0
    - I
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 548
    functionName: dasync_rsa_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - RSA_meth_get_mod_exp
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_get_init
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:552,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: dasync_rsa_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - RSA_meth_get_init
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_init(RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_get_finish
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:556,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 557
    functionName: dasync_rsa_finish
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - RSA_meth_get_finish
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_finish(RSA *rsa)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:566,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:590,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:591,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:591,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:593,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:607,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:613,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - ctx
    - type
    - arg
    - ptr
    - aeadcapable
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 632
    functionName: dasync_cipher_ctrl_helper
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_get_ctrl
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_aes_128_cbc_hmac_sha1
    - memcpy
    - EVP_CIPHER_CTX_set_cipher_data
    linkageType: ''
    returnType: int
    signature: "int dasync_cipher_ctrl_helper(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                    void *ptr, int aeadcapable)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:641,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:644,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:645,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:646,1
    - Dst: DASYNCerr
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:648,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:657,1
    - Dst: EVP_CIPHER_meth_get_init
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:658,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - key
    - iv
    - enc
    - cipher
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 662
    functionName: dasync_cipher_init_key_helper
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - DASYNCerr
    - EVP_CIPHER_impl_ctx_size
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_meth_get_init
    - OPENSSL_zalloc
    - EVP_CIPHER_CTX_set_cipher_data
    linkageType: ''
    returnType: int
    signature: "int dasync_cipher_init_key_helper(EVP_CIPHER_CTX *ctx,\n                                         const
      unsigned char *key,\n                                         const unsigned
      char *iv, int enc,\n                                         const EVP_CIPHER
      *cipher)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:671,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:674,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:679,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:684,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:691,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:696,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:703,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - out
    - in
    - inl
    - cipher
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 705
    functionName: dasync_cipher_helper
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_get_ctrl
    - EVP_CIPHER_meth_get_do_cipher
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_set_cipher_data
    linkageType: ''
    returnType: int
    signature: "int dasync_cipher_helper(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl,\n                                const
      EVP_CIPHER *cipher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:711,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:713,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - cipher
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 717
    functionName: dasync_cipher_cleanup_helper
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_impl_ctx_size
    - EVP_CIPHER_CTX_get_cipher_data
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int dasync_cipher_cleanup_helper(EVP_CIPHER_CTX *ctx,\n                                        const
      EVP_CIPHER *cipher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_ctrl_helper
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 727
    functionName: dasync_aes128_cbc_ctrl
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_ctrl_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_cbc_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                 void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_init_key_helper
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:732,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: dasync_aes128_init_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_init_key_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_init_key(EVP_CIPHER_CTX *ctx, const unsigned char
      *key,\n                             const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_helper
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:738,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 739
    functionName: dasync_aes128_cbc_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_cleanup_helper
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:743,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 744
    functionName: dasync_aes128_cbc_cleanup
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_cleanup_helper
    linkageType: ''
    returnType: int
    signature: int dasync_aes128_cbc_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_ctrl_helper
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 755
    functionName: dasync_aes128_cbc_hmac_sha1_ctrl
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_ctrl_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_cbc_hmac_sha1_ctrl(EVP_CIPHER_CTX *ctx, int type,\n
      \                                            int arg, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_init_key_helper
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:766,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 768
    functionName: dasync_aes128_cbc_hmac_sha1_init_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_init_key_helper
    - EVP_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx,\n                                                const
      unsigned char *key,\n                                                const unsigned
      char *iv,\n                                                int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_helper
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:775,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 776
    functionName: dasync_aes128_cbc_hmac_sha1_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc_hmac_sha1
    - dasync_cipher_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx,\n                                               unsigned
      char *out,\n                                               const unsigned char
      *in,\n                                               size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_cleanup_helper
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:784,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-1.1.1g/engines/e_dasync.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 785
    functionName: dasync_aes128_cbc_hmac_sha1_cleanup
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc_hmac_sha1
    - dasync_cipher_cleanup_helper
    linkageType: ''
    returnType: int
    signature: int dasync_aes128_cbc_hmac_sha1_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:290,1
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:293,1
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:294,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:296,1
    - Dst: capi_list_providers
      Src: /src/openssl-1.1.1g/engines/e_capi.c:301,1
    - Dst: capi_list_certs
      Src: /src/openssl-1.1.1g/engines/e_capi.c:305,1
    - Dst: capi_list_certs
      Src: /src/openssl-1.1.1g/engines/e_capi.c:309,1
    - Dst: capi_list_containers
      Src: /src/openssl-1.1.1g/engines/e_capi.c:313,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/engines/e_capi.c:317,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:319,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:321,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:323,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:336,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:341,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/engines/e_capi.c:345,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:348,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:350,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:357,1
    - Dst: capi_ctx_set_provname_idx
      Src: /src/openssl-1.1.1g/engines/e_capi.c:361,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:370,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:371,1
    - Dst: capi_ctx_set_provname
      Src: /src/openssl-1.1.1g/engines/e_capi.c:378,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:386,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:390,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 89
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 393
    functionName: capi_ctrl
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPI_trace
    - CAPIerr
    - BIO_new_fp
    - capi_list_providers
    - OPENSSL_free
    - capi_ctx_set_provname
    - OPENSSL_strdup
    - capi_list_certs
    - capi_ctx_set_provname_idx
    - ENGINE_get_ex_data
    - BIO_free
    - capi_list_containers
    linkageType: ''
    returnType: int
    signature: int capi_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_new_index
      Src: /src/openssl-1.1.1g/engines/e_capi.c:416,1
    - Dst: X509_get_ex_new_index
      Src: /src/openssl-1.1.1g/engines/e_capi.c:420,1
    - Dst: RSA_get_ex_new_index
      Src: /src/openssl-1.1.1g/engines/e_capi.c:423,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-1.1.1g/engines/e_capi.c:424,1
    - Dst: RSA_meth_set_pub_enc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:425,1
    - Dst: RSA_meth_get_pub_enc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:426,1
    - Dst: RSA_meth_set_pub_dec
      Src: /src/openssl-1.1.1g/engines/e_capi.c:427,1
    - Dst: RSA_meth_get_pub_dec
      Src: /src/openssl-1.1.1g/engines/e_capi.c:428,1
    - Dst: RSA_meth_set_priv_enc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:429,1
    - Dst: RSA_meth_set_priv_dec
      Src: /src/openssl-1.1.1g/engines/e_capi.c:430,1
    - Dst: RSA_meth_set_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:431,1
    - Dst: RSA_meth_get_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:432,1
    - Dst: RSA_meth_set_bn_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:433,1
    - Dst: RSA_meth_get_bn_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:434,1
    - Dst: RSA_meth_set_finish
      Src: /src/openssl-1.1.1g/engines/e_capi.c:435,1
    - Dst: RSA_meth_set_sign
      Src: /src/openssl-1.1.1g/engines/e_capi.c:436,1
    - Dst: DSA_get_ex_new_index
      Src: /src/openssl-1.1.1g/engines/e_capi.c:442,1
    - Dst: DSA_OpenSSL
      Src: /src/openssl-1.1.1g/engines/e_capi.c:443,1
    - Dst: DSA_meth_set_sign
      Src: /src/openssl-1.1.1g/engines/e_capi.c:444,1
    - Dst: DSA_meth_set_verify
      Src: /src/openssl-1.1.1g/engines/e_capi.c:445,1
    - Dst: DSA_meth_get_verify
      Src: /src/openssl-1.1.1g/engines/e_capi.c:446,1
    - Dst: DSA_meth_set_finish
      Src: /src/openssl-1.1.1g/engines/e_capi.c:447,1
    - Dst: DSA_meth_set_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:448,1
    - Dst: DSA_meth_get_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:449,1
    - Dst: DSA_meth_set_bn_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:450,1
    - Dst: DSA_meth_get_bn_mod_exp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:451,1
    - Dst: capi_ctx_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:457,1
    - Dst: ENGINE_set_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:461,1
    - Dst: LoadLibrary
      Src: /src/openssl-1.1.1g/engines/e_capi.c:465,1
    - Dst: TEXT
      Src: /src/openssl-1.1.1g/engines/e_capi.c:465,1
    - Dst: GetModuleHandle
      Src: /src/openssl-1.1.1g/engines/e_capi.c:466,1
    - Dst: TEXT
      Src: /src/openssl-1.1.1g/engines/e_capi.c:466,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/engines/e_capi.c:469,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/engines/e_capi.c:473,1
    - Dst: OPENSSL_isservice
      Src: /src/openssl-1.1.1g/engines/e_capi.c:474,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-1.1.1g/engines/e_capi.c:480,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-1.1.1g/engines/e_capi.c:483,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:489,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 42
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 493
    functionName: capi_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - RSA_meth_set_priv_dec
    - RSA_meth_set_bn_mod_exp
    - RSA_meth_get_pub_dec
    - DSA_meth_get_bn_mod_exp
    - LoadLibrary
    - RSA_PKCS1_OpenSSL
    - DSA_meth_get_verify
    - X509_get_ex_new_index
    - DSA_get_ex_new_index
    - GetModuleHandle
    - RSA_meth_get_bn_mod_exp
    - CryptAcquireContextW
    - RSA_meth_set_pub_dec
    - capi_ctx_new
    - ENGINE_get_ex_new_index
    - RSA_meth_set_mod_exp
    - GetProcAddress
    - ENGINE_set_ex_data
    - CAPIerr
    - DSA_meth_set_bn_mod_exp
    - DSA_OpenSSL
    - OPENSSL_isservice
    - RSA_meth_set_finish
    - RSA_meth_set_sign
    - RSA_meth_get_pub_enc
    - DSA_meth_set_finish
    - CryptReleaseContext
    - RSA_get_ex_new_index
    - DSA_meth_set_verify
    - DSA_meth_set_mod_exp
    - RSA_meth_set_priv_enc
    - RSA_meth_get_mod_exp
    - DSA_meth_set_sign
    - DSA_meth_get_mod_exp
    - TEXT
    - RSA_meth_set_pub_enc
    linkageType: ''
    returnType: int
    signature: int capi_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:497,1
    - Dst: DSA_meth_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:500,1
    - Dst: ERR_unload_CAPI_strings
      Src: /src/openssl-1.1.1g/engines/e_capi.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 505
    functionName: capi_destroy
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ERR_unload_CAPI_strings
    - RSA_meth_free
    - DSA_meth_free
    linkageType: ''
    returnType: int
    signature: int capi_destroy(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:510,1
    - Dst: capi_ctx_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:511,1
    - Dst: ENGINE_set_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 514
    functionName: capi_finish
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_ex_data
    - ENGINE_set_ex_data
    - capi_ctx_free
    linkageType: ''
    returnType: int
    signature: int capi_finish(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:532,1
    - Dst: DSA_meth_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:536,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/engines/e_capi.c:540,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/engines/e_capi.c:541,1
    - Dst: ENGINE_set_flags
      Src: /src/openssl-1.1.1g/engines/e_capi.c:542,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-1.1.1g/engines/e_capi.c:543,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-1.1.1g/engines/e_capi.c:544,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-1.1.1g/engines/e_capi.c:545,1
    - Dst: ENGINE_set_RSA
      Src: /src/openssl-1.1.1g/engines/e_capi.c:546,1
    - Dst: ENGINE_set_DSA
      Src: /src/openssl-1.1.1g/engines/e_capi.c:548,1
    - Dst: ENGINE_set_load_privkey_function
      Src: /src/openssl-1.1.1g/engines/e_capi.c:550,1
    - Dst: ENGINE_set_load_ssl_client_cert_function
      Src: /src/openssl-1.1.1g/engines/e_capi.c:551,1
    - Dst: ENGINE_set_cmd_defns
      Src: /src/openssl-1.1.1g/engines/e_capi.c:553,1
    - Dst: ENGINE_set_ctrl_function
      Src: /src/openssl-1.1.1g/engines/e_capi.c:554,1
    - Dst: ERR_load_CAPI_strings
      Src: /src/openssl-1.1.1g/engines/e_capi.c:556,1
    - Dst: RSA_meth_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:560,1
    - Dst: DSA_meth_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:563,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 20
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 567
    functionName: bind_capi
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_DSA
    - RSA_meth_new
    - ENGINE_set_destroy_function
    - ENGINE_set_RSA
    - ENGINE_set_ctrl_function
    - ENGINE_set_cmd_defns
    - ENGINE_set_flags
    - ENGINE_set_name
    - ENGINE_set_init_function
    - DSA_meth_free
    - ENGINE_set_finish_function
    - DSA_meth_new
    - ENGINE_set_id
    - ENGINE_set_load_privkey_function
    - ENGINE_set_load_ssl_client_cert_function
    - ERR_load_CAPI_strings
    - RSA_meth_free
    linkageType: ''
    returnType: int
    signature: int bind_capi(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:572,1
    - Dst: bind_capi
      Src: /src/openssl-1.1.1g/engines/e_capi.c:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 577
    functionName: bind_helper
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - strcmp
    - bind_capi
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:584,1
    - Dst: bind_capi
      Src: /src/openssl-1.1.1g/engines/e_capi.c:587,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 592
    functionName: engine_capi
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - bind_capi
    - ENGINE_new
    - ENGINE_free
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_capi(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_capi
      Src: /src/openssl-1.1.1g/engines/e_capi.c:597,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/engines/e_capi.c:600,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:601,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/engines/e_capi.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 603
    functionName: engine_load_capi_int
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - engine_capi
    - ENGINE_free
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: void engine_load_capi_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/engines/e_capi.c:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bn
    - bin
    - binlen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 624
    functionName: lend_tobn
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: int
    signature: int lend_tobn(BIGNUM *bn, unsigned char *bin, int binlen)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CryptExportKey
      Src: /src/openssl-1.1.1g/engines/e_capi.c:636,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:637,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:638,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:642,1
    - Dst: CryptExportKey
      Src: /src/openssl-1.1.1g/engines/e_capi.c:647,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:648,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:649,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:655,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:666,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:667,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:669,1
    - Dst: RSA_new_method
      Src: /src/openssl-1.1.1g/engines/e_capi.c:673,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:677,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:678,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:681,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:682,1
    - Dst: RSA_set0_key
      Src: /src/openssl-1.1.1g/engines/e_capi.c:686,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/engines/e_capi.c:688,1
    - Dst: lend_tobn
      Src: /src/openssl-1.1.1g/engines/e_capi.c:692,1
    - Dst: RSA_set_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:695,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:697,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-1.1.1g/engines/e_capi.c:700,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:712,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:713,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:715,1
    - Dst: DSA_new_method
      Src: /src/openssl-1.1.1g/engines/e_capi.c:720,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:723,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:724,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:725,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:726,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:728,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:729,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:730,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:731,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-1.1.1g/engines/e_capi.c:734,1
    - Dst: DSA_set0_key
      Src: /src/openssl-1.1.1g/engines/e_capi.c:735,1
    - Dst: lend_tobn
      Src: /src/openssl-1.1.1g/engines/e_capi.c:736,1
    - Dst: lend_tobn
      Src: /src/openssl-1.1.1g/engines/e_capi.c:739,1
    - Dst: lend_tobn
      Src: /src/openssl-1.1.1g/engines/e_capi.c:742,1
    - Dst: lend_tobn
      Src: /src/openssl-1.1.1g/engines/e_capi.c:745,1
    - Dst: DSA_set_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:749,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:751,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-1.1.1g/engines/e_capi.c:754,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:759,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:760,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:762,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:767,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:769,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:771,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:778,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 130
    argCount: 2
    argNames:
    - eng
    - key
    argTypes:
    - ENGINE*
    - CAPI_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 781
    functionName: capi_get_pkey
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - ERR_add_error_data
    - DSA_set0_key
    - RSA_new_method
    - EVP_PKEY_new
    - RSA_free
    - OPENSSL_malloc
    - DSA_set0_pqg
    - EVP_PKEY_assign_DSA
    - OPENSSL_free
    - RSA_set0_key
    - BN_free
    - CryptExportKey
    - CAPIerr
    - DSA_set_ex_data
    - BN_new
    - BN_set_word
    - DSA_free
    - capi_addlasterror
    - lend_tobn
    - RSA_set_ex_data
    - EVP_PKEY_assign_RSA
    - DSA_new_method
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *capi_get_pkey(ENGINE *eng, CAPI_KEY *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:789,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:792,1
    - Dst: capi_find_key
      Src: /src/openssl-1.1.1g/engines/e_capi.c:796,1
    - Dst: capi_get_pkey
      Src: /src/openssl-1.1.1g/engines/e_capi.c:801,1
    - Dst: capi_free_key
      Src: /src/openssl-1.1.1g/engines/e_capi.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 807
    functionName: capi_load_privkey
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_get_pkey
    - capi_free_key
    - CAPIerr
    - capi_find_key
    - ENGINE_get_ex_data
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *capi_load_privkey(ENGINE *eng, const char *key_id,\n                                   UI_METHOD
      *ui_method, void *callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 816
    functionName: capi_rsa_priv_enc
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPIerr
    linkageType: ''
    returnType: int
    signature: "int capi_rsa_priv_enc(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:829,1
    - Dst: RSA_get0_engine
      Src: /src/openssl-1.1.1g/engines/e_capi.c:829,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:831,1
    - Dst: RSA_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:833,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:835,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:866,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:867,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:868,1
    - Dst: CryptCreateHash
      Src: /src/openssl-1.1.1g/engines/e_capi.c:874,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:875,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:876,1
    - Dst: CryptSetHashParam
      Src: /src/openssl-1.1.1g/engines/e_capi.c:881,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:882,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:883,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/engines/e_capi.c:888,1
    - Dst: CryptSignHash
      Src: /src/openssl-1.1.1g/engines/e_capi.c:889,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:890,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:891,1
    - Dst: CryptDestroyHash
      Src: /src/openssl-1.1.1g/engines/e_capi.c:908,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 6
    argNames:
    - dtype
    - m
    - m_len
    - sigret
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 911
    functionName: capi_rsa_sign
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - capi_addlasterror
    - CryptSetHashParam
    - CAPI_trace
    - RSA_size
    - CAPIerr
    - RSA_get_ex_data
    - CryptSignHash
    - ERR_add_error_data
    - CryptDestroyHash
    - ENGINE_get_ex_data
    - CryptCreateHash
    - RSA_get0_engine
    linkageType: ''
    returnType: int
    signature: "int capi_rsa_sign(int dtype, const unsigned char *m, unsigned int
      m_len,\n                  unsigned char *sigret, unsigned int *siglen, const
      RSA *rsa)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:926,1
    - Dst: RSA_get0_engine
      Src: /src/openssl-1.1.1g/engines/e_capi.c:926,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:928,1
    - Dst: RSA_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:930,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:932,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:948,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:949,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:950,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:956,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:957,1
    - Dst: CryptDecrypt
      Src: /src/openssl-1.1.1g/engines/e_capi.c:965,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:966,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:967,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/engines/e_capi.c:968,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:969,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_capi.c:972,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/engines/e_capi.c:974,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:975,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 978
    functionName: capi_rsa_priv_dec
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - OPENSSL_malloc
    - capi_addlasterror
    - CAPI_trace
    - CAPIerr
    - CryptDecrypt
    - RSA_get_ex_data
    - OPENSSL_free
    - ERR_add_error_data
    - memcpy
    - ENGINE_get_ex_data
    - RSA_get0_engine
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int capi_rsa_priv_dec(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:983,1
    - Dst: capi_free_key
      Src: /src/openssl-1.1.1g/engines/e_capi.c:984,1
    - Dst: RSA_set_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 987
    functionName: capi_rsa_free
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - RSA_set_ex_data
    - RSA_get_ex_data
    - capi_free_key
    linkageType: ''
    returnType: int
    signature: int capi_rsa_free(RSA *rsa)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1002,1
    - Dst: DSA_get0_engine
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1002,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1004,1
    - Dst: DSA_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1006,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1009,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1014,1
    - Dst: CryptCreateHash
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1019,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1020,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1021,1
    - Dst: CryptSetHashParam
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1026,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1027,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1028,1
    - Dst: CryptSignHash
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1034,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1035,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1036,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1039,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1039,1
    - Dst: lend_tobn
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1042,1
    - Dst: lend_tobn
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1043,1
    - Dst: DSA_SIG_new
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1044,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1045,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1046,1
    - Dst: DSA_SIG_set0
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1049,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1055,1
    - Dst: CryptDestroyHash
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1056,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - digest
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1058
    functionName: capi_dsa_do_sign
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - DSA_get_ex_data
    - DSA_get0_engine
    - CAPI_trace
    - capi_addlasterror
    - CAPIerr
    - CryptSetHashParam
    - CryptSignHash
    - BN_new
    - DSA_SIG_new
    - CryptDestroyHash
    - lend_tobn
    - ENGINE_get_ex_data
    - BN_free
    - DSA_SIG_set0
    - CryptCreateHash
    - OPENSSL_cleanse
    linkageType: ''
    returnType: DSA_SIG
    signature: "DSA_SIG *capi_dsa_do_sign(const unsigned char *digest, int dlen,\n
      \                                DSA *dsa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1063,1
    - Dst: capi_free_key
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1064,1
    - Dst: DSA_set_ex_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1067
    functionName: capi_dsa_free
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - DSA_set_ex_data
    - DSA_get_ex_data
    - capi_free_key
    linkageType: ''
    returnType: int
    signature: int capi_dsa_free(DSA *dsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1077,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1079,1
    - Dst: BIO_vprintf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1082,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - level
    - format
    - argptr
    argTypes:
    - CAPI_CTX*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1084
    functionName: capi_vtrace
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BIO_vprintf
    - BIO_new_file
    - BIO_free
    - CAPIerr
    linkageType: ''
    returnType: void
    signature: "void capi_vtrace(CAPI_CTX *ctx, int level, char *format,\n                        va_list
      argptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1089,1
    - Dst: capi_vtrace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1090,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - format
    argTypes:
    - CAPI_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1092
    functionName: CAPI_trace
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 4
    functionsReached:
    - va_start
    - va_end
    - capi_vtrace
    linkageType: ''
    returnType: void
    signature: void CAPI_trace(CAPI_CTX *ctx, char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: capi_adderror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1096,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1097
    functionName: capi_addlasterror
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 4
    functionsReached:
    - GetLastError
    - capi_adderror
    linkageType: ''
    returnType: void
    signature: void capi_addlasterror(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1102,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - err
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1104
    functionName: capi_adderror
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - ERR_add_error_data
    linkageType: ''
    returnType: void
    signature: void capi_adderror(DWORD err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1113,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1114,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1116,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1119,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1121,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1124,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1125,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - wstr
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1130
    functionName: wide_to_asc
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - CAPIerr
    - OPENSSL_free
    - WideCharToMultiByte
    - wcslen
    linkageType: ''
    returnType: char
    signature: char *wide_to_asc(LPCWSTR wstr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1137,1
    - Dst: CryptEnumProviders
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1138,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1139,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1142,1
    - Dst: capi_adderror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1143,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1146,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1148,1
    - Dst: CryptEnumProviders
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1151,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1152,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1153,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1156,1
    - Dst: capi_adderror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1157,1
    - Dst: wide_to_asc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1161,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1162,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - pname
    - ptype
    - idx
    argTypes:
    - CAPI_CTX*
    - LPSTR*
    - DWORD*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1132
    functionDepth: 3
    functionLinenumber: 1132
    functionLinenumberEnd: 1172
    functionName: capi_get_provname
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - wide_to_asc
    - CAPI_trace
    - CAPIerr
    - OPENSSL_free
    - GetLastError
    - CryptEnumProviders
    - capi_adderror
    linkageType: ''
    returnType: int
    signature: "int capi_get_provname(CAPI_CTX *ctx, LPSTR *pname, DWORD *ptype,\n
      \                            DWORD idx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1179,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1180,1
    - Dst: capi_get_provname
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1182,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1187,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - CAPI_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1174
    functionDepth: 4
    functionLinenumber: 1174
    functionLinenumberEnd: 1191
    functionName: capi_list_providers
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - capi_get_provname
    - OPENSSL_free
    - CAPI_trace
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int capi_list_providers(CAPI_CTX *ctx, BIO *out)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1201,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1204,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1206,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1207,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1211,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1212,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1216,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1218,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1220,1
    - Dst: CryptGetProvParam
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1223,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1225,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1226,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1227,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1230,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1233,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1235,1
    - Dst: CryptGetProvParam
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1247,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1249,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1252,1
    - Dst: capi_adderror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1253,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1256,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1259,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1262,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1269,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1270,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - CAPI_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1193
    functionDepth: 3
    functionLinenumber: 1193
    functionLinenumberEnd: 1273
    functionName: capi_list_containers
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - capi_addlasterror
    - OPENSSL_malloc
    - CAPI_trace
    - capi_adderror
    - CAPIerr
    - alloca
    - OPENSSL_free
    - GetLastError
    - CryptGetProvParam
    - CryptAcquireContextW
    - BIO_printf
    - MultiByteToWideChar
    - CryptReleaseContext
    linkageType: ''
    returnType: int
    signature: int capi_list_containers(CAPI_CTX *ctx, BIO *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CertGetCertificateContextProperty
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1281,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1284,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1286,1
    - Dst: CertGetCertificateContextProperty
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1289,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1291,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1293,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CAPI_CTX*
    - PCCERT_CONTEXT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1298
    functionName: capi_get_prov_info
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - capi_addlasterror
    - CAPIerr
    - OPENSSL_free
    - CertGetCertificateContextProperty
    linkageType: ''
    returnType: CRYPT_KEY_PROV_INFO
    signature: "CRYPT_KEY_PROV_INFO *capi_get_prov_info(CAPI_CTX *ctx,\n                                               PCCERT_CONTEXT
      cert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1305,1
    - Dst: wide_to_asc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1308,1
    - Dst: wide_to_asc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1309,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1313,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1314,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1316,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1319,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - out
    - pinfo
    argTypes:
    - CAPI_CTX*
    - BIO*
    - CRYPT_KEY_PROV_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1300
    functionDepth: 2
    functionLinenumber: 1300
    functionLinenumberEnd: 1321
    functionName: capi_dump_prov_info
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - wide_to_asc
    - OPENSSL_free
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void capi_dump_prov_info(CAPI_CTX *ctx, BIO *out,\n                                CRYPT_KEY_PROV_INFO
      *pinfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1328,1
    - Dst: CertGetCertificateContextProperty
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1329,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1332,1
    - Dst: CertGetCertificateContextProperty
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1335,1
    - Dst: wide_to_asc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1337,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1338,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1341,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1342,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CAPI_CTX*
    - PCCERT_CONTEXT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1323
    functionDepth: 3
    functionLinenumber: 1323
    functionLinenumberEnd: 1346
    functionName: capi_cert_get_fname
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - wide_to_asc
    - CAPI_trace
    - capi_addlasterror
    - CAPIerr
    - OPENSSL_free
    - CertGetCertificateContextProperty
    linkageType: ''
    returnType: char
    signature: char *capi_cert_get_fname(CAPI_CTX *ctx, PCCERT_CONTEXT cert)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: capi_cert_get_fname
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1355,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1357,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1358,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1360,1
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1365,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1367,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1369,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1370,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1370,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1371,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1372,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1372,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1373,1
    - Dst: X509_print_ex
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1376,1
    - Dst: capi_get_prov_info
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1380,1
    - Dst: capi_dump_prov_info
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1381,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1382,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1386,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1387,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - out
    - cert
    argTypes:
    - CAPI_CTX*
    - BIO*
    - PCCERT_CONTEXT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1348
    functionDepth: 4
    functionLinenumber: 1348
    functionLinenumberEnd: 1388
    functionName: capi_dump_cert
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_NAME_print_ex
    - OPENSSL_free
    - capi_dump_prov_info
    - capi_get_prov_info
    - capi_cert_get_fname
    - PEM_write_bio_X509
    - BIO_printf
    - X509_get_issuer_name
    - X509_get_subject_name
    - d2i_X509
    - X509_print_ex
    linkageType: ''
    returnType: void
    signature: void capi_dump_cert(CAPI_CTX *ctx, BIO *out, PCCERT_CONTEXT cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1398,1
    - Dst: CertOpenStore
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1400,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1403,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - storename
    argTypes:
    - CAPI_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1390
    functionDepth: 3
    functionLinenumber: 1390
    functionLinenumberEnd: 1407
    functionName: capi_open_store
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_addlasterror
    - CAPI_trace
    - CAPIerr
    - CertOpenStore
    linkageType: ''
    returnType: HCERTSTORE
    signature: HCERTSTORE capi_open_store(CAPI_CTX *ctx, char *storename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1420,1
    - Dst: capi_open_store
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1422,1
    - Dst: capi_find_cert
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1426,1
    - Dst: capi_dump_cert
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1431,1
    - Dst: CertFreeCertificateContext
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1432,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1435,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1438,1
    - Dst: capi_dump_cert
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1439,1
    - Dst: CertCloseStore
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - out
    - id
    argTypes:
    - CAPI_CTX*
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1409
    functionDepth: 5
    functionLinenumber: 1409
    functionLinenumberEnd: 1445
    functionName: capi_list_certs
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CertEnumCertificatesInStore
    - CertCloseStore
    - CAPI_trace
    - capi_open_store
    - capi_find_cert
    - capi_dump_cert
    - BIO_printf
    - CertFreeCertificateContext
    linkageType: ''
    returnType: int
    signature: int capi_list_certs(CAPI_CTX *ctx, BIO *out, char *id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CertFindCertificateInStore
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1455,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1459,1
    - Dst: capi_cert_get_fname
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1462,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1464,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - id
    - hstore
    argTypes:
    - CAPI_CTX*
    - char*
    - HCERTSTORE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1447
    functionDepth: 4
    functionLinenumber: 1447
    functionLinenumberEnd: 1476
    functionName: capi_find_cert
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CertEnumCertificatesInStore
    - strcmp
    - OPENSSL_free
    - CertFindCertificateInStore
    - capi_cert_get_fname
    linkageType: ''
    returnType: PCCERT_CONTEXT
    signature: "PCCERT_CONTEXT capi_find_cert(CAPI_CTX *ctx, const char *id,\n                                     HCERTSTORE
      hstore)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1483,1
    - Dst: wcscmp
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1489,1
    - Dst: wide_to_asc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1498,1
    - Dst: wide_to_asc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1499,1
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1501,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1503,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1504,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1508,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1510,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1511,1
    - Dst: CryptGetUserKey
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1514,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1515,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1516,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1517,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1525,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - contname
    - provname
    - ptype
    - keyspec
    argTypes:
    - CAPI_CTX*
    - WCHAR*
    - WCHAR*
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1478
    functionDepth: 3
    functionLinenumber: 1478
    functionLinenumberEnd: 1527
    functionName: capi_get_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - wide_to_asc
    - CAPI_trace
    - capi_addlasterror
    - CAPIerr
    - CryptGetUserKey
    - wcscmp
    - OPENSSL_free
    - CryptAcquireContextW
    - CryptReleaseContext
    linkageType: ''
    returnType: CAPI_KEY
    signature: "CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const WCHAR *contname,\n                              const
      WCHAR *provname, DWORD ptype,\n                              DWORD keyspec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: capi_get_prov_info
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1534,1
    - Dst: capi_get_key
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1537,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CAPI_CTX*
    - PCCERT_CONTEXT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1529
    functionDepth: 4
    functionLinenumber: 1529
    functionLinenumberEnd: 1542
    functionName: capi_get_cert_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - capi_get_prov_info
    - capi_get_key
    linkageType: ''
    returnType: CAPI_KEY
    signature: CAPI_KEY *capi_get_cert_key(CAPI_CTX *ctx, PCCERT_CONTEXT cert)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: capi_open_store
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1553,1
    - Dst: capi_find_cert
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1556,1
    - Dst: capi_get_cert_key
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1558,1
    - Dst: CertFreeCertificateContext
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1559,1
    - Dst: CertCloseStore
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1561,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1569,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1570,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1571,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1572,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1574,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1575,1
    - Dst: capi_get_key
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - CAPI_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1544
    functionDepth: 5
    functionLinenumber: 1544
    functionLinenumberEnd: 1584
    functionName: capi_find_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CertCloseStore
    - capi_open_store
    - alloca
    - MultiByteToWideChar
    - capi_find_cert
    - capi_get_cert_key
    - CertFreeCertificateContext
    - capi_get_key
    linkageType: ''
    returnType: CAPI_KEY
    signature: CAPI_KEY *capi_find_key(CAPI_CTX *ctx, const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptDestroyKey
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1590,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1591,1
    - Dst: CertFreeCertificateContext
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1593,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - CAPI_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1595
    functionName: capi_free_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 3
    functionsReached:
    - CertFreeCertificateContext
    - OPENSSL_free
    - CryptDestroyKey
    - CryptReleaseContext
    linkageType: ''
    returnType: void
    signature: void capi_free_key(CAPI_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1601,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1615
    functionName: capi_ctx_new
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - OPENSSL_zalloc
    - CAPIerr
    linkageType: ''
    returnType: CAPI_CTX
    signature: CAPI_CTX *capi_ctx_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1619,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1622,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1623,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1624,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1625,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CAPI_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1617
    functionDepth: 3
    functionLinenumber: 1617
    functionLinenumberEnd: 1627
    functionName: capi_ctx_free
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - CAPI_trace
    linkageType: ''
    returnType: void
    signature: void capi_ctx_free(CAPI_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1634,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1640,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1641,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1642,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1644,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1646,1
    - Dst: capi_addlasterror
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1648,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1651,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1653,1
    - Dst: CAPIerr
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1655,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - pname
    - type
    - check
    argTypes:
    - CAPI_CTX*
    - LPSTR
    - DWORD
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1629
    functionDepth: 3
    functionLinenumber: 1629
    functionLinenumberEnd: 1662
    functionName: capi_ctx_set_provname
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - capi_addlasterror
    - CAPI_trace
    - CAPIerr
    - alloca
    - OPENSSL_free
    - OPENSSL_strdup
    - CryptAcquireContextW
    - MultiByteToWideChar
    - CryptReleaseContext
    linkageType: ''
    returnType: int
    signature: "int capi_ctx_set_provname(CAPI_CTX *ctx, LPSTR pname, DWORD type,\n
      \                                int check)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: capi_get_provname
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1669,1
    - Dst: capi_ctx_set_provname
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1671,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/engines/e_capi.c:1672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - CAPI_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1664
    functionDepth: 4
    functionLinenumber: 1664
    functionLinenumberEnd: 1674
    functionName: capi_ctx_set_provname_idx
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - capi_get_provname
    - OPENSSL_free
    - capi_ctx_set_provname
    linkageType: ''
    returnType: int
    signature: int capi_ctx_set_provname_idx(CAPI_CTX *ctx, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - id
    - fns
    argTypes:
    - ENGINE*
    - char*
    - dynamic_fns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1895
    functionName: bind_engine
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPENSSL_EXPORT
    signature: OPENSSL_EXPORT bind_engine(ENGINE *e, const char *id, const dynamic_fns
      *fns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1900
    functionDepth: 0
    functionLinenumber: 1900
    functionLinenumberEnd: 1902
    functionName: engine_load_capi_int
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void engine_load_capi_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: engine_load_afalg_int
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void engine_load_afalg_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: ALG_IV_LEN
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_IV_LEN(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - ctx
    argTypes:
    - unsigned
    - aio_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: io_setup
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline io_setup(unsigned n, aio_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: eventfd
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline eventfd(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - aio_context_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: io_destroy
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline io_destroy(aio_context_t ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - n
    - iocb
    argTypes:
    - aio_context_t
    - long
    - struct iocb**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: io_read
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline io_read(aio_context_t ctx, long n, struct iocb **iocb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - min
    - max
    - events
    - timeout
    argTypes:
    - aio_context_t
    - long
    - long
    - struct io_event*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: io_getevents
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline io_getevents(aio_context_t ctx, long min, long max,\n
      \                              struct io_event *events,\n                               struct
      timespec *timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - waitfd
    - custom
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: afalg_waitfd_cleanup
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: "void afalg_waitfd_cleanup(ASYNC_WAIT_CTX *ctx, const void *key,\n
      \                                OSSL_ASYNC_FD waitfd, void *custom)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:144,1
    - Dst: ASYNC_get_wait_ctx
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:146,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:148,1
    - Dst: ASYNC_WAIT_CTX_get_fd
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:152,1
    - Dst: eventfd
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:159,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:161,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:163,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:167,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:171,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:172,1
    - Dst: fcntl
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:176,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:177,1
    - Dst: eventfd
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:184,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:186,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - aio
    argTypes:
    - afalg_aio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 194
    functionName: afalg_setup_async_event_notification
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - eventfd
    - ASYNC_get_wait_ctx
    - close
    - ALG_PERR
    - fcntl
    - ASYNC_get_current_job
    - AFALGerr
    - ASYNC_WAIT_CTX_set_wait_fd
    - ALG_WARN
    - ASYNC_WAIT_CTX_get_fd
    linkageType: ''
    returnType: int
    signature: int afalg_setup_async_event_notification(afalg_aio *aio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_setup
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:202,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:204,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:205,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - aio
    argTypes:
    - afalg_aio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: afalg_init_aio
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - ALG_PERR
    - AFALGerr
    - memset
    - io_setup
    linkageType: ''
    returnType: int
    signature: int afalg_init_aio(afalg_aio *aio)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: afalg_setup_async_event_notification
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:232,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:238,1
    - Dst: io_read
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:256,1
    - Dst: ALG_PWARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:258,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:264,1
    - Dst: read
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:267,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:271,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:274,1
    - Dst: io_getevents
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:280,1
    - Dst: io_read
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:293,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:295,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:305,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:314,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:317,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 4
    argNames:
    - aio
    - sfd
    - buf
    - len
    argTypes:
    - afalg_aio*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 324
    functionName: afalg_fin_cipher_aio
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - io_read
    - io_getevents
    - ALG_PWARN
    - ALG_PERR
    - ASYNC_pause_job
    - read
    - memset
    - afalg_setup_async_event_notification
    - ALG_WARN
    linkageType: ''
    returnType: int
    signature: "int afalg_fin_cipher_aio(afalg_aio *aio, int sfd, unsigned char *buf,\n
      \                               size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_LEN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:331,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:332,1
    - Dst: CMSG_DATA
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cmsg
    - op
    argTypes:
    - struct cmsghdr*
    - ALG_OP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: afalg_set_op_sk
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CMSG_DATA
    - CMSG_LEN
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline afalg_set_op_sk(struct cmsghdr *cmsg,\n                                   const
      ALG_OP_TYPE op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_LEN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:342,1
    - Dst: ALG_IV_LEN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:342,1
    - Dst: CMSG_DATA
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:343,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - cmsg
    - iv
    - len
    argTypes:
    - struct cmsghdr*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 346
    functionName: afalg_set_iv_sk
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ALG_IV_LEN
    - CMSG_DATA
    - CMSG_LEN
    linkageType: ''
    returnType: void
    signature: "void afalg_set_iv_sk(struct cmsghdr *cmsg, const unsigned char *iv,\n
      \                           const unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:352,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:354,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - actx
    - key
    - klen
    argTypes:
    - afalg_ctx*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 359
    functionName: afalg_set_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - AFALGerr
    - ALG_PERR
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline afalg_set_key(afalg_ctx *actx, const unsigned char *key,\n
      \                               const int klen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:369,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:371,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:372,1
    - Dst: socket
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:374,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:376,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:377,1
    - Dst: bind
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:381,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:383,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:384,1
    - Dst: accept
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:388,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:390,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:391,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:399,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - actx
    - ciphertype
    - ciphername
    argTypes:
    - afalg_ctx*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 404
    functionName: afalg_create_sk
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - accept
    - close
    - ALG_PERR
    - bind
    - OPENSSL_strlcpy
    - socket
    - memset
    - AFALGerr
    linkageType: ''
    returnType: int
    signature: "int afalg_create_sk(afalg_ctx *actx, const char *ciphertype,\n                                const
      char *ciphername)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:417,1
    - Dst: ALG_IV_LEN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:417,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:417,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:419,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:427,1
    - Dst: afalg_set_op_sk
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:428,1
    - Dst: CMSG_NXTHDR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:429,1
    - Dst: afalg_set_iv_sk
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:430,1
    - Dst: sendmsg
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:450,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:452,1
    - Dst: vmsplice
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:461,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:463,1
    - Dst: splice
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:467,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:469,1
    - Dst: sendmsg
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:477,1
    - Dst: ALG_PERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:479,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 5
    argNames:
    - actx
    - in
    - inl
    - iv
    - enc
    argTypes:
    - afalg_ctx*
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 492
    functionName: afalg_start_cipher_sk
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - vmsplice
    - splice
    - CMSG_NXTHDR
    - afalg_set_op_sk
    - afalg_set_iv_sk
    - ALG_PERR
    - ALG_WARN
    - memset
    - ALG_IV_LEN
    - CMSG_SPACE
    - CMSG_FIRSTHDR
    - sendmsg
    linkageType: ''
    returnType: int
    signature: "int afalg_start_cipher_sk(afalg_ctx *actx, const unsigned char *in,\n
      \                                size_t inl, const unsigned char *iv,\n                                 unsigned
      int enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:503,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:507,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:508,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:512,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:514,1
    - Dst: EVP_CIPHER_CTX_nid
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:518,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:526,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:531,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:532,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:533,1
    - Dst: afalg_create_sk
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:538,1
    - Dst: afalg_set_key
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:543,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:543,1
    - Dst: afalg_init_aio
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:548,1
    - Dst: pipe
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:552,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:560,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:561,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 563
    functionName: afalg_cipher_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - afalg_set_key
    - afalg_create_sk
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_key_length
    - close
    - EVP_CIPHER_CTX_cipher
    - EVP_CIPHER_CTX_nid
    - pipe
    - afalg_init_aio
    - EVP_CIPHER_CTX_iv_length
    - ALG_WARN
    linkageType: ''
    returnType: int
    signature: "int afalg_cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:573,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:578,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:580,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:589,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:590,1
    - Dst: afalg_start_cipher_sk
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:594,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:595,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:596,1
    - Dst: afalg_fin_cipher_aio
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:602,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:606,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:607,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:607,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:610,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:610,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 614
    functionName: afalg_do_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_get_cipher_data
    - memcpy
    - EVP_CIPHER_CTX_iv_noconst
    - afalg_start_cipher_sk
    - ALG_WARN
    - afalg_fin_cipher_aio
    - EVP_CIPHER_CTX_iv
    linkageType: ''
    returnType: int
    signature: "int afalg_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:621,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:626,1
    - Dst: ALG_WARN
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:628,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:633,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:634,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:636,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:637,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:641,1
    - Dst: io_destroy
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 645
    functionName: afalg_cipher_cleanup
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    - ALG_WARN
    - close
    - io_destroy
    linkageType: ''
    returnType: int
    signature: int afalg_cipher_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 659
    functionName: get_cipher_handle
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cbc_handles
    signature: cbc_handles *get_cipher_handle(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_handle
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:663,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:666,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:669,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:671,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:674,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:676,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:678,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:680,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:682,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 686
    functionName: afalg_aes_cbc
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - get_cipher_handle
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_init
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *afalg_aes_cbc(int nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: afalg_aes_cbc
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 709
    functionName: afalg_ciphers
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - afalg_aes_cbc
    linkageType: ''
    returnType: int
    signature: "int afalg_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                         const
      int **nids, int nid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_AFALG_strings
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:715,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:717,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:718,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:719,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:720,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:721,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:722,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:731,1
    - Dst: afalg_aes_cbc
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:732,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:733,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:738,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 744
    functionName: bind_afalg
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ENGINE_set_destroy_function
    - ENGINE_set_init_function
    - ENGINE_set_name
    - ENGINE_set_finish_function
    - ENGINE_set_id
    - ENGINE_set_ciphers
    - AFALGerr
    - afalg_aes_cbc
    - ERR_load_AFALG_strings
    linkageType: ''
    returnType: int
    signature: int bind_afalg(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:749,1
    - Dst: afalg_chk_platform
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:752,1
    - Dst: bind_afalg
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 747
    functionDepth: 3
    functionLinenumber: 747
    functionLinenumberEnd: 758
    functionName: bind_helper
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - strcmp
    - afalg_chk_platform
    - bind_afalg
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:773,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:775,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:780,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:782,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:783,1
    - Dst: KERNEL_VERSION
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:786,1
    - Dst: KERNEL_VERSION
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:787,1
    - Dst: ALG_ERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:788,1
    - Dst: ALG_ERR
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:790,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:792,1
    - Dst: socket
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:798,1
    - Dst: AFALGerr
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:800,1
    - Dst: close
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:803,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 806
    functionName: afalg_chk_platform
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 1
    functionsReached:
    - strtok
    - atoi
    - close
    - socket
    - uname
    - ALG_ERR
    - AFALGerr
    - KERNEL_VERSION
    linkageType: ''
    returnType: int
    signature: int afalg_chk_platform(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:811,1
    - Dst: bind_afalg
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:814,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 809
    functionDepth: 3
    functionLinenumber: 809
    functionLinenumberEnd: 819
    functionName: engine_afalg
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - ENGINE_new
    - ENGINE_free
    - bind_afalg
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_afalg(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: afalg_chk_platform
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:825,1
    - Dst: engine_afalg
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:828,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:831,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:832,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 821
    functionDepth: 4
    functionLinenumber: 821
    functionLinenumberEnd: 834
    functionName: engine_load_afalg_int
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - ENGINE_add
    - ERR_clear_error
    - afalg_chk_platform
    - engine_afalg
    linkageType: ''
    returnType: void
    signature: void engine_load_afalg_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: afalg_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int afalg_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 845
    functionName: afalg_finish
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int afalg_finish(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:850,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 855
    functionName: free_cbc
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: int
    signature: int free_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_AFALG_strings
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:859,1
    - Dst: free_cbc
      Src: /src/openssl-1.1.1g/engines/e_afalg.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 862
    functionName: afalg_destroy
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - ERR_unload_AFALG_strings
    - free_cbc
    linkageType: ''
    returnType: int
    signature: int afalg_destroy(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-1.1.1g/engines/e_afalg_err.c:55,1
    - Dst: ERR_load_strings
      Src: /src/openssl-1.1.1g/engines/e_afalg_err.c:59,1
    - Dst: ERR_load_strings
      Src: /src/openssl-1.1.1g/engines/e_afalg_err.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: ERR_load_AFALG_strings
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings
    - ERR_get_next_error_library
    linkageType: ''
    returnType: int
    signature: int ERR_load_AFALG_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openssl-1.1.1g/engines/e_afalg_err.c:71,1
    - Dst: ERR_unload_strings
      Src: /src/openssl-1.1.1g/engines/e_afalg_err.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: ERR_unload_AFALG_strings
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: void ERR_unload_AFALG_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-1.1.1g/engines/e_afalg_err.c:81,1
    - Dst: ERR_PUT_error
      Src: /src/openssl-1.1.1g/engines/e_afalg_err.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: ERR_AFALG_error
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg_err.c
    functionUses: 0
    functionsReached:
    - ERR_PUT_error
    - ERR_get_next_error_library
    linkageType: ''
    returnType: void
    signature: void ERR_AFALG_error(int function, int reason, char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: DASYNCerr
    functionSourceFile: /src/openssl-1.1.1g/engines/e_dasync_err.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DASYNCerr(f, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: OSSLTESTerr
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest_err.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSLTESTerr(f, r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-1.1.1g/engines/e_capi_err.c:91,1
    - Dst: ERR_load_strings
      Src: /src/openssl-1.1.1g/engines/e_capi_err.c:95,1
    - Dst: ERR_load_strings
      Src: /src/openssl-1.1.1g/engines/e_capi_err.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: ERR_load_CAPI_strings
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings
    - ERR_get_next_error_library
    linkageType: ''
    returnType: int
    signature: int ERR_load_CAPI_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openssl-1.1.1g/engines/e_capi_err.c:107,1
    - Dst: ERR_unload_strings
      Src: /src/openssl-1.1.1g/engines/e_capi_err.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: ERR_unload_CAPI_strings
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: void ERR_unload_CAPI_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-1.1.1g/engines/e_capi_err.c:117,1
    - Dst: ERR_PUT_error
      Src: /src/openssl-1.1.1g/engines/e_capi_err.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: ERR_CAPI_error
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi_err.c
    functionUses: 0
    functionsReached:
    - ERR_PUT_error
    - ERR_get_next_error_library
    linkageType: ''
    returnType: void
    signature: void ERR_CAPI_error(int function, int reason, char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: CAPIerr
    functionSourceFile: /src/openssl-1.1.1g/engines/e_capi_err.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAPIerr(f, r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_padlock
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:57,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:60,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:61,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: engine_load_padlock_int
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ENGINE_padlock
    - ENGINE_free
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: void engine_load_padlock_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: padlock_available
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:95,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:104,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:110,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:111,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:112,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:113,1
    - Dst: ENGINE_set_RAND
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 120
    functionName: padlock_bind_helper
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - ENGINE_set_RAND
    - padlock_available
    - ENGINE_set_init_function
    - ENGINE_set_name
    - ENGINE_set_id
    - ENGINE_set_ciphers
    linkageType: ''
    returnType: int
    signature: int padlock_bind_helper(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:126,1
    - Dst: padlock_bind_helper
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:132,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: ENGINE_padlock
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 1
    functionsReached:
    - padlock_bind_helper
    - ENGINE_new
    - ENGINE_free
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_padlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: padlock_init
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int padlock_init(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:154,1
    - Dst: padlock_bind_helper
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: padlock_bind_fn
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - strcmp
    - padlock_bind_helper
    linkageType: ''
    returnType: int
    signature: int padlock_bind_fn(ENGINE *e, const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: padlock_capability
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: padlock_available
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 1
    functionsReached:
    - padlock_capability
    linkageType: ''
    returnType: int
    signature: int padlock_available(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: NEAREST_ALIGNED
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEAREST_ALIGNED(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: ALIGNED_CIPHER_DATA
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGNED_CIPHER_DATA(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: padlock_ecb_encrypt
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:301,1
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: padlock_ecb_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_ecb_encrypt
    - ALIGNED_CIPHER_DATA
    linkageType: ''
    returnType: int
    signature: "int padlock_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:309,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:312,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:312,1
    - Dst: padlock_cbc_encrypt
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:313,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:314,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: padlock_cbc_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ALIGNED_CIPHER_DATA
    - padlock_cbc_encrypt
    - memcpy
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_iv
    linkageType: ''
    returnType: int
    signature: "int padlock_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:322,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:325,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:326,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:331,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:342,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:348,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:348,1
    - Dst: padlock_cfb_encrypt
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:351,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:361,1
    - Dst: padlock_reload_key
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:364,1
    - Dst: padlock_aes_block
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:365,1
    - Dst: padlock_reload_key
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:367,1
    - Dst: padlock_reload_key
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:374,1
    - Dst: padlock_aes_block
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:375,1
    - Dst: padlock_reload_key
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:376,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:384,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:384,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 387
    functionName: padlock_cfb_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - padlock_cfb_encrypt
    - EVP_CIPHER_CTX_set_num
    - ALIGNED_CIPHER_DATA
    - padlock_aes_block
    - memcpy
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    - padlock_reload_key
    - EVP_CIPHER_CTX_iv
    linkageType: ''
    returnType: int
    signature: "int padlock_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:393,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:399,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:400,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:410,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:416,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:416,1
    - Dst: padlock_ofb_encrypt
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:419,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:429,1
    - Dst: padlock_reload_key
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:430,1
    - Dst: padlock_aes_block
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:431,1
    - Dst: padlock_reload_key
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:432,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:439,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 442
    functionName: padlock_ofb_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_num
    - ALIGNED_CIPHER_DATA
    - padlock_aes_block
    - memcpy
    - padlock_ofb_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    - padlock_reload_key
    - EVP_CIPHER_CTX_iv
    linkageType: ''
    returnType: int
    signature: "int padlock_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:449,1
    - Dst: padlock_ctr32_encrypt
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - in
    - out
    - blocks
    - ctx
    - ivec
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - struct padlock_cipher_data*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 451
    functionName: padlock_ctr32_encrypt_glue
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_ctr32_encrypt
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void padlock_ctr32_encrypt_glue(const unsigned char *in,\n                                       unsigned
      char *out, size_t blocks,\n                                       struct padlock_cipher_data
      *ctx,\n                                       const unsigned char *ivec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:457,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:458,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:460,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:461,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:462,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 467
    functionName: padlock_ctr_cipher
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_set_num
    - ALIGNED_CIPHER_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    - CRYPTO_ctr128_encrypt_ctr32
    linkageType: ''
    returnType: int
    signature: "int padlock_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ksize
    - ','
    - lmode
    - ','
    - umode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 507
    functionName: DECLARE_AES_EVP
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_AES_EVP(ksize,lmode,umode)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: padlock_aes_128_ecb
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:539,1
    - Dst: padlock_aes_128_cbc
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:542,1
    - Dst: padlock_aes_128_cfb
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:545,1
    - Dst: padlock_aes_128_ofb
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:548,1
    - Dst: padlock_aes_128_ctr
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:551,1
    - Dst: padlock_aes_192_ecb
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:555,1
    - Dst: padlock_aes_192_cbc
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:558,1
    - Dst: padlock_aes_192_cfb
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:561,1
    - Dst: padlock_aes_192_ofb
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:564,1
    - Dst: padlock_aes_192_ctr
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:567,1
    - Dst: padlock_aes_256_ecb
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:571,1
    - Dst: padlock_aes_256_cbc
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:574,1
    - Dst: padlock_aes_256_cfb
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:577,1
    - Dst: padlock_aes_256_ofb
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:580,1
    - Dst: padlock_aes_256_ctr
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:583,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 593
    functionName: padlock_ciphers
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_aes_128_cfb
    - padlock_aes_192_cfb
    - padlock_aes_192_ofb
    - padlock_aes_256_cfb
    - padlock_aes_128_ecb
    - padlock_aes_256_ecb
    - padlock_aes_256_ofb
    - padlock_aes_128_ctr
    - padlock_aes_192_ecb
    - padlock_aes_192_ctr
    - padlock_aes_256_cbc
    - padlock_aes_256_ctr
    - padlock_aes_128_ofb
    - padlock_aes_192_cbc
    - padlock_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: "int padlock_ciphers(ENGINE *e, const EVP_CIPHER **cipher, const int
      **nids,\n                int nid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:601,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:602,1
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:607,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:608,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:614,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:623,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:639,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:641,1
    - Dst: padlock_key_bswap
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:646,1
    - Dst: padlock_reload_key
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:661,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 664
    functionName: padlock_aes_init_key
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_CTX_encrypting
    - AES_set_encrypt_key
    - ALIGNED_CIPHER_DATA
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - AES_set_decrypt_key
    - memset
    - padlock_reload_key
    - padlock_key_bswap
    linkageType: ''
    returnType: int
    signature: "int padlock_aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char
      *key,\n                     const unsigned char *iv, int enc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: padlock_xstore
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:682,1
    - Dst: padlock_xstore
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:696,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/engines/e_padlock.c:709,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - output
    - count
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 712
    functionName: padlock_rand_bytes
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_xstore
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int padlock_rand_bytes(unsigned char *output, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 718
    functionName: padlock_rand_status
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int padlock_rand_status(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - id
    - fns
    argTypes:
    - ENGINE*
    - char*
    - dynamic_fns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: bind_engine
    functionSourceFile: /src/openssl-1.1.1g/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPENSSL_EXPORT
    signature: OPENSSL_EXPORT bind_engine(ENGINE *e, const char *id, const dynamic_fns
      *fns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: ALG_DGB
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_DGB(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: ALG_INFO
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_INFO(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: ALG_WARN
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_WARN(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: ALG_ERR
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_ERR(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: ALG_PERR
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_PERR(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: ALG_PWARN
    functionSourceFile: /src/openssl-1.1.1g/engines/e_afalg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_PWARN(x, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-1.1.1g/engines/e_ossltest_err.c:35,1
    - Dst: ERR_load_strings
      Src: /src/openssl-1.1.1g/engines/e_ossltest_err.c:39,1
    - Dst: ERR_load_strings
      Src: /src/openssl-1.1.1g/engines/e_ossltest_err.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: ERR_load_OSSLTEST_strings
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings
    - ERR_get_next_error_library
    linkageType: ''
    returnType: int
    signature: int ERR_load_OSSLTEST_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openssl-1.1.1g/engines/e_ossltest_err.c:51,1
    - Dst: ERR_unload_strings
      Src: /src/openssl-1.1.1g/engines/e_ossltest_err.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: ERR_unload_OSSLTEST_strings
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: void ERR_unload_OSSLTEST_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-1.1.1g/engines/e_ossltest_err.c:61,1
    - Dst: ERR_PUT_error
      Src: /src/openssl-1.1.1g/engines/e_ossltest_err.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: ERR_OSSLTEST_error
    functionSourceFile: /src/openssl-1.1.1g/engines/e_ossltest_err.c
    functionUses: 0
    functionsReached:
    - ERR_PUT_error
    - ERR_get_next_error_library
    linkageType: ''
    returnType: void
    signature: void ERR_OSSLTEST_error(int function, int reason, char *file, int line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:29,1
    - Dst: pthread_rwlock_init
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:34,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:35,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:42,1
    - Dst: pthread_mutexattr_init
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:47,1
    - Dst: pthread_mutexattr_settype
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:48,1
    - Dst: pthread_mutex_init
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:50,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:52,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 60
    functionName: CRYPTO_THREAD_lock_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutexattr_settype
    - pthread_mutexattr_init
    - pthread_mutex_init
    - OPENSSL_free
    - pthread_rwlock_init
    - OPENSSL_zalloc
    - pthread_mutexattr_destroy
    linkageType: ''
    returnType: CRYPTO_RWLOCK
    signature: CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_rdlock
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:65,1
    - Dst: pthread_mutex_lock
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: CRYPTO_THREAD_read_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_rwlock_rdlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_wrlock
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:78,1
    - Dst: pthread_mutex_lock
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: CRYPTO_THREAD_write_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_rwlock_wrlock
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_unlock
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:91,1
    - Dst: pthread_mutex_unlock
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: CRYPTO_THREAD_unlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_rwlock_unlock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_destroy
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:107,1
    - Dst: pthread_mutex_destroy
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 114
    functionName: CRYPTO_THREAD_lock_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - OPENSSL_free
    - pthread_rwlock_destroy
    linkageType: ''
    returnType: void
    signature: void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - once
    argTypes:
    - CRYPTO_ONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: CRYPTO_THREAD_run_once
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: CRYPTO_THREAD_init_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: CRYPTO_THREAD_get_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_getspecific
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setspecific
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: CRYPTO_THREAD_set_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_setspecific
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_delete
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: CRYPTO_THREAD_cleanup_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_key_delete
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: CRYPTO_THREAD_get_current_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_self
    linkageType: ''
    returnType: CRYPTO_THREAD_ID
    signature: CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CRYPTO_THREAD_ID
    - CRYPTO_THREAD_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: CRYPTO_THREAD_compare_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_equal
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_is_lock_free
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:166,1
    - Dst: __atomic_add_fetch
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:167,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:171,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - val
    - amount
    - ret
    - lock
    argTypes:
    - int*
    - int
    - int*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 181
    functionName: CRYPTO_atomic_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - __atomic_add_fetch
    - CRYPTO_THREAD_write_lock
    - __atomic_is_lock_free
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK
      *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_atfork
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: fork_once_func
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_atfork
    linkageType: ''
    returnType: void
    signature: void fork_once_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: openssl_init_fork_handlers
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: int
    signature: int openssl_init_fork_handlers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openssl-1.1.1g/crypto/threads_pthread.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: openssl_get_fork_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - getpid
    linkageType: ''
    returnType: int
    signature: int openssl_get_fork_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __GLIBC_PREREQ
      Src: /src/openssl-1.1.1g/crypto/getenv.c:20,1
    - Dst: secure_getenv
      Src: /src/openssl-1.1.1g/crypto/getenv.c:22,1
    - Dst: OPENSSL_issetugid
      Src: /src/openssl-1.1.1g/crypto/getenv.c:27,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/crypto/getenv.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: ossl_safe_getenv
    functionSourceFile: /src/openssl-1.1.1g/crypto/getenv.c
    functionUses: 0
    functionsReached:
    - __GLIBC_PREREQ
    - OPENSSL_issetugid
    - secure_getenv
    - getenv
    linkageType: ''
    returnType: char
    signature: char *ossl_safe_getenv(const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:42,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:57,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:59,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:60,1
    - Dst: _alloca
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:64,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:66,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:68,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:68,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:69,1
    - Dst: _wfopen
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:70,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:77,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:79,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:80,1
    - Dst: pathconf
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:86,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:90,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:90,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:91,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:111,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/crypto/o_fopen.c:114,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 117
    functionName: openssl_fopen
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_fopen.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OSSL_NELEM
    - pathconf
    - OPENSSL_malloc
    - OPENSSL_free
    - GetLastError
    - _alloca
    - fopen
    - MultiByteToWideChar
    - _wfopen
    - strlen
    linkageType: ''
    returnType: FILE
    signature: FILE *openssl_fopen(const char *filename, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: openssl_fopen
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *openssl_fopen(const char *filename, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: S390X_CAPBIT
    functionSourceFile: /src/openssl-1.1.1g/crypto/s390x_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_CAPBIT(i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_mont_vis3
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:68,1
    - Dst: bn_mul_mont_vis3
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:71,1
    - Dst: bn_mul_mont_fpu
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:85,1
    - Dst: bn_mul_mont_int
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:87,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 88
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - bn_mul_mont_int
    - bn_mul_mont_fpu
    - bn_mul_mont_vis3
    linkageType: ''
    returnType: int
    signature: "int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0, int num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gethrtime
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - gethrtime
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _sparcv9_vis1_instrument_bus
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - cnt
    argTypes:
    - unsigned int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: OPENSSL_instrument_bus
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - _sparcv9_vis1_instrument_bus
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus(unsigned int *out, size_t cnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _sparcv9_vis1_instrument_bus2
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - cnt
    - max
    argTypes:
    - unsigned int*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: OPENSSL_instrument_bus2
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - _sparcv9_vis1_instrument_bus2
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: common_handler
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void common_handler(int sig)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:160,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:161,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:162,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:163,1
    - Dst: getisax
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:171,1
    - Dst: _sparcv9_vis1_instrument
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:200,1
    - Dst: sigfillset
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:214,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:215,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:216,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:218,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:220,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:221,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:222,1
    - Dst: sigprocmask
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:223,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:225,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:229,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:230,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:233,1
    - Dst: _sparcv9_rdtick
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:234,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:238,1
    - Dst: _sparcv9_vis1_probe
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:239,1
    - Dst: _sparcv9_vis1_instrument
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:242,1
    - Dst: _sparcv9_vis2_probe
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:245,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:250,1
    - Dst: _sparcv9_fmadd_probe
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:251,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:259,1
    - Dst: _sparcv9_vis3_probe
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:260,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:264,1
    - Dst: _sparcv9_fjaesx_probe
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:265,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:276,1
    - Dst: _sparcv9_rdcfr
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:277,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:280,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:281,1
    - Dst: sigprocmask
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:283,1
    - Dst: syscall
      Src: /src/openssl-1.1.1g/crypto/sparcv9cap.c:289,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 295
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - _sparcv9_vis2_probe
    - getisax
    - sigaction
    - strtoul
    - _sparcv9_vis3_probe
    - _sparcv9_rdcfr
    - _sparcv9_rdtick
    - sigsetjmp
    - sigdelset
    - syscall
    - getenv
    - strchr
    - sigfillset
    - _sparcv9_fjaesx_probe
    - memset
    - sigprocmask
    - _sparcv9_vis1_instrument
    - _sparcv9_fmadd_probe
    - _sparcv9_vis1_probe
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset_func
      Src: /src/openssl-1.1.1g/crypto/mem_clr.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: OPENSSL_cleanse
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_clr.c
    functionUses: 3
    functionsReached:
    - memset_func
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cleanse(void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: FIPS_mode
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_fips.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int FIPS_mode(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/o_fips.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: FIPS_mode_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_fips.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    linkageType: ''
    returnType: int
    signature: int FIPS_mode_set(int r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:40,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_ex_data_init)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:55,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:59,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:60,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - class_index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 80
    functionName: get_and_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE
    linkageType: ''
    returnType: EX_CALLBACKS
    signature: EX_CALLBACKS *get_and_lock(int class_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcs
    argTypes:
    - EX_CALLBACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: cleanup_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_cb(EX_CALLBACK *funcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_EX_CALLBACK_pop_free
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:100,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: crypto_cleanup_all_ex_data_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - sk_EX_CALLBACK_pop_free
    linkageType: ''
    returnType: void
    signature: void crypto_cleanup_all_ex_data_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: dummy_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dummy_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx,\n
      \                    long argl, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: dummy_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dummy_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx,\n
      \                      long argl, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - to
    - from
    - from_d
    - idx
    - argl
    - argp
    argTypes:
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    - void*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: dummy_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dummy_dup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,\n                     void
      *from_d, int idx,\n                     long argl, void *argp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:132,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:138,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:140,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - class_index
    - idx
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: CRYPTO_free_ex_index
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - sk_EX_CALLBACK_value
    - CRYPTO_THREAD_unlock
    - sk_EX_CALLBACK_num
    - get_and_lock
    linkageType: ''
    returnType: int
    signature: int CRYPTO_free_ex_index(int class_index, int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:161,1
    - Dst: sk_EX_CALLBACK_new_null
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:167,1
    - Dst: sk_EX_CALLBACK_push
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:171,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:172,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:177,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:179,1
    - Dst: sk_EX_CALLBACK_push
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:188,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:189,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:190,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:193,1
    - Dst: sk_EX_CALLBACK_set
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:194,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - class_index
    - argl
    - argp
    - new_func
    - dup_func
    - free_func
    argTypes:
    - int
    - long
    - void*
    - CRYPTO_EX_new*
    - CRYPTO_EX_dup*
    - CRYPTO_EX_free*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 199
    functionName: CRYPTO_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OPENSSL_malloc
    - sk_EX_CALLBACK_set
    - OPENSSL_free
    - sk_EX_CALLBACK_num
    - get_and_lock
    - sk_EX_CALLBACK_push
    - CRYPTO_THREAD_unlock
    - sk_EX_CALLBACK_new_null
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp,\n
      \                           CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func,\n
      \                           CRYPTO_EX_free *free_func)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:214,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:221,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:223,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:226,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:229,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:231,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:234,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:239,1
    - Dst: new_func
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:240,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:245,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - class_index
    - obj
    - ad
    argTypes:
    - int
    - void*
    - CRYPTO_EX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 247
    functionName: CRYPTO_new_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OSSL_NELEM
    - OPENSSL_malloc
    - new_func
    - OPENSSL_free
    - sk_EX_CALLBACK_num
    - get_and_lock
    - CRYPTO_THREAD_unlock
    - sk_EX_CALLBACK_value
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: int
    signature: int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:266,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:269,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:270,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:274,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:277,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:280,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:282,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:287,1
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:297,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:297,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:301,1
    - Dst: dup_func
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:303,1
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:306,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:311,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - class_index
    - to
    - from
    argTypes:
    - int
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 313
    functionName: CRYPTO_dup_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OSSL_NELEM
    - OPENSSL_malloc
    - CRYPTO_set_ex_data
    - OPENSSL_free
    - sk_EX_CALLBACK_num
    - get_and_lock
    - CRYPTO_THREAD_unlock
    - dup_func
    - sk_EX_CALLBACK_value
    - sk_void_num
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to,\n                       const
      CRYPTO_EX_DATA *from)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:329,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:332,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:334,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:337,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:340,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:342,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:348,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:349,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:350,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:353,1
    - Dst: EX_CALLBACK*::free_func
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:354,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:359,1
    - Dst: sk_void_free
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:361,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - class_index
    - obj
    - ad
    argTypes:
    - int
    - void*
    - CRYPTO_EX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 363
    functionName: CRYPTO_free_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - OSSL_NELEM
    - OPENSSL_malloc
    - EX_CALLBACK*::free_func
    - OPENSSL_free
    - sk_EX_CALLBACK_num
    - get_and_lock
    - sk_void_free
    - CRYPTO_THREAD_unlock
    - sk_EX_CALLBACK_value
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA
      *ad)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_void_new_null
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:374,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:375,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:380,1
    - Dst: sk_void_push
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:381,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:382,1
    - Dst: sk_void_set
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ad
    - idx
    - val
    argTypes:
    - CRYPTO_EX_DATA*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 388
    functionName: CRYPTO_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 1
    functionsReached:
    - CRYPTOerr
    - sk_void_push
    - sk_void_set
    - sk_void_new_null
    - sk_void_num
    linkageType: ''
    returnType: int
    signature: int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:396,1
    - Dst: sk_void_value
      Src: /src/openssl-1.1.1g/crypto/ex_data.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ad
    - idx
    argTypes:
    - CRYPTO_EX_DATA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 399
    functionName: CRYPTO_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ex_data.c
    functionUses: 3
    functionsReached:
    - sk_void_value
    - sk_void_num
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: CLEAR
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR(p, s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:74,1
    - Dst: sh_init
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:77,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - size
    - minsize
    argTypes:
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: CRYPTO_secure_malloc_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - CRYPTO_THREAD_lock_free
    - sh_init
    linkageType: ''
    returnType: int
    signature: int CRYPTO_secure_malloc_init(size_t size, int minsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sh_done
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:95,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: CRYPTO_secure_malloc_done
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - sh_done
    linkageType: ''
    returnType: int
    signature: int CRYPTO_secure_malloc_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: CRYPTO_secure_malloc_initialized
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_secure_malloc_initialized(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:121,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:123,1
    - Dst: sh_malloc
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:124,1
    - Dst: sh_actual_size
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:125,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:127,1
    - Dst: CRYPTO_malloc
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 132
    functionName: CRYPTO_secure_malloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - sh_actual_size
    - CRYPTO_malloc
    - sh_malloc
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_secure_malloc(size_t num, const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_malloc
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:139,1
    - Dst: CRYPTO_zalloc
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: CRYPTO_secure_zalloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_zalloc
    - CRYPTO_secure_malloc
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_secure_zalloc(size_t num, const char *file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:151,1
    - Dst: CRYPTO_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:152,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:155,1
    - Dst: sh_actual_size
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:156,1
    - Dst: CLEAR
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:157,1
    - Dst: sh_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:159,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:160,1
    - Dst: CRYPTO_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ptr
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 164
    functionName: CRYPTO_secure_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_free
    - CLEAR
    - sh_actual_size
    - CRYPTO_THREAD_unlock
    - sh_free
    - CRYPTO_secure_allocated
    linkageType: ''
    returnType: void
    signature: void CRYPTO_secure_free(void *ptr, const char *file, int line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:174,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:175,1
    - Dst: CRYPTO_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:176,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:179,1
    - Dst: sh_actual_size
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:180,1
    - Dst: CLEAR
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:181,1
    - Dst: sh_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:183,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:184,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:188,1
    - Dst: CRYPTO_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - ptr
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 191
    functionName: CRYPTO_secure_clear_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_free
    - CLEAR
    - sh_actual_size
    - CRYPTO_THREAD_unlock
    - sh_free
    - CRYPTO_secure_allocated
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_secure_clear_free(void *ptr, size_t num,\n                              const
      char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:200,1
    - Dst: sh_allocated
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:201,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: CRYPTO_secure_allocated
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 2
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - sh_allocated
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int CRYPTO_secure_allocated(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: CRYPTO_secure_used
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CRYPTO_secure_used(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:223,1
    - Dst: sh_actual_size
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:224,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: CRYPTO_secure_actual_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - sh_actual_size
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: size_t
    signature: size_t CRYPTO_secure_actual_size(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: TESTBIT
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTBIT(t, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: SETBIT
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBIT(t, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: CLEARBIT
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEARBIT(t, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: WITHIN_ARENA
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WITHIN_ARENA(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: WITHIN_FREELIST
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WITHIN_FREELIST(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TESTBIT
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:296,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 302
    functionName: sh_getlist
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: size_t sh_getlist(char *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:309,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:310,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:312,1
    - Dst: TESTBIT
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - list
    - table
    argTypes:
    - char*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 314
    functionName: sh_testbit
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: int sh_testbit(char *ptr, int list, unsigned char *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:320,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:321,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:323,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:324,1
    - Dst: TESTBIT
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:324,1
    - Dst: CLEARBIT
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - list
    - table
    argTypes:
    - char*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: sh_clearbit
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - OPENSSL_assert
    - CLEARBIT
    linkageType: ''
    returnType: void
    signature: void sh_clearbit(char *ptr, int list, unsigned char *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:332,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:333,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:335,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:336,1
    - Dst: TESTBIT
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:336,1
    - Dst: SETBIT
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - list
    - table
    argTypes:
    - char*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: sh_setbit
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - OPENSSL_assert
    - SETBIT
    linkageType: ''
    returnType: void
    signature: void sh_setbit(char *ptr, int list, unsigned char *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:344,1
    - Dst: WITHIN_FREELIST
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:344,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:345,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:345,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:349,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:349,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - ptr
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 358
    functionName: sh_add_to_list
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - WITHIN_ARENA
    - WITHIN_FREELIST
    linkageType: ''
    returnType: void
    signature: void sh_add_to_list(char **list, char *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:372,1
    - Dst: WITHIN_FREELIST
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:372,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 373
    functionName: sh_remove_from_list
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - WITHIN_ARENA
    - WITHIN_FREELIST
    linkageType: ''
    returnType: void
    signature: void sh_remove_from_list(char *ptr)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:383,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:386,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:387,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:388,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:389,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:410,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:411,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:415,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:416,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:420,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:421,1
    - Dst: sysconf
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:429,1
    - Dst: sysconf
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:431,1
    - Dst: mmap
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:444,1
    - Dst: open
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:451,1
    - Dst: mmap
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:452,1
    - Dst: close
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:454,1
    - Dst: sh_setbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:460,1
    - Dst: sh_add_to_list
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:461,1
    - Dst: mprotect
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:467,1
    - Dst: mprotect
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:472,1
    - Dst: syscall
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:476,1
    - Dst: mlock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:478,1
    - Dst: mlock
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:485,1
    - Dst: madvise
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:489,1
    - Dst: sh_done
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:496,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 82
    argCount: 2
    argNames:
    - size
    - minsize
    argTypes:
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 498
    functionName: sh_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - mmap
    - madvise
    - sysconf
    - open
    - close
    - sh_add_to_list
    - syscall
    - sh_setbit
    - mlock
    - memset
    - OPENSSL_zalloc
    - sh_done
    - mprotect
    linkageType: ''
    returnType: int
    signature: int sh_init(size_t size, int minsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:502,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:503,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:504,1
    - Dst: munmap
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:506,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 508
    functionName: sh_done
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - memset
    - munmap
    linkageType: ''
    returnType: void
    signature: void sh_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WITHIN_ARENA
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: sh_allocated
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - WITHIN_ARENA
    linkageType: ''
    returnType: int
    signature: int sh_allocated(const char *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TESTBIT
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:523,1
    - Dst: TESTBIT
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - list
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 527
    functionName: sh_find_my_buddy
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    linkageType: ''
    returnType: char
    signature: char *sh_find_my_buddy(char *ptr, int list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:556,1
    - Dst: sh_testbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:556,1
    - Dst: sh_clearbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:557,1
    - Dst: sh_remove_from_list
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:558,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:559,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:565,1
    - Dst: sh_testbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:565,1
    - Dst: sh_setbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:566,1
    - Dst: sh_add_to_list
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:567,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:568,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:572,1
    - Dst: sh_testbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:572,1
    - Dst: sh_setbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:573,1
    - Dst: sh_add_to_list
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:574,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:575,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:577,1
    - Dst: sh_find_my_buddy
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:577,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:582,1
    - Dst: sh_testbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:582,1
    - Dst: sh_setbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:583,1
    - Dst: sh_remove_from_list
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:584,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:586,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:586,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:589,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 592
    functionName: sh_malloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - sh_find_my_buddy
    - WITHIN_ARENA
    - sh_add_to_list
    - sh_testbit
    - sh_setbit
    - memset
    - sh_clearbit
    - sh_remove_from_list
    linkageType: ''
    returnType: void
    signature: void *sh_malloc(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:601,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:601,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:602,1
    - Dst: sh_getlist
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:605,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:606,1
    - Dst: sh_testbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:606,1
    - Dst: sh_clearbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:607,1
    - Dst: sh_add_to_list
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:608,1
    - Dst: sh_find_my_buddy
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:611,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:612,1
    - Dst: sh_find_my_buddy
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:612,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:613,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:614,1
    - Dst: sh_testbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:614,1
    - Dst: sh_clearbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:615,1
    - Dst: sh_remove_from_list
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:616,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:617,1
    - Dst: sh_testbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:617,1
    - Dst: sh_clearbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:618,1
    - Dst: sh_remove_from_list
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:619,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:624,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:628,1
    - Dst: sh_testbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:628,1
    - Dst: sh_setbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:629,1
    - Dst: sh_add_to_list
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:630,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:631,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 633
    functionName: sh_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 2
    functionsReached:
    - OPENSSL_assert
    - sh_find_my_buddy
    - WITHIN_ARENA
    - sh_add_to_list
    - sh_getlist
    - sh_testbit
    - sh_setbit
    - memset
    - sh_clearbit
    - sh_remove_from_list
    linkageType: ''
    returnType: void
    signature: void sh_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:639,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:639,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:640,1
    - Dst: sh_getlist
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:642,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:643,1
    - Dst: sh_testbit
      Src: /src/openssl-1.1.1g/crypto/mem_sec.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 645
    functionName: sh_actual_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_sec.c
    functionUses: 4
    functionsReached:
    - sh_getlist
    - OPENSSL_assert
    - sh_testbit
    - WITHIN_ARENA
    linkageType: ''
    returnType: size_t
    signature: size_t sh_actual_size(char *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/armcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-1.1.1g/crypto/armcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openssl-1.1.1g/crypto/armcap.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: ill_handler
    functionSourceFile: /src/openssl-1.1.1g/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void ill_handler(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _armv7_tick
      Src: /src/openssl-1.1.1g/crypto/armcap.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-1.1.1g/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - _armv7_tick
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/crypto/armcap.c:112,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/armcap.c:113,1
    - Dst: getauxval
      Src: /src/openssl-1.1.1g/crypto/armcap.c:138,1
    - Dst: getauxval
      Src: /src/openssl-1.1.1g/crypto/armcap.c:139,1
    - Dst: sigfillset
      Src: /src/openssl-1.1.1g/crypto/armcap.c:162,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/armcap.c:163,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/armcap.c:164,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/armcap.c:165,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/armcap.c:166,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/armcap.c:167,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/armcap.c:169,1
    - Dst: sigprocmask
      Src: /src/openssl-1.1.1g/crypto/armcap.c:173,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/armcap.c:174,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/armcap.c:178,1
    - Dst: _armv7_neon_probe
      Src: /src/openssl-1.1.1g/crypto/armcap.c:179,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/armcap.c:181,1
    - Dst: _armv8_pmull_probe
      Src: /src/openssl-1.1.1g/crypto/armcap.c:182,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/armcap.c:184,1
    - Dst: _armv8_aes_probe
      Src: /src/openssl-1.1.1g/crypto/armcap.c:185,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/armcap.c:188,1
    - Dst: _armv8_sha1_probe
      Src: /src/openssl-1.1.1g/crypto/armcap.c:189,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/armcap.c:192,1
    - Dst: _armv8_sha256_probe
      Src: /src/openssl-1.1.1g/crypto/armcap.c:193,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/armcap.c:197,1
    - Dst: _armv8_sha512_probe
      Src: /src/openssl-1.1.1g/crypto/armcap.c:198,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/armcap.c:206,1
    - Dst: _armv7_tick
      Src: /src/openssl-1.1.1g/crypto/armcap.c:207,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/armcap.c:211,1
    - Dst: sigprocmask
      Src: /src/openssl-1.1.1g/crypto/armcap.c:212,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 213
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - _armv8_sha256_probe
    - _armv8_aes_probe
    - _armv8_sha512_probe
    - getenv
    - getauxval
    - sigsetjmp
    - sigaction
    - _armv7_neon_probe
    - _armv8_pmull_probe
    - sigdelset
    - _armv8_sha1_probe
    - strtoul
    - sigprocmask
    - memset
    - sigfillset
    - _armv7_tick
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fab
    - ','
    - naml
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: FAB_OR_NAML
    functionSourceFile: /src/openssl-1.1.1g/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAB_OR_NAML( fab, naml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nam
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: SET_NAMX_NO_SHORT_UPCASE
    functionSourceFile: /src/openssl-1.1.1g/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_NAMX_NO_SHORT_UPCASE( nam)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fab
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: NAMX_DNA_FNA_SET
    functionSourceFile: /src/openssl-1.1.1g/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMX_DNA_FNA_SET(fab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fab
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: NAMX_DNA_FNA_SET
    functionSourceFile: /src/openssl-1.1.1g/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMX_DNA_FNA_SET(fab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fab
    - ','
    - naml
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: FAB_OR_NAML
    functionSourceFile: /src/openssl-1.1.1g/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAB_OR_NAML( fab, naml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nam
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: SET_NAMX_NO_SHORT_UPCASE
    functionSourceFile: /src/openssl-1.1.1g/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_NAMX_NO_SHORT_UPCASE( nam)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:96,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:101,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:105,1
    - Dst: opendir
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:112,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:115,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:123,1
    - Dst: readdir
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:129,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:134,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:138,1
    - Dst: isdigit
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:140,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:144,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 149
    functionName: LP_find_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/LPdir_unix.c
    functionUses: 0
    functionsReached:
    - opendir
    - free
    - strncpy
    - malloc
    - readdir
    - isdigit
    - OPENSSL_strlcpy
    - memset
    - strcasecmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:154,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/LPdir_unix.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 168
    functionName: LP_find_file_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/LPdir_unix.c
    functionUses: 0
    functionsReached:
    - closedir
    - free
    linkageType: ''
    returnType: int
    signature: int LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: OPENSSL_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/cpt_err.c:71,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/cpt_err.c:72,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/cpt_err.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: ERR_load_CRYPTO_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/cpt_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_CRYPTO_strings(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: ossl_toascii
    functionSourceFile: /src/openssl-1.1.1g/crypto/ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_toascii(int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: ossl_fromascii
    functionSourceFile: /src/openssl-1.1.1g/crypto/ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_fromascii(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/ctype.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - c
    - mask
    argTypes:
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: ossl_ctype_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/ctype.c
    functionUses: 0
    functionsReached:
    - ossl_toascii
    linkageType: ''
    returnType: int
    signature: int ossl_ctype_check(int c, unsigned int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isupper
      Src: /src/openssl-1.1.1g/crypto/ctype.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: ossl_tolower
    functionSourceFile: /src/openssl-1.1.1g/crypto/ctype.c
    functionUses: 0
    functionsReached:
    - ossl_isupper
    linkageType: ''
    returnType: int
    signature: int ossl_tolower(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_islower
      Src: /src/openssl-1.1.1g/crypto/ctype.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: ossl_toupper
    functionSourceFile: /src/openssl-1.1.1g/crypto/ctype.c
    functionUses: 0
    functionsReached:
    - ossl_islower
    linkageType: ''
    returnType: int
    signature: int ossl_toupper(int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - inchar
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: ascii_isdigit
    functionSourceFile: /src/openssl-1.1.1g/crypto/ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ascii_isdigit(const char inchar)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:83,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:90,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:95,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:107,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:110,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:113,1
    - Dst: _alloca
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:123,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:124,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:126,1
    - Dst: _alloca
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:139,1
    - Dst: TEXT
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:145,1
    - Dst: TEXT
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:146,1
    - Dst: TEXT
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:146,1
    - Dst: _tcscpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:147,1
    - Dst: TEXT
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:147,1
    - Dst: _tcscpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:149,1
    - Dst: TEXT
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:149,1
    - Dst: FindFirstFile
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:152,1
    - Dst: _alloca
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:155,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:157,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:159,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:161,1
    - Dst: FindFirstFile
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:166,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:170,1
    - Dst: FindNextFile
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:176,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:189,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:196,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 77
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 202
    functionName: LP_find_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/LPdir_win.c
    functionUses: 0
    functionsReached:
    - free
    - strcpy
    - strncpy
    - FindNextFile
    - _tcscpy
    - GetLastError
    - _alloca
    - TEXT
    - WideCharToMultiByte
    - FindFirstFile
    - memset
    - MultiByteToWideChar
    - strlen
    - malloc
    linkageType: ''
    returnType: char
    signature: char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:207,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/LPdir_win.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: LP_find_file_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/LPdir_win.c
    functionUses: 0
    functionsReached:
    - free
    - FindClose
    linkageType: ''
    returnType: int
    signature: int LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/threads_none.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: CRYPTO_THREAD_lock_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 2
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CRYPTO_RWLOCK
    signature: CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/threads_none.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: CRYPTO_THREAD_read_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/threads_none.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: CRYPTO_THREAD_write_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 8
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/threads_none.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: CRYPTO_THREAD_unlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 11
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/threads_none.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: CRYPTO_THREAD_lock_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openssl-1.1.1g/crypto/threads_none.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - once
    argTypes:
    - CRYPTO_ONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: CRYPTO_THREAD_run_once
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: CRYPTO_THREAD_init_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void
      *))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: CRYPTO_THREAD_get_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: CRYPTO_THREAD_set_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: CRYPTO_THREAD_cleanup_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: CRYPTO_THREAD_get_current_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CRYPTO_THREAD_ID
    signature: CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CRYPTO_THREAD_ID
    - CRYPTO_THREAD_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: CRYPTO_THREAD_compare_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - val
    - amount
    - ret
    - lock
    argTypes:
    - int*
    - int
    - int*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: CRYPTO_atomic_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK
      *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: openssl_init_fork_handlers
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int openssl_init_fork_handlers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openssl-1.1.1g/crypto/threads_none.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: openssl_get_fork_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_none.c
    functionUses: 0
    functionsReached:
    - getpid
    linkageType: ''
    returnType: int
    signature: int openssl_get_fork_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: __power_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __power_set(a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul4x_mont_int
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:54,1
    - Dst: bn_mul_mont_int
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - bn_mul_mont_int
    - bn_mul4x_mont_int
    linkageType: ''
    returnType: int
    signature: "int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0, int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_block_p8
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:73,1
    - Dst: sha256_block_ppc
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - inp
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: sha256_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - sha256_block_ppc
    - sha256_block_p8
    linkageType: ''
    returnType: void
    signature: void sha256_block_data_order(void *ctx, const void *inp, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_block_p8
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:82,1
    - Dst: sha512_block_ppc
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - inp
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: sha512_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - sha512_block_p8
    - sha512_block_ppc
    linkageType: ''
    returnType: void
    signature: void sha512_block_data_order(void *ctx, const void *inp, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20_ctr32_vsx
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:101,1
    - Dst: ChaCha20_ctr32_vmx
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:103,1
    - Dst: ChaCha20_ctr32_int
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - inp
    - len
    - key
    - counter
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned int[]
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: ChaCha20_ctr32
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - ChaCha20_ctr32_int
    - ChaCha20_ctr32_vmx
    - ChaCha20_ctr32_vsx
    linkageType: ''
    returnType: void
    signature: "void ChaCha20_ctr32(unsigned char *out, const unsigned char *inp,\n
      \                   size_t len, const unsigned int key[8],\n                    const
      unsigned int counter[4])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_init_fpu
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:123,1
    - Dst: poly1305_init_int
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - key
    - func
    argTypes:
    - void*
    - unsigned char[]
    - void*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: poly1305_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - poly1305_init_int
    - poly1305_init_fpu
    linkageType: ''
    returnType: int
    signature: int poly1305_init(void *ctx, const unsigned char key[16], void *func[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - res
    - in
    argTypes:
    - unsigned long[]
    - unsigned long[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: ecp_nistz256_to_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_mul_mont
    linkageType: ''
    returnType: void
    signature: void ecp_nistz256_to_mont(unsigned long res[4], const unsigned long
      in[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - res
    - in
    argTypes:
    - unsigned long[]
    - unsigned long[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: ecp_nistz256_from_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_mul_mont
    linkageType: ''
    returnType: void
    signature: void ecp_nistz256_from_mont(unsigned long res[4], const unsigned long
      in[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: ill_handler
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void ill_handler(int sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_rdtsc_mftb
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:177,1
    - Dst: OPENSSL_rdtsc_mfspr268
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - OPENSSL_rdtsc_mftb
    - OPENSSL_rdtsc_mfspr268
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_instrument_bus_mftb
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:190,1
    - Dst: OPENSSL_instrument_bus_mfspr268
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - out
    - cnt
    argTypes:
    - unsigned int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: OPENSSL_instrument_bus
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - OPENSSL_instrument_bus_mftb
    - OPENSSL_instrument_bus_mfspr268
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus(unsigned int *out, size_t cnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_instrument_bus2_mftb
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:203,1
    - Dst: OPENSSL_instrument_bus2_mfspr268
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - out
    - cnt
    - max
    argTypes:
    - unsigned int*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: OPENSSL_instrument_bus2
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - OPENSSL_instrument_bus2_mftb
    - OPENSSL_instrument_bus2_mfspr268
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t
      max)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:243,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:244,1
    - Dst: sysconf
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:256,1
    - Dst: uname
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:259,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:259,1
    - Dst: __power_set
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:271,1
    - Dst: __power_set
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:275,1
    - Dst: __power_set
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:279,1
    - Dst: __power_set
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:282,1
    - Dst: __power_set
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:285,1
    - Dst: sysctlbyname
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:299,1
    - Dst: sysctlbyname
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:305,1
    - Dst: getauxval
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:316,1
    - Dst: getauxval
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:317,1
    - Dst: sigfillset
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:346,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:347,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:348,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:350,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:352,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:353,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:354,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:356,1
    - Dst: sigprocmask
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:360,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:361,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:364,1
    - Dst: OPENSSL_fpu_probe
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:365,1
    - Dst: uname
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:371,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:371,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:373,1
    - Dst: OPENSSL_ppc64_probe
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:374,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:384,1
    - Dst: OPENSSL_altivec_probe
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:385,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:387,1
    - Dst: OPENSSL_crypto207_probe
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:388,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:393,1
    - Dst: OPENSSL_madd300_probe
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:394,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:399,1
    - Dst: OPENSSL_rdtsc_mftb
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:400,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:402,1
    - Dst: OPENSSL_rdtsc_mfspr268
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:403,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:407,1
    - Dst: sigprocmask
      Src: /src/openssl-1.1.1g/crypto/ppccap.c:408,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 409
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - sigaction
    - atoi
    - strtoul
    - OPENSSL_crypto207_probe
    - sigsetjmp
    - strcmp
    - sysconf
    - sigdelset
    - uname
    - sysctlbyname
    - OPENSSL_rdtsc_mfspr268
    - getenv
    - getauxval
    - OPENSSL_fpu_probe
    - OPENSSL_rdtsc_mftb
    - OPENSSL_madd300_probe
    - sigfillset
    - __power_set
    - OPENSSL_ppc64_probe
    - memset
    - OPENSSL_altivec_probe
    - sigprocmask
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:96,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:119,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:124,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:126,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:127,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:134,1
    - Dst: lib$find_file
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:150,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:159,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:184,1
    - Dst: str$free1_dx
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:186,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 189
    functionName: LP_find_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/LPdir_vms.c
    functionUses: 0
    functionsReached:
    - strcpy
    - str$free1_dx
    - strncpy
    - lib$find_file
    - memset
    - $VMS_STATUS_SUCCESS
    - strcat
    - strlen
    - malloc
    linkageType: ''
    returnType: char
    signature: char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lib$find_file_end
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:194,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:196,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-1.1.1g/crypto/LPdir_vms.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: LP_find_file_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/LPdir_vms.c
    functionUses: 0
    functionsReached:
    - lib$find_file_end
    - free
    - $VMS_STATUS_SUCCESS
    linkageType: ''
    returnType: int
    signature: int LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: INCREMENT
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INCREMENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: FAILTEST
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAILTEST()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - (*m)(size_t, const char *, int)
    - (*r)(void *, size_t, const char *, int)
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: CRYPTO_set_mem_functions
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_set_mem_functions(\n        void *(*m)(size_t, const char
      *, int),\n        void *(*r)(void *, size_t, const char *, int),\n        void
      (*f)(void *, const char *, int))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: CRYPTO_set_mem_debug
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_set_mem_debug(int flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - (**m)(size_t, const char *, int)
    - (**r)(void *, size_t, const char *, int)
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: CRYPTO_get_mem_functions
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_get_mem_functions(\n        void *(**m)(size_t, const
      char *, int),\n        void *(**r)(void *, size_t, const char *, int),\n        void
      (**f)(void *, const char *, int))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/crypto/mem.c:101,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/crypto/mem.c:103,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/crypto/mem.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - mcount
    - rcount
    - fcount
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: CRYPTO_get_alloc_counts
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached:
    - tsan_load
    linkageType: ''
    returnType: void
    signature: void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/mem.c:119,1
    - Dst: atol
      Src: /src/openssl-1.1.1g/crypto/mem.c:126,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/mem.c:127,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/mem.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: parseit
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached:
    - atoi
    - atol
    - strchr
    linkageType: ''
    returnType: void
    signature: void parseit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: random
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: random()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/openssl-1.1.1g/crypto/mem.c:147,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/mem.c:155,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/mem.c:158,1
    - Dst: write
      Src: /src/openssl-1.1.1g/crypto/mem.c:159,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/mem.c:160,1
    - Dst: backtrace
      Src: /src/openssl-1.1.1g/crypto/mem.c:164,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/mem.c:164,1
    - Dst: backtrace_symbols_fd
      Src: /src/openssl-1.1.1g/crypto/mem.c:166,1
    - Dst: parseit
      Src: /src/openssl-1.1.1g/crypto/mem.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 179
    functionName: shouldfail
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - OSSL_NELEM
    - backtrace_symbols_fd
    - parseit
    - random
    - backtrace
    - perror
    - write
    - strlen
    linkageType: ''
    returnType: int
    signature: int shouldfail(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/crypto/mem.c:183,1
    - Dst: strdup
      Src: /src/openssl-1.1.1g/crypto/mem.c:185,1
    - Dst: parseit
      Src: /src/openssl-1.1.1g/crypto/mem.c:186,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/crypto/mem.c:187,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/mem.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: ossl_malloc_setup_failures
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached:
    - strdup
    - atoi
    - getenv
    - parseit
    linkageType: ''
    returnType: void
    signature: void ossl_malloc_setup_failures(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INCREMENT
      Src: /src/openssl-1.1.1g/crypto/mem.c:196,1
    - Dst: malloc_impl
      Src: /src/openssl-1.1.1g/crypto/mem.c:198,1
    - Dst: FAILTEST
      Src: /src/openssl-1.1.1g/crypto/mem.c:203,1
    - Dst: CRYPTO_mem_debug_malloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:214,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:215,1
    - Dst: CRYPTO_mem_debug_malloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:216,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:218,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 226
    functionName: CRYPTO_malloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 1
    functionsReached:
    - INCREMENT
    - FAILTEST
    - malloc_impl
    - CRYPTO_mem_debug_malloc
    - malloc
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_malloc(size_t num, const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:230,1
    - Dst: FAILTEST
      Src: /src/openssl-1.1.1g/crypto/mem.c:232,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/mem.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: CRYPTO_zalloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 1
    functionsReached:
    - memset
    - FAILTEST
    - CRYPTO_malloc
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_zalloc(size_t num, const char *file, int line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INCREMENT
      Src: /src/openssl-1.1.1g/crypto/mem.c:240,1
    - Dst: realloc_impl
      Src: /src/openssl-1.1.1g/crypto/mem.c:242,1
    - Dst: FAILTEST
      Src: /src/openssl-1.1.1g/crypto/mem.c:244,1
    - Dst: CRYPTO_malloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:246,1
    - Dst: CRYPTO_free
      Src: /src/openssl-1.1.1g/crypto/mem.c:249,1
    - Dst: CRYPTO_mem_debug_realloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:256,1
    - Dst: realloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:257,1
    - Dst: CRYPTO_mem_debug_realloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:258,1
    - Dst: realloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - str
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 266
    functionName: CRYPTO_realloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached:
    - INCREMENT
    - FAILTEST
    - CRYPTO_free
    - CRYPTO_malloc
    - CRYPTO_mem_debug_realloc
    - realloc
    - realloc_impl
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_realloc(void *str, size_t num, const char *file, int line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:274,1
    - Dst: CRYPTO_clear_free
      Src: /src/openssl-1.1.1g/crypto/mem.c:277,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/mem.c:283,1
    - Dst: CRYPTO_malloc
      Src: /src/openssl-1.1.1g/crypto/mem.c:287,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/mem.c:289,1
    - Dst: CRYPTO_clear_free
      Src: /src/openssl-1.1.1g/crypto/mem.c:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - str
    - old_len
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 293
    functionName: CRYPTO_clear_realloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - CRYPTO_malloc
    - memcpy
    - CRYPTO_clear_free
    linkageType: ''
    returnType: void
    signature: "void *CRYPTO_clear_realloc(void *str, size_t old_len, size_t num,\n
      \                          const char *file, int line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INCREMENT
      Src: /src/openssl-1.1.1g/crypto/mem.c:297,1
    - Dst: free_impl
      Src: /src/openssl-1.1.1g/crypto/mem.c:299,1
    - Dst: CRYPTO_mem_debug_free
      Src: /src/openssl-1.1.1g/crypto/mem.c:305,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/mem.c:306,1
    - Dst: CRYPTO_mem_debug_free
      Src: /src/openssl-1.1.1g/crypto/mem.c:307,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/mem.c:309,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/mem.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - str
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 314
    functionName: CRYPTO_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 3
    functionsReached:
    - INCREMENT
    - free_impl
    - free
    - CRYPTO_mem_debug_free
    linkageType: ''
    returnType: void
    signature: void CRYPTO_free(void *str, const char *file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/mem.c:321,1
    - Dst: CRYPTO_free
      Src: /src/openssl-1.1.1g/crypto/mem.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - str
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: CRYPTO_clear_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem.c
    functionUses: 1
    functionsReached:
    - CRYPTO_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void CRYPTO_clear_free(void *str, size_t num, const char *file, int
      line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - srce
    - count
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: ebcdic2ascii
    functionSourceFile: /src/openssl-1.1.1g/crypto/ebcdic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ebcdic2ascii(void *dest, const void *srce, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - srce
    - count
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: ascii2ebcdic
    functionSourceFile: /src/openssl-1.1.1g/crypto/ebcdic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ascii2ebcdic(void *dest, const void *srce, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: mflo
    functionSourceFile: /src/openssl-1.1.1g/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mflo(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: mfhi
    functionSourceFile: /src/openssl-1.1.1g/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfhi(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: mflo
    functionSourceFile: /src/openssl-1.1.1g/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mflo(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: mfhi
    functionSourceFile: /src/openssl-1.1.1g/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfhi(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: dmultu
    functionSourceFile: /src/openssl-1.1.1g/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dmultu(rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: multu
    functionSourceFile: /src/openssl-1.1.1g/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multu(rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: mflo
    functionSourceFile: /src/openssl-1.1.1g/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mflo(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: mfhi
    functionSourceFile: /src/openssl-1.1.1g/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfhi(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: LP_find_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/LPdir_nyi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: LP_find_file_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/LPdir_nyi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openssl-1.1.1g/crypto/dllmain.c:33,1
    - Dst: OPENSSL_thread_stop
      Src: /src/openssl-1.1.1g/crypto/dllmain.c:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpvReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: DllMain
    functionSourceFile: /src/openssl-1.1.1g/crypto/dllmain.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cpuid_setup
    - OPENSSL_thread_stop
    linkageType: ''
    returnType: BOOL
    signature: BOOL DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_thread_stop
      Src: /src/openssl-1.1.1g/crypto/init.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - local
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: ossl_init_thread_destructor
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - ossl_init_thread_stop
    linkageType: ''
    returnType: void
    signature: void ossl_init_thread_destructor(void *local)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/init.c:62,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/init.c:66,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/init.c:67,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/init.c:68,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/init.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - alloc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: ossl_init_get_thread_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - CRYPTO_THREAD_set_local
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: struct thread_local_inits_st
    signature: struct thread_local_inits_st *ossl_init_get_thread_local(int alloc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:94,1
    - Dst: ossl_malloc_setup_failures
      Src: /src/openssl-1.1.1g/crypto/init.c:97,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-1.1.1g/crypto/init.c:99,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/init.c:101,1
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openssl-1.1.1g/crypto/init.c:103,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/init.c:113,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/init.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_cleanup_local
    - CRYPTO_THREAD_lock_new
    - ossl_malloc_setup_failures
    - OPENSSL_cpuid_setup
    - CRYPTO_THREAD_init_local
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanup
      Src: /src/openssl-1.1.1g/crypto/init.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: win32atexit
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanup
    linkageType: ''
    returnType: int
    signature: int win32atexit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:132,1
    - Dst: _onexit
      Src: /src/openssl-1.1.1g/crypto/init.c:137,1
    - Dst: atexit
      Src: /src/openssl-1.1.1g/crypto/init.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - _onexit
    - atexit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_register_atexit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_register_atexit,\n                           ossl_init_register_atexit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:162,1
    - Dst: GetModuleHandleEx
      Src: /src/openssl-1.1.1g/crypto/init.c:172,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:177,1
    - Dst: err_shelve_state
      Src: /src/openssl-1.1.1g/crypto/init.c:191,1
    - Dst: DSO_dsobyaddr
      Src: /src/openssl-1.1.1g/crypto/init.c:194,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:196,1
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/init.c:204,1
    - Dst: err_unshelve_state
      Src: /src/openssl-1.1.1g/crypto/init.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 211
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - err_unshelve_state
    - GetModuleHandleEx
    - err_shelve_state
    - DSO_free
    - DSO_dsobyaddr
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_nodelete)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:224,1
    - Dst: err_load_crypto_strings_int
      Src: /src/openssl-1.1.1g/crypto/init.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - err_load_crypto_strings_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_strings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_load_crypto_strings,\n
      \                          ossl_init_load_crypto_strings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:249,1
    - Dst: openssl_add_all_ciphers_int
      Src: /src/openssl-1.1.1g/crypto/init.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - openssl_add_all_ciphers_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_ciphers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_add_all_ciphers,\n                           ossl_init_add_all_ciphers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:273,1
    - Dst: openssl_add_all_digests_int
      Src: /src/openssl-1.1.1g/crypto/init.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - openssl_add_all_digests_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_digests)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_add_all_digests,\n                           ossl_init_add_all_digests)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openssl_config_int
      Src: /src/openssl-1.1.1g/crypto/init.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - openssl_config_int
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:300,1
    - Dst: openssl_no_config_int
      Src: /src/openssl-1.1.1g/crypto/init.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - openssl_no_config_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_config, ossl_init_config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:313,1
    - Dst: async_init
      Src: /src/openssl-1.1.1g/crypto/init.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 319
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - async_init
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_async)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:326,1
    - Dst: engine_load_openssl_int
      Src: /src/openssl-1.1.1g/crypto/init.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 331
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_openssl_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_openssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:337,1
    - Dst: engine_load_devcrypto_int
      Src: /src/openssl-1.1.1g/crypto/init.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 342
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_devcrypto_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_devcrypto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:350,1
    - Dst: engine_load_rdrand_int
      Src: /src/openssl-1.1.1g/crypto/init.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 355
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - engine_load_rdrand_int
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_rdrand)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:361,1
    - Dst: engine_load_dynamic_int
      Src: /src/openssl-1.1.1g/crypto/init.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 366
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_dynamic_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_dynamic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:373,1
    - Dst: engine_load_padlock_int
      Src: /src/openssl-1.1.1g/crypto/init.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 378
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_padlock_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_padlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:385,1
    - Dst: engine_load_capi_int
      Src: /src/openssl-1.1.1g/crypto/init.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 390
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_capi_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_capi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:397,1
    - Dst: engine_load_afalg_int
      Src: /src/openssl-1.1.1g/crypto/init.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_afalg_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_afalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_zlib)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:427,1
    - Dst: async_delete_thread_state
      Src: /src/openssl-1.1.1g/crypto/init.c:430,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:435,1
    - Dst: err_delete_thread_state
      Src: /src/openssl-1.1.1g/crypto/init.c:438,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:443,1
    - Dst: drbg_delete_thread_state
      Src: /src/openssl-1.1.1g/crypto/init.c:446,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/init.c:449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - locals
    argTypes:
    - struct thread_local_inits_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 450
    functionName: ossl_init_thread_stop
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 1
    functionsReached:
    - err_delete_thread_state
    - OPENSSL_free
    - drbg_delete_thread_state
    - async_delete_thread_state
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ossl_init_thread_stop(struct thread_local_inits_st *locals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_thread_stop
      Src: /src/openssl-1.1.1g/crypto/init.c:455,1
    - Dst: ossl_init_get_thread_local
      Src: /src/openssl-1.1.1g/crypto/init.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: OPENSSL_thread_stop
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 1
    functionsReached:
    - ossl_init_get_thread_local
    - ossl_init_thread_stop
    linkageType: ''
    returnType: void
    signature: void OPENSSL_thread_stop(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/init.c:462,1
    - Dst: ossl_init_get_thread_local
      Src: /src/openssl-1.1.1g/crypto/init.c:465,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:472,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:480,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - opts
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 495
    functionName: ossl_init_thread_start
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - fprintf
    - ossl_init_get_thread_local
    linkageType: ''
    returnType: int
    signature: int ossl_init_thread_start(uint64_t opts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_thread_stop
      Src: /src/openssl-1.1.1g/crypto/init.c:515,1
    - Dst: ossl_init_get_thread_local
      Src: /src/openssl-1.1.1g/crypto/init.c:515,1
    - Dst: OPENSSL_INIT_STOP*::handler
      Src: /src/openssl-1.1.1g/crypto/init.c:519,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/init.c:522,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/init.c:526,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:537,1
    - Dst: comp_zlib_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/init.c:540,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:546,1
    - Dst: async_deinit
      Src: /src/openssl-1.1.1g/crypto/init.c:549,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:554,1
    - Dst: err_free_strings_int
      Src: /src/openssl-1.1.1g/crypto/init.c:557,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/init.c:562,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:565,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:567,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:570,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:573,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:575,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:577,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:579,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:581,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:583,1
    - Dst: rand_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/init.c:597,1
    - Dst: rand_drbg_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/init.c:598,1
    - Dst: conf_modules_free_int
      Src: /src/openssl-1.1.1g/crypto/init.c:599,1
    - Dst: engine_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/init.c:601,1
    - Dst: ossl_store_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/init.c:603,1
    - Dst: crypto_cleanup_all_ex_data_int
      Src: /src/openssl-1.1.1g/crypto/init.c:604,1
    - Dst: bio_cleanup
      Src: /src/openssl-1.1.1g/crypto/init.c:605,1
    - Dst: evp_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/init.c:606,1
    - Dst: obj_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/init.c:607,1
    - Dst: err_cleanup
      Src: /src/openssl-1.1.1g/crypto/init.c:608,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-1.1.1g/crypto/init.c:610,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 613
    functionName: OPENSSL_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 1
    functionsReached:
    - err_cleanup
    - rand_drbg_cleanup_int
    - conf_modules_free_int
    - bio_cleanup
    - fprintf
    - ossl_init_get_thread_local
    - OPENSSL_INIT_STOP*::handler
    - OPENSSL_free
    - ossl_store_cleanup_int
    - crypto_cleanup_all_ex_data_int
    - async_deinit
    - engine_cleanup_int
    - rand_cleanup_int
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_cleanup_local
    - obj_cleanup_int
    - CRYPTO_secure_malloc_done
    - err_free_strings_int
    - evp_cleanup_int
    - ossl_init_thread_stop
    - comp_zlib_cleanup_int
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cleanup(void)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/init.c:624,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:639,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-1.1.1g/crypto/init.c:651,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:654,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:658,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-1.1.1g/crypto/init.c:662,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:668,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-1.1.1g/crypto/init.c:672,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:677,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-1.1.1g/crypto/init.c:681,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:686,1
    - Dst: openssl_init_fork_handlers
      Src: /src/openssl-1.1.1g/crypto/init.c:690,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-1.1.1g/crypto/init.c:694,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/init.c:699,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:701,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/init.c:703,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:709,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:714,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:718,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:723,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:727,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:732,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:737,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:742,1
    - Dst: ENGINE_register_all_complete
      Src: /src/openssl-1.1.1g/crypto/init.c:749,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/init.c:755,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 66
    argCount: 2
    argNames:
    - opts
    - settings
    argTypes:
    - uint64_t
    - OPENSSL_INIT_SETTINGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 760
    functionName: OPENSSL_init_crypto
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 2
    functionsReached:
    - CRYPTOerr
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE_ALT
    - ENGINE_register_all_complete
    - openssl_init_fork_handlers
    - CRYPTO_THREAD_unlock
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS
      *settings)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleEx
      Src: /src/openssl-1.1.1g/crypto/init.c:784,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/crypto/init.c:801,1
    - Dst: DSO_dsobyaddr
      Src: /src/openssl-1.1.1g/crypto/init.c:802,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/init.c:804,1
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/init.c:809,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/crypto/init.c:810,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/init.c:816,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/init.c:817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 826
    functionName: OPENSSL_atexit
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OPENSSL_malloc
    - GetModuleHandleEx
    - ERR_set_mark
    - ERR_pop_to_mark
    - DSO_free
    - DSO_dsobyaddr
    - fprintf
    linkageType: ''
    returnType: int
    signature: int OPENSSL_atexit(void (*handler)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: OPENSSL_fork_prepare
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_fork_prepare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 846
    functionName: OPENSSL_fork_parent
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_fork_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 850
    functionName: OPENSSL_fork_child
    functionSourceFile: /src/openssl-1.1.1g/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_fork_child(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:96,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:97,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:99,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:100,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_init_local
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_memdbg_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: app_info_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - inf
    argTypes:
    - APP_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: app_info_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - app_info_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void app_info_free(APP_INFO *inf)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:127,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:130,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:148,1
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:151,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:160,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:167,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:168,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:182,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:188,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 191
    functionName: CRYPTO_mem_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_compare_id
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_THREAD_unlock
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_ctrl(int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:201,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:204,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:205,1
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:208,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 213
    functionName: mem_check_on
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_compare_id
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_unlock
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int mem_check_on(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - MEM*
    - MEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: mem_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mem_cmp(const MEM *a, const MEM *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - MEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: mem_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long mem_hash(const MEM *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:245,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:248,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:254,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:256,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 267
    functionName: pop_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - CRYPTO_THREAD_set_local
    - OPENSSL_free
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int pop_info(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mem_check_on
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:274,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:275,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:277,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:278,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:281,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:288,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:289,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - info
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 299
    functionName: CRYPTO_mem_debug_push
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - OPENSSL_malloc
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_mem_ctrl
    - CRYPTO_THREAD_set_local
    - mem_check_on
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_debug_push(const char *info, const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mem_check_on
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:305,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:306,1
    - Dst: pop_info
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:307,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 311
    functionName: CRYPTO_mem_debug_pop
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_mem_ctrl
    - pop_info
    - mem_check_on
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_debug_pop(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mem_check_on
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:328,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:329,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:331,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:332,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:333,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:334,1
    - Dst: lh_MEM_new
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:338,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:339,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:340,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:350,1
    - Dst: backtrace
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:358,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:358,1
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:360,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:362,1
    - Dst: lh_MEM_insert
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:367,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:372,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:375,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 5
    argNames:
    - addr
    - num
    - before_p
    - file
    - line
    argTypes:
    - void*
    - size_t
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 380
    functionName: CRYPTO_mem_debug_malloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - OPENSSL_malloc
    - time
    - CRYPTO_THREAD_get_local
    - lh_MEM_insert
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_mem_ctrl
    - lh_MEM_new
    - OPENSSL_free
    - mem_check_on
    - backtrace
    - RUN_ONCE
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_mem_debug_malloc(void *addr, size_t num, int before_p,\n
      \                            const char *file, int line)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mem_check_on
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:392,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:393,1
    - Dst: lh_MEM_delete
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:396,1
    - Dst: app_info_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:398,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:399,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:402,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - addr
    - before_p
    - file
    - line
    argTypes:
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 408
    functionName: CRYPTO_mem_debug_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - CRYPTO_mem_ctrl
    - app_info_free
    - OPENSSL_free
    - mem_check_on
    - lh_MEM_delete
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_mem_debug_free(void *addr, int before_p,\n        const
      char *file, int line)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_mem_debug_malloc
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:423,1
    - Dst: mem_check_on
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:427,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:428,1
    - Dst: lh_MEM_delete
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:431,1
    - Dst: backtrace
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:436,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:436,1
    - Dst: lh_MEM_insert
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:438,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:441,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 6
    argNames:
    - addr1
    - addr2
    - num
    - before_p
    - file
    - line
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 446
    functionName: CRYPTO_mem_debug_realloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - lh_MEM_insert
    - CRYPTO_mem_ctrl
    - CRYPTO_mem_debug_malloc
    - mem_check_on
    - backtrace
    - lh_MEM_delete
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num,\n
      \                             int before_p, const char *file, int line)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:474,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:475,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:484,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:493,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:499,1
    - Dst: MEM_LEAK*::print_cb
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:505,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:523,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:527,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:533,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:535,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:538,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:544,1
    - Dst: MEM_LEAK*::print_cb
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:548,1
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:552,1
    - Dst: backtrace_symbols
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:558,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:561,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:562,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 2
    argNames:
    - m
    - l
    argTypes:
    - MEM*
    - MEM_LEAK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 565
    functionName: print_leak
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - free
    - CRYPTO_THREAD_compare_id
    - MEM_LEAK*::print_cb
    - memcpy
    - fprintf
    - memset
    - backtrace_symbols
    - localtime
    - strlen
    linkageType: ''
    returnType: void
    signature: void print_leak(const MEM *m, MEM_LEAK *l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanup
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:575,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:577,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:580,1
    - Dst: lh_MEM_doall_MEM_LEAK
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:587,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:592,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:594,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:594,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:604,1
    - Dst: lh_MEM_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:613,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:617,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:619,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:622,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:623,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - u
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 569
    functionDepth: 3
    functionLinenumber: 569
    functionLinenumberEnd: 629
    functionName: CRYPTO_mem_leaks_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanup
    - BIO_snprintf
    - CRYPTO_THREAD_write_lock
    - cb
    - CRYPTO_THREAD_lock_free
    - lh_MEM_free
    - CRYPTO_mem_ctrl
    - lh_MEM_doall_MEM_LEAK
    - CRYPTO_THREAD_cleanup_local
    - CRYPTO_THREAD_unlock
    - RUN_ONCE
    - strlen
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_mem_leaks_cb(int (*cb) (const char *str, size_t len, void
      *u),\n                        void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - b
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 634
    functionName: print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int print_bio(const char *str, size_t len, void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:642,1
    - Dst: CRYPTO_mem_leaks_cb
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 636
    functionDepth: 4
    functionLinenumber: 636
    functionLinenumberEnd: 645
    functionName: CRYPTO_mem_leaks
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - bio_free_ex_data
    - CRYPTO_mem_leaks_cb
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_leaks(BIO *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:658,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:659,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:659,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:660,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:663,1
    - Dst: CRYPTO_mem_leaks_cb
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:664,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/mem_dbg.c:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 667
    functionName: CRYPTO_mem_leaks_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_mem_ctrl
    - CRYPTO_mem_leaks_cb
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_leaks_fp(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - v1
    - v2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: OPENSSL_memcmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_memcmp(const void *v1, const void *v2, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-1.1.1g/crypto/o_str.c:33,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/o_str.c:33,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/o_str.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - str
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: CRYPTO_strdup
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - strcpy
    - CRYPTO_malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char *CRYPTO_strdup(const char *str, const char* file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-1.1.1g/crypto/o_str.c:47,1
    - Dst: CRYPTO_malloc
      Src: /src/openssl-1.1.1g/crypto/o_str.c:49,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/o_str.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - str
    - s
    - file
    - line
    argTypes:
    - char*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: CRYPTO_strndup
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strnlen
    - CRYPTO_malloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *CRYPTO_strndup(const char *str, size_t s, const char* file, int
      line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-1.1.1g/crypto/o_str.c:64,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/o_str.c:66,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/o_str.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - data
    - siz
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: CRYPTO_memdup
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - CRYPTO_malloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_memdup(const void *data, size_t siz, const char* file,
      int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - str
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: OPENSSL_strnlen
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_strnlen(const char *str, size_t maxlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/o_str.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: OPENSSL_strlcpy
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 2
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_strlcpy(char *dst, const char *src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/o_str.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: OPENSSL_strlcat
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_strlcat(char *dst, const char *src, size_t size)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 142
    functionName: OPENSSL_hexchar2int
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_hexchar2int(unsigned char c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/o_str.c:155,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/o_str.c:156,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/o_str.c:157,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/o_str.c:166,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/o_str.c:168,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/crypto/o_str.c:171,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/crypto/o_str.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/o_str.c:174,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/o_str.c:175,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 184
    functionName: OPENSSL_hexstr2buf
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OPENSSL_malloc
    - OPENSSL_free
    - OPENSSL_hexchar2int
    - strlen
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *OPENSSL_hexstr2buf(const char *str, long *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/o_str.c:200,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/o_str.c:203,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/o_str.c:204,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/o_str.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 219
    functionName: OPENSSL_buf2hexstr
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OPENSSL_malloc
    - ebcdic2ascii
    - OPENSSL_zalloc
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_buf2hexstr(const unsigned char *buffer, long len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strerror_s
      Src: /src/openssl-1.1.1g/crypto/o_str.c:224,1
    - Dst: strerror_r
      Src: /src/openssl-1.1.1g/crypto/o_str.c:233,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/o_str.c:244,1
    - Dst: strerror_r
      Src: /src/openssl-1.1.1g/crypto/o_str.c:253,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/crypto/o_str.c:260,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/o_str.c:264,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - errnum
    - buf
    - buflen
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 267
    functionName: openssl_strerror_r
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strlcpy
    - strerror_r
    - strerror_s
    - strerror
    linkageType: ''
    returnType: int
    signature: int openssl_strerror_r(int errnum, char *buf, size_t buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: SPARC_PIC_THUNK
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparc_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPARC_PIC_THUNK(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: SPARC_PIC_THUNK_CALL
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparc_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPARC_PIC_THUNK_CALL(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: SPARC_SETUP_GOT_REG
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparc_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPARC_SETUP_GOT_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: SPARC_SETUP_GOT_REG
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparc_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPARC_SETUP_GOT_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: SPARC_LOAD_ADDRESS
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparc_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPARC_LOAD_ADDRESS(SYM, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: SPARC_LOAD_ADDRESS
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparc_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPARC_LOAD_ADDRESS(SYM, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SYM
    - ','
    - reg
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: SPARC_LOAD_ADDRESS_LEAF
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparc_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPARC_LOAD_ADDRESS_LEAF(SYM,reg,tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: SPARC_LOAD_ADDRESS
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparc_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPARC_LOAD_ADDRESS(SYM, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SYM
    - ','
    - reg
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: SPARC_LOAD_ADDRESS_LEAF
    functionSourceFile: /src/openssl-1.1.1g/crypto/sparc_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPARC_LOAD_ADDRESS_LEAF(SYM, reg, tmp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/openssl-1.1.1g/crypto/o_time.c:35,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/o_time.c:37,1
    - Dst: gmtime_r
      Src: /src/openssl-1.1.1g/crypto/o_time.c:41,1
    - Dst: gmtime_s
      Src: /src/openssl-1.1.1g/crypto/o_time.c:45,1
    - Dst: gmtime
      Src: /src/openssl-1.1.1g/crypto/o_time.c:49,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/o_time.c:53,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - timer
    - result
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 57
    functionName: OPENSSL_gmtime
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_time.c
    functionUses: 0
    functionsReached:
    - gmtime_r
    - gmtime_s
    - memcpy
    - gmtime
    linkageType: ''
    returnType: struct tm
    signature: struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: julian_adj
      Src: /src/openssl-1.1.1g/crypto/o_time.c:78,1
    - Dst: julian_to_date
      Src: /src/openssl-1.1.1g/crypto/o_time.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tm
    - off_day
    - offset_sec
    argTypes:
    - struct tm*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: OPENSSL_gmtime_adj
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_time.c
    functionUses: 0
    functionsReached:
    - julian_adj
    - julian_to_date
    linkageType: ''
    returnType: int
    signature: int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: julian_adj
      Src: /src/openssl-1.1.1g/crypto/o_time.c:107,1
    - Dst: julian_adj
      Src: /src/openssl-1.1.1g/crypto/o_time.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - pday
    - psec
    - from
    - to
    argTypes:
    - int*
    - int*
    - struct tm*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: OPENSSL_gmtime_diff
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_time.c
    functionUses: 0
    functionsReached:
    - julian_adj
    linkageType: ''
    returnType: int
    signature: "int OPENSSL_gmtime_diff(int *pday, int *psec,\n                        const
      struct tm *from, const struct tm *to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: date_to_julian
      Src: /src/openssl-1.1.1g/crypto/o_time.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - tm
    - off_day
    - offset_sec
    - pday
    - psec
    argTypes:
    - struct tm*
    - int
    - long
    - long*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 174
    functionName: julian_adj
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_time.c
    functionUses: 2
    functionsReached:
    - date_to_julian
    linkageType: ''
    returnType: int
    signature: "int julian_adj(const struct tm *tm, int off_day, long offset_sec,\n
      \                     long *pday, int *psec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: date_to_julian
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long date_to_julian(int y, int m, int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - jd
    - y
    - m
    - d
    argTypes:
    - long
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: julian_to_date
    functionSourceFile: /src/openssl-1.1.1g/crypto/o_time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void julian_to_date(long jd, int *y, int *m, int *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:22,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:29,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:30,1
    - Dst: InitializeCriticalSection
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 38
    functionName: CRYPTO_THREAD_lock_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 4
    functionsReached:
    - InitializeCriticalSection
    - OPENSSL_free
    - InitializeCriticalSectionAndSpinCount
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CRYPTO_RWLOCK
    signature: CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: CRYPTO_THREAD_read_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 1
    functionsReached:
    - EnterCriticalSection
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: CRYPTO_THREAD_write_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 11
    functionsReached:
    - EnterCriticalSection
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LeaveCriticalSection
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: CRYPTO_THREAD_unlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 15
    functionsReached:
    - LeaveCriticalSection
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:63,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: CRYPTO_THREAD_lock_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 7
    functionsReached:
    - DeleteCriticalSection
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedCompareExchange
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:86,1
    - Dst: init
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - once
    argTypes:
    - CRYPTO_ONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 95
    functionName: CRYPTO_THREAD_run_once
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 0
    functionsReached:
    - InterlockedCompareExchange
    - init
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TlsAlloc
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: CRYPTO_THREAD_init_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 2
    functionsReached:
    - TlsAlloc
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:124,1
    - Dst: TlsGetValue
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:125,1
    - Dst: SetLastError
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: CRYPTO_THREAD_get_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 4
    functionsReached:
    - TlsGetValue
    - SetLastError
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TlsSetValue
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: CRYPTO_THREAD_set_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 3
    functionsReached:
    - TlsSetValue
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TlsFree
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: CRYPTO_THREAD_cleanup_local
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 3
    functionsReached:
    - TlsFree
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: CRYPTO_THREAD_get_current_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 4
    functionsReached:
    - GetCurrentThreadId
    linkageType: ''
    returnType: CRYPTO_THREAD_ID
    signature: CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CRYPTO_THREAD_ID
    - CRYPTO_THREAD_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: CRYPTO_THREAD_compare_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedExchangeAdd
      Src: /src/openssl-1.1.1g/crypto/threads_win.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - val
    - amount
    - ret
    - lock
    argTypes:
    - int*
    - int
    - int*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: CRYPTO_atomic_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 0
    functionsReached:
    - InterlockedExchangeAdd
    linkageType: ''
    returnType: int
    signature: int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK
      *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: openssl_init_fork_handlers
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int openssl_init_fork_handlers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: openssl_get_fork_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/threads_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int openssl_get_fork_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: ill_handler
    functionSourceFile: /src/openssl-1.1.1g/crypto/s390xcap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void ill_handler(int sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S390X_CAPBIT
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:38,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:40,1
    - Dst: sigfillset
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:42,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:43,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:44,1
    - Dst: sigdelset
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:45,1
    - Dst: sigprocmask
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:46,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:47,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:48,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:51,1
    - Dst: OPENSSL_s390x_facilities
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:52,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:55,1
    - Dst: sigsetjmp
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:56,1
    - Dst: OPENSSL_vx_probe
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:57,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:59,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:60,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:61,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:64,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:65,1
    - Dst: sigprocmask
      Src: /src/openssl-1.1.1g/crypto/s390xcap.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 67
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/s390xcap.c
    functionUses: 2
    functionsReached:
    - OPENSSL_s390x_facilities
    - sigsetjmp
    - sigaction
    - sigfillset
    - sigdelset
    - OPENSSL_vx_probe
    - memset
    - sigprocmask
    - S390X_CAPBIT
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: OPENSSL_issetugid
    functionSourceFile: /src/openssl-1.1.1g/crypto/uid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_issetugid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: issetugid
      Src: /src/openssl-1.1.1g/crypto/uid.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: OPENSSL_issetugid
    functionSourceFile: /src/openssl-1.1.1g/crypto/uid.c
    functionUses: 1
    functionsReached:
    - issetugid
    linkageType: ''
    returnType: int
    signature: int OPENSSL_issetugid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getauxval
      Src: /src/openssl-1.1.1g/crypto/uid.c:44,1
    - Dst: getuid
      Src: /src/openssl-1.1.1g/crypto/uid.c:46,1
    - Dst: geteuid
      Src: /src/openssl-1.1.1g/crypto/uid.c:46,1
    - Dst: getgid
      Src: /src/openssl-1.1.1g/crypto/uid.c:46,1
    - Dst: getegid
      Src: /src/openssl-1.1.1g/crypto/uid.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: OPENSSL_issetugid
    functionSourceFile: /src/openssl-1.1.1g/crypto/uid.c
    functionUses: 1
    functionsReached:
    - getuid
    - getgid
    - getauxval
    - getegid
    - geteuid
    linkageType: ''
    returnType: int
    signature: int OPENSSL_issetugid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: OpenSSL_version_num
    functionSourceFile: /src/openssl-1.1.1g/crypto/cversion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long OpenSSL_version_num(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 44
    functionName: OpenSSL_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/cversion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OpenSSL_version(int t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: ossl_getenv
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - GetEnvironmentVariableW
    linkageType: ''
    returnType: variant_char
    signature: variant_char *ossl_getenv(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:56,1
    - Dst: ossl_isxdigit
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:58,1
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - variant_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: todigit
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - ossl_tolower
    - ossl_isxdigit
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: int todigit(variant_char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:72,1
    - Dst: todigit
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - variant_char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: ossl_strtouint64
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - ossl_tolower
    - todigit
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ossl_strtouint64(const variant_char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - str
    - srch
    argTypes:
    - variant_char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: ossl_strchr
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: variant_char
    signature: variant_char *ossl_strchr(const variant_char *str, char srch)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_getenv
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:108,1
    - Dst: ossl_strtouint64
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:111,1
    - Dst: OPENSSL_ia32_cpuid
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:115,1
    - Dst: OPENSSL_ia32_cpuid
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:128,1
    - Dst: ossl_strchr
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:131,1
    - Dst: ossl_strtouint64
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:136,1
    - Dst: OPENSSL_ia32_cpuid
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 159
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 2
    functionsReached:
    - ossl_strtouint64
    - ossl_getenv
    - ossl_strchr
    - OPENSSL_ia32_cpuid
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_isservice(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandle
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:206,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:210,1
    - Dst: GetProcessWindowStation
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:220,1
    - Dst: GetUserObjectInformationW
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:224,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:225,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:231,1
    - Dst: GetUserObjectInformationW
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:232,1
    - Dst: wcsstr
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:243,1
    - Dst: wcsstr
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:247,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 252
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 1
    functionsReached:
    - GetProcessWindowStation
    - alloca
    - wcsstr
    - GetUserObjectInformationW
    - GetLastError
    - GetModuleHandle
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int OPENSSL_isservice(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_isservice(void)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:275,1
    - Dst: GetFileType
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:276,1
    - Dst: va_start
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:281,1
    - Dst: _vsnprintf
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:282,1
    - Dst: WriteFile
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:283,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:284,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:294,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:297,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:302,1
    - Dst: va_start
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:344,1
    - Dst: _vsntprintf
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:345,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:345,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:346,1
    - Dst: _T
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:346,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:347,1
    - Dst: OutputDebugString
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:365,1
    - Dst: check_winnt
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:369,1
    - Dst: OPENSSL_isservice
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:369,1
    - Dst: RegisterEventSource
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:370,1
    - Dst: _T
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:370,1
    - Dst: ReportEvent
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:375,1
    - Dst: OutputDebugString
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:384,1
    - Dst: DeregisterEventSource
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:388,1
    - Dst: MessageBox
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:391,1
    - Dst: _T
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:391,1
    - Dst: MessageBox
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:395,1
    - Dst: _T
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:395,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 1
    argNames:
    - fmta
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 397
    functionName: OPENSSL_showfatal
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - ReportEvent
    - DeregisterEventSource
    - MultiByteToWideChar
    - OutputDebugString
    - va_start
    - GetFileType
    - _T
    - MessageBox
    - _vsntprintf
    - OSSL_NELEM
    - alloca
    - OPENSSL_isservice
    - va_end
    - WriteFile
    - check_winnt
    - _vsnprintf
    - RegisterEventSource
    - strlen
    - GetStdHandle
    linkageType: ''
    returnType: void
    signature: void OPENSSL_showfatal(const char *fmta, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:404,1
    - Dst: vfprintf
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:405,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmta
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: OPENSSL_showfatal
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void OPENSSL_showfatal(const char *fmta, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_isservice(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_showfatal
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:418,1
    - Dst: abort
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:421,1
    - Dst: raise
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:427,1
    - Dst: _exit
      Src: /src/openssl-1.1.1g/crypto/cryptlib.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - message
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 431
    functionName: OPENSSL_die
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - raise
    - OPENSSL_showfatal
    - _exit
    - abort
    linkageType: ''
    returnType: void
    signature: void OPENSSL_die(const char *message, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in_a
    - in_b
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 454
    functionName: CRYPTO_memcmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - cnt
    argTypes:
    - unsigned int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: OPENSSL_instrument_bus
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus(unsigned int *out, size_t cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - cnt
    - max
    argTypes:
    - unsigned int*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: OPENSSL_instrument_bus2
    functionSourceFile: /src/openssl-1.1.1g/crypto/cryptlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t
      max)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: RC4_options
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc4/rc4_skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *RC4_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SK_LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_skey.c:52,1
    - Dst: SK_LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_skey.c:53,1
    - Dst: SK_LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_skey.c:54,1
    - Dst: SK_LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_skey.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - key
    - len
    - data
    argTypes:
    - RC4_KEY*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 57
    functionName: RC4_set_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc4/rc4_skey.c
    functionUses: 0
    functionsReached:
    - SK_LOOP
    linkageType: ''
    returnType: void
    signature: void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: SK_LOOP
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc4/rc4_skey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SK_LOOP(d,n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:43,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:44,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:45,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:46,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:47,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:48,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:49,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:50,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:60,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:63,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:66,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:69,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:72,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:75,1
    - Dst: LOOP
      Src: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c:78,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 4
    argNames:
    - key
    - len
    - indata
    - outdata
    argTypes:
    - RC4_KEY*
    - size_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 85
    functionName: RC4
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c
    functionUses: 0
    functionsReached:
    - LOOP
    linkageType: ''
    returnType: void
    signature: "void RC4(RC4_KEY *key, size_t len, const unsigned char *indata,\n
      \        unsigned char *outdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: LOOP
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOOP(in,out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: ctr128_inc
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr128_inc(unsigned char *counter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ctr128_inc
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: ctr128_inc_aligned
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached:
    - ctr128_inc
    linkageType: ''
    returnType: void
    signature: void ctr128_inc_aligned(unsigned char *counter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ctr128_inc_aligned
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:98,1
    - Dst: ctr128_inc_aligned
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:109,1
    - Dst: ctr128_inc
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:124,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 8
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - ecount_buf
    - num
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - unsigned char[]
    - unsigned int*
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 132
    functionName: CRYPTO_ctr128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached:
    - ctr128_inc_aligned
    - ctr128_inc
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char
      *out,\n                           size_t len, const void *key,\n                           unsigned
      char ivec[16],\n                           unsigned char ecount_buf[16], unsigned
      int *num,\n                           block128_f block)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: ctr96_inc
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr96_inc(unsigned char *counter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:163,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:186,1
    - Dst: ctr96_inc
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:189,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:196,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:199,1
    - Dst: ctr96_inc
      Src: /src/openssl-1.1.1g/crypto/modes/ctr128.c:201,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 8
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - ecount_buf
    - num
    - func
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - unsigned char[]
    - unsigned int*
    - ctr128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 209
    functionName: CRYPTO_ctr128_encrypt_ctr32
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ctr128.c
    functionUses: 1
    functionsReached:
    - GETU32
    - memset
    - PUTU32
    - ctr96_inc
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned
      char *out,\n                                 size_t len, const void *key,\n
      \                                unsigned char ivec[16],\n                                 unsigned
      char ecount_buf[16],\n                                 unsigned int *num, ctr128_f
      func)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:59,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:63,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:68,1
    - Dst: block
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:69,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:76,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 81
    functionName: CRYPTO_128_wrap
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - memmove
    - block
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_128_wrap(void *key, const unsigned char *iv,\n                       unsigned
      char *out,\n                       const unsigned char *in, size_t inlen,\n
      \                      block128_f block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:111,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:112,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:122,1
    - Dst: block
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:123,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:124,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 129
    functionName: crypto_128_unwrap_raw
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - memmove
    - block
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t crypto_128_unwrap_raw(void *key, unsigned char *iv,\n                                    unsigned
      char *out,\n                                    const unsigned char *in, size_t
      inlen,\n                                    block128_f block)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crypto_128_unwrap_raw
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:157,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:163,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: CRYPTO_128_unwrap
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    - crypto_128_unwrap_raw
    - OPENSSL_cleanse
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv,\n                         unsigned
      char *out, const unsigned char *in,\n                         size_t inlen,
      block128_f block)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:207,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:209,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:222,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:223,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:224,1
    - Dst: block
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:225,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:228,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:229,1
    - Dst: CRYPTO_128_wrap
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - key
    - icv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 234
    functionName: CRYPTO_128_wrap_pad
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - block
    - memmove
    - memcpy
    - memset
    - CRYPTO_128_wrap
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv,\n
      \                          unsigned char *out,\n                           const
      unsigned char *in, size_t inlen,\n                           block128_f block)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: block
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:279,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:280,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:282,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:284,1
    - Dst: crypto_128_unwrap_raw
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:287,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:289,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:299,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:300,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:301,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:315,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:324,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/modes/wrap128.c:325,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 6
    argNames:
    - key
    - icv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 331
    functionName: CRYPTO_128_unwrap_pad
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - block
    - memcpy
    - CRYPTO_memcmp
    - crypto_128_unwrap_raw
    - OPENSSL_cleanse
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv,\n
      \                            unsigned char *out,\n                             const
      unsigned char *in, size_t inlen,\n                             block128_f block)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - M
    - L
    - key
    - block
    argTypes:
    - CCM128_CONTEXT*
    - unsigned int
    - unsigned int
    - void*
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: CRYPTO_ccm128_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx,\n                        unsigned
      int M, unsigned int L, void *key,\n                        block128_f block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - nonce
    - nlen
    - mlen
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: CRYPTO_ccm128_setiv
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx,\n                        const
      unsigned char *nonce, size_t nlen, size_t mlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - aad
    - alen
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 105
    functionName: CRYPTO_ccm128_aad
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx,\n                       const
      unsigned char *aad, size_t alen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: ctr64_inc
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr64_inc(unsigned char *counter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:159,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:169,1
    - Dst: ctr64_inc
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:178,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 4
    argNames:
    - ctx
    - inp
    - out
    - len
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 211
    functionName: CRYPTO_ccm128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - U64
    - ctr64_inc
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx,\n                          const
      unsigned char *inp, unsigned char *out,\n                          size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ctr64_inc
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:250,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:252,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:255,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - inp
    - out
    - len
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 284
    functionName: CRYPTO_ccm128_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - ctr64_inc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx,\n                          const
      unsigned char *inp, unsigned char *out,\n                          size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - counter
    - inc
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 298
    functionName: ctr64_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr64_add(unsigned char *counter, size_t inc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:330,1
    - Dst: ctr64_add
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:340,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - inp
    - out
    - len
    - stream
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ccm128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 362
    functionName: CRYPTO_ccm128_encrypt_ccm64
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - ctr64_add
    - U64
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx,\n                                const
      unsigned char *inp, unsigned char *out,\n                                size_t
      len, ccm128_f stream)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ctr64_add
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:400,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - inp
    - out
    - len
    - stream
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ccm128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 420
    functionName: CRYPTO_ccm128_decrypt_ccm64
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - ctr64_add
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx,\n                                const
      unsigned char *inp, unsigned char *out,\n                                size_t
      len, ccm128_f stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ccm128.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 432
    functionName: CRYPTO_ccm128_tag
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cbc128.c:66,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 67
    functionName: CRYPTO_cbc128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cbc128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char
      *out,\n                           size_t len, const void *key,\n                           unsigned
      char ivec[16], block128_f block)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cbc128.c:110,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 161
    functionName: CRYPTO_cbc128_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cbc128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char
      *out,\n                           size_t len, const void *key,\n                           unsigned
      char ivec[16], block128_f block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:42,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:50,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 54
    functionName: CRYPTO_cts128_encrypt_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_cts128_encrypt_block(const unsigned char *in,\n                                   unsigned
      char *out, size_t len,\n                                   const void *key,
      unsigned char ivec[16],\n                                   block128_f block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:71,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 85
    functionName: CRYPTO_nistcts128_encrypt_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in,\n
      \                                      unsigned char *out, size_t len,\n                                       const
      void *key,\n                                       unsigned char ivec[16],\n
      \                                      block128_f block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:111,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:113,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:115,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:116,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - cbc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - cbc128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 121
    functionName: CRYPTO_cts128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char
      *out,\n                             size_t len, const void *key,\n                             unsigned
      char ivec[16], cbc128_f cbc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:151,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - cbc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - cbc128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 156
    functionName: CRYPTO_nistcts128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned
      char *out,\n                                 size_t len, const void *key,\n
      \                                unsigned char ivec[16], cbc128_f cbc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:178,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:185,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 198
    functionName: CRYPTO_cts128_decrypt_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_cts128_decrypt_block(const unsigned char *in,\n                                   unsigned
      char *out, size_t len,\n                                   const void *key,
      unsigned char ivec[16],\n                                   block128_f block)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:218,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:225,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:232,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 246
    functionName: CRYPTO_nistcts128_decrypt_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in,\n
      \                                      unsigned char *out, size_t len,\n                                       const
      void *key,\n                                       unsigned char ivec[16],\n
      \                                      block128_f block)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:272,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:278,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - cbc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - cbc128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 286
    functionName: CRYPTO_cts128_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char
      *out,\n                             size_t len, const void *key,\n                             unsigned
      char ivec[16], cbc128_f cbc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:316,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:322,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cts128.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - cbc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - cbc128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 330
    functionName: CRYPTO_nistcts128_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned
      char *out,\n                                 size_t len, const void *key,\n
      \                                unsigned char ivec[16], cbc128_f cbc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: GETU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: PUTU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: PACK
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: REDUCE1BIT
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDUCE1BIT(V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDUCE1BIT
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - Htable
    - H
    argTypes:
    - u128[]
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: gcm_init_8bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - REDUCE1BIT
    linkageType: ''
    returnType: void
    signature: void gcm_init_8bit(u128 Htable[256], u64 H[2])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:106,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:106,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:106,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:106,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:107,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:107,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:107,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:107,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:108,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:108,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:108,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:108,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:109,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:109,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:109,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:109,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:110,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:110,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:110,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:110,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:111,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:111,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:111,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:111,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:112,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:112,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:112,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:112,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:113,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:113,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:113,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:113,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:114,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:114,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:114,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:114,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:115,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:115,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:115,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:115,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:116,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:116,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:116,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:116,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:117,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:117,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:117,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:117,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:118,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:118,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:118,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:118,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:119,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:119,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:119,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:119,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:120,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:120,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:120,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:120,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:121,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:121,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:121,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:121,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:122,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:122,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:122,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:122,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:123,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:123,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:123,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:123,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:124,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:124,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:124,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:124,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:125,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:125,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:125,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:125,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:126,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:126,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:126,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:126,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:127,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:127,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:127,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:127,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:128,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:128,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:128,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:128,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:129,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:129,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:129,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:129,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:130,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:130,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:130,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:130,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:131,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:131,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:131,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:131,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:132,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:132,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:132,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:132,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:133,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:133,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:133,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:133,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:134,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:134,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:134,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:134,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:135,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:135,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:135,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:135,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:136,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:136,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:136,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:136,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:137,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:137,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:137,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:137,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:138,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:138,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:138,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:138,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:139,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:139,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:139,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:139,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:140,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:140,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:140,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:140,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:141,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:141,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:141,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:141,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:142,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:142,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:142,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:142,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:143,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:143,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:143,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:143,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:144,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:144,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:144,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:144,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:145,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:145,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:145,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:145,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:146,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:146,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:146,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:146,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:147,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:147,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:147,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:147,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:148,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:148,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:148,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:148,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:149,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:149,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:149,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:149,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:150,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:150,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:150,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:150,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:151,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:151,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:151,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:151,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:152,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:152,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:152,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:152,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:153,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:153,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:153,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:153,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:154,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:154,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:154,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:154,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:155,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:155,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:155,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:155,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:156,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:156,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:156,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:156,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:157,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:157,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:157,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:157,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:158,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:158,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:158,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:158,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:159,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:159,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:159,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:159,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:160,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:160,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:160,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:160,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:161,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:161,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:161,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:161,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:162,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:162,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:162,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:162,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:163,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:163,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:163,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:163,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:164,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:164,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:164,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:164,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:165,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:165,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:165,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:165,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:166,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:166,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:166,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:166,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:167,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:167,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:167,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:167,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:168,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:168,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:168,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:168,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:169,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:169,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:169,1
    - Dst: PACK
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:169,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:192,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:193,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:198,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:200,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:202,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - Xi
    - Htable
    argTypes:
    - u64[]
    - u128[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 210
    functionName: gcm_gmult_8bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP8
    - PUTU32
    - PACK
    linkageType: ''
    returnType: void
    signature: void gcm_gmult_8bit(u64 Xi[2], const u128 Htable[256])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: GCM_MUL
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM_MUL(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REDUCE1BIT
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:230,1
    - Dst: REDUCE1BIT
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:244,1
    - Dst: REDUCE1BIT
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:246,1
    - Dst: REDUCE1BIT
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - Htable
    - H
    argTypes:
    - u128[]
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 288
    functionName: gcm_init_4bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - REDUCE1BIT
    linkageType: ''
    returnType: void
    signature: void gcm_init_4bit(u128 Htable[16], u64 H[2])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:348,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:349,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:354,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:356,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:358,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 2
    argNames:
    - Xi
    - Htable
    argTypes:
    - u64[]
    - u128[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 366
    functionName: gcm_gmult_4bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP8
    - PUTU32
    linkageType: ''
    returnType: void
    signature: void gcm_gmult_4bit(u64 Xi[2], const u128 Htable[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 554
    functionName: GCM_MUL
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM_MUL(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - in
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: GHASH
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GHASH(ctx,in,len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:584,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:587,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:587,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:591,1
    - Dst: REDUCE1BIT
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:601,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:607,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:608,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:613,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:615,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:617,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - Xi
    - H
    argTypes:
    - u64[]
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 625
    functionName: gcm_gmult_1bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GETU32
    - BSWAP8
    - PUTU32
    - REDUCE1BIT
    linkageType: ''
    returnType: void
    signature: void gcm_gmult_1bit(u64 Xi[2], const u64 H[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 628
    functionName: GCM_MUL
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM_MUL(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 707
    functionName: GCM_MUL
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM_MUL(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - in
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 710
    functionName: GHASH
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GHASH(ctx,in,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 745
    functionName: CTX__GHASH
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTX__GHASH(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 747
    functionName: CTX__GHASH
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTX__GHASH(f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:845,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:862,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:869,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:874,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:889,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:893,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:895,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:912,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:914,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 3
    argNames:
    - ctx
    - iv
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 918
    functionName: CRYPTO_gcm128_setiv
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GETU32
    - GCM_MUL
    - PUTU32
    - memcpy
    - BSWAP4
    - BSWAP8
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char
      *iv,\n                         size_t len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:938,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:950,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:958,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:966,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - ctx
    - aad
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 979
    functionName: CRYPTO_gcm128_aad
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GCM_MUL
    - GHASH
    - U64
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad,\n
      \                     size_t len)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1003,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1013,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1017,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1022,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1029,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1031,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1048,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1061,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1075,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1090,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1092,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1102,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1117,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1119,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1129,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1140,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1142,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1148,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1159,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1161,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1190,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1192,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1201,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1208,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 148
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1214
    functionName: CRYPTO_gcm128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GETU32
    - GCM_MUL
    - PUTU32
    - memcpy
    - U64
    - BSWAP4
    - GHASH
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1238,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1248,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1252,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1257,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1264,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1266,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1283,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1298,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1312,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1319,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1328,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1330,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1344,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1353,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1355,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1375,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1377,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1386,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1397,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1399,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1431,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1433,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1442,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1451,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 154
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1457
    functionName: CRYPTO_gcm128_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GETU32
    - GCM_MUL
    - PUTU32
    - memcpy
    - U64
    - BSWAP4
    - GHASH
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1464,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1483,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1493,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1497,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1502,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1509,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1511,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1525,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1538,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1548,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1557,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1559,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1563,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1577,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1579,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1586,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1592,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1602,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1604,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 100
    argCount: 5
    argNames:
    - ctx
    - in
    - out
    - len
    - stream
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ctr128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1459
    functionDepth: 2
    functionLinenumber: 1459
    functionLinenumberEnd: 1621
    functionName: CRYPTO_gcm128_encrypt_ctr32
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GETU32
    - GCM_MUL
    - PUTU32
    - CRYPTO_gcm128_encrypt
    - U64
    - memcpy
    - BSWAP4
    - GHASH
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,\n                                const
      unsigned char *in, unsigned char *out,\n                                size_t
      len, ctr128_f stream)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1628,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1647,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1657,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1661,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1666,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1673,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1675,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1689,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1704,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1714,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1719,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1724,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1726,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1740,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1746,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1756,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1758,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1771,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1773,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 104
    argCount: 5
    argNames:
    - ctx
    - in
    - out
    - len
    - stream
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ctr128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1792
    functionName: CRYPTO_gcm128_decrypt_ctr32
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GETU32
    - GCM_MUL
    - PUTU32
    - memcpy
    - U64
    - BSWAP4
    - GHASH
    - CRYPTO_gcm128_decrypt
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,\n                                const
      unsigned char *in, unsigned char *out,\n                                size_t
      len, ctr128_f stream)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1818,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1821,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1825,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1829,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1834,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1835,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1842,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1842,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1843,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1843,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1850,1
    - Dst: GHASH
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1852,1
    - Dst: GCM_MUL
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1856,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1863,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1794
    functionDepth: 1
    functionLinenumber: 1794
    functionLinenumberEnd: 1866
    functionName: CRYPTO_gcm128_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GETU32
    - GCM_MUL
    - memcpy
    - CRYPTO_memcmp
    - memset
    - BSWAP8
    - GHASH
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char
      *tag,\n                         size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1870,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1868
    functionDepth: 2
    functionLinenumber: 1868
    functionLinenumberEnd: 1873
    functionName: CRYPTO_gcm128_tag
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_finish
    - memcpy
    linkageType: ''
    returnType: void
    signature: void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1879,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - block
    argTypes:
    - void*
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1875
    functionDepth: 1
    functionLinenumber: 1875
    functionLinenumberEnd: 1883
    functionName: CRYPTO_gcm128_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - CRYPTO_gcm128_init
    linkageType: ''
    returnType: GCM128_CONTEXT
    signature: GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/modes/gcm128.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - GCM128_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1885
    functionDepth: 1
    functionLinenumber: 1885
    functionLinenumberEnd: 1888
    functionName: CRYPTO_gcm128_release
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: ocb_ntz
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 ocb_ntz(u64 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - in
    - shift
    - out
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: ocb_block_lshift
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ocb_block_lshift(const unsigned char *in, size_t shift,\n                             unsigned
      char *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocb_block_lshift
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - OCB_BLOCK*
    - OCB_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: ocb_double
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_block_lshift
    linkageType: ''
    returnType: void
    signature: void ocb_double(OCB_BLOCK *in, OCB_BLOCK *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in1
    - in2
    - len
    - out
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: ocb_block_xor
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ocb_block_xor(const unsigned char *in1,\n                          const
      unsigned char *in2, size_t len,\n                          unsigned char *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:113,1
    - Dst: ocb_double
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - OCB128_CONTEXT*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 125
    functionName: ocb_lookup_l
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_double
    - OPENSSL_realloc
    linkageType: ''
    returnType: OCB_BLOCK
    signature: OCB_BLOCK *ocb_lookup_l(OCB128_CONTEXT *ctx, size_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:137,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:138,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - keyenc
    - keydec
    - encrypt
    - decrypt
    - stream
    argTypes:
    - void*
    - void*
    - block128_f
    - block128_f
    - ocb128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: CRYPTO_ocb128_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - CRYPTO_ocb128_init
    linkageType: ''
    returnType: OCB128_CONTEXT
    signature: "OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec,\n                                  block128_f
      encrypt, block128_f decrypt,\n                                  ocb128_f stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:155,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:158,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:159,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:175,1
    - Dst: ocb_double
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:178,1
    - Dst: ocb_double
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:181,1
    - Dst: ocb_double
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:184,1
    - Dst: ocb_double
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:185,1
    - Dst: ocb_double
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:186,1
    - Dst: ocb_double
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 6
    argNames:
    - ctx
    - keyenc
    - keydec
    - encrypt
    - decrypt
    - stream
    argTypes:
    - OCB128_CONTEXT*
    - void*
    - void*
    - block128_f
    - block128_f
    - ocb128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 191
    functionName: CRYPTO_ocb128_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 1
    functionsReached:
    - CRYPTOerr
    - OPENSSL_malloc
    - ocb_double
    - memset
    - OCB128_CONTEXT*::encrypt
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec,\n
      \                      block128_f encrypt, block128_f decrypt,\n                       ocb128_f
      stream)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:199,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:205,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:206,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - dest
    - src
    - keyenc
    - keydec
    argTypes:
    - OCB128_CONTEXT*
    - OCB128_CONTEXT*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 212
    functionName: CRYPTO_ocb128_copy_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OPENSSL_malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src,\n
      \                          void *keyenc, void *keydec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:233,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:237,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:238,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:242,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:244,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:247,1
    - Dst: ocb_block_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:248,1
    - Dst: ocb_block_lshift
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - iv
    - len
    - taglen
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 262
    functionName: CRYPTO_ocb128_setiv
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_block_lshift
    - memcpy
    - memset
    - OCB128_CONTEXT*::encrypt
    - ocb_block_xor
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv,\n
      \                       size_t len, size_t taglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocb_lookup_l
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:284,1
    - Dst: ocb_ntz
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:284,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:287,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:289,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:293,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:294,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:295,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:306,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:310,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:311,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:313,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:316,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - aad
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 323
    functionName: CRYPTO_ocb128_aad
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ocb_ntz
    - memset
    - OCB128_CONTEXT*::encrypt
    - ocb_lookup_l
    - ocb_block16_xor
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad,\n
      \                     size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ocb_lookup_l
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:353,1
    - Dst: OCB128_CONTEXT*::stream
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:356,1
    - Dst: ocb_lookup_l
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:366,1
    - Dst: ocb_ntz
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:366,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:369,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:371,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:375,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:378,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:379,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:380,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:382,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:397,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:400,1
    - Dst: ocb_block_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:403,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:406,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:407,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 415
    functionName: CRYPTO_ocb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OCB128_CONTEXT*::stream
    - ocb_ntz
    - memset
    - OCB128_CONTEXT*::encrypt
    - ocb_block_xor
    - ocb_lookup_l
    - ocb_block16_xor
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ocb_lookup_l
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:445,1
    - Dst: OCB128_CONTEXT*::stream
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:448,1
    - Dst: ocb_lookup_l
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:458,1
    - Dst: ocb_ntz
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:458,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:461,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:463,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:467,1
    - Dst: OCB128_CONTEXT*::decrypt
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:468,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:469,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:472,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:474,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:489,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:492,1
    - Dst: ocb_block_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:495,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:498,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:499,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 507
    functionName: CRYPTO_ocb128_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_block_xor
    - memcpy
    - OCB128_CONTEXT*::stream
    - ocb_ntz
    - memset
    - OCB128_CONTEXT*::encrypt
    - OCB128_CONTEXT*::decrypt
    - ocb_lookup_l
    - ocb_block16_xor
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:521,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:522,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:523,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:524,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:527,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - tag
    - len
    - write
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 532
    functionName: ocb_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OCB128_CONTEXT*::encrypt
    - CRYPTO_memcmp
    - memcpy
    - ocb_block16_xor
    linkageType: ''
    returnType: int
    signature: "int ocb_finish(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len,\n
      \                     int write)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocb_finish
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: CRYPTO_ocb128_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_finish
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char
      *tag,\n                         size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocb_finish
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: CRYPTO_ocb128_tag
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_finish
    linkageType: ''
    returnType: int
    signature: int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:557,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/modes/ocb128.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OCB128_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: CRYPTO_ocb128_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 8
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - num
    - enc
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - int*
    - int
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 131
    functionName: CRYPTO_cfb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char
      *out,\n                           size_t len, const void *key,\n                           unsigned
      char ivec[16], int *num,\n                           int enc, block128_f block)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cfb128.c:150,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/cfb128.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 7
    argNames:
    - in
    - out
    - nbits
    - key
    - ivec
    - enc
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - void*
    - unsigned char[]
    - int
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 170
    functionName: cfbr_encrypt_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void cfbr_encrypt_block(const unsigned char *in, unsigned char *out,\n
      \                              int nbits, const void *key,\n                               unsigned
      char ivec[16], int enc,\n                               block128_f block)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfbr_encrypt_block
      Src: /src/openssl-1.1.1g/crypto/modes/cfb128.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - in
    - out
    - bits
    - key
    - ivec
    - num
    - enc
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - int*
    - int
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: CRYPTO_cfb128_1_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached:
    - cfbr_encrypt_block
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char
      *out,\n                             size_t bits, const void *key,\n                             unsigned
      char ivec[16], int *num,\n                             int enc, block128_f block)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfbr_encrypt_block
      Src: /src/openssl-1.1.1g/crypto/modes/cfb128.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 8
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - int*
    - int
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: CRYPTO_cfb128_8_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached:
    - cfbr_encrypt_block
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char
      *out,\n                             size_t length, const void *key,\n                             unsigned
      char ivec[16], int *num,\n                             int enc, block128_f block)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/xts128.c:35,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/xts128.c:44,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/xts128.c:55,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/xts128.c:99,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/xts128.c:127,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/modes/xts128.c:149,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 85
    argCount: 6
    argNames:
    - ctx
    - iv
    - inp
    - out
    - len
    - enc
    argTypes:
    - XTS128_CONTEXT*
    - unsigned char[]
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 157
    functionName: CRYPTO_xts128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/xts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx,\n                          const
      unsigned char iv[16],\n                          const unsigned char *inp, unsigned
      char *out,\n                          size_t len, int enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 7
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - num
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - int*
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: CRYPTO_ofb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/ofb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char
      *out,\n                           size_t len, const void *key,\n                           unsigned
      char ivec[16], int *num, block128_f block)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: U64
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: U64
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: U64
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: BSWAP8
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: BSWAP4
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: BSWAP8
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: BSWAP4
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: BSWAP8
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: BSWAP4
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: BSWAP8
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: BSWAP4
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: BSWAP8
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: BSWAP4
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: GETU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: PUTU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: GETU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: PUTU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - in1
    - ','
    - in2
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: ocb_block16_xor
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ocb_block16_xor(in1,in2,out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - in1
    - ','
    - in2
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: ocb_block16_xor_misaligned
    functionSourceFile: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ocb_block16_xor_misaligned(in1,in2,out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: U8TOU64
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 U8TOU64(const unsigned char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: U64TO8
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void U64TO8(unsigned char *p, u64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c:67,1
    - Dst: U8TOU64
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: poly1305_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached:
    - U8TOU64
    linkageType: ''
    returnType: int
    signature: int poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c:105,1
    - Dst: U8TOU64
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 133
    functionName: poly1305_blocks
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached:
    - U8TOU64
    linkageType: ''
    returnType: void
    signature: "void poly1305_blocks(void *ctx, const unsigned char *inp, size_t len,\n
      \                    u32 padbit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c:169,1
    - Dst: U64TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 171
    functionName: poly1305_emit
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached:
    - U64TO8
    linkageType: ''
    returnType: void
    signature: void poly1305_emit(void *ctx, unsigned char mac[16], const u32 nonce[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: Poly1305_ctx_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Poly1305_ctx_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: U8TOU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int U8TOU32(const unsigned char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: CONSTANT_TIME_CARRY
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONSTANT_TIME_CARRY(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: U8TOU64
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 U8TOU64(const unsigned char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: U64TO8
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void U64TO8(unsigned char *p, u64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:145,1
    - Dst: U8TOU64
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: poly1305_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU64
    linkageType: ''
    returnType: void
    signature: void poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:169,1
    - Dst: U8TOU64
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:170,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:194,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 213
    functionName: poly1305_blocks
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU64
    - CONSTANT_TIME_CARRY
    linkageType: ''
    returnType: void
    signature: void poly1305_blocks(void *ctx, const unsigned char *inp, size_t len,
      u32 padbit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:245,1
    - Dst: U64TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 247
    functionName: poly1305_emit
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U64TO8
    linkageType: ''
    returnType: void
    signature: "void poly1305_emit(void *ctx, unsigned char mac[16],\n                          const
      u32 nonce[4])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: U32TO8
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void U32TO8(unsigned char *p, unsigned int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:285,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:286,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:287,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 289
    functionName: poly1305_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU32
    linkageType: ''
    returnType: void
    signature: void poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:317,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:318,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:319,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:320,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:356,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:357,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:358,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 379
    functionName: poly1305_blocks
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU32
    - CONSTANT_TIME_CARRY
    linkageType: ''
    returnType: void
    signature: void poly1305_blocks(void *ctx, const unsigned char *inp, size_t len,
      u32 padbit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U32TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:421,1
    - Dst: U32TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:422,1
    - Dst: U32TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:423,1
    - Dst: U32TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 425
    functionName: poly1305_emit
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U32TO8
    linkageType: ''
    returnType: void
    signature: "void poly1305_emit(void *ctx, unsigned char mac[16],\n                          const
      u32 nonce[4])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:437,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:438,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:439,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:440,1
    - Dst: poly1305_init
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:443,1
    - Dst: poly1305_init
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - POLY1305*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 459
    functionName: Poly1305_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - poly1305_init
    - U8TOU32
    linkageType: ''
    returnType: void
    signature: void Poly1305_Init(POLY1305 *ctx, const unsigned char key[32])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:486,1
    - Dst: poly1305_blocks
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:487,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:492,1
    - Dst: poly1305_blocks
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:502,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:507,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - inp
    - len
    argTypes:
    - POLY1305*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 510
    functionName: Poly1305_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - poly1305_blocks
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Poly1305_Update(POLY1305 *ctx, const unsigned char *inp, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_blocks
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:524,1
    - Dst: poly1305_emit
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:527,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - mac
    argTypes:
    - POLY1305*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 531
    functionName: Poly1305_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - poly1305_blocks
    - poly1305_emit
    linkageType: ''
    returnType: void
    signature: void Poly1305_Final(POLY1305 *ctx, unsigned char mac[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: TWO
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TWO(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: EXP
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXP(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: U8TOU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TOU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: U32TO8
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: U8TOU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TOU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: U32TO8
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: U8TOU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TOU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: U32TO8
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: U8TOU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TOU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: U32TO8
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8(p,v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:117,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:118,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:119,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:120,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:122,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:123,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:124,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:125,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:160,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:160,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:161,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:161,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:162,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:162,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:163,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:163,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:165,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:166,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:167,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:168,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:177,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:177,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:178,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:178,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:181,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:181,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:182,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:182,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:185,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:185,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:186,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:186,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:189,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:189,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:190,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:190,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:193,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:193,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:194,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:194,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:197,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:197,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:198,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:198,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:201,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:201,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:202,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 222
    functionName: poly1305_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached:
    - TWO
    - EXP
    - U8TOU32
    linkageType: ''
    returnType: int
    signature: int poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:284,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:285,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:286,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:287,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:295,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:295,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:296,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:296,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:297,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:297,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:298,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:298,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:300,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:301,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:302,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:303,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:314,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:314,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:315,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:315,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:316,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:316,1
    - Dst: EXP
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:317,1
    - Dst: U8TOU32
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:317,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:319,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:320,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:321,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:322,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:336,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:336,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:337,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:337,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:338,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:338,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:339,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:339,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:341,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:341,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:342,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:342,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:343,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:343,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:344,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:344,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:383,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:383,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:384,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:384,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:385,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:385,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:386,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:386,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:388,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:388,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:389,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:389,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:390,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:390,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:391,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:391,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:409,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:410,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:411,1
    - Dst: TWO
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 101
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 428
    functionName: poly1305_blocks
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 2
    functionsReached:
    - TWO
    - EXP
    - U8TOU32
    linkageType: ''
    returnType: void
    signature: "void poly1305_blocks(void *ctx, const unsigned char *inp, size_t len,\n
      \                    int padbit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U32TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:484,1
    - Dst: U32TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:485,1
    - Dst: U32TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:486,1
    - Dst: U32TO8
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 488
    functionName: poly1305_emit
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached:
    - U32TO8
    linkageType: ''
    returnType: void
    signature: void poly1305_emit(void *ctx, unsigned char mac[16], const u32 nonce[4])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:31,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:32,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:37,1
    - Dst: EVP_PKEY_CTX_set0_keygen_info
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: pkey_poly1305_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - EVP_PKEY_CTX_set_data
    - EVP_PKEY_CTX_set0_keygen_info
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_poly1305_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:44,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:47,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:48,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: pkey_poly1305_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_data
    - OPENSSL_clear_free
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: void
    signature: void pkey_poly1305_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pkey_poly1305_init
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:58,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:60,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:61,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:62,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:63,1
    - Dst: pkey_poly1305_cleanup
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:65,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 70
    functionName: pkey_poly1305_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ASN1_STRING_copy
    - pkey_poly1305_cleanup
    - ASN1_STRING_get0_data
    - EVP_PKEY_CTX_get_data
    - pkey_poly1305_init
    linkageType: ''
    returnType: int
    signature: int pkey_poly1305_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:75,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:77,1
    - Dst: ASN1_OCTET_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:79,1
    - Dst: EVP_PKEY_assign_POLY1305
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: pkey_poly1305_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_dup
    - EVP_PKEY_assign_POLY1305
    - ASN1_STRING_get0_data
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int pkey_poly1305_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:87,1
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:87,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: int_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    functionUses: 0
    functionsReached:
    - Poly1305_Update
    - EVP_MD_CTX_pkey_ctx
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int int_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:100,1
    - Dst: EVP_MD_CTX_set_update_fn
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:101,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: poly1305_signctx_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    - Poly1305_Init
    - EVP_MD_CTX_set_update_fn
    linkageType: ''
    returnType: int
    signature: int poly1305_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Poly1305_Final
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - sig
    - siglen
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: poly1305_signctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    functionUses: 0
    functionsReached:
    - Poly1305_Final
    linkageType: ''
    returnType: int
    signature: "int poly1305_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t
      *siglen,\n                            EVP_MD_CTX *mctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:118,1
    - Dst: EVP_PKEY_get0_poly1305
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:136,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:136,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:139,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:141,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 149
    functionName: pkey_poly1305_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - EVP_PKEY_get0_poly1305
    - EVP_PKEY_CTX_get0_pkey
    - Poly1305_Init
    - ASN1_STRING_get0_data
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int pkey_poly1305_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:156,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:157,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:158,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: pkey_poly1305_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    functionUses: 0
    functionsReached:
    - strcmp
    - EVP_PKEY_CTX_hex2ctrl
    - EVP_PKEY_CTX_str2ctrl
    linkageType: ''
    returnType: int
    signature: "int pkey_poly1305_ctrl_str(EVP_PKEY_CTX *ctx,\n                                  const
      char *type, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: poly1305_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int poly1305_size(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:30,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:33,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: poly1305_key_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - ASN1_OCTET_STRING_free
    - EVP_PKEY_get0
    linkageType: ''
    returnType: void
    signature: void poly1305_key_free(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: poly1305_pkey_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int poly1305_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:46,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:46,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: poly1305_pkey_public_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - EVP_PKEY_get0
    linkageType: ''
    returnType: int
    signature: int poly1305_pkey_public_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:57,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:61,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: poly1305_set_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: "int poly1305_set_priv_key(EVP_PKEY *pkey, const unsigned char *priv,\n
      \                                size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:83,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:83,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: poly1305_get_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int poly1305_get_priv_key(const EVP_PKEY *pkey, unsigned char *priv,\n
      \                                size_t *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DSO_convert_filename
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:88,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:109,1
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:134,1
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:135,1
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:141,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:147,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:159,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:167,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:171,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:172,1
    - Dst: DSO_MALLOC
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:176,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:178,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:182,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:185,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:188,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:192,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:194,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:198,1
    - Dst: sk_void_push
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:203,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:204,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:214,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 216
    functionName: vms_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - DSO_MALLOC
    - strrchr
    - strncpy
    - DSOerr
    - sk_void_push
    - OPENSSL_free
    - strchr
    - strcat
    - strlen
    - DSO_convert_filename
    linkageType: ''
    returnType: int
    signature: int vms_load(DSO *dso)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:227,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:230,1
    - Dst: sk_void_pop
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:232,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:234,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 240
    functionName: vms_unload
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_void_pop
    - sk_void_num
    - DSOerr
    linkageType: ''
    returnType: int
    signature: int vms_unload(DSO *dso)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lib$establish
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:255,1
    - Dst: lib$find_image_symbol
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:258,1
    - Dst: lib$find_image_symbol
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - symname_dsc
    - sym
    - flags
    argTypes:
    - DSO_VMS_INTERNAL*
    - struct dsc$descriptor_s*
    - void**
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 264
    functionName: do_find_symbol
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - lib$establish
    - lib$find_image_symbol
    linkageType: ''
    returnType: int
    signature: "int do_find_symbol(DSO_VMS_INTERNAL *ptr,\n                          struct
      dsc$descriptor_s *symname_dsc, void **sym,\n                          unsigned
      long flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:290,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:296,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:299,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:304,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:305,1
    - Dst: sk_void_value
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:308,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:309,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:311,1
    - Dst: do_find_symbol
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:315,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:317,1
    - Dst: do_find_symbol
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:318,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:320,1
    - Dst: sys$getmsg
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:332,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:334,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:335,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:339,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:341,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:347,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 3
    argNames:
    - dso
    - symname
    - sym
    argTypes:
    - DSO*
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 354
    functionName: vms_bind_sym
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - strcpy
    - sk_void_value
    - lib$signal
    - DSOerr
    - ERR_add_error_data
    - do_find_symbol
    - $VMS_STATUS_SUCCESS
    - sys$getmsg
    - sk_void_num
    - strlen
    linkageType: ''
    returnType: void
    signature: void vms_bind_sym(DSO *dso, const char *symname, void **sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vms_bind_sym
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: vms_bind_func
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - vms_bind_sym
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE vms_bind_func(DSO *dso, const char *symname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:393,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:394,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:400,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:401,1
    - Dst: FAB_OR_NAML
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:407,1
    - Dst: FAB_OR_NAML
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:408,1
    - Dst: FAB_OR_NAML
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:409,1
    - Dst: FAB_OR_NAML
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:410,1
    - Dst: NAMX_DNA_FNA_SET
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:411,1
    - Dst: SET_NAMX_NO_SHORT_UPCASE
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:416,1
    - Dst: sys$parse
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:420,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:422,1
    - Dst: sys$getmsg
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:432,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:434,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:435,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:439,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:440,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:447,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:450,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:454,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 455
    functionName: vms_merger
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - NAMX_DNA_FNA_SET
    - strcpy
    - OPENSSL_malloc
    - lib$signal
    - DSOerr
    - strncpy
    - ERR_add_error_data
    - SET_NAMX_NO_SHORT_UPCASE
    - FAB_OR_NAML
    - sys$getmsg
    - $VMS_STATUS_SUCCESS
    - sys$parse
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *vms_merger(DSO *dso, const char *filespec1,\n                        const
      char *filespec2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:459,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:460,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_vms.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 464
    functionName: vms_name_converter
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - strcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *vms_name_converter(DSO *dso, const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddressW
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - hModule
    - lpProcName
    argTypes:
    - HMODULE
    - LPCSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: GetProcAddressA
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - GetProcAddressW
    linkageType: ''
    returnType: FARPROC
    signature: FARPROC GetProcAddressA(HMODULE hModule, LPCSTR lpProcName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:37,1
    - Dst: _alloca
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:40,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:42,1
    - Dst: SetLastError
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:45,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:49,1
    - Dst: LoadLibraryW
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - lpLibFileName
    argTypes:
    - LPCSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: LoadLibraryA
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - SetLastError
    - alloca
    - LoadLibraryW
    - _alloca
    - MultiByteToWideChar
    - strlen
    linkageType: ''
    returnType: HINSTANCE
    signature: HINSTANCE LoadLibraryA(LPCSTR lpLibFileName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DSO_convert_filename
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:100,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:103,1
    - Dst: LoadLibraryA
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:106,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:108,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:109,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:112,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:114,1
    - Dst: sk_void_push
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:118,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:127,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:128,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 132
    functionName: win32_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - DSOerr
    - LoadLibraryA
    - sk_void_push
    - OPENSSL_free
    - ERR_add_error_data
    - FreeLibrary
    - DSO_convert_filename
    linkageType: ''
    returnType: int
    signature: int win32_load(DSO *dso)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:138,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:141,1
    - Dst: sk_void_pop
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:143,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:145,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:148,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:149,1
    - Dst: sk_void_push
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:153,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 159
    functionName: win32_unload
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - sk_void_pop
    - DSOerr
    - sk_void_push
    - OPENSSL_free
    - FreeLibrary
    - sk_void_num
    linkageType: ''
    returnType: int
    signature: int win32_unload(DSO *dso)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:170,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:173,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:174,1
    - Dst: sk_void_value
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:177,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:177,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:179,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:182,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:184,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 189
    functionName: win32_bind_func
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - sk_void_value
    - DSOerr
    - ERR_add_error_data
    - sk_void_num
    - GetProcAddress
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE win32_bind_func(DSO *dso, const char *symname)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:213,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:217,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:219,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:238,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:239,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 3
    argNames:
    - dso
    - filename
    - assume_last_is_dir
    argTypes:
    - DSO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 302
    functionName: win32_splitter
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_zalloc
    - DSOerr
    linkageType: ''
    returnType: struct file_st
    signature: "struct file_st *win32_splitter(DSO *dso, const char *filename,\n                                      int
      assume_last_is_dir)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:311,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:332,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:336,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:338,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:343,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:345,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:352,1
    - Dst: openssl_strnchr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:359,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:365,1
    - Dst: openssl_strnchr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:373,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:378,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:384,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 2
    argNames:
    - dso
    - file_split
    argTypes:
    - DSO*
    - struct file_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 388
    functionName: win32_joiner
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - strcpy
    - strncpy
    - DSOerr
    - openssl_strnchr
    linkageType: ''
    returnType: char
    signature: char *win32_joiner(DSO *dso, const struct file_st *file_split)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:398,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:402,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:404,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:408,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:410,1
    - Dst: win32_splitter
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:414,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:416,1
    - Dst: win32_splitter
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:419,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:421,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:422,1
    - Dst: win32_joiner
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:446,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:448,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:449,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 451
    functionName: win32_merger
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - DSOerr
    - OPENSSL_free
    - OPENSSL_strdup
    - win32_splitter
    - win32_joiner
    linkageType: ''
    returnType: char
    signature: "char *win32_merger(DSO *dso, const char *filespec1,\n                          const
      char *filespec2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:458,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:459,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:460,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:461,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:464,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:467,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:469,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:473,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 477
    functionName: win32_name_converter
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - strstr
    - OPENSSL_malloc
    - DSOerr
    - sprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: char *win32_name_converter(DSO *dso, const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - string
    - c
    - len
    argTypes:
    - char*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: openssl_strnchr
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *openssl_strnchr(const char *string, int c, size_t len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:523,1
    - Dst: TEXT
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:523,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:525,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:530,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:532,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:533,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:539,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:543,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:544,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:552,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:553,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:561,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:562,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:571,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:574,1
    - Dst: wcslen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:578,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:591,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:596,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:605,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 607
    functionName: win32_pathbyaddr
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - DSOerr
    - memcpy
    - WideCharToMultiByte
    - FreeLibrary
    - wcslen
    - TEXT
    - LoadLibrary
    - strlen
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int win32_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:622,1
    - Dst: TEXT
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:622,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:624,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:629,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:631,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:632,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:638,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:642,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:643,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:647,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:648,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:656,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:661,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:663,1
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/crypto/dso/dso_win32.c:669,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 671
    functionName: win32_globallookup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - DSOerr
    - FreeLibrary
    - TEXT
    - LoadLibrary
    - GetProcAddress
    linkageType: ''
    returnType: void
    signature: void *win32_globallookup(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DSO_METHOD_openssl
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:25,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:27,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:29,1
    - Dst: sk_void_new_null
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:32,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:36,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:41,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:43,1
    - Dst: sk_void_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:45,1
    - Dst: DSO*::meth::init
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:49,1
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - meth
    argTypes:
    - DSO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 55
    functionName: DSO_new_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSOerr
    - DSO*::meth::init
    - OPENSSL_free
    - DSO_METHOD_openssl
    - DSO_free
    - CRYPTO_THREAD_lock_new
    - sk_void_free
    - OPENSSL_zalloc
    - sk_void_new_null
    linkageType: ''
    returnType: DSO
    signature: DSO *DSO_new_method(DSO_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSO_new_method
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: DSO_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_new_method
    linkageType: ''
    returnType: DSO
    signature: DSO *DSO_new(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:69,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:72,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:75,1
    - Dst: DSO*::meth::dso_unload
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:78,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:79,1
    - Dst: DSO*::meth::finish
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:84,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:85,1
    - Dst: sk_void_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:89,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:90,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:91,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:92,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 95
    functionName: DSO_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 3
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - DSOerr
    - OPENSSL_free
    - DSO*::meth::dso_unload
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - sk_void_free
    - CRYPTO_DOWN_REF
    - DSO*::meth::finish
    linkageType: ''
    returnType: int
    signature: int DSO_free(DSO *dso)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: DSO_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSO_flags(DSO *dso)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:107,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:111,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:114,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 117
    functionName: DSO_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - REF_PRINT_COUNT
    - CRYPTO_UP_REF
    - REF_ASSERT_ISNT
    - DSOerr
    linkageType: ''
    returnType: int
    signature: int DSO_up_ref(DSO *dso)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DSO_new_method
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:125,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:127,1
    - Dst: DSO_ctrl
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:132,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:133,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:140,1
    - Dst: DSO_set_filename
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:148,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:149,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:154,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:158,1
    - Dst: DSO*::meth::dso_load
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:161,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:162,1
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:169,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 4
    argNames:
    - dso
    - filename
    - meth
    - flags
    argTypes:
    - DSO*
    - char*
    - DSO_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 171
    functionName: DSO_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSOerr
    - DSO_ctrl
    - DSO*::meth::dso_load
    - DSO_set_filename
    - DSO_new_method
    - DSO_free
    linkageType: ''
    returnType: DSO
    signature: DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int
      flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:178,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:182,1
    - Dst: DSO*::meth::dso_bind_func
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:185,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: DSO_bind_func
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO*::meth::dso_bind_func
    - DSOerr
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:205,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:225,1
    - Dst: DSO*::meth::dso_ctrl
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - dso
    - cmd
    - larg
    - parg
    argTypes:
    - DSO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: DSO_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - DSO*::meth::dso_ctrl
    - DSOerr
    linkageType: ''
    returnType: long
    signature: long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: DSO_get_filename
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSOerr
    linkageType: ''
    returnType: char
    signature: char *DSO_get_filename(DSO *dso)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:245,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:249,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:253,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:255,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: DSO_set_filename
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - DSOerr
    linkageType: ''
    returnType: int
    signature: int DSO_set_filename(DSO *dso, const char *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:268,1
    - Dst: DSO*::merger
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:273,1
    - Dst: DSO*::meth::dso_merger
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 278
    functionName: DSO_merge
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO*::merger
    - DSO*::meth::dso_merger
    - DSOerr
    linkageType: ''
    returnType: char
    signature: char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:285,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:291,1
    - Dst: DSO*::name_converter
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:296,1
    - Dst: DSO*::meth::dso_name_converter
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:298,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:301,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 308
    functionName: DSO_convert_filename
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_strdup
    - DSO*::meth::dso_name_converter
    - DSO*::name_converter
    - DSOerr
    linkageType: ''
    returnType: char
    signature: char *DSO_convert_filename(DSO *dso, const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSO_METHOD_openssl
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:314,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: DSO_pathbyaddr
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_METHOD_openssl
    - DSOerr
    linkageType: ''
    returnType: int
    signature: int DSO_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSO_pathbyaddr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:326,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:331,1
    - Dst: DSO_pathbyaddr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:333,1
    - Dst: DSO_load
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:334,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - addr
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 338
    functionName: DSO_dsobyaddr
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - DSO_pathbyaddr
    - DSO_load
    linkageType: ''
    returnType: DSO
    signature: DSO *DSO_dsobyaddr(void *addr, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSO_METHOD_openssl
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:344,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_lib.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: DSO_global_lookup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_METHOD_openssl
    - DSOerr
    linkageType: ''
    returnType: void
    signature: void *DSO_global_lookup(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DSO_convert_filename
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:100,1
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:102,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:105,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:113,1
    - Dst: dlopen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:116,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:118,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:119,1
    - Dst: dlerror
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:119,1
    - Dst: set_sys_error
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:126,1
    - Dst: sk_void_push
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:127,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:128,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:136,1
    - Dst: dlclose
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 140
    functionName: dlfcn_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - get_last_sys_error
    - DSOerr
    - dlopen
    - sk_void_push
    - OPENSSL_free
    - ERR_add_error_data
    - dlclose
    - set_sys_error
    - dlerror
    - strlen
    - DSO_convert_filename
    linkageType: ''
    returnType: int
    signature: int dlfcn_load(DSO *dso)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:146,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:149,1
    - Dst: sk_void_pop
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:151,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:153,1
    - Dst: sk_void_push
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:157,1
    - Dst: dlclose
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: dlfcn_unload
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - sk_void_pop
    - DSOerr
    - sk_void_push
    - dlclose
    - sk_void_num
    linkageType: ''
    returnType: int
    signature: int dlfcn_unload(DSO *dso)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:174,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:177,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:178,1
    - Dst: sk_void_value
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:181,1
    - Dst: sk_void_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:181,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:183,1
    - Dst: dlsym
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:186,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:188,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:189,1
    - Dst: dlerror
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 193
    functionName: dlfcn_bind_func
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - sk_void_value
    - DSOerr
    - ERR_add_error_data
    - dlsym
    - dlerror
    - sk_void_num
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:201,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:209,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:211,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:219,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:221,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:234,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:235,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:241,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:243,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:246,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 251
    functionName: dlfcn_merger
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - strcpy
    - DSOerr
    - OPENSSL_strdup
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *dlfcn_merger(DSO *dso, const char *filespec1,\n                          const
      char *filespec2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:258,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:260,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:263,1
    - Dst: DSO_flags
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:264,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:267,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:269,1
    - Dst: DSO_flags
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:273,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:274,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:276,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 280
    functionName: dlfcn_name_converter
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - strstr
    - OPENSSL_malloc
    - DSOerr
    - DSO_flags
    - sprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: char *dlfcn_name_converter(DSO *dso, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _rld_new_interface
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - address
    - dl
    argTypes:
    - void*
    - Dl_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: dladdr
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - _rld_new_interface
    linkageType: ''
    returnType: int
    signature: int dladdr(void *address, Dl_info *dl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:345,1
    - Dst: loadquery
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:351,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:358,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:375,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:377,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:380,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:381,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:388,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:389,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:390,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:401,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - ptr
    - dl
    argTypes:
    - void*
    - Dl_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 403
    functionName: dladdr
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_strlcat
    - OPENSSL_free
    - OPENSSL_strlcpy
    - strlen
    - loadquery
    linkageType: ''
    returnType: int
    signature: int dladdr(void *ptr, Dl_info *dl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:422,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:423,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:426,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:432,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:435,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:440,1
    - Dst: dlerror
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 443
    functionName: dlfcn_pathbyaddr
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - dladdr
    - ERR_add_error_data
    - memcpy
    - dlerror
    - strlen
    linkageType: ''
    returnType: int
    signature: int dlfcn_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:447,1
    - Dst: dlsym
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:450,1
    - Dst: dlclose
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 455
    functionName: dlfcn_globallookup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - dlclose
    - dlsym
    - dlopen
    linkageType: ''
    returnType: void
    signature: void *dlfcn_globallookup(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/dso/dso_err.c:94,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/dso/dso_err.c:95,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/dso/dso_err.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: ERR_load_DSO_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_DSO_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DSO_convert_filename
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:61,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:64,1
    - Dst: shl_load
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:67,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:72,1
    - Dst: openssl_strerror_r
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:73,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:74,1
    - Dst: sk_push
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:77,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:78,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:89,1
    - Dst: shl_unload
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 93
    functionName: dl_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - openssl_strerror_r
    - DSOerr
    - sk_push
    - OPENSSL_free
    - ERR_add_error_data
    - shl_unload
    - shl_load
    - DSO_convert_filename
    linkageType: ''
    returnType: int
    signature: int dl_load(DSO *dso)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:99,1
    - Dst: sk_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:102,1
    - Dst: sk_pop
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:105,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:107,1
    - Dst: sk_push
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:111,1
    - Dst: shl_unload
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 116
    functionName: dl_unload
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - sk_push
    - DSOerr
    - sk_num
    - sk_pop
    - shl_unload
    linkageType: ''
    returnType: int
    signature: int dl_unload(DSO *dso)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:124,1
    - Dst: sk_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:127,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:128,1
    - Dst: sk_value
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:131,1
    - Dst: sk_num
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:131,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:133,1
    - Dst: shl_findsym
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:136,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:138,1
    - Dst: openssl_strerror_r
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:139,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 144
    functionName: dl_bind_func
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - openssl_strerror_r
    - DSOerr
    - sk_num
    - ERR_add_error_data
    - shl_findsym
    - sk_value
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:151,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:159,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:161,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:169,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:171,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:185,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:186,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:192,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:194,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:197,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 202
    functionName: dl_merger
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - strcpy
    - DSOerr
    - OPENSSL_strdup
    - strlen
    linkageType: ''
    returnType: char
    signature: char *dl_merger(DSO *dso, const char *filespec1, const char *filespec2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:216,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:218,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:221,1
    - Dst: DSO_flags
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:222,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:225,1
    - Dst: DSOerr
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:227,1
    - Dst: DSO_flags
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:231,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:232,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:234,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 238
    functionName: dl_name_converter
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - strstr
    - OPENSSL_malloc
    - DSOerr
    - DSO_flags
    - sprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: char *dl_name_converter(DSO *dso, const char *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: shl_get_r
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:255,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:258,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 270
    functionName: dl_pathbyaddr
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - shl_get_r
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: int dl_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shl_findsym
      Src: /src/openssl-1.1.1g/crypto/dso/dso_dl.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: dl_globallookup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - shl_findsym
    linkageType: ''
    returnType: void
    signature: void *dl_globallookup(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UI_new_method
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: UI_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI_new_method
    linkageType: ''
    returnType: UI
    signature: UI *UI_new(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:25,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:28,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:32,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:34,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:35,1
    - Dst: UI_get_default_method
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:40,1
    - Dst: UI_null
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:42,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: UI_new_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - UI_get_default_method
    - UIerr
    - CRYPTO_THREAD_lock_new
    - CRYPTO_new_ex_data
    - UI_null
    - OPENSSL_zalloc
    linkageType: ''
    returnType: UI
    signature: UI *UI_new_method(const UI_METHOD *method)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: free_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void free_string(UI_STRING *uis)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_destroy_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:78,1
    - Dst: sk_UI_STRING_pop_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:80,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:81,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: UI_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - sk_UI_STRING_pop_free
    - UI*::meth::ui_destroy_data
    - CRYPTO_free_ex_data
    linkageType: ''
    returnType: void
    signature: void UI_free(UI *ui)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_UI_STRING_new_null
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: allocate_string_stack
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - sk_UI_STRING_new_null
    linkageType: ''
    returnType: int
    signature: int allocate_string_stack(UI *ui)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:105,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:108,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - ui
    - prompt
    - prompt_freeable
    - type
    - input_flags
    - result_buf
    argTypes:
    - UI*
    - char*
    - int
    - enum UI_string_types
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 117
    functionName: general_allocate_prompt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - UIerr
    linkageType: ''
    returnType: UI_STRING
    signature: "UI_STRING *general_allocate_prompt(UI *ui, const char *prompt,\n                                          int
      prompt_freeable,\n                                          enum UI_string_types
      type,\n                                          int input_flags, char *result_buf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_prompt
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:126,1
    - Dst: allocate_string_stack
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:130,1
    - Dst: sk_UI_STRING_push
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:134,1
    - Dst: free_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:138,1
    - Dst: free_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 9
    argNames:
    - ui
    - prompt
    - prompt_freeable
    - type
    - input_flags
    - result_buf
    - minsize
    - maxsize
    - test_buf
    argTypes:
    - UI*
    - char*
    - int
    - enum UI_string_types
    - int
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 144
    functionName: general_allocate_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - allocate_string_stack
    - sk_UI_STRING_push
    - general_allocate_prompt
    - free_string
    linkageType: ''
    returnType: int
    signature: "int general_allocate_string(UI *ui, const char *prompt,\n                                   int
      prompt_freeable,\n                                   enum UI_string_types type,
      int input_flags,\n                                   char *result_buf, int minsize,
      int maxsize,\n                                   const char *test_buf)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:160,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:162,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:165,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:166,1
    - Dst: general_allocate_prompt
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:171,1
    - Dst: allocate_string_stack
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:175,1
    - Dst: sk_UI_STRING_push
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:179,1
    - Dst: free_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:185,1
    - Dst: free_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 9
    argNames:
    - ui
    - prompt
    - action_desc
    - ok_chars
    - cancel_chars
    - prompt_freeable
    - type
    - input_flags
    - result_buf
    argTypes:
    - UI*
    - char*
    - char*
    - char*
    - char*
    - int
    - enum UI_string_types
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 192
    functionName: general_allocate_boolean
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - allocate_string_stack
    - UIerr
    - strchr
    - sk_UI_STRING_push
    - general_allocate_prompt
    - free_string
    linkageType: ''
    returnType: int
    signature: "int general_allocate_boolean(UI *ui,\n                                    const
      char *prompt,\n                                    const char *action_desc,\n
      \                                   const char *ok_chars,\n                                    const
      char *cancel_chars,\n                                    int prompt_freeable,\n
      \                                   enum UI_string_types type,\n                                    int
      input_flags, char *result_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: UI_add_input_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "int UI_add_input_string(UI *ui, const char *prompt, int flags,\n                        char
      *result_buf, int minsize, int maxsize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:213,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:215,1
    - Dst: general_allocate_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: UI_dup_input_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - UIerr
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "int UI_dup_input_string(UI *ui, const char *prompt, int flags,\n                        char
      *result_buf, int minsize, int maxsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    - test_buf
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: UI_add_verify_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "int UI_add_verify_string(UI *ui, const char *prompt, int flags,\n
      \                        char *result_buf, int minsize, int maxsize,\n                         const
      char *test_buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:241,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:243,1
    - Dst: general_allocate_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    - test_buf
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: UI_dup_verify_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - UIerr
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "int UI_dup_verify_string(UI *ui, const char *prompt, int flags,\n
      \                        char *result_buf, int minsize, int maxsize,\n                         const
      char *test_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_boolean
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ui
    - prompt
    - action_desc
    - ok_chars
    - cancel_chars
    - flags
    - result_buf
    argTypes:
    - UI*
    - char*
    - char*
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: UI_add_input_boolean
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_boolean
    linkageType: ''
    returnType: int
    signature: "int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc,\n
      \                        const char *ok_chars, const char *cancel_chars,\n                         int
      flags, char *result_buf)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:272,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:274,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:280,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:282,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:288,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:290,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:296,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:298,1
    - Dst: general_allocate_boolean
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:303,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:308,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:309,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:310,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 7
    argNames:
    - ui
    - prompt
    - action_desc
    - ok_chars
    - cancel_chars
    - flags
    - result_buf
    argTypes:
    - UI*
    - char*
    - char*
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 312
    functionName: UI_dup_input_boolean
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - general_allocate_boolean
    - UIerr
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,\n
      \                        const char *ok_chars, const char *cancel_chars,\n                         int
      flags, char *result_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: UI_add_info_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: int UI_add_info_string(UI *ui, const char *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:325,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:327,1
    - Dst: general_allocate_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 334
    functionName: UI_dup_info_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - UIerr
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: int UI_dup_info_string(UI *ui, const char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: UI_add_error_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: int UI_add_error_string(UI *ui, const char *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:347,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:349,1
    - Dst: general_allocate_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 355
    functionName: UI_dup_error_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - UIerr
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: int UI_dup_error_string(UI *ui, const char *text)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_construct_prompt
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:363,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:372,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:374,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:377,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:378,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:381,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:382,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:384,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:385,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - ui
    - object_desc
    - object_name
    argTypes:
    - UI*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 390
    functionName: UI_construct_prompt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - UI*::meth::ui_construct_prompt
    - OPENSSL_strlcat
    - UIerr
    - OPENSSL_strlcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *UI_construct_prompt(UI *ui, const char *object_desc,\n                          const
      char *object_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_destroy_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ui
    - user_data
    argTypes:
    - UI*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 403
    functionName: UI_add_user_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI*::meth::ui_destroy_data
    linkageType: ''
    returnType: void
    signature: void *UI_add_user_data(UI *ui, void *user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:411,1
    - Dst: UI*::meth::ui_duplicate_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:415,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:417,1
    - Dst: UI_add_user_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ui
    - user_data
    argTypes:
    - UI*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 425
    functionName: UI_dup_user_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI_add_user_data
    - UIerr
    - UI*::meth::ui_duplicate_data
    linkageType: ''
    returnType: int
    signature: int UI_dup_user_data(UI *ui, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: UI_get0_user_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *UI_get0_user_data(UI *ui)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:435,1
    - Dst: sk_UI_STRING_num
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:438,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:439,1
    - Dst: UI_get0_result_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:442,1
    - Dst: sk_UI_STRING_value
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ui
    - i
    argTypes:
    - UI*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 443
    functionName: UI_get0_result
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI_get0_result_string
    - UIerr
    - sk_UI_STRING_num
    - sk_UI_STRING_value
    linkageType: ''
    returnType: char
    signature: char *UI_get0_result(UI *ui, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:448,1
    - Dst: sk_UI_STRING_num
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:451,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:452,1
    - Dst: UI_get_result_string_length
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:455,1
    - Dst: sk_UI_STRING_value
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ui
    - i
    argTypes:
    - UI*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 456
    functionName: UI_get_result_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI_get_result_string_length
    - UIerr
    - sk_UI_STRING_num
    - sk_UI_STRING_value
    linkageType: ''
    returnType: int
    signature: int UI_get_result_length(UI *ui, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:462,1
    - Dst: UI*::meth::ui_write_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - str
    - len
    - ui
    argTypes:
    - char*
    - size_t
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: print_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI*::meth::ui_write_string
    - memset
    linkageType: ''
    returnType: int
    signature: int print_error(const char *str, size_t len, UI *ui)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_open_session
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:478,1
    - Dst: ERR_print_errors_cb
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:485,1
    - Dst: sk_UI_STRING_num
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:488,1
    - Dst: UI*::meth::ui_write_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:490,1
    - Dst: sk_UI_STRING_value
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:491,1
    - Dst: UI*::meth::ui_flush
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:501,1
    - Dst: sk_UI_STRING_num
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:515,1
    - Dst: UI*::meth::ui_read_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:517,1
    - Dst: sk_UI_STRING_value
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:518,1
    - Dst: UI*::meth::ui_close_session
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:538,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:545,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:546,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 549
    functionName: UI_process
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI*::meth::ui_write_string
    - ERR_print_errors_cb
    - sk_UI_STRING_num
    - UI*::meth::ui_flush
    - UIerr
    - ERR_add_error_data
    - UI*::meth::ui_read_string
    - UI*::meth::ui_close_session
    - sk_UI_STRING_value
    - UI*::meth::ui_open_session
    linkageType: ''
    returnType: int
    signature: int UI_process(UI *ui)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:554,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ui
    - cmd
    - i
    - p
    argTypes:
    - UI*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 574
    functionName: UI_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UIerr
    linkageType: ''
    returnType: int
    signature: int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - idx
    - arg
    argTypes:
    - UI*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: UI_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int UI_set_ex_data(UI *r, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - idx
    argTypes:
    - UI*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: UI_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *UI_get_ex_data(UI *r, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: UI_get_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_get_method(UI *ui)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ui
    - meth
    argTypes:
    - UI*
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: UI_set_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:601,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:602,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:603,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:606,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:607,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 612
    functionName: UI_create_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - UIerr
    - OPENSSL_strdup
    - CRYPTO_new_ex_data
    - OPENSSL_zalloc
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_create_method(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:623,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:625,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ui_method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 619
    functionDepth: 3
    functionLinenumber: 619
    functionLinenumberEnd: 628
    functionName: UI_destroy_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_free_ex_data
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void UI_destroy_method(UI_METHOD *ui_method)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 637
    functionName: UI_method_set_opener
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 647
    functionName: UI_method_set_writer
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int UI_method_set_writer(UI_METHOD *method,\n                         int
      (*writer) (UI *ui, UI_STRING *uis))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 656
    functionName: UI_method_set_flusher
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 666
    functionName: UI_method_set_reader
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int UI_method_set_reader(UI_METHOD *method,\n                         int
      (*reader) (UI *ui, UI_STRING *uis))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 675
    functionName: UI_method_set_closer
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - method
    - (*duplicator) (UI *ui, void *ui_data)
    argTypes:
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: UI_method_set_data_duplicator
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int UI_method_set_data_duplicator(UI_METHOD *method,\n                                  void
      *(*duplicator) (UI *ui, void *ui_data),\n                                  void
      (*destructor)(UI *ui, void *ui_data))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - method
    - "(*prompt_constructor) (UI *ui,\n                                                                  const
      char\n                                                                  *object_desc,\n
      \                                                                 const char\n
      \                                                                 *object_name)"
    argTypes:
    - UI_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 701
    functionName: UI_method_set_prompt_constructor
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int UI_method_set_prompt_constructor(UI_METHOD *method,\n                                     char
      *(*prompt_constructor) (UI *ui,\n                                                                  const
      char\n                                                                  *object_desc,\n
      \                                                                 const char\n
      \                                                                 *object_name))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - method
    - idx
    - data
    argTypes:
    - UI_METHOD*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: UI_method_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 713
    functionName: (*UI_method_get_opener(const UI_METHOD *method)) (UI *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_opener(const UI_METHOD *method)) (UI *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING
      *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING
      *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 727
    functionName: (*UI_method_get_flusher(const UI_METHOD *method)) (UI *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 734
    functionName: (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING
      *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING
      *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 741
    functionName: (*UI_method_get_closer(const UI_METHOD *method)) (UI *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_closer(const UI_METHOD *method)) (UI *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 749
    functionName: "*(*UI_method_get_prompt_constructor(const UI_METHOD *method))\n
      \   (UI *, const char *, const char *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *(*UI_method_get_prompt_constructor(const UI_METHOD *method))\n
      \   (UI *, const char *, const char *)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 756
    functionName: '*(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI
      *, void *)'
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI
      *, void *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 763
    functionName: (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *,
      void *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI
      *, void *)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - idx
    argTypes:
    - UI_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 768
    functionName: UI_method_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *UI_method_get_ex_data(const UI_METHOD *method, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: UI_get_string_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum UI_string_types
    signature: enum UI_string_types UI_get_string_type(UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: UI_get_input_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_get_input_flags(UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 783
    functionName: UI_get0_output_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *UI_get0_output_string(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 798
    functionName: UI_get0_action_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *UI_get0_action_string(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 813
    functionName: UI_get0_result_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *UI_get0_result_string(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 828
    functionName: UI_get_result_string_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_get_result_string_length(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 843
    functionName: UI_get0_test_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *UI_get0_test_string(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 858
    functionName: UI_get_result_minsize
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_get_result_minsize(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 873
    functionName: UI_get_result_maxsize
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_get_result_maxsize(UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:882,1
    - Dst: UI_set_result_ex
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:884,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ui
    - uis
    - result
    argTypes:
    - UI*
    - UI_STRING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 885
    functionName: UI_set_result
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI_set_result_ex
    - UIerr
    - strlen
    linkageType: ''
    returnType: int
    signature: int UI_set_result(UI *ui, UI_STRING *uis, const char *result)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:895,1
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:896,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:898,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:900,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:905,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:906,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:912,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:913,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:920,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:924,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:934,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:940,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_lib.c:944,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 4
    argNames:
    - ui
    - uis
    - result
    - len
    argTypes:
    - UI*
    - UI_STRING*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 956
    functionName: UI_set_result_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - DECIMAL_SIZE
    - UIerr
    - ERR_add_error_data
    - memcpy
    - strchr
    linkageType: ''
    returnType: int
    signature: int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UI_UTIL_read_pw
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:26,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - length
    - prompt
    - verify
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: UI_UTIL_read_pw_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - UI_UTIL_read_pw
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt,\n
      \                          int verify)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UI_new
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:41,1
    - Dst: UI_add_input_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:43,1
    - Dst: UI_add_verify_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:45,1
    - Dst: UI_process
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:47,1
    - Dst: UI_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:48,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - buf
    - buff
    - size
    - prompt
    - verify
    argTypes:
    - char*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: UI_UTIL_read_pw
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 1
    functionsReached:
    - UI_new
    - UI_process
    - UI_free
    - UI_add_input_string
    - UI_add_verify_string
    linkageType: ''
    returnType: int
    signature: "int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt,\n
      \                   int verify)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: ui_new_method_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ui_new_method_data(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n
      \                              int idx, long argl, void *argp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - to
    - from
    - from_d
    - idx
    - argl
    - argp
    argTypes:
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    - void*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: ui_dup_method_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: "int ui_dup_method_data(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,\n
      \                             void *from_d, int idx, long argl, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: ui_free_method_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "void ui_free_method_data(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n
      \                               int idx, long argl, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_new_index
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_new_index
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ui_method_data_index_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: ui_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ui_open(UI *ui)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:105,1
    - Dst: UI_method_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:110,1
    - Dst: UI_get_method
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:110,1
    - Dst: UI_get_result_maxsize
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:111,1
    - Dst: struct pem_password_cb_data*::cb
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:112,1
    - Dst: UI_get0_user_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:114,1
    - Dst: UI_set_result_ex
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: ui_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - UI_get_result_maxsize
    - struct pem_password_cb_data*::cb
    - UI_get_string_type
    - UI_set_result_ex
    - UI_get_method
    - UI_get0_user_data
    - UI_method_get_ex_data
    linkageType: ''
    returnType: int
    signature: int ui_read(UI *ui, UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: ui_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ui_write(UI *ui, UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: ui_close
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ui_close(UI *ui)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:147,1
    - Dst: UI_create_method
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:148,1
    - Dst: UI_method_set_opener
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:149,1
    - Dst: UI_method_set_reader
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:150,1
    - Dst: UI_method_set_writer
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:151,1
    - Dst: UI_method_set_closer
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:152,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:153,1
    - Dst: UI_method_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:154,1
    - Dst: UI_destroy_method
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:155,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ui/ui_util.c:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - cb
    - rwflag
    argTypes:
    - pem_password_cb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: UI_UTIL_wrap_read_pem_callback
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - UI_method_set_closer
    - UI_create_method
    - RUN_ONCE
    - UI_method_set_writer
    - OPENSSL_free
    - UI_destroy_method
    - OPENSSL_zalloc
    - UI_method_set_ex_data
    - UI_method_set_opener
    - UI_method_set_reader
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int
      rwflag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_err.c:72,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ui/ui_err.c:73,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ui/ui_err.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: ERR_load_UI_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_UI_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: TTY_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_get(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: TTY_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_set(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: TTY_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_get(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: TTY_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_set(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: TTY_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_get(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: TTY_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_set(tty,data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:209,1
    - Dst: fputs
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:212,1
    - Dst: UI_get0_output_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:212,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 222
    functionName: write_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 2
    functionsReached:
    - UI_get_string_type
    - fputs
    - fflush
    - UI_get0_output_string
    linkageType: ''
    returnType: int
    signature: int write_string(UI *ui, UI_STRING *uis)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:228,1
    - Dst: fputs
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:230,1
    - Dst: UI_get0_output_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:230,1
    - Dst: fputs
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:231,1
    - Dst: UI_get0_action_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:231,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:232,1
    - Dst: read_string_inner
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:233,1
    - Dst: UI_get_input_flags
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:234,1
    - Dst: fputs
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:237,1
    - Dst: UI_get0_output_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:237,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:238,1
    - Dst: read_string_inner
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:239,1
    - Dst: UI_get_input_flags
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:240,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:243,1
    - Dst: UI_get0_output_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:243,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:244,1
    - Dst: read_string_inner
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:245,1
    - Dst: UI_get_input_flags
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:246,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:249,1
    - Dst: UI_get0_result_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:249,1
    - Dst: UI_get0_test_string
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:249,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:250,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 261
    functionName: read_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - read_string_inner
    - UI_get_input_flags
    - fputs
    - fflush
    - strcmp
    - UI_get_string_type
    - UI_get0_output_string
    - UI_get0_test_string
    - UI_get0_result_string
    - UI_get0_action_string
    - fprintf
    linkageType: ''
    returnType: int
    signature: int read_string(UI *ui, UI_STRING *uis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:271,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: read_till_nl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached:
    - fgets
    - strchr
    linkageType: ''
    returnType: int
    signature: int read_till_nl(FILE *in)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: pushsig
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:294,1
    - Dst: noecho_console
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:297,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:306,1
    - Dst: ReadConsoleW
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:309,1
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:309,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:318,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:322,1
    - Dst: ReadConsoleA
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:326,1
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:326,1
    - Dst: noecho_fgets
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:339,1
    - Dst: fgets
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:343,1
    - Dst: feof
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:346,1
    - Dst: ferror
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:348,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:350,1
    - Dst: read_till_nl
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:353,1
    - Dst: UI_set_result
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:355,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:362,1
    - Dst: echo_console
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:363,1
    - Dst: popsig
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:367,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:372,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 69
    argCount: 4
    argNames:
    - ui
    - uis
    - echo
    - strip_nl
    argTypes:
    - UI*
    - UI_STRING*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 374
    functionName: read_string_inner
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - noecho_console
    - fgets
    - ReadConsoleA
    - ReadConsoleW
    - UI_set_result
    - echo_console
    - GetEnvironmentVariableW
    - strchr
    - WideCharToMultiByte
    - pushsig
    - read_till_nl
    - OPENSSL_cleanse
    - noecho_fgets
    - popsig
    - ferror
    - feof
    - fprintf
    - GetStdHandle
    linkageType: ''
    returnType: int
    signature: int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:379,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:386,1
    - Dst: GetConsoleMode
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:389,1
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:389,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:393,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:402,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:404,1
    - Dst: TTY_get
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:409,1
    - Dst: fileno
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:409,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:453,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:454,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:455,1
    - Dst: sys$assign
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:462,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:468,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:469,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:470,1
    - Dst: sys$qiow
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:474,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 482
    functionName: open_console
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - BIO_snprintf
    - sys$qiow
    - sys$assign
    - TTY_get
    - UIerr
    - ERR_add_error_data
    - GetConsoleMode
    - fopen
    - fileno
    - GetStdHandle
    linkageType: ''
    returnType: int
    signature: int open_console(UI *ui)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:487,1
    - Dst: TTY_set
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:492,1
    - Dst: fileno
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:492,1
    - Dst: sys$qiow
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:500,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:505,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:507,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:509,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:510,1
    - Dst: SetConsoleMode
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:520,1
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:520,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 524
    functionName: noecho_console
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - sys$qiow
    - SetConsoleMode
    - UIerr
    - ERR_add_error_data
    - memcpy
    - TTY_set
    - fileno
    - GetStdHandle
    linkageType: ''
    returnType: int
    signature: int noecho_console(UI *ui)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:529,1
    - Dst: TTY_set
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:530,1
    - Dst: fileno
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:530,1
    - Dst: sys$qiow
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:538,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:543,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:545,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:547,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:548,1
    - Dst: SetConsoleMode
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:557,1
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:557,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 561
    functionName: echo_console
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - sys$qiow
    - SetConsoleMode
    - UIerr
    - ERR_add_error_data
    - memcpy
    - TTY_set
    - fileno
    - GetStdHandle
    linkageType: ''
    returnType: int
    signature: int echo_console(UI *ui)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:566,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:568,1
    - Dst: sys$dassgn
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:570,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:574,1
    - Dst: UIerr
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:575,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:576,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 583
    functionName: close_console
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - fclose
    - UIerr
    - ERR_add_error_data
    - sys$dassgn
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int close_console(UI *ui)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:595,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:600,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:601,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:602,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:603,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:604,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:605,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:621,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:623,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:629,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 631
    functionName: pushsig
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - signal
    - memset
    - sigaction
    linkageType: ''
    returnType: void
    signature: void pushsig(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:636,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:637,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:638,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:639,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:640,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:641,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:654,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 660
    functionName: popsig
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - signal
    - sigaction
    linkageType: ''
    returnType: void
    signature: void popsig(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 665
    functionName: recsig
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void recsig(int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _getch
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:683,1
    - Dst: getch
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:685,1
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:704,1
    - Dst: FlushConsoleInputBuffer
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:705,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c:708,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - size
    - tty
    argTypes:
    - char*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 709
    functionName: noecho_fgets
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - FlushConsoleInputBuffer
    - _getch
    - getch
    - strlen
    - GetStdHandle
    linkageType: ''
    returnType: int
    signature: int noecho_fgets(char *buf, int size, FILE *tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: UI_OpenSSL
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 739
    functionName: UI_set_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UI_set_default_method(const UI_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 744
    functionName: UI_get_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_get_default_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: UI_null
    functionSourceFile: /src/openssl-1.1.1g/crypto/ui/ui_null.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_null(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:44,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:45,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:46,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:52,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:54,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:57,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:58,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: ec_field_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve
    - BN_new
    - BN_num_bits
    - BN_free
    linkageType: ''
    returnType: size_t
    signature: size_t ec_field_size(const EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec_field_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:67,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:67,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:68,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:72,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:76,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - key
    - digest
    - msg_len
    - pt_size
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 88
    functionName: sm2_plaintext_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    - EC_KEY_get0_group
    - SM2err
    - ec_field_size
    linkageType: ''
    returnType: int
    signature: "int sm2_plaintext_size(const EC_KEY *key, const EVP_MD *digest, size_t
      msg_len,\n                       size_t *pt_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_field_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:93,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:93,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:94,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:101,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:102,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:103,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - key
    - digest
    - msg_len
    - ct_size
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: sm2_ciphertext_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    - ASN1_object_size
    - EC_KEY_get0_group
    - ec_field_size
    linkageType: ''
    returnType: int
    signature: "int sm2_ciphertext_size(const EC_KEY *key, const EVP_MD *digest, size_t
      msg_len,\n                        size_t *ct_size)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:123,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:125,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:126,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:127,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:134,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:141,1
    - Dst: ec_field_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:145,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:147,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:151,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:152,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:153,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:155,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:159,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:160,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:161,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:162,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:163,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:164,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:167,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:171,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:172,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:175,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:179,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:181,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:182,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:186,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:187,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:188,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:189,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:190,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:194,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:195,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:196,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:200,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:202,1
    - Dst: ecdh_KDF_X9_63
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:207,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:209,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:216,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:217,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:218,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:219,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:220,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:221,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:227,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:228,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:231,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:234,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:235,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:236,1
    - Dst: i2d_SM2_Ciphertext
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:240,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:243,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:251,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:252,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:253,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:254,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:255,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:256,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:257,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:258,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:259,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 108
    argCount: 6
    argNames:
    - key
    - digest
    - msg
    - msg_len
    - ciphertext_buf
    - ciphertext_len
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 261
    functionName: sm2_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - ecdh_KDF_X9_63
    - SM2err
    - EVP_MD_CTX_free
    - BN_bn2binpad
    - EC_GROUP_get0_order
    - EC_POINT_mul
    - ASN1_OCTET_STRING_set
    - OPENSSL_free
    - EC_POINT_get_affine_coordinates
    - i2d_SM2_Ciphertext
    - OPENSSL_zalloc
    - EVP_MD_CTX_new
    - EC_KEY_get0_public_key
    - EVP_DigestInit
    - ASN1_OCTET_STRING_free
    - BN_CTX_free
    - BN_CTX_get
    - EVP_MD_size
    - EC_KEY_get0_group
    - EVP_DigestFinal
    - ASN1_OCTET_STRING_new
    - EC_POINT_free
    - BN_CTX_start
    - ec_field_size
    - EVP_DigestUpdate
    - memset
    - EC_POINT_new
    - BN_priv_rand_range
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int sm2_encrypt(const EC_KEY *key,\n                const EVP_MD *digest,\n
      \               const uint8_t *msg,\n                size_t msg_len, uint8_t
      *ciphertext_buf, size_t *ciphertext_len)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:271,1
    - Dst: ec_field_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:278,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:279,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:289,1
    - Dst: d2i_SM2_Ciphertext
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:291,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:294,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:299,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:307,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:309,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:313,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:314,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:315,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:318,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:322,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:323,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:324,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:327,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:331,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:333,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:337,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:339,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:339,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:341,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:342,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:346,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:347,1
    - Dst: ecdh_KDF_X9_63
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:348,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:350,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:357,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:359,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:363,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:364,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:365,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:366,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:367,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:368,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:372,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:373,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:382,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:384,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:385,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:386,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:387,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:388,1
    - Dst: SM2_Ciphertext_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:389,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c:390,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 89
    argCount: 6
    argNames:
    - key
    - digest
    - ciphertext
    - ciphertext_len
    - ptext_buf
    - ptext_len
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 393
    functionName: sm2_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - ecdh_KDF_X9_63
    - SM2err
    - EVP_MD_CTX_free
    - BN_bn2binpad
    - EC_POINT_mul
    - EC_POINT_set_affine_coordinates
    - OPENSSL_free
    - EC_POINT_get_affine_coordinates
    - CRYPTO_memcmp
    - OPENSSL_zalloc
    - SM2_Ciphertext_free
    - EVP_MD_CTX_new
    - d2i_SM2_Ciphertext
    - EVP_DigestInit
    - EC_KEY_get0_private_key
    - BN_CTX_free
    - BN_CTX_get
    - EVP_MD_size
    - EC_KEY_get0_group
    - EVP_DigestFinal
    - EC_POINT_free
    - BN_CTX_start
    - ec_field_size
    - EVP_DigestUpdate
    - memset
    - EC_POINT_new
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int sm2_decrypt(const EC_KEY *key,\n                const EVP_MD *digest,\n
      \               const uint8_t *ciphertext,\n                size_t ciphertext_len,
      uint8_t *ptext_buf, size_t *ptext_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_err.c:63,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_err.c:64,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_err.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: ERR_load_SM2_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_SM2_strings(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:29,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:44,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:45,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:47,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:51,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:52,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:53,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:54,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:55,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:56,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:57,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:60,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:64,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:65,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:73,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:80,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:81,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:85,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:86,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:90,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:91,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:95,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:96,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:100,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:101,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:103,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:107,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:108,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:109,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:110,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:111,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:112,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:114,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:115,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:116,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:117,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:118,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:119,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:121,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:122,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:123,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:124,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:125,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:126,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:133,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:134,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:135,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 72
    argCount: 5
    argNames:
    - out
    - digest
    - id
    - id_len
    - key
    argTypes:
    - uint8_t*
    - EVP_MD*
    - uint8_t*
    - size_t
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 137
    functionName: sm2_compute_z_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve
    - EC_GROUP_get0_generator
    - EVP_DigestFinal
    - EVP_MD_CTX_new
    - EVP_DigestInit
    - EC_KEY_get0_public_key
    - BN_num_bytes
    - OPENSSL_free
    - EC_POINT_get_affine_coordinates
    - EVP_DigestUpdate
    - SM2err
    - OPENSSL_zalloc
    - BN_CTX_get
    - BN_CTX_free
    - EVP_MD_CTX_free
    - BN_CTX_new
    - BN_bn2binpad
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: "int sm2_compute_z_digest(uint8_t *out,\n                         const
      EVP_MD *digest,\n                         const uint8_t *id,\n                         const
      size_t id_len,\n                         const EC_KEY *key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:145,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:146,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:151,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:155,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:157,1
    - Dst: sm2_compute_z_digest
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:161,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:166,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:167,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:168,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:170,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:171,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:175,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:177,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:180,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:181,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 6
    argNames:
    - digest
    - key
    - id
    - id_len
    - msg
    - msg_len
    argTypes:
    - EVP_MD*
    - EC_KEY*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 183
    functionName: sm2_compute_msg_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal
    - EVP_MD_CTX_new
    - EVP_DigestInit
    - OPENSSL_free
    - sm2_compute_z_digest
    - EVP_DigestUpdate
    - SM2err
    - OPENSSL_zalloc
    - BN_bin2bn
    - EVP_MD_CTX_free
    - EVP_MD_size
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *sm2_compute_msg_hash(const EVP_MD *digest,\n                                    const
      EC_KEY *key,\n                                    const uint8_t *id,\n                                    const
      size_t id_len,\n                                    const uint8_t *msg, size_t
      msg_len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:187,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:188,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:189,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:200,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:201,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:203,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:207,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:208,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:209,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:210,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:211,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:213,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:221,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:222,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:225,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:230,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:231,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:235,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:236,1
    - Dst: BN_mod_add
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:238,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:239,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:244,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:247,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:248,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:252,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:255,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:255,1
    - Dst: ec_group_do_inverse_ord
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:256,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:257,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:258,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:259,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:260,1
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:264,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:266,1
    - Dst: ECDSA_SIG_set0
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:271,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:277,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:278,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:281,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:282,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 68
    argCount: 2
    argNames:
    - key
    - e
    argTypes:
    - EC_KEY*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 284
    functionName: sm2_sig_gen
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - SM2err
    - EC_GROUP_get0_order
    - EC_POINT_mul
    - EC_POINT_get_affine_coordinates
    - BN_free
    - BN_sub
    - BN_mod_mul
    - ec_group_do_inverse_ord
    - BN_new
    - ECDSA_SIG_new
    - EC_KEY_get0_private_key
    - BN_mod_add
    - BN_CTX_get
    - BN_is_zero
    - BN_CTX_free
    - EC_KEY_get0_group
    - BN_add
    - ECDSA_SIG_set0
    - EC_POINT_free
    - BN_CTX_start
    - BN_priv_rand_range
    - EC_POINT_new
    - BN_value_one
    - BN_CTX_new
    linkageType: ''
    returnType: ECDSA_SIG
    signature: ECDSA_SIG *sm2_sig_gen(const EC_KEY *key, const BIGNUM *e)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:290,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:291,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:299,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:300,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:302,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:306,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:307,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:308,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:310,1
    - Dst: ECDSA_SIG_get0
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:324,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:326,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:326,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:327,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:327,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:328,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:329,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:330,1
    - Dst: BN_mod_add
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:334,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:335,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:339,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:340,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:344,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:344,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:345,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:346,1
    - Dst: BN_mod_add
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:350,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:351,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:355,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:359,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:360,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 3
    argNames:
    - key
    - sig
    - e
    argTypes:
    - EC_KEY*
    - ECDSA_SIG*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 362
    functionName: sm2_sig_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get0_order
    - ECDSA_SIG_get0
    - EC_POINT_mul
    - EC_KEY_get0_public_key
    - BN_cmp
    - EC_POINT_free
    - BN_CTX_start
    - EC_POINT_get_affine_coordinates
    - SM2err
    - EC_POINT_new
    - BN_CTX_get
    - BN_value_one
    - BN_mod_add
    - BN_CTX_new
    - BN_CTX_free
    - EC_KEY_get0_group
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int sm2_sig_verify(const EC_KEY *key, const ECDSA_SIG *sig,\n                          const
      BIGNUM *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sm2_compute_msg_hash
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:373,1
    - Dst: sm2_sig_gen
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:379,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - key
    - digest
    - id
    - id_len
    - msg
    - msg_len
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: sm2_do_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - sm2_compute_msg_hash
    - BN_free
    - sm2_sig_gen
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "ECDSA_SIG *sm2_do_sign(const EC_KEY *key,\n                       const
      EVP_MD *digest,\n                       const uint8_t *id,\n                       const
      size_t id_len,\n                       const uint8_t *msg, size_t msg_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sm2_compute_msg_hash
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:396,1
    - Dst: sm2_sig_verify
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:402,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - key
    - digest
    - sig
    - id
    - id_len
    - msg
    - msg_len
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - ECDSA_SIG*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 407
    functionName: sm2_do_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - sm2_compute_msg_hash
    - sm2_sig_verify
    - BN_free
    linkageType: ''
    returnType: int
    signature: "int sm2_do_verify(const EC_KEY *key,\n                  const EVP_MD
      *digest,\n                  const ECDSA_SIG *sig,\n                  const uint8_t
      *id,\n                  const size_t id_len,\n                  const uint8_t
      *msg, size_t msg_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:417,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:419,1
    - Dst: sm2_sig_gen
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:423,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:425,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:427,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:435,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - dgst
    - dgstlen
    - sig
    - siglen
    - eckey
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 438
    functionName: sm2_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - sm2_sig_gen
    - ECDSA_SIG_free
    - BN_bin2bn
    - i2d_ECDSA_SIG
    - SM2err
    - BN_free
    linkageType: ''
    returnType: int
    signature: "int sm2_sign(const unsigned char *dgst, int dgstlen,\n             unsigned
      char *sig, unsigned int *siglen, EC_KEY *eckey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:450,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:452,1
    - Dst: d2i_ECDSA_SIG
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:455,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:456,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:460,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:461,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:462,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:466,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:468,1
    - Dst: sm2_sig_verify
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:472,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:475,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:476,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c:477,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - dgst
    - dgstlen
    - sig
    - sig_len
    - eckey
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 479
    functionName: sm2_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - memcmp
    - OPENSSL_free
    - ECDSA_SIG_free
    - sm2_sig_verify
    - SM2err
    - i2d_ECDSA_SIG
    - BN_bin2bn
    - ECDSA_SIG_new
    - d2i_ECDSA_SIG
    - BN_free
    linkageType: ''
    returnType: int
    signature: "int sm2_verify(const unsigned char *dgst, int dgstlen,\n               const
      unsigned char *sig, int sig_len, EC_KEY *eckey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:36,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: pkey_sm2_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - SM2err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_sm2_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:50,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: pkey_sm2_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EC_GROUP_free
    linkageType: ''
    returnType: void
    signature: void pkey_sm2_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pkey_sm2_init
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:61,1
    - Dst: EC_GROUP_dup
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:66,1
    - Dst: pkey_sm2_cleanup
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:68,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:73,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:75,1
    - Dst: pkey_sm2_cleanup
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:76,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 86
    functionName: pkey_sm2_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - pkey_sm2_init
    - EC_GROUP_dup
    - memcpy
    - pkey_sm2_cleanup
    - SM2err
    linkageType: ''
    returnType: int
    signature: int pkey_sm2_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:94,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:106,1
    - Dst: sm2_sign
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 116
    functionName: pkey_sm2_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - ECDSA_size
    - sm2_sign
    - SM2err
    linkageType: ''
    returnType: int
    signature: "int pkey_sm2_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,\n
      \                        const unsigned char *tbs, size_t tbslen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sm2_verify
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: pkey_sm2_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - sm2_verify
    linkageType: ''
    returnType: int
    signature: "int pkey_sm2_verify(EVP_PKEY_CTX *ctx,\n                           const
      unsigned char *sig, size_t siglen,\n                           const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sm3
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:133,1
    - Dst: sm2_ciphertext_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:136,1
    - Dst: sm2_encrypt
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: pkey_sm2_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - sm2_ciphertext_size
    - EVP_sm3
    - sm2_encrypt
    linkageType: ''
    returnType: int
    signature: "int pkey_sm2_encrypt(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *out, size_t *outlen,\n                            const unsigned char
      *in, size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sm3
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:151,1
    - Dst: sm2_plaintext_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:154,1
    - Dst: sm2_decrypt
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 161
    functionName: pkey_sm2_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - sm2_decrypt
    - sm2_plaintext_size
    - EVP_sm3
    linkageType: ''
    returnType: int
    signature: "int pkey_sm2_decrypt(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *out, size_t *outlen,\n                            const unsigned char
      *in, size_t inlen)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:171,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:173,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:176,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:182,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:185,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:198,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:200,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:203,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:204,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:208,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 230
    functionName: pkey_sm2_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - EC_GROUP_new_by_curve_name
    - memcpy
    - SM2err
    - EC_GROUP_free
    - EC_GROUP_set_asn1_flag
    linkageType: ''
    returnType: int
    signature: int pkey_sm2_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:235,1
    - Dst: EC_curve_nist2nid
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:238,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:239,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:240,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:241,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:244,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:245,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:248,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:250,1
    - Dst: EVP_PKEY_CTX_set_ec_param_enc
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 258
    functionName: pkey_sm2_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OBJ_sn2nid
    - EC_curve_nist2nid
    - OBJ_ln2nid
    - SM2err
    - EVP_PKEY_CTX_set_ec_param_enc
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    linkageType: ''
    returnType: int
    signature: "int pkey_sm2_ctrl_str(EVP_PKEY_CTX *ctx,\n                             const
      char *type, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:265,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:266,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:274,1
    - Dst: SM2err
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:279,1
    - Dst: sm2_compute_z_digest
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:284,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 288
    functionName: pkey_sm2_digest_custom
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md
    - sm2_compute_z_digest
    - EVP_DigestUpdate
    - SM2err
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: int pkey_sm2_digest_custom(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pem_sign.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: PEM_SignInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_sign.c
    functionUses: 0
    functionsReached:
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pem_sign.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: PEM_SignUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_sign.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: int PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *data, unsigned int
      count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_sign.c:34,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/pem/pem_sign.c:34,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_sign.c:36,1
    - Dst: EVP_SignFinal
      Src: /src/openssl-1.1.1g/crypto/pem/pem_sign.c:40,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-1.1.1g/crypto/pem/pem_sign.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_sign.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - sigret
    - siglen
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: PEM_SignFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_sign.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - OPENSSL_malloc
    - EVP_EncodeBlock
    - OPENSSL_free
    - EVP_SignFinal
    - EVP_PKEY_size
    linkageType: ''
    returnType: int
    signature: "int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,\n                  unsigned
      int *siglen, EVP_PKEY *pkey)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio_secmem
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:35,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:40,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:42,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:45,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:47,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:50,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:51,1
    - Dst: d2i_X509_SIG
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:56,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:60,1
    - Dst: PEM_def_callback
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:62,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:64,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:65,1
    - Dst: PKCS8_decrypt
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:68,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:69,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:70,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:73,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:75,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:78,1
    - Dst: pem_check_suffix
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:79,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:81,1
    - Dst: d2i_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:84,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:88,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:90,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:91,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 93
    functionName: PEM_read_bio_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - cb
    - d2i_X509_SIG
    - OPENSSL_secure_clear_free
    - strcmp
    - X509_SIG_free
    - d2i_PrivateKey
    - PEM_bytes_read_bio_secmem
    - OPENSSL_secure_free
    - PEM_def_callback
    - PKCS8_PRIV_KEY_INFO_free
    - d2i_PKCS8_PRIV_KEY_INFO
    - EVP_PKEY_free
    - PKCS8_decrypt
    - EVP_PKEY_asn1_find_str
    - EVP_PKCS82PKEY
    - pem_check_suffix
    - OPENSSL_cleanse
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb
      *cb,\n                                  void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_bio_PKCS8PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:100,1
    - Dst: PEM_write_bio_PrivateKey_traditional
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - bp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: PEM_write_bio_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_PrivateKey_traditional
    - PEM_write_bio_PKCS8PrivateKey
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                             unsigned char *kstr, int klen,\n                             pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:111,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - bp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: PEM_write_bio_PrivateKey_traditional
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
    functionUses: 1
    functionsReached:
    - PEM_ASN1_write_bio
    - BIO_snprintf
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_PrivateKey_traditional(BIO *bp, EVP_PKEY *x,\n                                         const
      EVP_CIPHER *enc,\n                                         unsigned char *kstr,
      int klen,\n                                         pem_password_cb *cb, void
      *u)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:125,1
    - Dst: pem_check_suffix
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:130,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:131,1
    - Dst: EVP_PKEY_set_type_str
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:134,1
    - Dst: EVP_PKEY*::ameth::param_decode
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:136,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:137,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:142,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:148,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:150,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 152
    functionName: PEM_read_bio_Parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_set_type_str
    - PEMerr
    - OPENSSL_free
    - EVP_PKEY*::ameth::param_decode
    - PEM_bytes_read_bio
    - EVP_PKEY_new
    - EVP_PKEY_free
    - pem_check_suffix
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:160,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: PEM_write_bio_Parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEM_ASN1_write_bio
    - BIO_snprintf
    linkageType: ''
    returnType: int
    signature: int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:172,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:172,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:173,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:176,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:177,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 180
    functionName: PEM_read_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_s_file
    - PEM_read_bio_PrivateKey
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, pem_password_cb
      *cb,\n                              void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:189,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:190,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:193,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - fp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: PEM_write_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_new_fp
    - PEM_write_bio_PrivateKey
    - BIO_free
    linkageType: ''
    returnType: int
    signature: "int PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,\n
      \                        unsigned char *kstr, int klen,\n                         pem_password_cb
      *cb, void *u)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:212,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:216,1
    - Dst: d2i_DHxparams
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:217,1
    - Dst: d2i_DHparams
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:219,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:222,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - DH**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 226
    functionName: PEM_read_bio_DHparams
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - d2i_DHxparams
    - d2i_DHparams
    - strcmp
    - OPENSSL_free
    - PEM_bytes_read_bio
    linkageType: ''
    returnType: DH
    signature: DH *PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void
      *u)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:234,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:234,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:235,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:238,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:239,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - DH**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 242
    functionName: PEM_read_DHparams
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - PEM_read_bio_DHparams
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: DH
    signature: DH *PEM_read_DHparams(FILE *fp, DH **x, pem_password_cb *cb, void *u)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:52,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:53,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - rsa
    argTypes:
    - EVP_PKEY*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: pkey_get_rsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_get1_RSA
    - RSA_free
    linkageType: ''
    returnType: RSA
    signature: RSA *pkey_get_rsa(EVP_PKEY *key, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:67,1
    - Dst: pkey_get_rsa
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bp
    - rsa
    - cb
    - u
    argTypes:
    - BIO*
    - RSA**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: PEM_read_bio_RSAPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - pkey_get_rsa
    - PEM_read_bio_PrivateKey
    linkageType: ''
    returnType: RSA
    signature: "RSA *PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **rsa, pem_password_cb
      *cb,\n                                void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:76,1
    - Dst: pkey_get_rsa
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - rsa
    - cb
    - u
    argTypes:
    - FILE*
    - RSA**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: PEM_read_RSAPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - pkey_get_rsa
    - PEM_read_PrivateKey
    linkageType: ''
    returnType: RSA
    signature: RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **rsa, pem_password_cb *cb,
      void *u)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_DSA
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:96,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:97,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - dsa
    argTypes:
    - EVP_PKEY*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: pkey_get_dsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - DSA_free
    - EVP_PKEY_get1_DSA
    linkageType: ''
    returnType: DSA
    signature: DSA *pkey_get_dsa(EVP_PKEY *key, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:111,1
    - Dst: pkey_get_dsa
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bp
    - dsa
    - cb
    - u
    argTypes:
    - BIO*
    - DSA**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: PEM_read_bio_DSAPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - pkey_get_dsa
    - PEM_read_bio_PrivateKey
    linkageType: ''
    returnType: DSA
    signature: "DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **dsa, pem_password_cb
      *cb,\n                                void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:122,1
    - Dst: pkey_get_dsa
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - dsa
    - cb
    - u
    argTypes:
    - FILE*
    - DSA**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: PEM_read_DSAPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - pkey_get_dsa
    - PEM_read_PrivateKey
    linkageType: ''
    returnType: DSA
    signature: DSA *PEM_read_DSAPrivateKey(FILE *fp, DSA **dsa, pem_password_cb *cb,
      void *u)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:136,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:137,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - eckey
    argTypes:
    - EVP_PKEY*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: pkey_get_eckey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get1_EC_KEY
    - EVP_PKEY_free
    - EC_KEY_free
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *pkey_get_eckey(EVP_PKEY *key, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:151,1
    - Dst: pkey_get_eckey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bp
    - key
    - cb
    - u
    argTypes:
    - BIO*
    - EC_KEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: PEM_read_bio_ECPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - pkey_get_eckey
    - PEM_read_bio_PrivateKey
    linkageType: ''
    returnType: EC_KEY
    signature: "EC_KEY *PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **key, pem_password_cb
      *cb,\n                                  void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:167,1
    - Dst: pkey_get_eckey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_all.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - eckey
    - cb
    - u
    argTypes:
    - FILE*
    - EC_KEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: PEM_read_ECPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - pkey_get_eckey
    - PEM_read_PrivateKey
    linkageType: ''
    returnType: EC_KEY
    signature: "EC_KEY *PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb
      *cb,\n                              void *u)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_oth.c:28,1
    - Dst: d2i
      Src: /src/openssl-1.1.1g/crypto/pem/pem_oth.c:31,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_oth.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_oth.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - d2i
    - name
    - bp
    - x
    - cb
    - u
    argTypes:
    - d2i_of_void*
    - char*
    - BIO*
    - void**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: PEM_ASN1_read_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_oth.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - OPENSSL_free
    - d2i
    - PEM_bytes_read_bio
    linkageType: ''
    returnType: void
    signature: "void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp,
      void **x,\n                        pem_password_cb *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - bp
    - x
    - nid
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: PEM_write_bio_PKCS8PrivateKey_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid,\n
      \                                     char *kstr, int klen,\n                                      pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - bp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: PEM_write_bio_PKCS8PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 1
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_PKCS8PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                                  char *kstr, int klen,\n                                  pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - bp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: i2d_PKCS8PrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                            char *kstr, int klen,\n                            pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - bp
    - x
    - nid
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: i2d_PKCS8PrivateKey_nid_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid,\n                                char
      *kstr, int klen,\n                                pem_password_cb *cb, void
      *u)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:72,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:73,1
    - Dst: PEM_def_callback
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:79,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:81,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:83,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:84,1
    - Dst: PKCS8_encrypt
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:90,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:92,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:93,1
    - Dst: i2d_PKCS8_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:97,1
    - Dst: PEM_write_bio_PKCS8
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:99,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:100,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:104,1
    - Dst: PEM_write_bio_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:106,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:107,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 9
    argNames:
    - bp
    - x
    - isder
    - nid
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - int
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 110
    functionName: do_pk8pkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 4
    functionsReached:
    - PEMerr
    - cb
    - EVP_PKEY2PKCS8
    - PKCS8_encrypt
    - PEM_write_bio_PKCS8
    - i2d_PKCS8_bio
    - X509_SIG_free
    - i2d_PKCS8_PRIV_KEY_INFO_bio
    - PEM_def_callback
    - PKCS8_PRIV_KEY_INFO_free
    - PEM_write_bio_PKCS8_PRIV_KEY_INFO
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int do_pk8pkey(BIO *bp, EVP_PKEY *x, int isder, int nid,\n                      const
      EVP_CIPHER *enc, char *kstr, int klen,\n                      pem_password_cb
      *cb, void *u)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PKCS8_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:120,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:124,1
    - Dst: PEM_def_callback
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:126,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:128,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:129,1
    - Dst: PKCS8_decrypt
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:132,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:133,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:134,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:137,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:138,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 146
    functionName: d2i_PKCS8PrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - cb
    - EVP_PKEY_free
    - X509_SIG_free
    - PEM_def_callback
    - PKCS8_PRIV_KEY_INFO_free
    - d2i_PKCS8_bio
    - PKCS8_decrypt
    - EVP_PKCS82PKEY
    - OPENSSL_cleanse
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb
      *cb,\n                                  void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: i2d_PKCS8PrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                           char *kstr, int klen, pem_password_cb *cb,
      void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fp
    - x
    - nid
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: i2d_PKCS8PrivateKey_nid_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid,\n                               char
      *kstr, int klen,\n                               pem_password_cb *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fp
    - x
    - nid
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: PEM_write_PKCS8PrivateKey_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid,\n
      \                                 char *kstr, int klen,\n                                  pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: PEM_write_PKCS8PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                              char *kstr, int klen, pem_password_cb *cb,\n
      \                             void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:184,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:185,1
    - Dst: do_pk8pkey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:188,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 9
    argNames:
    - fp
    - x
    - isder
    - nid
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - int
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 191
    functionName: do_pk8pkey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 4
    functionsReached:
    - do_pk8pkey
    - PEMerr
    - BIO_new_fp
    - BIO_free
    linkageType: ''
    returnType: int
    signature: "int do_pk8pkey_fp(FILE *fp, EVP_PKEY *x, int isder, int nid,\n                         const
      EVP_CIPHER *enc, char *kstr, int klen,\n                         pem_password_cb
      *cb, void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:199,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:200,1
    - Dst: d2i_PKCS8PrivateKey_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:203,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: d2i_PKCS8PrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_new_fp
    - d2i_PKCS8PrivateKey_bio
    - BIO_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb
      *cb,\n                                 void *u)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:258,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:258,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:264,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:264,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:266,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:279,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:293,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:293,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:295,1
    - Dst: PEM_proc_type
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:302,1
    - Dst: PEM_dek_info
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:303,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:303,1
    - Dst: PEM_write_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:307,1
    - Dst: PEM_write_bio_RSAPrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:314,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:315,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:323,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_info.c:335,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 7
    argNames:
    - bp
    - xi
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - X509_INFO*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 337
    functionName: PEM_X509_INFO_write_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_info.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - OBJ_nid2sn
    - PEM_write_bio_RSAPrivateKey
    - PEM_write_bio
    - EVP_CIPHER_nid
    - PEM_write_bio_X509
    - PEM_proc_type
    - EVP_PKEY_get0_RSA
    - PEM_dek_info
    - EVP_CIPHER_iv_length
    - strlen
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc,\n
      \                           unsigned char *kstr, int klen,\n                            pem_password_cb
      *cb, void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/pem/pem_err.c:120,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/pem/pem_err.c:121,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/pem/pem_err.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: ERR_load_PEM_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_PEM_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: read_ledword
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int read_ledword(const unsigned char **in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_lebin2bn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - in
    - nbyte
    - r
    argTypes:
    - unsigned char**
    - unsigned int
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: read_lebn
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - BN_lebin2bn
    linkageType: ''
    returnType: int
    signature: int read_lebn(const unsigned char **in, unsigned int nbyte, BIGNUM
      **r)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:96,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:102,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:111,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:116,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:117,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:126,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:136,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:142,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 6
    argNames:
    - in
    - length
    - pmagic
    - pbitlen
    - pisdss
    - pispub
    argTypes:
    - unsigned char**
    - unsigned int
    - unsigned int*
    - unsigned int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 147
    functionName: do_blob_header
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - read_ledword
    - PEMerr
    linkageType: ''
    returnType: int
    signature: "int do_blob_header(const unsigned char **in, unsigned int length,\n
      \                         unsigned int *pmagic, unsigned int *pbitlen,\n                          int
      *pisdss, int *pispub)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - bitlen
    - isdss
    - ispub
    argTypes:
    - unsigned
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 180
    functionName: blob_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int blob_length(unsigned bitlen, int isdss, int ispub)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: do_blob_header
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:188,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:189,1
    - Dst: blob_length
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:193,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:194,1
    - Dst: b2i_dss
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:198,1
    - Dst: b2i_rsa
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - in
    - length
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 201
    functionName: do_b2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - b2i_dss
    - blob_length
    - b2i_rsa
    - do_blob_header
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *do_b2i(const unsigned char **in, unsigned int length,\n
      \                       int ispub)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:210,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:211,1
    - Dst: do_blob_header
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:215,1
    - Dst: blob_length
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:218,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:220,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:223,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:225,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:229,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:230,1
    - Dst: b2i_dss
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:235,1
    - Dst: b2i_rsa
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:237,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - in
    - ispub
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 242
    functionName: do_b2i_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - OPENSSL_malloc
    - b2i_dss
    - blob_length
    - OPENSSL_free
    - b2i_rsa
    - do_blob_header
    - BIO_read
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *do_b2i_bio(BIO *in, int ispub)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:257,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:258,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:261,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:264,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:267,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:271,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:274,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:278,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:281,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:284,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:287,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:290,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:293,1
    - Dst: DSA_set0_key
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:296,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:300,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:302,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:307,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:308,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:309,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:310,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:311,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:312,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:313,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:314,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:315,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 3
    argNames:
    - in
    - bitlen
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 317
    functionName: b2i_dss
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 2
    functionsReached:
    - PEMerr
    - DSA_set0_pqg
    - BN_set_flags
    - EVP_PKEY_free
    - DSA_new
    - BN_new
    - read_lebn
    - EVP_PKEY_set1_DSA
    - BN_CTX_free
    - DSA_set0_key
    - BN_mod_exp
    - BN_free
    - EVP_PKEY_new
    - BN_CTX_new
    - DSA_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *b2i_dss(const unsigned char **in,\n                         unsigned
      int bitlen, int ispub)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:330,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:331,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:334,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:337,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:337,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:339,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:342,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:344,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:346,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:348,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:350,1
    - Dst: read_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:352,1
    - Dst: RSA_set0_factors
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:354,1
    - Dst: RSA_set0_crt_params
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:357,1
    - Dst: RSA_set0_key
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:361,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:365,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:367,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:371,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:372,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:373,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:374,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:375,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:376,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:377,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:378,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:379,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:380,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:381,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 70
    argCount: 3
    argNames:
    - in
    - bitlen
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 383
    functionName: b2i_rsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 2
    functionsReached:
    - PEMerr
    - EVP_PKEY_free
    - read_ledword
    - BN_new
    - RSA_set0_crt_params
    - RSA_set0_factors
    - RSA_set0_key
    - read_lebn
    - BN_free
    - EVP_PKEY_set1_RSA
    - BN_set_word
    - EVP_PKEY_new
    - RSA_new
    - RSA_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *b2i_rsa(const unsigned char **in,\n                         unsigned
      int bitlen, int ispub)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_b2i
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: b2i_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_b2i
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_b2i
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: b2i_PublicKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_b2i
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_b2i_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: b2i_PrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_b2i_bio
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PrivateKey_bio(BIO *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_b2i_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: b2i_PublicKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_b2i_bio
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PublicKey_bio(BIO *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - dw
    argTypes:
    - unsigned char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 413
    functionName: write_ledword
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_ledword(unsigned char **out, unsigned int dw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - bn
    - len
    argTypes:
    - unsigned char**
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: write_lebn
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - BN_bn2lebinpad
    linkageType: ''
    returnType: void
    signature: void write_lebn(unsigned char **out, const BIGNUM *bn, int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:432,1
    - Dst: check_bitlen_dsa
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:434,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:434,1
    - Dst: check_bitlen_rsa
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:437,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:437,1
    - Dst: blob_length
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:443,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:450,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:451,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:464,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:465,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:466,1
    - Dst: write_dsa
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:468,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:468,1
    - Dst: write_rsa
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:470,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:470,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - out
    - pk
    - ispub
    argTypes:
    - unsigned char**
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 474
    functionName: do_i2b
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - OPENSSL_malloc
    - blob_length
    - EVP_PKEY_get0_DSA
    - check_bitlen_rsa
    - write_rsa
    - EVP_PKEY_id
    - write_dsa
    - check_bitlen_dsa
    - EVP_PKEY_get0_RSA
    - write_ledword
    linkageType: ''
    returnType: int
    signature: int do_i2b(unsigned char **out, EVP_PKEY *pk, int ispub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:480,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:483,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - out
    - pk
    - ispub
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 488
    functionName: do_i2b_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - do_i2b
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int do_i2b_bio(BIO *out, EVP_PKEY *pk, int ispub)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get0_pqg
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:496,1
    - Dst: DSA_get0_key
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:497,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:498,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:499,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:500,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:503,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:507,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:514,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - dsa
    - ispub
    - pmagic
    argTypes:
    - DSA*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 516
    functionName: check_bitlen_dsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - BN_num_bits
    - DSA_get0_pqg
    - PEMerr
    - DSA_get0_key
    linkageType: ''
    returnType: int
    signature: int check_bitlen_dsa(DSA *dsa, int ispub, unsigned int *pmagic)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get0_key
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:523,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:524,1
    - Dst: RSA_bits
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:526,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:527,1
    - Dst: RSA_get0_key
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:540,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:541,1
    - Dst: RSA_get0_factors
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:543,1
    - Dst: RSA_get0_crt_params
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:544,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:545,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:546,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:547,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:548,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:549,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:554,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - rsa
    - ispub
    - pmagic
    argTypes:
    - RSA*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 556
    functionName: check_bitlen_rsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - PEMerr
    - RSA_size
    - BN_num_bytes
    - RSA_get0_key
    - BN_num_bits
    - RSA_get0_factors
    - RSA_bits
    - RSA_get0_crt_params
    linkageType: ''
    returnType: int
    signature: int check_bitlen_rsa(RSA *rsa, int ispub, unsigned int *pmagic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:563,1
    - Dst: RSA_bits
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:564,1
    - Dst: RSA_get0_key
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:565,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:566,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:567,1
    - Dst: RSA_get0_factors
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:570,1
    - Dst: RSA_get0_crt_params
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:571,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:572,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:573,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:574,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:575,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:576,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - out
    - rsa
    - ispub
    argTypes:
    - unsigned char**
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 578
    functionName: write_rsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - RSA_size
    - RSA_get0_key
    - RSA_get0_factors
    - write_lebn
    - RSA_bits
    - RSA_get0_crt_params
    linkageType: ''
    returnType: void
    signature: void write_rsa(unsigned char **out, RSA *rsa, int ispub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get0_pqg
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:586,1
    - Dst: DSA_get0_key
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:587,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:588,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:589,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:590,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:591,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:593,1
    - Dst: write_lebn
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:595,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - out
    - dsa
    - ispub
    argTypes:
    - unsigned char**
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 600
    functionName: write_dsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - BN_num_bytes
    - memset
    - DSA_get0_key
    - DSA_get0_pqg
    - write_lebn
    linkageType: ''
    returnType: void
    signature: void write_dsa(unsigned char **out, DSA *dsa, int ispub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pk
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: i2b_PrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_i2b_bio
    linkageType: ''
    returnType: int
    signature: int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pk
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: i2b_PublicKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_i2b_bio
    linkageType: ''
    returnType: int
    signature: int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:622,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:627,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:630,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:632,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:640,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:641,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:642,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:643,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:649,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - in
    - length
    - skip_magic
    - psaltlen
    - pkeylen
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 655
    functionName: do_PVK_header
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - read_ledword
    - PEMerr
    linkageType: ''
    returnType: int
    signature: "int do_PVK_header(const unsigned char **in, unsigned int length,\n
      \                        int skip_magic,\n                         unsigned
      int *psaltlen, unsigned int *pkeylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:661,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:664,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:664,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:665,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:666,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:667,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:670,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 5
    argNames:
    - key
    - salt
    - saltlen
    - pass
    - passlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 672
    functionName: derive_pvk_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - EVP_sha1
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int derive_pvk_key(unsigned char *key,\n                          const
      unsigned char *salt, unsigned int saltlen,\n                          const
      unsigned char *pass, int passlen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:684,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:689,1
    - Dst: PEM_def_callback
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:691,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:693,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:696,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:698,1
    - Dst: derive_pvk_key
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:701,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:706,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:709,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:714,1
    - Dst: EVP_rc4
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:714,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:716,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:718,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:720,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:723,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:724,1
    - Dst: EVP_rc4
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:724,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:726,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:728,1
    - Dst: read_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:730,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:732,1
    - Dst: b2i_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:739,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:741,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:743,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:744,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 5
    argNames:
    - in
    - saltlen
    - keylen
    - cb
    - u
    argTypes:
    - unsigned char**
    - unsigned int
    - unsigned int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 674
    functionDepth: 4
    functionLinenumber: 674
    functionLinenumberEnd: 747
    functionName: do_PVK_body
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - OPENSSL_malloc
    - cb
    - b2i_PrivateKey
    - read_ledword
    - EVP_rc4
    - OPENSSL_free
    - derive_pvk_key
    - memcpy
    - EVP_DecryptUpdate
    - EVP_CIPHER_CTX_new
    - memset
    - PEM_def_callback
    - EVP_DecryptInit_ex
    - EVP_DecryptFinal_ex
    - EVP_CIPHER_CTX_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *do_PVK_body(const unsigned char **in,\n                             unsigned
      int saltlen, unsigned int keylen,\n                             pem_password_cb
      *cb, void *u)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:756,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:757,1
    - Dst: do_PVK_header
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:762,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:765,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:767,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:771,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:772,1
    - Dst: do_PVK_body
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:775,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:778,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - in
    - cb
    - u
    argTypes:
    - BIO*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 749
    functionDepth: 5
    functionLinenumber: 749
    functionLinenumberEnd: 780
    functionName: b2i_PVK_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - OPENSSL_malloc
    - OPENSSL_clear_free
    - do_PVK_header
    - do_PVK_body
    - BIO_read
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:790,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:799,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:801,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:806,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:810,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:811,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:812,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:813,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:815,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:816,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:817,1
    - Dst: write_ledword
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:818,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:820,1
    - Dst: do_i2b
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:825,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:831,1
    - Dst: PEM_def_callback
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:833,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:835,1
    - Dst: derive_pvk_key
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:838,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:842,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:844,1
    - Dst: EVP_rc4
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:844,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:846,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:847,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:849,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:853,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:861,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:863,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 5
    argNames:
    - out
    - pk
    - enclevel
    - cb
    - u
    argTypes:
    - unsigned char**
    - EVP_PKEY*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 865
    functionName: i2b_PVK
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - OPENSSL_malloc
    - do_i2b
    - cb
    - EVP_EncryptFinal_ex
    - RAND_bytes
    - EVP_rc4
    - derive_pvk_key
    - OPENSSL_free
    - EVP_EncryptUpdate
    - EVP_PKEY_id
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - memset
    - PEM_def_callback
    - write_ledword
    - EVP_CIPHER_CTX_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int i2b_PVK(unsigned char **out, EVP_PKEY *pk, int enclevel,\n                   pem_password_cb
      *cb, void *u)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2b_PVK
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:872,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:875,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:876,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - out
    - pk
    - enclevel
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 882
    functionName: i2b_PVK_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - i2b_PVK
    - BIO_write
    - PEMerr
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel,\n                pem_password_cb
      *cb, void *u)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:38,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:40,1
    - Dst: EVP_get_pw_prompt
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:44,1
    - Dst: EVP_read_pw_string_min
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:57,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:59,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:60,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - buf
    - num
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 64
    functionName: PEM_def_callback
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 5
    functionsReached:
    - PEMerr
    - memcpy
    - EVP_get_pw_prompt
    - memset
    - EVP_read_pw_string_min
    - strlen
    linkageType: ''
    returnType: int
    signature: int PEM_def_callback(char *buf, int num, int rwflag, void *userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:69,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: PEM_proc_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void PEM_proc_type(char *buf, int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:86,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:89,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:94,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - buf
    - type
    - len
    - str
    argTypes:
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: PEM_dek_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - strcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: void PEM_dek_info(char *buf, const char *type, int len, char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:112,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:112,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:113,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:116,1
    - Dst: PEM_ASN1_read_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:117,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - d2i
    - name
    - fp
    - x
    - cb
    - u
    argTypes:
    - d2i_of_void*
    - char*
    - FILE*
    - void**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: PEM_ASN1_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_s_file
    - BIO_free
    - PEM_ASN1_read_bio
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: void
    signature: "void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp,
      void **x,\n                    pem_password_cb *cb, void *u)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:126,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:131,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:134,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:136,1
    - Dst: pem_check_suffix
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:138,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:144,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:151,1
    - Dst: pem_check_suffix
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:154,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:157,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:165,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:173,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:174,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:179,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:180,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:183,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:184,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:188,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:189,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:192,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:193,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:197,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:198,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:201,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:202,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:206,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:207,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:210,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:211,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 49
    argCount: 2
    argNames:
    - nm
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 216
    functionName: check_pem
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ENGINE_finish
    - EVP_PKEY_asn1_find_str
    - pem_check_suffix
    linkageType: ''
    returnType: int
    signature: int check_pem(const char *nm, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:221,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - flags
    - num
    argTypes:
    - void*
    - unsigned int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: pem_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void pem_free(void *p, unsigned int flags, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:228,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num
    - flags
    argTypes:
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: pem_malloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_secure_malloc
    linkageType: ''
    returnType: void
    signature: void *pem_malloc(int num, unsigned int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:244,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:245,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:246,1
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:247,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:248,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:248,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:249,1
    - Dst: check_pem
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:252,1
    - Dst: PEM_get_EVP_CIPHER_INFO
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:253,1
    - Dst: PEM_do_header
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:255,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:268,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:269,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:271,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 8
    argNames:
    - pdata
    - plen
    - pnm
    - name
    - bp
    - cb
    - u
    - flags
    argTypes:
    - unsigned char**
    - long*
    - char**
    - char*
    - BIO*
    - pem_password_cb*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 273
    functionName: pem_bytes_read_bio_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - check_pem
    - ERR_peek_error
    - PEM_do_header
    - PEM_read_bio_ex
    - pem_free
    - ERR_add_error_data
    - PEM_get_EVP_CIPHER_INFO
    - ERR_GET_REASON
    linkageType: ''
    returnType: int
    signature: "int pem_bytes_read_bio_flags(unsigned char **pdata, long *plen,\n
      \                                   char **pnm, const char *name, BIO *bp,\n
      \                                   pem_password_cb *cb, void *u,\n                                    unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pem_bytes_read_bio_flags
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pdata
    - plen
    - pnm
    - name
    - bp
    - cb
    - u
    argTypes:
    - unsigned char**
    - long*
    - char**
    - char*
    - BIO*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: PEM_bytes_read_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - pem_bytes_read_bio_flags
    linkageType: ''
    returnType: int
    signature: "int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm,\n
      \                      const char *name, BIO *bp, pem_password_cb *cb,\n                       void
      *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pem_bytes_read_bio_flags
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pdata
    - plen
    - pnm
    - name
    - bp
    - cb
    - u
    argTypes:
    - unsigned char**
    - long*
    - char**
    - char*
    - BIO*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: PEM_bytes_read_bio_secmem
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - pem_bytes_read_bio_flags
    linkageType: ''
    returnType: int
    signature: "int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char
      **pnm,\n                              const char *name, BIO *bp, pem_password_cb
      *cb,\n                              void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:297,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:297,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:298,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:301,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:302,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - i2d
    - name
    - fp
    - x
    - enc
    - kstr
    - klen
    - callback
    - u
    argTypes:
    - i2d_of_void*
    - char*
    - FILE*
    - void*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: PEM_ASN1_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_s_file
    - BIO_free
    - PEM_ASN1_write_bio
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp,\n
      \                  void *x, const EVP_CIPHER *enc, unsigned char *kstr,\n                   int
      klen, pem_password_cb *callback, void *u)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:321,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:321,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:322,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:323,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:328,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:328,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:330,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:335,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:336,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:342,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:344,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:348,1
    - Dst: PEM_def_callback
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:353,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:357,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:362,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:366,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:366,1
    - Dst: EVP_BytesToKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:372,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:372,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:376,1
    - Dst: PEM_proc_type
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:379,1
    - Dst: PEM_dek_info
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:380,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:380,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:384,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:385,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:386,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:387,1
    - Dst: PEM_write_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:396,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:400,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:401,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:402,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:403,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:404,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 69
    argCount: 9
    argNames:
    - i2d
    - name
    - bp
    - x
    - enc
    - kstr
    - klen
    - callback
    - u
    argTypes:
    - i2d_of_void*
    - char*
    - BIO*
    - void*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 406
    functionName: PEM_ASN1_write_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - PEM_write_bio
    - OPENSSL_cleanse
    - OPENSSL_malloc
    - RAND_bytes
    - i2d
    - PEM_def_callback
    - PEM_dek_info
    - OBJ_nid2sn
    - EVP_EncryptFinal_ex
    - ebcdic2ascii
    - EVP_CIPHER_nid
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_new
    - OPENSSL_clear_free
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_CTX_free
    - PEMerr
    - EVP_md5
    - EVP_EncryptInit_ex
    - PEM_proc_type
    - EVP_BytesToKey
    - strlen
    linkageType: ''
    returnType: int
    signature: "int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,\n
      \                      void *x, const EVP_CIPHER *enc, unsigned char *kstr,\n
      \                      int klen, pem_password_cb *callback, void *u)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:422,1
    - Dst: PEM_def_callback
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:430,1
    - Dst: callback
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:432,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:434,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:439,1
    - Dst: EVP_BytesToKey
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:442,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:442,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:446,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:450,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:452,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:456,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:461,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:463,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:464,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:465,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - cipher
    - data
    - plen
    - callback
    - u
    argTypes:
    - EVP_CIPHER_INFO*
    - unsigned char*
    - long*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 467
    functionName: PEM_do_header
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - PEMerr
    - ebcdic2ascii
    - EVP_DecryptUpdate
    - EVP_md5
    - callback
    - EVP_CIPHER_CTX_new
    - PEM_def_callback
    - EVP_BytesToKey
    - EVP_DecryptInit_ex
    - EVP_DecryptFinal_ex
    - EVP_CIPHER_CTX_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long
      *plen,\n                  pem_password_cb *callback, void *u)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:491,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:495,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:496,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:500,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:504,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:507,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:508,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:509,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:513,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:515,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:523,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:524,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:528,1
    - Dst: strcspn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:535,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:538,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:540,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:543,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:546,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:548,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:551,1
    - Dst: load_iv
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:555,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:555,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - header
    - cipher
    argTypes:
    - char*
    - EVP_CIPHER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 559
    functionName: PEM_get_EVP_CIPHER_INFO
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - PEMerr
    - strspn
    - EVP_get_cipherbyname
    - strcspn
    - memset
    - load_iv
    - strncmp
    - EVP_CIPHER_iv_length
    linkageType: ''
    returnType: int
    signature: int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:571,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - fromp
    - to
    - num
    argTypes:
    - char**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 582
    functionName: load_iv
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - PEMerr
    - OPENSSL_hexchar2int
    linkageType: ''
    returnType: int
    signature: int load_iv(char **fromp, unsigned char *to, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:591,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:591,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:592,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:595,1
    - Dst: PEM_write_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:596,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - fp
    - name
    - header
    - data
    - len
    argTypes:
    - FILE*
    - char*
    - char*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 599
    functionName: PEM_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - PEM_write_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int PEM_write(FILE *fp, const char *name, const char *header,\n              const
      unsigned char *data, long len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:607,1
    - Dst: EVP_EncodeInit
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:616,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:617,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:619,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:620,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:621,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:624,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:626,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:626,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:630,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:639,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:641,1
    - Dst: EVP_EncodeFinal
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:647,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:648,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:650,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:651,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:652,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:658,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:659,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:660,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 51
    argCount: 5
    argNames:
    - bp
    - name
    - header
    - data
    - len
    argTypes:
    - BIO*
    - char*
    - char*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 662
    functionName: PEM_write_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - PEMerr
    - OPENSSL_malloc
    - BIO_write
    - EVP_EncodeInit
    - EVP_EncodeUpdate
    - EVP_EncodeFinal
    - EVP_ENCODE_CTX_free
    - EVP_ENCODE_CTX_new
    - OPENSSL_clear_free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio(BIO *bp, const char *name, const char *header,\n
      \                 const unsigned char *data, long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:671,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:671,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:672,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:675,1
    - Dst: PEM_read_bio
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:676,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - fp
    - name
    - header
    - data
    - len
    argTypes:
    - FILE*
    - char**
    - char**
    - unsigned char**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 679
    functionName: PEM_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - PEM_read_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int PEM_read(FILE *fp, char **name, char **header, unsigned char **data,\n
      \            long *len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isbase64
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:695,1
    - Dst: ossl_iscntrl
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:706,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 3
    argNames:
    - linebuf
    - len
    - flags
    argTypes:
    - char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 715
    functionName: sanitize_line
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - ossl_isbase64
    - ossl_iscntrl
    linkageType: ''
    returnType: int
    signature: int sanitize_line(char *linebuf, int len, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pem_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:735,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:737,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:742,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:745,1
    - Dst: sanitize_line
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:750,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:753,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:755,1
    - Dst: pem_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:758,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:760,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:763,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:767,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - bp
    - name
    - flags
    argTypes:
    - BIO*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 769
    functionName: get_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - pem_free
    - memcpy
    - pem_malloc
    - BIO_gets
    - strncmp
    - sanitize_line
    linkageType: ''
    returnType: int
    signature: int get_name(BIO *bp, char **name, unsigned int flags)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pem_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:802,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:804,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:810,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:812,1
    - Dst: memchr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:817,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:820,1
    - Dst: sanitize_line
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:822,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:828,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:837,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:839,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:840,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:841,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:842,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:852,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:859,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:875,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 5
    argNames:
    - bp
    - header
    - data
    - name
    - flags
    argTypes:
    - BIO*
    - BIO**
    - BIO**
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 877
    functionName: get_header_and_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - pem_free
    - memchr
    - BIO_puts
    - pem_malloc
    - BIO_gets
    - strncmp
    - sanitize_line
    - strlen
    linkageType: ''
    returnType: int
    signature: "int get_header_and_data(BIO *bp, BIO **header, BIO **data, char *name,\n
      \                              unsigned int flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:888,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:896,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:905,1
    - Dst: BIO_s_secmem
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:908,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:908,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:910,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:911,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:913,1
    - Dst: get_name
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:917,1
    - Dst: get_header_and_data
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:919,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:922,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:923,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:925,1
    - Dst: EVP_DecodeFinal
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:927,1
    - Dst: PEMerr
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:929,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:938,1
    - Dst: pem_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:939,1
    - Dst: pem_malloc
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:940,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:942,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:943,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:946,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:948,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:955,1
    - Dst: pem_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:956,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:957,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:958,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 6
    argNames:
    - bp
    - name_out
    - header
    - data
    - len_out
    - flags
    argTypes:
    - BIO*
    - char**
    - char**
    - unsigned char**
    - long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 885
    functionDepth: 3
    functionLinenumber: 885
    functionLinenumberEnd: 960
    functionName: PEM_read_bio_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - BIO_get_mem_data
    - PEMerr
    - BIO_read
    - get_name
    - EVP_DecodeUpdate
    - pem_free
    - BIO_s_mem
    - get_header_and_data
    - EVP_DecodeInit
    - BIO_s_secmem
    - EVP_ENCODE_CTX_new
    - BIO_get_mem_ptr
    - pem_malloc
    - EVP_ENCODE_CTX_free
    - BIO_free
    - EVP_DecodeFinal
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int PEM_read_bio_ex(BIO *bp, char **name_out, char **header,\n                    unsigned
      char **data, long *len_out, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bp
    - name
    - header
    - data
    - len
    argTypes:
    - BIO*
    - char**
    - char**
    - unsigned char**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 962
    functionDepth: 4
    functionLinenumber: 962
    functionLinenumberEnd: 966
    functionName: PEM_read_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - PEM_read_bio_ex
    linkageType: ''
    returnType: int
    signature: "int PEM_read_bio(BIO *bp, char **name, char **header, unsigned char
      **data,\n                 long *len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:976,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:977,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/pem/pem_lib.c:982,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pem_str
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 988
    functionName: pem_check_suffix
    functionSourceFile: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - strcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int pem_check_suffix(const char *pem_str, const char *suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: prefetch256
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prefetch256(const void *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: GETU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: U64
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: U64
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: U64
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:496,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:497,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:498,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:499,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:518,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:519,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:540,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:541,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 571
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 1
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: "int AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:585,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:620,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:621,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 652
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 1
    functionsReached:
    - AES_set_encrypt_key
    - ROTATE
    linkageType: ''
    returnType: int
    signature: "int AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:666,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:673,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:674,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:675,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:676,1
    - Dst: prefetch256
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:679,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:708,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:708,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:709,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:709,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:775,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:775,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:776,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:776,1
    - Dst: prefetch256
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:814,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 61
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    constantsTouched: []
    func_position:
      end: 866
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 866
    functionName: AES_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached:
    - GETU32
    - ROTATE
    - prefetch256
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_encrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:880,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:887,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:888,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:889,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:890,1
    - Dst: prefetch256
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:893,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:933,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:934,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:934,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:1010,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:1011,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:1011,1
    - Dst: prefetch256
      Src: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 73
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 879
        line_start: 879
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    constantsTouched: []
    func_position:
      end: 1074
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 1074
    functionName: AES_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached:
    - GETU32
    - ROTATE
    - prefetch256
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_decrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: SWAP
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: GETU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ct
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: PUTU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(ct, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: GETU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ct
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: PUTU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(ct, st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ecb.c:19,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ecb.c:20,1
    - Dst: AES_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ecb.c:23,1
    - Dst: AES_decrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ecb.c:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    - int
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_ecb.c
    - condition: ((AES_ENCRYPT == enc) || (AES_DECRYPT == enc))
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_ecb.c
    constantsTouched: []
    func_position:
      end: 26
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 26
    functionName: AES_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_ecb.c
    functionUses: 0
    functionsReached:
    - AES_encrypt
    - AES_decrypt
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                    const AES_KEY *key, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_128_wrap
      Src: /src/openssl-1.1.1g/crypto/aes/aes_wrap.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    argTypes:
    - AES_KEY*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: AES_wrap_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_wrap.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_wrap
    linkageType: ''
    returnType: int
    signature: "int AES_wrap_key(AES_KEY *key, const unsigned char *iv,\n                 unsigned
      char *out,\n                 const unsigned char *in, unsigned int inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_128_unwrap
      Src: /src/openssl-1.1.1g/crypto/aes/aes_wrap.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    argTypes:
    - AES_KEY*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: AES_unwrap_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_wrap.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_unwrap
    linkageType: ''
    returnType: int
    signature: "int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,\n                   unsigned
      char *out,\n                   const unsigned char *in, unsigned int inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: AES_options
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *AES_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: load_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load_block(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: store_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store_block(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: load_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load_block(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: store_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store_block(d, s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:47,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:48,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:49,1
    - Dst: AES_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:67,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:77,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:78,1
    - Dst: load_block
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:84,1
    - Dst: load_block
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:85,1
    - Dst: load_block
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:88,1
    - Dst: AES_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:91,1
    - Dst: store_block
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:95,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:102,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:103,1
    - Dst: AES_decrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:120,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:130,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:131,1
    - Dst: load_block
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:137,1
    - Dst: load_block
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:138,1
    - Dst: load_block
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:141,1
    - Dst: AES_decrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:145,1
    - Dst: store_block
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:149,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:156,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:157,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 160
    functionName: AES_ige_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - AES_encrypt
    - load_block
    - memcpy
    - AES_decrypt
    - store_block
    linkageType: ''
    returnType: void
    signature: "void AES_ige_encrypt(const unsigned char *in, unsigned char *out,\n
      \                    size_t length, const AES_KEY *key,\n                     unsigned
      char *ivec, const int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:183,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:184,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:185,1
    - Dst: AES_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:199,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:203,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:219,1
    - Dst: AES_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:225,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:238,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:251,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:252,1
    - Dst: AES_decrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:255,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:258,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:269,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:270,1
    - Dst: AES_decrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:273,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ige.c:276,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - key2
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - AES_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 284
    functionName: AES_bi_ige_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - AES_encrypt
    - AES_decrypt
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       size_t length, const AES_KEY *key,\n                        const
      AES_KEY *key2, const unsigned char *ivec,\n                        const int
      enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_ofb.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: AES_ofb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_ofb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       size_t length, const AES_KEY *key,\n                        unsigned
      char *ivec, int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_cfb.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: AES_cfb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       size_t length, const AES_KEY *key,\n                        unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_cfb.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: AES_cfb1_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: void
    signature: "void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     size_t length, const AES_KEY *key,\n                      unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_cfb.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: AES_cfb8_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_8_encrypt
    linkageType: ''
    returnType: void
    signature: "void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     size_t length, const AES_KEY *key,\n                      unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - w
    argTypes:
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: XtimeWord
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XtimeWord(u32 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - w
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: XtimeLong
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XtimeLong(u64 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 1
    argNames:
    - w
    argTypes:
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 218
    functionName: SubWord
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubWord(u32 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 1
    argNames:
    - w
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 309
    functionName: SubLong
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubLong(u64 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 1
    argNames:
    - w
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 407
    functionName: InvSubLong
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InvSubLong(u64 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: ShiftRows
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShiftRows(u64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 445
    functionName: InvShiftRows
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InvShiftRows(u64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XtimeLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 473
    functionName: MixColumns
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - XtimeLong
    linkageType: ''
    returnType: void
    signature: void MixColumns(u64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XtimeLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:489,1
    - Dst: XtimeLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:499,1
    - Dst: XtimeLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 509
    functionName: InvMixColumns
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - XtimeLong
    linkageType: ''
    returnType: void
    signature: void InvMixColumns(u64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state
    - w
    argTypes:
    - u64*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: AddRoundKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AddRoundKey(u64 *state, const u64 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:523,1
    - Dst: AddRoundKey
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:525,1
    - Dst: SubLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:528,1
    - Dst: SubLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:529,1
    - Dst: ShiftRows
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:530,1
    - Dst: MixColumns
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:531,1
    - Dst: AddRoundKey
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:532,1
    - Dst: SubLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:535,1
    - Dst: SubLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:536,1
    - Dst: ShiftRows
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:537,1
    - Dst: AddRoundKey
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:538,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - in
    - out
    - w
    - nr
    argTypes:
    - unsigned char*
    - unsigned char*
    - u64*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 541
    functionName: Cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - ShiftRows
    - memcpy
    - MixColumns
    - SubLong
    - AddRoundKey
    linkageType: ''
    returnType: void
    signature: "void Cipher(const unsigned char *in, unsigned char *out,\n                   const
      u64 *w, int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:550,1
    - Dst: AddRoundKey
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:552,1
    - Dst: InvShiftRows
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:555,1
    - Dst: InvSubLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:556,1
    - Dst: InvSubLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:557,1
    - Dst: AddRoundKey
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:558,1
    - Dst: InvMixColumns
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:559,1
    - Dst: InvShiftRows
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:562,1
    - Dst: InvSubLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:563,1
    - Dst: InvSubLong
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:564,1
    - Dst: AddRoundKey
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:565,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - in
    - out
    - w
    - nr
    argTypes:
    - unsigned char*
    - unsigned char*
    - u64*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 568
    functionName: InvCipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - InvShiftRows
    - memcpy
    - AddRoundKey
    - InvMixColumns
    - InvSubLong
    linkageType: ''
    returnType: void
    signature: "void InvCipher(const unsigned char *in, unsigned char *out,\n                      const
      u64 *w, int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 581
    functionName: RotWord
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RotWord(u32 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:591,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:592,1
    - Dst: RotWord
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:598,1
    - Dst: SubWord
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:599,1
    - Dst: XtimeWord
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:601,1
    - Dst: SubWord
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:603,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - key
    - w
    - nr
    - nk
    argTypes:
    - unsigned char*
    - u64*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 610
    functionName: KeyExpansion
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - SubWord
    - XtimeWord
    - RotWord
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void KeyExpansion(const unsigned char *key, u64 *w,\n                         int
      nr, int nk)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: KeyExpansion
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:634,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 636
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 2
    functionsReached:
    - KeyExpansion
    linkageType: ''
    returnType: int
    signature: "int AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 645
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 1
    functionsReached:
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:656,1
    - Dst: Cipher
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    constantsTouched: []
    func_position:
      end: 660
      start: 651
    functionDepth: 3
    functionLinenumber: 651
    functionLinenumberEnd: 660
    functionName: AES_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 3
    functionsReached:
    - Cipher
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_encrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:671,1
    - Dst: InvCipher
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 670
        line_start: 670
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    constantsTouched: []
    func_position:
      end: 675
      start: 666
    functionDepth: 3
    functionLinenumber: 666
    functionLinenumberEnd: 675
    functionName: AES_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 3
    functionsReached:
    - InvCipher
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_decrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - raw
    - bits
    argTypes:
    - u8[]
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 706
    functionName: RawToBits
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void RawToBits(const u8 raw[64], u64 bits[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - bits
    - raw
    argTypes:
    - u64[]
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 731
    functionName: BitsToRaw
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitsToRaw(const u64 bits[8], u8 raw[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 746
    functionName: BitsXtime
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitsXtime(u64 state[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 132
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 906
    functionName: BitsSub
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitsSub(u64 state[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 921
    functionName: BitsShiftRows
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitsShiftRows(u64 state[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitsXtime
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 945
    functionName: BitsMixColumns
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - BitsXtime
    linkageType: ''
    returnType: void
    signature: void BitsMixColumns(u64 state[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - state
    - key
    argTypes:
    - u64[]
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 953
    functionName: BitsAddRoundKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitsAddRoundKey(u64 state[8], const u64 key[8])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:967,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:969,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:971,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:972,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:973,1
    - Dst: RawToBits
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:974,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:977,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:978,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:980,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:981,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:983,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:984,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:986,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:987,1
    - Dst: RawToBits
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:989,1
    - Dst: BitsAddRoundKey
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:990,1
    - Dst: BitsSub
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:992,1
    - Dst: BitsShiftRows
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:993,1
    - Dst: BitsMixColumns
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:994,1
    - Dst: BitsAddRoundKey
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:995,1
    - Dst: BitsSub
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:997,1
    - Dst: BitsShiftRows
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:998,1
    - Dst: BitsAddRoundKey
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:999,1
    - Dst: BitsToRaw
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1000,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1009,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1014,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1015,1
    - Dst: AES_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1016,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 5
    argNames:
    - in
    - out
    - blocks
    - key
    - ivec
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 1025
    functionName: AES_ctr32_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - GETU32
    - BitsAddRoundKey
    - OPENSSL_malloc
    - BitsSub
    - PUTU32
    - BitsMixColumns
    - BitsToRaw
    - BitsShiftRows
    - AES_encrypt
    - memcpy
    - RawToBits
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: "void AES_ctr32_encrypt(const unsigned char *in, unsigned char *out,\n
      \                      size_t blocks, const AES_KEY *key,\n                       const
      unsigned char *ivec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1635,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1636,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1637,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1638,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1657,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1658,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1679,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1680,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1613
    functionDepth: 0
    functionLinenumber: 1613
    functionLinenumberEnd: 1710
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 3
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: "int AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1715
    functionDepth: 0
    functionLinenumber: 1715
    functionLinenumberEnd: 1762
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 1
    functionsReached:
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1777,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1784,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1785,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1786,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1787,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1931,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1938,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1945,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1952,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 1776
        line_start: 1776
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    constantsTouched: []
    func_position:
      end: 1953
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1953
    functionName: AES_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 4
    functionsReached:
    - GETU32
    - PUTU32
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_encrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1969,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1976,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1977,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1978,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:1979,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2123,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2130,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2137,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 1968
        line_start: 1968
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    constantsTouched: []
    func_position:
      end: 2145
      start: 1959
    functionDepth: 0
    functionLinenumber: 1959
    functionLinenumberEnd: 2145
    functionName: AES_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 3
    functionsReached:
    - GETU32
    - PUTU32
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_decrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2213,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2214,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2215,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2216,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2235,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2236,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2257,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2258,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2192
    functionDepth: 0
    functionLinenumber: 2192
    functionLinenumberEnd: 2288
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 4
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: "int AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2302,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2336,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2337,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/aes/aes_core.c:2337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2293
    functionDepth: 0
    functionLinenumber: 2293
    functionLinenumberEnd: 2346
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    functionUses: 1
    functionsReached:
    - AES_set_encrypt_key
    - ROTATE
    linkageType: ''
    returnType: int
    signature: "int AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_cbc.c:19,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/aes/aes_cbc.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: AES_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aes/aes_cbc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: void
    signature: "void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                    size_t len, const AES_KEY *key,\n                     unsigned
      char *ivec, const int enc)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:32,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:34,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:37,1
    - Dst: sk_OPENSSL_PSTRING_new_null
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:42,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:44,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:46,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:59,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:63,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:69,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:75,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:107,1
    - Dst: sk_OPENSSL_PSTRING_push
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:112,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:113,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:117,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:120,1
    - Dst: sk_OPENSSL_PSTRING_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:123,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:125,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 103
    argCount: 2
    argNames:
    - in
    - num
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 128
    functionName: TXT_DB_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_new_null
    - OPENSSL_malloc
    - BUF_MEM_grow_clean
    - sk_OPENSSL_PSTRING_push
    - sk_OPENSSL_PSTRING_free
    - OPENSSL_free
    - BUF_MEM_free
    - BUF_MEM_new
    - BIO_gets
    - BUF_MEM_grow
    - strlen
    linkageType: ''
    returnType: TXT_DB
    signature: TXT_DB *TXT_DB_read(BIO *in, int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:134,1
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - db
    - idx
    - value
    argTypes:
    - TXT_DB*
    - int
    - OPENSSL_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: TXT_DB_get_by_index
    functionSourceFile: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - LHASH_OF
    - lh_OPENSSL_STRING_retrieve
    linkageType: ''
    returnType: OPENSSL_STRING
    signature: "OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx,\n                                    OPENSSL_STRING
      *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:153,1
    - Dst: LHASH_OF
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:162,1
    - Dst: OPENSSL_LH_new
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:162,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:166,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:168,1
    - Dst: qual
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:169,1
    - Dst: lh_OPENSSL_STRING_insert
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:171,1
    - Dst: sk_OPENSSL_PSTRING_find
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:173,1
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:175,1
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:178,1
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:180,1
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:184,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - db
    - field
    - hash
    - cmp
    argTypes:
    - TXT_DB*
    - int
    - OPENSSL_LH_HASHFUNC
    - OPENSSL_LH_COMPFUNC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 188
    functionName: TXT_DB_create_index
    functionSourceFile: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - lh_OPENSSL_STRING_insert
    - sk_OPENSSL_PSTRING_value
    - sk_OPENSSL_PSTRING_find
    - LHASH_OF
    - qual
    - lh_OPENSSL_STRING_free
    - lh_OPENSSL_STRING_retrieve
    - sk_OPENSSL_PSTRING_num
    - OPENSSL_LH_new
    linkageType: ''
    returnType: int
    signature: "int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING
      *),\n                        OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:197,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:199,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:202,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:207,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:209,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:227,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:233,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - out
    - db
    argTypes:
    - BIO*
    - TXT_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 235
    functionName: TXT_DB_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_grow_clean
    - BIO_write
    - sk_OPENSSL_PSTRING_value
    - BUF_MEM_free
    - BUF_MEM_new
    - sk_OPENSSL_PSTRING_num
    - strlen
    linkageType: ''
    returnType: long
    signature: long TXT_DB_write(BIO *out, TXT_DB *db)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:246,1
    - Dst: lh_OPENSSL_STRING_insert
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:260,1
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:261,1
    - Dst: sk_OPENSSL_PSTRING_push
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:265,1
    - Dst: lh_OPENSSL_STRING_delete
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:275,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 2
    argNames:
    - db
    - row
    argTypes:
    - TXT_DB*
    - OPENSSL_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 280
    functionName: TXT_DB_insert
    functionSourceFile: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - lh_OPENSSL_STRING_delete
    - lh_OPENSSL_STRING_retrieve
    - sk_OPENSSL_PSTRING_push
    - lh_OPENSSL_STRING_insert
    linkageType: ''
    returnType: int
    signature: int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *row)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:291,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:292,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:294,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:296,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:301,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:305,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:309,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:312,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:312,1
    - Dst: sk_OPENSSL_PSTRING_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:314,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c:316,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - db
    argTypes:
    - TXT_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 317
    functionName: TXT_DB_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_value
    - OPENSSL_free
    - lh_OPENSSL_STRING_free
    - sk_OPENSSL_PSTRING_free
    - sk_OPENSSL_PSTRING_num
    linkageType: ''
    returnType: void
    signature: void TXT_DB_free(TXT_DB *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ROTL
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL(x, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: U32TO8_LE
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8_LE(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: U64TO8_LE
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64TO8_LE(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: U8TO64_LE
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TO64_LE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: SipHash_ctx_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SipHash_ctx_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SIPHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: SipHash_hash_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SipHash_hash_size(SIPHASH *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hash_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: siphash_adjust_hash_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t siphash_adjust_hash_size(size_t hash_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: siphash_adjust_hash_size
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:92,1
    - Dst: siphash_adjust_hash_size
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - hash_size
    argTypes:
    - SIPHASH*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: SipHash_set_hash_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached:
    - siphash_adjust_hash_size
    linkageType: ''
    returnType: int
    signature: int SipHash_set_hash_size(SIPHASH *ctx, size_t hash_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U8TO64_LE
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:116,1
    - Dst: U8TO64_LE
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:117,1
    - Dst: siphash_adjust_hash_size
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - k
    - crounds
    - drounds
    argTypes:
    - SIPHASH*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 142
    functionName: SipHash_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached:
    - U8TO64_LE
    - siphash_adjust_hash_size
    linkageType: ''
    returnType: int
    signature: int SipHash_Init(SIPHASH *ctx, const unsigned char *k, int crounds,
      int drounds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:163,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:169,1
    - Dst: U8TO64_LE
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:174,1
    - Dst: U8TO64_LE
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:184,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - SIPHASH*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 200
    functionName: SipHash_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached:
    - U8TO64_LE
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SipHash_Update(SIPHASH *ctx, const unsigned char *in, size_t inlen)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: U64TO8_LE
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:251,1
    - Dst: U64TO8_LE
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash.c:258,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - out
    - outlen
    argTypes:
    - SIPHASH*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 260
    functionName: SipHash_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached:
    - U64TO8_LE
    linkageType: ''
    returnType: int
    signature: int SipHash_Final(SIPHASH *ctx, unsigned char *out, size_t outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: siphash_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int siphash_size(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:30,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:34,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: siphash_key_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - ASN1_OCTET_STRING_free
    - EVP_PKEY_get0
    linkageType: ''
    returnType: void
    signature: void siphash_key_free(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: siphash_pkey_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int siphash_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:47,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:47,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: siphash_pkey_public_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - EVP_PKEY_get0
    linkageType: ''
    returnType: int
    signature: int siphash_pkey_public_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:58,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:62,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: siphash_set_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: "int siphash_set_priv_key(EVP_PKEY *pkey, const unsigned char *priv,\n
      \                               size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:84,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:84,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: siphash_get_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int siphash_get_priv_key(const EVP_PKEY *pkey, unsigned char *priv,\n
      \                               size_t *len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:31,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:32,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:37,1
    - Dst: EVP_PKEY_CTX_set0_keygen_info
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: pkey_siphash_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - EVP_PKEY_CTX_set_data
    - EVP_PKEY_CTX_set0_keygen_info
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_siphash_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:44,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:47,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:48,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: pkey_siphash_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_data
    - OPENSSL_clear_free
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: void
    signature: void pkey_siphash_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pkey_siphash_init
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:58,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:60,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:61,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:62,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:63,1
    - Dst: pkey_siphash_cleanup
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:65,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 70
    functionName: pkey_siphash_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_siphash_cleanup
    - memcpy
    - ASN1_STRING_copy
    - pkey_siphash_init
    - ASN1_STRING_get0_data
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int pkey_siphash_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:75,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:77,1
    - Dst: ASN1_OCTET_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:79,1
    - Dst: EVP_PKEY_assign_SIPHASH
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: pkey_siphash_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_dup
    - ASN1_STRING_get0_data
    - EVP_PKEY_CTX_get_data
    - EVP_PKEY_assign_SIPHASH
    linkageType: ''
    returnType: int
    signature: int pkey_siphash_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:87,1
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:87,1
    - Dst: SipHash_Update
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: int_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    functionUses: 0
    functionsReached:
    - SipHash_Update
    - EVP_MD_CTX_pkey_ctx
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int int_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:95,1
    - Dst: EVP_PKEY_get0_siphash
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:99,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:99,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:102,1
    - Dst: EVP_MD_CTX_set_update_fn
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:103,1
    - Dst: SipHash_Init
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: siphash_signctx_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_update_fn
    - EVP_PKEY_get0_siphash
    - EVP_MD_CTX_set_flags
    - SipHash_Init
    - EVP_PKEY_CTX_get0_pkey
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int siphash_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SipHash_hash_size
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:111,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - sig
    - siglen
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: siphash_signctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    functionUses: 0
    functionsReached:
    - SipHash_Final
    - SipHash_hash_size
    linkageType: ''
    returnType: int
    signature: "int siphash_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t
      *siglen,\n                            EVP_MD_CTX *mctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:119,1
    - Dst: SipHash_set_hash_size
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:130,1
    - Dst: EVP_PKEY_get0_siphash
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:140,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:140,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:143,1
    - Dst: SipHash_Init
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:146,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 154
    functionName: pkey_siphash_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - SipHash_set_hash_size
    - EVP_PKEY_get0_siphash
    - SipHash_Init
    - EVP_PKEY_CTX_get0_pkey
    - ASN1_STRING_get0_data
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int pkey_siphash_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:161,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:162,1
    - Dst: pkey_siphash_ctrl
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:164,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:167,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:168,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:169,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 172
    functionName: pkey_siphash_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    functionUses: 0
    functionsReached:
    - strcmp
    - atoi
    - EVP_PKEY_CTX_str2ctrl
    - EVP_PKEY_CTX_hex2ctrl
    - pkey_siphash_ctrl
    linkageType: ''
    returnType: int
    signature: "int pkey_siphash_ctrl_str(EVP_PKEY_CTX *ctx,\n                                  const
      char *type, const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: BUF_MEM_new_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/buffer/buffer.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_new
    linkageType: ''
    returnType: BUF_MEM
    signature: BUF_MEM *BUF_MEM_new_ex(unsigned long flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:35,1
    - Dst: BUFerr
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: BUF_MEM_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/buffer/buffer.c
    functionUses: 3
    functionsReached:
    - BUFerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BUF_MEM
    signature: BUF_MEM *BUF_MEM_new(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:49,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BUF_MEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: BUF_MEM_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/buffer/buffer.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - OPENSSL_clear_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void BUF_MEM_free(BUF_MEM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:62,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:65,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - BUF_MEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: sec_alloc_realloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/buffer/buffer.c
    functionUses: 0
    functionsReached:
    - OPENSSL_secure_malloc
    - memcpy
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: char
    signature: char *sec_alloc_realloc(BUF_MEM *str, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:84,1
    - Dst: BUFerr
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:90,1
    - Dst: sec_alloc_realloc
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:95,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:97,1
    - Dst: BUFerr
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:99,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - BUF_MEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 108
    functionName: BUF_MEM_grow
    functionSourceFile: /src/openssl-1.1.1g/crypto/buffer/buffer.c
    functionUses: 1
    functionsReached:
    - sec_alloc_realloc
    - BUFerr
    - memset
    - OPENSSL_realloc
    linkageType: ''
    returnType: size_t
    signature: size_t BUF_MEM_grow(BUF_MEM *str, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:117,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:122,1
    - Dst: BUFerr
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:128,1
    - Dst: sec_alloc_realloc
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:133,1
    - Dst: OPENSSL_clear_realloc
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:135,1
    - Dst: BUFerr
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:137,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/buffer/buffer.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - BUF_MEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 146
    functionName: BUF_MEM_grow_clean
    functionSourceFile: /src/openssl-1.1.1g/crypto/buffer/buffer.c
    functionUses: 2
    functionsReached:
    - sec_alloc_realloc
    - BUFerr
    - memset
    - OPENSSL_clear_realloc
    linkageType: ''
    returnType: size_t
    signature: size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - out
    - in
    - size
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: BUF_reverse
    functionSourceFile: /src/openssl-1.1.1g/crypto/buffer/buffer.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BUF_reverse(unsigned char *out, const unsigned char *in, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/buffer/buf_err.c:32,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/buffer/buf_err.c:33,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/buffer/buf_err.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: ERR_load_BUF_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/buffer/buf_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_BUF_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: F1
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F1(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: F2
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F2(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: F3
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F3(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: F4
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F4(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: F5
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F5(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: RIP1
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP1(a,b,c,d,e,w,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: RIP2
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP2(a,b,c,d,e,w,s,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: RIP3
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP3(a,b,c,d,e,w,s,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: RIP4
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP4(a,b,c,d,e,w,s,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: RIP5
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP5(a,b,c,d,e,w,s,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - RIPEMD160_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: RIPEMD160_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int RIPEMD160_Init(RIPEMD160_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:59,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:60,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:61,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:62,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:63,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:64,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:65,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:66,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:67,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:68,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:69,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:70,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:71,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:72,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:73,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:74,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:75,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:76,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:77,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:78,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:79,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:80,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:81,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:82,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:83,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:84,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:85,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:86,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:87,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:88,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:89,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:90,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:91,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:92,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:93,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:94,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:95,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:96,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:97,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:98,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:99,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:100,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:101,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:102,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:103,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:104,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:105,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:106,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:108,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:109,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:110,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:111,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:112,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:113,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:114,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:115,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:116,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:117,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:118,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:119,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:120,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:121,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:122,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:123,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:125,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:126,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:127,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:128,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:129,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:130,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:131,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:132,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:133,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:134,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:135,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:136,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:137,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:138,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:139,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:140,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:142,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:143,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:144,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:145,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:146,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:147,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:148,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:149,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:150,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:151,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:152,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:153,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:154,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:155,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:156,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:157,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:159,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:160,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:161,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:162,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:163,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:164,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:165,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:166,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:167,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:168,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:169,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:170,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:171,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:172,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:173,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:174,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:188,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:189,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:190,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:191,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:192,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:193,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:194,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:195,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:196,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:197,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:198,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:199,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:200,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:201,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:202,1
    - Dst: RIP5
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:203,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:205,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:206,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:207,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:208,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:209,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:210,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:211,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:212,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:213,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:214,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:215,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:216,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:217,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:218,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:219,1
    - Dst: RIP4
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:220,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:222,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:223,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:224,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:225,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:226,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:227,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:228,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:229,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:230,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:231,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:232,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:233,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:234,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:235,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:236,1
    - Dst: RIP3
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:237,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:239,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:240,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:241,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:242,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:243,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:244,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:245,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:246,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:247,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:248,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:249,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:250,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:251,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:252,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:253,1
    - Dst: RIP2
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:254,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:256,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:257,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:258,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:259,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:260,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:261,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:262,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:263,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:264,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:265,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:266,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:267,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:268,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:269,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:270,1
    - Dst: RIP1
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 216
    argCount: 3
    argNames:
    - ctx
    - p
    - num
    argTypes:
    - RIPEMD160_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 281
    functionName: ripemd160_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c
    functionUses: 0
    functionsReached:
    - RIP5
    - HOST_c2l
    - RIP3
    - RIP2
    - X
    - RIP4
    - RIP1
    linkageType: ''
    returnType: void
    signature: void ripemd160_block_data_order(RIPEMD160_CTX *ctx, const void *p,
      size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: X
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: X
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RIPEMD160_Init
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_one.c:22,1
    - Dst: RIPEMD160_Update
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_one.c:24,1
    - Dst: RIPEMD160_Final
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_one.c:25,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ripemd/rmd_one.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: RIPEMD160
    functionSourceFile: /src/openssl-1.1.1g/crypto/ripemd/rmd_one.c
    functionUses: 0
    functionsReached:
    - RIPEMD160_Update
    - RIPEMD160_Final
    - RIPEMD160_Init
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned
      char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: rotl
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline rotl(uint32_t a, uint8_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: load_u32_be
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline load_u32_be(const uint8_t *b, uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - b
    argTypes:
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: store_u32_be
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline store_u32_be(uint32_t v, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:121,1
    - Dst: rotl
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:121,1
    - Dst: rotl
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:121,1
    - Dst: rotl
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: SM4_T_slow
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - rotl
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline SM4_T_slow(uint32_t X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:127,1
    - Dst: rotl
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:128,1
    - Dst: rotl
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: SM4_T
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - rotl
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline SM4_T(uint32_t X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:157,1
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:158,1
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:159,1
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:160,1
    - Dst: rotl
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:171,1
    - Dst: rotl
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - key
    - ks
    argTypes:
    - uint8_t*
    - SM4_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 177
    functionName: SM4_set_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - load_u32_be
    - rotl
    linkageType: ''
    returnType: int
    signature: int SM4_set_key(const uint8_t *key, SM4_KEY *ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - k0
    - ','
    - k1
    - ','
    - k2
    - ','
    - k3
    - ','
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: SM4_RNDS
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SM4_RNDS(k0, k1, k2, k3, F)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:189,1
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:190,1
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:191,1
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:192,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:198,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:199,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:200,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:201,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:202,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:203,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:204,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:205,1
    - Dst: store_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:207,1
    - Dst: store_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:208,1
    - Dst: store_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:209,1
    - Dst: store_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - in
    - out
    - ks
    argTypes:
    - uint8_t*
    - uint8_t*
    - SM4_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 211
    functionName: SM4_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - load_u32_be
    - SM4_RNDS
    - store_u32_be
    linkageType: ''
    returnType: void
    signature: void SM4_encrypt(const uint8_t *in, uint8_t *out, const SM4_KEY *ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:215,1
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:216,1
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:217,1
    - Dst: load_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:218,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:220,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:221,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:222,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:223,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:224,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:225,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:226,1
    - Dst: SM4_RNDS
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:227,1
    - Dst: store_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:229,1
    - Dst: store_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:230,1
    - Dst: store_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:231,1
    - Dst: store_u32_be
      Src: /src/openssl-1.1.1g/crypto/sm4/sm4.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - in
    - out
    - ks
    argTypes:
    - uint8_t*
    - uint8_t*
    - SM4_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 233
    functionName: SM4_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - load_u32_be
    - SM4_RNDS
    - store_u32_be
    linkageType: ''
    returnType: void
    signature: void SM4_decrypt(const uint8_t *in, uint8_t *out, const SM4_KEY *ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - k1
    - l
    - bl
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: make_kn
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_kn(unsigned char *k1, const unsigned char *l, int bl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:50,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:51,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: CMAC_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OPENSSL_malloc
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    linkageType: ''
    returnType: CMAC_CTX
    signature: CMAC_CTX *CMAC_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:65,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:66,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:67,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:68,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: CMAC_CTX_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_reset
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void CMAC_CTX_cleanup(CMAC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: CMAC_CTX_get0_cipher_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_cleanup
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:82,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: CMAC_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_cleanup
    - OPENSSL_free
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void CMAC_CTX_free(CMAC_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:92,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:94,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:95,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:96,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:97,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - CMAC_CTX*
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: CMAC_CTX_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_CIPHER_CTX_block_size
    - EVP_CIPHER_CTX_copy
    linkageType: ''
    returnType: int
    signature: int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:112,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:114,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:114,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:119,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:124,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:126,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:128,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:130,1
    - Dst: EVP_Cipher
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:131,1
    - Dst: make_kn
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:133,1
    - Dst: make_kn
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:134,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:135,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:137,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:140,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 5
    argNames:
    - ctx
    - key
    - keylen
    - cipher
    - impl
    argTypes:
    - CMAC_CTX*
    - void*
    - size_t
    - EVP_CIPHER*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 144
    functionName: CMAC_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_Cipher
    - EVP_CIPHER_CTX_block_size
    - EVP_CIPHER_CTX_cipher
    - EVP_EncryptInit_ex
    - memset
    - EVP_CIPHER_CTX_set_key_length
    - make_kn
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen,\n              const
      EVP_CIPHER *cipher, ENGINE *impl)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:154,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:161,1
    - Dst: EVP_Cipher
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:169,1
    - Dst: EVP_Cipher
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:174,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:180,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - in
    - dlen
    argTypes:
    - CMAC_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 184
    functionName: CMAC_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_Cipher
    - EVP_CIPHER_CTX_block_size
    - memcpy
    linkageType: ''
    returnType: int
    signature: int CMAC_Update(CMAC_CTX *ctx, const void *in, size_t dlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:191,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:203,1
    - Dst: EVP_Cipher
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:207,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - out
    - poutlen
    argTypes:
    - CMAC_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 212
    functionName: CMAC_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_Cipher
    - EVP_CIPHER_CTX_block_size
    - memset
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/cmac/cmac.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 226
    functionName: CMAC_resume
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    linkageType: ''
    returnType: int
    signature: int CMAC_resume(CMAC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: pkey_cmac_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_new
    linkageType: ''
    returnType: int
    signature: int pkey_cmac_init(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pkey_cmac_init
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:31,1
    - Dst: CMAC_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: pkey_cmac_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_copy
    - pkey_cmac_init
    linkageType: ''
    returnType: int
    signature: int pkey_cmac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: pkey_cmac_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_free
    linkageType: ''
    returnType: void
    signature: void pkey_cmac_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:45,1
    - Dst: CMAC_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:49,1
    - Dst: CMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:50,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: pkey_cmac_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_free
    - CMAC_CTX_copy
    - EVP_PKEY_assign
    - CMAC_CTX_new
    linkageType: ''
    returnType: int
    signature: int pkey_cmac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_Update
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:60,1
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: int_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_Update
    - EVP_MD_CTX_pkey_ctx
    linkageType: ''
    returnType: int
    signature: int int_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:67,1
    - Dst: EVP_MD_CTX_set_update_fn
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: cmac_signctx_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX_set_update_fn
    linkageType: ''
    returnType: int
    signature: int cmac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_Final
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - sig
    - siglen
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: cmac_signctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_Final
    linkageType: ''
    returnType: int
    signature: "int cmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,\n
      \                       EVP_MD_CTX *mctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_Init
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:86,1
    - Dst: CMAC_Init
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:91,1
    - Dst: CMAC_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:96,1
    - Dst: CMAC_Init
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 108
    functionName: pkey_cmac_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_copy
    - CMAC_Init
    linkageType: ''
    returnType: int
    signature: int pkey_cmac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:116,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:118,1
    - Dst: pkey_cmac_ctrl
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:121,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:123,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:124,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:125,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: pkey_cmac_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - strcmp
    - EVP_PKEY_CTX_str2ctrl
    - EVP_get_cipherbyname
    - EVP_PKEY_CTX_hex2ctrl
    - pkey_cmac_ctrl
    linkageType: ''
    returnType: int
    signature: "int pkey_cmac_ctrl_str(EVP_PKEY_CTX *ctx,\n                              const
      char *type, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: cmac_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmac_size(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_ameth.c:28,1
    - Dst: CMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cmac/cm_ameth.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: cmac_key_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/cmac/cm_ameth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_free
    - EVP_PKEY_get0
    linkageType: ''
    returnType: void
    signature: void cmac_key_free(EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_pbe2_set
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:24,1
    - Dst: EVP_PBE_find
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:25,1
    - Dst: PKCS5_pbe2_set_iv
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:26,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:28,1
    - Dst: PKCS5_pbe_set
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:29,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:32,1
    - Dst: PKCS8_set0_pbe
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:35,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 8
    argNames:
    - pbe_nid
    - cipher
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - p8inf
    argTypes:
    - int
    - EVP_CIPHER*
    - char*
    - int
    - unsigned char*
    - int
    - int
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 42
    functionName: PKCS8_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c
    functionUses: 1
    functionsReached:
    - EVP_PBE_find
    - PKCS5_pbe2_set_iv
    - PKCS8_set0_pbe
    - X509_ALGOR_free
    - PKCS5_pbe_set
    - ERR_clear_error
    - PKCS5_pbe2_set
    - PKCS12err
    linkageType: ''
    returnType: X509_SIG
    signature: "X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher,\n                        const
      char *pass, int passlen,\n                        unsigned char *salt, int saltlen,
      int iter,\n                        PKCS8_PRIV_KEY_INFO *p8inf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_i2d_encrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:51,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:51,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:54,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:58,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:61,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - pass
    - passlen
    - p8inf
    - pbe
    argTypes:
    - char*
    - int
    - PKCS8_PRIV_KEY_INFO*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 69
    functionName: PKCS8_set0_pbe
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_free
    - OPENSSL_zalloc
    - PKCS12err
    - ASN1_ITEM_rptr
    - PKCS12_item_i2d_encrypt
    linkageType: ''
    returnType: X509_SIG
    signature: "X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen,\n                         PKCS8_PRIV_KEY_INFO
      *p8inf, X509_ALGOR *pbe)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:22,1
    - Dst: EVP_PKEY_get_attr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:25,1
    - Dst: X509at_add1_attr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - bag
    - pkey
    - nid
    argTypes:
    - PKCS12_SAFEBAG*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: copy_bag_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    - EVP_PKEY_get_attr
    - EVP_PKEY_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int copy_bag_attr(PKCS12_SAFEBAG *bag, EVP_PKEY *pkey, int nid)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:36,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:37,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:58,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:63,1
    - Dst: X509_digest
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:65,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:65,1
    - Dst: PKCS12_add_cert
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:70,1
    - Dst: PKCS12_add_friendlyname
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:71,1
    - Dst: PKCS12_add_localkeyid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:73,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:78,1
    - Dst: PKCS12_add_cert
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:79,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:79,1
    - Dst: PKCS12_add_safe
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:83,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:86,1
    - Dst: PKCS12_add_key
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:90,1
    - Dst: copy_bag_attr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:95,1
    - Dst: copy_bag_attr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:97,1
    - Dst: PKCS12_add_friendlyname
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:100,1
    - Dst: PKCS12_add_localkeyid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:102,1
    - Dst: PKCS12_add_safe
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:106,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:109,1
    - Dst: PKCS12_add_safes
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:112,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:117,1
    - Dst: PKCS12_set_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:122,1
    - Dst: PKCS12_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:128,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:129,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c:130,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 81
    argCount: 10
    argNames:
    - pass
    - name
    - pkey
    - cert
    - ca
    - nid_key
    - nid_cert
    - iter
    - mac_iter
    - keytype
    argTypes:
    - char*
    - char*
    - EVP_PKEY*
    - X509*
    - STACK_OF*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 133
    functionName: PKCS12_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c
    functionUses: 0
    functionsReached:
    - X509_check_private_key
    - PKCS12_add_localkeyid
    - copy_bag_attr
    - PKCS12_set_mac
    - sk_PKCS12_SAFEBAG_pop_free
    - PKCS12_add_cert
    - PKCS12_add_key
    - EVP_sha1
    - PKCS12_free
    - STACK_OF
    - PKCS12_add_friendlyname
    - PKCS12_add_safes
    - PKCS12_add_safe
    - sk_X509_num
    - sk_PKCS7_pop_free
    - PKCS12err
    - X509_digest
    - sk_X509_value
    linkageType: ''
    returnType: PKCS12
    signature: "PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY
      *pkey, X509 *cert,\n                      STACK_OF(X509) *ca, int nid_key, int
      nid_cert, int iter,\n                      int mac_iter, int keytype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/pkcs12/pk12err.c:111,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/pkcs12/pk12err.c:112,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/pkcs12/pk12err.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: ERR_load_PKCS12_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/pk12err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_PKCS12_strings(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:37,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:44,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:45,1
    - Dst: newpass_p12
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:49,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - p12
    - oldpass
    - newpass
    argTypes:
    - PKCS12*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 55
    functionName: PKCS12_newpass
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c
    functionUses: 0
    functionsReached:
    - newpass_p12
    - PKCS12err
    - PKCS12_verify_mac
    linkageType: ''
    returnType: int
    signature: int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:61,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:62,1
    - Dst: PKCS12_unpack_authsafes
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:70,1
    - Dst: sk_PKCS7_new_null
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:72,1
    - Dst: sk_PKCS7_num
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:74,1
    - Dst: sk_PKCS7_value
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:75,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:76,1
    - Dst: PKCS12_unpack_p7data
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:78,1
    - Dst: PKCS12_unpack_p7encdata
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:80,1
    - Dst: alg_get
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:81,1
    - Dst: newpass_bags
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:89,1
    - Dst: PKCS12_pack_p7data
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:93,1
    - Dst: PKCS12_pack_p7encdata
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:95,1
    - Dst: sk_PKCS7_push
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:97,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:99,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:106,1
    - Dst: PKCS12_pack_authsafes
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:108,1
    - Dst: PKCS12_gen_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:111,1
    - Dst: X509_SIG_getm
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:113,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:114,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:122,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:124,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:127,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:128,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:129,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 66
    argCount: 3
    argNames:
    - p12
    - oldpass
    - newpass
    argTypes:
    - PKCS12*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 131
    functionName: newpass_p12
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c
    functionUses: 1
    functionsReached:
    - PKCS12_pack_authsafes
    - alg_get
    - STACK_OF
    - PKCS12_unpack_p7encdata
    - newpass_bags
    - PKCS12_unpack_authsafes
    - X509_SIG_getm
    - PKCS12_gen_mac
    - PKCS12_unpack_p7data
    - PKCS12_pack_p7data
    - ASN1_OCTET_STRING_set
    - sk_PKCS12_SAFEBAG_pop_free
    - sk_PKCS7_new_null
    - sk_PKCS7_push
    - ASN1_OCTET_STRING_free
    - PKCS12_pack_p7encdata
    - sk_PKCS7_value
    - OBJ_obj2nid
    - ASN1_OCTET_STRING_new
    - sk_PKCS7_num
    - sk_PKCS7_pop_free
    linkageType: ''
    returnType: int
    signature: int newpass_p12(PKCS12 *p12, const char *oldpass, const char *newpass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:154,1
    - Dst: PKCS8_decrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:157,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:159,1
    - Dst: alg_get
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:160,1
    - Dst: PKCS8_encrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:162,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:164,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - bag
    - oldpass
    - newpass
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: newpass_bag
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c
    functionUses: 0
    functionsReached:
    - PKCS12_SAFEBAG_get_nid
    - alg_get
    - PKCS8_encrypt
    - X509_SIG_free
    - PKCS8_PRIV_KEY_INFO_free
    - X509_SIG_get0
    - PKCS8_decrypt
    linkageType: ''
    returnType: int
    signature: "int newpass_bag(PKCS12_SAFEBAG *bag, const char *oldpass,\n                       const
      char *newpass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:176,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:176,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:179,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:180,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - alg
    - pnid
    - piter
    - psaltlen
    argTypes:
    - X509_ALGOR*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: alg_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c
    functionUses: 2
    functionsReached:
    - PBEPARAM_free
    - ASN1_INTEGER_get
    - ASN1_TYPE_unpack_sequence
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: "int alg_get(const X509_ALGOR *alg, int *pnid, int *piter,\n                   int
      *psaltlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:30,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:33,1
    - Dst: EVP_PBE_CipherInit
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:38,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:40,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:45,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:45,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:47,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:52,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:54,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:60,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:62,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:72,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 8
    argNames:
    - algor
    - pass
    - passlen
    - in
    - inlen
    - data
    - datalen
    - en_de
    argTypes:
    - X509_ALGOR*
    - char*
    - int
    - unsigned char*
    - int
    - unsigned char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 75
    functionName: PKCS12_pbe_crypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_block_size
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - EVP_CipherUpdate
    - PKCS12err
    - EVP_PBE_CipherInit
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor,\n                                const
      char *pass, int passlen,\n                                const unsigned char
      *in, int inlen,\n                                unsigned char **data, int *datalen,
      int en_de)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_pbe_crypt
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:91,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:93,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:104,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:105,1
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:106,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:107,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:110,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:112,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - algor
    - it
    - pass
    - passlen
    - oct
    - zbuf
    argTypes:
    - X509_ALGOR*
    - ASN1_ITEM*
    - char*
    - int
    - ASN1_OCTET_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 117
    functionName: PKCS12_item_decrypt_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i
    - fclose
    - OPENSSL_free
    - PKCS12_pbe_crypt
    - fwrite
    - sprintf
    - fopen
    - PKCS12err
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM
      *it,\n                              const char *pass, int passlen,\n                              const
      ASN1_OCTET_STRING *oct, int zbuf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:133,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:134,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:137,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:139,1
    - Dst: PKCS12_pbe_crypt
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:142,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:145,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:150,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 6
    argNames:
    - algor
    - it
    - pass
    - passlen
    - obj
    - zbuf
    argTypes:
    - X509_ALGOR*
    - ASN1_ITEM*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 155
    functionName: PKCS12_item_i2d_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_new
    - OPENSSL_free
    - ASN1_OCTET_STRING_free
    - PKCS12_pbe_crypt
    - ASN1_item_i2d
    - PKCS12err
    - OPENSSL_cleanse
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor,\n                                           const
      ASN1_ITEM *it,\n                                           const char *pass,
      int passlen,\n                                           void *obj, int zbuf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c:21,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c:22,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c:25,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c:27,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c:30,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c:31,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c:36,1
    - Dst: PKCS12_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c:42,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: PKCS12_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ASN1_OCTET_STRING_new
    - ASN1_INTEGER_set
    - PKCS12_free
    - PKCS12err
    - PKCS12_new
    linkageType: ''
    returnType: PKCS12
    signature: PKCS12 *PKCS12_init(int mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_BAGS_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:23,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:24,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:27,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:28,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:29,1
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:32,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:33,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:37,1
    - Dst: PKCS12_BAGS_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - obj
    - it
    - nid1
    - nid2
    argTypes:
    - void*
    - ASN1_ITEM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 43
    functionName: PKCS12_item_pack_safebag
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - PKCS12_BAGS_new
    - ASN1_item_pack
    - PKCS12_BAGS_free
    - PKCS12_SAFEBAG_new
    - PKCS12err
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: "PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM
      *it,\n                                         int nid1, int nid2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:92,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:93,1
    - Dst: PKCS7_set_type
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:96,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:97,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:102,1
    - Dst: PKCS5_pbe2_set
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:105,1
    - Dst: PKCS5_pbe_set
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:107,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:110,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:113,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:115,1
    - Dst: PKCS12_item_i2d_encrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:117,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:117,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:119,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 7
    argNames:
    - pbe_nid
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - bags
    argTypes:
    - int
    - char*
    - int
    - unsigned char*
    - int
    - int
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 128
    functionName: PKCS12_pack_p7encdata
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c
    functionUses: 1
    functionsReached:
    - PKCS7_set_type
    - PKCS7_free
    - ASN1_OCTET_STRING_free
    - X509_ALGOR_free
    - PKCS5_pbe_set
    - EVP_get_cipherbynid
    - PKCS5_pbe2_set
    - PKCS12err
    - ASN1_ITEM_rptr
    - PKCS12_item_i2d_encrypt
    - PKCS7_new
    linkageType: ''
    returnType: PKCS7
    signature: "PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen,\n
      \                            unsigned char *salt, int saltlen, int iter,\n                             STACK_OF(PKCS12_SAFEBAG)
      *bags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_decrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bag
    - pass
    - passlen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: PKCS12_decrypt_skey
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c
    functionUses: 0
    functionsReached:
    - PKCS8_decrypt
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag,\n
      \                                        const char *pass, int passlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: PKCS12_PBE_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS12_PBE_add(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:41,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:41,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:43,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:50,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:54,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:55,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:56,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:60,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:61,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:62,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:65,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:66,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:67,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - cipher
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 70
    functionName: PKCS12_PBE_keyivgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get
    - PBEPARAM_free
    - ASN1_TYPE_unpack_sequence
    - EVP_CipherInit_ex
    - EVP_CIPHER_key_length
    - PKCS12err
    - ASN1_ITEM_rptr
    - EVP_CIPHER_iv_length
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int
      passlen,\n                        ASN1_TYPE *param, const EVP_CIPHER *cipher,\n
      \                       const EVP_MD *md, int en_de)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:35,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:46,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:61,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:63,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:66,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:69,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:70,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:75,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:78,1
    - Dst: parse_pk12
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:82,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:83,1
    - Dst: sk_X509_pop
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:87,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:89,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:90,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:94,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:99,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:102,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:106,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:109,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:116,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:120,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:123,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:124,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 73
    argCount: 5
    argNames:
    - p12
    - pass
    - pkey
    - cert
    - ca
    argTypes:
    - PKCS12*
    - char*
    - EVP_PKEY**
    - X509**
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 127
    functionName: PKCS12_parse
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c
    functionUses: 0
    functionsReached:
    - X509_check_private_key
    - X509_free
    - sk_X509_push
    - sk_X509_new_null
    - STACK_OF
    - sk_X509_pop_free
    - parse_pk12
    - sk_X509_pop
    - ERR_set_mark
    - ERR_pop_to_mark
    - EVP_PKEY_free
    - PKCS12err
    - PKCS12_verify_mac
    linkageType: ''
    returnType: int
    signature: "int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509
      **cert,\n                 STACK_OF(X509) **ca)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:134,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:135,1
    - Dst: PKCS12_unpack_authsafes
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:139,1
    - Dst: sk_PKCS7_num
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:141,1
    - Dst: sk_PKCS7_value
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:142,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:143,1
    - Dst: PKCS12_unpack_p7data
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:145,1
    - Dst: PKCS12_unpack_p7encdata
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:147,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:151,1
    - Dst: parse_bags
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:154,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:155,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:156,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:159,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:161,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - p12
    - pass
    - passlen
    - pkey
    - ocerts
    argTypes:
    - PKCS12*
    - char*
    - int
    - EVP_PKEY**
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 163
    functionName: parse_pk12
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - sk_PKCS7_pop_free
    - sk_PKCS7_num
    - sk_PKCS12_SAFEBAG_pop_free
    - parse_bags
    - STACK_OF
    - PKCS12_unpack_p7encdata
    - PKCS12_unpack_authsafes
    - sk_PKCS7_value
    - OBJ_obj2nid
    - PKCS12_unpack_p7data
    linkageType: ''
    returnType: int
    signature: "int parse_pk12(PKCS12 *p12, const char *pass, int passlen,\n                      EVP_PKEY
      **pkey, STACK_OF(X509) *ocerts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_PKCS12_SAFEBAG_num
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:169,1
    - Dst: parse_bag
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:170,1
    - Dst: sk_PKCS12_SAFEBAG_value
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - bags
    - pass
    - passlen
    - pkey
    - ocerts
    argTypes:
    - STACK_OF*
    - char*
    - int
    - EVP_PKEY**
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: parse_bags
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - sk_PKCS12_SAFEBAG_value
    - sk_PKCS12_SAFEBAG_num
    - parse_bag
    linkageType: ''
    returnType: int
    signature: "int parse_bags(const STACK_OF(PKCS12_SAFEBAG) *bags, const char *pass,\n
      \                     int passlen, EVP_PKEY **pkey, STACK_OF(X509) *ocerts)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:186,1
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:189,1
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:192,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:196,1
    - Dst: PKCS12_SAFEBAG_get0_p8inf
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:196,1
    - Dst: PKCS12_decrypt_skey
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:204,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:206,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:207,1
    - Dst: PKCS12_SAFEBAG_get_bag_nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:213,1
    - Dst: PKCS12_SAFEBAG_get1_cert
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:215,1
    - Dst: X509_keyid_set1
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:217,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:218,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:224,1
    - Dst: X509_alias_set1
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:226,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:227,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:229,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:235,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:236,1
    - Dst: parse_bags
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:243,1
    - Dst: PKCS12_SAFEBAG_get0_safes
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c:243,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 5
    argNames:
    - bag
    - pass
    - passlen
    - pkey
    - ocerts
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    - EVP_PKEY**
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 250
    functionName: parse_bag
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - X509_free
    - PKCS12_SAFEBAG_get0_attr
    - PKCS12_SAFEBAG_get_nid
    - X509_alias_set1
    - sk_X509_push
    - PKCS12_SAFEBAG_get_bag_nid
    - OPENSSL_free
    - parse_bags
    - X509_keyid_set1
    - PKCS12_SAFEBAG_get0_safes
    - PKCS12_decrypt_skey
    - ASN1_STRING_to_UTF8
    - PKCS8_PRIV_KEY_INFO_free
    - PKCS12_SAFEBAG_get0_p8inf
    - PKCS12_SAFEBAG_get1_cert
    - EVP_PKCS82PKEY
    linkageType: ''
    returnType: int
    signature: "int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen,\n
      \                    EVP_PKEY **pkey, STACK_OF(X509) *ocerts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p12
    argTypes:
    - PKCS12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: PKCS12_mac_present
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PKCS12_mac_present(const PKCS12 *p12)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_get0
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:30,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - pmac
    - pmacalg
    - psalt
    - piter
    - p12
    argTypes:
    - ASN1_OCTET_STRING**
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    - ASN1_INTEGER**
    - PKCS12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 45
    functionName: PKCS12_get0_mac
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached:
    - X509_SIG_get0
    linkageType: ''
    returnType: void
    signature: "void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac,\n                     const
      X509_ALGOR **pmacalg,\n                     const ASN1_OCTET_STRING **psalt,\n
      \                    const ASN1_INTEGER **piter,\n                     const
      PKCS12 *p12)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:60,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:64,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - keylen
    - key
    - digest
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: pkcs12_gen_gost_mac_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached:
    - PKCS5_PBKDF2_HMAC
    - memcpy
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int pkcs12_gen_gost_mac_key(const char *pass, int passlen,\n                                   const
      unsigned char *salt, int saltlen,\n                                   int iter,
      int keylen, unsigned char *key,\n                                   const EVP_MD
      *digest)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:91,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:92,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:101,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:102,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:103,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:104,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:105,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:108,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:109,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:115,1
    - Dst: pkcs12_gen_gost_mac_key
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:117,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:119,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:125,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:128,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:129,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:130,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:132,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:138,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:139,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 5
    argNames:
    - p12
    - pass
    - passlen
    - mac
    - maclen
    argTypes:
    - PKCS12*
    - char*
    - int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 141
    functionName: pkcs12_gen_mac
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached:
    - PKCS7_type_is_data
    - EVP_MD_type
    - HMAC_CTX_new
    - ossl_safe_getenv
    - HMAC_Init_ex
    - HMAC_Final
    - HMAC_CTX_free
    - EVP_get_digestbyobj
    - HMAC_Update
    - pkcs12_gen_gost_mac_key
    - OPENSSL_cleanse
    - X509_ALGOR_get0
    - EVP_MD_size
    - PKCS12err
    - ASN1_INTEGER_get
    - X509_SIG_get0
    linkageType: ''
    returnType: int
    signature: "int pkcs12_gen_mac(PKCS12 *p12, const char *pass, int passlen,\n                          unsigned
      char *mac, unsigned int *maclen,\n                          int (*pkcs12_key_gen)(const
      char *pass, int passlen,\n                                                unsigned
      char *salt, int slen,\n                                                int id,
      int iter, int n,\n                                                unsigned char
      *out,\n                                                const EVP_MD *md_type))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkcs12_gen_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p12
    - pass
    - passlen
    - mac
    - maclen
    argTypes:
    - PKCS12*
    - char*
    - int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: PKCS12_gen_mac
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
    functionUses: 1
    functionsReached:
    - pkcs12_gen_mac
    linkageType: ''
    returnType: int
    signature: "int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen,\n                   unsigned
      char *mac, unsigned int *maclen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:157,1
    - Dst: pkcs12_gen_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:160,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:162,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:165,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:166,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:167,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - p12
    - pass
    - passlen
    argTypes:
    - PKCS12*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: PKCS12_verify_mac
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
    functionUses: 2
    functionsReached:
    - ASN1_STRING_length
    - pkcs12_gen_mac
    - CRYPTO_memcmp
    - PKCS12err
    - ASN1_STRING_get0_data
    - X509_SIG_get0
    linkageType: ''
    returnType: int
    signature: int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:184,1
    - Dst: PKCS12_setup_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:185,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:186,1
    - Dst: pkcs12_gen_mac
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:192,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:194,1
    - Dst: X509_SIG_getm
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:197,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:198,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - p12
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - md_type
    argTypes:
    - PKCS12*
    - char*
    - int
    - unsigned char*
    - int
    - int
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 203
    functionName: PKCS12_set_mac
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
    functionUses: 1
    functionsReached:
    - PKCS12_setup_mac
    - ASN1_OCTET_STRING_set
    - EVP_sha1
    - pkcs12_gen_mac
    - X509_SIG_getm
    - PKCS12err
    linkageType: ''
    returnType: int
    signature: "int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen,\n                   unsigned
      char *salt, int saltlen, int iter,\n                   const EVP_MD *md_type)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_MAC_DATA_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:211,1
    - Dst: PKCS12_MAC_DATA_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:214,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:217,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:218,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:221,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:222,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:228,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:229,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:234,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:237,1
    - Dst: X509_SIG_getm
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:238,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:239,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:239,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:239,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c:241,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - p12
    - iter
    - salt
    - saltlen
    - md_type
    argTypes:
    - PKCS12*
    - int
    - unsigned char*
    - int
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 246
    functionName: PKCS12_setup_mac
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_new
    - PKCS12_MAC_DATA_free
    - OPENSSL_malloc
    - OBJ_nid2obj
    - EVP_MD_type
    - X509_ALGOR_set0
    - RAND_bytes
    - memcpy
    - PKCS12_MAC_DATA_new
    - X509_SIG_getm
    - PKCS12err
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: "int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int
      saltlen,\n                     const EVP_MD *md_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_get0
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8d.c:19,1
    - Dst: PKCS12_item_decrypt_d2i
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8d.c:20,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8d.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p8
    - pass
    - passlen
    argTypes:
    - X509_SIG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: PKCS8_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8d.c
    functionUses: 4
    functionsReached:
    - X509_SIG_get0
    - ASN1_ITEM_rptr
    - PKCS12_item_decrypt_d2i
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char
      *pass,\n                                   int passlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:23,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:25,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:26,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - asc
    - asclen
    - uni
    - unilen
    argTypes:
    - char*
    - int
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 41
    functionName: OPENSSL_asc2uni
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - strlen
    - PKCS12err
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *OPENSSL_asc2uni(const char *asc, int asclen,\n                               unsigned
      char **uni, int *unilen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:55,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - uni
    - unilen
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 63
    functionName: OPENSSL_uni2asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - PKCS12err
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_uni2asc(const unsigned char *uni, int unilen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:82,1
    - Dst: UTF8_getc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:85,1
    - Dst: OPENSSL_asc2uni
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:104,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:117,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:118,1
    - Dst: UTF8_getc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:123,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - asc
    - asclen
    - uni
    - unilen
    argTypes:
    - char*
    - int
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 147
    functionName: OPENSSL_utf82uni
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_asc2uni
    - OPENSSL_malloc
    - UTF8_getc
    - PKCS12err
    - strlen
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *OPENSSL_utf82uni(const char *asc, int asclen,\n                                unsigned
      char **uni, int *unilen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_putc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - str
    - utf16
    - len
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 174
    functionName: bmp_to_utf8
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: int bmp_to_utf8(char *str, const unsigned char *utf16, int len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bmp_to_utf8
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:186,1
    - Dst: OPENSSL_uni2asc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:192,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:202,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:203,1
    - Dst: bmp_to_utf8
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:209,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - uni
    - unilen
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 220
    functionName: OPENSSL_uni2utf8
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - bmp_to_utf8
    - OPENSSL_malloc
    - OPENSSL_uni2asc
    - PKCS12err
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:224,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p12
    argTypes:
    - BIO*
    - PKCS12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: i2d_PKCS12_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:230,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p12
    argTypes:
    - FILE*
    - PKCS12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: i2d_PKCS12_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:236,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p12
    argTypes:
    - BIO*
    - PKCS12**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: d2i_PKCS12_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: PKCS12
    signature: PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:242,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p12
    argTypes:
    - FILE*
    - PKCS12**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: d2i_PKCS12_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: PKCS12
    signature: PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: min
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c
    functionUses: 253
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(a,b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_asc2uni
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:41,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:42,1
    - Dst: PKCS12_key_gen_uni
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:45,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 9
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - id
    - iter
    - n
    - out
    - md_type
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: PKCS12_key_gen_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - OPENSSL_asc2uni
    - PKCS12err
    - OPENSSL_clear_free
    - PKCS12_key_gen_uni
    linkageType: ''
    returnType: int
    signature: "int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char
      *salt,\n                       int saltlen, int id, int iter, int n,\n                       unsigned
      char *out, const EVP_MD *md_type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_utf82uni
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:64,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:65,1
    - Dst: PKCS12_key_gen_uni
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:68,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 9
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - id
    - iter
    - n
    - out
    - md_type
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: PKCS12_key_gen_utf8
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - PKCS12err
    - OPENSSL_clear_free
    - PKCS12_key_gen_uni
    - OPENSSL_utf82uni
    linkageType: ''
    returnType: int
    signature: "int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char
      *salt,\n                        int saltlen, int id, int iter, int n,\n                        unsigned
      char *out, const EVP_MD *md_type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:90,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:95,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:96,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:97,1
    - Dst: h__dump
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:98,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:99,1
    - Dst: h__dump
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:100,1
    - Dst: EVP_MD_block_size
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:102,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:103,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:106,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:107,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:108,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:115,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:126,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:127,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:128,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:129,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:132,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:133,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:134,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:137,1
    - Dst: min
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:137,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:140,1
    - Dst: h__dump
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:141,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:165,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:168,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:169,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:170,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:171,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:172,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 75
    argCount: 9
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - id
    - iter
    - n
    - out
    - md_type
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 174
    functionName: PKCS12_key_gen_uni
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c
    functionUses: 2
    functionsReached:
    - EVP_DigestFinal_ex
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - OPENSSL_free
    - min
    - memcpy
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - h__dump
    - EVP_MD_CTX_free
    - EVP_MD_size
    - PKCS12err
    - EVP_MD_block_size
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned
      char *salt,\n                       int saltlen, int id, int iter, int n,\n
      \                      unsigned char *out, const EVP_MD *md_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:180,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: h__dump
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void h__dump(unsigned char *p, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_get_attr_gen
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bag
    - attr_nid
    argTypes:
    - PKCS12_SAFEBAG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: PKCS12_get_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_get_attr_gen
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, int attr_nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_get_attr_gen
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bag
    - attr_nid
    argTypes:
    - PKCS12_SAFEBAG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: PKCS12_SAFEBAG_get0_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - PKCS12_get_attr_gen
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag,\n                                          int
      attr_nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_get_attr_gen
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:30,1
    - Dst: PKCS8_pkey_get0_attrs
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p8
    - attr_nid
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: PKCS8_get_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_get_attr_gen
    - PKCS8_pkey_get0_attrs
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: PKCS12_SAFEBAG_get0_p8inf
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - PKCS12_SAFEBAG_get_nid
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG
      *bag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: PKCS12_SAFEBAG_get0_pkcs8
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: X509_SIG
    signature: X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: PKCS12_SAFEBAG_get0_safes
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: STACK_OF
    signature: 'STACK_OF *

      PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: PKCS12_SAFEBAG_get0_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: PKCS12_SAFEBAG_get_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 3
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:67,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: PKCS12_SAFEBAG_get_bag_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - PKCS12_SAFEBAG_get_nid
    linkageType: ''
    returnType: int
    signature: int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:76,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:78,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:80,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: PKCS12_SAFEBAG_get1_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - PKCS12_SAFEBAG_get_nid
    - ASN1_ITEM_rptr
    - ASN1_item_unpack
    linkageType: ''
    returnType: X509
    signature: X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:86,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:88,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:90,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: PKCS12_SAFEBAG_get1_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - PKCS12_SAFEBAG_get_nid
    - ASN1_ITEM_rptr
    - ASN1_item_unpack
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_pack_safebag
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:96,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x509
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: PKCS12_SAFEBAG_create_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PKCS12_item_pack_safebag
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_pack_safebag
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:102,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: PKCS12_SAFEBAG_create_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PKCS12_item_pack_safebag
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:110,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:113,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p8
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: PKCS12_SAFEBAG_create0_p8inf
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - PKCS12err
    - PKCS12_SAFEBAG_new
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:125,1
    - Dst: PKCS12err
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:129,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p8
    argTypes:
    - X509_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: PKCS12_SAFEBAG_create0_pkcs8
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - PKCS12err
    - PKCS12_SAFEBAG_new
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:148,1
    - Dst: PKCS8_encrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:152,1
    - Dst: PKCS12_SAFEBAG_create0_pkcs8
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:157,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - pbe_nid
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - p8inf
    argTypes:
    - int
    - char*
    - int
    - unsigned char*
    - int
    - int
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 162
    functionName: PKCS12_SAFEBAG_create_pkcs8_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_SAFEBAG_create0_pkcs8
    - PKCS8_encrypt
    - X509_SIG_free
    - EVP_get_cipherbynid
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: "PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid,\n
      \                                                   const char *pass,\n                                                    int
      passlen,\n                                                    unsigned char
      *salt,\n                                                    int saltlen, int
      iter,\n                                                    PKCS8_PRIV_KEY_INFO
      *p8inf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: PKCS12_add_localkeyid
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
    functionUses: 1
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name,\n
      \                         int namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p8
    - usage
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: PKCS8_add_keyusage
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - PKCS8_pkey_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: PKCS12_add_friendlyname_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name,\n
      \                               int namelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: PKCS12_add_friendlyname_utf8
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name,\n
      \                               int namelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: PKCS12_add_friendlyname_uni
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag,\n                                const
      unsigned char *name, int namelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: PKCS12_add_CSPName_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, int
      namelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:82,1
    - Dst: X509at_get_attr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:83,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - attrs
    - attr_nid
    argTypes:
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: PKCS12_get_attr_gen
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
    functionUses: 3
    functionsReached:
    - X509at_get_attr_by_NID
    - X509at_get_attr
    - X509_ATTRIBUTE_get0_type
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs,\n
      \                              int attr_nid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:91,1
    - Dst: OPENSSL_uni2utf8
      Src: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: PKCS12_get_friendlyname
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - PKCS12_SAFEBAG_get0_attr
    - OPENSSL_uni2utf8
    linkageType: ''
    returnType: char
    signature: char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: PKCS12_SAFEBAG_get0_attrs
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: 'STACK_OF *

      PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_thread_start
      Src: /src/openssl-1.1.1g/crypto/async/async.c:37,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/async/async.c:40,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:42,1
    - Dst: async_fibre_init_dispatcher
      Src: /src/openssl-1.1.1g/crypto/async/async.c:46,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: async_ctx_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - async_fibre_init_dispatcher
    - OPENSSL_free
    - ossl_init_thread_start
    - CRYPTO_THREAD_set_local
    - ASYNCerr
    linkageType: ''
    returnType: async_ctx
    signature: async_ctx *async_ctx_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: async_get_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    linkageType: ''
    returnType: async_ctx
    signature: async_ctx *async_get_ctx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openssl-1.1.1g/crypto/async/async.c:68,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:70,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: async_ctx_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    - OPENSSL_free
    - async_get_ctx
    linkageType: ''
    returnType: int
    signature: int async_ctx_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/async/async.c:82,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: async_job_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - ASYNCerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASYNC_JOB
    signature: ASYNC_JOB *async_job_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:96,1
    - Dst: async_fibre_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:97,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - job
    argTypes:
    - ASYNC_JOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: async_job_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_fibre_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void async_job_free(ASYNC_JOB *job)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:106,1
    - Dst: ASYNC_init_thread
      Src: /src/openssl-1.1.1g/crypto/async/async.c:112,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:114,1
    - Dst: sk_ASYNC_JOB_pop
      Src: /src/openssl-1.1.1g/crypto/async/async.c:117,1
    - Dst: async_job_new
      Src: /src/openssl-1.1.1g/crypto/async/async.c:123,1
    - Dst: async_fibre_makecontext
      Src: /src/openssl-1.1.1g/crypto/async/async.c:125,1
    - Dst: async_job_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 133
    functionName: async_get_pool_job
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - async_job_new
    - ASYNC_init_thread
    - sk_ASYNC_JOB_pop
    - async_job_free
    - async_fibre_makecontext
    linkageType: ''
    returnType: ASYNC_JOB
    signature: ASYNC_JOB *async_get_pool_job(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:138,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:139,1
    - Dst: sk_ASYNC_JOB_push
      Src: /src/openssl-1.1.1g/crypto/async/async.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - job
    argTypes:
    - ASYNC_JOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: async_release_job
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - OPENSSL_free
    - sk_ASYNC_JOB_push
    linkageType: ''
    returnType: void
    signature: void async_release_job(ASYNC_JOB *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openssl-1.1.1g/crypto/async/async.c:147,1
    - Dst: ASYNC_JOB*::func
      Src: /src/openssl-1.1.1g/crypto/async/async.c:152,1
    - Dst: async_fibre_swapcontext
      Src: /src/openssl-1.1.1g/crypto/async/async.c:156,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 165
    functionName: async_start_func
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - ASYNCerr
    - async_fibre_swapcontext
    - async_get_ctx
    - ASYNC_JOB*::func
    linkageType: ''
    returnType: void
    signature: void async_start_func(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/async/async.c:172,1
    - Dst: async_get_ctx
      Src: /src/openssl-1.1.1g/crypto/async/async.c:175,1
    - Dst: async_ctx_new
      Src: /src/openssl-1.1.1g/crypto/async/async.c:177,1
    - Dst: async_release_job
      Src: /src/openssl-1.1.1g/crypto/async/async.c:189,1
    - Dst: async_fibre_swapcontext
      Src: /src/openssl-1.1.1g/crypto/async/async.c:205,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:207,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:215,1
    - Dst: async_release_job
      Src: /src/openssl-1.1.1g/crypto/async/async.c:216,1
    - Dst: async_get_pool_job
      Src: /src/openssl-1.1.1g/crypto/async/async.c:223,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/async/async.c:227,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:229,1
    - Dst: async_release_job
      Src: /src/openssl-1.1.1g/crypto/async/async.c:230,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/async/async.c:234,1
    - Dst: async_fibre_swapcontext
      Src: /src/openssl-1.1.1g/crypto/async/async.c:241,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:243,1
    - Dst: async_release_job
      Src: /src/openssl-1.1.1g/crypto/async/async.c:249,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 5
    argNames:
    - job
    - wctx
    - ret
    - args
    - size
    argTypes:
    - ASYNC_JOB**
    - ASYNC_WAIT_CTX*
    - int*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 253
    functionName: ASYNC_start_job
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_release_job
    - OPENSSL_malloc
    - async_get_ctx
    - async_ctx_new
    - async_fibre_swapcontext
    - memcpy
    - OPENSSL_init_crypto
    - async_get_pool_job
    - ASYNCerr
    linkageType: ''
    returnType: int
    signature: "int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *wctx, int *ret,\n
      \                   int (*func)(void *), void *args, size_t size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openssl-1.1.1g/crypto/async/async.c:258,1
    - Dst: async_fibre_swapcontext
      Src: /src/openssl-1.1.1g/crypto/async/async.c:273,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:275,1
    - Dst: async_wait_ctx_reset_counts
      Src: /src/openssl-1.1.1g/crypto/async/async.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 282
    functionName: ASYNC_pause_job
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 2
    functionsReached:
    - ASYNCerr
    - async_get_ctx
    - async_fibre_swapcontext
    - async_wait_ctx_reset_counts
    linkageType: ''
    returnType: int
    signature: int ASYNC_pause_job(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASYNC_JOB_pop
      Src: /src/openssl-1.1.1g/crypto/async/async.c:292,1
    - Dst: async_job_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pool
    argTypes:
    - async_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: async_empty_pool
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - sk_ASYNC_JOB_pop
    - async_job_free
    linkageType: ''
    returnType: void
    signature: void async_empty_pool(async_pool *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:299,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:302,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: async_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_init_local
    - CRYPTO_THREAD_cleanup_local
    linkageType: ''
    returnType: int
    signature: int async_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:312,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: async_deinit
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_cleanup_local
    linkageType: ''
    returnType: void
    signature: void async_deinit(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:322,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/async/async.c:326,1
    - Dst: ossl_init_thread_start
      Src: /src/openssl-1.1.1g/crypto/async/async.c:329,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/async/async.c:332,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:334,1
    - Dst: sk_ASYNC_JOB_new_reserve
      Src: /src/openssl-1.1.1g/crypto/async/async.c:338,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:340,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:341,1
    - Dst: async_job_new
      Src: /src/openssl-1.1.1g/crypto/async/async.c:350,1
    - Dst: async_fibre_makecontext
      Src: /src/openssl-1.1.1g/crypto/async/async.c:351,1
    - Dst: async_job_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:356,1
    - Dst: sk_ASYNC_JOB_push
      Src: /src/openssl-1.1.1g/crypto/async/async.c:360,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:364,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async.c:365,1
    - Dst: async_empty_pool
      Src: /src/openssl-1.1.1g/crypto/async/async.c:371,1
    - Dst: sk_ASYNC_JOB_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:372,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:373,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - max_size
    - init_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 375
    functionName: ASYNC_init_thread
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - sk_ASYNC_JOB_free
    - OPENSSL_free
    - ossl_init_thread_start
    - async_job_new
    - OPENSSL_init_crypto
    - async_empty_pool
    - CRYPTO_THREAD_set_local
    - sk_ASYNC_JOB_new_reserve
    - OPENSSL_zalloc
    - async_job_free
    - sk_ASYNC_JOB_push
    - ASYNCerr
    - async_fibre_makecontext
    linkageType: ''
    returnType: int
    signature: int ASYNC_init_thread(size_t max_size, size_t init_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:379,1
    - Dst: async_empty_pool
      Src: /src/openssl-1.1.1g/crypto/async/async.c:382,1
    - Dst: sk_ASYNC_JOB_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:383,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:384,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/async/async.c:385,1
    - Dst: async_local_cleanup
      Src: /src/openssl-1.1.1g/crypto/async/async.c:387,1
    - Dst: async_ctx_free
      Src: /src/openssl-1.1.1g/crypto/async/async.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: async_delete_thread_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_local
    - sk_ASYNC_JOB_free
    - OPENSSL_free
    - async_empty_pool
    - async_ctx_free
    - CRYPTO_THREAD_set_local
    - async_local_cleanup
    linkageType: ''
    returnType: void
    signature: void async_delete_thread_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/async/async.c:393,1
    - Dst: async_delete_thread_state
      Src: /src/openssl-1.1.1g/crypto/async/async.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 4
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: ASYNC_cleanup_thread
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - async_delete_thread_state
    linkageType: ''
    returnType: void
    signature: void ASYNC_cleanup_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/async/async.c:403,1
    - Dst: async_get_ctx
      Src: /src/openssl-1.1.1g/crypto/async/async.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: ASYNC_get_current_job
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - async_get_ctx
    linkageType: ''
    returnType: ASYNC_JOB
    signature: ASYNC_JOB *ASYNC_get_current_job(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - ASYNC_JOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: ASYNC_get_wait_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASYNC_WAIT_CTX
    signature: ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/async/async.c:422,1
    - Dst: async_get_ctx
      Src: /src/openssl-1.1.1g/crypto/async/async.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 433
    functionName: ASYNC_block_pause
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - async_get_ctx
    linkageType: ''
    returnType: void
    signature: void ASYNC_block_pause(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/async/async.c:439,1
    - Dst: async_get_ctx
      Src: /src/openssl-1.1.1g/crypto/async/async.c:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 451
    functionName: ASYNC_unblock_pause
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - async_get_ctx
    linkageType: ''
    returnType: void
    signature: void ASYNC_unblock_pause(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/async/async_wait.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ASYNC_WAIT_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async_wait.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASYNC_WAIT_CTX
    signature: ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct fd_lookup_st*::cleanup
      Src: /src/openssl-1.1.1g/crypto/async/async_wait.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async_wait.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async_wait.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASYNC_WAIT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: ASYNC_WAIT_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async_wait.c
    functionUses: 0
    functionsReached:
    - struct fd_lookup_st*::cleanup
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/async/async_wait.c:50,1
    - Dst: ASYNCerr
      Src: /src/openssl-1.1.1g/crypto/async/async_wait.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - fd
    - custom_data
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: ASYNC_WAIT_CTX_set_wait_fd
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async_wait.c
    functionUses: 2
    functionsReached:
    - ASYNCerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: "int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key,\n
      \                              OSSL_ASYNC_FD fd, void *custom_data,\n                               void
      (*cleanup)(ASYNC_WAIT_CTX *, const void *,\n                                               OSSL_ASYNC_FD,
      void *))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - fd
    - custom_data
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: ASYNC_WAIT_CTX_get_fd
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async_wait.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key,\n
      \                         OSSL_ASYNC_FD *fd, void **custom_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - fd
    - numfds
    argTypes:
    - ASYNC_WAIT_CTX*
    - OSSL_ASYNC_FD*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: ASYNC_WAIT_CTX_get_all_fds
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async_wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD
      *fd,\n                               size_t *numfds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - addfd
    - numaddfds
    - delfd
    - numdelfds
    argTypes:
    - ASYNC_WAIT_CTX*
    - OSSL_ASYNC_FD*
    - size_t*
    - OSSL_ASYNC_FD*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 138
    functionName: ASYNC_WAIT_CTX_get_changed_fds
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async_wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD
      *addfd,\n                                   size_t *numaddfds, OSSL_ASYNC_FD
      *delfd,\n                                   size_t *numdelfds)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async_wait.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 183
    functionName: ASYNC_WAIT_CTX_clear_fd
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async_wait.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/async_wait.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASYNC_WAIT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: async_wait_ctx_reset_counts
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async_wait.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void async_wait_ctx_reset_counts(ASYNC_WAIT_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/async/async_err.c:45,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/async/async_err.c:46,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/async/async_err.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: ERR_load_ASYNC_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/async_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_ASYNC_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ASYNC_is_capable
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASYNC_is_capable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: async_local_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_null.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_local_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - o
    - ','
    - n
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: async_fibre_swapcontext
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_win.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_swapcontext(o,n,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: async_fibre_makecontext
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_win.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_makecontext(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: async_fibre_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_win.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_free(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - o
    - ','
    - n
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: async_fibre_swapcontext
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_null.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_swapcontext(o,n,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: async_fibre_makecontext
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_null.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_makecontext(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ASYNC_is_capable
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASYNC_is_capable(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_win.c:25,1
    - Dst: ConvertFiberToThread
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_win.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: async_local_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_win.c
    functionUses: 1
    functionsReached:
    - ConvertFiberToThread
    - async_get_ctx
    linkageType: ''
    returnType: void
    signature: void async_local_cleanup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ConvertThreadToFiber
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_win.c:37,1
    - Dst: GetCurrentFiber
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_win.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fibre
    argTypes:
    - async_fibre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: async_fibre_init_dispatcher
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_win.c
    functionUses: 1
    functionsReached:
    - GetCurrentFiber
    - ConvertThreadToFiber
    linkageType: ''
    returnType: int
    signature: int async_fibre_init_dispatcher(async_fibre *fibre)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_start_func
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_win.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - PVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: async_start_func_win
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_win.c
    functionUses: 0
    functionsReached:
    - async_start_func
    linkageType: ''
    returnType: VOID
    signature: VOID async_start_func_win(PVOID unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getcontext
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: ASYNC_is_capable
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c
    functionUses: 0
    functionsReached:
    - getcontext
    linkageType: ''
    returnType: int
    signature: int ASYNC_is_capable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: async_local_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_local_cleanup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getcontext
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c:38,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c:39,1
    - Dst: makecontext
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - fibre
    argTypes:
    - async_fibre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: async_fibre_makecontext
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c
    functionUses: 2
    functionsReached:
    - makecontext
    - OPENSSL_malloc
    - getcontext
    linkageType: ''
    returnType: int
    signature: int async_fibre_makecontext(async_fibre *fibre)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fibre
    argTypes:
    - async_fibre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: async_fibre_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void async_fibre_free(async_fibre *fibre)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _setjmp
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_posix.h:41,1
    - Dst: _longjmp
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_posix.h:43,1
    - Dst: setcontext
      Src: /src/openssl-1.1.1g/crypto/async/arch/async_posix.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - o
    - n
    - r
    argTypes:
    - async_fibre*
    - async_fibre*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: async_fibre_swapcontext
    functionSourceFile: /src/openssl-1.1.1g/crypto/async/arch/async_posix.h
    functionUses: 3
    functionsReached:
    - _longjmp
    - _setjmp
    - setcontext
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline async_fibre_swapcontext(async_fibre *o, async_fibre *n,
      int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - WHIRLPOOL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: WHIRLPOOL_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int WHIRLPOOL_Init(WHIRLPOOL_CTX *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_BitUpdate
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:76,1
    - Dst: WHIRLPOOL_BitUpdate
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - c
    - _inp
    - bytes
    argTypes:
    - WHIRLPOOL_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 84
    functionName: WHIRLPOOL_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - WHIRLPOOL_BitUpdate
    linkageType: ''
    returnType: int
    signature: int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *_inp, size_t bytes)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: whirlpool_block
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:111,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:121,1
    - Dst: whirlpool_block
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:123,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:126,1
    - Dst: whirlpool_block
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:162,1
    - Dst: whirlpool_block
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:180,1
    - Dst: whirlpool_block
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:195,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 3
    argNames:
    - c
    - _inp
    - bits
    argTypes:
    - WHIRLPOOL_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 206
    functionName: WHIRLPOOL_BitUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c
    functionUses: 1
    functionsReached:
    - memcpy
    - whirlpool_block
    linkageType: ''
    returnType: void
    signature: void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *_inp, size_t
      bits)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:224,1
    - Dst: whirlpool_block
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:225,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:229,1
    - Dst: whirlpool_block
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:237,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:240,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - WHIRLPOOL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 245
    functionName: WHIRLPOOL_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - memset
    - memcpy
    - whirlpool_block
    linkageType: ''
    returnType: int
    signature: int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_Init
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:254,1
    - Dst: WHIRLPOOL_Update
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:255,1
    - Dst: WHIRLPOOL_Final
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - inp
    - bytes
    - md
    argTypes:
    - void*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: WHIRLPOOL
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - WHIRLPOOL_Final
    - WHIRLPOOL_Init
    - WHIRLPOOL_Update
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - inp
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: GO_FOR_MMX
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GO_FOR_MMX(ctx,inp,num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(i,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(i,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: LL
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL(c0,c1,c2,c3,c4,c5,c6,c7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: C0
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C0(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: C1
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C1(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: C2
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C2(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: C3
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C3(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: C4
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C4(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: C5
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C5(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: C6
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C6(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: C7
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C7(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: LL
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL(c0,c1,c2,c3,c4,c5,c6,c7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: C0
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C0(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: C1
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C1(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: C2
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C2(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: C3
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C3(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: C4
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C4(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: C5
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C5(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: C6
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C6(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: C7
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C7(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: LL
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL(c0,c1,c2,c3,c4,c5,c6,c7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: C0
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C0(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: C1
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C1(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: C2
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C2(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: C3
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C3(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: C4
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C4(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: C5
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C5(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: C6
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C6(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: C7
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C7(K,i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GO_FOR_MMX
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:489,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:501,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:501,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:502,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:502,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:503,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:503,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:504,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:504,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:506,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:508,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:508,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:509,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:509,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:510,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:510,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:511,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:511,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:513,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:522,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:547,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:547,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:547,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:547,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:548,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:548,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:548,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:548,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:549,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:549,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:549,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:549,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:550,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:550,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:550,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:550,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:551,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:551,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:551,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:551,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:552,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:552,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:552,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:552,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:553,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:553,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:553,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:553,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:554,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:554,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:554,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:554,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:555,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:555,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:555,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:555,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:556,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:556,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:556,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:556,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:557,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:557,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:557,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:557,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:558,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:558,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:558,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:558,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:559,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:559,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:559,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:559,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:560,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:560,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:560,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:560,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:561,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:561,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:561,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:561,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:562,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:562,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:562,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:562,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:573,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:573,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:573,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:573,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:574,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:574,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:574,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:574,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:575,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:575,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:575,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:575,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:576,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:576,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:576,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:576,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:577,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:577,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:577,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:577,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:578,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:578,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:578,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:578,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:579,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:579,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:579,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:579,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:580,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:580,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:580,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:580,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:581,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:581,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:581,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:581,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:582,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:582,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:582,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:582,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:583,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:583,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:583,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:583,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:584,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:584,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:584,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:584,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:585,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:585,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:585,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:585,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:586,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:586,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:586,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:586,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:587,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:587,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:587,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:587,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:588,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:588,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:588,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:588,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:599,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:600,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:601,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:602,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:603,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:604,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:605,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:606,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:609,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:610,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:611,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:612,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:613,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:614,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:615,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:616,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:618,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:619,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:620,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:621,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:622,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:623,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:624,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:625,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:627,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:628,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:629,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:630,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:631,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:632,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:633,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:634,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:636,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:637,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:638,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:639,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:640,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:641,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:642,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:643,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:645,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:646,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:647,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:648,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:649,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:650,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:651,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:652,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:654,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:655,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:656,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:657,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:658,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:659,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:660,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:661,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:663,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:664,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:665,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:666,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:667,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:668,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:669,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:670,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:681,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:682,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:683,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:684,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:685,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:686,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:687,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:688,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:690,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:691,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:692,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:693,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:694,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:695,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:696,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:697,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:699,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:700,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:701,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:702,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:703,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:704,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:705,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:706,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:708,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:709,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:710,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:711,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:712,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:713,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:714,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:715,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:717,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:718,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:719,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:720,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:721,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:722,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:723,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:724,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:726,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:727,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:728,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:729,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:730,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:731,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:732,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:733,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:735,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:736,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:737,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:738,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:739,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:740,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:741,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:742,1
    - Dst: C0
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:744,1
    - Dst: C1
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:745,1
    - Dst: C2
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:746,1
    - Dst: C3
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:747,1
    - Dst: C4
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:748,1
    - Dst: C5
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:749,1
    - Dst: C6
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:750,1
    - Dst: C7
      Src: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c:751,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 232
    argCount: 3
    argNames:
    - ctx
    - inp
    - n
    argTypes:
    - WHIRLPOOL_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 785
    functionName: whirlpool_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    functionUses: 2
    functionsReached:
    - C1
    - C7
    - C5
    - memcpy
    - C0
    - C6
    - C2
    - C3
    - C4
    - GO_FOR_MMX
    linkageType: ''
    returnType: void
    signature: void whirlpool_block(WHIRLPOOL_CTX *ctx, const void *inp, size_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:23,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:24,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:27,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:28,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:33,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:35,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:37,1
    - Dst: n2ln
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:40,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:45,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:47,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:49,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:51,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:52,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:54,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:55,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:58,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:60,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:62,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:65,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:66,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:71,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:73,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:75,1
    - Dst: l2nn
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:78,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:82,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 6
    argNames:
    - in
    - out
    - length
    - ks
    - iv
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - IDEA_KEY_SCHEDULE*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 87
    functionName: IDEA_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/i_cbc.c
    functionUses: 0
    functionsReached:
    - n2ln
    - IDEA_encrypt
    - l2n
    - l2nn
    - n2l
    linkageType: ''
    returnType: void
    signature: "void IDEA_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv,\n
      \                     int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: E_IDEA
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:101,1
    - Dst: E_IDEA
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:102,1
    - Dst: E_IDEA
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:103,1
    - Dst: E_IDEA
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:104,1
    - Dst: E_IDEA
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:105,1
    - Dst: E_IDEA
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:106,1
    - Dst: E_IDEA
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:107,1
    - Dst: E_IDEA
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:108,1
    - Dst: idea_mul
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:111,1
    - Dst: idea_mul
      Src: /src/openssl-1.1.1g/crypto/idea/i_cbc.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - IDEA_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 122
    functionName: IDEA_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/i_cbc.c
    functionUses: 1
    functionsReached:
    - E_IDEA
    - idea_mul
    linkageType: ''
    returnType: void
    signature: void IDEA_encrypt(unsigned long *d, IDEA_KEY_SCHEDULE *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c:32,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c:33,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c:37,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c:38,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c:41,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c:44,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c:46,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c:56,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - IDEA_KEY_SCHEDULE*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: IDEA_ofb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void IDEA_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, IDEA_KEY_SCHEDULE *schedule,\n                        unsigned
      char *ivec, int *num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:20,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:21,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:22,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:23,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:24,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:25,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:26,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - key
    - ks
    argTypes:
    - unsigned char*
    - IDEA_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 52
    functionName: IDEA_set_encrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/i_skey.c
    functionUses: 0
    functionsReached:
    - n2s
    linkageType: ''
    returnType: void
    signature: void IDEA_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE
      *ks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inverse
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:62,1
    - Dst: inverse
      Src: /src/openssl-1.1.1g/crypto/idea/i_skey.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ek
    - dk
    argTypes:
    - IDEA_KEY_SCHEDULE*
    - IDEA_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 81
    functionName: IDEA_set_decrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/i_skey.c
    functionUses: 0
    functionsReached:
    - inverse
    linkageType: ''
    returnType: void
    signature: void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE
      *dk)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - xin
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 112
    functionName: inverse
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/i_skey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: IDEA_INT
    signature: IDEA_INT inverse(unsigned int xin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: IDEA_options
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/i_ecb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *IDEA_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_ecb.c:24,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_ecb.c:26,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-1.1.1g/crypto/idea/i_ecb.c:28,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_ecb.c:30,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_ecb.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - in
    - out
    - ks
    argTypes:
    - unsigned char*
    - unsigned char*
    - IDEA_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: IDEA_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/i_ecb.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void IDEA_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     IDEA_KEY_SCHEDULE *ks)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:33,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:35,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:37,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:40,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:42,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:53,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:55,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:57,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:60,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - IDEA_KEY_SCHEDULE*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: IDEA_cfb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void IDEA_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, IDEA_KEY_SCHEDULE *schedule,\n                        unsigned
      char *ivec, int *num, int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - ul
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 19
    functionName: idea_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: idea_mul(r,a,b,ul)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: n2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: l2nn
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: n2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/idea_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: l2n
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/idea_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: s2n
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/idea_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: n2s
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2s(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: E_IDEA
    functionSourceFile: /src/openssl-1.1.1g/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_IDEA(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2s_Init
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c:28,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c
    functionUses: 42
    functionsReached:
    - EVP_MD_CTX_md_data
    - BLAKE2s_Init
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2s_Update
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c:33,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c
    functionUses: 6
    functionsReached:
    - BLAKE2s_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2s_Final
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c:38,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c
    functionUses: 6
    functionsReached:
    - EVP_MD_CTX_md_data
    - BLAKE2s_Final
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: EVP_blake2s256
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_blake2s256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - S
    argTypes:
    - BLAKE2B_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: blake2b_set_lastblock
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline blake2b_set_lastblock(BLAKE2B_CTX *S)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - BLAKE2B_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: blake2b_init0
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline blake2b_init0(BLAKE2B_CTX *S)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init0
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:70,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:74,1
    - Dst: load64
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - BLAKE2B_CTX*
    - BLAKE2B_PARAM*
    assertStmts:
    - condition: (sizeof(BLAKE2B_PARAM) == 64)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: blake2b_init_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_init0
    - load64
    - assert
    linkageType: ''
    returnType: void
    signature: void blake2b_init_param(BLAKE2B_CTX *S, const BLAKE2B_PARAM *P)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:89,1
    - Dst: store64
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:90,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:93,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:94,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:95,1
    - Dst: blake2b_init_param
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - BLAKE2B_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: BLAKE2b_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - store64
    - store32
    - memset
    - blake2b_init_param
    linkageType: ''
    returnType: int
    signature: int BLAKE2b_Init(BLAKE2B_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:120,1
    - Dst: load64
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:137,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:177,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:180,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:181,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:182,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:183,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:184,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:185,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:186,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:187,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:188,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:189,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:190,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 3
    argNames:
    - S
    - blocks
    - len
    argTypes:
    - BLAKE2B_CTX*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (len < BLAKE2B_BLOCKBYTES || len % BLAKE2B_BLOCKBYTES == 0)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    constantsTouched: []
    func_position:
      end: 202
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 202
    functionName: blake2b_compress
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - ROUND
    - load64
    - assert
    linkageType: ''
    returnType: void
    signature: "void blake2b_compress(BLAKE2B_CTX *S,\n                            const
      uint8_t *blocks,\n                            size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: G
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    functionUses: 122
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(r,i,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: ROUND
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:221,1
    - Dst: blake2b_compress
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:222,1
    - Dst: blake2b_compress
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:235,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:241,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - c
    - data
    - datalen
    argTypes:
    - BLAKE2B_CTX*
    - void*
    - size_t
    assertStmts:
    - condition: (datalen <= BLAKE2B_BLOCKBYTES)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    constantsTouched: []
    func_position:
      end: 247
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 247
    functionName: BLAKE2b_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_compress
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int BLAKE2b_Update(BLAKE2B_CTX *c, const void *data, size_t datalen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_set_lastblock
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:257,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:259,1
    - Dst: blake2b_compress
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:260,1
    - Dst: store64
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:264,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2b.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - BLAKE2B_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: BLAKE2b_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - store64
    - memset
    - blake2b_set_lastblock
    - blake2b_compress
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int BLAKE2b_Final(unsigned char *md, BLAKE2B_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - S
    argTypes:
    - BLAKE2S_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: blake2s_set_lastblock
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline blake2s_set_lastblock(BLAKE2S_CTX *S)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - BLAKE2S_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: blake2s_init0
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline blake2s_init0(BLAKE2S_CTX *S)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:69,1
    - Dst: blake2s_init0
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:70,1
    - Dst: load32
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - BLAKE2S_CTX*
    - BLAKE2S_PARAM*
    assertStmts:
    - condition: (sizeof(BLAKE2S_PARAM) == 32)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: blake2s_init_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    functionUses: 0
    functionsReached:
    - blake2s_init0
    - load32
    - assert
    linkageType: ''
    returnType: void
    signature: void blake2s_init_param(BLAKE2S_CTX *S, const BLAKE2S_PARAM *P)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:86,1
    - Dst: store48
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:87,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:90,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:91,1
    - Dst: blake2s_init_param
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - BLAKE2S_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: BLAKE2s_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    functionUses: 1
    functionsReached:
    - blake2s_init_param
    - store48
    - store32
    - memset
    linkageType: ''
    returnType: int
    signature: int BLAKE2s_Init(BLAKE2S_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:116,1
    - Dst: load32
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:133,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:173,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:176,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:177,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:178,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:179,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:180,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:181,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:182,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:183,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:184,1
    - Dst: ROUND
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 3
    argNames:
    - S
    - blocks
    - len
    argTypes:
    - BLAKE2S_CTX*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (len < BLAKE2S_BLOCKBYTES || len % BLAKE2S_BLOCKBYTES == 0)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    constantsTouched: []
    func_position:
      end: 196
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 196
    functionName: blake2s_compress
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    functionUses: 0
    functionsReached:
    - ROUND
    - load32
    - assert
    linkageType: ''
    returnType: void
    signature: "void blake2s_compress(BLAKE2S_CTX *S,\n                            const
      uint8_t *blocks,\n                            size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: G
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    functionUses: 122
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(r,i,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: ROUND
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:215,1
    - Dst: blake2s_compress
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:216,1
    - Dst: blake2s_compress
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:229,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:235,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - c
    - data
    - datalen
    argTypes:
    - BLAKE2S_CTX*
    - void*
    - size_t
    assertStmts:
    - condition: (datalen <= BLAKE2S_BLOCKBYTES)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    constantsTouched: []
    func_position:
      end: 241
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 241
    functionName: BLAKE2s_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    functionUses: 1
    functionsReached:
    - blake2s_compress
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int BLAKE2s_Update(BLAKE2S_CTX *c, const void *data, size_t datalen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_set_lastblock
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:251,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:253,1
    - Dst: blake2s_compress
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:254,1
    - Dst: store32
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:258,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2s.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - BLAKE2S_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: BLAKE2s_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
    functionUses: 1
    functionsReached:
    - blake2s_set_lastblock
    - memset
    - blake2s_compress
    - store32
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int BLAKE2s_Final(unsigned char *md, BLAKE2S_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2b_Init
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c:28,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c
    functionUses: 42
    functionsReached:
    - BLAKE2b_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2b_Update
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c:33,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c
    functionUses: 6
    functionsReached:
    - EVP_MD_CTX_md_data
    - BLAKE2b_Update
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2b_Final
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c:38,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c
    functionUses: 6
    functionsReached:
    - EVP_MD_CTX_md_data
    - BLAKE2b_Final
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: EVP_blake2b512
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_blake2b512(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 37
    functionName: load32
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline load32(const uint8_t *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: load64
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline load64(const uint8_t *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: store32
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline store32(uint8_t *dst, uint32_t w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: store64
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline store64(uint8_t *dst, uint64_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: load48
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline load48(const uint8_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: store48
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline store48(uint8_t *dst, uint64_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: rotr32
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline rotr32(const uint32_t w, const unsigned int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: rotr64
    functionSourceFile: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline rotr64(const uint64_t w, const unsigned int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: c2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: l2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:34,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - MDC2_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: MDC2_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int MDC2_Init(MDC2_CTX *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:47,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:53,1
    - Dst: mdc2_body
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:57,1
    - Dst: mdc2_body
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:62,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - c
    - in
    - len
    argTypes:
    - MDC2_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: MDC2_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mdc2_body
    linkageType: ''
    returnType: int
    signature: int MDC2_Update(MDC2_CTX *c, const unsigned char *in, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:81,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:83,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:88,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:89,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:90,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:92,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:93,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:94,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:102,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:103,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:105,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 3
    argNames:
    - c
    - in
    - len
    argTypes:
    - MDC2_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 108
    functionName: mdc2_body
    functionSourceFile: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c
    functionUses: 1
    functionsReached:
    - DES_encrypt1
    - c2l
    - DES_set_key_unchecked
    - l2c
    - DES_set_odd_parity
    linkageType: ''
    returnType: void
    signature: void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:120,1
    - Dst: mdc2_body
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:121,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:123,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - MDC2_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: MDC2_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - mdc2_body
    linkageType: ''
    returnType: int
    signature: int MDC2_Final(unsigned char *md, MDC2_CTX *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Init
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2_one.c:21,1
    - Dst: MDC2_Update
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2_one.c:23,1
    - Dst: MDC2_Final
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2_one.c:24,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/mdc2/mdc2_one.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 27
    functionName: MDC2
    functionSourceFile: /src/openssl-1.1.1g/crypto/mdc2/mdc2_one.c
    functionUses: 0
    functionsReached:
    - MDC2_Update
    - MDC2_Init
    - MDC2_Final
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:22,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:23,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:26,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:27,1
    - Dst: RC2_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:32,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:34,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:36,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:39,1
    - Dst: RC2_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:44,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:46,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:48,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:50,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:51,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:53,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:54,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:57,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:59,1
    - Dst: RC2_decrypt
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:61,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:64,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:65,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:70,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:72,1
    - Dst: RC2_decrypt
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:74,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:77,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:81,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 6
    argNames:
    - in
    - out
    - length
    - ks
    - iv
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC2_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 86
    functionName: RC2_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c
    functionUses: 0
    functionsReached:
    - RC2_decrypt
    - c2ln
    - c2l
    - l2cn
    - l2c
    - RC2_encrypt
    linkageType: ''
    returnType: void
    signature: "void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out,
      long length,\n                     RC2_KEY *ks, unsigned char *iv, int encrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC2_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 132
    functionName: RC2_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RC2_encrypt(unsigned long *d, RC2_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC2_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 179
    functionName: RC2_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RC2_decrypt(unsigned long *d, RC2_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_ecb.c:27,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_ecb.c:29,1
    - Dst: RC2_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_ecb.c:32,1
    - Dst: RC2_decrypt
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_ecb.c:34,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_ecb.c:36,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2_ecb.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - RC2_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 40
    functionName: RC2_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_ecb.c
    functionUses: 0
    functionsReached:
    - RC2_decrypt
    - l2c
    - c2l
    - RC2_encrypt
    linkageType: ''
    returnType: void
    signature: "void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out,
      RC2_KEY *ks,\n                     int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: c2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: c2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: l2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: l2cn
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2cn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: n2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: l2nn
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: n2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: l2n
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: C_RC2
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C_RC2(n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c:32,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c:33,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c:37,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c:38,1
    - Dst: RC2_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c:41,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c:44,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c:46,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c:56,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC2_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: RC2_ofb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c
    functionUses: 0
    functionsReached:
    - RC2_encrypt
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                      long length, RC2_KEY *schedule, unsigned char *ivec,\n
      \                      int *num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - key
    - len
    - data
    - bits
    argTypes:
    - RC2_KEY*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 94
    functionName: RC2_set_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2_skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,
      int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:33,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:35,1
    - Dst: RC2_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:37,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:40,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:42,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:53,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:55,1
    - Dst: RC2_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:57,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:60,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC2_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: RC2_cfb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c
    functionUses: 0
    functionsReached:
    - l2c
    - c2l
    - RC2_encrypt
    linkageType: ''
    returnType: void
    signature: "void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                      long length, RC2_KEY *schedule, unsigned char *ivec,\n
      \                      int *num, int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 184
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_CIPHER_ecb_loop
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:68,1
    - Dst: DES_ecb3_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:69,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:71,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:71,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:72,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: des_ede_ecb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - DES_ecb3_encrypt
    - data
    - BLOCK_CIPHER_ecb_loop
    linkageType: ''
    returnType: int
    signature: "int des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:80,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:81,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:82,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:82,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:83,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:84,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:86,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:92,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:93,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:94,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:94,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:95,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:96,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 101
    functionName: des_ede_ofb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_num
    - data
    - DES_ede3_ofb64_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:106,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:110,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:115,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:117,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:118,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:124,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:126,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 129
    functionName: des_ede_cbc_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - DES_ede3_cbc_encrypt
    - data
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:135,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:136,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:137,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:137,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:138,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:139,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:140,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:141,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:147,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:148,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:149,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:149,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:150,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:151,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:152,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 156
    functionName: des_ede_cfb64_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    - data
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    - DES_ede3_cfb64_encrypt
    linkageType: ''
    returnType: int
    signature: "int des_ede_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:168,1
    - Dst: DES_ede3_cfb_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:172,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:173,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:173,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:174,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:175,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: des_ede3_cfb1_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - data
    - EVP_CIPHER_CTX_test_flags
    - DES_ede3_cfb_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int des_ede3_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_ede3_cfb_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:188,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:189,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:189,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:190,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:191,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:192,1
    - Dst: DES_ede3_cfb_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:198,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:199,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:199,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:200,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:201,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 204
    functionName: des_ede3_cfb8_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - DES_ede3_cfb_encrypt
    - EVP_CIPHER_CTX_encrypting
    - data
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:229,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:234,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:237,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:238,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:239,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:246,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:247,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 250
    functionName: des_ede_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - data
    - memcpy
    - DES_set_key_unchecked
    - des_t4_key_expand
    linkageType: ''
    returnType: int
    signature: "int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:256,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:261,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:264,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:265,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:266,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:273,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:274,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 277
    functionName: des_ede3_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - des_t4_key_expand
    - EVP_CIPHER_CTX_mode
    - data
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: "int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:286,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:286,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:288,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:289,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:290,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:291,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 298
    functionName: des3_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - DES_set_odd_parity
    - EVP_CIPHER_CTX_key_length
    linkageType: ''
    returnType: int
    signature: int des3_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: EVP_des_ede
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: EVP_des_ede3
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede3(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:325,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:325,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:327,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:334,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:337,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:339,1
    - Dst: BUF_reverse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:341,1
    - Dst: BUF_reverse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:342,1
    - Dst: BUF_reverse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:343,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:343,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:345,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:346,1
    - Dst: SHA1
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:348,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:350,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:352,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:353,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:354,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:355,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:355,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 360
    functionName: des_ede3_unwrap
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - SHA1
    - memmove
    - memcpy
    - BUF_reverse
    - des_ede_cbc_cipher
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_iv_noconst
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int des_ede3_unwrap(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:369,1
    - Dst: SHA1
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:371,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:372,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:373,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:375,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:375,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:377,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:377,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:379,1
    - Dst: BUF_reverse
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:380,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:381,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:381,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 384
    functionName: des_ede3_wrap
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - SHA1
    - RAND_bytes
    - memmove
    - memcpy
    - des_ede_cbc_cipher
    - BUF_reverse
    - EVP_CIPHER_CTX_iv_noconst
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int des_ede3_wrap(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                         const
      unsigned char *in, size_t inl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_partially_overlapping
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:397,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:398,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:402,1
    - Dst: des_ede3_wrap
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:403,1
    - Dst: des_ede3_unwrap
      Src: /src/openssl-1.1.1g/crypto/evp/e_des3.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 406
    functionName: des_ede3_wrap_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - des_ede3_wrap
    - is_partially_overlapping
    - des_ede3_unwrap
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "int des_ede3_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: EVP_des_ede3_wrap
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede3_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - datalen
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sigver.c
    functionUses: 6
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t datalen)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:29,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:37,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:38,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:42,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::verifyctx_init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:49,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:55,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::signctx_init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:60,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:66,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:70,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:76,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::digest_custom
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:83,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 6
    argNames:
    - ctx
    - pctx
    - type
    - e
    - pkey
    - ver
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX**
    - EVP_MD*
    - ENGINE*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 86
    functionName: do_sigver_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_get_digestbynid
    - EVP_PKEY_sign_init
    - EVP_PKEY_get_default_digest_nid
    - EVP_DigestInit_ex
    - EVP_MD_CTX*::pctx::pmeth::verifyctx_init
    - EVP_MD_CTX*::pctx::pmeth::digest_custom
    - EVPerr
    - EVP_PKEY_CTX_set_signature_md
    - EVP_MD_CTX*::pctx::pmeth::signctx_init
    - EVP_PKEY_verify_init
    linkageType: ''
    returnType: int
    signature: "int do_sigver_init(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n                          const
      EVP_MD *type, ENGINE *e, EVP_PKEY *pkey,\n                          int ver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sigver_init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - pctx
    - type
    - e
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX**
    - EVP_MD*
    - ENGINE*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: EVP_DigestSignInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - do_sigver_init
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n                       const
      EVP_MD *type, ENGINE *e, EVP_PKEY *pkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sigver_init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - pctx
    - type
    - e
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX**
    - EVP_MD*
    - ENGINE*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: EVP_DigestVerifyInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - do_sigver_init
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n                         const
      EVP_MD *type, ENGINE *e, EVP_PKEY *pkey)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::pmeth::signctx
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:107,1
    - Dst: EVP_PKEY_CTX*::pmeth::signctx
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:109,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:111,1
    - Dst: EVP_PKEY_CTX*::pmeth::signctx
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:114,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:115,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::signctx
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:128,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:130,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:132,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:135,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:136,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::signctx
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:140,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:143,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:144,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:148,1
    - Dst: EVP_PKEY_CTX*::pmeth::signctx
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:152,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:155,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:156,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - ctx
    - sigret
    - siglen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 161
    functionName: EVP_DigestSignFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - EVP_MD_CTX*::pctx::pmeth::signctx
    - EVP_MD_CTX_copy_ex
    - EVP_PKEY_CTX_dup
    - EVP_PKEY_CTX_free
    - EVP_MD_CTX_free
    - EVP_MD_size
    - EVP_PKEY_sign
    - EVP_PKEY_CTX*::pmeth::signctx
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,\n
      \                       size_t *siglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX*::pctx::pmeth::digestsign
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:167,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:168,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - sigret
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: EVP_DigestSign
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX*::pctx::pmeth::digestsign
    - EVP_DigestSignFinal
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t
      *siglen,\n                   const unsigned char *tbs, size_t tbslen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX*::pctx::pmeth::verifyctx
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:187,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:189,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:191,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:194,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:195,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::verifyctx
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:199,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:202,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:203,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:207,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - sig
    - siglen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 208
    functionName: EVP_DigestVerifyFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX*::pctx::pmeth::verifyctx
    - EVP_MD_CTX_new
    - EVP_MD_CTX_copy_ex
    - EVP_PKEY_verify
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig,\n
      \                         size_t siglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX*::pctx::pmeth::digestverify
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:214,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:215,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/crypto/evp/m_sigver.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - sigret
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: EVP_DigestVerify
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX*::pctx::pmeth::digestverify
    - EVP_DigestVerifyFinal
    - EVP_DigestVerifyUpdate
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret,\n
      \                    size_t siglen, const unsigned char *tbs, size_t tbslen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: PKCS5_PBE_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS5_PBE_add(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:41,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:45,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:45,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:47,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:51,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:53,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:54,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:57,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:59,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:60,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:67,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:74,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:76,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:78,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:82,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:84,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:86,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:88,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:90,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:92,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:96,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:98,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:100,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:103,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:104,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:105,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:107,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:108,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:109,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:112,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c:113,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 79
    argCount: 7
    argNames:
    - cctx
    - pass
    - passlen
    - param
    - cipher
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 115
    functionName: PKCS5_PBE_keyivgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - PBEPARAM_free
    - ASN1_INTEGER_get
    - ASN1_TYPE_unpack_sequence
    - EVP_CipherInit_ex
    - memcpy
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - EVP_CIPHER_key_length
    - EVP_MD_CTX_free
    - EVP_MD_size
    - EVPerr
    - ASN1_ITEM_rptr
    - EVP_CIPHER_iv_length
    - strlen
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *cctx, const char *pass, int
      passlen,\n                       ASN1_TYPE *param, const EVP_CIPHER *cipher,\n
      \                      const EVP_MD *md, int en_de)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:29,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:30,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:37,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:38,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:42,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:43,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:46,1
    - Dst: EVP_PKEY_decrypt_old
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:50,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:51,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:55,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:60,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 6
    argNames:
    - ctx
    - type
    - ek
    - ekl
    - iv
    - priv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - unsigned char*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 62
    functionName: EVP_OpenInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_open.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_PKEY_decrypt_old
    - EVP_CIPHER_CTX_reset
    - EVP_PKEY_id
    - EVPerr
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_set_key_length
    - EVP_PKEY_size
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,\n                 const
      unsigned char *ek, int ekl, const unsigned char *iv,\n                 EVP_PKEY
      *priv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:68,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_open.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: EVP_OpenFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_open.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptInit_ex
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:27,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:28,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:32,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:34,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:37,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:39,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:40,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:45,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:47,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:50,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:52,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:52,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:54,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_sign.c:59,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - sigret
    - siglen
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 61
    functionName: EVP_SignFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_sign.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_test_flags
    - EVP_DigestFinal_ex
    - EVP_PKEY_CTX_new
    - EVP_PKEY_size
    - EVP_MD_CTX_new
    - EVP_MD_CTX_md
    - EVP_MD_CTX_copy_ex
    - EVP_PKEY_CTX_free
    - EVP_MD_CTX_free
    - EVPerr
    - EVP_PKEY_CTX_set_signature_md
    - EVP_PKEY_sign_init
    - EVP_PKEY_sign
    linkageType: ''
    returnType: int
    signature: "int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,\n                  unsigned
      int *siglen, EVP_PKEY *pkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 192
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:39,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:44,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - user_key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char[]
    - unsigned char[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: chacha_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - CHACHA_U8TOU32
    - data
    linkageType: ''
    returnType: int
    signature: "int chacha_init_key(EVP_CIPHER_CTX *ctx,\n                           const
      unsigned char user_key[CHACHA_KEY_SIZE],\n                           const unsigned
      char iv[CHACHA_CTR_SIZE], int enc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:60,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:106,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:116,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:117,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - ctx
    - out
    - inp
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 125
    functionName: chacha_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - ChaCha20_ctr32
    - memset
    - data
    linkageType: ''
    returnType: int
    signature: "int chacha_cipher(EVP_CIPHER_CTX * ctx, unsigned char *out,\n                         const
      unsigned char *inp, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: EVP_chacha20
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_chacha20(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: aead_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aead_data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - actx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: POLY1305_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POLY1305_ctx(actx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:169,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:185,1
    - Dst: chacha_init_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:188,1
    - Dst: chacha_init_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 198
    functionName: chacha20_poly1305_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - aead_data
    - memcpy
    - chacha_init_key
    linkageType: ''
    returnType: int
    signature: "int chacha20_poly1305_init_key(EVP_CIPHER_CTX *ctx,\n                                      const
      unsigned char *inkey,\n                                      const unsigned
      char *iv, int enc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:215,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:230,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:232,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:232,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:234,1
    - Dst: xor128_encrypt_n_pad
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:241,1
    - Dst: xor128_decrypt_n_pad
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:243,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:255,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:257,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:257,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:259,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:280,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:287,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:289,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:289,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:292,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:292,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:299,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:300,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:300,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:302,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:302,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:303,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:309,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 72
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 310
    functionName: chacha20_poly1305_tls_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - ChaCha20_ctr32
    - aead_data
    - xor128_encrypt_n_pad
    - xor128_decrypt_n_pad
    - memcpy
    - Poly1305_Update
    - Poly1305_Init
    - memset
    - POLY1305_ctx
    linkageType: ''
    returnType: int
    signature: "int chacha20_poly1305_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char
      *out,\n                                        const unsigned char *in, size_t
      len)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:368,1
    - Dst: chacha20_poly1305_tls_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:374,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:377,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:379,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:379,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:385,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:385,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:394,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:394,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:401,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:401,1
    - Dst: chacha_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:413,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:414,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:414,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:419,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:419,1
    - Dst: chacha_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:420,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:437,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:437,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:443,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:443,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:447,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:447,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:468,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:468,1
    - Dst: Poly1305_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:470,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:470,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:476,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:478,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:479,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:485,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 96
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 490
    functionName: chacha20_poly1305_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - ChaCha20_ctr32
    - aead_data
    - memcpy
    - chacha20_poly1305_tls_cipher
    - Poly1305_Update
    - CRYPTO_memcmp
    - Poly1305_Init
    - Poly1305_Final
    - memset
    - POLY1305_ctx
    - chacha_cipher
    linkageType: ''
    returnType: int
    signature: "int chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                   const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:494,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:496,1
    - Dst: Poly1305_ctx_size
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: chacha20_poly1305_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - Poly1305_ctx_size
    - aead_data
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int chacha20_poly1305_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:503,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:509,1
    - Dst: Poly1305_ctx_size
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:509,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:511,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:521,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:529,1
    - Dst: Poly1305_ctx_size
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:529,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:531,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:551,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:553,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:555,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:562,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:570,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:580,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:597,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c:598,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 80
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 611
    functionName: chacha20_poly1305_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - aead_data
    - CHACHA_U8TOU32
    - memcpy
    - Poly1305_ctx_size
    - memset
    - OPENSSL_zalloc
    - EVPerr
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: "int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                 void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: EVP_chacha20_poly1305
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_chacha20_poly1305(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_bf_cfb64
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: EVP_bf_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_bf_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_bf_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_des_cfb64
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: EVP_des_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_des_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_des_ede3_cfb64
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: EVP_des_ede3_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_des_ede3_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede3_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_des_ede_cfb64
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: EVP_des_ede_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_des_ede_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_idea_cfb64
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: EVP_idea_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_idea_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_idea_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_rc2_cfb64
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: EVP_rc2_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_rc2_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc2_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_cast5_cfb64
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: EVP_cast5_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_cast5_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_cast5_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_rc5_32_12_16_cfb64
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: EVP_rc5_32_12_16_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_rc5_32_12_16_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc5_32_12_16_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_cfb128
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: EVP_aes_128_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cfb128
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_192_cfb128
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: EVP_aes_192_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_aes_192_cfb128
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_192_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_256_cfb128
      Src: /src/openssl-1.1.1g/crypto/evp/e_old.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: EVP_aes_256_cfb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_cfb128
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cfb(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:26,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:30,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:32,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:34,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:36,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: EVP_CIPHER_CTX_reset
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - EVP_CIPHER_CTX*::cipher::cleanup
    - memset
    - ENGINE_finish
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: EVP_CIPHER_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 6
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:47,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: EVP_CIPHER_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 6
    functionsReached:
    - EVP_CIPHER_CTX_reset
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:55,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - cipher
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: EVP_CipherInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_reset
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                  const unsigned char *key, const unsigned char *iv, int enc)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:89,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:96,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:97,1
    - Dst: ENGINE_get_cipher_engine
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:102,1
    - Dst: ENGINE_get_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:105,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:112,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:128,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:131,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:141,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:143,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:148,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:155,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:160,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:161,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:165,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:165,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:166,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:180,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:180,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:183,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:183,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:184,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:184,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:191,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:191,1
    - Dst: EVP_CIPHER_CTX*::cipher::init
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:200,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 96
    argCount: 6
    argNames:
    - ctx
    - cipher
    - impl
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - ENGINE*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 207
    functionName: EVP_CipherInit_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 3
    functionsReached:
    - EVP_CIPHER_CTX*::cipher::init
    - EVP_CIPHER_CTX_mode
    - OPENSSL_assert
    - EVP_CIPHER_flags
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_reset
    - ENGINE_get_cipher
    - memcpy
    - EVP_CIPHER_CTX_cipher
    - ENGINE_get_cipher_engine
    - OPENSSL_zalloc
    - EVPerr
    - ENGINE_init
    linkageType: ''
    returnType: int
    signature: "int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                     ENGINE *impl, const unsigned char *key,\n                      const
      unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:213,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: EVP_CipherUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_DecryptUpdate
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: int
    signature: "int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl,\n                     const unsigned char *in, int inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:221,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: EVP_CipherFinal_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_EncryptFinal_ex
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:229,1
    - Dst: EVP_DecryptFinal
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: EVP_CipherFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptFinal
    - EVP_EncryptFinal
    linkageType: ''
    returnType: int
    signature: int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cipher
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: EVP_EncryptInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherInit
    linkageType: ''
    returnType: int
    signature: "int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                   const unsigned char *key, const unsigned char *iv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - cipher
    - impl
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - ENGINE*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: EVP_EncryptInit_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                      ENGINE *impl, const unsigned char *key,\n                       const
      unsigned char *iv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cipher
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: EVP_DecryptInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherInit
    linkageType: ''
    returnType: int
    signature: "int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                   const unsigned char *key, const unsigned char *iv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - cipher
    - impl
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - ENGINE*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: EVP_DecryptInit_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                      ENGINE *impl, const unsigned char *key,\n                       const
      unsigned char *iv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr1
    - ptr2
    - len
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: is_partially_overlapping
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_partially_overlapping(const void *ptr1, const void *ptr2, int
      len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:303,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:314,1
    - Dst: is_partially_overlapping
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:321,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:322,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:326,1
    - Dst: is_partially_overlapping
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:334,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:335,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:340,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:349,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:352,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:358,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:361,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:371,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:377,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 380
    functionName: evp_EncryptDecryptUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - memcpy
    - EVP_CIPHER_mode
    - EVP_CIPHER_CTX_test_flags
    - is_partially_overlapping
    - EVP_CIPHER_CTX*::cipher::do_cipher
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "int evp_EncryptDecryptUpdate(EVP_CIPHER_CTX *ctx,\n                                    unsigned
      char *out, int *outl,\n                                    const unsigned char
      *in, int inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:388,1
    - Dst: evp_EncryptDecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: EVP_EncryptUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 3
    functionsReached:
    - EVPerr
    - evp_EncryptDecryptUpdate
    linkageType: ''
    returnType: int
    signature: "int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl,\n                      const unsigned char *in, int inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: EVP_EncryptFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:409,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:414,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:423,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:431,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 448
    functionName: EVP_EncryptFinal_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - EVPerr
    - OPENSSL_assert
    - EVP_CIPHER_CTX*::cipher::do_cipher
    linkageType: ''
    returnType: int
    signature: int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:458,1
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:464,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:473,1
    - Dst: is_partially_overlapping
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:479,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:480,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:484,1
    - Dst: evp_EncryptDecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:494,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:496,1
    - Dst: is_partially_overlapping
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:501,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:502,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:505,1
    - Dst: evp_EncryptDecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:511,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:521,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 529
    functionName: EVP_DecryptUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 3
    functionsReached:
    - OPENSSL_assert
    - evp_EncryptDecryptUpdate
    - memcpy
    - EVP_CIPHER_mode
    - EVP_CIPHER_CTX_test_flags
    - is_partially_overlapping
    - EVP_CIPHER_CTX*::cipher::do_cipher
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl,\n                      const unsigned char *in, int inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 536
    functionName: EVP_DecryptFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:545,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:552,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:563,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:572,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:575,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:583,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:588,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 599
    functionName: EVP_DecryptFinal_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 5
    functionsReached:
    - EVPerr
    - OPENSSL_assert
    - EVP_CIPHER_CTX*::cipher::do_cipher
    linkageType: ''
    returnType: int
    signature: int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:604,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - c
    - keylen
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 613
    functionName: EVP_CIPHER_CTX_set_key_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *c, int keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - pad
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 622
    functionName: EVP_CIPHER_CTX_set_padding
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:629,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:634,1
    - Dst: EVP_CIPHER_CTX*::cipher::ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:638,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 645
    functionName: EVP_CIPHER_CTX_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - EVPerr
    - EVP_CIPHER_CTX*::cipher::ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void
      *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:650,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 654
    functionName: EVP_CIPHER_CTX_rand_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - RAND_priv_bytes
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:659,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:664,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:665,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:670,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:671,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:674,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:677,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:680,1
    - Dst: EVP_CIPHER_CTX*::cipher::ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:684,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_enc.c:686,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 690
    functionName: EVP_CIPHER_CTX_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - EVP_CIPHER_CTX*::cipher::ctrl
    - EVP_CIPHER_CTX_reset
    - memcpy
    - EVPerr
    - ENGINE_init
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: BIO_f_md
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_md(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:57,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:61,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: md_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - EVP_MD_CTX_new
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int md_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:71,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:71,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:72,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: md_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_set_data
    - BIO_get_data
    - BIO_set_init
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: int md_free(BIO *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:87,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:88,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:93,1
    - Dst: BIO_get_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:94,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:96,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:101,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 104
    functionName: md_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_get_init
    - EVP_DigestUpdate
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int md_read(BIO *b, char *out, int outl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:115,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:116,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:118,1
    - Dst: BIO_get_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:120,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:122,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:124,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:130,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 134
    functionName: md_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_get_init
    - EVP_DigestUpdate
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int md_write(BIO *b, const char *in, int inl)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:145,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:146,1
    - Dst: BIO_get_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:150,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:151,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:155,1
    - Dst: BIO_get_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:158,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:167,1
    - Dst: BIO_get_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:170,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:171,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:176,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:177,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:178,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:183,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:185,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:189,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:190,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:192,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:195,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 199
    functionName: md_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_get_init
    - BIO_copy_next_retry
    - EVP_MD_CTX_copy_ex
    - EVP_DigestInit_ex
    - BIO_ctrl
    - BIO_set_init
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_set_data
    linkageType: ''
    returnType: long
    signature: long md_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:206,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: md_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long md_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:224,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_md.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 233
    functionName: md_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - EVP_DigestFinal_ex
    linkageType: ''
    returnType: int
    signature: int md_gets(BIO *bp, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY_METHOD**
    - EVP_PKEY_METHOD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: pmeth_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pmeth_cmp(const EVP_PKEY_METHOD *const *a,\n                     const
      EVP_PKEY_METHOD *const *b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_find
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:91,1
    - Dst: sk_EVP_PKEY_METHOD_value
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:93,1
    - Dst: OBJ_bsearch_pmeth
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 101
    functionName: EVP_PKEY_meth_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_bsearch_pmeth
    - sk_EVP_PKEY_METHOD_value
    - sk_EVP_PKEY_METHOD_find
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:118,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:119,1
    - Dst: ENGINE_get_pkey_meth_engine
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:123,1
    - Dst: ENGINE_get_pkey_meth
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:131,1
    - Dst: EVP_PKEY_meth_find
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:134,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:138,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:140,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:144,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:147,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:149,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:157,1
    - Dst: EVP_PKEY_METHOD*::init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:160,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:162,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - pkey
    - e
    - id
    argTypes:
    - EVP_PKEY*
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 168
    functionName: int_ctx_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_find
    - EVP_PKEY_up_ref
    - ENGINE_get_pkey_meth
    - EVP_PKEY_METHOD*::init
    - ENGINE_get_pkey_meth_engine
    - EVP_PKEY_CTX_free
    - ENGINE_finish
    - OPENSSL_zalloc
    - EVPerr
    - ENGINE_init
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *int_ctx_new(EVP_PKEY *pkey, ENGINE *e, int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:174,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: EVP_PKEY_meth_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ppkey_id
    - pflags
    - meth
    argTypes:
    - int*
    - int*
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: EVP_PKEY_meth_get0_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags,\n                             const
      EVP_PKEY_METHOD *meth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_METHOD*
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 235
    functionName: EVP_PKEY_meth_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD
      *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: EVP_PKEY_meth_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_ctx_new
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - e
    argTypes:
    - EVP_PKEY*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: EVP_PKEY_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached:
    - int_ctx_new
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_ctx_new
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - e
    argTypes:
    - int
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: EVP_PKEY_CTX_new_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - int_ctx_new
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:260,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:261,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:265,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:267,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:277,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:282,1
    - Dst: EVP_PKEY_CTX*::pmeth::copy
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:290,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:294,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - pctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 297
    functionName: EVP_PKEY_CTX_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - EVP_PKEY_up_ref
    - EVP_PKEY_CTX*::pmeth::copy
    - EVP_PKEY_CTX_free
    - EVPerr
    - ENGINE_init
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *pctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_new
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:302,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:304,1
    - Dst: sk_EVP_PKEY_METHOD_push
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:308,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:309,1
    - Dst: sk_EVP_PKEY_METHOD_sort
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 314
    functionName: EVP_PKEY_meth_add0
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - sk_EVP_PKEY_METHOD_push
    - sk_EVP_PKEY_METHOD_sort
    - sk_EVP_PKEY_METHOD_new
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_pop_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: evp_app_cleanup_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_pop_free
    linkageType: ''
    returnType: void
    signature: void evp_app_cleanup_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_delete_ptr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: EVP_PKEY_meth_remove
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_delete_ptr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:333,1
    - Dst: sk_EVP_PKEY_METHOD_num
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: EVP_PKEY_meth_get_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - sk_EVP_PKEY_METHOD_num
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_PKEY_meth_get_count(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:342,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:346,1
    - Dst: sk_EVP_PKEY_METHOD_num
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:347,1
    - Dst: sk_EVP_PKEY_METHOD_value
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: EVP_PKEY_meth_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - sk_EVP_PKEY_METHOD_num
    - sk_EVP_PKEY_METHOD_value
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::pmeth::cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:357,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:358,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:359,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:361,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 364
    functionName: EVP_PKEY_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    - ENGINE_finish
    - EVP_PKEY_CTX*::pmeth::cleanup
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:372,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:383,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:388,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:393,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:396,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 6
    argNames:
    - ctx
    - keytype
    - optype
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 399
    functionName: EVP_PKEY_CTX_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::ctrl
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype,\n
      \                     int cmd, int p1, void *p2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - keytype
    - optype
    - cmd
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 405
    functionName: EVP_PKEY_CTX_ctrl_uint64
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype,\n
      \                            int cmd, uint64_t value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:411,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:414,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:415,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl_str
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - name
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 418
    functionName: EVP_PKEY_CTX_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - strcmp
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::ctrl_str
    - EVP_PKEY_CTX_md
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx,\n                          const
      char *name, const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:426,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - cmd
    - str
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: EVP_PKEY_CTX_str2ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::ctrl
    - strlen
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:438,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:442,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - cmd
    - hex
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 445
    functionName: EVP_PKEY_CTX_hex2ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::ctrl
    - OPENSSL_free
    - OPENSSL_hexstr2buf
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:452,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:453,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - optype
    - cmd
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 457
    functionName: EVP_PKEY_CTX_md
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    - EVPerr
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: EVP_PKEY_CTX_get_operation
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - dat
    - datlen
    argTypes:
    - EVP_PKEY_CTX*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: EVP_PKEY_CTX_set0_keygen_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int
      datlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 473
    functionName: EVP_PKEY_CTX_set_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: EVP_PKEY_CTX_get_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: EVP_PKEY_CTX_get0_pkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: EVP_PKEY_CTX_get0_peerkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: EVP_PKEY_CTX_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: EVP_PKEY_CTX_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 504
    functionName: EVP_PKEY_meth_set_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth,\n                            int
      (*init) (EVP_PKEY_CTX *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 511
    functionName: EVP_PKEY_meth_set_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth,\n                            int
      (*copy) (EVP_PKEY_CTX *dst,\n                                         EVP_PKEY_CTX
      *src))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: EVP_PKEY_meth_set_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth,\n                               void
      (*cleanup) (EVP_PKEY_CTX *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: EVP_PKEY_meth_set_paramgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth,\n                                int
      (*paramgen_init) (EVP_PKEY_CTX *ctx),\n                                int (*paramgen)
      (EVP_PKEY_CTX *ctx,\n                                                 EVP_PKEY
      *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 535
    functionName: EVP_PKEY_meth_set_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth,\n                              int
      (*keygen_init) (EVP_PKEY_CTX *ctx),\n                              int (*keygen)
      (EVP_PKEY_CTX *ctx,\n                                             EVP_PKEY *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 546
    functionName: EVP_PKEY_meth_set_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth,\n                            int
      (*sign_init) (EVP_PKEY_CTX *ctx),\n                            int (*sign) (EVP_PKEY_CTX
      *ctx,\n                                         unsigned char *sig, size_t *siglen,\n
      \                                        const unsigned char *tbs,\n                                         size_t
      tbslen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 558
    functionName: EVP_PKEY_meth_set_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth,\n                              int
      (*verify_init) (EVP_PKEY_CTX *ctx),\n                              int (*verify)
      (EVP_PKEY_CTX *ctx,\n                                             const unsigned
      char *sig,\n                                             size_t siglen,\n                                             const
      unsigned char *tbs,\n                                             size_t tbslen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: EVP_PKEY_meth_set_verify_recover
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth,\n                                      int
      (*verify_recover_init) (EVP_PKEY_CTX\n                                                                  *ctx),\n
      \                                     int (*verify_recover) (EVP_PKEY_CTX\n
      \                                                            *ctx,\n                                                             unsigned
      char\n                                                             *sig,\n                                                             size_t
      *siglen,\n                                                             const
      unsigned\n                                                             char
      *tbs,\n                                                             size_t tbslen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 586
    functionName: EVP_PKEY_meth_set_signctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth,\n                               int
      (*signctx_init) (EVP_PKEY_CTX *ctx,\n                                                    EVP_MD_CTX
      *mctx),\n                               int (*signctx) (EVP_PKEY_CTX *ctx,\n
      \                                              unsigned char *sig,\n                                               size_t
      *siglen,\n                                               EVP_MD_CTX *mctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 598
    functionName: EVP_PKEY_meth_set_verifyctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth,\n                                 int
      (*verifyctx_init) (EVP_PKEY_CTX *ctx,\n                                                        EVP_MD_CTX
      *mctx),\n                                 int (*verifyctx) (EVP_PKEY_CTX *ctx,\n
      \                                                  const unsigned char *sig,\n
      \                                                  int siglen,\n                                                   EVP_MD_CTX
      *mctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 610
    functionName: EVP_PKEY_meth_set_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth,\n                               int
      (*encrypt_init) (EVP_PKEY_CTX *ctx),\n                               int (*encryptfn)
      (EVP_PKEY_CTX *ctx,\n                                                 unsigned
      char *out,\n                                                 size_t *outlen,\n
      \                                                const unsigned char *in,\n
      \                                                size_t inlen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 622
    functionName: EVP_PKEY_meth_set_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth,\n                               int
      (*decrypt_init) (EVP_PKEY_CTX *ctx),\n                               int (*decrypt)
      (EVP_PKEY_CTX *ctx,\n                                               unsigned
      char *out,\n                                               size_t *outlen,\n
      \                                              const unsigned char *in,\n                                               size_t
      inlen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 632
    functionName: EVP_PKEY_meth_set_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth,\n                              int
      (*derive_init) (EVP_PKEY_CTX *ctx),\n                              int (*derive)
      (EVP_PKEY_CTX *ctx,\n                                             unsigned char
      *key,\n                                             size_t *keylen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 643
    functionName: EVP_PKEY_meth_set_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth,\n                            int
      (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1,\n                                         void
      *p2),\n                            int (*ctrl_str) (EVP_PKEY_CTX *ctx,\n                                             const
      char *type,\n                                             const char *value))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 650
    functionName: EVP_PKEY_meth_set_digestsign
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_digestsign(EVP_PKEY_METHOD *pmeth,\n    int
      (*digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen,\n                       const
      unsigned char *tbs, size_t tbslen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 658
    functionName: EVP_PKEY_meth_set_digestverify
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_digestverify(EVP_PKEY_METHOD *pmeth,\n    int
      (*digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig,\n                         size_t
      siglen, const unsigned char *tbs,\n                         size_t tbslen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: EVP_PKEY_meth_set_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_check(EVP_PKEY_METHOD *pmeth,\n                             int
      (*check) (EVP_PKEY *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: EVP_PKEY_meth_set_public_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_public_check(EVP_PKEY_METHOD *pmeth,\n                                    int
      (*check) (EVP_PKEY *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: EVP_PKEY_meth_set_param_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_param_check(EVP_PKEY_METHOD *pmeth,\n                                   int
      (*check) (EVP_PKEY *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 683
    functionName: EVP_PKEY_meth_set_digest_custom
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_digest_custom(EVP_PKEY_METHOD *pmeth,\n                                     int
      (*digest_custom) (EVP_PKEY_CTX *ctx,\n                                                           EVP_MD_CTX
      *mctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 689
    functionName: EVP_PKEY_meth_get_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_init(const EVP_PKEY_METHOD *pmeth,\n                            int
      (**pinit) (EVP_PKEY_CTX *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 696
    functionName: EVP_PKEY_meth_get_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_copy(const EVP_PKEY_METHOD *pmeth,\n                            int
      (**pcopy) (EVP_PKEY_CTX *dst,\n                                           EVP_PKEY_CTX
      *src))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: EVP_PKEY_meth_get_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_cleanup(const EVP_PKEY_METHOD *pmeth,\n                               void
      (**pcleanup) (EVP_PKEY_CTX *ctx))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 713
    functionName: EVP_PKEY_meth_get_paramgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_paramgen(const EVP_PKEY_METHOD *pmeth,\n                                int
      (**pparamgen_init) (EVP_PKEY_CTX *ctx),\n                                int
      (**pparamgen) (EVP_PKEY_CTX *ctx,\n                                                   EVP_PKEY
      *pkey))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 724
    functionName: EVP_PKEY_meth_get_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_keygen(const EVP_PKEY_METHOD *pmeth,\n                              int
      (**pkeygen_init) (EVP_PKEY_CTX *ctx),\n                              int (**pkeygen)
      (EVP_PKEY_CTX *ctx,\n                                               EVP_PKEY
      *pkey))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 737
    functionName: EVP_PKEY_meth_get_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_sign(const EVP_PKEY_METHOD *pmeth,\n                            int
      (**psign_init) (EVP_PKEY_CTX *ctx),\n                            int (**psign)
      (EVP_PKEY_CTX *ctx,\n                                           unsigned char
      *sig, size_t *siglen,\n                                           const unsigned
      char *tbs,\n                                           size_t tbslen))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 751
    functionName: EVP_PKEY_meth_get_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_verify(const EVP_PKEY_METHOD *pmeth,\n                              int
      (**pverify_init) (EVP_PKEY_CTX *ctx),\n                              int (**pverify)
      (EVP_PKEY_CTX *ctx,\n                                               const unsigned
      char *sig,\n                                               size_t siglen,\n
      \                                              const unsigned char *tbs,\n                                               size_t
      tbslen))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 769
    functionName: EVP_PKEY_meth_get_verify_recover
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_verify_recover(const EVP_PKEY_METHOD *pmeth,\n
      \                                     int (**pverify_recover_init) (EVP_PKEY_CTX\n
      \                                                                   *ctx),\n
      \                                     int (**pverify_recover) (EVP_PKEY_CTX\n
      \                                                              *ctx,\n                                                               unsigned
      char\n                                                               *sig,\n
      \                                                              size_t *siglen,\n
      \                                                              const unsigned\n
      \                                                              char *tbs,\n
      \                                                              size_t tbslen))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 783
    functionName: EVP_PKEY_meth_get_signctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_signctx(const EVP_PKEY_METHOD *pmeth,\n                               int
      (**psignctx_init) (EVP_PKEY_CTX *ctx,\n                                                      EVP_MD_CTX
      *mctx),\n                               int (**psignctx) (EVP_PKEY_CTX *ctx,\n
      \                                                unsigned char *sig,\n                                                 size_t
      *siglen,\n                                                 EVP_MD_CTX *mctx))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 797
    functionName: EVP_PKEY_meth_get_verifyctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_verifyctx(const EVP_PKEY_METHOD *pmeth,\n                                 int
      (**pverifyctx_init) (EVP_PKEY_CTX *ctx,\n                                                          EVP_MD_CTX
      *mctx),\n                                 int (**pverifyctx) (EVP_PKEY_CTX *ctx,\n
      \                                                    const unsigned char *sig,\n
      \                                                    int siglen,\n                                                     EVP_MD_CTX
      *mctx))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 811
    functionName: EVP_PKEY_meth_get_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_encrypt(const EVP_PKEY_METHOD *pmeth,\n                               int
      (**pencrypt_init) (EVP_PKEY_CTX *ctx),\n                               int (**pencryptfn)
      (EVP_PKEY_CTX *ctx,\n                                                   unsigned
      char *out,\n                                                   size_t *outlen,\n
      \                                                  const unsigned char *in,\n
      \                                                  size_t inlen))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 825
    functionName: EVP_PKEY_meth_get_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_decrypt(const EVP_PKEY_METHOD *pmeth,\n                               int
      (**pdecrypt_init) (EVP_PKEY_CTX *ctx),\n                               int (**pdecrypt)
      (EVP_PKEY_CTX *ctx,\n                                                 unsigned
      char *out,\n                                                 size_t *outlen,\n
      \                                                const unsigned char *in,\n
      \                                                size_t inlen))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 837
    functionName: EVP_PKEY_meth_get_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_derive(const EVP_PKEY_METHOD *pmeth,\n                              int
      (**pderive_init) (EVP_PKEY_CTX *ctx),\n                              int (**pderive)
      (EVP_PKEY_CTX *ctx,\n                                               unsigned
      char *key,\n                                               size_t *keylen))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 850
    functionName: EVP_PKEY_meth_get_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_ctrl(const EVP_PKEY_METHOD *pmeth,\n                            int
      (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1,\n                                           void
      *p2),\n                            int (**pctrl_str) (EVP_PKEY_CTX *ctx,\n                                               const
      char *type,\n                                               const char *value))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 858
    functionName: EVP_PKEY_meth_get_digestsign
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_digestsign(EVP_PKEY_METHOD *pmeth,\n    int
      (**digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen,\n                        const
      unsigned char *tbs, size_t tbslen))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 867
    functionName: EVP_PKEY_meth_get_digestverify
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_digestverify(EVP_PKEY_METHOD *pmeth,\n    int
      (**digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig,\n                          size_t
      siglen, const unsigned char *tbs,\n                          size_t tbslen))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 874
    functionName: EVP_PKEY_meth_get_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_check(const EVP_PKEY_METHOD *pmeth,\n                             int
      (**pcheck) (EVP_PKEY *pkey))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 881
    functionName: EVP_PKEY_meth_get_public_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_public_check(const EVP_PKEY_METHOD *pmeth,\n
      \                                   int (**pcheck) (EVP_PKEY *pkey))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 888
    functionName: EVP_PKEY_meth_get_param_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_param_check(const EVP_PKEY_METHOD *pmeth,\n
      \                                  int (**pcheck) (EVP_PKEY *pkey))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 896
    functionName: EVP_PKEY_meth_get_digest_custom
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_digest_custom(EVP_PKEY_METHOD *pmeth,\n                                     int
      (**pdigest_custom) (EVP_PKEY_CTX *ctx,\n                                                             EVP_MD_CTX
      *mctx))"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:41,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:45,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:54,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:56,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:57,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:60,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:62,1
    - Dst: HMAC_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:78,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:79,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:80,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:83,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:84,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:85,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:86,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:87,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:90,1
    - Dst: HMAC_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:92,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:93,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:94,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:97,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:98,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:99,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:100,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:110,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:111,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:113,1
    - Dst: h__dump
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:114,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:115,1
    - Dst: h__dump
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:116,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:117,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:118,1
    - Dst: h__dump
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:119,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 8
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - digest
    - keylen
    - out
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - EVP_MD*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 122
    functionName: PKCS5_PBKDF2_HMAC
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c
    functionUses: 1
    functionsReached:
    - HMAC_CTX_new
    - HMAC_Init_ex
    - HMAC_Final
    - HMAC_CTX_free
    - HMAC_Update
    - memcpy
    - fprintf
    - h__dump
    - HMAC_CTX_copy
    - EVP_MD_size
    - strlen
    linkageType: ''
    returnType: int
    signature: "int PKCS5_PBKDF2_HMAC(const char *pass, int passlen,\n                      const
      unsigned char *salt, int saltlen, int iter,\n                      const EVP_MD
      *digest, int keylen, unsigned char *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:128,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - keylen
    - out
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: PKCS5_PBKDF2_HMAC_SHA1
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - PKCS5_PBKDF2_HMAC
    linkageType: ''
    returnType: int
    signature: "int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen,\n                           const
      unsigned char *salt, int saltlen, int iter,\n                           int
      keylen, unsigned char *out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:148,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:148,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:150,1
    - Dst: EVP_PBE_find
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:155,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:155,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:157,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:166,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:169,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:174,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:176,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:177,1
    - Dst: kdf
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:180,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 184
    functionName: PKCS5_v2_PBE_keyivgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_find
    - PBE2PARAM_free
    - ASN1_TYPE_unpack_sequence
    - EVP_CIPHER_asn1_to_param
    - EVP_get_cipherbyobj
    - EVPerr
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    - EVP_CipherInit_ex
    - kdf
    linkageType: ''
    returnType: int
    signature: "int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int
      passlen,\n                          ASN1_TYPE *param, const EVP_CIPHER *c,\n
      \                         const EVP_MD *md, int en_de)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:198,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:199,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:202,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:203,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:207,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:207,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:210,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:214,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:218,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:219,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:224,1
    - Dst: EVP_PBE_find
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:228,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:229,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:233,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:235,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:240,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:247,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:248,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:251,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:253,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:254,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 256
    functionName: PKCS5_v2_PBKDF2_keyivgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_find
    - OPENSSL_assert
    - EVP_get_digestbynid
    - PBKDF2PARAM_free
    - ASN1_INTEGER_get
    - OBJ_obj2nid
    - ASN1_TYPE_unpack_sequence
    - EVP_CIPHER_CTX_key_length
    - EVP_CIPHER_CTX_cipher
    - PKCS5_PBKDF2_HMAC
    - EVPerr
    - ASN1_ITEM_rptr
    - EVP_CipherInit_ex
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass,\n
      \                            int passlen, ASN1_TYPE *param,\n                             const
      EVP_CIPHER *c, const EVP_MD *md, int en_de)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:262,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: h__dump
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c
    functionUses: 2
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void h__dump(const unsigned char *p, int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PBE_find
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:92,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:92,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:95,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:97,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:99,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:100,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:107,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:112,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:114,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:122,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:124,1
    - Dst: keygen
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:129,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - pbe_obj
    - pass
    - passlen
    - param
    - ctx
    - en_de
    argTypes:
    - ASN1_OBJECT*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 134
    functionName: EVP_PBE_CipherInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    functionUses: 1
    functionsReached:
    - EVP_PBE_find
    - EVP_get_digestbynid
    - keygen
    - ERR_add_error_data
    - OPENSSL_strlcpy
    - EVPerr
    - i2t_ASN1_OBJECT
    - EVP_get_cipherbynid
    - OBJ_obj2nid
    - strlen
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int
      passlen,\n                       ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int
      en_de)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pbe1
    - pbe2
    argTypes:
    - EVP_PBE_CTL*
    - EVP_PBE_CTL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: pbe2_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pbe2_cmp(const EVP_PBE_CTL *pbe1, const EVP_PBE_CTL *pbe2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PBE_CTL**
    - EVP_PBE_CTL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: pbe_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pbe_cmp(const EVP_PBE_CTL *const *a, const EVP_PBE_CTL *const *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PBE_CTL_new
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:166,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:171,1
    - Dst: sk_EVP_PBE_CTL_push
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:180,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:181,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - pbe_type
    - pbe_nid
    - cipher_nid
    - md_nid
    - keygen
    argTypes:
    - int
    - int
    - int
    - int
    - EVP_PBE_KEYGEN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 189
    functionName: EVP_PBE_alg_add_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PBE_CTL_new
    - OPENSSL_malloc
    - OPENSSL_free
    - sk_EVP_PBE_CTL_push
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid,\n
      \                        int md_nid, EVP_PBE_KEYGEN *keygen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_nid
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:197,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:201,1
    - Dst: EVP_PBE_alg_add_type
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - nid
    - cipher
    - md
    - keygen
    argTypes:
    - int
    - EVP_CIPHER*
    - EVP_MD*
    - EVP_PBE_KEYGEN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: EVP_PBE_alg_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - EVP_MD_type
    - EVP_CIPHER_nid
    - EVP_PBE_alg_add_type
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD
      *md,\n                    EVP_PBE_KEYGEN *keygen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PBE_CTL_find
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:221,1
    - Dst: sk_EVP_PBE_CTL_value
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:222,1
    - Dst: OBJ_bsearch_pbe2
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:225,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - type
    - pbe_nid
    - pcnid
    - pmnid
    - pkeygen
    argTypes:
    - int
    - int
    - int*
    - int*
    - EVP_PBE_KEYGEN**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 236
    functionName: EVP_PBE_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    functionUses: 4
    functionsReached:
    - OSSL_NELEM
    - OBJ_bsearch_pbe2
    - sk_EVP_PBE_CTL_value
    - sk_EVP_PBE_CTL_find
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_find(int type, int pbe_nid,\n                 int *pcnid,
      int *pmnid, EVP_PBE_KEYGEN **pkeygen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pbe
    argTypes:
    - EVP_PBE_CTL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: free_evp_pbe_ctl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void free_evp_pbe_ctl(EVP_PBE_CTL *pbe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PBE_CTL_pop_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: EVP_PBE_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PBE_CTL_pop_free
    linkageType: ''
    returnType: void
    signature: void EVP_PBE_cleanup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ptype
    - ppbe_nid
    - num
    argTypes:
    - int*
    - int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 262
    functionName: EVP_PBE_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RIPEMD160_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c:24,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c
    functionUses: 55
    functionsReached:
    - EVP_MD_CTX_md_data
    - RIPEMD160_Init
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RIPEMD160_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c:29,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c
    functionUses: 6
    functionsReached:
    - RIPEMD160_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RIPEMD160_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c:34,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c
    functionUses: 6
    functionsReached:
    - EVP_MD_CTX_md_data
    - RIPEMD160_Final
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: EVP_ripemd160
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_ripemd160(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: BIO_f_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_cipher(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:68,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:69,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:75,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:81,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 85
    functionName: enc_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - BIO_set_init
    - OPENSSL_zalloc
    - EVPerr
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int enc_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:94,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:98,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:99,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:100,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: enc_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_get_data
    - OPENSSL_clear_free
    - EVP_CIPHER_CTX_free
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int enc_free(BIO *a)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:114,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:116,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:125,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:136,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:151,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:160,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:162,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:179,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:182,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:197,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:200,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:222,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:229,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:230,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 86
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 232
    functionName: enc_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_block_size
    - memcpy
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_should_retry
    - EVP_CipherUpdate
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int enc_read(BIO *b, char *out, int outl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:240,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:241,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:247,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:250,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:252,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:266,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:269,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:279,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:281,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:290,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 292
    functionName: enc_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - EVP_CipherUpdate
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int enc_write(BIO *b, const char *in, int inl)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:303,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:304,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:312,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:313,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:315,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:321,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:326,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:331,1
    - Dst: enc_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:337,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:345,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:357,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:363,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:364,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:365,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:370,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:374,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:375,1
    - Dst: EVP_CIPHER_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:378,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:380,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:383,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 387
    functionName: enc_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_copy
    - EVP_CIPHER_CTX_new
    - BIO_ctrl
    - BIO_set_init
    - enc_write
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - EVP_CipherInit_ex
    - BIO_copy_next_retry
    linkageType: ''
    returnType: long
    signature: long enc_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:392,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 402
    functionName: enc_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long enc_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:410,1
    - Dst: BIO_get_callback
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:414,1
    - Dst: callback
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:417,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:421,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:423,1
    - Dst: callback
      Src: /src/openssl-1.1.1g/crypto/evp/bio_enc.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - b
    - c
    - k
    - i
    - e
    argTypes:
    - BIO*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 429
    functionName: BIO_set_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherInit_ex
    - callback
    - BIO_set_init
    - BIO_get_data
    - BIO_get_callback
    linkageType: ''
    returnType: int
    signature: "int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char
      *k,\n                   const unsigned char *i, int e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - evp_ctx
    - pad
    argTypes:
    - EVP_MD_CTX*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 59
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *evp_ctx, unsigned char pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evp_ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: sha3_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: int
    signature: int sha3_init(EVP_MD_CTX *evp_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evp_ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: shake_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: int
    signature: int shake_init(EVP_MD_CTX *evp_ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:76,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:85,1
    - Dst: SHA3_absorb
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:87,1
    - Dst: SHA3_absorb
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:93,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - evp_ctx
    - _inp
    - len
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 103
    functionName: sha3_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_absorb
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sha3_update(EVP_MD_CTX *evp_ctx, const void *_inp, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:119,1
    - Dst: SHA3_absorb
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:123,1
    - Dst: SHA3_squeeze
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - evp_ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 128
    functionName: sha3_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_absorb
    - memset
    - SHA3_squeeze
    linkageType: ''
    returnType: int
    signature: int sha3_final(EVP_MD_CTX *evp_ctx, unsigned char *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - evp_ctx
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: shake_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int shake_ctrl(EVP_MD_CTX *evp_ctx, int cmd, int p1, void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: S390X_SHA3_FC
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_SHA3_FC(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: S390X_KECCAK1600_BSZ
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_KECCAK1600_BSZ(n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S390X_KECCAK1600_BSZ
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:189,1
    - Dst: S390X_KECCAK1600_BSZ
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:192,1
    - Dst: S390X_KECCAK1600_BSZ
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:195,1
    - Dst: S390X_KECCAK1600_BSZ
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:198,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - evp_ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 210
    functionName: s390x_sha3_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached:
    - memset
    - S390X_KECCAK1600_BSZ
    linkageType: ''
    returnType: int
    signature: int s390x_sha3_init(EVP_MD_CTX *evp_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S390X_KECCAK1600_BSZ
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:222,1
    - Dst: S390X_KECCAK1600_BSZ
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:225,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - evp_ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 237
    functionName: s390x_shake_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached:
    - memset
    - S390X_KECCAK1600_BSZ
    linkageType: ''
    returnType: int
    signature: int s390x_shake_init(EVP_MD_CTX *evp_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:253,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:257,1
    - Dst: s390x_kimd
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:260,1
    - Dst: s390x_kimd
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:265,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - evp_ctx
    - _inp
    - len
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 272
    functionName: s390x_sha3_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached:
    - s390x_kimd
    - memcpy
    linkageType: ''
    returnType: int
    signature: int s390x_sha3_update(EVP_MD_CTX *evp_ctx, const void *_inp, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s390x_klmd
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:278,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - evp_ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: s390x_sha3_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached:
    - s390x_klmd
    - memcpy
    linkageType: ''
    returnType: int
    signature: int s390x_sha3_final(EVP_MD_CTX *evp_ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s390x_klmd
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha3.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evp_ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: s390x_shake_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached:
    - s390x_klmd
    linkageType: ''
    returnType: int
    signature: int s390x_shake_final(EVP_MD_CTX *evp_ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 324
    functionName: EVP_MD_SHA3
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_SHA3(bitlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 360
    functionName: EVP_MD_SHAKE
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_SHAKE(bitlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 381
    functionName: EVP_MD_SHA3
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_SHA3(bitlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 401
    functionName: EVP_MD_SHAKE
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_SHAKE(bitlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/evp/evp_err.c:287,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/evp/evp_err.c:288,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/evp/evp_err.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: ERR_load_EVP_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_EVP_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SM4_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:26,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: sm4_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - SM4_set_key
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "int sm4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:35,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SM4_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: sm4_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: void
    signature: "void sm4_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                           size_t len, const SM4_KEY *key,\n                            unsigned
      char *ivec, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SM4_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: sm4_cfb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void sm4_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                              size_t length, const SM4_KEY *key,\n                               unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SM4_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:54,1
    - Dst: SM4_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - SM4_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: sm4_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - SM4_encrypt
    - SM4_decrypt
    linkageType: ''
    returnType: void
    signature: "void sm4_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                           const SM4_KEY *key, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SM4_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: sm4_ofb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void sm4_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                              size_t length, const SM4_KEY *key,\n                               unsigned
      char *ivec, int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:74,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:75,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:77,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:78,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:79,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_sm4.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: sm4_ctr_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int sm4_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: EVP_sm4_ctr
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_sm4_ctr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cipher_type
    - block_size
    - key_len
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: EVP_CIPHER_meth_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 4
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int
      key_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c:30,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: EVP_CIPHER_meth_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: EVP_CIPHER_meth_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 7
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_meth_free(EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cipher
    - iv_len
    argTypes:
    - EVP_CIPHER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: EVP_CIPHER_meth_set_iv_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cipher
    - flags
    argTypes:
    - EVP_CIPHER*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: EVP_CIPHER_meth_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cipher
    - ctx_size
    argTypes:
    - EVP_CIPHER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: EVP_CIPHER_meth_set_impl_ctx_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: EVP_CIPHER_meth_set_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher,\n                             int
      (*init) (EVP_CIPHER_CTX *ctx,\n                                          const
      unsigned char *key,\n                                          const unsigned
      char *iv,\n                                          int enc))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: EVP_CIPHER_meth_set_do_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher,\n                                  int
      (*do_cipher) (EVP_CIPHER_CTX *ctx,\n                                                    unsigned
      char *out,\n                                                    const unsigned
      char *in,\n                                                    size_t inl))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: EVP_CIPHER_meth_set_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher,\n                                int
      (*cleanup) (EVP_CIPHER_CTX *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: EVP_CIPHER_meth_set_set_asn1_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher,\n                                        int
      (*set_asn1_parameters) (EVP_CIPHER_CTX *,\n                                                                    ASN1_TYPE
      *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: EVP_CIPHER_meth_set_get_asn1_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher,\n                                        int
      (*get_asn1_parameters) (EVP_CIPHER_CTX *,\n                                                                    ASN1_TYPE
      *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: EVP_CIPHER_meth_set_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher,\n                             int
      (*ctrl) (EVP_CIPHER_CTX *, int type,\n                                          int
      arg, void *ptr))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: "(*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *ctx,\n                                                          const unsigned
      char *key,\n                                                          const
      unsigned char *iv,\n                                                          int
      enc)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *ctx,\n                                                          const unsigned
      char *key,\n                                                          const
      unsigned char *iv,\n                                                          int
      enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: "(*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *ctx,\n                                                               unsigned
      char *out,\n                                                               const
      unsigned char *in,\n                                                               size_t
      inl)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *ctx,\n                                                               unsigned
      char *out,\n                                                               const
      unsigned char *in,\n                                                               size_t
      inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: "(*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                                     ASN1_TYPE
      *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                                     ASN1_TYPE
      *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: "(*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                               ASN1_TYPE
      *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                               ASN1_TYPE
      *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - arg
    - ptr
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: "(*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                          int type, int
      arg,\n                                                          void *ptr)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                          int type, int
      arg,\n                                                          void *ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_bits
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: EVP_PKEY_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_bits
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_bits(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_security_bits
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: EVP_PKEY_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_security_bits
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_security_bits(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_size
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: EVP_PKEY_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY*::ameth::pkey_size
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_size(const EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pkey
    - mode
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 73
    functionName: EVP_PKEY_save_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:78,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:81,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:85,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:86,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:90,1
    - Dst: EVP_PKEY_cmp_parameters
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:91,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:93,1
    - Dst: EVP_PKEY*::ameth::param_copy
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:98,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 101
    functionName: EVP_PKEY_copy_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_set_type
    - EVP_PKEY*::ameth::param_copy
    - EVP_PKEY_cmp_parameters
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::param_missing
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: EVP_PKEY_missing_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::param_missing
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::param_cmp
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: EVP_PKEY_cmp_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::param_cmp
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::param_cmp
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:128,1
    - Dst: EVP_PKEY*::ameth::pub_cmp
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: EVP_PKEY_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::param_cmp
    - EVP_PKEY*::ameth::pub_cmp
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:142,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:145,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:152,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 159
    functionName: EVP_PKEY_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 4
    functionsReached:
    - EVPerr
    - OPENSSL_free
    - OPENSSL_zalloc
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *EVP_PKEY_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:165,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:168,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: EVP_PKEY_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_up_ref(EVP_PKEY *pkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free_it
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:186,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:195,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:197,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:202,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:204,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:207,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - pkey
    - e
    - type
    - str
    - len
    argTypes:
    - EVP_PKEY*
    - ENGINE*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 221
    functionName: pkey_set_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free_it
    - ENGINE_finish
    - EVP_PKEY_asn1_find
    - EVPerr
    - EVP_PKEY_asn1_find_str
    linkageType: ''
    returnType: int
    signature: "int pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char
      *str,\n                         int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:227,1
    - Dst: pkey_set_type
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:230,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:236,1
    - Dst: EVP_PKEY*::ameth::set_priv_key
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:241,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:242,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - type
    - e
    - priv
    - len
    argTypes:
    - int
    - ENGINE*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 251
    functionName: EVP_PKEY_new_raw_private_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY*::ameth::set_priv_key
    - pkey_set_type
    - EVP_PKEY_new
    - EVPerr
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e,\n                                       const
      unsigned char *priv,\n                                       size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:257,1
    - Dst: pkey_set_type
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:260,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:266,1
    - Dst: EVP_PKEY*::ameth::set_pub_key
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:271,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:272,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - type
    - e
    - pub
    - len
    argTypes:
    - int
    - ENGINE*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 281
    functionName: EVP_PKEY_new_raw_public_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - pkey_set_type
    - EVP_PKEY*::ameth::set_pub_key
    - EVP_PKEY_new
    - EVPerr
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e,\n                                      const
      unsigned char *pub,\n                                      size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:287,1
    - Dst: EVP_PKEY*::ameth::get_priv_key
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:292,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 298
    functionName: EVP_PKEY_get_raw_private_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY*::ameth::get_priv_key
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char
      *priv,\n                                 size_t *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:304,1
    - Dst: EVP_PKEY*::ameth::get_pub_key
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:309,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - pub
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: EVP_PKEY_get_raw_public_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY*::ameth::get_pub_key
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char
      *pub,\n                                size_t *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:321,1
    - Dst: CMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:322,1
    - Dst: pkey_set_type
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:326,1
    - Dst: CMAC_Init
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:331,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:332,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:340,1
    - Dst: CMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:341,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - e
    - priv
    - len
    - cipher
    argTypes:
    - ENGINE*
    - unsigned char*
    - size_t
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 348
    functionName: EVP_PKEY_new_CMAC_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - CMAC_CTX_free
    - CMAC_Init
    - CMAC_CTX_new
    - pkey_set_type
    - EVP_PKEY_new
    - EVPerr
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv,\n
      \                               size_t len, const EVP_CIPHER *cipher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_set_type
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - type
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: EVP_PKEY_set_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - pkey_set_type
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_type(EVP_PKEY *pkey, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_set_type
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pkey
    - str
    - len
    argTypes:
    - EVP_PKEY*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: EVP_PKEY_set_type_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - pkey_set_type
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:370,1
    - Dst: EVP_PKEY_base_id
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:370,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pkey
    - type
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 377
    functionName: EVP_PKEY_set_alias_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_type
    - EVP_PKEY_base_id
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_alias_type(EVP_PKEY *pkey, int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:383,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:384,1
    - Dst: ENGINE_get_pkey_meth
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:387,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:388,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:389,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pkey
    - e
    argTypes:
    - EVP_PKEY*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 396
    functionName: EVP_PKEY_set1_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - ENGINE_finish
    - ENGINE_init
    - ENGINE_get_pkey_meth
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: EVP_PKEY_get0_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - pkey
    - type
    - key
    argTypes:
    - EVP_PKEY*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 409
    functionName: EVP_PKEY_assign
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_set_type
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: EVP_PKEY_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_PKEY_get0(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:420,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pkey
    - len
    argTypes:
    - EVP_PKEY*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 426
    functionName: EVP_PKEY_get0_hmac
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_get0
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:433,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pkey
    - len
    argTypes:
    - EVP_PKEY*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: EVP_PKEY_get0_poly1305
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVPerr
    - EVP_PKEY_get0
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t
      *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:448,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pkey
    - len
    argTypes:
    - EVP_PKEY*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 454
    functionName: EVP_PKEY_get0_siphash
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - EVPerr
    - EVP_PKEY_get0
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:460,1
    - Dst: RSA_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 464
    functionName: EVP_PKEY_set1_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - RSA_up_ref
    - EVP_PKEY_assign_RSA
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 473
    functionName: EVP_PKEY_get0_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: RSA
    signature: RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:477,1
    - Dst: RSA_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 481
    functionName: EVP_PKEY_get1_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - RSA_up_ref
    - EVP_PKEY_get0_RSA
    linkageType: ''
    returnType: RSA
    signature: RSA *EVP_PKEY_get1_RSA(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:487,1
    - Dst: DSA_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 491
    functionName: EVP_PKEY_set1_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_assign_DSA
    - DSA_up_ref
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 500
    functionName: EVP_PKEY_get0_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: DSA
    signature: DSA *EVP_PKEY_get0_DSA(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:504,1
    - Dst: DSA_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: EVP_PKEY_get1_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_get0_DSA
    - DSA_up_ref
    linkageType: ''
    returnType: DSA
    signature: DSA *EVP_PKEY_get1_DSA(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:515,1
    - Dst: EC_KEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 519
    functionName: EVP_PKEY_set1_EC_KEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EC_KEY_up_ref
    - EVP_PKEY_assign_EC_KEY
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, EC_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 528
    functionName: EVP_PKEY_get0_EC_KEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:532,1
    - Dst: EC_KEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 536
    functionName: EVP_PKEY_get1_EC_KEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EC_KEY_up_ref
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DH_get0_q
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:543,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:544,1
    - Dst: DH_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 4
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: EVP_PKEY_set1_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - DH_get0_q
    - DH_up_ref
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 558
    functionName: EVP_PKEY_get0_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: DH
    signature: DH *EVP_PKEY_get0_DH(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:562,1
    - Dst: DH_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 566
    functionName: EVP_PKEY_get1_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_DH
    - DH_up_ref
    linkageType: ''
    returnType: DH
    signature: DH *EVP_PKEY_get1_DH(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:574,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 583
    functionName: EVP_PKEY_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - ENGINE_finish
    - EVP_PKEY_asn1_find
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_type(int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: EVP_PKEY_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_id(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: EVP_PKEY_base_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_type
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_base_id(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:602,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:603,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:606,1
    - Dst: EVP_PKEY_free_it
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:607,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:608,1
    - Dst: sk_X509_ATTRIBUTE_pop_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:609,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - x
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 611
    functionName: EVP_PKEY_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 13
    functionsReached:
    - EVP_PKEY_free_it
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - sk_X509_ATTRIBUTE_pop_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_free(EVP_PKEY *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:617,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:621,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 626
    functionName: EVP_PKEY_free_it
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY*::ameth::pkey_free
    - ENGINE_finish
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_free_it(EVP_PKEY *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:631,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:632,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - kstr
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 635
    functionName: unsup_alg
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "int unsup_alg(BIO *out, const EVP_PKEY *pkey, int indent,\n                     const
      char *kstr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pub_print
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:641,1
    - Dst: unsup_alg
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - pctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 644
    functionName: EVP_PKEY_print_public
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pub_print
    - unsup_alg
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey,\n                          int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::priv_print
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:650,1
    - Dst: unsup_alg
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - pctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: EVP_PKEY_print_private
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::priv_print
    - unsup_alg
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey,\n                           int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::param_print
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:659,1
    - Dst: unsup_alg
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - pctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 661
    functionName: EVP_PKEY_print_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::param_print
    - unsup_alg
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey,\n                          int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 668
    functionName: evp_pkey_asn1_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    linkageType: ''
    returnType: int
    signature: int evp_pkey_asn1_ctrl(EVP_PKEY *pkey, int op, int arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pnid
    argTypes:
    - EVP_PKEY*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 673
    functionName: EVP_PKEY_get_default_digest_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - evp_pkey_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pkey
    - pt
    - ptlen
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 684
    functionName: EVP_PKEY_set1_tls_encodedpoint
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_set1_tls_encodedpoint(EVP_PKEY *pkey,\n                               const
      unsigned char *pt, size_t ptlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/p_lib.c:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkey
    - ppt
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 693
    functionName: EVP_PKEY_get1_tls_encodedpoint
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_asn1_ctrl
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_PKEY_get1_tls_encodedpoint(EVP_PKEY *pkey, unsigned char
      **ppt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:27,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:28,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:33,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:36,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:37,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:37,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:40,1
    - Dst: EVP_PKEY_encrypt_old
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:45,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:45,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:54,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 7
    argNames:
    - ctx
    - type
    - ek
    - ekl
    - iv
    - pubk
    - npubk
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char**
    - int*
    - unsigned char*
    - EVP_PKEY**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 56
    functionName: EVP_SealInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_seal.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_reset
    - RAND_bytes
    - EVP_CIPHER_CTX_key_length
    - EVP_EncryptInit_ex
    - OPENSSL_cleanse
    - EVP_PKEY_encrypt_old
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_rand_key
    linkageType: ''
    returnType: int
    signature: "int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,\n                 unsigned
      char **ek, int *ekl, unsigned char *iv,\n                 EVP_PKEY **pubk, int
      npubk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:61,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_seal.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: EVP_SealFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_seal.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptFinal_ex
    - EVP_EncryptInit_ex
    linkageType: ''
    returnType: int
    signature: int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 216
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:67,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:71,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:72,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:75,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:76,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: aesni_cbc_hmac_sha1_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - data
    - aesni_set_decrypt_key
    - aesni_set_encrypt_key
    - SHA1_Init
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx,\n                                        const
      unsigned char *inkey,\n                                        const unsigned
      char *iv, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:106,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:115,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 126
    functionName: sha1_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - sha1_block_data_order
    - SHA1_Update
    linkageType: ''
    returnType: void
    signature: void sha1_update(SHA_CTX *c, const void *data, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:177,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:196,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:197,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:203,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:204,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:209,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:210,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:226,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:240,1
    - Dst: sha1_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:249,1
    - Dst: sha1_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:267,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:268,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:277,1
    - Dst: sha1_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:285,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:287,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:294,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:300,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:302,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:307,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:309,1
    - Dst: sha1_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:317,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:319,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:322,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:324,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:326,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:328,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:330,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:333,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:335,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:337,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:339,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:341,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:343,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:346,1
    - Dst: sha1_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:353,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:359,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:365,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:366,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:367,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:368,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:369,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:393,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:395,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:396,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 151
    argCount: 5
    argNames:
    - key
    - out
    - inp
    - inp_len
    - n4x
    argTypes:
    - EVP_AES_HMAC_SHA1*
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 399
    functionName: tls1_1_multi_block_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - sha1_multi_block
    - PUTU32
    - RAND_bytes
    - memcpy
    - memset
    - aesni_multi_cbc_encrypt
    - BSWAP4
    - BSWAP8
    - OPENSSL_cleanse
    linkageType: ''
    returnType: size_t
    signature: "size_t tls1_1_multi_block_encrypt(EVP_AES_HMAC_SHA1 *key,\n                                         unsigned
      char *out,\n                                         const unsigned char *inp,\n
      \                                        size_t inp_len, int n4x)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:405,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:421,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:434,1
    - Dst: aesni_cbc_sha1_enc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:436,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:437,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:451,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:455,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:458,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:460,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:461,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:468,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:469,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:471,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:472,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:502,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:502,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:513,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:515,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:522,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:523,1
    - Dst: constant_time_ge
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:531,1
    - Dst: constant_time_select
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:539,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:548,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:556,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:558,1
    - Dst: aesni256_cbc_sha1_dec
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:559,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:569,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:578,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:587,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:615,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:631,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:639,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:643,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:652,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:653,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:654,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:655,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:656,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:668,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:670,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:684,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:688,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:689,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:741,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:742,1
    - Dst: aesni256_cbc_sha1_dec
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:743,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:758,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:759,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:761,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 223
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 766
    functionName: aesni_cbc_hmac_sha1_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - constant_time_select
    - EVP_CIPHER_CTX_encrypting
    - aesni256_cbc_sha1_dec
    - sha1_block_data_order
    - aesni_cbc_sha1_enc
    - SHA1_Final
    - SHA1_Update
    - data
    - memcpy
    - memset
    - EVP_CIPHER_CTX_iv_noconst
    - BSWAP4
    - constant_time_ge
    - aesni_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char
      *out,\n                                      const unsigned char *in, size_t
      len)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:771,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:779,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:782,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:783,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:784,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:786,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:791,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:792,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:796,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:797,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:799,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:813,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:824,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:830,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:851,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:867,1
    - Dst: tls1_1_multi_block_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c:894,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 87
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 903
    functionName: aesni_cbc_hmac_sha1_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - SHA1_Final
    - SHA1_Update
    - data
    - memcpy
    - tls1_1_multi_block_encrypt
    - SHA1_Init
    - memset
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha1_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                   void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 947
    functionName: EVP_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 953
    functionName: EVP_aes_256_cbc_hmac_sha1
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: EVP_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 963
    functionName: EVP_aes_256_cbc_hmac_sha1
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc5.c
    functionUses: 219
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:41,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:45,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:53,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 64
    functionName: rc5_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc5.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - data
    linkageType: ''
    returnType: int
    signature: int rc5_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:69,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:70,1
    - Dst: RC5_32_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:73,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:73,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:73,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc5.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: r_32_12_16_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc5.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - data
    - EVP_CIPHER_CTX_key_length
    - RC5_32_set_key
    linkageType: ''
    returnType: int
    signature: "int r_32_12_16_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 166
    functionName: ctr64_inc
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr64_inc(unsigned char *counter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: AES_GCM_ASM
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AES_GCM_ASM(gctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: AES_GCM_ASM2
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AES_GCM_ASM2(gctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:276,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:278,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:281,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:281,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:287,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:287,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 304
    functionName: aesni_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_CTX_key_length
    - aesni_set_encrypt_key
    - aesni_set_decrypt_key
    - EVP_C_DATA
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "int aesni_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                         const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:309,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:309,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:310,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: aesni_cbc_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    - aesni_cbc_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:319,1
    - Dst: aesni_ecb_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:324,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:324,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 328
    functionName: aesni_ecb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - EVP_CIPHER_CTX_block_size
    - aesni_ecb_encrypt
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "int aesni_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:353,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:357,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:357,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:359,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:367,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:374,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 381
    functionName: aesni_gcm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_setiv
    - EVP_CIPHER_CTX_key_length
    - aesni_set_encrypt_key
    - memcpy
    - EVP_C_DATA
    - CRYPTO_gcm128_init
    linkageType: ''
    returnType: int
    signature: "int aesni_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:390,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:397,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:405,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:406,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:412,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:412,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:417,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:417,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:423,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:423,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:424,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:433,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:433,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 437
    functionName: aesni_xts_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - aesni_set_encrypt_key
    - aesni_set_decrypt_key
    - EVP_C_DATA
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_iv_noconst
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "int aesni_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:446,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:450,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:450,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:452,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:459,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 463
    functionName: aesni_ccm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - aesni_set_encrypt_key
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ccm128_init
    linkageType: ''
    returnType: int
    signature: "int aesni_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:486,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:496,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:496,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:498,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:498,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:500,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:516,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:525,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:527,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 531
    functionName: aesni_ocb_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ocb128_setiv
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - aesni_set_decrypt_key
    - aesni_set_encrypt_key
    - EVP_C_DATA
    - CRYPTO_ocb128_init
    linkageType: ''
    returnType: int
    signature: "int aesni_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 558
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 580
    functionName: BLOCK_CIPHER_custom
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:661,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:663,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:664,1
    - Dst: aes_t4_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:668,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:688,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:721,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 726
    functionName: aes_t4_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - aes_t4_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - EVP_C_DATA
    - EVPerr
    - aes_t4_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                          const unsigned char *iv, int enc)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:759,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:763,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:764,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:765,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:786,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:793,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:795,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 800
    functionName: aes_t4_gcm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aes_t4_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - CRYPTO_gcm128_setiv
    - memcpy
    - EVP_C_DATA
    - CRYPTO_gcm128_init
    linkageType: ''
    returnType: int
    signature: "int aes_t4_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:809,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:816,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:825,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:826,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:833,1
    - Dst: aes_t4_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:846,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:846,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:861,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:861,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:862,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:871,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:871,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 875
    functionName: aes_t4_xts_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aes_t4_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_iv_noconst
    - EVPerr
    - aes_t4_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_t4_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:884,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:888,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:889,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:890,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:896,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:896,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 900
    functionName: aes_t4_ccm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aes_t4_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ccm128_init
    linkageType: ''
    returnType: int
    signature: "int aes_t4_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:910,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:920,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:920,1
    - Dst: aes_t4_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:922,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:922,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:924,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:939,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:948,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:950,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 907
    functionDepth: 3
    functionLinenumber: 907
    functionLinenumberEnd: 954
    functionName: aes_t4_ocb_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ocb128_setiv
    - aes_t4_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - CRYPTO_ocb128_init
    - aes_t4_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_t4_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 981
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 1003
    functionName: BLOCK_CIPHER_custom
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - keylen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1163
    functionName: S390X_AES_FC
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_AES_FC(keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1195,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1196,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1198,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1204
    functionName: s390x_aes_ecb_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - S390X_AES_FC
    - EVP_CIPHER_CTX_key_length
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ecb_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *iv,
      int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1209,1
    - Dst: s390x_km
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1213
    functionName: s390x_aes_ecb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - s390x_km
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1229,1
    - Dst: EVP_CIPHER_CTX_original_iv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1230,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1231,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1232,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1234,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1235,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - key
    - ivec
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1239
    functionName: s390x_aes_ofb_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - S390X_AES_FC
    - EVP_CIPHER_CTX_original_iv
    - EVP_CIPHER_CTX_iv_length
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ofb_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *ivec,
      int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1244,1
    - Dst: s390x_kmo
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1260,1
    - Dst: s390x_km
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1278
    functionName: s390x_aes_ofb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - s390x_kmo
    - s390x_km
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1294,1
    - Dst: EVP_CIPHER_CTX_original_iv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1295,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1296,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1297,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1299,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1305,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - key
    - ivec
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1308
    functionName: s390x_aes_cfb_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_original_iv
    - S390X_AES_FC
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_cfb_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *ivec,
      int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1313,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1314,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1315,1
    - Dst: s390x_kmf
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1334,1
    - Dst: s390x_km
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1341,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1354
    functionName: s390x_aes_cfb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_key_length
    - EVP_C_DATA
    - S390X_AES_FC
    - s390x_kmf
    - s390x_km
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1367,1
    - Dst: EVP_CIPHER_CTX_original_iv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1368,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1369,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1370,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1372,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1377,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - key
    - ivec
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1380
    functionName: s390x_aes_cfb8_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_original_iv
    - S390X_AES_FC
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_cfb8_init_key(EVP_CIPHER_CTX *ctx,\n                                   const
      unsigned char *key,\n                                   const unsigned char
      *ivec, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1385,1
    - Dst: s390x_kmf
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1389
    functionName: s390x_aes_cfb8_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - s390x_kmf
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1424
    functionName: S390X_gcm_ivpadlen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_gcm_ivpadlen(i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1439,1
    - Dst: s390x_kma
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1453,1
    - Dst: s390x_kma
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1463,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - aad
    - len
    argTypes:
    - S390X_AES_GCM_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1429
    functionDepth: 0
    functionLinenumber: 1429
    functionLinenumberEnd: 1477
    functionName: s390x_aes_gcm_aad
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_kma
    - U64
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm_aad(S390X_AES_GCM_CTX *ctx, const unsigned char
      *aad,\n                             size_t len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1496,1
    - Dst: s390x_kma
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1512,1
    - Dst: s390x_kma
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1535,1
    - Dst: s390x_km
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1554,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - S390X_AES_GCM_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1566
    functionName: s390x_aes_gcm
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_km
    - s390x_kma
    - U64
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm(S390X_AES_GCM_CTX *ctx, const unsigned char *in,\n
      \                        unsigned char *out, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1583,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1588,1
    - Dst: s390x_kma
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1589,1
    - Dst: S390X_gcm_ivpadlen
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - iv
    argTypes:
    - S390X_AES_GCM_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1599
    functionName: s390x_aes_gcm_setiv
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_kma
    - S390X_gcm_ivpadlen
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void s390x_aes_gcm_setiv(S390X_AES_GCM_CTX *ctx,\n                                const
      unsigned char *iv)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1608,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1616,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1617,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1636,1
    - Dst: S390X_gcm_ivpadlen
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1637,1
    - Dst: S390X_gcm_ivpadlen
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1640,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1642,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1644,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1645,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1650,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1657,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1658,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1662,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1667,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1671,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1677,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1689,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1691,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1692,1
    - Dst: s390x_aes_gcm_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1702,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1707,1
    - Dst: ctr64_inc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1712,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1717,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1721,1
    - Dst: s390x_aes_gcm_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1722,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1731,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1732,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1742,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1755,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1756,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1759,1
    - Dst: S390X_gcm_ivpadlen
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1761,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1763,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1764,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1768,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 119
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1775
    functionName: s390x_aes_gcm_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_buf_noconst
    - ctr64_inc
    - RAND_bytes
    - OPENSSL_free
    - memcpy
    - EVP_C_DATA
    - memset
    - s390x_aes_gcm_setiv
    - EVP_CIPHER_CTX_iv_noconst
    - EVPerr
    - S390X_gcm_ivpadlen
    - EVP_CIPHER_iv_length
    linkageType: ''
    returnType: int
    signature: int s390x_aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1784,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1791,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1792,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1794,1
    - Dst: s390x_aes_gcm_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1802,1
    - Dst: s390x_aes_gcm_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1808,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1810,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1780
    functionDepth: 2
    functionLinenumber: 1780
    functionLinenumberEnd: 1816
    functionName: s390x_aes_gcm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - s390x_aes_gcm_setiv
    - S390X_AES_FC
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *iv,
      int enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1825,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1826,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1827,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1833,1
    - Dst: s390x_kma
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1844,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1848,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1851,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1853,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1822
    functionDepth: 2
    functionLinenumber: 1822
    functionLinenumberEnd: 1862
    functionName: s390x_aes_gcm_tls_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_ctrl
    - memcpy
    - EVP_C_DATA
    - s390x_kma
    - CRYPTO_memcmp
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                   const unsigned char *in, size_t len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1873,1
    - Dst: s390x_aes_gcm_tls_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1881,1
    - Dst: s390x_aes_gcm_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1888,1
    - Dst: s390x_aes_gcm
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1891,1
    - Dst: s390x_kma
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1898,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1902,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1905,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1912,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1913,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1870
    functionDepth: 3
    functionLinenumber: 1870
    functionLinenumberEnd: 1918
    functionName: s390x_aes_gcm_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_buf_noconst
    - s390x_aes_gcm_tls_cipher
    - s390x_aes_gcm_aad
    - EVP_C_DATA
    - s390x_kma
    - CRYPTO_memcmp
    - s390x_aes_gcm
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1922,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1928,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1930,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1934
    functionName: s390x_aes_gcm_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - OPENSSL_free
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_iv
    linkageType: ''
    returnType: int
    signature: int s390x_aes_gcm_cleanup(EVP_CIPHER_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - nonce
    - mlen
    argTypes:
    - S390X_AES_CCM_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1966
    functionDepth: 0
    functionLinenumber: 1966
    functionLinenumberEnd: 1973
    functionName: s390x_aes_ccm_setiv
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void s390x_aes_ccm_setiv(S390X_AES_CCM_CTX *ctx,\n                                          const
      unsigned char *nonce,\n                                          size_t mlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: s390x_kmac
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2019,1
    - Dst: s390x_kmac
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2026,1
    - Dst: s390x_km
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2034,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - ctx
    - aad
    - alen
    argTypes:
    - S390X_AES_CCM_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 1978
    functionDepth: 0
    functionLinenumber: 1978
    functionLinenumberEnd: 2039
    functionName: s390x_aes_ccm_aad
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_km
    - s390x_kmac
    linkageType: ''
    returnType: void
    signature: "void s390x_aes_ccm_aad(S390X_AES_CCM_CTX *ctx, const unsigned char
      *aad,\n                              size_t alen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: s390x_km
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2054,1
    - Dst: s390x_kmac
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2091,1
    - Dst: s390x_km
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2096,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2101,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2106,1
    - Dst: s390x_kmac
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2111,1
    - Dst: s390x_km
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2116,1
    - Dst: s390x_km
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2125,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 5
    argNames:
    - ctx
    - in
    - out
    - len
    - enc
    argTypes:
    - S390X_AES_CCM_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2045
    functionDepth: 2
    functionLinenumber: 2045
    functionLinenumberEnd: 2132
    functionName: s390x_aes_ccm
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_km
    - s390x_kmac
    - CRYPTO_ctr128_encrypt_ctr32
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ccm(S390X_AES_CCM_CTX *ctx, const unsigned char *in,\n
      \                        unsigned char *out, size_t len, int enc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2141,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2142,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2143,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2144,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2152,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2160,1
    - Dst: s390x_aes_ccm_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2161,1
    - Dst: s390x_aes_ccm_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2164,1
    - Dst: s390x_aes_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2170,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2173,1
    - Dst: s390x_aes_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2176,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2177,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2138
    functionDepth: 3
    functionLinenumber: 2138
    functionLinenumberEnd: 2185
    functionName: s390x_aes_ccm_tls_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - s390x_aes_ccm_setiv
    - EVP_CIPHER_CTX_buf_noconst
    - s390x_aes_ccm_aad
    - memcpy
    - s390x_aes_ccm
    - EVP_C_DATA
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_iv_noconst
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ccm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                   const unsigned char *in, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2195,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2203,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2204,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2205,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2210,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2218,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2225
    functionName: s390x_aes_ccm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - memset
    - EVP_CIPHER_CTX_iv_noconst
    - S390X_AES_FC
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ccm_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *iv,
      int enc)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2236,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2237,1
    - Dst: s390x_aes_ccm_tls_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2245,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2261,1
    - Dst: s390x_aes_ccm_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2262,1
    - Dst: s390x_aes_ccm_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2272,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2287,1
    - Dst: s390x_aes_ccm_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2288,1
    - Dst: s390x_aes_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2294,1
    - Dst: s390x_aes_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2302,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2303,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2304,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2310,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2233
    functionDepth: 4
    functionLinenumber: 2233
    functionLinenumberEnd: 2317
    functionName: s390x_aes_ccm_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - s390x_aes_ccm_setiv
    - s390x_aes_ccm_aad
    - EVP_CIPHER_CTX_buf_noconst
    - s390x_aes_ccm
    - EVP_C_DATA
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_iv_noconst
    - s390x_aes_ccm_tls_cipher
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2326,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2350,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2351,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2361,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2381,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2382,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2400,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2406,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2407,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2414,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2421,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2433
      start: 2324
    functionDepth: 1
    functionLinenumber: 2324
    functionLinenumberEnd: 2433
    functionName: s390x_aes_ccm_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_buf_noconst
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: int s390x_aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2455
    functionDepth: 0
    functionLinenumber: 2455
    functionLinenumberEnd: 2491
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,\t\\\n
      \                             MODE,flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2492
    functionDepth: 0
    functionLinenumber: 2492
    functionLinenumberEnd: 2527
    functionName: BLOCK_CIPHER_custom
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2530
    functionDepth: 0
    functionLinenumber: 2530
    functionLinenumberEnd: 2541
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2542
    functionDepth: 0
    functionLinenumber: 2542
    functionLinenumberEnd: 2554
    functionName: BLOCK_CIPHER_custom
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2599
    functionDepth: 0
    functionLinenumber: 2599
    functionLinenumberEnd: 2607
    functionName: BLOCK_CIPHER_generic_pack
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic_pack(nid,keylen,flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2612,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2614,1
    - Dst: HWAES_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2619,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2620,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2632,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2632,1
    - Dst: vpaes_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2640,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2641,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2649,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2650,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2659,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2659,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2678,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2678,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2686,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2686,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2694,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2694,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2706,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2608
    functionDepth: 1
    functionLinenumber: 2608
    functionLinenumberEnd: 2711
    functionName: aes_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - HWAES_set_decrypt_key
    - AES_set_encrypt_key
    - vpaes_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - AES_set_decrypt_key
    - vpaes_set_decrypt_key
    - EVP_C_DATA
    - EVPerr
    - HWAES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2716,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2720,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2721,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2722,1
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2723,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2724,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2726,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2713
    functionDepth: 1
    functionLinenumber: 2713
    functionLinenumberEnd: 2730
    functionName: aes_cbc_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_cbc128_encrypt
    - EVP_C_DATA
    - CRYPTO_cbc128_decrypt
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int aes_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2735,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2732
    functionDepth: 1
    functionLinenumber: 2732
    functionLinenumberEnd: 2746
    functionName: aes_ecb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - EVP_CIPHER_CTX_block_size
    linkageType: ''
    returnType: int
    signature: "int aes_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2751,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2753,1
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2754,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2755,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2748
    functionDepth: 1
    functionLinenumber: 2748
    functionLinenumberEnd: 2758
    functionName: aes_ofb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_num
    - EVP_C_DATA
    - CRYPTO_ofb128_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int aes_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2763,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2765,1
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2766,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2767,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2768,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2760
    functionDepth: 1
    functionLinenumber: 2760
    functionLinenumberEnd: 2771
    functionName: aes_cfb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_cfb128_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int aes_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2776,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2778,1
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2779,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2780,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2781,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2773
    functionDepth: 2
    functionLinenumber: 2773
    functionLinenumberEnd: 2784
    functionName: aes_cfb8_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_cfb128_8_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int aes_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2789,1
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2791,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2792,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2793,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2794,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2795,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2796,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2801,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2802,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2803,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2804,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2805,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2811,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2812,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2813,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2814,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2786
    functionDepth: 2
    functionLinenumber: 2786
    functionLinenumberEnd: 2819
    functionName: aes_cfb1_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    - EVP_C_DATA
    - EVP_CIPHER_CTX_test_flags
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int aes_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2824,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2825,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2828,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2829,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2830,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2833,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2834,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2835,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2821
    functionDepth: 3
    functionLinenumber: 2821
    functionLinenumberEnd: 2839
    functionName: aes_ctr_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    - CRYPTO_ctr128_encrypt_ctr32
    linkageType: ''
    returnType: int
    signature: "int aes_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2847,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2850,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2851,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2845
    functionDepth: 1
    functionLinenumber: 2845
    functionLinenumberEnd: 2854
    functionName: aes_gcm_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - OPENSSL_free
    - EVP_CIPHER_CTX_iv_noconst
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int aes_gcm_cleanup(EVP_CIPHER_CTX *c)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2858,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2863,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2880,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2881,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2882,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2892,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2900,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2906,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2917,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2918,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2926,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2929,1
    - Dst: ctr64_inc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2934,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2941,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2942,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2950,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2973,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2982,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2983,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:2986,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 105
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2856
    functionDepth: 2
    functionLinenumber: 2856
    functionLinenumberEnd: 2995
    functionName: aes_gcm_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ctr64_inc
    - RAND_bytes
    - OPENSSL_free
    - CRYPTO_gcm128_setiv
    - memcpy
    - EVP_C_DATA
    - EVPerr
    - EVP_CIPHER_iv_length
    linkageType: ''
    returnType: int
    signature: int aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3000,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3007,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3008,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3020,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3021,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3029,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3030,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3038,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3039,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3054,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3061,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3063,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 2997
    functionDepth: 2
    functionLinenumber: 2997
    functionLinenumberEnd: 3068
    functionName: aes_gcm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    - vpaes_set_encrypt_key
    - CRYPTO_gcm128_setiv
    - memcpy
    - EVP_C_DATA
    - CRYPTO_gcm128_init
    - HWAES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3080,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3090,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3095,1
    - Dst: AES_GCM_ASM
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3106,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3107,1
    - Dst: AES_gcm_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3110,1
    - Dst: CRYPTO_gcm128_encrypt_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3116,1
    - Dst: AES_GCM_ASM2
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3124,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3125,1
    - Dst: AES_gcm_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3128,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3134,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3140,1
    - Dst: AES_GCM_ASM
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3147,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3148,1
    - Dst: AES_gcm_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3151,1
    - Dst: CRYPTO_gcm128_decrypt_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3157,1
    - Dst: AES_GCM_ASM2
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3165,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3166,1
    - Dst: AES_gcm_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3169,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3175,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3180,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3182,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3183,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 72
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3077
    functionDepth: 3
    functionLinenumber: 3077
    functionLinenumberEnd: 3193
    functionName: aes_gcm_tls_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 1
    functionsReached:
    - CRYPTO_gcm128_tag
    - EVP_CIPHER_CTX_ctrl
    - CRYPTO_gcm128_encrypt
    - AES_gcm_encrypt
    - AES_GCM_ASM2
    - AES_gcm_decrypt
    - EVP_C_DATA
    - CRYPTO_gcm128_decrypt_ctr32
    - CRYPTO_memcmp
    - CRYPTO_gcm128_encrypt_ctr32
    - OPENSSL_cleanse
    - AES_GCM_ASM
    - CRYPTO_gcm128_decrypt
    - CRYPTO_gcm128_aad
    linkageType: ''
    returnType: int
    signature: "int aes_gcm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t len)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3198,1
    - Dst: aes_gcm_tls_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3204,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3210,1
    - Dst: AES_GCM_ASM
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3216,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3219,1
    - Dst: AES_gcm_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3222,1
    - Dst: CRYPTO_gcm128_encrypt_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3230,1
    - Dst: AES_GCM_ASM2
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3238,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3241,1
    - Dst: AES_gcm_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3244,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3252,1
    - Dst: AES_GCM_ASM
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3260,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3263,1
    - Dst: AES_gcm_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3266,1
    - Dst: CRYPTO_gcm128_decrypt_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3274,1
    - Dst: AES_GCM_ASM2
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3282,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3285,1
    - Dst: AES_gcm_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3288,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3296,1
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3306,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3311,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3195
    functionDepth: 4
    functionLinenumber: 3195
    functionLinenumberEnd: 3318
    functionName: aes_gcm_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_finish
    - CRYPTO_gcm128_tag
    - CRYPTO_gcm128_encrypt
    - AES_gcm_encrypt
    - AES_GCM_ASM2
    - AES_gcm_decrypt
    - EVP_C_DATA
    - CRYPTO_gcm128_decrypt_ctr32
    - aes_gcm_tls_cipher
    - CRYPTO_gcm128_encrypt_ctr32
    - AES_GCM_ASM
    - CRYPTO_gcm128_decrypt
    - CRYPTO_gcm128_aad
    linkageType: ''
    returnType: int
    signature: "int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3334,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3332
    functionDepth: 1
    functionLinenumber: 3332
    functionLinenumberEnd: 3357
    functionName: aes_xts_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: int aes_xts_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3362,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3370,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3388,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3389,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3402,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3403,1
    - Dst: HWAES_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3410,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3411,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3419,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3419,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3420,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3436,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3437,1
    - Dst: vpaes_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3441,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3442,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3447,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3447,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3448,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3459,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3459,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3463,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3463,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3468,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3468,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3469,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3478,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3478,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3359
    functionDepth: 1
    functionLinenumber: 3359
    functionLinenumberEnd: 3482
    functionName: aes_xts_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - HWAES_set_decrypt_key
    - AES_set_encrypt_key
    - vpaes_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - vpaes_set_decrypt_key
    - AES_set_decrypt_key
    - memcpy
    - EVP_C_DATA
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_iv_noconst
    - EVPerr
    - HWAES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3487,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3495,1
    - Dst: CRYPTO_xts128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3496,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3496,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3498,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3484
    functionDepth: 1
    functionLinenumber: 3484
    functionLinenumberEnd: 3501
    functionName: aes_xts_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_xts128_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int aes_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3514,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3532,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3532,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3536,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3537,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3543,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3548,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3549,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3559,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3559,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3574,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3578,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3578,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3584,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3586,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3596,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3609
      start: 3512
    functionDepth: 1
    functionLinenumber: 3512
    functionLinenumberEnd: 3609
    functionName: aes_ccm_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_buf_noconst
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: int aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3614,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3621,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3621,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3624,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3633,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3633,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3635,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3642,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3642,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3644,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3650,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3650,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3654
      start: 3611
    functionDepth: 1
    functionLinenumber: 3611
    functionLinenumberEnd: 3654
    functionName: aes_ccm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    - vpaes_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ccm128_init
    - HWAES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3659,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3665,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3666,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3666,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3669,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3669,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3673,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3673,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3677,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3677,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3681,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3682,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3684,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3686,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3690,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3692,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3694,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3695,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3699,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3702
      start: 3656
    functionDepth: 2
    functionLinenumber: 3656
    functionLinenumberEnd: 3702
    functionName: aes_ccm_tls_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_buf_noconst
    - CRYPTO_ccm128_decrypt
    - CRYPTO_ccm128_setiv
    - memcpy
    - CRYPTO_ccm128_aad
    - CRYPTO_ccm128_encrypt_ccm64
    - EVP_C_DATA
    - CRYPTO_ccm128_encrypt
    - CRYPTO_memcmp
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ccm128_decrypt_ccm64
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: "int aes_ccm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t len)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3707,1
    - Dst: aes_ccm_tls_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3714,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3725,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3725,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3734,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3739,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3744,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3744,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3749,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3750,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3752,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3758,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3760,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3762,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3763,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3763,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3769,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3704
    functionDepth: 3
    functionLinenumber: 3704
    functionLinenumberEnd: 3775
    functionName: aes_ccm_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_ccm128_decrypt
    - EVP_CIPHER_CTX_buf_noconst
    - CRYPTO_ccm128_setiv
    - CRYPTO_ccm128_encrypt
    - CRYPTO_ccm128_aad
    - CRYPTO_ccm128_encrypt_ccm64
    - EVP_C_DATA
    - aes_ccm_tls_cipher
    - CRYPTO_memcmp
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ccm128_decrypt_ccm64
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: "int aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3798,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3802,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3803,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3803,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3806,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3806,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3812,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3812,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3812,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3813,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3816
      start: 3795
    functionDepth: 1
    functionLinenumber: 3795
    functionLinenumberEnd: 3816
    functionName: aes_wrap_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - AES_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - AES_set_decrypt_key
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_iv_length
    linkageType: ''
    returnType: int
    signature: "int aes_wrap_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3821,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3824,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3832,1
    - Dst: is_partially_overlapping
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3837,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3838,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3842,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3858,1
    - Dst: CRYPTO_128_wrap_pad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3859,1
    - Dst: CRYPTO_128_unwrap_pad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3863,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3867,1
    - Dst: CRYPTO_128_wrap
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3868,1
    - Dst: CRYPTO_128_unwrap
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3871,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inlen
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3875
      start: 3818
    functionDepth: 2
    functionLinenumber: 3818
    functionLinenumberEnd: 3875
    functionName: aes_wrap_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_unwrap_pad
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_128_unwrap
    - EVP_C_DATA
    - is_partially_overlapping
    - EVPerr
    - CRYPTO_128_wrap
    - EVP_CIPHER_CTX_iv_length
    - CRYPTO_128_wrap_pad
    linkageType: ''
    returnType: int
    signature: "int aes_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3893
      start: 3890
    functionDepth: 0
    functionLinenumber: 3890
    functionLinenumberEnd: 3893
    functionName: EVP_aes_128_wrap
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3907
      start: 3904
    functionDepth: 0
    functionLinenumber: 3904
    functionLinenumberEnd: 3907
    functionName: EVP_aes_192_wrap
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_192_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3921
      start: 3918
    functionDepth: 0
    functionLinenumber: 3918
    functionLinenumberEnd: 3921
    functionName: EVP_aes_256_wrap
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3935
      start: 3932
    functionDepth: 0
    functionLinenumber: 3932
    functionLinenumberEnd: 3935
    functionName: EVP_aes_128_wrap_pad
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_wrap_pad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3949
      start: 3946
    functionDepth: 0
    functionLinenumber: 3946
    functionLinenumberEnd: 3949
    functionName: EVP_aes_192_wrap_pad
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_192_wrap_pad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3963
      start: 3960
    functionDepth: 0
    functionLinenumber: 3960
    functionLinenumberEnd: 3963
    functionName: EVP_aes_256_wrap_pad
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_wrap_pad(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3968,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3976,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:3977,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4004,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4006,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4010,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4013,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4018,1
    - Dst: CRYPTO_ocb128_copy_ctx
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4019,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4027
      start: 3966
    functionDepth: 2
    functionLinenumber: 3966
    functionLinenumberEnd: 4027
    functionName: aes_ocb_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ocb128_copy_ctx
    - EVP_CIPHER_iv_length
    linkageType: ''
    returnType: int
    signature: int aes_ocb_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4055,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4067,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4067,1
    - Dst: HWAES_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4069,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4069,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4071,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4083,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4083,1
    - Dst: vpaes_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4085,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4085,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4087,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4096,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4096,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4098,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4098,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4100,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4115,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4124,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4126,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4130
      start: 4052
    functionDepth: 3
    functionLinenumber: 4052
    functionLinenumberEnd: 4130
    functionName: aes_ocb_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ocb128_setiv
    - HWAES_set_decrypt_key
    - AES_set_encrypt_key
    - vpaes_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - vpaes_set_decrypt_key
    - AES_set_decrypt_key
    - memcpy
    - EVP_C_DATA
    - CRYPTO_ocb128_init
    - HWAES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4139,1
    - Dst: is_partially_overlapping
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4164,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4165,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4179,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4183,1
    - Dst: CRYPTO_ocb128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4191,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4193,1
    - Dst: CRYPTO_ocb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4194,1
    - Dst: CRYPTO_ocb128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4198,1
    - Dst: CRYPTO_ocb128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4216,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4218,1
    - Dst: CRYPTO_ocb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4219,1
    - Dst: CRYPTO_ocb128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4223,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4233,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4244,1
    - Dst: CRYPTO_ocb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4245,1
    - Dst: CRYPTO_ocb128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4249,1
    - Dst: CRYPTO_ocb128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4257,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4263,1
    - Dst: CRYPTO_ocb128_finish
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4266,1
    - Dst: CRYPTO_ocb128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4273,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 94
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4279
      start: 4132
    functionDepth: 4
    functionLinenumber: 4132
    functionLinenumberEnd: 4279
    functionName: aes_ocb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_ocb128_tag
    - CRYPTO_ocb128_aad
    - CRYPTO_ocb128_decrypt
    - memcpy
    - EVP_C_DATA
    - is_partially_overlapping
    - CRYPTO_ocb128_encrypt
    - EVPerr
    - CRYPTO_ocb128_finish
    linkageType: ''
    returnType: int
    signature: "int aes_ocb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4283,1
    - Dst: CRYPTO_ocb128_cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes.c:4284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4286
      start: 4281
    functionDepth: 2
    functionLinenumber: 4281
    functionLinenumberEnd: 4286
    functionName: aes_ocb_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - CRYPTO_ocb128_cleanup
    linkageType: ''
    returnType: int
    signature: int aes_ocb_cleanup(EVP_CIPHER_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 221
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:64,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:68,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:69,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:72,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:73,1
    - Dst: SHA256_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: aesni_cbc_hmac_sha256_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - data
    - aesni_set_decrypt_key
    - aesni_set_encrypt_key
    - SHA256_Init
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha256_init_key(EVP_CIPHER_CTX *ctx,\n                                          const
      unsigned char *inkey,\n                                          const unsigned
      char *iv, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:102,1
    - Dst: sha256_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:111,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 122
    functionName: sha256_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - sha256_block_data_order
    linkageType: ''
    returnType: void
    signature: void sha256_update(SHA256_CTX *c, const void *data, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:173,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:193,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:194,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:200,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:201,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:206,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:207,1
    - Dst: BSWAP8
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:226,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:240,1
    - Dst: sha256_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:249,1
    - Dst: sha256_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:267,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:268,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:277,1
    - Dst: sha256_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:285,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:287,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:294,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:300,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:302,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:307,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:309,1
    - Dst: sha256_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:317,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:319,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:322,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:324,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:326,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:328,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:330,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:332,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:334,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:336,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:339,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:341,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:343,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:345,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:347,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:349,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:351,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:353,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:355,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:358,1
    - Dst: sha256_multi_block
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:365,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:371,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:377,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:378,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:379,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:380,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:381,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:382,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:383,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:384,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:408,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:410,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:411,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 169
    argCount: 5
    argNames:
    - key
    - out
    - inp
    - inp_len
    - n4x
    argTypes:
    - EVP_AES_HMAC_SHA256*
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 414
    functionName: tls1_1_multi_block_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 1
    functionsReached:
    - sha256_multi_block
    - PUTU32
    - RAND_bytes
    - memcpy
    - memset
    - aesni_multi_cbc_encrypt
    - BSWAP4
    - BSWAP8
    - OPENSSL_cleanse
    linkageType: ''
    returnType: size_t
    signature: "size_t tls1_1_multi_block_encrypt(EVP_AES_HMAC_SHA256 *key,\n                                         unsigned
      char *out,\n                                         const unsigned char *inp,\n
      \                                        size_t inp_len, int n4x)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:421,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:437,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:464,1
    - Dst: aesni_cbc_sha256_enc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:466,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:467,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:481,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:485,1
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:488,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:490,1
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:491,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:498,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:499,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:501,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:502,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:514,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:515,1
    - Dst: constant_time_ge
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:543,1
    - Dst: constant_time_select
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:551,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:560,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:567,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:576,1
    - Dst: sha256_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:607,1
    - Dst: sha256_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:626,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:637,1
    - Dst: sha256_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:641,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:653,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:654,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:655,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:656,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:657,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:658,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:659,1
    - Dst: BSWAP4
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:660,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:672,1
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:674,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:688,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:692,1
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:693,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:738,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 198
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 743
    functionName: aesni_cbc_hmac_sha256_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - constant_time_select
    - EVP_CIPHER_CTX_encrypting
    - SHA256_Final
    - sha1_block_data_order
    - data
    - memcpy
    - sha256_block_data_order
    - memset
    - EVP_CIPHER_CTX_iv_noconst
    - SHA256_Update
    - BSWAP4
    - constant_time_ge
    - aesni_cbc_encrypt
    - aesni_cbc_sha256_enc
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha256_cipher(EVP_CIPHER_CTX *ctx,\n                                        unsigned
      char *out,\n                                        const unsigned char *in,
      size_t len)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:748,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:757,1
    - Dst: SHA256_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:763,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:764,1
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:765,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:767,1
    - Dst: SHA256_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:772,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:773,1
    - Dst: SHA256_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:777,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:778,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:780,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:794,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:805,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:811,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:835,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:851,1
    - Dst: tls1_1_multi_block_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:878,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 91
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 887
    functionName: aesni_cbc_hmac_sha256_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Final
    - EVP_CIPHER_CTX_encrypting
    - tls1_1_multi_block_encrypt
    - data
    - memcpy
    - memset
    - SHA256_Init
    - SHA256_Update
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha256_ctrl(EVP_CIPHER_CTX *ctx, int type, int
      arg,\n                                      void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesni_cbc_sha256_enc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 932
    functionName: EVP_aes_128_cbc_hmac_sha256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - aesni_cbc_sha256_enc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesni_cbc_sha256_enc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c:937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 939
    functionName: EVP_aes_256_cbc_hmac_sha256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - aesni_cbc_sha256_enc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 944
    functionName: EVP_aes_128_cbc_hmac_sha256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 949
    functionName: EVP_aes_256_cbc_hmac_sha256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD2_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_md2.c:25,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md2.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md2.c
    functionUses: 71
    functionsReached:
    - MD2_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD2_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md2.c:30,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md2.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md2.c
    functionUses: 6
    functionsReached:
    - EVP_MD_CTX_md_data
    - MD2_Update
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD2_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_md2.c:35,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md2.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md2.c
    functionUses: 6
    functionsReached:
    - EVP_MD_CTX_md_data
    - MD2_Final
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: EVP_md2
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c
    functionUses: 227
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: EVP_desx_cbc
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_desx_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:57,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:57,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:58,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:58,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:59,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: desx_cbc_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: "int desx_cbc_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_xcbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:68,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:68,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:69,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:70,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:70,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:71,1
    - Dst: DES_xcbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:77,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:77,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:78,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:79,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:79,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 82
    functionName: desx_cbc_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - DES_xcbc_encrypt
    - data
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int desx_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:21,1
    - Dst: EVP_des_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:21,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:22,1
    - Dst: EVP_des_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:22,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:23,1
    - Dst: EVP_des_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:23,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:24,1
    - Dst: EVP_des_ede_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:24,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:25,1
    - Dst: EVP_des_ede3_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:25,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:26,1
    - Dst: EVP_des_ede3_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:26,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:27,1
    - Dst: EVP_des_ede3_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:27,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:29,1
    - Dst: EVP_des_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:29,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:30,1
    - Dst: EVP_des_ede_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:30,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:31,1
    - Dst: EVP_des_ede3_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:31,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:33,1
    - Dst: EVP_desx_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:33,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:34,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:35,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:37,1
    - Dst: EVP_des_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:37,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:38,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:39,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:40,1
    - Dst: EVP_des_ede_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:40,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:41,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:41,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:42,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:43,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:45,1
    - Dst: EVP_des_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:45,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:46,1
    - Dst: EVP_des_ede
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:46,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:47,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:48,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:49,1
    - Dst: EVP_des_ede3
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:49,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:50,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:51,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:52,1
    - Dst: EVP_des_ede3_wrap
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:52,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:53,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:57,1
    - Dst: EVP_rc4
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:57,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:58,1
    - Dst: EVP_rc4_40
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:58,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:60,1
    - Dst: EVP_rc4_hmac_md5
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:60,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:65,1
    - Dst: EVP_idea_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:65,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:66,1
    - Dst: EVP_idea_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:66,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:67,1
    - Dst: EVP_idea_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:67,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:68,1
    - Dst: EVP_idea_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:68,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:69,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:70,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:74,1
    - Dst: EVP_seed_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:74,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:75,1
    - Dst: EVP_seed_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:75,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:76,1
    - Dst: EVP_seed_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:76,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:77,1
    - Dst: EVP_seed_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:77,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:78,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:79,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:83,1
    - Dst: EVP_sm4_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:83,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:84,1
    - Dst: EVP_sm4_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:84,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:85,1
    - Dst: EVP_sm4_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:85,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:86,1
    - Dst: EVP_sm4_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:86,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:87,1
    - Dst: EVP_sm4_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:87,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:88,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:89,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:93,1
    - Dst: EVP_rc2_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:93,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:94,1
    - Dst: EVP_rc2_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:94,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:95,1
    - Dst: EVP_rc2_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:95,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:96,1
    - Dst: EVP_rc2_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:96,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:97,1
    - Dst: EVP_rc2_40_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:97,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:98,1
    - Dst: EVP_rc2_64_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:98,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:99,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:100,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:101,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:102,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:103,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:107,1
    - Dst: EVP_bf_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:107,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:108,1
    - Dst: EVP_bf_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:108,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:109,1
    - Dst: EVP_bf_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:109,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:110,1
    - Dst: EVP_bf_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:110,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:111,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:112,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:113,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:117,1
    - Dst: EVP_cast5_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:117,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:118,1
    - Dst: EVP_cast5_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:118,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:119,1
    - Dst: EVP_cast5_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:119,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:120,1
    - Dst: EVP_cast5_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:120,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:121,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:122,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:123,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:124,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:128,1
    - Dst: EVP_rc5_32_12_16_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:128,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:129,1
    - Dst: EVP_rc5_32_12_16_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:129,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:130,1
    - Dst: EVP_rc5_32_12_16_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:130,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:131,1
    - Dst: EVP_rc5_32_12_16_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:131,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:132,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:133,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:136,1
    - Dst: EVP_aes_128_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:136,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:137,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:137,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:138,1
    - Dst: EVP_aes_128_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:138,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:139,1
    - Dst: EVP_aes_128_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:139,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:140,1
    - Dst: EVP_aes_128_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:140,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:141,1
    - Dst: EVP_aes_128_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:141,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:142,1
    - Dst: EVP_aes_128_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:142,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:143,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:143,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:145,1
    - Dst: EVP_aes_128_ocb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:145,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:147,1
    - Dst: EVP_aes_128_xts
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:147,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:148,1
    - Dst: EVP_aes_128_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:148,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:149,1
    - Dst: EVP_aes_128_wrap
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:149,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:150,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:151,1
    - Dst: EVP_aes_128_wrap_pad
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:151,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:152,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:153,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:154,1
    - Dst: EVP_aes_192_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:154,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:155,1
    - Dst: EVP_aes_192_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:155,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:156,1
    - Dst: EVP_aes_192_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:156,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:157,1
    - Dst: EVP_aes_192_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:157,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:158,1
    - Dst: EVP_aes_192_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:158,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:159,1
    - Dst: EVP_aes_192_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:159,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:160,1
    - Dst: EVP_aes_192_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:160,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:161,1
    - Dst: EVP_aes_192_gcm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:161,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:163,1
    - Dst: EVP_aes_192_ocb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:163,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:165,1
    - Dst: EVP_aes_192_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:165,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:166,1
    - Dst: EVP_aes_192_wrap
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:166,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:167,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:168,1
    - Dst: EVP_aes_192_wrap_pad
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:168,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:169,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:170,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:171,1
    - Dst: EVP_aes_256_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:171,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:172,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:172,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:173,1
    - Dst: EVP_aes_256_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:173,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:174,1
    - Dst: EVP_aes_256_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:174,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:175,1
    - Dst: EVP_aes_256_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:175,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:176,1
    - Dst: EVP_aes_256_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:176,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:177,1
    - Dst: EVP_aes_256_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:177,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:178,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:178,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:180,1
    - Dst: EVP_aes_256_ocb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:180,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:182,1
    - Dst: EVP_aes_256_xts
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:182,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:183,1
    - Dst: EVP_aes_256_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:183,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:184,1
    - Dst: EVP_aes_256_wrap
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:184,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:185,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:186,1
    - Dst: EVP_aes_256_wrap_pad
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:186,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:187,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:188,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:189,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:189,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:190,1
    - Dst: EVP_aes_256_cbc_hmac_sha1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:190,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:191,1
    - Dst: EVP_aes_128_cbc_hmac_sha256
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:191,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:192,1
    - Dst: EVP_aes_256_cbc_hmac_sha256
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:192,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:195,1
    - Dst: EVP_aria_128_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:195,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:196,1
    - Dst: EVP_aria_128_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:196,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:197,1
    - Dst: EVP_aria_128_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:197,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:198,1
    - Dst: EVP_aria_128_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:198,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:199,1
    - Dst: EVP_aria_128_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:199,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:200,1
    - Dst: EVP_aria_128_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:200,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:201,1
    - Dst: EVP_aria_128_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:201,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:202,1
    - Dst: EVP_aria_128_gcm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:202,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:203,1
    - Dst: EVP_aria_128_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:203,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:204,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:205,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:206,1
    - Dst: EVP_aria_192_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:206,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:207,1
    - Dst: EVP_aria_192_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:207,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:208,1
    - Dst: EVP_aria_192_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:208,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:209,1
    - Dst: EVP_aria_192_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:209,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:210,1
    - Dst: EVP_aria_192_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:210,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:211,1
    - Dst: EVP_aria_192_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:211,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:212,1
    - Dst: EVP_aria_192_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:212,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:213,1
    - Dst: EVP_aria_192_gcm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:213,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:214,1
    - Dst: EVP_aria_192_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:214,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:215,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:216,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:217,1
    - Dst: EVP_aria_256_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:217,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:218,1
    - Dst: EVP_aria_256_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:218,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:219,1
    - Dst: EVP_aria_256_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:219,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:220,1
    - Dst: EVP_aria_256_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:220,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:221,1
    - Dst: EVP_aria_256_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:221,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:222,1
    - Dst: EVP_aria_256_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:222,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:223,1
    - Dst: EVP_aria_256_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:223,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:224,1
    - Dst: EVP_aria_256_gcm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:224,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:225,1
    - Dst: EVP_aria_256_ccm
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:225,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:226,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:227,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:231,1
    - Dst: EVP_camellia_128_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:231,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:232,1
    - Dst: EVP_camellia_128_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:232,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:233,1
    - Dst: EVP_camellia_128_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:233,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:234,1
    - Dst: EVP_camellia_128_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:234,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:235,1
    - Dst: EVP_camellia_128_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:235,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:236,1
    - Dst: EVP_camellia_128_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:236,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:237,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:238,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:239,1
    - Dst: EVP_camellia_192_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:239,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:240,1
    - Dst: EVP_camellia_192_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:240,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:241,1
    - Dst: EVP_camellia_192_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:241,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:242,1
    - Dst: EVP_camellia_192_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:242,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:243,1
    - Dst: EVP_camellia_192_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:243,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:244,1
    - Dst: EVP_camellia_192_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:244,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:245,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:246,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:247,1
    - Dst: EVP_camellia_256_ecb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:247,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:248,1
    - Dst: EVP_camellia_256_cbc
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:248,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:249,1
    - Dst: EVP_camellia_256_cfb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:249,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:250,1
    - Dst: EVP_camellia_256_cfb1
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:250,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:251,1
    - Dst: EVP_camellia_256_cfb8
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:251,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:252,1
    - Dst: EVP_camellia_256_ofb
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:252,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:253,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:254,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:255,1
    - Dst: EVP_camellia_128_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:255,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:256,1
    - Dst: EVP_camellia_192_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:256,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:257,1
    - Dst: EVP_camellia_256_ctr
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:257,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:261,1
    - Dst: EVP_chacha20
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:261,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:263,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/openssl-1.1.1g/crypto/evp/c_allc.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 197
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 266
    functionName: openssl_add_all_ciphers_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/c_allc.c
    functionUses: 1
    functionsReached:
    - EVP_aes_128_cbc
    - EVP_aes_128_cfb
    - EVP_des_ede3_wrap
    - EVP_des_ede3_cfb1
    - EVP_aria_256_ctr
    - EVP_des_cfb8
    - EVP_aria_192_cfb8
    - EVP_des_ede
    - EVP_aes_128_xts
    - EVP_aria_128_ccm
    - EVP_aria_192_cbc
    - EVP_des_ede3_cbc
    - EVP_idea_cfb
    - EVP_camellia_256_ecb
    - EVP_camellia_256_ctr
    - EVP_bf_cbc
    - EVP_bf_cfb
    - EVP_des_cfb
    - EVP_rc5_32_12_16_ofb
    - EVP_camellia_192_cfb
    - EVP_des_ede3_ofb
    - EVP_rc5_32_12_16_cbc
    - EVP_aes_256_ccm
    - EVP_aes_256_wrap
    - EVP_aes_128_wrap
    - EVP_aria_256_ofb
    - EVP_aria_192_cfb1
    - EVP_cast5_cfb
    - EVP_camellia_256_cfb8
    - EVP_aes_192_wrap
    - EVP_bf_ecb
    - EVP_aes_256_ecb
    - EVP_des_cfb1
    - EVP_aes_128_ofb
    - EVP_aria_128_gcm
    - EVP_aria_256_ecb
    - EVP_camellia_192_cbc
    - EVP_bf_ofb
    - EVP_camellia_128_ctr
    - EVP_aes_192_cbc
    - EVP_aes_192_ofb
    - EVP_sm4_ecb
    - EVP_aes_256_cfb1
    - EVP_aria_256_cfb
    - EVP_chacha20
    - EVP_aes_128_ccm
    - EVP_sm4_cbc
    - EVP_camellia_128_cfb8
    - EVP_aes_192_ccm
    - EVP_des_ede3
    - EVP_sm4_ofb
    - EVP_aes_256_cfb8
    - EVP_aria_256_cbc
    - EVP_aria_256_gcm
    - EVP_camellia_192_ecb
    - EVP_cast5_ecb
    - EVP_aria_128_ofb
    - EVP_aes_128_ctr
    - EVP_aes_192_wrap_pad
    - EVP_aes_192_ecb
    - EVP_camellia_128_cfb
    - EVP_aes_192_cfb8
    - EVP_aes_256_cbc_hmac_sha256
    - EVP_rc2_ecb
    - EVP_rc2_64_cbc
    - EVP_aria_192_gcm
    - EVP_add_cipher_alias
    - EVP_camellia_192_ctr
    - EVP_aria_128_ctr
    - EVP_des_ede_ofb
    - EVP_aes_128_ecb
    - EVP_camellia_128_ofb
    - EVP_camellia_256_cfb
    - EVP_des_ofb
    - EVP_aes_128_cbc_hmac_sha256
    - EVP_aes_256_ctr
    - EVP_aria_192_ecb
    - EVP_aria_192_cfb
    - EVP_rc4_hmac_md5
    - EVP_rc4_40
    - EVP_des_ecb
    - EVP_seed_ecb
    - EVP_des_ede_cbc
    - EVP_aria_128_cfb1
    - EVP_aes_192_gcm
    - EVP_idea_ecb
    - EVP_camellia_256_cfb1
    - EVP_aria_128_ecb
    - EVP_aes_128_wrap_pad
    - EVP_des_ede3_cfb8
    - EVP_aria_128_cfb8
    - EVP_idea_cbc
    - EVP_idea_ofb
    - EVP_cast5_ofb
    - EVP_aes_192_cfb
    - EVP_aes_128_cbc_hmac_sha1
    - EVP_camellia_128_cbc
    - EVP_aes_256_cfb
    - EVP_des_ede3_cfb
    - EVP_des_cbc
    - EVP_aria_256_ccm
    - EVP_aes_192_ocb
    - EVP_aes_192_cfb1
    - EVP_aes_128_cfb8
    - EVP_aes_256_ofb
    - EVP_aria_128_cfb
    - EVP_camellia_192_cfb1
    - EVP_aria_256_cfb1
    - EVP_rc4
    - EVP_seed_cbc
    - EVP_rc2_cbc
    - EVP_camellia_192_cfb8
    - EVP_rc5_32_12_16_ecb
    - EVP_rc5_32_12_16_cfb
    - EVP_camellia_256_ofb
    - EVP_camellia_256_cbc
    - EVP_aria_128_cbc
    - EVP_aes_128_ocb
    - EVP_sm4_ctr
    - EVP_camellia_128_cfb1
    - EVP_add_cipher
    - EVP_aes_256_ocb
    - EVP_seed_ofb
    - EVP_camellia_128_ecb
    - EVP_rc2_ofb
    - EVP_des_ede_cfb
    - EVP_aes_256_xts
    - EVP_camellia_192_ofb
    - EVP_aria_192_ctr
    - EVP_rc2_cfb
    - EVP_rc2_40_cbc
    - EVP_sm4_cfb
    - EVP_aes_256_cbc
    - EVP_aria_192_ccm
    - EVP_aria_192_ofb
    - EVP_aes_256_cbc_hmac_sha1
    - EVP_chacha20_poly1305
    - EVP_aes_128_gcm
    - EVP_desx_cbc
    - EVP_cast5_cbc
    - EVP_aes_192_ctr
    - EVP_aes_256_gcm
    - EVP_aes_128_cfb1
    - EVP_seed_cfb
    - EVP_aes_256_wrap_pad
    - EVP_aria_256_cfb8
    linkageType: ''
    returnType: void
    signature: void openssl_add_all_ciphers_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4.c
    functionUses: 229
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: EVP_rc4
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: EVP_rc4_40
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc4_40(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4.c:72,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4.c:72,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: rc4_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4.c
    functionUses: 0
    functionsReached:
    - RC4_set_key
    - EVP_CIPHER_CTX_key_length
    - data
    linkageType: ''
    returnType: int
    signature: "int rc4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4.c:79,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: rc4_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4.c
    functionUses: 0
    functionsReached:
    - RC4
    - data
    linkageType: ''
    returnType: int
    signature: "int rc4_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                      const
      unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:20,1
    - Dst: EVP_md4
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:20,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:23,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:23,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:24,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:25,1
    - Dst: EVP_md5_sha1
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:25,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:27,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:27,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:28,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:29,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:31,1
    - Dst: EVP_mdc2
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:31,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:34,1
    - Dst: EVP_ripemd160
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:34,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:35,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:36,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:38,1
    - Dst: EVP_sha224
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:38,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:39,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:39,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:40,1
    - Dst: EVP_sha384
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:40,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:41,1
    - Dst: EVP_sha512
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:41,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:42,1
    - Dst: EVP_sha512_224
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:42,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:43,1
    - Dst: EVP_sha512_256
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:43,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:45,1
    - Dst: EVP_whirlpool
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:45,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:48,1
    - Dst: EVP_sm3
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:48,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:51,1
    - Dst: EVP_blake2b512
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:51,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:52,1
    - Dst: EVP_blake2s256
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:52,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:54,1
    - Dst: EVP_sha3_224
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:54,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:55,1
    - Dst: EVP_sha3_256
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:55,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:56,1
    - Dst: EVP_sha3_384
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:56,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:57,1
    - Dst: EVP_sha3_512
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:57,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:58,1
    - Dst: EVP_shake128
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:58,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:59,1
    - Dst: EVP_shake256
      Src: /src/openssl-1.1.1g/crypto/evp/c_alld.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 60
    functionName: openssl_add_all_digests_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/c_alld.c
    functionUses: 1
    functionsReached:
    - EVP_blake2s256
    - EVP_add_digest
    - EVP_sha384
    - EVP_sha3_384
    - EVP_mdc2
    - EVP_sha512
    - EVP_sha3_224
    - EVP_whirlpool
    - EVP_sha256
    - EVP_md4
    - EVP_sha1
    - EVP_shake128
    - EVP_sha224
    - EVP_md5_sha1
    - EVP_sha3_256
    - EVP_sha512_256
    - EVP_blake2b512
    - EVP_md5
    - EVP_add_digest_alias
    - EVP_ripemd160
    - EVP_sha512_224
    - EVP_sha3_512
    - EVP_shake256
    - EVP_sm3
    linkageType: ''
    returnType: void
    signature: void openssl_add_all_digests_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:28,1
    - Dst: MD5_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:29,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c
    functionUses: 71
    functionsReached:
    - SHA1_Init
    - EVP_MD_CTX_md_data
    - MD5_Init
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:36,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:37,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c
    functionUses: 6
    functionsReached:
    - SHA1_Update
    - EVP_MD_CTX_md_data
    - MD5_Update
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:44,1
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:45,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c
    functionUses: 6
    functionsReached:
    - SHA1_Final
    - MD5_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:63,1
    - Dst: update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:73,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:77,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:79,1
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:82,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:85,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:88,1
    - Dst: init
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:93,1
    - Dst: update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:96,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:100,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:102,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:105,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:108,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:111,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:116,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c:117,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - ctx
    - cmd
    - mslen
    - ms
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 121
    functionName: ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c
    functionUses: 37
    functionsReached:
    - SHA1_Final
    - EVP_MD_CTX_md_data
    - SHA1_Update
    - update
    - memset
    - init
    - MD5_Final
    - MD5_Update
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int ctrl(EVP_MD_CTX *ctx, int cmd, int mslen, void *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: EVP_md5_sha1
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md5_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_cast.c
    functionUses: 235
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_cast.c:36,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_cast.c:36,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_cast.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: cast_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_cast.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - data
    - CAST_set_key
    linkageType: ''
    returnType: int
    signature: "int cast_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                        const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: conv_bin2ascii
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: conv_bin2ascii(a, table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: conv_bin2ascii
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: conv_bin2ascii(a, table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: B64_NOT_BASE64
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B64_NOT_BASE64(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: B64_BASE64
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B64_BASE64(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - table
    argTypes:
    - unsigned char
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: conv_ascii2bin
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char conv_ascii2bin(unsigned char a, const unsigned char *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - table
    argTypes:
    - unsigned char
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: conv_ascii2bin
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char conv_ascii2bin(unsigned char a, const unsigned char *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: EVP_ENCODE_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 2
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_ENCODE_CTX
    signature: EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: EVP_ENCODE_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dctx
    - sctx
    argTypes:
    - EVP_ENCODE_CTX*
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: EVP_ENCODE_CTX_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, EVP_ENCODE_CTX *sctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: EVP_ENCODE_CTX_num
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: evp_encode_ctx_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evp_encode_ctx_set_flags(EVP_ENCODE_CTX *ctx, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: EVP_EncodeInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_EncodeInit(EVP_ENCODE_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:171,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:173,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:179,1
    - Dst: evp_encodeblock_int
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:182,1
    - Dst: evp_encodeblock_int
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:193,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 215
    functionName: EVP_EncodeUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - evp_encodeblock_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int
      *outl,\n                      const unsigned char *in, int inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_encodeblock_int
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: EVP_EncodeFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - evp_encodeblock_int
    linkageType: ''
    returnType: void
    signature: void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: conv_bin2ascii
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:247,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:248,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:249,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:250,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:256,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:257,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - t
    - f
    - dlen
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 267
    functionName: evp_encodeblock_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 2
    functionsReached:
    - conv_bin2ascii
    linkageType: ''
    returnType: int
    signature: "int evp_encodeblock_int(EVP_ENCODE_CTX *ctx, unsigned char *t,\n                               const
      unsigned char *f, int dlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_encodeblock_int
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - f
    - dlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: EVP_EncodeBlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - evp_encodeblock_int
    linkageType: ''
    returnType: int
    signature: int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int dlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: EVP_DecodeInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_DecodeInit(EVP_ENCODE_CTX *ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: conv_ascii2bin
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:332,1
    - Dst: B64_BASE64
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:340,1
    - Dst: B64_BASE64
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:357,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:367,1
    - Dst: evp_decodeblock_int
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:372,1
    - Dst: evp_decodeblock_int
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:391,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 88
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 411
    functionName: EVP_DecodeUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - evp_decodeblock_int
    - OPENSSL_assert
    - conv_ascii2bin
    - B64_BASE64
    linkageType: ''
    returnType: int
    signature: "int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int
      *outl,\n                     const unsigned char *in, int inl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: conv_ascii2bin
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:426,1
    - Dst: B64_NOT_BASE64
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:435,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:435,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:442,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:443,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:444,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:445,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - t
    - f
    - n
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 457
    functionName: evp_decodeblock_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - conv_ascii2bin
    - B64_NOT_BASE64
    linkageType: ''
    returnType: int
    signature: "int evp_decodeblock_int(EVP_ENCODE_CTX *ctx, unsigned char *t,\n                               const
      unsigned char *f, int n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_decodeblock_int
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - f
    - n
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: EVP_DecodeBlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 0
    functionsReached:
    - evp_decodeblock_int
    linkageType: ''
    returnType: int
    signature: int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_decodeblock_int
      Src: /src/openssl-1.1.1g/crypto/evp/encode.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 478
    functionName: EVP_DecodeFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - evp_decodeblock_int
    linkageType: ''
    returnType: int
    signature: int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:23,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:26,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:27,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:28,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:31,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:32,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:33,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:35,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:36,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:40,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:44,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 51
    functionName: alg_module_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_section
    - sk_CONF_VALUE_num
    - CONF_imodule_get_value
    - strcmp
    - STACK_OF
    - ERR_add_error_data
    - sk_CONF_VALUE_value
    - EVPerr
    - X509V3_get_value_bool
    linkageType: ''
    returnType: int
    signature: int alg_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: EVP_add_alg_module
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: void EVP_add_alg_module(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:22,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 72
    functionsReached:
    - SHA1_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:27,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 7
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA1_Update
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:32,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 6
    functionsReached:
    - SHA1_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:48,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:58,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:62,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:64,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:67,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:72,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:75,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:79,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:81,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:84,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:88,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - cmd
    - mslen
    - ms
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 92
    functionName: ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 37
    functionsReached:
    - SHA1_Final
    - SHA1_Update
    - EVP_MD_CTX_md_data
    - SHA1_Init
    - memset
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int ctrl(EVP_MD_CTX *ctx, int cmd, int mslen, void *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: EVP_sha1
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:116,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: init224
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA224_Init
    linkageType: ''
    returnType: int
    signature: int init224(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:121,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: update224
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA224_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int update224(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:126,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: final224
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA224_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int final224(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:131,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: init256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA256_Init
    linkageType: ''
    returnType: int
    signature: int init256(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:136,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: update256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int update256(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:141,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: final256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA256_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int final256(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: EVP_sha224
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: EVP_sha256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_224_init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:184,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: init512_224
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - sha512_224_init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int init512_224(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_256_init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:189,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: init512_256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - sha512_256_init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int init512_256(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:194,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: init384
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA384_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int init384(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:199,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: update384
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA384_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int update384(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:204,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: final384
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA384_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int final384(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:209,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: init512
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int init512(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:215,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: update512
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA512_Update
    linkageType: ''
    returnType: int
    signature: int update512(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:220,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_sha1.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: final512
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int final512(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: EVP_sha512_224
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha512_224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: EVP_sha512_256
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha512_256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: EVP_sha384
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: EVP_sha512
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_null.c
    functionUses: 74
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_null.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_null.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: EVP_md_null
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md_null(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prompt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: EVP_set_pw_prompt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_key.c
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: void EVP_set_pw_prompt(const char *prompt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: EVP_get_pw_prompt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_get_pw_prompt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_read_pw_string_min
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - len
    - prompt
    - verify
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: EVP_read_pw_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_key.c
    functionUses: 0
    functionsReached:
    - EVP_read_pw_string_min
    linkageType: ''
    returnType: int
    signature: int EVP_read_pw_string(char *buf, int len, const char *prompt, int
      verify)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UI_new
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:57,1
    - Dst: UI_add_input_string
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:60,1
    - Dst: UI_add_verify_string
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:63,1
    - Dst: UI_process
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:67,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:68,1
    - Dst: UI_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - buf
    - min
    - len
    - prompt
    - verify
    argTypes:
    - char*
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 72
    functionName: EVP_read_pw_string_min
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_key.c
    functionUses: 2
    functionsReached:
    - UI_new
    - UI_process
    - UI_free
    - UI_add_input_string
    - UI_add_verify_string
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int EVP_read_pw_string_min(char *buf, int min, int len, const char
      *prompt,\n                           int verify)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:84,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:85,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:86,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:87,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:92,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:96,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:99,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:101,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:104,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:106,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:110,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:112,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:114,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:145,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:147,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/evp_key.c:148,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 74
    argCount: 8
    argNames:
    - type
    - md
    - salt
    - data
    - datal
    - count
    - key
    - iv
    argTypes:
    - EVP_CIPHER*
    - EVP_MD*
    - unsigned char*
    - unsigned char*
    - int
    - int
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 150
    functionName: EVP_BytesToKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_key.c
    functionUses: 2
    functionsReached:
    - EVP_DigestFinal_ex
    - OPENSSL_assert
    - EVP_MD_CTX_new
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - EVP_CIPHER_key_length
    - EVP_MD_CTX_free
    - EVP_CIPHER_iv_length
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,\n                   const
      unsigned char *salt, const unsigned char *data,\n                   int datal,
      int count, unsigned char *key,\n                   unsigned char *iv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_add
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:24,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:24,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:28,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: EVP_add_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2ln
    - OBJ_NAME_add
    - OBJ_nid2sn
    linkageType: ''
    returnType: int
    signature: int EVP_add_cipher(const EVP_CIPHER *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:38,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:39,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:42,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:42,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:48,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:48,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:52,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 56
    functionName: EVP_add_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2ln
    - OBJ_nid2sn
    - OBJ_NAME_add
    linkageType: ''
    returnType: int
    signature: int EVP_add_digest(const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:62,1
    - Dst: OBJ_NAME_get
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: EVP_get_cipherbyname
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_get
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_get_cipherbyname(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:73,1
    - Dst: OBJ_NAME_get
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: EVP_get_digestbyname
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 1
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_get
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_get_digestbyname(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:82,1
    - Dst: OBJ_NAME_cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:83,1
    - Dst: OBJ_NAME_cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:89,1
    - Dst: EVP_PBE_cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:91,1
    - Dst: OBJ_sigid_free
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:92,1
    - Dst: evp_app_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: evp_cleanup_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 1
    functionsReached:
    - OBJ_sigid_free
    - EVP_PBE_cleanup
    - OBJ_NAME_cleanup
    - evp_app_cleanup_int
    linkageType: ''
    returnType: void
    signature: void evp_cleanup_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct doall_cipher*::fn
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:107,1
    - Dst: struct doall_cipher*::fn
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nm
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: do_all_cipher_fn
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - struct doall_cipher*::fn
    linkageType: ''
    returnType: void
    signature: void do_all_cipher_fn(const OBJ_NAME *nm, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:119,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: EVP_CIPHER_do_all
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph,\n                                   const
      char *from, const char *to, void *x),\n                       void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:133,1
    - Dst: OBJ_NAME_do_all_sorted
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: EVP_CIPHER_do_all_sorted
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_do_all_sorted
    linkageType: ''
    returnType: void
    signature: "void EVP_CIPHER_do_all_sorted(void (*fn) (const EVP_CIPHER *ciph,\n
      \                                         const char *from, const char *to,\n
      \                                         void *x), void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct doall_md*::fn
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:150,1
    - Dst: struct doall_md*::fn
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nm
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: do_all_md_fn
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - struct doall_md*::fn
    linkageType: ''
    returnType: void
    signature: void do_all_md_fn(const OBJ_NAME *nm, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:162,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: EVP_MD_do_all
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_MD_do_all(void (*fn) (const EVP_MD *md,\n                               const
      char *from, const char *to, void *x),\n                   void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:175,1
    - Dst: OBJ_NAME_do_all_sorted
      Src: /src/openssl-1.1.1g/crypto/evp/names.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: EVP_MD_do_all_sorted
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_do_all_sorted
    linkageType: ''
    returnType: void
    signature: "void EVP_MD_do_all_sorted(void (*fn) (const EVP_MD *md,\n                                      const
      char *from, const char *to,\n                                      void *x),
      void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 255
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:41,1
    - Dst: RC4_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:43,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:43,1
    - Dst: MD5_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: rc4_hmac_md5_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 0
    functionsReached:
    - RC4_set_key
    - MD5_Init
    - EVP_CIPHER_CTX_key_length
    - data
    linkageType: ''
    returnType: int
    signature: "int rc4_hmac_md5_init_key(EVP_CIPHER_CTX *ctx,\n                                 const
      unsigned char *inkey,\n                                 const unsigned char
      *iv, int enc)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:68,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:81,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:91,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:92,1
    - Dst: rc4_md5_enc
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:94,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:108,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:112,1
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:115,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:117,1
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:118,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:120,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:122,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:135,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:136,1
    - Dst: rc4_md5_enc
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:138,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:154,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:156,1
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:159,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:161,1
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:162,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:164,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:167,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 174
    functionName: rc4_hmac_md5_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - data
    - memcpy
    - MD5_Final
    - CRYPTO_memcmp
    - RC4
    - MD5_Update
    - rc4_md5_enc
    linkageType: ''
    returnType: int
    signature: "int rc4_hmac_md5_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:179,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:187,1
    - Dst: MD5_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:190,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:191,1
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:192,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:194,1
    - Dst: MD5_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:199,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:200,1
    - Dst: MD5_Init
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:204,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:205,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:207,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:221,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 237
    functionName: rc4_hmac_md5_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - MD5_Init
    - data
    - memcpy
    - memset
    - MD5_Final
    - MD5_Update
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int rc4_hmac_md5_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n                             void
      *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: EVP_rc4_hmac_md5
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc4_hmac_md5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: EVP_enc_null
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_enc_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: null_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int null_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                        const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_null.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: null_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_null.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int null_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                       const
      unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 258
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:80,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:82,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:83,1
    - Dst: cmll_t4_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:85,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:131,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 136
    functionName: cmll_t4_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_key_length
    - cmll_t4_set_key
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "int cmll_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 186
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: BLOCK_CIPHER_generic_pack
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic_pack(nid,keylen,flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:217,1
    - Dst: Camellia_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:219,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:219,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:221,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 238
    functionName: camellia_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_CTX_key_length
    - EVP_C_DATA
    - EVPerr
    - Camellia_set_key
    linkageType: ''
    returnType: int
    signature: "int camellia_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:243,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:247,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:248,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:249,1
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:250,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:251,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:253,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: camellia_cbc_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_cbc128_encrypt
    - EVP_C_DATA
    - CRYPTO_cbc128_decrypt
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int camellia_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:262,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 273
    functionName: camellia_ecb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - EVP_CIPHER_CTX_block_size
    linkageType: ''
    returnType: int
    signature: "int camellia_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:278,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:280,1
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:281,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:282,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: camellia_ofb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_num
    - EVP_C_DATA
    - CRYPTO_ofb128_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int camellia_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:290,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:292,1
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:293,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:294,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:294,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: camellia_cfb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_cfb128_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int camellia_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:302,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:304,1
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:305,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:306,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:306,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: camellia_cfb8_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_cfb128_8_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int camellia_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:314,1
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:316,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:317,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:318,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:319,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:319,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:320,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:325,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:326,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:327,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:327,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:328,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:334,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:335,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:336,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:336,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 341
    functionName: camellia_cfb1_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    - EVP_C_DATA
    - EVP_CIPHER_CTX_test_flags
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int camellia_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:346,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:347,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:350,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:351,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:352,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:355,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:356,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:357,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_camellia.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 361
    functionName: camellia_ctr_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    - CRYPTO_ctr128_encrypt_ctr32
    linkageType: ''
    returnType: int
    signature: "int camellia_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_wp.c:23,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_wp.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_wp.c
    functionUses: 74
    functionsReached:
    - EVP_MD_CTX_md_data
    - WHIRLPOOL_Init
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_wp.c:28,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_wp.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_wp.c
    functionUses: 7
    functionsReached:
    - EVP_MD_CTX_md_data
    - WHIRLPOOL_Update
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_wp.c:33,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_wp.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_wp.c
    functionUses: 6
    functionsReached:
    - EVP_MD_CTX_md_data
    - WHIRLPOOL_Final
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: EVP_whirlpool
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_wp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_whirlpool(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:64,1
    - Dst: aria_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:67,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:67,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:68,1
    - Dst: aria_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:70,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:70,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:71,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: aria_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_CTX_get_cipher_data
    - aria_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - aria_set_decrypt_key
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "int aria_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:85,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: aria_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t len, const ARIA_KEY *key,\n                             unsigned
      char *ivec, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: aria_cfb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                               size_t length, const ARIA_KEY *key,\n                                unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: aria_cfb1_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_cfb1_encrypt(const unsigned char *in, unsigned char *out,\n
      \                             size_t length, const ARIA_KEY *key,\n                              unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: aria_cfb8_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_8_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_cfb8_encrypt(const unsigned char *in, unsigned char *out,\n
      \                             size_t length, const ARIA_KEY *key,\n                              unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aria_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - ARIA_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: aria_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - aria_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            const ARIA_KEY *key, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: aria_ofb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t length, const ARIA_KEY *key,\n                             unsigned
      char *ivec, int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ksize
    - ','
    - cbits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: IMPLEMENT_ARIA_CFBR
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ARIA_CFBR(ksize,cbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:174,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:175,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:177,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:178,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:179,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: aria_ctr_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int aria_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                               const
      unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: ctr64_inc
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr64_inc(unsigned char *counter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:211,1
    - Dst: aria_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:216,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:216,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:218,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:221,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:231,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:238,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 245
    functionName: aria_gcm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - aria_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - CRYPTO_gcm128_setiv
    - memcpy
    - EVP_C_DATA
    - EVPerr
    - CRYPTO_gcm128_init
    linkageType: ''
    returnType: int
    signature: "int aria_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                                const unsigned char *iv, int enc)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:249,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:255,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:256,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:267,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:268,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:269,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:270,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:282,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:284,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:284,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:289,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:292,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:292,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:298,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:309,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:310,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:311,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:319,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:322,1
    - Dst: ctr64_inc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:327,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:333,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:335,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:336,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:344,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:344,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:348,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:349,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:355,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:360,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:361,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:369,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:375,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:376,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:378,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:379,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:382,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 105
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 391
    functionName: aria_gcm_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_buf_noconst
    - ctr64_inc
    - RAND_bytes
    - OPENSSL_free
    - CRYPTO_gcm128_setiv
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVPerr
    - EVP_CIPHER_iv_length
    linkageType: ''
    returnType: int
    signature: int aria_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:396,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:407,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:407,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:412,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:412,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:419,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:421,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:425,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:429,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:432,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:432,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:435,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:435,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:437,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 447
    functionName: aria_gcm_tls_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_gcm128_tag
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_ctrl
    - CRYPTO_gcm128_encrypt
    - EVP_C_DATA
    - CRYPTO_memcmp
    - OPENSSL_cleanse
    - CRYPTO_gcm128_decrypt
    - CRYPTO_gcm128_aad
    linkageType: ''
    returnType: int
    signature: "int aria_gcm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:452,1
    - Dst: aria_gcm_tls_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:459,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:465,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:467,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:468,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:471,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:476,1
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:479,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:480,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:486,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:486,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 491
    functionName: aria_gcm_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_finish
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_gcm128_tag
    - EVP_CIPHER_CTX_buf_noconst
    - aria_gcm_tls_cipher
    - CRYPTO_gcm128_encrypt
    - EVP_C_DATA
    - CRYPTO_gcm128_decrypt
    - CRYPTO_gcm128_aad
    linkageType: ''
    returnType: int
    signature: "int aria_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:495,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:497,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: aria_gcm_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - OPENSSL_free
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: int aria_gcm_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:507,1
    - Dst: aria_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:513,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:513,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:515,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:518,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:525,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 529
    functionName: aria_ccm_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ccm128_init
    - aria_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "int aria_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:533,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:550,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:550,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:554,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:555,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:561,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:566,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:567,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:577,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:577,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:595,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:599,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:599,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:605,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:607,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:617,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 629
    functionName: aria_ccm_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_buf_noconst
    - memcpy
    - EVP_C_DATA
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: int aria_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:634,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:641,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:642,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:642,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:645,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:645,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:649,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:649,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:653,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:653,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:657,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:658,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:659,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:661,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:665,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:666,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:668,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:669,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:673,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 676
    functionName: aria_ccm_tls_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_buf_noconst
    - CRYPTO_ccm128_decrypt
    - CRYPTO_ccm128_setiv
    - memcpy
    - CRYPTO_ccm128_aad
    - CRYPTO_ccm128_encrypt_ccm64
    - EVP_C_DATA
    - CRYPTO_ccm128_encrypt
    - CRYPTO_memcmp
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ccm128_decrypt_ccm64
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: "int aria_ccm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t len)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:681,1
    - Dst: aria_ccm_tls_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:689,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:700,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:700,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:709,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:714,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:719,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:719,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:724,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:725,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:726,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:732,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:734,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:736,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:737,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:737,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_aria.c:743,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 749
    functionName: aria_ccm_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - aria_ccm_tls_cipher
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_ccm128_decrypt
    - EVP_CIPHER_CTX_buf_noconst
    - CRYPTO_ccm128_setiv
    - CRYPTO_ccm128_encrypt
    - CRYPTO_ccm128_aad
    - CRYPTO_ccm128_encrypt_ccm64
    - EVP_C_DATA
    - CRYPTO_memcmp
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ccm128_decrypt_ccm64
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: "int aria_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 771
    functionName: BLOCK_CIPHER_aead
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_aead(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5.c:24,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md5.c
    functionUses: 76
    functionsReached:
    - EVP_MD_CTX_md_data
    - MD5_Init
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5.c:29,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md5.c
    functionUses: 7
    functionsReached:
    - EVP_MD_CTX_md_data
    - MD5_Update
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5.c:34,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md5.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md5.c
    functionUses: 6
    functionsReached:
    - MD5_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: EVP_md5
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md5.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ctx
    - ','
    - arg
    - ','
    - arglen
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: M_check_autoarg
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M_check_autoarg(ctx, arg, arglen, err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:39,1
    - Dst: EVP_PKEY_CTX*::pmeth::sign_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: EVP_PKEY_sign_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 2
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::sign_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:57,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:62,1
    - Dst: M_check_autoarg
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:65,1
    - Dst: EVP_PKEY_CTX*::pmeth::sign
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: EVP_PKEY_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 2
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::sign
    - M_check_autoarg
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_sign(EVP_PKEY_CTX *ctx,\n                  unsigned char
      *sig, size_t *siglen,\n                  const unsigned char *tbs, size_t tbslen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:73,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: EVP_PKEY_verify_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 1
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::verify_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:91,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:96,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: EVP_PKEY_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 1
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::verify
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,\n                    const
      unsigned char *sig, size_t siglen,\n                    const unsigned char
      *tbs, size_t tbslen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:106,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify_recover_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 117
    functionName: EVP_PKEY_verify_recover_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::verify_recover_init
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:124,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:129,1
    - Dst: M_check_autoarg
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:132,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify_recover
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - rout
    - routlen
    - sig
    - siglen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: EVP_PKEY_verify_recover
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::verify_recover
    - EVPerr
    - M_check_autoarg
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *rout, size_t *routlen,\n                            const unsigned char
      *sig, size_t siglen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:140,1
    - Dst: EVP_PKEY_CTX*::pmeth::encrypt_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: EVP_PKEY_encrypt_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::encrypt_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:158,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:163,1
    - Dst: M_check_autoarg
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:166,1
    - Dst: EVP_PKEY_CTX*::pmeth::encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: EVP_PKEY_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::encrypt
    - M_check_autoarg
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,\n                     unsigned
      char *out, size_t *outlen,\n                     const unsigned char *in, size_t
      inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:174,1
    - Dst: EVP_PKEY_CTX*::pmeth::decrypt_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: EVP_PKEY_decrypt_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::decrypt_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:192,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:197,1
    - Dst: M_check_autoarg
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:200,1
    - Dst: EVP_PKEY_CTX*::pmeth::decrypt
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: EVP_PKEY_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::decrypt
    - EVPerr
    - M_check_autoarg
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,\n                     unsigned
      char *out, size_t *outlen,\n                     const unsigned char *in, size_t
      inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:208,1
    - Dst: EVP_PKEY_CTX*::pmeth::derive_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: EVP_PKEY_derive_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::derive_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:227,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:234,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:239,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:248,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:253,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:264,1
    - Dst: EVP_PKEY_cmp_parameters
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:265,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:266,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:270,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:273,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:280,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 2
    argNames:
    - ctx
    - peer
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 282
    functionName: EVP_PKEY_derive_set_peer
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_up_ref
    - EVP_PKEY_free
    - EVP_PKEY_CTX*::pmeth::ctrl
    - EVP_PKEY_cmp_parameters
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:287,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:292,1
    - Dst: M_check_autoarg
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:295,1
    - Dst: EVP_PKEY_CTX*::pmeth::derive
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - key
    - pkeylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: EVP_PKEY_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::derive
    - M_check_autoarg
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *pkeylen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:25,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:26,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:30,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:32,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:35,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:37,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:38,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:44,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:47,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:49,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:49,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:51,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/p_verify.c:53,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - sigbuf
    - siglen
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 55
    functionName: EVP_VerifyFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/p_verify.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_test_flags
    - EVP_DigestFinal_ex
    - EVP_PKEY_CTX_new
    - EVP_MD_CTX_md
    - EVP_MD_CTX_new
    - EVP_MD_CTX_copy_ex
    - EVP_PKEY_verify
    - EVP_PKEY_CTX_free
    - EVP_MD_CTX_free
    - EVPerr
    - EVP_PKEY_CTX_set_signature_md
    - EVP_PKEY_verify_init
    linkageType: ''
    returnType: int
    signature: "int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf,\n
      \                   unsigned int siglen, EVP_PKEY *pkey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:29,1
    - Dst: EVP_MD_CTX*::digest::cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:30,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:32,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:33,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:39,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:40,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:42,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:44,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: EVP_MD_CTX_reset
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_test_flags
    - EVP_PKEY_CTX_free
    - ENGINE_finish
    - OPENSSL_cleanse
    - OPENSSL_clear_free
    - EVP_MD_CTX*::digest::cleanup
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_reset(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: EVP_MD_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 13
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: EVP_MD_CTX *EVP_MD_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: EVP_MD_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 13
    functionsReached:
    - EVP_MD_CTX_reset
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:62,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: EVP_DigestInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 4
    functionsReached:
    - EVP_MD_CTX_reset
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_clear_flags
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:68,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:85,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:87,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:88,1
    - Dst: ENGINE_get_digest_engine
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:93,1
    - Dst: ENGINE_get_digest
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:97,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:100,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:101,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:115,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:123,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:129,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:131,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:141,1
    - Dst: EVP_MD_CTX*::digest::init
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:148,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 3
    argNames:
    - ctx
    - type
    - impl
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 149
    functionName: EVP_DigestInit_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 8
    functionsReached:
    - ENGINE_get_digest_engine
    - EVP_MD_CTX*::digest::init
    - OPENSSL_clear_free
    - ENGINE_finish
    - OPENSSL_zalloc
    - EVP_PKEY_CTX_ctrl
    - EVPerr
    - EVP_MD_CTX_clear_flags
    - ENGINE_get_digest
    - ENGINE_init
    linkageType: ''
    returnType: int
    signature: int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX*::update
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: EVP_DigestUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 12
    functionsReached:
    - EVP_MD_CTX*::update
    linkageType: ''
    returnType: int
    signature: int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:163,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - md
    - size
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: EVP_DigestFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 4
    functionsReached:
    - EVP_MD_CTX_reset
    - EVP_DigestFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int
      *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:173,1
    - Dst: EVP_MD_CTX*::digest::final
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:174,1
    - Dst: EVP_MD_CTX*::digest::cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:178,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:179,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - md
    - size
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: EVP_DigestFinal_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 10
    functionsReached:
    - OPENSSL_assert
    - EVP_MD_CTX*::digest::final
    - EVP_MD_CTX*::digest::cleanup
    - EVP_MD_CTX_set_flags
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned
      int *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX*::digest::md_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:191,1
    - Dst: EVP_MD_CTX*::digest::final
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:192,1
    - Dst: EVP_MD_CTX*::digest::cleanup
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:195,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:196,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:198,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - md
    - size
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 204
    functionName: EVP_DigestFinalXOF
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX*::digest::final
    - EVP_MD_CTX*::digest::md_ctrl
    - EVP_MD_CTX*::digest::cleanup
    - EVP_MD_CTX_set_flags
    - EVPerr
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:208,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: EVP_MD_CTX_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_reset
    - EVP_MD_CTX_copy_ex
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:216,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:221,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:222,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:229,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:232,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:233,1
    - Dst: EVP_MD_CTX_clear_flags
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:236,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:249,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:251,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:255,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:261,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:263,1
    - Dst: EVP_MD_CTX*::digest::copy
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:269,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 272
    functionName: EVP_MD_CTX_copy_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 6
    functionsReached:
    - OPENSSL_malloc
    - EVP_MD_CTX*::digest::copy
    - EVP_MD_CTX_set_flags
    - memcpy
    - EVP_PKEY_CTX_dup
    - EVP_MD_CTX_reset
    - EVPerr
    - EVP_MD_CTX_clear_flags
    - ENGINE_init
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:278,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:283,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:284,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:285,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:286,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 6
    argNames:
    - data
    - count
    - md
    - size
    - type
    - impl
    argTypes:
    - void*
    - size_t
    - unsigned char*
    - unsigned int*
    - EVP_MD*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 290
    functionName: EVP_Digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - EVP_MD_CTX_set_flags
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int EVP_Digest(const void *data, size_t count,\n               unsigned
      char *md, unsigned int *size, const EVP_MD *type,\n               ENGINE *impl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX*::digest::md_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/digest.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: EVP_MD_CTX_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX*::digest::md_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:23,1
    - Dst: EVP_PKEY_CTX*::pmeth::paramgen_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:30,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: EVP_PKEY_paramgen_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::paramgen_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:40,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:46,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:54,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:57,1
    - Dst: EVP_PKEY_CTX*::pmeth::paramgen
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:61,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:63,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - ctx
    - ppkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 67
    functionName: EVP_PKEY_paramgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_new
    - EVPerr
    - EVP_PKEY_free
    - EVP_PKEY_CTX*::pmeth::paramgen
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:73,1
    - Dst: EVP_PKEY_CTX*::pmeth::keygen_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: EVP_PKEY_keygen_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::keygen_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:91,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:96,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:104,1
    - Dst: EVP_PKEY_CTX*::pmeth::keygen
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:108,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:110,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - ppkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: EVP_PKEY_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_new
    - EVPerr
    - EVP_PKEY_free
    - EVP_PKEY_CTX*::pmeth::keygen
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_gen_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: EVP_PKEY_CTX_set_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: EVP_PKEY_CTX_get_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_gen_cb
    signature: EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_get_arg
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:133,1
    - Dst: EVP_PKEY_CTX*::pkey_gencb
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - gcb
    argTypes:
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: trans_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_get_arg
    - EVP_PKEY_CTX*::pkey_gencb
    linkageType: ''
    returnType: int
    signature: int trans_cb(int a, int b, BN_GENCB *gcb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cb
    - ctx
    argTypes:
    - BN_GENCB*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: evp_pkey_set_cb_translate
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set
    linkageType: ''
    returnType: void
    signature: void evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: EVP_PKEY_CTX_get_keygen_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:158,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:161,1
    - Dst: EVP_PKEY_CTX_set_mac_key
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:163,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:165,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - type
    - e
    - key
    - keylen
    argTypes:
    - int
    - ENGINE*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: EVP_PKEY_new_mac_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_keygen
    - EVP_PKEY_CTX_set_mac_key
    - EVP_PKEY_CTX_free
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_new_id
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e,\n                               const
      unsigned char *key, int keylen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:177,1
    - Dst: EVP_PKEY_CTX*::pmeth::check
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:183,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:187,1
    - Dst: EVP_PKEY*::ameth::pkey_check
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: EVP_PKEY_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::check
    - EVPerr
    - EVP_PKEY*::ameth::pkey_check
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_check(EVP_PKEY_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:200,1
    - Dst: EVP_PKEY_CTX*::pmeth::public_check
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:206,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:210,1
    - Dst: EVP_PKEY*::ameth::pkey_public_check
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 216
    functionName: EVP_PKEY_public_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY*::ameth::pkey_public_check
    - EVP_PKEY_CTX*::pmeth::public_check
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:223,1
    - Dst: EVP_PKEY_CTX*::pmeth::param_check
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:229,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:233,1
    - Dst: EVP_PKEY*::ameth::pkey_param_check
      Src: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: EVP_PKEY_param_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVPerr
    - EVP_PKEY_CTX*::pmeth::param_check
    - EVP_PKEY*::ameth::pkey_param_check
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: R
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
    functionUses: 102
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:24,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:26,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:27,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:28,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:29,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:30,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:31,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:32,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:33,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:34,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:35,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:36,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:37,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:38,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:39,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:40,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:41,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:42,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:43,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:44,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:45,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:46,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:47,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:48,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:49,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:50,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:51,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:52,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:53,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:54,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:55,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:56,1
    - Dst: R
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:57,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - inout
    argTypes:
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 62
    functionName: salsa208_word_specification
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
    functionUses: 0
    functionsReached:
    - R
    - memcpy
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void salsa208_word_specification(uint32_t inout[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:69,1
    - Dst: salsa208_word_specification
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:74,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:75,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - B_
    - B
    - r
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: scryptBlockMix
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
    functionUses: 0
    functionsReached:
    - salsa208_word_specification
    - memcpy
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void scryptBlockMix(uint32_t *B_, uint32_t *B, uint64_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scryptBlockMix
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:96,1
    - Dst: scryptBlockMix
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:98,1
    - Dst: scryptBlockMix
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - B
    - r
    - N
    - X
    - T
    - V
    argTypes:
    - unsigned char*
    - uint64_t
    - uint64_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 116
    functionName: scryptROMix
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
    functionUses: 0
    functionsReached:
    - scryptBlockMix
    linkageType: ''
    returnType: void
    signature: "void scryptROMix(unsigned char *B, uint64_t r, uint64_t N,\n                        uint32_t
      *X, uint32_t *T, uint32_t *V)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:174,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:185,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:203,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:213,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:220,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:232,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:240,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:242,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:248,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:248,1
    - Dst: scryptROMix
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:253,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:255,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:255,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:261,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c:263,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 10
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - N
    - r
    - p
    - maxmem
    - key
    - keylen
    argTypes:
    - char*
    - size_t
    - unsigned char*
    - size_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 265
    functionName: EVP_PBE_scrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - scryptROMix
    - PKCS5_PBKDF2_HMAC
    - EVP_sha256
    - EVPerr
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_scrypt(const char *pass, size_t passlen,\n                   const
      unsigned char *salt, size_t saltlen,\n                   uint64_t N, uint64_t
      r, uint64_t p, uint64_t maxmem,\n                   unsigned char *key, size_t
      keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_CIPHER_ecb_loop
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:36,1
    - Dst: IDEA_ecb_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:37,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: idea_ecb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_idea.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - IDEA_ecb_encrypt
    - BLOCK_CIPHER_ecb_loop
    linkageType: ''
    returnType: int
    signature: "int idea_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:53,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:55,1
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:59,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:59,1
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:63,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:64,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:64,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/evp/e_idea.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: idea_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_idea.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - IDEA_set_encrypt_key
    - IDEA_set_decrypt_key
    - EVP_C_DATA
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int idea_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                        const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEED_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_seed.c:35,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-1.1.1g/crypto/evp/e_seed.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: seed_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_seed.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - SEED_set_key
    linkageType: ''
    returnType: int
    signature: "int seed_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                        const unsigned char *iv, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:27,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:30,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:31,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:35,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:35,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:36,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:37,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:38,1
    - Dst: EVP_PKEY*::ameth::priv_decode
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:43,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:44,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:48,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - p8
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 57
    functionName: EVP_PKCS82PKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY_free
    - OBJ_obj2nid
    - ERR_add_error_data
    - EVP_PKEY_set_type
    - EVP_PKEY*::ameth::priv_decode
    - i2t_ASN1_OBJECT
    - PKCS8_pkey_get0
    - EVP_PKEY_new
    - EVPerr
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_PRIV_KEY_INFO_new
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:63,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:65,1
    - Dst: EVP_PKEY*::ameth::priv_encode
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:71,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:72,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:76,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:80,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 87
    functionName: EVP_PKEY2PKCS8
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - EVPerr
    - PKCS8_PRIV_KEY_INFO_new
    - EVP_PKEY*::ameth::priv_encode
    - PKCS8_PRIV_KEY_INFO_free
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: EVP_PKEY_get_attr_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_attr_count(const EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - nid
    - lastpos
    argTypes:
    - EVP_PKEY*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: EVP_PKEY_get_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - obj
    - lastpos
    argTypes:
    - EVP_PKEY*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: EVP_PKEY_get_attr_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT
      *obj,\n                             int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - loc
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: EVP_PKEY_get_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - loc
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: EVP_PKEY_delete_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - attr
    argTypes:
    - EVP_PKEY*
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: EVP_PKEY_add1_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - obj
    - type
    - bytes
    - len
    argTypes:
    - EVP_PKEY*
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: EVP_PKEY_add1_attr_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key,\n                              const
      ASN1_OBJECT *obj, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - nid
    - type
    - bytes
    - len
    argTypes:
    - EVP_PKEY*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: EVP_PKEY_add1_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key,\n                              int
      nid, int type,\n                              const unsigned char *bytes, int
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - EVP_PKEY*
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: EVP_PKEY_add1_attr_by_txt
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key,\n                              const
      char *attrname, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c:24,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c
    functionUses: 88
    functionsReached:
    - EVP_MD_CTX_md_data
    - MDC2_Init
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c:29,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c
    functionUses: 8
    functionsReached:
    - MDC2_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c:34,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c
    functionUses: 8
    functionsReached:
    - EVP_MD_CTX_md_data
    - MDC2_Final
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: EVP_mdc2
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_mdc2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: BIO_f_base64
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_base64(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:73,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:74,1
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:82,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:86,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 90
    functionName: b64_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_set_init
    - OPENSSL_zalloc
    - EVP_ENCODE_CTX_new
    - EVPerr
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int b64_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:98,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:103,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:104,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: b64_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_set_init
    - EVP_ENCODE_CTX_free
    - BIO_get_data
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int b64_free(BIO *a)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:119,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:121,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:125,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:132,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:137,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:141,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:142,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:163,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:170,1
    - Dst: BIO_get_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:190,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:211,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:215,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:224,1
    - Dst: BIO_get_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:262,1
    - Dst: EVP_DecodeBlock
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:266,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:279,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:288,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:313,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:324,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 142
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 326
    functionName: b64_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - EVP_DecodeUpdate
    - EVP_DecodeBlock
    - memmove
    - memcpy
    - BIO_get_flags
    - EVP_DecodeInit
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_should_retry
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int b64_read(BIO *b, char *out, int outl)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:336,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:337,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:341,1
    - Dst: EVP_EncodeInit
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:348,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:351,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:352,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:353,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:356,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:358,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:361,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:363,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:364,1
    - Dst: BIO_get_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:377,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:379,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:386,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:392,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:394,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:395,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:403,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:410,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:412,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:413,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:417,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:421,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:422,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:431,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:433,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:436,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:439,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:440,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 90
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 446
    functionName: b64_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - EVP_EncodeInit
    - BIO_write
    - EVP_EncodeBlock
    - EVP_EncodeUpdate
    - memcpy
    - BIO_get_flags
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int b64_write(BIO *b, const char *in, int inl)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:455,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:456,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:465,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:471,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:474,1
    - Dst: EVP_ENCODE_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:477,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:480,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:483,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:486,1
    - Dst: b64_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:492,1
    - Dst: BIO_get_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:496,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:498,1
    - Dst: EVP_ENCODE_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:506,1
    - Dst: EVP_EncodeFinal
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:508,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:514,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:518,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:519,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:520,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:529,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 448
    functionDepth: 4
    functionLinenumber: 448
    functionLinenumberEnd: 533
    functionName: b64_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - EVP_ENCODE_CTX_num
    - b64_write
    - EVP_EncodeBlock
    - EVP_EncodeFinal
    - BIO_get_flags
    - BIO_ctrl
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_copy_next_retry
    linkageType: ''
    returnType: long
    signature: long b64_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:538,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 548
    functionName: b64_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long b64_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b64_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:552,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/evp/bio_b64.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 4
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: b64_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - strlen
    - b64_write
    linkageType: ''
    returnType: int
    signature: int b64_puts(BIO *b, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_bf.c
    functionUses: 275
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BF_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_bf.c:34,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_bf.c:34,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_bf.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: bf_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_bf.c
    functionUses: 0
    functionsReached:
    - BF_set_key
    - EVP_CIPHER_CTX_key_length
    - data
    linkageType: ''
    returnType: int
    signature: "int bf_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                       const
      unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    functionUses: 276
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: EVP_rc2_64_cbc
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc2_64_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: EVP_rc2_40_cbc
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc2_40_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC2_set_key
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:86,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:86,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:86,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: rc2_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - data
    - RC2_set_key
    linkageType: ''
    returnType: int
    signature: "int rc2_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: rc2_meth_to_magic
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int rc2_meth_to_magic(EVP_CIPHER_CTX *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: rc2_magic_to_meth
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int rc2_magic_to_meth(int i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:130,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:131,1
    - Dst: ASN1_TYPE_get_int_octetstring
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:132,1
    - Dst: rc2_magic_to_meth
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:135,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:138,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:140,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 146
    functionName: rc2_get_asn1_type_and_iv
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - rc2_magic_to_meth
    - OPENSSL_assert
    - ASN1_TYPE_get_int_octetstring
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_set_key_length
    - EVP_CIPHER_CTX_iv_length
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: int rc2_get_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc2_meth_to_magic
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:154,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:155,1
    - Dst: ASN1_TYPE_set_int_octetstring
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:156,1
    - Dst: EVP_CIPHER_CTX_original_iv
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: rc2_set_asn1_type_and_iv
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_original_iv
    - ASN1_TYPE_set_int_octetstring
    - rc2_meth_to_magic
    linkageType: ''
    returnType: int
    signature: int rc2_set_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:167,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:167,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:171,1
    - Dst: data
      Src: /src/openssl-1.1.1g/crypto/evp/e_rc2.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 189
    functionName: rc2_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - data
    linkageType: ''
    returnType: int
    signature: int rc2_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::set_asn1_parameters
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:22,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:24,1
    - Dst: EVP_CIPHER_CTX_nid
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:26,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:27,1
    - Dst: EVP_CIPHER_set_asn1_iv
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:39,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:44,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 50
    functionName: EVP_CIPHER_param_to_asn1
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_set_asn1_iv
    - ASN1_TYPE_set
    - EVP_CIPHER_CTX_nid
    - EVP_CIPHER_CTX*::cipher::set_asn1_parameters
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::get_asn1_parameters
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:57,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:59,1
    - Dst: EVP_CIPHER_get_asn1_iv
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:73,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 85
    functionName: EVP_CIPHER_asn1_to_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVPerr
    - EVP_CIPHER_get_asn1_iv
    - EVP_CIPHER_CTX*::cipher::get_asn1_parameters
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:93,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:94,1
    - Dst: ASN1_TYPE_get_octetstring
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:95,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: EVP_CIPHER_get_asn1_iv
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_iv_length
    - OPENSSL_assert
    - ASN1_TYPE_get_octetstring
    - memcpy
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:110,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:111,1
    - Dst: ASN1_TYPE_set_octetstring
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: EVP_CIPHER_set_asn1_iv
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_iv_length
    - OPENSSL_assert
    - ASN1_TYPE_set_octetstring
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_nid
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:122,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:169,1
    - Dst: OBJ_get0_data
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:170,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 175
    functionName: EVP_CIPHER_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_get0_data
    - OBJ_nid2obj
    - EVP_CIPHER_nid
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_type(const EVP_CIPHER *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: EVP_CIPHER_block_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_block_size(const EVP_CIPHER *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: EVP_CIPHER_CTX_block_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: EVP_CIPHER_impl_ctx_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: EVP_Cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached:
    - EVP_CIPHER_CTX*::cipher::do_cipher
    linkageType: ''
    returnType: int
    signature: "int EVP_Cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n               const
      unsigned char *in, unsigned int inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: EVP_CIPHER_CTX_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: EVP_CIPHER_CTX_encrypting
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: EVP_CIPHER_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: EVP_CIPHER_CTX_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - EVP_CIPHER_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: EVP_CIPHER_CTX_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: EVP_CIPHER_CTX_get_cipher_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - cipher_data
    argTypes:
    - EVP_CIPHER_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: EVP_CIPHER_CTX_set_cipher_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: EVP_CIPHER_iv_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:247,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: EVP_CIPHER_CTX_iv_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 12
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_flags
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: EVP_CIPHER_CTX_original_iv
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: EVP_CIPHER_CTX_iv
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: EVP_CIPHER_CTX_iv_noconst
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: EVP_CIPHER_CTX_buf_noconst
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: EVP_CIPHER_CTX_num
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_num(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - num
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: EVP_CIPHER_CTX_set_num
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: EVP_CIPHER_key_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_key_length(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: EVP_CIPHER_CTX_key_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: EVP_CIPHER_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_nid(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: EVP_CIPHER_CTX_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: EVP_MD_block_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_block_size(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: EVP_MD_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_type(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: EVP_MD_pkey_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_pkey_type(const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: EVP_MD_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 11
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int EVP_MD_size(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: EVP_MD_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long EVP_MD_flags(const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - md_type
    - pkey_type
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: EVP_MD_meth_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:346,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 351
    functionName: EVP_MD_meth_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_MD_meth_new
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_MD_meth_dup(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: EVP_MD_meth_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 8
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_MD_meth_free(EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - md
    - blocksize
    argTypes:
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: EVP_MD_meth_set_input_blocksize
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - md
    - resultsize
    argTypes:
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: EVP_MD_meth_set_result_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - md
    - datasize
    argTypes:
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: EVP_MD_meth_set_app_datasize
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - md
    - flags
    argTypes:
    - EVP_MD*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: EVP_MD_meth_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: EVP_MD_meth_set_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: EVP_MD_meth_set_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx,\n
      \                                                    const void *data,\n                                                     size_t
      count))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: EVP_MD_meth_set_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx,\n
      \                                                  unsigned char *md))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 399
    functionName: EVP_MD_meth_set_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to,\n
      \                                                const EVP_MD_CTX *from))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: EVP_MD_meth_set_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: EVP_MD_meth_set_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx,
      int cmd,\n                                                 int p1, void *p2))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: EVP_MD_meth_get_input_blocksize
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_get_input_blocksize(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: EVP_MD_meth_get_result_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_get_result_size(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: EVP_MD_meth_get_app_datasize
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_get_app_datasize(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: EVP_MD_meth_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long EVP_MD_meth_get_flags(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx)
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 437
    functionName: "(*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx,\n
      \                                               const void *data,\n                                                size_t
      count)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx,\n
      \                                               const void *data,\n                                                size_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: "(*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx,\n                                               unsigned
      char *md)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx,\n
      \                                              unsigned char *md)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: "(*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to,\n                                              const
      EVP_MD_CTX *from)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to,\n                                              const
      EVP_MD_CTX *from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: "(*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int
      cmd,\n                                              int p1, void *p2)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int
      cmd,\n                                              int p1, void *p2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 463
    functionName: EVP_MD_CTX_md
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: EVP_MD_CTX_pkey_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *EVP_MD_CTX_pkey_ctx(const EVP_MD_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:476,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:477,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:483,1
    - Dst: EVP_MD_CTX_clear_flags
      Src: /src/openssl-1.1.1g/crypto/evp/evp_lib.c:485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - pctx
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: EVP_MD_CTX_set_pkey_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_test_flags
    - EVP_MD_CTX_clear_flags
    - EVP_MD_CTX_set_flags
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: EVP_MD_CTX_md_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: "(*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx,\n                                             const
      void *data, size_t count)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx,\n                                             const
      void *data, size_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 505
    functionName: EVP_MD_CTX_set_update_fn
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx,\n                              int
      (*update) (EVP_MD_CTX *ctx,\n                                             const
      void *data, size_t count))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_MD_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 510
    functionName: EVP_MD_CTX_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_MD_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 515
    functionName: EVP_MD_CTX_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_MD_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: EVP_MD_CTX_test_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 525
    functionName: EVP_CIPHER_CTX_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: EVP_CIPHER_CTX_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: EVP_CIPHER_CTX_test_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_CIPHER_ecb_loop
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:58,1
    - Dst: DES_ecb_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:59,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:60,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: des_ecb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - DES_ecb_encrypt
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_get_cipher_data
    - BLOCK_CIPHER_ecb_loop
    linkageType: ''
    returnType: int
    signature: "int des_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:69,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:70,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:71,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:72,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:73,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:79,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:80,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:81,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:82,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 86
    functionName: des_ofb_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_num
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_iv_noconst
    - DES_ofb64_encrypt
    - EVP_CIPHER_CTX_num
    linkageType: ''
    returnType: int
    signature: "int des_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:91,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:95,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:99,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:100,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:101,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:102,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:108,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:109,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:110,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: des_cbc_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_get_cipher_data
    - DES_ncbc_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:119,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:120,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:121,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:122,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:123,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:124,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:130,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:131,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:132,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:133,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:134,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 138
    functionName: des_cfb64_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_num
    - DES_cfb64_encrypt
    linkageType: ''
    returnType: int
    signature: "int des_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:156,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:156,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:157,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 171
    functionName: des_cfb1_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_get_cipher_data
    - DES_cfb_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int des_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:177,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:178,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:179,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:180,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:186,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:187,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:188,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: des_cfb8_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_get_cipher_data
    - DES_cfb_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    linkageType: ''
    returnType: int
    signature: "int des_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:209,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:214,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:217,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:223,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 225
    functionName: des_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - des_t4_key_expand
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_CTX_get_cipher_data
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: "int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:232,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/evp/e_des.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: des_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - DES_set_odd_parity
    linkageType: ''
    returnType: int
    signature: int des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: BIO_f_reliable
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_reliable(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:136,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:137,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:145,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:148,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 152
    functionName: ok_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - OPENSSL_free
    - BIO_set_init
    - OPENSSL_zalloc
    - EVPerr
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int ok_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:161,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:163,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:164,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:165,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 169
    functionName: ok_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - EVP_MD_CTX_free
    - BIO_get_data
    - OPENSSL_clear_free
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int ok_free(BIO *a)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:180,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:181,1
    - Dst: BIO_get_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:183,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:193,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:208,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:223,1
    - Dst: sig_in
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:232,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:233,1
    - Dst: block_in
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:240,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:241,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:252,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:253,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 255
    functionName: ok_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_get_init
    - block_in
    - memmove
    - memcpy
    - sig_in
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int ok_read(BIO *b, char *out, int outl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:266,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:267,1
    - Dst: BIO_get_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:270,1
    - Dst: sig_out
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:273,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:277,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:280,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:282,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:283,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:304,1
    - Dst: block_out
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:310,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:311,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:317,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:318,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 320
    functionName: ok_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_get_init
    - BIO_write
    - sig_out
    - memcpy
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - block_out
    - BIO_should_retry
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int ok_write(BIO *b, const char *in, int inl)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:331,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:332,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:344,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:350,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:356,1
    - Dst: block_out
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:361,1
    - Dst: ok_write
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:365,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:377,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:380,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:381,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:382,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:389,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:391,1
    - Dst: BIO_get_init
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:394,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:396,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:401,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 405
    functionName: ok_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_get_init
    - EVP_MD_CTX_md
    - ok_write
    - BIO_ctrl
    - EVP_DigestInit_ex
    - BIO_set_init
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - block_out
    - BIO_copy_next_retry
    linkageType: ''
    returnType: long
    signature: long ok_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:412,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 424
    functionName: ok_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long ok_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 444
    functionName: longswap
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longswap(void *_ptr, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:454,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:456,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:457,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:458,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:463,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:469,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:471,1
    - Dst: longswap
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:472,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:475,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:475,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:477,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:484,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 486
    functionName: sig_out
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_md
    - longswap
    - RAND_bytes
    - EVP_MD_CTX_md_data
    - BIO_get_data
    - memcpy
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - BIO_clear_retry_flags
    - EVP_MD_size
    - strlen
    linkageType: ''
    returnType: int
    signature: int sig_out(BIO *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:498,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:500,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:501,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:502,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:507,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:509,1
    - Dst: longswap
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:510,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:513,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:513,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:515,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:517,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:522,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:532,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 534
    functionName: sig_in
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_md
    - longswap
    - memcmp
    - memmove
    - EVP_MD_CTX_md_data
    - BIO_get_data
    - memcpy
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - BIO_clear_retry_flags
    - EVP_MD_size
    - strlen
    linkageType: ''
    returnType: int
    signature: int sig_in(BIO *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:544,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:546,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:547,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:554,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:557,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 565
    functionName: block_out
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 2
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_md
    - BIO_get_data
    - EVP_DigestUpdate
    - BIO_clear_retry_flags
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: int block_out(BIO *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:575,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:577,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:577,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:579,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:591,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:594,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:596,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/evp/bio_ok.c:608,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts:
    - condition: (sizeof(tl) >= OK_BLOCK_BLOCK)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    constantsTouched: []
    func_position:
      end: 610
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 610
    functionName: block_in
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_md
    - memcmp
    - BIO_get_data
    - EVP_DigestUpdate
    - BIO_clear_retry_flags
    - assert
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: int block_in(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD4_Init
      Src: /src/openssl-1.1.1g/crypto/evp/m_md4.c:24,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md4.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md4.c
    functionUses: 95
    functionsReached:
    - EVP_MD_CTX_md_data
    - MD4_Init
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD4_Update
      Src: /src/openssl-1.1.1g/crypto/evp/m_md4.c:29,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md4.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md4.c
    functionUses: 8
    functionsReached:
    - MD4_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD4_Final
      Src: /src/openssl-1.1.1g/crypto/evp/m_md4.c:34,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/evp/m_md4.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md4.c
    functionUses: 8
    functionsReached:
    - MD4_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: EVP_md4
    functionSourceFile: /src/openssl-1.1.1g/crypto/evp/m_md4.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: CMS_signed_get_attr_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: int CMS_signed_get_attr_count(const CMS_SignerInfo *si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - nid
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: CMS_signed_get_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - obj
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: CMS_signed_get_attr_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT
      *obj,\n                               int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: CMS_signed_get_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: CMS_signed_delete_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - si
    - attr
    argTypes:
    - CMS_SignerInfo*
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: CMS_signed_add1_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - obj
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: CMS_signed_add1_attr_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si,\n                                const
      ASN1_OBJECT *obj, int type,\n                                const void *bytes,
      int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - nid
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: CMS_signed_add1_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si,\n                                int
      nid, int type, const void *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: CMS_signed_add1_attr_by_txt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si,\n                                const
      char *attrname, int type,\n                                const void *bytes,
      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get0_data_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - si
    - oid
    - lastpos
    - type
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: CMS_signed_get0_data_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get0_data_by_OBJ
    linkageType: ''
    returnType: void
    signature: "void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, const ASN1_OBJECT
      *oid,\n                                  int lastpos, int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: CMS_unsigned_get_attr_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - nid
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: CMS_unsigned_get_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid,\n
      \                                int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - obj
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: CMS_unsigned_get_attr_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si,\n                                 const
      ASN1_OBJECT *obj, int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: CMS_unsigned_get_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int
      loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: CMS_unsigned_delete_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - si
    - attr
    argTypes:
    - CMS_SignerInfo*
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: CMS_unsigned_add1_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - obj
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: CMS_unsigned_add1_attr_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si,\n                                  const
      ASN1_OBJECT *obj, int type,\n                                  const void *bytes,
      int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - nid
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: CMS_unsigned_add1_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si,\n                                  int
      nid, int type,\n                                  const void *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: CMS_unsigned_add1_attr_by_txt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si,\n                                  const
      char *attrname, int type,\n                                  const void *bytes,
      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get0_data_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - si
    - oid
    - lastpos
    - type
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: CMS_unsigned_get0_data_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get0_data_by_OBJ
    linkageType: ''
    returnType: void
    signature: "void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT
      *oid,\n                                    int lastpos, int type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:215,1
    - Dst: X509at_get_attr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - nid
    - attrs
    - lastpos
    argTypes:
    - int
    - STACK_OF*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: cms_attrib_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "X509_ATTRIBUTE *cms_attrib_get(int nid,\n                                      const
      STACK_OF(X509_ATTRIBUTE) *attrs,\n                                      int
      *lastpos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cms_attrib_get
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:229,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:232,1
    - Dst: cms_attrib_get
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:238,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 5
    argNames:
    - nid
    - flags
    - type
    - attrs
    - have_attrs
    argTypes:
    - int
    - int
    - int
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 253
    functionName: cms_check_attribute
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509_ATTRIBUTE_count
    - cms_attrib_get
    linkageType: ''
    returnType: int
    signature: "int cms_check_attribute(int nid, int flags, int type,\n                               const
      STACK_OF(X509_ATTRIBUTE) *attrs,\n                               int have_attrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_signed_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:268,1
    - Dst: CMS_unsigned_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:269,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:271,1
    - Dst: cms_check_attribute
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:275,1
    - Dst: cms_check_attribute
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:277,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_att.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 284
    functionName: CMS_si_check_attributes
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - CMS_unsigned_get_attr_count
    - CMSerr
    - CMS_signed_get_attr_count
    - cms_check_attribute
    linkageType: ''
    returnType: int
    signature: int CMS_si_check_attributes(const CMS_SignerInfo *si)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:39,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:39,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:41,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:45,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:55,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:58,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:63,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:64,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:71,1
    - Dst: EVP_CIPHER_CTX_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:71,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:73,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:75,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:79,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:80,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:84,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:87,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:89,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:92,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:103,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:109,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:115,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:120,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:124,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:129,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:130,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:135,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:137,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:140,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:141,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:147,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:155,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:158,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:161,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 109
    argCount: 1
    argNames:
    - ec
    argTypes:
    - CMS_EncryptedContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 163
    functionName: cms_EncryptedContent_init_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - EVP_CIPHER_CTX_type
    - ASN1_TYPE_free
    - BIO_f_cipher
    - OPENSSL_malloc
    - RAND_bytes
    - EVP_CIPHER_CTX_key_length
    - ERR_clear_error
    - BIO_free
    - EVP_CipherInit_ex
    - OBJ_nid2obj
    - EVP_CIPHER_CTX_iv_length
    - OPENSSL_clear_free
    - EVP_CIPHER_CTX_rand_key
    - BIO_get_cipher_ctx
    - EVP_CIPHER_asn1_to_param
    - EVP_get_cipherbyobj
    - CMSerr
    - EVP_CIPHER_param_to_asn1
    - EVP_CIPHER_CTX_set_key_length
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:171,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:172,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:175,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ec
    - cipher
    - key
    - keylen
    argTypes:
    - CMS_EncryptedContentInfo*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 181
    functionName: cms_EncryptedContent_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OBJ_nid2obj
    - OPENSSL_malloc
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec,\n                              const
      EVP_CIPHER *cipher,\n                              const unsigned char *key,
      size_t keylen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:188,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:192,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:194,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:197,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:199,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:200,1
    - Dst: cms_EncryptedContent_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - cms
    - ciph
    - key
    - keylen
    argTypes:
    - CMS_ContentInfo*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 205
    functionName: CMS_EncryptedData_set1_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - M_ASN1_new_of
    - CMSerr
    - OBJ_obj2nid
    - cms_EncryptedContent_init
    linkageType: ''
    returnType: int
    signature: "int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER
      *ciph,\n                               const unsigned char *key, size_t keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cms_EncryptedContent_init_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_enc.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: cms_EncryptedData_init_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - cms_EncryptedContent_init_bio
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_EncryptedData_init_bio(CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/cms/cms_err.c:291,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/cms/cms_err.c:292,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/cms/cms_err.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 297
    functionName: ERR_load_CMS_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_CMS_strings(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:26,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ri
    - pass
    - passlen
    argTypes:
    - CMS_RecipientInfo*
    - unsigned char*
    - ossl_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: CMS_RecipientInfo_set0_password
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - strlen
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri,\n                                    unsigned
      char *pass, ossl_ssize_t passlen)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_enveloped
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:53,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:68,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:72,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:78,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:82,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:84,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:85,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:89,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:92,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:94,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:95,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:98,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:100,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:103,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:104,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:110,1
    - Dst: EVP_CIPHER_CTX_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:110,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:112,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:116,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:120,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:127,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:128,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:131,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:132,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:136,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:136,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:142,1
    - Dst: PKCS5_pbkdf2_set
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:147,1
    - Dst: CMS_RecipientInfo_set0_password
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:152,1
    - Dst: sk_CMS_RecipientInfo_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:155,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:161,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:163,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:165,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:166,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 7
    argNames:
    - cms
    - iter
    - wrap_nid
    - pbe_nid
    - pass
    - passlen
    - kekciph
    argTypes:
    - CMS_ContentInfo*
    - int
    - int
    - int
    - unsigned char*
    - ossl_ssize_t
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 169
    functionName: CMS_add0_recipient_password
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - M_ASN1_new_of
    - EVP_CIPHER_CTX_type
    - ASN1_ITEM_rptr
    - CMS_RecipientInfo_set0_password
    - ASN1_item_pack
    - X509_ALGOR_new
    - RAND_bytes
    - OBJ_nid2obj
    - cms_get0_enveloped
    - EVP_CIPHER_CTX_new
    - X509_ALGOR_free
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_free
    - sk_CMS_RecipientInfo_push
    - PKCS5_pbkdf2_set
    - CMSerr
    - M_ASN1_free_of
    - EVP_EncryptInit_ex
    - EVP_CIPHER_param_to_asn1
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms,\n
      \                                              int iter, int wrap_nid,\n                                               int
      pbe_nid,\n                                               unsigned char *pass,\n
      \                                              ossl_ssize_t passlen,\n                                               const
      EVP_CIPHER *kekciph)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:180,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:191,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:192,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:196,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:203,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:206,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:209,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:211,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:223,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:226,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 5
    argNames:
    - out
    - outlen
    - in
    - inlen
    - ctx
    argTypes:
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 229
    functionName: kek_unwrap_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_CIPHER_CTX_block_size
    - CMSerr
    - memcpy
    - EVP_DecryptUpdate
    - EVP_DecryptInit_ex
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int kek_unwrap_key(unsigned char *out, size_t *outlen,\n                          const
      unsigned char *in, size_t inlen,\n                          EVP_CIPHER_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:235,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:258,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:261,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:264,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:265,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - out
    - outlen
    - in
    - inlen
    - ctx
    argTypes:
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 272
    functionName: kek_wrap_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_block_size
    - RAND_bytes
    - memcpy
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: int
    signature: "int kek_wrap_key(unsigned char *out, size_t *outlen,\n                        const
      unsigned char *in, size_t inlen,\n                        EVP_CIPHER_CTX *ctx)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:293,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:298,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:299,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:304,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:304,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:308,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:313,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:316,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:320,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:322,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:326,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:328,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:329,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:330,1
    - Dst: EVP_PBE_CipherInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:339,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:342,1
    - Dst: kek_wrap_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:350,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:353,1
    - Dst: kek_wrap_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:358,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:363,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:366,1
    - Dst: kek_unwrap_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:369,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:372,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:376,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:386,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:389,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c:390,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 3
    argNames:
    - cms
    - ri
    - en_de
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 276
    functionDepth: 5
    functionLinenumber: 276
    functionLinenumberEnd: 394
    functionName: cms_RecipientInfo_pwri_crypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - kek_unwrap_key
    - OPENSSL_malloc
    - ASN1_TYPE_unpack_sequence
    - OPENSSL_free
    - EVP_CIPHER_asn1_to_param
    - EVP_get_cipherbyobj
    - CMSerr
    - kek_wrap_key
    - OPENSSL_clear_free
    - EVP_CIPHER_CTX_new
    - X509_ALGOR_free
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_CTX_set_padding
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    - EVP_PBE_CipherInit
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_pwri_crypt(CMS_ContentInfo *cms, CMS_RecipientInfo
      *ri,\n                                 int en_de)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: CMS_get0_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:30,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:32,1
    - Dst: CMS_set_detached
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: cms_Data_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_set_detached
    - OBJ_nid2obj
    - CMS_ContentInfo_new
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *cms_Data_create(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:41,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:46,1
    - Dst: BIO_s_null
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:46,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:51,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:51,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: cms_content_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - BIO_s_mem
    - CMS_get0_content
    - BIO_new
    - BIO_s_null
    - BIO_new_mem_buf
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_content_bio(CMS_ContentInfo *cms)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cms_content_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:62,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:64,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:67,1
    - Dst: cms_SignedData_init_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:73,1
    - Dst: cms_DigestedData_init_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:77,1
    - Dst: cms_CompressedData_init_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:81,1
    - Dst: cms_EncryptedData_init_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:86,1
    - Dst: cms_EnvelopedData_init_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:90,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:94,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:99,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - cms
    - icont
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 105
    functionName: CMS_dataInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - cms_DigestedData_init_bio
    - cms_content_bio
    - cms_SignedData_init_bio
    - CMSerr
    - cms_CompressedData_init_bio
    - cms_EncryptedData_init_bio
    - BIO_push
    - BIO_free
    - OBJ_obj2nid
    - cms_EnvelopedData_init_bio
    linkageType: ''
    returnType: BIO
    signature: BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:109,1
    - Dst: BIO_find_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:117,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:119,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:122,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:124,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:125,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:126,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:130,1
    - Dst: cms_SignedData_final
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:140,1
    - Dst: cms_DigestedData_do_final
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:143,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - cms
    - cmsbio
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 149
    functionName: CMS_dataFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - BIO_get_mem_data
    - cms_SignedData_final
    - ASN1_STRING_set0
    - BIO_find_type
    - BIO_set_flags
    - CMSerr
    - CMS_get0_content
    - cms_DigestedData_do_final
    - OBJ_obj2nid
    - BIO_set_mem_eof_return
    linkageType: ''
    returnType: int
    signature: int CMS_dataFinal(CMS_ContentInfo *cms, BIO *cmsbio)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:158,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 188
    functionName: CMS_get0_content
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    - CMSerr
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:197,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 222
    functionName: cms_get0_econtent_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - CMSerr
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT **cms_get0_econtent_type(CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_econtent_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: CMS_get0_eContentType
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - cms_get0_econtent_type
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_econtent_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:236,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:241,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cms
    - oid
    argTypes:
    - CMS_ContentInfo*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: CMS_set1_eContentType
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_OBJECT_free
    - cms_get0_econtent_type
    - OBJ_dup
    linkageType: ''
    returnType: int
    signature: int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: CMS_is_detached
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_get0_content
    linkageType: ''
    returnType: int
    signature: int CMS_is_detached(CMS_ContentInfo *cms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:263,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:267,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:272,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cms
    - detached
    argTypes:
    - CMS_ContentInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 282
    functionName: CMS_set_detached
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 1
    functionsReached:
    - CMSerr
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    - CMS_get0_content
    linkageType: ''
    returnType: int
    signature: int CMS_set_detached(CMS_ContentInfo *cms, int detached)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:291,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:292,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:294,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:298,1
    - Dst: BIO_f_md
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:298,1
    - Dst: BIO_set_md
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:299,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:300,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - digestAlgorithm
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 307
    functionName: cms_DigestAlgorithm_init_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - BIO_f_md
    - BIO_set_md
    - CMSerr
    - X509_ALGOR_get0
    - BIO_free
    - EVP_get_digestbyobj
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_DigestAlgorithm_init_bio(X509_ALGOR *digestAlgorithm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:316,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:317,1
    - Dst: BIO_find_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:321,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:323,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:327,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:328,1
    - Dst: EVP_MD_pkey_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:333,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:333,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:334,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - mctx
    - chain
    - mdalg
    argTypes:
    - EVP_MD_CTX*
    - BIO*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 337
    functionName: cms_DigestAlgorithm_find_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md
    - EVP_MD_CTX_copy_ex
    - BIO_find_type
    - CMSerr
    - BIO_get_md_ctx
    - EVP_MD_CTX_type
    - EVP_MD_pkey_type
    - X509_ALGOR_get0
    - BIO_next
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: "int cms_DigestAlgorithm_find_ctx(EVP_MD_CTX *mctx, BIO *chain,\n                                 X509_ALGOR
      *mdalg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:342,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 358
    functionName: cms_get0_certificate_choices
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - CMSerr
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF **cms_get0_certificate_choices(CMS_ContentInfo *cms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:362,1
    - Dst: cms_get0_certificate_choices
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:364,1
    - Dst: sk_CMS_CertificateChoices_new_null
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:368,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:371,1
    - Dst: sk_CMS_CertificateChoices_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:374,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 379
    functionName: CMS_add0_CertificateChoices
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - M_ASN1_new_of
    - sk_CMS_CertificateChoices_new_null
    - STACK_OF
    - cms_get0_certificate_choices
    - M_ASN1_free_of
    - sk_CMS_CertificateChoices_push
    linkageType: ''
    returnType: CMS_CertificateChoices
    signature: CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo
      *cms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:384,1
    - Dst: cms_get0_certificate_choices
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:386,1
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:389,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:390,1
    - Dst: X509_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:392,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:393,1
    - Dst: CMS_add0_CertificateChoices
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - cms
    - cert
    argTypes:
    - CMS_ContentInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 405
    functionName: CMS_add0_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_add0_CertificateChoices
    - STACK_OF
    - CMSerr
    - cms_get0_certificate_choices
    - sk_CMS_CertificateChoices_value
    - sk_CMS_CertificateChoices_num
    - X509_cmp
    linkageType: ''
    returnType: int
    signature: int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_add0_cert
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:410,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cms
    - cert
    argTypes:
    - CMS_ContentInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 407
    functionDepth: 4
    functionLinenumber: 407
    functionLinenumberEnd: 414
    functionName: CMS_add1_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - CMS_add0_cert
    linkageType: ''
    returnType: int
    signature: int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:419,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 435
    functionName: cms_get0_revocation_choices
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - CMSerr
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF **cms_get0_revocation_choices(CMS_ContentInfo *cms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:439,1
    - Dst: cms_get0_revocation_choices
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:441,1
    - Dst: sk_CMS_RevocationInfoChoice_new_null
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:445,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:448,1
    - Dst: sk_CMS_RevocationInfoChoice_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:451,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 456
    functionName: CMS_add0_RevocationInfoChoice
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RevocationInfoChoice_push
    - M_ASN1_new_of
    - STACK_OF
    - sk_CMS_RevocationInfoChoice_new_null
    - M_ASN1_free_of
    - cms_get0_revocation_choices
    linkageType: ''
    returnType: CMS_RevocationInfoChoice
    signature: CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo
      *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_add0_RevocationInfoChoice
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cms
    - crl
    argTypes:
    - CMS_ContentInfo*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: CMS_add0_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_add0_RevocationInfoChoice
    linkageType: ''
    returnType: int
    signature: int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_add0_crl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:472,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cms
    - crl
    argTypes:
    - CMS_ContentInfo*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 476
    functionName: CMS_add1_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_add0_crl
    - X509_CRL_up_ref
    linkageType: ''
    returnType: int
    signature: int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:536,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:536,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:539,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ias
    - cert
    argTypes:
    - CMS_IssuerAndSerialNumber*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 540
    functionName: cms_ias_cert_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_get_issuer_name
    - X509_NAME_cmp
    - X509_get_serialNumber
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int cms_ias_cert_cmp(CMS_IssuerAndSerialNumber *ias, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_subject_key_id
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:544,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keyid
    - cert
    argTypes:
    - ASN1_OCTET_STRING*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: cms_keyid_cert_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_get0_subject_key_id
    - ASN1_OCTET_STRING_cmp
    linkageType: ''
    returnType: int
    signature: int cms_keyid_cert_cmp(ASN1_OCTET_STRING *keyid, X509 *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:554,1
    - Dst: X509_NAME_set
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:557,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:557,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:559,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:559,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:561,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:565,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pias
    - cert
    argTypes:
    - CMS_IssuerAndSerialNumber**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 568
    functionName: cms_set1_ias
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - M_ASN1_new_of
    - X509_get_serialNumber
    - M_ASN1_free_of
    - ASN1_STRING_copy
    - CMSerr
    - X509_get_issuer_name
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int cms_set1_ias(CMS_IssuerAndSerialNumber **pias, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_subject_key_id
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:574,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:576,1
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:579,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:581,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_lib.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pkeyid
    - cert
    argTypes:
    - ASN1_OCTET_STRING**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 587
    functionName: cms_set1_keyid
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_get0_subject_key_id
    - ASN1_STRING_dup
    - ASN1_OCTET_STRING_free
    - CMSerr
    linkageType: ''
    returnType: int
    signature: int cms_set1_keyid(ASN1_OCTET_STRING **pkeyid, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:25,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: cms_get0_enveloped
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - CMSerr
    linkageType: ''
    returnType: CMS_EnvelopedData
    signature: CMS_EnvelopedData *cms_get0_enveloped(CMS_ContentInfo *cms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:36,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:38,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:43,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:44,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:45,1
    - Dst: cms_get0_enveloped
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: cms_enveloped_data_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - M_ASN1_new_of
    - ASN1_OBJECT_free
    - CMSerr
    - cms_get0_enveloped
    linkageType: ''
    returnType: CMS_EnvelopedData
    signature: CMS_EnvelopedData *cms_enveloped_data_init(CMS_ContentInfo *cms)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:61,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:68,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:70,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - ri
    - cmd
    argTypes:
    - CMS_RecipientInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 79
    functionName: cms_env_asn1_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    - CMSerr
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: int cms_env_asn1_ctrl(CMS_RecipientInfo *ri, int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: CMS_RecipientInfo_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_type(CMS_RecipientInfo *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: CMS_RecipientInfo_get0_pkey_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:108,1
    - Dst: cms_enveloped_data_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:111,1
    - Dst: cms_EncryptedContent_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:114,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:119,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: CMS_EnvelopedData_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - cms_enveloped_data_init
    - CMS_ContentInfo_new
    - CMSerr
    - cms_EncryptedContent_init
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:134,1
    - Dst: cms_set1_SignerIdentifier
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:154,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:157,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:158,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:164,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:167,1
    - Dst: cms_env_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - ri
    - recip
    - pk
    - flags
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    - EVP_PKEY*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 172
    functionName: cms_RecipientInfo_ktri_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_up_ref
    - M_ASN1_new_of
    - EVP_PKEY_encrypt_init
    - cms_set1_SignerIdentifier
    - cms_env_asn1_ctrl
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_ktri_init(CMS_RecipientInfo *ri, X509 *recip,\n
      \                                      EVP_PKEY *pk, unsigned int flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_enveloped
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:184,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:189,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:193,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:195,1
    - Dst: cms_pkey_get_ri_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:199,1
    - Dst: cms_RecipientInfo_ktri_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:202,1
    - Dst: cms_RecipientInfo_kari_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:207,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:212,1
    - Dst: sk_CMS_RecipientInfo_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:218,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:224,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:226,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - cms
    - recip
    - flags
    argTypes:
    - CMS_ContentInfo*
    - X509*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 229
    functionName: CMS_add1_recipient_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - X509_get0_pubkey
    - M_ASN1_new_of
    - cms_RecipientInfo_ktri_init
    - CMSerr
    - cms_get0_enveloped
    - M_ASN1_free_of
    - cms_pkey_get_ri_type
    - cms_RecipientInfo_kari_init
    - sk_CMS_RecipientInfo_push
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms,\n
      \                                          X509 *recip, unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ri
    - pk
    - recip
    - palg
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY**
    - X509**
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: CMS_RecipientInfo_ktri_get0_algs
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri,\n                                     EVP_PKEY
      **pk, X509 **recip,\n                                     X509_ALGOR **palg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:260,1
    - Dst: cms_SignerIdentifier_get0_signer_id
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ri
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_RecipientInfo*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: CMS_RecipientInfo_ktri_get0_signer_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - cms_SignerIdentifier_get0_signer_id
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri,\n
      \                                         ASN1_OCTET_STRING **keyid,\n                                          X509_NAME
      **issuer,\n                                          ASN1_INTEGER **sno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:272,1
    - Dst: cms_SignerIdentifier_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ri
    - cert
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: CMS_RecipientInfo_ktri_cert_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - cms_SignerIdentifier_cert_cmp
    - CMSerr
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:282,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ri
    - pkey
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: CMS_RecipientInfo_set0_pkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - CMSerr
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:304,1
    - Dst: cms_env_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:313,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:316,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:320,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:324,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:326,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:330,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:333,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:336,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:340,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:343,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:349,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:351,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 354
    functionName: cms_RecipientInfo_ktri_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_encrypt
    - OPENSSL_malloc
    - ASN1_STRING_set0
    - OPENSSL_free
    - CMSerr
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_CTX_free
    - cms_env_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_ktri_encrypt(CMS_ContentInfo *cms,\n                                          CMS_RecipientInfo
      *ri)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:371,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:378,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:381,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:385,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:388,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:392,1
    - Dst: cms_env_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:395,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:398,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:400,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:404,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:409,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:412,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:416,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:421,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:427,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:432,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:435,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 438
    functionName: cms_RecipientInfo_ktri_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - OPENSSL_malloc
    - OPENSSL_free
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - EVP_get_cipherbyobj
    - CMSerr
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_CTX_free
    - EVP_CIPHER_key_length
    - cms_env_asn1_ctrl
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_ktri_decrypt(CMS_ContentInfo *cms,\n                                          CMS_RecipientInfo
      *ri)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:448,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ri
    - id
    - idlen
    argTypes:
    - CMS_RecipientInfo*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 457
    functionName: CMS_RecipientInfo_kekri_id_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri,\n                                   const
      unsigned char *id, size_t idlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 476
    functionName: aes_wrap_keylen
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t aes_wrap_keylen(int nid)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_enveloped
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:488,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:507,1
    - Dst: aes_wrap_keylen
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:513,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:516,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:522,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:529,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:533,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:541,1
    - Dst: sk_CMS_RecipientInfo_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:546,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:556,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:565,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:566,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:571,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:573,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 9
    argNames:
    - cms
    - nid
    - key
    - keylen
    - id
    - idlen
    - date
    - otherTypeId
    - otherType
    argTypes:
    - CMS_ContentInfo*
    - int
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - ASN1_GENERALIZEDTIME*
    - ASN1_OBJECT*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 576
    functionName: CMS_add0_recipient_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ASN1_STRING_set0
    - X509_ALGOR_set0
    - M_ASN1_new_of
    - CMSerr
    - cms_get0_enveloped
    - M_ASN1_free_of
    - aes_wrap_keylen
    - sk_CMS_RecipientInfo_push
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int
      nid,\n                                          unsigned char *key, size_t keylen,\n
      \                                         unsigned char *id, size_t idlen,\n
      \                                         ASN1_GENERALIZEDTIME *date,\n                                          ASN1_OBJECT
      *otherTypeId,\n                                          ASN1_TYPE *otherType)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:587,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 6
    argNames:
    - ri
    - palg
    - pid
    - pdate
    - potherid
    - pothertype
    argTypes:
    - CMS_RecipientInfo*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    - ASN1_GENERALIZEDTIME**
    - ASN1_OBJECT**
    - ASN1_TYPE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 610
    functionName: CMS_RecipientInfo_kekri_get0_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri,\n                                    X509_ALGOR
      **palg,\n                                    ASN1_OCTET_STRING **pid,\n                                    ASN1_GENERALIZEDTIME
      **pdate,\n                                    ASN1_OBJECT **potherid,\n                                    ASN1_TYPE
      **pothertype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ri
    - key
    - keylen
    argTypes:
    - CMS_RecipientInfo*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 625
    functionName: CMS_RecipientInfo_set0_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri,\n                               unsigned
      char *key, size_t keylen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:644,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:648,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:649,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:654,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:657,1
    - Dst: AES_wrap_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:661,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:664,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:668,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:675,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:676,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 680
    functionName: cms_RecipientInfo_kekri_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ASN1_STRING_set0
    - AES_set_encrypt_key
    - OPENSSL_free
    - CMSerr
    - AES_wrap_key
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_kekri_encrypt(CMS_ContentInfo *cms,\n                                           CMS_RecipientInfo
      *ri)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:699,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:703,1
    - Dst: aes_wrap_keylen
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:704,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:705,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:713,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:718,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:719,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:724,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:727,1
    - Dst: AES_unwrap_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:731,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:736,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:748,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:749,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 753
    functionName: cms_RecipientInfo_kekri_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - AES_set_decrypt_key
    - CMSerr
    - AES_unwrap_key
    - OBJ_obj2nid
    - aes_wrap_keylen
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_kekri_decrypt(CMS_ContentInfo *cms,\n                                           CMS_RecipientInfo
      *ri)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cms_RecipientInfo_ktri_decrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:759,1
    - Dst: cms_RecipientInfo_kekri_decrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:762,1
    - Dst: cms_RecipientInfo_pwri_crypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:765,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 755
    functionDepth: 6
    functionLinenumber: 755
    functionLinenumberEnd: 772
    functionName: CMS_RecipientInfo_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - cms_RecipientInfo_kekri_decrypt
    - cms_RecipientInfo_pwri_crypt
    - cms_RecipientInfo_ktri_decrypt
    - CMSerr
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo
      *ri)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cms_RecipientInfo_ktri_encrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:778,1
    - Dst: cms_RecipientInfo_kari_encrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:781,1
    - Dst: cms_RecipientInfo_kekri_encrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:784,1
    - Dst: cms_RecipientInfo_pwri_crypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:787,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 774
    functionDepth: 6
    functionLinenumber: 774
    functionLinenumberEnd: 794
    functionName: CMS_RecipientInfo_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - cms_RecipientInfo_ktri_encrypt
    - cms_RecipientInfo_kekri_encrypt
    - CMSerr
    - cms_RecipientInfo_kari_encrypt
    - cms_RecipientInfo_pwri_crypt
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo
      *ri)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:804,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:806,1
    - Dst: sk_CMS_RevocationInfoChoice_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:816,1
    - Dst: sk_CMS_RevocationInfoChoice_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:818,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - env
    argTypes:
    - CMS_EnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 824
    functionName: cms_env_set_originfo_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - sk_CMS_CertificateChoices_value
    - sk_CMS_CertificateChoices_num
    - sk_CMS_RevocationInfoChoice_value
    - sk_CMS_RevocationInfoChoice_num
    linkageType: ''
    returnType: void
    signature: void cms_env_set_originfo_version(CMS_EnvelopedData *env)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cms_env_set_originfo_version
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:837,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:842,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:843,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - env
    argTypes:
    - CMS_EnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 857
    functionName: cms_env_set_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RecipientInfo_num
    - sk_CMS_RecipientInfo_value
    - cms_env_set_originfo_version
    linkageType: ''
    returnType: void
    signature: void cms_env_set_version(CMS_EnvelopedData *env)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:862,1
    - Dst: cms_EncryptedContent_init_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:870,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:881,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:882,1
    - Dst: CMS_RecipientInfo_encrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:883,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:884,1
    - Dst: cms_env_set_version
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:889,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:895,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:900,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 859
    functionDepth: 7
    functionLinenumber: 859
    functionLinenumberEnd: 903
    functionName: cms_EnvelopedData_init_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - CMS_RecipientInfo_encrypt
    - sk_CMS_RecipientInfo_num
    - sk_CMS_RecipientInfo_value
    - STACK_OF
    - CMSerr
    - BIO_free
    - cms_env_set_version
    - OPENSSL_clear_free
    - cms_EncryptedContent_init_bio
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_EnvelopedData_init_bio(CMS_ContentInfo *cms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_env.c:914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pk
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 919
    functionName: cms_pkey_get_ri_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    linkageType: ''
    returnType: int
    signature: int cms_pkey_get_ri_type(EVP_PKEY *pk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:29,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:30,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:36,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:36,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - si
    - prr
    argTypes:
    - CMS_SignerInfo*
    - CMS_ReceiptRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 44
    functionName: CMS_get1_ReceiptRequest
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - CMS_signed_get0_data_by_OBJ
    - CMS_ReceiptRequest_free
    - ASN1_ITEM_rptr
    - ASN1_item_unpack
    linkageType: ''
    returnType: int
    signature: int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest
      **prr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ReceiptRequest_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:54,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:58,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:60,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:62,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:66,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:80,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - id
    - idlen
    - allorfirst
    - receiptList
    - receiptsTo
    argTypes:
    - unsigned char*
    - int
    - int
    - STACK_OF*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: CMS_ReceiptRequest_create0
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - ASN1_STRING_set0
    - RAND_bytes
    - CMSerr
    - CMS_ReceiptRequest_free
    - sk_GENERAL_NAMES_pop_free
    - CMS_ReceiptRequest_new
    linkageType: ''
    returnType: CMS_ReceiptRequest
    signature: "CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id,
      int idlen,\n                                               int allorfirst,\n
      \                                              STACK_OF(GENERAL_NAMES)\n                                               *receiptList,
      STACK_OF(GENERAL_NAMES)\n                                               *receiptsTo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_CMS_ReceiptRequest
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:93,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:97,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - si
    - rr
    argTypes:
    - CMS_SignerInfo*
    - CMS_ReceiptRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 111
    functionName: CMS_add1_ReceiptRequest
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - i2d_CMS_ReceiptRequest
    - CMS_signed_add1_attr_by_NID
    - CMSerr
    linkageType: ''
    returnType: int
    signature: int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest
      *rr)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - rr
    - pcid
    - pallorfirst
    - plist
    - prto
    argTypes:
    - CMS_ReceiptRequest*
    - ASN1_STRING**
    - int*
    - STACK_OF**
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 134
    functionName: CMS_ReceiptRequest_get0_values
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr,\n                                    ASN1_STRING
      **pcid,\n                                    int *pallorfirst,\n                                    STACK_OF(GENERAL_NAMES)
      **plist,\n                                    STACK_OF(GENERAL_NAMES) **prto)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:142,1
    - Dst: ASN1_item_digest
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:145,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - si
    - dig
    - diglen
    argTypes:
    - CMS_SignerInfo*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: cms_msgSigDigest
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - EVP_get_digestbyobj
    - ASN1_item_digest
    linkageType: ''
    returnType: int
    signature: "int cms_msgSigDigest(CMS_SignerInfo *si,\n                            unsigned
      char *dig, unsigned int *diglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cms_msgSigDigest
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:157,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:158,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:161,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - CMS_SignerInfo*
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: cms_msgSigDigest_add1
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - cms_msgSigDigest
    - CMS_signed_add1_attr_by_NID
    - CMSerr
    linkageType: ''
    returnType: int
    signature: int cms_msgSigDigest_add1(CMS_SignerInfo *dest, CMS_SignerInfo *src)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:176,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:184,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:185,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:189,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:190,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:195,1
    - Dst: CMS_get0_eContentType
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:195,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:196,1
    - Dst: CMS_get0_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:201,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:203,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:207,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:207,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:210,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:216,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:217,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:218,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:222,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:223,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:227,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:231,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:232,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:237,1
    - Dst: cms_msgSigDigest
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:241,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:242,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:247,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:251,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:252,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:259,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:260,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:263,1
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:269,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:270,1
    - Dst: CMS_get1_ReceiptRequest
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:276,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:277,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:281,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:283,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:290,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:291,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 2
    argNames:
    - cms
    - req_cms
    argTypes:
    - CMS_ContentInfo*
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 294
    functionName: cms_Receipt_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMS_get0_SignerInfos
    - STACK_OF
    - ASN1_ITEM_rptr
    - ASN1_item_unpack
    - sk_CMS_SignerInfo_value
    - memcmp
    - CMS_get0_content
    - CMS_signed_get0_data_by_OBJ
    - CMS_get1_ReceiptRequest
    - cms_msgSigDigest
    - OBJ_nid2obj
    - OBJ_obj2nid
    - OBJ_cmp
    - ASN1_STRING_cmp
    - CMSerr
    - M_ASN1_free_of
    - sk_CMS_SignerInfo_num
    - CMS_ReceiptRequest_free
    - CMS_get0_eContentType
    linkageType: ''
    returnType: int
    signature: int cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get1_ReceiptRequest
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:312,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:313,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:319,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:320,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:323,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:332,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:332,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_ess.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 337
    functionName: cms_encode_Receipt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ASN1_item_pack
    - CMSerr
    - CMS_signed_get0_data_by_OBJ
    - CMS_ReceiptRequest_free
    - CMS_get1_ReceiptRequest
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *cms_encode_Receipt(CMS_SignerInfo *si)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:25,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: cms_get0_signed
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - CMSerr
    linkageType: ''
    returnType: CMS_SignedData
    signature: CMS_SignedData *cms_get0_signed(CMS_ContentInfo *cms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:35,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:37,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:42,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:44,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:45,1
    - Dst: cms_get0_signed
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: cms_signed_data_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - M_ASN1_new_of
    - ASN1_OBJECT_free
    - CMSerr
    - cms_get0_signed
    linkageType: ''
    returnType: CMS_SignedData
    signature: CMS_SignedData *cms_signed_data_init(CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cms_signed_data_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: CMS_SignedData_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - cms_signed_data_init
    linkageType: ''
    returnType: int
    signature: int CMS_SignedData_init(CMS_ContentInfo *cms)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:70,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:71,1
    - Dst: sk_CMS_RevocationInfoChoice_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:84,1
    - Dst: sk_CMS_RevocationInfoChoice_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:85,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:92,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:96,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:97,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 1
    argNames:
    - sd
    argTypes:
    - CMS_SignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 110
    functionName: cms_sd_set_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RevocationInfoChoice_num
    - OBJ_obj2nid
    - sk_CMS_RevocationInfoChoice_value
    - sk_CMS_SignerInfo_num
    - sk_CMS_CertificateChoices_value
    - sk_CMS_CertificateChoices_num
    - sk_CMS_SignerInfo_value
    linkageType: ''
    returnType: void
    signature: void cms_sd_set_version(CMS_SignedData *sd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cms
    - si
    argTypes:
    - CMS_ContentInfo*
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: cms_set_si_contentType_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMS_signed_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int cms_set_si_contentType_attr(CMS_ContentInfo *cms, CMS_SignerInfo
      *si)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:137,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:140,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:141,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:143,1
    - Dst: CMS_signed_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:146,1
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:148,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:151,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:152,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:156,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:161,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - cms
    - si
    argTypes:
    - CMS_ContentInfo*
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 170
    functionName: cms_copy_messageDigest
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - CMS_signed_add1_attr_by_NID
    - OBJ_cmp
    - CMS_get0_SignerInfos
    - STACK_OF
    - CMSerr
    - CMS_signed_get_attr_count
    - sk_CMS_SignerInfo_num
    - CMS_signed_get0_data_by_OBJ
    - sk_CMS_SignerInfo_value
    linkageType: ''
    returnType: int
    signature: int cms_copy_messageDigest(CMS_ContentInfo *cms, CMS_SignerInfo *si)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cms_set1_ias
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:176,1
    - Dst: cms_set1_keyid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:181,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - sid
    - cert
    - type
    argTypes:
    - CMS_SignerIdentifier*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: cms_set1_SignerIdentifier
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - cms_set1_keyid
    - CMSerr
    - cms_set1_ias
    linkageType: ''
    returnType: int
    signature: int cms_set1_SignerIdentifier(CMS_SignerIdentifier *sid, X509 *cert,
      int type)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - sid
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_SignerIdentifier*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 211
    functionName: cms_SignerIdentifier_get0_signer_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cms_SignerIdentifier_get0_signer_id(CMS_SignerIdentifier *sid,\n
      \                                       ASN1_OCTET_STRING **keyid,\n                                        X509_NAME
      **issuer,\n                                        ASN1_INTEGER **sno)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cms_ias_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:216,1
    - Dst: cms_keyid_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sid
    - cert
    argTypes:
    - CMS_SignerIdentifier*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 221
    functionName: cms_SignerIdentifier_cert_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - cms_keyid_cert_cmp
    - cms_ias_cert_cmp
    linkageType: ''
    returnType: int
    signature: int cms_SignerIdentifier_cert_cmp(CMS_SignerIdentifier *sid, X509 *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:229,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:231,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - si
    - cmd
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 239
    functionName: cms_sd_asn1_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    - CMSerr
    linkageType: ''
    returnType: int
    signature: int cms_sd_asn1_ctrl(CMS_SignerInfo *si, int cmd)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:249,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:250,1
    - Dst: cms_signed_data_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:254,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:257,1
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:261,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:263,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:264,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:268,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:272,1
    - Dst: cms_set1_SignerIdentifier
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:286,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:291,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:293,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:295,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:301,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:305,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:308,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:310,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:311,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:312,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:312,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:316,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:317,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:320,1
    - Dst: sk_X509_ALGOR_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:321,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:322,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:327,1
    - Dst: sk_X509_ATTRIBUTE_new_null
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:335,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:341,1
    - Dst: CMS_add_standard_smimecap
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:342,1
    - Dst: CMS_add_smimecap
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:344,1
    - Dst: sk_X509_ALGOR_pop_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:345,1
    - Dst: cms_copy_messageDigest
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:350,1
    - Dst: cms_set_si_contentType_attr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:352,1
    - Dst: CMS_SignerInfo_sign
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:355,1
    - Dst: CMS_add1_cert
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:362,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:368,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:371,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:373,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:375,1
    - Dst: sk_CMS_SignerInfo_new_null
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:381,1
    - Dst: sk_CMS_SignerInfo_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:382,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:388,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:390,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 139
    argCount: 5
    argNames:
    - cms
    - signer
    - pk
    - md
    - flags
    argTypes:
    - CMS_ContentInfo*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 241
    functionDepth: 5
    functionLinenumber: 241
    functionLinenumberEnd: 393
    functionName: CMS_add1_signer
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - cms_signed_data_init
    - EVP_PKEY_up_ref
    - sk_X509_ALGOR_pop_free
    - sk_X509_ALGOR_num
    - sk_X509_ALGOR_value
    - M_ASN1_new_of
    - STACK_OF
    - EVP_PKEY_get_default_digest_nid
    - sk_X509_ALGOR_push
    - CMS_add_standard_smimecap
    - cms_copy_messageDigest
    - CMS_add_smimecap
    - EVP_PKEY_sign_init
    - EVP_get_digestbynid
    - X509_check_purpose
    - EVP_MD_type
    - X509_ALGOR_new
    - EVP_DigestSignInit
    - X509_up_ref
    - sk_CMS_SignerInfo_new_null
    - EVP_MD_CTX_new
    - CMS_add1_cert
    - sk_CMS_SignerInfo_push
    - X509_ALGOR_free
    - OBJ_obj2nid
    - X509_ALGOR_set_md
    - X509_check_private_key
    - sk_X509_ATTRIBUTE_new_null
    - CMSerr
    - M_ASN1_free_of
    - cms_set_si_contentType_attr
    - CMS_SignerInfo_sign
    - cms_set1_SignerIdentifier
    - X509_ALGOR_get0
    - cms_sd_asn1_ctrl
    - EVP_PKEY_CTX_set_signature_md
    linkageType: ''
    returnType: CMS_SignerInfo
    signature: "CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms,\n                                X509
      *signer, EVP_PKEY *pk, const EVP_MD *md,\n                                unsigned
      int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_gmtime_adj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:402,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:407,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:416,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - si
    - t
    argTypes:
    - CMS_SignerInfo*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 423
    functionName: cms_add1_signingTime
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_free
    - CMS_signed_add1_attr_by_NID
    - X509_gmtime_adj
    - CMSerr
    linkageType: ''
    returnType: int
    signature: int cms_add1_signingTime(CMS_SignerInfo *si, ASN1_TIME *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: CMS_SignerInfo_get0_pkey_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: CMS_SignerInfo_get0_md_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:471,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:472,1
    - Dst: X509_get_pubkey
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:473,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - si
    - signer
    argTypes:
    - CMS_SignerInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 477
    functionName: CMS_SignerInfo_set1_signer_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_up_ref
    - X509_get_pubkey
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cms_SignerIdentifier_get0_signer_id
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - si
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 484
    functionName: CMS_SignerInfo_get0_signer_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - cms_SignerIdentifier_get0_signer_id
    linkageType: ''
    returnType: int
    signature: "int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si,\n                                  ASN1_OCTET_STRING
      **keyid,\n                                  X509_NAME **issuer, ASN1_INTEGER
      **sno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cms_SignerIdentifier_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - cert
    argTypes:
    - CMS_SignerInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: CMS_SignerInfo_cert_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - cms_SignerIdentifier_cert_cmp
    linkageType: ''
    returnType: int
    signature: int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - si
    - pk
    - signer
    - pdig
    - psig
    argTypes:
    - CMS_SignerInfo*
    - EVP_PKEY**
    - X509**
    - X509_ALGOR**
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 549
    functionName: CMS_SignerInfo_get0_algs
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk,\n
      \                             X509 **signer, X509_ALGOR **pdig,\n                              X509_ALGOR
      **psig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: CMS_SignerInfo_get0_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:559,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:564,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:569,1
    - Dst: cms_DigestAlgorithm_find_ctx
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:573,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:576,1
    - Dst: CMS_signed_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:583,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:586,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:588,1
    - Dst: cms_set_si_contentType_attr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:592,1
    - Dst: CMS_SignerInfo_sign
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:595,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:603,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:605,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:606,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:608,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:611,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:612,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:615,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:619,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:619,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:621,1
    - Dst: EVP_SignFinal
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:624,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:625,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:626,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:629,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:635,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:636,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 3
    argNames:
    - cms
    - si
    - chain
    argTypes:
    - CMS_ContentInfo*
    - CMS_SignerInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 556
    functionDepth: 5
    functionLinenumber: 556
    functionLinenumberEnd: 639
    functionName: cms_SignerInfo_content_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - CMS_signed_add1_attr_by_NID
    - ASN1_STRING_set0
    - cms_DigestAlgorithm_find_ctx
    - OPENSSL_free
    - CMSerr
    - EVP_SignFinal
    - cms_set_si_contentType_attr
    - CMS_signed_get_attr_count
    - CMS_SignerInfo_sign
    - EVP_PKEY_CTX_free
    - EVP_MD_CTX_free
    - cms_sd_asn1_ctrl
    - EVP_PKEY_size
    - EVP_PKEY_sign
    linkageType: ''
    returnType: int
    signature: "int cms_SignerInfo_content_sign(CMS_ContentInfo *cms,\n                                       CMS_SignerInfo
      *si, BIO *chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:643,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:646,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:647,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:648,1
    - Dst: cms_SignerInfo_content_sign
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - cms
    - chain
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 641
    functionDepth: 6
    functionLinenumber: 641
    functionLinenumberEnd: 654
    functionName: cms_SignedData_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - CMS_get0_SignerInfos
    - STACK_OF
    - sk_CMS_SignerInfo_num
    - cms_SignerInfo_content_sign
    - sk_CMS_SignerInfo_value
    linkageType: ''
    returnType: int
    signature: int cms_SignedData_final(CMS_ContentInfo *cms, BIO *chain)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:665,1
    - Dst: CMS_signed_get_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:669,1
    - Dst: cms_add1_signingTime
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:670,1
    - Dst: CMS_si_check_attributes
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:674,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:680,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:681,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:686,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:688,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:692,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:693,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:696,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:698,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:700,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:701,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:704,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:707,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:709,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:713,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:715,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:720,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:721,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 656
    functionDepth: 4
    functionLinenumber: 656
    functionLinenumberEnd: 723
    functionName: CMS_SignerInfo_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - ASN1_STRING_set0
    - ASN1_ITEM_rptr
    - OPENSSL_free
    - CMSerr
    - CMS_si_check_attributes
    - EVP_DigestSignInit
    - EVP_PKEY_CTX_ctrl
    - CMS_signed_get_attr_by_NID
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_reset
    - EVP_DigestSignFinal
    - EVP_get_digestbyobj
    - ASN1_item_i2d
    - cms_add1_signingTime
    linkageType: ''
    returnType: int
    signature: int CMS_SignerInfo_sign(CMS_SignerInfo *si)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:733,1
    - Dst: CMS_si_check_attributes
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:737,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:740,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:743,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:744,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:748,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:751,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:754,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:755,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:758,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:759,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:764,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:767,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:769,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 725
    functionDepth: 4
    functionLinenumber: 725
    functionLinenumberEnd: 771
    functionName: CMS_SignerInfo_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_reset
    - EVP_MD_CTX_new
    - EVP_DigestVerifyFinal
    - EVP_DigestVerifyUpdate
    - ASN1_ITEM_rptr
    - OPENSSL_free
    - CMSerr
    - CMS_si_check_attributes
    - cms_sd_asn1_ctrl
    - ASN1_item_i2d
    - EVP_get_digestbyobj
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: int CMS_SignerInfo_verify(CMS_SignerInfo *si)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_signed
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:780,1
    - Dst: cms_sd_set_version
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:784,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:785,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:788,1
    - Dst: cms_DigestAlgorithm_init_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:789,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:793,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 801
    functionName: cms_SignedData_init_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - sk_X509_ALGOR_num
    - BIO_free_all
    - sk_X509_ALGOR_value
    - BIO_push
    - cms_sd_set_version
    - cms_get0_signed
    - cms_DigestAlgorithm_init_bio
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_SignedData_init_bio(CMS_ContentInfo *cms)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:806,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:813,1
    - Dst: CMS_signed_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:817,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:818,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:819,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:822,1
    - Dst: cms_DigestAlgorithm_find_ctx
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:828,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:831,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:832,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:841,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:846,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:847,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:853,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:854,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:857,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:859,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:862,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:864,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:867,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:874,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_sd.c:875,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 2
    argNames:
    - si
    - chain
    argTypes:
    - CMS_SignerInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 803
    functionDepth: 5
    functionLinenumber: 803
    functionLinenumberEnd: 878
    functionName: CMS_SignerInfo_verify_content
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_DigestFinal_ex
    - OBJ_nid2obj
    - EVP_MD_CTX_md
    - EVP_MD_CTX_new
    - cms_DigestAlgorithm_find_ctx
    - memcmp
    - EVP_PKEY_verify
    - CMSerr
    - CMS_signed_get_attr_count
    - CMS_signed_get0_data_by_OBJ
    - EVP_PKEY_CTX_free
    - EVP_MD_CTX_free
    - cms_sd_asn1_ctrl
    - EVP_PKEY_CTX_set_signature_md
    - EVP_PKEY_verify_init
    linkageType: ''
    returnType: int
    signature: int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:24,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:28,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:33,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:37,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:39,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: cms_DigestedData_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_dd.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - CMS_ContentInfo_new
    - M_ASN1_new_of
    - X509_ALGOR_set_md
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *cms_DigestedData_create(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cms_DigestAlgorithm_init_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: cms_DigestedData_init_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_dd.c
    functionUses: 1
    functionsReached:
    - cms_DigestAlgorithm_init_bio
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_DigestedData_init_bio(CMS_ContentInfo *cms)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:57,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:64,1
    - Dst: cms_DigestAlgorithm_find_ctx
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:70,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:73,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:78,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:83,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:84,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:89,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_dd.c:95,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - cms
    - chain
    - verify
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 99
    functionName: cms_DigestedData_do_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_dd.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - ASN1_STRING_set
    - EVP_MD_CTX_new
    - cms_DigestAlgorithm_find_ctx
    - memcmp
    - CMSerr
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: int cms_DigestedData_do_final(CMS_ContentInfo *cms, BIO *chain, int
      verify)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:33,1
    - Dst: CMS_ContentInfo_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:37,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:41,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:46,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:51,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:52,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:54,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - comp_nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: cms_CompressedData_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_cd.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - CMS_ContentInfo_new
    - X509_ALGOR_set0
    - M_ASN1_new_of
    - CMSerr
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *cms_CompressedData_create(int comp_nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:67,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:68,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:73,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:74,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:75,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:79,1
    - Dst: BIO_f_zlib
      Src: /src/openssl-1.1.1g/crypto/cms/cms_cd.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: cms_CompressedData_init_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_cd.c
    functionUses: 1
    functionsReached:
    - CMSerr
    - X509_ALGOR_get0
    - BIO_f_zlib
    - OBJ_obj2nid
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_CompressedData_init_bio(CMS_ContentInfo *cms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ri
    - palg
    - pukm
    argTypes:
    - CMS_RecipientInfo*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: CMS_RecipientInfo_kari_get0_alg
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri,\n                                    X509_ALGOR
      **palg,\n                                    ASN1_OCTET_STRING **pukm)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:60,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 6
    argNames:
    - ri
    - pubalg
    - pubkey
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_RecipientInfo*
    - X509_ALGOR**
    - ASN1_BIT_STRING**
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 91
    functionName: CMS_RecipientInfo_kari_get0_orig_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri,\n                                        X509_ALGOR
      **pubalg,\n                                        ASN1_BIT_STRING **pubkey,\n
      \                                       ASN1_OCTET_STRING **keyid,\n                                        X509_NAME
      **issuer,\n                                        ASN1_INTEGER **sno)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:97,1
    - Dst: cms_ias_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:103,1
    - Dst: cms_keyid_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ri
    - cert
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: CMS_RecipientInfo_kari_orig_id_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - cms_keyid_cert_cmp
    - CMSerr
    - cms_ias_cert_cmp
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509
      *cert)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 6
    argNames:
    - rek
    - keyid
    - tm
    - other
    - issuer
    - sno
    argTypes:
    - CMS_RecipientEncryptedKey*
    - ASN1_OCTET_STRING**
    - ASN1_GENERALIZEDTIME**
    - CMS_OtherKeyAttribute**
    - X509_NAME**
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 141
    functionName: CMS_RecipientEncryptedKey_get0_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek,\n
      \                                     ASN1_OCTET_STRING **keyid,\n                                      ASN1_GENERALIZEDTIME
      **tm,\n                                      CMS_OtherKeyAttribute **other,\n
      \                                     X509_NAME **issuer, ASN1_INTEGER **sno)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cms_ias_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:148,1
    - Dst: cms_keyid_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - rek
    - cert
    argTypes:
    - CMS_RecipientEncryptedKey*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: CMS_RecipientEncryptedKey_cert_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - cms_keyid_cert_cmp
    - cms_ias_cert_cmp
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek,\n
      \                                      X509 *cert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:160,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:164,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:165,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ri
    - pk
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 172
    functionName: CMS_RecipientInfo_kari_set0_pkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_free
    - EVP_PKEY_derive_init
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY
      *pk)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: CMS_RecipientInfo_kari_get0_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:196,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:200,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:203,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:206,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:208,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:211,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:218,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:220,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:221,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:223,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 6
    argNames:
    - pout
    - poutlen
    - in
    - inlen
    - kari
    - enc
    argTypes:
    - unsigned char**
    - size_t*
    - unsigned char*
    - size_t
    - CMS_KeyAgreeRecipientInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: cms_kek_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_CIPHER_CTX_reset
    - OPENSSL_free
    - EVP_CIPHER_CTX_key_length
    - EVP_PKEY_CTX_free
    - EVP_PKEY_derive
    - EVP_CipherUpdate
    - EVP_CipherInit_ex
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int cms_kek_cipher(unsigned char **pout, size_t *poutlen,\n                          const
      unsigned char *in, size_t inlen,\n                          CMS_KeyAgreeRecipientInfo
      *kari, int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cms_env_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:240,1
    - Dst: cms_kek_cipher
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:243,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:246,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - cms
    - ri
    - rek
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    - CMS_RecipientEncryptedKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 254
    functionName: CMS_RecipientInfo_kari_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - cms_env_asn1_ctrl
    - OPENSSL_free
    - cms_kek_cipher
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms,\n                                   CMS_RecipientInfo
      *ri,\n                                   CMS_RecipientEncryptedKey *rek)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:263,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:266,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:268,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:270,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:271,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:274,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:280,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:281,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - kari
    - pk
    argTypes:
    - CMS_KeyAgreeRecipientInfo*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 283
    functionName: cms_kari_create_ephemeral_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_keygen
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_keygen_init
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int cms_kari_create_ephemeral_key(CMS_KeyAgreeRecipientInfo *kari,\n
      \                                        EVP_PKEY *pk)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:293,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:301,1
    - Dst: sk_CMS_RecipientEncryptedKey_push
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:305,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:306,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:312,1
    - Dst: cms_set1_keyid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:315,1
    - Dst: cms_set1_ias
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:319,1
    - Dst: cms_kari_create_ephemeral_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:324,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - ri
    - recip
    - pk
    - flags
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    - EVP_PKEY*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 330
    functionName: cms_RecipientInfo_kari_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_up_ref
    - sk_CMS_RecipientEncryptedKey_push
    - M_ASN1_new_of
    - cms_set1_keyid
    - M_ASN1_free_of
    - cms_set1_ias
    - cms_kari_create_ephemeral_key
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri, X509 *recip,\n
      \                               EVP_PKEY *pk, unsigned int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:337,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:339,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:342,1
    - Dst: EVP_CIPHER_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:351,1
    - Dst: EVP_des_ede3_wrap
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:352,1
    - Dst: EVP_aes_128_wrap
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:356,1
    - Dst: EVP_aes_192_wrap
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:358,1
    - Dst: EVP_aes_256_wrap
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:360,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - kari
    - cipher
    argTypes:
    - CMS_KeyAgreeRecipientInfo*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 362
    functionName: cms_wrap_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_aes_256_wrap
    - EVP_des_ede3_wrap
    - EVP_aes_128_wrap
    - EVP_CIPHER_CTX_cipher
    - EVP_CIPHER_type
    - EVP_EncryptInit_ex
    - EVP_CIPHER_key_length
    - EVP_aes_192_wrap
    linkageType: ''
    returnType: int
    signature: "int cms_wrap_init(CMS_KeyAgreeRecipientInfo *kari,\n                         const
      EVP_CIPHER *cipher)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:372,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:376,1
    - Dst: cms_wrap_init
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:383,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:392,1
    - Dst: cms_env_asn1_ctrl
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:397,1
    - Dst: sk_CMS_RecipientEncryptedKey_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:400,1
    - Dst: sk_CMS_RecipientEncryptedKey_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:403,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:404,1
    - Dst: cms_kek_cipher
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:406,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/cms/cms_kari.c:409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 366
    functionDepth: 5
    functionLinenumber: 366
    functionLinenumberEnd: 414
    functionName: cms_RecipientInfo_kari_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
    functionUses: 1
    functionsReached:
    - cms_kek_cipher
    - ASN1_STRING_set0
    - M_ASN1_new_of
    - STACK_OF
    - CMSerr
    - cms_wrap_init
    - sk_CMS_RecipientEncryptedKey_num
    - EVP_PKEY_derive_set_peer
    - cms_env_asn1_ctrl
    - sk_CMS_RecipientEncryptedKey_value
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_kari_encrypt(CMS_ContentInfo *cms,\n                                   CMS_RecipientInfo
      *ri)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:23,1
    - Dst: BIO_s_null
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:23,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:25,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:25,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - flags
    argTypes:
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: cms_get_text_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - BIO_s_null
    - BIO_set_mem_eof_return
    - BIO_s_mem
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_get_text_bio(BIO *out, unsigned int flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cms_get_text_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:38,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:41,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:47,1
    - Dst: BIO_method_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:49,1
    - Dst: BIO_get_cipher_status
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:50,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:58,1
    - Dst: SMIME_text
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:63,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:64,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:73,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 3
    argNames:
    - out
    - in
    - flags
    argTypes:
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 76
    functionName: cms_copy_content
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - BIO_get_cipher_status
    - BIO_write
    - CMSerr
    - BIO_free
    - cms_get_text_bio
    - SMIME_text
    - BIO_method_type
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int cms_copy_content(BIO *out, BIO *in, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:80,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: check_content
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - CMS_get0_content
    linkageType: ''
    returnType: int
    signature: int check_content(CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:93,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:94,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - f
    - upto
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: do_free_upto
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - BIO_pop
    - BIO_free_all
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void do_free_upto(BIO *f, BIO *upto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:106,1
    - Dst: CMS_get0_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:106,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:107,1
    - Dst: CMS_dataInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:110,1
    - Dst: cms_copy_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:113,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - cms
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: CMS_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_dataInit
    - CMS_get0_type
    - CMSerr
    - cms_copy_content
    - OBJ_obj2nid
    - BIO_free_all
    linkageType: ''
    returnType: int
    signature: int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cms_Data_create
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:121,1
    - Dst: CMS_final
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:125,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - in
    - flags
    argTypes:
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: CMS_data_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_final
    - cms_Data_create
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:138,1
    - Dst: CMS_get0_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:138,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:139,1
    - Dst: check_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:143,1
    - Dst: CMS_dataInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:146,1
    - Dst: cms_copy_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:149,1
    - Dst: cms_DigestedData_do_final
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:151,1
    - Dst: do_free_upto
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - cms
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 154
    functionName: CMS_digest_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_dataInit
    - CMS_get0_type
    - CMSerr
    - do_free_upto
    - cms_DigestedData_do_final
    - cms_copy_content
    - OBJ_obj2nid
    - check_content
    linkageType: ''
    returnType: int
    signature: "int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out,\n
      \                     unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:161,1
    - Dst: cms_DigestedData_create
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:162,1
    - Dst: CMS_set_detached
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:167,1
    - Dst: CMS_final
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:169,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - in
    - md
    - flags
    argTypes:
    - BIO*
    - EVP_MD*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: CMS_digest_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_set_detached
    - EVP_sha1
    - CMS_final
    - cms_DigestedData_create
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md,\n                                   unsigned
      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:182,1
    - Dst: CMS_get0_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:182,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:183,1
    - Dst: check_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:188,1
    - Dst: CMS_EncryptedData_set1_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:191,1
    - Dst: CMS_dataInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:193,1
    - Dst: cms_copy_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:196,1
    - Dst: do_free_upto
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - cms
    - key
    - keylen
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - unsigned char*
    - size_t
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: CMS_EncryptedData_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_dataInit
    - CMS_get0_type
    - CMS_EncryptedData_set1_key
    - CMSerr
    - do_free_upto
    - cms_copy_content
    - OBJ_obj2nid
    - check_content
    linkageType: ''
    returnType: int
    signature: "int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms,\n                              const
      unsigned char *key, size_t keylen,\n                              BIO *dcont,
      BIO *out, unsigned int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:207,1
    - Dst: CMS_ContentInfo_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:210,1
    - Dst: CMS_EncryptedData_set1_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:213,1
    - Dst: CMS_set_detached
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:217,1
    - Dst: CMS_final
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:220,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - in
    - cipher
    - key
    - keylen
    - flags
    argTypes:
    - BIO*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 225
    functionName: CMS_EncryptedData_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_ContentInfo_new
    - CMS_set_detached
    - CMS_EncryptedData_set1_key
    - CMS_final
    - CMSerr
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER
      *cipher,\n                                           const unsigned char *key,\n
      \                                          size_t keylen, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:583,1
    - Dst: CMS_RecipientInfo_kari_get0_reks
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:585,1
    - Dst: sk_CMS_RecipientEncryptedKey_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:586,1
    - Dst: sk_CMS_RecipientEncryptedKey_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:588,1
    - Dst: CMS_RecipientEncryptedKey_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:589,1
    - Dst: CMS_RecipientInfo_kari_set0_pkey
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:591,1
    - Dst: CMS_RecipientInfo_kari_decrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:592,1
    - Dst: CMS_RecipientInfo_kari_set0_pkey
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - cms
    - ri
    - pk
    - cert
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    - EVP_PKEY*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 579
    functionDepth: 5
    functionLinenumber: 579
    functionLinenumberEnd: 599
    functionName: cms_kari_set1_pkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_RecipientInfo_kari_get0_reks
    - STACK_OF
    - CMS_RecipientInfo_kari_set0_pkey
    - sk_CMS_RecipientEncryptedKey_num
    - CMS_RecipientInfo_kari_decrypt
    - sk_CMS_RecipientEncryptedKey_value
    - CMS_RecipientEncryptedKey_cert_cmp
    linkageType: ''
    returnType: int
    signature: "int cms_kari_set1_pkey(CMS_ContentInfo *cms, CMS_RecipientInfo *ri,\n
      \                             EVP_PKEY *pk, X509 *cert)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:603,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:607,1
    - Dst: cms_pkey_get_ri_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:610,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:612,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:617,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:618,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:619,1
    - Dst: cms_kari_set1_pkey
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:623,1
    - Dst: CMS_RecipientInfo_ktri_cert_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:633,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:634,1
    - Dst: CMS_RecipientInfo_set0_pkey
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:635,1
    - Dst: CMS_RecipientInfo_decrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:636,1
    - Dst: CMS_RecipientInfo_set0_pkey
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:637,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:644,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:649,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:663,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:667,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 3
    argNames:
    - cms
    - pk
    - cert
    argTypes:
    - CMS_ContentInfo*
    - EVP_PKEY*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 601
    functionDepth: 7
    functionLinenumber: 601
    functionLinenumberEnd: 670
    functionName: CMS_decrypt_set1_pkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_RecipientInfo_ktri_cert_cmp
    - EVP_PKEY_up_ref
    - CMS_RecipientInfo_set0_pkey
    - sk_CMS_RecipientInfo_num
    - sk_CMS_RecipientInfo_value
    - STACK_OF
    - CMSerr
    - CMS_get0_RecipientInfos
    - cms_kari_set1_pkey
    - ERR_clear_error
    - CMS_RecipientInfo_type
    - cms_pkey_get_ri_type
    - CMS_RecipientInfo_decrypt
    linkageType: ''
    returnType: int
    signature: int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509
      *cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:676,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:679,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:680,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:681,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:682,1
    - Dst: CMS_RecipientInfo_kekri_id_cmp
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:689,1
    - Dst: CMS_RecipientInfo_set0_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:690,1
    - Dst: CMS_RecipientInfo_decrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:691,1
    - Dst: CMS_RecipientInfo_set0_key
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:692,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:696,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:699,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:703,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - cms
    - key
    - keylen
    - id
    - idlen
    argTypes:
    - CMS_ContentInfo*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 672
    functionDepth: 7
    functionLinenumber: 672
    functionLinenumberEnd: 706
    functionName: CMS_decrypt_set1_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RecipientInfo_num
    - sk_CMS_RecipientInfo_value
    - CMS_RecipientInfo_set0_key
    - CMS_RecipientInfo_kekri_id_cmp
    - STACK_OF
    - CMS_get0_RecipientInfos
    - CMSerr
    - ERR_clear_error
    - CMS_RecipientInfo_type
    - CMS_RecipientInfo_decrypt
    linkageType: ''
    returnType: int
    signature: "int CMS_decrypt_set1_key(CMS_ContentInfo *cms,\n                         unsigned
      char *key, size_t keylen,\n                         const unsigned char *id,
      size_t idlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:711,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:714,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:715,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:716,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:717,1
    - Dst: CMS_RecipientInfo_set0_password
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:719,1
    - Dst: CMS_RecipientInfo_decrypt
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:720,1
    - Dst: CMS_RecipientInfo_set0_password
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:721,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:726,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cms
    - pass
    - passlen
    argTypes:
    - CMS_ContentInfo*
    - unsigned char*
    - ossl_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 708
    functionDepth: 7
    functionLinenumber: 708
    functionLinenumberEnd: 729
    functionName: CMS_decrypt_set1_password
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_RecipientInfo_set0_password
    - sk_CMS_RecipientInfo_num
    - sk_CMS_RecipientInfo_value
    - STACK_OF
    - CMS_get0_RecipientInfos
    - CMSerr
    - CMS_RecipientInfo_type
    - CMS_RecipientInfo_decrypt
    linkageType: ''
    returnType: int
    signature: "int CMS_decrypt_set1_password(CMS_ContentInfo *cms,\n                              unsigned
      char *pass, ossl_ssize_t passlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:736,1
    - Dst: CMS_get0_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:736,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:737,1
    - Dst: check_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:740,1
    - Dst: CMS_decrypt_set1_pkey
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:752,1
    - Dst: CMS_dataInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:754,1
    - Dst: cms_copy_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:757,1
    - Dst: do_free_upto
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:758,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 6
    argNames:
    - cms
    - pk
    - cert
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - EVP_PKEY*
    - X509*
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 731
    functionDepth: 8
    functionLinenumber: 731
    functionLinenumberEnd: 760
    functionName: CMS_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_dataInit
    - CMS_get0_type
    - CMS_decrypt_set1_pkey
    - CMSerr
    - do_free_upto
    - cms_copy_content
    - OBJ_obj2nid
    - check_content
    linkageType: ''
    returnType: int
    signature: "int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert,\n
      \               BIO *dcont, BIO *out, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMS_dataInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:767,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:768,1
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:772,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:774,1
    - Dst: CMS_dataFinal
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:776,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:777,1
    - Dst: do_free_upto
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - cms
    - data
    - dcont
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 762
    functionDepth: 6
    functionLinenumber: 762
    functionLinenumberEnd: 788
    functionName: CMS_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 3
    functionsReached:
    - CMS_dataInit
    - CMSerr
    - do_free_upto
    - SMIME_crlf_copy
    - CMS_dataFinal
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned
      int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:797,1
    - Dst: CMS_get0_type
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:797,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:798,1
    - Dst: check_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:802,1
    - Dst: CMS_dataInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:805,1
    - Dst: cms_copy_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:808,1
    - Dst: do_free_upto
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - cms
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 792
    functionDepth: 6
    functionLinenumber: 792
    functionLinenumberEnd: 811
    functionName: CMS_uncompress
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_dataInit
    - CMS_get0_type
    - CMSerr
    - do_free_upto
    - cms_copy_content
    - OBJ_obj2nid
    - check_content
    linkageType: ''
    returnType: int
    signature: "int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,\n                   unsigned
      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cms_CompressedData_create
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:818,1
    - Dst: CMS_set_detached
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:823,1
    - Dst: CMS_final
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:825,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:828,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - in
    - comp_nid
    - flags
    argTypes:
    - BIO*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 813
    functionDepth: 7
    functionLinenumber: 813
    functionLinenumberEnd: 830
    functionName: CMS_compress
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_set_detached
    - CMS_final
    - CMS_ContentInfo_free
    - cms_CompressedData_create
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cms
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 839
    functionName: CMS_uncompress
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,\n                   unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_smime.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - in
    - comp_nid
    - flags
    argTypes:
    - BIO*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 845
    functionName: CMS_compress
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:20,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:24,1
    - Dst: CMSerr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - boundary
    - cms
    argTypes:
    - unsigned char***
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: CMS_stream
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - ASN1_OCTET_STRING_new
    - CMS_get0_content
    linkageType: ''
    returnType: int
    signature: int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:37,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - cms
    argTypes:
    - BIO*
    - CMS_ContentInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: d2i_CMS_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:42,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - cms
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: i2d_CMS_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_NDEF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:49,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - cms
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: BIO_new_CMS
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - BIO_new_NDEF
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ASN1_bio_stream
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:57,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - cms
    - in
    - flags
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: i2d_CMS_bio_stream
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_bio_stream
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_bio_ASN1_stream
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:64,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - cms
    - in
    - flags
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: PEM_write_bio_CMS_stream
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PEM_write_bio_ASN1_stream
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in,\n
      \                            int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:70,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:71,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:72,1
    - Dst: CMS_get0_eContentType
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:72,1
    - Dst: SMIME_write_ASN1
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:78,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - bio
    - cms
    - data
    - flags
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: SMIME_write_CMS
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - SMIME_write_ASN1
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    - CMS_get0_eContentType
    linkageType: ''
    returnType: int
    signature: int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_read_ASN1
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:85,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_io.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - bcont
    argTypes:
    - BIO*
    - BIO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: SMIME_read_CMS
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - SMIME_read_ASN1
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:51,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:52,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: cms_si_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - X509_free
    - EVP_PKEY_free
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int cms_si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                    void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: cms_rek_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int cms_rek_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                     void *exarg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:152,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:155,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:158,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 162
    functionName: cms_kari_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_set_flags
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: "int cms_kari_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM
      *it,\n                       void *exarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:205,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:206,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:207,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:210,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: cms_ri_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - X509_free
    - EVP_PKEY_free
    - OPENSSL_clear_free
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int cms_ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                    void *exarg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMS_stream
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:293,1
    - Dst: CMS_dataInit
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:297,1
    - Dst: CMS_dataFinal
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 281
    functionDepth: 6
    functionLinenumber: 281
    functionLinenumberEnd: 310
    functionName: cms_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - CMS_stream
    - CMS_dataInit
    - CMS_dataFinal
    linkageType: ''
    returnType: int
    signature: "int cms_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:402,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - pder
    - kekalg
    - ukm
    - keylen
    argTypes:
    - unsigned char**
    - X509_ALGOR*
    - ASN1_OCTET_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 403
    functionName: CMS_SharedInfo_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: "int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg,\n
      \                         ASN1_OCTET_STRING *ukm, int keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: hmac_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hmac_size(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:28,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:31,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: hmac_key_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - ASN1_OCTET_STRING_free
    - EVP_PKEY_get0
    linkageType: ''
    returnType: void
    signature: void hmac_key_free(EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: hmac_pkey_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hmac_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:50,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:50,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: hmac_pkey_public_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - EVP_PKEY_get0
    linkageType: ''
    returnType: int
    signature: int hmac_pkey_public_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:61,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:66,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: hmac_set_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: "int hmac_set_priv_key(EVP_PKEY *pkey, const unsigned char *priv,\n
      \                            size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:81,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:85,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:88,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:89,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: hmac_get_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hmac_get_priv_key(const EVP_PKEY *pkey, unsigned char *priv,\n
      \                            size_t *len)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_flags
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:43,1
    - Dst: EVP_MD_block_size
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:49,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:50,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:53,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:54,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:55,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:61,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:65,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:70,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:71,1
    - Dst: EVP_MD_block_size
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:71,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:76,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:77,1
    - Dst: EVP_MD_block_size
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:77,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:80,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:85,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:86,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 51
    argCount: 5
    argNames:
    - ctx
    - key
    - len
    - md
    - impl
    argTypes:
    - HMAC_CTX*
    - void*
    - int
    - EVP_MD*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 89
    functionName: HMAC_Init_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - EVP_MD_meth_get_flags
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_copy_ex
    - memcpy
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - memset
    - EVP_MD_block_size
    - ossl_assert
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,\n                 const
      EVP_MD *md, ENGINE *impl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:95,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - key
    - len
    - md
    argTypes:
    - HMAC_CTX*
    - void*
    - int
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: HMAC_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - HMAC_Init_ex
    - HMAC_CTX_reset
    linkageType: ''
    returnType: int
    signature: int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - HMAC_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: HMAC_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:115,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:117,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:119,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - md
    - len
    argTypes:
    - HMAC_CTX*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 126
    functionName: HMAC_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - EVP_DigestFinal_ex
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: HMAC_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    linkageType: ''
    returnType: size_t
    signature: size_t HMAC_size(const HMAC_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:137,1
    - Dst: HMAC_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:140,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: HMAC_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - HMAC_CTX_free
    - OPENSSL_zalloc
    - HMAC_CTX_reset
    linkageType: ''
    returnType: HMAC_CTX
    signature: HMAC_CTX *HMAC_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:150,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:151,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: hmac_ctx_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_reset
    linkageType: ''
    returnType: void
    signature: void hmac_ctx_cleanup(HMAC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hmac_ctx_cleanup
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:159,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:160,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:161,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:162,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: HMAC_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - hmac_ctx_cleanup
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void HMAC_CTX_free(HMAC_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:170,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:174,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: hmac_ctx_alloc_mds
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    linkageType: ''
    returnType: int
    signature: int hmac_ctx_alloc_mds(HMAC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hmac_ctx_cleanup
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:186,1
    - Dst: hmac_ctx_alloc_mds
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:187,1
    - Dst: hmac_ctx_cleanup
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: HMAC_CTX_reset
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - hmac_ctx_alloc_mds
    - hmac_ctx_cleanup
    linkageType: ''
    returnType: int
    signature: int HMAC_CTX_reset(HMAC_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hmac_ctx_alloc_mds
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:196,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:198,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:200,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:202,1
    - Dst: hmac_ctx_cleanup
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:207,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - dctx
    - sctx
    argTypes:
    - HMAC_CTX*
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: HMAC_CTX_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - hmac_ctx_alloc_mds
    - hmac_ctx_cleanup
    linkageType: ''
    returnType: int
    signature: int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:221,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:229,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:231,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:233,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:235,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:238,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 7
    argNames:
    - evp_md
    - key
    - key_len
    - d
    - n
    - md
    - md_len
    argTypes:
    - EVP_MD*
    - void*
    - int
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 240
    functionName: HMAC
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 4
    functionsReached:
    - HMAC_CTX_new
    - HMAC_Init_ex
    - HMAC_Final
    - HMAC_CTX_free
    - HMAC_Update
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,\n
      \                   const unsigned char *d, size_t n, unsigned char *md,\n                    unsigned
      int *md_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:244,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:245,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/hmac/hmac.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - HMAC_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: HMAC_CTX_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    linkageType: ''
    returnType: void
    signature: void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: HMAC_CTX_get_md
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:31,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:32,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: pkey_hmac_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OPENSSL_free
    - HMAC_CTX_new
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_hmac_init(EVP_PKEY_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pkey_hmac_init
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:55,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:57,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:58,1
    - Dst: HMAC_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:60,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:63,1
    - Dst: pkey_hmac_cleanup
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: pkey_hmac_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - pkey_hmac_init
    - HMAC_CTX_copy
    - pkey_hmac_cleanup
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int pkey_hmac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:76,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:79,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:81,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: pkey_hmac_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    functionUses: 1
    functionsReached:
    - HMAC_CTX_free
    - OPENSSL_free
    - EVP_PKEY_CTX_set_data
    - OPENSSL_clear_free
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: void
    signature: void pkey_hmac_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:92,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: pkey_hmac_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_dup
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int pkey_hmac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:102,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: int_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_pkey_ctx
    - HMAC_Update
    linkageType: ''
    returnType: int
    signature: int int_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:111,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:112,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:113,1
    - Dst: EVP_MD_CTX_set_update_fn
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: hmac_signctx_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_test_flags
    - EVP_MD_CTX_set_flags
    - HMAC_CTX_set_flags
    - EVP_MD_CTX_set_update_fn
    linkageType: ''
    returnType: int
    signature: int hmac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:123,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - sig
    - siglen
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: hmac_signctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_size
    - HMAC_Final
    linkageType: ''
    returnType: int
    signature: "int hmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,\n
      \                       EVP_MD_CTX *mctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:146,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: pkey_hmac_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - HMAC_Init_ex
    linkageType: ''
    returnType: int
    signature: int pkey_hmac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:174,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:175,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:176,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: pkey_hmac_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - strcmp
    - EVP_PKEY_CTX_hex2ctrl
    - EVP_PKEY_CTX_str2ctrl
    linkageType: ''
    returnType: int
    signature: "int pkey_hmac_ctrl_str(EVP_PKEY_CTX *ctx,\n                              const
      char *type, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: BN_lsw
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_kron.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_lsw(n)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:32,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:33,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:35,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:37,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:41,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:44,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:56,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:57,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:63,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:63,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:70,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:72,1
    - Dst: BN_lsw
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:80,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:102,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:103,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:109,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:111,1
    - Dst: BN_lsw
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:117,1
    - Dst: BN_lsw
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:122,1
    - Dst: BN_lsw
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:122,1
    - Dst: BN_lsw
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:122,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:126,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_kron.c:135,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 3
    argNames:
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 140
    functionName: BN_kronecker
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_kron.c
    functionUses: 0
    functionsReached:
    - BN_is_bit_set
    - BN_copy
    - BN_is_one
    - BN_rshift
    - BN_nnmod
    - BN_CTX_start
    - BN_CTX_end
    - bn_check_top
    - BN_CTX_get
    - BN_is_zero
    - BN_abs_is_word
    - BN_is_odd
    - BN_lsw
    linkageType: ''
    returnType: int
    signature: int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_bn_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:23,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - in
    - a
    - n
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: BN_mod_inverse
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c
    functionUses: 0
    functionsReached:
    - BNerr
    - int_bn_mod_inverse
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *BN_mod_inverse(BIGNUM *in,\n                       const BIGNUM
      *a, const BIGNUM *n, BN_CTX *ctx)"
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:38,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:38,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:47,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:48,1
    - Dst: BN_mod_inverse_no_branch
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:49,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:52,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:53,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:55,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:56,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:57,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:58,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:59,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:60,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:61,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:62,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:67,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:73,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:74,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:75,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:77,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:80,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:81,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:93,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:93,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:102,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:116,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:119,1
    - Dst: BN_uadd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:120,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:126,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:130,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:138,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:141,1
    - Dst: BN_uadd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:142,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:146,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:150,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:166,1
    - Dst: BN_uadd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:168,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:174,1
    - Dst: BN_uadd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:178,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:183,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:190,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:200,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:200,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:201,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:203,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:205,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:205,1
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:207,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:209,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:211,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:213,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:217,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:219,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:221,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:223,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:230,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:235,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:240,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:281,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:282,1
    - Dst: BN_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:285,1
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:286,1
    - Dst: BN_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:288,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:289,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:292,1
    - Dst: BN_mul_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:294,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:297,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:300,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:320,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:325,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:327,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:328,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:331,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:342,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:343,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:344,1
    CyclomaticComplexity: 108
    EdgeCount: 108
    ICount: 212
    argCount: 5
    argNames:
    - in
    - a
    - n
    - ctx
    - pnoinv
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 346
    functionName: int_bn_mod_inverse
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_is_word
    - bn_check_top
    - BN_mul_word
    - BN_lshift
    - BN_lshift1
    - BN_mod_inverse_no_branch
    - BN_one
    - BN_is_bit_set
    - BN_zero
    - BN_mul
    - BN_uadd
    - BN_div
    - BN_free
    - BN_sub
    - BN_abs_is_word
    - BN_ucmp
    - BN_is_one
    - BN_rshift
    - BN_new
    - BN_CTX_end
    - BN_rshift1
    - BN_CTX_get
    - BN_is_zero
    - BN_set_word
    - BN_is_odd
    - BN_nnmod
    - BN_usub
    - BN_add
    - BN_CTX_start
    - BN_get_flags
    - BN_num_bits
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *int_bn_mod_inverse(BIGNUM *in,\n                           const
      BIGNUM *a, const BIGNUM *n, BN_CTX *ctx,\n                           int *pnoinv)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:360,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:361,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:363,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:364,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:365,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:366,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:367,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:368,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:369,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:370,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:375,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:381,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:382,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:383,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:385,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:389,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:396,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:397,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:398,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:412,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:427,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:428,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:431,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:471,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:473,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:492,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:497,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:499,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:500,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:503,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:507,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:513,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:514,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:515,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 87
    argCount: 4
    argNames:
    - in
    - a
    - n
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 517
    functionName: BN_mod_inverse_no_branch
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - bn_check_top
    - BN_one
    - BN_zero
    - BN_mul
    - BN_div
    - BN_free
    - BN_sub
    - BN_ucmp
    - BN_is_one
    - BN_new
    - BN_with_flags
    - BN_CTX_end
    - BN_CTX_get
    - BN_is_zero
    - BN_nnmod
    - BN_add
    - BN_CTX_start
    - BNerr
    - bn_init
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in,\n                                        const
      BIGNUM *a, const BIGNUM *n,\n                                        BN_CTX
      *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:540,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:541,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:545,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:546,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:551,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:552,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:554,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:555,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:556,1
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:560,1
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:561,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:575,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:576,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:581,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:582,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:583,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:587,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:590,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:591,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:602,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:606,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:608,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:612,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:619,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:620,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:626,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c:627,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 4
    argNames:
    - r
    - in_a
    - in_b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 629
    functionName: BN_gcd
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c
    functionUses: 0
    functionsReached:
    - bn_wexpand
    - BN_add
    - BN_consttime_swap
    - BN_copy
    - BN_rshift
    - BN_CTX_start
    - BN_CTX_end
    - bn_check_top
    - BN_rshift1
    - BN_CTX_get
    - BN_is_zero
    - BN_num_bits
    - BN_lshift
    - BN_lshift1
    linkageType: ''
    returnType: int
    signature: int BN_gcd(BIGNUM *r, const BIGNUM *in_a, const BIGNUM *in_b, BN_CTX
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/bn/bn_err.c:112,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/bn/bn_err.c:113,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/bn/bn_err.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: ERR_load_BN_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_BN_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rsaz_1024_norm2red_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:80,1
    - Dst: rsaz_1024_norm2red_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:81,1
    - Dst: rsaz_1024_norm2red_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:82,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:84,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:85,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:88,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:90,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:92,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:93,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:96,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:97,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:101,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:102,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:106,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:107,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:109,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:110,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:112,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:113,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:115,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:116,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:119,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:120,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:121,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:123,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:124,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:126,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:127,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:129,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:130,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:132,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:133,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:136,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:137,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:138,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:140,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:141,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:143,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:144,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:146,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:147,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:150,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:151,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:152,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:154,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:155,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:157,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:158,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:160,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:161,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:164,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:165,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:166,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:168,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:169,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:171,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:172,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:175,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:176,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:177,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:179,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:180,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:182,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:183,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:186,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:187,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:188,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:190,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:191,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:193,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:194,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:197,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:198,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:199,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:201,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:202,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:204,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:205,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:211,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:217,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:223,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:224,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:228,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:232,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:233,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:236,1
    - Dst: rsaz_1024_red2norm_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:238,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 109
    argCount: 6
    argNames:
    - result_norm
    - base_norm
    - exponent
    - m_norm
    - RR
    - k0
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 241
    functionName: RSAZ_1024_mod_exp_avx2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c
    functionUses: 0
    functionsReached:
    - rsaz_1024_gather5_avx2
    - rsaz_1024_mul_avx2
    - rsaz_1024_red2norm_avx2
    - rsaz_1024_sqr_avx2
    - OPENSSL_cleanse
    - rsaz_1024_scatter5_avx2
    - rsaz_1024_norm2red_avx2
    linkageType: ''
    returnType: void
    signature: "void RSAZ_1024_mod_exp_avx2(BN_ULONG result_norm[16],\n                            const
      BN_ULONG base_norm[16],\n                            const BN_ULONG exponent[16],\n
      \                           const BN_ULONG m_norm[16], const BN_ULONG RR[16],\n
      \                           BN_ULONG k0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsaz_512_scatter4
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:279,1
    - Dst: rsaz_512_mul
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:282,1
    - Dst: rsaz_512_scatter4
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:283,1
    - Dst: rsaz_512_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:286,1
    - Dst: rsaz_512_scatter4
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:287,1
    - Dst: rsaz_512_mul_scatter4
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:290,1
    - Dst: rsaz_512_gather4
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:295,1
    - Dst: rsaz_512_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:296,1
    - Dst: rsaz_512_mul_gather4
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:297,1
    - Dst: rsaz_512_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:302,1
    - Dst: rsaz_512_mul_gather4
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:303,1
    - Dst: rsaz_512_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:305,1
    - Dst: rsaz_512_mul_gather4
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:306,1
    - Dst: rsaz_512_mul_by_one
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:310,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 6
    argNames:
    - result
    - base
    - exponent
    - m
    - k0
    - RR
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG
    - BN_ULONG[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 313
    functionName: RSAZ_512_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c
    functionUses: 0
    functionsReached:
    - rsaz_512_mul_by_one
    - rsaz_512_sqr
    - rsaz_512_gather4
    - rsaz_512_mul_gather4
    - rsaz_512_mul
    - rsaz_512_scatter4
    - rsaz_512_mul_scatter4
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "void RSAZ_512_mod_exp(BN_ULONG result[8],\n                      const
      BN_ULONG base[8], const BN_ULONG exponent[8],\n                      const BN_ULONG
      m[8], BN_ULONG k0, const BN_ULONG RR[8])"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:24,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:25,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:26,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:27,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:31,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:33,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:37,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:41,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:42,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:44,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:46,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:50,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:51,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:52,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:54,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:61,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:62,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:66,1
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:69,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:71,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:73,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:77,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:80,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:84,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 5
    argNames:
    - dv
    - rem
    - m
    - d
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 86
    functionName: BN_div
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_div.c
    functionUses: 2
    functionsReached:
    - BN_copy
    - BN_lshift1
    - BN_zero
    - BN_CTX_start
    - BN_CTX_end
    - bn_check_top
    - BN_rshift1
    - BNerr
    - BN_CTX_get
    - BN_is_zero
    - BN_num_bits
    - BN_lshift
    - BN_ucmp
    - bn_wexpand
    - BN_usub
    linkageType: ''
    returnType: int
    signature: "int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM
      *d,\n           BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - m
    - d1
    - d0
    argTypes:
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 137
    functionName: bn_div_3_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_div.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_div_3_words(const BN_ULONG *m, BN_ULONG d1, BN_ULONG d0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - num
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 159
    functionName: bn_left_align
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_div.c
    functionUses: 0
    functionsReached:
    - BN_num_bits_word
    linkageType: ''
    returnType: int
    signature: int bn_left_align(BIGNUM *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n0
    - ','
    - n1
    - ','
    - d0
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: bn_div_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_div.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_div_words(n0,n1,d0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n0
    - ','
    - n1
    - ','
    - d0
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: bn_div_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_div.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_div_words(n0,n1,d0)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:214,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:215,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:225,1
    - Dst: bn_div_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:229,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:233,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - dv
    - rm
    - num
    - divisor
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 239
    functionName: BN_div
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_div.c
    functionUses: 2
    functionsReached:
    - bn_correct_top
    - BNerr
    - bn_div_fixed_top
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM
      *divisor,\n           BN_CTX *ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:273,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:275,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:276,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:277,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:278,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:280,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:281,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:282,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:283,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:284,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:289,1
    - Dst: bn_left_align
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:291,1
    - Dst: bn_lshift_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:300,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:308,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:310,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:327,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:335,1
    - Dst: bn_div_3_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:345,1
    - Dst: bn_div_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:361,1
    - Dst: bn_div_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:385,1
    - Dst: BN_UMULT_LOHI
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:391,1
    - Dst: BN_UMULT_HIGH
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:394,1
    - Dst: LBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:398,1
    - Dst: HBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:399,1
    - Dst: LBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:400,1
    - Dst: HBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:401,1
    - Dst: mul64
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:402,1
    - Dst: bn_mul_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:421,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:428,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:437,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:439,1
    - Dst: bn_rshift_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:449,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:450,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:453,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_div.c:454,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 112
    argCount: 5
    argNames:
    - dv
    - rm
    - num
    - divisor
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts:
    - condition: ((*wnumtop) == 0)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_div.c
    - condition: (divisor->top > 0 && divisor->d[divisor->top - 1] != 0)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_div.c
    constantsTouched: []
    func_position:
      end: 456
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 456
    functionName: bn_div_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_div.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - HBITS
    - bn_div_words
    - bn_check_top
    - bn_left_align
    - bn_mul_words
    - BN_UMULT_HIGH
    - mul64
    - bn_sub_words
    - BN_CTX_end
    - BN_CTX_get
    - assert
    - bn_rshift_fixed_top
    - BN_UMULT_LOHI
    - BN_CTX_start
    - bn_lshift_fixed_top
    - bn_div_3_words
    - memset
    - LBITS
    - bn_wexpand
    - bn_add_words
    linkageType: ''
    returnType: int
    signature: "int bn_div_fixed_top(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num,\n
      \                    const BIGNUM *divisor, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:19,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:20,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:24,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:28,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 43
    functionName: BN_lshift1
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_shift.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_lshift1(BIGNUM *r, const BIGNUM *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:50,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:51,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:53,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:54,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:60,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 79
    functionName: BN_rshift1
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_shift.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    - BN_zero
    - bn_wexpand
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_rshift1(BIGNUM *r, const BIGNUM *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:86,1
    - Dst: bn_lshift_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:90,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:92,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: BN_lshift
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_shift.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    - bn_correct_top
    - bn_lshift_fixed_top
    - BNerr
    linkageType: ''
    returnType: int
    signature: int BN_lshift(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:111,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:113,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:114,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:117,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_shift.c
    constantsTouched: []
    func_position:
      end: 148
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 148
    functionName: bn_lshift_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_shift.c
    functionUses: 2
    functionsReached:
    - memset
    - bn_check_top
    - bn_wexpand
    - assert
    linkageType: ''
    returnType: int
    signature: int bn_lshift_fixed_top(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:155,1
    - Dst: bn_rshift_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:159,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:161,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: BN_rshift
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_shift.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    - bn_rshift_fixed_top
    - BNerr
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: int BN_rshift(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:180,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:181,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:183,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:188,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_shift.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_shift.c
    constantsTouched: []
    func_position:
      end: 216
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 216
    functionName: bn_rshift_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_shift.c
    functionUses: 2
    functionsReached:
    - bn_check_top
    - BN_zero
    - bn_wexpand
    - assert
    linkageType: ''
    returnType: int
    signature: int bn_rshift_fixed_top(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - mult
    - high
    - low
    - mont
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 64
    functionName: BN_set_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_set_params(int mult, int high, int low, int mont)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: BN_get_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_get_params(int which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: BN_value_one
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_value_one(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - l
    argTypes:
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 133
    functionName: BN_num_bits_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_num_bits_word(BN_ULONG l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:145,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:148,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:151,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: bn_num_bits_consttime
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - constant_time_eq_int
    - BN_num_bits_word
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline bn_num_bits_consttime(const BIGNUM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:168,1
    - Dst: bn_num_bits_consttime
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:180,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:183,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 187
    functionName: BN_num_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 6
    functionsReached:
    - bn_check_top
    - bn_num_bits_consttime
    - BN_num_bits_word
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_num_bits(const BIGNUM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:191,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:192,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:194,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - clear
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: bn_free_d
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_get_flags
    - OPENSSL_clear_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void bn_free_d(BIGNUM *a, int clear)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:204,1
    - Dst: bn_free_d
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:205,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:206,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:207,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: BN_clear_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - BN_get_flags
    - OPENSSL_free
    - bn_free_d
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void BN_clear_free(BIGNUM *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:216,1
    - Dst: bn_free_d
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:217,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: BN_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 16
    functionsReached:
    - BN_get_flags
    - OPENSSL_free
    - bn_free_d
    linkageType: ''
    returnType: void
    signature: void BN_free(BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: bn_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: void bn_init(BIGNUM *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:234,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:235,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 241
    functionName: BN_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 14
    functionsReached:
    - bn_check_top
    - BNerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: BN_secure_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_secure_new(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:258,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:261,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:262,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:265,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:266,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:268,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:270,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:274,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - b
    - words
    argTypes:
    - BIGNUM*
    - int
    assertStmts:
    - condition: (b->top <= words)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    constantsTouched: []
    func_position:
      end: 279
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 279
    functionName: bn_expand_internal
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_secure_zalloc
    - BN_get_flags
    - OPENSSL_zalloc
    - BNerr
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG *bn_expand_internal(const BIGNUM *b, int words)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_expand_internal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:292,1
    - Dst: bn_free_d
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - b
    - words
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 302
    functionName: bn_expand2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_expand_internal
    - bn_free_d
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *bn_expand2(BIGNUM *b, int words)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:310,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:312,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:312,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:312,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:315,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:316,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 321
    functionName: BN_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached:
    - BN_secure_new
    - BN_copy
    - BN_new
    - bn_check_top
    - BN_get_flags
    - BN_free
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_dup(const BIGNUM *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:325,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:329,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:333,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 340
    functionName: BN_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 9
    functionsReached:
    - bn_check_top
    - bn_wexpand
    - memcpy
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: FLAGS_DATA
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAGS_DATA(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: FLAGS_STRUCT
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAGS_STRUCT(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:354,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:355,1
    - Dst: FLAGS_STRUCT
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:375,1
    - Dst: FLAGS_DATA
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:375,1
    - Dst: FLAGS_STRUCT
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:376,1
    - Dst: FLAGS_DATA
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:376,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:377,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 379
    functionName: BN_swap
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - FLAGS_DATA
    - FLAGS_STRUCT
    linkageType: ''
    returnType: void
    signature: void BN_swap(BIGNUM *a, BIGNUM *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:385,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 391
    functionName: BN_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void BN_clear(BIGNUM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: BN_get_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG BN_get_word(const BIGNUM *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:405,1
    - Dst: bn_expand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:406,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 414
    functionName: BN_set_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 5
    functionsReached:
    - bn_expand
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: int BN_set_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:424,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:427,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:438,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:439,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:457,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - s
    - len
    - ret
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 459
    functionName: BN_bin2bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 4
    functionsReached:
    - bn_correct_top
    - BN_new
    - bn_check_top
    - BN_free
    - bn_wexpand
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:476,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:482,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:483,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:491,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - a
    - to
    - tolen
    - endianess
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    - endianess_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 512
    functionName: bn2binpad
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 3
    functionsReached:
    - bn_correct_top
    - BN_num_bytes
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int bn2binpad(const BIGNUM *a, unsigned char *to, int tolen, endianess_t
      endianess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn2binpad
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - to
    - tolen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: BN_bn2binpad
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 3
    functionsReached:
    - bn2binpad
    linkageType: ''
    returnType: int
    signature: int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn2binpad
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - to
    argTypes:
    - BIGNUM*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: BN_bn2bin
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn2binpad
    linkageType: ''
    returnType: int
    signature: int BN_bn2bin(const BIGNUM *a, unsigned char *to)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:534,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:537,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:549,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:550,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:569,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - s
    - len
    - ret
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 571
    functionName: BN_lebin2bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn_correct_top
    - BN_new
    - bn_check_top
    - BN_free
    - bn_wexpand
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn2binpad
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - to
    - tolen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 578
    functionName: BN_bn2lebinpad
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn2binpad
    linkageType: ''
    returnType: int
    signature: int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:585,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 600
    functionName: BN_ucmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: int BN_ucmp(const BIGNUM *a, const BIGNUM *b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:617,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:618,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 647
    functionName: BN_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: int BN_cmp(const BIGNUM *a, const BIGNUM *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:659,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 670
    functionName: BN_set_bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_set_bit(BIGNUM *a, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:676,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 688
    functionName: BN_clear_bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: int BN_clear_bit(BIGNUM *a, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 702
    functionName: BN_is_bit_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: int BN_is_bit_set(const BIGNUM *a, int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:708,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 724
    functionName: BN_mask_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: int BN_mask_bits(BIGNUM *a, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 732
    functionName: BN_set_negative
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: void
    signature: void BN_set_negative(BIGNUM *a, int b)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 753
    functionName: bn_cmp_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bn_cmp_words(const BN_ULONG *a, const BN_ULONG *b, int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_cmp_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - a
    - b
    - cl
    - dl
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 782
    functionName: bn_cmp_part_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_cmp_words
    linkageType: ''
    returnType: int
    signature: int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl,
      int dl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_wcheck_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:799,1
    - Dst: bn_wcheck_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - condition
    - a
    - b
    - nwords
    argTypes:
    - BN_ULONG
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 846
    functionName: BN_consttime_swap
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn_wcheck_size
    linkageType: ''
    returnType: void
    signature: void BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int
      nwords)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - L
    - N
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 873
    functionName: BN_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_security_bits(int L, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 880
    functionName: BN_zero_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_zero_ex(BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 885
    functionName: BN_abs_is_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 890
    functionName: BN_is_zero
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_is_zero(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 895
    functionName: BN_is_one
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 3
    functionsReached:
    - BN_abs_is_word
    linkageType: ''
    returnType: int
    signature: int BN_is_one(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 900
    functionName: BN_is_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - BN_abs_is_word
    linkageType: ''
    returnType: int
    signature: int BN_is_word(const BIGNUM *a, const BN_ULONG w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 905
    functionName: BN_is_odd
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_is_odd(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 910
    functionName: BN_is_negative
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_is_negative(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 916
    functionName: BN_to_montgomery
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul_montgomery
    linkageType: ''
    returnType: int
    signature: "int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont,\n
      \                    BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - b
    - flags
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 927
    functionName: BN_with_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:933,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 939
    functionName: BN_GENCB_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BNerr
    linkageType: ''
    returnType: BN_GENCB
    signature: BN_GENCB *BN_GENCB_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 946
    functionName: BN_GENCB_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BN_GENCB_free(BN_GENCB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 951
    functionName: BN_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_set_flags(BIGNUM *b, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 956
    functionName: BN_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_get_flags(const BIGNUM *b, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gencb
    - cb_arg
    argTypes:
    - BN_GENCB*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 966
    functionName: BN_GENCB_set_old
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int,
      void *),\n                      void *cb_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gencb
    - cb_arg
    argTypes:
    - BN_GENCB*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 976
    functionName: BN_GENCB_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB
      *),\n                  void *cb_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 981
    functionName: BN_GENCB_get_arg
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *BN_GENCB_get_arg(BN_GENCB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_expand2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - words
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 983
    functionDepth: 3
    functionLinenumber: 983
    functionLinenumberEnd: 986
    functionName: bn_wexpand
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 11
    functionsReached:
    - bn_expand2
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *bn_wexpand(BIGNUM *a, int words)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_pollute
      Src: /src/openssl-1.1.1g/crypto/bn/bn_lib.c:1004,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1005
    functionName: bn_correct_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
    functionUses: 8
    functionsReached:
    - bn_pollute
    linkageType: ''
    returnType: void
    signature: void bn_correct_top(BIGNUM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - m
    - d
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 26
    functionName: BN_nnmod
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 3
    functionsReached:
    - BN_mod
    linkageType: ''
    returnType: int
    signature: int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:31,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - r
    - a
    - b
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: BN_mod_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 2
    functionsReached:
    - BN_add
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: "int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const
      BIGNUM *m,\n               BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:56,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:60,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 93
    functionName: bn_mod_add_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - bn_wexpand
    - bn_sub_words
    linkageType: ''
    returnType: int
    signature: "int bn_mod_add_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *b,\n                         const BIGNUM *m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_mod_add_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:98,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: BN_mod_add_quick
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - bn_mod_add_fixed_top
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: "int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                    const BIGNUM *m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:109,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - r
    - a
    - b
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: BN_mod_sub
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_sub
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: "int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const
      BIGNUM *m,\n               BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 176
    functionName: bn_mod_sub_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int bn_mod_sub_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *b,\n                         const BIGNUM *m)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:185,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: BN_mod_sub_quick
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_sub
    - BN_add
    linkageType: ''
    returnType: int
    signature: "int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                    const BIGNUM *m)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:199,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:200,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:201,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:203,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:204,1
    - Dst: BN_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:207,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:210,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:213,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:215,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:218,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - r
    - a
    - b
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: BN_mod_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 1
    functionsReached:
    - BN_mul
    - BN_CTX_start
    - BN_CTX_end
    - bn_check_top
    - BN_CTX_get
    - BN_nnmod
    - BN_sqr
    linkageType: ''
    returnType: int
    signature: "int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const
      BIGNUM *m,\n               BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:224,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - r
    - a
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: BN_mod_sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_mod
    - BN_sqr
    linkageType: ''
    returnType: int
    signature: int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:232,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:234,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - r
    - a
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: BN_mod_lshift1
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_lshift1
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:244,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:246,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:247,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - a
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: BN_mod_lshift1_quick
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_sub
    - bn_check_top
    - BN_cmp
    - BN_lshift1
    linkageType: ''
    returnType: int
    signature: int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:258,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:262,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:268,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:269,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - r
    - a
    - n
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 273
    functionName: BN_mod_lshift
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_mod_lshift_quick
    - BN_free
    - BN_dup
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: "int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM
      *m,\n                  BN_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:282,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:290,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:290,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:294,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:302,1
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:306,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:313,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:314,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mod.c:318,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - r
    - a
    - n
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 321
    functionName: BN_mod_lshift_quick
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_cmp
    - bn_check_top
    - BNerr
    - BN_num_bits
    - BN_lshift
    - BN_sub
    - BN_lshift1
    linkageType: ''
    returnType: int
    signature: int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM
      *m)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:34,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:36,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:37,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:41,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:44,1
    - Dst: BN_BLINDING_set_current_thread
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:48,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:51,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:56,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:61,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:64,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:65,1
    - Dst: BN_BLINDING_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:77,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - A
    - Ai
    - mod
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 79
    functionName: BN_BLINDING_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_set_flags
    - BN_BLINDING_free
    - OPENSSL_free
    - BN_BLINDING_set_current_thread
    - bn_check_top
    - CRYPTO_THREAD_lock_new
    - BN_get_flags
    - BNerr
    - OPENSSL_zalloc
    - BN_dup
    linkageType: ''
    returnType: BN_BLINDING
    signature: BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM
      *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:85,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:86,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:87,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:88,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:89,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: BN_BLINDING_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: void BN_BLINDING_free(BN_BLINDING *r)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:98,1
    - Dst: BN_BLINDING_create_param
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:108,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:112,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:113,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:116,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:117,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 2
    argNames:
    - b
    - ctx
    argTypes:
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 127
    functionName: BN_BLINDING_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul
    - BN_BLINDING_create_param
    - bn_mul_mont_fixed_top
    - BNerr
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_convert_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: BN_BLINDING_convert
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_convert_ex
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:138,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:141,1
    - Dst: BN_BLINDING_update
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:148,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:151,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:155,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:157,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - n
    - r
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 160
    functionName: BN_BLINDING_convert_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_BLINDING_update
    - BN_mod_mul_montgomery
    - bn_check_top
    - BNerr
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_invert_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: BN_BLINDING_invert
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_invert_ex
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:172,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:175,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:194,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:196,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - n
    - r
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 201
    functionName: BN_BLINDING_invert_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BN_mod_mul
    - BNerr
    - BN_mod_mul_montgomery
    linkageType: ''
    returnType: int
    signature: "int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING
      *b,\n                          BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:205,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: BN_BLINDING_is_current_thread
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_compare_id
    - CRYPTO_THREAD_get_current_id
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_is_current_thread(BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: BN_BLINDING_set_current_thread
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_current_id
    linkageType: ''
    returnType: void
    signature: void BN_BLINDING_set_current_thread(BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: BN_BLINDING_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_lock(BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: BN_BLINDING_unlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_unlock(BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: BN_BLINDING_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long BN_BLINDING_get_flags(const BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BN_BLINDING*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: BN_BLINDING_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_BLINDING_set_flags(BN_BLINDING *b, unsigned long flags)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:247,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:254,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:256,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:260,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:261,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:273,1
    - Dst: int_bn_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:275,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:285,1
    - Dst: BN_BLINDING*::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:291,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:294,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:299,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:300,1
    - Dst: BN_BLINDING_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_blind.c:307,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 61
    argCount: 5
    argNames:
    - b
    - e
    - m
    - ctx
    - m_ctx
    argTypes:
    - BN_BLINDING*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 312
    functionName: BN_BLINDING_create_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - BN_BLINDING*::bn_mod_exp
    - BN_BLINDING_new
    - BN_BLINDING_free
    - BN_new
    - bn_to_mont_fixed_top
    - BN_priv_rand_range
    - BN_free
    - BNerr
    - BN_mod_exp
    - BN_dup
    - int_bn_mod_inverse
    linkageType: ''
    returnType: BN_BLINDING
    signature: "BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b,\n                                      const
      BIGNUM *e, BIGNUM *m, BN_CTX *ctx,\n                                      int
      (*bn_mod_exp) (BIGNUM *r,\n                                                         const
      BIGNUM *a,\n                                                         const BIGNUM
      *p,\n                                                         const BIGNUM *m,\n
      \                                                        BN_CTX *ctx,\n                                                         BN_MONT_CTX
      *m_ctx),\n                                      BN_MONT_CTX *m_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: BN_get0_nist_prime_192
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_192(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: BN_get0_nist_prime_224
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: BN_get0_nist_prime_256
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: BN_get0_nist_prime_384
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: BN_get0_nist_prime_521
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_521(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - dst
    - src
    - top
    - max
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: nist_cp_bn_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: void
    signature: void nist_cp_bn_0(BN_ULONG *dst, const BN_ULONG *src, int top, int
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - top
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: nist_cp_bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nist_cp_bn(BN_ULONG *dst, const BN_ULONG *src, int top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: bn_cp_64
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_64(to, n, from, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: bn_64_set_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_64_set_0(to, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: bn_cp_32_naked
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_32_naked(to, n, from, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: bn_32_set_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_32_set_0(to, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: bn_cp_32
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_32(to,n,from,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: bn_cp_64
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_64(to, n, from, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: bn_64_set_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_64_set_0(to, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: bn_cp_32
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_32(to, n, from, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: bn_32_set_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_32_set_0(to, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: nist_set_192
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nist_set_192(to, from, a1, a2, a3)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:333,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:334,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:340,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:340,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:341,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:343,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:345,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:348,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:351,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:354,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:358,1
    - Dst: nist_set_192
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:410,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:411,1
    - Dst: nist_set_192
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:412,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:413,1
    - Dst: nist_set_192
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:414,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:415,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:420,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:432,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:438,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 69
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 443
    functionName: BN_nist_mod_192
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - BN_copy
    - bn_correct_top
    - BN_zero
    - nist_set_192
    - bn_sub_words
    - nist_cp_bn
    - BN_is_negative
    - nist_cp_bn_0
    - BN_ucmp
    - bn_wexpand
    - BN_nnmod
    - bn_add_words
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 458
    functionName: nist_set_224
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nist_set_224(to, from, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:478,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:479,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:485,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:485,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:486,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:488,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:490,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:493,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:496,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:499,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:505,1
    - Dst: nist_set_224
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:508,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:512,1
    - Dst: nist_set_224
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:575,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:576,1
    - Dst: nist_set_224
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:577,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:578,1
    - Dst: nist_set_224
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:579,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:580,1
    - Dst: nist_set_224
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:581,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:582,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:592,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:606,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:621,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:623,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 91
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 626
    functionName: BN_nist_mod_224
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - BN_copy
    - bn_correct_top
    - BN_zero
    - bn_sub_words
    - nist_cp_bn
    - BN_is_negative
    - nist_cp_bn_0
    - BN_ucmp
    - bn_wexpand
    - BN_nnmod
    - bn_add_words
    - nist_set_224
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 639
    functionName: nist_set_256
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nist_set_256(to, from, a1, a2, a3, a4, a5, a6, a7, a8)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:659,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:660,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:666,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:666,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:667,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:669,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:671,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:674,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:677,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:680,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:684,1
    - Dst: nist_set_256
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:788,1
    - Dst: nist_set_256
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:792,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:793,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:807,1
    - Dst: nist_set_256
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:811,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:812,1
    - Dst: nist_set_256
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:816,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:817,1
    - Dst: nist_set_256
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:821,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:822,1
    - Dst: nist_set_256
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:826,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:827,1
    - Dst: nist_set_256
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:831,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:832,1
    - Dst: nist_set_256
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:836,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:837,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:845,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:849,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:863,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:865,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 143
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 640
    functionDepth: 4
    functionLinenumber: 640
    functionLinenumberEnd: 868
    functionName: BN_nist_mod_256
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - BN_copy
    - bn_correct_top
    - BN_zero
    - bn_sub_words
    - nist_set_256
    - nist_cp_bn
    - BN_is_negative
    - nist_cp_bn_0
    - BN_ucmp
    - bn_wexpand
    - BN_nnmod
    - bn_add_words
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 29
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - ','
    - a9
    - ','
    - a10
    - ','
    - a11
    - ','
    - a12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 885
    functionName: nist_set_384
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nist_set_384(to,from,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:905,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:906,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:912,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:912,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:913,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:915,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:917,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:920,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:923,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:926,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:930,1
    - Dst: nist_set_256
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1061,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1075,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1080,1
    - Dst: nist_set_384
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1084,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1086,1
    - Dst: nist_set_384
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1090,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1092,1
    - Dst: nist_set_384
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1096,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1097,1
    - Dst: nist_set_384
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1101,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1102,1
    - Dst: nist_set_384
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1106,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1108,1
    - Dst: nist_set_384
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1112,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1113,1
    - Dst: nist_set_384
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1117,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1118,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1126,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1130,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1144,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1146,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 166
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 886
    functionDepth: 4
    functionLinenumber: 886
    functionLinenumberEnd: 1149
    functionName: BN_nist_mod_384
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - BN_copy
    - bn_correct_top
    - BN_zero
    - nist_set_384
    - bn_sub_words
    - nist_set_256
    - nist_cp_bn
    - BN_is_negative
    - nist_cp_bn_0
    - BN_ucmp
    - bn_wexpand
    - BN_nnmod
    - bn_add_words
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1163,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1164,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1170,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1170,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1171,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1173,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1175,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1178,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1181,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1184,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1189,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1212,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1214,1
    - Dst: nist_cp_bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1219,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1155
    functionDepth: 4
    functionLinenumber: 1155
    functionLinenumberEnd: 1224
    functionName: BN_nist_mod_521
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - BN_copy
    - bn_correct_top
    - BN_zero
    - bn_sub_words
    - nist_cp_bn
    - BN_is_negative
    - nist_cp_bn_0
    - BN_ucmp
    - bn_wexpand
    - BN_nnmod
    - bn_add_words
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1228,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1230,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1232,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1234,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_nist.c:1236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1226
    functionDepth: 2
    functionLinenumber: 1226
    functionLinenumberEnd: 1239
    functionName: "(*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a,\n
      \                                         const BIGNUM *field, BN_CTX *ctx)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - BN_ucmp
    linkageType: ''
    returnType: int
    signature: "int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM
      *a,\n                                          const BIGNUM *field, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: bn_pollute
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pollute(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: bn_check_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_check_top(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: bn_fix_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_fix_top(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bn
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: bn_check_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_check_size(bn, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bn
    - ','
    - words
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: bn_wcheck_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_wcheck_size(bn, words)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: bn_fix_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_fix_top(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: BN_window_bits_for_exponent_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_window_bits_for_exponent_size(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: BN_window_bits_for_ctime_exponent_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_window_bits_for_ctime_exponent_size(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: BN_window_bits_for_ctime_exponent_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_window_bits_for_ctime_exponent_size(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: BN_UMULT_LOHI
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_LOHI(low,high,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 401
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 412
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 417
    functionName: BN_UMULT_LOHI
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_LOHI(low,high,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: BN_UMULT_LOHI
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_LOHI(low,high,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: BN_UMULT_LOHI
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_LOHI(low,high,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 460
    functionName: bn_clear_top2max
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_clear_top2max(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: Lw
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lw(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 470
    functionName: Hw
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Hw(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 477
    functionName: mul_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 484
    functionName: mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 491
    functionName: sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr(r0,r1,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 504
    functionName: mul_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr(r0,r1,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: mul_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 542
    functionName: mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 548
    functionName: sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr(r0,r1,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 555
    functionName: LBITS
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: HBITS
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 557
    functionName: L2HBITS
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L2HBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 559
    functionName: LLBITS
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LLBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 560
    functionName: LHBITS
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LHBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    functionName: LL2HBITS
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL2HBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - h
    - ','
    - bl
    - ','
    - bh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 579
    functionName: mul64
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul64(l,h,bl,bh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lo
    - ','
    - ho
    - ','
    - in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 596
    functionName: sqr64
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr64(lo,ho,in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - bl
    - ','
    - bh
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 605
    functionName: mul_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,bl,bh,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - bl
    - ','
    - bh
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 621
    functionName: mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,bl,bh,c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_expand2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_local.h:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - bits
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 657
    functionDepth: 3
    functionLinenumber: 657
    functionLinenumberEnd: 666
    functionName: bn_expand
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached:
    - bn_expand2
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline *bn_expand(BIGNUM *a, int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:18,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:19,1
    - Dst: BN_uadd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:23,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:25,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:28,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:31,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:34,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 42
    functionName: BN_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_add.c
    functionUses: 12
    functionsReached:
    - BN_zero
    - BN_uadd
    - bn_check_top
    - BN_ucmp
    - BN_usub
    linkageType: ''
    returnType: int
    signature: int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:49,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:50,1
    - Dst: BN_uadd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:54,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:56,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:59,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:62,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:65,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: BN_sub
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_add.c
    functionUses: 9
    functionsReached:
    - BN_zero
    - BN_uadd
    - bn_check_top
    - BN_ucmp
    - BN_usub
    linkageType: ''
    returnType: int
    signature: int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:82,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:83,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:96,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:105,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 122
    functionName: BN_uadd
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_add.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    - bn_wexpand
    - bn_add_words
    linkageType: ''
    returnType: int
    signature: int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:131,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:132,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:139,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:143,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:150,1
    - Dst: bn_pollute
      Src: /src/openssl-1.1.1g/crypto/bn/bn_add.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 170
    functionName: BN_usub
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_add.c
    functionUses: 4
    functionsReached:
    - bn_pollute
    - bn_sub_words
    - bn_check_top
    - BNerr
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: make_dh_bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_dh_bn(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:31,1
    - Dst: BN_div_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:35,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:36,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 59
    functionName: BN_mod_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_word.c
    functionUses: 0
    functionsReached:
    - BN_div_word
    - bn_check_top
    - BN_dup
    - BN_free
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:66,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:76,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:78,1
    - Dst: bn_div_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:85,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: BN_div_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_word.c
    functionUses: 1
    functionsReached:
    - bn_div_words
    - bn_check_top
    - BN_lshift
    - BN_num_bits_word
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:103,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:110,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:111,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:115,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:116,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:125,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 132
    functionName: BN_add_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_word.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_set_word
    - BN_sub_word
    - bn_wexpand
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_add_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:138,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:145,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:146,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:148,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:154,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:177,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 179
    functionName: BN_sub_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_word.c
    functionUses: 1
    functionsReached:
    - BN_set_negative
    - BN_add_word
    - bn_check_top
    - BN_set_word
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_sub_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:185,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:189,1
    - Dst: bn_mul_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:191,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:193,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_word.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: BN_mul_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_word.c
    functionUses: 1
    functionsReached:
    - bn_mul_words
    - bn_check_top
    - BN_zero
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_mul_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:29,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:39,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:41,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:46,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:46,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:58,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:84,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:88,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:89,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:93,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 65
    argCount: 5
    argNames:
    - flag
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BNRAND_FLAG
    - BIGNUM*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 95
    functionName: bnrand
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - OPENSSL_malloc
    - RAND_bytes
    - BN_zero
    - bn_check_top
    - BN_bin2bn
    - BNerr
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: int bnrand(BNRAND_FLAG flag, BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: BN_rand
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: int BN_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: BN_bntest_rand
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: BN_priv_rand
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:118,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:119,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:123,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:128,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:129,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:129,1
    - Dst: bnrand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:135,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:144,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:145,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:147,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:148,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:153,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:158,1
    - Dst: bnrand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:162,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:166,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:170,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:173,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - flag
    - r
    - range
    argTypes:
    - BNRAND_FLAG
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 175
    functionName: bnrand_range
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - BN_is_bit_set
    - BN_cmp
    - BN_zero
    - bn_check_top
    - bnrand
    - BNerr
    - BN_is_zero
    - BN_num_bits
    - BN_sub
    linkageType: ''
    returnType: int
    signature: int bnrand_range(BNRAND_FLAG flag, BIGNUM *r, const BIGNUM *range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand_range
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - range
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 6
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: BN_rand_range
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand_range
    linkageType: ''
    returnType: int
    signature: int BN_rand_range(BIGNUM *r, const BIGNUM *range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand_range
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - range
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: BN_priv_rand_range
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 3
    functionsReached:
    - bnrand_range
    linkageType: ''
    returnType: int
    signature: int BN_priv_rand_range(BIGNUM *r, const BIGNUM *range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: BN_pseudo_rand
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - BN_rand
    linkageType: ''
    returnType: int
    signature: int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_rand_range
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - range
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 7
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: BN_pseudo_rand_range
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - BN_rand_range
    linkageType: ''
    returnType: int
    signature: int BN_pseudo_rand_range(BIGNUM *r, const BIGNUM *range)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:218,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:223,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:228,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:234,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:239,1
    - Dst: SHA512_Init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:241,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:242,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:243,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:244,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:245,1
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:246,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:251,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:255,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:257,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:262,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_rand.c:263,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 6
    argNames:
    - out
    - range
    - priv
    - message
    - message_len
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 265
    functionName: BN_generate_dsa_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - RAND_priv_bytes
    - OPENSSL_malloc
    - SHA512_Final
    - BN_num_bytes
    - OPENSSL_free
    - memcpy
    - BN_bin2bn
    - BNerr
    - SHA512_Update
    - BN_bn2binpad
    - BN_mod
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range,\n                          const
      BIGNUM *priv, const unsigned char *message,\n                          size_t
      message_len, BN_CTX *ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:30,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:31,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:33,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:43,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:50,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:55,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:59,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:60,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:66,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:101,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:113,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:121,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:124,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:130,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:137,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 79
    argCount: 3
    argNames:
    - scalar
    - w
    - ret_len
    argTypes:
    - BIGNUM*
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 139
    functionName: bn_compute_wNAF
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BN_is_bit_set
    - OPENSSL_free
    - BN_is_negative
    - BNerr
    - BN_is_zero
    - BN_num_bits
    linkageType: ''
    returnType: signed char
    signature: signed char *bn_compute_wNAF(const BIGNUM *scalar, int w, size_t *ret_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: bn_get_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bn_get_top(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: bn_get_dmax
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bn_get_dmax(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: bn_set_all_zero
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn_set_all_zero(BIGNUM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:164,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - out
    - in
    - size
    argTypes:
    - BN_ULONG*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: bn_copy_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int bn_copy_words(BN_ULONG *out, const BIGNUM *in, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: bn_get_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG *bn_get_words(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - a
    - words
    - size
    argTypes:
    - BIGNUM*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: bn_set_static_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    linkageType: ''
    returnType: void
    signature: void bn_set_static_words(BIGNUM *a, const BN_ULONG *words, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:190,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:191,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:195,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_intern.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - a
    - words
    - num_words
    argTypes:
    - BIGNUM*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: bn_set_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - bn_wexpand
    - BNerr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int bn_set_words(BIGNUM *a, const BN_ULONG *words, int num_words)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: alloca
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alloca(s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:46,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:47,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:49,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:53,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:54,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:55,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:59,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:61,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:63,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:64,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:67,1
    - Dst: BN_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:72,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:74,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:75,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:79,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:84,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:85,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 87
    functionName: BN_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 2
    functionsReached:
    - BN_one
    - BN_is_bit_set
    - BN_copy
    - BN_CTX_start
    - BN_mul
    - BN_CTX_end
    - bn_check_top
    - BN_get_flags
    - BNerr
    - BN_CTX_get
    - BN_num_bits
    - BN_is_odd
    - BN_sqr
    linkageType: ''
    returnType: int
    signature: int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:94,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:95,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:96,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:134,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:137,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:138,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:139,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:141,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:144,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:149,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:153,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 159
    functionName: BN_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 2
    functionsReached:
    - BN_mod_exp_mont_word
    - bn_check_top
    - BN_get_flags
    - BN_mod_exp_recp
    - BN_mod_exp_mont
    - BN_is_odd
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const
      BIGNUM *m,\n               BN_CTX *ctx)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:171,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:172,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:173,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:175,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:179,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:182,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:184,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:186,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:191,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:192,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:193,1
    - Dst: BN_RECP_CTX_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:197,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:200,1
    - Dst: BN_RECP_CTX_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:203,1
    - Dst: BN_RECP_CTX_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:206,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:210,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:212,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:213,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:218,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:220,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:224,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:225,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:237,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:241,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:243,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:261,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:273,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:278,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:290,1
    - Dst: BN_RECP_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:291,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:292,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 109
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 294
    functionName: BN_mod_exp_recp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_mod_mul_reciprocal
    - bn_check_top
    - BN_one
    - BN_is_bit_set
    - BN_zero
    - BN_window_bits_for_exponent_size
    - BN_abs_is_word
    - BN_RECP_CTX_set
    - BN_CTX_end
    - BN_RECP_CTX_init
    - BN_CTX_get
    - BN_is_zero
    - BN_nnmod
    - BN_RECP_CTX_free
    - BN_CTX_start
    - BN_get_flags
    - BNerr
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n
      \                   const BIGNUM *m, BN_CTX *ctx)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:307,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:308,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:309,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:310,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:313,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:314,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:315,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:317,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:318,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:321,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:324,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:326,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:328,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:333,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:334,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:335,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:336,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:347,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:349,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:353,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:354,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:359,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:362,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:364,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:368,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:369,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:384,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:394,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:394,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:397,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:399,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:418,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:430,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:435,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:457,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:461,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:466,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:467,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:468,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 138
    argCount: 6
    argNames:
    - rr
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 470
    functionName: BN_mod_exp_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_set
    - bn_to_mont_fixed_top
    - bn_check_top
    - BN_MONT_CTX_free
    - BN_one
    - BN_is_bit_set
    - BN_mod_mul_montgomery
    - BN_zero
    - BN_mod_exp_mont_consttime
    - BN_window_bits_for_exponent_size
    - BN_abs_is_word
    - BN_ucmp
    - bn_mul_mont_fixed_top
    - BN_MONT_CTX_new
    - BN_from_montgomery
    - BN_CTX_end
    - BN_CTX_get
    - BN_is_odd
    - BN_nnmod
    - BN_CTX_start
    - BN_get_flags
    - BNerr
    - BN_value_one
    - BN_num_bits
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,\n
      \                   const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - a
    - bitpos
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 489
    functionName: bn_get_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_get_bits(const BIGNUM *a, int bitpos)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - b
    - top
    - buf
    - idx
    - window
    argTypes:
    - BIGNUM*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 514
    functionName: MOD_EXP_CTIME_COPY_TO_PREBUF
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int MOD_EXP_CTIME_COPY_TO_PREBUF(const BIGNUM *b, int top,\n                                        unsigned
      char *buf, int idx,\n                                        int window)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:532,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:541,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:553,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:554,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:555,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:556,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - b
    - top
    - buf
    - idx
    - window
    argTypes:
    - BIGNUM*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 576
    functionName: MOD_EXP_CTIME_COPY_FROM_PREBUF
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached:
    - constant_time_eq_int
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int MOD_EXP_CTIME_COPY_FROM_PREBUF(BIGNUM *b, int top,\n                                          unsigned
      char *buf, int idx,\n                                          int window)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 584
    functionName: MOD_EXP_CTIME_ALIGN
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD_EXP_CTIME_ALIGN(x_)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:609,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:610,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:611,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:613,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:614,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:627,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:629,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:631,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:636,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:645,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:647,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:651,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:652,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:654,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:666,1
    - Dst: rsaz_avx2_eligible
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:667,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:668,1
    - Dst: RSAZ_1024_mod_exp_avx2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:670,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:674,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:677,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:678,1
    - Dst: RSAZ_512_mod_exp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:680,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:683,1
    - Dst: BN_window_bits_for_ctime_exponent_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:690,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:719,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:723,1
    - Dst: MOD_EXP_CTIME_ALIGN
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:727,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:728,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:753,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:753,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:757,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:831,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:832,1
    - Dst: bn_mul_mont_vis3
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:835,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:836,1
    - Dst: bn_mul_mont_vis3
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:842,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:843,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:847,1
    - Dst: bn_flip_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:849,1
    - Dst: bn_get_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:860,1
    - Dst: bn_gather5_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:861,1
    - Dst: bn_get_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:871,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:882,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:883,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:884,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:885,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:886,1
    - Dst: bn_mul_mont_gather5_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:887,1
    - Dst: bn_flip_t4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:891,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:895,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:896,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:942,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:943,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:944,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:945,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:950,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:951,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:956,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:957,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:961,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:962,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:964,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:965,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:969,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:970,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:971,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:972,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:975,1
    - Dst: bn_scatter5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:976,1
    - Dst: bn_get_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:988,1
    - Dst: bn_gather5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:989,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:997,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:998,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:999,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1000,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1001,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1002,1
    - Dst: bn_get_bits5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1003,1
    - Dst: bn_power5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1007,1
    - Dst: bn_get_bits5
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1008,1
    - Dst: bn_from_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1012,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1014,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1016,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1023,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1025,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1035,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1037,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1042,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1044,1
    - Dst: bn_get_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1059,1
    - Dst: MOD_EXP_CTIME_COPY_FROM_PREBUF
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1060,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1073,1
    - Dst: bn_get_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1087,1
    - Dst: MOD_EXP_CTIME_COPY_FROM_PREBUF
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1091,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1096,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1111,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1115,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1120,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1123,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1125,1
    CyclomaticComplexity: 105
    EdgeCount: 105
    ICount: 278
    argCount: 6
    argNames:
    - rr
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 592
    functionDepth: 5
    functionLinenumber: 592
    functionLinenumberEnd: 1127
    functionName: BN_mod_exp_mont_consttime
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_MONT_CTX_set
    - bn_correct_top
    - RSAZ_512_mod_exp
    - bn_to_mont_fixed_top
    - bn_check_top
    - MOD_EXP_CTIME_COPY_FROM_PREBUF
    - bn_mul_mont_gather5_t4
    - bn_flip_n_scatter5_t4
    - BN_MONT_CTX_free
    - OPENSSL_cleanse
    - BN_one
    - OPENSSL_malloc
    - bn_gather5
    - bn_power5
    - BN_mod_mul_montgomery
    - BN_zero
    - OPENSSL_free
    - MOD_EXP_CTIME_ALIGN
    - bn_scatter5
    - rsaz_avx2_eligible
    - BN_abs_is_word
    - BN_ucmp
    - MOD_EXP_CTIME_COPY_TO_PREBUF
    - BN_window_bits_for_ctime_exponent_size
    - bn_mul_mont_fixed_top
    - BN_MONT_CTX_new
    - alloca
    - bn_mul_mont_gather5
    - BN_from_montgomery
    - BN_CTX_end
    - bn_from_montgomery
    - bn_flip_t4
    - BN_CTX_get
    - bn_mul_mont
    - RSAZ_1024_mod_exp_avx2
    - BN_is_odd
    - BN_nnmod
    - bn_get_bits5
    - BN_CTX_start
    - bn_mul_mont_vis3
    - bn_gather5_t4
    - memset
    - BNerr
    - BN_value_one
    - bn_mul_mont_t4
    - BN_num_bits
    - bn_wexpand
    - bn_get_bits
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM
      *p,\n                              const BIGNUM *m, BN_CTX *ctx,\n                              BN_MONT_CTX
      *in_mont)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1155,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1156,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1158,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1162,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1163,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1165,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1166,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1172,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1175,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1177,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1179,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1184,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1189,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1190,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1191,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1198,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1200,1
    - Dst: BN_TO_MONTGOMERY_WORD
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1215,1
    - Dst: BN_MOD_MUL_WORD
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1219,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1226,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1231,1
    - Dst: BN_TO_MONTGOMERY_WORD
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1235,1
    - Dst: BN_MOD_MUL_WORD
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1239,1
    - Dst: BN_TO_MONTGOMERY_WORD
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1251,1
    - Dst: BN_MOD_MUL_WORD
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1255,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1261,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1264,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1270,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1271,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1272,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 113
    argCount: 6
    argNames:
    - rr
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BN_ULONG
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1274
    functionName: BN_mod_exp_mont_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_set
    - bn_check_top
    - BN_MONT_CTX_free
    - BN_one
    - BN_is_bit_set
    - BN_mod_mul_montgomery
    - BN_zero
    - BN_abs_is_word
    - BN_MOD_MUL_WORD
    - BN_MONT_CTX_new
    - BN_from_montgomery
    - BN_CTX_end
    - BN_CTX_get
    - BN_is_odd
    - BN_CTX_start
    - BN_get_flags
    - BNerr
    - BN_num_bits
    - BN_TO_MONTGOMERY_WORD
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p,\n
      \                        const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - w
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1140
    functionName: BN_MOD_MUL_WORD
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_MOD_MUL_WORD(r, w, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - w
    - ','
    - mont
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1154
    functionName: BN_TO_MONTGOMERY_WORD
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_TO_MONTGOMERY_WORD(r, w, mont)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1286,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1287,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1288,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1290,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1294,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1297,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1299,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1301,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1306,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1307,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1308,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1312,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1314,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1315,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1320,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1322,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1326,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1327,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1339,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1343,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1345,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1363,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1375,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1380,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1392,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp.c:1393,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 94
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1277
    functionDepth: 3
    functionLinenumber: 1277
    functionLinenumberEnd: 1395
    functionName: BN_mod_exp_simple
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_one
    - BN_is_bit_set
    - BN_zero
    - BN_CTX_start
    - BN_CTX_end
    - bn_check_top
    - BN_get_flags
    - BN_window_bits_for_exponent_size
    - BNerr
    - BN_CTX_get
    - BN_is_zero
    - BN_num_bits
    - BN_abs_is_word
    - BN_mod_mul
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n
      \                     const BIGNUM *m, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: bn_pack4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pack4(a1,a2,a3,a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: bn_pack4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pack4(a1,a2,a3,a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: bn_pack4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pack4(a1,a2,a3,a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: bn_pack4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pack4(a1,a2,a3,a4)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-1.1.1g/crypto/bn/bn_depr.c:32,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_depr.c:35,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_depr.c:39,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_depr.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - ret
    - bits
    - safe
    - add
    - rem
    - cb_arg
    argTypes:
    - BIGNUM*
    - int
    - int
    - BIGNUM*
    - BIGNUM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 47
    functionName: BN_generate_prime
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_depr.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_GENCB_set_old
    - BN_free
    - BN_generate_prime_ex
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe,\n                          const
      BIGNUM *add, const BIGNUM *rem,\n                          void (*callback)
      (int, int, void *), void *cb_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-1.1.1g/crypto/bn/bn_depr.c:54,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_depr.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - checks
    - ctx_passed
    - cb_arg
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: BN_is_prime
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_depr.c
    functionUses: 0
    functionsReached:
    - BN_is_prime_ex
    - BN_GENCB_set_old
    linkageType: ''
    returnType: int
    signature: "int BN_is_prime(const BIGNUM *a, int checks,\n                void
      (*callback) (int, int, void *), BN_CTX *ctx_passed,\n                void *cb_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-1.1.1g/crypto/bn/bn_depr.c:64,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_depr.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - a
    - checks
    - ctx_passed
    - cb_arg
    - do_trial_division
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: BN_is_prime_fasttest
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set_old
    - BN_is_prime_fasttest_ex
    linkageType: ''
    returnType: int
    signature: "int BN_is_prime_fasttest(const BIGNUM *a, int checks,\n                         void
      (*callback) (int, int, void *),\n                         BN_CTX *ctx_passed,
      void *cb_arg,\n                         int do_trial_division)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:26,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:27,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:28,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:30,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 50
    functionName: BN_bn2hex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_print.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_malloc
    - BNerr
    - BN_is_zero
    linkageType: ''
    returnType: char
    signature: char *BN_bn2hex(const BIGNUM *a)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:68,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:72,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:73,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:75,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:78,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:83,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:87,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:90,1
    - Dst: BN_div_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:93,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:104,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:118,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:122,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 124
    functionName: BN_bn2dec
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_print.c
    functionUses: 10
    functionsReached:
    - BIO_snprintf
    - OPENSSL_malloc
    - BN_div_word
    - OPENSSL_free
    - BN_is_negative
    - BNerr
    - BN_free
    - BN_is_zero
    - BN_num_bits
    - BN_dup
    linkageType: ''
    returnType: char
    signature: char *BN_bn2dec(const BIGNUM *a)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isxdigit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:141,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:153,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:157,1
    - Dst: bn_expand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:161,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:172,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:185,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:188,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:195,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 2
    argNames:
    - bn
    - a
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 197
    functionName: BN_hex2bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_print.c
    functionUses: 0
    functionsReached:
    - ossl_isxdigit
    - bn_correct_top
    - BN_new
    - BN_zero
    - bn_expand
    - bn_check_top
    - BN_free
    - OPENSSL_hexchar2int
    linkageType: ''
    returnType: int
    signature: int BN_hex2bn(BIGNUM **bn, const char *a)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:213,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:228,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:232,1
    - Dst: bn_expand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:236,1
    - Dst: BN_mul_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:248,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:249,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:256,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:258,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:265,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 2
    argNames:
    - bn
    - a
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 267
    functionName: BN_dec2bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_print.c
    functionUses: 2
    functionsReached:
    - BN_add_word
    - BN_new
    - BN_zero
    - bn_correct_top
    - ossl_isdigit
    - bn_expand
    - BN_mul_word
    - bn_check_top
    - BN_free
    linkageType: ''
    returnType: int
    signature: int BN_dec2bn(BIGNUM **bn, const char *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:277,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - bn
    - a
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 269
    functionDepth: 6
    functionLinenumber: 269
    functionLinenumberEnd: 287
    functionName: BN_asc2bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_print.c
    functionUses: 0
    functionsReached:
    - BN_dec2bn
    - BN_hex2bn
    linkageType: ''
    returnType: int
    signature: int BN_asc2bn(BIGNUM **bn, const char *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:295,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:295,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:297,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:298,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: BN_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_print.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - BIO_free
    - BN_print
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int BN_print_fp(FILE *fp, const BIGNUM *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:309,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:311,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:311,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:318,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 327
    functionName: BN_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_print.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_print(BIO *bp, const BIGNUM *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:337,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_print.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 345
    functionName: BN_options
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_print.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    linkageType: ''
    returnType: char
    signature: char *BN_options(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:98,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:100,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:104,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:106,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:109,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:110,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 115
    functionName: ctxdbg
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ctxdbg(BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: CTXDBG_ENTRY
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTXDBG_ENTRY(str, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: CTXDBG_EXIT
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTXDBG_EXIT(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:138,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:139,1
    - Dst: BN_POOL_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:143,1
    - Dst: BN_STACK_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: BN_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 12
    functionsReached:
    - BN_STACK_init
    - BNerr
    - OPENSSL_zalloc
    - BN_POOL_init
    linkageType: ''
    returnType: BN_CTX
    signature: BN_CTX *BN_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: BN_CTX_secure_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new
    linkageType: ''
    returnType: BN_CTX
    signature: BN_CTX *BN_CTX_secure_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:164,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:166,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:170,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:173,1
    - Dst: BN_STACK_finish
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:176,1
    - Dst: BN_POOL_finish
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:177,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: BN_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 12
    functionsReached:
    - BN_STACK_finish
    - OPENSSL_free
    - BN_POOL_finish
    - fprintf
    linkageType: ''
    returnType: void
    signature: void BN_CTX_free(BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTXDBG_ENTRY
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:183,1
    - Dst: BN_STACK_push
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:188,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:189,1
    - Dst: CTXDBG_EXIT
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: BN_CTX_start
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 17
    functionsReached:
    - BN_STACK_push
    - CTXDBG_EXIT
    - BNerr
    - CTXDBG_ENTRY
    linkageType: ''
    returnType: void
    signature: void BN_CTX_start(BN_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CTXDBG_ENTRY
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:199,1
    - Dst: BN_STACK_pop
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:203,1
    - Dst: BN_POOL_release
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:206,1
    - Dst: CTXDBG_EXIT
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: BN_CTX_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 13
    functionsReached:
    - CTXDBG_EXIT
    - BN_STACK_pop
    - CTXDBG_ENTRY
    - BN_POOL_release
    linkageType: ''
    returnType: void
    signature: void BN_CTX_end(BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTXDBG_ENTRY
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:218,1
    - Dst: BN_POOL_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:221,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:227,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:231,1
    - Dst: CTXDBG_RET
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 237
    functionName: BN_CTX_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 18
    functionsReached:
    - BN_zero
    - CTXDBG_RET
    - BN_POOL_get
    - BNerr
    - CTXDBG_ENTRY
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_CTX_get(BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - BN_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: BN_STACK_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_STACK_init(BN_STACK *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - BN_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: BN_STACK_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BN_STACK_finish(BN_STACK *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:264,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:265,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:269,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - st
    - idx
    argTypes:
    - BN_STACK*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 276
    functionName: BN_STACK_push
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - BNerr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int BN_STACK_push(BN_STACK *st, unsigned int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - BN_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: BN_STACK_pop
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int BN_STACK_pop(BN_STACK *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - BN_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: BN_POOL_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_POOL_init(BN_POOL *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:301,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - BN_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: BN_POOL_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void BN_POOL_finish(BN_POOL *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:318,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:319,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:323,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:325,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - p
    - flag
    argTypes:
    - BN_POOL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 348
    functionName: BN_POOL_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - bn_init
    - OPENSSL_malloc
    - BN_set_flags
    - BNerr
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_POOL_get(BN_POOL *p, int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - num
    argTypes:
    - BN_POOL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: BN_POOL_release
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: void BN_POOL_release(BN_POOL *p, unsigned int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: SQR_nibble
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR_nibble(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: SQR1
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR1(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: SQR0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR0(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: SQR1
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR1(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: SQR0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR0(w)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 4
    argNames:
    - r1
    - r0
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 126
    functionName: bn_GF2m_mul_1x1
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bn_GF2m_mul_1x1(BN_ULONG *r1, BN_ULONG *r0, const BN_ULONG a,\n
      \                           const BN_ULONG b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 82
    argCount: 4
    argNames:
    - r1
    - r0
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 223
    functionName: bn_GF2m_mul_1x1
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bn_GF2m_mul_1x1(BN_ULONG *r1, BN_ULONG *r0, const BN_ULONG a,\n
      \                           const BN_ULONG b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_GF2m_mul_1x1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:236,1
    - Dst: bn_GF2m_mul_1x1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:237,1
    - Dst: bn_GF2m_mul_1x1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - r
    - a1
    - a0
    - b1
    - b0
    argTypes:
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: bn_GF2m_mul_2x2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_GF2m_mul_1x1
    linkageType: ''
    returnType: void
    signature: "void bn_GF2m_mul_2x2(BN_ULONG *r, const BN_ULONG a1, const BN_ULONG
      a0,\n                            const BN_ULONG b1, const BN_ULONG b0)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:257,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:258,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:268,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 282
    functionName: BN_GF2m_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - bn_correct_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:298,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:302,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:311,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:380,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - r
    - a
    - p
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 382
    functionName: BN_GF2m_mod_arr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - bn_correct_top
    - BN_zero
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:394,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:395,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:396,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:396,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:397,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:398,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:401,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - r
    - a
    - p
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 390
    functionDepth: 5
    functionLinenumber: 390
    functionLinenumberEnd: 404
    functionName: BN_GF2m_mod
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - BN_GF2m_poly2arr
    - bn_check_top
    - BN_GF2m_mod_arr
    - BNerr
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:417,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:418,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:421,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:424,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:425,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:429,1
    - Dst: bn_GF2m_mul_2x2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:442,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:448,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:449,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:451,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:454,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 456
    functionName: BN_GF2m_mod_mul_arr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - BN_CTX_start
    - BN_CTX_end
    - BN_GF2m_mod_sqr_arr
    - bn_check_top
    - BN_GF2m_mod_arr
    - BN_CTX_get
    - bn_wexpand
    - bn_GF2m_mul_2x2
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                       const int p[], BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:469,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:471,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:472,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:473,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:474,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:476,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:478,1
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:481,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:482,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 465
    functionDepth: 6
    functionLinenumber: 465
    functionLinenumberEnd: 486
    functionName: BN_GF2m_mod_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BN_GF2m_poly2arr
    - OPENSSL_free
    - bn_check_top
    - BNerr
    - BN_num_bits
    - BN_GF2m_mod_mul_arr
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                   const BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:495,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:496,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:497,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:499,1
    - Dst: SQR1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:503,1
    - Dst: SQR0
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:504,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:508,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:509,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:511,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:514,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 489
    functionDepth: 5
    functionLinenumber: 489
    functionLinenumberEnd: 516
    functionName: BN_GF2m_mod_sqr_arr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 1
    functionsReached:
    - SQR0
    - bn_correct_top
    - BN_CTX_start
    - SQR1
    - BN_CTX_end
    - bn_check_top
    - BN_GF2m_mod_arr
    - BN_CTX_get
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[],\n
      \                       BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:527,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:530,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:531,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:532,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:534,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:536,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:539,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:540,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 524
    functionDepth: 6
    functionLinenumber: 524
    functionLinenumberEnd: 544
    functionName: BN_GF2m_mod_sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BN_GF2m_poly2arr
    - OPENSSL_free
    - BN_GF2m_mod_sqr_arr
    - bn_check_top
    - BNerr
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:558,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:559,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:561,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:563,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:564,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:565,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:566,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:570,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:572,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:575,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:578,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:582,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:583,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:585,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:587,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:588,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:591,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:595,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:598,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:598,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:607,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:609,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:615,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:616,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:620,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:626,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:633,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:696,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:699,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:703,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:705,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:712,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:713,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:715,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 143
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 552
    functionDepth: 6
    functionLinenumber: 552
    functionLinenumberEnd: 717
    functionName: BN_GF2m_mod_inv_vartime
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_one
    - BN_copy
    - BN_abs_is_word
    - bn_correct_top
    - BN_CTX_start
    - BN_CTX_end
    - BN_GF2m_mod
    - bn_check_top
    - BN_rshift1
    - BN_CTX_get
    - BN_is_zero
    - BN_num_bits
    - BN_GF2m_add
    - BN_num_bits_word
    - BN_is_odd
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_inv_vartime(BIGNUM *r, const BIGNUM *a,\n                                   const
      BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:729,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:730,1
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:735,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:735,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:738,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:741,1
    - Dst: BN_GF2m_mod_inv_vartime
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:745,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:749,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:755,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 724
    functionDepth: 7
    functionLinenumber: 724
    functionLinenumberEnd: 757
    functionName: BN_GF2m_mod_inv
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_inv_vartime
    - BN_GF2m_mod_mul
    - BN_CTX_start
    - BN_CTX_end
    - BN_priv_rand
    - BN_CTX_get
    - BN_is_zero
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:771,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:772,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:773,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:775,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:778,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:779,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - r
    - xx
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 765
    functionDepth: 8
    functionLinenumber: 765
    functionLinenumberEnd: 784
    functionName: BN_GF2m_mod_inv_arr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_arr2poly
    - BN_CTX_start
    - BN_CTX_end
    - BN_GF2m_mod_inv
    - bn_check_top
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *xx, const int p[],\n
      \                       BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:796,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:797,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:798,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:800,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:801,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:805,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:807,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:809,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:813,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - r
    - y
    - x
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 790
    functionDepth: 8
    functionLinenumber: 790
    functionLinenumberEnd: 815
    functionName: BN_GF2m_mod_div
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_mul
    - BN_CTX_start
    - BN_CTX_end
    - BN_GF2m_mod_inv
    - bn_check_top
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *y, const BIGNUM *x,\n
      \                   const BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:829,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:830,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:832,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:833,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:835,1
    - Dst: BN_GF2m_mod_div
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:838,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:839,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - r
    - yy
    - xx
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 823
    functionDepth: 9
    functionLinenumber: 823
    functionLinenumberEnd: 844
    functionName: BN_GF2m_mod_div_arr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_arr2poly
    - BN_CTX_start
    - BN_CTX_end
    - bn_check_top
    - BN_CTX_get
    - BN_GF2m_mod_div
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *yy, const BIGNUM
      *xx,\n                        const int p[], BN_CTX *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:857,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:858,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:860,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:861,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:863,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:864,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:866,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:867,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:870,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:873,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:875,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:877,1
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:878,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:882,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:884,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:887,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 851
    functionDepth: 6
    functionLinenumber: 851
    functionLinenumberEnd: 889
    functionName: BN_GF2m_mod_exp_arr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_one
    - BN_is_bit_set
    - BN_copy
    - BN_CTX_start
    - BN_CTX_end
    - BN_GF2m_mod_sqr_arr
    - bn_check_top
    - BN_GF2m_mod_arr
    - BN_CTX_get
    - BN_is_zero
    - BN_num_bits
    - BN_abs_is_word
    - BN_GF2m_mod_mul_arr
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                       const int p[], BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:901,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:903,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:904,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:905,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:906,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:908,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:910,1
    - Dst: BN_GF2m_mod_exp_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:913,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:914,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 897
    functionDepth: 7
    functionLinenumber: 897
    functionLinenumberEnd: 918
    functionName: BN_GF2m_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BN_GF2m_poly2arr
    - OPENSSL_free
    - BN_GF2m_mod_exp_arr
    - bn_check_top
    - BNerr
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                   const BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:930,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:934,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:938,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:939,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:942,1
    - Dst: BN_GF2m_mod_exp_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:944,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:945,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:948,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 924
    functionDepth: 7
    functionLinenumber: 924
    functionLinenumberEnd: 950
    functionName: BN_GF2m_mod_sqrt_arr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_zero
    - BN_CTX_start
    - BN_CTX_end
    - BN_GF2m_mod_exp_arr
    - bn_check_top
    - BN_set_bit
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, const int p[],\n
      \                        BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:961,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:963,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:964,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:965,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:967,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:969,1
    - Dst: BN_GF2m_mod_sqrt_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:972,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:973,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:975,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 958
    functionDepth: 8
    functionLinenumber: 958
    functionLinenumberEnd: 977
    functionName: BN_GF2m_mod_sqrt
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BN_GF2m_poly2arr
    - OPENSSL_free
    - bn_check_top
    - BNerr
    - BN_num_bits
    - BN_GF2m_mod_sqrt_arr
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:989,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:993,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:997,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:998,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:999,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1000,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1004,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1007,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1008,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1015,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1018,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1020,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1022,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1028,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1029,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1030,1
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1034,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1036,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1038,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1039,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1042,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1044,1
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1046,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1048,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1050,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1054,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1055,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1056,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1061,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1063,1
    - Dst: BN_GF2m_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1065,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1066,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1070,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1072,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1077,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 100
    argCount: 4
    argNames:
    - r
    - a_
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 983
    functionDepth: 6
    functionLinenumber: 983
    functionLinenumberEnd: 1079
    functionName: BN_GF2m_mod_solve_quad_arr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - BN_zero
    - BN_CTX_start
    - BN_GF2m_cmp
    - BN_CTX_end
    - BN_GF2m_mod_sqr_arr
    - BN_priv_rand
    - bn_check_top
    - BN_GF2m_mod_arr
    - BNerr
    - BN_CTX_get
    - BN_is_zero
    - BN_GF2m_add
    - BN_GF2m_mod_mul_arr
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a_, const
      int p[],\n                               BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1091,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1093,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1094,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1095,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1097,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1099,1
    - Dst: BN_GF2m_mod_solve_quad_arr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1102,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1087
    functionDepth: 7
    functionLinenumber: 1087
    functionLinenumberEnd: 1107
    functionName: BN_GF2m_mod_solve_quad
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BN_GF2m_poly2arr
    - OPENSSL_free
    - bn_check_top
    - BNerr
    - BN_GF2m_mod_solve_quad_arr
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *p,\n                           BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1121,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - a
    - p
    - max
    argTypes:
    - BIGNUM*
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1145
    functionName: BN_GF2m_poly2arr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 6
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1155,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1156,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1158,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c:1161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - int[]
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1164
    functionName: BN_GF2m_arr2poly
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
    functionUses: 2
    functionsReached:
    - bn_check_top
    - BN_zero
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_arr2poly(const int p[], BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:15,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:16,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - recp
    argTypes:
    - BN_RECP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: BN_RECP_CTX_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - bn_init
    - memset
    linkageType: ''
    returnType: void
    signature: void BN_RECP_CTX_init(BN_RECP_CTX *recp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:24,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:25,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:29,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: BN_RECP_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_recp.c
    functionUses: 0
    functionsReached:
    - bn_init
    - BNerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BN_RECP_CTX
    signature: BN_RECP_CTX *BN_RECP_CTX_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:39,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:40,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - recp
    argTypes:
    - BN_RECP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: BN_RECP_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: void BN_RECP_CTX_free(BN_RECP_CTX *recp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:47,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:49,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - recp
    - d
    - ctx
    argTypes:
    - BN_RECP_CTX*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: BN_RECP_CTX_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_num_bits
    - BN_zero
    - BN_copy
    linkageType: ''
    returnType: int
    signature: int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *d, BN_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:62,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:63,1
    - Dst: BN_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:67,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:70,1
    - Dst: BN_div_recp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:77,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:79,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - r
    - x
    - y
    - recp
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_RECP_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 82
    functionName: BN_mod_mul_reciprocal
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_mul
    - BN_CTX_start
    - BN_div_recp
    - BN_CTX_end
    - bn_check_top
    - BN_CTX_get
    - BN_sqr
    linkageType: ''
    returnType: int
    signature: "int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM
      *y,\n                          BN_RECP_CTX *recp, BN_CTX *ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:90,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:91,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:92,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:93,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:94,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:98,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:99,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:100,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:101,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:104,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:114,1
    - Dst: BN_reciprocal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:121,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:132,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:134,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:136,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:140,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:142,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:147,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:149,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:152,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:154,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:158,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:162,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:163,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:164,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 5
    argNames:
    - dv
    - rem
    - m
    - recp
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_RECP_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 166
    functionName: BN_div_recp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_rshift
    - BN_add_word
    - BN_zero
    - BN_CTX_start
    - BN_CTX_end
    - BN_mul
    - bn_check_top
    - BN_reciprocal
    - BNerr
    - BN_CTX_get
    - BN_is_zero
    - BN_num_bits
    - BN_ucmp
    - BN_usub
    linkageType: ''
    returnType: int
    signature: "int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m,\n                BN_RECP_CTX
      *recp, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:179,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:180,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:183,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:186,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:191,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_recp.c:192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - r
    - m
    - len
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 194
    functionName: BN_reciprocal
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_CTX_start
    - BN_CTX_end
    - bn_check_top
    - BN_div
    - BN_set_bit
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:22,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:28,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:29,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:30,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:31,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    assertStmts:
    - condition: (num >= 0)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 45
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 45
    functionName: bn_mul_add_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - mul_add
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,\n
      \                         BN_ULONG w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:51,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:57,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:58,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:59,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:60,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    assertStmts:
    - condition: (num >= 0)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 73
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 73
    functionName: bn_mul_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached:
    - mul
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG
      w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:77,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:83,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:84,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:85,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:86,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: bn_sqr_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - sqr
    - assert
    linkageType: ''
    returnType: void
    signature: void bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:109,1
    - Dst: LBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:113,1
    - Dst: HBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:114,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:118,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:119,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:120,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:121,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    assertStmts:
    - condition: (num >= 0)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: bn_mul_add_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - HBITS
    - LBITS
    - mul_add
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,\n
      \                         BN_ULONG w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:141,1
    - Dst: LBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:145,1
    - Dst: HBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:146,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:150,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:151,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:152,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:153,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    assertStmts:
    - condition: (num >= 0)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 166
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 166
    functionName: bn_mul_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached:
    - HBITS
    - LBITS
    - mul
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG
      w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:170,1
    - Dst: sqr64
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:176,1
    - Dst: sqr64
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:177,1
    - Dst: sqr64
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:178,1
    - Dst: sqr64
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:179,1
    - Dst: sqr64
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: bn_sqr_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - sqr64
    - assert
    linkageType: ''
    returnType: void
    signature: void bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - l
    - d
    argTypes:
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: bn_div_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:215,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:216,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - h
    - l
    - d
    argTypes:
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    assertStmts:
    - condition: ((i == BN_BITS2) || (h <= (BN_ULONG)1 << i))
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 268
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 268
    functionName: bn_div_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached:
    - BN_num_bits_word
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 311
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 311
    functionName: bn_add_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG
      *b,\n                      int n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 368
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 368
    functionName: bn_add_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG
      *b,\n                      int n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:377,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 421
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 421
    functionName: bn_sub_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 8
    functionsReached:
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_sub_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG
      *b,\n                      int n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 446
    functionName: mul_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 489
    functionName: mul_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 499
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 507
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 510
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 523
    functionName: mul_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 533
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 557
    functionName: mul_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 569
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 576
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:588,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:591,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:592,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:595,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:596,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:597,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:600,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:601,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:602,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:603,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:606,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:607,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:608,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:609,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:610,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:613,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:614,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:615,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:616,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:617,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:618,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:621,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:622,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:623,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:624,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:625,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:626,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:627,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:630,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:631,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:632,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:633,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:634,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:635,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:636,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:637,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:640,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:641,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:642,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:643,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:644,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:645,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:646,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:649,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:650,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:651,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:652,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:653,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:654,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:657,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:658,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:659,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:660,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:661,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:664,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:665,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:666,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:667,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:670,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:671,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:672,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:675,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:676,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 98
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 682
    functionName: bn_mul_comba8
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:691,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:694,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:695,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:698,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:699,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:700,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:703,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:704,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:705,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:706,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:709,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:710,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:711,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:714,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:715,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 721
    functionName: bn_mul_comba4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:730,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:733,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:736,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:737,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:740,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:741,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:744,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:745,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:746,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:749,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:750,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:751,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:754,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:755,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:756,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:757,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:760,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:761,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:762,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:763,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:766,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:767,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:768,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:769,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:772,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:773,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:774,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:777,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:778,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:779,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:782,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:783,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:786,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:787,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:790,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 796
    functionName: bn_sqr_comba8
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - sqr_add_c
    - sqr_add_c2
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:805,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:808,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:811,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:812,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:815,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:816,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:819,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:820,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:823,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 829
    functionName: bn_sqr_comba4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - sqr_add_c
    - sqr_add_c2
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:860,1
    - Dst: alloca
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:862,1
    - Dst: HBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:869,1
    - Dst: LBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:870,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:872,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:875,1
    - Dst: HBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:886,1
    - Dst: LBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:887,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:889,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:892,1
    - Dst: HBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:902,1
    - Dst: LBITS
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:903,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:904,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:906,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:911,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:913,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:923,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0p
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 935
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached:
    - mul_add
    - mul
    - HBITS
    - alloca
    - bn_sub_words
    - bn_sqr_mont
    - LBITS
    linkageType: ''
    returnType: int
    signature: "int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0p, int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 946
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0, int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 959
    functionName: bn_sqr_comba4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_sqr_normal
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 965
    functionName: bn_sqr_comba8
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_sqr_normal
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:969,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:970,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:971,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 973
    functionName: bn_mul_comba4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_mul_words
    - bn_mul_add_words
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:977,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:978,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:979,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:980,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:981,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:982,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:983,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 985
    functionName: bn_mul_comba8
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_mul_words
    - bn_mul_add_words
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:997,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:1003,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:1008,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_asm.c:1017,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0p
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1029
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached:
    - alloca
    - bn_sub_words
    - bn_mul_add_words
    linkageType: ''
    returnType: int
    signature: "int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0p, int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1035
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0, int num)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:21,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - a
    - d
    argTypes:
    - BIGNUM*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 40
    functionName: BN_bn2mpi
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_bn2bin
    linkageType: ''
    returnType: int
    signature: int BN_bn2mpi(const BIGNUM *a, unsigned char *d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:49,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:55,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:60,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:75,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:77,1
    - Dst: BN_clear_bit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:82,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:82,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c:84,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - d
    - n
    - ain
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 86
    functionName: BN_mpi2bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c
    functionUses: 0
    functionsReached:
    - BN_clear_bit
    - BN_new
    - bn_check_top
    - BN_bin2bn
    - BNerr
    - BN_free
    - BN_num_bits
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_mpi2bn(const unsigned char *d, int n, BIGNUM *ain)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:29,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:30,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:31,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:32,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:33,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:36,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:39,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:40,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:42,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:48,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:49,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:50,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:51,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:52,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:59,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:61,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:65,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:66,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:71,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:72,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:77,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:78,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:83,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:86,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:91,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:92,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:100,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:101,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:106,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:107,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:111,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:114,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:119,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:120,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:134,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:134,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:138,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:143,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:148,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:154,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:160,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:165,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:171,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:178,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:186,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:192,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:197,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:198,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c:199,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 156
    argCount: 8
    argNames:
    - rr
    - a1
    - p1
    - a2
    - p2
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 201
    functionName: BN_mod_exp2_mont
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_set
    - bn_check_top
    - BN_MONT_CTX_free
    - BN_mod
    - BN_one
    - BN_is_bit_set
    - BN_mod_mul_montgomery
    - BN_zero
    - BN_to_montgomery
    - BN_window_bits_for_exponent_size
    - BN_ucmp
    - BN_MONT_CTX_new
    - BN_from_montgomery
    - BN_CTX_end
    - BN_CTX_get
    - BN_is_zero
    - BN_CTX_start
    - BNerr
    - BN_value_one
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp2_mont(BIGNUM *rr, const BIGNUM *a1, const BIGNUM *p1,\n
      \                    const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m,\n
      \                    BN_CTX *ctx, BN_MONT_CTX *in_mont)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:19,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:21,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - a
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: BN_sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    - bn_correct_top
    - bn_sqr_fixed_top
    linkageType: ''
    returnType: int
    signature: int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:33,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:42,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:43,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:44,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:49,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:55,1
    - Dst: bn_sqr_comba4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:57,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:62,1
    - Dst: bn_sqr_comba8
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:64,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:70,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:74,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:78,1
    - Dst: bn_sqr_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:80,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:82,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:84,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:88,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:90,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:97,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:102,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:103,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:104,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 3
    argNames:
    - r
    - a
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 106
    functionName: bn_sqr_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c
    functionUses: 1
    functionsReached:
    - bn_sqr_normal
    - BN_copy
    - bn_sqr_comba8
    - BN_CTX_start
    - BN_CTX_end
    - bn_check_top
    - BN_CTX_get
    - BN_num_bits_word
    - bn_sqr_comba4
    - bn_sqr_recursive
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int bn_sqr_fixed_top(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:124,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:131,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:135,1
    - Dst: bn_sqr_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:139,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - r
    - a
    - n
    - tmp
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 142
    functionName: bn_sqr_normal
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c
    functionUses: 3
    functionsReached:
    - bn_sqr_words
    - bn_mul_words
    - bn_add_words
    - bn_mul_add_words
    linkageType: ''
    returnType: void
    signature: void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG
      *tmp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:164,1
    - Dst: bn_sqr_comba4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:166,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:171,1
    - Dst: bn_sqr_comba8
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:173,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:178,1
    - Dst: bn_cmp_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:182,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:185,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:187,1
    - Dst: bn_sqr_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:195,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:197,1
    - Dst: bn_sqr_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:198,1
    - Dst: bn_sqr_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:199,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:207,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:210,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c:218,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 4
    argNames:
    - r
    - a
    - n2
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 238
    functionName: bn_sqr_recursive
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c
    functionUses: 2
    functionsReached:
    - bn_sqr_normal
    - bn_sqr_comba8
    - bn_cmp_words
    - bn_sub_words
    - memset
    - bn_sqr_comba4
    - bn_sqr_recursive
    - bn_add_words
    linkageType: ''
    returnType: void
    signature: void bn_sqr_recursive(BN_ULONG *r, const BN_ULONG *a, int n2, BN_ULONG
      *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: square
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: square(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB*::cb::cb_1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:42,1
    - Dst: BN_GENCB*::cb::cb_2
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cb
    - a
    - b
    argTypes:
    - BN_GENCB*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: BN_GENCB_call
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached:
    - BN_GENCB*::cb::cb_2
    - BN_GENCB*::cb::cb_1
    linkageType: ''
    returnType: int
    signature: int BN_GENCB_call(BN_GENCB *cb, int a, int b)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BN_prime_checks_for_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:62,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:66,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:74,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:78,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:82,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:85,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:86,1
    - Dst: probable_prime
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:92,1
    - Dst: probable_prime_dh
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:95,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:99,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:104,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:114,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:118,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:124,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:130,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:138,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:139,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:140,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:141,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 76
    argCount: 6
    argNames:
    - ret
    - bits
    - safe
    - add
    - rem
    - cb
    argTypes:
    - BIGNUM*
    - int
    - int
    - BIGNUM*
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 143
    functionName: BN_generate_prime_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_is_prime_fasttest_ex
    - probable_prime
    - probable_prime_dh
    - OPENSSL_free
    - BN_CTX_start
    - BN_CTX_end
    - BN_rshift1
    - bn_check_top
    - BN_prime_checks_for_size
    - BN_CTX_free
    - OPENSSL_zalloc
    - BNerr
    - BN_CTX_get
    - BN_CTX_new
    - BN_GENCB_call
    linkageType: ''
    returnType: int
    signature: "int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe,\n                         const
      BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - checks
    - ctx_passed
    - cb
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: BN_is_prime_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_is_prime_fasttest_ex
    linkageType: ''
    returnType: int
    signature: "int BN_is_prime_ex(const BIGNUM *a, int checks, BN_CTX *ctx_passed,\n
      \                  BN_GENCB *cb)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:161,1
    - Dst: BN_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:161,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:165,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:165,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:165,1
    - Dst: BN_prime_checks_for_size
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:169,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:169,1
    - Dst: BN_mod_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:174,1
    - Dst: BN_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:178,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:180,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:186,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:188,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:190,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:191,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:192,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:193,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:198,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:198,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:201,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:201,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:206,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:208,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:212,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:215,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:220,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:220,1
    - Dst: witness
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:223,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:230,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:236,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:238,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:240,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 78
    argCount: 5
    argNames:
    - a
    - checks
    - ctx_passed
    - do_trial_division
    - cb
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 151
    functionDepth: 7
    functionLinenumber: 151
    functionLinenumberEnd: 243
    functionName: BN_is_prime_fasttest_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_prime.c
    functionUses: 3
    functionsReached:
    - BN_copy
    - BN_MONT_CTX_set
    - BN_cmp
    - BN_is_word
    - BN_add_word
    - BN_sub_word
    - BN_MONT_CTX_free
    - witness
    - BN_is_bit_set
    - BN_rshift
    - BN_MONT_CTX_new
    - BN_CTX_end
    - BN_mod_word
    - BN_CTX_free
    - BN_CTX_get
    - BN_is_odd
    - BN_CTX_start
    - BN_prime_checks_for_size
    - BN_value_one
    - BN_priv_rand_range
    - BN_num_bits
    - BN_CTX_new
    - BN_GENCB_call
    linkageType: ''
    returnType: int
    signature: "int BN_is_prime_fasttest_ex(const BIGNUM *a, int checks, BN_CTX *ctx_passed,\n
      \                           int do_trial_division, BN_GENCB *cb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:249,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:251,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:253,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:256,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:258,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:261,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 7
    argNames:
    - w
    - a
    - a1
    - a1_odd
    - k
    - ctx
    - mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 245
    functionDepth: 5
    functionLinenumber: 245
    functionLinenumberEnd: 270
    functionName: witness
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_is_one
    - BN_cmp
    - bn_check_top
    - BN_mod_exp_mont
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: "int witness(BIGNUM *w, const BIGNUM *a, const BIGNUM *a1,\n                   const
      BIGNUM *a1_odd, int k, BN_CTX *ctx,\n                   BN_MONT_CTX *mont)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:280,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:282,1
    - Dst: BN_mod_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:286,1
    - Dst: square
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:302,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:302,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:312,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:314,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:316,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 4
    argNames:
    - rnd
    - bits
    - safe
    - mods
    argTypes:
    - BIGNUM*
    - int
    - int
    - prime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 318
    functionName: probable_prime
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_add_word
    - BN_mod_word
    - BN_priv_rand
    - bn_check_top
    - BN_get_word
    - BN_set_bit
    - BN_num_bits
    - square
    linkageType: ''
    returnType: int
    signature: int probable_prime(BIGNUM *rnd, int bits, int safe, prime_t *mods)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:329,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:330,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:333,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:334,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:337,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:342,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:344,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:347,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:350,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:354,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:355,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:356,1
    - Dst: BN_mod_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:362,1
    - Dst: square
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:372,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:372,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:377,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:383,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:388,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_prime.c:389,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 62
    argCount: 7
    argNames:
    - rnd
    - bits
    - safe
    - mods
    - add
    - rem
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - int
    - prime_t*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 391
    functionName: probable_prime_dh
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_add
    - square
    - BN_add_word
    - BN_CTX_start
    - BN_num_bits
    - BN_mod_word
    - BN_CTX_end
    - bn_check_top
    - BN_rand
    - BN_get_word
    - BN_CTX_get
    - BN_sub
    - BN_mod
    linkageType: ''
    returnType: int
    signature: "int probable_prime_dh(BIGNUM *rnd, int bits, int safe, prime_t *mods,\n
      \                            const BIGNUM *add, const BIGNUM *rem,\n                             BN_CTX
      *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:25,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:27,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:27,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:31,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:33,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:38,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:41,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - pi
    - Xpi
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 8
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: bn_x931_derive_pi
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - BN_is_prime_fasttest_ex
    - BN_add_word
    - BN_GENCB_call
    - BN_is_odd
    linkageType: ''
    returnType: int
    signature: "int bn_x931_derive_pi(BIGNUM *pi, const BIGNUM *Xpi, BN_CTX *ctx,\n
      \                            BN_GENCB *cb)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:61,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:64,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:66,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:69,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:71,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:73,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:75,1
    - Dst: bn_x931_derive_pi
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:80,1
    - Dst: bn_x931_derive_pi
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:83,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:86,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:91,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:94,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:97,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:100,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:103,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:106,1
    - Dst: BN_mod_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:111,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:114,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:121,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:122,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:124,1
    - Dst: BN_gcd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:126,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:128,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:134,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:140,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:144,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:150,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 75
    argCount: 9
    argNames:
    - p
    - p1
    - p2
    - Xp
    - Xp1
    - Xp2
    - e
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 51
    functionDepth: 9
    functionLinenumber: 51
    functionLinenumberEnd: 153
    functionName: BN_X931_derive_prime_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_add
    - BN_is_one
    - BN_copy
    - BN_is_prime_fasttest_ex
    - BN_mod_sub
    - BN_GENCB_call
    - BN_mul
    - BN_CTX_start
    - BN_CTX_end
    - bn_x931_derive_pi
    - BN_gcd
    - BN_mod_inverse
    - BN_CTX_get
    - BN_sub
    - BN_sub_word
    - BN_is_odd
    linkageType: ''
    returnType: int
    signature: "int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,\n                            const
      BIGNUM *Xp, const BIGNUM *Xp1,\n                            const BIGNUM *Xp2,
      const BIGNUM *e, BN_CTX *ctx,\n                            BN_GENCB *cb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:176,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:179,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:180,1
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:185,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:189,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:191,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:195,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:203,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 4
    argNames:
    - Xp
    - Xq
    - nbits
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 205
    functionName: BN_X931_generate_Xpq
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_CTX_start
    - BN_num_bits
    - BN_CTX_end
    - BN_priv_rand
    - BN_CTX_get
    - BN_sub
    linkageType: ''
    returnType: int
    signature: int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX
      *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:222,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:224,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:226,1
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:230,1
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:232,1
    - Dst: BN_X931_derive_prime_ex
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:234,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c:240,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 9
    argNames:
    - p
    - p1
    - p2
    - Xp1
    - Xp2
    - Xp
    - e
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 215
    functionDepth: 10
    functionLinenumber: 215
    functionLinenumberEnd: 244
    functionName: BN_X931_generate_prime_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_CTX_end
    - BN_CTX_start
    - BN_priv_rand
    - BN_X931_derive_prime_ex
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,\n
      \                             BIGNUM *Xp1, BIGNUM *Xp2,\n                              const
      BIGNUM *Xp,\n                              const BIGNUM *e, BN_CTX *ctx, BN_GENCB
      *cb)"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:26,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:26,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:27,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:29,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:32,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:32,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:34,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:37,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:41,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:45,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:45,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:47,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:50,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:50,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:52,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:55,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:59,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:60,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:61,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:62,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:63,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:64,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:65,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:70,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:75,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:80,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:93,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:96,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:98,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:134,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:138,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:141,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:145,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:149,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:151,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:155,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:157,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:160,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:170,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:180,1
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:183,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:183,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:185,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:190,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:191,1
    - Dst: BN_kronecker
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:195,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:200,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:212,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:217,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:224,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:226,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:227,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:251,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:255,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:256,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:258,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:260,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:263,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:266,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:268,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:270,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:277,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:279,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:283,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:297,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:298,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:306,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:308,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:311,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:314,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:319,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:322,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:325,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:327,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:329,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:341,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:344,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:345,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:353,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:356,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c:357,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 251
    argCount: 4
    argNames:
    - in
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 13
    functionDepth: 6
    functionLinenumber: 13
    functionLinenumberEnd: 359
    functionName: BN_mod_sqrt
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - BN_add_word
    - BN_cmp
    - bn_check_top
    - BN_sub_word
    - BN_clear_free
    - BN_one
    - BN_is_bit_set
    - BN_zero
    - BN_kronecker
    - BN_free
    - BN_mod_exp
    - BN_abs_is_word
    - BN_mod_mul
    - BN_ucmp
    - BN_is_one
    - BN_rshift
    - BN_new
    - BN_CTX_end
    - BN_rshift1
    - BN_CTX_get
    - BN_set_word
    - BN_is_zero
    - BN_is_odd
    - BN_nnmod
    - BN_CTX_start
    - BN_mod_sqr
    - BN_priv_rand
    - BNerr
    - BN_num_bits
    - BN_mod_lshift1_quick
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:33,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:34,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 107
    argCount: 5
    argNames:
    - r
    - a
    - b
    - cl
    - dl
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    assertStmts:
    - condition: (cl >= 0)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    constantsTouched: []
    func_position:
      end: 154
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 154
    functionName: bn_sub_part_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    functionUses: 0
    functionsReached:
    - bn_sub_words
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_sub_part_words(BN_ULONG *r,\n                           const
      BN_ULONG *a, const BN_ULONG *b,\n                           int cl, int dl)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_comba4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:186,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:195,1
    - Dst: bn_mul_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:201,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:203,1
    - Dst: bn_cmp_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:208,1
    - Dst: bn_cmp_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:209,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:213,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:214,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:220,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:221,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:230,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:231,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:238,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:239,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:247,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:249,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:251,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:252,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:257,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:259,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:261,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:262,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:268,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:270,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:271,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:272,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:281,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:284,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:287,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:296,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 91
    argCount: 7
    argNames:
    - r
    - a
    - b
    - n2
    - dna
    - dnb
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    - int
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 316
    functionName: bn_mul_recursive
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_normal
    - bn_sub_words
    - bn_mul_comba8
    - memset
    - bn_sub_part_words
    - bn_mul_comba4
    - bn_mul_recursive
    - bn_add_words
    - bn_cmp_part_words
    linkageType: ''
    returnType: void
    signature: "void bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,\n
      \                     int dna, int dnb, BN_ULONG *t)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:330,1
    - Dst: bn_cmp_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:335,1
    - Dst: bn_cmp_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:336,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:340,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:341,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:345,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:346,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:353,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:354,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:359,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:360,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:369,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:370,1
    - Dst: bn_mul_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:371,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:372,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:376,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:377,1
    - Dst: bn_mul_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:378,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:379,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:382,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:383,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:393,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:395,1
    - Dst: bn_mul_part_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:397,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:399,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:403,1
    - Dst: bn_mul_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:406,1
    - Dst: bn_mul_part_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:415,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:420,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:436,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:439,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:442,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:451,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 99
    argCount: 7
    argNames:
    - r
    - a
    - b
    - n
    - tna
    - tnb
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    - int
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 471
    functionName: bn_mul_part_recursive
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_normal
    - bn_sub_words
    - bn_mul_comba8
    - bn_sub_part_words
    - memset
    - bn_mul_comba4
    - bn_mul_recursive
    - bn_mul_part_recursive
    - bn_add_words
    - bn_cmp_part_words
    linkageType: ''
    returnType: void
    signature: "void bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b,
      int n,\n                           int tna, int tnb, BN_ULONG *t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:482,1
    - Dst: bn_mul_low_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:484,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:485,1
    - Dst: bn_mul_low_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:486,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:487,1
    - Dst: bn_mul_low_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:489,1
    - Dst: bn_mul_low_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:490,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:491,1
    - Dst: bn_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - r
    - a
    - b
    - n2
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 494
    functionName: bn_mul_low_recursive
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_low_normal
    - bn_mul_recursive
    - bn_mul_low_recursive
    - bn_add_words
    linkageType: ''
    returnType: void
    signature: "void bn_mul_low_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int
      n2,\n                          BN_ULONG *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:499,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:501,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - r
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 505
    functionName: BN_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    functionUses: 9
    functionsReached:
    - bn_check_top
    - bn_correct_top
    - bn_mul_fixed_top
    linkageType: ''
    returnType: int
    signature: int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:520,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:521,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:522,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:528,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:533,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:535,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:547,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:550,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:555,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:558,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:571,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:574,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:577,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:579,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:583,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:585,1
    - Dst: bn_mul_part_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:587,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:591,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:593,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:595,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:602,1
    - Dst: bn_mul_normal
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:605,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:612,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:617,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:618,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 95
    argCount: 4
    argNames:
    - r
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts:
    - condition: (j <= al || j <= bl)
      pos:
        line_end: 576
        line_start: 576
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    constantsTouched: []
    func_position:
      end: 620
      start: 507
    functionDepth: 4
    functionLinenumber: 507
    functionLinenumberEnd: 620
    functionName: bn_mul_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_normal
    - BN_copy
    - BN_zero
    - BN_CTX_start
    - BN_CTX_end
    - bn_mul_comba8
    - bn_check_top
    - BN_CTX_get
    - BN_num_bits_word
    - bn_mul_comba4
    - bn_mul_part_recursive
    - assert
    - bn_mul_recursive
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int bn_mul_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX
      *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:640,1
    - Dst: bn_mul_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:643,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:648,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:651,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:654,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:657,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - r
    - a
    - na
    - b
    - nb
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 662
    functionName: bn_mul_normal
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    functionUses: 3
    functionsReached:
    - bn_mul_words
    - bn_mul_add_words
    linkageType: ''
    returnType: void
    signature: void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int
      nb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:666,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:671,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:674,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:677,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mul.c:680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 684
    functionName: bn_mul_low_normal
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_words
    - bn_mul_add_words
    linkageType: ''
    returnType: void
    signature: void bn_mul_low_normal(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_const.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: BN_get_rfc2409_prime_768
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_const.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: BN_get_rfc2409_prime_1024
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_const.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 110
    functionName: BN_get_rfc3526_prime_1536
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_const.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 157
    functionName: BN_get_rfc3526_prime_2048
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_const.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 220
    functionName: BN_get_rfc3526_prime_3072
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_const.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 299
    functionName: BN_get_rfc3526_prime_4096
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_const.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 410
    functionName: BN_get_rfc3526_prime_6144
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/bn/bn_const.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 420
    functionDepth: 4
    functionLinenumber: 420
    functionLinenumberEnd: 553
    functionName: BN_get_rfc3526_prime_8192
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:29,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:31,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - r
    - a
    - b
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: BN_mod_mul_montgomery
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 7
    functionsReached:
    - bn_check_top
    - bn_correct_top
    - bn_mul_mont_fixed_top
    linkageType: ''
    returnType: int
    signature: "int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *b,\n                          BN_MONT_CTX *mont, BN_CTX *ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:46,1
    - Dst: bn_mul_mont
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:48,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:60,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:61,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:65,1
    - Dst: bn_sqr_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:67,1
    - Dst: bn_mul_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:70,1
    - Dst: bn_from_montgomery_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:75,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:78,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:83,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 5
    argNames:
    - r
    - a
    - b
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 85
    functionName: bn_mul_mont_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 4
    functionsReached:
    - bn_mul_fixed_top
    - BN_from_montgomery
    - BN_CTX_start
    - bn_sqr_fixed_top
    - BN_CTX_end
    - bn_check_top
    - bn_from_montgomery_word
    - BN_CTX_get
    - bn_mul_mont
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int bn_mul_mont_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *b,\n                          BN_MONT_CTX *mont, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:103,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:126,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:133,1
    - Dst: bn_sub_words
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 3
    argNames:
    - ret
    - r
    - mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 159
    functionName: bn_from_montgomery_word
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 1
    functionsReached:
    - bn_wexpand
    - bn_sub_words
    - bn_mul_add_words
    linkageType: ''
    returnType: int
    signature: int bn_from_montgomery_word(BIGNUM *ret, BIGNUM *r, BN_MONT_CTX *mont)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:167,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:168,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ret
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: BN_from_montgomery
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - bn_check_top
    - bn_correct_top
    - bn_from_mont_fixed_top
    linkageType: ''
    returnType: int
    signature: "int BN_from_montgomery(BIGNUM *ret, const BIGNUM *a, BN_MONT_CTX *mont,\n
      \                      BN_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:181,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:182,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:182,1
    - Dst: bn_from_montgomery_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:183,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:185,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:189,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:190,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:191,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:195,1
    - Dst: BN_mask_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:197,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:199,1
    - Dst: BN_mask_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:201,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:203,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:205,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:207,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:210,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:211,1
    - Dst: bn_check_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:215,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:217,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 4
    argNames:
    - ret
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 220
    functionName: bn_from_mont_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 1
    functionsReached:
    - BN_add
    - BN_copy
    - BN_rshift
    - BN_CTX_end
    - BN_CTX_start
    - BN_mul
    - bn_from_montgomery_word
    - bn_check_top
    - BN_CTX_get
    - BN_mask_bits
    - BN_ucmp
    - BN_usub
    linkageType: ''
    returnType: int
    signature: "int bn_from_mont_fixed_top(BIGNUM *ret, const BIGNUM *a, BN_MONT_CTX
      *mont,\n                           BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: bn_to_mont_fixed_top
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 3
    functionsReached:
    - bn_mul_mont_fixed_top
    linkageType: ''
    returnType: int
    signature: "int bn_to_mont_fixed_top(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont,\n
      \                        BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:232,1
    - Dst: BNerr
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:233,1
    - Dst: BN_MONT_CTX_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: BN_MONT_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - OPENSSL_malloc
    - BNerr
    - BN_MONT_CTX_init
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: BN_MONT_CTX *BN_MONT_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:245,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:246,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: BN_MONT_CTX_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 1
    functionsReached:
    - bn_init
    linkageType: ''
    returnType: void
    signature: void BN_MONT_CTX_init(BN_MONT_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:256,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:257,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:258,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mont
    argTypes:
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: BN_MONT_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void BN_MONT_CTX_free(BN_MONT_CTX *mont)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:268,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:271,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:272,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:275,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:277,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:278,1
    - Dst: bn_init
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:286,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:291,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:292,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:294,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:304,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:305,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:314,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:315,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:316,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:318,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:320,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:321,1
    - Dst: bn_expand
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:325,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:333,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:341,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:342,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:349,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:350,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:351,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:353,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:355,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:356,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:360,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:363,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:374,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:375,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:376,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:379,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:381,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:383,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:388,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:394,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:395,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:397,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:407,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 120
    argCount: 3
    argNames:
    - mont
    - mod
    - ctx
    argTypes:
    - BN_MONT_CTX*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 263
    functionDepth: 6
    functionLinenumber: 263
    functionLinenumberEnd: 409
    functionName: BN_MONT_CTX_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - BN_copy
    - BN_set_bit
    - BN_lshift
    - BN_sub_word
    - BN_mod
    - BN_set_flags
    - BN_zero
    - BN_div
    - BN_is_one
    - BN_CTX_end
    - bn_expand
    - BN_CTX_get
    - BN_is_zero
    - BN_set_word
    - bn_init
    - BN_CTX_start
    - BN_get_flags
    - BN_mod_inverse
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:416,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:418,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - BN_MONT_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 426
    functionName: BN_MONT_CTX_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:433,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:435,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:447,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:450,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:451,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:456,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:458,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/bn/bn_mont.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - pmont
    - lock
    - mod
    - ctx
    argTypes:
    - BN_MONT_CTX**
    - CRYPTO_RWLOCK*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 428
    functionDepth: 7
    functionLinenumber: 428
    functionLinenumberEnd: 464
    functionName: BN_MONT_CTX_set_locked
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_unlock
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: "BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK
      *lock,\n                                    const BIGNUM *mod, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - word
    - ','
    - carry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: mul_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,word,carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - word
    - ','
    - carry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,word,carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr(r0,r1,a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:120,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:121,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:122,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:123,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:129,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:132,1
    - Dst: mul_add
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 140
    functionName: bn_mul_add_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 7
    functionsReached:
    - mul_add
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,\n
      \                         BN_ULONG w)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:150,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:151,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:152,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:153,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:159,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:162,1
    - Dst: mul
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 168
    functionName: bn_mul_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 7
    functionsReached:
    - mul
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG
      w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:176,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:177,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:178,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:179,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:185,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:188,1
    - Dst: sqr
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 193
    functionName: bn_sqr_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 1
    functionsReached:
    - sqr
    linkageType: ''
    returnType: void
    signature: void bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - h
    - l
    - d
    argTypes:
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: bn_div_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rp
    - ap
    - bp
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 230
    functionName: bn_add_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG
      *bp,\n                      int n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rp
    - ap
    - bp
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 257
    functionName: bn_sub_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_sub_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG
      *bp,\n                      int n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 307
    functionName: bn_sub_words
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: mul_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 361
    functionName: mul_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 373
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 389
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:401,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:404,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:405,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:408,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:409,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:410,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:413,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:414,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:415,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:416,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:419,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:420,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:421,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:422,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:423,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:426,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:427,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:428,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:429,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:430,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:431,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:434,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:435,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:436,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:437,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:438,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:439,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:440,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:443,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:444,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:445,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:446,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:447,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:448,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:449,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:450,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:453,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:454,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:455,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:456,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:457,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:458,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:459,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:462,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:463,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:464,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:465,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:466,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:467,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:470,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:471,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:472,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:473,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:474,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:477,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:478,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:479,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:480,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:483,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:484,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:485,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:488,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:489,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 98
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 495
    functionName: bn_mul_comba8
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 3
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:504,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:507,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:508,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:511,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:512,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:513,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:516,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:517,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:518,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:519,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:522,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:523,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:524,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:527,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:528,1
    - Dst: mul_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 534
    functionName: bn_mul_comba4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 3
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:543,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:546,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:549,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:550,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:553,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:554,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:557,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:558,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:559,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:562,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:563,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:564,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:567,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:568,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:569,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:570,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:573,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:574,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:575,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:576,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:579,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:580,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:581,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:582,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:585,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:586,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:587,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:590,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:591,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:592,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:595,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:596,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:599,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:600,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:603,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 609
    functionName: bn_sqr_comba8
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached:
    - sqr_add_c
    - sqr_add_c2
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:618,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:621,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:624,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:625,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:628,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:629,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:632,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:633,1
    - Dst: sqr_add_c2
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:636,1
    - Dst: sqr_add_c
      Src: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 642
    functionName: bn_sqr_comba4
    functionSourceFile: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached:
    - sqr_add_c
    - sqr_add_c2
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:50,1
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:58,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:79,1
    - Dst: evp_encode_ctx_set_flags
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:80,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:84,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:88,1
    - Dst: EVP_DecodeFinal
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:93,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:116,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:121,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - a
    - alen
    - src
    argTypes:
    - unsigned char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 124
    functionName: t_fromb64
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_DecodeUpdate
    - memmove
    - evp_encode_ctx_set_flags
    - EVP_DecodeInit
    - EVP_ENCODE_CTX_free
    - EVP_ENCODE_CTX_new
    - EVP_DecodeFinal
    - strlen
    linkageType: ''
    returnType: int
    signature: int t_fromb64(unsigned char *a, size_t alen, const char *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:132,1
    - Dst: EVP_EncodeInit
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:140,1
    - Dst: evp_encode_ctx_set_flags
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:141,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:151,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:153,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:157,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:159,1
    - Dst: EVP_EncodeFinal
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:163,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:168,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 174
    functionName: t_tob64
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_EncodeInit
    - EVP_EncodeUpdate
    - memmove
    - evp_encode_ctx_set_flags
    - EVP_EncodeFinal
    - EVP_ENCODE_CTX_free
    - EVP_ENCODE_CTX_new
    linkageType: ''
    returnType: int
    signature: int t_tob64(char *dst, const unsigned char *src, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:180,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:181,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:182,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - user_pwd
    argTypes:
    - SRP_user_pwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: SRP_user_pwd_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void SRP_user_pwd_free(SRP_user_pwd *user_pwd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: SRP_user_pwd_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *SRP_user_pwd_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - vinfo
    - g
    - N
    argTypes:
    - SRP_user_pwd*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: SRP_user_pwd_set_gN
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SRP_user_pwd_set_gN(SRP_user_pwd *vinfo, const BIGNUM *g,\n                                const
      BIGNUM *N)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:214,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - vinfo
    - id
    - info
    argTypes:
    - SRP_user_pwd*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: SRP_user_pwd_set_ids
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int SRP_user_pwd_set_ids(SRP_user_pwd *vinfo, const char *id,\n                                const
      char *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: t_fromb64
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:228,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:231,1
    - Dst: t_fromb64
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:233,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:236,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - vinfo
    - s
    - v
    argTypes:
    - SRP_user_pwd*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 244
    functionName: SRP_user_pwd_set_sv
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_bin2bn
    - t_fromb64
    linkageType: ''
    returnType: int
    signature: "int SRP_user_pwd_set_sv(SRP_user_pwd *vinfo, const char *s,\n                               const
      char *v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - vinfo
    - s
    - v
    argTypes:
    - SRP_user_pwd*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: SRP_user_pwd_set_sv_BN
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SRP_user_pwd_set_sv_BN(SRP_user_pwd *vinfo, BIGNUM *s, BIGNUM *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SRP_user_pwd_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:259,1
    - Dst: SRP_user_pwd_set_gN
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:262,1
    - Dst: SRP_user_pwd_set_ids
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:263,1
    - Dst: SRP_user_pwd_set_sv_BN
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:264,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:264,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:264,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - src
    argTypes:
    - SRP_user_pwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: srp_user_pwd_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - SRP_user_pwd_new
    - SRP_user_pwd_free
    - SRP_user_pwd_set_ids
    - SRP_user_pwd_set_gN
    - SRP_user_pwd_set_sv_BN
    - BN_dup
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *srp_user_pwd_dup(SRP_user_pwd *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:273,1
    - Dst: sk_SRP_user_pwd_new_null
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:277,1
    - Dst: sk_SRP_gN_cache_new_null
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:278,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:279,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:285,1
    - Dst: sk_SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:286,1
    - Dst: sk_SRP_gN_cache_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:287,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - seed_key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 292
    functionName: SRP_VBASE_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - sk_SRP_user_pwd_free
    - sk_SRP_gN_cache_free
    - OPENSSL_free
    - OPENSSL_strdup
    - sk_SRP_user_pwd_new_null
    - sk_SRP_gN_cache_new_null
    linkageType: ''
    returnType: SRP_VBASE
    signature: SRP_VBASE *SRP_VBASE_new(char *seed_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_user_pwd_pop_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:298,1
    - Dst: sk_SRP_gN_cache_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:299,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:300,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vb
    argTypes:
    - SRP_VBASE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: SRP_VBASE_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_gN_cache_free
    - sk_SRP_user_pwd_pop_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SRP_VBASE_free(SRP_VBASE *vb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:308,1
    - Dst: t_fromb64
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:313,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:317,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:320,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:323,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 327
    functionName: SRP_gN_new_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - t_fromb64
    - OPENSSL_strdup
    - BN_bin2bn
    linkageType: ''
    returnType: SRP_gN_cache
    signature: SRP_gN_cache *SRP_gN_new_init(const char *ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:333,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:334,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - gN_cache
    argTypes:
    - SRP_gN_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: SRP_gN_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: void SRP_gN_free(SRP_gN_cache *gN_cache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_gN_num
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:344,1
    - Dst: sk_SRP_gN_value
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:345,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:346,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - id
    - gN_tab
    argTypes:
    - char*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 351
    functionName: SRP_get_gN_by_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_gN_num
    - strcmp
    - SRP_get_default_gN
    - sk_SRP_gN_value
    linkageType: ''
    returnType: SRP_gN
    signature: SRP_gN *SRP_get_gN_by_id(const char *id, STACK_OF(SRP_gN) *gN_tab)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_gN_cache_num
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:360,1
    - Dst: sk_SRP_gN_cache_value
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:361,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:362,1
    - Dst: SRP_gN_new_init
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:366,1
    - Dst: sk_SRP_gN_cache_insert
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:368,1
    - Dst: SRP_gN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - gN_cache
    - ch
    argTypes:
    - STACK_OF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 374
    functionName: SRP_gN_place_bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_gN_cache_value
    - sk_SRP_gN_cache_num
    - strcmp
    - SRP_gN_free
    - sk_SRP_gN_cache_insert
    - SRP_gN_new_init
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SRP_gN_place_bn(STACK_OF(SRP_gN_cache) *gN_cache, char *ch)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:385,1
    - Dst: sk_SRP_gN_new_null
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:385,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:394,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:394,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:398,1
    - Dst: TXT_DB_read
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:403,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:409,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:411,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:412,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:418,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:421,1
    - Dst: SRP_gN_place_bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:422,1
    - Dst: SRP_gN_place_bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:424,1
    - Dst: sk_SRP_gN_insert
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:426,1
    - Dst: SRP_get_gN_by_id
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:438,1
    - Dst: SRP_user_pwd_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:440,1
    - Dst: SRP_user_pwd_set_gN
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:443,1
    - Dst: SRP_user_pwd_set_ids
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:444,1
    - Dst: SRP_user_pwd_set_sv
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:449,1
    - Dst: sk_SRP_user_pwd_insert
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:453,1
    - Dst: SRP_get_gN_by_id
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:463,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:480,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:481,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:484,1
    - Dst: TXT_DB_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:486,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:487,1
    - Dst: sk_SRP_gN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:489,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 71
    argCount: 2
    argNames:
    - vb
    - verifier_file
    argTypes:
    - SRP_VBASE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 382
    functionDepth: 6
    functionLinenumber: 382
    functionLinenumberEnd: 493
    functionName: SRP_VBASE_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_gN_free
    - sk_SRP_user_pwd_insert
    - STACK_OF
    - sk_SRP_gN_insert
    - SRP_gN_place_bn
    - OPENSSL_malloc
    - sk_OPENSSL_PSTRING_value
    - OPENSSL_free
    - SRP_user_pwd_new
    - TXT_DB_read
    - SRP_user_pwd_free
    - SRP_user_pwd_set_ids
    - SRP_get_gN_by_id
    - OPENSSL_strdup
    - SRP_user_pwd_set_gN
    - SRP_get_default_gN
    - BIO_new
    - BIO_free_all
    - BIO_s_file
    - BIO_read_filename
    - sk_OPENSSL_PSTRING_num
    - sk_SRP_gN_new_null
    - TXT_DB_free
    - SRP_user_pwd_set_sv
    linkageType: ''
    returnType: int
    signature: int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_user_pwd_num
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:503,1
    - Dst: sk_SRP_user_pwd_value
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:504,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - vb
    - username
    argTypes:
    - SRP_VBASE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 510
    functionName: find_user
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - strcmp
    - sk_SRP_user_pwd_num
    - sk_SRP_user_pwd_value
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *find_user(SRP_VBASE *vb, char *username)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_user
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vb
    - username
    argTypes:
    - SRP_VBASE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: SRP_VBASE_get_by_user
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - find_user
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find_user
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:539,1
    - Dst: srp_user_pwd_dup
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:540,1
    - Dst: SRP_user_pwd_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:548,1
    - Dst: SRP_user_pwd_set_gN
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:551,1
    - Dst: SRP_user_pwd_set_ids
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:553,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:556,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:558,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:560,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:560,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:561,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:561,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:562,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:562,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:563,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:565,1
    - Dst: SRP_user_pwd_set_sv_BN
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:567,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:568,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:569,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:573,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:574,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 2
    argNames:
    - vb
    - username
    argTypes:
    - SRP_VBASE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 529
    functionDepth: 5
    functionLinenumber: 529
    functionLinenumberEnd: 576
    functionName: SRP_VBASE_get1_by_user
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - SRP_user_pwd_new
    - RAND_priv_bytes
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - SRP_user_pwd_free
    - SRP_user_pwd_set_ids
    - EVP_sha1
    - find_user
    - EVP_DigestUpdate
    - SRP_user_pwd_set_gN
    - EVP_DigestInit_ex
    - BN_bin2bn
    - EVP_MD_CTX_free
    - SRP_user_pwd_set_sv_BN
    - srp_user_pwd_dup
    - strlen
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: t_fromb64
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:598,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:600,1
    - Dst: t_fromb64
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:604,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:606,1
    - Dst: SRP_get_gN_by_id
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:612,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:621,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:624,1
    - Dst: t_fromb64
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:626,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:628,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:633,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:636,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:638,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:639,1
    - Dst: t_tob64
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:641,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:641,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:647,1
    - Dst: t_tob64
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:650,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:651,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:662,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:663,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:664,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:665,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:666,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 80
    argCount: 6
    argNames:
    - user
    - pass
    - salt
    - verifier
    - N
    - g
    argTypes:
    - char*
    - char*
    - char**
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 581
    functionDepth: 4
    functionLinenumber: 581
    functionLinenumberEnd: 668
    functionName: SRP_create_verifier
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - RAND_bytes
    - BN_num_bytes
    - OPENSSL_free
    - t_fromb64
    - SRP_get_gN_by_id
    - BN_bn2bin
    - BN_bin2bn
    - BN_free
    - SRP_create_verifier_BN
    - OPENSSL_clear_free
    - t_tob64
    - BN_clear_free
    linkageType: ''
    returnType: char
    signature: "char *SRP_create_verifier(const char *user, const char *pass, char
      **salt,\n                          char **verifier, const char *N, const char
      *g)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:685,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:696,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:699,1
    - Dst: SRP_Calc_x
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:706,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:710,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:714,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:715,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:724,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:725,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c:726,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 6
    argNames:
    - user
    - pass
    - salt
    - verifier
    - N
    - g
    argTypes:
    - char*
    - char*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 679
    functionDepth: 4
    functionLinenumber: 679
    functionLinenumberEnd: 728
    functionName: SRP_create_verifier_BN
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
    functionUses: 1
    functionsReached:
    - SRP_Calc_x
    - RAND_bytes
    - BN_new
    - BN_bin2bn
    - BN_CTX_free
    - BN_mod_exp
    - BN_CTX_new
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: "int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM
      **salt,\n                           BIGNUM **verifier, const BIGNUM *N,\n                           const
      BIGNUM *g)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:27,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:30,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:32,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:34,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:36,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:37,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:38,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:38,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:40,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:42,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - x
    - y
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 44
    functionName: srp_Calc_xy
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_sha1
    - BN_num_bytes
    - OPENSSL_free
    - BN_bin2bn
    - EVP_Digest
    - BN_bn2binpad
    - BN_ucmp
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *srp_Calc_xy(const BIGNUM *x, const BIGNUM *y, const BIGNUM
      *N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srp_Calc_xy
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - N
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 6
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: srp_Calc_k
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - srp_Calc_xy
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *srp_Calc_k(const BIGNUM *N, const BIGNUM *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srp_Calc_xy
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - A
    - B
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: SRP_Calc_u
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - srp_Calc_xy
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:67,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:67,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:72,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:74,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:77,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:78,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:79,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:83,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:84,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 5
    argNames:
    - A
    - v
    - u
    - b
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: SRP_Calc_server_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_CTX_free
    - BN_free
    - BN_mod_exp
    - BN_CTX_new
    - BN_mod_mul
    - BN_clear_free
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const
      BIGNUM *u,\n                            const BIGNUM *b, const BIGNUM *N)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:96,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:99,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:100,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:100,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:105,1
    - Dst: srp_Calc_k
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:106,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:107,1
    - Dst: BN_mod_add
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:108,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:109,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:113,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:114,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:115,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:116,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 4
    argNames:
    - b
    - N
    - g
    - v
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 118
    functionName: SRP_Calc_B
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_CTX_free
    - BN_mod_add
    - BN_mod_exp
    - BN_free
    - BN_CTX_new
    - BN_mod_mul
    - srp_Calc_k
    - BN_clear_free
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM
      *g,\n                   const BIGNUM *v)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:130,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:133,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:133,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:136,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:136,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:137,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:137,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:138,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:139,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:139,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:140,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:141,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:141,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:143,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:145,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:145,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:148,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:149,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:152,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:155,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:156,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 27
    argCount: 3
    argNames:
    - s
    - user
    - pass
    argTypes:
    - BIGNUM*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 158
    functionName: SRP_Calc_x
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - EVP_sha1
    - BN_num_bytes
    - OPENSSL_free
    - BN_bn2bin
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - BN_bin2bn
    - EVP_MD_CTX_free
    - strlen
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:165,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:168,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:168,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:169,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - a
    - N
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: SRP_Calc_A
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_CTX_free
    - BN_free
    - BN_mod_exp
    - BN_CTX_new
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:183,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:186,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:187,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:188,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:191,1
    - Dst: srp_Calc_k
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:193,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:195,1
    - Dst: BN_mod_sub
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:197,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:199,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:201,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:203,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:204,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:205,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:210,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:211,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:212,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:213,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:214,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 37
    argCount: 6
    argNames:
    - N
    - B
    - g
    - x
    - a
    - u
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 176
    functionDepth: 7
    functionLinenumber: 176
    functionLinenumberEnd: 216
    functionName: SRP_Calc_client_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_add
    - BN_mod_sub
    - BN_new
    - BN_mul
    - BN_CTX_free
    - BN_free
    - BN_mod_exp
    - BN_CTX_new
    - BN_mod_mul
    - srp_Calc_k
    - BN_clear_free
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const
      BIGNUM *g,\n                            const BIGNUM *x, const BIGNUM *a, const
      BIGNUM *u)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:224,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:227,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:230,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:232,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:234,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - B
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 237
    functionName: SRP_Verify_B_mod_N
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_CTX_free
    - BN_free
    - BN_is_zero
    - BN_CTX_new
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - A
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: SRP_Verify_A_mod_N
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - SRP_Verify_B_mod_N
    linkageType: ''
    returnType: int
    signature: int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:268,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - g
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: SRP_check_known_gN_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: char
    signature: char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/srp/srp_lib.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 285
    functionName: SRP_get_default_gN
    functionSourceFile: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: SRP_gN
    signature: SRP_gN *SRP_get_default_gN(const char *id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:24,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - X509_CRL*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: X509_CRL_set_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int X509_CRL_set_version(X509_CRL *x, long version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509_CRL*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: X509_CRL_set_issuer_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x509_set1_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509_CRL*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: X509_CRL_set1_lastUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - x509_set1_time
    linkageType: ''
    returnType: int
    signature: int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x509_set1_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509_CRL*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: X509_CRL_set1_nextUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - x509_set1_time
    linkageType: ''
    returnType: int
    signature: int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_sort
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:58,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:59,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: X509_CRL_sort
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - sk_X509_REVOKED_value
    - sk_X509_REVOKED_sort
    - sk_X509_REVOKED_num
    linkageType: ''
    returnType: int
    signature: int X509_CRL_sort(X509_CRL *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:71,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:74,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: X509_CRL_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 1
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int X509_CRL_up_ref(X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: X509_CRL_get_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long X509_CRL_get_version(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: X509_CRL_get0_lastUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: X509_CRL_get0_nextUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: X509_CRL_get_lastUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: X509_CRL_get_nextUpdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: X509_CRL_get_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: X509_CRL_get0_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *X509_CRL_get0_extensions(const X509_CRL *crl)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - crl
    - psig
    - palg
    argTypes:
    - X509_CRL*
    - ASN1_BIT_STRING**
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: X509_CRL_get0_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING
      **psig,\n                             const X509_ALGOR **palg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: X509_CRL_get_signature_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get_signature_nid(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: X509_REVOKED_get0_revocationDate
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:148,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509_REVOKED*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: X509_REVOKED_set_revocationDate
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_dup
    - ASN1_TIME_free
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_set_revocationDate(X509_REVOKED *x, ASN1_TIME *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: X509_REVOKED_get0_serialNumber
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - serial
    argTypes:
    - X509_REVOKED*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: X509_REVOKED_set_serialNumber
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_copy
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: X509_REVOKED_get0_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *X509_REVOKED_get0_extensions(const X509_REVOKED *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_CRL_INFO
      Src: /src/openssl-1.1.1g/crypto/x509/x509cset.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - crl
    - pp
    argTypes:
    - X509_CRL*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: i2d_re_X509_CRL_tbs
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - i2d_X509_CRL_INFO
    linkageType: ''
    returnType: int
    signature: int i2d_re_X509_CRL_tbs(X509_CRL *crl, unsigned char **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:23,1
    - Dst: X509_NAME_get_text_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - name
    - nid
    - buf
    - len
    argTypes:
    - X509_NAME*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: X509_NAME_get_text_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - X509_NAME_get_text_by_OBJ
    linkageType: ''
    returnType: int
    signature: int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf,
      int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:35,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:38,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:38,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - name
    - obj
    - buf
    - len
    argTypes:
    - X509_NAME*
    - ASN1_OBJECT*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 47
    functionName: X509_NAME_get_text_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - X509_NAME_get_index_by_OBJ
    - X509_NAME_ENTRY_get_data
    - X509_NAME_get_entry
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj,\n
      \                             char *buf, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: X509_NAME_entry_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_ENTRY_num
    linkageType: ''
    returnType: int
    signature: int X509_NAME_entry_count(const X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:60,1
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - nid
    - lastpos
    argTypes:
    - X509_NAME*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: X509_NAME_get_index_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_get_index_by_OBJ
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:71,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:78,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:80,1
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - name
    - obj
    - lastpos
    argTypes:
    - X509_NAME*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: X509_NAME_get_index_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 2
    functionsReached:
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_num
    - STACK_OF
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: int X509_NAME_get_index_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj,
      int lastpos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:89,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - name
    - loc
    argTypes:
    - X509_NAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: X509_NAME_get_entry
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_num
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:100,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:102,1
    - Dst: sk_X509_NAME_ENTRY_delete
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:107,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:108,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:115,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:118,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - name
    - loc
    argTypes:
    - X509_NAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 134
    functionName: X509_NAME_delete_entry
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_num
    - STACK_OF
    - sk_X509_NAME_ENTRY_delete
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_create_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:143,1
    - Dst: X509_NAME_add_entry
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:146,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - name
    - obj
    - type
    - bytes
    - len
    - loc
    - set
    argTypes:
    - X509_NAME*
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: X509_NAME_add_entry_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_ENTRY_create_by_OBJ
    - X509_NAME_add_entry
    - X509_NAME_ENTRY_free
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT
      *obj, int type,\n                               const unsigned char *bytes,
      int len, int loc,\n                               int set)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_create_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:157,1
    - Dst: X509_NAME_add_entry
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:160,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - name
    - nid
    - type
    - bytes
    - len
    - loc
    - set
    argTypes:
    - X509_NAME*
    - int
    - int
    - unsigned char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: X509_NAME_add_entry_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_add_entry
    - X509_NAME_ENTRY_create_by_NID
    - X509_NAME_ENTRY_free
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type,\n
      \                              const unsigned char *bytes, int len, int loc,\n
      \                              int set)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_create_by_txt
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:171,1
    - Dst: X509_NAME_add_entry
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:174,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - name
    - field
    - type
    - bytes
    - len
    - loc
    - set
    argTypes:
    - X509_NAME*
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: X509_NAME_add_entry_by_txt
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_add_entry
    - X509_NAME_ENTRY_create_by_txt
    - X509_NAME_ENTRY_free
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field,
      int type,\n                               const unsigned char *bytes, int len,
      int loc,\n                               int set)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:188,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:193,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:206,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:212,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:216,1
    - Dst: X509_NAME_ENTRY_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:223,1
    - Dst: sk_X509_NAME_ENTRY_insert
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:226,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:227,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:231,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:233,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:237,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - name
    - ne
    - loc
    - set
    argTypes:
    - X509_NAME*
    - X509_NAME_ENTRY*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 239
    functionName: X509_NAME_add_entry
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 3
    functionsReached:
    - X509_NAME_ENTRY_free
    - sk_X509_NAME_ENTRY_num
    - X509_NAME_ENTRY_dup
    - STACK_OF
    - sk_X509_NAME_ENTRY_insert
    - X509err
    - sk_X509_NAME_ENTRY_value
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne,
      int loc,\n                        int set)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:249,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:251,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:253,1
    - Dst: X509_NAME_ENTRY_create_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:256,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ne
    - field
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY**
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 259
    functionName: X509_NAME_ENTRY_create_by_txt
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - ERR_add_error_data
    - X509_NAME_ENTRY_create_by_OBJ
    - OBJ_txt2obj
    - X509err
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: "X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne,\n
      \                                              const char *field, int type,\n
      \                                              const unsigned char *bytes,\n
      \                                              int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:269,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:271,1
    - Dst: X509_NAME_ENTRY_create_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:274,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ne
    - nid
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY**
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 277
    functionName: X509_NAME_ENTRY_create_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - X509_NAME_ENTRY_create_by_OBJ
    - X509err
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: "X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne,
      int nid,\n                                               int type,\n                                               const
      unsigned char *bytes,\n                                               int len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:287,1
    - Dst: X509_NAME_ENTRY_set_object
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:292,1
    - Dst: X509_NAME_ENTRY_set_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:294,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:302,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 5
    argNames:
    - ne
    - obj
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY**
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 304
    functionName: X509_NAME_ENTRY_create_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 3
    functionsReached:
    - X509_NAME_ENTRY_new
    - X509_NAME_ENTRY_set_object
    - X509_NAME_ENTRY_set_data
    - X509_NAME_ENTRY_free
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: "X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne,\n
      \                                              const ASN1_OBJECT *obj, int type,\n
      \                                              const unsigned char *bytes,\n
      \                                              int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:309,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:313,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ne
    - obj
    argTypes:
    - X509_NAME_ENTRY*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 316
    functionName: X509_NAME_ENTRY_set_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - X509err
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT
      *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:326,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:328,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:330,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:331,1
    - Dst: ASN1_PRINTABLE_type
      Src: /src/openssl-1.1.1g/crypto/x509/x509name.c:336,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - ne
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 341
    functionName: X509_NAME_ENTRY_set_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_set
    - ASN1_PRINTABLE_type
    - ASN1_STRING_set_by_NID
    - OBJ_obj2nid
    - strlen
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,\n                             const
      unsigned char *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: X509_NAME_ENTRY_get_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: X509_NAME_ENTRY_get_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: X509_NAME_ENTRY_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:27,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:28,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:35,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:36,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:38,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:44,1
    - Dst: X509_set_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:45,1
    - Dst: X509_set_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:47,1
    - Dst: X509_gmtime_adj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:50,1
    - Dst: X509_gmtime_adj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:52,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:56,1
    - Dst: X509_set_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:57,1
    - Dst: X509_sign
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:60,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:60,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c:65,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 3
    argNames:
    - r
    - days
    - pkey
    argTypes:
    - X509_REQ*
    - int
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 67
    functionName: X509_REQ_to_X509
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c
    functionUses: 0
    functionsReached:
    - X509_new
    - ASN1_INTEGER_new
    - X509_free
    - X509_set_subject_name
    - X509_REQ_get0_pubkey
    - X509_sign
    - X509_set_issuer_name
    - X509_gmtime_adj
    - sk_X509_ATTRIBUTE_num
    - X509err
    - EVP_md5
    - X509_set_pubkey
    - ASN1_INTEGER_set
    - X509_REQ_get_subject_name
    linkageType: ''
    returnType: X509
    signature: X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509type.c:25,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509type.c:32,1
    - Dst: X509_get_signature_nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509type.c:63,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-1.1.1g/crypto/x509/x509type.c:64,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 84
    functionName: X509_certificate_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509type.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_id
    - OBJ_find_sigid_algs
    - X509_get0_pubkey
    - X509_get_signature_nid
    linkageType: ''
    returnType: int
    signature: int X509_certificate_type(const X509 *x, const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:24,1
    - Dst: ASN1_item_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:26,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: X509_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify
    - X509_ALGOR_cmp
    linkageType: ''
    returnType: int
    signature: int X509_verify(X509 *a, EVP_PKEY *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:32,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: X509_REQ_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify
    linkageType: ''
    returnType: int
    signature: int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:38,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - NETSCAPE_SPKI*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: NETSCAPE_SPKI_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify
    linkageType: ''
    returnType: int
    signature: int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:45,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: X509_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign
    linkageType: ''
    returnType: int
    signature: int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign_ctx
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:53,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - ctx
    argTypes:
    - X509*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: X509_sign_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ctx
    linkageType: ''
    returnType: int
    signature: int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_nbio_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:61,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rctx
    - pcert
    argTypes:
    - OCSP_REQ_CTX*
    - X509**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: X509_http_nbio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OCSP_REQ_CTX_nbio_d2i
    linkageType: ''
    returnType: int
    signature: int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:68,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: X509_REQ_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign
    linkageType: ''
    returnType: int
    signature: int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign_ctx
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:74,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - ctx
    argTypes:
    - X509_REQ*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: X509_REQ_sign_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ctx
    linkageType: ''
    returnType: int
    signature: int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:82,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: X509_CRL_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign
    linkageType: ''
    returnType: int
    signature: int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign_ctx
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:89,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - ctx
    argTypes:
    - X509_CRL*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: X509_CRL_sign_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ctx
    linkageType: ''
    returnType: int
    signature: int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_nbio_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:97,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rctx
    - pcrl
    argTypes:
    - OCSP_REQ_CTX*
    - X509_CRL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: X509_CRL_http_nbio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OCSP_REQ_CTX_nbio_d2i
    linkageType: ''
    returnType: int
    signature: int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:105,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - NETSCAPE_SPKI*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: NETSCAPE_SPKI_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign
    linkageType: ''
    returnType: int
    signature: int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:112,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - x509
    argTypes:
    - FILE*
    - X509**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: d2i_X509_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: X509
    signature: X509 *d2i_X509_fp(FILE *fp, X509 **x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:117,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - x509
    argTypes:
    - FILE*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: i2d_X509_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_X509_fp(FILE *fp, X509 *x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:123,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x509
    argTypes:
    - BIO*
    - X509**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: d2i_X509_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: X509
    signature: X509 *d2i_X509_bio(BIO *bp, X509 **x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:128,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x509
    argTypes:
    - BIO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: i2d_X509_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_X509_bio(BIO *bp, X509 *x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:134,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - crl
    argTypes:
    - FILE*
    - X509_CRL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: d2i_X509_CRL_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:139,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - crl
    argTypes:
    - FILE*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: i2d_X509_CRL_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:145,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - crl
    argTypes:
    - BIO*
    - X509_CRL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: d2i_X509_CRL_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:150,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - crl
    argTypes:
    - BIO*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: i2d_X509_CRL_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:156,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p7
    argTypes:
    - FILE*
    - PKCS7**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: d2i_PKCS7_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:161,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p7
    argTypes:
    - FILE*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: i2d_PKCS7_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:167,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p7
    argTypes:
    - BIO*
    - PKCS7**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: d2i_PKCS7_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:172,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p7
    argTypes:
    - BIO*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: i2d_PKCS7_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:178,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - req
    argTypes:
    - FILE*
    - X509_REQ**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: d2i_X509_REQ_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: X509_REQ
    signature: X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:183,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - req
    argTypes:
    - FILE*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: i2d_X509_REQ_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:189,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - req
    argTypes:
    - BIO*
    - X509_REQ**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: d2i_X509_REQ_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: X509_REQ
    signature: X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:194,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - req
    argTypes:
    - BIO*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: i2d_X509_REQ_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:202,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: d2i_RSAPrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:207,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: i2d_RSAPrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:212,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: d2i_RSAPublicKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: d2i_RSA_PUBKEY_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:224,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: i2d_RSAPublicKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: i2d_RSA_PUBKEY_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp
    linkageType: ''
    returnType: int
    signature: int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:235,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: d2i_RSAPrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:240,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: i2d_RSAPrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:245,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: d2i_RSAPublicKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: d2i_RSA_PUBKEY_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:255,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: i2d_RSAPublicKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: i2d_RSA_PUBKEY_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: d2i_DSAPrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: i2d_DSAPrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: d2i_DSA_PUBKEY_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: i2d_DSA_PUBKEY_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: d2i_DSAPrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: i2d_DSAPrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: d2i_DSA_PUBKEY_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: i2d_DSA_PUBKEY_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: d2i_EC_PUBKEY_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: i2d_EC_PUBKEY_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: d2i_ECPrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: i2d_ECPrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - eckey
    argTypes:
    - BIO*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: d2i_EC_PUBKEY_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - ecdsa
    argTypes:
    - BIO*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: i2d_EC_PUBKEY_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *ecdsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - eckey
    argTypes:
    - BIO*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: d2i_ECPrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - eckey
    argTypes:
    - BIO*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: i2d_ECPrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:356,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 352
    functionDepth: 5
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: X509_pubkey_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - X509_get0_pubkey_bitstr
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: "int X509_pubkey_digest(const X509 *data, const EVP_MD *type,\n                       unsigned
      char *md, unsigned int *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:365,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:370,1
    - Dst: ASN1_item_digest
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:373,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 375
    functionName: X509_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - EVP_sha1
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int X509_digest(const X509 *data, const EVP_MD *type, unsigned char
      *md,\n                unsigned int *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:380,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:385,1
    - Dst: ASN1_item_digest
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:388,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509_CRL*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 390
    functionName: X509_CRL_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type,\n                    unsigned
      char *md, unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_digest
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:395,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509_REQ*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: X509_REQ_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type,\n                    unsigned
      char *md, unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_digest
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:402,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509_NAME*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 404
    functionName: X509_NAME_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type,\n
      \                    unsigned char *md, unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_digest
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:410,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - PKCS7_ISSUER_AND_SERIAL*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 412
    functionName: PKCS7_ISSUER_AND_SERIAL_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    linkageType: ''
    returnType: int
    signature: "int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,\n
      \                                  const EVP_MD *type, unsigned char *md,\n
      \                                  unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8
    argTypes:
    - FILE*
    - X509_SIG**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: d2i_PKCS8_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: X509_SIG
    signature: X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8
    argTypes:
    - FILE*
    - X509_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: i2d_PKCS8_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8
    argTypes:
    - BIO*
    - X509_SIG**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: d2i_PKCS8_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: X509_SIG
    signature: X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8
    argTypes:
    - BIO*
    - X509_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: i2d_PKCS8_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8inf
    argTypes:
    - FILE*
    - PKCS8_PRIV_KEY_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: d2i_PKCS8_PRIV_KEY_INFO_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,\n                                                PKCS8_PRIV_KEY_INFO
      **p8inf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8inf
    argTypes:
    - FILE*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: i2d_PKCS8_PRIV_KEY_INFO_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:454,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_fp
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:457,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fp
    - key
    argTypes:
    - FILE*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 460
    functionName: i2d_PKCS8PrivateKeyInfo_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY2PKCS8
    - i2d_PKCS8_PRIV_KEY_INFO_fp
    - PKCS8_PRIV_KEY_INFO_free
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - pkey
    argTypes:
    - FILE*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: i2d_PrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: d2i_PrivateKey_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - pkey
    argTypes:
    - FILE*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 475
    functionName: i2d_PUBKEY_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 480
    functionName: d2i_PUBKEY_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8inf
    argTypes:
    - BIO*
    - PKCS8_PRIV_KEY_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: d2i_PKCS8_PRIV_KEY_INFO_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,\n                                                 PKCS8_PRIV_KEY_INFO
      **p8inf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8inf
    argTypes:
    - BIO*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: i2d_PKCS8_PRIV_KEY_INFO_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:501,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:504,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bp
    - key
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 507
    functionName: i2d_PKCS8PrivateKeyInfo_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY2PKCS8
    - i2d_PKCS8_PRIV_KEY_INFO_bio
    - PKCS8_PRIV_KEY_INFO_free
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - pkey
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: i2d_PrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: d2i_PrivateKey_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - pkey
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: i2d_PUBKEY_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/x509/x_all.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: d2i_PUBKEY_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_TRUST**
    - X509_TRUST**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: tr_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tr_cmp(const X509_TRUST *const *a, const X509_TRUST *const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: "(*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int,
      X509 *,\n                                                                int)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int,
      X509 *,\n                                                                int)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: obj_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:72,1
    - Dst: X509_TRUST_get_by_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:74,1
    - Dst: default_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:76,1
    - Dst: X509_TRUST_get0
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:77,1
    - Dst: X509_TRUST*::check_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - x
    - id
    - flags
    argTypes:
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: X509_check_trust
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - X509_TRUST_get_by_id
    - obj_trust
    - X509_TRUST*::check_trust
    - X509_TRUST_get0
    - default_trust
    linkageType: ''
    returnType: int
    signature: int X509_check_trust(X509 *x, int id, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: X509_TRUST_get_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - sk_X509_TRUST_num
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_get_count(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: X509_TRUST_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 1
    functionsReached:
    - sk_X509_TRUST_value
    linkageType: ''
    returnType: X509_TRUST
    signature: X509_TRUST *X509_TRUST_get0(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_find
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: X509_TRUST_get_by_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 1
    functionsReached:
    - sk_X509_TRUST_find
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_get_by_id(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_TRUST_get_by_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:115,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - t
    - trust
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: X509_TRUST_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - X509err
    - X509_TRUST_get_by_id
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_set(int *t, int trust)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_TRUST_get_by_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:135,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:138,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:139,1
    - Dst: X509_TRUST_get0
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:148,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:150,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:151,1
    - Dst: sk_X509_TRUST_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:167,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:168,1
    - Dst: sk_X509_TRUST_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:171,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:179,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:180,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - id
    - flags
    - name
    - arg1
    - arg2
    argTypes:
    - int
    - int
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 183
    functionName: X509_TRUST_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - sk_X509_TRUST_new
    - OPENSSL_malloc
    - X509_TRUST_get_by_id
    - sk_X509_TRUST_push
    - OPENSSL_free
    - X509_TRUST_get0
    - X509err
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509
      *, int),\n                   const char *name, int arg1, void *arg2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:191,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - X509_TRUST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: trtable_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void trtable_free(X509_TRUST *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: X509_TRUST_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - sk_X509_TRUST_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_TRUST_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_TRUST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: X509_TRUST_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_get_flags(const X509_TRUST *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_TRUST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: X509_TRUST_get0_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_TRUST_get0_name(const X509_TRUST *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_TRUST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: X509_TRUST_get_trust
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_get_trust(const X509_TRUST *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: obj_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - trust
    - x
    - flags
    argTypes:
    - X509_TRUST*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 227
    functionName: trust_1oidany
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - obj_trust
    linkageType: ''
    returnType: int
    signature: int trust_1oidany(X509_TRUST *trust, X509 *x, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: obj_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - trust
    - x
    - flags
    argTypes:
    - X509_TRUST*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: trust_1oid
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - obj_trust
    linkageType: ''
    returnType: int
    signature: int trust_1oid(X509_TRUST *trust, X509 *x, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - trust
    - x
    - flags
    argTypes:
    - X509_TRUST*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: trust_compat
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: int
    signature: int trust_compat(X509_TRUST *trust, X509 *x, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:257,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:258,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:259,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:268,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:269,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:270,1
    - Dst: trust_compat
      Src: /src/openssl-1.1.1g/crypto/x509/x509_trs.c:299,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 3
    argNames:
    - id
    - x
    - flags
    argTypes:
    - int
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 300
    functionName: obj_trust
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
    functionUses: 3
    functionsReached:
    - OBJ_obj2nid
    - sk_ASN1_OBJECT_value
    - trust_compat
    - sk_ASN1_OBJECT_num
    linkageType: ''
    returnType: int
    signature: int obj_trust(int id, X509 *x, int flags)
  - BBCount: 78
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 157
    argCount: 1
    argNames:
    - n
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 182
    functionName: X509_verify_cert_error_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_txt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_verify_cert_error_string(long n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: X509_CRL_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get_ext_count(const X509_CRL *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - X509_CRL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: X509_CRL_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - X509_CRL*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: X509_CRL_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj,\n
      \                           int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - X509_CRL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: X509_CRL_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: X509_CRL_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: X509_CRL_delete_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - X509_CRL*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: X509_CRL_get_ext_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int
      *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - X509_CRL*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: X509_CRL_add1_ext_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit,\n
      \                         unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - X509_CRL*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: X509_CRL_add_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: X509_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int X509_get_ext_count(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: X509_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - X509*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: X509_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: X509_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: X509_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_get_ext(const X509 *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: X509_delete_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_delete_ext(X509 *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - X509*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: X509_add_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - X509*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: X509_get_ext_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - X509*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: X509_add1_ext_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit,\n                      unsigned
      long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: X509_REVOKED_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_get_ext_count(const X509_REVOKED *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - X509_REVOKED*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: X509_REVOKED_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - X509_REVOKED*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: X509_REVOKED_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT
      *obj,\n                                int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - X509_REVOKED*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: X509_REVOKED_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit,
      int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_REVOKED*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: X509_REVOKED_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_REVOKED*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: X509_REVOKED_delete_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - X509_REVOKED*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: X509_REVOKED_add_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - X509_REVOKED*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: X509_REVOKED_get_ext_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int
      *crit, int *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-1.1.1g/crypto/x509/x509_ext.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - X509_REVOKED*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: X509_REVOKED_add1_ext_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value,
      int crit,\n                              unsigned long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509rset.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - X509_REQ*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: X509_REQ_set_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509rset.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int X509_REQ_set_version(X509_REQ *x, long version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509rset.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509_REQ*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: X509_REQ_set_subject_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509rset.c
    functionUses: 0
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int X509_REQ_set_subject_name(X509_REQ *x, X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509rset.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: X509_REQ_set_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509rset.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: X509_get_default_private_dir
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_private_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: X509_get_default_cert_area
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_area(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: X509_get_default_cert_dir
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: X509_get_default_cert_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: X509_get_default_cert_dir_env
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_dir_env(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: X509_get_default_cert_file_env
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_file_env(void)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:41,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:53,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:55,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:62,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:63,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:64,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:65,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:66,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:69,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:74,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:86,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:123,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:127,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:135,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:170,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:177,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_obj.c:179,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 127
    argCount: 3
    argNames:
    - a
    - buf
    - len
    argTypes:
    - X509_NAME*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 181
    functionName: X509_NAME_oneline
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_obj.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - strncpy
    - sk_X509_NAME_ENTRY_num
    - OPENSSL_free
    - memcpy
    - X509err
    - BUF_MEM_new
    - ascii2ebcdic
    - BUF_MEM_free
    - i2t_ASN1_OBJECT
    - OBJ_obj2nid
    - sk_X509_NAME_ENTRY_value
    - BUF_MEM_grow
    - strlen
    linkageType: ''
    returnType: char
    signature: char *X509_NAME_oneline(const X509_NAME *a, char *buf, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:25,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: X509_issuer_and_serial_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:35,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:41,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:42,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:42,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:44,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:46,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:47,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:51,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:57,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: X509_issuer_and_serial_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - X509_NAME_oneline
    - OPENSSL_free
    - EVP_DigestUpdate
    - EVP_md5
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - strlen
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_issuer_and_serial_hash(X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: X509_issuer_name_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int X509_issuer_name_cmp(const X509 *a, const X509 *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: X509_subject_name_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int X509_subject_name_cmp(const X509 *a, const X509 *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_CRL*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: X509_CRL_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_CRL*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: X509_CRL_match
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int X509_CRL_match(const X509_CRL *a, const X509_CRL *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: X509_get_issuer_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *X509_get_issuer_name(const X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: X509_issuer_name_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_issuer_name_hash(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash_old
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: X509_issuer_name_hash_old
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash_old
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_issuer_name_hash_old(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: X509_get_subject_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *X509_get_subject_name(const X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: X509_get_serialNumber
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *X509_get_serialNumber(X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: X509_get0_serialNumber
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *X509_get0_serialNumber(const X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: X509_subject_name_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_subject_name_hash(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash_old
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: X509_subject_name_hash_old
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash_old
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_subject_name_hash_old(X509 *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:139,1
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:141,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:144,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 157
    functionName: X509_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 1
    functionsReached:
    - memcmp
    - X509_check_purpose
    linkageType: ''
    returnType: int
    signature: int X509_cmp(const X509 *a, const X509 *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:166,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:172,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_NAME*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 184
    functionName: X509_NAME_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 5
    functionsReached:
    - memcmp
    - i2d_X509_NAME
    linkageType: ''
    returnType: int
    signature: int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:192,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:193,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: X509_NAME_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 2
    functionsReached:
    - EVP_sha1
    - i2d_X509_NAME
    - EVP_Digest
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_NAME_hash(X509_NAME *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:211,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:219,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:220,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:221,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:221,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:222,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:223,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 230
    functionName: X509_NAME_hash_old
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 2
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - EVP_MD_CTX_set_flags
    - EVP_DigestUpdate
    - EVP_md5
    - EVP_DigestInit_ex
    - i2d_X509_NAME
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_NAME_hash_old(X509_NAME *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: X509_get0_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 2
    functionsReached:
    - X509_PUBKEY_get0
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_get0_pubkey(const X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: X509_get_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 1
    functionsReached:
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_get_pubkey(X509 *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:286,1
    - Dst: EVP_PKEY_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:289,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:297,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:300,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - x
    - k
    argTypes:
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 308
    functionName: X509_check_private_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 3
    functionsReached:
    - X509err
    - X509_get0_pubkey
    - EVP_PKEY_cmp
    linkageType: ''
    returnType: int
    signature: int X509_check_private_key(const X509 *x, const EVP_PKEY *k)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:322,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:323,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:323,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:326,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - pkey
    - sign_nid
    - pflags
    argTypes:
    - EVP_PKEY*
    - int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 347
    functionName: check_suite_b
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_id
    - EC_GROUP_get_curve_name
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int check_suite_b(EVP_PKEY *pkey, int sign_nid, unsigned long *pflags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:361,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:366,1
    - Dst: check_suite_b
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:375,1
    - Dst: X509_get_version
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:377,1
    - Dst: check_suite_b
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:385,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:391,1
    - Dst: X509_get_signature_nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:392,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:393,1
    - Dst: X509_get_version
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:394,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:398,1
    - Dst: check_suite_b
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:399,1
    - Dst: check_suite_b
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:405,1
    - Dst: X509_get_signature_nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:405,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - perror_depth
    - x
    - chain
    - flags
    argTypes:
    - int*
    - X509*
    - STACK_OF*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 422
    functionName: X509_chain_check_suiteb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_get_signature_nid
    - check_suite_b
    - sk_X509_num
    - X509_get_version
    - X509_get0_pubkey
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: "int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509)
      *chain,\n                            unsigned long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:429,1
    - Dst: check_suite_b
      Src: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - crl
    - pk
    - flags
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 431
    functionName: X509_CRL_check_suiteb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - check_suite_b
    linkageType: ''
    returnType: int
    signature: int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - perror_depth
    - x
    - chain
    - flags
    argTypes:
    - int*
    - X509*
    - STACK_OF*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: X509_chain_check_suiteb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509)
      *chain,\n                            unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crl
    - pk
    - flags
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: X509_CRL_check_suiteb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: X509_trusted
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_trusted(const X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_CERT_AUX_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: aux_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - X509_CERT_AUX_new
    linkageType: ''
    returnType: X509_CERT_AUX
    signature: X509_CERT_AUX *aux_get(X509 *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:56,1
    - Dst: aux_get
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:60,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:62,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - x
    - name
    - len
    argTypes:
    - X509*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: X509_alias_set1
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 1
    functionsReached:
    - aux_get
    - ASN1_UTF8STRING_new
    - ASN1_UTF8STRING_free
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: int X509_alias_set1(X509 *x, const unsigned char *name, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:73,1
    - Dst: aux_get
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:77,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:80,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - x
    - id
    - len
    argTypes:
    - X509*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: X509_keyid_set1
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 1
    functionsReached:
    - aux_get
    - ASN1_STRING_set
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: int X509_keyid_set1(X509 *x, const unsigned char *id, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - X509*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: X509_alias_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *X509_alias_get0(X509 *x, int *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - X509*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: X509_keyid_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *X509_keyid_get0(X509 *x, int *len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:108,1
    - Dst: aux_get
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:112,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:115,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:117,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - x
    - obj
    argTypes:
    - X509*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: X509_add1_trust_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - OBJ_dup
    - sk_ASN1_OBJECT_new_null
    - sk_ASN1_OBJECT_push
    - ASN1_OBJECT_free
    - aux_get
    linkageType: ''
    returnType: int
    signature: int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:128,1
    - Dst: aux_get
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:130,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:133,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:135,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - x
    - obj
    argTypes:
    - X509*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 139
    functionName: X509_add1_reject_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - OBJ_dup
    - sk_ASN1_OBJECT_new_null
    - sk_ASN1_OBJECT_push
    - ASN1_OBJECT_free
    - aux_get
    linkageType: ''
    returnType: int
    signature: int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: X509_trust_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_trust_clear(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509a.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: X509_reject_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_reject_clear(X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:20,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:23,1
    - Dst: X509_LOOKUP_METHOD*::new_item
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:28,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 33
    functionName: X509_LOOKUP_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509err
    - OPENSSL_free
    - X509_LOOKUP_METHOD*::new_item
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_LOOKUP
    signature: X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: X509_LOOKUP_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509_LOOKUP_free(X509_LOOKUP *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: X509_STORE_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: int X509_STORE_lock(X509_STORE *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: X509_STORE_unlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int X509_STORE_unlock(X509_STORE *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::init
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: X509_LOOKUP_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::init
    linkageType: ''
    returnType: int
    signature: int X509_LOOKUP_init(X509_LOOKUP *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::shutdown
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: X509_LOOKUP_shutdown
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::shutdown
    linkageType: ''
    returnType: int
    signature: int X509_LOOKUP_shutdown(X509_LOOKUP *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::ctrl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argc
    - argl
    - ret
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: X509_LOOKUP_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::ctrl
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc,
      long argl,\n                     char **ret)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_subject
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - type
    - name
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: X509_LOOKUP_by_subject
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_subject
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
      \                          X509_NAME *name, X509_OBJECT *ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_issuer_serial
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - type
    - name
    - serial
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - ASN1_INTEGER*
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: X509_LOOKUP_by_issuer_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_issuer_serial
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE
      type,\n                                 X509_NAME *name, ASN1_INTEGER *serial,\n
      \                                X509_OBJECT *ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_fingerprint
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - type
    - bytes
    - len
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - unsigned char*
    - int
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: X509_LOOKUP_by_fingerprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_fingerprint
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE
      type,\n                               const unsigned char *bytes, int len,\n
      \                              X509_OBJECT *ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_alias
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - type
    - str
    - len
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - char*
    - int
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: X509_LOOKUP_by_alias
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_alias
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
      \                        const char *str, int len, X509_OBJECT *ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - X509_LOOKUP*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: X509_LOOKUP_set_method_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: X509_LOOKUP_get_method_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: X509_LOOKUP_get_store
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_subject_name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:148,1
    - Dst: X509_CRL_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_OBJECT**
    - X509_OBJECT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 158
    functionName: x509_object_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_CRL_cmp
    - X509_subject_name_cmp
    linkageType: ''
    returnType: int
    signature: "int x509_object_cmp(const X509_OBJECT *const *a,\n                           const
      X509_OBJECT *const *b)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:162,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:165,1
    - Dst: sk_X509_OBJECT_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:168,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:169,1
    - Dst: sk_X509_LOOKUP_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:173,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:174,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:178,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:179,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:182,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:183,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:187,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:189,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:197,1
    - Dst: sk_X509_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:198,1
    - Dst: sk_X509_LOOKUP_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:199,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:200,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 202
    functionName: X509_STORE_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - sk_X509_LOOKUP_new_null
    - sk_X509_OBJECT_new
    - OPENSSL_free
    - X509err
    - CRYPTO_THREAD_lock_new
    - CRYPTO_new_ex_data
    - X509_VERIFY_PARAM_free
    - OPENSSL_zalloc
    - sk_X509_OBJECT_free
    - X509_VERIFY_PARAM_new
    - sk_X509_LOOKUP_free
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *X509_STORE_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:207,1
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:212,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:213,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:216,1
    - Dst: sk_X509_LOOKUP_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:219,1
    - Dst: sk_X509_LOOKUP_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:220,1
    - Dst: X509_LOOKUP_shutdown
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:221,1
    - Dst: X509_LOOKUP_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:222,1
    - Dst: sk_X509_LOOKUP_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:224,1
    - Dst: sk_X509_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:225,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:227,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:228,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:229,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - vfy
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 231
    functionName: X509_STORE_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - sk_X509_OBJECT_pop_free
    - STACK_OF
    - X509_LOOKUP_free
    - sk_X509_LOOKUP_num
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - X509_LOOKUP_shutdown
    - X509_VERIFY_PARAM_free
    - sk_X509_LOOKUP_value
    - CRYPTO_DOWN_REF
    - CRYPTO_free_ex_data
    - sk_X509_LOOKUP_free
    linkageType: ''
    returnType: void
    signature: void X509_STORE_free(X509_STORE *vfy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:237,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:240,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vfy
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: X509_STORE_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int X509_STORE_up_ref(X509_STORE *vfy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:248,1
    - Dst: sk_X509_LOOKUP_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:252,1
    - Dst: sk_X509_LOOKUP_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:253,1
    - Dst: X509_LOOKUP_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:259,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:261,1
    - Dst: sk_X509_LOOKUP_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:266,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:269,1
    - Dst: X509_LOOKUP_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - v
    - m
    argTypes:
    - X509_STORE*
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 272
    functionName: X509_STORE_add_lookup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_new
    - sk_X509_LOOKUP_push
    - STACK_OF
    - X509_LOOKUP_free
    - sk_X509_LOOKUP_num
    - X509err
    - sk_X509_LOOKUP_value
    linkageType: ''
    returnType: X509_LOOKUP
    signature: X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD
      *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:278,1
    - Dst: X509_STORE_CTX_get_by_subject
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:282,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - vs
    - type
    - name
    argTypes:
    - X509_STORE_CTX*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 287
    functionName: X509_STORE_CTX_get_obj_by_subject
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_OBJECT_free
    - X509_OBJECT_new
    - X509_STORE_CTX_get_by_subject
    linkageType: ''
    returnType: X509_OBJECT
    signature: "X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs,\n
      \                                              X509_LOOKUP_TYPE type,\n                                               X509_NAME
      *name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_lock
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:304,1
    - Dst: X509_OBJECT_retrieve_by_subject
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:305,1
    - Dst: X509_STORE_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:306,1
    - Dst: sk_X509_LOOKUP_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:309,1
    - Dst: sk_X509_LOOKUP_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:310,1
    - Dst: X509_LOOKUP_by_subject
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:311,1
    - Dst: X509_OBJECT_up_ref_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:321,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - vs
    - type
    - name
    - ret
    argTypes:
    - X509_STORE_CTX*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 328
    functionName: X509_STORE_CTX_get_by_subject
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached:
    - X509_STORE_unlock
    - X509_OBJECT_up_ref_count
    - X509_STORE_lock
    - X509_LOOKUP_by_subject
    - sk_X509_LOOKUP_num
    - X509_OBJECT_retrieve_by_subject
    - sk_X509_LOOKUP_value
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE
      type,\n                                  X509_NAME *name, X509_OBJECT *ret)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:336,1
    - Dst: X509_OBJECT_up_ref_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:347,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:349,1
    - Dst: X509_STORE_lock
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:353,1
    - Dst: X509_OBJECT_retrieve_match
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:354,1
    - Dst: sk_X509_OBJECT_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:357,1
    - Dst: X509_STORE_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:360,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - store
    - x
    - crl
    argTypes:
    - X509_STORE*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 366
    functionName: x509_store_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_STORE_unlock
    - X509_OBJECT_up_ref_count
    - X509_OBJECT_retrieve_match
    - sk_X509_OBJECT_push
    - X509_STORE_lock
    - X509_OBJECT_free
    - X509_OBJECT_new
    linkageType: ''
    returnType: int
    signature: int x509_store_add(X509_STORE *store, void *x, int crl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x509_store_add
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:370,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: X509_STORE_add_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509err
    - x509_store_add
    linkageType: ''
    returnType: int
    signature: int X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x509_store_add
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:379,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 384
    functionName: X509_STORE_add_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509err
    - x509_store_add
    linkageType: ''
    returnType: int
    signature: int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:392,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 397
    functionName: X509_OBJECT_up_ref_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 2
    functionsReached:
    - X509_up_ref
    - X509_CRL_up_ref
    linkageType: ''
    returnType: int
    signature: int X509_OBJECT_up_ref_count(X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 404
    functionName: X509_OBJECT_get0_X509
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: X509_OBJECT_get0_X509_CRL
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: X509_OBJECT_get_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_TYPE
    signature: X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:420,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 428
    functionName: X509_OBJECT_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 3
    functionsReached:
    - X509err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_OBJECT
    signature: X509_OBJECT *X509_OBJECT_new(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:438,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: x509_object_free_internal
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_CRL_free
    linkageType: ''
    returnType: void
    signature: void x509_object_free_internal(X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:448,1
    - Dst: x509_object_free_internal
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - obj
    argTypes:
    - X509_OBJECT*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 455
    functionName: X509_OBJECT_set1_X509
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - x509_object_free_internal
    linkageType: ''
    returnType: int
    signature: int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:459,1
    - Dst: x509_object_free_internal
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - obj
    argTypes:
    - X509_OBJECT*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 466
    functionName: X509_OBJECT_set1_X509_CRL
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_CRL_up_ref
    - x509_object_free_internal
    linkageType: ''
    returnType: int
    signature: int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509_object_free_internal
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:470,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: X509_OBJECT_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 3
    functionsReached:
    - x509_object_free_internal
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509_OBJECT_free(X509_OBJECT *a)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:680,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:687,1
    - Dst: X509_STORE_CTX_get_by_subject
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:688,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:690,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:694,1
    - Dst: x509_check_cert_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:695,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:697,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:701,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:705,1
    - Dst: X509_STORE_lock
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:712,1
    - Dst: X509_OBJECT_idx_by_subject
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:713,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:717,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:718,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:722,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:722,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:724,1
    - Dst: x509_check_cert_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:734,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:739,1
    - Dst: X509_STORE_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:743,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - issuer
    - ctx
    - x
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 745
    functionName: X509_STORE_CTX_get1_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_STORE_unlock
    - X509_OBJECT_idx_by_subject
    - X509_get_subject_name
    - sk_X509_OBJECT_value
    - X509_STORE_CTX*::check_issued
    - X509_STORE_lock
    - X509_OBJECT_free
    - X509_OBJECT_new
    - X509_STORE_CTX_get_by_subject
    - X509_get_issuer_name
    - X509_up_ref
    - X509_NAME_cmp
    - x509_check_cert_time
    - sk_X509_OBJECT_num
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx,
      X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - X509_STORE*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 750
    functionName: X509_STORE_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_flags
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 756
    functionName: X509_STORE_set_depth
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_depth(X509_STORE *ctx, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - purpose
    argTypes:
    - X509_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: X509_STORE_set_purpose
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_purpose
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_purpose(X509_STORE *ctx, int purpose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - trust
    argTypes:
    - X509_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: X509_STORE_set_trust
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_trust
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_trust(X509_STORE *ctx, int trust)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set1
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - param
    argTypes:
    - X509_STORE*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 771
    functionName: X509_STORE_set1_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set1
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 776
    functionName: X509_STORE_get0_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_verify_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 781
    functionName: X509_STORE_set_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn
      verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 786
    functionName: X509_STORE_get_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_fn
    signature: X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify_cb
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_verify_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 792
    functionName: X509_STORE_set_verify_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_verify_cb(X509_STORE *ctx,\n                              X509_STORE_CTX_verify_cb
      verify_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 797
    functionName: X509_STORE_get_verify_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_cb
    signature: X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - get_issuer
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_get_issuer_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 803
    functionName: X509_STORE_set_get_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_get_issuer(X509_STORE *ctx,\n                               X509_STORE_CTX_get_issuer_fn
      get_issuer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: X509_STORE_get_get_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_issuer_fn
    signature: X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_issued
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_issued_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 814
    functionName: X509_STORE_set_check_issued
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_check_issued(X509_STORE *ctx,\n                                 X509_STORE_CTX_check_issued_fn
      check_issued)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 819
    functionName: X509_STORE_get_check_issued
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_issued_fn
    signature: X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_revocation
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_revocation_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 825
    functionName: X509_STORE_set_check_revocation
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_check_revocation(X509_STORE *ctx,\n                                     X509_STORE_CTX_check_revocation_fn
      check_revocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 830
    functionName: X509_STORE_get_check_revocation
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_revocation_fn
    signature: X509_STORE_CTX_check_revocation_fn X509_STORE_get_check_revocation(X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - get_crl
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_get_crl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: X509_STORE_set_get_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_get_crl(X509_STORE *ctx,\n                            X509_STORE_CTX_get_crl_fn
      get_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 841
    functionName: X509_STORE_get_get_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_crl_fn
    signature: X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_crl
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_crl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: X509_STORE_set_check_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_check_crl(X509_STORE *ctx,\n                              X509_STORE_CTX_check_crl_fn
      check_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 852
    functionName: X509_STORE_get_check_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_crl_fn
    signature: X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cert_crl
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_cert_crl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 858
    functionName: X509_STORE_set_cert_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_cert_crl(X509_STORE *ctx,\n                             X509_STORE_CTX_cert_crl_fn
      cert_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 863
    functionName: X509_STORE_get_cert_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cert_crl_fn
    signature: X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_policy
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_policy_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 869
    functionName: X509_STORE_set_check_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_check_policy(X509_STORE *ctx,\n                                 X509_STORE_CTX_check_policy_fn
      check_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 874
    functionName: X509_STORE_get_check_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_policy_fn
    signature: X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - lookup_certs
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_lookup_certs_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 880
    functionName: X509_STORE_set_lookup_certs
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_lookup_certs(X509_STORE *ctx,\n                                 X509_STORE_CTX_lookup_certs_fn
      lookup_certs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 885
    functionName: X509_STORE_get_lookup_certs
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_certs_fn
    signature: X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - lookup_crls
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_lookup_crls_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 891
    functionName: X509_STORE_set_lookup_crls
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_lookup_crls(X509_STORE *ctx,\n                                X509_STORE_CTX_lookup_crls_fn
      lookup_crls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 896
    functionName: X509_STORE_get_lookup_crls
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_crls_fn
    signature: X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ctx_cleanup
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_cleanup_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 902
    functionName: X509_STORE_set_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_cleanup(X509_STORE *ctx,\n                            X509_STORE_CTX_cleanup_fn
      ctx_cleanup)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 907
    functionName: X509_STORE_get_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cleanup_fn
    signature: X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - idx
    - data
    argTypes:
    - X509_STORE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 912
    functionName: X509_STORE_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_lu.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - X509_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 917
    functionName: X509_STORE_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *X509_STORE_get_ex_data(X509_STORE *ctx, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 922
    functionName: X509_STORE_CTX_get0_store
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509_meth.c:22,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_meth.c:25,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_meth.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_meth.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: X509_LOOKUP_meth_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_zalloc
    - X509err
    linkageType: ''
    returnType: X509_LOOKUP_METHOD
    signature: X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_meth.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_meth.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: X509_LOOKUP_meth_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: X509_LOOKUP_meth_set_new_item
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method,\n                                  int
      (*new_item) (X509_LOOKUP *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: "(*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: X509_LOOKUP_meth_set_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_free(\n    X509_LOOKUP_METHOD *method,\n
      \   void (*free_fn) (X509_LOOKUP *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: "(*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: X509_LOOKUP_meth_set_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method,\n                              int
      (*init) (X509_LOOKUP *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: "(*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: X509_LOOKUP_meth_set_shutdown
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_shutdown(\n    X509_LOOKUP_METHOD *method,\n
      \   int (*shutdown) (X509_LOOKUP *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: "(*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - ctrl
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_ctrl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: X509_LOOKUP_meth_set_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_ctrl(\n    X509_LOOKUP_METHOD *method,\n
      \   X509_LOOKUP_ctrl_fn ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: X509_LOOKUP_meth_get_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_ctrl_fn
    signature: X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD
      *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - get_by_subject
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_get_by_subject_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: X509_LOOKUP_meth_set_get_by_subject
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method,\n
      \   X509_LOOKUP_get_by_subject_fn get_by_subject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: X509_LOOKUP_meth_get_get_by_subject
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_get_by_subject_fn
    signature: "X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject(\n
      \   const X509_LOOKUP_METHOD *method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - get_by_issuer_serial
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_get_by_issuer_serial_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: X509_LOOKUP_meth_set_get_by_issuer_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method,\n
      \   X509_LOOKUP_get_by_issuer_serial_fn get_by_issuer_serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: X509_LOOKUP_meth_get_get_by_issuer_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_get_by_issuer_serial_fn
    signature: X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial(const
      X509_LOOKUP_METHOD *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - get_by_fingerprint
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_get_by_fingerprint_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: X509_LOOKUP_meth_set_get_by_fingerprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method,\n
      \   X509_LOOKUP_get_by_fingerprint_fn get_by_fingerprint)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: X509_LOOKUP_meth_get_get_by_fingerprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_get_by_fingerprint_fn
    signature: "X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint(\n
      \   const X509_LOOKUP_METHOD *method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - get_by_alias
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_get_by_alias_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: X509_LOOKUP_meth_set_get_by_alias
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method,\n
      \                                     X509_LOOKUP_get_by_alias_fn get_by_alias)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: X509_LOOKUP_meth_get_get_by_alias
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_get_by_alias_fn
    signature: "X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias(\n    const
      X509_LOOKUP_METHOD *method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: X509_LOOKUP_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_METHOD
    signature: X509_LOOKUP_METHOD *X509_LOOKUP_file(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:49,1
    - Dst: X509_get_default_cert_file_env
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:49,1
    - Dst: X509_load_cert_crl_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:51,1
    - Dst: X509_load_cert_crl_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:55,1
    - Dst: X509_get_default_cert_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:56,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:60,1
    - Dst: X509_load_cert_crl_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:64,1
    - Dst: X509_load_cert_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argp
    - argl
    - ret
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: by_file_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_file.c
    functionUses: 0
    functionsReached:
    - X509_load_cert_crl_file
    - ossl_safe_getenv
    - X509_load_cert_file
    - X509err
    - X509_get_default_cert_file_env
    - X509_get_default_cert_file
    linkageType: ''
    returnType: int
    signature: "int by_file_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp,\n                        long
      argl, char **ret)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:81,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:81,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:83,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:84,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:90,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:92,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:92,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:94,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:97,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:101,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:105,1
    - Dst: d2i_X509_bio
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:110,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:112,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:115,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:120,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:124,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:126,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:127,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 129
    functionName: X509_load_cert_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_file.c
    functionUses: 1
    functionsReached:
    - X509_free
    - X509_STORE_add_cert
    - BIO_s_file
    - X509err
    - BIO_read_filename
    - ERR_GET_REASON
    - ERR_peek_last_error
    - ERR_clear_error
    - PEM_read_bio_X509_AUX
    - BIO_free
    - d2i_X509_bio
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:138,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:138,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:140,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:141,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:147,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:149,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:149,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:151,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:154,1
    - Dst: X509_STORE_add_crl
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:158,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:162,1
    - Dst: d2i_X509_CRL_bio
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:167,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:169,1
    - Dst: X509_STORE_add_crl
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:172,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:177,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:181,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:183,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:184,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 186
    functionName: X509_load_crl_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_file.c
    functionUses: 0
    functionsReached:
    - X509_STORE_add_crl
    - X509_CRL_free
    - d2i_X509_CRL_bio
    - BIO_s_file
    - X509err
    - BIO_read_filename
    - ERR_GET_REASON
    - ERR_peek_last_error
    - ERR_clear_error
    - BIO_free
    - PEM_read_bio_X509_CRL
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:190,1
    - Dst: X509_load_cert_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:196,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:197,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:199,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:202,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:203,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:205,1
    - Dst: sk_X509_INFO_num
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:208,1
    - Dst: sk_X509_INFO_value
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:209,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:211,1
    - Dst: X509_STORE_add_crl
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:216,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:222,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_file.c:225,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 227
    functionName: X509_load_cert_crl_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_file.c
    functionUses: 1
    functionsReached:
    - sk_X509_INFO_value
    - X509_STORE_add_crl
    - X509_STORE_add_cert
    - PEM_X509_INFO_read_bio
    - X509_load_cert_file
    - STACK_OF
    - sk_X509_INFO_pop_free
    - X509err
    - BIO_free
    - BIO_new_file
    - sk_X509_INFO_num
    linkageType: ''
    returnType: int
    signature: int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int
      type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_ATTRIBUTE_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_attrib.c:41,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x_attrib.c:43,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_attrib.c:44,1
    - Dst: sk_ASN1_TYPE_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_attrib.c:46,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/x509/x_attrib.c:49,1
    - Dst: X509_ATTRIBUTE_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_attrib.c:52,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_attrib.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - nid
    - atrtype
    - value
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: X509_ATTRIBUTE_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_attrib.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - OBJ_nid2obj
    - X509_ATTRIBUTE_new
    - sk_ASN1_TYPE_push
    - ASN1_TYPE_set
    - X509_ATTRIBUTE_free
    - ASN1_TYPE_free
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x_req.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: rinf_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_req.c
    functionUses: 0
    functionsReached:
    - sk_X509_ATTRIBUTE_new_null
    linkageType: ''
    returnType: int
    signature: "int rinf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                  void *exarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:27,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:32,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - X509*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: X509_set_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_INTEGER_free
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int X509_set_version(X509 *x, long version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - serial
    argTypes:
    - X509*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: X509_set_serialNumber
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_copy
    linkageType: ''
    returnType: int
    signature: int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: X509_set_issuer_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int X509_set_issuer_name(X509 *x, X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: X509_set_subject_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int X509_set_subject_name(X509 *x, X509_NAME *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:69,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ptm
    - tm
    argTypes:
    - ASN1_TIME**
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: x509_set1_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 2
    functionsReached:
    - ASN1_STRING_dup
    - ASN1_TIME_free
    linkageType: ''
    returnType: int
    signature: int x509_set1_time(ASN1_TIME **ptm, const ASN1_TIME *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x509_set1_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: X509_set1_notBefore
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - x509_set1_time
    linkageType: ''
    returnType: int
    signature: int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x509_set1_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: X509_set1_notAfter
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - x509_set1_time
    linkageType: ''
    returnType: int
    signature: int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: X509_set_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: int X509_set_pubkey(X509 *x, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:103,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:106,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: X509_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 7
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int X509_up_ref(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: X509_get_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long X509_get_version(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: X509_get0_notBefore
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_get0_notBefore(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: X509_get0_notAfter
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_get0_notAfter(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: X509_getm_notBefore
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_getm_notBefore(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: X509_getm_notAfter
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_getm_notAfter(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:138,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: X509_get_signature_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - EVP_PKEY_type
    linkageType: ''
    returnType: int
    signature: int X509_get_signature_type(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: X509_get_X509_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_PUBKEY
    signature: X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: X509_get0_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *X509_get0_extensions(const X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - x
    - piuid
    - psuid
    argTypes:
    - X509*
    - ASN1_BIT_STRING**
    - ASN1_BIT_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: X509_get0_uids
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid,\n
      \                   const ASN1_BIT_STRING **psuid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: X509_get0_tbs_sigalg
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - siginf
    - mdnid
    - pknid
    - secbits
    - flags
    argTypes:
    - X509_SIG_INFO*
    - int*
    - int*
    - int*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: X509_SIG_INFO_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int
      *pknid,\n                      int *secbits, uint32_t *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - siginf
    - mdnid
    - pknid
    - secbits
    - flags
    argTypes:
    - X509_SIG_INFO*
    - int
    - int
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: X509_SIG_INFO_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid,\n
      \                      int secbits, uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:191,1
    - Dst: X509_SIG_INFO_get
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - x
    - mdnid
    - pknid
    - secbits
    - flags
    argTypes:
    - X509*
    - int*
    - int*
    - int*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: X509_get_signature_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    - X509_SIG_INFO_get
    linkageType: ''
    returnType: int
    signature: "int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits,\n
      \                           uint32_t *flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:205,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:205,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:211,1
    - Dst: EVP_PKEY_ASN1_METHOD*::siginf_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:213,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:220,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - siginf
    - alg
    - sig
    argTypes:
    - X509_SIG_INFO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 232
    functionName: x509_sig_info_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbynid
    - EVP_PKEY_ASN1_METHOD*::siginf_set
    - OBJ_find_sigid_algs
    - EVP_PKEY_asn1_find
    - EVP_MD_size
    - OBJ_obj2nid
    linkageType: ''
    returnType: void
    signature: "void x509_sig_info_init(X509_SIG_INFO *siginf, const X509_ALGOR *alg,\n
      \                              const ASN1_STRING *sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509_sig_info_init
      Src: /src/openssl-1.1.1g/crypto/x509/x509_set.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: x509_init_sig_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - x509_sig_info_init
    linkageType: ''
    returnType: void
    signature: void x509_init_sig_info(X509 *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:44,1
    - Dst: X509_CERT_AUX_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:45,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:46,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:47,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:48,1
    - Dst: policy_cache_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:49,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:50,1
    - Dst: NAME_CONSTRAINTS_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:51,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:53,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:54,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:78,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:83,1
    - Dst: X509_CERT_AUX_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:84,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:85,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:86,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:87,1
    - Dst: policy_cache_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:88,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:89,1
    - Dst: NAME_CONSTRAINTS_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:90,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:92,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 101
    functionName: x509_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_pop_free
    - CRL_DIST_POINTS_free
    - NAME_CONSTRAINTS_free
    - AUTHORITY_KEYID_free
    - ASN1_OCTET_STRING_free
    - ASIdentifiers_free
    - CRYPTO_new_ex_data
    - CRYPTO_free_ex_data
    - policy_cache_free
    - GENERAL_NAMES_free
    - X509_CERT_AUX_free
    linkageType: ''
    returnType: int
    signature: "int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                  void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - idx
    - arg
    argTypes:
    - X509*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: X509_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int X509_set_ex_data(X509 *r, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - idx
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: X509_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *X509_get_ex_data(X509 *r, int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:141,1
    - Dst: d2i_X509_CERT_AUX
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:147,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - X509**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 158
    functionName: d2i_X509_AUX
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - X509_free
    - d2i_X509
    - d2i_X509_CERT_AUX
    linkageType: ''
    returnType: X509
    signature: X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:176,1
    - Dst: i2d_X509_CERT_AUX
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - X509*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: i2d_x509_aux_internal
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - i2d_X509
    - i2d_X509_CERT_AUX
    linkageType: ''
    returnType: int
    signature: int i2d_x509_aux_internal(X509 *a, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: i2d_x509_aux_internal
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:207,1
    - Dst: i2d_x509_aux_internal
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:210,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:214,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:216,1
    - Dst: i2d_x509_aux_internal
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:221,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - X509*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 227
    functionName: i2d_X509_AUX
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - X509err
    - OPENSSL_malloc
    - OPENSSL_free
    - i2d_x509_aux_internal
    linkageType: ''
    returnType: int
    signature: int i2d_X509_AUX(X509 *a, unsigned char **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_CINF
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - pp
    argTypes:
    - X509*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: i2d_re_X509_tbs
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - i2d_X509_CINF
    linkageType: ''
    returnType: int
    signature: int i2d_re_X509_tbs(X509 *x, unsigned char **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - psig
    - palg
    - x
    argTypes:
    - ASN1_BIT_STRING**
    - X509_ALGOR**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: X509_get0_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_get0_signature(const ASN1_BIT_STRING **psig,\n                         const
      X509_ALGOR **palg, const X509 *x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x_x509.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: X509_get_signature_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_x509.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int X509_get_signature_nid(const X509 *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:34,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:38,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:45,1
    - Dst: x509_pubkey_decode
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:46,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: pubkey_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - x509_pubkey_decode
    - ERR_set_mark
    - ERR_pop_to_mark
    linkageType: ''
    returnType: int
    signature: "int pubkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                    void *exarg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:67,1
    - Dst: EVP_PKEY*::ameth::pub_encode
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:72,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:73,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:78,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:82,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:86,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:89,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:93,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509_PUBKEY**
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 95
    functionName: X509_PUBKEY_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 2
    functionsReached:
    - X509_PUBKEY_new
    - EVP_PKEY_up_ref
    - X509_PUBKEY_free
    - X509err
    - EVP_PKEY*::ameth::pub_encode
    linkageType: ''
    returnType: int
    signature: int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:106,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:109,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:113,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:113,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:114,1
    - Dst: EVP_PKEY*::ameth::pub_decode
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:124,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:125,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:129,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ppkey
    - key
    argTypes:
    - EVP_PKEY**
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 139
    functionName: x509_pubkey_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY*::ameth::pub_decode
    - EVP_PKEY_set_type
    - X509err
    - EVP_PKEY_new
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int x509_pubkey_decode(EVP_PKEY **ppkey, X509_PUBKEY *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x509_pubkey_decode
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:159,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:162,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 167
    functionName: X509_PUBKEY_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached:
    - X509err
    - x509_pubkey_decode
    - EVP_PKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_PUBKEY_get0(X509_PUBKEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:171,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: X509_PUBKEY_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached:
    - X509_PUBKEY_get0
    - EVP_PKEY_up_ref
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:188,1
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:191,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:192,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 201
    functionName: d2i_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get
    - d2i_X509_PUBKEY
    - EVP_PKEY_free
    - X509_PUBKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:209,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:211,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: i2d_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    - i2d_X509_PUBKEY
    - X509_PUBKEY_free
    linkageType: ''
    returnType: int
    signature: int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:226,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:229,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:230,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - RSA**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 220
    functionDepth: 7
    functionLinenumber: 220
    functionLinenumberEnd: 239
    functionName: d2i_RSA_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_get1_RSA
    - RSA_free
    - d2i_PUBKEY
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:247,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:249,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:252,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:253,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - RSA*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 256
    functionName: i2d_RSA_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - EVP_PKEY_set1_RSA
    - EVP_PKEY_new
    - EVP_PKEY_free
    - i2d_PUBKEY
    linkageType: ''
    returnType: int
    signature: int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:266,1
    - Dst: EVP_PKEY_get1_DSA
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:269,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:270,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - DSA**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 260
    functionDepth: 7
    functionLinenumber: 260
    functionLinenumberEnd: 279
    functionName: d2i_DSA_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - DSA_free
    - EVP_PKEY_get1_DSA
    - d2i_PUBKEY
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:287,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:289,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:292,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:293,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - DSA*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 296
    functionName: i2d_DSA_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - EVP_PKEY_set1_DSA
    - EVP_PKEY_new
    - EVP_PKEY_free
    - i2d_PUBKEY
    linkageType: ''
    returnType: int
    signature: int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:306,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:309,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:310,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 300
    functionDepth: 7
    functionLinenumber: 300
    functionLinenumberEnd: 319
    functionName: d2i_EC_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get1_EC_KEY
    - d2i_PUBKEY
    - EC_KEY_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:327,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:328,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:331,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:332,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: i2d_EC_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - EVP_PKEY_set1_EC_KEY
    - EVP_PKEY_new
    - EVP_PKEY_free
    - i2d_PUBKEY
    linkageType: ''
    returnType: int
    signature: int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:342,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - pub
    - aobj
    - ptype
    - pval
    - penc
    - penclen
    argTypes:
    - X509_PUBKEY*
    - ASN1_OBJECT*
    - int
    - void*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 353
    functionName: X509_PUBKEY_set0_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set0
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj,\n
      \                          int ptype, void *pval,\n                           unsigned
      char *penc, int penclen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ppkalg
    - pk
    - ppklen
    - pa
    - pub
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - int*
    - X509_ALGOR**
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 368
    functionName: X509_PUBKEY_get0_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg,\n                           const
      unsigned char **pk, int *ppklen,\n                           X509_ALGOR **pa,
      X509_PUBKEY *pub)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 375
    functionName: X509_get0_pubkey_bitstr
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: X509_LOOKUP_hash_dir
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_METHOD
    signature: X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:76,1
    - Dst: X509_get_default_cert_dir_env
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:76,1
    - Dst: add_cert_dir
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:79,1
    - Dst: add_cert_dir
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:81,1
    - Dst: X509_get_default_cert_dir
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:81,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:84,1
    - Dst: add_cert_dir
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argp
    - argl
    - retp
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: dir_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - add_cert_dir
    - X509_get_default_cert_dir
    - ossl_safe_getenv
    - X509_get_default_cert_dir_env
    - X509err
    linkageType: ''
    returnType: int
    signature: "int dir_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl,\n
      \                   char **retp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:95,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:98,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:102,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:103,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:107,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:109,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - lu
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 119
    functionName: new_dir
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - X509err
    - CRYPTO_THREAD_lock_new
    - BUF_MEM_free
    - BUF_MEM_new
    linkageType: ''
    returnType: int
    signature: int new_dir(X509_LOOKUP *lu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - BY_DIR_HASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: by_dir_hash_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void by_dir_hash_free(BY_DIR_HASH *hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BY_DIR_HASH**
    - BY_DIR_HASH**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: by_dir_hash_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int by_dir_hash_cmp(const BY_DIR_HASH *const *a,\n                           const
      BY_DIR_HASH *const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:138,1
    - Dst: sk_BY_DIR_HASH_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:139,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ent
    argTypes:
    - BY_DIR_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: by_dir_entry_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - sk_BY_DIR_HASH_pop_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void by_dir_entry_free(BY_DIR_ENTRY *ent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_BY_DIR_ENTRY_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:147,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:148,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lu
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: free_dir
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_free
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - sk_BY_DIR_ENTRY_pop_free
    linkageType: ''
    returnType: void
    signature: void free_dir(X509_LOOKUP *lu)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:160,1
    - Dst: sk_BY_DIR_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:175,1
    - Dst: sk_BY_DIR_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:176,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:177,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:177,1
    - Dst: sk_BY_DIR_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:180,1
    - Dst: sk_BY_DIR_ENTRY_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:183,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:185,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:189,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:191,1
    - Dst: sk_BY_DIR_HASH_new
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:195,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:196,1
    - Dst: by_dir_entry_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:198,1
    - Dst: sk_BY_DIR_ENTRY_push
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:201,1
    - Dst: by_dir_entry_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:202,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:203,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 3
    argNames:
    - ctx
    - dir
    - type
    argTypes:
    - BY_DIR*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 209
    functionName: add_cert_dir
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    functionUses: 1
    functionsReached:
    - sk_BY_DIR_ENTRY_new_null
    - OPENSSL_malloc
    - sk_BY_DIR_ENTRY_value
    - sk_BY_DIR_HASH_new
    - OPENSSL_strndup
    - X509err
    - sk_BY_DIR_ENTRY_push
    - strncmp
    - sk_BY_DIR_ENTRY_num
    - strlen
    - by_dir_entry_free
    linkageType: ''
    returnType: int
    signature: int add_cert_dir(BY_DIR *ctx, const char *dir, int type)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:239,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:243,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:244,1
    - Dst: X509_NAME_hash
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:250,1
    - Dst: sk_BY_DIR_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:251,1
    - Dst: sk_BY_DIR_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:256,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:257,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:258,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:259,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:264,1
    - Dst: sk_BY_DIR_HASH_find
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:265,1
    - Dst: sk_BY_DIR_HASH_value
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:267,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:273,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:281,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:299,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:302,1
    - Dst: stat
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:311,1
    - Dst: X509_load_cert_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:317,1
    - Dst: X509_load_crl_file
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:320,1
    - Dst: X509_STORE_lock
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:330,1
    - Dst: sk_X509_OBJECT_find
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:331,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:332,1
    - Dst: X509_STORE_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:333,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:338,1
    - Dst: sk_BY_DIR_HASH_find
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:345,1
    - Dst: sk_BY_DIR_HASH_value
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:346,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:349,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:351,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:352,1
    - Dst: sk_BY_DIR_HASH_push
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:358,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:359,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:360,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:361,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:369,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:376,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:382,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/x509/by_dir.c:388,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 123
    argCount: 4
    argNames:
    - xl
    - type
    - name
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 390
    functionName: get_cert_by_subject
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - sk_X509_OBJECT_value
    - stat
    - CRYPTO_THREAD_read_lock
    - X509err
    - BUF_MEM_new
    - CRYPTO_THREAD_unlock
    - sk_BY_DIR_HASH_value
    - X509_NAME_hash
    - OPENSSL_malloc
    - sk_BY_DIR_ENTRY_value
    - sk_BY_DIR_HASH_find
    - X509_load_cert_file
    - X509_STORE_lock
    - OPENSSL_free
    - sk_X509_OBJECT_find
    - memcpy
    - ERR_clear_error
    - sk_BY_DIR_HASH_push
    - X509_load_crl_file
    - BUF_MEM_free
    - sk_BY_DIR_ENTRY_num
    - X509_STORE_unlock
    - CRYPTO_THREAD_write_lock
    - BUF_MEM_grow
    - strlen
    linkageType: ''
    returnType: int
    signature: "int get_cert_by_subject(X509_LOOKUP *xl, X509_LOOKUP_TYPE type,\n
      \                              X509_NAME *name, X509_OBJECT *ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: str_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *str_copy(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: str_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void str_free(char *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:46,1
    - Dst: memchr
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:47,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:53,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:59,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:64,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:65,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:70,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:71,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:72,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 4
    argNames:
    - vpm
    - mode
    - name
    - namelen
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 79
    functionName: int_x509_param_set_hosts
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_new_null
    - sk_OPENSSL_STRING_free
    - OPENSSL_strndup
    - OPENSSL_free
    - memchr
    - sk_OPENSSL_STRING_pop_free
    - sk_OPENSSL_STRING_num
    - strlen
    - sk_OPENSSL_STRING_push
    linkageType: ''
    returnType: int
    signature: "int int_x509_param_set_hosts(X509_VERIFY_PARAM *vpm, int mode,\n                                    const
      char *name, size_t namelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:86,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: X509_VERIFY_PARAM_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - X509err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:102,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:104,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:106,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: X509_VERIFY_PARAM_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 2
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    - OPENSSL_free
    - sk_OPENSSL_STRING_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: test_x509_verify_param_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_x509_verify_param_copy(field, def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: x509_verify_param_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x509_verify_param_copy(field, def)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: x509_verify_param_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:179,1
    - Dst: x509_verify_param_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:180,1
    - Dst: x509_verify_param_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:181,1
    - Dst: x509_verify_param_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:182,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:197,1
    - Dst: X509_VERIFY_PARAM_set1_policies
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:198,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:203,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:204,1
    - Dst: sk_OPENSSL_STRING_deep_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:208,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:215,1
    - Dst: X509_VERIFY_PARAM_set1_email
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:216,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:220,1
    - Dst: X509_VERIFY_PARAM_set1_ip
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:221,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 226
    functionName: X509_VERIFY_PARAM_inherit
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - test_x509_verify_param_copy
    - X509_VERIFY_PARAM_set1_ip
    - sk_OPENSSL_STRING_deep_copy
    - sk_OPENSSL_STRING_pop_free
    - X509_VERIFY_PARAM_set1_email
    - x509_verify_param_copy
    - X509_VERIFY_PARAM_set1_policies
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *dest,\n                              const
      X509_VERIFY_PARAM *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: X509_VERIFY_PARAM_set1
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - X509_VERIFY_PARAM_inherit
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,\n                           const
      X509_VERIFY_PARAM *from)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:245,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:247,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - pdest
    - pdestlen
    - src
    - srclen
    argTypes:
    - char**
    - size_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 259
    functionName: int_x509_param_set1
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - strlen
    linkageType: ''
    returnType: int
    signature: "int int_x509_param_set1(char **pdest, size_t *pdestlen,\n                               const
      char *src, size_t srclen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:263,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - param
    - name
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: X509_VERIFY_PARAM_set1_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: X509_VERIFY_PARAM_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned
      long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: X509_VERIFY_PARAM_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,\n                                  unsigned
      long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: X509_VERIFY_PARAM_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: X509_VERIFY_PARAM_get_inh_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: X509_VERIFY_PARAM_set_inh_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, uint32_t
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - purpose
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: X509_VERIFY_PARAM_set_purpose
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - X509_PURPOSE_set
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_TRUST_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - trust
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: X509_VERIFY_PARAM_set_trust
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - X509_TRUST_set
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - depth
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: X509_VERIFY_PARAM_set_depth
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - auth_level
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: X509_VERIFY_PARAM_set_auth_level
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int
      auth_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: X509_VERIFY_PARAM_get_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - param
    - t
    argTypes:
    - X509_VERIFY_PARAM*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: X509_VERIFY_PARAM_set_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:336,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - param
    - policy
    argTypes:
    - X509_VERIFY_PARAM*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: X509_VERIFY_PARAM_add0_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_new_null
    - sk_ASN1_OBJECT_push
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,\n                                  ASN1_OBJECT
      *policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set_hosts
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - param
    - name
    - namelen
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: X509_VERIFY_PARAM_set1_host
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - int_x509_param_set_hosts
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param,\n                                const
      char *name, size_t namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set_hosts
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - param
    - name
    - namelen
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: X509_VERIFY_PARAM_add1_host
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - int_x509_param_set_hosts
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param,\n                                const
      char *name, size_t namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: X509_VERIFY_PARAM_set_hostflags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,\n                                     unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: X509_VERIFY_PARAM_get_hostflags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM
      *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: X509_VERIFY_PARAM_get0_peername
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *param)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 422
    functionName: X509_VERIFY_PARAM_move_peername
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *to,\n                                     X509_VERIFY_PARAM
      *from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set1
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - param
    - email
    - emaillen
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 429
    functionName: X509_VERIFY_PARAM_set1_email
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - int_x509_param_set1
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,\n                                 const
      char *email, size_t emaillen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set1
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - param
    - ip
    - iplen
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: X509_VERIFY_PARAM_set1_ip
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - int_x509_param_set1
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param,\n                              const
      unsigned char *ip, size_t iplen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: a2i_ipadd
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:445,1
    - Dst: X509_VERIFY_PARAM_set1_ip
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - param
    - ipasc
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 449
    functionName: X509_VERIFY_PARAM_set1_ip_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set1_ip
    - a2i_ipadd
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char
      *ipasc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: X509_VERIFY_PARAM_get_depth
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: X509_VERIFY_PARAM_get_auth_level
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: X509_VERIFY_PARAM_get0_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: table_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int table_cmp(const X509_VERIFY_PARAM *a, const X509_VERIFY_PARAM *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_VERIFY_PARAM**
    - X509_VERIFY_PARAM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: param_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int param_cmp(const X509_VERIFY_PARAM *const *a,\n                     const
      X509_VERIFY_PARAM *const *b)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:553,1
    - Dst: sk_X509_VERIFY_PARAM_find
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:557,1
    - Dst: sk_X509_VERIFY_PARAM_delete
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:559,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:560,1
    - Dst: sk_X509_VERIFY_PARAM_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 566
    functionName: X509_VERIFY_PARAM_add0_table
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_delete
    - sk_X509_VERIFY_PARAM_new
    - X509_VERIFY_PARAM_free
    - sk_X509_VERIFY_PARAM_push
    - sk_X509_VERIFY_PARAM_find
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:570,1
    - Dst: sk_X509_VERIFY_PARAM_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 574
    functionName: X509_VERIFY_PARAM_get_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - sk_X509_VERIFY_PARAM_num
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_get_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:578,1
    - Dst: sk_X509_VERIFY_PARAM_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 582
    functionName: X509_VERIFY_PARAM_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - sk_X509_VERIFY_PARAM_value
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_find
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:591,1
    - Dst: sk_X509_VERIFY_PARAM_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:593,1
    - Dst: OBJ_bsearch_table
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:595,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 596
    functionName: X509_VERIFY_PARAM_lookup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - sk_X509_VERIFY_PARAM_value
    - sk_X509_VERIFY_PARAM_find
    - OBJ_bsearch_table
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: X509_VERIFY_PARAM_table_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_table_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_print_ex_fp
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: X509_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - X509_print_ex_fp
    linkageType: ''
    returnType: int
    signature: int X509_print_fp(FILE *fp, X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:31,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:31,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:32,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:35,1
    - Dst: X509_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:36,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - x
    - nmflag
    - cflag
    argTypes:
    - FILE*
    - X509*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: X509_print_ex_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - BIO_s_file
    - X509err
    - BIO_free
    - BIO_set_fp
    - X509_print_ex
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int X509_print_ex_fp(FILE *fp, X509 *x, unsigned long nmflag,\n                     unsigned
      long cflag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: X509_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - X509_print_ex
    linkageType: ''
    returnType: int
    signature: int X509_print(BIO *bp, X509 *x)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:67,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:69,1
    - Dst: X509_get_version
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:73,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:78,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:84,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:87,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:89,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:90,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:91,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:104,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:108,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:112,1
    - Dst: X509_get0_tbs_sigalg
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:121,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:123,1
    - Dst: X509_signature_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:125,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:130,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:132,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:132,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:135,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:139,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:141,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:143,1
    - Dst: X509_get0_notBefore
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:143,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:145,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:147,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:147,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:149,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:153,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:155,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:156,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:158,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:162,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:164,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:165,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:167,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:169,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:171,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:174,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:176,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:177,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:179,1
    - Dst: X509_get0_uids
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:185,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:187,1
    - Dst: X509_signature_dump
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:193,1
    - Dst: X509_signature_dump
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:195,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:201,1
    - Dst: X509_get0_extensions
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:202,1
    - Dst: X509_get0_signature
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:207,1
    - Dst: X509_signature_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:208,1
    - Dst: X509_aux_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:217,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 171
    argCount: 4
    argNames:
    - bp
    - x
    - nmflags
    - cflag
    argTypes:
    - BIO*
    - X509*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 219
    functionName: X509_print_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_x509.c
    functionUses: 3
    functionsReached:
    - X509_NAME_print_ex
    - i2a_ASN1_OBJECT
    - X509_PUBKEY_get0_param
    - X509_get_serialNumber
    - X509V3_extensions_print
    - EVP_PKEY_print_public
    - X509_get0_extensions
    - X509_get_issuer_name
    - X509_get_subject_name
    - X509_get0_pubkey
    - X509_get0_tbs_sigalg
    - X509_get0_notAfter
    - X509_get0_signature
    - OPENSSL_free
    - X509_get0_notBefore
    - BIO_puts
    - ERR_pop_to_mark
    - X509_signature_dump
    - ASN1_TIME_print
    - ERR_print_errors
    - ERR_set_mark
    - X509_get_version
    - X509_signature_print
    - BIO_write
    - X509_aux_print
    - BIO_printf
    - X509_get_X509_PUBKEY
    - ASN1_INTEGER_get
    - X509_get0_uids
    linkageType: ''
    returnType: int
    signature: "int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags,\n                  unsigned
      long cflag)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:234,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:236,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:237,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:238,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:240,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:242,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:242,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:245,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:248,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:254,1
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:257,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:262,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:262,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:263,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:263,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:267,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:270,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:274,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 276
    functionName: X509_ocspid_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - X509_get0_pubkey_bitstr
    - EVP_sha1
    - OPENSSL_free
    - ASN1_STRING_length
    - i2d_X509_NAME
    - EVP_Digest
    - BIO_printf
    - X509_get_subject_name
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: int X509_ocspid_print(BIO *bp, X509 *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:287,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:289,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:292,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - bp
    - sig
    - indent
    argTypes:
    - BIO*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 299
    functionName: X509_signature_dump
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:305,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:307,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:310,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:314,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:315,1
    - Dst: EVP_PKEY_ASN1_METHOD*::sig_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:317,1
    - Dst: X509_signature_dump
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:321,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:322,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - bp
    - sigalg
    - sig
    argTypes:
    - BIO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 325
    functionName: X509_signature_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - i2a_ASN1_OBJECT
    - OBJ_obj2nid
    - BIO_puts
    - EVP_PKEY_ASN1_METHOD*::sig_print
    - EVP_PKEY_asn1_find
    - X509_signature_dump
    - OBJ_find_sigid_algs
    linkageType: ''
    returnType: int
    signature: "int X509_signature_print(BIO *bp, const X509_ALGOR *sigalg,\n                         const
      ASN1_STRING *sig)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:330,1
    - Dst: X509_trusted
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:334,1
    - Dst: X509_get0_trust_objects
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:336,1
    - Dst: X509_get0_reject_objects
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:337,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:340,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:341,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:343,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:346,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:347,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:348,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:350,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:352,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:355,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:356,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:358,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:361,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:362,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:363,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:365,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:367,1
    - Dst: X509_alias_get0
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:368,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:370,1
    - Dst: X509_keyid_get0
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:371,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:373,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:375,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_x509.c:376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - out
    - x
    - indent
    argTypes:
    - BIO*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 379
    functionName: X509_aux_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_OBJECT_value
    - BIO_write
    - sk_ASN1_OBJECT_num
    - X509_alias_get0
    - X509_get0_reject_objects
    - X509_get0_trust_objects
    - STACK_OF
    - OBJ_obj2txt
    - X509_keyid_get0
    - BIO_puts
    - BIO_printf
    - X509_trusted
    linkageType: ''
    returnType: int
    signature: int X509_aux_print(BIO *out, X509 *x, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ok
    - e
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: null_callback
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int null_callback(int ok, X509_STORE_CTX *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: cert_self_signed
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: int
    signature: int cert_self_signed(X509 *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:122,1
    - Dst: X509_STORE_CTX*::lookup_certs
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:126,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:126,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:130,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:131,1
    - Dst: X509_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:132,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:135,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:136,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 141
    functionName: lookup_cert_match
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX*::lookup_certs
    - STACK_OF
    - X509_up_ref
    - sk_X509_num
    - X509_get_subject_name
    - sk_X509_pop_free
    - X509_cmp
    - sk_X509_value
    linkageType: ''
    returnType: X509
    signature: X509 *lookup_cert_match(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:155,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - x
    - depth
    - err
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: verify_cb_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_value
    - X509_STORE_CTX*::verify_cb
    linkageType: ''
    returnType: int
    signature: int verify_cb_cert(X509_STORE_CTX *ctx, X509 *x, int depth, int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - err
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: verify_cb_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX*::verify_cb
    linkageType: ''
    returnType: int
    signature: int verify_cb_crl(X509_STORE_CTX *ctx, int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:177,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:183,1
    - Dst: check_key_level
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:189,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:190,1
    - Dst: check_sig_level
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:196,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 201
    functionName: check_auth_level
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - check_key_level
    - sk_X509_num
    - verify_cb_cert
    - check_sig_level
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int check_auth_level(X509_STORE_CTX *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: build_chain
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:212,1
    - Dst: check_chain_extensions
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:213,1
    - Dst: check_auth_level
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:214,1
    - Dst: check_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:215,1
    - Dst: X509_get_pubkey_parameters
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:216,1
    - Dst: X509_STORE_CTX*::check_revocation
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:217,1
    - Dst: X509_chain_check_suiteb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:220,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:223,1
    - Dst: X509_STORE_CTX*::verify
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:228,1
    - Dst: internal_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:228,1
    - Dst: check_name_constraints
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:232,1
    - Dst: X509v3_asid_validate_path
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:237,1
    - Dst: X509v3_addr_validate_path
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:239,1
    - Dst: X509_STORE_CTX*::check_policy
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:245,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 247
    functionName: verify_chain
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - check_name_constraints
    - internal_verify
    - build_chain
    - X509_STORE_CTX*::check_policy
    - check_id
    - X509v3_addr_validate_path
    - X509_STORE_CTX*::check_revocation
    - X509_STORE_CTX*::verify
    - X509_chain_check_suiteb
    - verify_cb_cert
    - X509_get_pubkey_parameters
    - check_chain_extensions
    - X509v3_asid_validate_path
    - check_auth_level
    linkageType: ''
    returnType: int
    signature: int verify_chain(X509_STORE_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:255,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:265,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:274,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:275,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:276,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:280,1
    - Dst: check_key_level
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:284,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:285,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:288,1
    - Dst: dane_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:289,1
    - Dst: verify_chain
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:291,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 249
    functionDepth: 5
    functionLinenumber: 249
    functionLinenumberEnd: 301
    functionName: X509_verify_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - check_key_level
    - sk_X509_push
    - sk_X509_new_null
    - dane_verify
    - X509err
    - DANETLS_ENABLED
    - verify_cb_cert
    - verify_chain
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int X509_verify_cert(X509_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:311,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:312,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:313,1
    - Dst: x509_check_cert_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - sk
    - x
    argTypes:
    - X509_STORE_CTX*
    - STACK_OF*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 320
    functionName: find_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_num
    - x509_check_cert_time
    - sk_X509_value
    - X509_STORE_CTX*::check_issued
    linkageType: ''
    returnType: X509
    signature: X509 *find_issuer(X509_STORE_CTX *ctx, STACK_OF(X509) *sk, X509 *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cert_self_signed
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:328,1
    - Dst: X509_check_issued
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:329,1
    - Dst: cert_self_signed
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:334,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:334,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:336,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:337,1
    - Dst: X509_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - x
    - issuer
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: check_issued
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached:
    - sk_X509_num
    - X509_cmp
    - sk_X509_value
    - cert_self_signed
    - X509_check_issued
    linkageType: ''
    returnType: int
    signature: int check_issued(X509_STORE_CTX *ctx, X509 *x, X509 *issuer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:352,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - issuer
    - ctx
    - x
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 358
    functionName: get_issuer_sk
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - find_issuer
    linkageType: ''
    returnType: int
    signature: int get_issuer_sk(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:362,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:366,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:367,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:368,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:368,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:370,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:371,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:372,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:373,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - nm
    argTypes:
    - X509_STORE_CTX*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 381
    functionName: lookup_certs_sk
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_push
    - sk_X509_new_null
    - STACK_OF
    - X509_up_ref
    - sk_X509_num
    - sk_X509_pop_free
    - X509err
    - X509_get_subject_name
    - X509_NAME_cmp
    - sk_X509_value
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *lookup_certs_sk(X509_STORE_CTX *ctx, X509_NAME *nm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:411,1
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:419,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:431,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - x
    - purpose
    - depth
    - must_be_ca
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 432
    functionName: check_purpose
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 6
    functionsReached:
    - X509_check_purpose
    - X509_check_trust
    - verify_cb_cert
    linkageType: ''
    returnType: int
    signature: "int check_purpose(X509_STORE_CTX *ctx, X509 *x, int purpose, int depth,\n
      \                        int must_be_ca)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:446,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:471,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:474,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:479,1
    - Dst: X509_check_ca
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:483,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:517,1
    - Dst: check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:520,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:525,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:550,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 71
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 562
    functionName: check_chain_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_purpose
    - X509_check_ca
    - sk_X509_num
    - verify_cb_cert
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int check_chain_extensions(X509_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:568,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:573,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:574,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - x
    - gtype
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 583
    functionName: has_san_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - X509_get_ext_d2i
    - GENERAL_NAMES_free
    linkageType: ''
    returnType: int
    signature: int has_san_id(X509 *x, int gtype)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:590,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:591,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:605,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:606,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:610,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:622,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:623,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:632,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:632,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:634,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:634,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:644,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:646,1
    - Dst: X509_NAME_delete_entry
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:652,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:654,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:654,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:657,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:661,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:662,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:666,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:676,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:677,1
    - Dst: NAME_CONSTRAINTS_check
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:680,1
    - Dst: has_san_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:688,1
    - Dst: NAME_CONSTRAINTS_check_CN
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:689,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:697,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 56
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 705
    functionName: check_name_constraints
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_NAME_dup
    - X509err
    - X509_get_issuer_name
    - X509_get_subject_name
    - X509_NAME_delete_entry
    - NAME_CONSTRAINTS_check
    - X509_NAME_ENTRY_free
    - X509_NAME_ENTRY_set
    - NAME_CONSTRAINTS_check_CN
    - X509_NAME_entry_count
    - OBJ_obj2nid
    - X509_NAME_cmp
    - has_san_id
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_object
    - sk_X509_num
    - X509_NAME_free
    - verify_cb_cert
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int check_name_constraints(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - errcode
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 710
    functionName: check_id_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - verify_cb_cert
    linkageType: ''
    returnType: int
    signature: int check_id_error(X509_STORE_CTX *ctx, int errcode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:715,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:719,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:723,1
    - Dst: X509_check_host
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - x
    - vpm
    argTypes:
    - X509*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 728
    functionName: check_hosts
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_value
    - OPENSSL_free
    - sk_OPENSSL_STRING_num
    - X509_check_host
    linkageType: ''
    returnType: int
    signature: int check_hosts(X509 *x, X509_VERIFY_PARAM *vpm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_hosts
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:734,1
    - Dst: check_id_error
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:735,1
    - Dst: X509_check_email
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:738,1
    - Dst: check_id_error
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:739,1
    - Dst: X509_check_ip
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:742,1
    - Dst: check_id_error
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:743,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 747
    functionName: check_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_hosts
    - X509_check_email
    - X509_check_ip
    - check_id_error
    linkageType: ''
    returnType: int
    signature: int check_id(X509_STORE_CTX *ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:755,1
    - Dst: DANETLS_HAS_TA
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:762,1
    - Dst: check_dane_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:763,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:777,1
    - Dst: X509_check_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:778,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:802,1
    - Dst: lookup_cert_match
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:803,1
    - Dst: X509_check_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:811,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:813,1
    - Dst: sk_X509_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:818,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:819,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:831,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:836,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 2
    argNames:
    - ctx
    - num_untrusted
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 749
    functionDepth: 3
    functionLinenumber: 749
    functionLinenumberEnd: 844
    functionName: check_trust
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached:
    - X509_free
    - X509_check_trust
    - sk_X509_num
    - sk_X509_set
    - lookup_cert_match
    - check_dane_issuer
    - DANETLS_HAS_TA
    - verify_cb_cert
    - DANETLS_ENABLED
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int check_trust(X509_STORE_CTX *ctx, int num_untrusted)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:852,1
    - Dst: check_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 866
    functionName: check_revocation
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_num
    - check_cert
    linkageType: ''
    returnType: int
    signature: int check_revocation(X509_STORE_CTX *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:873,1
    - Dst: X509_STORE_CTX*::get_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:888,1
    - Dst: get_crl_delta
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:890,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:895,1
    - Dst: X509_STORE_CTX*::check_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:899,1
    - Dst: X509_STORE_CTX*::check_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:904,1
    - Dst: X509_STORE_CTX*::cert_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:907,1
    - Dst: X509_STORE_CTX*::cert_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:915,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:920,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:921,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:929,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:934,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:935,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 939
    functionName: check_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_STORE_CTX*::get_crl
    - get_crl_delta
    - X509_STORE_CTX*::check_crl
    - X509_CRL_free
    - verify_cb_crl
    - sk_X509_value
    - X509_STORE_CTX*::cert_crl
    linkageType: ''
    returnType: int
    signature: int check_cert(X509_STORE_CTX *ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:957,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:957,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:961,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:968,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:972,1
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:973,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:973,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:978,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:985,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 3
    argNames:
    - ctx
    - crl
    - notify
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 994
    functionName: check_crl_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_CRL_get0_nextUpdate
    - verify_cb_crl
    - X509_CRL_get0_lastUpdate
    - X509_cmp_time
    linkageType: ''
    returnType: int
    signature: int check_crl_time(X509_STORE_CTX *ctx, X509_CRL *crl, int notify)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_CRL_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1006,1
    - Dst: sk_X509_CRL_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1007,1
    - Dst: get_crl_score
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1009,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1015,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1015,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1016,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1032,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1037,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1038,1
    - Dst: get_delta_sk
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1040,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 7
    argNames:
    - ctx
    - pcrl
    - pdcrl
    - pissuer
    - pscore
    - preasons
    - crls
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL**
    - X509_CRL**
    - X509**
    - int*
    - unsigned int*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1047
    functionName: get_crl_sk
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_CRL_num
    - X509_CRL_up_ref
    - X509_CRL_get0_lastUpdate
    - get_crl_score
    - X509_CRL_free
    - sk_X509_CRL_value
    - ASN1_TIME_diff
    - get_delta_sk
    linkageType: ''
    returnType: int
    signature: "int get_crl_sk(X509_STORE_CTX *ctx, X509_CRL **pcrl, X509_CRL **pdcrl,\n
      \                     X509 **pissuer, int *pscore, unsigned int *preasons,\n
      \                     STACK_OF(X509_CRL) *crls)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1058,1
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1061,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1063,1
    - Dst: X509_CRL_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1063,1
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1067,1
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1071,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1073,1
    - Dst: X509_CRL_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1073,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1083,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - a
    - b
    - nid
    argTypes:
    - X509_CRL*
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1087
    functionName: crl_extension_match
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_CRL_get_ext
    - X509_EXTENSION_get_data
    - X509_CRL_get_ext_by_NID
    - ASN1_OCTET_STRING_cmp
    linkageType: ''
    returnType: int
    signature: int crl_extension_match(X509_CRL *a, X509_CRL *b, int nid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1100,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1100,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1100,1
    - Dst: crl_extension_match
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1103,1
    - Dst: crl_extension_match
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1105,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1108,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - delta
    - base
    argTypes:
    - X509_CRL*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1114
    functionName: check_delta_base
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - crl_extension_match
    - X509_CRL_get_issuer
    - X509_NAME_cmp
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int check_delta_base(X509_CRL *delta, X509_CRL *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_CRL_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1130,1
    - Dst: sk_X509_CRL_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1131,1
    - Dst: check_delta_base
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1132,1
    - Dst: check_crl_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1133,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - dcrl
    - pscore
    - base
    - crls
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL**
    - int*
    - X509_CRL*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1121
    functionDepth: 4
    functionLinenumber: 1121
    functionLinenumberEnd: 1141
    functionName: get_delta_sk
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_crl_time
    - sk_X509_CRL_num
    - X509_CRL_up_ref
    - sk_X509_CRL_value
    - check_delta_base
    linkageType: ''
    returnType: void
    signature: "void get_delta_sk(X509_STORE_CTX *ctx, X509_CRL **dcrl, int *pscore,\n
      \                        X509_CRL *base, STACK_OF(X509_CRL) *crls)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1176,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1176,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1176,1
    - Dst: check_crl_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1186,1
    - Dst: crl_akid_check
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1190,1
    - Dst: crl_crldp_check
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1199,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - ctx
    - pissuer
    - preasons
    - crl
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509**
    - unsigned int*
    - X509_CRL*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1211
    functionName: get_crl_score
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_crl_time
    - crl_crldp_check
    - X509_CRL_get_issuer
    - X509_get_issuer_name
    - X509_NAME_cmp
    - crl_akid_check
    linkageType: ''
    returnType: int
    signature: "int get_crl_score(X509_STORE_CTX *ctx, X509 **pissuer,\n                         unsigned
      int *preasons, X509_CRL *crl, X509 *x)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1217,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1221,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1224,1
    - Dst: X509_check_akid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1226,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1234,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1235,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1236,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1236,1
    - Dst: X509_check_akid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1238,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1254,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1255,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1256,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1256,1
    - Dst: X509_check_akid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1258,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - crl
    - pissuer
    - pcrl_score
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    - X509**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1264
    functionName: crl_akid_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_check_akid
    - X509_CRL_get_issuer
    - sk_X509_num
    - X509_get_subject_name
    - X509_NAME_cmp
    - sk_X509_value
    linkageType: ''
    returnType: void
    signature: "void crl_akid_check(X509_STORE_CTX *ctx, X509_CRL *crl,\n                           X509
      **pissuer, int *pcrl_score)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1281,1
    - Dst: X509_STORE_CTX_set0_param
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1286,1
    - Dst: X509_verify_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1292,1
    - Dst: check_crl_chain
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1297,1
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1273
    functionDepth: 6
    functionLinenumber: 1273
    functionLinenumberEnd: 1301
    functionName: check_crl_path
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_cleanup
    - X509_STORE_CTX_init
    - X509_verify_cert
    - X509_STORE_CTX_set0_param
    - check_crl_chain
    linkageType: ''
    returnType: int
    signature: int check_crl_path(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1347,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1365,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1366,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1369,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1377,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1378,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1379,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1380,1
    - Dst: GENERAL_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1381,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - DIST_POINT_NAME*
    - DIST_POINT_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1388
    functionName: idp_check_dp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_cmp
    - X509_NAME_cmp
    - sk_GENERAL_NAME_num
    - sk_GENERAL_NAME_value
    linkageType: ''
    returnType: int
    signature: int idp_check_dp(DIST_POINT_NAME *a, DIST_POINT_NAME *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1393,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1397,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1398,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - dp
    - crl
    - crl_score
    argTypes:
    - DIST_POINT*
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1405
    functionName: crldp_check_crlissuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_CRL_get_issuer
    - X509_NAME_cmp
    - sk_GENERAL_NAME_num
    - sk_GENERAL_NAME_value
    linkageType: ''
    returnType: int
    signature: int crldp_check_crlissuer(DIST_POINT *dp, X509_CRL *crl, int crl_score)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_DIST_POINT_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1423,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1424,1
    - Dst: crldp_check_crlissuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1425,1
    - Dst: idp_check_dp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1426,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - x
    - crl
    - crl_score
    - preasons
    argTypes:
    - X509*
    - X509_CRL*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1409
    functionDepth: 2
    functionLinenumber: 1409
    functionLinenumberEnd: 1436
    functionName: crl_crldp_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - crldp_check_crlissuer
    - sk_DIST_POINT_value
    - idp_check_dp
    - sk_DIST_POINT_num
    linkageType: ''
    returnType: int
    signature: "int crl_crldp_check(X509 *x, X509_CRL *crl, int crl_score,\n                           unsigned
      int *preasons)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1451,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1452,1
    - Dst: get_crl_sk
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1455,1
    - Dst: X509_STORE_CTX*::lookup_crls
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1462,1
    - Dst: get_crl_sk
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1468,1
    - Dst: sk_X509_CRL_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - pcrl
    - pdcrl
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL**
    - X509_CRL**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1443
    functionDepth: 3
    functionLinenumber: 1443
    functionLinenumberEnd: 1483
    functionName: get_crl_delta
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_CRL_pop_free
    - get_crl_sk
    - STACK_OF
    - X509_STORE_CTX*::lookup_crls
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: "int get_crl_delta(X509_STORE_CTX *ctx,\n                         X509_CRL
      **pcrl, X509_CRL **pdcrl, X509 *x)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1491,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1501,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1503,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1505,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1506,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1520,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1524,1
    - Dst: check_crl_path
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1528,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1529,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1533,1
    - Dst: check_crl_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1538,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1542,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1545,1
    - Dst: X509_CRL_check_suiteb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1549,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1551,1
    - Dst: X509_CRL_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1554,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1555,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - crl
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1486
    functionDepth: 7
    functionLinenumber: 1486
    functionLinenumberEnd: 1559
    functionName: check_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_crl_time
    - X509_CRL_verify
    - X509_CRL_check_suiteb
    - X509_STORE_CTX*::check_issued
    - sk_X509_num
    - verify_cb_crl
    - X509_get0_pubkey
    - sk_X509_value
    - check_crl_path
    linkageType: ''
    returnType: int
    signature: int check_crl(X509_STORE_CTX *ctx, X509_CRL *crl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1574,1
    - Dst: X509_CRL_get0_by_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1580,1
    - Dst: verify_cb_crl
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - crl
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1562
    functionDepth: 1
    functionLinenumber: 1562
    functionLinenumberEnd: 1588
    functionName: cert_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - verify_cb_crl
    - X509_CRL_get0_by_cert
    linkageType: ''
    returnType: int
    signature: int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1607,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1608,1
    - Dst: X509_policy_check
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1612,1
    - Dst: sk_X509_pop
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1615,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1618,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1627,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1628,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1632,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1641,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1644,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1656,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1590
    functionDepth: 1
    functionLinenumber: 1590
    functionLinenumberEnd: 1661
    functionName: check_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_push
    - X509_STORE_CTX*::verify_cb
    - X509err
    - sk_X509_pop
    - X509_policy_check
    - sk_X509_num
    - verify_cb_cert
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int check_policy(X509_STORE_CTX *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1682,1
    - Dst: X509_get0_notBefore
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1682,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1685,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1688,1
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1691,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1691,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1694,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1697,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - x
    - depth
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1700
    functionName: x509_check_cert_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_get0_notBefore
    - X509_get0_notAfter
    - verify_cb_cert
    - X509_cmp_time
    linkageType: ''
    returnType: int
    signature: int x509_check_cert_time(X509_STORE_CTX *ctx, X509 *x, int depth)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1704,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1705,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1719,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1727,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1731,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1748,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1749,1
    - Dst: X509_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1752,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1753,1
    - Dst: x509_check_cert_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1761,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1771,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1776,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1702
    functionDepth: 3
    functionLinenumber: 1702
    functionLinenumberEnd: 1780
    functionName: internal_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_STORE_CTX*::check_issued
    - X509_verify
    - X509_STORE_CTX*::verify_cb
    - sk_X509_num
    - verify_cb_cert
    - X509_get0_pubkey
    - x509_check_cert_time
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int internal_verify(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctm
    argTypes:
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1782
    functionDepth: 1
    functionLinenumber: 1782
    functionLinenumberEnd: 1785
    functionName: X509_cmp_current_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_cmp_time
    linkageType: ''
    returnType: int
    signature: int X509_cmp_current_time(const ASN1_TIME *ctm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ascii_isdigit
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1828,1
    - Dst: X509_time_adj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1839,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1842,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1852,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - ctm
    - cmp_time
    argTypes:
    - ASN1_TIME*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1787
    functionDepth: 1
    functionLinenumber: 1787
    functionLinenumberEnd: 1854
    functionName: X509_cmp_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached:
    - ASN1_TIME_free
    - ascii_isdigit
    - ASN1_TIME_diff
    - X509_time_adj
    linkageType: ''
    returnType: int
    signature: int X509_cmp_time(const ASN1_TIME *ctm, time_t *cmp_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_time_adj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - adj
    argTypes:
    - ASN1_TIME*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1859
    functionName: X509_gmtime_adj
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_time_adj
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_time_adj_ex
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - offset_sec
    - in_tm
    argTypes:
    - ASN1_TIME*
    - long
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1864
    functionName: X509_time_adj
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_time_adj_ex
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_time_adj(ASN1_TIME *s, long offset_sec, time_t *in_tm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1874,1
    - Dst: ASN1_UTCTIME_adj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1878,1
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1880,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1882,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - s
    - offset_day
    - offset_sec
    - in_tm
    argTypes:
    - ASN1_TIME*
    - int
    - long
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1883
    functionName: X509_time_adj_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - ASN1_UTCTIME_adj
    - ASN1_TIME_adj
    - ASN1_GENERALIZEDTIME_adj
    - time
    linkageType: ''
    returnType: ASN1_TIME
    signature: "ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s,\n                            int
      offset_day, long offset_sec, time_t *in_tm)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1927,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1930,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1935,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1939,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1939,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1939,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1940,1
    - Dst: crl_extension_match
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1944,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1945,1
    - Dst: crl_extension_match
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1948,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1949,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1953,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1954,1
    - Dst: X509_CRL_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1958,1
    - Dst: X509_CRL_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1959,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1960,1
    - Dst: X509_CRL_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1964,1
    - Dst: X509_CRL_set_version
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1965,1
    - Dst: X509_CRL_set_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1968,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1968,1
    - Dst: X509_CRL_set1_lastUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1971,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1971,1
    - Dst: X509_CRL_set1_nextUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1973,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1973,1
    - Dst: X509_CRL_add1_ext_i2d
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1978,1
    - Dst: X509_CRL_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1986,1
    - Dst: X509_CRL_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1988,1
    - Dst: X509_CRL_add_ext
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1989,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1995,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1997,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:1999,1
    - Dst: X509_CRL_get0_by_serial
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2004,1
    - Dst: X509_REVOKED_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2005,1
    - Dst: X509_CRL_add0_revoked
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2008,1
    - Dst: X509_REVOKED_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2009,1
    - Dst: X509_CRL_sign
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2016,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2022,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2023,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 76
    argCount: 5
    argNames:
    - base
    - newer
    - skey
    - md
    - flags
    argTypes:
    - X509_CRL*
    - X509_CRL*
    - EVP_PKEY*
    - EVP_MD*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 1922
    functionDepth: 3
    functionLinenumber: 1922
    functionLinenumberEnd: 2025
    functionName: X509_CRL_diff
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_CRL_set1_nextUpdate
    - X509_CRL_set1_lastUpdate
    - X509_REVOKED_dup
    - X509_CRL_get0_nextUpdate
    - X509_CRL_add1_ext_i2d
    - X509_CRL_set_version
    - X509_CRL_get0_lastUpdate
    - STACK_OF
    - X509_CRL_new
    - X509err
    - X509_CRL_verify
    - X509_CRL_add0_revoked
    - X509_CRL_free
    - X509_CRL_get_issuer
    - X509_CRL_get_ext
    - X509_REVOKED_free
    - X509_CRL_get0_by_serial
    - X509_CRL_get_ext_count
    - crl_extension_match
    - sk_X509_REVOKED_num
    - X509_CRL_set_issuer_name
    - X509_NAME_cmp
    - sk_X509_REVOKED_value
    - ASN1_INTEGER_cmp
    - X509_CRL_get_REVOKED
    - X509_CRL_sign
    - X509_CRL_add_ext
    linkageType: ''
    returnType: X509_CRL
    signature: "X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer,\n                        EVP_PKEY
      *skey, const EVP_MD *md, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - idx
    - data
    argTypes:
    - X509_STORE_CTX*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2027
    functionDepth: 2
    functionLinenumber: 2027
    functionLinenumberEnd: 2030
    functionName: X509_STORE_CTX_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2032
    functionDepth: 1
    functionLinenumber: 2032
    functionLinenumberEnd: 2035
    functionName: X509_STORE_CTX_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2040
    functionName: X509_STORE_CTX_get_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - err
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2042
    functionDepth: 0
    functionLinenumber: 2042
    functionLinenumberEnd: 2045
    functionName: X509_STORE_CTX_set_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2047
    functionDepth: 0
    functionLinenumber: 2047
    functionLinenumberEnd: 2050
    functionName: X509_STORE_CTX_get_error_depth
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2055
    functionName: X509_STORE_CTX_set_error_depth
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2060
    functionName: X509_STORE_CTX_get_current_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2062
    functionDepth: 0
    functionLinenumber: 2062
    functionLinenumberEnd: 2065
    functionName: X509_STORE_CTX_set_current_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2082
    functionName: X509_STORE_CTX_get0_current_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2087
    functionName: X509_STORE_CTX_get0_current_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2092
    functionName: X509_STORE_CTX_get0_parent_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX
    signature: X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2094
    functionDepth: 0
    functionLinenumber: 2094
    functionLinenumberEnd: 2097
    functionName: X509_STORE_CTX_set_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_purpose_inherit
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - purpose
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2112
    functionName: X509_STORE_CTX_set_purpose
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_purpose_inherit
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_purpose_inherit
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - trust
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2114
    functionDepth: 1
    functionLinenumber: 2114
    functionLinenumberEnd: 2121
    functionName: X509_STORE_CTX_set_trust
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_purpose_inherit
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2144,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2146,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2150,1
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2152,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2159,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2163,1
    - Dst: X509_TRUST_get_by_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2170,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2172,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - def_purpose
    - purpose
    - trust
    argTypes:
    - X509_STORE_CTX*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2183
    functionName: X509_STORE_CTX_purpose_inherit
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_PURPOSE_get_by_id
    - X509_PURPOSE_get0
    - X509_TRUST_get_by_id
    - X509err
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,\n
      \                                  int purpose, int trust)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2187,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2185
    functionDepth: 1
    functionLinenumber: 2185
    functionLinenumberEnd: 2194
    functionName: X509_STORE_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_STORE_CTX
    signature: X509_STORE_CTX *X509_STORE_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2201,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2203
    functionName: X509_STORE_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_cleanup
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_free(X509_STORE_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX*::cleanup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2364,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2369,1
    - Dst: X509_policy_tree_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2372,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2374,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2376,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2354
    functionDepth: 3
    functionLinenumber: 2354
    functionLinenumberEnd: 2378
    functionName: X509_STORE_CTX_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_STORE_CTX*::cleanup
    - X509_policy_tree_free
    - X509_VERIFY_PARAM_free
    - CRYPTO_free_ex_data
    - memset
    - sk_X509_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2380
    functionDepth: 1
    functionLinenumber: 2380
    functionLinenumberEnd: 2383
    functionName: X509_STORE_CTX_set_depth
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - X509_STORE_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2385
    functionDepth: 1
    functionLinenumber: 2385
    functionLinenumberEnd: 2388
    functionName: X509_STORE_CTX_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_flags
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_time
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - flags
    - t
    argTypes:
    - X509_STORE_CTX*
    - unsigned long
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2390
    functionDepth: 1
    functionLinenumber: 2390
    functionLinenumberEnd: 2394
    functionName: X509_STORE_CTX_set_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_time
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,\n
      \                            time_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2396
    functionDepth: 0
    functionLinenumber: 2396
    functionLinenumberEnd: 2399
    functionName: X509_STORE_CTX_get0_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify_cb
    argTypes:
    - X509_STORE_CTX*
    - X509_STORE_CTX_verify_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2417
    functionDepth: 0
    functionLinenumber: 2417
    functionLinenumberEnd: 2421
    functionName: X509_STORE_CTX_set_verify_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,\n                                  X509_STORE_CTX_verify_cb
      verify_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2423
    functionDepth: 0
    functionLinenumber: 2423
    functionLinenumberEnd: 2426
    functionName: X509_STORE_CTX_get_verify_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_cb
    signature: X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify
    argTypes:
    - X509_STORE_CTX*
    - X509_STORE_CTX_verify_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2428
    functionDepth: 0
    functionLinenumber: 2428
    functionLinenumberEnd: 2432
    functionName: X509_STORE_CTX_set_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx,\n                               X509_STORE_CTX_verify_fn
      verify)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2434
    functionDepth: 0
    functionLinenumber: 2434
    functionLinenumberEnd: 2437
    functionName: X509_STORE_CTX_get_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_fn
    signature: X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2439
    functionDepth: 0
    functionLinenumber: 2439
    functionLinenumberEnd: 2442
    functionName: X509_STORE_CTX_get_get_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_issuer_fn
    signature: X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2444
    functionDepth: 0
    functionLinenumber: 2444
    functionLinenumberEnd: 2447
    functionName: X509_STORE_CTX_get_check_issued
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_issued_fn
    signature: X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2449
    functionDepth: 0
    functionLinenumber: 2449
    functionLinenumberEnd: 2452
    functionName: X509_STORE_CTX_get_check_revocation
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_revocation_fn
    signature: X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2454
    functionDepth: 0
    functionLinenumber: 2454
    functionLinenumberEnd: 2457
    functionName: X509_STORE_CTX_get_get_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_crl_fn
    signature: X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2459
    functionDepth: 0
    functionLinenumber: 2459
    functionLinenumberEnd: 2462
    functionName: X509_STORE_CTX_get_check_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_crl_fn
    signature: X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2464
    functionDepth: 0
    functionLinenumber: 2464
    functionLinenumberEnd: 2467
    functionName: X509_STORE_CTX_get_cert_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cert_crl_fn
    signature: X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2469
    functionDepth: 0
    functionLinenumber: 2469
    functionLinenumberEnd: 2472
    functionName: X509_STORE_CTX_get_check_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_policy_fn
    signature: X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2474
    functionDepth: 0
    functionLinenumber: 2474
    functionLinenumberEnd: 2477
    functionName: X509_STORE_CTX_get_lookup_certs
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_certs_fn
    signature: X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2479
    functionDepth: 0
    functionLinenumber: 2479
    functionLinenumberEnd: 2482
    functionName: X509_STORE_CTX_get_lookup_crls
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_crls_fn
    signature: X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2484
    functionDepth: 0
    functionLinenumber: 2484
    functionLinenumberEnd: 2487
    functionName: X509_STORE_CTX_get_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cleanup_fn
    signature: X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2489
    functionDepth: 0
    functionLinenumber: 2489
    functionLinenumberEnd: 2492
    functionName: X509_STORE_CTX_get0_policy_tree
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_POLICY_TREE
    signature: X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2494
    functionDepth: 0
    functionLinenumber: 2494
    functionLinenumberEnd: 2497
    functionName: X509_STORE_CTX_get_explicit_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2499
    functionDepth: 0
    functionLinenumber: 2499
    functionLinenumberEnd: 2502
    functionName: X509_STORE_CTX_get_num_untrusted
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_lookup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2507,1
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - X509_STORE_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2504
    functionDepth: 2
    functionLinenumber: 2504
    functionLinenumberEnd: 2511
    functionName: X509_STORE_CTX_set_default
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_inherit
    - X509_VERIFY_PARAM_lookup
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2513
    functionDepth: 0
    functionLinenumber: 2513
    functionLinenumberEnd: 2516
    functionName: X509_STORE_CTX_get0_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - param
    argTypes:
    - X509_STORE_CTX*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2518
    functionDepth: 2
    functionLinenumber: 2518
    functionLinenumberEnd: 2522
    functionName: X509_STORE_CTX_set0_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_VERIFY_PARAM_free
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM
      *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - dane
    argTypes:
    - X509_STORE_CTX*
    - SSL_DANE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2524
    functionDepth: 0
    functionLinenumber: 2524
    functionLinenumberEnd: 2527
    functionName: X509_STORE_CTX_set0_dane
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2542,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2545,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2545,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2548,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - cert
    - selector
    - i2dlen
    argTypes:
    - X509*
    - uint8_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2529
    functionDepth: 1
    functionLinenumber: 2529
    functionLinenumberEnd: 2559
    functionName: dane_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - i2d_X509_PUBKEY
    - X509_get_X509_PUBKEY
    - i2d_X509
    - X509err
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *dane_i2d(\n    X509 *cert,\n    uint8_t selector,\n
      \   unsigned int *i2dlen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_danetls_record_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2625,1
    - Dst: sk_danetls_record_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2627,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2628,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2641,1
    - Dst: dane_i2d
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2642,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2674,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2687,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2688,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2693,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2695,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2702,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 3
    argNames:
    - ctx
    - cert
    - depth
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2563
    functionDepth: 5
    functionLinenumber: 2563
    functionLinenumberEnd: 2704
    functionName: dane_match
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - DANETLS_USAGE_BIT
    - dane_i2d
    - memcmp
    - OPENSSL_free
    - sk_danetls_record_num
    - sk_danetls_record_value
    - EVP_Digest
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int dane_match(X509_STORE_CTX *ctx, X509 *cert, int depth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_HAS_TA
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2712,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2720,1
    - Dst: dane_match
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2706
    functionDepth: 6
    functionLinenumber: 2706
    functionLinenumberEnd: 2729
    functionName: check_dane_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - DANETLS_HAS_TA
    - sk_X509_value
    - dane_match
    linkageType: ''
    returnType: int
    signature: int check_dane_issuer(X509_STORE_CTX *ctx, int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2736,1
    - Dst: sk_danetls_record_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2737,1
    - Dst: sk_danetls_record_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2741,1
    - Dst: X509_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2745,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2749,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2758,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2760,1
    - Dst: sk_X509_pop
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2760,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2731
    functionDepth: 2
    functionLinenumber: 2731
    functionLinenumberEnd: 2766
    functionName: check_dane_pkeys
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_verify
    - sk_danetls_record_num
    - sk_danetls_record_value
    - sk_X509_num
    - sk_X509_pop
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int check_dane_pkeys(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dane
    argTypes:
    - SSL_DANE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2768
    functionDepth: 0
    functionLinenumber: 2768
    functionLinenumberEnd: 2778
    functionName: dane_reset
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: void
    signature: void dane_reset(SSL_DANE *dane)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_chain_check_suiteb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2782,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2787
      start: 2780
    functionDepth: 4
    functionLinenumber: 2780
    functionLinenumberEnd: 2787
    functionName: check_leaf_suiteb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_chain_check_suiteb
    - verify_cb_cert
    linkageType: ''
    returnType: int
    signature: int check_leaf_suiteb(X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dane_reset
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2796,1
    - Dst: dane_match
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2810,1
    - Dst: DANETLS_HAS_TA
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2811,1
    - Dst: X509_get_pubkey_parameters
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2814,1
    - Dst: check_leaf_suiteb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2818,1
    - Dst: check_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2822,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2827,1
    - Dst: check_leaf_suiteb
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2839,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2841,1
    - Dst: verify_chain
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2848,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2789
    functionDepth: 6
    functionLinenumber: 2789
    functionLinenumberEnd: 2849
    functionName: dane_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_leaf_suiteb
    - check_id
    - X509_STORE_CTX*::verify_cb
    - dane_reset
    - DANETLS_HAS_TA
    - verify_cb_cert
    - X509_get_pubkey_parameters
    - dane_match
    - verify_chain
    linkageType: ''
    returnType: int
    signature: int dane_verify(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2854,1
    - Dst: X509_STORE_CTX*::get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - issuer
    - ctx
    - cert
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2852
    functionDepth: 1
    functionLinenumber: 2852
    functionLinenumberEnd: 2862
    functionName: get_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 6
    functionsReached:
    - X509_STORE_CTX*::get_issuer
    - STACK_OF
    linkageType: ''
    returnType: int
    signature: int get_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2867,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2868,1
    - Dst: cert_self_signed
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2869,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2870,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2881,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2882,1
    - Dst: DANETLS_HAS_PKIX
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2898,1
    - Dst: DANETLS_HAS_DANE
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2898,1
    - Dst: sk_X509_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2911,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2912,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2927,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2928,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2929,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2933,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2934,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2934,1
    - Dst: sk_X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2935,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2936,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2976,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2995,1
    - Dst: get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:2997,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3022,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3023,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3024,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3032,1
    - Dst: sk_X509_pop
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3032,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3035,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3038,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3041,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3051,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3052,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3053,1
    - Dst: cert_self_signed
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3059,1
    - Dst: X509_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3067,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3069,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3072,1
    - Dst: sk_X509_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3074,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3092,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3093,1
    - Dst: check_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3100,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3136,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3137,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3138,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3144,1
    - Dst: find_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3150,1
    - Dst: sk_X509_delete_ptr
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3159,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3161,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3162,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3169,1
    - Dst: cert_self_signed
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3171,1
    - Dst: check_dane_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3176,1
    - Dst: sk_X509_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3184,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3190,1
    - Dst: DANETLS_HAS_DANE_TA
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3192,1
    - Dst: check_dane_pkeys
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3193,1
    - Dst: check_trust
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3195,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3206,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3208,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3210,1
    - Dst: DANETLS_HAS_PKIX
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3211,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3212,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3213,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3214,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3217,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3220,1
    - Dst: verify_cb_cert
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3222,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 188
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 2864
    functionDepth: 7
    functionLinenumber: 2864
    functionLinenumberEnd: 3225
    functionName: build_chain
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - DANETLS_HAS_DANE
    - find_issuer
    - STACK_OF
    - X509err
    - sk_X509_free
    - DANETLS_HAS_DANE_TA
    - X509_free
    - check_trust
    - X509_up_ref
    - X509_cmp
    - ossl_assert
    - sk_X509_delete_ptr
    - sk_X509_dup
    - check_dane_pkeys
    - sk_X509_set
    - check_dane_issuer
    - DANETLS_HAS_PKIX
    - sk_X509_push
    - sk_X509_new_null
    - sk_X509_num
    - get_issuer
    - DANETLS_ENABLED
    - sk_X509_pop
    - verify_cb_cert
    - sk_X509_value
    - cert_self_signed
    linkageType: ''
    returnType: int
    signature: int build_chain(X509_STORE_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3238,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3236
    functionDepth: 2
    functionLinenumber: 3236
    functionLinenumberEnd: 3258
    functionName: check_key_level
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_get0_pubkey
    - EVP_PKEY_security_bits
    linkageType: ''
    returnType: int
    signature: int check_key_level(X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_signature_info
      Src: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c:3277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3281
      start: 3267
    functionDepth: 2
    functionLinenumber: 3267
    functionLinenumberEnd: 3281
    functionName: check_sig_level
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_get_signature_info
    linkageType: ''
    returnType: int
    signature: int check_sig_level(X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_set_cmp_func
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: crl_inf_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - sk_X509_REVOKED_set_cmp_func
    linkageType: ''
    returnType: int
    signature: "int crl_inf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                     void *exarg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:87,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:89,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:92,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:93,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:94,1
    - Dst: X509_REVOKED_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:97,1
    - Dst: sk_GENERAL_NAMES_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:107,1
    - Dst: sk_GENERAL_NAMES_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:111,1
    - Dst: X509_REVOKED_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:116,1
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:123,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:124,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:132,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:133,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:134,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:135,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:135,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 146
    functionName: crl_set_issuers
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - sk_X509_REVOKED_value
    - sk_GENERAL_NAMES_new_null
    - OBJ_obj2nid
    - ASN1_ENUMERATED_free
    - X509_REVOKED_get_ext_d2i
    - X509_EXTENSION_get_object
    - sk_X509_REVOKED_num
    - STACK_OF
    - ASN1_ENUMERATED_get
    - X509_EXTENSION_get_critical
    - X509_CRL_get_REVOKED
    - sk_X509_EXTENSION_value
    - sk_GENERAL_NAMES_push
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: int crl_set_issuers(X509_CRL *crl)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:156,1
    - Dst: X509_CRL*::meth::crl_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:163,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:166,1
    - Dst: ISSUING_DIST_POINT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:167,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:168,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:169,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:170,1
    - Dst: X509_CRL_digest
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:187,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:187,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:189,1
    - Dst: setup_idp
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:193,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:200,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:206,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:211,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:229,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:231,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:232,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:232,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:235,1
    - Dst: crl_set_issuers
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:246,1
    - Dst: X509_CRL*::meth::crl_init
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:250,1
    - Dst: X509_CRL*::meth::crl_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:259,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:262,1
    - Dst: ISSUING_DIST_POINT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:263,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:264,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:265,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:266,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 270
    functionName: crl_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - setup_idp
    - crl_set_issuers
    - ISSUING_DIST_POINT_free
    - X509_EXTENSION_get_object
    - EVP_sha1
    - ASN1_INTEGER_free
    - AUTHORITY_KEYID_free
    - STACK_OF
    - X509_CRL_get_ext_d2i
    - sk_GENERAL_NAMES_pop_free
    - X509_EXTENSION_get_critical
    - X509_CRL*::meth::crl_init
    - X509_CRL_digest
    - X509_CRL*::meth::crl_free
    - OBJ_obj2nid
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: "int crl_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DIST_POINT_set_dpname
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:308,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:308,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - crl
    - idp
    argTypes:
    - X509_CRL*
    - ISSUING_DIST_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 309
    functionName: setup_idp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL_get_issuer
    - DIST_POINT_set_dpname
    linkageType: ''
    returnType: int
    signature: int setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_REVOKED**
    - X509_REVOKED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: X509_REVOKED_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: "int X509_REVOKED_cmp(const X509_REVOKED *const *a,\n                            const
      X509_REVOKED *const *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:340,1
    - Dst: sk_X509_REVOKED_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:341,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - crl
    - rev
    argTypes:
    - X509_CRL*
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 347
    functionName: X509_CRL_add0_revoked
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - sk_X509_REVOKED_push
    - ASN1err
    - sk_X509_REVOKED_new
    linkageType: ''
    returnType: int
    signature: int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL*::meth::crl_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - crl
    - r
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: X509_CRL_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 2
    functionsReached:
    - X509_CRL*::meth::crl_verify
    linkageType: ''
    returnType: int
    signature: int X509_CRL_verify(X509_CRL *crl, EVP_PKEY *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL*::meth::crl_lookup
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crl
    - ret
    - serial
    argTypes:
    - X509_CRL*
    - X509_REVOKED**
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: X509_CRL_get0_by_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL*::meth::crl_lookup
    linkageType: ''
    returnType: int
    signature: "int X509_CRL_get0_by_serial(X509_CRL *crl,\n                            X509_REVOKED
      **ret, ASN1_INTEGER *serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL*::meth::crl_lookup
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:367,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:368,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crl
    - ret
    - x
    argTypes:
    - X509_CRL*
    - X509_REVOKED**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 371
    functionName: X509_CRL_get0_by_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - X509_get_issuer_name
    - X509_CRL*::meth::crl_lookup
    - X509_get_serialNumber
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:375,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crl
    - r
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: def_crl_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify
    linkageType: ''
    returnType: int
    signature: int def_crl_verify(X509_CRL *crl, EVP_PKEY *r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:387,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:387,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:393,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:395,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:396,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:399,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - crl
    - nm
    - rev
    argTypes:
    - X509_CRL*
    - X509_NAME*
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 404
    functionName: crl_revoked_issuer_match
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - X509_CRL_get_issuer
    - X509_NAME_cmp
    - sk_GENERAL_NAME_num
    - sk_GENERAL_NAME_value
    linkageType: ''
    returnType: int
    signature: "int crl_revoked_issuer_match(X509_CRL *crl, X509_NAME *nm,\n                                    X509_REVOKED
      *rev)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_is_sorted
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:420,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:421,1
    - Dst: sk_X509_REVOKED_sort
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:422,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:423,1
    - Dst: sk_X509_REVOKED_find
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:426,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:430,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:431,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:432,1
    - Dst: crl_revoked_issuer_match
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:434,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - crl
    - ret
    - serial
    - issuer
    argTypes:
    - X509_CRL*
    - X509_REVOKED**
    - ASN1_INTEGER*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 443
    functionName: def_crl_lookup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - sk_X509_REVOKED_value
    - sk_X509_REVOKED_find
    - crl_revoked_issuer_match
    - sk_X509_REVOKED_num
    - ASN1_INTEGER_cmp
    - CRYPTO_THREAD_unlock
    - sk_X509_REVOKED_sort
    - sk_X509_REVOKED_is_sorted
    linkageType: ''
    returnType: int
    signature: "int def_crl_lookup(X509_CRL *crl,\n                          X509_REVOKED
      **ret, ASN1_INTEGER *serial,\n                          X509_NAME *issuer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meth
    argTypes:
    - X509_CRL_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: X509_CRL_set_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_CRL_set_default_method(const X509_CRL_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:462,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 474
    functionName: X509_CRL_METHOD_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - X509err
    - OPENSSL_malloc
    linkageType: ''
    returnType: X509_CRL_METHOD
    signature: "X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl),\n
      \                                    int (*crl_free) (X509_CRL *crl),\n                                     int
      (*crl_lookup) (X509_CRL *crl,\n                                                        X509_REVOKED
      **ret,\n                                                        ASN1_INTEGER
      *ser,\n                                                        X509_NAME *issuer),\n
      \                                    int (*crl_verify) (X509_CRL *crl,\n                                                        EVP_PKEY
      *pk))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_crl.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - X509_CRL_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: X509_CRL_METHOD_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509_CRL_METHOD_free(X509_CRL_METHOD *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crl
    - dat
    argTypes:
    - X509_CRL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: X509_CRL_set_meth_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_CRL_set_meth_data(X509_CRL *crl, void *dat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: X509_CRL_get_meth_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *X509_CRL_get_meth_data(X509_CRL *crl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/x509/x509_err.c:177,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/x509/x509_err.c:178,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/x509/x509_err.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: ERR_load_X509_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_X509_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:26,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:26,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:27,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:30,1
    - Dst: X509_REQ_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:31,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: X509_REQ_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_req.c
    functionUses: 0
    functionsReached:
    - X509_REQ_print
    - BIO_s_file
    - X509err
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int X509_REQ_print_fp(FILE *fp, X509_REQ *x)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:43,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:56,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:58,1
    - Dst: X509_REQ_get_version
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:62,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:67,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:72,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:74,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:74,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:77,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:83,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:85,1
    - Dst: X509_REQ_get_X509_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:87,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:88,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:89,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:91,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:94,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:96,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:98,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:100,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:107,1
    - Dst: X509_REQ_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:111,1
    - Dst: X509_REQ_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:114,1
    - Dst: X509_REQ_get_attr
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:121,1
    - Dst: X509_ATTRIBUTE_get0_object
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:122,1
    - Dst: X509_REQ_extension_nid
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:123,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:123,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:125,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:127,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:129,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:131,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:135,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:140,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:142,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:150,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:153,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:157,1
    - Dst: X509_REQ_get_extensions
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:167,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:169,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:171,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:175,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:176,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:178,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:179,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:181,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:182,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:184,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:185,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:186,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:187,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:190,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:193,1
    - Dst: X509_REQ_get0_signature
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:200,1
    - Dst: X509_signature_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:201,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:207,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 170
    argCount: 4
    argNames:
    - bp
    - x
    - nmflags
    - cflag
    argTypes:
    - BIO*
    - X509_REQ*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 209
    functionName: X509_REQ_print_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_req.c
    functionUses: 0
    functionsReached:
    - X509_ATTRIBUTE_get0_object
    - X509_NAME_print_ex
    - i2a_ASN1_OBJECT
    - X509_PUBKEY_get0_param
    - STACK_OF
    - EVP_PKEY_print_public
    - X509err
    - X509_REQ_get0_signature
    - X509_REQ_get_subject_name
    - ASN1_STRING_print
    - X509_REQ_get_attr
    - X509_EXTENSION_get_object
    - BIO_puts
    - X509_EXTENSION_get_data
    - sk_X509_EXTENSION_value
    - X509_ATTRIBUTE_get0_type
    - X509_REQ_get_attr_count
    - X509_ATTRIBUTE_count
    - X509_REQ_get_version
    - X509_REQ_get_extensions
    - sk_X509_EXTENSION_pop_free
    - OBJ_obj2nid
    - X509_signature_print
    - BIO_write
    - X509_REQ_get0_pubkey
    - X509_REQ_extension_nid
    - X509_REQ_get_X509_PUBKEY
    - X509_EXTENSION_get_critical
    - X509V3_EXT_print
    - BIO_printf
    - ERR_print_errors
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflags,\n
      \                     unsigned long cflag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509/t_req.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: X509_REQ_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_req.c
    functionUses: 1
    functionsReached:
    - X509_REQ_print_ex
    linkageType: ''
    returnType: int
    signature: int X509_REQ_print(BIO *bp, X509_REQ *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:24,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:24,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:25,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:28,1
    - Dst: X509_CRL_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:29,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: X509_CRL_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_crl.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - X509err
    - X509_CRL_print
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int X509_CRL_print_fp(FILE *fp, X509_CRL *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - BIO*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: X509_CRL_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL_print_ex
    linkageType: ''
    returnType: int
    signature: int X509_CRL_print(BIO *out, X509_CRL *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:42,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:49,1
    - Dst: X509_CRL_get_version
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:50,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:52,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:54,1
    - Dst: X509_CRL_get0_signature
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:55,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:56,1
    - Dst: X509_signature_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:57,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:58,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:59,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:59,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:60,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:61,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:62,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:62,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:63,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:64,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:65,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:65,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:67,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:68,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:70,1
    - Dst: X509_CRL_get0_extensions
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:71,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:73,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:78,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:80,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:81,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:82,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:83,1
    - Dst: X509_REVOKED_get0_serialNumber
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:83,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:84,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:85,1
    - Dst: X509_REVOKED_get0_revocationDate
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:85,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:86,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:87,1
    - Dst: X509_REVOKED_get0_extensions
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:88,1
    - Dst: X509_signature_print
      Src: /src/openssl-1.1.1g/crypto/x509/t_crl.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 3
    argNames:
    - out
    - x
    - nmflag
    argTypes:
    - BIO*
    - X509_CRL*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 94
    functionName: X509_CRL_print_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/t_crl.c
    functionUses: 1
    functionsReached:
    - X509_REVOKED_get0_extensions
    - X509_NAME_print_ex
    - X509_CRL_get0_nextUpdate
    - X509_CRL_get0_lastUpdate
    - STACK_OF
    - X509V3_extensions_print
    - X509_CRL_get0_signature
    - X509_CRL_get_issuer
    - BIO_puts
    - ASN1_TIME_print
    - i2a_ASN1_INTEGER
    - sk_X509_REVOKED_num
    - X509_signature_print
    - sk_X509_REVOKED_value
    - X509_REVOKED_get0_revocationDate
    - X509_CRL_get0_extensions
    - X509_REVOKED_get0_serialNumber
    - BIO_printf
    - X509_CRL_get_REVOKED
    - X509_CRL_get_version
    linkageType: ''
    returnType: int
    signature: int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: X509v3_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:32,1
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - STACK_OF*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: X509v3_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - OBJ_nid2obj
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, int nid,\n
      \                         int lastpos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:49,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:51,1
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sk
    - obj
    - lastpos
    argTypes:
    - STACK_OF*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: X509v3_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 4
    functionsReached:
    - sk_X509_EXTENSION_value
    - OBJ_cmp
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: "int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *sk,\n                          const
      ASN1_OBJECT *obj, int lastpos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:69,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:71,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - sk
    - crit
    - lastpos
    argTypes:
    - STACK_OF*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 76
    functionName: X509v3_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: "int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *sk,
      int crit,\n                               int lastpos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:80,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: X509v3_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int
      loc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:143,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:145,1
    - Dst: X509_EXTENSION_create_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:148,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ex
    - nid
    - crit
    - data
    argTypes:
    - X509_EXTENSION**
    - int
    - int
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: X509_EXTENSION_create_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 0
    functionsReached:
    - X509err
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    - X509_EXTENSION_create_by_OBJ
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex,
      int nid,\n                                             int crit,\n                                             ASN1_OCTET_STRING
      *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_EXTENSION_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:161,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:162,1
    - Dst: X509_EXTENSION_set_object
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:169,1
    - Dst: X509_EXTENSION_set_critical
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:171,1
    - Dst: X509_EXTENSION_set_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:173,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:181,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 4
    argNames:
    - ex
    - obj
    - crit
    - data
    argTypes:
    - X509_EXTENSION**
    - ASN1_OBJECT*
    - int
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 183
    functionName: X509_EXTENSION_create_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached:
    - X509_EXTENSION_set_object
    - X509_EXTENSION_new
    - X509_EXTENSION_set_critical
    - X509_EXTENSION_set_data
    - X509err
    - X509_EXTENSION_free
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex,\n
      \                                            const ASN1_OBJECT *obj, int crit,\n
      \                                            ASN1_OCTET_STRING *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:189,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ex
    - obj
    argTypes:
    - X509_EXTENSION*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: X509_EXTENSION_set_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached:
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT
      *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ex
    - crit
    argTypes:
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: X509_EXTENSION_set_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_v3.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ex
    - data
    argTypes:
    - X509_EXTENSION*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: X509_EXTENSION_set_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_set
    linkageType: ''
    returnType: int
    signature: int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: X509_EXTENSION_get_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: X509_EXTENSION_get_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ex)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: X509_EXTENSION_get_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_EXTENSION_get_critical(const X509_EXTENSION *ex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - NETSCAPE_SPKI*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: NETSCAPE_SPKI_set_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - NETSCAPE_SPKI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: NETSCAPE_SPKI_get_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:37,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:38,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:39,1
    - Dst: EVP_DecodeBlock
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:42,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:45,1
    - Dst: d2i_NETSCAPE_SPKI
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: NETSCAPE_SPKI_b64_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_DecodeBlock
    - OPENSSL_free
    - d2i_NETSCAPE_SPKI
    - X509err
    - strlen
    linkageType: ''
    returnType: NETSCAPE_SPKI
    signature: NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_NETSCAPE_SPKI
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:61,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:62,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:63,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:67,1
    - Dst: i2d_NETSCAPE_SPKI
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:71,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:72,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509spki.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - spki
    argTypes:
    - NETSCAPE_SPKI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 75
    functionName: NETSCAPE_SPKI_b64_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - i2d_NETSCAPE_SPKI
    - OPENSSL_malloc
    - EVP_EncodeBlock
    - OPENSSL_free
    - X509err
    linkageType: ''
    returnType: char
    signature: char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:92,1
    - Dst: sk_X509_NAME_ENTRY_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:96,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:98,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:105,1
    - Dst: sk_X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - val
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: x509_name_ex_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1err
    - sk_X509_NAME_ENTRY_free
    - BUF_MEM_new
    - OPENSSL_zalloc
    - sk_X509_NAME_ENTRY_new_null
    linkageType: ''
    returnType: int
    signature: int x509_name_ex_new(ASN1_VALUE **val, const ASN1_ITEM *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:121,1
    - Dst: sk_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:123,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: x509_name_ex_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_free
    - OPENSSL_free
    - sk_X509_NAME_ENTRY_pop_free
    linkageType: ''
    returnType: void
    signature: void x509_name_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:157,1
    - Dst: ASN1_item_ex_d2i
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:164,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:165,1
    - Dst: x509_name_ex_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:172,1
    - Dst: x509_name_ex_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:173,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:176,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:178,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:181,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:182,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:183,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:184,1
    - Dst: sk_X509_NAME_ENTRY_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:186,1
    - Dst: sk_X509_NAME_ENTRY_set
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:188,1
    - Dst: x509_name_canon
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:191,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:194,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:203,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:204,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:206,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 8
    argNames:
    - val
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 208
    functionName: x509_name_ex_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - x509_name_canon
    - sk_STACK_OF_X509_NAME_ENTRY_num
    - ASN1_item_ex_d2i
    - sk_X509_NAME_ENTRY_set
    - x509_name_ex_free
    - sk_STACK_OF_X509_NAME_ENTRY_pop_free
    - sk_STACK_OF_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_num
    - sk_X509_NAME_ENTRY_push
    - STACK_OF
    - memcpy
    - ASN1err
    - X509_NAME_free
    - x509_name_ex_new
    - sk_X509_NAME_ENTRY_value
    - ASN1_ITEM_rptr
    - BUF_MEM_grow
    linkageType: ''
    returnType: int
    signature: "int x509_name_ex_d2i(ASN1_VALUE **val,\n                            const
      unsigned char **in, long len,\n                            const ASN1_ITEM *it,
      int tag, int aclass,\n                            char opt, ASN1_TLC *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x509_name_encode
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:216,1
    - Dst: x509_name_canon
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:219,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - val
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: x509_name_ex_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - x509_name_canon
    - x509_name_encode
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int x509_name_ex_i2d(ASN1_VALUE **val, unsigned char **out,\n                            const
      ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:241,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:244,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:247,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:248,1
    - Dst: sk_X509_NAME_ENTRY_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:250,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:253,1
    - Dst: sk_X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:254,1
    - Dst: sk_X509_NAME_ENTRY_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:259,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:262,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:263,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:264,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:267,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:268,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:269,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:274,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:276,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 278
    functionName: x509_name_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 1
    functionsReached:
    - sk_STACK_OF_X509_NAME_ENTRY_pop_free
    - sk_X509_NAME_ENTRY_num
    - sk_STACK_OF_X509_NAME_ENTRY_new_null
    - sk_STACK_OF_X509_NAME_ENTRY_push
    - STACK_OF
    - sk_X509_NAME_ENTRY_push
    - sk_X509_NAME_ENTRY_free
    - ASN1err
    - ASN1_item_ex_i2d
    - sk_X509_NAME_ENTRY_value
    - ASN1_ITEM_rptr
    - BUF_MEM_grow
    - sk_X509_NAME_ENTRY_new_null
    linkageType: ''
    returnType: int
    signature: int x509_name_encode(X509_NAME *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - out
    - pval
    - indent
    - fname
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - char*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: x509_name_ex_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_print_ex
    linkageType: ''
    returnType: int
    signature: "int x509_name_ex_print(BIO *out, ASN1_VALUE **pval,\n                              int
      indent,\n                              const char *fname, const ASN1_PCTX *pctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:303,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:304,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:308,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:311,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:315,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:317,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:320,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:321,1
    - Dst: sk_X509_NAME_ENTRY_new_null
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:323,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:326,1
    - Dst: sk_X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:327,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:328,1
    - Dst: X509_NAME_ENTRY_new
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:333,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:335,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:338,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:340,1
    - Dst: asn1_string_canon
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:343,1
    - Dst: sk_X509_NAME_ENTRY_push
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:345,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:346,1
    - Dst: i2d_name_canon
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:353,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:358,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:360,1
    - Dst: i2d_name_canon
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:366,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:371,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:372,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 375
    functionName: x509_name_canon
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 2
    functionsReached:
    - OBJ_dup
    - OPENSSL_malloc
    - sk_STACK_OF_X509_NAME_ENTRY_pop_free
    - X509_NAME_ENTRY_free
    - sk_X509_NAME_ENTRY_num
    - sk_STACK_OF_X509_NAME_ENTRY_new_null
    - OPENSSL_free
    - STACK_OF
    - sk_STACK_OF_X509_NAME_ENTRY_push
    - sk_X509_NAME_ENTRY_free
    - asn1_string_canon
    - X509err
    - X509_NAME_ENTRY_new
    - sk_X509_NAME_ENTRY_push
    - i2d_name_canon
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_new_null
    linkageType: ''
    returnType: int
    signature: int x509_name_canon(X509_NAME *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_tag2bit
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:390,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:391,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:397,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:414,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:422,1
    - Dst: ossl_isascii
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:432,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:437,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:449,1
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:451,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - ASN1_STRING*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 461
    functionName: asn1_string_canon
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 1
    functionsReached:
    - ossl_tolower
    - ossl_isspace
    - ASN1_STRING_copy
    - ASN1_STRING_to_UTF8
    - ossl_isascii
    - ASN1_tag2bit
    linkageType: ''
    returnType: int
    signature: int asn1_string_canon(ASN1_STRING *out, const ASN1_STRING *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:486,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - xn
    - name
    argTypes:
    - X509_NAME**
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: X509_NAME_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 5
    functionsReached:
    - X509_NAME_dup
    - X509_NAME_free
    linkageType: ''
    returnType: int
    signature: int X509_NAME_set(X509_NAME **xn, X509_NAME *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:500,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:504,1
    - Dst: ossl_isupper
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:512,1
    - Dst: ossl_isupper
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:513,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:517,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:521,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:532,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:535,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:536,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - bp
    - name
    - obase
    argTypes:
    - BIO*
    - X509_NAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 493
    functionDepth: 4
    functionLinenumber: 493
    functionLinenumberEnd: 538
    functionName: X509_NAME_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - ossl_isupper
    - X509_NAME_oneline
    - OPENSSL_free
    - X509err
    linkageType: ''
    returnType: int
    signature: int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509/x_name.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - nm
    - pder
    - pderlen
    argTypes:
    - X509_NAME*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 551
    functionName: X509_NAME_get0_der
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - i2d_X509_NAME
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder,\n
      \                      size_t *pderlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:19,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:19,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:22,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:24,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:24,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:27,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 33
    functionName: X509_STORE_set_default_paths
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_file
    - X509_LOOKUP_add_dir
    - X509_STORE_add_lookup
    - ERR_clear_error
    - X509_LOOKUP_hash_dir
    - X509_LOOKUP_load_file
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_default_paths(X509_STORE *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:41,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:41,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:44,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:48,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:48,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openssl-1.1.1g/crypto/x509/x509_d2.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - file
    - path
    argTypes:
    - X509_STORE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 57
    functionName: X509_STORE_load_locations
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_file
    - X509_LOOKUP_add_dir
    - X509_STORE_add_lookup
    - X509_LOOKUP_hash_dir
    - X509_LOOKUP_load_file
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_load_locations(X509_STORE *ctx, const char *file,\n
      \                             const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: X509at_get_attr_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 3
    functionsReached:
    - sk_X509_ATTRIBUTE_num
    linkageType: ''
    returnType: int
    signature: int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:28,1
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - STACK_OF*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: X509at_get_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 5
    functionsReached:
    - OBJ_nid2obj
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int
      nid,\n                           int lastpos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:46,1
    - Dst: sk_X509_ATTRIBUTE_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:48,1
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sk
    - obj
    - lastpos
    argTypes:
    - STACK_OF*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 53
    functionName: X509at_get_attr_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 4
    functionsReached:
    - sk_X509_ATTRIBUTE_value
    - OBJ_cmp
    - sk_X509_ATTRIBUTE_num
    linkageType: ''
    returnType: int
    signature: "int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk,\n                           const
      ASN1_OBJECT *obj, int lastpos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:57,1
    - Dst: sk_X509_ATTRIBUTE_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: X509at_get_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 5
    functionsReached:
    - sk_X509_ATTRIBUTE_value
    - sk_X509_ATTRIBUTE_num
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x,
      int loc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:157,1
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:160,1
    - Dst: X509at_get_attr
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:162,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:163,1
    - Dst: X509_ATTRIBUTE_get0_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - x
    - obj
    - lastpos
    - type
    argTypes:
    - STACK_OF*
    - ASN1_OBJECT*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: X509at_get0_data_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 2
    functionsReached:
    - X509at_get_attr
    - X509_ATTRIBUTE_count
    - X509_ATTRIBUTE_get0_data
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: void
    signature: "void *X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) *x,\n                              const
      ASN1_OBJECT *obj, int lastpos, int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:175,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:177,1
    - Dst: X509_ATTRIBUTE_create_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:180,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - attr
    - nid
    - atrtype
    - data
    - len
    argTypes:
    - X509_ATTRIBUTE**
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: X509_ATTRIBUTE_create_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 0
    functionsReached:
    - X509err
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    - X509_ATTRIBUTE_create_by_OBJ
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr,
      int nid,\n                                             int atrtype, const void
      *data,\n                                             int len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_ATTRIBUTE_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:194,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:195,1
    - Dst: X509_ATTRIBUTE_set1_object
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:202,1
    - Dst: X509_ATTRIBUTE_set1_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:204,1
    - Dst: X509_ATTRIBUTE_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 5
    argNames:
    - attr
    - obj
    - atrtype
    - data
    - len
    argTypes:
    - X509_ATTRIBUTE**
    - ASN1_OBJECT*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 214
    functionName: X509_ATTRIBUTE_create_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - X509_ATTRIBUTE_new
    - X509_ATTRIBUTE_set1_data
    - X509_ATTRIBUTE_free
    - X509err
    - X509_ATTRIBUTE_set1_object
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr,\n
      \                                            const ASN1_OBJECT *obj,\n                                             int
      atrtype, const void *data,\n                                             int
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:224,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:226,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:228,1
    - Dst: X509_ATTRIBUTE_create_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:231,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - attr
    - atrname
    - type
    - bytes
    - len
    argTypes:
    - X509_ATTRIBUTE**
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: X509_ATTRIBUTE_create_by_txt
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 0
    functionsReached:
    - ASN1_OBJECT_free
    - ERR_add_error_data
    - OBJ_txt2obj
    - X509err
    - X509_ATTRIBUTE_create_by_OBJ
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr,\n
      \                                            const char *atrname, int type,\n
      \                                            const unsigned char *bytes,\n                                             int
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:240,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - attr
    - obj
    argTypes:
    - X509_ATTRIBUTE*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: X509_ATTRIBUTE_set1_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT
      *obj)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:254,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:255,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:257,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:262,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:264,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:274,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:277,1
    - Dst: ASN1_TYPE_set1
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:280,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:283,1
    - Dst: sk_ASN1_TYPE_push
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:286,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:290,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:291,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:292,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - attr
    - attrtype
    - data
    - len
    argTypes:
    - X509_ATTRIBUTE*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 294
    functionName: X509_ATTRIBUTE_set1_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_STRING_set
    - ASN1_STRING_free
    - sk_ASN1_TYPE_push
    - ASN1_TYPE_set
    - ASN1_TYPE_free
    - X509err
    - ASN1_STRING_set_by_NID
    - ASN1_TYPE_set1
    - OBJ_obj2nid
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: int
    signature: "int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype,\n
      \                            const void *data, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - attr
    argTypes:
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: X509_ATTRIBUTE_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 3
    functionsReached:
    - sk_ASN1_TYPE_num
    linkageType: ''
    returnType: int
    signature: int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - attr
    argTypes:
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: X509_ATTRIBUTE_get0_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:314,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:319,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - attr
    - idx
    - atrtype
    - data
    argTypes:
    - X509_ATTRIBUTE*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 324
    functionName: X509_ATTRIBUTE_get0_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - X509_ATTRIBUTE_get0_type
    - ASN1_TYPE_get
    - X509err
    linkageType: ''
    returnType: void
    signature: "void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,\n                               int
      atrtype, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_TYPE_value
      Src: /src/openssl-1.1.1g/crypto/x509/x509_att.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - attr
    - idx
    argTypes:
    - X509_ATTRIBUTE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: X509_ATTRIBUTE_get0_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_att.c
    functionUses: 3
    functionsReached:
    - sk_ASN1_TYPE_value
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_new
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:29,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:31,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:38,1
    - Dst: X509_REQ_set_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:43,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:43,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:46,1
    - Dst: X509_REQ_set_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:49,1
    - Dst: X509_REQ_sign
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:54,1
    - Dst: X509_REQ_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:59,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 61
    functionName: X509_to_X509_REQ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - X509_REQ_free
    - X509_REQ_new
    - X509_REQ_set_pubkey
    - X509err
    - X509_REQ_sign
    - X509_get_subject_name
    - X509_get0_pubkey
    - X509_REQ_set_subject_name
    linkageType: ''
    returnType: X509_REQ
    signature: X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: X509_REQ_get_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: X509_REQ_get0_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 2
    functionsReached:
    - X509_PUBKEY_get0
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: X509_REQ_get_X509_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_PUBKEY
    signature: X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_get_pubkey
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:87,1
    - Dst: EVP_PKEY_cmp
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:88,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:93,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:97,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:101,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:102,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:107,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:109,1
    - Dst: X509err
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:114,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - x
    - k
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 82
    functionDepth: 7
    functionLinenumber: 82
    functionLinenumberEnd: 119
    functionName: X509_REQ_check_private_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_id
    - X509err
    - X509_REQ_get_pubkey
    - EVP_PKEY_free
    - EVP_PKEY_cmp
    linkageType: ''
    returnType: int
    signature: int X509_REQ_check_private_key(X509_REQ *x, EVP_PKEY *k)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - req_nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: X509_REQ_extension_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_REQ_extension_nid(int req_nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: X509_REQ_get_extension_nids
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int *X509_REQ_get_extension_nids(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: X509_REQ_set_extension_nids
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_REQ_set_extension_nids(int *nids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: X509_REQ_get_attr_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: int X509_REQ_get_attr_count(const X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - req
    - nid
    - lastpos
    argTypes:
    - X509_REQ*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: X509_REQ_get_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - req
    - obj
    - lastpos
    argTypes:
    - X509_REQ*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: X509_REQ_get_attr_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT
      *obj,\n                             int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - loc
    argTypes:
    - X509_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: X509_REQ_get_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - loc
    argTypes:
    - X509_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: X509_REQ_delete_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - req
    - attr
    argTypes:
    - X509_REQ*
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: X509_REQ_add1_attr
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - req
    - obj
    - type
    - bytes
    - len
    argTypes:
    - X509_REQ*
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: X509_REQ_add1_attr_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_add1_attr_by_OBJ(X509_REQ *req,\n                              const
      ASN1_OBJECT *obj, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - req
    - nid
    - type
    - bytes
    - len
    argTypes:
    - X509_REQ*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: X509_REQ_add1_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_add1_attr_by_NID(X509_REQ *req,\n                              int
      nid, int type,\n                              const unsigned char *bytes, int
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - req
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - X509_REQ*
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: X509_REQ_add1_attr_by_txt
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_add1_attr_by_txt(X509_REQ *req,\n                              const
      char *attrname, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: X509_REQ_get_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long X509_REQ_get_version(const X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: X509_REQ_get_subject_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - req
    - psig
    - palg
    argTypes:
    - X509_REQ*
    - ASN1_BIT_STRING**
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: X509_REQ_get0_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING
      **psig,\n                             const X509_ALGOR **palg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: X509_REQ_get_signature_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int X509_REQ_get_signature_nid(const X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_REQ_INFO
      Src: /src/openssl-1.1.1g/crypto/x509/x509_req.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - pp
    argTypes:
    - X509_REQ*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: i2d_re_X509_REQ_tbs
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - i2d_X509_REQ_INFO
    linkageType: ''
    returnType: int
    signature: int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/store/store_err.c:140,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/store/store_err.c:141,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/store/store_err.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: ERR_load_OSSL_STORE_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_OSSL_STORE_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: OSSL_STORE_INFO_type_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_strings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_type_string(int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_registry_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:42,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:47,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - e
    - scheme
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 55
    functionName: OSSL_STORE_LOADER_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - OSSL_STOREerr
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: OSSL_STORE_LOADER_get0_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: OSSL_STORE_LOADER_get0_scheme
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - open_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_open_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: OSSL_STORE_LOADER_set_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader,\n                               OSSL_STORE_open_fn
      open_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - ctrl_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_ctrl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: OSSL_STORE_LOADER_set_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader,\n                               OSSL_STORE_ctrl_fn
      ctrl_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - expect_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_expect_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: OSSL_STORE_LOADER_set_expect
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader,\n                                 OSSL_STORE_expect_fn
      expect_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - find_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_find_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: OSSL_STORE_LOADER_set_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader,\n                               OSSL_STORE_find_fn
      find_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - load_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_load_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: OSSL_STORE_LOADER_set_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader,\n                               OSSL_STORE_load_fn
      load_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - eof_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_eof_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: OSSL_STORE_LOADER_set_eof
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader,\n                              OSSL_STORE_eof_fn
      eof_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - error_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_error_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: OSSL_STORE_LOADER_set_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader,\n                                OSSL_STORE_error_fn
      error_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - close_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_close_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: OSSL_STORE_LOADER_set_close
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader,\n                                OSSL_STORE_close_fn
      close_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: OSSL_STORE_LOADER_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: store_loader_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long store_loader_hash(const OSSL_STORE_LOADER *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:140,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_LOADER*
    assertStmts:
    - condition: (a->scheme != NULL && b->scheme != NULL)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/openssl-1.1.1g/crypto/store/store_register.c
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: store_loader_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - strcmp
    - assert
    linkageType: ''
    returnType: int
    signature: "int store_loader_cmp(const OSSL_STORE_LOADER *a,\n                            const
      OSSL_STORE_LOADER *b)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isalpha
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:157,1
    - Dst: ossl_isalpha
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:159,1
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:160,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:161,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:164,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:166,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:173,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:178,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:179,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:183,1
    - Dst: lh_OSSL_STORE_LOADER_new
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:186,1
    - Dst: lh_OSSL_STORE_LOADER_insert
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:191,1
    - Dst: lh_OSSL_STORE_LOADER_error
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:192,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:195,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 198
    functionName: ossl_store_register_loader_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - lh_OSSL_STORE_LOADER_insert
    - RUN_ONCE
    - ERR_add_error_data
    - strchr
    - ossl_isdigit
    - lh_OSSL_STORE_LOADER_error
    - CRYPTO_THREAD_unlock
    - lh_OSSL_STORE_LOADER_new
    - ossl_isalpha
    - OSSL_STOREerr
    linkageType: ''
    returnType: int
    signature: int ossl_store_register_loader_int(OSSL_STORE_LOADER *loader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_init_once
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:201,1
    - Dst: ossl_store_register_loader_int
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: OSSL_STORE_register_loader
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - ossl_store_register_loader_int
    - ossl_store_init_once
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_init_once
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:217,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:220,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:221,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:225,1
    - Dst: lh_OSSL_STORE_LOADER_retrieve
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:227,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:230,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:232,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 238
    functionName: ossl_store_get0_loader_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE
    - lh_OSSL_STORE_LOADER_retrieve
    - ossl_store_init_once
    - ERR_add_error_data
    - CRYPTO_THREAD_unlock
    - OSSL_STOREerr
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: OSSL_STORE_LOADER *ossl_store_get0_loader_int(const char *scheme)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:251,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:252,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:256,1
    - Dst: lh_OSSL_STORE_LOADER_delete
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:258,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:261,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:263,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 269
    functionName: ossl_store_unregister_loader_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE
    - ERR_add_error_data
    - lh_OSSL_STORE_LOADER_delete
    - CRYPTO_THREAD_unlock
    - OSSL_STOREerr
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: OSSL_STORE_LOADER *ossl_store_unregister_loader_int(const char *scheme)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_init_once
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:272,1
    - Dst: ossl_store_unregister_loader_int
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: OSSL_STORE_unregister_loader
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - ossl_store_init_once
    - ossl_store_unregister_loader_int
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:279,1
    - Dst: lh_OSSL_STORE_LOADER_num_items
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:279,1
    - Dst: lh_OSSL_STORE_LOADER_free
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:280,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (lh_OSSL_STORE_LOADER_num_items(loader_register) == 0)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/openssl-1.1.1g/crypto/store/store_register.c
    constantsTouched: []
    func_position:
      end: 284
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 284
    functionName: ossl_store_destroy_loaders_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - lh_OSSL_STORE_LOADER_num_items
    - lh_OSSL_STORE_LOADER_free
    - CRYPTO_THREAD_lock_free
    - assert
    linkageType: ''
    returnType: void
    signature: void ossl_store_destroy_loaders_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_OSSL_STORE_LOADER_doall_void
      Src: /src/openssl-1.1.1g/crypto/store/store_register.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - do_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: OSSL_STORE_do_all_loaders
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - lh_OSSL_STORE_LOADER_doall_void
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_do_all_loaders(void (*do_function) (const OSSL_STORE_LOADER\n
      \                                                  *loader, void *do_arg),\n
      \                             void *do_arg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:63,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:64,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:66,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:67,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:73,1
    - Dst: ossl_store_get0_loader_int
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:77,1
    - Dst: OSSL_STORE_LOADER*::open
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:78,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:83,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:84,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:100,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:105,1
    - Dst: OSSL_STORE_LOADER*::close
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 5
    argNames:
    - uri
    - ui_method
    - ui_data
    - post_process
    - post_process_data
    argTypes:
    - char*
    - UI_METHOD*
    - void*
    - OSSL_STORE_post_process_info_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 115
    functionName: OSSL_STORE_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - strchr
    - OSSL_STORE_LOADER*::open
    - ossl_store_get0_loader_int
    - OPENSSL_strlcpy
    - ERR_set_mark
    - OPENSSL_zalloc
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - OSSL_STORE_LOADER*::close
    - strcasecmp
    - strncmp
    - OSSL_STOREerr
    linkageType: ''
    returnType: OSSL_STORE_CTX
    signature: "OSSL_STORE_CTX *OSSL_STORE_open(const char *uri, const UI_METHOD *ui_method,\n
      \                               void *ui_data,\n                                OSSL_STORE_post_process_info_fn
      post_process,\n                                void *post_process_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:122,1
    - Dst: OSSL_STORE_vctrl
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:123,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - cmd
    argTypes:
    - OSSL_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: OSSL_STORE_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - va_start
    - OSSL_STORE_vctrl
    - va_end
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_CTX*::loader::ctrl
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - cmd
    - args
    argTypes:
    - OSSL_STORE_CTX*
    - int
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: OSSL_STORE_vctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_CTX*::loader::ctrl
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, va_list args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:139,1
    - Dst: OSSL_STORE_CTX*::loader::expect
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - expected_type
    argTypes:
    - OSSL_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: OSSL_STORE_expect
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_CTX*::loader::expect
    - OSSL_STOREerr
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:153,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:158,1
    - Dst: OSSL_STORE_CTX*::loader::find
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - search
    argTypes:
    - OSSL_STORE_CTX*
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: OSSL_STORE_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    - OSSL_STORE_CTX*::loader::find
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_find(OSSL_STORE_CTX *ctx, OSSL_STORE_SEARCH *search)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_eof
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:172,1
    - Dst: OSSL_STORE_CTX*::loader::load
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:175,1
    - Dst: OSSL_STORE_CTX*::post_process
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:178,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:189,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:197,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:200,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts:
    - condition: (ctx->expected_type == returned_type)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/openssl-1.1.1g/crypto/store/store_lib.c
    constantsTouched: []
    func_position:
      end: 207
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 207
    functionName: OSSL_STORE_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_INFO_get_type
    - OSSL_STORE_INFO_free
    - assert
    - OSSL_STORE_eof
    - OSSL_STORE_CTX*::loader::load
    - OSSL_STORE_CTX*::post_process
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_CTX*::loader::error
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: OSSL_STORE_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_CTX*::loader::error
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_error(OSSL_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_CTX*::loader::eof
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: OSSL_STORE_eof
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_CTX*::loader::eof
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_eof(OSSL_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_CTX*::loader::close
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:221,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: OSSL_STORE_close
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_CTX*::loader::close
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_close(OSSL_STORE_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: store_info_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *store_info_new(int type, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store_info_new
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:248,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 260
    functionName: OSSL_STORE_INFO_new_NAME
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    - store_info_new
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_NAME(char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - info
    - desc
    argTypes:
    - OSSL_STORE_INFO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: OSSL_STORE_INFO_set0_NAME_description
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_INFO_set0_NAME_description(OSSL_STORE_INFO *info, char
      *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store_info_new
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:276,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: OSSL_STORE_INFO_new_PARAMS
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    - store_info_new
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_PARAMS(EVP_PKEY *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store_info_new
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:286,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: OSSL_STORE_INFO_new_PKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    - store_info_new
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_PKEY(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store_info_new
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:296,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x509
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: OSSL_STORE_INFO_new_CERT
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    - store_info_new
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_CERT(X509 *x509)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store_info_new
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:306,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 312
    functionName: OSSL_STORE_INFO_new_CRL
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    - store_info_new
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_CRL(X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: OSSL_STORE_INFO_get_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_INFO_get_type(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: OSSL_STORE_INFO_get0_NAME
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_get0_NAME(const OSSL_STORE_INFO *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:332,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:335,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 342
    functionName: OSSL_STORE_INFO_get1_NAME
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OSSL_STOREerr
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_get1_NAME(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: OSSL_STORE_INFO_get0_NAME_description
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_get0_NAME_description(const OSSL_STORE_INFO *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:354,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:358,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: OSSL_STORE_INFO_get1_NAME_description
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OSSL_STOREerr
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_get1_NAME_description(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 372
    functionName: OSSL_STORE_INFO_get0_PARAMS
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get0_PARAMS(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:377,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 383
    functionName: OSSL_STORE_INFO_get1_PARAMS
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_up_ref
    - OSSL_STOREerr
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get1_PARAMS(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: OSSL_STORE_INFO_get0_PKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get0_PKEY(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:395,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 401
    functionName: OSSL_STORE_INFO_get1_PKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_up_ref
    - OSSL_STOREerr
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get1_PKEY(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: OSSL_STORE_INFO_get0_CERT
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *OSSL_STORE_INFO_get0_CERT(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:413,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: OSSL_STORE_INFO_get1_CERT
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - OSSL_STOREerr
    linkageType: ''
    returnType: X509
    signature: X509 *OSSL_STORE_INFO_get1_CERT(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 426
    functionName: OSSL_STORE_INFO_get0_CRL
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *OSSL_STORE_INFO_get0_CRL(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:431,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 437
    functionName: OSSL_STORE_INFO_get1_CRL
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - X509_CRL_up_ref
    - OSSL_STOREerr
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *OSSL_STORE_INFO_get1_CRL(const OSSL_STORE_INFO *info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:447,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:448,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:451,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:452,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:455,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:458,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:461,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:464,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:467,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 469
    functionName: OSSL_STORE_INFO_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - X509_free
    - OPENSSL_free
    - X509_CRL_free
    - BUF_MEM_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void OSSL_STORE_INFO_free(OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_CTX*::loader::find
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - search_type
    argTypes:
    - OSSL_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 479
    functionName: OSSL_STORE_supports_search
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_CTX*::loader::find
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:484,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 495
    functionName: OSSL_STORE_SEARCH_by_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_STORE_SEARCH
    signature: OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_name(X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:500,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - name
    - serial
    argTypes:
    - X509_NAME*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 512
    functionName: OSSL_STORE_SEARCH_by_issuer_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_STORE_SEARCH
    signature: "OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_issuer_serial(X509_NAME *name,\n
      \                                                   const ASN1_INTEGER *serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:518,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:521,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:526,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:529,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:529,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:530,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:531,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:533,1
    - Dst: EVP_MD_name
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - digest
    - bytes
    - len
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 542
    functionName: OSSL_STORE_SEARCH_by_key_fingerprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - ERR_add_error_data
    - OPENSSL_zalloc
    - EVP_MD_size
    - OSSL_STOREerr
    - EVP_MD_name
    linkageType: ''
    returnType: OSSL_STORE_SEARCH
    signature: "OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_key_fingerprint(const EVP_MD
      *digest,\n                                                        const unsigned
      char\n                                                        *bytes, size_t
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:546,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:549,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - alias
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 558
    functionName: OSSL_STORE_SEARCH_by_alias
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    - OPENSSL_zalloc
    - strlen
    linkageType: ''
    returnType: OSSL_STORE_SEARCH
    signature: OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_alias(const char *alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - search
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: OSSL_STORE_SEARCH_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void OSSL_STORE_SEARCH_free(OSSL_STORE_SEARCH *search)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: OSSL_STORE_SEARCH_get_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_SEARCH_get_type(const OSSL_STORE_SEARCH *criterion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: OSSL_STORE_SEARCH_get0_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *OSSL_STORE_SEARCH_get0_name(OSSL_STORE_SEARCH *criterion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: OSSL_STORE_SEARCH_get0_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "ASN1_INTEGER *OSSL_STORE_SEARCH_get0_serial(const OSSL_STORE_SEARCH\n
      \                                                *criterion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - criterion
    - length
    argTypes:
    - OSSL_STORE_SEARCH*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 588
    functionName: OSSL_STORE_SEARCH_get0_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *OSSL_STORE_SEARCH_get0_bytes(const OSSL_STORE_SEARCH\n
      \                                                 *criterion, size_t *length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: OSSL_STORE_SEARCH_get0_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_SEARCH_get0_string(const OSSL_STORE_SEARCH *criterion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: OSSL_STORE_SEARCH_get0_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *OSSL_STORE_SEARCH_get0_digest(const OSSL_STORE_SEARCH *criterion)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: store_info_new
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:604,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:607,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:614,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:617,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - new_pem_name
    - embedded
    argTypes:
    - char*
    - BUF_MEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 624
    functionName: ossl_store_info_new_EMBEDDED
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_INFO_free
    - OPENSSL_strdup
    - OSSL_STOREerr
    - store_info_new
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *ossl_store_info_new_EMBEDDED(const char *new_pem_name,\n
      \                                             BUF_MEM *embedded)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: ossl_store_info_get0_EMBEDDED_buffer
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BUF_MEM
    signature: BUF_MEM *ossl_store_info_get0_EMBEDDED_buffer(OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 638
    functionName: ossl_store_info_get0_EMBEDDED_pem_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ossl_store_info_get0_EMBEDDED_pem_name(OSSL_STORE_INFO *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_get0_loader_int
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:647,1
    - Dst: ossl_store_file_attach_pem_bio_int
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:648,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:650,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:651,1
    - Dst: OSSL_STORE_LOADER*::close
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:671,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - bp
    - ui_method
    - ui_data
    argTypes:
    - BIO*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 673
    functionName: ossl_store_attach_pem_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - ossl_store_file_attach_pem_bio_int
    - ossl_store_get0_loader_int
    - OPENSSL_zalloc
    - OSSL_STORE_LOADER*::close
    - OSSL_STOREerr
    linkageType: ''
    returnType: OSSL_STORE_CTX
    signature: "OSSL_STORE_CTX *ossl_store_attach_pem_bio(BIO *bp, const UI_METHOD
      *ui_method,\n                                          void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_file_detach_pem_bio_int
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:677,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/store_lib.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 681
    functionName: ossl_store_detach_pem_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ossl_store_file_detach_pem_bio_int
    linkageType: ''
    returnType: int
    signature: int ossl_store_detach_pem_bio(OSSL_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: S_ISDIR
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UI_new
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:50,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:54,1
    - Dst: UI_set_method
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:59,1
    - Dst: UI_add_user_data
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:60,1
    - Dst: UI_construct_prompt
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:62,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:64,1
    - Dst: UI_add_input_string
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:66,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:68,1
    - Dst: UI_process
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:71,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:73,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:78,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:86,1
    - Dst: UI_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:87,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - ui_method
    - pass
    - maxsize
    - prompt_info
    - data
    argTypes:
    - UI_METHOD*
    - char*
    - size_t
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 89
    functionName: file_get_pass
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - UI_add_user_data
    - UI_new
    - OPENSSL_free
    - UI_set_method
    - UI_process
    - UI_construct_prompt
    - UI_add_input_string
    - UI_free
    - OSSL_STOREerr
    linkageType: ''
    returnType: char
    signature: "char *file_get_pass(const UI_METHOD *ui_method, char *pass,\n                           size_t
      maxsize, const char *prompt_info, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pass_data
    - prompt_info
    - ui_method
    - ui_data
    argTypes:
    - struct pem_pass_data*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: file_fill_pem_pass_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int file_fill_pem_pass_data(struct pem_pass_data *pass_data,\n                                   const
      char *prompt_info,\n                                   const UI_METHOD *ui_method,
      void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_get_pass
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:113,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - num
    - w
    - data
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: file_get_pem_pass
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - file_get_pass
    - strlen
    linkageType: ''
    returnType: int
    signature: int file_get_pem_pass(char *buf, int num, int w, void *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:204,1
    - Dst: d2i_PKCS12
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:215,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:220,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:224,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:225,1
    - Dst: file_get_pass
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:228,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:231,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:235,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:235,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:236,1
    - Dst: PKCS12_parse
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:242,1
    - Dst: sk_OSSL_STORE_INFO_new_null
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:247,1
    - Dst: OSSL_STORE_INFO_new_PKEY
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:248,1
    - Dst: sk_OSSL_STORE_INFO_push
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:249,1
    - Dst: OSSL_STORE_INFO_new_CERT
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:250,1
    - Dst: sk_OSSL_STORE_INFO_push
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:251,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:256,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:257,1
    - Dst: OSSL_STORE_INFO_new_CERT
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:259,1
    - Dst: sk_OSSL_STORE_INFO_push
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:260,1
    - Dst: sk_X509_shift
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:265,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:269,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:270,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:271,1
    - Dst: sk_OSSL_STORE_INFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:272,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:273,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:274,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:275,1
    - Dst: PKCS12_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:282,1
    - Dst: sk_OSSL_STORE_INFO_shift
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:289,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 8
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 293
    functionName: try_decode_PKCS12
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_STORE_INFO_pop_free
    - STACK_OF
    - X509_free
    - sk_OSSL_STORE_INFO_new_null
    - d2i_PKCS12
    - sk_OSSL_STORE_INFO_shift
    - sk_OSSL_STORE_INFO_push
    - OSSL_STORE_INFO_new_PKEY
    - sk_X509_pop_free
    - PKCS12_verify_mac
    - OSSL_STOREerr
    - OSSL_STORE_INFO_new_CERT
    - sk_X509_shift
    - PKCS12_free
    - file_get_pass
    - sk_X509_num
    - OSSL_STORE_INFO_free
    - PKCS12_parse
    - EVP_PKEY_free
    - sk_X509_value
    - strlen
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_PKCS12(const char *pem_name,\n                                          const
      char *pem_header,\n                                          const unsigned
      char *blob,\n                                          size_t len, void **pctx,\n
      \                                         int *matchcount,\n                                          const
      UI_METHOD *ui_method,\n                                          void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:297,1
    - Dst: sk_OSSL_STORE_INFO_num
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: eof_PKCS12
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_OSSL_STORE_INFO_num
    linkageType: ''
    returnType: int
    signature: int eof_PKCS12(void *ctx_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:304,1
    - Dst: sk_OSSL_STORE_INFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pctx
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: destroy_ctx_PKCS12
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_STORE_INFO_pop_free
    - STACK_OF
    linkageType: ''
    returnType: void
    signature: void destroy_ctx_PKCS12(void **pctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:342,1
    - Dst: d2i_X509_SIG
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:347,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:352,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:353,1
    - Dst: file_get_pass
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:358,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:360,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:365,1
    - Dst: PKCS12_pbe_crypt
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:366,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:366,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:372,1
    - Dst: ossl_store_info_new_EMBEDDED
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:374,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:376,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:383,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:384,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 8
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 386
    functionName: try_decode_PKCS8Encrypted
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - ossl_store_info_new_EMBEDDED
    - d2i_X509_SIG
    - strcmp
    - X509_SIG_free
    - file_get_pass
    - PKCS12_pbe_crypt
    - BUF_MEM_free
    - BUF_MEM_new
    - X509_SIG_get0
    - OSSL_STOREerr
    - strlen
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_PKCS8Encrypted(const char *pem_name,\n
      \                                                 const char *pem_header,\n
      \                                                 const unsigned char *blob,\n
      \                                                 size_t len, void **pctx,\n
      \                                                 int *matchcount,\n                                                  const
      UI_METHOD *ui_method,\n                                                  void
      *ui_data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:412,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:414,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:418,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:419,1
    - Dst: pem_check_suffix
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:423,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:424,1
    - Dst: d2i_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:427,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:433,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:437,1
    - Dst: d2i_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:441,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:444,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:452,1
    - Dst: OSSL_STORE_INFO_new_PKEY
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:460,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:462,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 8
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 399
    functionDepth: 4
    functionLinenumber: 399
    functionLinenumberEnd: 465
    functionName: try_decode_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_INFO_new_PKEY
    - EVP_PKEY_asn1_get0
    - EVP_PKEY_asn1_get_count
    - strcmp
    - d2i_PrivateKey
    - PKCS8_PRIV_KEY_INFO_free
    - d2i_PKCS8_PRIV_KEY_INFO
    - EVP_PKEY_free
    - EVP_PKEY_asn1_find_str
    - EVP_PKCS82PKEY
    - pem_check_suffix
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_PrivateKey(const char *pem_name,\n                                              const
      char *pem_header,\n                                              const unsigned
      char *blob,\n                                              size_t len, void
      **pctx,\n                                              int *matchcount,\n                                              const
      UI_METHOD *ui_method,\n                                              void *ui_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:487,1
    - Dst: d2i_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:493,1
    - Dst: OSSL_STORE_INFO_new_PKEY
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 8
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 475
    functionDepth: 7
    functionLinenumber: 475
    functionLinenumberEnd: 499
    functionName: try_decode_PUBKEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OSSL_STORE_INFO_new_PKEY
    - d2i_PUBKEY
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_PUBKEY(const char *pem_name,\n                                          const
      char *pem_header,\n                                          const unsigned
      char *blob,\n                                          size_t len, void **pctx,\n
      \                                         int *matchcount,\n                                          const
      UI_METHOD *ui_method,\n                                          void *ui_data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pem_check_suffix
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:524,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:530,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:531,1
    - Dst: EVP_PKEY_set_type_str
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:536,1
    - Dst: EVP_PKEY_get0_asn1
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:537,1
    - Dst: EVP_PKEY_ASN1_METHOD*::param_decode
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:539,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:545,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:548,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:549,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:553,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:557,1
    - Dst: EVP_PKEY_get0_asn1
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:558,1
    - Dst: EVP_PKEY_ASN1_METHOD*::param_decode
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:560,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:562,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:570,1
    - Dst: OSSL_STORE_INFO_new_PARAMS
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:577,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:579,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 8
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 582
    functionName: try_decode_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_set_type_str
    - EVP_PKEY_asn1_get0
    - EVP_PKEY_asn1_get_count
    - EVP_PKEY_set_type
    - OSSL_STORE_INFO_new_PARAMS
    - EVP_PKEY_ASN1_METHOD*::param_decode
    - EVP_PKEY_new
    - EVP_PKEY_free
    - OSSL_STOREerr
    - pem_check_suffix
    - EVP_PKEY_get0_asn1
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_params(const char *pem_name,\n                                          const
      char *pem_header,\n                                          const unsigned
      char *blob,\n                                          size_t len, void **pctx,\n
      \                                         int *matchcount,\n                                          const
      UI_METHOD *ui_method,\n                                          void *ui_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:613,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:615,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:616,1
    - Dst: d2i_X509_AUX
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:622,1
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:623,1
    - Dst: OSSL_STORE_INFO_new_CERT
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:625,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:629,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 8
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 632
    functionName: try_decode_X509Certificate
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - X509_free
    - strcmp
    - d2i_X509
    - d2i_X509_AUX
    - OSSL_STORE_INFO_new_CERT
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_X509Certificate(const char *pem_name,\n
      \                                                  const char *pem_header,\n
      \                                                  const unsigned char *blob,\n
      \                                                  size_t len, void **pctx,\n
      \                                                  int *matchcount,\n                                                   const
      UI_METHOD *ui_method,\n                                                   void
      *ui_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:654,1
    - Dst: d2i_X509_CRL
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:660,1
    - Dst: OSSL_STORE_INFO_new_CRL
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:662,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:666,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 8
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 669
    functionName: try_decode_X509CRL
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - strcmp
    - d2i_X509_CRL
    - OSSL_STORE_INFO_new_CRL
    - X509_CRL_free
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_X509CRL(const char *pem_name,\n                                           const
      char *pem_header,\n                                           const unsigned
      char *blob,\n                                           size_t len, void **pctx,\n
      \                                          int *matchcount,\n                                           const
      UI_METHOD *ui_method,\n                                           void *ui_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:744,1
    - Dst: OSSL_STORE_LOADER_CTX*::_::file::last_handler::destroy_ctx
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:747,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 753
    functionName: OSSL_STORE_LOADER_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OSSL_STORE_LOADER_CTX*::_::file::last_handler::destroy_ctx
    linkageType: ''
    returnType: void
    signature: void OSSL_STORE_LOADER_CTX_free(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:781,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:784,1
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:786,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:791,1
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:801,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:820,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:822,1
    - Dst: stat
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:826,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:827,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:828,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:838,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:840,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:842,1
    - Dst: S_ISDIR
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:846,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:852,1
    - Dst: OPENSSL_DIR_read
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:858,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:863,1
    - Dst: openssl_strerror_r
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:865,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:866,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:875,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:875,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:876,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:877,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:881,1
    - Dst: BIO_buffer_peek
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:882,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:884,1
    - Dst: OSSL_STORE_LOADER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:891,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 4
    argNames:
    - loader
    - uri
    - ui_method
    - ui_data
    argTypes:
    - OSSL_STORE_LOADER*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 893
    functionName: file_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - ossl_tolower
    - stat
    - ERR_add_error_data
    - strncasecmp
    - OPENSSL_DIR_read
    - OSSL_STORE_LOADER_CTX_free
    - OPENSSL_zalloc
    - ERR_clear_error
    - BIO_push
    - S_ISDIR
    - SYSerr
    - strstr
    - openssl_strerror_r
    - OPENSSL_strdup
    - BIO_new_file
    - OSSL_STOREerr
    - BIO_free_all
    - BIO_buffer_peek
    - BIO_f_buffer
    - strncmp
    - BIO_new
    linkageType: ''
    returnType: OSSL_STORE_LOADER_CTX
    signature: "OSSL_STORE_LOADER_CTX *file_open(const OSSL_STORE_LOADER *loader,\n
      \                                       const char *uri,\n                                        const
      UI_METHOD *ui_method,\n                                        void *ui_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:912,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - cmd
    - args
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - int
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 924
    functionName: file_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - OSSL_STOREerr
    linkageType: ''
    returnType: int
    signature: int file_ctrl(OSSL_STORE_LOADER_CTX *ctx, int cmd, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - expected
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: file_expect
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_expect(OSSL_STORE_LOADER_CTX *ctx, int expected)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_SEARCH_get_type
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:939,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:946,1
    - Dst: X509_NAME_hash
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:951,1
    - Dst: OSSL_STORE_SEARCH_get0_name
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:951,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:952,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:958,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - search
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 932
    functionDepth: 6
    functionLinenumber: 932
    functionLinenumberEnd: 961
    functionName: file_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - OSSL_STORE_SEARCH_get_type
    - OSSL_STORE_SEARCH_get0_name
    - X509_NAME_hash
    - OSSL_STOREerr
    linkageType: ''
    returnType: int
    signature: int file_find(OSSL_STORE_LOADER_CTX *ctx, OSSL_STORE_SEARCH *search)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:966,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 978
    functionName: ossl_store_file_attach_pem_bio_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 1
    functionsReached:
    - OSSL_STOREerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_STORE_LOADER_CTX
    signature: OSSL_STORE_LOADER_CTX *ossl_store_file_attach_pem_bio_int(BIO *bp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:997,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:998,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1001,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1007,1
    - Dst: FILE_HANDLER*::try_decode
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1012,1
    - Dst: FILE_HANDLER*::destroy_ctx
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1021,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1026,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1027,1
    - Dst: FILE_HANDLER*::destroy_ctx
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1029,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1044,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1048,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1049,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1052,1
    - Dst: ossl_store_info_get0_EMBEDDED_pem_name
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1054,1
    - Dst: ossl_store_info_get0_EMBEDDED_buffer
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1055,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1058,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1064,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 8
    argNames:
    - ctx
    - pem_name
    - pem_header
    - data
    - len
    - ui_method
    - ui_data
    - matchcount
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - char*
    - char*
    - unsigned char*
    - size_t
    - UI_METHOD*
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 980
    functionDepth: 3
    functionLinenumber: 980
    functionLinenumberEnd: 1067
    functionName: file_load_try_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - FILE_HANDLER*::destroy_ctx
    - FILE_HANDLER*::try_decode
    - OSSL_STORE_INFO_get_type
    - OPENSSL_free
    - OSSL_STORE_INFO_free
    - BUF_MEM_free
    - ossl_store_info_get0_EMBEDDED_pem_name
    - ossl_store_info_get0_EMBEDDED_buffer
    - OPENSSL_zalloc
    - ERR_clear_error
    - OSSL_STOREerr
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *file_load_try_decode(OSSL_STORE_LOADER_CTX *ctx,\n
      \                                            const char *pem_name,\n                                             const
      char *pem_header,\n                                             unsigned char
      *data, size_t len,\n                                             const UI_METHOD
      *ui_method,\n                                             void *ui_data, int
      *matchcount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_CTX*::_::file::last_handler::try_decode
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1078,1
    - Dst: OSSL_STORE_LOADER_CTX*::_::file::last_handler::destroy_ctx
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1084,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - ui_method
    - ui_data
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1090
    functionName: file_load_try_repeat
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_CTX*::_::file::last_handler::try_decode
    - OSSL_STORE_LOADER_CTX*::_::file::last_handler::destroy_ctx
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *file_load_try_repeat(OSSL_STORE_LOADER_CTX *ctx,\n
      \                                            const UI_METHOD *ui_method,\n                                             void
      *ui_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1095,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pem_data
    - secure
    - num
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1098
    functionName: pem_free_flag
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void pem_free_flag(void *pem_data, int secure, size_t num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1105,1
    - Dst: PEM_read_bio
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1107,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1118,1
    - Dst: PEM_get_EVP_CIPHER_INFO
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1122,1
    - Dst: file_fill_pem_pass_data
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1123,1
    - Dst: PEM_do_header
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 8
    argNames:
    - bp
    - pem_name
    - pem_header
    - data
    - len
    - ui_method
    - ui_data
    - secure
    argTypes:
    - BIO*
    - char**
    - char**
    - unsigned char**
    - long*
    - UI_METHOD*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1099
    functionDepth: 5
    functionLinenumber: 1099
    functionLinenumberEnd: 1130
    functionName: file_read_pem
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - PEM_do_header
    - PEM_read_bio_ex
    - PEM_read_bio
    - PEM_get_EVP_CIPHER_INFO
    - strlen
    - file_fill_pem_pass_data
    linkageType: ''
    returnType: int
    signature: "int file_read_pem(BIO *bp, char **pem_name, char **pem_header,\n                         unsigned
      char **data, long *len,\n                         const UI_METHOD *ui_method,\n
      \                        void *ui_data, int secure)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1136,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - data
    - len
    argTypes:
    - BIO*
    - unsigned char**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1144
    functionName: file_read_asn1
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - asn1_d2i_read_bio
    linkageType: ''
    returnType: int
    signature: int file_read_asn1(BIO *bp, unsigned char **data, long *len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1158
    functionName: ends_with_dirsep
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int ends_with_dirsep(const char *uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1163,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1164,1
    - Dst: ends_with_dirsep
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1166,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1167,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1167,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1168,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1170,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1172,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1176,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1177,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - name
    - data
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - char*
    - char**
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 1162
        line_start: 1162
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
    - condition: (data != NULL)
      pos:
        line_end: 1163
        line_start: 1163
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
    constantsTouched: []
    func_position:
      end: 1181
      start: 1160
    functionDepth: 3
    functionLinenumber: 1160
    functionLinenumberEnd: 1181
    functionName: file_name_to_uri
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - ends_with_dirsep
    - OPENSSL_strlcat
    - OPENSSL_zalloc
    - assert
    - OSSL_STOREerr
    - strlen
    linkageType: ''
    returnType: int
    signature: "int file_name_to_uri(OSSL_STORE_LOADER_CTX *ctx, const char *name,\n
      \                           char **data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1200,1
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1223,1
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1225,1
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1234,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1243
    functionName: file_name_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: int file_name_check(OSSL_STORE_LOADER_CTX *ctx, const char *name)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1253,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1262,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1263,1
    - Dst: openssl_strerror_r
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1266,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1267,1
    - Dst: file_name_check
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1273,1
    - Dst: file_name_to_uri
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1274,1
    - Dst: OPENSSL_DIR_read
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1283,1
    - Dst: OSSL_STORE_INFO_new_NAME
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1290,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1291,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1292,1
    - Dst: file_eof
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1295,1
    - Dst: file_load_try_repeat
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1300,1
    - Dst: file_eof
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1304,1
    - Dst: file_read_pem
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1315,1
    - Dst: file_read_asn1
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1322,1
    - Dst: file_load_try_decode
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1328,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1338,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1344,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1351,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1352,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1355,1
    - Dst: pem_free_flag
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1362,1
    - Dst: pem_free_flag
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1363,1
    - Dst: pem_free_flag
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1364,1
    - Dst: file_eof
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1365,1
    - Dst: file_error
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1365,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1373,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1374,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 3
    argNames:
    - ctx
    - ui_method
    - ui_data
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - UI_METHOD*
    - void*
    assertStmts:
    - condition: (ctx->_.dir.last_errno != 0)
      pos:
        line_end: 1261
        line_start: 1261
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
    constantsTouched: []
    func_position:
      end: 1380
      start: 1247
    functionDepth: 6
    functionLinenumber: 1247
    functionLinenumberEnd: 1380
    functionName: file_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - pem_free_flag
    - ERR_add_error_data
    - file_error
    - ERR_peek_error
    - OPENSSL_DIR_read
    - OSSL_STORE_INFO_new_NAME
    - file_name_check
    - OPENSSL_free
    - ERR_clear_error
    - ossl_assert
    - file_load_try_repeat
    - openssl_strerror_r
    - file_name_to_uri
    - file_eof
    - assert
    - OSSL_STOREerr
    - file_load_try_decode
    - OSSL_STORE_INFO_get_type
    - file_read_pem
    - OSSL_STORE_INFO_free
    - file_read_asn1
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *file_load(OSSL_STORE_LOADER_CTX *ctx,\n                                  const
      UI_METHOD *ui_method, void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1385
    functionName: file_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_error(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_CTX*::_::file::last_handler::eof
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1393,1
    - Dst: BIO_eof
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1387
    functionDepth: 1
    functionLinenumber: 1387
    functionLinenumberEnd: 1396
    functionName: file_eof
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 1
    functionsReached:
    - BIO_eof
    - OSSL_STORE_LOADER_CTX*::_::file::last_handler::eof
    linkageType: ''
    returnType: int
    signature: int file_eof(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_DIR_end
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1401,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1403,1
    - Dst: OSSL_STORE_LOADER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1407
    functionName: file_close
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_CTX_free
    - OPENSSL_DIR_end
    - BIO_free_all
    linkageType: ''
    returnType: int
    signature: int file_close(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1409
    functionDepth: 2
    functionLinenumber: 1409
    functionLinenumberEnd: 1413
    functionName: ossl_store_file_detach_pem_bio_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_LOADER_CTX_free
    linkageType: ''
    returnType: int
    signature: int ossl_store_file_detach_pem_bio_int(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_unregister_loader_int
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1432
    functionName: store_file_loader_deinit
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - ossl_store_unregister_loader_int
    linkageType: ''
    returnType: void
    signature: void store_file_loader_deinit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_register_loader_int
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1436,1
    - Dst: OPENSSL_atexit
      Src: /src/openssl-1.1.1g/crypto/store/loader_file.c:1438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1434
    functionDepth: 2
    functionLinenumber: 1434
    functionLinenumberEnd: 1440
    functionName: ossl_store_file_loader_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/loader_file.c
    functionUses: 0
    functionsReached:
    - ossl_store_register_loader_int
    - OPENSSL_atexit
    linkageType: ''
    returnType: int
    signature: int ossl_store_file_loader_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/store/store_init.c:17,1
    - Dst: ossl_store_file_loader_init
      Src: /src/openssl-1.1.1g/crypto/store/store_init.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_init.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - ossl_store_file_loader_init
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_store_init)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/store/store_init.c:23,1
    - Dst: OSSL_STOREerr
      Src: /src/openssl-1.1.1g/crypto/store/store_init.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: ossl_store_init_once
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_init.c
    functionUses: 3
    functionsReached:
    - OSSL_STOREerr
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int ossl_store_init_once(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_destroy_loaders_int
      Src: /src/openssl-1.1.1g/crypto/store/store_init.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: ossl_store_cleanup_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/store/store_init.c
    functionUses: 1
    functionsReached:
    - ossl_store_destroy_loaders_int
    linkageType: ''
    returnType: void
    signature: void ossl_store_cleanup_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: rotl32
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotl32(v, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: rotr32
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr32(v, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: bswap32
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap32(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: GET_U8_BE
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_U8_BE(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: GET_U32_BE
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_U32_BE(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DEST
    - ','
    - IDX
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: PUT_U32_BE
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_U32_BE(DEST, IDX, VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - V0
    - ','
    - V1
    - ','
    - V2
    - ','
    - V3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: MAKE_U32
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_U32(V0, V1, V2, V3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RK
    - ','
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 352
    functionName: ARIA_ADD_ROUND_KEY
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_ADD_ROUND_KEY(RK, T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 377
    functionName: ARIA_SBOX_LAYER1_WITH_PRE_DIFF
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_SBOX_LAYER1_WITH_PRE_DIFF(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 402
    functionName: ARIA_SBOX_LAYER2_WITH_PRE_DIFF
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_SBOX_LAYER2_WITH_PRE_DIFF(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: ARIA_DIFF_WORD
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_DIFF_WORD(T0,T1,T2,T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: ARIA_DIFF_BYTE
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_DIFF_BYTE(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 431
    functionName: ARIA_SUBST_DIFF_ODD
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_SUBST_DIFF_ODD(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: ARIA_SUBST_DIFF_EVEN
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_SUBST_DIFF_EVEN(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RK
    - ','
    - X
    - ','
    - Y
    - ','
    - Q
    - ','
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 461
    functionName: _ARIA_GSRK
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ARIA_GSRK(RK, X, Y, Q, R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RK
    - ','
    - X
    - ','
    - Y
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 463
    functionName: ARIA_GSRK
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_GSRK(RK, X, Y, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - TMP
    - ','
    - TMP2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: ARIA_DEC_DIFF_BYTE
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_DEC_DIFF_BYTE(X, Y, TMP, TMP2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:489,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:490,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:491,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:492,1
    - Dst: ARIA_ADD_ROUND_KEY
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:494,1
    - Dst: ARIA_SUBST_DIFF_ODD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:497,1
    - Dst: ARIA_ADD_ROUND_KEY
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:498,1
    - Dst: ARIA_SUBST_DIFF_EVEN
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:502,1
    - Dst: ARIA_ADD_ROUND_KEY
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:503,1
    - Dst: ARIA_SUBST_DIFF_ODD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:506,1
    - Dst: ARIA_ADD_ROUND_KEY
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:507,1
    - Dst: MAKE_U32
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:511,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:512,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:513,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:514,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:515,1
    - Dst: MAKE_U32
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:516,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:517,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:518,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:519,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:520,1
    - Dst: MAKE_U32
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:521,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:522,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:523,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:524,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:525,1
    - Dst: MAKE_U32
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:526,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:527,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:528,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:529,1
    - Dst: GET_U8_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:530,1
    - Dst: PUT_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:532,1
    - Dst: PUT_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:533,1
    - Dst: PUT_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:534,1
    - Dst: PUT_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:535,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 536
    functionName: aria_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 1
    functionsReached:
    - ARIA_SUBST_DIFF_EVEN
    - GET_U8_BE
    - PUT_U32_BE
    - ARIA_ADD_ROUND_KEY
    - GET_U32_BE
    - MAKE_U32
    - ARIA_SUBST_DIFF_ODD
    linkageType: ''
    returnType: void
    signature: "void aria_encrypt(const unsigned char *in, unsigned char *out,\n                  const
      ARIA_KEY *key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:559,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:560,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:561,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:562,1
    - Dst: ARIA_SUBST_DIFF_ODD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:569,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:572,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:573,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:575,1
    - Dst: GET_U32_BE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:576,1
    - Dst: ARIA_SUBST_DIFF_EVEN
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:601,1
    - Dst: ARIA_SUBST_DIFF_ODD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:618,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:625,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:627,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:629,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:631,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:634,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:636,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:638,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:640,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:643,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:645,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:647,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:649,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:652,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:655,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:657,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:661,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:664,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 99
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 668
    functionName: aria_set_encrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 3
    functionsReached:
    - ARIA_GSRK
    - ARIA_SUBST_DIFF_ODD
    - ARIA_SUBST_DIFF_EVEN
    - GET_U32_BE
    linkageType: ''
    returnType: int
    signature: "int aria_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                        ARIA_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aria_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:679,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:693,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:704,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:705,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:706,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:707,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:709,1
    - Dst: ARIA_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:710,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:711,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:718,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:719,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:720,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:721,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:723,1
    - Dst: ARIA_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:724,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:725,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:737,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:738,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:739,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:740,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:742,1
    - Dst: ARIA_DIFF_BYTE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:743,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 752
    functionName: aria_set_decrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 1
    functionsReached:
    - ARIA_DIFF_BYTE
    - aria_set_encrypt_key
    - memcpy
    - ARIA_DIFF_WORD
    - ARIA_DEC_DIFF_BYTE
    linkageType: ''
    returnType: int
    signature: "int aria_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                        ARIA_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - o
    - x
    - y
    argTypes:
    - ARIA_c128
    - ARIA_c128
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 921
    functionName: xor128
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor128(ARIA_c128 o, const ARIA_c128 x, const ARIA_u128 *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - n
    - o
    - xor
    - z
    argTypes:
    - unsigned int
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 940
    functionName: rotnr
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline rotnr(unsigned int n, ARIA_u128 *o,\n                              const
      ARIA_u128 *xor, const ARIA_u128 *z)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 949
    functionName: rot19r
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot19r(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: rot31r
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot31r(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 967
    functionName: rot61l
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot61l(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 976
    functionName: rot31l
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot31l(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 985
    functionName: rot19l
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot19l(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - o
    - x
    - y
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 1000
    functionName: sl1
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sl1(ARIA_u128 *o, const ARIA_u128 *x, const ARIA_u128 *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - o
    - x
    - y
    argTypes:
    - ARIA_c128
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1015
    functionName: sl2
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sl2(ARIA_c128 o, const ARIA_u128 *x, const ARIA_u128 *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - y
    - x
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1055
    functionName: a
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 558
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void a(ARIA_u128 *y, const ARIA_u128 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sl1
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1067,1
    - Dst: a
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - o
    - d
    - rk
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1069
    functionName: FO
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 7
    functionsReached:
    - a
    - sl1
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline FO(ARIA_u128 *o, const ARIA_u128 *d,\n                           const
      ARIA_u128 *rk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sl2
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1081,1
    - Dst: a
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - o
    - d
    - rk
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1083
    functionName: FE
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - a
    - sl2
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline FE(ARIA_u128 *o, const ARIA_u128 *d,\n                           const
      ARIA_u128 *rk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1095,1
    - Dst: FO
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1097,1
    - Dst: FE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1098,1
    - Dst: FO
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1100,1
    - Dst: sl2
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1101,1
    - Dst: xor128
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - o
    - pin
    - rounds
    - keys
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1103
    functionName: do_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - FO
    - xor128
    - sl2
    - memcpy
    - FE
    linkageType: ''
    returnType: void
    signature: "void do_encrypt(unsigned char *o, const unsigned char *pin,\n                       unsigned
      int rounds, const ARIA_u128 *keys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1112,1
    - Dst: do_encrypt
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - ARIA_KEY*
    assertStmts:
    - condition: (in != NULL && out != NULL && key != NULL)
      pos:
        line_end: 1111
        line_start: 1111
        source_file: /src/openssl-1.1.1g/crypto/aria/aria.c
    constantsTouched: []
    func_position:
      end: 1114
      start: 1109
    functionDepth: 3
    functionLinenumber: 1109
    functionLinenumberEnd: 1114
    functionName: aria_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 1
    functionsReached:
    - do_encrypt
    - assert
    linkageType: ''
    returnType: void
    signature: "void aria_encrypt(const unsigned char *in, unsigned char *out,\n                  const
      ARIA_KEY *key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1130,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1139,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1147,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1148,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1156,1
    - Dst: FO
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1160,1
    - Dst: xor128
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1160,1
    - Dst: FE
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1161,1
    - Dst: xor128
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1161,1
    - Dst: FO
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1162,1
    - Dst: xor128
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1162,1
    - Dst: rot19r
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1164,1
    - Dst: rot19r
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1165,1
    - Dst: rot19r
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1166,1
    - Dst: rot19r
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1167,1
    - Dst: rot31r
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1169,1
    - Dst: rot31r
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1170,1
    - Dst: rot31r
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1171,1
    - Dst: rot31r
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1172,1
    - Dst: rot61l
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1174,1
    - Dst: rot61l
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1175,1
    - Dst: rot61l
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1176,1
    - Dst: rot61l
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1177,1
    - Dst: rot31l
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1179,1
    - Dst: rot31l
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1181,1
    - Dst: rot31l
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1182,1
    - Dst: rot31l
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1185,1
    - Dst: rot19l
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1186,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1190
    functionName: aria_set_encrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 4
    functionsReached:
    - FO
    - rot31r
    - xor128
    - memcpy
    - rot31l
    - FE
    - rot19l
    - memset
    - rot19r
    - rot61l
    linkageType: ''
    returnType: int
    signature: "int aria_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                        ARIA_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aria_set_encrypt_key
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1199,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1204,1
    - Dst: a
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1206,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/aria/aria.c:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1210
    functionName: aria_set_decrypt_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/aria/aria.c
    functionUses: 1
    functionsReached:
    - aria_set_encrypt_key
    - a
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int aria_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                        ARIA_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:65,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:66,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:67,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:68,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:69,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:70,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:71,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: sha512_224_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 1
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: int sha512_224_init(SHA512_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:83,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:84,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:85,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:86,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:87,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:88,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:89,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: sha512_256_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 1
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: int sha512_256_init(SHA512_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:101,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:102,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:103,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:104,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:105,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:106,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:107,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 115
    functionName: SHA384_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 2
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: int SHA384_Init(SHA512_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:119,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:120,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:121,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:122,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:123,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:124,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:125,1
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: SHA512_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: int SHA512_Init(SHA512_CTX *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:148,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:150,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:153,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 88
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 257
    functionName: SHA512_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 4
    functionsReached:
    - memset
    - sha512_block_data_order
    linkageType: ''
    returnType: int
    signature: int SHA512_Final(unsigned char *md, SHA512_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: SHA384_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 1
    functionsReached:
    - SHA512_Final
    linkageType: ''
    returnType: int
    signature: int SHA384_Final(unsigned char *md, SHA512_CTX *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:273,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:284,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:287,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:289,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:297,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:298,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:302,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:307,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - c
    - _data
    - len
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 310
    functionName: SHA512_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - memcpy
    - sha512_block_data_order
    - U64
    linkageType: ''
    returnType: int
    signature: int SHA512_Update(SHA512_CTX *c, const void *_data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: SHA384_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 1
    functionsReached:
    - SHA512_Update
    linkageType: ''
    returnType: int
    signature: int SHA384_Update(SHA512_CTX *c, const void *data, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:321,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - SHA512_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: SHA512_Transform
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - sha512_block_data_order
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA512_Transform(SHA512_CTX *c, const unsigned char *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Init
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:333,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:334,1
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:335,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 338
    functionName: SHA384
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    - SHA384_Init
    - SHA512_Update
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Init
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:347,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:348,1
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:349,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 352
    functionName: SHA512
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - SHA512_Update
    - SHA512_Final
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: ROTR
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: PULL64
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 423
    functionName: PULL64
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 430
    functionName: PULL64
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: ROTR
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: ROTR
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: PULL64
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: ROTR
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 467
    functionName: __pull64be
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SHA_LONG64
    signature: SHA_LONG64 __pull64be(const void *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 475
    functionName: __pull64be
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SHA_LONG64
    signature: SHA_LONG64 __pull64be(const void *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: PULL64
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: B
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B(x,j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: PULL64
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: ROTR
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(x,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    functionName: Sigma0
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: Sigma1
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: sigma0
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 492
    functionName: sigma1
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 493
    functionName: Ch
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 494
    functionName: Maj
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:525,1
    - Dst: Sigma1
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:530,1
    - Dst: Ch
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:530,1
    - Dst: Sigma0
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:532,1
    - Dst: Maj
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:532,1
    - Dst: sigma0
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:536,1
    - Dst: sigma1
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:537,1
    - Dst: Sigma1
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:543,1
    - Dst: Ch
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:543,1
    - Dst: Sigma0
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:545,1
    - Dst: Maj
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 559
    functionName: sha512_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - Sigma1
    - PULL64
    - Maj
    - sigma1
    - Sigma0
    - Ch
    - sigma0
    linkageType: ''
    returnType: void
    signature: "void sha512_block_data_order(SHA512_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:586,1
    - Dst: Sigma1
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:588,1
    - Dst: Ch
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:588,1
    - Dst: Sigma0
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:589,1
    - Dst: Maj
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:589,1
    - Dst: sigma0
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:602,1
    - Dst: sigma1
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:604,1
    - Dst: Sigma1
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:607,1
    - Dst: Ch
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:607,1
    - Dst: Sigma0
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:608,1
    - Dst: Maj
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 630
    functionName: sha512_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - Sigma1
    - PULL64
    - Maj
    - sigma1
    - Sigma0
    - Ch
    - sigma0
    linkageType: ''
    returnType: void
    signature: "void sha512_block_data_order(SHA512_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 637
    functionName: ROUND_00_15
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_00_15(i,a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - i
    - ','
    - j
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 643
    functionName: ROUND_16_80
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_16_80(i,j,a,b,c,d,e,f,g,h,X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:665,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:667,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:669,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:671,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:673,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:675,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:677,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:679,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:681,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:683,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:685,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:687,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:689,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:691,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:693,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:695,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:697,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:698,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:699,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:700,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:701,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:702,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:703,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:704,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:705,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:706,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:707,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:708,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:709,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:710,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:711,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:712,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:713,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:714,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:715,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:716,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:717,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:718,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:719,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:720,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:721,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:722,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:723,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:724,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:725,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:726,1
    - Dst: PULL64
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:727,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:728,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:732,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:733,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:734,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:735,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:736,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:737,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:738,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:739,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:740,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:741,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:742,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:743,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:744,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:745,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:746,1
    - Dst: ROUND_16_80
      Src: /src/openssl-1.1.1g/crypto/sha/sha512.c:747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 102
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 761
    functionName: sha512_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - ROUND_16_80
    - PULL64
    - ROUND_00_15
    linkageType: ''
    returnType: void
    signature: "void sha512_block_data_order(SHA512_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - ix
    - ','
    - ia
    - ','
    - ib
    - ','
    - ic
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: Xupdate
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Xupdate(a,ix,ia,ib,ic,id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: HASH_INIT
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int HASH_INIT(SHA_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: F_00_19
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_00_19(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: F_20_39
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_20_39(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: F_40_59
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_40_59(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: F_60_79
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_60_79(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: BODY_00_15
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_00_15(i,a,b,c,d,e,f,xi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xi
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: BODY_16_19
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_16_19(i,a,b,c,d,e,f,xi,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xi
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: BODY_20_31
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_20_31(i,a,b,c,d,e,f,xi,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: BODY_32_39
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_32_39(i,a,b,c,d,e,f,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: BODY_40_59
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_40_59(i,a,b,c,d,e,f,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: BODY_60_79
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_60_79(i,a,b,c,d,e,f,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: X
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: X
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:165,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:166,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:167,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:167,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:168,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:169,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:169,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:170,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:171,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:171,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:172,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:173,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:173,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:174,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:175,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:175,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:176,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:177,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:177,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:178,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:179,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:179,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:180,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:181,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:181,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:182,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:183,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:183,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:184,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:185,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:185,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:186,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:187,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:187,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:188,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:189,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:189,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:190,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:191,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:191,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:192,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:193,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:193,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:194,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:195,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:195,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:196,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:196,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:200,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:201,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:202,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:203,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:204,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:204,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:205,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:206,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:207,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:207,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:208,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:209,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:210,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:210,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:211,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:212,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:213,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:213,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:214,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:215,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:216,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:216,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:217,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:218,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:219,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:219,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:220,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:221,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:222,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:222,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:223,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:224,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:225,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:225,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:226,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:227,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:228,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:228,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:229,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:230,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:231,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:231,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:232,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:233,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:234,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:234,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:235,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:236,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:237,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:237,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:238,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:239,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:240,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:240,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:241,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:242,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:243,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:243,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:244,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:245,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:246,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:246,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:247,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:247,1
    - Dst: BODY_16_19
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:250,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:250,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:250,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:250,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:250,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:250,1
    - Dst: BODY_16_19
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:251,1
    - Dst: BODY_16_19
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:252,1
    - Dst: BODY_16_19
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:253,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:255,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:256,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:257,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:258,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:259,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:260,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:261,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:262,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:263,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:263,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:263,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:263,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:263,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:263,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:264,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:264,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:264,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:264,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:264,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:264,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:265,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:265,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:265,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:265,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:265,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:265,1
    - Dst: BODY_20_31
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:266,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:266,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:266,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:266,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:266,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:266,1
    - Dst: BODY_32_39
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:268,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:268,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:268,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:268,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:268,1
    - Dst: BODY_32_39
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:269,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:269,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:269,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:269,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:269,1
    - Dst: BODY_32_39
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:270,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:270,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:270,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:270,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:270,1
    - Dst: BODY_32_39
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:271,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:271,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:271,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:271,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:271,1
    - Dst: BODY_32_39
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:272,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:272,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:272,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:272,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:272,1
    - Dst: BODY_32_39
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:273,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:273,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:273,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:273,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:273,1
    - Dst: BODY_32_39
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:274,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:274,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:274,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:274,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:274,1
    - Dst: BODY_32_39
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:275,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:275,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:275,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:275,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:275,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:277,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:277,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:277,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:277,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:277,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:278,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:278,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:278,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:278,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:278,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:279,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:279,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:279,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:279,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:279,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:280,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:280,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:280,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:280,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:280,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:281,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:281,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:281,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:281,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:281,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:282,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:282,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:282,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:282,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:282,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:283,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:283,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:283,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:283,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:283,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:284,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:284,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:284,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:284,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:284,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:285,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:285,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:285,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:285,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:285,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:286,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:286,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:286,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:286,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:286,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:287,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:287,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:287,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:287,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:287,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:288,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:288,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:288,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:288,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:288,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:289,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:289,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:289,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:289,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:289,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:290,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:290,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:290,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:290,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:290,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:291,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:291,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:291,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:291,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:291,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:292,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:292,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:292,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:292,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:292,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:293,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:293,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:293,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:293,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:293,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:294,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:294,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:294,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:294,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:294,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:295,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:295,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:295,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:295,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:295,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:296,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:296,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:296,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:296,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:296,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:298,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:298,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:298,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:298,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:298,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:299,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:299,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:299,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:299,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:299,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:300,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:300,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:300,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:300,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:300,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:301,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:301,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:301,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:301,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:301,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:302,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:302,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:302,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:302,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:302,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:303,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:303,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:303,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:303,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:303,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:304,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:304,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:304,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:304,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:304,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:305,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:305,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:305,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:305,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:305,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:306,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:306,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:306,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:306,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:306,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:307,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:307,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:307,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:307,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:307,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:308,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:308,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:308,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:308,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:308,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:309,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:309,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:309,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:309,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:309,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:310,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:310,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:310,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:310,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:310,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:311,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:311,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:311,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:311,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:311,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:312,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:312,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:312,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:312,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:312,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:313,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:313,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:313,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:313,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:313,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:314,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:314,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:314,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:314,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:314,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:315,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:315,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:315,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:315,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:315,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:316,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:316,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:316,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:316,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:316,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:317,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:317,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:317,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:317,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 168
    argCount: 3
    argNames:
    - c
    - p
    - num
    argTypes:
    - SHA_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 335
    functionName: HASH_BLOCK_DATA_ORDER
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached:
    - HOST_c2l
    - BODY_40_59
    - BODY_00_15
    - BODY_16_19
    - BODY_32_39
    - BODY_60_79
    - X
    - BODY_20_31
    linkageType: ''
    returnType: void
    signature: void HASH_BLOCK_DATA_ORDER(SHA_CTX *c, const void *p, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: BODY_00_15
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_00_15(xi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 350
    functionName: BODY_16_19
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_16_19(xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: BODY_20_39
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_20_39(xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 362
    functionName: BODY_40_59
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_40_59(xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 368
    functionName: BODY_60_79
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_60_79(xa,xb,xc,xd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:385,1
    - Dst: BODY_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:387,1
    - Dst: BODY_16_19
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:390,1
    - Dst: BODY_20_39
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:393,1
    - Dst: BODY_40_59
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:397,1
    - Dst: BODY_60_79
      Src: /src/openssl-1.1.1g/crypto/sha/sha_local.h:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - c
    - p
    - num
    argTypes:
    - SHA_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 421
    functionName: HASH_BLOCK_DATA_ORDER
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached:
    - HOST_c2l
    - BODY_40_59
    - BODY_00_15
    - BODY_16_19
    - BODY_60_79
    - BODY_20_39
    linkageType: ''
    returnType: void
    signature: void HASH_BLOCK_DATA_ORDER(SHA_CTX *c, const void *p, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: ROL32
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL32(a, offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ROL32
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:60,1
    - Dst: ROL32
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:61,1
    - Dst: ROL32
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:64,1
    - Dst: ROL32
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - val
    - offset
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: ROL64
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - ROL32
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ROL64(uint64_t val, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:136,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:137,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:138,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:139,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 149
    functionName: Theta
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - ROL64
    linkageType: ''
    returnType: void
    signature: void Theta(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:156,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:157,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:158,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:159,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: Rho
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - ROL64
    linkageType: ''
    returnType: void
    signature: void Rho(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 203
    functionName: Pi
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Pi(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: Chi
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Chi(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - A
    - i
    argTypes:
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i < (sizeof(iotas) / sizeof(iotas[0])))
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: Iota
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void Iota(uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Theta
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:236,1
    - Dst: Rho
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:237,1
    - Dst: Pi
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:238,1
    - Dst: Chi
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:239,1
    - Dst: Iota
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - Pi
    - Theta
    - Rho
    - Iota
    - Chi
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:260,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:269,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:270,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:271,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:272,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:273,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:281,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:282,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:284,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:285,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:287,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:288,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:289,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:290,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:291,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:300,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:301,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:302,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:303,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:317,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:318,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:319,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:320,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:321,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:329,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:330,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:331,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:332,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:333,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:341,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:342,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:343,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:344,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:345,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:353,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:354,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:355,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:356,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 2
    argNames:
    - A
    - i
    argTypes:
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i < (sizeof(iotas) / sizeof(iotas[0])))
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 364
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 364
    functionName: Round
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 10
    functionsReached:
    - ROL64
    - assert
    linkageType: ''
    returnType: void
    signature: void Round(uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Round
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - Round
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:387,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:395,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:396,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:397,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:398,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:399,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:436,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:437,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:438,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:439,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:441,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:442,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:443,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:444,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:446,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:447,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:448,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:449,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:451,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:452,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:453,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:454,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:456,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:457,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:458,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:459,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:461,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:462,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:463,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 101
    argCount: 2
    argNames:
    - A
    - i
    argTypes:
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i < (sizeof(iotas) / sizeof(iotas[0])))
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 507
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 507
    functionName: Round
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 11
    functionsReached:
    - ROL64
    - assert
    linkageType: ''
    returnType: void
    signature: void Round(uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Round
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 516
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - Round
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:532,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:540,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:541,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:542,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:543,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:544,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:547,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:548,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:549,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:550,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:566,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:567,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:568,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:569,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:570,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:586,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:587,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:588,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:589,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:590,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:606,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:607,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:608,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:609,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:610,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:626,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:627,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:628,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:629,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 3
    argNames:
    - R
    - A
    - i
    argTypes:
    - uint64_t[][]
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i < (sizeof(iotas) / sizeof(iotas[0])))
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 645
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 645
    functionName: Round
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 12
    functionsReached:
    - ROL64
    - assert
    linkageType: ''
    returnType: void
    signature: void Round(uint64_t R[5][5], uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Round
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:662,1
    - Dst: Round
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 674
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - Round
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:690,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:699,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:700,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:701,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:702,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:703,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:706,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:707,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:708,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:709,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:717,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:718,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:719,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:720,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:721,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:729,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:730,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:731,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:732,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:733,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:741,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:742,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:743,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:744,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:745,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:753,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:754,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:755,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:756,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:757,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:766,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:767,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:768,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:769,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:770,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:773,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:774,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:775,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:776,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:784,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:785,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:786,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:787,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:788,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:796,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:797,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:798,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:799,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:800,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:808,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:809,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:810,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:811,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:812,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:820,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:821,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:822,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:823,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:824,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:833,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:834,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:835,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:836,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:837,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:840,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:841,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:842,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:843,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:851,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:852,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:853,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:854,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:855,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:863,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:864,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:865,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:866,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:867,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:875,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:876,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:877,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:878,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:879,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:887,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:888,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:889,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:890,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:891,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:900,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:901,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:902,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:903,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:904,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:907,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:908,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:909,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:910,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:918,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:919,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:920,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:921,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:922,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:930,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:931,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:932,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:933,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:934,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:942,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:943,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:944,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:945,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:946,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:954,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:955,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:956,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:957,1
    - Dst: ROL64
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 227
    argCount: 2
    argNames:
    - A
    - i
    argTypes:
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i <= (sizeof(iotas) / sizeof(iotas[0]) - 4))
      pos:
        line_end: 689
        line_start: 689
        source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 965
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 965
    functionName: FourRounds
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - ROL64
    - assert
    linkageType: ''
    returnType: void
    signature: void FourRounds(uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FourRounds
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 967
    functionDepth: 3
    functionLinenumber: 967
    functionLinenumberEnd: 974
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - FourRounds
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - Ai
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 1012
    functionName: BitInterleave
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BitInterleave(uint64_t Ai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - Ai
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1048
    functionName: BitDeinterleave
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BitDeinterleave(uint64_t Ai)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1066,1
    - Dst: BitInterleave
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1076,1
    - Dst: KeccakF1600
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1078,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - A
    - inp
    - len
    - r
    argTypes:
    - uint64_t[][]
    - unsigned char*
    - size_t
    - size_t
    assertStmts:
    - condition: (r < (25 * sizeof(A[0][0])) && (r % 8) == 0)
      pos:
        line_end: 1065
        line_start: 1065
        source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 1083
      start: 1060
    functionDepth: 4
    functionLinenumber: 1060
    functionLinenumberEnd: 1083
    functionName: SHA3_absorb
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 2
    functionsReached:
    - BitInterleave
    - KeccakF1600
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t SHA3_absorb(uint64_t A[5][5], const unsigned char *inp, size_t
      len,\n                   size_t r)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1094,1
    - Dst: BitDeinterleave
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1098,1
    - Dst: KeccakF1600
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - A
    - out
    - len
    - r
    argTypes:
    - uint64_t[][]
    - unsigned char*
    - size_t
    - size_t
    assertStmts:
    - condition: (r < (25 * sizeof(A[0][0])) && (r % 8) == 0)
      pos:
        line_end: 1093
        line_start: 1093
        source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 1122
      start: 1089
    functionDepth: 4
    functionLinenumber: 1089
    functionLinenumberEnd: 1122
    functionName: SHA3_squeeze
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 1
    functionsReached:
    - BitDeinterleave
    - KeccakF1600
    - assert
    linkageType: ''
    returnType: void
    signature: void SHA3_squeeze(uint64_t A[5][5], unsigned char *out, size_t len,
      size_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1142,1
    - Dst: SHA3_absorb
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1143,1
    - Dst: SHA3_squeeze
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - inp
    - len
    - out
    - d
    - r
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1137
    functionDepth: 5
    functionLinenumber: 1137
    functionLinenumberEnd: 1145
    functionName: SHA3_sponge
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - SHA3_absorb
    - memset
    - SHA3_squeeze
    linkageType: ''
    returnType: void
    signature: "void SHA3_sponge(const unsigned char *inp, size_t len,\n                 unsigned
      char *out, size_t d, size_t r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_sponge
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1225,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1234,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1235,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1238,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1239,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/sha/keccak1600.c:1242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1149
    functionDepth: 6
    functionLinenumber: 1149
    functionLinenumberEnd: 1245
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fprintf
    - SHA3_sponge
    - printf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/crypto/sha/sha1_one.c:22,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/sha/sha1_one.c:24,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/sha/sha1_one.c:25,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/sha/sha1_one.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: SHA1
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha1_one.c
    functionUses: 2
    functionsReached:
    - SHA1_Final
    - SHA1_Init
    - SHA1_Update
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: SHA224_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int SHA224_Init(SHA256_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: SHA256_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int SHA256_Init(SHA256_CTX *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_Init
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:56,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:57,1
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:58,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: SHA224
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - SHA256_Final
    - SHA224_Init
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:70,1
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:71,1
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:72,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: SHA256
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - SHA256_Final
    - SHA256_Init
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: SHA224_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 1
    functionsReached:
    - SHA256_Update
    linkageType: ''
    returnType: int
    signature: int SHA224_Update(SHA256_CTX *c, const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Final
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: SHA224_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 1
    functionsReached:
    - SHA256_Final
    linkageType: ''
    returnType: int
    signature: int SHA224_Final(unsigned char *md, SHA256_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 121
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: Sigma0
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: Sigma1
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: sigma0
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: sigma1
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: Ch
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: Maj
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:188,1
    - Dst: Sigma1
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:190,1
    - Dst: Ch
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:190,1
    - Dst: Sigma0
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:191,1
    - Dst: Maj
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:191,1
    - Dst: sigma0
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:204,1
    - Dst: sigma1
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:206,1
    - Dst: Sigma1
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:209,1
    - Dst: Ch
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:209,1
    - Dst: Sigma0
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:210,1
    - Dst: Maj
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 231
    functionName: sha256_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 2
    functionsReached:
    - Sigma1
    - HOST_c2l
    - Maj
    - sigma1
    - Sigma0
    - Ch
    - sigma0
    linkageType: ''
    returnType: void
    signature: "void sha256_block_data_order(SHA256_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: ROUND_00_15
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_00_15(i,a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: ROUND_16_63
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_16_63(i,a,b,c,d,e,f,g,h,X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:276,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:278,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:280,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:282,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:284,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:286,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:288,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:290,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:292,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:294,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:296,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:298,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:300,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:302,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:304,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:306,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:312,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:314,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:315,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:317,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:318,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:320,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:321,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:323,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:324,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:326,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:327,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:329,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:330,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:332,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:333,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:335,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:336,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:338,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:339,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:341,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:342,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:344,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:345,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:347,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:348,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:350,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:351,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:353,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:354,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:356,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:357,1
    - Dst: ROUND_00_15
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:359,1
    - Dst: ROUND_16_63
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:363,1
    - Dst: ROUND_16_63
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:364,1
    - Dst: ROUND_16_63
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:365,1
    - Dst: ROUND_16_63
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:366,1
    - Dst: ROUND_16_63
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:367,1
    - Dst: ROUND_16_63
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:368,1
    - Dst: ROUND_16_63
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:369,1
    - Dst: ROUND_16_63
      Src: /src/openssl-1.1.1g/crypto/sha/sha256.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 113
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 383
    functionName: sha256_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/sha/sha256.c
    functionUses: 2
    functionsReached:
    - ROUND_00_15
    - ROUND_16_63
    - HOST_c2l
    linkageType: ''
    returnType: void
    signature: "void sha256_block_data_order(SHA256_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEED_encrypt
      Src: /src/openssl-1.1.1g/crypto/seed/seed_ecb.c:16,1
    - Dst: SEED_decrypt
      Src: /src/openssl-1.1.1g/crypto/seed/seed_ecb.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - SEED_KEY_SCHEDULE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: SEED_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_ecb.c
    functionUses: 0
    functionsReached:
    - SEED_decrypt
    - SEED_encrypt
    linkageType: ''
    returnType: void
    signature: "void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     const SEED_KEY_SCHEDULE *ks, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/seed/seed_ofb.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - len
    - ks
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SEED_KEY_SCHEDULE*
    - unsigned char[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: SEED_ofb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_ofb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                        size_t len, const SEED_KEY_SCHEDULE *ks,\n                         unsigned
      char ivec[SEED_BLOCK_SIZE], int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/seed/seed_cfb.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - len
    - ks
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SEED_KEY_SCHEDULE*
    - unsigned char[]
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: SEED_cfb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                        size_t len, const SEED_KEY_SCHEDULE *ks,\n                         unsigned
      char ivec[SEED_BLOCK_SIZE], int *num,\n                         int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: G_FUNC
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_FUNC(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 412
    functionName: G_FUNC
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int G_FUNC(unsigned int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:446,1
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:447,1
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:448,1
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:449,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:453,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:454,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:455,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:458,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:459,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:460,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:461,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:462,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:463,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:464,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:465,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:466,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:467,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:468,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:469,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:470,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:471,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:472,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:473,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:474,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:475,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:476,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:477,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:478,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:479,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:480,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:481,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:482,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:483,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:484,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:485,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:490,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:491,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:492,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 2
    argNames:
    - rawkey
    - ks
    argTypes:
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 497
    functionName: SEED_set_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed.c
    functionUses: 1
    functionsReached:
    - KEYUPDATE_TEMP
    - KEYSCHEDULE_UPDATE0
    - KEYSCHEDULE_UPDATE1
    - char2word
    linkageType: ''
    returnType: void
    signature: "void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH],\n                  SEED_KEY_SCHEDULE
      *ks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:506,1
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:507,1
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:508,1
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:509,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:512,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:513,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:514,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:515,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:516,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:517,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:518,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:519,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:520,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:521,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:522,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:523,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:524,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:525,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:526,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:527,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:532,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:533,1
    - Dst: word2char
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:538,1
    - Dst: word2char
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:539,1
    - Dst: word2char
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:540,1
    - Dst: word2char
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - s
    - d
    - ks
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 542
    functionName: SEED_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed.c
    functionUses: 1
    functionsReached:
    - word2char
    - E_SEED
    - char2word
    linkageType: ''
    returnType: void
    signature: "void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE],\n                  unsigned
      char d[SEED_BLOCK_SIZE],\n                  const SEED_KEY_SCHEDULE *ks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:551,1
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:552,1
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:553,1
    - Dst: char2word
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:554,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:557,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:558,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:559,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:560,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:561,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:562,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:563,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:564,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:565,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:566,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:567,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:568,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:569,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:570,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:571,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:572,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:577,1
    - Dst: E_SEED
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:578,1
    - Dst: word2char
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:584,1
    - Dst: word2char
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:585,1
    - Dst: word2char
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:586,1
    - Dst: word2char
      Src: /src/openssl-1.1.1g/crypto/seed/seed.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - s
    - d
    - ks
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 588
    functionName: SEED_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed.c
    functionUses: 1
    functionsReached:
    - word2char
    - E_SEED
    - char2word
    linkageType: ''
    returnType: void
    signature: "void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE],\n                  unsigned
      char d[SEED_BLOCK_SIZE],\n                  const SEED_KEY_SCHEDULE *ks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-1.1.1g/crypto/seed/seed_cbc.c:18,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/seed/seed_cbc.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - ks
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SEED_KEY_SCHEDULE*
    - unsigned char[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: SEED_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_cbc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: void
    signature: "void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     size_t len, const SEED_KEY_SCHEDULE *ks,\n                      unsigned
      char ivec[SEED_BLOCK_SIZE], int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: char2word
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: char2word(c, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: word2char
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word2char(l, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - X1
    - ','
    - X2
    - ','
    - X3
    - ','
    - X4
    - ','
    - KC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: KEYSCHEDULE_UPDATE0
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYSCHEDULE_UPDATE0(T0, T1, X1, X2, X3, X4, KC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - X1
    - ','
    - X2
    - ','
    - X3
    - ','
    - X4
    - ','
    - KC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: KEYSCHEDULE_UPDATE1
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYSCHEDULE_UPDATE1(T0, T1, X1, X2, X3, X4, KC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: KEYUPDATE_TEMP
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYUPDATE_TEMP(T0, T1, K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - SRC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: XOR_SEEDBLOCK
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XOR_SEEDBLOCK(DST, SRC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - SRC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: MOV_SEEDBLOCK
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOV_SEEDBLOCK(DST, SRC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: CHAR2WORD
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR2WORD(C, I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: WORD2CHAR
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD2CHAR(I, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - X1
    - ','
    - X2
    - ','
    - X3
    - ','
    - X4
    - ','
    - rbase
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: E_SEED
    functionSourceFile: /src/openssl-1.1.1g/crypto/seed/seed_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_SEED(T0, T1, X1, X2, X3, X4, rbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(v, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: U32TO8_LITTLE
    functionSourceFile: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8_LITTLE(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: QUARTERROUND
    functionSourceFile: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUARTERROUND(a,b,c,d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:51,1
    - Dst: QUARTERROUND
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:54,1
    - Dst: QUARTERROUND
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:55,1
    - Dst: QUARTERROUND
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:56,1
    - Dst: QUARTERROUND
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:57,1
    - Dst: QUARTERROUND
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:58,1
    - Dst: QUARTERROUND
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:59,1
    - Dst: QUARTERROUND
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:60,1
    - Dst: QUARTERROUND
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:61,1
    - Dst: U32TO8_LITTLE
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - chacha_buf*
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 71
    functionName: chacha20_core
    functionSourceFile: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
    functionUses: 0
    functionsReached:
    - QUARTERROUND
    - U32TO8_LITTLE
    - memcpy
    linkageType: ''
    returnType: void
    signature: void chacha20_core(chacha_buf *output, const u32 input[16])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:82,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:82,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:83,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:84,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:85,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:85,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:86,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:87,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:88,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:88,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:89,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:90,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:91,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:91,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:92,1
    - Dst: ossl_toascii
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:93,1
    - Dst: chacha20_core
      Src: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 5
    argNames:
    - out
    - inp
    - len
    - key
    - counter
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned int[]
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 130
    functionName: ChaCha20_ctr32
    functionSourceFile: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
    functionUses: 3
    functionsReached:
    - ossl_toascii
    - chacha20_core
    linkageType: ''
    returnType: void
    signature: "void ChaCha20_ctr32(unsigned char *out, const unsigned char *inp,\n
      \                   size_t len, const unsigned int key[8],\n                    const
      unsigned int counter[4])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DHxparams
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:29,1
    - Dst: d2i_DHparams
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkey
    - pp
    - length
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: d2i_dhp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_DHxparams
    - d2i_DHparams
    linkageType: ''
    returnType: DH
    signature: "DH *d2i_dhp(const EVP_PKEY *pkey, const unsigned char **pp,\n                   long
      length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DHxparams
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:36,1
    - Dst: i2d_DHparams
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkey
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - DH*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: i2d_dhp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_DHparams
    - i2d_DHxparams
    linkageType: ''
    returnType: int
    signature: int i2d_dhp(const EVP_PKEY *pkey, const DH *a, unsigned char **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: int_dh_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_free
    linkageType: ''
    returnType: void
    signature: void int_dh_free(EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:57,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:59,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:62,1
    - Dst: d2i_dhp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:70,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:71,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:75,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:76,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:81,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:82,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:86,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:87,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:91,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 95
    functionName: dh_pub_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get0_param
    - DHerr
    - d2i_dhp
    - ASN1_INTEGER_free
    - d2i_ASN1_INTEGER
    - DH_free
    - X509_ALGOR_get0
    - EVP_PKEY_assign
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: int
    signature: int dh_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:108,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:110,1
    - Dst: i2d_dhp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:113,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:115,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:120,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:124,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:126,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:129,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:133,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:138,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:139,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 142
    functionName: dh_pub_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_dhp
    - OBJ_nid2obj
    - DHerr
    - ASN1_STRING_free
    - OPENSSL_free
    - ASN1_INTEGER_free
    - BN_to_ASN1_INTEGER
    - X509_PUBKEY_set0_param
    - ASN1_STRING_new
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int dh_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:162,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:165,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:169,1
    - Dst: d2i_dhp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:175,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:179,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:180,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:181,1
    - Dst: DH_generate_key
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:185,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:188,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:190,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:195,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:197,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:198,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 200
    functionName: dh_priv_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - BN_secure_new
    - DHerr
    - d2i_dhp
    - d2i_ASN1_INTEGER
    - ASN1_STRING_clear_free
    - DH_free
    - X509_ALGOR_get0
    - PKCS8_pkey_get0
    - DH_generate_key
    - EVP_PKEY_assign
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: int
    signature: int dh_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:209,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:212,1
    - Dst: i2d_dhp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:216,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:218,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:224,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:227,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:231,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:233,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:236,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:236,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:243,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:244,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 247
    functionName: dh_priv_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_dhp
    - OBJ_nid2obj
    - DHerr
    - ASN1_STRING_free
    - OPENSSL_free
    - BN_to_ASN1_INTEGER
    - PKCS8_pkey_set0
    - ASN1_STRING_new
    - ASN1_STRING_clear_free
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int dh_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_dhp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:254,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:255,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: dh_param_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DHerr
    - d2i_dhp
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: "int dh_param_decode(EVP_PKEY *pkey,\n                           const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_dhp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: dh_param_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_dhp
    linkageType: ''
    returnType: int
    signature: int dh_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:296,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:297,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:297,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:301,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:303,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:306,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:308,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:310,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:312,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:316,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:317,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:320,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:321,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:324,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:328,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:331,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:334,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:335,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:343,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 70
    argCount: 4
    argNames:
    - bp
    - x
    - indent
    - ptype
    argTypes:
    - BIO*
    - DH*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 345
    functionName: do_dh_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_bn_print
    - BIO_write
    - DHerr
    - BIO_puts
    - BIO_printf
    - BN_num_bits
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: int do_dh_print(BIO *bp, const DH *x, int indent, int ptype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: int_dh_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_size
    linkageType: ''
    returnType: int
    signature: int int_dh_size(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: dh_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int dh_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_security_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: dh_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_security_bits
    linkageType: ''
    returnType: int
    signature: int dh_security_bits(const EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:364,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:365,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 372
    functionName: dh_cmp_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int dh_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:384,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:385,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:387,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - BIGNUM**
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 392
    functionName: int_dh_bn_cpy
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - BN_get_flags
    - BN_dup
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int int_dh_bn_cpy(BIGNUM **dst, const BIGNUM *src)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: int_dh_bn_cpy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:398,1
    - Dst: int_dh_bn_cpy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:400,1
    - Dst: int_dh_bn_cpy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:403,1
    - Dst: int_dh_bn_cpy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:405,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:407,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - to
    - from
    - is_x942
    argTypes:
    - DH*
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 394
    functionDepth: 5
    functionLinenumber: 394
    functionLinenumberEnd: 419
    functionName: int_dh_param_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - int_dh_bn_cpy
    linkageType: ''
    returnType: int
    signature: int int_dh_param_copy(DH *to, const DH *from, int is_x942)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:424,1
    - Dst: int_dh_param_copy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:427,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 6
    functionLinenumber: 421
    functionLinenumberEnd: 432
    functionName: DHparams_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_new
    - DH_free
    - int_dh_param_copy
    linkageType: ''
    returnType: DH
    signature: DH *DHparams_dup(DH *dh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:437,1
    - Dst: int_dh_param_copy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 434
    functionDepth: 6
    functionLinenumber: 434
    functionLinenumberEnd: 443
    functionName: dh_copy_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_new
    - int_dh_param_copy
    linkageType: ''
    returnType: int
    signature: int dh_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 450
    functionName: dh_missing_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dh_missing_parameters(const EVP_PKEY *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dh_cmp_parameters
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:454,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: dh_pub_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - dh_cmp_parameters
    linkageType: ''
    returnType: int
    signature: int dh_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 4
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: dh_param_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: "int dh_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 4
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: dh_public_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: "int dh_public_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                           ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: dh_private_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: "int dh_private_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n
      \                           ASN1_PCTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: DHparams_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: int DHparams_print(BIO *bp, const DH *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dh_cms_decrypt
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:497,1
    - Dst: dh_cms_encrypt
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 510
    functionName: dh_pkey_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - dh_cms_decrypt
    - dh_cms_encrypt
    linkageType: ''
    returnType: int
    signature: int dh_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:517,1
    - Dst: DH_check_pub_key_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 522
    functionName: dh_pkey_public_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DHerr
    - DH_check_pub_key_ex
    linkageType: ''
    returnType: int
    signature: int dh_pkey_public_check(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_check_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 529
    functionName: dh_pkey_param_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_check_ex
    linkageType: ''
    returnType: int
    signature: int dh_pkey_param_check(const EVP_PKEY *pkey)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:624,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:625,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:631,1
    - Dst: DHparams_dup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:637,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:639,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:640,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:644,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:645,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:650,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:651,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:655,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:658,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:660,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:663,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:664,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:665,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 3
    argNames:
    - pctx
    - alg
    - pubkey
    argTypes:
    - EVP_PKEY_CTX*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 611
    functionDepth: 7
    functionLinenumber: 611
    functionLinenumberEnd: 667
    functionName: dh_cms_set_peerkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - DHparams_dup
    - DHerr
    - ASN1_INTEGER_free
    - ASN1_STRING_length
    - d2i_ASN1_INTEGER
    - EVP_PKEY_CTX_get0_pkey
    - EVP_PKEY_derive_set_peer
    - DH_free
    - X509_ALGOR_get0
    - EVP_PKEY_new
    - OBJ_obj2nid
    - ASN1_STRING_get0_data
    - EVP_PKEY_assign
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: int
    signature: "int dh_cms_set_peerkey(EVP_PKEY_CTX *pctx,\n                              X509_ALGOR
      *alg, ASN1_BIT_STRING *pubkey)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:682,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:689,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:690,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_type
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:694,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_md
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:697,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:697,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:705,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:708,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:711,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:712,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:714,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:716,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:719,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_outlen
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:720,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_oid
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:723,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:724,1
    - Dst: EVP_CIPHER_type
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:724,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:729,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:730,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:730,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_ukm
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:735,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:741,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:742,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 62
    argCount: 2
    argNames:
    - pctx
    - ri
    argTypes:
    - EVP_PKEY_CTX*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 669
    functionDepth: 4
    functionLinenumber: 669
    functionLinenumberEnd: 744
    functionName: dh_cms_set_shared_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_X509_ALGOR
    - EVP_CIPHER_type
    - EVP_PKEY_CTX_set_dh_kdf_type
    - EVP_PKEY_CTX_set_dh_kdf_outlen
    - OPENSSL_free
    - EVP_CIPHER_CTX_key_length
    - ASN1_STRING_length
    - EVP_PKEY_CTX_set_dh_kdf_md
    - OBJ_nid2obj
    - CMS_RecipientInfo_kari_get0_alg
    - EVP_sha1
    - ASN1_STRING_get0_data
    - X509_ALGOR_free
    - OBJ_obj2nid
    - CMS_RecipientInfo_kari_get0_ctx
    - DHerr
    - EVP_PKEY_CTX_set0_dh_kdf_oid
    - EVP_PKEY_CTX_set0_dh_kdf_ukm
    - EVP_CIPHER_asn1_to_param
    - EVP_get_cipherbyobj
    - EVP_EncryptInit_ex
    - EVP_CIPHER_mode
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int dh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo *ri)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:749,1
    - Dst: EVP_PKEY_CTX_get0_peerkey
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:753,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:756,1
    - Dst: dh_cms_set_peerkey
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:761,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:762,1
    - Dst: dh_cms_set_shared_info
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:767,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:768,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 746
    functionDepth: 8
    functionLinenumber: 746
    functionLinenumberEnd: 772
    functionName: dh_cms_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 1
    functionsReached:
    - dh_cms_set_peerkey
    - DHerr
    - EVP_PKEY_CTX_get0_peerkey
    - CMS_RecipientInfo_kari_get0_orig_id
    - CMS_RecipientInfo_get0_pkey_ctx
    - dh_cms_set_shared_info
    linkageType: ''
    returnType: int
    signature: int dh_cms_decrypt(CMS_RecipientInfo *ri)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:791,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:795,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:796,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:799,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:801,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:802,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:807,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:808,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:811,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:816,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:816,1
    - Dst: EVP_PKEY_CTX_get_dh_kdf_type
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:821,1
    - Dst: EVP_PKEY_CTX_get_dh_kdf_md
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:824,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_type
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:829,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:836,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_md
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:837,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:839,1
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:843,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:847,1
    - Dst: EVP_CIPHER_CTX_type
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:848,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_oid
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:849,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:849,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:851,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:855,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:858,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:859,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:862,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:864,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:865,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_outlen
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:869,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:873,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:874,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:874,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_ukm
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:879,1
    - Dst: i2d_X509_ALGOR
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:888,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:891,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:894,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:896,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:896,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:902,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:903,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c:904,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 107
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 906
    functionName: dh_cms_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_TYPE_get
    - EVP_CIPHER_CTX_type
    - EVP_PKEY_CTX_set_dh_kdf_type
    - CMS_RecipientInfo_get0_pkey_ctx
    - ASN1_TYPE_free
    - EVP_PKEY_CTX_set_dh_kdf_outlen
    - EVP_MD_type
    - X509_ALGOR_new
    - OPENSSL_free
    - EVP_CIPHER_CTX_key_length
    - ASN1_STRING_length
    - CMS_RecipientInfo_kari_get0_orig_id
    - OBJ_nid2obj
    - CMS_RecipientInfo_kari_get0_alg
    - ASN1_STRING_set0
    - X509_ALGOR_set0
    - EVP_sha1
    - ASN1_STRING_get0_data
    - BN_to_ASN1_INTEGER
    - EVP_PKEY_CTX_get0_pkey
    - X509_ALGOR_free
    - EVP_PKEY_CTX_get_dh_kdf_md
    - CMS_RecipientInfo_kari_get0_ctx
    - i2d_ASN1_INTEGER
    - i2d_X509_ALGOR
    - EVP_PKEY_CTX_get_dh_kdf_type
    - EVP_PKEY_CTX_set0_dh_kdf_oid
    - EVP_PKEY_CTX_set0_dh_kdf_ukm
    - ASN1_INTEGER_free
    - ASN1_STRING_new
    - X509_ALGOR_get0
    - EVP_CIPHER_param_to_asn1
    - EVP_PKEY_CTX_set_dh_kdf_md
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int dh_cms_encrypt(CMS_RecipientInfo *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:16,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:21,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:25,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: DH_meth_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - DHerr
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *DH_meth_new(const char *name, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: DH_meth_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void DH_meth_free(DH_METHOD *dhm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:42,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:45,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:47,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:51,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: DH_meth_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - DHerr
    - OPENSSL_free
    - memcpy
    - OPENSSL_strdup
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *DH_meth_dup(const DH_METHOD *dhm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: DH_meth_get0_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *DH_meth_get0_name(const DH_METHOD *dhm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:65,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:68,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_meth.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dhm
    - name
    argTypes:
    - DH_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: DH_meth_set1_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - DHerr
    linkageType: ''
    returnType: int
    signature: int DH_meth_set1_name(DH_METHOD *dhm, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: DH_meth_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_get_flags(const DH_METHOD *dhm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dhm
    - flags
    argTypes:
    - DH_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: DH_meth_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set_flags(DH_METHOD *dhm, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: DH_meth_get0_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *DH_meth_get0_app_data(const DH_METHOD *dhm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dhm
    - app_data
    argTypes:
    - DH_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: DH_meth_set0_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: DH_meth_set_generate_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set_generate_key(DH_METHOD *dhm, int (*generate_key) (DH
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: "(*DH_meth_get_compute_key(const DH_METHOD *dhm))\n        (unsigned
      char *key, const BIGNUM *pub_key, DH *dh)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DH_meth_get_compute_key(const DH_METHOD *dhm))\n        (unsigned
      char *key, const BIGNUM *pub_key, DH *dh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: DH_meth_set_compute_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DH_meth_set_compute_key(DH_METHOD *dhm,\n        int (*compute_key)
      (unsigned char *key, const BIGNUM *pub_key, DH *dh))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: "(*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm))\n    (const DH
      *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *,\n     BN_CTX *,
      BN_MONT_CTX *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm))\n    (const DH
      *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *,\n     BN_CTX *,
      BN_MONT_CTX *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: DH_meth_set_bn_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DH_meth_set_bn_mod_exp(DH_METHOD *dhm,\n    int (*bn_mod_exp)
      (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *,\n                       const
      BIGNUM *, BN_CTX *, BN_MONT_CTX *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: (*DH_meth_get_init(const DH_METHOD *dhm))(DH *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: DH_meth_set_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: DH_meth_set_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: "(*DH_meth_get_generate_params(const DH_METHOD *dhm))\n        (DH
      *, int, int, BN_GENCB *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DH_meth_get_generate_params(const DH_METHOD *dhm))\n        (DH
      *, int, int, BN_GENCB *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: DH_meth_set_generate_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DH_meth_set_generate_params(DH_METHOD *dhm,\n        int (*generate_params)
      (DH *, int, int, BN_GENCB *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: make_dh
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_rfc5114.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_dh(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pp
    - plen
    - exptag
    argTypes:
    - unsigned char**
    - long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: skip_asn1
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c
    functionUses: 0
    functionsReached:
    - ASN1_get_object
    linkageType: ''
    returnType: int
    signature: int skip_asn1(unsigned char **pp, long *plen, int exptag)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMS_SharedInfo_encode
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:79,1
    - Dst: skip_asn1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:84,1
    - Dst: skip_asn1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:86,1
    - Dst: skip_asn1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:88,1
    - Dst: skip_asn1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:90,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 6
    argNames:
    - pder
    - pctr
    - key_oid
    - outlen
    - ukm
    - ukmlen
    argTypes:
    - unsigned char**
    - unsigned char**
    - ASN1_OBJECT*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 96
    functionName: dh_sharedinfo_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c
    functionUses: 0
    functionsReached:
    - skip_asn1
    - CMS_SharedInfo_encode
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: "int dh_sharedinfo_encode(unsigned char **pder, unsigned char **pctr,\n
      \                               ASN1_OBJECT *key_oid, size_t outlen,\n                                const
      unsigned char *ukm, size_t ukmlen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:111,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:114,1
    - Dst: dh_sharedinfo_encode
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:115,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:120,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:121,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:127,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:130,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:137,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:139,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:146,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c:147,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 8
    argNames:
    - out
    - outlen
    - Z
    - Zlen
    - key_oid
    - ukm
    - ukmlen
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - ASN1_OBJECT*
    - unsigned char*
    - size_t
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 149
    functionName: DH_KDF_X9_42
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal
    - EVP_MD_CTX_new
    - OPENSSL_free
    - memcpy
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - EVP_MD_size
    - dh_sharedinfo_encode
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int DH_KDF_X9_42(unsigned char *out, size_t outlen,\n                 const
      unsigned char *Z, size_t Zlen,\n                 ASN1_OBJECT *key_oid,\n                 const
      unsigned char *ukm, size_t ukmlen, const EVP_MD *md)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DH*::meth::generate_params
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:27,1
    - Dst: dh_builtin_genparams
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ret
    - prime_len
    - generator
    - cb
    argTypes:
    - DH*
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: DH_generate_parameters_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_gen.c
    functionUses: 0
    functionsReached:
    - dh_builtin_genparams
    - DH*::meth::generate_params
    linkageType: ''
    returnType: int
    signature: "int DH_generate_parameters_ex(DH *ret, int prime_len, int generator,\n
      \                             BN_GENCB *cb)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:68,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:71,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:72,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:73,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:78,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:80,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:84,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:88,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:90,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:94,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:96,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:105,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:107,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:112,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:114,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:116,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:121,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:125,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_gen.c:126,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 67
    argCount: 4
    argNames:
    - ret
    - prime_len
    - generator
    - cb
    argTypes:
    - DH*
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 128
    functionName: dh_builtin_genparams
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_gen.c
    functionUses: 1
    functionsReached:
    - DHerr
    - BN_new
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - BN_set_word
    - BN_CTX_new
    - BN_GENCB_call
    - BN_generate_prime_ex
    linkageType: ''
    returnType: int
    signature: "int dh_builtin_genparams(DH *ret, int prime_len, int generator,\n
      \                               BN_GENCB *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - nbits
    argTypes:
    - BIGNUM*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: dh_param_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c
    functionUses: 0
    functionsReached:
    - DH_new
    linkageType: ''
    returnType: DH
    signature: DH *dh_param_init(const BIGNUM *p, int32_t nbits)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dh_param_init
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:32,1
    - Dst: dh_param_init
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:34,1
    - Dst: dh_param_init
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:36,1
    - Dst: dh_param_init
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:38,1
    - Dst: dh_param_init
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:40,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: DH_new_by_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c
    functionUses: 0
    functionsReached:
    - DHerr
    - dh_param_init
    linkageType: ''
    returnType: DH
    signature: DH *DH_new_by_nid(int nid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:51,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:53,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:55,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:57,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:59,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:61,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:66,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:69,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:69,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: DH_get_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - BN_rshift1
    - BN_free
    - BN_get_word
    - BN_dup
    linkageType: ''
    returnType: int
    signature: int DH_get_nid(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH*::meth::generate_key
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: DH_generate_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 1
    functionsReached:
    - DH*::meth::generate_key
    linkageType: ''
    returnType: int
    signature: int DH_generate_key(DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH*::meth::compute_key
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: DH_compute_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - DH*::meth::compute_key
    linkageType: ''
    returnType: int
    signature: int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH*::meth::compute_key
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:36,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:39,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:41,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: DH_compute_key_padded
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - memmove
    - BN_num_bytes
    - memset
    - DH*::meth::compute_key
    linkageType: ''
    returnType: int
    signature: int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key,
      DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: DH_OpenSSL
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *DH_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: DH_set_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_set_default_method(const DH_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: DH_get_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *DH_get_default_method(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:85,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:86,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:90,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:95,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:103,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:110,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:119,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:122,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:122,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:125,1
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:126,1
    - Dst: BN_is_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:132,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:132,1
    - Dst: BN_clear_bit
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:134,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:141,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:145,1
    - Dst: DH*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:147,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:148,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:152,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:160,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:163,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:165,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:166,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 73
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 76
    functionDepth: 8
    functionLinenumber: 76
    functionLinenumberEnd: 168
    functionName: generate_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 2
    functionsReached:
    - BN_is_one
    - BN_secure_new
    - BN_is_bit_set
    - BN_clear_bit
    - DHerr
    - BN_new
    - BN_is_word
    - BN_with_flags
    - DH*::meth::bn_mod_exp
    - BN_priv_rand
    - BN_CTX_free
    - BN_priv_rand_range
    - BN_free
    - BN_MONT_CTX_set_locked
    - BN_num_bits
    - BN_CTX_new
    - BN_is_zero
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int generate_key(DH *dh)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:178,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:179,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:183,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:186,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:187,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:192,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:197,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:199,1
    - Dst: DH_check_pub_key
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:204,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:205,1
    - Dst: DH*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:209,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:211,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:215,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:217,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:218,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 170
    functionDepth: 8
    functionLinenumber: 170
    functionLinenumberEnd: 220
    functionName: compute_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 2
    functionsReached:
    - BN_set_flags
    - DHerr
    - DH*::meth::bn_mod_exp
    - BN_CTX_start
    - BN_CTX_end
    - DH_check_pub_key
    - BN_bn2bin
    - BN_CTX_free
    - BN_CTX_get
    - BN_MONT_CTX_set_locked
    - BN_num_bits
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dh
    - r
    - a
    - p
    - m
    - ctx
    - m_ctx
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: dh_bn_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - BN_mod_exp_mont
    linkageType: ''
    returnType: int
    signature: "int dh_bn_mod_exp(const DH *dh, BIGNUM *r,\n                         const
      BIGNUM *a, const BIGNUM *p,\n                         const BIGNUM *m, BN_CTX
      *ctx, BN_MONT_CTX *m_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: dh_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dh_init(DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_key.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: dh_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: int dh_finish(DH *dh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:53,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: pkey_dh_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - DHerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_dh_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:73,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: pkey_dh_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void pkey_dh_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pkey_dh_init
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:83,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:97,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 109
    functionName: pkey_dh_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_memdup
    - OBJ_dup
    - pkey_dh_init
    linkageType: ''
    returnType: int
    signature: int pkey_dh_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:195,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:208,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 82
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 220
    functionName: pkey_dh_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int pkey_dh_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:225,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:227,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_prime_len
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:228,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:230,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:233,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:239,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:241,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:244,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:250,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:252,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_generator
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:253,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:255,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:257,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_subprime_len
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:258,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:260,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:262,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_type
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:263,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:265,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:267,1
    - Dst: EVP_PKEY_CTX_set_dh_pad
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:268,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 271
    functionName: pkey_dh_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_dh_paramgen_type
    - EVP_PKEY_CTX_set_dh_paramgen_subprime_len
    - strcmp
    - DHerr
    - OBJ_sn2nid
    - atoi
    - EVP_PKEY_CTX_set_dh_paramgen_generator
    - EVP_PKEY_CTX_set_dh_paramgen_prime_len
    - EVP_PKEY_CTX_set_dh_pad
    linkageType: ''
    returnType: int
    signature: "int pkey_dh_ctrl_str(EVP_PKEY_CTX *ctx,\n                            const
      char *type, const char *value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:297,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:308,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:310,1
    - Dst: dsa_builtin_paramgen
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:313,1
    - Dst: dsa_builtin_paramgen2
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:316,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - dctx
    - pcb
    argTypes:
    - DH_PKEY_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 323
    functionName: dsa_dh_generate
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - dsa_builtin_paramgen2
    - DSA_new
    - EVP_sha1
    - dsa_builtin_paramgen
    - EVP_sha256
    - DSA_free
    linkageType: ''
    returnType: DSA
    signature: DSA *dsa_dh_generate(DH_PKEY_CTX *dctx, BN_GENCB *pcb)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: DH_get_1024_160
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:336,1
    - Dst: DH_get_2048_224
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:340,1
    - Dst: DH_get_2048_256
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:344,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:350,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:355,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:357,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:362,1
    - Dst: evp_pkey_set_cb_translate
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:365,1
    - Dst: dsa_dh_generate
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:371,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:372,1
    - Dst: DSA_dup_DH
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:375,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:376,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:379,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:383,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:385,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:388,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:390,1
    - Dst: EVP_PKEY_assign_DH
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:392,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:394,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 396
    functionName: pkey_dh_paramgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - DSA_dup_DH
    - DH_get_2048_256
    - DH_generate_parameters_ex
    - DH_get_2048_224
    - DH_new_by_nid
    - evp_pkey_set_cb_translate
    - DSA_free
    - DH_free
    - EVP_PKEY_assign_DH
    - BN_GENCB_free
    - DH_new
    - dsa_dh_generate
    - DH_get_1024_160
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int pkey_dh_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:404,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:408,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:410,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:413,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:415,1
    - Dst: DH_generate_key
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 398
    functionDepth: 4
    functionLinenumber: 398
    functionLinenumberEnd: 418
    functionName: pkey_dh_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - DHerr
    - DH_new_by_nid
    - EVP_PKEY_copy_parameters
    - DH_generate_key
    - EVP_PKEY_assign
    - DH_new
    linkageType: ''
    returnType: int
    signature: int pkey_dh_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:428,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:435,1
    - Dst: DH_compute_key_padded
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:439,1
    - Dst: DH_compute_key
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:441,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:461,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:462,1
    - Dst: DH_compute_key_padded
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:466,1
    - Dst: DH_KDF_X9_42
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:468,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c:474,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 479
    functionName: pkey_dh_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - DH_KDF_X9_42
    - DHerr
    - DH_compute_key_padded
    - DH_compute_key
    - DH_size
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int pkey_dh_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                          size_t
      *keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/dh/dh_err.c:95,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/dh/dh_err.c:96,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/dh/dh_err.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: ERR_load_DH_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_DH_strings(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_depr.c:28,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_depr.c:30,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_depr.c:32,1
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-1.1.1g/crypto/dh/dh_depr.c:36,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_depr.c:38,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_depr.c:39,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_depr.c:42,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_depr.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - prime_len
    - generator
    - cb_arg
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: DH_generate_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - DH_generate_parameters_ex
    - BN_GENCB_set_old
    - DH_free
    - BN_GENCB_free
    - DH_new
    linkageType: ''
    returnType: DH
    signature: "DH *DH_generate_parameters(int prime_len, int generator,\n                           void
      (*callback) (int, int, void *), void *cb_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_METHOD*::finish
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:26,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:28,1
    - Dst: DH_METHOD*::init
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dh
    - meth
    argTypes:
    - DH*
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 35
    functionName: DH_set_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - DH_METHOD*::finish
    - ENGINE_finish
    - DH_METHOD*::init
    linkageType: ''
    returnType: int
    signature: int DH_set_method(DH *dh, const DH_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_new_method
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: DH_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 6
    functionsReached:
    - DH_new_method
    linkageType: ''
    returnType: DH
    signature: DH *DH_new(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:44,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:47,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:52,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:55,1
    - Dst: DH_get_default_method
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:59,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:63,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:64,1
    - Dst: ENGINE_get_default_DH
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:69,1
    - Dst: ENGINE_get_DH
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:71,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:73,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:81,1
    - Dst: DH*::meth::init
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:84,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:85,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:92,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 94
    functionName: DH_new_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached:
    - DH_get_default_method
    - DHerr
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - CRYPTO_new_ex_data
    - DH*::meth::init
    - OPENSSL_zalloc
    - DH_free
    - ENGINE_get_default_DH
    - ENGINE_get_DH
    - ENGINE_init
    linkageType: ''
    returnType: DH
    signature: DH *DH_new_method(ENGINE *engine)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:103,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:104,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:107,1
    - Dst: DH*::meth::finish
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:110,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:112,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:115,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:117,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:119,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:120,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:121,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:123,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:124,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:125,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:126,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - r
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 128
    functionName: DH_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 8
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - DH*::meth::finish
    - OPENSSL_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - ENGINE_finish
    - CRYPTO_DOWN_REF
    - CRYPTO_free_ex_data
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void DH_free(DH *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:134,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:137,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: DH_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int DH_up_ref(DH *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - idx
    - arg
    argTypes:
    - DH*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: DH_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int DH_set_ex_data(DH *d, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: DH_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *DH_get_ex_data(DH *d, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: DH_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int DH_bits(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: DH_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached:
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: int DH_size(const DH *dh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:166,1
    - Dst: BN_security_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:171,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: DH_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached:
    - BN_num_bits
    - BN_security_bits
    linkageType: ''
    returnType: int
    signature: int DH_security_bits(const DH *dh)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - dh
    - p
    - q
    - g
    argTypes:
    - DH*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: DH_get0_pqg
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DH_get0_pqg(const DH *dh,\n                 const BIGNUM **p,
      const BIGNUM **q, const BIGNUM **g)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:196,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:200,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:204,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - dh
    - p
    - q
    - g
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 213
    functionName: DH_set0_pqg
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_free
    linkageType: ''
    returnType: int
    signature: int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: DH_get_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long DH_get_length(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dh
    - length
    argTypes:
    - DH*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: DH_set_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_set_length(DH *dh, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - dh
    - pub_key
    - priv_key
    argTypes:
    - DH*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: DH_get0_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM
      **priv_key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:237,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_lib.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dh
    - pub_key
    - priv_key
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: DH_set0_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: DH_get0_p
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_p(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: DH_get0_q
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_q(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: DH_get0_g
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_g(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: DH_get0_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_priv_key(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: DH_get0_pub_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_pub_key(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dh
    - flags
    argTypes:
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: DH_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_clear_flags(DH *dh, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dh
    - flags
    argTypes:
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: DH_test_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_test_flags(const DH *dh, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dh
    - flags
    argTypes:
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: DH_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_set_flags(DH *dh, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: DH_get0_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *DH_get0_engine(DH *dh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:22,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: dh_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c
    functionUses: 0
    functionsReached:
    - DH_new
    - DH_free
    linkageType: ''
    returnType: int
    signature: "int dh_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                void *exarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:85,1
    - Dst: d2i_int_dhx
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:88,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:90,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:95,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - DH**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 116
    functionName: d2i_DHxparams
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c
    functionUses: 2
    functionsReached:
    - ASN1_BIT_STRING_free
    - OPENSSL_free
    - d2i_int_dhx
    - DH_free
    - DH_new
    linkageType: ''
    returnType: DH
    signature: DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_int_dhx
      Src: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dh
    - pp
    argTypes:
    - DH*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: i2d_DHxparams
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c
    functionUses: 1
    functionsReached:
    - i2d_int_dhx
    linkageType: ''
    returnType: int
    signature: int i2d_DHxparams(const DH *dh, unsigned char **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_prn.c:21,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/dh/dh_prn.c:21,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_prn.c:22,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_prn.c:25,1
    - Dst: DHparams_print
      Src: /src/openssl-1.1.1g/crypto/dh/dh_prn.c:26,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_prn.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 5
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: DHparams_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_prn.c
    functionUses: 0
    functionsReached:
    - DHerr
    - BIO_s_file
    - BIO_free
    - DHparams_print
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int DHparams_print_fp(FILE *fp, const DH *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DH_check_params
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:27,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:31,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: DH_check_params_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_check.c
    functionUses: 0
    functionsReached:
    - DHerr
    - DH_check_params
    linkageType: ''
    returnType: int
    signature: int DH_check_params_ex(const DH *dh)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:45,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:48,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:49,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:53,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:55,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:55,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:55,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:57,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:57,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:59,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:64,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:65,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - dh
    - ret
    argTypes:
    - DH*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: DH_check_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - BN_is_one
    - BN_copy
    - BN_cmp
    - BN_CTX_start
    - BN_CTX_end
    - BN_is_negative
    - BN_CTX_free
    - BN_CTX_get
    - BN_is_zero
    - BN_CTX_new
    - BN_sub_word
    - BN_is_odd
    linkageType: ''
    returnType: int
    signature: int DH_check_params(const DH *dh, int *ret)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DH_check
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:77,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:81,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:83,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:85,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:87,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:89,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:91,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: DH_check_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - DHerr
    - DH_check
    linkageType: ''
    returnType: int
    signature: int DH_check_ex(const DH *dh)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DH_check_params
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:104,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:107,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:110,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:111,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:112,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:117,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:117,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:119,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:123,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:125,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:128,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:134,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:136,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:138,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:142,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:148,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:150,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:158,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:159,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 61
    argCount: 2
    argNames:
    - dh
    - ret
    argTypes:
    - DH*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 98
    functionDepth: 7
    functionLinenumber: 98
    functionLinenumberEnd: 161
    functionName: DH_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - BN_is_one
    - BN_cmp
    - DH_check_params
    - BN_CTX_start
    - BN_CTX_end
    - BN_is_prime_ex
    - BN_rshift1
    - BN_div
    - BN_value_one
    - BN_CTX_get
    - BN_mod_exp
    - BN_CTX_free
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int DH_check(const DH *dh, int *ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DH_check_pub_key
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:167,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:171,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:173,1
    - Dst: DHerr
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - dh
    - pub_key
    argTypes:
    - DH*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 178
    functionName: DH_check_pub_key_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - DHerr
    - DH_check_pub_key
    linkageType: ''
    returnType: int
    signature: int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:187,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:190,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:191,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:192,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:194,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:196,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:196,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:198,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:203,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:205,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:211,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dh/dh_check.c:212,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 3
    argNames:
    - dh
    - pub_key
    - ret
    argTypes:
    - DH*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 180
    functionDepth: 6
    functionLinenumber: 180
    functionLinenumberEnd: 214
    functionName: DH_check_pub_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dh/dh_check.c
    functionUses: 2
    functionsReached:
    - BN_is_one
    - BN_copy
    - BN_cmp
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - BN_set_word
    - BN_mod_exp
    - BN_CTX_new
    - BN_sub_word
    linkageType: ''
    returnType: int
    signature: int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:45,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: pkey_ec_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - ECerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_ec_init(EVP_PKEY_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ec_init
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:59,1
    - Dst: EC_GROUP_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:64,1
    - Dst: EC_KEY_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:71,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 86
    functionName: pkey_ec_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_dup
    - pkey_ec_init
    - EC_GROUP_dup
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int pkey_ec_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:92,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:93,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:94,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: pkey_ec_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    - OPENSSL_free
    - EC_GROUP_free
    linkageType: ''
    returnType: void
    signature: void pkey_ec_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_size
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:107,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:110,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:119,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:123,1
    - Dst: ECDSA_sign
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 131
    functionName: pkey_ec_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_type
    - ECerr
    - ECDSA_size
    - ECDSA_sign
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int pkey_ec_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,\n
      \                       const unsigned char *tbs, size_t tbslen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:142,1
    - Dst: ECDSA_verify
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: pkey_ec_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_type
    - ECDSA_verify
    linkageType: ''
    returnType: int
    signature: "int pkey_ec_verify(EVP_PKEY_CTX *ctx,\n                          const
      unsigned char *sig, size_t siglen,\n                          const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:160,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:168,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:169,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:172,1
    - Dst: ECDH_compute_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 186
    functionName: pkey_ec_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_KEY_get0_public_key
    - ECDH_compute_key
    - EC_GROUP_get_degree
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int pkey_ec_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ec_derive
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:196,1
    - Dst: pkey_ec_derive
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:203,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:205,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:206,1
    - Dst: pkey_ec_derive
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:209,1
    - Dst: ecdh_KDF_X9_63
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:212,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:218,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 220
    functionName: pkey_ec_kdf_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - ecdh_KDF_X9_63
    - OPENSSL_malloc
    - ECerr
    - pkey_ec_derive
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int pkey_ec_kdf_derive(EVP_PKEY_CTX *ctx,\n                              unsigned
      char *key, size_t *keylen)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:229,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:231,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:234,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:240,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:243,1
    - Dst: EC_KEY_get_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:253,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:263,1
    - Dst: EC_KEY_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:266,1
    - Dst: EC_KEY_set_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:271,1
    - Dst: EC_KEY_clear_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:273,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:275,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:308,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:321,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:322,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:323,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:324,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:325,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:326,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:327,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:328,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:329,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:330,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:331,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 95
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 352
    functionName: pkey_ec_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_dup
    - BN_is_one
    - ECerr
    - EC_KEY_clear_flags
    - EVP_MD_type
    - OPENSSL_free
    - EC_KEY_get_flags
    - EC_GROUP_new_by_curve_name
    - EC_KEY_set_flags
    - EC_GROUP_free
    - EC_KEY_free
    - EC_GROUP_set_asn1_flag
    linkageType: ''
    returnType: int
    signature: int pkey_ec_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:357,1
    - Dst: EC_curve_nist2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:359,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:361,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:363,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:365,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:368,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:369,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:371,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:373,1
    - Dst: EVP_PKEY_CTX_set_ec_param_enc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:377,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:378,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:380,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:381,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_md
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:384,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:385,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:387,1
    - Dst: EVP_PKEY_CTX_set_ecdh_cofactor_mode
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:388,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 392
    functionName: pkey_ec_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_ecdh_cofactor_mode
    - EVP_get_digestbyname
    - ECerr
    - strcmp
    - OBJ_sn2nid
    - atoi
    - EVP_PKEY_CTX_set_ecdh_kdf_md
    - EC_curve_nist2nid
    - OBJ_ln2nid
    - EVP_PKEY_CTX_set_ec_param_enc
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    linkageType: ''
    returnType: int
    signature: "int pkey_ec_ctrl_str(EVP_PKEY_CTX *ctx,\n                            const
      char *type, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:401,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:404,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:407,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:408,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:408,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 411
    functionName: pkey_ec_paramgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new
    - ECerr
    - EVP_PKEY_assign_EC_KEY
    - EC_KEY_set_group
    - EC_KEY_free
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int pkey_ec_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:420,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:423,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:426,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:426,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:427,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:432,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:434,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c:436,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 437
    functionName: pkey_ec_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new
    - ECerr
    - EVP_PKEY_assign_EC_KEY
    - EC_KEY_set_group
    - EC_KEY_free
    - EC_KEY_generate_key
    - EVP_PKEY_copy_parameters
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int pkey_ec_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:21,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:21,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:28,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 39
    functionName: EC_GROUP_get_basis_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - OSSL_NELEM
    - EC_METHOD_get_field_type
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_basis_type(const EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:47,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:47,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - group
    - k
    argTypes:
    - EC_GROUP*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: EC_GROUP_get_trinomial_basis
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_METHOD_get_field_type
    - ECerr
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_trinomial_basis(const EC_GROUP *group, unsigned int
      *k)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:68,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:68,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:73,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 4
    argNames:
    - group
    - k1
    - k2
    - k3
    argTypes:
    - EC_GROUP*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: EC_GROUP_get_pentanomial_basis
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_METHOD_get_field_type
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_pentanomial_basis(const EC_GROUP *group, unsigned
      int *k1,\n                                   unsigned int *k2, unsigned int
      *k3)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:253,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:254,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:256,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:256,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:258,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:259,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:264,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:265,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:269,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:270,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:274,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:276,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:282,1
    - Dst: X9_62_CHARACTERISTIC_TWO_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:290,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:294,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:298,1
    - Dst: EC_GROUP_get_basis_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:300,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:303,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:307,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:308,1
    - Dst: EC_GROUP_get_trinomial_basis
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:315,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:318,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:320,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:323,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:324,1
    - Dst: EC_GROUP_get_pentanomial_basis
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:330,1
    - Dst: X9_62_PENTANOMIAL_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:333,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:335,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:346,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:348,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:355,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 95
    argCount: 2
    argNames:
    - group
    - field
    argTypes:
    - EC_GROUP*
    - X9_62_FIELDID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 357
    functionName: ec_asn1_group2fieldid
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get_curve
    - OBJ_nid2obj
    - ASN1_INTEGER_new
    - ASN1_NULL_new
    - ECerr
    - X9_62_CHARACTERISTIC_TWO_new
    - EC_GROUP_get_basis_type
    - EC_METHOD_get_field_type
    - BN_new
    - ASN1_OBJECT_free
    - BN_to_ASN1_INTEGER
    - EC_GROUP_get_trinomial_basis
    - X9_62_PENTANOMIAL_new
    - EC_GROUP_get_degree
    - ASN1_TYPE_free
    - ASN1_INTEGER_set
    - EC_GROUP_get_pentanomial_basis
    linkageType: ''
    returnType: int
    signature: int ec_asn1_group2fieldid(const EC_GROUP *group, X9_62_FIELDID *field)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:376,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:376,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:377,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:382,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:383,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:392,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:393,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:394,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:395,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:398,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:399,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:400,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:405,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:406,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:407,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:414,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:415,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:420,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:422,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:426,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:433,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:434,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:435,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:436,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 2
    argNames:
    - group
    - curve
    argTypes:
    - EC_GROUP*
    - X9_62_CURVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 438
    functionName: ec_asn1_group2curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve
    - OPENSSL_malloc
    - ECerr
    - ASN1_OCTET_STRING_set
    - ASN1_BIT_STRING_free
    - ASN1_BIT_STRING_set
    - BN_new
    - OPENSSL_free
    - ASN1_BIT_STRING_new
    - BN_free
    - EC_GROUP_get_degree
    - BN_bn2binpad
    linkageType: ''
    returnType: int
    signature: int ec_asn1_group2curve(const EC_GROUP *group, X9_62_CURVE *curve)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ECPARAMETERS_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:452,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:453,1
    - Dst: ec_asn1_group2fieldid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:463,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:464,1
    - Dst: ec_asn1_group2curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:469,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:470,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:475,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:476,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:480,1
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:482,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:484,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:487,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:488,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:489,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:492,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:495,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:497,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:500,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:503,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:508,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:510,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:513,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:522,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 2
    argNames:
    - group
    - params
    argTypes:
    - EC_GROUP*
    - ECPARAMETERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 524
    functionName: EC_GROUP_get_ecparameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ec_asn1_group2curve
    - EC_GROUP_get0_generator
    - EC_GROUP_get_point_conversion_form
    - ASN1_OCTET_STRING_new
    - EC_GROUP_get0_order
    - ECerr
    - ECPARAMETERS_free
    - ASN1_STRING_set0
    - EC_GROUP_get0_cofactor
    - OPENSSL_free
    - BN_to_ASN1_INTEGER
    - EC_POINT_point2buf
    - ECPARAMETERS_new
    - ec_asn1_group2fieldid
    linkageType: ''
    returnType: ECPARAMETERS
    signature: "ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group,\n                                               ECPARAMETERS
      *params)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ECPKPARAMETERS_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:533,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:534,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:539,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:541,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:544,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:548,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:551,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:560,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:565,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - group
    - params
    argTypes:
    - EC_GROUP*
    - ECPKPARAMETERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 526
    functionDepth: 5
    functionLinenumber: 526
    functionLinenumberEnd: 569
    functionName: EC_GROUP_get_ecpkparameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECPARAMETERS_free
    - OBJ_nid2obj
    - ECerr
    - ECPKPARAMETERS_free
    - EC_GROUP_get_curve_name
    - EC_GROUP_get_ecparameters
    - ASN1_OBJECT_free
    - ECPKPARAMETERS_new
    - EC_GROUP_get_asn1_flag
    linkageType: ''
    returnType: ECPKPARAMETERS
    signature: "ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group,\n
      \                                           ECPKPARAMETERS *params)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:583,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:596,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:599,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:601,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:604,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:606,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:611,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:615,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:626,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:630,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:631,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:636,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:642,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:646,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:649,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:655,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:657,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:659,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:666,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:673,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:679,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:681,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:683,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:685,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:687,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:690,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:694,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:699,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:706,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:709,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:711,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:715,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:715,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:716,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:720,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:722,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:727,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:729,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 131
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECPARAMETERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 571
    functionDepth: 4
    functionLinenumber: 571
    functionLinenumberEnd: 731
    functionName: EC_GROUP_new_from_ecparameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_new
    - EC_GROUP_new_curve_GF2m
    - EC_GROUP_new_curve_GFp
    - BN_is_negative
    - BN_bin2bn
    - BN_set_bit
    - BN_is_zero
    - BN_num_bits
    - OBJ_obj2nid
    - ASN1_INTEGER_get
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:893,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:898,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:899,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:900,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:904,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:907,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:909,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:912,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:916,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECPKPARAMETERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 887
    functionDepth: 5
    functionLinenumber: 887
    functionLinenumberEnd: 921
    functionName: EC_GROUP_new_from_ecpkparameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_GROUP_new_from_ecparameters
    - EC_GROUP_new_by_curve_name
    - EC_GROUP_set_asn1_flag
    - OBJ_obj2nid
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECPKPARAMETERS
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:931,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:932,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:933,1
    - Dst: EC_GROUP_new_from_ecpkparameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:937,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:938,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:939,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:944,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_GROUP**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 925
    functionDepth: 6
    functionLinenumber: 925
    functionLinenumberEnd: 951
    functionName: d2i_ECPKParameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECerr
    - d2i_ECPKPARAMETERS
    - ECPKPARAMETERS_free
    - EC_GROUP_new_from_ecpkparameters
    - EC_GROUP_free
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *d2i_ECPKParameters(EC_GROUP **a, const unsigned char **in,
      long len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_ecpkparameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:956,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:958,1
    - Dst: i2d_ECPKPARAMETERS
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:961,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:962,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:963,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_GROUP*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 953
    functionDepth: 6
    functionLinenumber: 953
    functionLinenumberEnd: 968
    functionName: i2d_ECPKParameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - i2d_ECPKPARAMETERS
    - ECerr
    - EC_GROUP_get_ecpkparameters
    - ECPKPARAMETERS_free
    linkageType: ''
    returnType: int
    signature: int i2d_ECPKParameters(const EC_GROUP *a, unsigned char **out)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: d2i_EC_PRIVATEKEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:978,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:979,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:984,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:985,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:992,1
    - Dst: EC_GROUP_new_from_ecpkparameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:993,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:997,1
    - Dst: EC_KEY_oct2priv
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1005,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1005,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1006,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1009,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1013,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1014,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1016,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1024,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1025,1
    - Dst: EC_KEY_oct2key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1026,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1027,1
    - Dst: EC_KEY*::group::meth::keygenpub
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1032,1
    - Dst: EC_PRIVATEKEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1040,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1046,1
    - Dst: EC_PRIVATEKEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1047,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 972
    functionDepth: 6
    functionLinenumber: 972
    functionLinenumberEnd: 1049
    functionName: d2i_ECPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_KEY_oct2priv
    - EC_KEY_new
    - ECerr
    - EC_POINT_clear_free
    - EC_PRIVATEKEY_free
    - ASN1_STRING_length
    - EC_KEY*::group::meth::keygenpub
    - EC_GROUP_new_from_ecpkparameters
    - EC_GROUP_free
    - EC_KEY_free
    - EC_POINT_new
    - d2i_EC_PRIVATEKEY
    - ASN1_STRING_get0_data
    - EC_KEY_oct2key
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long
      len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1061,1
    - Dst: EC_PRIVATEKEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1065,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1066,1
    - Dst: EC_KEY_priv2buf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1072,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1075,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1079,1
    - Dst: EC_GROUP_get_ecpkparameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1084,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1086,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1092,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1094,1
    - Dst: EC_KEY_key2buf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1098,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1101,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1107,1
    - Dst: i2d_EC_PRIVATEKEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1111,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1112,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1117,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1118,1
    - Dst: EC_PRIVATEKEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1119,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1051
    functionDepth: 6
    functionLinenumber: 1051
    functionLinenumberEnd: 1121
    functionName: i2d_ECPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_PRIVATEKEY_new
    - ECerr
    - ASN1_STRING_set0
    - EC_KEY_priv2buf
    - OPENSSL_free
    - EC_PRIVATEKEY_free
    - ASN1_BIT_STRING_new
    - EC_KEY_key2buf
    - i2d_EC_PRIVATEKEY
    - OPENSSL_clear_free
    - EC_GROUP_get_ecpkparameters
    linkageType: ''
    returnType: int
    signature: int i2d_ECPrivateKey(EC_KEY *a, unsigned char **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1126,1
    - Dst: i2d_ECPKParameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1123
    functionDepth: 7
    functionLinenumber: 1123
    functionLinenumberEnd: 1130
    functionName: i2d_ECParameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECerr
    - i2d_ECPKParameters
    linkageType: ''
    returnType: int
    signature: int i2d_ECParameters(EC_KEY *a, unsigned char **out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1137,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1142,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1143,1
    - Dst: d2i_ECPKParameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1149,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1150,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1152,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1132
    functionDepth: 7
    functionLinenumber: 1132
    functionLinenumberEnd: 1160
    functionName: d2i_ECParameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - d2i_ECPKParameters
    - EC_KEY_new
    - ECerr
    - EC_KEY_free
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_ECParameters(EC_KEY **a, const unsigned char **in, long
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1170,1
    - Dst: EC_KEY_oct2key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1174,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1180
    functionName: o2i_ECPublicKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_KEY_oct2key
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *o2i_ECPublicKey(EC_KEY **a, const unsigned char **in, long
      len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1188,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1192,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1200,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1201,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1206,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1208,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1218
    functionName: i2o_ECPublicKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_POINT_point2oct
    - OPENSSL_malloc
    - OPENSSL_free
    - ECerr
    linkageType: ''
    returnType: int
    signature: int i2o_ECPublicKey(const EC_KEY *a, unsigned char **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1231,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1235
    functionName: ECDSA_SIG_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 2
    functionsReached:
    - ECerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ECDSA_SIG
    signature: ECDSA_SIG *ECDSA_SIG_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1241,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1242,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1237
    functionDepth: 3
    functionLinenumber: 1237
    functionLinenumberEnd: 1244
    functionName: ECDSA_SIG_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ECDSA_SIG_free(ECDSA_SIG *sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - pr
    - ps
    argTypes:
    - ECDSA_SIG*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1252
    functionName: ECDSA_SIG_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const
      BIGNUM **ps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1257
    functionName: ECDSA_SIG_get0_r
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1262
    functionName: ECDSA_SIG_get0_s
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1268,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sig
    - r
    - s
    argTypes:
    - ECDSA_SIG*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1264
    functionDepth: 3
    functionLinenumber: 1264
    functionLinenumberEnd: 1273
    functionName: ECDSA_SIG_set0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 1
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1284,1
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1288,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1297,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c:1299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - r
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1303
    functionName: ECDSA_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    functionUses: 2
    functionsReached:
    - EC_GROUP_order_bits
    - EC_KEY_get0_group
    - ASN1_object_size
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int ECDSA_size(const EC_KEY *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_GFp_mont_method
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:42,1
    - Dst: BN_nist_mod_func
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:44,1
    - Dst: EC_GFp_nist_method
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:45,1
    - Dst: EC_GFp_mont_method
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:47,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:50,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:54,1
    - Dst: EC_GROUP_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - p
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 60
    functionName: EC_GROUP_new_curve_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_new
    - EC_GFp_nist_method
    - BN_nist_mod_func
    - EC_GFp_mont_method
    - EC_GROUP_clear_free
    - EC_GROUP_set_curve
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,\n
      \                                const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GF2m_simple_method
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:69,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:71,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:75,1
    - Dst: EC_GROUP_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: EC_GROUP_new_curve_GF2m
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_clear_free
    - EC_GROUP_set_curve
    - EC_GF2m_simple_method
    - EC_GROUP_new
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a,\n
      \                                 const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_method
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: EC_KEY_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 4
    functionsReached:
    - EC_KEY_new_method
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_new(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:25,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:28,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:30,1
    - Dst: EC_KEY*::meth::set_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:34,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: EC_KEY_new_by_curve_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new
    - EC_KEY*::meth::set_group
    - EC_GROUP_new_by_curve_name
    - EC_KEY_free
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_new_by_curve_name(int nid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:48,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:49,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:52,1
    - Dst: EC_KEY*::meth::finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:55,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:58,1
    - Dst: EC_KEY*::group::meth::keyfinish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:62,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:64,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:65,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:66,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:67,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:68,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - r
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 71
    functionName: EC_KEY_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 9
    functionsReached:
    - EC_KEY*::group::meth::keyfinish
    - CRYPTO_THREAD_lock_free
    - EC_POINT_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - EC_KEY*::meth::finish
    - ENGINE_finish
    - EC_GROUP_free
    - CRYPTO_DOWN_REF
    - CRYPTO_free_ex_data
    - OPENSSL_clear_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void EC_KEY_free(EC_KEY *r)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:76,1
    - Dst: EC_KEY*::meth::finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:81,1
    - Dst: EC_KEY*::group::meth::keyfinish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:83,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:85,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:92,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:94,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:95,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:98,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:103,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:104,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:107,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:113,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:117,1
    - Dst: EC_KEY*::group::meth::keycopy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:120,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:131,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:137,1
    - Dst: EC_KEY*::meth::copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:144,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_KEY*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 148
    functionName: EC_KEY_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::keyfinish
    - EC_GROUP_method_of
    - EC_GROUP_new
    - EC_POINT_copy
    - EC_KEY*::meth::copy
    - ECerr
    - BN_copy
    - CRYPTO_dup_ex_data
    - EC_POINT_free
    - BN_new
    - EC_KEY*::group::meth::keycopy
    - EC_GROUP_copy
    - EC_KEY*::meth::finish
    - ENGINE_finish
    - EC_GROUP_free
    - EC_POINT_new
    - ENGINE_init
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_method
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:152,1
    - Dst: EC_KEY_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:157,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ec_key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 162
    functionName: EC_KEY_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - EC_KEY_copy
    - EC_KEY_free
    - EC_KEY_new_method
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_dup(const EC_KEY *ec_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:168,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:171,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: EC_KEY_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EC_KEY_up_ref(EC_KEY *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: EC_KEY_get0_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:184,1
    - Dst: EC_KEY*::meth::keygen
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:188,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: EC_KEY_generate_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - EC_KEY*::meth::keygen
    - ECerr
    linkageType: ''
    returnType: int
    signature: int EC_KEY_generate_key(EC_KEY *eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::group::meth::keygen
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: ossl_ec_key_gen
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::keygen
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_gen(EC_KEY *eckey)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:206,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:210,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:216,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:221,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:223,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:226,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:232,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:242,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:244,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:245,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 198
    functionDepth: 7
    functionLinenumber: 198
    functionLinenumberEnd: 247
    functionName: ec_key_simple_generate_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get0_order
    - EC_POINT_mul
    - EC_POINT_free
    - BN_new
    - BN_CTX_free
    - BN_priv_rand_range
    - EC_POINT_new
    - BN_is_zero
    - BN_free
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int ec_key_simple_generate_key(EC_KEY *eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: ec_key_simple_generate_public_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: int ec_key_simple_generate_public_key(EC_KEY *eckey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:258,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:263,1
    - Dst: EC_KEY*::group::meth::keycheck
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: EC_KEY_check_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::keycheck
    - ECerr
    linkageType: ''
    returnType: int
    signature: int EC_KEY_check_key(const EC_KEY *eckey)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:278,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:282,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:283,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:287,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:289,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:293,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:294,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:299,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:300,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:303,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:304,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:307,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:308,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:316,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:317,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:320,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:322,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:325,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:326,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:332,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:333,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 335
    functionName: ec_key_simple_check_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_POINT_mul
    - ECerr
    - BN_cmp
    - EC_POINT_free
    - EC_POINT_is_at_infinity
    - EC_POINT_is_on_curve
    - EC_POINT_cmp
    - BN_CTX_free
    - EC_POINT_new
    - BN_is_zero
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int ec_key_simple_check_key(const EC_KEY *eckey)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:346,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:350,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:354,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:355,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:360,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:361,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:365,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:367,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:374,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:374,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:375,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:376,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:377,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:382,1
    - Dst: EC_KEY_check_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:385,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:391,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:392,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:393,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 3
    argNames:
    - key
    - x
    - y
    argTypes:
    - EC_KEY*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 396
    functionName: EC_KEY_set_public_key_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_POINT_set_affine_coordinates
    - BN_cmp
    - EC_POINT_free
    - BN_CTX_start
    - EC_POINT_get_affine_coordinates
    - BN_CTX_end
    - BN_CTX_free
    - EC_POINT_new
    - BN_CTX_get
    - BN_CTX_new
    - EC_KEY_check_key
    - EC_KEY_set_public_key
    linkageType: ''
    returnType: int
    signature: "int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x,\n
      \                                            BIGNUM *y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: EC_KEY_get0_group
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_KEY_get0_group(const EC_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::set_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:405,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:407,1
    - Dst: EC_GROUP_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - group
    argTypes:
    - EC_KEY*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 410
    functionName: EC_KEY_set_group
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - EC_KEY*::meth::set_group
    - EC_GROUP_dup
    - EC_GROUP_free
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: EC_KEY_get0_private_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::group::meth::set_private
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:422,1
    - Dst: EC_KEY*::meth::set_private
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:425,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:427,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - key
    - priv_key
    argTypes:
    - EC_KEY*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 417
    functionDepth: 4
    functionLinenumber: 417
    functionLinenumberEnd: 430
    functionName: EC_KEY_set_private_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::set_private
    - EC_KEY*::meth::set_private
    - BN_dup
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *priv_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: EC_KEY_get0_public_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EC_POINT
    signature: EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::set_public
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:440,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:442,1
    - Dst: EC_POINT_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - pub_key
    argTypes:
    - EC_KEY*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 445
    functionName: EC_KEY_set_public_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - EC_POINT_dup
    - EC_POINT_free
    - EC_KEY*::meth::set_public
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: EC_KEY_get_enc_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int EC_KEY_get_enc_flags(const EC_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - EC_KEY*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: EC_KEY_set_enc_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_enc_flags(EC_KEY *key, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: EC_KEY_get_conv_form
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: point_conversion_form_t
    signature: point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_point_conversion_form
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - cform
    argTypes:
    - EC_KEY*
    - point_conversion_form_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: EC_KEY_set_conv_form
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_point_conversion_form
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_conv_form(EC_KEY *key, point_conversion_form_t cform)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - flag
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: EC_KEY_set_asn1_flag
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_asn1_flag
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_asn1_flag(EC_KEY *key, int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_precompute_mult
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - ctx
    argTypes:
    - EC_KEY*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 480
    functionName: EC_KEY_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_precompute_mult
    linkageType: ''
    returnType: int
    signature: int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: EC_KEY_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_KEY_get_flags(const EC_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: EC_KEY_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_flags(EC_KEY *key, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: EC_KEY_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_KEY_clear_flags(EC_KEY *key, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - key
    - form
    - pbuf
    - ctx
    argTypes:
    - EC_KEY*
    - point_conversion_form_t
    - unsigned char**
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 503
    functionName: EC_KEY_key2buf
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - EC_POINT_point2buf
    linkageType: ''
    returnType: size_t
    signature: "size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form,\n
      \                       unsigned char **pbuf, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:511,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - key
    - buf
    - len
    - ctx
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 526
    functionName: EC_KEY_oct2key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - EC_POINT_new
    - EC_POINT_oct2point
    linkageType: ''
    returnType: int
    signature: "int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len,\n
      \                  BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:534,1
    - Dst: EC_KEY*::group::meth::priv2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 539
    functionName: EC_KEY_priv2oct
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::priv2oct
    - ECerr
    linkageType: ''
    returnType: size_t
    signature: "size_t EC_KEY_priv2oct(const EC_KEY *eckey,\n                       unsigned
      char *buf, size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:546,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:556,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 562
    functionName: ec_key_simple_priv2oct
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_order_bits
    - BN_bn2binpad
    - ECerr
    linkageType: ''
    returnType: size_t
    signature: "size_t ec_key_simple_priv2oct(const EC_KEY *eckey,\n                              unsigned
      char *buf, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:569,1
    - Dst: EC_KEY*::group::meth::oct2priv
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 573
    functionName: EC_KEY_oct2priv
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - EC_KEY*::group::meth::oct2priv
    - ECerr
    linkageType: ''
    returnType: int
    signature: int EC_KEY_oct2priv(EC_KEY *eckey, const unsigned char *buf, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:578,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:580,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:583,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 575
    functionDepth: 4
    functionLinenumber: 575
    functionLinenumberEnd: 589
    functionName: ec_key_simple_oct2priv
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - ECerr
    - BN_secure_new
    linkageType: ''
    returnType: int
    signature: int ec_key_simple_oct2priv(EC_KEY *eckey, const unsigned char *buf,
      size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_priv2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:596,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:599,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:600,1
    - Dst: EC_KEY_priv2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:603,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_key.c:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - eckey
    - pbuf
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 610
    functionName: EC_KEY_priv2buf
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - EC_KEY_priv2oct
    - ECerr
    linkageType: ''
    returnType: size_t
    signature: size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 618
    functionName: EC_KEY_can_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_KEY_can_sign(const EC_KEY *eckey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_do_sign_ex
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:23,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:28,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - kinv
    - r
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: ossl_ecdsa_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - i2d_ECDSA_SIG
    - ECDSA_do_sign_ex
    - ECDSA_SIG_free
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdsa_sign(int type, const unsigned char *dgst, int dlen,\n
      \                   unsigned char *sig, unsigned int *siglen,\n                    const
      BIGNUM *kinv, const BIGNUM *r, EC_KEY *eckey)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:46,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:47,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:50,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:51,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:55,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:56,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:61,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:62,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:67,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:68,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:69,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:71,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:74,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:75,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:78,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:81,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:82,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:83,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:84,1
    - Dst: BN_generate_dsa_nonce
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:91,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:93,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:98,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:99,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:104,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:107,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:108,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:112,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:113,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:117,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:118,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:121,1
    - Dst: ec_group_do_inverse_ord
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:124,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:125,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:130,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:131,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:138,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:139,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:142,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:143,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:144,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 90
    argCount: 6
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    - dgst
    - dlen
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 33
    functionDepth: 7
    functionLinenumber: 33
    functionLinenumberEnd: 146
    functionName: ecdsa_sign_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_set_bit
    - EC_KEY_can_sign
    - BN_clear_free
    - EC_GROUP_get0_order
    - EC_POINT_mul
    - EC_POINT_get_affine_coordinates
    - ec_group_do_inverse_ord
    - ECerr
    - BN_CTX_new
    - BN_new
    - BN_CTX_free
    - EC_KEY_get0_private_key
    - BN_is_zero
    - EC_KEY_get0_group
    - BN_nnmod
    - EC_POINT_free
    - BN_priv_rand_range
    - BN_generate_dsa_nonce
    - BN_num_bits
    - EC_POINT_new
    linkageType: ''
    returnType: int
    signature: "int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,\n                            BIGNUM
      **kinvp, BIGNUM **rp,\n                            const unsigned char *dgst,
      int dlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecdsa_sign_setup
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 8
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: ossl_ecdsa_sign_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - ecdsa_sign_setup
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,\n
      \                         BIGNUM **rp)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:166,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:167,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:170,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:174,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:178,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:179,1
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:183,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:185,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:188,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:189,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:191,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:196,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:197,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:198,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:202,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:203,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:209,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:210,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:214,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:215,1
    - Dst: ecdsa_sign_setup
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:220,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:221,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:227,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:228,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:240,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:241,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:242,1
    - Dst: bn_mod_add_fixed_top
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:245,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:246,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:253,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:254,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:255,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:259,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:265,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:277,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:280,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:281,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:282,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 99
    argCount: 5
    argNames:
    - dgst
    - dgst_len
    - in_kinv
    - in_r
    - eckey
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 154
    functionDepth: 8
    functionLinenumber: 154
    functionLinenumberEnd: 284
    functionName: ossl_ecdsa_sign_sig
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - bn_to_mont_fixed_top
    - EC_KEY_can_sign
    - BN_clear_free
    - EC_GROUP_get0_order
    - BN_mod_mul_montgomery
    - ECDSA_SIG_free
    - BN_bin2bn
    - bn_mod_add_fixed_top
    - bn_mul_mont_fixed_top
    - ECerr
    - ecdsa_sign_setup
    - BN_rshift
    - BN_new
    - EC_KEY_get0_private_key
    - BN_CTX_free
    - BN_is_zero
    - EC_KEY_get0_group
    - ECDSA_SIG_new
    - BN_num_bits
    - BN_CTX_new
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "ECDSA_SIG *ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len,\n
      \                              const BIGNUM *in_kinv, const BIGNUM *in_r,\n
      \                              EC_KEY *eckey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:301,1
    - Dst: d2i_ECDSA_SIG
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:304,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:307,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:308,1
    - Dst: ECDSA_do_verify
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:310,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:312,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - type
    - dgst
    - dgst_len
    - sigbuf
    - sig_len
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 315
    functionName: ossl_ecdsa_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - memcmp
    - OPENSSL_free
    - ECDSA_SIG_free
    - ECDSA_do_verify
    - i2d_ECDSA_SIG
    - ECDSA_SIG_new
    - d2i_ECDSA_SIG
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdsa_verify(int type, const unsigned char *dgst, int dgst_len,\n
      \                     const unsigned char *sigbuf, int sig_len, EC_KEY *eckey)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:329,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:330,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:331,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:335,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:336,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:340,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:342,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:345,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:346,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:347,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:348,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:349,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:351,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:355,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:357,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:361,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:361,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:362,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:362,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:363,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:363,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:364,1
    - Dst: ec_group_do_inverse_ord
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:369,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:370,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:374,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:380,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:381,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:385,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:386,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:390,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:391,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:395,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:396,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:400,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:401,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:404,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:405,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:409,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:410,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:414,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:415,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:419,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:421,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:422,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c:423,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 91
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - eckey
    argTypes:
    - unsigned char*
    - int
    - ECDSA_SIG*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 425
    functionName: ossl_ecdsa_verify_sig
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - EC_KEY_can_sign
    - EC_GROUP_get0_order
    - EC_POINT_mul
    - EC_POINT_get_affine_coordinates
    - BN_bin2bn
    - BN_mod_mul
    - BN_ucmp
    - ec_group_do_inverse_ord
    - ECerr
    - EC_KEY_get0_public_key
    - BN_rshift
    - BN_CTX_new
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - BN_is_zero
    - EC_KEY_get0_group
    - BN_nnmod
    - EC_POINT_free
    - BN_CTX_start
    - BN_is_negative
    - BN_num_bits
    - EC_POINT_new
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdsa_verify_sig(const unsigned char *dgst, int dgst_len,\n
      \                         const ECDSA_SIG *sig, EC_KEY *eckey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 303
    functionName: EC_GFp_nistp224_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nistp224_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: bin28_to_felem
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bin28_to_felem(felem out, const u8 in[28])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - u8[]
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: felem_to_bin28
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_to_bin28(u8 out[28], const felem in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:333,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:334,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:337,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:339,1
    - Dst: bin28_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - bn
    argTypes:
    - felem
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: BN_to_felem
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - BN_bn2lebinpad
    - BN_is_negative
    - bin28_to_felem
    - ECerr
    linkageType: ''
    returnType: int
    signature: int BN_to_felem(felem out, const BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_to_bin28
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:350,1
    - Dst: BN_lebin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM*
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 4
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: felem_to_BN
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - BN_lebin2bn
    - felem_to_bin28
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *felem_to_BN(BIGNUM *out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: felem_one
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_one(felem out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: felem_assign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_assign(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: felem_sum
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_sum(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: felem_diff
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - widefelem
    - widefelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 437
    functionName: widefelem_diff
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void widefelem_diff(widefelem out, const widefelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - widefelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 460
    functionName: felem_diff_128_64
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff_128_64(widefelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 472
    functionName: felem_scalar
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar(felem out, const limb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - widefelem
    - widelimb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: widefelem_scalar
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void widefelem_scalar(widefelem out, const widelimb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - widefelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 503
    functionName: felem_square
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_square(widefelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - widefelem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 518
    functionName: felem_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_mul(widefelem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - widefelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 586
    functionName: felem_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_reduce(felem out, const widefelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:591,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: felem_square_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_square
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_square_reduce(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:598,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: felem_mul_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_mul
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_mul_reduce(felem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 656
    functionName: felem_contract
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_contract(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:666,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 668
    functionName: felem_neg
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_reduce
    - felem_diff_128_64
    linkageType: ''
    returnType: void
    signature: void felem_neg(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 688
    functionName: felem_is_zero
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: limb
    signature: limb felem_is_zero(const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: felem_is_zero_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_is_zero
    linkageType: ''
    returnType: int
    signature: int felem_is_zero_int(const void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:703,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:704,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:705,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:706,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:707,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:708,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:709,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:710,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:711,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:712,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:713,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:714,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:715,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:716,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:717,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:718,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:719,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:720,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:722,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:723,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:725,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:726,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:727,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:728,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:730,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:731,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:733,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:734,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:735,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:736,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:738,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:739,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:741,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:742,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:743,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:744,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:746,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:747,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:749,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:750,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:751,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:752,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:754,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:755,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:757,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:758,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:760,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:761,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:763,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:764,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:765,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:766,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:767,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:768,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:770,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:771,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:773,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:774,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 775
    functionName: felem_inv
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_square
    - felem_mul
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_inv(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - icopy
    argTypes:
    - felem
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 792
    functionName: copy_conditional
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_conditional(felem out, const felem in, limb icopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:820,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:821,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:824,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:825,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:828,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:829,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:832,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:833,1
    - Dst: felem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:836,1
    - Dst: felem_sum
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:838,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:840,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:842,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:844,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:847,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:849,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:850,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:852,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:854,1
    - Dst: felem_sum
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:857,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:859,1
    - Dst: felem_sum
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:860,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:862,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:864,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:866,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:869,1
    - Dst: felem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:871,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:873,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:875,1
    - Dst: widefelem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:877,1
    - Dst: widefelem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:879,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 6
    argNames:
    - x_out
    - y_out
    - z_out
    - x_in
    - y_in
    - z_in
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 882
    functionName: point_double
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_square
    - felem_assign
    - felem_diff
    - felem_reduce
    - felem_mul
    - felem_diff_128_64
    - widefelem_scalar
    - widefelem_diff
    - felem_scalar
    - felem_sum
    linkageType: ''
    returnType: void
    signature: "void point_double(felem x_out, felem y_out, felem z_out,\n             const
      felem x_in, const felem y_in, const felem z_in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:914,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:915,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:918,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:919,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:922,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:923,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:926,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:927,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:934,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:937,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:941,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:942,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:945,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:946,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:949,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:953,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:955,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:958,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:962,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:964,1
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:974,1
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:975,1
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:981,1
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:982,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1002,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1008,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1009,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1012,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1016,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1017,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1020,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1021,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1022,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1025,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1026,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1029,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1030,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1033,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1037,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1041,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1045,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1046,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1053,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1055,1
    - Dst: felem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1058,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1064,1
    - Dst: widefelem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1071,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1073,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1083,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1084,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1085,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1086,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1087,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1088,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1089,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1090,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1091,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 68
    argCount: 10
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - mixed
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - int
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 1092
    functionName: point_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_square
    - felem_assign
    - felem_diff
    - felem_diff_128_64
    - felem_mul
    - felem_reduce
    - felem_is_zero
    - widefelem_diff
    - copy_conditional
    - felem_scalar
    - point_double
    linkageType: ''
    returnType: void
    signature: "void point_add(felem x3, felem y3, felem z3,\n                      const
      felem x1, const felem y1, const felem z1,\n                      const int mixed,
      const felem x2, const felem y2,\n                      const felem z2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - idx
    - size
    - pre_comp
    - out
    argTypes:
    - u64
    - unsigned int
    - felem[][]
    - felem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1117
    functionName: select_point
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void select_point(const u64 idx, unsigned int size,\n                         const
      felem pre_comp[][3], felem out[3])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in
    - i
    argTypes:
    - felem_bytearray
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1125
    functionName: get_bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char get_bit(const felem_bytearray in, unsigned i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1148,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1160,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1165,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1166,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1167,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1168,1
    - Dst: select_point
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1170,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1174,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1177,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1182,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1183,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1184,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1185,1
    - Dst: select_point
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1187,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1188,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1197,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1198,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1199,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1200,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1201,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1202,1
    - Dst: ec_GFp_nistp_recode_scalar_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1203,1
    - Dst: select_point
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1206,1
    - Dst: felem_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1207,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1209,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1212,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1216,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1222,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1223,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 9
    argNames:
    - x_out
    - y_out
    - z_out
    - scalars
    - num_points
    - g_scalar
    - mixed
    - pre_comp
    - g_pre_comp
    argTypes:
    - felem
    - felem
    - felem
    - felem_bytearray[]
    - unsigned
    - u8*
    - int
    - felem[][][]
    - felem[][][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1225
    functionName: batch_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_assign
    - ec_GFp_nistp_recode_scalar_bits
    - felem_neg
    - select_point
    - memcpy
    - point_add
    - memset
    - copy_conditional
    - point_double
    - get_bit
    linkageType: ''
    returnType: void
    signature: "void batch_mul(felem x_out, felem y_out, felem z_out,\n                      const
      felem_bytearray scalars[],\n                      const unsigned num_points,
      const u8 *g_scalar,\n                      const int mixed, const felem pre_comp[][17][3],\n
      \                     const felem g_pre_comp[2][16][3])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1234,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1237,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1243,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1245,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1250
    functionName: nistp224_pre_comp_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ECerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTP224_PRE_COMP
    signature: NISTP224_PRE_COMP *nistp224_pre_comp_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP224_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1258
    functionName: EC_nistp224_pre_comp_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: NISTP224_PRE_COMP
    signature: NISTP224_PRE_COMP *EC_nistp224_pre_comp_dup(NISTP224_PRE_COMP *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1267,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1268,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1271,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1273,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP224_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1275
    functionName: EC_nistp224_pre_comp_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EC_nistp224_pre_comp_free(NISTP224_PRE_COMP *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_init
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1288
    functionName: ec_GFp_nistp224_group_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nistp224_group_init(EC_GROUP *group)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1299,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1301,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1302,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1303,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1304,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1307,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1308,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1309,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1310,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1310,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1310,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1311,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1316,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1318,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1290
    functionDepth: 4
    functionLinenumber: 1290
    functionLinenumberEnd: 1321
    functionName: ec_GFp_nistp224_group_set_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_set_curve
    - ECerr
    - BN_cmp
    - BN_CTX_start
    - BN_CTX_end
    - BN_bin2bn
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nistp224_group_set_curve(EC_GROUP *group, const BIGNUM
      *p,\n                                    const BIGNUM *a, const BIGNUM *b,\n
      \                                   BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1335,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1336,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1340,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1340,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1341,1
    - Dst: felem_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1343,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1344,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1345,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1346,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1347,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1348,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1350,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1351,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1356,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1357,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1358,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1359,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1360,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1362,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1369
    functionName: ec_GFp_nistp224_point_get_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_square
    - ECerr
    - felem_reduce
    - felem_mul
    - felem_contract
    - felem_inv
    - EC_POINT_is_at_infinity
    - BN_to_felem
    - felem_to_BN
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nistp224_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                                const EC_POINT *point,\n                                                 BIGNUM
      *x, BIGNUM *y,\n                                                 BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_nistp_points_make_affine_internal
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - points
    - tmp_felems
    argTypes:
    - size_t
    - felem[][]
    - felem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1398
    functionName: make_points_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - ec_GFp_nistp_points_make_affine_internal
    linkageType: ''
    returnType: void
    signature: "void make_points_affine(size_t num, felem points[ /* num */ ][3],\n
      \                              felem tmp_felems[ /* num+1 */ ])"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1416,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1428,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1429,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1430,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1431,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1432,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1444,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1448,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1449,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1450,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1451,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1454,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1458,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1477,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1478,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1481,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1484,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1495,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1504,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1505,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1510,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1511,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1514,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1517,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1521,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1525,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1526,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1527,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1529,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1530,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1531,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1534,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1541,1
    - Dst: make_points_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1550,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1555,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1557,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1557,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1562,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1563,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1566,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1568,1
    - Dst: batch_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1571,1
    - Dst: batch_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1577,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1582,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1583,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1584,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1585,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1585,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1586,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1587,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1590,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1593,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1594,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1595,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1596,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1597,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 119
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1404
    functionDepth: 3
    functionLinenumber: 1404
    functionLinenumberEnd: 1599
    functionName: ec_GFp_nistp224_points_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_contract
    - felem
    - BN_bn2lebinpad
    - EC_GROUP_get0_generator
    - OPENSSL_malloc
    - felem_assign
    - OPENSSL_free
    - felem_to_BN
    - EC_POINT_cmp
    - OPENSSL_zalloc
    - ECerr
    - BN_CTX_end
    - BN_to_felem
    - EC_POINT_set_Jprojective_coordinates_GFp
    - BN_CTX_get
    - point_double
    - BN_nnmod
    - EC_POINT_free
    - BN_CTX_start
    - make_points_affine
    - BN_is_negative
    - point_add
    - memset
    - BN_num_bits
    - EC_POINT_new
    - batch_mul
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nistp224_points_mul(const EC_GROUP *group, EC_POINT *r,\n
      \                              const BIGNUM *scalar, size_t num,\n                               const
      EC_POINT *points[],\n                               const BIGNUM *scalars[],
      BN_CTX *ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1612,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1614,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1616,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1617,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1618,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1624,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1627,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1628,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1629,1
    - Dst: nistp224_pre_comp_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1631,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1636,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1637,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1640,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1641,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1642,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1649,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1653,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1659,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1664,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1674,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1677,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1683,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1689,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1697,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1704,1
    - Dst: make_points_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1714,1
    - Dst: SETPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1717,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1721,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1722,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1723,1
    - Dst: EC_nistp224_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1724,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1601
    functionDepth: 4
    functionLinenumber: 1601
    functionLinenumberEnd: 1726
    functionName: ec_GFp_nistp224_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - nistp224_pre_comp_new
    - EC_POINT_set_affine_coordinates
    - memcpy
    - SETPRECOMP
    - EC_POINT_cmp
    - BN_bin2bn
    - EC_nistp224_pre_comp_free
    - BN_CTX_new
    - BN_CTX_end
    - BN_to_felem
    - BN_CTX_free
    - BN_CTX_get
    - point_double
    - EC_POINT_free
    - BN_CTX_start
    - make_points_affine
    - memset
    - point_add
    - EC_POINT_new
    - EC_pre_comp_free
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nistp224_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1728
    functionDepth: 1
    functionLinenumber: 1728
    functionLinenumberEnd: 1731
    functionName: ec_GFp_nistp224_have_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nistp224_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:23,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:23,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:24,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:27,1
    - Dst: ECPKParameters_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:28,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - EC_GROUP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: ECPKParameters_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/eck_prn.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BIO_s_file
    - ECPKParameters_print
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:38,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:38,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:39,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:42,1
    - Dst: EC_KEY_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:43,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: EC_KEY_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/eck_prn.c
    functionUses: 0
    functionsReached:
    - EC_KEY_print
    - ECerr
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int EC_KEY_print_fp(FILE *fp, const EC_KEY *x, int off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:53,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:53,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:54,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:57,1
    - Dst: ECParameters_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:58,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: ECParameters_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/eck_prn.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BIO_s_file
    - ECParameters_print
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int ECParameters_print_fp(FILE *fp, const EC_KEY *x)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:86,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:92,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:97,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:100,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:103,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:103,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:105,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:107,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:111,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:118,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:118,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:123,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:123,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:124,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:129,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:134,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:138,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:139,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:145,1
    - Dst: EC_POINT_point2bn
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:147,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:152,1
    - Dst: EC_GROUP_get_seed_len
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:153,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:155,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:159,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:159,1
    - Dst: EC_GROUP_get_basis_type
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:165,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:169,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:172,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:173,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:177,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:181,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:184,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:186,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:189,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:193,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:198,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:202,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:205,1
    - Dst: print_bin
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:208,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:214,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:215,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:216,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:217,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:218,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:219,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 133
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - EC_GROUP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 221
    functionName: ECPKParameters_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/eck_prn.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get_curve
    - EC_POINT_point2bn
    - EC_GROUP_get_basis_type
    - EC_GROUP_get_curve_name
    - EC_curve_nid2nist
    - EC_GROUP_get0_order
    - EC_GROUP_get0_generator
    - EC_GROUP_get_point_conversion_form
    - EC_METHOD_get_field_type
    - EC_GROUP_get_seed_len
    - BN_free
    - EC_GROUP_get_asn1_flag
    - ASN1_bn_print
    - BIO_indent
    - OBJ_nid2sn
    - ECerr
    - BN_new
    - BN_CTX_free
    - EC_GROUP_get0_cofactor
    - BIO_printf
    - BN_CTX_new
    - EC_GROUP_get0_seed
    - print_bin
    linkageType: ''
    returnType: int
    signature: int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:234,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:235,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:241,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:247,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:248,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:251,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ec/eck_prn.c:255,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 5
    argNames:
    - fp
    - name
    - buf
    - len
    - 'off'
    argTypes:
    - BIO*
    - char*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 259
    functionName: print_bin
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/eck_prn.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - memset
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int print_bin(BIO *fp, const char *name, const unsigned char *buf,\n
      \                    size_t len, int off)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: load_8
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_8(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_8
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:63,1
    - Dst: load_8
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:64,1
    - Dst: load_8
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:65,1
    - Dst: load_8
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe64
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: fe64_frombytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_8
    linkageType: ''
    returnType: void
    signature: void fe64_frombytes(fe64 h, const uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: fe64_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe64_0(fe64 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fe64_1
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe64_1(fe64 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe64
    - fe64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: fe64_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe64_copy(fe64 h, const fe64 f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe64
    - fe64
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: fe64_cswap
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe64_cswap(fe64 f, fe64 g, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:120,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:123,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:124,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:127,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:129,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:132,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:135,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:138,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:140,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:143,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:148,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:150,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:152,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:155,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:157,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:159,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:163,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:166,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:169,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:171,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:173,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:176,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:178,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:180,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:184,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:187,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:191,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe64
    - fe64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 195
    functionName: fe64_invert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe64_sqr
    - fe64_mul
    linkageType: ''
    returnType: void
    signature: void fe64_invert(fe64 out, const fe64 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:209,1
    - Dst: fe64_frombytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:213,1
    - Dst: fe64_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:214,1
    - Dst: fe64_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:215,1
    - Dst: fe64_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:216,1
    - Dst: fe64_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:217,1
    - Dst: fe64_cswap
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:223,1
    - Dst: fe64_cswap
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:224,1
    - Dst: fe64_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:226,1
    - Dst: fe64_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:227,1
    - Dst: fe64_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:228,1
    - Dst: fe64_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:229,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:230,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:231,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:232,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:233,1
    - Dst: fe64_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:234,1
    - Dst: fe64_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:235,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:236,1
    - Dst: fe64_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:237,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:238,1
    - Dst: fe64_mul121666
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:239,1
    - Dst: fe64_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:240,1
    - Dst: fe64_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:241,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:242,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:243,1
    - Dst: fe64_invert
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:246,1
    - Dst: fe64_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:247,1
    - Dst: fe64_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:248,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 251
    functionName: x25519_scalar_mulx
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe64_copy
    - fe64_frombytes
    - fe64_sqr
    - memcpy
    - fe64_cswap
    - fe64_0
    - fe64_mul121666
    - fe64_mul
    - fe64_tobytes
    - fe64_add
    - fe64_sub
    - fe64_invert
    - fe64_1
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "void x25519_scalar_mulx(uint8_t out[32], const uint8_t scalar[32],\n
      \                              const uint8_t point[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: load_7
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_7(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 298
    functionName: load_6
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_6(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_7
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:302,1
    - Dst: load_6
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:303,1
    - Dst: load_7
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:304,1
    - Dst: load_6
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:305,1
    - Dst: load_6
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe51
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 318
    functionName: fe51_frombytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_7
    - load_6
    linkageType: ''
    returnType: void
    signature: void fe51_frombytes(fe51 h, const uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - uint8_t*
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 377
    functionName: fe51_tobytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_tobytes(uint8_t *s, const fe51 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe51
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 446
    functionName: fe51_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_mul(fe51 h, const fe51 f, const fe51 g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 500
    functionName: fe51_sq
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe51_mul
    linkageType: ''
    returnType: void
    signature: void fe51_sq(fe51 h, const fe51 f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 526
    functionName: fe51_mul121666
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_mul121666(fe51 h, fe51 f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe51
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: fe51_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_add(fe51 h, const fe51 f, const fe51 g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe51
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 549
    functionName: fe51_sub
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_sub(fe51 h, const fe51 f, const fe51 g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 558
    functionName: fe51_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_0(fe51 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 567
    functionName: fe51_1
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_1(fe51 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 576
    functionName: fe51_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_copy(fe51 h, const fe51 f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe51
    - fe51
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 589
    functionName: fe51_cswap
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_cswap(fe51 f, fe51 g, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:605,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:608,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:609,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:612,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:614,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:617,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:620,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:623,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:625,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:628,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:633,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:635,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:637,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:640,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:642,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:644,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:648,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:651,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:654,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:656,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:658,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:661,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:663,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:665,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:669,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:672,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:676,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:679,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 680
    functionName: fe51_invert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe51_sq
    - fe51_mul
    linkageType: ''
    returnType: void
    signature: void fe51_invert(fe51 out, const fe51 z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x25519_fe64_eligible
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:695,1
    - Dst: x25519_scalar_mulx
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:696,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:701,1
    - Dst: fe51_frombytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:705,1
    - Dst: fe51_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:706,1
    - Dst: fe51_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:707,1
    - Dst: fe51_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:708,1
    - Dst: fe51_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:709,1
    - Dst: fe51_cswap
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:715,1
    - Dst: fe51_cswap
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:716,1
    - Dst: fe51_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:718,1
    - Dst: fe51_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:719,1
    - Dst: fe51_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:720,1
    - Dst: fe51_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:721,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:722,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:723,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:724,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:725,1
    - Dst: fe51_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:726,1
    - Dst: fe51_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:727,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:728,1
    - Dst: fe51_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:729,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:730,1
    - Dst: fe51_mul121666
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:731,1
    - Dst: fe51_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:732,1
    - Dst: fe51_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:733,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:734,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:735,1
    - Dst: fe51_invert
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:738,1
    - Dst: fe51_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:739,1
    - Dst: fe51_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:740,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 743
    functionName: x25519_scalar_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe51_sub
    - fe51_tobytes
    - fe51_0
    - x25519_fe64_eligible
    - fe51_frombytes
    - fe51_add
    - fe51_mul121666
    - x25519_scalar_mulx
    - memcpy
    - fe51_copy
    - fe51_mul
    - fe51_sq
    - OPENSSL_cleanse
    - fe51_invert
    - fe51_cswap
    - fe51_1
    linkageType: ''
    returnType: void
    signature: "void x25519_scalar_mult(uint8_t out[32], const uint8_t scalar[32],\n
      \                              const uint8_t point[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 777
    functionName: load_3
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_3(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 788
    functionName: load_4
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_4(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:793,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:794,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:795,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:796,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:797,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:798,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:799,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:800,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:801,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 836
    functionName: fe_frombytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_3
    - load_4
    linkageType: ''
    returnType: void
    signature: void fe_frombytes(fe h, const uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - uint8_t*
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 942
    functionName: fe_tobytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_tobytes(uint8_t *s, const fe h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 948
    functionName: fe_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void fe_copy(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 954
    functionName: fe_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fe_0(fe h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 961
    functionName: fe_1
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fe_1(fe h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 982
    functionName: fe_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_add(fe h, const fe f, const fe g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1003
    functionName: fe_sub
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_sub(fe h, const fe f, const fe g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1250
    functionName: fe_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_mul(fe h, const fe f, const fe g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1395
    functionName: fe_sq
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_sq(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1411,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1414,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1415,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1418,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1420,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1423,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1426,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1429,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1431,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1435,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1440,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1442,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1444,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1447,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1449,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1451,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1455,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1458,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1461,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1463,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1465,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1468,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1470,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1472,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1475,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1477,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1481,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1484,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1486,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1490,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1491
    functionName: fe_invert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sq
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void fe_invert(fe out, const fe z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1509
    functionName: fe_neg
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_neg(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe
    - fe
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1517
    functionDepth: 0
    functionLinenumber: 1517
    functionLinenumberEnd: 1527
    functionName: fe_cmov
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_cmov(fe f, const fe g, unsigned b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1541,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1544
    functionName: fe_isnonzero
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    - fe_tobytes
    linkageType: ''
    returnType: int
    signature: int fe_isnonzero(const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1553
    functionDepth: 1
    functionLinenumber: 1553
    functionLinenumberEnd: 1559
    functionName: fe_isnegative
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_tobytes
    linkageType: ''
    returnType: int
    signature: int fe_isnegative(const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1715
    functionName: fe_sq2
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_sq2(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1724,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1725,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1727,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1729,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1730,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1731,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1732,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1733,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1735,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1737,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1738,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1740,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1742,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1743,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1745,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1747,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1748,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1750,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1752,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1753,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1755,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1757,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1758,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1760,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1762,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1763,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1765,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1767,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1768,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1770,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1772,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1717
    functionDepth: 1
    functionLinenumber: 1717
    functionLinenumberEnd: 1773
    functionName: fe_pow22523
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sq
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void fe_pow22523(fe out, const fe z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_invert
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1827,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1828,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1829,1
    - Dst: fe_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1830,1
    - Dst: fe_isnegative
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - uint8_t*
    - ge_p2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1821
    functionDepth: 2
    functionLinenumber: 1821
    functionLinenumberEnd: 1832
    functionName: ge_tobytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_isnegative
    - fe_invert
    - fe_mul
    - fe_tobytes
    linkageType: ''
    returnType: void
    signature: void ge_tobytes(uint8_t *s, const ge_p2 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_invert
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1840,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1841,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1842,1
    - Dst: fe_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1843,1
    - Dst: fe_isnegative
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - uint8_t*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1834
    functionDepth: 2
    functionLinenumber: 1834
    functionLinenumberEnd: 1845
    functionName: ge_p3_tobytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_isnegative
    - fe_invert
    - fe_mul
    - fe_tobytes
    linkageType: ''
    returnType: void
    signature: void ge_p3_tobytes(uint8_t *s, const ge_p3 *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fe_frombytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1865,1
    - Dst: fe_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1866,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1867,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1868,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1869,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1870,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1872,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1873,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1874,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1875,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1876,1
    - Dst: fe_pow22523
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1878,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1879,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1880,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1882,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1883,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1884,1
    - Dst: fe_isnonzero
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1885,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1886,1
    - Dst: fe_isnonzero
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1887,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1890,1
    - Dst: fe_isnegative
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1893,1
    - Dst: fe_neg
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1894,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - ge_p3*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1857
    functionDepth: 2
    functionLinenumber: 1857
    functionLinenumberEnd: 1899
    functionName: ge_frombytes_vartime
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_sq
    - fe_isnegative
    - fe_neg
    - fe_mul
    - fe_frombytes
    - fe_1
    - fe_pow22523
    - fe_isnonzero
    - fe_add
    linkageType: ''
    returnType: int
    signature: int ge_frombytes_vartime(ge_p3 *h, const uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1903,1
    - Dst: fe_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1904,1
    - Dst: fe_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_p2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1901
    functionDepth: 1
    functionLinenumber: 1901
    functionLinenumberEnd: 1906
    functionName: ge_p2_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: void ge_p2_0(ge_p2 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1910,1
    - Dst: fe_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1911,1
    - Dst: fe_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1912,1
    - Dst: fe_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1908
    functionDepth: 1
    functionLinenumber: 1908
    functionLinenumberEnd: 1914
    functionName: ge_p3_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: void ge_p3_0(ge_p3 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1918,1
    - Dst: fe_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1919,1
    - Dst: fe_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_precomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1916
    functionDepth: 1
    functionLinenumber: 1916
    functionLinenumberEnd: 1921
    functionName: ge_precomp_0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: void ge_precomp_0(ge_precomp *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1926,1
    - Dst: fe_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1927,1
    - Dst: fe_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p2*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1929
    functionName: ge_p3_to_p2
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_copy
    linkageType: ''
    returnType: void
    signature: void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1939,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1940,1
    - Dst: fe_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1941,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_cached*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1937
    functionDepth: 1
    functionLinenumber: 1937
    functionLinenumberEnd: 1943
    functionName: ge_p3_to_cached
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_copy
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_p3_to_cached(ge_cached *r, const ge_p3 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1948,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1949,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p2*
    - ge_p1p1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 1951
    functionName: ge_p1p1_to_p2
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1956,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1957,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1958,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p3*
    - ge_p1p1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1960
    functionName: ge_p1p1_to_p3
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1967,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1968,1
    - Dst: fe_sq2
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1969,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1970,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1971,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1972,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1973,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1974,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p1p1*
    - ge_p2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1963
    functionDepth: 1
    functionLinenumber: 1963
    functionLinenumberEnd: 1976
    functionName: ge_p2_dbl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sq2
    - fe_sq
    - fe_sub
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ge_p3_to_p2
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1982,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p1p1*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1979
    functionDepth: 2
    functionLinenumber: 1979
    functionLinenumberEnd: 1984
    functionName: ge_p3_dbl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - ge_p3_to_p2
    - ge_p2_dbl
    linkageType: ''
    returnType: void
    signature: void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1991,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1992,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1993,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1994,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1995,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1996,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1997,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1998,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:1999,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_precomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1987
    functionDepth: 1
    functionLinenumber: 1987
    functionLinenumberEnd: 2001
    functionName: ge_madd
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2008,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2009,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2010,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2011,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2012,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2013,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2014,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2015,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2016,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_precomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2004
    functionDepth: 1
    functionLinenumber: 2004
    functionLinenumberEnd: 2018
    functionName: ge_msub
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2025,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2026,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2027,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2028,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2029,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2030,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2031,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2032,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2033,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2034,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_cached*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2021
    functionDepth: 1
    functionLinenumber: 2021
    functionLinenumberEnd: 2036
    functionName: ge_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2043,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2044,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2045,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2046,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2047,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2048,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2049,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2050,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2051,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2052,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_cached*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2039
    functionDepth: 1
    functionLinenumber: 2039
    functionLinenumberEnd: 2054
    functionName: ge_sub
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - signed char
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2065
    functionName: equal
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t equal(signed char b, signed char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2069,1
    - Dst: fe_cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2070,1
    - Dst: fe_cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:2071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - t
    - u
    - b
    argTypes:
    - ge_precomp*
    - ge_precomp*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2072
    functionName: cmov
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 1
    functionsReached:
    - fe_cmov
    linkageType: ''
    returnType: void
    signature: void cmov(ge_precomp *t, const ge_precomp *u, uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4196
      start: 4190
    functionDepth: 0
    functionLinenumber: 4190
    functionLinenumberEnd: 4196
    functionName: negative
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t negative(signed char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: negative
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4201,1
    - Dst: ge_precomp_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4204,1
    - Dst: cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4205,1
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4205,1
    - Dst: cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4206,1
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4206,1
    - Dst: cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4207,1
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4207,1
    - Dst: cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4208,1
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4208,1
    - Dst: cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4209,1
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4209,1
    - Dst: cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4210,1
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4210,1
    - Dst: cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4211,1
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4211,1
    - Dst: cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4212,1
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4212,1
    - Dst: fe_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4213,1
    - Dst: fe_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4214,1
    - Dst: fe_neg
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4215,1
    - Dst: cmov
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - t
    - pos
    - b
    argTypes:
    - ge_precomp*
    - int
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4217
      start: 4198
    functionDepth: 2
    functionLinenumber: 4198
    functionLinenumberEnd: 4217
    functionName: table_select
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_copy
    - fe_neg
    - cmov
    - ge_precomp_0
    - equal
    - negative
    linkageType: ''
    returnType: void
    signature: void table_select(ge_precomp *t, int pos, signed char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ge_p3_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4254,1
    - Dst: table_select
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4256,1
    - Dst: ge_madd
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4257,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4258,1
    - Dst: ge_p3_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4261,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4262,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4263,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4264,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4265,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4266,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4267,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4268,1
    - Dst: table_select
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4271,1
    - Dst: ge_madd
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4272,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4273,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - h
    - a
    argTypes:
    - ge_p3*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4228
    functionDepth: 3
    functionLinenumber: 4228
    functionLinenumberEnd: 4277
    functionName: ge_scalarmult_base
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - table_select
    - ge_p3_0
    - ge_madd
    - ge_p3_dbl
    - ge_p1p1_to_p2
    - ge_p1p1_to_p3
    - ge_p2_dbl
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void ge_scalarmult_base(ge_p3 *h, const uint8_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe
    - fe
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4297
      start: 4286
    functionDepth: 0
    functionLinenumber: 4286
    functionLinenumberEnd: 4297
    functionName: fe_cswap
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_cswap(fe f, fe g, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4365
      start: 4310
    functionDepth: 0
    functionLinenumber: 4310
    functionLinenumberEnd: 4365
    functionName: fe_mul121666
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_mul121666(fe h, fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4375,1
    - Dst: fe_frombytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4379,1
    - Dst: fe_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4380,1
    - Dst: fe_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4381,1
    - Dst: fe_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4382,1
    - Dst: fe_1
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4383,1
    - Dst: fe_cswap
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4388,1
    - Dst: fe_cswap
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4389,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4391,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4392,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4393,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4394,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4395,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4396,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4397,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4398,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4399,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4400,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4401,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4402,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4403,1
    - Dst: fe_mul121666
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4404,1
    - Dst: fe_sq
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4405,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4406,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4407,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4408,1
    - Dst: fe_invert
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4411,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4412,1
    - Dst: fe_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4413,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4367
    functionDepth: 2
    functionLinenumber: 4367
    functionLinenumberEnd: 4416
    functionName: x25519_scalar_mult_generic
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_sq
    - fe_cswap
    - fe_copy
    - fe_mul
    - fe_mul121666
    - fe_tobytes
    - fe_frombytes
    - fe_1
    - memcpy
    - OPENSSL_cleanse
    - fe_0
    - fe_invert
    - fe_add
    linkageType: ''
    returnType: void
    signature: "void x25519_scalar_mult_generic(uint8_t out[32],\n                                       const
      uint8_t scalar[32],\n                                       const uint8_t point[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x25519_scalar_mult_generic
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4421
      start: 4418
    functionDepth: 3
    functionLinenumber: 4418
    functionLinenumberEnd: 4421
    functionName: x25519_scalar_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - x25519_scalar_mult_generic
    linkageType: ''
    returnType: void
    signature: "void x25519_scalar_mult(uint8_t out[32], const uint8_t scalar[32],\n
      \                              const uint8_t point[32])"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - signed char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4457
      start: 4424
    functionDepth: 0
    functionLinenumber: 4424
    functionLinenumberEnd: 4457
    functionName: slide
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void slide(signed char *r, const uint8_t *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: slide
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4544,1
    - Dst: slide
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4545,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4547,1
    - Dst: ge_p3_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4548,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4549,1
    - Dst: ge_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4550,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4551,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4552,1
    - Dst: ge_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4553,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4554,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4555,1
    - Dst: ge_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4556,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4557,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4558,1
    - Dst: ge_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4559,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4560,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4561,1
    - Dst: ge_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4562,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4563,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4564,1
    - Dst: ge_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4565,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4566,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4567,1
    - Dst: ge_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4568,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4569,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4570,1
    - Dst: ge_p2_0
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4572,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4581,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4584,1
    - Dst: ge_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4585,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4587,1
    - Dst: ge_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4588,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4592,1
    - Dst: ge_madd
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4593,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4595,1
    - Dst: ge_msub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4596,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4599,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 4
    argNames:
    - r
    - a
    - A
    - b
    argTypes:
    - ge_p2*
    - uint8_t*
    - ge_p3*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4601
      start: 4533
    functionDepth: 3
    functionLinenumber: 4533
    functionLinenumberEnd: 4601
    functionName: ge_double_scalarmult_vartime
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - ge_p2_0
    - ge_p3_dbl
    - ge_madd
    - ge_p1p1_to_p2
    - ge_add
    - ge_msub
    - ge_p1p1_to_p3
    - ge_p2_dbl
    - slide
    - ge_sub
    - ge_p3_to_cached
    linkageType: ''
    returnType: void
    signature: "void ge_double_scalarmult_vartime(ge_p2 *r, const uint8_t *a,\n                                         const
      ge_p3 *A, const uint8_t *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4617,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4618,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4619,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4620,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4621,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4622,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4623,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4624,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4625,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4626,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4627,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4628,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4629,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4630,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4631,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4632,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4633,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4634,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4635,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4636,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4637,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4638,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4639,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 269
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4947
      start: 4615
    functionDepth: 1
    functionLinenumber: 4615
    functionLinenumberEnd: 4947
    functionName: x25519_sc_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_3
    - load_4
    linkageType: ''
    returnType: void
    signature: void x25519_sc_reduce(uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4962,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4963,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4964,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4965,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4966,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4967,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4968,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4969,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4970,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4971,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4972,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4973,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4974,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4975,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4976,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4977,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4978,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4979,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4980,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4981,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4982,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4983,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4984,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4985,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4986,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4987,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4988,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4989,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4990,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4991,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4992,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4993,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4994,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4995,1
    - Dst: load_3
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4996,1
    - Dst: load_4
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:4997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 362
    argCount: 4
    argNames:
    - s
    - a
    - b
    - c
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5430
      start: 4959
    functionDepth: 1
    functionLinenumber: 4959
    functionLinenumberEnd: 5430
    functionName: sc_muladd
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_3
    - load_4
    linkageType: ''
    returnType: void
    signature: "void sc_muladd(uint8_t *s, const uint8_t *a, const uint8_t *b,\n                      const
      uint8_t *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Init
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5441,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5442,1
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5443,1
    - Dst: SHA512_Init
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5449,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5450,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5451,1
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5452,1
    - Dst: x25519_sc_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5454,1
    - Dst: ge_scalarmult_base
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5455,1
    - Dst: ge_p3_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5456,1
    - Dst: SHA512_Init
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5458,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5459,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5460,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5461,1
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5462,1
    - Dst: x25519_sc_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5464,1
    - Dst: sc_muladd
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5465,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5467,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5468,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 5
    argNames:
    - out_sig
    - message
    - message_len
    - public_key
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5472
      start: 5432
    functionDepth: 4
    functionLinenumber: 5432
    functionLinenumberEnd: 5472
    functionName: ED25519_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - ge_scalarmult_base
    - SHA512_Final
    - sc_muladd
    - ge_p3_tobytes
    - SHA512_Update
    - x25519_sc_reduce
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int ED25519_sign(uint8_t *out_sig, const uint8_t *message, size_t
      message_len,\n                 const uint8_t public_key[32], const uint8_t private_key[32])"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5510,1
    - Dst: ge_frombytes_vartime
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5522,1
    - Dst: fe_neg
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5526,1
    - Dst: fe_neg
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5527,1
    - Dst: SHA512_Init
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5529,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5530,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5531,1
    - Dst: SHA512_Update
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5532,1
    - Dst: SHA512_Final
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5533,1
    - Dst: x25519_sc_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5535,1
    - Dst: ge_double_scalarmult_vartime
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5537,1
    - Dst: ge_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5539,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5541,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - message
    - message_len
    - signature
    - public_key
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5542
      start: 5476
    functionDepth: 4
    functionLinenumber: 5476
    functionLinenumberEnd: 5542
    functionName: ED25519_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - SHA512_Final
    - ge_tobytes
    - ge_double_scalarmult_vartime
    - fe_neg
    - memcmp
    - ge_frombytes_vartime
    - CRYPTO_memcmp
    - SHA512_Update
    - x25519_sc_reduce
    linkageType: ''
    returnType: int
    signature: "int ED25519_verify(const uint8_t *message, size_t message_len,\n                   const
      uint8_t signature[64], const uint8_t public_key[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5550,1
    - Dst: ge_scalarmult_base
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5556,1
    - Dst: ge_p3_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5557,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - out_public_key
    - private_key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5560
      start: 5544
    functionDepth: 4
    functionLinenumber: 5544
    functionLinenumberEnd: 5560
    functionName: ED25519_public_from_private
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - ge_scalarmult_base
    - ge_p3_tobytes
    - SHA512
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "void ED25519_public_from_private(uint8_t out_public_key[32],\n                                 const
      uint8_t private_key[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x25519_scalar_mult
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5566,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out_shared_key
    - private_key
    - peer_public_value
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5569
      start: 5562
    functionDepth: 4
    functionLinenumber: 5562
    functionLinenumberEnd: 5569
    functionName: X25519
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - x25519_scalar_mult
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: "int X25519(uint8_t out_shared_key[32], const uint8_t private_key[32],\n
      \          const uint8_t peer_public_value[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5578,1
    - Dst: ge_scalarmult_base
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5583,1
    - Dst: fe_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5590,1
    - Dst: fe_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5591,1
    - Dst: fe_invert
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5592,1
    - Dst: fe_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5593,1
    - Dst: fe_tobytes
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5594,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve25519.c:5596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - out_public_value
    - private_key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5597
      start: 5571
    functionDepth: 4
    functionLinenumber: 5571
    functionLinenumberEnd: 5597
    functionName: X25519_public_from_private
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - ge_scalarmult_base
    - fe_mul
    - fe_tobytes
    - memcpy
    - OPENSSL_cleanse
    - fe_invert
    - fe_add
    linkageType: ''
    returnType: void
    signature: "void X25519_public_from_private(uint8_t out_public_value[32],\n                                const
      uint8_t private_key[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - g
    - ','
    - type
    - ','
    - pre
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: SETPRECOMP
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETPRECOMP(g, type, pre)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - g
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: HAVEPRECOMP
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAVEPRECOMP(g, type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - point
    - group
    argTypes:
    - EC_POINT*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 319
    functionName: ec_point_is_compat
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_is_compat(const EC_POINT *point,\n                                          const
      EC_GROUP *group)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::ladder_pre
      Src: /src/openssl-1.1.1g/crypto/ec/ec_local.h:707,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_local.h:709,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ec_local.h:710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 714
    functionName: ec_point_ladder_pre
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    functionUses: 0
    functionsReached:
    - EC_POINT_copy
    - EC_GROUP*::meth::ladder_pre
    - EC_POINT_dbl
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_ladder_pre(const EC_GROUP *group,\n                                           EC_POINT
      *r, EC_POINT *s,\n                                           EC_POINT *p, BN_CTX
      *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::ladder_step
      Src: /src/openssl-1.1.1g/crypto/ec/ec_local.h:721,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec_local.h:723,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ec_local.h:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 729
    functionName: ec_point_ladder_step
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    functionUses: 0
    functionsReached:
    - EC_POINT_dbl
    - EC_GROUP*::meth::ladder_step
    - EC_POINT_add
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_ladder_step(const EC_GROUP *group,\n                                            EC_POINT
      *r, EC_POINT *s,\n                                            EC_POINT *p, BN_CTX
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::ladder_post
      Src: /src/openssl-1.1.1g/crypto/ec/ec_local.h:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 739
    functionName: ec_point_ladder_post
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::ladder_post
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_ladder_post(const EC_GROUP *group,\n                                            EC_POINT
      *r, EC_POINT *s,\n                                            EC_POINT *p, BN_CTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: EC_KEY_OpenSSL
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *EC_KEY_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: EC_KEY_get_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *EC_KEY_get_default_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: EC_KEY_set_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_default_method(const EC_KEY_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: EC_KEY_get_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:60,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:63,1
    - Dst: EC_KEY_METHOD*::init
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - key
    - meth
    argTypes:
    - EC_KEY*
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: EC_KEY_set_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_METHOD*::init
    - finish
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:75,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:78,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:83,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:85,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:86,1
    - Dst: EC_KEY_get_default_method
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:90,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:93,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:94,1
    - Dst: ENGINE_get_default_EC
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:99,1
    - Dst: ENGINE_get_EC
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:101,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:103,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:112,1
    - Dst: EC_KEY*::meth::init
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:116,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:117,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 125
    functionName: EC_KEY_new_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 2
    functionsReached:
    - ECerr
    - EC_KEY*::meth::init
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - CRYPTO_new_ex_data
    - OPENSSL_zalloc
    - ENGINE_get_default_EC
    - EC_KEY_free
    - ENGINE_get_EC
    - ENGINE_init
    - EC_KEY_get_default_method
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_new_method(ENGINE *engine)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:135,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:139,1
    - Dst: EC_KEY*::meth::compute_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:142,1
    - Dst: KDF
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:145,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:149,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - out
    - outlen
    - pub_key
    - eckey
    - "(*KDF) (const void *in, size_t inlen, void *out,\n                                   size_t
      *outlen)"
    argTypes:
    - void*
    - size_t
    - EC_POINT*
    - EC_KEY*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 9
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: ECDH_compute_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 1
    functionsReached:
    - ECerr
    - memcpy
    - KDF
    - EC_KEY*::meth::compute_key
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,\n
      \                    const EC_KEY *eckey,\n                     void *(*KDF)
      (const void *in, size_t inlen, void *out,\n                                   size_t
      *outlen))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: EC_KEY_METHOD_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: EC_KEY_METHOD_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EC_KEY_METHOD_free(EC_KEY_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 189
    functionName: EC_KEY_METHOD_set_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth,\n                            int
      (*init)(EC_KEY *key),\n                            void (*finish)(EC_KEY *key),\n
      \                           int (*copy)(EC_KEY *dest, const EC_KEY *src),\n
      \                           int (*set_group)(EC_KEY *key, const EC_GROUP *grp),\n
      \                           int (*set_private)(EC_KEY *key,\n                                               const
      BIGNUM *priv_key),\n                            int (*set_public)(EC_KEY *key,\n
      \                                             const EC_POINT *pub_key))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: EC_KEY_METHOD_set_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth,\n                              int
      (*keygen)(EC_KEY *key))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 204
    functionName: EC_KEY_METHOD_set_compute_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth,\n                                   int
      (*ckey)(unsigned char **psec,\n                                               size_t
      *pseclen,\n                                               const EC_POINT *pub_key,\n
      \                                              const EC_KEY *ecdh))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - meth
    - "(*sign_sig)(const unsigned char *dgst,\n                                                   int
      dgst_len,\n                                                   const BIGNUM *in_kinv,\n
      \                                                  const BIGNUM *in_r,\n                                                   EC_KEY
      *eckey)"
    argTypes:
    - EC_KEY_METHOD*
    - ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 223
    functionName: EC_KEY_METHOD_set_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth,\n                            int
      (*sign)(int type, const unsigned char *dgst,\n                                        int
      dlen, unsigned char *sig,\n                                        unsigned
      int *siglen,\n                                        const BIGNUM *kinv, const
      BIGNUM *r,\n                                        EC_KEY *eckey),\n                            int
      (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in,\n                                              BIGNUM
      **kinvp, BIGNUM **rp),\n                            ECDSA_SIG *(*sign_sig)(const
      unsigned char *dgst,\n                                                   int
      dgst_len,\n                                                   const BIGNUM *in_kinv,\n
      \                                                  const BIGNUM *in_r,\n                                                   EC_KEY
      *eckey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: EC_KEY_METHOD_set_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth,\n                              int
      (*verify)(int type, const unsigned\n                                            char
      *dgst, int dgst_len,\n                                            const unsigned
      char *sigbuf,\n                                            int sig_len, EC_KEY
      *eckey),\n                              int (*verify_sig)(const unsigned char
      *dgst,\n                                                int dgst_len,\n                                                const
      ECDSA_SIG *sig,\n                                                EC_KEY *eckey))"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 262
    functionName: EC_KEY_METHOD_get_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_init(const EC_KEY_METHOD *meth,\n                            int
      (**pinit)(EC_KEY *key),\n                            void (**pfinish)(EC_KEY
      *key),\n                            int (**pcopy)(EC_KEY *dest, const EC_KEY
      *src),\n                            int (**pset_group)(EC_KEY *key,\n                                               const
      EC_GROUP *grp),\n                            int (**pset_private)(EC_KEY *key,\n
      \                                                const BIGNUM *priv_key),\n
      \                           int (**pset_public)(EC_KEY *key,\n                                                const
      EC_POINT *pub_key))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: EC_KEY_METHOD_get_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth,\n                              int
      (**pkeygen)(EC_KEY *key))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: EC_KEY_METHOD_get_compute_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_compute_key(const EC_KEY_METHOD *meth,\n                                   int
      (**pck)(unsigned char **pout,\n                                               size_t
      *poutlen,\n                                               const EC_POINT *pub_key,\n
      \                                              const EC_KEY *ecdh))"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - meth
    - "(**psign_sig)(const unsigned char *dgst,\n                                                     int
      dgst_len,\n                                                     const BIGNUM
      *in_kinv,\n                                                     const BIGNUM
      *in_r,\n                                                     EC_KEY *eckey)"
    argTypes:
    - EC_KEY_METHOD*
    - ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 301
    functionName: EC_KEY_METHOD_get_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_sign(const EC_KEY_METHOD *meth,\n                            int
      (**psign)(int type, const unsigned char *dgst,\n                                          int
      dlen, unsigned char *sig,\n                                          unsigned
      int *siglen,\n                                          const BIGNUM *kinv,
      const BIGNUM *r,\n                                          EC_KEY *eckey),\n
      \                           int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in,\n
      \                                               BIGNUM **kinvp, BIGNUM **rp),\n
      \                           ECDSA_SIG *(**psign_sig)(const unsigned char *dgst,\n
      \                                                    int dgst_len,\n                                                     const
      BIGNUM *in_kinv,\n                                                     const
      BIGNUM *in_r,\n                                                     EC_KEY *eckey))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 317
    functionName: EC_KEY_METHOD_get_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth,\n                              int
      (**pverify)(int type, const unsigned\n                                              char
      *dgst, int dgst_len,\n                                              const unsigned
      char *sigbuf,\n                                              int sig_len, EC_KEY
      *eckey),\n                              int (**pverify_sig)(const unsigned char
      *dgst,\n                                                  int dgst_len,\n                                                  const
      ECDSA_SIG *sig,\n                                                  EC_KEY *eckey))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/ec/ec_err.c:388,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ec/ec_err.c:389,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ec/ec_err.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: ERR_load_EC_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_EC_strings(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:23,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:27,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:28,1
    - Dst: ec_GFp_simple_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:34,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:39,1
    - Dst: ec_GF2m_simple_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:44,1
    - Dst: EC_GROUP*::meth::point_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 50
    functionName: EC_POINT_set_compressed_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_oct.c
    functionUses: 0
    functionsReached:
    - ec_point_is_compat
    - ECerr
    - ec_GF2m_simple_set_compressed_coordinates
    - ec_GFp_simple_set_compressed_coordinates
    - EC_GROUP*::meth::point_set_compressed_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT
      *point,\n                                        const BIGNUM *x, int y_bit,
      BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: EC_POINT_set_compressed_coordinates_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_oct.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_compressed_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group,\n
      \                                           EC_POINT *point, const BIGNUM *x,\n
      \                                           int y_bit, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: EC_POINT_set_compressed_coordinates_GF2m
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_oct.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_compressed_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group,\n
      \                                            EC_POINT *point, const BIGNUM *x,\n
      \                                            int y_bit, BN_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:76,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:79,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:80,1
    - Dst: ec_GFp_simple_point2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:85,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:89,1
    - Dst: ec_GF2m_simple_point2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:93,1
    - Dst: EC_GROUP*::meth::point2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - group
    - point
    - form
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 99
    functionName: EC_POINT_point2oct
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_oct.c
    functionUses: 1
    functionsReached:
    - ec_point_is_compat
    - ec_GF2m_simple_point2oct
    - ECerr
    - ec_GFp_simple_point2oct
    - EC_GROUP*::meth::point2oct
    linkageType: ''
    returnType: size_t
    signature: "size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *point,\n
      \                         point_conversion_form_t form, unsigned char *buf,\n
      \                         size_t len, BN_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:106,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:109,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:110,1
    - Dst: ec_GFp_simple_oct2point
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:115,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:119,1
    - Dst: ec_GF2m_simple_oct2point
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:123,1
    - Dst: EC_GROUP*::meth::oct2point
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - group
    - point
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 127
    functionName: EC_POINT_oct2point
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_oct.c
    functionUses: 1
    functionsReached:
    - ec_point_is_compat
    - ECerr
    - ec_GF2m_simple_oct2point
    - ec_GFp_simple_oct2point
    - EC_GROUP*::meth::oct2point
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *point,\n                       const
      unsigned char *buf, size_t len, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:136,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:139,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:140,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_oct.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - group
    - point
    - form
    - pbuf
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - unsigned char**
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 150
    functionName: EC_POINT_point2buf
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_oct.c
    functionUses: 2
    functionsReached:
    - EC_POINT_point2oct
    - OPENSSL_malloc
    - OPENSSL_free
    - ECerr
    linkageType: ''
    returnType: size_t
    signature: "size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point,\n
      \                         point_conversion_form_t form,\n                          unsigned
      char **pbuf, BN_CTX *ctx)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:43,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:46,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:53,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:54,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:55,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:56,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:57,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:61,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:63,1
    - Dst: BN_GF2m_mod_sqrt_arr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:64,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:67,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:69,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:71,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:73,1
    - Dst: BN_GF2m_mod_solve_quad_arr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:75,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:76,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:78,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:79,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:80,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:81,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:84,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:88,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:89,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:92,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:97,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:103,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:104,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 64
    argCount: 5
    argNames:
    - group
    - point
    - x_
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 33
    functionDepth: 8
    functionLinenumber: 33
    functionLinenumberEnd: 106
    functionName: ec_GF2m_simple_set_compressed_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::field_div
    - ERR_GET_REASON
    - ERR_GET_LIB
    - BN_GF2m_mod_sqrt_arr
    - EC_POINT_set_affine_coordinates
    - ERR_clear_error
    - BN_GF2m_add
    - EC_GROUP*::meth::field_mul
    - ECerr
    - BN_CTX_end
    - BN_GF2m_mod_arr
    - BN_CTX_free
    - BN_CTX_get
    - EC_GROUP*::meth::field_sqr
    - BN_GF2m_mod_solve_quad_arr
    - ERR_peek_last_error
    - BN_is_zero
    - BN_is_odd
    - BN_CTX_start
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_set_compressed_coordinates(const EC_GROUP *group,\n
      \                                             EC_POINT *point,\n                                              const
      BIGNUM *x_, int y_bit,\n                                              BN_CTX
      *ctx)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:126,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:130,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:134,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:143,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:151,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:156,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:161,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:163,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:164,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:165,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:169,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:173,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:174,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:176,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:182,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:184,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:191,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:194,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:200,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:202,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:209,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:214,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:220,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:221,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:226,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:227,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 96
    argCount: 6
    argNames:
    - group
    - point
    - form
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 229
    functionName: ec_GF2m_simple_point2oct
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c
    functionUses: 1
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::field_div
    - BN_num_bytes
    - BN_CTX_start
    - EC_POINT_get_affine_coordinates
    - BN_CTX_end
    - BN_bn2bin
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_get
    - BN_is_zero
    - EC_GROUP_get_degree
    - BN_CTX_new
    - BN_is_odd
    linkageType: ''
    returnType: size_t
    signature: "size_t ec_GF2m_simple_point2oct(const EC_GROUP *group, const EC_POINT
      *point,\n                                point_conversion_form_t form,\n                                unsigned
      char *buf, size_t len, BN_CTX *ctx)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:247,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:256,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:260,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:266,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:270,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:273,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:280,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:285,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:290,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:291,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:292,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:293,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:297,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:299,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:300,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:305,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:308,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:310,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:311,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:315,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:317,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:318,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:327,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:334,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c:335,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 83
    argCount: 5
    argNames:
    - group
    - point
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 337
    functionName: ec_GF2m_simple_oct2point
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c
    functionUses: 1
    functionsReached:
    - EC_POINT_set_to_infinity
    - ECerr
    - EC_POINT_set_affine_coordinates
    - EC_GROUP*::meth::field_div
    - BN_CTX_start
    - BN_num_bits
    - EC_POINT_set_compressed_coordinates
    - BN_CTX_end
    - BN_bin2bn
    - BN_CTX_free
    - BN_CTX_get
    - EC_GROUP_get_degree
    - BN_CTX_new
    - BN_is_odd
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point,\n
      \                            const unsigned char *buf, size_t len,\n                             BN_CTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: bin32_to_felem
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bin32_to_felem(felem out, const u8 in[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - u8[]
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: smallfelem_to_bin32
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_to_bin32(u8 out[32], const smallfelem in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:155,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:156,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:159,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:161,1
    - Dst: bin32_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - bn
    argTypes:
    - felem
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: BN_to_felem
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 3
    functionsReached:
    - bin32_to_felem
    - BN_bn2lebinpad
    - BN_is_negative
    - ECerr
    linkageType: ''
    returnType: int
    signature: int BN_to_felem(felem out, const BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_to_bin32
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:172,1
    - Dst: BN_lebin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM*
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: smallfelem_to_BN
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - BN_lebin2bn
    - smallfelem_to_bin32
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *smallfelem_to_BN(BIGNUM *out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: smallfelem_one
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_one(smallfelem out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: smallfelem_assign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_assign(smallfelem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: felem_assign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_assign(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: felem_sum
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_sum(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: felem_small_sum
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_small_sum(felem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - felem
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: felem_scalar
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar(felem out, const u64 scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - longfelem
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: longfelem_scalar
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longfelem_scalar(longfelem out, const u64 scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - small
    argTypes:
    - felem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: smallfelem_neg
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_neg(felem out, const smallfelem small)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: felem_diff
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 320
    functionName: felem_diff_zero107
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff_zero107(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - longfelem
    - longfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 359
    functionName: longfelem_diff
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longfelem_diff(longfelem out, const longfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 467
    functionName: felem_shrink
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_shrink(smallfelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: smallfelem_expand
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_expand(felem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 2
    argNames:
    - out
    - small
    argTypes:
    - longfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 555
    functionName: smallfelem_square
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_square(longfelem out, const smallfelem small)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:567,1
    - Dst: smallfelem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - longfelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 569
    functionName: felem_square
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 6
    functionsReached:
    - felem_shrink
    - smallfelem_square
    linkageType: ''
    returnType: void
    signature: void felem_square(longfelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 3
    argNames:
    - out
    - small1
    - small2
    argTypes:
    - longfelem
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 680
    functionName: smallfelem_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void smallfelem_mul(longfelem out, const smallfelem small1,\n                           const
      smallfelem small2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:693,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:694,1
    - Dst: smallfelem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - longfelem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 696
    functionName: felem_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 6
    functionsReached:
    - felem_shrink
    - smallfelem_mul
    linkageType: ''
    returnType: void
    signature: void felem_mul(longfelem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:710,1
    - Dst: smallfelem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - small1
    - in2
    argTypes:
    - longfelem
    - smallfelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 712
    functionName: felem_small_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - smallfelem_mul
    linkageType: ''
    returnType: void
    signature: "void felem_small_mul(longfelem out, const smallfelem small1,\n                            const
      felem in2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - longfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 767
    functionName: felem_reduce_
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_reduce_(felem out, const longfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - longfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 798
    functionName: felem_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 7
    functionsReached:
    - felem_reduce_
    linkageType: ''
    returnType: void
    signature: void felem_reduce(felem out, const longfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - longfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 827
    functionName: felem_reduce_zero105
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_reduce_
    linkageType: ''
    returnType: void
    signature: void felem_reduce_zero105(felem out, const longfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - result
    - carry
    - v
    argTypes:
    - u64*
    - u64*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 839
    functionName: subtract_u64
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void subtract_u64(u64 *result, u64 *carry, u64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:850,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:893,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:894,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:895,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:896,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:898,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:899,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:900,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:902,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:903,1
    - Dst: subtract_u64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 906
    functionName: felem_contract
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached:
    - felem_shrink
    - subtract_u64
    linkageType: ''
    returnType: void
    signature: void felem_contract(smallfelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:913,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:914,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 916
    functionName: smallfelem_square_contract
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_contract
    - smallfelem_square
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void smallfelem_square_contract(smallfelem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:924,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:925,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - smallfelem
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 927
    functionName: smallfelem_mul_contract
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_contract
    - smallfelem_mul
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: "void smallfelem_mul_contract(smallfelem out, const smallfelem in1,\n
      \                                   const smallfelem in2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - small
    argTypes:
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 967
    functionName: smallfelem_is_zero
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: limb
    signature: limb smallfelem_is_zero(const smallfelem small)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - small
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: smallfelem_is_zero_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - smallfelem_is_zero
    linkageType: ''
    returnType: int
    signature: int smallfelem_is_zero_int(const void *small)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:990,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:991,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:992,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:993,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:994,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:995,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:996,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:997,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:998,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:999,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1000,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1001,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1002,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1003,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1004,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1005,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1006,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1007,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1008,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1009,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1010,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1011,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1012,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1014,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1015,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1017,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1018,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1019,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1021,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1022,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1024,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1025,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1026,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1028,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1029,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1031,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1032,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1033,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1035,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1036,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1039,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1040,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1042,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1043,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1045,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1046,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1048,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1049,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1051,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1052,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1054,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1055,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1057,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1058,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1059,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1060,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1061,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1062,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1063,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1064,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1065,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1066,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1067,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1068,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1069,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1070,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1072,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1073,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 83
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 1074
    functionName: felem_inv
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached:
    - felem_square
    - felem_assign
    - felem_mul
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_inv(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1080,1
    - Dst: felem_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1081,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1083
    functionName: smallfelem_inv_contract
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_contract
    - felem_inv
    - smallfelem_expand
    linkageType: ''
    returnType: void
    signature: void smallfelem_inv_contract(smallfelem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1111,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1113,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1117,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1118,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1122,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1123,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1125,1
    - Dst: felem_small_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1128,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1129,1
    - Dst: felem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1133,1
    - Dst: felem_sum
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1135,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1137,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1139,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1140,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1142,1
    - Dst: smallfelem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1145,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1146,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1147,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1148,1
    - Dst: felem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1150,1
    - Dst: felem_sum
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1154,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1156,1
    - Dst: felem_sum
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1157,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1159,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1160,1
    - Dst: felem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1161,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1165,1
    - Dst: felem_diff_zero107
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1167,1
    - Dst: felem_small_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1169,1
    - Dst: smallfelem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1171,1
    - Dst: longfelem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1173,1
    - Dst: longfelem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1175,1
    - Dst: felem_reduce_zero105
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 6
    argNames:
    - x_out
    - y_out
    - z_out
    - x_in
    - y_in
    - z_in
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1179
    functionName: point_double
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 4
    functionsReached:
    - felem_square
    - felem_assign
    - felem_diff
    - smallfelem_square
    - felem_diff_zero107
    - felem_reduce
    - felem_shrink
    - felem_mul
    - felem_small_mul
    - longfelem_scalar
    - felem_scalar
    - felem_reduce_zero105
    - longfelem_diff
    - felem_sum
    linkageType: ''
    returnType: void
    signature: "void point_double(felem x_out, felem y_out, felem z_out,\n             const
      felem x_in, const felem y_in, const felem z_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1193,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1194,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1195,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1196,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1198,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1199,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - x_out
    - y_out
    - z_out
    - x_in
    - y_in
    - z_in
    argTypes:
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1201
    functionName: point_double_small
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - point_double
    - smallfelem_expand
    linkageType: ''
    returnType: void
    signature: "void point_double_small(smallfelem x_out, smallfelem y_out, smallfelem
      z_out,\n                   const smallfelem x_in, const smallfelem y_in,\n                   const
      smallfelem z_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1211
    functionName: copy_conditional
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_conditional(felem out, const felem in, limb mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - smallfelem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1221
    functionName: copy_small_conditional
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_small_conditional(felem out, const smallfelem in, limb mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1246,1
    - Dst: smallfelem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1248,1
    - Dst: smallfelem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1249,1
    - Dst: smallfelem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1252,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1253,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1255,1
    - Dst: smallfelem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1259,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1260,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1262,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1264,1
    - Dst: smallfelem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1267,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1268,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1272,1
    - Dst: felem_small_sum
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1273,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1277,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1278,1
    - Dst: felem_sum
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1280,1
    - Dst: felem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1282,1
    - Dst: smallfelem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1286,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1287,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1290,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1291,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1299,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1303,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1304,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1308,1
    - Dst: smallfelem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1313,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1314,1
    - Dst: felem_diff_zero107
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1317,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1319,1
    - Dst: smallfelem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1321,1
    - Dst: felem_small_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1324,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1325,1
    - Dst: smallfelem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1329,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1330,1
    - Dst: felem_small_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1333,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1334,1
    - Dst: felem_diff_zero107
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1337,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1339,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1341,1
    - Dst: smallfelem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1342,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1364,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1369,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1370,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1372,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1373,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1376,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1377,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1380,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1381,1
    - Dst: smallfelem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1384,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1385,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1386,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1387,1
    - Dst: felem_sum
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1388,1
    - Dst: felem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1390,1
    - Dst: felem_diff_zero107
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1394,1
    - Dst: felem_small_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1396,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1397,1
    - Dst: longfelem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1398,1
    - Dst: longfelem_diff
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1400,1
    - Dst: felem_reduce_zero105
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1402,1
    - Dst: copy_small_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1405,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1406,1
    - Dst: copy_small_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1407,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1408,1
    - Dst: copy_small_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1409,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1410,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1411,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1412,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 79
    argCount: 10
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - mixed
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - int
    - smallfelem
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1235
    functionDepth: 2
    functionLinenumber: 1235
    functionLinenumberEnd: 1414
    functionName: point_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 3
    functionsReached:
    - smallfelem_square
    - felem_diff
    - felem_diff_zero107
    - felem_shrink
    - felem_square
    - felem_assign
    - felem_small_mul
    - felem_scalar
    - felem_small_sum
    - longfelem_diff
    - copy_small_conditional
    - felem_reduce
    - felem_mul
    - smallfelem_is_zero
    - point_double
    - felem_reduce_zero105
    - felem_sum
    - smallfelem_mul
    - longfelem_scalar
    - copy_conditional
    linkageType: ''
    returnType: void
    signature: "void point_add(felem x3, felem y3, felem z3,\n                      const
      felem x1, const felem y1, const felem z1,\n                      const int mixed,
      const smallfelem x2,\n                      const smallfelem y2, const smallfelem
      z2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1426,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1427,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1428,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1429,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1431,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1432,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 9
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - x2
    - y2
    - z2
    argTypes:
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1420
    functionDepth: 1
    functionLinenumber: 1420
    functionLinenumberEnd: 1434
    functionName: point_add_small
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - point_add
    - smallfelem_expand
    linkageType: ''
    returnType: void
    signature: "void point_add_small(smallfelem x3, smallfelem y3, smallfelem z3,\n
      \                           smallfelem x1, smallfelem y1, smallfelem z1,\n                            smallfelem
      x2, smallfelem y2, smallfelem z2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - idx
    - size
    - pre_comp
    - out
    argTypes:
    - u64
    - unsigned int
    - smallfelem[][]
    - smallfelem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1636
    functionDepth: 0
    functionLinenumber: 1636
    functionLinenumberEnd: 1655
    functionName: select_point
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void select_point(const u64 idx, unsigned int size,\n                         const
      smallfelem pre_comp[16][3], smallfelem out[3])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - in
    - i
    argTypes:
    - felem_bytearray
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1658
    functionDepth: 0
    functionLinenumber: 1658
    functionLinenumberEnd: 1663
    functionName: get_bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char get_bit(const felem_bytearray in, int i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1686,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1698,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1703,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1704,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1705,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1706,1
    - Dst: select_point
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1708,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1712,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1715,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1716,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1717,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1722,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1723,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1724,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1725,1
    - Dst: select_point
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1727,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1729,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1737,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1738,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1739,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1740,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1741,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1742,1
    - Dst: ec_GFp_nistp_recode_scalar_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1743,1
    - Dst: select_point
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1748,1
    - Dst: smallfelem_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1749,1
    - Dst: copy_small_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1751,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1752,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1755,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1759,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1760,1
    - Dst: smallfelem_expand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1761,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1767,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1768,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1769,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 9
    argNames:
    - x_out
    - y_out
    - z_out
    - scalars
    - num_points
    - g_scalar
    - mixed
    - pre_comp
    - g_pre_comp
    argTypes:
    - felem
    - felem
    - felem
    - felem_bytearray[]
    - unsigned
    - u8*
    - int
    - smallfelem[][][]
    - smallfelem[][][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1672
    functionDepth: 1
    functionLinenumber: 1672
    functionLinenumberEnd: 1770
    functionName: batch_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached:
    - felem_assign
    - copy_small_conditional
    - ec_GFp_nistp_recode_scalar_bits
    - smallfelem_neg
    - felem_contract
    - select_point
    - point_add
    - memset
    - smallfelem_expand
    - point_double
    - get_bit
    linkageType: ''
    returnType: void
    signature: "void batch_mul(felem x_out, felem y_out, felem z_out,\n                      const
      felem_bytearray scalars[],\n                      const unsigned num_points,
      const u8 *g_scalar,\n                      const int mixed, const smallfelem
      pre_comp[][17][3],\n                      const smallfelem g_pre_comp[2][16][3])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1779
    functionDepth: 0
    functionLinenumber: 1779
    functionLinenumberEnd: 1840
    functionName: EC_GFp_nistp256_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nistp256_method(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1849,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1852,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1858,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1860,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1847
    functionDepth: 1
    functionLinenumber: 1847
    functionLinenumberEnd: 1865
    functionName: nistp256_pre_comp_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ECerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTP256_PRE_COMP
    signature: NISTP256_PRE_COMP *nistp256_pre_comp_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP256_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1867
    functionDepth: 1
    functionLinenumber: 1867
    functionLinenumberEnd: 1873
    functionName: EC_nistp256_pre_comp_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: NISTP256_PRE_COMP
    signature: NISTP256_PRE_COMP *EC_nistp256_pre_comp_dup(NISTP256_PRE_COMP *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1882,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1883,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1886,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1888,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pre
    argTypes:
    - NISTP256_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1875
    functionDepth: 1
    functionLinenumber: 1875
    functionLinenumberEnd: 1890
    functionName: EC_nistp256_pre_comp_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EC_nistp256_pre_comp_free(NISTP256_PRE_COMP *pre)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_init
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1897
    functionDepth: 1
    functionLinenumber: 1897
    functionLinenumberEnd: 1903
    functionName: ec_GFp_nistp256_group_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nistp256_group_init(EC_GROUP *group)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1914,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1916,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1917,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1918,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1919,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1922,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1923,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1924,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1925,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1925,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1925,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1926,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1931,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1933,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1934,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1905
    functionDepth: 4
    functionLinenumber: 1905
    functionLinenumberEnd: 1936
    functionName: ec_GFp_nistp256_group_set_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_set_curve
    - ECerr
    - BN_cmp
    - BN_CTX_start
    - BN_CTX_end
    - BN_bin2bn
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nistp256_group_set_curve(EC_GROUP *group, const BIGNUM
      *p,\n                                    const BIGNUM *a, const BIGNUM *b,\n
      \                                   BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1951,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1952,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1956,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1956,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1957,1
    - Dst: felem_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1959,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1960,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1961,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1962,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1963,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1964,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1966,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1967,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1972,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1973,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1974,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1975,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1976,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1978,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1979,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1942
    functionDepth: 5
    functionLinenumber: 1942
    functionLinenumberEnd: 1985
    functionName: ec_GFp_nistp256_point_get_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_square
    - ECerr
    - felem_reduce
    - felem_mul
    - felem_contract
    - felem_inv
    - EC_POINT_is_at_infinity
    - BN_to_felem
    - smallfelem_to_BN
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nistp256_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                                const EC_POINT *point,\n                                                 BIGNUM
      *x, BIGNUM *y,\n                                                 BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_nistp_points_make_affine_internal
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:1995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - points
    - tmp_smallfelems
    argTypes:
    - size_t
    - smallfelem[][]
    - smallfelem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1988
    functionDepth: 1
    functionLinenumber: 1988
    functionLinenumberEnd: 2014
    functionName: make_points_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached:
    - ec_GFp_nistp_points_make_affine_internal
    linkageType: ''
    returnType: void
    signature: "void make_points_affine(size_t num, smallfelem points[][3],\n                               smallfelem
      tmp_smallfelems[])"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2031,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2045,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2046,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2047,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2048,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2049,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2061,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2065,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2066,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2067,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2068,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2071,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2075,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2093,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2094,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2097,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2100,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2108,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2109,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2116,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2125,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2126,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2131,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2132,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2135,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2138,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2142,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2146,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2147,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2148,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2150,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2151,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2152,1
    - Dst: point_add_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2155,1
    - Dst: point_double_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2162,1
    - Dst: make_points_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2173,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2178,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2180,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2180,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2185,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2186,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2189,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2191,1
    - Dst: batch_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2194,1
    - Dst: batch_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2200,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2205,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2206,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2207,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2208,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2208,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2209,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2210,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2213,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2216,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2217,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2218,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2219,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2220,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 121
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2020
    functionDepth: 5
    functionLinenumber: 2020
    functionLinenumberEnd: 2222
    functionName: ec_GFp_nistp256_points_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - smallfelem
    - felem_shrink
    - felem_contract
    - BN_bn2lebinpad
    - EC_GROUP_get0_generator
    - OPENSSL_malloc
    - OPENSSL_free
    - EC_POINT_cmp
    - point_add_small
    - ECerr
    - BN_CTX_end
    - point_double_small
    - BN_to_felem
    - EC_POINT_set_Jprojective_coordinates_GFp
    - BN_CTX_get
    - BN_nnmod
    - EC_POINT_free
    - BN_CTX_start
    - make_points_affine
    - BN_is_negative
    - memset
    - smallfelem_to_BN
    - BN_num_bits
    - EC_POINT_new
    - batch_mul
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nistp256_points_mul(const EC_GROUP *group, EC_POINT *r,\n
      \                              const BIGNUM *scalar, size_t num,\n                               const
      EC_POINT *points[],\n                               const BIGNUM *scalars[],
      BN_CTX *ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2236,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2238,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2240,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2241,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2242,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2248,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2251,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2252,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2253,1
    - Dst: nistp256_pre_comp_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2255,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2260,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2261,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2264,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2265,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2266,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2268,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2269,1
    - Dst: felem_shrink
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2270,1
    - Dst: point_double_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2276,1
    - Dst: point_double_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2281,1
    - Dst: point_double_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2290,1
    - Dst: point_double_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2296,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2306,1
    - Dst: point_add_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2309,1
    - Dst: point_add_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2315,1
    - Dst: point_add_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2321,1
    - Dst: point_add_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2329,1
    - Dst: point_add_small
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2336,1
    - Dst: make_points_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2347,1
    - Dst: SETPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2350,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2355,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2356,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2357,1
    - Dst: EC_nistp256_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2358,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2224
    functionDepth: 4
    functionLinenumber: 2224
    functionLinenumberEnd: 2360
    functionName: ec_GFp_nistp256_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - EC_POINT_set_affine_coordinates
    - memcpy
    - SETPRECOMP
    - EC_POINT_cmp
    - BN_bin2bn
    - EC_nistp256_pre_comp_free
    - point_add_small
    - BN_CTX_new
    - nistp256_pre_comp_new
    - BN_CTX_end
    - point_double_small
    - BN_to_felem
    - BN_CTX_free
    - BN_CTX_get
    - EC_POINT_free
    - BN_CTX_start
    - make_points_affine
    - memset
    - EC_POINT_new
    - EC_pre_comp_free
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nistp256_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c:2364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2362
    functionDepth: 1
    functionLinenumber: 2362
    functionLinenumberEnd: 2365
    functionName: ec_GFp_nistp256_have_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nistp256_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 76
    functionName: EC_GFp_nist_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nist_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: ec_GFp_nist_group_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_copy
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nist_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:92,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:95,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:97,1
    - Dst: BN_get0_nist_prime_192
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:97,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:99,1
    - Dst: BN_get0_nist_prime_224
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:99,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:101,1
    - Dst: BN_get0_nist_prime_256
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:101,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:103,1
    - Dst: BN_get0_nist_prime_384
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:103,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:105,1
    - Dst: BN_get0_nist_prime_521
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:105,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:108,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:112,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:115,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:116,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 118
    functionName: ec_GFp_nist_group_set_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_set_curve
    - ECerr
    - BN_CTX_start
    - BN_CTX_end
    - BN_get0_nist_prime_192
    - BN_CTX_free
    - BN_get0_nist_prime_521
    - BN_get0_nist_prime_256
    - BN_CTX_new
    - BN_ucmp
    - BN_get0_nist_prime_384
    - BN_get0_nist_prime_224
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM *p,\n
      \                               const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:127,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:131,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:134,1
    - Dst: EC_GROUP*::field_mod_func
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:136,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:141,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: ec_GFp_nist_field_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_mul
    - BN_CTX_free
    - BN_CTX_new
    - EC_GROUP*::field_mod_func
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nist_field_mul(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                          const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:152,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:156,1
    - Dst: BN_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:159,1
    - Dst: EC_GROUP*::field_mod_func
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:161,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c:166,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 168
    functionName: ec_GFp_nist_field_sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_CTX_free
    - BN_CTX_new
    - BN_sqr
    - EC_GROUP*::field_mod_func
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nist_field_sqr(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                          BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 75
    functionName: EC_GFp_simple_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_simple_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:93,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:94,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:95,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:97,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:98,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: ec_GFp_simple_group_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 2
    functionsReached:
    - BN_new
    - BN_free
    linkageType: ''
    returnType: int
    signature: int ec_GFp_simple_group_init(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:108,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:109,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: ec_GFp_simple_group_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ec_GFp_simple_group_finish(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:115,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:116,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: ec_GFp_simple_group_clear_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ec_GFp_simple_group_clear_finish(EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:122,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:124,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: ec_GFp_simple_group_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 1
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: int ec_GFp_simple_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:143,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:143,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:144,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:149,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:154,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:155,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:160,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:162,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:165,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:168,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:170,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:174,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:177,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:181,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:183,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:188,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:189,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 191
    functionName: ec_GFp_simple_group_set_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 3
    functionsReached:
    - BN_set_negative
    - ECerr
    - BN_copy
    - EC_GROUP*::meth::field_encode
    - BN_add_word
    - BN_CTX_start
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - BN_num_bits
    - BN_CTX_new
    - BN_is_odd
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_group_set_curve(EC_GROUP *group,\n                                  const
      BIGNUM *p, const BIGNUM *a,\n                                  const BIGNUM
      *b, BN_CTX *ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:200,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:207,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:212,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:216,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:221,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:225,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:234,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 236
    functionName: ec_GFp_simple_group_get_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new
    - BN_CTX_free
    - EC_GROUP*::meth::field_decode
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_group_get_curve(const EC_GROUP *group, BIGNUM *p,
      BIGNUM *a,\n                                  BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: ec_GFp_simple_group_get_degree
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int ec_GFp_simple_group_get_degree(const EC_GROUP *group)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:251,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:253,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:258,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:259,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:260,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:261,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:262,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:263,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:268,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:270,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:273,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:275,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:284,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:285,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:287,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:288,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:290,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:292,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:296,1
    - Dst: BN_mul_word
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:298,1
    - Dst: BN_mod_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:302,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:304,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:310,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:311,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 67
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 243
    functionDepth: 5
    functionLinenumber: 243
    functionLinenumberEnd: 313
    functionName: ec_GFp_simple_group_check_discriminant
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_lshift
    - ECerr
    - BN_copy
    - BN_CTX_start
    - BN_CTX_end
    - BN_mod_sqr
    - BN_mul_word
    - BN_CTX_free
    - BN_mod_add
    - BN_CTX_get
    - BN_is_zero
    - BN_CTX_new
    - BN_mod_mul
    - EC_GROUP*::meth::field_decode
    linkageType: ''
    returnType: int
    signature: int ec_GFp_simple_group_check_discriminant(const EC_GROUP *group, BN_CTX
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:317,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:318,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:319,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:323,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:324,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 329
    functionName: ec_GFp_simple_point_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    linkageType: ''
    returnType: int
    signature: int ec_GFp_simple_point_init(EC_POINT *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:333,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:334,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: ec_GFp_simple_point_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ec_GFp_simple_point_finish(EC_POINT *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:340,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:341,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: ec_GFp_simple_point_clear_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ec_GFp_simple_point_clear_finish(EC_POINT *point)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:348,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:350,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_POINT*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 358
    functionName: ec_GFp_simple_point_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: int ec_GFp_simple_point_copy(EC_POINT *dest, const EC_POINT *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: ec_GFp_simple_point_set_to_infinity
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_point_set_to_infinity(const EC_GROUP *group,\n                                        EC_POINT
      *point)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:379,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:385,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:388,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:394,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:397,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:405,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:407,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:410,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:413,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:424,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 6
    argNames:
    - group
    - point
    - x
    - y
    - z
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 426
    functionName: ec_GFp_simple_set_Jprojective_coordinates_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_set_to_one
    - BN_is_one
    - EC_GROUP*::meth::field_encode
    - BN_CTX_free
    - BN_CTX_new
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_set_Jprojective_coordinates_GFp(const EC_GROUP *group,\n
      \                                                 EC_POINT *point,\n                                                  const
      BIGNUM *x,\n                                                  const BIGNUM *y,\n
      \                                                 const BIGNUM *z,\n                                                  BN_CTX
      *ctx)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:438,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:444,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:448,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:452,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:457,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:461,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:465,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:473,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 6
    argNames:
    - group
    - point
    - x
    - y
    - z
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 475
    functionName: ec_GFp_simple_get_Jprojective_coordinates_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new
    - BN_CTX_free
    - EC_GROUP*::meth::field_decode
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_get_Jprojective_coordinates_GFp(const EC_GROUP *group,\n
      \                                                 const EC_POINT *point,\n                                                  BIGNUM
      *x, BIGNUM *y,\n                                                  BIGNUM *z,
      BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:486,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:491,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 493
    functionName: ec_GFp_simple_point_set_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_Jprojective_coordinates_GFp
    - BN_value_one
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_point_set_affine_coordinates(const EC_GROUP *group,\n
      \                                              EC_POINT *point,\n                                               const
      BIGNUM *x,\n                                               const BIGNUM *y,
      BN_CTX *ctx)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:505,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:506,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:512,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:517,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:518,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:519,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:520,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:521,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:528,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:535,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:538,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:542,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:547,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:551,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:556,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:557,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:564,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:567,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:576,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:585,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:588,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:596,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:604,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:605,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 91
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 607
    functionName: ec_GFp_simple_point_get_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_inv
    - BN_mod_mul
    - BN_is_one
    - ECerr
    - BN_copy
    - BN_CTX_start
    - BN_CTX_end
    - BN_mod_sqr
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_get
    - EC_GROUP*::meth::field_sqr
    - BN_CTX_new
    - EC_GROUP*::meth::field_mul
    - EC_GROUP*::meth::field_decode
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                              const EC_POINT *point,\n                                               BIGNUM
      *x, BIGNUM *y,\n                                               BN_CTX *ctx)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:621,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:622,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:623,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:624,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:625,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:632,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:637,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:638,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:639,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:640,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:641,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:642,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:643,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:644,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:656,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:658,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:663,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:665,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:669,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:671,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:678,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:680,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:685,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:687,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:691,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:693,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:699,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:701,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:706,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:707,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:709,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:710,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:715,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:723,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:725,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:732,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:736,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:739,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:742,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:745,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:752,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:754,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:756,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:758,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:763,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:765,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:770,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:772,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:774,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:776,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:778,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:779,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:782,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:789,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:790,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 162
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 609
    functionDepth: 6
    functionLinenumber: 609
    functionLinenumberEnd: 792
    functionName: ec_GFp_simple_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - EC_POINT_is_at_infinity
    - BN_zero
    - BN_mod_add_quick
    - field_mul
    - field_sqr
    - EC_POINT_copy
    - BN_CTX_end
    - EC_POINT_dbl
    - BN_rshift1
    - BN_CTX_free
    - BN_CTX_get
    - BN_is_zero
    - BN_is_odd
    - BN_add
    - BN_CTX_start
    - BN_mod_sub_quick
    - BN_CTX_new
    - BN_mod_lshift1_quick
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                      const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:805,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:806,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:816,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:821,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:822,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:823,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:824,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:825,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:837,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:839,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:841,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:843,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:847,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:849,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:851,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:853,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:855,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:857,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:864,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:866,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:868,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:870,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:872,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:874,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:876,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:883,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:886,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:889,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:895,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:897,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:899,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:904,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:906,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:908,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:913,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:915,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:920,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:922,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:924,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:931,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:932,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 130
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 794
    functionDepth: 6
    functionLinenumber: 794
    functionLinenumberEnd: 934
    functionName: ec_GFp_simple_dbl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - BN_mod_lshift1_quick
    - BN_zero
    - BN_CTX_start
    - BN_CTX_end
    - EC_POINT_is_at_infinity
    - BN_mod_add_quick
    - BN_mod_sub_quick
    - BN_mod_lshift_quick
    - BN_CTX_free
    - BN_CTX_get
    - field_mul
    - BN_CTX_new
    - field_sqr
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                      BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:938,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:938,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 936
    functionDepth: 5
    functionLinenumber: 936
    functionLinenumberEnd: 943
    functionName: ec_GFp_simple_invert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - BN_usub
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int ec_GFp_simple_invert(const EC_GROUP *group, EC_POINT *point, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 948
    functionName: ec_GFp_simple_is_at_infinity
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int ec_GFp_simple_is_at_infinity(const EC_GROUP *group, const EC_POINT
      *point)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:961,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:969,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:974,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:975,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:976,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:977,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:978,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:993,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:997,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:999,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1001,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1006,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1008,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1010,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1012,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1015,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1017,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1019,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1024,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1026,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1032,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1034,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1037,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1042,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1045,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1048,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1049,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 82
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 950
    functionDepth: 6
    functionLinenumber: 950
    functionLinenumberEnd: 1051
    functionName: ec_GFp_simple_is_on_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mod_lshift1_quick
    - BN_CTX_start
    - BN_CTX_end
    - EC_POINT_is_at_infinity
    - BN_mod_add_quick
    - BN_mod_sub_quick
    - BN_CTX_free
    - BN_CTX_get
    - field_mul
    - BN_CTX_new
    - BN_ucmp
    - field_sqr
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_is_on_curve(const EC_GROUP *group, const EC_POINT
      *point,\n                              BN_CTX *ctx)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1071,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1072,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1075,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1079,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1079,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1086,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1091,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1092,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1093,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1094,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1095,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1107,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1109,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1115,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1117,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1124,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1130,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1132,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1138,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1140,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1147,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1156,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1157,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 78
    argCount: 4
    argNames:
    - group
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1159
    functionName: ec_GFp_simple_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - BN_CTX_start
    - BN_CTX_end
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_get
    - field_mul
    - BN_CTX_new
    - field_sqr
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_cmp(const EC_GROUP *group, const EC_POINT *a,\n
      \                     const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1168,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1172,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1177,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1178,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1179,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1183,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1185,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1188,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1195,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1196,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1198
    functionName: ec_GFp_simple_make_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_POINT_set_affine_coordinates
    - BN_CTX_start
    - EC_POINT_get_affine_coordinates
    - BN_CTX_end
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_make_affine(const EC_GROUP *group, EC_POINT *point,\n
      \                             BN_CTX *ctx)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1213,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1218,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1219,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1220,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1224,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1228,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1238,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1239,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1243,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1246,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1252,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1253,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1258,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1268,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1269,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1278,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1280,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1289,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1294,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1300,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1303,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1308,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1310,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1319,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1322,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1324,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1327,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1329,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1333,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1336,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1346,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1347,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1352,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1354,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 121
    argCount: 4
    argNames:
    - group
    - num
    - points
    - ctx
    argTypes:
    - EC_GROUP*
    - size_t
    - EC_POINT*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1200
    functionDepth: 3
    functionLinenumber: 1200
    functionLinenumberEnd: 1357
    functionName: ec_GFp_simple_points_make_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_one
    - EC_GROUP*::meth::field_set_to_one
    - OPENSSL_malloc
    - EC_GROUP*::meth::field_inv
    - EC_GROUP*::meth::field_sqr
    - BN_copy
    - ECerr
    - EC_GROUP*::meth::field_encode
    - BN_new
    - BN_CTX_start
    - BN_CTX_end
    - OPENSSL_free
    - BN_CTX_free
    - BN_CTX_get
    - BN_is_zero
    - BN_CTX_new
    - EC_GROUP*::meth::field_mul
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_points_make_affine(const EC_GROUP *group, size_t
      num,\n                                     EC_POINT *points[], BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1359
    functionDepth: 3
    functionLinenumber: 1359
    functionLinenumberEnd: 1363
    functionName: ec_GFp_simple_field_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_field_mul(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                            const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1369
    functionName: ec_GFp_simple_field_sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mod_sqr
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_field_sqr(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                            BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_secure_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1384,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1387,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1388,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1392,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1394,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1397,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1400,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1401,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1405,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1411,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1412,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1377
    functionDepth: 7
    functionLinenumber: 1377
    functionLinenumberEnd: 1414
    functionName: ec_GFp_simple_field_inv
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_CTX_secure_new
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_free
    - BN_priv_rand_range
    - BN_CTX_get
    - BN_is_zero
    - BN_mod_inverse
    - EC_GROUP*::meth::field_mul
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_field_inv(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                            BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1430,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1431,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1432,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1434,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1444,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1445,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1446,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1451,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1455,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1456,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1457,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1458,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1459,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1460,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1467,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - group
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1423
    functionDepth: 7
    functionLinenumber: 1423
    functionLinenumberEnd: 1469
    functionName: ec_GFp_simple_blind_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_sqr
    - ECerr
    - EC_GROUP*::meth::field_encode
    - BN_CTX_start
    - BN_CTX_end
    - ERR_set_mark
    - BN_priv_rand_range
    - BN_CTX_get
    - ERR_pop_to_mark
    - EC_GROUP*::meth::field_mul
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_blind_coordinates(const EC_GROUP *group, EC_POINT
      *p,\n                                    BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1499,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1500,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1501,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1502,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1503,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1505,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1506,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1507,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1508,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1510,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1515,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1517,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1521,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1523,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1527,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1528,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1532,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1533,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1534,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 23
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1486
    functionDepth: 7
    functionLinenumber: 1486
    functionLinenumberEnd: 1541
    functionName: ec_GFp_simple_ladder_pre
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_encode
    - BN_mod_add_quick
    - BN_mod_sub_quick
    - BN_mod_lshift_quick
    - BN_priv_rand_range
    - EC_GROUP*::meth::field_sqr
    - EC_GROUP*::meth::field_mul
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_ladder_pre(const EC_GROUP *group,\n                             EC_POINT
      *r, EC_POINT *s,\n                             EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1563,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1564,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1565,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1566,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1567,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1568,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1569,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1570,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1573,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1574,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1575,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1576,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1577,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1578,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1579,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1580,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1581,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1582,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1583,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1584,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1585,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1587,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1588,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1589,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1591,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1592,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1593,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1594,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1595,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1596,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1597,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1598,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1599,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1600,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1601,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1602,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1604,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1605,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1606,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1607,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1608,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1609,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1611,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1617,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 17
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1556
    functionDepth: 6
    functionLinenumber: 1556
    functionLinenumberEnd: 1619
    functionName: ec_GFp_simple_ladder_step
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_start
    - BN_CTX_end
    - BN_mod_add_quick
    - BN_mod_sub_quick
    - BN_mod_lshift_quick
    - BN_CTX_get
    - EC_GROUP*::meth::field_sqr
    - EC_GROUP*::meth::field_mul
    - BN_mod_lshift1_quick
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_ladder_step(const EC_GROUP *group,\n                              EC_POINT
      *r, EC_POINT *s,\n                              EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1651,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1652,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1654,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1655,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1656,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1661,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1662,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1663,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1664,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1665,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1666,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1667,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1668,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1671,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1672,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1673,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1674,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1675,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1676,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1677,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1678,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1679,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1680,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1681,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1682,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1683,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1684,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1685,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1686,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1687,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1688,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1689,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1690,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1691,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1692,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1694,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1695,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1697,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1698,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1699,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1703,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1706,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c:1714,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 34
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1644
    functionDepth: 6
    functionLinenumber: 1644
    functionLinenumberEnd: 1716
    functionName: ec_GFp_simple_ladder_post
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_copy
    - EC_GROUP*::meth::field_inv
    - EC_GROUP*::meth::field_sqr
    - EC_POINT_set_to_infinity
    - EC_GROUP*::meth::field_set_to_one
    - BN_one
    - EC_GROUP*::meth::field_encode
    - BN_CTX_start
    - BN_CTX_end
    - BN_mod_add_quick
    - BN_mod_sub_quick
    - BN_CTX_get
    - BN_is_zero
    - EC_GROUP*::meth::field_mul
    - EC_POINT_invert
    - EC_GROUP*::meth::field_decode
    - BN_mod_lshift1_quick
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_ladder_post(const EC_GROUP *group,\n                              EC_POINT
      *r, EC_POINT *s,\n                              EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_do_sign_ex
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dgst
    - dlen
    - eckey
    argTypes:
    - unsigned char*
    - int
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ECDSA_do_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c
    functionUses: 0
    functionsReached:
    - ECDSA_do_sign_ex
    linkageType: ''
    returnType: ECDSA_SIG
    signature: ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dlen, EC_KEY
      *eckey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::sign_sig
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c:24,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - dgst
    - dlen
    - kinv
    - rp
    - eckey
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: ECDSA_do_sign_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c
    functionUses: 2
    functionsReached:
    - ECerr
    - EC_KEY*::meth::sign_sig
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dlen,\n
      \                           const BIGNUM *kinv, const BIGNUM *rp,\n                            EC_KEY
      *eckey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_sign_ex
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: ECDSA_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c
    functionUses: 1
    functionsReached:
    - ECDSA_sign_ex
    linkageType: ''
    returnType: int
    signature: "int ECDSA_sign(int type, const unsigned char *dgst, int dlen, unsigned
      char\n               *sig, unsigned int *siglen, EC_KEY *eckey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::sign
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c:40,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - kinv
    - r
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: ECDSA_sign_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c
    functionUses: 1
    functionsReached:
    - EC_KEY*::meth::sign
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ECDSA_sign_ex(int type, const unsigned char *dgst, int dlen,\n
      \                 unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv,\n
      \                 const BIGNUM *r, EC_KEY *eckey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::sign_setup
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c:49,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ECDSA_sign_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::meth::sign_setup
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,\n
      \                    BIGNUM **rp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:52,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:54,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:63,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 70
    functionName: ec_pre_comp_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ECerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EC_PRE_COMP
    signature: EC_PRE_COMP *ec_pre_comp_new(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pre
    argTypes:
    - EC_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: EC_ec_pre_comp_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: EC_PRE_COMP
    signature: EC_PRE_COMP *EC_ec_pre_comp_dup(EC_PRE_COMP *pre)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:87,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:88,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:91,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:97,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:98,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:100,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pre
    argTypes:
    - EC_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: EC_ec_pre_comp_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - EC_POINT_free
    - OPENSSL_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EC_ec_pre_comp_free(EC_PRE_COMP *pre)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: EC_POINT_BN_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EC_POINT_BN_set_flags(P, flags)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:152,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:153,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:155,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:156,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:159,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:160,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:164,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:166,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:167,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:168,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:173,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:174,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:178,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:179,1
    - Dst: EC_POINT_BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:184,1
    - Dst: EC_POINT_BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:185,1
    - Dst: EC_POINT_BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:186,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:188,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:189,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:190,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:192,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:196,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:197,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:207,1
    - Dst: bn_get_top
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:208,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:209,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:210,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:211,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:215,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:216,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:220,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:222,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:222,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:227,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:228,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:233,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:234,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:237,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:238,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:239,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:246,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:247,1
    - Dst: bn_get_top
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:249,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:250,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:251,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:252,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:253,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:254,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:255,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:256,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:257,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:258,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:259,1
    - Dst: EC_POINT_make_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:264,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:265,1
    - Dst: ec_point_ladder_pre
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:270,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:271,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:346,1
    - Dst: EC_POINT_CSWAP
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:347,1
    - Dst: ec_point_ladder_step
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:350,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:351,1
    - Dst: EC_POINT_CSWAP
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:361,1
    - Dst: ec_point_ladder_post
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:365,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:366,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:373,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:374,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:375,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 119
    argCount: 5
    argNames:
    - group
    - r
    - scalar
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 378
    functionName: ec_scalar_mul_ladder
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - BN_consttime_swap
    - BN_copy
    - EC_POINT_is_at_infinity
    - EC_POINT_BN_set_flags
    - BN_set_flags
    - BN_is_bit_set
    - BN_mul
    - ec_point_ladder_pre
    - EC_POINT_copy
    - EC_POINT_set_to_infinity
    - ECerr
    - EC_POINT_clear_free
    - EC_POINT_CSWAP
    - BN_CTX_end
    - EC_POINT_make_affine
    - ec_point_ladder_post
    - bn_get_top
    - BN_CTX_get
    - BN_is_zero
    - BN_nnmod
    - BN_add
    - EC_POINT_free
    - ec_point_ladder_step
    - BN_CTX_start
    - BN_is_negative
    - BN_num_bits
    - EC_POINT_new
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int ec_scalar_mul_ladder(const EC_GROUP *group, EC_POINT *r,\n                         const
      BIGNUM *scalar, const EC_POINT *point,\n                         BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - c
    - ','
    - a
    - ','
    - b
    - ','
    - w
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: EC_POINT_CSWAP
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EC_POINT_CSWAP(c, a, b, w, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 395
    functionName: EC_window_bits_for_scalar_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EC_window_bits_for_scalar_size(b)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:431,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:431,1
    - Dst: ec_scalar_mul_ladder
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:446,1
    - Dst: ec_scalar_mul_ladder
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:456,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:461,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:463,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:471,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:479,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:491,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:505,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:506,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:508,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:509,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:516,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:528,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:528,1
    - Dst: EC_window_bits_for_scalar_size
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:529,1
    - Dst: bn_compute_wNAF
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:533,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:546,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:555,1
    - Dst: bn_compute_wNAF
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:563,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:598,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:599,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:613,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:614,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:626,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:628,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:629,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:632,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:637,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:638,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:645,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:655,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:657,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:667,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:674,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:678,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:690,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:693,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:698,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:701,1
    - Dst: EC_POINTs_make_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:708,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:715,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:732,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:741,1
    - Dst: ec_point_blind_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:752,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:753,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:759,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:769,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:773,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:780,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:781,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:782,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:787,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:789,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:793,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:795,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:797,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 252
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 403
    functionDepth: 5
    functionLinenumber: 403
    functionLinenumberEnd: 799
    functionName: ec_wNAF_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - ec_point_blind_coordinates
    - EC_POINT_add
    - EC_GROUP_get0_generator
    - OPENSSL_malloc
    - bn_compute_wNAF
    - OPENSSL_free
    - memcpy
    - EC_POINT_cmp
    - EC_POINT_copy
    - EC_POINT_set_to_infinity
    - ECerr
    - EC_POINT_clear_free
    - EC_POINT_dbl
    - EC_window_bits_for_scalar_size
    - EC_POINTs_make_affine
    - BN_is_zero
    - EC_POINT_free
    - ec_scalar_mul_ladder
    - BN_num_bits
    - EC_POINT_new
    - EC_POINT_invert
    linkageType: ''
    returnType: int
    signature: "int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,\n
      \               size_t num, const EC_POINT *points[], const BIGNUM *scalars[],\n
      \               BN_CTX *ctx)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:833,1
    - Dst: ec_pre_comp_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:834,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:837,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:839,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:844,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:849,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:851,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:854,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:855,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:859,1
    - Dst: EC_window_bits_for_scalar_size
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:868,1
    - Dst: EC_window_bits_for_scalar_size
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:870,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:881,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:883,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:890,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:891,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:896,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:897,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:898,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:902,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:909,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:912,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:919,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:930,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:934,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:937,1
    - Dst: EC_POINTs_make_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:943,1
    - Dst: SETPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:953,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:958,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:959,1
    - Dst: EC_ec_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:960,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:965,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:966,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:968,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:969,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 112
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 821
    functionDepth: 3
    functionLinenumber: 821
    functionLinenumberEnd: 971
    functionName: ec_wNAF_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - EC_POINT_add
    - EC_ec_pre_comp_free
    - EC_GROUP_get0_order
    - EC_GROUP_get0_generator
    - OPENSSL_malloc
    - OPENSSL_free
    - SETPRECOMP
    - EC_POINT_copy
    - ECerr
    - BN_CTX_new
    - BN_CTX_end
    - EC_POINT_dbl
    - EC_window_bits_for_scalar_size
    - BN_CTX_free
    - EC_POINTs_make_affine
    - BN_is_zero
    - EC_POINT_free
    - BN_CTX_start
    - ec_pre_comp_new
    - BN_num_bits
    - EC_POINT_new
    - EC_pre_comp_free
    linkageType: ''
    returnType: int
    signature: int ec_wNAF_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ec_mult.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 976
    functionName: ec_wNAF_have_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: int ec_wNAF_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:26,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:29,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:37,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:38,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:39,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:40,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:51,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:55,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:57,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:60,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:62,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:68,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:70,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:72,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:76,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:78,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:82,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:86,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:92,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:94,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:97,1
    - Dst: BN_mod_sqrt
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:101,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:102,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:104,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:105,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:106,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:107,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:110,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:115,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:116,1
    - Dst: BN_kronecker
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:119,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:124,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:130,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:134,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:137,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:138,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:143,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:149,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:150,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 112
    argCount: 5
    argNames:
    - group
    - point
    - x_
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 16
    functionDepth: 7
    functionLinenumber: 16
    functionLinenumberEnd: 152
    functionName: ec_GFp_simple_set_compressed_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c
    functionUses: 1
    functionsReached:
    - ERR_GET_REASON
    - ERR_GET_LIB
    - EC_GROUP*::meth::field_decode
    - EC_POINT_set_affine_coordinates
    - BN_kronecker
    - BN_mod_add_quick
    - ERR_clear_error
    - BN_mod_mul
    - EC_GROUP*::meth::field_mul
    - BN_mod_sqrt
    - ECerr
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - EC_GROUP*::meth::field_sqr
    - ERR_peek_last_error
    - BN_is_zero
    - BN_is_odd
    - BN_nnmod
    - BN_usub
    - BN_CTX_start
    - BN_mod_sqr
    - BN_mod_sub_quick
    - BN_CTX_new
    - BN_mod_lshift1_quick
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_set_compressed_coordinates(const EC_GROUP *group,\n
      \                                            EC_POINT *point,\n                                             const
      BIGNUM *x_, int y_bit,\n                                             BN_CTX
      *ctx)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:167,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:171,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:175,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:184,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:192,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:197,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:202,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:204,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:205,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:209,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:213,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:220,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:222,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:229,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:232,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:238,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:240,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:247,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:252,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:258,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:259,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:264,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:265,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 90
    argCount: 6
    argNames:
    - group
    - point
    - form
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 267
    functionName: ec_GFp_simple_point2oct
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c
    functionUses: 1
    functionsReached:
    - ECerr
    - BN_num_bytes
    - BN_CTX_start
    - EC_POINT_get_affine_coordinates
    - BN_CTX_end
    - BN_bn2bin
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    - BN_is_odd
    linkageType: ''
    returnType: size_t
    signature: "size_t ec_GFp_simple_point2oct(const EC_GROUP *group, const EC_POINT
      *point,\n                               point_conversion_form_t form,\n                               unsigned
      char *buf, size_t len, BN_CTX *ctx)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:280,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:289,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:293,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:299,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:303,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:306,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:312,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:317,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:322,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:323,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:324,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:328,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:330,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:331,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:336,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:339,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:341,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:342,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:346,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:347,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:356,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:363,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c:364,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 78
    argCount: 5
    argNames:
    - group
    - point
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 366
    functionName: ec_GFp_simple_oct2point
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c
    functionUses: 1
    functionsReached:
    - EC_POINT_set_to_infinity
    - ECerr
    - EC_POINT_set_affine_coordinates
    - BN_num_bytes
    - BN_CTX_start
    - BN_CTX_end
    - EC_POINT_set_compressed_coordinates
    - BN_bin2bn
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    - BN_ucmp
    - BN_is_odd
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_simple_oct2point(const EC_GROUP *group, EC_POINT *point,\n
      \                           const unsigned char *buf, size_t len, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 74
    functionName: EC_GFp_mont_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_mont_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_init
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: ec_GFp_mont_group_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: int ec_GFp_mont_group_init(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:88,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:90,1
    - Dst: ec_GFp_simple_group_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: ec_GFp_mont_group_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    - BN_free
    - ec_GFp_simple_group_finish
    linkageType: ''
    returnType: void
    signature: void ec_GFp_mont_group_finish(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:97,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:99,1
    - Dst: ec_GFp_simple_group_clear_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: ec_GFp_mont_group_clear_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_clear_finish
    - BN_MONT_CTX_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ec_GFp_mont_group_clear_finish(EC_GROUP *group)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:106,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:108,1
    - Dst: ec_GFp_simple_group_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:111,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:115,1
    - Dst: BN_MONT_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:118,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:122,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 133
    functionName: ec_GFp_mont_group_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_new
    - ec_GFp_simple_group_copy
    - BN_MONT_CTX_copy
    - BN_MONT_CTX_free
    - BN_dup
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int ec_GFp_mont_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:143,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:145,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:149,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:154,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:157,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:158,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:161,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:164,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:164,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:172,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:175,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:177,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:182,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:183,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:184,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 135
    functionDepth: 7
    functionLinenumber: 135
    functionLinenumberEnd: 186
    functionName: ec_GFp_mont_group_set_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_set_curve
    - ECerr
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - BN_new
    - BN_to_montgomery
    - BN_free
    - BN_value_one
    - BN_CTX_free
    - BN_CTX_new
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_mont_group_set_curve(EC_GROUP *group, const BIGNUM *p,\n
      \                               const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:192,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: ec_GFp_mont_field_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul_montgomery
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_mont_field_mul(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                          const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:203,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: ec_GFp_mont_field_sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul_montgomery
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_mont_field_sqr(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                          BN_CTX *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_secure_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:225,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:228,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:229,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:233,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:235,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:241,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:245,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:246,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:253,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:254,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 256
    functionName: ec_GFp_mont_field_inv
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_CTX_secure_new
    - BN_mod_exp_mont
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - BN_set_word
    - BN_sub
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_mont_field_inv(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                            BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:262,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: ec_GFp_mont_field_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_to_montgomery
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_mont_field_encode(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:273,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: ec_GFp_mont_field_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_from_montgomery
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_mont_field_decode(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:284,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - group
    - r
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: ec_GFp_mont_field_set_to_one
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_mont_field_set_to_one(const EC_GROUP *group, BIGNUM *r,\n
      \                                BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:22,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - group
    - point
    - form
    - ret
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: EC_POINT_point2bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_print.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BN_bin2bn
    - EC_POINT_point2buf
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *EC_POINT_point2bn(const EC_GROUP *group,\n                          const
      EC_POINT *point,\n                          point_conversion_form_t form,\n
      \                         BIGNUM *ret, BN_CTX *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:41,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:43,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:44,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:48,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:49,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:55,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:61,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:63,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:64,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - group
    - bn
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 70
    functionName: EC_POINT_bn2point
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_print.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ECerr
    - EC_POINT_clear_free
    - EC_POINT_oct2point
    - OPENSSL_free
    - BN_num_bytes
    - EC_POINT_new
    - BN_bn2binpad
    linkageType: ''
    returnType: EC_POINT
    signature: "EC_POINT *EC_POINT_bn2point(const EC_GROUP *group,\n                            const
      BIGNUM *bn, EC_POINT *point, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:83,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:88,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:90,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - group
    - point
    - form
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 105
    functionName: EC_POINT_point2hex
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_print.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - EC_POINT_point2buf
    linkageType: ''
    returnType: char
    signature: "char *EC_POINT_point2hex(const EC_GROUP *group,\n                         const
      EC_POINT *point,\n                         point_conversion_form_t form, BN_CTX
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:113,1
    - Dst: EC_POINT_bn2point
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:116,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_print.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - buf
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - char*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 121
    functionName: EC_POINT_hex2point
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_print.c
    functionUses: 0
    functionsReached:
    - EC_POINT_bn2point
    - BN_hex2bn
    - BN_clear_free
    linkageType: ''
    returnType: EC_POINT
    signature: "EC_POINT *EC_POINT_hex2point(const EC_GROUP *group,\n                             const
      char *buf, EC_POINT *point, BN_CTX *ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:25,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:27,1
    - Dst: EC_GROUP_check_discriminant
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:33,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:34,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:40,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:43,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:44,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:49,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:51,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:54,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:55,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:59,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:61,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:62,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:69,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_check.c:70,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 72
    functionName: EC_GROUP_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_check.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get0_order
    - EC_POINT_mul
    - ECerr
    - EC_POINT_free
    - EC_POINT_is_at_infinity
    - EC_POINT_is_on_curve
    - BN_CTX_free
    - EC_POINT_new
    - EC_GROUP_check_discriminant
    - BN_CTX_new
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3025,1
    - Dst: ec_list_element::meth
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3025,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3027,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3028,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3038,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3039,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3040,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3041,1
    - Dst: ec_list_element::meth
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3046,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3047,1
    - Dst: EC_GROUP*::meth::group_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3048,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3049,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3053,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3054,1
    - Dst: if
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3062,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3062,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3063,1
    - Dst: EC_GROUP_set_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3069,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3071,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3072,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3076,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3077,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3078,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3081,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3082,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3085,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3086,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3087,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3090,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3091,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3095,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3096,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3103,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3106,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3107,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3108,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3109,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3110,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3111,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3112,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3113,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 1
    argNames:
    - curve
    argTypes:
    - ec_list_element
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3115
      start: 3010
    functionDepth: 4
    functionLinenumber: 3010
    functionLinenumberEnd: 3115
    functionName: ec_group_new_from_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates
    - EC_GROUP*::meth::group_set_curve
    - BN_bin2bn
    - BN_free
    - EC_GROUP_set_seed
    - ec_list_element::meth
    - ECerr
    - BN_CTX_new
    - BN_CTX_free
    - EC_GROUP_free
    - BN_set_word
    - EC_GROUP_new
    - EC_POINT_free
    - EC_GROUP_set_generator
    - EC_GROUP_new_curve_GF2m
    - EC_GROUP_set_curve_name
    - if
    - EC_POINT_new
    - EC_GROUP_new_curve_GFp
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *ec_group_new_from_data(const ec_list_element curve)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec_group_new_from_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3127,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3137
      start: 3117
    functionDepth: 5
    functionLinenumber: 3117
    functionLinenumberEnd: 3137
    functionName: EC_GROUP_new_by_curve_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    functionUses: 4
    functionsReached:
    - ec_group_new_from_data
    - ECerr
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_new_by_curve_name(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - nitems
    argTypes:
    - EC_builtin_curve*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3139
    functionDepth: 0
    functionLinenumber: 3139
    functionLinenumberEnd: 3154
    functionName: EC_get_builtin_curves
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3189
      start: 3181
    functionDepth: 1
    functionLinenumber: 3181
    functionLinenumberEnd: 3189
    functionName: EC_curve_nid2nist
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *EC_curve_nid2nist(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3194,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3191
    functionDepth: 1
    functionLinenumber: 3191
    functionLinenumberEnd: 3199
    functionName: EC_curve_nist2nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    functionUses: 2
    functionsReached:
    - strcmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int EC_curve_nist2nid(const char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3223,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3227,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3228,1
    - Dst: EC_GROUP_get_seed_len
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3229,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3230,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3231,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3233,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3241,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3242,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3247,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3253,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3261,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3262,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3264,1
    - Dst: EC_GROUP_get_order
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3266,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3275,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3292,1
    - Dst: BN_is_word
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3293,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3297,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3299,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3308,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec_curve.c:3309,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 47
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3210
    functionDepth: 3
    functionLinenumber: 3210
    functionLinenumberEnd: 3311
    functionName: ec_curve_nid_from_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get_curve
    - EC_GROUP_get_curve_name
    - BN_is_word
    - BN_bn2binpad
    - EC_GROUP_get0_generator
    - OPENSSL_malloc
    - memcmp
    - EC_METHOD_get_field_type
    - OPENSSL_free
    - EC_POINT_get_affine_coordinates
    - EC_GROUP_get_seed_len
    - BN_CTX_end
    - BN_CTX_get
    - BN_is_zero
    - EC_GROUP_get0_cofactor
    - BN_num_bytes
    - BN_CTX_start
    - EC_GROUP_get_order
    - EC_GROUP_get0_seed
    linkageType: ''
    returnType: int
    signature: int ec_curve_nid_from_params(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:82,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:82,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:83,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:83,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:83,1
    - Dst: felem_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:85,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:85,1
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:87,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:87,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:88,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:88,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:88,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:88,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:90,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:90,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:90,1
    - Dst: felem_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:97,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:97,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:97,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:105,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:105,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:105,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:105,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:107,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:107,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:107,1
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:109,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:109,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:114,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:114,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:114,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:114,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:119,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:119,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:119,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:120,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:120,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:120,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:120,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:121,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:121,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:121,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:121,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:122,1
    - Dst: Y
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:122,1
    - Dst: Y
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:122,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:122,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:123,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:123,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:123,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:124,1
    - Dst: Y
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:124,1
    - Dst: Y
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:124,1
    - Dst: felem_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:125,1
    - Dst: Z
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:125,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:131,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:131,1
    - Dst: tmp_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - num
    - point_array
    - felem_size
    - tmp_felems
    argTypes:
    - size_t
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 134
    functionName: ec_GFp_nistp_points_make_affine_internal
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c
    functionUses: 2
    functionsReached:
    - felem_square
    - felem_assign
    - felem_mul
    - felem_contract
    - felem_inv
    - Z
    - felem_is_zero
    - X
    - tmp_felem
    - Y
    - felem_one
    linkageType: ''
    returnType: void
    signature: "void ec_GFp_nistp_points_make_affine_internal(size_t num, void *point_array,\n
      \                                             size_t felem_size,\n                                              void
      *tmp_felems,\n                                              void (*felem_one)
      (void *out),\n                                              int (*felem_is_zero)
      (const void\n                                                                    *in),\n
      \                                             void (*felem_assign) (void *out,\n
      \                                                                   const void\n
      \                                                                   *in),\n
      \                                             void (*felem_square) (void *out,\n
      \                                                                   const void\n
      \                                                                   *in),\n
      \                                             void (*felem_mul) (void *out,\n
      \                                                                const void\n
      \                                                                *in1,\n                                                                 const
      void\n                                                                 *in2),\n
      \                                             void (*felem_inv) (void *out,\n
      \                                                                const void\n
      \                                                                *in),\n                                              void
      (*felem_contract) (void\n                                                                      *out,\n
      \                                                                     const\n
      \                                                                     void\n
      \                                                                     *in))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: tmp_felem
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmp_felem(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: X
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: Y
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Y(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: Z
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Z(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - sign
    - digit
    - in
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 222
    functionName: ec_GFp_nistp_recode_scalar_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ec_GFp_nistp_recode_scalar_bits(unsigned char *sign,\n                                     unsigned
      char *digit, unsigned char in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ISX448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISX448(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: IS25519
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS25519(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: KEYLENID
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYLENID(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: KEYLEN
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYLEN(p)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:57,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:59,1
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:64,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:65,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:70,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:72,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:78,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:80,1
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:80,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:82,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:86,1
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:86,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:87,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:100,1
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:100,1
    - Dst: X25519_public_from_private
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:104,1
    - Dst: ED25519_public_from_private
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:107,1
    - Dst: X448_public_from_private
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:110,1
    - Dst: ED448_public_from_private
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:113,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:121,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 6
    argNames:
    - pkey
    - id
    - palg
    - p
    - plen
    - op
    argTypes:
    - EVP_PKEY*
    - int
    - X509_ALGOR*
    - unsigned char*
    - int
    - ecx_key_op_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 123
    functionName: ecx_key_op
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ED25519_public_from_private
    - RAND_priv_bytes
    - ECerr
    - X25519_public_from_private
    - X448_public_from_private
    - ED448_public_from_private
    - OPENSSL_secure_malloc
    - OPENSSL_free
    - memcpy
    - OPENSSL_secure_free
    - KEYLENID
    - X509_ALGOR_get0
    - OPENSSL_zalloc
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: "int ecx_key_op(EVP_PKEY *pkey, int id, const X509_ALGOR *palg,\n                      const
      unsigned char *p, int plen, ecx_key_op_t op)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:131,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:135,1
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:135,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:137,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:141,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:141,1
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:142,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:143,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 148
    functionName: ecx_pub_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - KEYLEN
    - ECerr
    - OPENSSL_free
    - X509_PUBKEY_set0_param
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int ecx_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:156,1
    - Dst: ecx_key_op
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 160
    functionName: ecx_pub_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_op
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: int
    signature: int ecx_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:170,1
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: ecx_pub_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - KEYLEN
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: int ecx_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:181,1
    - Dst: d2i_ASN1_OCTET_STRING
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:184,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:189,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:190,1
    - Dst: ecx_key_op
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:193,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: ecx_priv_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_length
    - ASN1_STRING_clear_free
    - d2i_ASN1_OCTET_STRING
    - PKCS8_pkey_get0
    - ecx_key_op
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: int ecx_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:206,1
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:211,1
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:214,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:216,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:220,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:220,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:222,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 228
    functionName: ecx_priv_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - KEYLEN
    - ECerr
    - PKCS8_pkey_set0
    - i2d_ASN1_OCTET_STRING
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: int ecx_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: ecx_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - KEYLEN
    linkageType: ''
    returnType: int
    signature: int ecx_size(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS25519
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:237,1
    - Dst: ISX448
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: ecx_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ISX448
    - IS25519
    linkageType: ''
    returnType: int
    signature: int ecx_bits(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS25519
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: ecx_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - IS25519
    linkageType: ''
    returnType: int
    signature: int ecx_security_bits(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:258,1
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:258,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: ecx_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - KEYLEN
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void ecx_free(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: ecx_cmp_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ecx_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:272,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:276,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:280,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:282,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:284,1
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:284,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:289,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:293,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:296,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:299,1
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:299,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 5
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    - op
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    - ecx_key_op_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 303
    functionName: ecx_key_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - KEYLEN
    - ASN1_buf_print
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int ecx_key_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx, ecx_key_op_t op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_print
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: ecx_priv_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_print
    linkageType: ''
    returnType: int
    signature: "int ecx_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_print
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: ecx_pub_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_print
    linkageType: ''
    returnType: int
    signature: "int ecx_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_op
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:322,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:329,1
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:329,1
    - Dst: KEYLEN
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 6
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: ecx_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_op
    - KEYLEN
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int ecx_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 353
    functionName: ecd_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ecd_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_op
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 6
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: ecx_set_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_op
    linkageType: ''
    returnType: int
    signature: "int ecx_set_priv_key(EVP_PKEY *pkey, const unsigned char *priv,\n
      \                           size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_op
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pkey
    - pub
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 6
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: ecx_set_pub_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_op
    linkageType: ''
    returnType: int
    signature: int ecx_set_pub_key(EVP_PKEY *pkey, const unsigned char *pub, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:374,1
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:380,1
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:383,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 387
    functionName: ecx_get_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - KEYLENID
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ecx_get_priv_key(const EVP_PKEY *pkey, unsigned char *priv,\n
      \                           size_t *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:395,1
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:400,1
    - Dst: KEYLENID
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:403,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - pub
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 407
    functionName: ecx_get_pub_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - KEYLENID
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ecx_get_pub_key(const EVP_PKEY *pkey, unsigned char *pub,\n                           size_t
      *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: ecd_size25519
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ecd_size25519(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: ecd_size448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ecd_size448(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:514,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:515,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:517,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:521,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - sigalg
    - str
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 525
    functionName: ecd_item_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ECerr
    - X509_ALGOR_get0
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: "int ecd_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,\n
      \                          X509_ALGOR *sigalg, ASN1_BIT_STRING *str,\n                           EVP_PKEY
      *pkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:532,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:532,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:534,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - alg1
    - alg2
    - str
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 537
    functionName: ecd_item_sign25519
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set0
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "int ecd_item_sign25519(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void
      *asn,\n                              X509_ALGOR *alg1, X509_ALGOR *alg2,\n                              ASN1_BIT_STRING
      *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_INFO_set
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - siginf
    - alg
    - sig
    argTypes:
    - X509_SIG_INFO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: ecd_sig_info_set25519
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - X509_SIG_INFO_set
    linkageType: ''
    returnType: int
    signature: "int ecd_sig_info_set25519(X509_SIG_INFO *siginf, const X509_ALGOR
      *alg,\n                                 const ASN1_STRING *sig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:552,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:552,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:554,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - alg1
    - alg2
    - str
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 557
    functionName: ecd_item_sign448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set0
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "int ecd_item_sign448(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,\n
      \                           X509_ALGOR *alg1, X509_ALGOR *alg2,\n                            ASN1_BIT_STRING
      *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_INFO_set
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - siginf
    - alg
    - sig
    argTypes:
    - X509_SIG_INFO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 565
    functionName: ecd_sig_info_set448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - X509_SIG_INFO_set
    linkageType: ''
    returnType: int
    signature: "int ecd_sig_info_set448(X509_SIG_INFO *siginf, const X509_ALGOR *alg,\n
      \                              const ASN1_STRING *sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_op
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 652
    functionDepth: 6
    functionLinenumber: 652
    functionLinenumberEnd: 655
    functionName: pkey_ecx_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_op
    linkageType: ''
    returnType: int
    signature: int pkey_ecx_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:665,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:671,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:675,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - key
    - keylen
    - privkey
    - pubkey
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char**
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 682
    functionName: validate_ecx_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int validate_ecx_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                                          size_t
      *keylen,\n                                          const unsigned char **privkey,\n
      \                                         const unsigned char **pubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_ecx_derive
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:689,1
    - Dst: X25519
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 684
    functionDepth: 5
    functionLinenumber: 684
    functionLinenumberEnd: 695
    functionName: pkey_ecx_derive25519
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - validate_ecx_derive
    - X25519
    linkageType: ''
    returnType: int
    signature: "int pkey_ecx_derive25519(EVP_PKEY_CTX *ctx, unsigned char *key,\n
      \                               size_t *keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_ecx_derive
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:702,1
    - Dst: X448
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 708
    functionName: pkey_ecx_derive448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - validate_ecx_derive
    - X448
    linkageType: ''
    returnType: int
    signature: "int pkey_ecx_derive448(EVP_PKEY_CTX *ctx, unsigned char *key,\n                              size_t
      *keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 716
    functionName: pkey_ecx_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pkey_ecx_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:742,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:749,1
    - Dst: ED25519_sign
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 738
    functionDepth: 5
    functionLinenumber: 738
    functionLinenumberEnd: 757
    functionName: pkey_ecd_digestsign25519
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_pkey_ctx
    - ECerr
    - ED25519_sign
    linkageType: ''
    returnType: int
    signature: "int pkey_ecd_digestsign25519(EVP_MD_CTX *ctx, unsigned char *sig,\n
      \                                   size_t *siglen, const unsigned char *tbs,\n
      \                                   size_t tbslen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:763,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:770,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 779
    functionName: pkey_ecd_digestsign448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ED448_sign
    - EVP_MD_CTX_pkey_ctx
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int pkey_ecd_digestsign448(EVP_MD_CTX *ctx, unsigned char *sig,\n
      \                                 size_t *siglen, const unsigned char *tbs,\n
      \                                 size_t tbslen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:785,1
    - Dst: ED25519_verify
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 781
    functionDepth: 5
    functionLinenumber: 781
    functionLinenumberEnd: 791
    functionName: pkey_ecd_digestverify25519
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ED25519_verify
    - EVP_MD_CTX_pkey_ctx
    linkageType: ''
    returnType: int
    signature: "int pkey_ecd_digestverify25519(EVP_MD_CTX *ctx, const unsigned char
      *sig,\n                                      size_t siglen, const unsigned char
      *tbs,\n                                      size_t tbslen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:797,1
    - Dst: ED448_verify
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 803
    functionName: pkey_ecd_digestverify448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ED448_verify
    - EVP_MD_CTX_pkey_ctx
    linkageType: ''
    returnType: int
    signature: "int pkey_ecd_digestverify448(EVP_MD_CTX *ctx, const unsigned char
      *sig,\n                                    size_t siglen, const unsigned char
      *tbs,\n                                    size_t tbslen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_md_null
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:810,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c:812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 819
    functionName: pkey_ecd_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EVP_md_null
    linkageType: ''
    returnType: int
    signature: int pkey_ecd_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: bin66_to_felem
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bin66_to_felem(felem out, const u8 in[66])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - u8[]
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 170
    functionName: felem_to_bin66
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void felem_to_bin66(u8 out[66], const felem in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:178,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:179,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:182,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:184,1
    - Dst: bin66_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - bn
    argTypes:
    - felem
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 189
    functionName: BN_to_felem
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 6
    functionsReached:
    - BN_bn2lebinpad
    - BN_is_negative
    - bin66_to_felem
    - ECerr
    linkageType: ''
    returnType: int
    signature: int BN_to_felem(felem out, const BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_to_bin66
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:195,1
    - Dst: BN_lebin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM*
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: felem_to_BN
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached:
    - felem_to_bin66
    - BN_lebin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *felem_to_BN(BIGNUM *out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: felem_one
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_one(felem out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: felem_assign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_assign(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: felem_sum64
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_sum64(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - out
    - in
    - scalar
    argTypes:
    - felem
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 256
    functionName: felem_scalar
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar(felem out, const felem in, limb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: felem_scalar64
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar64(felem out, limb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - largefelem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 284
    functionName: felem_scalar128
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar128(largefelem out, limb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: felem_neg
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_neg(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: felem_diff64
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff64(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 365
    functionName: felem_diff_128_64
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff_128_64(largefelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - largefelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: felem_diff128
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff128(largefelem out, const largefelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:405,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 476
    functionName: felem_square
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 12
    functionsReached:
    - felem_scalar
    linkageType: ''
    returnType: void
    signature: void felem_square(largefelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - largefelem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 590
    functionName: felem_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 13
    functionsReached:
    - felem_scalar
    linkageType: ''
    returnType: void
    signature: void felem_mul(largefelem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - largefelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 674
    functionName: felem_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_reduce(felem out, const largefelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:679,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 681
    functionName: felem_square_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_square
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_square_reduce(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:686,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 688
    functionName: felem_mul_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_mul
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_mul_reduce(felem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:704,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:705,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:706,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:707,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:708,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:709,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:710,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:711,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:712,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:713,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:714,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:716,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:717,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:718,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:719,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:720,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:721,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:723,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:724,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:725,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:726,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:727,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:728,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:729,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:730,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:731,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:732,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:733,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:734,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:735,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:736,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:737,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:738,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:739,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:742,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:743,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:745,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:746,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:747,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:750,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:751,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:753,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:754,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:755,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:758,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:759,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:761,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:762,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:763,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:766,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:767,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:769,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:770,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:771,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:774,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:775,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:777,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:778,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:779,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:782,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:783,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:785,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:786,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:789,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:790,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:792,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:793,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:794,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:795,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 84
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 796
    functionName: felem_inv
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached:
    - felem_square
    - felem_assign
    - felem_mul
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_inv(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 1
    argNames:
    - in
    argTypes:
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 877
    functionName: felem_is_zero
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 5
    functionsReached:
    - felem_assign
    linkageType: ''
    returnType: limb
    signature: limb felem_is_zero(const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 882
    functionName: felem_is_zero_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_is_zero
    linkageType: ''
    returnType: int
    signature: int felem_is_zero_int(const void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 1016
    functionName: felem_contract
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 9
    functionsReached:
    - felem_assign
    linkageType: ''
    returnType: void
    signature: void felem_contract(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1041,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1042,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1045,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1046,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1049,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1050,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1053,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1054,1
    - Dst: felem_diff64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1057,1
    - Dst: felem_sum64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1059,1
    - Dst: felem_scalar64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1061,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1063,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1071,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1074,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1078,1
    - Dst: felem_scalar64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1079,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1081,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1083,1
    - Dst: felem_sum64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1086,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1088,1
    - Dst: felem_sum64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1089,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1091,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1095,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1097,1
    - Dst: felem_scalar64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1100,1
    - Dst: felem_diff64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1102,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1104,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1111,1
    - Dst: felem_scalar128
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1116,1
    - Dst: felem_diff128
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1122,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 6
    argNames:
    - x_out
    - y_out
    - z_out
    - x_in
    - y_in
    - z_in
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1130
    functionName: point_double
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 7
    functionsReached:
    - felem_square
    - felem_assign
    - felem_diff128
    - felem_scalar64
    - felem_reduce
    - felem_mul
    - felem_diff_128_64
    - felem_sum64
    - felem_scalar128
    - felem_diff64
    linkageType: ''
    returnType: void
    signature: "void point_double(felem x_out, felem y_out, felem z_out,\n             const
      felem x_in, const felem y_in, const felem z_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1140
    functionName: copy_conditional
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_conditional(felem out, const felem in, limb mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1163,1
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1164,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1167,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1168,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1172,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1173,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1176,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1177,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1180,1
    - Dst: felem_sum64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1181,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1185,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1187,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1189,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1191,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1194,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1195,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1198,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1199,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1206,1
    - Dst: felem_scalar
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1209,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1212,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1216,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1220,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1222,1
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1224,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1227,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1228,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1231,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1232,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1235,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1239,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1241,1
    - Dst: felem_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1242,1
    - Dst: felem_scalar64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1243,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1280,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1285,1
    - Dst: felem_scalar64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1286,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1288,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1290,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1293,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1294,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1297,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1298,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1301,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1303,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1305,1
    - Dst: felem_scalar64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1306,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1308,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1310,1
    - Dst: felem_diff64
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1313,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1317,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1319,1
    - Dst: felem_scalar128
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1321,1
    - Dst: felem_diff128
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1323,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1329,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1331,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1332,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1333,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1334,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1335,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1336,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1337,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1338,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 72
    argCount: 10
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - mixed
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - int
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1340
    functionName: point_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 5
    functionsReached:
    - felem_square
    - felem_assign
    - felem_diff128
    - felem_scalar64
    - felem_reduce
    - felem_mul
    - felem_diff_128_64
    - felem_sum64
    - felem_is_zero
    - felem_scalar128
    - felem_diff64
    - copy_conditional
    - felem_scalar
    - point_double
    linkageType: ''
    returnType: void
    signature: "void point_add(felem x3, felem y3, felem z3,\n                      const
      felem x1, const felem y1, const felem z1,\n                      const int mixed,
      const felem x2, const felem y2,\n                      const felem z2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - idx
    - size
    - pre_comp
    - out
    argTypes:
    - limb
    - unsigned int
    - felem[][]
    - felem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1512
    functionName: select_point
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void select_point(const limb idx, unsigned int size,\n                         const
      felem pre_comp[][3], felem out[3])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in
    - i
    argTypes:
    - felem_bytearray
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1520
    functionName: get_bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char get_bit(const felem_bytearray in, int i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1542,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1554,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1558,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1560,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1561,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1562,1
    - Dst: select_point
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1565,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1568,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1571,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1580,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1581,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1582,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1583,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1584,1
    - Dst: get_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1585,1
    - Dst: ec_GFp_nistp_recode_scalar_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1586,1
    - Dst: select_point
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1591,1
    - Dst: felem_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1592,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1594,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1597,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1601,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1607,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1608,1
    - Dst: felem_assign
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1609,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 9
    argNames:
    - x_out
    - y_out
    - z_out
    - scalars
    - num_points
    - g_scalar
    - mixed
    - pre_comp
    - g_pre_comp
    argTypes:
    - felem
    - felem
    - felem
    - felem_bytearray[]
    - unsigned
    - u8*
    - int
    - felem[][][]
    - felem[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1610
    functionName: batch_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached:
    - felem_assign
    - ec_GFp_nistp_recode_scalar_bits
    - felem_neg
    - select_point
    - memcpy
    - point_add
    - memset
    - copy_conditional
    - point_double
    - get_bit
    linkageType: ''
    returnType: void
    signature: "void batch_mul(felem x_out, felem y_out, felem z_out,\n                      const
      felem_bytearray scalars[],\n                      const unsigned num_points,
      const u8 *g_scalar,\n                      const int mixed, const felem pre_comp[][17][3],\n
      \                     const felem g_pre_comp[16][3])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1680
    functionName: EC_GFp_nistp521_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nistp521_method(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1689,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1692,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1698,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1700,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1687
    functionDepth: 1
    functionLinenumber: 1687
    functionLinenumberEnd: 1705
    functionName: nistp521_pre_comp_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ECerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTP521_PRE_COMP
    signature: NISTP521_PRE_COMP *nistp521_pre_comp_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP521_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1707
    functionDepth: 1
    functionLinenumber: 1707
    functionLinenumberEnd: 1713
    functionName: EC_nistp521_pre_comp_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: NISTP521_PRE_COMP
    signature: NISTP521_PRE_COMP *EC_nistp521_pre_comp_dup(NISTP521_PRE_COMP *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1722,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1723,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1726,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1728,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP521_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1715
    functionDepth: 1
    functionLinenumber: 1715
    functionLinenumberEnd: 1730
    functionName: EC_nistp521_pre_comp_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EC_nistp521_pre_comp_free(NISTP521_PRE_COMP *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_init
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1737
    functionDepth: 4
    functionLinenumber: 1737
    functionLinenumberEnd: 1743
    functionName: ec_GFp_nistp521_group_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nistp521_group_init(EC_GROUP *group)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1754,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1756,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1757,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1758,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1759,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1762,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1763,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1764,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1765,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1765,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1765,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1766,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1771,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1773,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1774,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1745
    functionDepth: 6
    functionLinenumber: 1745
    functionLinenumberEnd: 1776
    functionName: ec_GFp_nistp521_group_set_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_set_curve
    - ECerr
    - BN_cmp
    - BN_CTX_start
    - BN_CTX_end
    - BN_bin2bn
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nistp521_group_set_curve(EC_GROUP *group, const BIGNUM
      *p,\n                                    const BIGNUM *a, const BIGNUM *b,\n
      \                                   BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1790,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1791,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1795,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1795,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1796,1
    - Dst: felem_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1798,1
    - Dst: felem_square
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1799,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1800,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1801,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1802,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1803,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1805,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1806,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1811,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1812,1
    - Dst: felem_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1813,1
    - Dst: felem_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1814,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1815,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1817,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1818,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1782
    functionDepth: 1
    functionLinenumber: 1782
    functionLinenumberEnd: 1824
    functionName: ec_GFp_nistp521_point_get_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_square
    - ECerr
    - felem_reduce
    - felem_mul
    - felem_contract
    - felem_inv
    - EC_POINT_is_at_infinity
    - BN_to_felem
    - felem_to_BN
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nistp521_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                                const EC_POINT *point,\n                                                 BIGNUM
      *x, BIGNUM *y,\n                                                 BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_nistp_points_make_affine_internal
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - points
    - tmp_felems
    argTypes:
    - size_t
    - felem[][]
    - felem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1827
    functionDepth: 2
    functionLinenumber: 1827
    functionLinenumberEnd: 1854
    functionName: make_points_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached:
    - ec_GFp_nistp_points_make_affine_internal
    linkageType: ''
    returnType: void
    signature: "void make_points_affine(size_t num, felem points[][3],\n                               felem
      tmp_felems[])"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1871,1
    - Dst: felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1879,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1884,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1885,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1886,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1887,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1888,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1900,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1904,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1905,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1906,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1907,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1910,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1914,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1933,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1934,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1937,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1940,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1954,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1963,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1964,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1969,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1970,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1973,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1976,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1980,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1984,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1985,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1986,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1988,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1989,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1990,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:1993,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2000,1
    - Dst: make_points_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2009,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2014,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2016,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2016,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2021,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2022,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2025,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2027,1
    - Dst: batch_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2030,1
    - Dst: batch_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2037,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2042,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2043,1
    - Dst: felem_contract
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2044,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2045,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2045,1
    - Dst: felem_to_BN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2046,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2047,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2050,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2053,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2054,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2055,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2056,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2057,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 120
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 1860
    functionDepth: 3
    functionLinenumber: 1860
    functionLinenumberEnd: 2059
    functionName: ec_GFp_nistp521_points_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_contract
    - felem
    - BN_bn2lebinpad
    - EC_GROUP_get0_generator
    - OPENSSL_malloc
    - OPENSSL_free
    - memcpy
    - felem_to_BN
    - EC_POINT_cmp
    - OPENSSL_zalloc
    - ECerr
    - BN_CTX_end
    - BN_to_felem
    - EC_POINT_set_Jprojective_coordinates_GFp
    - BN_CTX_get
    - point_double
    - BN_nnmod
    - EC_POINT_free
    - BN_CTX_start
    - make_points_affine
    - BN_is_negative
    - point_add
    - memset
    - BN_num_bits
    - EC_POINT_new
    - batch_mul
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_nistp521_points_mul(const EC_GROUP *group, EC_POINT *r,\n
      \                              const BIGNUM *scalar, size_t num,\n                               const
      EC_POINT *points[],\n                               const BIGNUM *scalars[],
      BN_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2072,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2074,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2076,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2077,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2078,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2084,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2087,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2088,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2089,1
    - Dst: nistp521_pre_comp_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2091,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2096,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2097,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2100,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2101,1
    - Dst: BN_to_felem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2102,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2106,1
    - Dst: point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2110,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2119,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2122,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2128,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2134,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2140,1
    - Dst: point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2147,1
    - Dst: make_points_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2154,1
    - Dst: SETPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2157,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2161,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2162,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2163,1
    - Dst: EC_nistp521_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2164,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2061
    functionDepth: 4
    functionLinenumber: 2061
    functionLinenumberEnd: 2166
    functionName: ec_GFp_nistp521_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - EC_nistp521_pre_comp_free
    - EC_POINT_set_affine_coordinates
    - memcpy
    - SETPRECOMP
    - EC_POINT_cmp
    - BN_bin2bn
    - BN_CTX_new
    - BN_CTX_end
    - BN_to_felem
    - BN_CTX_free
    - BN_CTX_get
    - nistp521_pre_comp_new
    - point_double
    - EC_POINT_free
    - BN_CTX_start
    - make_points_affine
    - memset
    - point_add
    - EC_POINT_new
    - EC_pre_comp_free
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nistp521_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c:2170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2168
    functionDepth: 1
    functionLinenumber: 2168
    functionLinenumberEnd: 2171
    functionName: ec_GFp_nistp521_have_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: int ec_GFp_nistp521_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::verify_sig
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_vrf.c:24,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_vrf.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - eckey
    argTypes:
    - unsigned char*
    - int
    - ECDSA_SIG*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: ECDSA_do_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_vrf.c
    functionUses: 1
    functionsReached:
    - EC_KEY*::meth::verify_sig
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,\n                    const
      ECDSA_SIG *sig, EC_KEY *eckey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::verify
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_vrf.c:39,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdsa_vrf.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - type
    - dgst
    - dgst_len
    - sigbuf
    - sig_len
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: ECDSA_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdsa_vrf.c
    functionUses: 1
    functionsReached:
    - EC_KEY*::meth::verify
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ECDSA_verify(int type, const unsigned char *dgst, int dgst_len,\n
      \                const unsigned char *sigbuf, int sig_len, EC_KEY *eckey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: TOBN
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOBN(hi,lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: TOBN
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOBN(hi,lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: ALIGNPTR
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGNPTR(p,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: _booth_recode_w5
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _booth_recode_w5(unsigned int in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: _booth_recode_w7
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _booth_recode_w7(unsigned int in)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - dst
    - src
    - move
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 187
    functionName: copy_conditional
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void copy_conditional(BN_ULONG dst[P256_LIMBS],\n                             const
      BN_ULONG src[P256_LIMBS], BN_ULONG move)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: is_zero
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 119
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG is_zero(BN_ULONG in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: is_equal
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - is_zero
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG is_equal(const BN_ULONG a[P256_LIMBS],\n                         const
      BN_ULONG b[P256_LIMBS])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_get_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:219,1
    - Dst: bn_get_top
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:221,1
    - Dst: is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - z
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 239
    functionName: is_one
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 14
    functionsReached:
    - bn_get_words
    - is_zero
    - bn_get_top
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG is_one(const BIGNUM *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:275,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:277,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:279,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:281,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:282,1
    - Dst: ecp_nistz256_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:284,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:285,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:287,1
    - Dst: ecp_nistz256_div_by_2
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:288,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:290,1
    - Dst: ecp_nistz256_mul_by_3
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:291,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:293,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:294,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:296,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:298,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:299,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:301,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - P256_POINT*
    - P256_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 303
    functionName: ecp_nistz256_point_double
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_sqr_mont
    - ecp_nistz256_div_by_2
    - ecp_nistz256_mul_mont
    - ecp_nistz256_add
    - ecp_nistz256_mul_by_3
    - ecp_nistz256_sub
    - ecp_nistz256_mul_by_2
    linkageType: ''
    returnType: void
    signature: void ecp_nistz256_point_double(P256_POINT *r, const P256_POINT *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:343,1
    - Dst: is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:344,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:346,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:347,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:349,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:350,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:352,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:353,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:354,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:356,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:357,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:358,1
    - Dst: is_equal
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:394,1
    - Dst: is_equal
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:394,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:400,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:404,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:405,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:406,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:407,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:408,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:410,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:411,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:413,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:414,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:416,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:418,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:419,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:420,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:422,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:423,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:424,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:426,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:427,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:428,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:430,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:431,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - P256_POINT*
    - P256_POINT*
    - P256_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 433
    functionName: ecp_nistz256_point_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_sqr_mont
    - ecp_nistz256_mul_mont
    - is_zero
    - memcpy
    - ecp_nistz256_point_double
    - ecp_nistz256_sub
    - ecp_nistz256_mul_by_2
    - copy_conditional
    - is_equal
    linkageType: ''
    returnType: void
    signature: "void ecp_nistz256_point_add(P256_POINT *r,\n                                   const
      P256_POINT *a, const P256_POINT *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:477,1
    - Dst: is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:478,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:480,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:482,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:483,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:485,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:487,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:489,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:490,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:492,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:493,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:494,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:496,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:497,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:499,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:500,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:501,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:503,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:504,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:505,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:507,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:508,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:510,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:511,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:513,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:514,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:516,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:517,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - P256_POINT*
    - P256_POINT*
    - P256_POINT_AFFINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 519
    functionName: ecp_nistz256_point_add_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_sqr_mont
    - ecp_nistz256_mul_mont
    - is_zero
    - memcpy
    - ecp_nistz256_sub
    - ecp_nistz256_mul_by_2
    - copy_conditional
    linkageType: ''
    returnType: void
    signature: "void ecp_nistz256_point_add_affine(P256_POINT *r,\n                                          const
      P256_POINT *a,\n                                          const P256_POINT_AFFINE
      *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:538,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:539,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:541,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:542,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:543,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:545,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:546,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:547,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:548,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:549,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:551,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:553,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:554,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:556,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:558,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:559,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:561,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:563,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:564,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:567,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:568,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:571,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:572,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:575,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:576,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:579,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:580,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:582,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:583,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:584,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:585,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:586,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:588,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:589,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:590,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:592,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:593,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:594,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:596,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - r
    - in
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 597
    functionName: ecp_nistz256_mod_inverse
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_mul_mont
    - ecp_nistz256_sqr_mont
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ecp_nistz256_mod_inverse(BN_ULONG r[P256_LIMBS],\n                                     const
      BN_ULONG in[P256_LIMBS])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_copy_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BN_ULONG[]
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: ecp_nistz256_bignum_to_field_elem
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - bn_copy_words
    linkageType: ''
    returnType: __owur
    signature: "__owur ecp_nistz256_bignum_to_field_elem(BN_ULONG out[P256_LIMBS],\n
      \                                                   const BIGNUM *in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: P256_POINT
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:625,1
    - Dst: OPENSSL_MALLOC_MAX_NELEMS
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:628,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:630,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:632,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:633,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:634,1
    - Dst: ALIGNPTR
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:638,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:645,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:645,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:648,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:650,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:651,1
    - Dst: bn_get_top
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:658,1
    - Dst: bn_get_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:659,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:676,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:677,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:678,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:679,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:690,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:691,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:692,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:693,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:694,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:695,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:696,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:697,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:698,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:699,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:700,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:701,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:702,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:703,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:704,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:705,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:706,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:707,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:708,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:709,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:710,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:711,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:712,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:713,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:714,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:715,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:716,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:717,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:718,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:719,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:720,1
    - Dst: ecp_nistz256_gather_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:732,1
    - Dst: _booth_recode_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:732,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:733,1
    - Dst: _booth_recode_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:742,1
    - Dst: ecp_nistz256_gather_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:744,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:746,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:747,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:749,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:754,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:755,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:756,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:757,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:758,1
    - Dst: _booth_recode_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:766,1
    - Dst: ecp_nistz256_gather_w5
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:768,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:770,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:771,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:773,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:778,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:779,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:780,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 112
    argCount: 6
    argNames:
    - group
    - r
    - scalar
    - point
    - num
    - ctx
    argTypes:
    - EC_GROUP*
    - P256_POINT*
    - BIGNUM**
    - EC_POINT**
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 782
    functionName: ecp_nistz256_windowed_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_point_add
    - ecp_nistz256_neg
    - ecp_nistz256_point_double
    - OPENSSL_malloc
    - OPENSSL_free
    - memcpy
    - OPENSSL_MALLOC_MAX_NELEMS
    - _booth_recode_w5
    - ECerr
    - bn_get_words
    - copy_conditional
    - bn_get_top
    - BN_CTX_get
    - ecp_nistz256_scatter_w5
    - P256_POINT
    - BN_nnmod
    - ecp_nistz256_bignum_to_field_elem
    - ALIGNPTR
    - BN_is_negative
    - BN_num_bits
    - ecp_nistz256_gather_w5
    linkageType: ''
    returnType: __owur
    signature: "__owur ecp_nistz256_windowed_mul(const EC_GROUP *group,\n                                            P256_POINT
      *r,\n                                            const BIGNUM **scalar,\n                                            const
      EC_POINT **point,\n                                            size_t num, BN_CTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_get_top
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:801,1
    - Dst: bn_get_top
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:802,1
    - Dst: is_equal
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:803,1
    - Dst: bn_get_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:803,1
    - Dst: is_equal
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:804,1
    - Dst: bn_get_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:804,1
    - Dst: is_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - generator
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 806
    functionName: ecp_nistz256_is_affine_G
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - bn_get_words
    - is_one
    - is_equal
    - bn_get_top
    linkageType: ''
    returnType: int
    signature: int ecp_nistz256_is_affine_G(const EC_POINT *generator)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:828,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:829,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:831,1
    - Dst: ecp_nistz256_is_affine_G
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:835,1
    - Dst: ecp_nistz256_pre_comp_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:843,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:847,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:852,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:854,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:858,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:859,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:866,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:867,1
    - Dst: ALIGNPTR
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:871,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:873,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:874,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:882,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:886,1
    - Dst: EC_POINT_make_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:894,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:896,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:897,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:898,1
    - Dst: ecp_nistz256_scatter_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:902,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:904,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:908,1
    - Dst: SETPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:917,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:922,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:923,1
    - Dst: EC_nistz256_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:925,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:926,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:927,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:928,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 808
    functionDepth: 3
    functionLinenumber: 808
    functionLinenumberEnd: 930
    functionName: ecp_nistz256_mult_precompute
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - EC_POINT_add
    - ecp_nistz256_is_affine_G
    - EC_GROUP_get0_order
    - EC_GROUP_get0_generator
    - OPENSSL_malloc
    - EC_nistz256_pre_comp_free
    - OPENSSL_free
    - SETPRECOMP
    - EC_POINT_copy
    - ECerr
    - BN_CTX_new
    - BN_CTX_end
    - EC_POINT_make_affine
    - EC_POINT_dbl
    - BN_CTX_free
    - BN_is_zero
    - ecp_nistz256_scatter_w7
    - ecp_nistz256_bignum_to_field_elem
    - ALIGNPTR
    - EC_POINT_free
    - BN_CTX_start
    - EC_POINT_new
    - EC_pre_comp_free
    - ecp_nistz256_pre_comp_new
    linkageType: ''
    returnType: __owur
    signature: __owur ecp_nistz256_mult_precompute(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - sign
    - digit
    - in
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 974
    functionName: booth_recode_w7
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void booth_recode_w7(unsigned char *sign,\n                            unsigned
      char *digit, unsigned char in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1006,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1010,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1014,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1018,1
    - Dst: ecp_nistz256_avx2_multi_gather_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1020,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1023,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1024,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1025,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1026,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1027,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1028,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1029,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1030,1
    - Dst: ecp_nistz256_avx2_transpose_convert
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1032,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1033,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1034,1
    - Dst: ecp_nistz256_avx2_set1
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1035,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1040,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1044,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1048,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1052,1
    - Dst: ecp_nistz256_avx2_multi_gather_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1054,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1057,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1058,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1059,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1060,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1061,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1062,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1063,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1064,1
    - Dst: ecp_nistz256_avx2_transpose_convert
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1066,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1067,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1068,1
    - Dst: ecp_nistz256_avx2_point_add_affines_x4
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1070,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1076,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1080,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1084,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1088,1
    - Dst: ecp_nistz256_avx2_multi_gather_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1090,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1094,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1095,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1096,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1097,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1098,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1099,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1100,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1101,1
    - Dst: ecp_nistz256_avx2_transpose_convert
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1103,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1104,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1105,1
    - Dst: ecp_nistz256_avx2_point_add_affine_x4
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1107,1
    - Dst: ecp_nistz256_avx2_from_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1110,1
    - Dst: ecp_nistz256_avx2_from_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1111,1
    - Dst: ecp_nistz256_avx2_from_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1112,1
    - Dst: ecp_nistz256_avx2_convert_transpose_back
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1114,1
    - Dst: booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1118,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1119,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1121,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1122,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1123,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1125,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1126,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1127,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 105
    argCount: 3
    argNames:
    - r
    - p_str
    - (*preComputedTable)
    argTypes:
    - P256_POINT*
    - unsigned char[]
    - P256_POINT_AFFINE[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 1129
    functionName: ecp_nistz256_avx2_mul_g
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - booth_recode_w7
    - ecp_nistz256_point_add
    - ecp_nistz256_gather_w7
    - ecp_nistz256_avx2_from_mont
    - ecp_nistz256_neg
    - ecp_nistz256_avx2_point_add_affine_x4
    - memcpy
    - ecp_nistz256_avx2_multi_gather_w7
    - ecp_nistz256_avx2_to_mont
    - ecp_nistz256_avx2_set1
    - ecp_nistz256_avx2_convert_transpose_back
    - ecp_nistz256_avx2_point_add_affines_x4
    - copy_conditional
    - ecp_nistz256_avx2_transpose_convert
    linkageType: ''
    returnType: void
    signature: "void ecp_nistz256_avx2_mul_g(P256_POINT *r,\n                                    unsigned
      char p_str[33],\n                                    const P256_POINT_AFFINE(*preComputedTable)[64])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_set_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1139,1
    - Dst: bn_set_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1140,1
    - Dst: bn_set_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - out
    - group
    - in
    - ctx
    argTypes:
    - EC_POINT*
    - EC_GROUP*
    - P256_POINT_AFFINE*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1133
    functionDepth: 5
    functionLinenumber: 1133
    functionLinenumberEnd: 1145
    functionName: ecp_nistz256_set_from_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - bn_set_words
    linkageType: ''
    returnType: __owur
    signature: "__owur ecp_nistz256_set_from_affine(EC_POINT *out, const EC_GROUP
      *group,\n                                               const P256_POINT_AFFINE
      *in,\n                                               BN_CTX *ctx)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_MALLOC_MAX_NELEMS
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1172,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1173,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1177,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1180,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1182,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1194,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1198,1
    - Dst: ecp_nistz256_set_from_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1199,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1201,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1205,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1208,1
    - Dst: ecp_nistz256_is_affine_G
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1211,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1222,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1223,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1224,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1227,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1228,1
    - Dst: bn_get_top
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1234,1
    - Dst: bn_get_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1235,1
    - Dst: ecp_nistz_avx2_eligible
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1254,1
    - Dst: ecp_nistz256_avx2_mul_g
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1255,1
    - Dst: _booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1265,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1267,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1270,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1271,1
    - Dst: is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1284,1
    - Dst: _booth_recode_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1304,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1306,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1309,1
    - Dst: copy_conditional
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1310,1
    - Dst: ecp_nistz256_point_add_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1312,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1327,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1329,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1333,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1335,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1339,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1341,1
    - Dst: ecp_nistz256_windowed_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1354,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1358,1
    - Dst: bn_set_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1362,1
    - Dst: bn_set_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1363,1
    - Dst: bn_set_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1364,1
    - Dst: is_one
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1367,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1372,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1373,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1374,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 143
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1148
    functionDepth: 6
    functionLinenumber: 1148
    functionLinenumberEnd: 1376
    functionName: ecp_nistz256_points_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_point_add
    - ecp_nistz256_neg
    - ecp_nistz256_is_affine_G
    - EC_GROUP_get0_generator
    - ecp_nistz256_set_from_affine
    - OPENSSL_malloc
    - ecp_nistz256_gather_w7
    - _booth_recode_w7
    - OPENSSL_free
    - memcpy
    - EC_POINT_cmp
    - bn_set_words
    - is_one
    - OPENSSL_MALLOC_MAX_NELEMS
    - ecp_nistz256_point_add_affine
    - ECerr
    - ecp_nistz256_avx2_mul_g
    - bn_get_words
    - BN_CTX_end
    - copy_conditional
    - bn_get_top
    - BN_CTX_get
    - ecp_nistz256_windowed_mul
    - BN_nnmod
    - EC_POINT_free
    - is_zero
    - BN_CTX_start
    - BN_is_negative
    - BN_num_bits
    - EC_POINT_new
    - ecp_nistz_avx2_eligible
    linkageType: ''
    returnType: __owur
    signature: "__owur ecp_nistz256_points_mul(const EC_GROUP *group,\n                                          EC_POINT
      *r,\n                                          const BIGNUM *scalar,\n                                          size_t
      num,\n                                          const EC_POINT *points[],\n
      \                                         const BIGNUM *scalars[], BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1169
    functionName: union
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALIGN32
    signature: ALIGN32 union
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1389,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1390,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1394,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1395,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1396,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1397,1
    - Dst: ecp_nistz256_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1401,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1402,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1403,1
    - Dst: ecp_nistz256_from_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1406,1
    - Dst: bn_set_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1407,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1412,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1413,1
    - Dst: ecp_nistz256_from_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1414,1
    - Dst: bn_set_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1415,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1378
    functionDepth: 5
    functionLinenumber: 1378
    functionLinenumberEnd: 1420
    functionName: ecp_nistz256_get_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_sqr_mont
    - ECerr
    - ecp_nistz256_bignum_to_field_elem
    - ecp_nistz256_mul_mont
    - bn_set_words
    - ecp_nistz256_from_mont
    - EC_POINT_is_at_infinity
    - ecp_nistz256_mod_inverse
    linkageType: ''
    returnType: __owur
    signature: "__owur ecp_nistz256_get_affine(const EC_GROUP *group,\n                                          const
      EC_POINT *point,\n                                          BIGNUM *x, BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1429,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1432,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1440,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1442,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1447
    functionName: ecp_nistz256_pre_comp_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ECerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTZ256_PRE_COMP
    signature: NISTZ256_PRE_COMP *ecp_nistz256_pre_comp_new(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTZ256_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1455
    functionName: EC_nistz256_pre_comp_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: NISTZ256_PRE_COMP
    signature: NISTZ256_PRE_COMP *EC_nistz256_pre_comp_dup(NISTZ256_PRE_COMP *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1464,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1465,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1468,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1470,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1471,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pre
    argTypes:
    - NISTZ256_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1473
    functionName: EC_nistz256_pre_comp_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EC_nistz256_pre_comp_free(NISTZ256_PRE_COMP *pre)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1479,1
    - Dst: ecp_nistz256_is_affine_G
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1481,1
    - Dst: HAVEPRECOMP
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1476
    functionDepth: 3
    functionLinenumber: 1476
    functionLinenumberEnd: 1487
    functionName: ecp_nistz256_window_have_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get0_generator
    - HAVEPRECOMP
    - ecp_nistz256_is_affine_G
    linkageType: ''
    returnType: int
    signature: int ecp_nistz256_window_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TOBN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1508,1
    - Dst: TOBN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1508,1
    - Dst: TOBN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1509,1
    - Dst: TOBN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1509,1
    - Dst: TOBN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1513,1
    - Dst: TOBN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1513,1
    - Dst: TOBN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1513,1
    - Dst: TOBN
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1513,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1530,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1531,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1535,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1535,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1538,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1539,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1540,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1546,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1547,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1551,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1557,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1558,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1565,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1566,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1568,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1569,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1571,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1572,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1574,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1575,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1577,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1578,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1591,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1593,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1605,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1607,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1609,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1611,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1613,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1615,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1617,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1618,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1620,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1622,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1624,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1626,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1627,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1629,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1630,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1632,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1633,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1636,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1637,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1652,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1653,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1656,1
    - Dst: bn_set_words
      Src: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c:1661,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 4
    argNames:
    - group
    - r
    - x
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1503
    functionDepth: 5
    functionLinenumber: 1503
    functionLinenumberEnd: 1667
    functionName: ecp_nistz256_inv_mod_ord
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ECerr
    - ecp_nistz256_bignum_to_field_elem
    - BN_nnmod
    - BN_is_negative
    - ecp_nistz256_ord_sqr_mont
    - BN_CTX_get
    - bn_set_words
    - BN_num_bits
    - bn_wexpand
    - TOBN
    - ecp_nistz256_ord_mul_mont
    linkageType: ''
    returnType: int
    signature: "int ecp_nistz256_inv_mod_ord(const EC_GROUP *group, BIGNUM *r,\n                                    const
      BIGNUM *x, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1672
    functionDepth: 0
    functionLinenumber: 1672
    functionLinenumberEnd: 1731
    functionName: EC_GFp_nistz256_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nistz256_method(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:25,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:29,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:33,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:35,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:41,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:44,1
    - Dst: EC_METHOD*::group_init
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:50,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:55,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:57,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 59
    functionName: EC_GROUP_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - ECerr
    - EC_METHOD*::group_init
    - BN_new
    - OPENSSL_free
    - OPENSSL_zalloc
    - BN_free
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_new(const EC_METHOD *meth)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EC_nistz256_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:68,1
    - Dst: EC_nistp224_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:73,1
    - Dst: EC_nistp256_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:76,1
    - Dst: EC_nistp521_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:79,1
    - Dst: EC_ec_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 92
    functionName: EC_pre_comp_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - EC_nistz256_pre_comp_free
    - EC_nistp521_pre_comp_free
    - EC_nistp256_pre_comp_free
    - EC_ec_pre_comp_free
    - EC_nistp224_pre_comp_free
    linkageType: ''
    returnType: void
    signature: void EC_pre_comp_free(EC_GROUP *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::group_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:100,1
    - Dst: EC_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:102,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:103,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:104,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:105,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:106,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: EC_GROUP_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 10
    functionsReached:
    - EC_GROUP*::meth::group_finish
    - EC_POINT_free
    - OPENSSL_free
    - BN_free
    - BN_MONT_CTX_free
    - EC_pre_comp_free
    linkageType: ''
    returnType: void
    signature: void EC_GROUP_free(EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::group_clear_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:117,1
    - Dst: EC_GROUP*::meth::group_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:119,1
    - Dst: EC_pre_comp_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:121,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:122,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:123,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:124,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:125,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:126,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: EC_GROUP_clear_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP*::meth::group_finish
    - EC_POINT_clear_free
    - OPENSSL_clear_free
    - BN_MONT_CTX_free
    - EC_GROUP*::meth::group_clear_finish
    - EC_pre_comp_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void EC_GROUP_clear_free(EC_GROUP *group)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:133,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:137,1
    - Dst: EC_nistz256_pre_comp_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:153,1
    - Dst: EC_nistp224_pre_comp_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:158,1
    - Dst: EC_nistp256_pre_comp_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:161,1
    - Dst: EC_nistp521_pre_comp_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:164,1
    - Dst: EC_ec_pre_comp_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:173,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:179,1
    - Dst: BN_MONT_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:183,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:187,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:193,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:197,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:201,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:206,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:208,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:216,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:217,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:218,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:221,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:225,1
    - Dst: EC_GROUP*::meth::group_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:230,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 84
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 231
    functionName: EC_GROUP_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_POINT_copy
    - OPENSSL_malloc
    - ECerr
    - EC_POINT_clear_free
    - EC_nistp224_pre_comp_dup
    - EC_nistp256_pre_comp_dup
    - EC_ec_pre_comp_dup
    - BN_MONT_CTX_new
    - BN_copy
    - OPENSSL_free
    - EC_nistz256_pre_comp_dup
    - memcpy
    - BN_MONT_CTX_copy
    - EC_GROUP*::meth::group_copy
    - EC_POINT_new
    - BN_MONT_CTX_free
    - EC_nistp521_pre_comp_dup
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:241,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:243,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - a
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 254
    functionName: EC_GROUP_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached:
    - EC_GROUP_copy
    - EC_GROUP_new
    - EC_GROUP_free
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_dup(const EC_GROUP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: EC_GROUP_method_of
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: EC_METHOD_get_field_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_METHOD_get_field_type(const EC_METHOD *meth)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:290,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:290,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:292,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:297,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:300,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:301,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:306,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:307,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:307,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:310,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:315,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:316,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:318,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:318,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:320,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:324,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:325,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 327
    functionName: ec_guess_cofactor
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - BN_add
    - BN_copy
    - BN_zero
    - BN_CTX_start
    - BN_CTX_end
    - BN_rshift1
    - BN_div
    - BN_value_one
    - BN_CTX_get
    - BN_set_bit
    - BN_num_bits
    - BN_CTX_new
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int ec_guess_cofactor(EC_GROUP *group)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:333,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:338,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:339,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:340,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:349,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:349,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:350,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:350,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:351,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:360,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:361,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:366,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:370,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:373,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:377,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:378,1
    - Dst: ec_guess_cofactor
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:380,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:381,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:390,1
    - Dst: ec_precompute_mont_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:391,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:394,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 4
    argNames:
    - group
    - generator
    - order
    - cofactor
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 397
    functionName: EC_GROUP_set_generator
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_POINT_copy
    - ECerr
    - BN_copy
    - BN_MONT_CTX_free
    - ec_precompute_mont_data
    - BN_zero
    - ec_guess_cofactor
    - BN_is_negative
    - BN_is_zero
    - BN_num_bits
    - EC_POINT_new
    - BN_is_odd
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,\n
      \                          const BIGNUM *order, const BIGNUM *cofactor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: EC_GROUP_get0_generator
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: EC_POINT
    signature: EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: EC_GROUP_get_mont_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:413,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - group
    - order
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 417
    functionName: EC_GROUP_get_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: EC_GROUP_get0_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::group_order_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: EC_GROUP_order_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP*::meth::group_order_bits
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_order_bits(const EC_GROUP *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:435,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - group
    - cofactor
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: EC_GROUP_get_cofactor
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor,\n
      \                         BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: EC_GROUP_get0_cofactor
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - nid
    argTypes:
    - EC_GROUP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: EC_GROUP_set_curve_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_GROUP_set_curve_name(EC_GROUP *group, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: EC_GROUP_get_curve_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_curve_name(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - flag
    argTypes:
    - EC_GROUP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: EC_GROUP_set_asn1_flag
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: EC_GROUP_get_asn1_flag
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_asn1_flag(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - form
    argTypes:
    - EC_GROUP*
    - point_conversion_form_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: EC_GROUP_set_point_conversion_form
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_GROUP_set_point_conversion_form(EC_GROUP *group,\n                                        point_conversion_form_t
      form)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: EC_GROUP_get_point_conversion_form
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: point_conversion_form_t
    signature: "point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP\n
      \                                                          *group)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:480,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:487,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:488,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - group
    - p
    - len
    argTypes:
    - EC_GROUP*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 495
    functionName: EC_GROUP_set_seed
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ECerr
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t EC_GROUP_set_seed(EC_GROUP *group, const unsigned char *p, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: EC_GROUP_get0_seed
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EC_GROUP_get0_seed(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: EC_GROUP_get_seed_len
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EC_GROUP_get_seed_len(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:511,1
    - Dst: EC_GROUP*::meth::group_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 515
    functionName: EC_GROUP_set_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP*::meth::group_set_curve
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM
      *a,\n                       const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:521,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 525
    functionName: EC_GROUP_get_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 6
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::group_get_curve
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,
      BIGNUM *b,\n                       BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: EC_GROUP_set_curve_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_curve
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const
      BIGNUM *a,\n                           const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: EC_GROUP_get_curve_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM
      *a,\n                           BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 545
    functionName: EC_GROUP_set_curve_GF2m
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_curve
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const
      BIGNUM *a,\n                            const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: EC_GROUP_get_curve_GF2m
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM
      *a,\n                            BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:558,1
    - Dst: EC_GROUP*::meth::group_get_degree
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 562
    functionName: EC_GROUP_get_degree
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - EC_GROUP*::meth::group_get_degree
    - ECerr
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_degree(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:567,1
    - Dst: EC_GROUP*::meth::group_check_discriminant
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 572
    functionName: EC_GROUP_check_discriminant
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::group_check_discriminant
    - ECerr
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:581,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:581,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:582,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:582,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:585,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:585,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:586,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:586,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:592,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:596,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:597,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:598,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:599,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:600,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:601,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:602,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:604,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:605,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:613,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:614,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:617,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:617,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:617,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:621,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:621,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:622,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:628,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:629,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:630,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:631,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:633,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:634,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:637,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:637,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:641,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:642,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 3
    argNames:
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 645
    functionName: EC_GROUP_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get0_generator
    - EC_GROUP_get0_order
    - EC_GROUP*::meth::group_get_curve
    - EC_GROUP_get_curve_name
    - EC_GROUP_get0_cofactor
    - BN_cmp
    - EC_METHOD_get_field_type
    - BN_CTX_start
    - BN_CTX_end
    - EC_POINT_cmp
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:654,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:658,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:662,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:664,1
    - Dst: EC_POINT*::meth::point_init
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:671,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:672,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 677
    functionName: EC_POINT_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 28
    functionsReached:
    - OPENSSL_free
    - OPENSSL_zalloc
    - ECerr
    - EC_POINT*::meth::point_init
    linkageType: ''
    returnType: EC_POINT
    signature: EC_POINT *EC_POINT_new(const EC_GROUP *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT*::meth::point_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:685,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 687
    functionName: EC_POINT_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 27
    functionsReached:
    - OPENSSL_free
    - EC_POINT*::meth::point_finish
    linkageType: ''
    returnType: void
    signature: void EC_POINT_free(EC_POINT *point)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT*::meth::point_clear_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:695,1
    - Dst: EC_POINT*::meth::point_finish
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:697,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 699
    functionName: EC_POINT_clear_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 6
    functionsReached:
    - OPENSSL_clear_free
    - EC_POINT*::meth::point_clear_finish
    - EC_POINT*::meth::point_finish
    linkageType: ''
    returnType: void
    signature: void EC_POINT_clear_free(EC_POINT *point)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:704,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:711,1
    - Dst: EC_POINT*::meth::point_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:716,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_POINT*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 717
    functionName: EC_POINT_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 10
    functionsReached:
    - ECerr
    - EC_POINT*::meth::point_copy
    linkageType: ''
    returnType: int
    signature: int EC_POINT_copy(EC_POINT *dest, const EC_POINT *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:727,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:730,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - group
    argTypes:
    - EC_POINT*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 736
    functionName: EC_POINT_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_POINT_copy
    - EC_POINT_new
    - EC_POINT_free
    linkageType: ''
    returnType: EC_POINT
    signature: EC_POINT *EC_POINT_dup(const EC_POINT *a, const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: EC_POINT_method_of
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_POINT_method_of(const EC_POINT *point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:746,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:751,1
    - Dst: EC_GROUP*::meth::point_set_to_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 755
    functionName: EC_POINT_set_to_infinity
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::point_set_to_infinity
    linkageType: ''
    returnType: int
    signature: int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:763,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:767,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:768,1
    - Dst: EC_GROUP*::meth::point_set_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - group
    - point
    - x
    - y
    - z
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 774
    functionName: EC_POINT_set_Jprojective_coordinates_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - ec_point_is_compat
    - EC_GROUP*::meth::point_set_Jprojective_coordinates_GFp
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group,\n
      \                                            EC_POINT *point, const BIGNUM *x,\n
      \                                            const BIGNUM *y, const BIGNUM *z,\n
      \                                            BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:782,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:786,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:787,1
    - Dst: EC_GROUP*::meth::point_get_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - group
    - point
    - x
    - y
    - z
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 793
    functionName: EC_POINT_get_Jprojective_coordinates_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - ec_point_is_compat
    - ECerr
    - EC_GROUP*::meth::point_get_Jprojective_coordinates_GFp
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group,\n
      \                                            const EC_POINT *point, BIGNUM *x,\n
      \                                            BIGNUM *y, BIGNUM *z,\n                                             BN_CTX
      *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:800,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:804,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:805,1
    - Dst: EC_GROUP*::meth::point_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:808,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:811,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 816
    functionName: EC_POINT_set_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 11
    functionsReached:
    - ec_point_is_compat
    - EC_GROUP*::meth::point_set_affine_coordinates
    - EC_POINT_is_on_curve
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT
      *point,\n                                    const BIGNUM *x, const BIGNUM *y,\n
      \                                   BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 824
    functionName: EC_POINT_set_affine_coordinates_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group,\n                                        EC_POINT
      *point, const BIGNUM *x,\n                                        const BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 832
    functionName: EC_POINT_set_affine_coordinates_GF2m
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group,\n
      \                                        EC_POINT *point, const BIGNUM *x,\n
      \                                        const BIGNUM *y, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:841,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:845,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:846,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:849,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:850,1
    - Dst: EC_GROUP*::meth::point_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:853,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 854
    functionName: EC_POINT_get_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 12
    functionsReached:
    - EC_POINT_is_at_infinity
    - ec_point_is_compat
    - EC_GROUP*::meth::point_get_affine_coordinates
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_get_affine_coordinates(const EC_GROUP *group,\n                                    const
      EC_POINT *point, BIGNUM *x, BIGNUM *y,\n                                    BN_CTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 862
    functionName: EC_POINT_get_affine_coordinates_GFp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_POINT_get_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,\n                                        const
      EC_POINT *point, BIGNUM *x,\n                                        BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 870
    functionName: EC_POINT_get_affine_coordinates_GF2m
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_POINT_get_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group,\n
      \                                        const EC_POINT *point, BIGNUM *x,\n
      \                                        BIGNUM *y, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:878,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:881,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:881,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:882,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:883,1
    - Dst: EC_GROUP*::meth::add
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 887
    functionName: EC_POINT_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - ec_point_is_compat
    - ECerr
    - EC_GROUP*::meth::add
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                 const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:893,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:896,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:896,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:897,1
    - Dst: EC_GROUP*::meth::dbl
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:900,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: EC_POINT_dbl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 6
    functionsReached:
    - EC_GROUP*::meth::dbl
    - ec_point_is_compat
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                 BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:906,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:909,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:910,1
    - Dst: EC_GROUP*::meth::invert
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - group
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 914
    functionName: EC_POINT_invert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - ec_point_is_compat
    - EC_GROUP*::meth::invert
    - ECerr
    linkageType: ''
    returnType: int
    signature: int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:919,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:923,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:924,1
    - Dst: EC_GROUP*::meth::is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 928
    functionName: EC_POINT_is_at_infinity
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 17
    functionsReached:
    - ec_point_is_compat
    - ECerr
    - EC_GROUP*::meth::is_at_infinity
    linkageType: ''
    returnType: int
    signature: int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:941,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:944,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:945,1
    - Dst: EC_GROUP*::meth::is_on_curve
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 949
    functionName: EC_POINT_is_on_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached:
    - ec_point_is_compat
    - ECerr
    - EC_GROUP*::meth::is_on_curve
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point,\n
      \                        BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:955,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:958,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:958,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:959,1
    - Dst: EC_GROUP*::meth::point_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:962,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - group
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 963
    functionName: EC_POINT_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 10
    functionsReached:
    - EC_GROUP*::meth::point_cmp
    - ec_point_is_compat
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT
      *b,\n                 BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:968,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:971,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:972,1
    - Dst: EC_GROUP*::meth::make_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 976
    functionName: EC_POINT_make_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - ec_point_is_compat
    - ECerr
    - EC_GROUP*::meth::make_affine
    linkageType: ''
    returnType: int
    signature: int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:984,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:988,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:989,1
    - Dst: EC_GROUP*::meth::points_make_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - group
    - num
    - points
    - ctx
    argTypes:
    - EC_GROUP*
    - size_t
    - EC_POINT*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 994
    functionName: EC_POINTs_make_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - ec_point_is_compat
    - ECerr
    - EC_GROUP*::meth::points_make_affine
    linkageType: ''
    returnType: int
    signature: "int EC_POINTs_make_affine(const EC_GROUP *group, size_t num,\n                          EC_POINT
      *points[], BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1010,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1011,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1016,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1019,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1020,1
    - Dst: BN_CTX_secure_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1025,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1026,1
    - Dst: EC_GROUP*::meth::mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1031,1
    - Dst: ec_wNAF_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1034,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1036,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1002
    functionDepth: 6
    functionLinenumber: 1002
    functionLinenumberEnd: 1038
    functionName: EC_POINTs_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - ec_point_is_compat
    - EC_POINT_set_to_infinity
    - ECerr
    - BN_CTX_secure_new
    - EC_GROUP*::meth::mul
    - BN_CTX_free
    - ec_wNAF_mul
    linkageType: ''
    returnType: int
    signature: "int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM
      *scalar,\n                  size_t num, const EC_POINT *points[],\n                  const
      BIGNUM *scalars[], BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - group
    - r
    - g_scalar
    - point
    - p_scalar
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - EC_POINT*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1040
    functionDepth: 7
    functionLinenumber: 1040
    functionLinenumberEnd: 1054
    functionName: EC_POINT_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 10
    functionsReached:
    - EC_POINTs_mul
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM
      *g_scalar,\n                 const EC_POINT *point, const BIGNUM *p_scalar,
      BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ec_wNAF_precompute_mult
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1060,1
    - Dst: EC_GROUP*::meth::precompute_mult
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1056
    functionDepth: 4
    functionLinenumber: 1056
    functionLinenumberEnd: 1066
    functionName: EC_GROUP_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - ec_wNAF_precompute_mult
    - EC_GROUP*::meth::precompute_mult
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ec_wNAF_have_precompute_mult
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1072,1
    - Dst: EC_GROUP*::meth::have_precompute_mult
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1068
    functionDepth: 2
    functionLinenumber: 1068
    functionLinenumberEnd: 1079
    functionName: EC_GROUP_have_precompute_mult
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::have_precompute_mult
    - ec_wNAF_have_precompute_mult
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1087,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1090,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1096,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1100,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1101,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1085
    functionDepth: 7
    functionLinenumber: 1085
    functionLinenumberEnd: 1112
    functionName: ec_precompute_mont_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - BN_CTX_free
    - BN_CTX_new
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: int ec_precompute_mont_data(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - idx
    - arg
    argTypes:
    - EC_KEY*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1117
    functionName: EC_KEY_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - idx
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1122
    functionName: EC_KEY_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *EC_KEY_get_ex_data(const EC_KEY *key, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1124
    functionDepth: 3
    functionLinenumber: 1124
    functionLinenumberEnd: 1129
    functionName: ec_group_simple_order_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int ec_group_simple_order_bits(const EC_GROUP *group)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_secure_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1141,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1144,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1145,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1152,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1154,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1160,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1166,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1167,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - group
    - r
    - x
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1131
    functionDepth: 5
    functionLinenumber: 1131
    functionLinenumberEnd: 1169
    functionName: ec_field_inverse_mod_ord
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - BN_CTX_secure_new
    - BN_mod_exp_mont
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - BN_set_word
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "int ec_field_inverse_mod_ord(const EC_GROUP *group, BIGNUM *r,\n                                    const
      BIGNUM *x, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::field_inverse_mod_ord
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1188,1
    - Dst: ec_field_inverse_mod_ord
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - group
    - res
    - x
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1184
    functionDepth: 6
    functionLinenumber: 1184
    functionLinenumberEnd: 1191
    functionName: ec_group_do_inverse_ord
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached:
    - ec_field_inverse_mod_ord
    - EC_GROUP*::meth::field_inverse_mod_ord
    linkageType: ''
    returnType: int
    signature: "int ec_group_do_inverse_ord(const EC_GROUP *group, BIGNUM *res,\n
      \                           const BIGNUM *x, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::blind_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec_lib.c:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - group
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1209
    functionName: ec_point_blind_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::blind_coordinates
    linkageType: ''
    returnType: int
    signature: int ec_point_blind_coordinates(const EC_GROUP *group, EC_POINT *p,
      BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:26,1
    - Dst: EC_KEY*::group::meth::ecdh_compute_key
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - psec
    - pseclen
    - pub_key
    - ecdh
    argTypes:
    - unsigned char**
    - size_t*
    - EC_POINT*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: ossl_ecdh_compute_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::ecdh_compute_key
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdh_compute_key(unsigned char **psec, size_t *pseclen,\n
      \                         const EC_POINT *pub_key, const EC_KEY *ecdh)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:50,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:52,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:53,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:55,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:59,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:61,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:65,1
    - Dst: EC_KEY_get_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:67,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:68,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:69,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:70,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:76,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:77,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:81,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:82,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:86,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:87,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:91,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:92,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:94,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:97,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:98,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:102,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:103,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:104,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:115,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:116,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c:118,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 4
    argNames:
    - pout
    - poutlen
    - pub_key
    - ecdh
    argTypes:
    - unsigned char**
    - size_t*
    - EC_POINT*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 38
    functionDepth: 8
    functionLinenumber: 38
    functionLinenumberEnd: 120
    functionName: ecdh_simple_compute_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_cofactor
    - EC_KEY_get_flags
    - EC_GROUP_get_degree
    - OPENSSL_malloc
    - EC_POINT_mul
    - OPENSSL_free
    - BN_mul
    - EC_POINT_get_affine_coordinates
    - ECerr
    - EC_POINT_clear_free
    - BN_CTX_new
    - BN_CTX_end
    - BN_bn2bin
    - EC_KEY_get0_private_key
    - BN_CTX_free
    - BN_CTX_get
    - EC_KEY_get0_group
    - BN_num_bytes
    - BN_CTX_start
    - memset
    - EC_POINT_new
    linkageType: ''
    returnType: int
    signature: "int ecdh_simple_compute_key(unsigned char **pout, size_t *poutlen,\n
      \                           const EC_POINT *pub_key, const EC_KEY *ecdh)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:30,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:31,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:34,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:35,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:38,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:43,1
    - Dst: i2d_ECParameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:46,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:48,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - pptype
    - ppval
    - ec_key
    argTypes:
    - int*
    - void**
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 26
    functionDepth: 8
    functionLinenumber: 26
    functionLinenumberEnd: 56
    functionName: eckey_param2type
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ECerr
    - EC_GROUP_get_curve_name
    - ASN1_STRING_free
    - ASN1_STRING_new
    - EC_GROUP_get_asn1_flag
    - i2d_ECParameters
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int eckey_param2type(int *pptype, void **ppval, EC_KEY *ec_key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: eckey_param2type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:66,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:67,1
    - Dst: i2o_ECPublicKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:70,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:73,1
    - Dst: i2o_ECPublicKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:77,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:80,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:80,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:85,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:87,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 58
    functionDepth: 9
    functionLinenumber: 58
    functionLinenumberEnd: 90
    functionName: eckey_pub_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OBJ_nid2obj
    - ECerr
    - eckey_param2type
    - ASN1_STRING_free
    - OPENSSL_free
    - X509_PUBKEY_set0_param
    - ASN1_OBJECT_free
    - i2o_ECPublicKey
    linkageType: ''
    returnType: int
    signature: int eckey_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECParameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:102,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:103,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:112,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:113,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:116,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:116,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:119,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:120,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:122,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:124,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:131,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:132,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - ptype
    - pval
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 92
    functionDepth: 8
    functionLinenumber: 92
    functionLinenumberEnd: 134
    functionName: eckey_type2param
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_ECParameters
    - EC_KEY_new
    - ECerr
    - EC_GROUP_new_by_curve_name
    - EC_KEY_set_group
    - EC_GROUP_free
    - EC_KEY_free
    - EC_GROUP_set_asn1_flag
    - OBJ_obj2nid
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *eckey_type2param(int ptype, const void *pval)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:144,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:146,1
    - Dst: eckey_type2param
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:148,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:151,1
    - Dst: o2i_ECPublicKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:156,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:157,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:161,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 136
    functionDepth: 9
    functionLinenumber: 136
    functionLinenumberEnd: 167
    functionName: eckey_pub_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ECerr
    - X509_PUBKEY_get0_param
    - EVP_PKEY_assign_EC_KEY
    - X509_ALGOR_get0
    - eckey_type2param
    - EC_KEY_free
    - o2i_ECPublicKey
    linkageType: ''
    returnType: int
    signature: int eckey_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:172,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:173,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:174,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: eckey_pub_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_POINT_cmp
    - EC_KEY_get0_group
    - EC_KEY_get0_public_key
    linkageType: ''
    returnType: int
    signature: int eckey_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:193,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:195,1
    - Dst: eckey_type2param
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:197,1
    - Dst: d2i_ECPrivateKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:203,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:204,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:208,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:212,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 185
    functionDepth: 9
    functionLinenumber: 185
    functionLinenumberEnd: 216
    functionName: eckey_priv_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EVP_PKEY_assign_EC_KEY
    - X509_ALGOR_get0
    - PKCS8_pkey_get0
    - eckey_type2param
    - EC_KEY_free
    - d2i_ECPrivateKey
    linkageType: ''
    returnType: int
    signature: int eckey_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: eckey_param2type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:226,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:227,1
    - Dst: EC_KEY_get_enc_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:237,1
    - Dst: EC_KEY_set_enc_flags
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:238,1
    - Dst: i2d_ECPrivateKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:240,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:242,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:245,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:247,1
    - Dst: i2d_ECPrivateKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:251,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:252,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:253,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:257,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:257,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 264
    functionName: eckey_priv_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OBJ_nid2obj
    - ECerr
    - eckey_param2type
    - OPENSSL_free
    - EC_KEY_get_enc_flags
    - PKCS8_pkey_set0
    - EC_KEY_set_enc_flags
    - i2d_ECPrivateKey
    linkageType: ''
    returnType: int
    signature: int eckey_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_size
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: int_ec_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ECDSA_size
    linkageType: ''
    returnType: int
    signature: int int_ec_size(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:273,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: ec_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_order_bits
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int ec_bits(const EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ec_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 290
    functionName: ec_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ec_bits
    linkageType: ''
    returnType: int
    signature: int ec_security_bits(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: ec_missing_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int ec_missing_parameters(const EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_dup
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:301,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:301,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:306,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:310,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:312,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 299
    functionDepth: 6
    functionLinenumber: 299
    functionLinenumberEnd: 317
    functionName: ec_copy_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new
    - EC_GROUP_dup
    - EC_KEY_set_group
    - EC_GROUP_free
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int ec_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:321,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:322,1
    - Dst: EC_GROUP_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 329
    functionName: ec_cmp_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_group
    - EC_GROUP_cmp
    linkageType: ''
    returnType: int
    signature: int ec_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: int_ec_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    linkageType: ''
    returnType: void
    signature: void int_ec_free(EVP_PKEY *pkey)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:350,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:351,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:355,1
    - Dst: EC_KEY_key2buf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:356,1
    - Dst: EC_KEY_get_conv_form
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:356,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:361,1
    - Dst: EC_KEY_priv2buf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:362,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:374,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:376,1
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:377,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:381,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:383,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:388,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:390,1
    - Dst: ECPKParameters_print
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:394,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:399,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:400,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:401,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 55
    argCount: 4
    argNames:
    - bp
    - x
    - 'off'
    - ktype
    argTypes:
    - BIO*
    - EC_KEY*
    - int
    - ec_print_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 342
    functionDepth: 4
    functionLinenumber: 342
    functionLinenumberEnd: 403
    functionName: do_EC_KEY_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_public_key
    - ECerr
    - EC_KEY_priv2buf
    - BIO_printf
    - EC_KEY_get_conv_form
    - EC_KEY_key2buf
    - ASN1_buf_print
    - OPENSSL_free
    - ECPKParameters_print
    - EC_GROUP_order_bits
    - EC_KEY_get0_private_key
    - BIO_indent
    - OPENSSL_clear_free
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int do_EC_KEY_print(BIO *bp, const EC_KEY *x, int off, ec_print_t ktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECParameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:410,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:411,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 8
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: eckey_param_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_ECParameters
    - ECerr
    - EVP_PKEY_assign_EC_KEY
    linkageType: ''
    returnType: int
    signature: "int eckey_param_decode(EVP_PKEY *pkey,\n                              const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ECParameters
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 8
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: eckey_param_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_ECParameters
    linkageType: ''
    returnType: int
    signature: int eckey_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 5
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: eckey_param_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: "int eckey_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n
      \                            ASN1_PCTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 5
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: eckey_pub_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: "int eckey_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                           ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 5
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: eckey_priv_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: "int eckey_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n
      \                           ASN1_PCTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECPrivateKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:446,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:447,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 452
    functionName: old_ec_priv_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_ECPrivateKey
    - ECerr
    - EVP_PKEY_assign_EC_KEY
    linkageType: ''
    returnType: int
    signature: "int old_ec_priv_decode(EVP_PKEY *pkey,\n                              const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ECPrivateKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 7
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: old_ec_priv_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_ECPrivateKey
    linkageType: ''
    returnType: int
    signature: int old_ec_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_SIGNER_INFO_get0_algs
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:466,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:469,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:472,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:472,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:474,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:474,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:482,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:485,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:488,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:488,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:490,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:490,1
    - Dst: ecdh_cms_decrypt
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:496,1
    - Dst: ecdh_cms_encrypt
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:498,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:507,1
    - Dst: EC_KEY_oct2key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:516,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:516,1
    - Dst: EC_KEY_key2buf
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:519,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:519,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 527
    functionName: ec_pkey_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - PKCS7_SIGNER_INFO_get0_algs
    - OBJ_nid2obj
    - X509_ALGOR_set0
    - CMS_SignerInfo_get0_algs
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_key2buf
    - OBJ_find_sigid_by_algs
    - ecdh_cms_encrypt
    - EVP_PKEY_id
    - OBJ_obj2nid
    - ecdh_cms_decrypt
    - EC_KEY_oct2key
    linkageType: ''
    returnType: int
    signature: int ec_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:535,1
    - Dst: EC_KEY_check_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 540
    functionName: ec_pkey_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_check_key
    - ECerr
    linkageType: ''
    returnType: int
    signature: int ec_pkey_check(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_check_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 556
    functionName: ec_pkey_public_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_check_key
    linkageType: ''
    returnType: int
    signature: int ec_pkey_public_check(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:564,1
    - Dst: EC_GROUP_check
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 558
    functionDepth: 3
    functionLinenumber: 558
    functionLinenumberEnd: 569
    functionName: ec_pkey_param_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_check
    - ECerr
    linkageType: ''
    returnType: int
    signature: int ec_pkey_param_check(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:621,1
    - Dst: do_EC_KEY_print
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 5
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: EC_KEY_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 5
    functionsReached:
    - do_EC_KEY_print
    - EC_KEY_get0_private_key
    linkageType: ''
    returnType: int
    signature: int EC_KEY_print(BIO *bp, const EC_KEY *x, int off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 627
    functionDepth: 5
    functionLinenumber: 627
    functionLinenumberEnd: 630
    functionName: ECParameters_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 1
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: int ECParameters_print(BIO *bp, const EC_KEY *x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:645,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:646,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:652,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:655,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:656,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:659,1
    - Dst: eckey_type2param
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:662,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:667,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:668,1
    - Dst: o2i_ECPublicKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:671,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:673,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:676,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:677,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:680,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:681,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 3
    argNames:
    - pctx
    - alg
    - pubkey
    argTypes:
    - EVP_PKEY_CTX*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 634
    functionDepth: 9
    functionLinenumber: 634
    functionLinenumberEnd: 683
    functionName: ecdh_cms_set_peerkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new
    - EVP_PKEY_free
    - ASN1_STRING_get0_data
    - EC_KEY_set_group
    - ASN1_STRING_length
    - EVP_PKEY_CTX_get0_pkey
    - EVP_PKEY_derive_set_peer
    - X509_ALGOR_get0
    - eckey_type2param
    - EVP_PKEY_set1_EC_KEY
    - EVP_PKEY_new
    - OBJ_obj2nid
    - o2i_ECPublicKey
    - EC_KEY_free
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: "int ecdh_cms_set_peerkey(EVP_PKEY_CTX *pctx,\n                                X509_ALGOR
      *alg, ASN1_BIT_STRING *pubkey)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:694,1
    - Dst: EVP_PKEY_CTX_set_ecdh_cofactor_mode
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:704,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:707,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:710,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_md
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:714,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - pctx
    - eckdf_nid
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 717
    functionName: ecdh_cms_set_kdf_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbynid
    - EVP_PKEY_CTX_set_ecdh_cofactor_mode
    - EVP_PKEY_CTX_set_ecdh_kdf_md
    - EVP_PKEY_CTX_set_ecdh_kdf_type
    - OBJ_find_sigid_algs
    linkageType: ''
    returnType: int
    signature: int ecdh_cms_set_kdf_param(EVP_PKEY_CTX *pctx, int eckdf_nid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:731,1
    - Dst: ecdh_cms_set_kdf_param
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:734,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:734,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:735,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:744,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:747,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:750,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:751,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:753,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:755,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:758,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_outlen
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:759,1
    - Dst: CMS_SharedInfo_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:762,1
    - Dst: EVP_PKEY_CTX_set0_ecdh_kdf_ukm
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:767,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:773,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:774,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 2
    argNames:
    - pctx
    - ri
    argTypes:
    - EVP_PKEY_CTX*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 719
    functionDepth: 4
    functionLinenumber: 719
    functionLinenumberEnd: 776
    functionName: ecdh_cms_set_shared_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_X509_ALGOR
    - CMS_RecipientInfo_kari_get0_alg
    - ECerr
    - OPENSSL_free
    - EVP_CIPHER_asn1_to_param
    - EVP_get_cipherbyobj
    - EVP_CIPHER_CTX_key_length
    - EVP_PKEY_CTX_set0_ecdh_kdf_ukm
    - ecdh_cms_set_kdf_param
    - X509_ALGOR_free
    - EVP_EncryptInit_ex
    - EVP_PKEY_CTX_set_ecdh_kdf_outlen
    - EVP_CIPHER_mode
    - OBJ_obj2nid
    - CMS_RecipientInfo_kari_get0_ctx
    - CMS_SharedInfo_encode
    linkageType: ''
    returnType: int
    signature: int ecdh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo
      *ri)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:781,1
    - Dst: EVP_PKEY_CTX_get0_peerkey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:785,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:788,1
    - Dst: ecdh_cms_set_peerkey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:793,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:794,1
    - Dst: ecdh_cms_set_shared_info
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:799,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:800,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 778
    functionDepth: 10
    functionLinenumber: 778
    functionLinenumberEnd: 804
    functionName: ecdh_cms_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 1
    functionsReached:
    - ECerr
    - EVP_PKEY_CTX_get0_peerkey
    - ecdh_cms_set_peerkey
    - CMS_RecipientInfo_kari_get0_orig_id
    - CMS_RecipientInfo_get0_pkey_ctx
    - ecdh_cms_set_shared_info
    linkageType: ''
    returnType: int
    signature: int ecdh_cms_decrypt(CMS_RecipientInfo *ri)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:822,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:826,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:827,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:830,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:832,1
    - Dst: i2o_ECPublicKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:838,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:841,1
    - Dst: i2o_ECPublicKey
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:845,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:848,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:853,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:853,1
    - Dst: EVP_PKEY_CTX_get_ecdh_kdf_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:858,1
    - Dst: EVP_PKEY_CTX_get_ecdh_kdf_md
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:861,1
    - Dst: EVP_PKEY_CTX_get_ecdh_cofactor_mode
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:863,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:873,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:880,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_md
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:881,1
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:885,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:890,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:890,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:893,1
    - Dst: EVP_CIPHER_CTX_type
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:894,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:895,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:899,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:902,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:903,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:906,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:908,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:909,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_outlen
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:913,1
    - Dst: CMS_SharedInfo_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:916,1
    - Dst: EVP_PKEY_CTX_set0_ecdh_kdf_ukm
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:921,1
    - Dst: i2d_X509_ALGOR
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:929,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:932,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:935,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:937,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:937,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:942,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c:943,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 111
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 945
    functionName: ecdh_cms_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_TYPE_get
    - OBJ_find_sigid_by_algs
    - EVP_PKEY_CTX_get_ecdh_cofactor_mode
    - EVP_CIPHER_CTX_type
    - CMS_RecipientInfo_get0_pkey_ctx
    - ASN1_TYPE_free
    - OPENSSL_malloc
    - EVP_MD_type
    - X509_ALGOR_new
    - OPENSSL_free
    - EVP_CIPHER_CTX_key_length
    - EVP_PKEY_CTX_set_ecdh_kdf_type
    - EVP_PKEY_CTX_get_ecdh_kdf_type
    - CMS_RecipientInfo_kari_get0_orig_id
    - OBJ_nid2obj
    - CMS_RecipientInfo_kari_get0_alg
    - ASN1_STRING_set0
    - X509_ALGOR_set0
    - EVP_sha1
    - EVP_PKEY_CTX_get0_pkey
    - X509_ALGOR_free
    - i2o_ECPublicKey
    - CMS_RecipientInfo_kari_get0_ctx
    - EVP_PKEY_CTX_get_ecdh_kdf_md
    - i2d_X509_ALGOR
    - EVP_PKEY_CTX_set0_ecdh_kdf_ukm
    - ASN1_STRING_new
    - EVP_PKEY_CTX_set_ecdh_kdf_md
    - EVP_PKEY_CTX_set_ecdh_kdf_outlen
    - X509_ALGOR_get0
    - EVP_CIPHER_param_to_asn1
    - CMS_SharedInfo_encode
    linkageType: ''
    returnType: int
    signature: int ecdh_cms_encrypt(CMS_RecipientInfo *ri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:24,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:25,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:26,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:29,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:30,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: ec_GF2m_simple_group_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    linkageType: ''
    returnType: int
    signature: int ec_GF2m_simple_group_init(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:43,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:44,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: ec_GF2m_simple_group_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ec_GF2m_simple_group_finish(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:54,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:55,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: ec_GF2m_simple_group_clear_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ec_GF2m_simple_group_clear_finish(EC_GROUP *group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:71,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:73,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:75,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:83,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:86,1
    - Dst: bn_set_all_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:89,1
    - Dst: bn_set_all_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: ec_GF2m_simple_group_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - bn_set_all_zero
    - bn_wexpand
    - BN_copy
    linkageType: ''
    returnType: int
    signature: int ec_GF2m_simple_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:102,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:104,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:106,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:111,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:113,1
    - Dst: bn_set_all_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:116,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:119,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:121,1
    - Dst: bn_set_all_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:124,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 129
    functionName: ec_GF2m_simple_group_set_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - bn_set_all_zero
    - ECerr
    - BN_copy
    - BN_GF2m_poly2arr
    - BN_GF2m_mod_arr
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_group_set_curve(EC_GROUP *group,\n                                   const
      BIGNUM *p, const BIGNUM *a,\n                                   const BIGNUM
      *b, BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:141,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:146,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 159
    functionName: ec_GF2m_simple_group_get_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_group_get_curve(const EC_GROUP *group, BIGNUM *p,\n
      \                                  BIGNUM *a, BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: ec_GF2m_simple_group_get_degree
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int ec_GF2m_simple_group_get_degree(const EC_GROUP *group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:182,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:184,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:189,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:190,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:194,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:201,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:207,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:208,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 210
    functionName: ec_GF2m_simple_group_check_discriminant
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_CTX_start
    - BN_CTX_end
    - BN_GF2m_mod_arr
    - BN_CTX_free
    - BN_CTX_get
    - BN_is_zero
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_group_check_discriminant(const EC_GROUP *group,\n
      \                                           BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:215,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:216,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:217,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:220,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:221,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: ec_GF2m_simple_point_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    linkageType: ''
    returnType: int
    signature: int ec_GF2m_simple_point_init(EC_POINT *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:231,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:232,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: ec_GF2m_simple_point_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ec_GF2m_simple_point_finish(EC_POINT *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:239,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:240,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: ec_GF2m_simple_point_clear_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ec_GF2m_simple_point_clear_finish(EC_POINT *point)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:251,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:253,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_POINT*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: ec_GF2m_simple_point_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: int ec_GF2m_simple_point_copy(EC_POINT *dest, const EC_POINT *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: ec_GF2m_simple_point_set_to_infinity
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_point_set_to_infinity(const EC_GROUP *group,\n
      \                                        EC_POINT *point)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:286,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:291,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:293,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:294,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:296,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:297,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:297,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: ec_GF2m_simple_point_set_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - BN_set_negative
    - ECerr
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_point_set_affine_coordinates(const EC_GROUP *group,\n
      \                                               EC_POINT *point,\n                                                const
      BIGNUM *x,\n                                                const BIGNUM *y,
      BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:318,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:319,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:324,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:324,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:325,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:330,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:332,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:335,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 343
    functionName: ec_GF2m_simple_point_get_affine_coordinates
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_set_negative
    - ECerr
    - BN_copy
    - BN_cmp
    - EC_POINT_is_at_infinity
    - BN_value_one
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                               const EC_POINT *point,\n                                                BIGNUM
      *x, BIGNUM *y,\n                                                BN_CTX *ctx)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:356,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:357,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:362,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:363,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:369,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:374,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:375,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:376,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:377,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:378,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:379,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:380,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:381,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:382,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:387,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:389,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:392,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:396,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:398,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:401,1
    - Dst: BN_GF2m_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:405,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:406,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:408,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:410,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:412,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:414,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:416,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:418,1
    - Dst: BN_GF2m_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:421,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:421,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:422,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:427,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:429,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:432,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:434,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:436,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:440,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:442,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:444,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:446,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:449,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:455,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:456,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 120
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 349
    functionDepth: 5
    functionLinenumber: 349
    functionLinenumberEnd: 458
    functionName: ec_GF2m_simple_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_copy
    - BN_GF2m_add
    - EC_POINT_set_to_infinity
    - BN_copy
    - EC_POINT_set_affine_coordinates
    - EC_GROUP*::meth::field_div
    - BN_CTX_start
    - EC_POINT_get_affine_coordinates
    - BN_GF2m_cmp
    - BN_CTX_end
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_get
    - EC_GROUP*::meth::field_sqr
    - BN_CTX_new
    - EC_GROUP*::meth::field_mul
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                       const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_GF2m_simple_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 6
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: ec_GF2m_simple_dbl
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - ec_GF2m_simple_add
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                       BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:472,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:472,1
    - Dst: EC_POINT_make_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:476,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 470
    functionDepth: 5
    functionLinenumber: 470
    functionLinenumberEnd: 479
    functionName: ec_GF2m_simple_invert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - BN_GF2m_add
    - EC_POINT_make_affine
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int ec_GF2m_simple_invert(const EC_GROUP *group, EC_POINT *point, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: ec_GF2m_simple_is_at_infinity
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_is_at_infinity(const EC_GROUP *group,\n                                  const
      EC_POINT *point)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:503,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:514,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:519,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:520,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:521,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:531,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:533,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:535,1
    - Dst: field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:537,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:539,1
    - Dst: field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:541,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:543,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:545,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:548,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:549,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 493
    functionDepth: 5
    functionLinenumber: 493
    functionLinenumberEnd: 551
    functionName: ec_GF2m_simple_is_on_curve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_add
    - field_sqr
    - BN_CTX_start
    - BN_CTX_end
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_get
    - BN_is_zero
    - BN_CTX_new
    - field_mul
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_is_on_curve(const EC_GROUP *group, const EC_POINT
      *point,\n                               BN_CTX *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:567,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:568,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:571,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:575,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:575,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:579,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:584,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:585,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:586,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:587,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:588,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:592,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:594,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:596,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:596,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:599,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:600,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - group
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 602
    functionName: ec_GF2m_simple_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - BN_CTX_start
    - EC_POINT_get_affine_coordinates
    - BN_CTX_end
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_cmp(const EC_GROUP *group, const EC_POINT *a,\n
      \                      const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:612,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:616,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:621,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:622,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:623,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:627,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:629,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:631,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:633,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:640,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:641,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 643
    functionName: ec_GF2m_simple_make_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_one
    - BN_copy
    - BN_CTX_start
    - EC_POINT_get_affine_coordinates
    - BN_CTX_end
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_make_affine(const EC_GROUP *group, EC_POINT *point,\n
      \                              BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::make_affine
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - group
    - num
    - points
    - ctx
    argTypes:
    - EC_GROUP*
    - size_t
    - EC_POINT*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 659
    functionName: ec_GF2m_simple_points_make_affine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::make_affine
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_points_make_affine(const EC_GROUP *group, size_t
      num,\n                                      EC_POINT *points[], BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 6
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: ec_GF2m_simple_field_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_mul_arr
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_field_mul(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 6
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: ec_GF2m_simple_field_sqr
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_sqr_arr
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_field_sqr(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_div
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 676
    functionDepth: 9
    functionLinenumber: 676
    functionLinenumberEnd: 680
    functionName: ec_GF2m_simple_field_div
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_div
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_field_div(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:699,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:699,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:701,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:704,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:708,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:709,1
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:714,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:714,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:716,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:719,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:722,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:723,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:724,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:725,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:726,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:727,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 688
    functionDepth: 6
    functionLinenumber: 688
    functionLinenumberEnd: 734
    functionName: ec_GF2m_simple_ladder_pre
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_sqr
    - ECerr
    - EC_GROUP*::meth::field_encode
    - BN_priv_rand
    - BN_is_zero
    - BN_num_bits
    - BN_GF2m_add
    - EC_GROUP*::meth::field_mul
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_ladder_pre(const EC_GROUP *group,\n                              EC_POINT
      *r, EC_POINT *s,\n                              EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:746,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:747,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:748,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:749,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:750,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:751,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:752,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:753,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:754,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:755,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:756,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:757,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:758,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:759,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 4
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 741
    functionDepth: 5
    functionLinenumber: 741
    functionLinenumberEnd: 763
    functionName: ec_GF2m_simple_ladder_step
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_add
    - EC_GROUP*::meth::field_mul
    - EC_GROUP*::meth::field_sqr
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_ladder_step(const EC_GROUP *group,\n                               EC_POINT
      *r, EC_POINT *s,\n                               EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:779,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:780,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:782,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:783,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:784,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:785,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:791,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:792,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:793,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:794,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:796,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:800,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:801,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:802,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:803,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:804,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:805,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:806,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:807,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:808,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:809,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:810,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:811,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:812,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:813,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:814,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:815,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:816,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:817,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:818,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:824,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:825,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:830,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 30
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 771
    functionDepth: 5
    functionLinenumber: 771
    functionLinenumberEnd: 832
    functionName: ec_GF2m_simple_ladder_post
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_copy
    - EC_GROUP*::meth::field_inv
    - EC_GROUP*::meth::field_sqr
    - EC_POINT_set_to_infinity
    - BN_one
    - ECerr
    - BN_set_negative
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_get
    - BN_is_zero
    - BN_GF2m_add
    - EC_GROUP*::meth::field_mul
    - EC_POINT_invert
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_ladder_post(const EC_GROUP *group,\n                               EC_POINT
      *r, EC_POINT *s,\n                               EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:858,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:858,1
    - Dst: ec_wNAF_mul
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:859,1
    - Dst: ec_scalar_mul_ladder
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:863,1
    - Dst: ec_scalar_mul_ladder
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:867,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:874,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:875,1
    - Dst: ec_scalar_mul_ladder
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:879,1
    - Dst: ec_scalar_mul_ladder
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:880,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:881,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:887,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 834
    functionDepth: 6
    functionLinenumber: 834
    functionLinenumberEnd: 889
    functionName: ec_GF2m_simple_points_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_POINT_free
    - EC_POINT_add
    - ec_scalar_mul_ladder
    - ec_wNAF_mul
    - EC_POINT_new
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_points_mul(const EC_GROUP *group, EC_POINT *r,\n
      \                             const BIGNUM *scalar, size_t num,\n                              const
      EC_POINT *points[],\n                              const BIGNUM *scalars[],\n
      \                             BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_inv
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:901,1
    - Dst: ECerr
      Src: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 896
    functionDepth: 8
    functionLinenumber: 896
    functionLinenumberEnd: 904
    functionName: ec_GF2m_simple_field_inv
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_inv
    - ECerr
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_field_inv(const EC_GROUP *group, BIGNUM *r,\n                                    const
      BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 967
    functionName: EC_GF2m_simple_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GF2m_simple_method(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:32,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:35,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:38,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:44,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:46,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:48,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:51,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:58,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:60,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:61,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:67,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 7
    argNames:
    - out
    - outlen
    - Z
    - Zlen
    - sinfo
    - sinfolen
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 69
    functionName: ecdh_KDF_X9_63
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c
    functionUses: 3
    functionsReached:
    - EVP_DigestFinal
    - EVP_MD_CTX_new
    - memcpy
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - EVP_MD_size
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int ecdh_KDF_X9_63(unsigned char *out, size_t outlen,\n                   const
      unsigned char *Z, size_t Zlen,\n                   const unsigned char *sinfo,
      size_t sinfolen,\n                   const EVP_MD *md)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecdh_KDF_X9_63
      Src: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - out
    - outlen
    - Z
    - Zlen
    - sinfo
    - sinfolen
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: ECDH_KDF_X9_62
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c
    functionUses: 0
    functionsReached:
    - ecdh_KDF_X9_63
    linkageType: ''
    returnType: int
    signature: "int ECDH_KDF_X9_62(unsigned char *out, size_t outlen,\n                   const
      unsigned char *Z, size_t Zlen,\n                   const unsigned char *sinfo,
      size_t sinfolen,\n                   const EVP_MD *md)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: SC_LIMB
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SC_LIMB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: SC_LIMB
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SC_LIMB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: c448_bool_t::mask_to_bool
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline c448_bool_t mask_to_bool(mask_t m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: word_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/word.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - c448_bool_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: bool_to_mask
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
    functionUses: 0
    functionsReached:
    - word_is_zero
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline bool_to_mask(c448_bool_t m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:28,1
    - Dst: gf_strong_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:29,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:31,1
    - Dst: gf_hibit
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:31,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:35,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:36,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - serial
    - x
    - with_hibit
    argTypes:
    - uint8_t[]
    - gf
    - int
    assertStmts:
    - condition: (gf_hibit(red) == 0)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: gf_serialize
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - LIMBPERM
    - LIMB_PLACE_VALUE
    - gf_hibit
    - gf_copy
    - gf_strong_reduce
    - assert
    linkageType: ''
    returnType: void
    signature: void gf_serialize(uint8_t serial[SER_BYTES], const gf x, int with_hibit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:50,1
    - Dst: gf_strong_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: gf_hibit
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    functionUses: 1
    functionsReached:
    - gf_strong_reduce
    - gf_add
    linkageType: ''
    returnType: mask_t
    signature: mask_t gf_hibit(const gf x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:60,1
    - Dst: gf_strong_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: gf_lobit
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - gf_copy
    - gf_strong_reduce
    linkageType: ''
    returnType: mask_t
    signature: mask_t gf_lobit(const gf x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:77,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:77,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:87,1
    - Dst: LIMB_MASK
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:88,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:88,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:89,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:89,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:90,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:90,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:92,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:93,1
    - Dst: gf_hibit
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:95,1
    - Dst: word_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:96,1
    - Dst: word_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - x
    - serial
    - with_hibit
    - hi_nmask
    argTypes:
    - gf
    - uint8_t[]
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 97
    functionName: gf_deserialize
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - LIMBPERM
    - LIMB_PLACE_VALUE
    - gf_hibit
    - LIMB_MASK
    - word_is_zero
    linkageType: ''
    returnType: mask_t
    signature: "mask_t gf_deserialize(gf x, const uint8_t serial[SER_BYTES], int with_hibit,\n
      \                     uint8_t hi_nmask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_weak_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:108,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:115,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:115,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:116,1
    - Dst: LIMB_MASK
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:116,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:116,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:117,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:117,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:125,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:132,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:133,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:134,1
    - Dst: LIMB_MASK
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:134,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:134,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:135,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:135,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf
    assertStmts:
    - condition: (scarry == 0 || scarry == -1)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    - condition: (carry < 2 && ((word_t)carry + scarry_0) == 0)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    constantsTouched: []
    func_position:
      end: 139
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 139
    functionName: gf_strong_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    functionUses: 3
    functionsReached:
    - LIMBPERM
    - LIMB_PLACE_VALUE
    - LIMB_MASK
    - assert
    - gf_weak_reduce
    linkageType: ''
    returnType: void
    signature: void gf_strong_reduce(gf a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_RAW
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:144,1
    - Dst: gf_bias
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:145,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - d
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: gf_sub
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - gf_sub_RAW
    - gf_weak_reduce
    - gf_bias
    linkageType: ''
    returnType: void
    signature: void gf_sub(gf d, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add_RAW
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:152,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: gf_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    functionUses: 1
    functionsReached:
    - gf_weak_reduce
    - gf_add_RAW
    linkageType: ''
    returnType: void
    signature: void gf_add(gf d, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:163,1
    - Dst: gf_strong_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:164,1
    - Dst: LIMBPERM
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:167,1
    - Dst: word_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: gf_eq
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - LIMBPERM
    - gf_sub
    - word_is_zero
    - gf_strong_reduce
    linkageType: ''
    returnType: mask_t
    signature: mask_t gf_eq(const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:176,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:177,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:178,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:179,1
    - Dst: gf_sqrn
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:180,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:181,1
    - Dst: gf_sqrn
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:182,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:183,1
    - Dst: gf_sqrn
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:184,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:185,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:186,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:187,1
    - Dst: gf_sqrn
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:188,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:189,1
    - Dst: gf_sqrn
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:190,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:191,1
    - Dst: gf_sqrn
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:192,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:193,1
    - Dst: gf_sqrn
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:194,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:195,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:196,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:197,1
    - Dst: gf_sqrn
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:198,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:199,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:200,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:201,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:202,1
    - Dst: gf_eq
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - a
    - x
    argTypes:
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 204
    functionName: gf_isr
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - gf_mul
    - gf_copy
    - gf_sqrn
    - gf_sqr
    - gf_eq
    linkageType: ''
    returnType: mask_t
    signature: mask_t gf_isr(gf a, const gf x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:25,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:30,1
    - Dst: EVP_shake256
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:30,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:31,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:32,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:33,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: oneshot_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - EVP_DigestUpdate
    - EVP_shake256
    - EVP_DigestInit_ex
    - EVP_DigestFinalXOF
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t oneshot_hash(uint8_t *out, size_t outlen,\n                                 const
      uint8_t *in, size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - secret_scalar_ser
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: clamp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clamp(uint8_t secret_scalar_ser[EDDSA_448_PRIVATE_BYTES])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:68,1
    - Dst: EVP_shake256
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:68,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:69,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:69,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:70,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - hashctx
    - prehashed
    - for_prehash
    - context
    - context_len
    argTypes:
    - EVP_MD_CTX*
    - uint8_t
    - uint8_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 75
    functionName: hash_init_with_dom
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_shake256
    - EVP_DigestInit_ex
    - strlen
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t hash_init_with_dom(EVP_MD_CTX *hashctx, uint8_t prehashed,\n
      \                                      uint8_t for_prehash,\n                                       const
      uint8_t *context,\n                                       size_t context_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oneshot_hash
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - ed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: c448_ed448_convert_private_key_to_x448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - oneshot_hash
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t c448_ed448_convert_private_key_to_x448(\n                            uint8_t
      x[X448_PRIVATE_BYTES],\n                            const uint8_t ed [EDDSA_448_PRIVATE_BYTES])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oneshot_hash
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:98,1
    - Dst: clamp
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:102,1
    - Dst: curve448_scalar_decode_long
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:104,1
    - Dst: curve448_scalar_halve
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:116,1
    - Dst: curve448_precomputed_scalarmul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:118,1
    - Dst: curve448_point_mul_by_ratio_and_encode_like_eddsa
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:120,1
    - Dst: curve448_scalar_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:123,1
    - Dst: curve448_point_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:124,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pubkey
    - privkey
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 128
    functionName: c448_ed448_derive_public_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - curve448_precomputed_scalarmul
    - clamp
    - curve448_scalar_destroy
    - curve448_point_destroy
    - OPENSSL_cleanse
    - curve448_scalar_halve
    - curve448_point_mul_by_ratio_and_encode_like_eddsa
    - curve448_scalar_decode_long
    - oneshot_hash
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t c448_ed448_derive_public_key(\n                        uint8_t
      pubkey[EDDSA_448_PUBLIC_BYTES],\n                        const uint8_t privkey[EDDSA_448_PRIVATE_BYTES])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:139,1
    - Dst: oneshot_hash
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:156,1
    - Dst: clamp
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:159,1
    - Dst: curve448_scalar_decode_long
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:160,1
    - Dst: hash_init_with_dom
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:164,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:165,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:168,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:169,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:172,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:179,1
    - Dst: curve448_scalar_decode_long
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:181,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:182,1
    - Dst: curve448_scalar_halve
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:190,1
    - Dst: curve448_scalar_halve
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:192,1
    - Dst: curve448_precomputed_scalarmul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:194,1
    - Dst: curve448_point_mul_by_ratio_and_encode_like_eddsa
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:196,1
    - Dst: curve448_point_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:197,1
    - Dst: curve448_scalar_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:198,1
    - Dst: hash_init_with_dom
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:205,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:206,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:207,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:208,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:209,1
    - Dst: curve448_scalar_decode_long
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:212,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:214,1
    - Dst: curve448_scalar_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:217,1
    - Dst: curve448_scalar_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:218,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:220,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:221,1
    - Dst: curve448_scalar_encode
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:222,1
    - Dst: curve448_scalar_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:225,1
    - Dst: curve448_scalar_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:226,1
    - Dst: curve448_scalar_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:227,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:231,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 8
    argNames:
    - signature
    - privkey
    - pubkey
    - message
    - message_len
    - prehashed
    - context
    - context_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 233
    functionName: c448_ed448_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - curve448_scalar_mul
    - curve448_scalar_encode
    - EVP_MD_CTX_new
    - curve448_precomputed_scalarmul
    - curve448_scalar_add
    - clamp
    - curve448_scalar_destroy
    - memcpy
    - EVP_DigestUpdate
    - EVP_DigestFinalXOF
    - curve448_point_destroy
    - OPENSSL_cleanse
    - curve448_scalar_halve
    - EVP_MD_CTX_free
    - curve448_point_mul_by_ratio_and_encode_like_eddsa
    - hash_init_with_dom
    - curve448_scalar_decode_long
    - oneshot_hash
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t c448_ed448_sign(\n                        uint8_t signature[EDDSA_448_SIGNATURE_BYTES],\n
      \                       const uint8_t privkey[EDDSA_448_PRIVATE_BYTES],\n                        const
      uint8_t pubkey[EDDSA_448_PUBLIC_BYTES],\n                        const uint8_t
      *message, size_t message_len,\n                        uint8_t prehashed, const
      uint8_t *context,\n                        size_t context_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c448_ed448_sign
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - signature
    - privkey
    - pubkey
    - hash
    - context
    - context_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: c448_ed448_sign_prehash
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - c448_ed448_sign
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t c448_ed448_sign_prehash(\n                        uint8_t
      signature[EDDSA_448_SIGNATURE_BYTES],\n                        const uint8_t
      privkey[EDDSA_448_PRIVATE_BYTES],\n                        const uint8_t pubkey[EDDSA_448_PUBLIC_BYTES],\n
      \                       const uint8_t hash[64], const uint8_t *context,\n                        size_t
      context_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curve448_point_decode_like_eddsa_and_mul_by_ratio
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:283,1
    - Dst: curve448_point_decode_like_eddsa_and_mul_by_ratio
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:289,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:295,1
    - Dst: hash_init_with_dom
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:299,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:301,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:302,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:303,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:304,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:305,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:309,1
    - Dst: curve448_scalar_decode_long
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:310,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:312,1
    - Dst: curve448_scalar_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:314,1
    - Dst: curve448_scalar_decode_long
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:317,1
    - Dst: curve448_base_double_scalarmul_non_secret
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:322,1
    - Dst: c448_succeed_if
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:325,1
    - Dst: curve448_point_eq
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:325,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 7
    argNames:
    - signature
    - pubkey
    - message
    - message_len
    - prehashed
    - context
    - context_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 326
    functionName: c448_ed448_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - curve448_base_double_scalarmul_non_secret
    - curve448_point_decode_like_eddsa_and_mul_by_ratio
    - EVP_MD_CTX_new
    - curve448_point_eq
    - EVP_DigestUpdate
    - EVP_DigestFinalXOF
    - curve448_scalar_sub
    - EVP_MD_CTX_free
    - hash_init_with_dom
    - curve448_scalar_decode_long
    - c448_succeed_if
    - OPENSSL_cleanse
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t c448_ed448_verify(\n                    const uint8_t
      signature[EDDSA_448_SIGNATURE_BYTES],\n                    const uint8_t pubkey[EDDSA_448_PUBLIC_BYTES],\n
      \                   const uint8_t *message, size_t message_len,\n                    uint8_t
      prehashed, const uint8_t *context,\n                    uint8_t context_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c448_ed448_verify
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - signature
    - pubkey
    - hash
    - context
    - context_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 5
    functionLinenumber: 328
    functionLinenumberEnd: 336
    functionName: c448_ed448_verify_prehash
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - c448_ed448_verify
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t c448_ed448_verify_prehash(\n                    const
      uint8_t signature[EDDSA_448_SIGNATURE_BYTES],\n                    const uint8_t
      pubkey[EDDSA_448_PUBLIC_BYTES],\n                    const uint8_t hash[64],
      const uint8_t *context,\n                    uint8_t context_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c448_ed448_sign
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - out_sig
    - message
    - message_len
    - public_key
    - private_key
    - context
    - context_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 6
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: ED448_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 1
    functionsReached:
    - c448_ed448_sign
    linkageType: ''
    returnType: int
    signature: "int ED448_sign(uint8_t *out_sig, const uint8_t *message, size_t message_len,\n
      \              const uint8_t public_key[57], const uint8_t private_key[57],\n
      \              const uint8_t *context, size_t context_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c448_ed448_verify
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - message
    - message_len
    - signature
    - public_key
    - context
    - context_len
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 5
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: ED448_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 1
    functionsReached:
    - c448_ed448_verify
    linkageType: ''
    returnType: int
    signature: "int ED448_verify(const uint8_t *message, size_t message_len,\n                 const
      uint8_t signature[114], const uint8_t public_key[57],\n                 const
      uint8_t *context, size_t context_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c448_ed448_sign_prehash
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - out_sig
    - hash
    - public_key
    - private_key
    - context
    - context_len
    argTypes:
    - uint8_t*
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 7
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: ED448ph_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - c448_ed448_sign_prehash
    linkageType: ''
    returnType: int
    signature: "int ED448ph_sign(uint8_t *out_sig, const uint8_t hash[64],\n                 const
      uint8_t public_key[57], const uint8_t private_key[57],\n                 const
      uint8_t *context, size_t context_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c448_ed448_verify_prehash
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - hash
    - signature
    - public_key
    - context
    - context_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 6
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: ED448ph_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - c448_ed448_verify_prehash
    linkageType: ''
    returnType: int
    signature: "int ED448ph_verify(const uint8_t hash[64], const uint8_t signature[114],\n
      \                  const uint8_t public_key[57], const uint8_t *context,\n                   size_t
      context_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c448_ed448_derive_public_key
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out_public_key
    - private_key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 6
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: ED448_public_from_private
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
    functionUses: 1
    functionsReached:
    - c448_ed448_derive_public_key
    linkageType: ''
    returnType: int
    signature: "int ED448_public_from_private(uint8_t out_public_key[57],\n                              const
      uint8_t private_key[57])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - out
    - accum
    - sub
    - p
    - extra
    argTypes:
    - curve448_scalar_t
    - c448_word_t[]
    - curve448_scalar_t
    - curve448_scalar_t
    - c448_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: sc_subx
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sc_subx(curve448_scalar_t out,\n                    const c448_word_t
      accum[C448_SCALAR_LIMBS],\n                    const curve448_scalar_t sub,\n
      \                   const curve448_scalar_t p, c448_word_t extra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_subx
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 107
    functionName: sc_montmul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 0
    functionsReached:
    - sc_subx
    linkageType: ''
    returnType: void
    signature: "void sc_montmul(curve448_scalar_t out, const curve448_scalar_t a,\n
      \                      const curve448_scalar_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_montmul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:112,1
    - Dst: sc_montmul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: curve448_scalar_mul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 1
    functionsReached:
    - sc_montmul
    linkageType: ''
    returnType: void
    signature: "void curve448_scalar_mul(curve448_scalar_t out, const curve448_scalar_t
      a,\n                         const curve448_scalar_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_subx
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: curve448_scalar_sub
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 1
    functionsReached:
    - sc_subx
    linkageType: ''
    returnType: void
    signature: "void curve448_scalar_sub(curve448_scalar_t out, const curve448_scalar_t
      a,\n                         const curve448_scalar_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_subx
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: curve448_scalar_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 1
    functionsReached:
    - sc_subx
    linkageType: ''
    returnType: void
    signature: "void curve448_scalar_add(curve448_scalar_t out, const curve448_scalar_t
      a,\n                         const curve448_scalar_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - s
    - ser
    - nbytes
    argTypes:
    - curve448_scalar_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: scalar_decode_short
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline scalar_decode_short(curve448_scalar_t s,\n                                            const
      unsigned char *ser,\n                                            size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scalar_decode_short
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:158,1
    - Dst: curve448_scalar_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:163,1
    - Dst: c448_succeed_if
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:165,1
    - Dst: word_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - ser
    argTypes:
    - curve448_scalar_t
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: curve448_scalar_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 0
    functionsReached:
    - curve448_scalar_mul
    - word_is_zero
    - scalar_decode_short
    - c448_succeed_if
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t curve448_scalar_decode(\n                                curve448_scalar_t
      s,\n                                const unsigned char ser[C448_SCALAR_BYTES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: curve448_scalar_destroy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 2
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void curve448_scalar_destroy(curve448_scalar_t scalar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curve448_scalar_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:180,1
    - Dst: scalar_decode_short
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:188,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:191,1
    - Dst: curve448_scalar_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:193,1
    - Dst: curve448_scalar_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:194,1
    - Dst: sc_montmul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:200,1
    - Dst: curve448_scalar_decode
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:201,1
    - Dst: curve448_scalar_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:202,1
    - Dst: curve448_scalar_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:205,1
    - Dst: curve448_scalar_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:206,1
    - Dst: curve448_scalar_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - s
    - ser
    - ser_len
    argTypes:
    - curve448_scalar_t
    - unsigned char*
    - size_t
    assertStmts:
    - condition: (i == 0)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    constantsTouched: []
    func_position:
      end: 208
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 208
    functionName: curve448_scalar_decode_long
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 3
    functionsReached:
    - curve448_scalar_mul
    - scalar_decode_short
    - curve448_scalar_add
    - curve448_scalar_decode
    - curve448_scalar_destroy
    - sc_montmul
    - assert
    - curve448_scalar_copy
    linkageType: ''
    returnType: void
    signature: "void curve448_scalar_decode_long(curve448_scalar_t s,\n                                 const
      unsigned char *ser, size_t ser_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ser
    - s
    argTypes:
    - unsigned char[]
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: curve448_scalar_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void curve448_scalar_encode(unsigned char ser[C448_SCALAR_BYTES],\n
      \                           const curve448_scalar_t s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 235
    functionName: curve448_scalar_halve
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void curve448_scalar_halve(curve448_scalar_t out, const curve448_scalar_t
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: gf_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: INLINE_UNUSED
    signature: INLINE_UNUSED gf_copy(gf out, const gf a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: LIMBPERM
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMBPERM(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: LIMB_MASK
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMB_MASK(i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_RAW
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:101,1
    - Dst: gf_bias
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:102,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: gf_sub_nr
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - gf_sub_RAW
    - gf_weak_reduce
    - gf_bias
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_sub_nr(gf c, const gf a, const gf b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_RAW
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:110,1
    - Dst: gf_bias
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:111,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - c
    - a
    - b
    - amt
    argTypes:
    - gf
    - gf
    - gf
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: gf_subx_nr
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - gf_sub_RAW
    - gf_weak_reduce
    - gf_bias
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_subx_nr(gf c, const gf a, const gf b, int amt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_mulw_unsigned
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:120,1
    - Dst: gf_mulw_unsigned
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:122,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - c
    - a
    - w
    argTypes:
    - gf
    - gf
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: gf_mulw
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - gf_mulw_unsigned
    - gf_sub
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_mulw(gf c, const gf a, int32_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select_32
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:134,1
    - Dst: constant_time_select_64
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - x
    - y
    - z
    - is_z
    argTypes:
    - gf
    - gf
    - gf
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: gf_cond_sel
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - constant_time_select_32
    - constant_time_select_64
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_cond_sel(gf x, const gf y, const gf z, mask_t is_z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:149,1
    - Dst: gf_cond_sel
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - neg
    argTypes:
    - gf
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: gf_cond_neg
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - gf_sub
    - gf_cond_sel
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_cond_neg(gf x, mask_t neg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_cond_swap_32
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:160,1
    - Dst: constant_time_cond_swap_64
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/field.h:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - RESTRICT
    - swap
    argTypes:
    - gf
    - gf_s*
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: gf_cond_swap
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - constant_time_cond_swap_64
    - constant_time_cond_swap_32
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_cond_swap(gf x, gf_s * RESTRICT y, mask_t swap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:46,1
    - Dst: gf_isr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:47,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:50,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:51,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:52,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - y
    - x
    - assert_nonzero
    argTypes:
    - gf
    - gf
    - int
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: gf_invert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_isr
    - gf_mul
    - gf_copy
    - assert
    - gf_sqr
    linkageType: ''
    returnType: void
    signature: void gf_invert(gf y, const gf x, int assert_nonzero)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:65,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:66,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:67,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:68,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:69,1
    - Dst: gf_subx_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:70,1
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:71,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:72,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:73,1
    - Dst: gf_subx_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:74,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:76,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:77,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:78,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:79,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - p
    - q
    - before_double
    argTypes:
    - curve448_point_t
    - curve448_point_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 82
    functionName: point_double_internal
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_sub_nr
    - gf_subx_nr
    - gf_add_nr
    - gf_mul
    - gf_weak_reduce
    - gf_sqr
    linkageType: ''
    returnType: void
    signature: "void point_double_internal(curve448_point_t p, const curve448_point_t
      q,\n                                  int before_double)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: point_double_internal
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - q
    argTypes:
    - curve448_point_t
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: curve448_point_double
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - point_double_internal
    linkageType: ''
    returnType: void
    signature: void curve448_point_double(curve448_point_t p, const curve448_point_t
      q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_cond_swap
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:92,1
    - Dst: gf_cond_neg
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - neg
    argTypes:
    - niels_t
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: cond_neg_niels
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_cond_swap
    - gf_cond_neg
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline cond_neg_niels(niels_t n, mask_t neg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:98,1
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:99,1
    - Dst: gf_mulw
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:100,1
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - b
    - a
    argTypes:
    - pniels_t
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: pt_to_pniels
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_sub
    - gf_mulw
    - gf_add
    linkageType: ''
    returnType: void
    signature: void pt_to_pniels(pniels_t b, const curve448_point_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:108,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:109,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:110,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:111,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:112,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - e
    - d
    argTypes:
    - curve448_point_t
    - pniels_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: pniels_to_pt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_sub
    - gf_sqr
    - gf_mul
    - gf_add
    linkageType: ''
    returnType: void
    signature: void pniels_to_pt(curve448_point_t e, const pniels_t d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:118,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:119,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:120,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - e
    - n
    argTypes:
    - curve448_point_t
    - niels_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: niels_to_pt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_copy
    - gf_sub
    - gf_mul
    - gf_add
    linkageType: ''
    returnType: void
    signature: void niels_to_pt(curve448_point_t e, const niels_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:129,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:130,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:131,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:132,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:133,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:134,1
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:135,1
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:136,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:137,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:138,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:139,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:140,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - d
    - e
    - before_double
    argTypes:
    - curve448_point_t
    - niels_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 143
    functionName: add_niels_to_pt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_add_nr
    - gf_sub_nr
    - gf_mul
    linkageType: ''
    returnType: void
    signature: "void add_niels_to_pt(curve448_point_t d, const niels_t e,\n                            int
      before_double)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:150,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:151,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:152,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:153,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:154,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:155,1
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:156,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:157,1
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:158,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:159,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:160,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:161,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - d
    - e
    - before_double
    argTypes:
    - curve448_point_t
    - niels_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 164
    functionName: sub_niels_from_pt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_add_nr
    - gf_sub_nr
    - gf_mul
    linkageType: ''
    returnType: void
    signature: "void sub_niels_from_pt(curve448_point_t d, const niels_t e,\n                              int
      before_double)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:171,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:172,1
    - Dst: add_niels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - pn
    - before_double
    argTypes:
    - curve448_point_t
    - pniels_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: add_pniels_to_pt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_copy
    - add_niels_to_pt
    - gf_mul
    linkageType: ''
    returnType: void
    signature: "void add_pniels_to_pt(curve448_point_t p, const pniels_t pn,\n                             int
      before_double)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:181,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:182,1
    - Dst: sub_niels_from_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - pn
    - before_double
    argTypes:
    - curve448_point_t
    - pniels_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: sub_pniels_from_pt
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_copy
    - sub_niels_from_pt
    - gf_mul
    linkageType: ''
    returnType: void
    signature: "void sub_pniels_from_pt(curve448_point_t p, const pniels_t pn,\n                               int
      before_double)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:193,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:194,1
    - Dst: gf_eq
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:195,1
    - Dst: mask_to_bool
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - q
    argTypes:
    - curve448_point_t
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: curve448_point_eq
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 1
    functionsReached:
    - gf_mul
    - gf_eq
    - mask_to_bool
    linkageType: ''
    returnType: c448_bool_t
    signature: "c448_bool_t curve448_point_eq(const curve448_point_t p,\n                              const
      curve448_point_t q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:205,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:206,1
    - Dst: gf_eq
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:207,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:208,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:209,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:210,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:211,1
    - Dst: gf_mulw
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:212,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:213,1
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:214,1
    - Dst: gf_eq
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:215,1
    - Dst: gf_eq
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:216,1
    - Dst: mask_to_bool
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 218
    functionName: curve448_point_valid
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_mulw
    - gf_mul
    - gf_sub
    - gf_add
    - gf_sqr
    - gf_eq
    - mask_to_bool
    linkageType: ''
    returnType: c448_bool_t
    signature: c448_bool_t curve448_point_valid(const curve448_point_t p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curve448_scalar_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:236,1
    - Dst: curve448_scalar_halve
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:237,1
    - Dst: point_double_internal
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:241,1
    - Dst: constant_time_lookup_niels
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:259,1
    - Dst: cond_neg_niels
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:262,1
    - Dst: add_niels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:264,1
    - Dst: niels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:266,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:270,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - out
    - table
    - scalar
    argTypes:
    - curve448_point_t
    - curve448_precomputed_s*
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 272
    functionName: curve448_precomputed_scalarmul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 2
    functionsReached:
    - point_double_internal
    - add_niels_to_pt
    - curve448_scalar_add
    - niels_to_pt
    - curve448_scalar_halve
    - constant_time_lookup_niels
    - cond_neg_niels
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "void curve448_precomputed_scalarmul(curve448_point_t out,\n                                    const
      curve448_precomputed_s * table,\n                                    const curve448_scalar_t
      scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve448_point_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:282,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:288,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:289,1
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:290,1
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:291,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:292,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:293,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:294,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:295,1
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:296,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:297,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:298,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:299,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:300,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:301,1
    - Dst: gf_invert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:305,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:306,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:307,1
    - Dst: gf_serialize
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:311,1
    - Dst: gf_lobit
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:312,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:314,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:315,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:316,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:317,1
    - Dst: curve448_point_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - uint8_t[]
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 274
    functionDepth: 5
    functionLinenumber: 274
    functionLinenumberEnd: 319
    functionName: curve448_point_mul_by_ratio_and_encode_like_eddsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 2
    functionsReached:
    - gf_lobit
    - gf_mul
    - curve448_point_copy
    - curve448_point_destroy
    - gf_sub
    - gf_serialize
    - gf_add
    - gf_invert
    - gf_sqr
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "void curve448_point_mul_by_ratio_and_encode_like_eddsa(\n                                    uint8_t
      enc[EDDSA_448_PUBLIC_BYTES],\n                                    const curve448_point_t
      p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:329,1
    - Dst: word_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:331,1
    - Dst: gf_deserialize
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:334,1
    - Dst: word_is_zero
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:335,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:337,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:338,1
    - Dst: gf_mulw
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:339,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:340,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:342,1
    - Dst: gf_isr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:343,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:345,1
    - Dst: gf_cond_neg
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:346,1
    - Dst: gf_lobit
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:346,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:347,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:353,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:354,1
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:355,1
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:356,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:357,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:358,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:359,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:360,1
    - Dst: gf_add
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:361,1
    - Dst: gf_sub
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:362,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:363,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:364,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:365,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:366,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:367,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:368,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:369,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:370,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:373,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:374,1
    - Dst: curve448_point_valid
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:374,1
    - Dst: c448_succeed_if
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:376,1
    - Dst: mask_to_bool
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - p
    - enc
    argTypes:
    - curve448_point_t
    - uint8_t[]
    assertStmts:
    - condition: (curve448_point_valid(p) || ~succ)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    constantsTouched: []
    func_position:
      end: 377
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 377
    functionName: curve448_point_decode_like_eddsa_and_mul_by_ratio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 1
    functionsReached:
    - gf_lobit
    - gf_deserialize
    - gf_mulw
    - gf_isr
    - c448_succeed_if
    - gf_mul
    - memcpy
    - mask_to_bool
    - gf_copy
    - gf_sub
    - gf_add
    - gf_cond_neg
    - assert
    - word_is_zero
    - gf_sqr
    - curve448_point_valid
    - OPENSSL_cleanse
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t curve448_point_decode_like_eddsa_and_mul_by_ratio(\n
      \                               curve448_point_t p,\n                                const
      uint8_t enc[EDDSA_448_PUBLIC_BYTES])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gf_deserialize
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:388,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:389,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:390,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:391,1
    - Dst: gf_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:392,1
    - Dst: gf_cond_swap
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:408,1
    - Dst: gf_cond_swap
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:409,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:417,1
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:418,1
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:419,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:420,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:421,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:422,1
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:423,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:424,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:425,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:426,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:427,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:429,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:430,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:431,1
    - Dst: gf_sub_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:432,1
    - Dst: gf_mulw
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:434,1
    - Dst: gf_add_nr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:435,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:436,1
    - Dst: gf_cond_swap
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:440,1
    - Dst: gf_cond_swap
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:441,1
    - Dst: gf_invert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:442,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:443,1
    - Dst: gf_serialize
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:444,1
    - Dst: gf_eq
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:445,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:447,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:448,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:449,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:450,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:451,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:452,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:453,1
    - Dst: c448_succeed_if
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:455,1
    - Dst: mask_to_bool
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 3
    argNames:
    - out
    - base
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 379
    functionDepth: 5
    functionLinenumber: 379
    functionLinenumberEnd: 456
    functionName: x448_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_sub_nr
    - gf_deserialize
    - gf_mulw
    - c448_succeed_if
    - gf_add_nr
    - gf_mul
    - mask_to_bool
    - gf_copy
    - gf_serialize
    - gf_eq
    - gf_invert
    - gf_sqr
    - gf_cond_swap
    - OPENSSL_cleanse
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t x448_int(uint8_t out[X_PUBLIC_BYTES],\n                      const
      uint8_t base[X_PUBLIC_BYTES],\n                      const uint8_t scalar[X_PRIVATE_BYTES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve448_point_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:464,1
    - Dst: gf_invert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:465,1
    - Dst: gf_mul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:466,1
    - Dst: gf_sqr
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:467,1
    - Dst: gf_serialize
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:468,1
    - Dst: curve448_point_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - p
    argTypes:
    - uint8_t[]
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 5
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: curve448_point_mul_by_ratio_and_encode_like_x448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_mul
    - curve448_point_copy
    - gf_serialize
    - gf_invert
    - gf_sqr
    - curve448_point_destroy
    linkageType: ''
    returnType: void
    signature: "void curve448_point_mul_by_ratio_and_encode_like_x448(uint8_t\n                                                      out[X_PUBLIC_BYTES],\n
      \                                                     const curve448_point_t
      p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:481,1
    - Dst: curve448_scalar_decode_long
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:487,1
    - Dst: curve448_scalar_halve
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:491,1
    - Dst: curve448_precomputed_scalarmul
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:493,1
    - Dst: curve448_point_mul_by_ratio_and_encode_like_x448
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:494,1
    - Dst: curve448_point_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 472
    functionDepth: 6
    functionLinenumber: 472
    functionLinenumberEnd: 496
    functionName: x448_derive_public_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - curve448_precomputed_scalarmul
    - curve448_point_mul_by_ratio_and_encode_like_x448
    - memcpy
    - curve448_scalar_halve
    - curve448_scalar_decode_long
    - curve448_point_destroy
    linkageType: ''
    returnType: void
    signature: "void x448_derive_public_key(uint8_t out[X_PUBLIC_BYTES],\n                            const
      uint8_t scalar[X_PRIVATE_BYTES])"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - i
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 540
    functionName: numtrailingzeros
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t numtrailingzeros(uint32_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NUMTRAILINGZEROS
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:575,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:579,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - control
    - scalar
    - table_bits
    argTypes:
    - struct smvt_control*
    - curve448_scalar_t
    - unsigned int
    assertStmts:
    - condition: (position >= 0)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    - condition: (current == 0)
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    constantsTouched: []
    func_position:
      end: 597
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 597
    functionName: recode_wnaf
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - NUMTRAILINGZEROS
    - assert
    linkageType: ''
    returnType: int
    signature: "int recode_wnaf(struct smvt_control *control,\n                       /*
      [nbits/(table_bits + 1) + 3] */\n                       const curve448_scalar_t
      scalar,\n                       unsigned int table_bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pt_to_pniels
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:607,1
    - Dst: curve448_point_double
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:612,1
    - Dst: pt_to_pniels
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:613,1
    - Dst: add_pniels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:615,1
    - Dst: pt_to_pniels
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:616,1
    - Dst: add_pniels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:619,1
    - Dst: pt_to_pniels
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:620,1
    - Dst: curve448_point_destroy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:623,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - output
    - working
    - tbits
    argTypes:
    - pniels_t*
    - curve448_point_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 625
    functionName: prepare_wnaf_table
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - add_pniels_to_pt
    - OPENSSL_cleanse
    - curve448_point_double
    - pt_to_pniels
    - curve448_point_destroy
    linkageType: ''
    returnType: void
    signature: "void prepare_wnaf_table(pniels_t * output,\n                               const
      curve448_point_t working,\n                               unsigned int tbits)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: recode_wnaf
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:638,1
    - Dst: recode_wnaf
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:639,1
    - Dst: prepare_wnaf_table
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:643,1
    - Dst: curve448_point_copy
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:647,1
    - Dst: pniels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:651,1
    - Dst: pniels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:654,1
    - Dst: add_niels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:655,1
    - Dst: niels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:661,1
    - Dst: point_double_internal
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:669,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:672,1
    - Dst: add_pniels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:675,1
    - Dst: sub_pniels_from_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:679,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:686,1
    - Dst: add_niels_to_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:689,1
    - Dst: sub_niels_from_pt
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:693,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:701,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:702,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:703,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:705,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:707,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - combo
    - scalar1
    - base2
    - scalar2
    argTypes:
    - curve448_point_t
    - curve448_scalar_t
    - curve448_point_t
    - curve448_scalar_t
    assertStmts:
    - condition: (control_pre[contp].addend)
      pos:
        line_end: 685
        line_start: 685
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    - condition: (control_var[contv].addend)
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    - condition: (contv == ncb_var)
      pos:
        line_end: 704
        line_start: 704
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    - condition: (contp == ncb_pre)
      pos:
        line_end: 706
        line_start: 706
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    constantsTouched: []
    func_position:
      end: 709
      start: 627
    functionDepth: 5
    functionLinenumber: 627
    functionLinenumberEnd: 709
    functionName: curve448_base_double_scalarmul_non_secret
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 1
    functionsReached:
    - add_pniels_to_pt
    - add_niels_to_pt
    - niels_to_pt
    - point_double_internal
    - sub_niels_from_pt
    - curve448_point_copy
    - prepare_wnaf_table
    - assert
    - sub_pniels_from_pt
    - recode_wnaf
    - pniels_to_pt
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "void curve448_base_double_scalarmul_non_secret(curve448_point_t combo,\n
      \                                              const curve448_scalar_t scalar1,\n
      \                                              const curve448_point_t base2,\n
      \                                              const curve448_scalar_t scalar2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - point
    argTypes:
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 714
    functionName: curve448_point_destroy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 6
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void curve448_point_destroy(curve448_point_t point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x448_int
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_key
    - private_key
    - peer_public_value
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 716
    functionDepth: 6
    functionLinenumber: 716
    functionLinenumberEnd: 721
    functionName: X448
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 2
    functionsReached:
    - x448_int
    linkageType: ''
    returnType: int
    signature: "int X448(uint8_t out_shared_key[56], const uint8_t private_key[56],\n
      \        const uint8_t peer_public_value[56])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x448_derive_public_key
      Src: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out_public_value
    - private_key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 723
    functionDepth: 7
    functionLinenumber: 723
    functionLinenumberEnd: 727
    functionName: X448_public_from_private
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    functionUses: 1
    functionsReached:
    - x448_derive_public_key
    linkageType: ''
    returnType: void
    signature: "void X448_public_from_private(uint8_t out_public_value[56],\n                              const
      uint8_t private_key[56])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - c448_bool_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: c448_error_t::c448_succeed_if
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline c448_error_t c448_succeed_if(c448_bool_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: curve448_scalar_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline curve448_scalar_copy(curve448_scalar_t out,\n                                             const
      curve448_scalar_t a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - curve448_point_t
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: curve448_point_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline curve448_point_copy(curve448_point_t a,\n                                            const
      curve448_point_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: word_is_zero
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/arch_intrinsics.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word_is_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: widemul
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/arch_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline widemul(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: LIMB
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: FIELD_LITERAL
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIELD_LITERAL(a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: LIMB_PLACE_VALUE
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMB_PLACE_VALUE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: gf_add_RAW
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_add_RAW(gf out, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: gf_sub_RAW
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_sub_RAW(gf out, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - amt
    argTypes:
    - gf
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: gf_bias
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_bias(gf a, int amt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: gf_weak_reduce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_weak_reduce(gf a)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:115,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:117,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:119,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:123,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:125,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:127,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:131,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:133,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:135,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 4
    argNames:
    - method
    - in
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 141
    functionName: i2r_ocsp_crlid
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - i2a_ASN1_INTEGER
    - ASN1_GENERALIZEDTIME_print
    - BIO_printf
    - ASN1_STRING_print
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_crlid(const X509V3_EXT_METHOD *method, void *in, BIO
      *bp,\n                          int ind)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:146,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - method
    - cutoff
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: i2r_ocsp_acutoff
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_print
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_acutoff(const X509V3_EXT_METHOD *method, void *cutoff,\n
      \                           BIO *bp, int ind)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:156,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - method
    - oid
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: i2r_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_object(const X509V3_EXT_METHOD *method, void *oid, BIO *bp,\n
      \                     int ind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ocsp_nonce_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: void
    signature: void *ocsp_nonce_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - void*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: i2d_ocsp_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int i2d_ocsp_nonce(void *a, unsigned char **pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:188,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:194,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:205,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:206,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - void*
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 208
    functionName: d2i_ocsp_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - OCSPerr
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: void *d2i_ocsp_nonce(void *a, const unsigned char **pp, long length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: ocsp_nonce_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: void ocsp_nonce_free(void *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:218,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - method
    - nonce
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: i2r_ocsp_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_STRING
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_nonce(const X509V3_EXT_METHOD *method, void *nonce,\n
      \                         BIO *out, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - method
    - nocheck
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: i2r_ocsp_nocheck
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_nocheck(const X509V3_EXT_METHOD *method, void *nocheck,\n
      \                           BIO *out, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_NULL_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: s2i_ocsp_nocheck
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_NULL_new
    linkageType: ''
    returnType: void
    signature: "void *s2i_ocsp_nocheck(const X509V3_EXT_METHOD *method,\n                              X509V3_CTX
      *ctx, const char *str)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:246,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:248,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:250,1
    - Dst: sk_ACCESS_DESCRIPTION_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:251,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:252,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:254,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:256,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c:258,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 4
    argNames:
    - method
    - in
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 264
    functionName: i2r_ocsp_serviceloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    - X509_NAME_print_ex
    - BIO_puts
    - BIO_printf
    - sk_ACCESS_DESCRIPTION_value
    - sk_ACCESS_DESCRIPTION_num
    - GENERAL_NAME_print
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_serviceloc(const X509V3_EXT_METHOD *method, void *in,\n
      \                              BIO *bp, int ind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: OCSP_REQUEST_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_REQUEST*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: OCSP_REQUEST_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - OCSP_REQUEST*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: OCSP_REQUEST_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT
      *obj,\n                                int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_REQUEST*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: OCSP_REQUEST_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_REQUEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: OCSP_REQUEST_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_REQUEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: OCSP_REQUEST_delete_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - OCSP_REQUEST*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: OCSP_REQUEST_get1_ext_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit,
      int *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - OCSP_REQUEST*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: OCSP_REQUEST_add1_ext_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value,
      int crit,\n                              unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - OCSP_REQUEST*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: OCSP_REQUEST_add_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_ONEREQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: OCSP_ONEREQ_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_ONEREQ*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: OCSP_ONEREQ_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - OCSP_ONEREQ*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: OCSP_ONEREQ_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj,\n
      \                              int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_ONEREQ*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: OCSP_ONEREQ_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_ONEREQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: OCSP_ONEREQ_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_ONEREQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: OCSP_ONEREQ_delete_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - OCSP_ONEREQ*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: OCSP_ONEREQ_get1_ext_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit,
      int *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - OCSP_ONEREQ*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: OCSP_ONEREQ_add1_ext_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value,
      int crit,\n                             unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - OCSP_ONEREQ*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: OCSP_ONEREQ_add_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: OCSP_BASICRESP_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_BASICRESP*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: OCSP_BASICRESP_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - OCSP_BASICRESP*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: OCSP_BASICRESP_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT
      *obj,\n                                  int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_BASICRESP*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: OCSP_BASICRESP_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: "int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit,\n
      \                                      int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_BASICRESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: OCSP_BASICRESP_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_BASICRESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: OCSP_BASICRESP_delete_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - OCSP_BASICRESP*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: OCSP_BASICRESP_get1_ext_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: "void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int
      *crit,\n                                  int *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - OCSP_BASICRESP*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: OCSP_BASICRESP_add1_ext_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value,\n
      \                               int crit, unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - OCSP_BASICRESP*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: OCSP_BASICRESP_add_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int
      loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_SINGLERESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: OCSP_SINGLERESP_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: OCSP_SINGLERESP_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - OCSP_SINGLERESP*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: OCSP_SINGLERESP_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT
      *obj,\n                                   int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: OCSP_SINGLERESP_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: "int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit,\n
      \                                       int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_SINGLERESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: OCSP_SINGLERESP_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_SINGLERESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: OCSP_SINGLERESP_delete_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int
      loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: OCSP_SINGLERESP_get1_ext_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: "void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int
      *crit,\n                                   int *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: OCSP_SINGLERESP_add1_ext_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void
      *value,\n                                 int crit, unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - OCSP_SINGLERESP*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: OCSP_SINGLERESP_add_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex,
      int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_add1_nonce
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - req
    - val
    - len
    argTypes:
    - OCSP_REQUEST*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: OCSP_request_add1_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ocsp_add1_nonce
    linkageType: ''
    returnType: int
    signature: int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val,
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_add1_nonce
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - resp
    - val
    - len
    argTypes:
    - OCSP_BASICRESP*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: OCSP_basic_add1_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ocsp_add1_nonce
    linkageType: ''
    returnType: int
    signature: int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val,
      int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQUEST_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:321,1
    - Dst: OCSP_BASICRESP_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:322,1
    - Dst: OCSP_REQUEST_get_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:335,1
    - Dst: OCSP_BASICRESP_get_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:336,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:337,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:337,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:338,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - req
    - bs
    argTypes:
    - OCSP_REQUEST*
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 341
    functionName: OCSP_check_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - OCSP_BASICRESP_get_ext_by_NID
    - OCSP_REQUEST_get_ext
    - OCSP_BASICRESP_get_ext
    - X509_EXTENSION_get_data
    - ASN1_OCTET_STRING_cmp
    - OCSP_REQUEST_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQUEST_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:352,1
    - Dst: OCSP_REQUEST_get_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:356,1
    - Dst: OCSP_BASICRESP_add_ext
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - resp
    - req
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 358
    functionName: OCSP_copy_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - OCSP_BASICRESP_add_ext
    - OCSP_REQUEST_get_ext_by_NID
    - OCSP_REQUEST_get_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_CRLID_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:365,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:368,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:370,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:374,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:376,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:380,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:382,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:385,1
    - Dst: OCSP_CRLID_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:387,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - url
    - n
    - tim
    argTypes:
    - char*
    - long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 389
    functionName: OCSP_crlID_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_STRING_set
    - OCSP_CRLID_new
    - ASN1_INTEGER_set
    - ASN1_GENERALIZEDTIME_new
    - OCSP_CRLID_free
    - ASN1_GENERALIZEDTIME_set_string
    - X509V3_EXT_i2d
    - ASN1_IA5STRING_new
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:395,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:399,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:402,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:402,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:403,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:406,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - oids
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 410
    functionName: OCSP_accept_responses_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    - OBJ_nid2obj
    - sk_ASN1_OBJECT_new_null
    - sk_ASN1_OBJECT_push
    - STACK_OF
    - OBJ_txt2nid
    - X509V3_EXT_i2d
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_accept_responses_new(char **oids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:418,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:420,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:422,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - tim
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 426
    functionName: OCSP_archive_cutoff_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_free
    - ASN1_GENERALIZEDTIME_new
    - ASN1_GENERALIZEDTIME_set_string
    - X509V3_EXT_i2d
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_archive_cutoff_new(char *tim)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_SERVICELOC_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:440,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:442,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:443,1
    - Dst: sk_ACCESS_DESCRIPTION_new_null
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:446,1
    - Dst: ACCESS_DESCRIPTION_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:449,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:451,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:453,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:455,1
    - Dst: sk_ACCESS_DESCRIPTION_push
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:461,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:466,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:468,1
    - Dst: ACCESS_DESCRIPTION_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:469,1
    - Dst: OCSP_SERVICELOC_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c:470,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 2
    argNames:
    - issuer
    - urls
    argTypes:
    - X509_NAME*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 472
    functionName: OCSP_url_svcloc_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ACCESS_DESCRIPTION_new
    - OBJ_nid2obj
    - ASN1_STRING_set
    - ACCESS_DESCRIPTION_free
    - OCSP_SERVICELOC_free
    - sk_ACCESS_DESCRIPTION_new_null
    - ASN1_IA5STRING_free
    - X509_NAME_dup
    - OCSP_SERVICELOC_new
    - X509_NAME_free
    - sk_ACCESS_DESCRIPTION_push
    - X509V3_EXT_i2d
    - ASN1_IA5STRING_new
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, const char **urls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_find_by_subject
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c:178,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c:187,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c:188,1
    - Dst: X509_pubkey_digest
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c:189,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c:189,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - certs
    - id
    argTypes:
    - STACK_OF*
    - OCSP_RESPID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 170
    functionDepth: 6
    functionLinenumber: 170
    functionLinenumberEnd: 194
    functionName: ocsp_find_signer_sk
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c
    functionUses: 0
    functionsReached:
    - memcmp
    - EVP_sha1
    - X509_find_by_subject
    - X509_pubkey_digest
    - sk_X509_num
    - sk_X509_value
    linkageType: ''
    returnType: X509
    signature: X509 *ocsp_find_signer_sk(STACK_OF(X509) *certs, OCSP_RESPID *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_extension_flags
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c:326,1
    - Dst: X509_get_extended_key_usage
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c:327,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: ocsp_check_delegated
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c
    functionUses: 0
    functionsReached:
    - X509_get_extension_flags
    - OCSPerr
    - X509_get_extended_key_usage
    linkageType: ''
    returnType: int
    signature: int ocsp_check_delegated(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_ONEREQ_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: OCSP_request_onereq_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_ONEREQ_num
    linkageType: ''
    returnType: int
    signature: int OCSP_request_onereq_count(OCSP_REQUEST *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_ONEREQ_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - i
    argTypes:
    - OCSP_REQUEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: OCSP_request_onereq_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_ONEREQ_value
    linkageType: ''
    returnType: OCSP_ONEREQ
    signature: OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - one
    argTypes:
    - OCSP_ONEREQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: OCSP_onereq_get0_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OCSP_CERTID
    signature: OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - piNameHash
    - pmd
    - pikeyHash
    - pserial
    - cid
    argTypes:
    - ASN1_OCTET_STRING**
    - ASN1_OBJECT**
    - ASN1_OCTET_STRING**
    - ASN1_INTEGER**
    - OCSP_CERTID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: OCSP_id_get0_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT
      **pmd,\n                      ASN1_OCTET_STRING **pikeyHash,\n                      ASN1_INTEGER
      **pserial, OCSP_CERTID *cid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: OCSP_request_is_signed
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OCSP_request_is_signed(OCSP_REQUEST *req)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_RESPONSE_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:68,1
    - Dst: ASN1_ENUMERATED_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:70,1
    - Dst: OCSP_RESPBYTES_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:74,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:76,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:77,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:78,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - status
    - bs
    argTypes:
    - int
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: OCSP_response_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ASN1_ENUMERATED_set
    - ASN1_item_pack
    - OCSP_RESPBYTES_new
    - OCSP_RESPONSE_new
    - OCSP_RESPONSE_free
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_SINGLERESP_new_null
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:99,1
    - Dst: OCSP_SINGLERESP_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:102,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:105,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:108,1
    - Dst: OCSP_CERTID_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:111,1
    - Dst: OCSP_CERTID_dup
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:113,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:120,1
    - Dst: OCSP_REVOKEDINFO_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:123,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:125,1
    - Dst: ASN1_ENUMERATED_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:128,1
    - Dst: ASN1_ENUMERATED_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:130,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:136,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:141,1
    - Dst: sk_OCSP_SINGLERESP_push
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:149,1
    - Dst: OCSP_SINGLERESP_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:153,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 62
    argCount: 7
    argNames:
    - rsp
    - cid
    - status
    - reason
    - revtime
    - thisupd
    - nextupd
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_CERTID*
    - int
    - int
    - ASN1_TIME*
    - ASN1_TIME*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 155
    functionName: OCSP_basic_add1_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - OCSP_SINGLERESP_free
    - ASN1_ENUMERATED_set
    - ASN1_NULL_new
    - sk_OCSP_SINGLERESP_push
    - OCSP_SINGLERESP_new
    - ASN1_ENUMERATED_new
    - OCSP_CERTID_dup
    - OCSP_REVOKEDINFO_new
    - ASN1_TIME_to_generalizedtime
    - sk_OCSP_SINGLERESP_new_null
    - OCSP_CERTID_free
    - OCSPerr
    linkageType: ''
    returnType: OCSP_SINGLERESP
    signature: "OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp,\n                                        OCSP_CERTID
      *cid,\n                                        int status, int reason,\n                                        ASN1_TIME
      *revtime,\n                                        ASN1_TIME *thisupd,\n                                        ASN1_TIME
      *nextupd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:162,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:165,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - resp
    - cert
    argTypes:
    - OCSP_BASICRESP*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: OCSP_basic_add1_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - sk_X509_push
    - sk_X509_new_null
    linkageType: ''
    returnType: int
    signature: int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:236,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:243,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:244,1
    - Dst: OCSP_basic_sign_ctx
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:247,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - brsp
    - signer
    - key
    - dgst
    - certs
    - flags
    argTypes:
    - OCSP_BASICRESP*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 250
    functionName: OCSP_basic_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignInit
    - EVP_MD_CTX_new
    - OCSP_basic_sign_ctx
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int OCSP_basic_sign(OCSP_BASICRESP *brsp,\n                    X509
      *signer, EVP_PKEY *key, const EVP_MD *dgst,\n                    STACK_OF(X509)
      *certs, unsigned long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:254,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - respid
    - cert
    argTypes:
    - OCSP_RESPID*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: OCSP_RESPID_set_by_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - X509_get_subject_name
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_pubkey_digest
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:268,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:268,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:271,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:275,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - respid
    - cert
    argTypes:
    - OCSP_RESPID*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 6
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: OCSP_RESPID_set_by_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_set
    - EVP_sha1
    - X509_pubkey_digest
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_pubkey_digest
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:295,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:295,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:298,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:299,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:299,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:305,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - respid
    - cert
    argTypes:
    - OCSP_RESPID*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 286
    functionDepth: 6
    functionLinenumber: 286
    functionLinenumberEnd: 310
    functionName: OCSP_RESPID_match
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - memcmp
    - EVP_sha1
    - X509_pubkey_digest
    - ASN1_STRING_length
    - X509_get_subject_name
    - X509_NAME_cmp
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:29,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:31,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:32,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:34,1
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:37,1
    - Dst: OCSP_cert_id_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - dgst
    - subject
    - issuer
    argTypes:
    - EVP_MD*
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: OCSP_cert_to_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - X509_get0_pubkey_bitstr
    - EVP_sha1
    - OCSP_cert_id_new
    - X509_get0_serialNumber
    - X509_get_issuer_name
    - X509_get_subject_name
    linkageType: ''
    returnType: OCSP_CERTID
    signature: "OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject,\n
      \                            const X509 *issuer)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_CERTID_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:52,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:56,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:57,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:58,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:61,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:63,1
    - Dst: X509_NAME_digest
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:67,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:69,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:73,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:76,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:80,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:85,1
    - Dst: OCSP_CERTID_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:87,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 4
    argNames:
    - dgst
    - issuerName
    - issuerKey
    - serialNumber
    argTypes:
    - EVP_MD*
    - X509_NAME*
    - ASN1_BIT_STRING*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 89
    functionName: OCSP_cert_id_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - OBJ_nid2obj
    - EVP_MD_type
    - ASN1_OCTET_STRING_set
    - OCSP_CERTID_new
    - ASN1_OBJECT_free
    - ASN1_STRING_copy
    - X509_NAME_digest
    - EVP_Digest
    - OCSP_CERTID_free
    - OCSPerr
    linkageType: ''
    returnType: OCSP_CERTID
    signature: "OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst,\n                              const
      X509_NAME *issuerName,\n                              const ASN1_BIT_STRING
      *issuerKey,\n                              const ASN1_INTEGER *serialNumber)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:94,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:97,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OCSP_CERTID*
    - OCSP_CERTID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: OCSP_id_issuer_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_id_issuer_cmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:106,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OCSP_CERTID*
    - OCSP_CERTID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: OCSP_id_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - OCSP_id_issuer_cmp
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:129,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:134,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:141,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:144,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:160,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:163,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:165,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:177,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:185,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:190,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:194,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:199,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:204,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:208,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:211,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c:216,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 5
    argNames:
    - url
    - phost
    - pport
    - ppath
    - pssl
    argTypes:
    - char*
    - char**
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 220
    functionName: OCSP_parse_url
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OPENSSL_free
    - strchr
    - OPENSSL_strdup
    - OCSPerr
    linkageType: ''
    returnType: int
    signature: "int OCSP_parse_url(const char *url, char **phost, char **pport, char
      **ppath,\n                   int *pssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:19,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:21,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:22,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:23,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:24,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:25,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:26,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:27,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:28,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - bp
    - a
    - indent
    argTypes:
    - BIO*
    - OCSP_CERTID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: ocsp_certid_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_INTEGER
    - i2a_ASN1_STRING
    - i2a_ASN1_OBJECT
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ocsp_certid_print(BIO *bp, OCSP_CERTID *a, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - ts
    - len
    argTypes:
    - long
    - OCSP_TBLSTR*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: do_table2string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *do_table2string(long s, const OCSP_TBLSTR *ts, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - tbl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: table2string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: table2string(s, tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table2string
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: OCSP_response_status_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - table2string
    linkageType: ''
    returnType: char
    signature: char *OCSP_response_status_str(long s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table2string
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: OCSP_cert_status_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - table2string
    linkageType: ''
    returnType: char
    signature: char *OCSP_cert_status_str(long s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table2string
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: OCSP_crl_reason_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - table2string
    linkageType: ''
    returnType: char
    signature: char *OCSP_crl_reason_str(long s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:96,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:98,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:99,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:102,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:104,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:106,1
    - Dst: sk_OCSP_ONEREQ_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:108,1
    - Dst: sk_OCSP_ONEREQ_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:109,1
    - Dst: ocsp_certid_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:111,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:112,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:117,1
    - Dst: X509_signature_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:121,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:122,1
    - Dst: X509_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:123,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:123,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:124,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:124,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - bp
    - o
    - flags
    argTypes:
    - BIO*
    - OCSP_REQUEST*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 130
    functionName: OCSP_REQUEST_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_ONEREQ_value
    - BIO_write
    - ASN1_INTEGER_get
    - X509_print
    - ocsp_certid_print
    - X509V3_extensions_print
    - sk_X509_num
    - PEM_write_bio_X509
    - BIO_printf
    - sk_OCSP_ONEREQ_num
    - sk_X509_value
    - X509_signature_print
    - GENERAL_NAME_print
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *o, unsigned long flags)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:145,1
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:147,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:148,1
    - Dst: OCSP_response_status_str
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:149,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:153,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:155,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:157,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:158,1
    - Dst: OCSP_response_get1_basic
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:162,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:165,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:166,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:168,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:174,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:177,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:181,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:183,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:185,1
    - Dst: sk_OCSP_SINGLERESP_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:187,1
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:188,1
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:190,1
    - Dst: ocsp_certid_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:192,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:195,1
    - Dst: OCSP_cert_status_str
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:196,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:200,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:202,1
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:205,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:206,1
    - Dst: OCSP_crl_reason_str
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:208,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:212,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:214,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:217,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:219,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:222,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:224,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:228,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:231,1
    - Dst: X509_signature_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:234,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:237,1
    - Dst: X509_print
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:238,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:238,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:239,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:239,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c:244,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 115
    argCount: 3
    argNames:
    - bp
    - o
    - flags
    argTypes:
    - BIO*
    - OCSP_RESPONSE*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 246
    functionName: OCSP_RESPONSE_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    - X509_NAME_print_ex
    - OCSP_cert_status_str
    - X509V3_extensions_print
    - OCSP_response_status_str
    - BIO_puts
    - OCSP_BASICRESP_free
    - OCSP_crl_reason_str
    - OCSP_response_get1_basic
    - i2a_ASN1_STRING
    - X509_print
    - sk_OCSP_SINGLERESP_num
    - OBJ_obj2nid
    - X509_signature_print
    - BIO_write
    - sk_OCSP_SINGLERESP_value
    - ASN1_GENERALIZEDTIME_print
    - ocsp_certid_print
    - ASN1_ENUMERATED_get
    - sk_X509_num
    - PEM_write_bio_X509
    - BIO_printf
    - ASN1_INTEGER_get
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:66,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:72,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:72,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:78,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - io
    - maxline
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: OCSP_REQ_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BIO_s_mem
    - OCSP_REQ_CTX_free
    - OPENSSL_zalloc
    - BIO_new
    linkageType: ''
    returnType: OCSP_REQ_CTX
    signature: OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:90,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:91,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OCSP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: OCSP_REQ_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OCSP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: OCSP_REQ_CTX_get0_mem_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - rctx
    - len
    argTypes:
    - OCSP_REQ_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: OCSP_set_max_response_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:113,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:114,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - rctx
    - it
    - val
    argTypes:
    - OCSP_REQ_CTX*
    - ASN1_ITEM*
    - ASN1_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: OCSP_REQ_CTX_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d
    - ASN1_item_i2d_bio
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, ASN1_VALUE
      *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_nbio
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:128,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:132,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - rctx
    - pval
    - it
    argTypes:
    - OCSP_REQ_CTX*
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: OCSP_REQ_CTX_nbio_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 2
    functionsReached:
    - BIO_get_mem_data
    - OCSP_REQ_CTX_nbio
    - ASN1_item_d2i
    linkageType: ''
    returnType: int
    signature: "int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx,\n                          ASN1_VALUE
      **pval, const ASN1_ITEM *it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - rctx
    - op
    - path
    argTypes:
    - OCSP_REQ_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: OCSP_REQ_CTX_http
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_i2d
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:156,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rctx
    - req
    argTypes:
    - OCSP_REQ_CTX*
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: OCSP_REQ_CTX_set1_req
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OCSP_REQ_CTX_i2d
    linkageType: ''
    returnType: int
    signature: int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:165,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:168,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:170,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - rctx
    - name
    - value
    argTypes:
    - OCSP_REQ_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: OCSP_REQ_CTX_add1_header
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_write
    linkageType: ''
    returnType: int
    signature: "int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx,\n                             const
      char *name, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:184,1
    - Dst: OCSP_REQ_CTX_http
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:188,1
    - Dst: OCSP_REQ_CTX_set1_req
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:191,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - io
    - path
    - req
    - maxline
    argTypes:
    - BIO*
    - char*
    - OCSP_REQUEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 199
    functionName: OCSP_sendreq_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - OCSP_REQ_CTX_free
    - OCSP_REQ_CTX_set1_req
    - OCSP_REQ_CTX_new
    - OCSP_REQ_CTX_http
    linkageType: ''
    returnType: OCSP_REQ_CTX
    signature: "OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST
      *req,\n                               int maxline)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:212,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:215,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:220,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:224,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:229,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:233,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:241,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:247,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:256,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:256,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:260,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:262,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:264,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 270
    functionName: parse_http_line1
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - ossl_isspace
    - ERR_add_error_data
    - strtoul
    - OCSPerr
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_http_line1(char *line)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:278,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:281,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:288,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:295,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:303,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:308,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:310,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:313,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:326,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:331,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:338,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:358,1
    - Dst: memchr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:359,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:366,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:369,1
    - Dst: parse_http_line1
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:383,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:411,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:456,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 138
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OCSP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 470
    functionName: OCSP_REQ_CTX_nbio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 1
    functionsReached:
    - BIO_get_mem_data
    - BIO_write
    - parse_http_line1
    - BIO_gets
    - BIO_reset
    - memchr
    - BIO_should_retry
    - BIO_flush
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_nbio_d2i
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:474,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - presp
    - rctx
    argTypes:
    - OCSP_RESPONSE**
    - OCSP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: OCSP_sendreq_nbio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OCSP_REQ_CTX_nbio_d2i
    linkageType: ''
    returnType: int
    signature: int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_sendreq_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:487,1
    - Dst: OCSP_sendreq_nbio
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:493,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:494,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c:496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - b
    - path
    - req
    argTypes:
    - BIO*
    - char*
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 481
    functionDepth: 4
    functionLinenumber: 481
    functionLinenumberEnd: 502
    functionName: OCSP_sendreq_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - OCSP_REQ_CTX_free
    - OCSP_sendreq_new
    - BIO_should_retry
    - OCSP_sendreq_nbio
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST
      *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_ONEREQ_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:35,1
    - Dst: OCSP_CERTID_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:37,1
    - Dst: sk_OCSP_ONEREQ_push
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:39,1
    - Dst: OCSP_ONEREQ_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - req
    - cid
    argTypes:
    - OCSP_REQUEST*
    - OCSP_CERTID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: OCSP_request_add0_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - OCSP_ONEREQ_free
    - sk_OCSP_ONEREQ_push
    - OCSP_ONEREQ_new
    - OCSP_CERTID_free
    linkageType: ''
    returnType: OCSP_ONEREQ
    signature: OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:55,1
    - Dst: X509_NAME_set
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:58,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:59,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - req
    - nm
    argTypes:
    - OCSP_REQUEST*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: OCSP_request_set1_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_new
    - GENERAL_NAME_free
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_SIGNATURE_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:74,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:81,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:84,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - req
    - cert
    argTypes:
    - OCSP_REQUEST*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: OCSP_request_add1_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - OCSP_SIGNATURE_new
    - sk_X509_push
    - sk_X509_new_null
    linkageType: ''
    returnType: int
    signature: int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_request_set1_name
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:105,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:105,1
    - Dst: OCSP_SIGNATURE_new
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:108,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:111,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:112,1
    - Dst: OCSP_REQUEST_sign
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:116,1
    - Dst: OCSP_request_add1_cert
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:121,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:123,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:124,1
    - Dst: OCSP_request_add1_cert
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:125,1
    - Dst: OCSP_SIGNATURE_free
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:132,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 6
    argNames:
    - req
    - signer
    - key
    - dgst
    - certs
    - flags
    argTypes:
    - OCSP_REQUEST*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 135
    functionName: OCSP_request_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - X509_check_private_key
    - OCSP_request_set1_name
    - OCSP_request_add1_cert
    - OCSP_REQUEST_sign
    - sk_X509_num
    - OCSP_SIGNATURE_new
    - X509_get_subject_name
    - sk_X509_value
    - OCSPerr
    - OCSP_SIGNATURE_free
    linkageType: ''
    returnType: int
    signature: "int OCSP_request_sign(OCSP_REQUEST *req,\n                      X509
      *signer,\n                      EVP_PKEY *key,\n                      const
      EVP_MD *dgst,\n                      STACK_OF(X509) *certs, unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resp
    argTypes:
    - OCSP_RESPONSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: OCSP_response_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_get
    linkageType: ''
    returnType: int
    signature: int OCSP_response_status(OCSP_RESPONSE *resp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:154,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:157,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:158,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:162,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - resp
    argTypes:
    - OCSP_RESPONSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: OCSP_response_get1_basic
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    - OCSPerr
    - ASN1_item_unpack
    linkageType: ''
    returnType: OCSP_BASICRESP
    signature: OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: OCSP_resp_get0_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: OCSP_resp_get0_tbs_sigalg
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: OCSP_resp_get0_respdata
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OCSP_RESPDATA
    signature: OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_SINGLERESP_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: OCSP_resp_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_SINGLERESP_num
    linkageType: ''
    returnType: int
    signature: int OCSP_resp_count(OCSP_BASICRESP *bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bs
    - idx
    argTypes:
    - OCSP_BASICRESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: OCSP_resp_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_SINGLERESP_value
    linkageType: ''
    returnType: OCSP_SINGLERESP
    signature: OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: OCSP_resp_get0_produced_at
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP*
      bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: OCSP_resp_get0_certs
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - bs
    - pid
    - pname
    argTypes:
    - OCSP_BASICRESP*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 226
    functionName: OCSP_resp_get0_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OCSP_resp_get0_id(const OCSP_BASICRESP *bs,\n                      const
      ASN1_OCTET_STRING **pid,\n                      const X509_NAME **pname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:235,1
    - Dst: ASN1_OCTET_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - bs
    - pid
    - pname
    argTypes:
    - OCSP_BASICRESP*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 246
    functionName: OCSP_resp_get1_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - X509_NAME_dup
    - ASN1_OCTET_STRING_dup
    linkageType: ''
    returnType: int
    signature: "int OCSP_resp_get1_id(const OCSP_BASICRESP *bs,\n                      ASN1_OCTET_STRING
      **pid,\n                      X509_NAME **pname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:253,1
    - Dst: sk_OCSP_SINGLERESP_num
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:262,1
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:263,1
    - Dst: OCSP_id_cmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - bs
    - id
    - last
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_CERTID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 268
    functionName: OCSP_resp_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - OCSP_id_cmp
    - sk_OCSP_SINGLERESP_num
    - STACK_OF
    - sk_OCSP_SINGLERESP_value
    linkageType: ''
    returnType: int
    signature: int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - single
    - reason
    - revtime
    - thisupd
    - nextupd
    argTypes:
    - OCSP_SINGLERESP*
    - int*
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 303
    functionName: OCSP_single_get0_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_get
    linkageType: ''
    returnType: int
    signature: "int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason,\n
      \                           ASN1_GENERALIZEDTIME **revtime,\n                            ASN1_GENERALIZEDTIME
      **thisupd,\n                            ASN1_GENERALIZEDTIME **nextupd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_resp_find
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:318,1
    - Dst: OCSP_resp_get0
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:322,1
    - Dst: OCSP_single_get0_status
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - bs
    - id
    - status
    - reason
    - revtime
    - thisupd
    - nextupd
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_CERTID*
    - int*
    - int*
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 327
    functionName: OCSP_resp_find_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - OCSP_resp_find
    - OCSP_single_get0_status
    - OCSP_resp_get0
    linkageType: ''
    returnType: int
    signature: "int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int
      *status,\n                          int *reason,\n                          ASN1_GENERALIZEDTIME
      **revtime,\n                          ASN1_GENERALIZEDTIME **thisupd,\n                          ASN1_GENERALIZEDTIME
      **nextupd)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:343,1
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:345,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:346,1
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:350,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:351,1
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:361,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:362,1
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:372,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:373,1
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:377,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:378,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:384,1
    - Dst: OCSPerr
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c:385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - thisupd
    - nextupd
    - nsec
    - maxsec
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - ASN1_GENERALIZEDTIME*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 391
    functionName: OCSP_check_validity
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_check
    - ASN1_STRING_cmp
    - X509_cmp_time
    - time
    - OCSPerr
    linkageType: ''
    returnType: int
    signature: "int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd,\n                        ASN1_GENERALIZEDTIME
      *nextupd, long nsec, long maxsec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - single
    argTypes:
    - OCSP_SINGLERESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: OCSP_SINGLERESP_get0_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OCSP_CERTID
    signature: OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *single)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_err.c:95,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_err.c:96,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ocsp/ocsp_err.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: ERR_load_OCSP_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_OCSP_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - o
    - ','
    - pkey
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: OCSP_REQUEST_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_REQUEST_sign(o,pkey,md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - o
    - ','
    - pkey
    - ','
    - md
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: OCSP_BASICRESP_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_BASICRESP_sign(o,pkey,md,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - o
    - ','
    - ctx
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: OCSP_BASICRESP_sign_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_BASICRESP_sign_ctx(o,ctx,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: OCSP_REQUEST_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_REQUEST_verify(a,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - r
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: OCSP_BASICRESP_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_BASICRESP_verify(a,r,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: F
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_local.h
    functionUses: 119
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: G
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_local.h
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: H
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_local.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: R0
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: R1
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: R2
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(a,b,c,d,k,s,t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MD4_Init
      Src: /src/openssl-1.1.1g/crypto/md4/md4_one.c:26,1
    - Dst: MD4_Update
      Src: /src/openssl-1.1.1g/crypto/md4/md4_one.c:29,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/md4/md4_one.c:37,1
    - Dst: MD4_Update
      Src: /src/openssl-1.1.1g/crypto/md4/md4_one.c:38,1
    - Dst: MD4_Final
      Src: /src/openssl-1.1.1g/crypto/md4/md4_one.c:44,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/md4/md4_one.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: MD4
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_one.c
    functionUses: 0
    functionsReached:
    - MD4_Update
    - ebcdic2ascii
    - MD4_Init
    - MD4_Final
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *MD4(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - MD4_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: MD4_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int MD4_Init(MD4_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:57,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:58,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:59,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:60,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:62,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:62,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:63,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:64,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:65,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:65,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:66,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:67,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:68,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:68,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:69,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:70,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:71,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:71,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:72,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:73,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:74,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:74,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:75,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:76,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:77,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:77,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:78,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:79,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:80,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:80,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:81,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:82,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:83,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:83,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:84,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:85,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:86,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:86,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:87,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:88,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:89,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:89,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:90,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:91,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:92,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:92,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:93,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:94,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:95,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:95,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:96,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:97,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:98,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:98,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:99,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:100,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:101,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:101,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:102,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:103,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:104,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:104,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:105,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:105,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:107,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:107,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:108,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:108,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:109,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:109,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:110,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:110,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:111,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:111,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:112,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:112,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:113,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:113,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:114,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:114,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:115,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:115,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:116,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:116,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:117,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:117,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:118,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:118,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:119,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:119,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:120,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:120,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:121,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:121,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:122,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:122,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:124,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:124,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:125,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:125,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:126,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:126,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:127,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:127,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:128,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:128,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:129,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:129,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:130,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:130,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:131,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:131,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:132,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:132,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:133,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:133,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:134,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:134,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:135,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:135,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:136,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:136,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:137,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:137,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:138,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:138,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:139,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 91
    argCount: 3
    argNames:
    - c
    - data_
    - num
    argTypes:
    - MD4_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 146
    functionName: md4_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c
    functionUses: 0
    functionsReached:
    - R1
    - HOST_c2l
    - R2
    - X
    - R0
    linkageType: ''
    returnType: void
    signature: void md4_block_data_order(MD4_CTX *c, const void *data_, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: X
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: X
    functionSourceFile: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:28,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:28,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:31,1
    - Dst: OPENSSL_LH_stats_bio
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:32,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lh
    - fp
    argTypes:
    - OPENSSL_LHASH*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: OPENSSL_LH_stats
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_stats_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:40,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:40,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:43,1
    - Dst: OPENSSL_LH_node_stats_bio
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:44,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lh
    - fp
    argTypes:
    - OPENSSL_LHASH*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: OPENSSL_LH_node_stats
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_node_stats_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:52,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:52,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:55,1
    - Dst: OPENSSL_LH_node_usage_stats_bio
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:56,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lh
    - fp
    argTypes:
    - OPENSSL_LHASH*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: OPENSSL_LH_node_usage_stats
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_node_usage_stats_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:65,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:66,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:67,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:68,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:69,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:70,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:71,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:73,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:74,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:77,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:78,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - lh
    - out
    argTypes:
    - OPENSSL_LHASH*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: OPENSSL_LH_stats_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lh
    - out
    argTypes:
    - OPENSSL_LHASH*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: OPENSSL_LH_node_stats_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - lh
    - out
    argTypes:
    - OPENSSL_LHASH*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 117
    functionName: OPENSSL_LH_node_usage_stats_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:51,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:71,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - h
    - c
    argTypes:
    - OPENSSL_LH_HASHFUNC
    - OPENSSL_LH_COMPFUNC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: OPENSSL_LH_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OPENSSL_LHASH
    signature: OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:88,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:92,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 94
    functionName: OPENSSL_LH_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_free(OPENSSL_LHASH *lh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: expand
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:103,1
    - Dst: getrn
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:106,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - lh
    - data
    argTypes:
    - OPENSSL_LHASH*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 126
    functionName: OPENSSL_LH_insert
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - getrn
    - OPENSSL_malloc
    - expand
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrn
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:135,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:144,1
    - Dst: contract
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - lh
    - data
    argTypes:
    - OPENSSL_LHASH*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 154
    functionName: OPENSSL_LH_delete
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - contract
    - getrn
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsan_store
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:162,1
    - Dst: getrn
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:164,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:167,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - lh
    - data
    argTypes:
    - OPENSSL_LHASH*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 175
    functionName: OPENSSL_LH_retrieve
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - tsan_counter
    - tsan_store
    - getrn
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: func_arg
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:196,1
    - Dst: func
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - lh
    - use_arg
    - func
    - func_arg
    - arg
    argTypes:
    - OPENSSL_LHASH*
    - int
    - OPENSSL_LH_DOALL_FUNC
    - OPENSSL_LH_DOALL_FUNCARG
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 202
    functionName: doall_util_fn
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - func
    - func_arg
    linkageType: ''
    returnType: void
    signature: "void doall_util_fn(OPENSSL_LHASH *lh, int use_arg,\n                          OPENSSL_LH_DOALL_FUNC
      func,\n                          OPENSSL_LH_DOALL_FUNCARG func_arg, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doall_util_fn
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lh
    - func
    argTypes:
    - OPENSSL_LHASH*
    - OPENSSL_LH_DOALL_FUNC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: OPENSSL_LH_doall
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - doall_util_fn
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doall_util_fn
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lh
    - func
    - arg
    argTypes:
    - OPENSSL_LHASH*
    - OPENSSL_LH_DOALL_FUNCARG
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: OPENSSL_LH_doall_arg
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - doall_util_fn
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG
      func, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:225,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 258
    functionName: expand
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 51
    functionsReached:
    - memset
    - OPENSSL_realloc
    linkageType: ''
    returnType: int
    signature: int expand(OPENSSL_LHASH *lh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 293
    functionName: contract
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 12
    functionsReached:
    - OPENSSL_realloc
    linkageType: ''
    returnType: void
    signature: void contract(OPENSSL_LHASH *lh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:303,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:313,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:318,1
    - Dst: cf
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 324
    functionName: getrn
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 3
    functionsReached:
    - cf
    - tsan_counter
    linkageType: ''
    returnType: OPENSSL_LH_NODE
    signature: "OPENSSL_LH_NODE **getrn(OPENSSL_LHASH *lh,\n                               const
      void *data, unsigned long *rhash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 352
    functionName: OPENSSL_LH_strhash
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long OPENSSL_LH_strhash(const char *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/crypto/lhash/lhash.c:365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 373
    functionName: openssl_lh_strcasehash
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - ossl_tolower
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long openssl_lh_strcasehash(const char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: OPENSSL_LH_num_items
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: OPENSSL_LH_get_down_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lh
    - down_load
    argTypes:
    - OPENSSL_LHASH*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: OPENSSL_LH_set_down_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: OPENSSL_LH_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_LH_error(OPENSSL_LHASH *lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: DSA_set_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_set_default_method(const DSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: DSA_get_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_get_default_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: DSA_OpenSSL
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_OpenSSL(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:80,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:83,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:84,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:88,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:91,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:92,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:93,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:94,1
    - Dst: dsa_sign_setup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:99,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:102,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:108,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:109,1
    - Dst: BN_priv_rand
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:124,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:124,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:127,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:128,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:129,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:130,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:133,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:135,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:139,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:143,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:147,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:151,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:153,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:160,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:160,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:167,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:168,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:171,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:172,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 84
    argCount: 3
    argNames:
    - dgst
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 174
    functionName: dsa_do_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_set_flags
    - DSA_SIG_free
    - BN_new
    - DSA_SIG_new
    - BN_num_bytes
    - dsa_sign_setup
    - BN_priv_rand
    - BN_mod_add_quick
    - BN_bin2bn
    - BN_mod_inverse
    - BN_CTX_get
    - BN_is_zero
    - BN_num_bits
    - BN_CTX_new
    - BN_mod_mul
    - BN_CTX_free
    - DSAerr
    - BN_clear_free
    linkageType: ''
    returnType: DSA_SIG
    signature: DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsa_sign_setup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dsa
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - DSA*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: dsa_sign_setup_no_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - dsa_sign_setup
    linkageType: ''
    returnType: int
    signature: "int dsa_sign_setup_no_digest(DSA *dsa, BN_CTX *ctx_in,\n                                    BIGNUM
      **kinvp, BIGNUM **rp)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:193,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:198,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:198,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:198,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:199,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:203,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:207,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:208,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:213,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:219,1
    - Dst: bn_get_top
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:220,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:221,1
    - Dst: bn_wexpand
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:222,1
    - Dst: BN_generate_dsa_nonce
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:232,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:235,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:237,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:239,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:240,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:243,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:263,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:264,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:267,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:267,1
    - Dst: DSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:270,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:274,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:278,1
    - Dst: dsa_mod_inverse_fermat
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:282,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:285,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:291,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:293,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:294,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:295,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 78
    argCount: 6
    argNames:
    - dsa
    - ctx_in
    - kinvp
    - rp
    - dgst
    - dlen
    argTypes:
    - DSA*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 182
    functionDepth: 8
    functionLinenumber: 182
    functionLinenumberEnd: 297
    functionName: dsa_sign_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 4
    functionsReached:
    - BN_consttime_swap
    - dsa_mod_inverse_fermat
    - BN_mod
    - BN_clear_free
    - BN_set_flags
    - BN_is_bit_set
    - BN_MONT_CTX_set_locked
    - DSA*::meth::bn_mod_exp
    - BN_new
    - BN_CTX_free
    - bn_get_top
    - BN_is_zero
    - BN_mod_exp_mont
    - DSAerr
    - BN_add
    - BN_priv_rand_range
    - BN_generate_dsa_nonce
    - BN_num_bits
    - BN_CTX_new
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in,\n                          BIGNUM
      **kinvp, BIGNUM **rp,\n                          const unsigned char *dgst,
      int dlen)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:308,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:312,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:315,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:319,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:320,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:323,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:324,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:325,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:326,1
    - Dst: DSA_SIG_get0
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:330,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:332,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:332,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:333,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:337,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:337,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:338,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:346,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:357,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:361,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:365,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:369,1
    - Dst: DSA*::meth::dsa_mod_exp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:376,1
    - Dst: BN_mod_exp2_mont
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:380,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:386,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:392,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:396,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:397,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:398,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:399,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:400,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 74
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA_SIG*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 299
    functionDepth: 8
    functionLinenumber: 299
    functionLinenumberEnd: 402
    functionName: dsa_do_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul
    - BN_new
    - BN_mod_exp2_mont
    - DSA*::meth::dsa_mod_exp
    - BN_mod
    - BN_is_negative
    - DSA_SIG_get0
    - BN_mod_inverse
    - BN_bin2bn
    - BN_is_zero
    - BN_num_bits
    - BN_CTX_new
    - DSAerr
    - BN_ucmp
    - BN_CTX_free
    - BN_free
    - BN_MONT_CTX_set_locked
    linkageType: ''
    returnType: int
    signature: "int dsa_do_verify(const unsigned char *dgst, int dgst_len,\n                         DSA_SIG
      *sig, DSA *dsa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: dsa_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dsa_init(DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 4
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: dsa_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: int dsa_finish(DSA *dsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:429,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:432,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:433,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:434,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:435,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:436,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:439,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c:440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - k
    - q
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 423
    functionDepth: 5
    functionLinenumber: 423
    functionLinenumberEnd: 442
    functionName: dsa_mod_inverse_fermat
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
    functionUses: 1
    functionsReached:
    - BN_mod_exp_mont
    - BN_new
    - BN_CTX_start
    - BN_CTX_end
    - BN_free
    - BN_CTX_get
    - BN_set_word
    - BN_sub
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *dsa_mod_inverse_fermat(const BIGNUM *k, const BIGNUM *q,\n
      \                                     BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new_method
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: DSA_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - DSA_new_method
    linkageType: ''
    returnType: DSA
    signature: DSA *DSA_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSA_METHOD*::finish
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:33,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:35,1
    - Dst: DSA_METHOD*::init
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dsa
    - meth
    argTypes:
    - DSA*
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 42
    functionName: DSA_set_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - DSA_METHOD*::finish
    - DSA_METHOD*::init
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: int DSA_set_method(DSA *dsa, const DSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: DSA_get_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_get_method(DSA *d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:51,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:54,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:59,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:62,1
    - Dst: DSA_get_default_method
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:66,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:70,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:71,1
    - Dst: ENGINE_get_default_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:76,1
    - Dst: ENGINE_get_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:78,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:80,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:88,1
    - Dst: DSA*::meth::init
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:91,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:92,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:99,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 101
    functionName: DSA_new_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - DSA_get_default_method
    - OPENSSL_free
    - ENGINE_get_default_DSA
    - CRYPTO_THREAD_lock_new
    - CRYPTO_new_ex_data
    - DSA*::meth::init
    - OPENSSL_zalloc
    - ENGINE_get_DSA
    - DSAerr
    - DSA_free
    - ENGINE_init
    linkageType: ''
    returnType: DSA
    signature: DSA *DSA_new_method(ENGINE *engine)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:110,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:111,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:114,1
    - Dst: DSA*::meth::finish
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:117,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:119,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:122,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:124,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:126,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:127,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:128,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:129,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:130,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: DSA_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 7
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - DSA*::meth::finish
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - ENGINE_finish
    - CRYPTO_DOWN_REF
    - CRYPTO_free_ex_data
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void DSA_free(DSA *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:138,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:141,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 144
    functionName: DSA_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int DSA_up_ref(DSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:155,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:162,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: DSA_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 3
    functionsReached:
    - BN_num_bits
    - ASN1_object_size
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int DSA_size(const DSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - idx
    - arg
    argTypes:
    - DSA*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: DSA_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int DSA_set_ex_data(DSA *d, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: DSA_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *DSA_get_ex_data(DSA *d, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_security_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:181,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:181,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: DSA_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_security_bits
    linkageType: ''
    returnType: int
    signature: int DSA_security_bits(const DSA *d)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:198,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:206,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:207,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:208,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:209,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:215,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:219,1
    - Dst: DH_set0_key
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:223,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:233,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:234,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:235,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:236,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:237,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:238,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 50
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 240
    functionName: DSA_dup_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached:
    - DH_set0_key
    - DH_free
    - BN_free
    - DH_new
    - BN_dup
    - DH_set0_pqg
    linkageType: ''
    returnType: DH
    signature: DH *DSA_dup_DH(const DSA *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - d
    - p
    - q
    - g
    argTypes:
    - DSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: DSA_get0_pqg
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DSA_get0_pqg(const DSA *d,\n                  const BIGNUM **p,
      const BIGNUM **q, const BIGNUM **g)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:265,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:269,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:273,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - d
    - p
    - q
    - g
    argTypes:
    - DSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 278
    functionName: DSA_set0_pqg
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - d
    - pub_key
    - priv_key
    argTypes:
    - DSA*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: DSA_get0_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DSA_get0_key(const DSA *d,\n                  const BIGNUM **pub_key,
      const BIGNUM **priv_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:299,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - d
    - pub_key
    - priv_key
    argTypes:
    - DSA*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 308
    functionName: DSA_set0_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: DSA_get0_p
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_p(const DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: DSA_get0_q
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_q(const DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: DSA_get0_g
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_g(const DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: DSA_get0_pub_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_pub_key(const DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: DSA_get0_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_priv_key(const DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: DSA_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_clear_flags(DSA *d, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: DSA_test_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_test_flags(const DSA *d, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: DSA_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_set_flags(DSA *d, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: DSA_get0_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *DSA_get0_engine(DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: DSA_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int DSA_bits(const DSA *dsa)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:32,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:34,1
    - Dst: d2i_DSAparams
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:41,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:42,1
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:47,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:48,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:52,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:56,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:57,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:61,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:62,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:66,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:67,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:71,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:72,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 75
    functionName: dsa_pub_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_DSA
    - DSA_new
    - X509_PUBKEY_get0_param
    - d2i_DSAparams
    - ASN1_INTEGER_free
    - d2i_ASN1_INTEGER
    - X509_ALGOR_get0
    - DSAerr
    - DSA_free
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: int
    signature: int dsa_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:89,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:91,1
    - Dst: i2d_DSAparams
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:94,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:96,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:103,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:106,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:110,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:111,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:114,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:118,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:126,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:127,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 130
    functionName: dsa_pub_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ASN1_STRING_free
    - OPENSSL_free
    - ASN1_INTEGER_free
    - BN_to_ASN1_INTEGER
    - X509_PUBKEY_set0_param
    - i2d_DSAparams
    - ASN1_STRING_new
    - DSAerr
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int dsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:152,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:154,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:156,1
    - Dst: d2i_DSAparams
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:164,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:167,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:168,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:169,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:173,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:174,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:177,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:178,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:182,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:183,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:184,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:188,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:194,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:196,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:198,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:199,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 201
    functionName: dsa_priv_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_DSA
    - BN_set_flags
    - BN_secure_new
    - d2i_DSAparams
    - BN_new
    - d2i_ASN1_INTEGER
    - ASN1_STRING_clear_free
    - BN_CTX_free
    - X509_ALGOR_get0
    - PKCS8_pkey_get0
    - BN_mod_exp
    - BN_CTX_new
    - DSAerr
    - DSA_free
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: int
    signature: int dsa_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:211,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:215,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:218,1
    - Dst: i2d_DSAparams
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:222,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:224,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:230,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:233,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:237,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:239,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:242,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:242,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:249,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:250,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:251,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 253
    functionName: dsa_priv_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ASN1_STRING_free
    - OPENSSL_free
    - BN_to_ASN1_INTEGER
    - PKCS8_pkey_set0
    - i2d_DSAparams
    - ASN1_STRING_new
    - ASN1_STRING_clear_free
    - DSAerr
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_size
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: int_dsa_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_size
    linkageType: ''
    returnType: int
    signature: int int_dsa_size(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: dsa_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_bits
    linkageType: ''
    returnType: int
    signature: int dsa_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_security_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: dsa_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_security_bits
    linkageType: ''
    returnType: int
    signature: int dsa_security_bits(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: dsa_missing_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dsa_missing_parameters(const EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:284,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:289,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:291,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:294,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:296,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:299,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 279
    functionDepth: 4
    functionLinenumber: 279
    functionLinenumberEnd: 304
    functionName: dsa_copy_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_free
    - DSA_new
    linkageType: ''
    returnType: int
    signature: int dsa_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:308,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:309,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: dsa_cmp_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int dsa_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: dsa_pub_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int dsa_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: int_dsa_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: void int_dsa_free(EVP_PKEY *pkey)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:353,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:355,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:355,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:360,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:362,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:364,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:366,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:368,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 4
    argNames:
    - bp
    - x
    - 'off'
    - ptype
    argTypes:
    - BIO*
    - DSA*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 373
    functionName: do_dsa_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - ASN1_bn_print
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: int do_dsa_print(BIO *bp, const DSA *x, int off, int ptype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSAparams
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:380,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:381,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 386
    functionName: dsa_param_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_DSA
    - DSAerr
    - d2i_DSAparams
    linkageType: ''
    returnType: int
    signature: "int dsa_param_decode(EVP_PKEY *pkey,\n                            const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DSAparams
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 391
    functionName: dsa_param_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_DSAparams
    linkageType: ''
    returnType: int
    signature: int dsa_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dsa_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: dsa_param_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_dsa_print
    linkageType: ''
    returnType: int
    signature: "int dsa_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                           ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dsa_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 4
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: dsa_pub_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_dsa_print
    linkageType: ''
    returnType: int
    signature: "int dsa_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dsa_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: dsa_priv_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_dsa_print
    linkageType: ''
    returnType: int
    signature: "int dsa_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSAPrivateKey
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:416,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:417,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 422
    functionName: old_dsa_priv_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_DSA
    - DSAerr
    - d2i_DSAPrivateKey
    linkageType: ''
    returnType: int
    signature: "int old_dsa_priv_decode(EVP_PKEY *pkey,\n                               const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DSAPrivateKey
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: old_dsa_priv_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_DSAPrivateKey
    linkageType: ''
    returnType: int
    signature: int old_dsa_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:436,1
    - Dst: d2i_DSA_SIG
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:442,1
    - Dst: DSA_SIG_get0
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:447,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:449,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:452,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:454,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:458,1
    - Dst: X509_signature_dump
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:461,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - bp
    - sigalg
    - sig
    - indent
    - pctx
    argTypes:
    - BIO*
    - X509_ALGOR*
    - ASN1_STRING*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 462
    functionName: dsa_sig_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - DSA_SIG_free
    - d2i_DSA_SIG
    - BIO_puts
    - DSA_SIG_get0
    - X509_signature_dump
    - ASN1_bn_print
    linkageType: ''
    returnType: int
    signature: "int dsa_sig_print(BIO *bp, const X509_ALGOR *sigalg,\n                         const
      ASN1_STRING *sig, int indent, ASN1_PCTX *pctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_SIGNER_INFO_get0_algs
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:471,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:474,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:477,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:477,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:479,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:479,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:487,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:490,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:493,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:493,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:495,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c:495,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 513
    functionName: dsa_pkey_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - PKCS7_SIGNER_INFO_get0_algs
    - OBJ_nid2obj
    - X509_ALGOR_set0
    - CMS_SignerInfo_get0_algs
    - OBJ_find_sigid_by_algs
    - EVP_PKEY_id
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int dsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_do_verify
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_vrf.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA_SIG*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 9
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: DSA_do_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_vrf.c
    functionUses: 1
    functionsReached:
    - DSA*::meth::dsa_do_verify
    linkageType: ''
    returnType: int
    signature: "int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG
      *sig,\n                  DSA *dsa)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:21,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:21,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:22,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:25,1
    - Dst: DSA_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:26,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: DSA_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - DSA_print
    - BIO_free
    - DSAerr
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int DSA_print_fp(FILE *fp, const DSA *x, int off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:36,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:36,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:37,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:40,1
    - Dst: DSAparams_print
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:41,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: DSAparams_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - DSAparams_print
    - BIO_free
    - DSAerr
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int DSAparams_print_fp(FILE *fp, const DSA *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:51,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:52,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:54,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: DSA_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_set1_DSA
    - EVP_PKEY_print_private
    linkageType: ''
    returnType: int
    signature: int DSA_print(BIO *bp, const DSA *x, int off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:63,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:64,1
    - Dst: EVP_PKEY_print_params
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:66,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: DSAparams_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_set1_DSA
    - EVP_PKEY_print_params
    linkageType: ''
    returnType: int
    signature: int DSAparams_print(BIO *bp, const DSA *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_do_sign
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_sign.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dgst
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 7
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: DSA_do_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_sign.c
    functionUses: 0
    functionsReached:
    - DSA*::meth::dsa_do_sign
    linkageType: ''
    returnType: DSA_SIG
    signature: DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_sign_setup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_sign.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dsa
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - DSA*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 9
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: DSA_sign_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_sign.c
    functionUses: 0
    functionsReached:
    - DSA*::meth::dsa_sign_setup
    linkageType: ''
    returnType: int
    signature: int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM
      **rp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_err.c:72,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_err.c:73,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_err.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: ERR_load_DSA_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_DSA_strings(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c:44,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c:46,1
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c:50,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c:52,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c:54,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c:57,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - bits
    - seed_in
    - seed_len
    - counter_ret
    - h_ret
    - cb_arg
    argTypes:
    - int
    - unsigned char*
    - int
    - int*
    - unsigned long*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: DSA_generate_parameters
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - DSA_new
    - BN_GENCB_set_old
    - DSA_generate_parameters_ex
    - BN_GENCB_free
    - DSA_free
    linkageType: ''
    returnType: DSA
    signature: "DSA *DSA_generate_parameters(int bits,\n                             unsigned
      char *seed_in, int seed_len,\n                             int *counter_ret,
      unsigned long *h_ret,\n                             void (*callback) (int, int,
      void *),\n                             void *cb_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:26,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: DSA_SIG_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c
    functionUses: 6
    functionsReached:
    - DSAerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: DSA_SIG
    signature: DSA_SIG *DSA_SIG_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:36,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - DSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: DSA_SIG_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c
    functionUses: 7
    functionsReached:
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void DSA_SIG_free(DSA_SIG *sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - pr
    - ps
    argTypes:
    - DSA_SIG*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: DSA_SIG_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM
      **ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:53,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sig
    - r
    - s
    argTypes:
    - DSA_SIG*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: DSA_SIG_set0
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c
    functionUses: 2
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:65,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: dsa_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c
    functionUses: 0
    functionsReached:
    - DSA_free
    - DSA_new
    linkageType: ''
    returnType: int
    signature: "int dsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:107,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: DSAparams_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_dup
    linkageType: ''
    returnType: DSA
    signature: DSA *DSAparams_dup(DSA *dsa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSA_do_sign
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:115,1
    - Dst: i2d_DSA_SIG
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:120,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - dsa
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 8
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: DSA_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c
    functionUses: 1
    functionsReached:
    - DSA_do_sign
    - i2d_DSA_SIG
    - DSA_SIG_free
    linkageType: ''
    returnType: int
    signature: "int DSA_sign(int type, const unsigned char *dgst, int dlen,\n             unsigned
      char *sig, unsigned int *siglen, DSA *dsa)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:141,1
    - Dst: d2i_DSA_SIG
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:144,1
    - Dst: i2d_DSA_SIG
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:147,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:148,1
    - Dst: DSA_do_verify
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:150,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:152,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - type
    - dgst
    - dgst_len
    - sigbuf
    - siglen
    - dsa
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 132
    functionDepth: 10
    functionLinenumber: 132
    functionLinenumberEnd: 155
    functionName: DSA_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c
    functionUses: 1
    functionsReached:
    - memcmp
    - DSA_SIG_free
    - i2d_DSA_SIG
    - DSA_SIG_new
    - d2i_DSA_SIG
    - DSA_do_verify
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int DSA_verify(int type, const unsigned char *dgst, int dgst_len,\n
      \              const unsigned char *sigbuf, int siglen, DSA *dsa)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:24,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:29,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:33,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: DSA_meth_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strdup
    - DSAerr
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_meth_new(const char *name, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: DSA_meth_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void DSA_meth_free(DSA_METHOD *dsam)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:50,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:53,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:59,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: DSA_meth_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - memcpy
    - OPENSSL_strdup
    - DSAerr
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: DSA_meth_get0_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *DSA_meth_get0_name(const DSA_METHOD *dsam)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:73,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:76,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dsam
    - name
    argTypes:
    - DSA_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: DSA_meth_set1_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - DSAerr
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: DSA_meth_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_get_flags(const DSA_METHOD *dsam)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dsam
    - flags
    argTypes:
    - DSA_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: DSA_meth_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set_flags(DSA_METHOD *dsam, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: DSA_meth_get0_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *DSA_meth_get0_app_data(const DSA_METHOD *dsam)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dsam
    - app_data
    argTypes:
    - DSA_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: DSA_meth_set0_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: "*(*DSA_meth_get_sign(const DSA_METHOD *dsam))\n        (const unsigned
      char *, int, DSA *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSA_SIG
    signature: "DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam))\n        (const
      unsigned char *, int, DSA *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dsam
    - (*sign) (const unsigned char *, int, DSA *)
    argTypes:
    - DSA_METHOD*
    - DSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: DSA_meth_set_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_sign(DSA_METHOD *dsam,\n                       DSA_SIG
      *(*sign) (const unsigned char *, int, DSA *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: "(*DSA_meth_get_sign_setup(const DSA_METHOD *dsam))\n        (DSA
      *, BN_CTX *, BIGNUM **, BIGNUM **)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam))\n        (DSA
      *, BN_CTX *, BIGNUM **, BIGNUM **)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: DSA_meth_set_sign_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_sign_setup(DSA_METHOD *dsam,\n        int (*sign_setup)
      (DSA *, BN_CTX *, BIGNUM **, BIGNUM **))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: "(*DSA_meth_get_verify(const DSA_METHOD *dsam))\n        (const
      unsigned char *, int, DSA_SIG *, DSA *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DSA_meth_get_verify(const DSA_METHOD *dsam))\n        (const
      unsigned char *, int, DSA_SIG *, DSA *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: DSA_meth_set_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_verify(DSA_METHOD *dsam,\n    int (*verify) (const
      unsigned char *, int, DSA_SIG *, DSA *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: "(*DSA_meth_get_mod_exp(const DSA_METHOD *dsam))\n        (DSA *,
      BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *,\n         const BIGNUM
      *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam))\n        (DSA
      *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *,\n         const
      BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: DSA_meth_set_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_mod_exp(DSA_METHOD *dsam,\n    int (*mod_exp) (DSA
      *, BIGNUM *, const BIGNUM *, const BIGNUM *,\n                    const BIGNUM
      *, const BIGNUM *, const BIGNUM *, BN_CTX *,\n                    BN_MONT_CTX
      *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: "(*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam))\n    (DSA *,
      BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *,\n     BN_MONT_CTX
      *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam))\n    (DSA *,
      BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *,\n     BN_MONT_CTX
      *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: DSA_meth_set_bn_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam,\n    int (*bn_mod_exp)
      (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *,\n                       const
      BIGNUM *, BN_CTX *, BN_MONT_CTX *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: DSA_meth_set_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set_init(DSA_METHOD *dsam, int (*init)(DSA *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: DSA_meth_set_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set_finish(DSA_METHOD *dsam, int (*finish) (DSA *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: "(*DSA_meth_get_paramgen(const DSA_METHOD *dsam))\n        (DSA
      *, int, const unsigned char *, int, int *, unsigned long *,\n         BN_GENCB
      *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam))\n        (DSA
      *, int, const unsigned char *, int, int *, unsigned long *,\n         BN_GENCB
      *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: DSA_meth_set_paramgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_paramgen(DSA_METHOD *dsam,\n        int (*paramgen)
      (DSA *, int, const unsigned char *, int, int *,\n                         unsigned
      long *, BN_GENCB *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: DSA_meth_set_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_paramgen
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:32,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:35,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:35,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:36,1
    - Dst: dsa_builtin_paramgen
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ret
    - bits
    - seed_in
    - seed_len
    - counter_ret
    - h_ret
    - cb
    argTypes:
    - DSA*
    - int
    - unsigned char*
    - int
    - int*
    - unsigned long*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: DSA_generate_parameters_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c
    functionUses: 1
    functionsReached:
    - EVP_sha1
    - DSA*::meth::dsa_paramgen
    - dsa_builtin_paramgen
    - EVP_sha256
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: "int DSA_generate_parameters_ex(DSA *ret, int bits,\n                               const
      unsigned char *seed_in, int seed_len,\n                               int *counter_ret,
      unsigned long *h_ret,\n                               BN_GENCB *cb)"
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:69,1
    - Dst: EVP_sha224
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:71,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:73,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:75,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:85,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:92,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:95,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:98,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:101,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:103,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:104,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:105,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:106,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:107,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:108,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:109,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:110,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:115,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:115,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:123,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:127,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:133,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:134,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:143,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:145,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:153,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:157,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:168,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:170,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:180,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:184,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:196,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:200,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:202,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:204,1
    - Dst: BN_mask_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:209,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:211,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:213,1
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:217,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:219,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:221,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:221,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:223,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:227,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:229,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:246,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:251,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:251,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:253,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:256,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:258,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:263,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:265,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:267,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:267,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:272,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:278,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:279,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:280,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:281,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:282,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:283,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:293,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:295,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:296,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:297,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 209
    argCount: 10
    argNames:
    - ret
    - bits
    - qbits
    - evpmd
    - seed_in
    - seed_len
    - seed_out
    - counter_ret
    - h_ret
    - cb
    argTypes:
    - DSA*
    - size_t
    - size_t
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - int*
    - unsigned long*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 44
    functionDepth: 8
    functionLinenumber: 44
    functionLinenumberEnd: 299
    functionName: dsa_builtin_paramgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c
    functionUses: 2
    functionsReached:
    - BN_copy
    - BN_MONT_CTX_set
    - BN_cmp
    - EVP_Digest
    - BN_lshift
    - BN_mask_bits
    - BN_lshift1
    - BN_mod
    - BN_MONT_CTX_free
    - RAND_bytes
    - BN_zero
    - memcpy
    - BN_bin2bn
    - BN_div
    - EVP_sha256
    - BN_free
    - BN_sub
    - BN_is_one
    - BN_is_prime_fasttest_ex
    - BN_MONT_CTX_new
    - EVP_sha1
    - BN_CTX_end
    - EVP_sha224
    - BN_CTX_free
    - BN_CTX_get
    - BN_set_word
    - BN_mod_exp_mont
    - EVP_MD_size
    - DSAerr
    - BN_add
    - BN_CTX_start
    - BN_value_one
    - BN_CTX_new
    - BN_GENCB_call
    - BN_dup
    linkageType: ''
    returnType: int
    signature: "int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits,\n                         const
      EVP_MD *evpmd, const unsigned char *seed_in,\n                         size_t
      seed_len, unsigned char *seed_out,\n                         int *counter_ret,
      unsigned long *h_ret, BN_GENCB *cb)"
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:323,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:331,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:337,1
    - Dst: EVP_sha224
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:339,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:341,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:344,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:350,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:355,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:361,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:365,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:368,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:371,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:372,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:373,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:374,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:375,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:376,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:377,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:386,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:389,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:390,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:395,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:395,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:401,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:405,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:409,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:418,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:423,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:427,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:436,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:445,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:447,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:449,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:459,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:463,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:475,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:479,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:481,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:483,1
    - Dst: BN_mask_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:488,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:490,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:492,1
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:496,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:498,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:500,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:500,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:502,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:506,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:508,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:525,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:530,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:537,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:537,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:539,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:543,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:547,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:556,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:558,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:560,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:562,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:564,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:566,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:570,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:572,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:574,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:574,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:581,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:588,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:589,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:592,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:593,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:595,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:596,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:606,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:608,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:609,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:610,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:611,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c:612,1
    CyclomaticComplexity: 140
    EdgeCount: 140
    ICount: 268
    argCount: 11
    argNames:
    - ret
    - L
    - N
    - evpmd
    - seed_in
    - seed_len
    - idx
    - seed_out
    - counter_ret
    - h_ret
    - cb
    argTypes:
    - DSA*
    - size_t
    - size_t
    - EVP_MD*
    - unsigned char*
    - size_t
    - int
    - unsigned char*
    - int*
    - unsigned long*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 306
    functionDepth: 8
    functionLinenumber: 306
    functionLinenumberEnd: 614
    functionName: dsa_builtin_paramgen2
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - BN_copy
    - BN_MONT_CTX_set
    - BN_cmp
    - EVP_DigestInit_ex
    - EVP_Digest
    - EVP_MD_CTX_free
    - BN_lshift
    - BN_mask_bits
    - BN_lshift1
    - BN_mod
    - BN_MONT_CTX_free
    - OPENSSL_malloc
    - RAND_bytes
    - BN_zero
    - OPENSSL_free
    - memcpy
    - BN_bin2bn
    - BN_div
    - EVP_sha256
    - BN_free
    - BN_sub
    - EVP_MD_CTX_new
    - BN_is_one
    - BN_is_prime_fasttest_ex
    - BN_MONT_CTX_new
    - EVP_sha1
    - BN_CTX_end
    - EVP_sha224
    - BN_CTX_free
    - BN_CTX_get
    - BN_set_word
    - BN_mod_exp_mont
    - EVP_MD_size
    - DSAerr
    - BN_add
    - BN_CTX_start
    - EVP_DigestUpdate
    - memset
    - BN_value_one
    - BN_CTX_new
    - BN_GENCB_call
    - BN_dup
    linkageType: ''
    returnType: int
    signature: "int dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N,\n                          const
      EVP_MD *evpmd, const unsigned char *seed_in,\n                          size_t
      seed_len, int idx, unsigned char *seed_out,\n                          int *counter_ret,
      unsigned long *h_ret,\n                          BN_GENCB *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_keygen
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:21,1
    - Dst: dsa_builtin_keygen
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: DSA_generate_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c
    functionUses: 0
    functionsReached:
    - DSA*::meth::dsa_keygen
    - dsa_builtin_keygen
    linkageType: ''
    returnType: int
    signature: int DSA_generate_key(DSA *dsa)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:31,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:35,1
    - Dst: BN_priv_rand_range
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:41,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:43,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:46,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:52,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:56,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:58,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:59,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:63,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:72,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:74,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c:75,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 25
    functionDepth: 7
    functionLinenumber: 25
    functionLinenumberEnd: 77
    functionName: dsa_builtin_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c
    functionUses: 1
    functionsReached:
    - BN_secure_new
    - BN_new
    - BN_with_flags
    - BN_CTX_free
    - BN_priv_rand_range
    - BN_mod_exp
    - BN_is_zero
    - BN_free
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int dsa_builtin_keygen(DSA *dsa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: pkey_dsa_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkey_dsa_init
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: pkey_dsa_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_dsa_init
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: pkey_dsa_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void pkey_dsa_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:80,1
    - Dst: DSA_sign
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 9
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: pkey_dsa_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    - DSA_sign
    linkageType: ''
    returnType: int
    signature: "int pkey_dsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                         size_t
      *siglen, const unsigned char *tbs,\n                         size_t tbslen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:99,1
    - Dst: DSA_verify
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 11
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: pkey_dsa_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    - DSA_verify
    linkageType: ''
    returnType: int
    signature: "int pkey_dsa_verify(EVP_PKEY_CTX *ctx,\n                           const
      unsigned char *sig, size_t siglen,\n                           const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:125,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:126,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:127,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:128,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:135,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:136,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:137,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:138,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:139,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:140,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:141,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:142,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:143,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:144,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:145,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:146,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:162,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 169
    functionName: pkey_dsa_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - DSAerr
    - EVP_MD_type
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:174,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:176,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:177,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:179,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:180,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_q_bits
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:181,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:183,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:184,1
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:187,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_md
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: pkey_dsa_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - EVP_PKEY_CTX_set_dsa_paramgen_bits
    - strcmp
    - atoi
    - EVP_PKEY_CTX_set_dsa_paramgen_q_bits
    - EVP_PKEY_CTX_set_dsa_paramgen_md
    - DSAerr
    linkageType: ''
    returnType: int
    signature: "int pkey_dsa_ctrl_str(EVP_PKEY_CTX *ctx,\n                             const
      char *type, const char *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:203,1
    - Dst: evp_pkey_set_cb_translate
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:206,1
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:209,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:211,1
    - Dst: dsa_builtin_paramgen
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:214,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:216,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:218,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 195
    functionDepth: 9
    functionLinenumber: 195
    functionLinenumberEnd: 222
    functionName: pkey_dsa_paramgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - EVP_PKEY_assign_DSA
    - DSA_new
    - evp_pkey_set_cb_translate
    - dsa_builtin_paramgen
    - BN_GENCB_free
    - DSA_free
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSAerr
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:229,1
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:232,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:235,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:237,1
    - Dst: DSA_generate_key
      Src: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: pkey_dsa_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_DSA
    - DSA_new
    - DSA_generate_key
    - EVP_PKEY_copy_parameters
    - DSAerr
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_cfb.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: Camellia_cfb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char
      *out,\n                             size_t length, const CAMELLIA_KEY *key,\n
      \                            unsigned char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_cfb.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Camellia_cfb1_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: void
    signature: "void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char
      *out,\n                           size_t length, const CAMELLIA_KEY *key,\n
      \                          unsigned char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_cfb.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Camellia_cfb8_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_8_encrypt
    linkageType: ''
    returnType: void
    signature: "void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char
      *out,\n                           size_t length, const CAMELLIA_KEY *key,\n
      \                          unsigned char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: RightRotate
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RightRotate(x, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: LeftRotate
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LeftRotate(x, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: GETU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: PUTU32
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _s0
    - ','
    - _s1
    - ','
    - _s2
    - ','
    - _s3
    - ','
    - _key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 266
    functionName: Camellia_Feistel
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Camellia_Feistel(_s0,_s1,_s2,_s3,_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _s0
    - ','
    - _s1
    - ','
    - _s2
    - ','
    - _s3
    - ','
    - _n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: RotLeft128
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RotLeft128(_s0,_s1,_s2,_s3,_n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:284,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:285,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:286,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:287,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:290,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:291,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:296,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:297,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:303,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:304,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:307,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:308,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:313,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:315,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:317,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:319,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:321,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:323,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:327,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:329,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:331,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:333,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:335,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:337,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:344,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:345,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:348,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:350,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:352,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:356,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:358,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:360,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:362,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:366,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:368,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:372,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:376,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:378,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:380,1
    - Dst: RotLeft128
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 90
    argCount: 3
    argNames:
    - keyBitLength
    - rawKey
    - k
    argTypes:
    - int
    - u8*
    - KEY_TABLE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 395
    functionName: Camellia_Ekeygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - Camellia_Feistel
    - RotLeft128
    linkageType: ''
    returnType: int
    signature: int Camellia_Ekeygen(int keyBitLength, const u8 *rawKey, KEY_TABLE_TYPE
      k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:404,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:405,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:406,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:407,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:412,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:413,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:414,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:415,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:416,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:417,1
    - Dst: LeftRotate
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:428,1
    - Dst: LeftRotate
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:431,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:437,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:438,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:439,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - grandRounds
    - plaintext
    - keyTable
    - ciphertext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 441
    functionName: Camellia_EncryptBlock_Rounds
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - LeftRotate
    - Camellia_Feistel
    - PUTU32
    linkageType: ''
    returnType: void
    signature: "void Camellia_EncryptBlock_Rounds(int grandRounds, const u8 plaintext[],\n
      \                                 const KEY_TABLE_TYPE keyTable,\n                                  u8
      ciphertext[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_EncryptBlock_Rounds
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyBitLength
    - plaintext
    - keyTable
    - ciphertext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: Camellia_EncryptBlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - Camellia_EncryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "void Camellia_EncryptBlock(int keyBitLength, const u8 plaintext[],\n
      \                          const KEY_TABLE_TYPE keyTable, u8 ciphertext[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:457,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:458,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:459,1
    - Dst: GETU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:460,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:465,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:466,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:467,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:468,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:469,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:470,1
    - Dst: LeftRotate
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:481,1
    - Dst: LeftRotate
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:484,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:490,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:491,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:492,1
    - Dst: PUTU32
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - grandRounds
    - ciphertext
    - keyTable
    - plaintext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 494
    functionName: Camellia_DecryptBlock_Rounds
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - LeftRotate
    - Camellia_Feistel
    - PUTU32
    linkageType: ''
    returnType: void
    signature: "void Camellia_DecryptBlock_Rounds(int grandRounds, const u8 ciphertext[],\n
      \                                 const KEY_TABLE_TYPE keyTable,\n                                  u8
      plaintext[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_DecryptBlock_Rounds
      Src: /src/openssl-1.1.1g/crypto/camellia/camellia.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyBitLength
    - plaintext
    - keyTable
    - ciphertext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: Camellia_DecryptBlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - Camellia_DecryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "void Camellia_DecryptBlock(int keyBitLength, const u8 plaintext[],\n
      \                          const KEY_TABLE_TYPE keyTable, u8 ciphertext[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_ofb.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: Camellia_ofb128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_ofb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char
      *out,\n                             size_t length, const CAMELLIA_KEY *key,\n
      \                            unsigned char *ivec, int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_ctr.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - ecount_buf
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char[]
    - unsigned char[]
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: Camellia_ctr128_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_ctr.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ctr128_encrypt
    linkageType: ''
    returnType: void
    signature: "void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char
      *out,\n                             size_t length, const CAMELLIA_KEY *key,\n
      \                            unsigned char ivec[CAMELLIA_BLOCK_SIZE],\n                             unsigned
      char ecount_buf[CAMELLIA_BLOCK_SIZE],\n                             unsigned
      int *num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_Ekeygen
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_misc.c:21,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - CAMELLIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: Camellia_set_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_misc.c
    functionUses: 1
    functionsReached:
    - Camellia_Ekeygen
    linkageType: ''
    returnType: int
    signature: "int Camellia_set_key(const unsigned char *userKey, const int bits,\n
      \                    CAMELLIA_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_EncryptBlock_Rounds
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_misc.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAMELLIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Camellia_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_misc.c
    functionUses: 0
    functionsReached:
    - Camellia_EncryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "void Camellia_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     const CAMELLIA_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_DecryptBlock_Rounds
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_misc.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAMELLIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: Camellia_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_misc.c
    functionUses: 0
    functionsReached:
    - Camellia_DecryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "void Camellia_decrypt(const unsigned char *in, unsigned char *out,\n
      \                     const CAMELLIA_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_encrypt
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_ecb.c:17,1
    - Dst: Camellia_decrypt
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_ecb.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAMELLIA_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: Camellia_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_ecb.c
    functionUses: 0
    functionsReached:
    - Camellia_encrypt
    - Camellia_decrypt
    linkageType: ''
    returnType: void
    signature: "void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         const CAMELLIA_KEY *key, const int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_cbc.c:19,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-1.1.1g/crypto/camellia/cmll_cbc.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: Camellia_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/camellia/cmll_cbc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: void
    signature: "void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         size_t len, const CAMELLIA_KEY *key,\n                          unsigned
      char *ivec, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - MD5_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: MD5_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c
    functionUses: 5
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int MD5_Init(MD5_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:57,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:58,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:59,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:60,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:62,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:62,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:63,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:64,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:65,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:65,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:66,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:67,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:68,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:68,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:69,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:70,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:71,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:71,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:72,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:73,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:74,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:74,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:75,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:76,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:77,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:77,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:78,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:79,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:80,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:80,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:81,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:82,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:83,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:83,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:84,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:85,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:86,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:86,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:87,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:88,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:89,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:89,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:90,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:91,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:92,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:92,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:93,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:94,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:95,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:95,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:96,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:97,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:98,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:98,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:99,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:100,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:101,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:101,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:102,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:103,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:104,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:104,1
    - Dst: R0
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:105,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:105,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:107,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:107,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:108,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:108,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:109,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:109,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:110,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:110,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:111,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:111,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:112,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:112,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:113,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:113,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:114,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:114,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:115,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:115,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:116,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:116,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:117,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:117,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:118,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:118,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:119,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:119,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:120,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:120,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:121,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:121,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:122,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:122,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:124,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:124,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:125,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:125,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:126,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:126,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:127,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:127,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:128,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:128,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:129,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:129,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:130,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:130,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:131,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:131,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:132,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:132,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:133,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:133,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:134,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:134,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:135,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:135,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:136,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:136,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:137,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:137,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:138,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:138,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:139,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:139,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:141,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:141,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:142,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:142,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:143,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:143,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:144,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:144,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:145,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:145,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:146,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:146,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:147,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:147,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:148,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:148,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:149,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:149,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:150,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:150,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:151,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:151,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:152,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:152,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:153,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:153,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:154,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:154,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:155,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:155,1
    - Dst: R3
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:156,1
    - Dst: X
      Src: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 107
    argCount: 3
    argNames:
    - c
    - data_
    - num
    argTypes:
    - MD5_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 163
    functionName: md5_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c
    functionUses: 0
    functionsReached:
    - R1
    - HOST_c2l
    - R2
    - X
    - R3
    - R0
    linkageType: ''
    returnType: void
    signature: void md5_block_data_order(MD5_CTX *c, const void *data_, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: X
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: X
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/openssl-1.1.1g/crypto/md5/md5_one.c:26,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/md5/md5_one.c:29,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/md5/md5_one.c:37,1
    - Dst: MD5_Update
      Src: /src/openssl-1.1.1g/crypto/md5/md5_one.c:38,1
    - Dst: MD5_Final
      Src: /src/openssl-1.1.1g/crypto/md5/md5_one.c:44,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/md5/md5_one.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: MD5
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_one.c
    functionUses: 0
    functionsReached:
    - ebcdic2ascii
    - MD5_Init
    - MD5_Final
    - MD5_Update
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *MD5(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: F
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_local.h
    functionUses: 121
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: G
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_local.h
    functionUses: 136
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: H
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_local.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: I
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: R0
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: R1
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: R2
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: R3
    functionSourceFile: /src/openssl-1.1.1g/crypto/md5/md5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: BIO_s_log
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_log(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xopenlog
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: slg_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xopenlog
    linkageType: ''
    returnType: int
    signature: int slg_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcloselog
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: slg_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xcloselog
    linkageType: ''
    returnType: int
    signature: int slg_free(BIO *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:199,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:200,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:203,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:207,1
    - Dst: xsyslog
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 216
    functionName: slg_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BIOerr
    - OPENSSL_free
    - memcpy
    - xsyslog
    - strncmp
    linkageType: ''
    returnType: int
    signature: int slg_write(BIO *b, const char *in, int inl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcloselog
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:222,1
    - Dst: xopenlog
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: slg_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xcloselog
    - xopenlog
    linkageType: ''
    returnType: long
    signature: long slg_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:235,1
    - Dst: slg_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: slg_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - slg_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int slg_puts(BIO *bp, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_winnt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:244,1
    - Dst: RegisterEventSourceA
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bp
    - name
    - level
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: xopenlog
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - check_winnt
    - RegisterEventSourceA
    linkageType: ''
    returnType: void
    signature: void xopenlog(BIO *bp, char *name, int level)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:254,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:283,1
    - Dst: GetCurrentProcessId
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:283,1
    - Dst: ReportEventA
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - bp
    - priority
    - string
    argTypes:
    - BIO*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 288
    functionName: xsyslog
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 1
    functionsReached:
    - GetCurrentProcessId
    - DECIMAL_SIZE
    - ReportEventA
    - sprintf
    linkageType: ''
    returnType: void
    signature: void xsyslog(BIO *bp, int priority, const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeregisterEventSource
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: xcloselog
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - DeregisterEventSource
    linkageType: ''
    returnType: void
    signature: void xcloselog(BIO *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - name
    - level
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: xopenlog
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xopenlog(BIO *bp, char *name, int level)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: $DESCRIPTOR
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:330,1
    - Dst: lib$sys_fao
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:365,1
    - Dst: OPCDEF_MALLOC
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:368,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:370,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:372,1
    - Dst: sys$sndopr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:379,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:381,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - bp
    - priority
    - string
    argTypes:
    - BIO*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 382
    functionName: xsyslog
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 1
    functionsReached:
    - OPCDEF_MALLOC
    - sys$sndopr
    - OPENSSL_free
    - memcpy
    - lib$sys_fao
    - $DESCRIPTOR
    linkageType: ''
    returnType: void
    signature: void xsyslog(BIO *bp, int priority, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: xcloselog
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xcloselog(BIO *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openlog
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:393,1
    - Dst: openlog
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bp
    - name
    - level
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 397
    functionName: xopenlog
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - openlog
    linkageType: ''
    returnType: void
    signature: void xopenlog(BIO *bp, char *name, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - priority
    - string
    argTypes:
    - BIO*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: xsyslog
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 1
    functionsReached:
    - syslog
    linkageType: ''
    returnType: void
    signature: void xsyslog(BIO *bp, int priority, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closelog
      Src: /src/openssl-1.1.1g/crypto/bio/bss_log.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: xcloselog
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - closelog
    linkageType: ''
    returnType: void
    signature: void xcloselog(BIO *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: BIO_s_log
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_log(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: BIO_new_fd
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_fd(int fd, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: BIO_fd_non_fatal_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_fd_non_fatal_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: BIO_fd_should_retry
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_fd_should_retry(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: BIO_s_fd
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_fd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: BIO_s_fd
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_fd(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:85,1
    - Dst: BIO_s_fd
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:85,1
    - Dst: BIO_set_fd
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: BIO_new_fd
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - BIO_set_fd
    - BIO_s_fd
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_fd(int fd, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: fd_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fd_new(BIO *bi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UP_close
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: fd_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - UP_close
    linkageType: ''
    returnType: int
    signature: int fd_free(BIO *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:120,1
    - Dst: UP_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:121,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:122,1
    - Dst: BIO_fd_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:124,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: fd_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - clear_sys_error
    - BIO_fd_should_retry
    - UP_read
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int fd_read(BIO *b, char *out, int outl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:136,1
    - Dst: UP_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:137,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:138,1
    - Dst: BIO_fd_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:140,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: fd_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - clear_sys_error
    - BIO_fd_should_retry
    - BIO_set_retry_write
    - UP_write
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int fd_write(BIO *b, const char *in, int inl)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: UP_lseek
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:156,1
    - Dst: UP_lseek
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:160,1
    - Dst: fd_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:163,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 199
    functionName: fd_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - fd_free
    - UP_lseek
    linkageType: ''
    returnType: long
    signature: long fd_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:205,1
    - Dst: fd_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: fd_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - fd_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int fd_puts(BIO *bp, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fd_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:216,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 226
    functionName: fd_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - fd_read
    - strlen
    linkageType: ''
    returnType: int
    signature: int fd_gets(BIO *bp, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:233,1
    - Dst: BIO_fd_non_fatal_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_fd.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: BIO_fd_should_retry
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 2
    functionsReached:
    - BIO_fd_non_fatal_error
    - get_last_sys_error
    linkageType: ''
    returnType: int
    signature: int BIO_fd_should_retry(int i)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 284
    functionName: BIO_fd_non_fatal_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_fd_non_fatal_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: BIO_s_null
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_null.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: null_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int null_read(BIO *b, char *out, int outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: null_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int null_write(BIO *b, const char *in, int inl)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 75
    functionName: null_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long null_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: null_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int null_gets(BIO *bp, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_null.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: null_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int null_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: BIO_s_socket
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_socket(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:63,1
    - Dst: BIO_s_socket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:63,1
    - Dst: BIO_set_fd
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: BIO_new_socket
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - BIO_set_fd
    - BIO_s_socket
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_socket(int fd, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: sock_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sock_new(BIO *bi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: sock_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - BIO_closesocket
    linkageType: ''
    returnType: int
    signature: int sock_free(BIO *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:98,1
    - Dst: readsocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:99,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:100,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:102,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: sock_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - clear_socket_error
    - BIO_sock_should_retry
    - readsocket
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int sock_read(BIO *b, char *out, int outl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:115,1
    - Dst: writesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:116,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:117,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:119,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: sock_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - BIO_sock_should_retry
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - clear_socket_error
    - writesocket
    linkageType: ''
    returnType: int
    signature: int sock_write(BIO *b, const char *in, int inl)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sock_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 164
    functionName: sock_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - sock_free
    linkageType: ''
    returnType: long
    signature: long sock_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:170,1
    - Dst: sock_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: sock_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - sock_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int sock_puts(BIO *bp, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:180,1
    - Dst: BIO_sock_non_fatal_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_sock.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: BIO_sock_should_retry
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 2
    functionsReached:
    - BIO_sock_non_fatal_error
    - get_last_socket_error
    linkageType: ''
    returnType: int
    signature: int BIO_sock_should_retry(int i)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 236
    functionName: BIO_sock_non_fatal_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_sock_non_fatal_error(int err)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:88,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:89,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:110,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:121,1
    - Dst: BIO_lookup
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:124,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:130,1
    - Dst: BIO_socket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:138,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:138,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:139,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:140,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:142,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:142,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:143,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:146,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:154,1
    - Dst: BIO_connect
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:155,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:155,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:159,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:160,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:163,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:164,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:169,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:171,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:174,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:174,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:175,1
    - Dst: BIO_sock_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:188,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:190,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:191,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:192,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:195,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:203,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:216,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:224,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 127
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - BIO*
    - BIO_CONNECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 227
    functionName: conn_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_connect
    - ERR_add_error_data
    - get_last_socket_error
    - BIO_closesocket
    - BIO_ADDRINFO_protocol
    - cb
    - BIO_sock_error
    - BIOerr
    - BIO_socket
    - BIO_ADDRINFO_socktype
    - ERR_clear_error
    - SYSerr
    - BIO_set_retry_special
    - BIO_ADDRINFO_next
    - BIO_ADDRINFO_address
    - BIO_ADDRINFO_family
    - BIO_lookup
    - BIO_clear_retry_flags
    - BIO_sock_should_retry
    linkageType: ''
    returnType: int
    signature: int conn_state(BIO *b, BIO_CONNECT *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:233,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: BIO_CONNECT_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - BIOerr
    linkageType: ''
    returnType: BIO_CONNECT
    signature: BIO_CONNECT *BIO_CONNECT_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:246,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:247,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO_CONNECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: BIO_CONNECT_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_ADDRINFO_free
    linkageType: ''
    returnType: void
    signature: void BIO_CONNECT_free(BIO_CONNECT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: BIO_s_connect
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_connect(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_CONNECT_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: conn_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_CONNECT_new
    linkageType: ''
    returnType: int
    signature: int conn_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:276,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: conn_close_socket
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - shutdown
    - BIO_closesocket
    linkageType: ''
    returnType: void
    signature: void conn_close_socket(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_close_socket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:291,1
    - Dst: BIO_CONNECT_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 298
    functionName: conn_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_CONNECT_free
    - conn_close_socket
    linkageType: ''
    returnType: int
    signature: int conn_free(BIO *a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: conn_state
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:307,1
    - Dst: clear_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:313,1
    - Dst: readsocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:314,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:315,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:317,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 324
    functionName: conn_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - conn_state
    - clear_socket_error
    - BIO_sock_should_retry
    - BIO_clear_retry_flags
    - readsocket
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int conn_read(BIO *b, char *out, int outl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: conn_state
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:333,1
    - Dst: clear_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:338,1
    - Dst: writesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:339,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:340,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:342,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 346
    functionName: conn_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - conn_state
    - BIO_sock_should_retry
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - clear_socket_error
    - writesocket
    linkageType: ''
    returnType: int
    signature: int conn_write(BIO *b, const char *in, int inl)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: conn_close_socket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:362,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:363,1
    - Dst: conn_state
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:370,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:382,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:384,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:416,1
    - Dst: BIO_parse_hostserv
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:418,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:423,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:425,1
    - Dst: BUF_strdup
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:426,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:430,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:431,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:432,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:477,1
    - Dst: BIO_set_conn_port
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:479,1
    - Dst: BIO_set_conn_ip_family
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:480,1
    - Dst: BIO_set_conn_mode
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:481,1
    - Dst: BIO_set_info_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:486,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 136
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 508
    functionName: conn_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_set_conn_mode
    - BIO_set_conn_ip_family
    - BIO_ADDRINFO_free
    - conn_close_socket
    - BIO_parse_hostserv
    - conn_state
    - BIO_ADDR_service_string
    - OPENSSL_free
    - BIO_ADDRINFO_address
    - BIO_ADDRINFO_family
    - BIO_set_conn_port
    - BIO_set_info_callback
    - BUF_strdup
    - BIO_ADDR_hostname_string
    - BIO_set_conn_hostname
    linkageType: ''
    returnType: long
    signature: long conn_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 528
    functionName: conn_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long conn_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:534,1
    - Dst: conn_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 537
    functionName: conn_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - conn_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int conn_puts(BIO *bp, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:543,1
    - Dst: BIO_s_connect
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:543,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:546,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_conn.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 550
    functionName: BIO_new_connect
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_s_connect
    - BIO_free
    - BIO_set_conn_hostname
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_connect(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: BIO_f_buffer
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_buffer(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:49,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:56,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:62,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: buffer_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int buffer_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: buffer_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int buffer_free(BIO *a)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:101,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:109,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:127,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:129,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:145,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:147,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 158
    functionName: buffer_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int buffer_read(BIO *b, char *out, int outl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:171,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:176,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:184,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:192,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:195,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:216,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:218,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 235
    functionName: buffer_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_write
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int buffer_write(BIO *b, const char *in, int inl)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:256,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:261,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:279,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:287,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:292,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:295,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:300,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:321,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:326,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:329,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:334,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:341,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:351,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:352,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:353,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:360,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:365,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:367,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:369,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:380,1
    - Dst: BIO_set_read_buffer_size
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:384,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:385,1
    - Dst: buffer_read
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:392,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:396,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:402,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:407,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 159
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 409
    functionName: buffer_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BIO_write
    - BIO_set_read_buffer_size
    - BIO_set_write_buffer_size
    - BIOerr
    - OPENSSL_free
    - memcpy
    - BIO_ctrl
    - BIO_clear_retry_flags
    - buffer_read
    - BIO_copy_next_retry
    linkageType: ''
    returnType: long
    signature: long buffer_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 423
    functionName: buffer_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long buffer_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:433,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:457,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:459,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 470
    functionName: buffer_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int buffer_gets(BIO *b, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:474,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bf_buff.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 475
    functionName: buffer_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - buffer_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int buffer_puts(BIO *b, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: BIO_s_mem
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_mem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: BIO_s_secmem
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_secmem(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:94,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:97,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:98,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 111
    functionName: BIO_new_mem_buf
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - BIO_s_mem
    - strlen
    - BIOerr
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_mem_buf(const void *buf, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:115,1
    - Dst: BUF_MEM_new_ex
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:120,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:123,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - bi
    - flags
    argTypes:
    - BIO*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 134
    functionName: mem_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_new_ex
    - OPENSSL_free
    - BUF_MEM_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int mem_init(BIO *bi, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_init
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: mem_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_init
    linkageType: ''
    returnType: int
    signature: int mem_new(BIO *bi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_init
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: secmem_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_init
    linkageType: ''
    returnType: int
    signature: int secmem_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mem_buf_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:156,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: mem_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_buf_free
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int mem_free(BIO *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: mem_buf_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 1
    functionsReached:
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: int mem_buf_free(BIO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: mem_buf_sync
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: int
    signature: int mem_buf_sync(BIO *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:202,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:205,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 215
    functionName: mem_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int mem_read(BIO *b, char *out, int outl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:224,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:228,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:231,1
    - Dst: mem_buf_sync
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:235,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:236,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 243
    functionName: mem_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_buf_sync
    - BUF_MEM_grow_clean
    - BIOerr
    - memcpy
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int mem_write(BIO *b, const char *in, int inl)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:263,1
    - Dst: mem_buf_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:287,1
    - Dst: mem_buf_sync
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:295,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 324
    functionName: mem_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 7
    functionsReached:
    - mem_buf_sync
    - mem_buf_free
    - memset
    linkageType: ''
    returnType: long
    signature: long mem_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:336,1
    - Dst: mem_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:357,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 362
    functionName: mem_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_read
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int mem_gets(BIO *bp, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:368,1
    - Dst: mem_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_mem.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mem_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int mem_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: HAS_LEN_OPER
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_LEN_OPER(o)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO*::callback_ex
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:38,1
    - Dst: HAS_LEN_OPER
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:47,1
    - Dst: BIO*::callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:61,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 8
    argNames:
    - b
    - oper
    - argp
    - len
    - argi
    - argl
    - inret
    - processed
    argTypes:
    - BIO*
    - int
    - char*
    - size_t
    - int
    - long
    - long
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 69
    functionName: bio_call_callback
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO*::callback
    - BIO*::callback_ex
    - HAS_LEN_OPER
    linkageType: ''
    returnType: long
    signature: "long bio_call_callback(BIO *b, int oper, const char *argp, size_t
      len,\n                              int argi, long argl, long inret, size_t
      *processed)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:73,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:76,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:84,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:87,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:89,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:90,1
    - Dst: BIO_METHOD*::create
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:94,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:95,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:96,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:97,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:106,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - method
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 108
    functionName: BIO_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 35
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - BIOerr
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - BIO_METHOD*::create
    - CRYPTO_new_ex_data
    - OPENSSL_zalloc
    - CRYPTO_free_ex_data
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new(const BIO_METHOD *method)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:117,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:120,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:123,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:126,1
    - Dst: BIO*::method::destroy
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:132,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:134,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:136,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 141
    functionName: BIO_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 37
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - bio_call_callback
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - BIO*::method::destroy
    - CRYPTO_DOWN_REF
    - CRYPTO_free_ex_data
    linkageType: ''
    returnType: int
    signature: int BIO_free(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ptr
    argTypes:
    - BIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: BIO_set_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_data(BIO *a, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: BIO_get_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *BIO_get_data(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - init
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: BIO_set_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_init(BIO *a, int init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: BIO_get_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_get_init(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - shut
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: BIO_set_shutdown
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_shutdown(BIO *a, int shut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: BIO_get_shutdown
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_get_shutdown(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: BIO_vfree
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void BIO_vfree(BIO *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:182,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:185,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: BIO_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int BIO_up_ref(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: BIO_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_clear_flags(BIO *b, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: BIO_test_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_test_flags(const BIO *b, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: BIO_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_flags(BIO *b, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: BIO_get_callback
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_callback_fn
    signature: BIO_callback_fn BIO_get_callback(const BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - cb
    argTypes:
    - BIO*
    - BIO_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: BIO_set_callback
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_callback(BIO *b, BIO_callback_fn cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: BIO_get_callback_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_callback_fn_ex
    signature: BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - cb
    argTypes:
    - BIO*
    - BIO_callback_fn_ex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: BIO_set_callback_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - arg
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: BIO_set_callback_arg
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_callback_arg(BIO *b, char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: BIO_get_callback_arg
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *BIO_get_callback_arg(const BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: BIO_method_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *BIO_method_name(const BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: BIO_method_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_method_type(const BIO *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:256,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:261,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:266,1
    - Dst: BIO*::method::bread
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:270,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:276,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:281,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 4
    argNames:
    - b
    - data
    - dlen
    - readbytes
    argTypes:
    - BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 286
    functionName: bio_read_intern
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO*::method::bread
    - bio_call_callback
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int bio_read_intern(BIO *b, void *data, size_t dlen, size_t *readbytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bio_read_intern
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - b
    - data
    - dlen
    argTypes:
    - BIO*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: BIO_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 11
    functionsReached:
    - bio_read_intern
    linkageType: ''
    returnType: int
    signature: int BIO_read(BIO *b, void *data, int dlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bio_read_intern
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - b
    - data
    - dlen
    - readbytes
    argTypes:
    - BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 318
    functionName: BIO_read_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - bio_read_intern
    linkageType: ''
    returnType: int
    signature: int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:329,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:334,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:339,1
    - Dst: BIO*::method::bwrite
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:343,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:349,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - b
    - data
    - dlen
    - written
    argTypes:
    - BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 353
    functionName: bio_write_intern
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO*::method::bwrite
    - bio_call_callback
    - BIOerr
    linkageType: ''
    returnType: int
    signature: "int bio_write_intern(BIO *b, const void *data, size_t dlen,\n                            size_t
      *written)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bio_write_intern
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - b
    - data
    - dlen
    argTypes:
    - BIO*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 371
    functionName: BIO_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 26
    functionsReached:
    - bio_write_intern
    linkageType: ''
    returnType: int
    signature: int BIO_write(BIO *b, const void *data, int dlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bio_write_intern
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - b
    - data
    - dlen
    - written
    argTypes:
    - BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 385
    functionName: BIO_write_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - bio_write_intern
    linkageType: ''
    returnType: int
    signature: int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:393,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:398,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:404,1
    - Dst: BIO*::method::bputs
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:408,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:417,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:422,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - b
    - buf
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 430
    functionName: BIO_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 11
    functionsReached:
    - BIO*::method::bputs
    - bio_call_callback
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int BIO_puts(BIO *b, const char *buf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:438,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:443,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:448,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:454,1
    - Dst: BIO*::method::bgets
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:458,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:466,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 478
    functionName: BIO_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 4
    functionsReached:
    - BIO*::method::bgets
    - bio_call_callback
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int BIO_gets(BIO *b, char *buf, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:487,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - b
    - indent
    - max
    argTypes:
    - BIO*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: BIO_indent
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 6
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int BIO_indent(BIO *b, int indent, int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - b
    - cmd
    - larg
    - iarg
    argTypes:
    - BIO*
    - int
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: BIO_int_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long BIO_int_ctrl(BIO *b, int cmd, long larg, int iarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - larg
    argTypes:
    - BIO*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 508
    functionName: BIO_ptr_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: void
    signature: void *BIO_ptr_ctrl(BIO *b, int cmd, long larg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:518,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:523,1
    - Dst: BIO*::method::ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:528,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:531,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - b
    - cmd
    - larg
    - parg
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 535
    functionName: BIO_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 7
    functionsReached:
    - BIO*::method::ctrl
    - bio_call_callback
    - BIOerr
    linkageType: ''
    returnType: long
    signature: long BIO_ctrl(BIO *b, int cmd, long larg, void *parg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:546,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:551,1
    - Dst: BIO*::method::callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:557,1
    - Dst: bio_call_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:560,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 564
    functionName: BIO_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 5
    functionsReached:
    - BIO*::method::callback_ctrl
    - bio_call_callback
    - BIOerr
    linkageType: ''
    returnType: long
    signature: long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: BIO_ctrl_pending
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: size_t BIO_ctrl_pending(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: BIO_ctrl_wpending
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: size_t BIO_ctrl_wpending(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - b
    - bio
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 597
    functionName: BIO_push
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 3
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_push(BIO *b, BIO *bio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 618
    functionName: BIO_pop
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_pop(BIO *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:626,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - bio
    - reason
    argTypes:
    - BIO*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 636
    functionName: BIO_get_retry_BIO
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_should_retry
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_get_retry_BIO(BIO *bio, int *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: BIO_get_retry_reason
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_get_retry_reason(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - reason
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 646
    functionName: BIO_set_retry_reason
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_retry_reason(BIO *bio, int reason)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - bio
    - type
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 668
    functionName: BIO_find_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_find_type(BIO *bio, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 675
    functionName: BIO_next
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_next(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - next
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: BIO_set_next
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_next(BIO *b, BIO *next)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 696
    functionName: BIO_free_all
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 6
    functionsReached:
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void BIO_free_all(BIO *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:703,1
    - Dst: BIO_dup_state
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:715,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:716,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:721,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:723,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:731,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:737,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 698
    functionDepth: 5
    functionLinenumber: 698
    functionLinenumberEnd: 740
    functionName: BIO_dup_chain
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_dup_ex_data
    - BIO_dup_state
    - BIO_free
    - BIO_push
    - BIO_free_all
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_dup_chain(BIO *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:744,1
    - Dst: BIO_get_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 746
    functionName: BIO_copy_next_retry
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 16
    functionsReached:
    - BIO_set_flags
    - BIO_get_retry_flags
    linkageType: ''
    returnType: void
    signature: void BIO_copy_next_retry(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - idx
    - data
    argTypes:
    - BIO*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 751
    functionName: BIO_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int BIO_set_ex_data(BIO *bio, int idx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - idx
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 756
    functionName: BIO_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *BIO_get_ex_data(BIO *bio, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 763
    functionName: BIO_number_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BIO_number_read(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 770
    functionName: BIO_number_written
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BIO_number_written(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 775
    functionName: bio_free_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_free_ex_data
    linkageType: ''
    returnType: void
    signature: void bio_free_ex_data(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_sock_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:780,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:781,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_lib.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 786
    functionName: bio_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - bio_sock_cleanup_int
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void bio_cleanup(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: openssl_fopen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:62,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:65,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:69,1
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:69,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:70,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:76,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:78,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:81,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:81,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:82,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:86,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 90
    functionName: BIO_new_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 3
    functionsReached:
    - openssl_fopen
    - get_last_sys_error
    - BIOerr
    - fclose
    - BIO_clear_flags
    - ERR_add_error_data
    - strchr
    - BIO_s_file
    - BIO_set_fp
    - SYSerr
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_file(const char *filename, const char *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:96,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:96,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:100,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stream
    - close_flag
    argTypes:
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: BIO_new_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 4
    functionsReached:
    - BIO_s_file
    - BIO_set_flags
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_fp(FILE *stream, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: BIO_s_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: file_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_new(BIO *bi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UP_fclose
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:126,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: file_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - UP_fclose
    - fclose
    linkageType: ''
    returnType: int
    signature: int file_free(BIO *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UP_fread
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:143,1
    - Dst: fread
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:145,1
    - Dst: UP_ferror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:147,1
    - Dst: ferror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:148,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:149,1
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:149,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: file_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - UP_fread
    - get_last_sys_error
    - BIOerr
    - UP_ferror
    - ferror
    - fread
    - SYSerr
    linkageType: ''
    returnType: int
    signature: int file_read(BIO *b, char *out, int outl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UP_fwrite
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:163,1
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: file_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - fwrite
    - UP_fwrite
    linkageType: ''
    returnType: int
    signature: int file_write(BIO *b, const char *in, int inl)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: UP_fseek
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:190,1
    - Dst: fseek
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:192,1
    - Dst: UP_feof
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:196,1
    - Dst: feof
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:198,1
    - Dst: UP_ftell
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:203,1
    - Dst: ftell
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:205,1
    - Dst: file_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:208,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:219,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:223,1
    - Dst: UP_fsetmod
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:228,1
    - Dst: _fileno
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:233,1
    - Dst: _setmode
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:235,1
    - Dst: _setmode
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:237,1
    - Dst: fileno
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:239,1
    - Dst: _setmode
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:242,1
    - Dst: isatty
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:246,1
    - Dst: _setmode
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:247,1
    - Dst: _setmode
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:249,1
    - Dst: fileno
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:252,1
    - Dst: setmode
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:254,1
    - Dst: file_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:259,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:263,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:265,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:267,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:269,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:271,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:273,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:279,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:281,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:284,1
    - Dst: openssl_fopen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:286,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:288,1
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:288,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:289,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:290,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:296,1
    - Dst: UP_fflush
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:314,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:314,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:316,1
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:316,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:317,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:318,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 113
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 335
    functionName: file_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - UP_fflush
    - BIO_clear_flags
    - _fileno
    - ERR_add_error_data
    - BIOerr
    - UP_fsetmod
    - setmode
    - SYSerr
    - isatty
    - UP_feof
    - OPENSSL_strlcat
    - UP_fseek
    - OPENSSL_strlcpy
    - _setmode
    - feof
    - ftell
    - openssl_fopen
    - fflush
    - get_last_sys_error
    - UP_ftell
    - fseek
    - file_free
    - fileno
    linkageType: ''
    returnType: long
    signature: long file_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UP_fgets
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:343,1
    - Dst: fgets
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:346,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 353
    functionName: file_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - fgets
    - strlen
    - UP_fgets
    linkageType: ''
    returnType: int
    signature: int file_gets(BIO *bp, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:359,1
    - Dst: file_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_file.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: file_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - file_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int file_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: file_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_write(BIO *b, const char *in, int inl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: file_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_read(BIO *b, char *out, int outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: file_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: file_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_gets(BIO *bp, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: file_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long file_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: file_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_new(BIO *bi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: file_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_free(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: BIO_s_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: BIO_new_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_file.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_file(const char *filename, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: IN6_IS_ADDR_V4MAPPED
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN6_IS_ADDR_V4MAPPED(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: BIO_s_datagram
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_datagram(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:146,1
    - Dst: BIO_s_datagram
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:146,1
    - Dst: BIO_set_fd
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 151
    functionName: BIO_new_dgram
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_s_datagram
    - BIO_set_fd
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_dgram(int fd, int close_flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: dgram_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int dgram_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dgram_clear
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:169,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: dgram_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - dgram_clear
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int dgram_free(BIO *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: dgram_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - BIO_closesocket
    linkageType: ''
    returnType: int
    signature: int dgram_clear(BIO *a)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:212,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:214,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:221,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:223,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:225,1
    - Dst: get_current_time
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:229,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:232,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:257,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:259,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:262,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:264,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 270
    functionName: dgram_adjust_rcv_timeout
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - getsockopt
    - memcpy
    - get_current_time
    - setsockopt
    - perror
    linkageType: ''
    returnType: void
    signature: void dgram_adjust_rcv_timeout(BIO *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:282,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:284,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:287,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: dgram_reset_rcv_timeout
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - perror
    linkageType: ''
    returnType: void
    signature: void dgram_reset_rcv_timeout(BIO *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:307,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:308,1
    - Dst: dgram_adjust_rcv_timeout
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:309,1
    - Dst: recvfrom
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:312,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:313,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:316,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:318,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:320,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:321,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:322,1
    - Dst: dgram_reset_rcv_timeout
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 329
    functionName: dgram_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - recvfrom
    - dgram_adjust_rcv_timeout
    - BIO_ADDR_sockaddr_noconst
    - memset
    - BIO_ctrl
    - BIO_clear_retry_flags
    - clear_socket_error
    - get_last_socket_error
    - dgram_reset_rcv_timeout
    - BIO_dgram_should_retry
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int dgram_read(BIO *b, char *out, int outl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:335,1
    - Dst: writesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:338,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:340,1
    - Dst: sendto
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:342,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:343,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:346,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:348,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:349,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 354
    functionName: dgram_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_sockaddr
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - clear_socket_error
    - get_last_socket_error
    - writesocket
    - BIO_dgram_should_retry
    - BIO_ADDR_sockaddr_size
    - sendto
    linkageType: ''
    returnType: int
    signature: int dgram_write(BIO *b, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ADDR_family
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:360,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:372,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - bio_dgram_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 393
    functionName: dgram_get_mtu_overhead
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_rawaddress
    - IN6_IS_ADDR_V4MAPPED
    - BIO_ADDR_family
    linkageType: ''
    returnType: long
    signature: long dgram_get_mtu_overhead(bio_dgram_data *data)
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: dgram_clear
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:420,1
    - Dst: BIO_ADDR_make
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:449,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:449,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:455,1
    - Dst: getsockname
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:456,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:463,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:465,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:470,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:472,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:486,1
    - Dst: getsockname
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:487,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:495,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:510,1
    - Dst: dgram_get_mtu_overhead
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:533,1
    - Dst: BIO_ADDR_family
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:534,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:543,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:544,1
    - Dst: BIO_ADDR_make
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:566,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:566,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:569,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:573,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:578,1
    - Dst: BIO_ADDR_make
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:581,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:581,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:584,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:592,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:594,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:599,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:601,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:619,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:621,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:630,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:632,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:635,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:649,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:651,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:656,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:658,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:676,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:678,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:687,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:689,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:692,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:729,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:731,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:736,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:738,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:742,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:745,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:755,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:758,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:763,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:765,1
    - Dst: dgram_get_mtu_overhead
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:779,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 270
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 798
    functionName: dgram_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - BIO_ADDR_make
    - getsockopt
    - BIO_ADDR_sockaddr_size
    - IN6_IS_ADDR_V4MAPPED
    - memcpy
    - BIO_ADDR_sockaddr
    - dgram_clear
    - getsockname
    - memset
    - dgram_get_mtu_overhead
    - setsockopt
    - perror
    - BIO_ADDR_rawaddress
    - BIO_ADDR_family
    linkageType: ''
    returnType: long
    signature: long dgram_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:804,1
    - Dst: dgram_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 807
    functionName: dgram_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - dgram_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int dgram_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: BIO_s_datagram_sctp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_datagram_sctp(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:832,1
    - Dst: BIO_s_datagram_sctp
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:832,1
    - Dst: BIO_set_fd
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:835,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:840,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:843,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:844,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:845,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:850,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:853,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:854,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:855,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:866,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:868,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:871,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:874,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:875,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:888,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:891,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:892,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:893,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:901,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:906,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:909,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:914,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:916,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:923,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:926,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:937,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:940,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 73
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 815
    functionDepth: 5
    functionLinenumber: 815
    functionLinenumberEnd: 945
    functionName: BIO_new_dgram_sctp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_vfree
    - BIOerr
    - BIO_s_datagram_sctp
    - getsockopt
    - OPENSSL_free
    - ERR_add_error_data
    - BIO_set_fd
    - memset
    - OPENSSL_zalloc
    - setsockopt
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_dgram_sctp(int fd, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_method_type
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 950
    functionName: BIO_dgram_is_sctp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_method_type
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_is_sctp(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:958,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 969
    functionName: dgram_sctp_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_new(BIO *bi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dgram_clear
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:977,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:982,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 971
    functionDepth: 2
    functionLinenumber: 971
    functionLinenumberEnd: 985
    functionName: dgram_sctp_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - dgram_clear
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_free(BIO *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - snp
    argTypes:
    - BIO*
    - union sctp_notification*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 1002
    functionName: dgram_sctp_handle_auth_free_key_event
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: "void dgram_sctp_handle_auth_free_key_event(BIO *b,\n                                           union
      sctp_notification *snp)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1017,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1020,1
    - Dst: recvmsg
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1030,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1039,1
    - Dst: CMSG_NXTHDR
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1040,1
    - Dst: CMSG_DATA
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1047,1
    - Dst: CMSG_DATA
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1062,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1087,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1091,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1099,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1108,1
    - Dst: dgram_sctp_handle_auth_free_key_event
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1118,1
    - Dst: bio_dgram_sctp_data*::handle_notifications
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1122,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1125,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1147,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1149,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1157,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1160,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1165,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1171,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1172,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1176,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1178,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1179,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1180,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1192,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1194,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1197,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1211,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1214,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 127
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1222
    functionName: dgram_sctp_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - OPENSSL_malloc
    - bio_dgram_sctp_data*::handle_notifications
    - CMSG_NXTHDR
    - BIOerr
    - getsockopt
    - dgram_sctp_handle_auth_free_key_event
    - CMSG_DATA
    - OPENSSL_free
    - memset
    - recvmsg
    - BIO_clear_retry_flags
    - clear_socket_error
    - setsockopt
    - get_last_socket_error
    - CMSG_FIRSTHDR
    - BIO_dgram_should_retry
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_read(BIO *b, char *out, int outl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1243,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1244,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1248,1
    - Dst: clear_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1252,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1259,1
    - Dst: BIO_dgram_sctp_wait_for_dry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1268,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1272,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1273,1
    - Dst: CMSG_LEN
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1291,1
    - Dst: CMSG_DATA
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1292,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1293,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1298,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1301,1
    - Dst: CMSG_LEN
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1304,1
    - Dst: CMSG_DATA
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1305,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1306,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1309,1
    - Dst: CMSG_LEN
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1314,1
    - Dst: CMSG_DATA
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1315,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1316,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1325,1
    - Dst: sendmsg
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1328,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1330,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1332,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1333,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1334,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 68
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1338
    functionName: dgram_sctp_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - CMSG_LEN
    - clear_socket_error
    - CMSG_DATA
    - BIO_dgram_should_retry
    - memset
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - BIO_dgram_sctp_wait_for_dry
    - get_last_socket_error
    - CMSG_SPACE
    - sendmsg
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_write(BIO *b, const char *in, int inl)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1390,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1401,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1408,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1413,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1422,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1425,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1427,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1433,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1445,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1452,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1481,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1493,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1501,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1517,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1525,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1532,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1541,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1548,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1556,1
    - Dst: dgram_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1570,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 126
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1340
    functionDepth: 3
    functionLinenumber: 1340
    functionLinenumberEnd: 1574
    functionName: dgram_sctp_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - dgram_ctrl
    - getsockopt
    - OPENSSL_free
    - memcpy
    - memset
    - setsockopt
    linkageType: ''
    returnType: long
    signature: long dgram_sctp_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - b
    - context
    argTypes:
    - BIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1576
    functionDepth: 0
    functionLinenumber: 1576
    functionLinenumberEnd: 1592
    functionName: BIO_dgram_sctp_notification_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_dgram_sctp_notification_cb(BIO *b,\n                                   void
      (*handle_notifications) (BIO *bio,\n                                                                 void\n
      \                                                                *context,\n
      \                                                                void *buf),\n
      \                                  void *context)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1625,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1630,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1634,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1641,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1648,1
    - Dst: recvmsg
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1659,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1661,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1662,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1670,1
    - Dst: recvmsg
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1681,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1683,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1684,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1695,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1700,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1705,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1713,1
    - Dst: dgram_sctp_handle_auth_free_key_event
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1721,1
    - Dst: bio_dgram_sctp_data*::handle_notifications
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1725,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1729,1
    - Dst: fcntl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1742,1
    - Dst: fcntl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1743,1
    - Dst: recvmsg
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1746,1
    - Dst: fcntl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1749,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1753,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1754,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 92
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1763
    functionName: BIO_dgram_sctp_wait_for_dry
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - bio_dgram_sctp_data*::handle_notifications
    - getsockopt
    - dgram_sctp_handle_auth_free_key_event
    - memset
    - get_last_socket_error
    - recvmsg
    - fcntl
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_sctp_wait_for_dry(BIO *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1775,1
    - Dst: fcntl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1786,1
    - Dst: fcntl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1787,1
    - Dst: recvmsg
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1788,1
    - Dst: fcntl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1789,1
    - Dst: dgram_sctp_handle_auth_free_key_event
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1795,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1798,1
    - Dst: recvmsg
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1808,1
    - Dst: bio_dgram_sctp_data*::handle_notifications
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1811,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1822
    functionName: BIO_dgram_sctp_msg_waiting
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - bio_dgram_sctp_data*::handle_notifications
    - dgram_sctp_handle_auth_free_key_event
    - fcntl
    - memset
    - recvmsg
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_sctp_msg_waiting(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1828,1
    - Dst: dgram_sctp_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1824
    functionDepth: 2
    functionLinenumber: 1824
    functionLinenumberEnd: 1831
    functionName: dgram_sctp_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - dgram_sctp_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_puts(BIO *bp, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1839,1
    - Dst: BIO_dgram_non_fatal_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1834
    functionDepth: 1
    functionLinenumber: 1834
    functionLinenumberEnd: 1852
    functionName: BIO_dgram_should_retry
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 4
    functionsReached:
    - BIO_dgram_non_fatal_error
    - get_last_socket_error
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_should_retry(int i)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1854
    functionDepth: 0
    functionLinenumber: 1854
    functionLinenumberEnd: 1900
    functionName: BIO_dgram_non_fatal_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_non_fatal_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTime
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1911,1
    - Dst: SystemTimeToFileTime
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1912,1
    - Dst: gettimeofday
      Src: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1902
    functionDepth: 0
    functionLinenumber: 1902
    functionLinenumberEnd: 1923
    functionName: get_current_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - GetSystemTime
    - SystemTimeToFileTime
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void get_current_time(struct timeval *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:44,1
    - Dst: socket
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:47,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:49,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:49,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - domain
    - socktype
    - protocol
    - options
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: BIO_socket
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
    functionUses: 1
    functionsReached:
    - BIOerr
    - socket
    - get_last_socket_error
    - BIO_sock_init
    - SYSerr
    linkageType: ''
    returnType: int
    signature: int BIO_socket(int domain, int socktype, int protocol, int options)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:82,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:86,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:90,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:92,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:92,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:93,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:99,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:101,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:101,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:102,1
    - Dst: connect
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:107,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:107,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:108,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:109,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:110,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:110,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - sock
    - addr
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 116
    functionName: BIO_connect
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
    functionUses: 1
    functionsReached:
    - BIO_socket_nbio
    - BIOerr
    - BIO_sock_should_retry
    - BIO_ADDR_sockaddr
    - get_last_socket_error
    - setsockopt
    - SYSerr
    - BIO_ADDR_sockaddr_size
    - connect
    linkageType: ''
    returnType: int
    signature: int BIO_connect(int sock, const BIO_ADDR *addr, int options)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:141,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:151,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:153,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:153,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:154,1
    - Dst: bind
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:160,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:160,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:160,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:161,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:161,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - sock
    - addr
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 167
    functionName: BIO_bind
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - bind
    - BIO_ADDR_sockaddr
    - get_last_socket_error
    - setsockopt
    - SYSerr
    - BIO_ADDR_sockaddr_size
    linkageType: ''
    returnType: int
    signature: int BIO_bind(int sock, const BIO_ADDR *addr, int options)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:213,1
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:217,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:220,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:220,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:221,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:225,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:229,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:231,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:231,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:232,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:238,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:240,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:240,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:241,1
    - Dst: BIO_ADDR_family
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:247,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:253,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:255,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:255,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:256,1
    - Dst: BIO_bind
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:262,1
    - Dst: listen
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:265,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:266,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:266,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:267,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - sock
    - addr
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 272
    functionName: BIO_listen
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
    functionUses: 0
    functionsReached:
    - BIO_socket_nbio
    - BIO_bind
    - listen
    - BIOerr
    - getsockopt
    - get_last_socket_error
    - setsockopt
    - SYSerr
    - BIO_ADDR_family
    linkageType: ''
    returnType: int
    signature: int BIO_listen(int sock, const BIO_ADDR *addr, int options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:289,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:290,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:292,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:293,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:293,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:294,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:299,1
    - Dst: closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - accept_sock
    - addr_
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 305
    functionName: BIO_accept_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
    functionUses: 0
    functionsReached:
    - BIO_socket_nbio
    - BIOerr
    - accept
    - BIO_sock_should_retry
    - BIO_ADDR_sockaddr_noconst
    - get_last_socket_error
    - closesocket
    - SYSerr
    linkageType: ''
    returnType: int
    signature: int BIO_accept_ex(int accept_sock, BIO_ADDR *addr_, int options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock2.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: BIO_closesocket
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
    functionUses: 4
    functionsReached:
    - closesocket
    linkageType: ''
    returnType: int
    signature: int BIO_closesocket(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: BIO_f_null
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_null(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:55,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:56,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: nullf_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int nullf_read(BIO *b, char *out, int outl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:69,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:70,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: nullf_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int nullf_write(BIO *b, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:83,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:84,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:85,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 94
    functionName: nullf_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: long
    signature: long nullf_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: nullf_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long nullf_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: nullf_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int nullf_gets(BIO *bp, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/bio/bf_null.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: nullf_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int nullf_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: BIO_s_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_bio(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: bio_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int bio_new(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:100,1
    - Dst: bio_destroy_pair
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 109
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 109
    functionName: bio_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_destroy_pair
    - OPENSSL_free
    - assert
    linkageType: ''
    returnType: int
    signature: int bio_free(BIO *bio)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:117,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:123,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:124,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:126,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:127,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:138,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:158,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:162,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:168,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:170,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:175,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:181,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - bio
    - buf
    - size_
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts:
    - condition: (peer_b != NULL)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (peer_b->buf != NULL)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->peer != NULL)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (rest > 0)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (rest <= peer_b->len)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (peer_b->offset + chunk <= peer_b->size)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (peer_b->offset <= peer_b->size)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (chunk == rest)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 189
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 189
    functionName: bio_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_read
    - memcpy
    - BIO_clear_retry_flags
    - assert
    linkageType: ''
    returnType: int
    signature: int bio_read(BIO *bio, char *buf, int size_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:207,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:213,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:214,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:216,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:217,1
    - Dst: bio_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:225,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->peer != NULL)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (peer_b != NULL)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (peer_b->buf != NULL)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (num > 0)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 237
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 237
    functionName: bio_nread0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_read
    - BIO_clear_retry_flags
    - assert
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t bio_nread0(BIO *bio, char **buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bio_nread0
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:249,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - bio
    - buf
    - num_
    argTypes:
    - BIO*
    - char**
    - size_t
    assertStmts:
    - condition: (peer_b->offset <= peer_b->size)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 268
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 268
    functionName: bio_nread
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_nread0
    - assert
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t bio_nread(BIO *bio, char **buf, size_t num_)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:276,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:282,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:283,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:284,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:289,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:293,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:296,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:308,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:313,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:326,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:330,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - bio
    - buf
    - num_
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->peer != NULL)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->buf != NULL)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->len <= b->size)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (rest > 0)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->len + rest <= b->size)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->len <= b->size)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 338
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 338
    functionName: bio_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - memcpy
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - assert
    linkageType: ''
    returnType: int
    signature: int bio_write(BIO *bio, const char *buf, int num_)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:353,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:359,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:360,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:361,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:365,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:369,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:372,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    assertStmts:
    - condition: (b->buf != NULL)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b != NULL)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->peer != NULL)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->len <= b->size)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (write_offset + num <= b->size)
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 393
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 393
    functionName: bio_nwrite0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    - BIOerr
    - BIO_clear_retry_flags
    - assert
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t bio_nwrite0(BIO *bio, char **buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bio_nwrite0
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:405,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:411,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - bio
    - buf
    - num_
    argTypes:
    - BIO*
    - char**
    - size_t
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->len <= b->size)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 416
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 416
    functionName: bio_nwrite
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_nwrite0
    - assert
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t bio_nwrite(BIO *bio, char **buf, size_t num_)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:423,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:430,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:433,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:439,1
    - Dst: bio_make_pair
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:455,1
    - Dst: bio_destroy_pair
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:467,1
    - Dst: bio_nread0
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:509,1
    - Dst: bio_nread
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:514,1
    - Dst: bio_nwrite0
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:519,1
    - Dst: bio_nwrite
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:524,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:568,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:570,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:572,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 111
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (other_b != NULL)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (other_b->buf == NULL)
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (other_bio != NULL)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 601
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 601
    functionName: bio_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_nread
    - bio_make_pair
    - BIOerr
    - bio_nwrite
    - OPENSSL_free
    - bio_destroy_pair
    - bio_nwrite0
    - assert
    - bio_nread0
    linkageType: ''
    returnType: long
    signature: long bio_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:605,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 606
    functionName: bio_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int bio_puts(BIO *bio, const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:612,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:613,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:619,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:624,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:626,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:634,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - bio1
    - bio2
    argTypes:
    - BIO*
    - BIO*
    assertStmts:
    - condition: (bio1 != NULL)
      pos:
        line_end: 611
        line_start: 611
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (bio2 != NULL)
      pos:
        line_end: 612
        line_start: 612
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 654
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 654
    functionName: bio_make_pair
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - BIOerr
    - assert
    linkageType: ''
    returnType: int
    signature: int bio_make_pair(BIO *bio1, BIO *bio2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:666,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:667,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:671,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts:
    - condition: (peer_b != NULL)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (b->buf != NULL)
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (peer_b->buf != NULL)
      pos:
        line_end: 670
        line_start: 670
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    - condition: (peer_b->peer == bio)
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 682
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 682
    functionName: bio_destroy_pair
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void bio_destroy_pair(BIO *bio)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:692,1
    - Dst: BIO_s_bio
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:692,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:695,1
    - Dst: BIO_s_bio
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:695,1
    - Dst: BIO_set_write_buf_size
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:700,1
    - Dst: BIO_set_write_buf_size
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:705,1
    - Dst: BIO_make_bio_pair
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:710,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:717,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:719,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - bio1_p
    - writebuf1
    - bio2_p
    - writebuf2
    argTypes:
    - BIO**
    - size_t
    - BIO**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 685
    functionDepth: 4
    functionLinenumber: 685
    functionLinenumberEnd: 726
    functionName: BIO_new_bio_pair
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_make_bio_pair
    - BIO_set_write_buf_size
    - BIO_free
    - BIO_s_bio
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int BIO_new_bio_pair(BIO **bio1_p, size_t writebuf1,\n                     BIO
      **bio2_p, size_t writebuf2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 731
    functionName: BIO_ctrl_get_write_guarantee
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: size_t BIO_ctrl_get_write_guarantee(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: BIO_ctrl_get_read_request
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: size_t BIO_ctrl_get_read_request(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: BIO_ctrl_reset_read_request
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: int BIO_ctrl_reset_read_request(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:753,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 762
    functionName: BIO_nread0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int BIO_nread0(BIO *bio, char **buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:769,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - buf
    - num
    argTypes:
    - BIO*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 764
    functionDepth: 3
    functionLinenumber: 764
    functionLinenumberEnd: 777
    functionName: BIO_nread
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int BIO_nread(BIO *bio, char **buf, int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:784,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 793
    functionName: BIO_nwrite0
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int BIO_nwrite0(BIO *bio, char **buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:800,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_bio.c:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - buf
    - num
    argTypes:
    - BIO*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 808
    functionName: BIO_nwrite
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int BIO_nwrite(BIO *bio, char **buf, int num)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:29,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:39,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:43,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:47,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:52,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:56,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:60,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:63,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:67,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:71,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:74,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:77,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:80,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:83,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:86,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:92,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bio_cb.c:92,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 6
    argNames:
    - bio
    - cmd
    - argp
    - argi
    - argl
    - ret
    argTypes:
    - BIO*
    - int
    - char*
    - int
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 98
    functionName: BIO_debug_callback
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_cb.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - BIO_write
    - strlen
    linkageType: ''
    returnType: long
    signature: "long BIO_debug_callback(BIO *bio, int cmd, const char *argp,\n                        int
      argi, long argl, long ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_bio_type_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:27,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:28,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: BIO_get_new_index
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    - RUN_ONCE
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int BIO_get_new_index(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:38,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:42,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: BIO_meth_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_zalloc
    - BIOerr
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_meth_new(int type, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:53,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: BIO_meth_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BIO_meth_free(BIO_METHOD *biom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char
      *, int)
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char
      *, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: "(*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const
      char *, size_t,\n                                                size_t *)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const
      char *, size_t,\n                                                size_t *)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO*::method::bwrite_old
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bio
    - data
    - datal
    - written
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: bwrite_conv
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - BIO*::method::bwrite_old
    linkageType: ''
    returnType: int
    signature: int bwrite_conv(BIO *bio, const char *data, size_t datal, size_t *written)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: BIO_meth_set_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_write(BIO_METHOD *biom,\n                       int
      (*bwrite) (BIO *, const char *, int))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: BIO_meth_set_write_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_write_ex(BIO_METHOD *biom,\n                       int
      (*bwrite) (BIO *, const char *, size_t, size_t *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int)
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *,
      size_t, size_t *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *,
      size_t, size_t *)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO*::method::bread_old
      Src: /src/openssl-1.1.1g/crypto/bio/bio_meth.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bio
    - data
    - datal
    - readbytes
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 133
    functionName: bread_conv
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - BIO*::method::bread_old
    linkageType: ''
    returnType: int
    signature: int bread_conv(BIO *bio, char *data, size_t datal, size_t *readbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: BIO_meth_set_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_read(BIO_METHOD *biom,\n                      int
      (*bread) (BIO *, char *, int))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: BIO_meth_set_read_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_read_ex(BIO_METHOD *biom,\n                         int
      (*bread) (BIO *, char *, size_t, size_t *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char
      *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char
      *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: BIO_meth_set_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_puts(BIO_METHOD *biom,\n                      int
      (*bputs) (BIO *, const char *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int)
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: BIO_meth_set_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_gets(BIO_METHOD *biom,\n                      int
      (*bgets) (BIO *, char *, int))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long,
      void *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long,
      void *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: BIO_meth_set_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_ctrl(BIO_METHOD *biom,\n                      long
      (*ctrl) (BIO *, int, long, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: (*BIO_meth_get_create(const BIO_METHOD *biom)) (BIO *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_create(const BIO_METHOD *biom)) (BIO *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: BIO_meth_set_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: BIO_meth_set_destroy
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int,
      BIO_info_cb *)
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *,
      int, BIO_info_cb *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: BIO_meth_set_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_callback_ctrl(BIO_METHOD *biom,\n                               long
      (*callback_ctrl) (BIO *, int,\n                                                      BIO_info_cb
      *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: BIO_f_linebuffer
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_linebuffer(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:62,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:63,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:66,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:68,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: linebuffer_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int linebuffer_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:88,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: linebuffer_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int linebuffer_free(BIO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:104,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:105,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: linebuffer_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int linebuffer_read(BIO *b, char *out, int outl)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:121,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:145,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:151,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:158,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:161,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:169,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:178,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:180,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:198,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 203
    functionName: linebuffer_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - memmove
    - memcpy
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int linebuffer_write(BIO *b, const char *in, int inl)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:221,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:231,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:238,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:246,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:247,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:255,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:256,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:257,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:264,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:269,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:271,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:272,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:276,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:283,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:287,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:293,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:298,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 86
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 300
    functionName: linebuffer_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BIO_write
    - BIO_set_write_buffer_size
    - BIOerr
    - OPENSSL_free
    - memmove
    - memcpy
    - BIO_ctrl
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    linkageType: ''
    returnType: long
    signature: long linebuffer_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 314
    functionName: linebuffer_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long linebuffer_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: linebuffer_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int linebuffer_gets(BIO *b, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: linebuffer_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:325,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: linebuffer_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - linebuffer_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int linebuffer_puts(BIO *b, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/bio/bio_err.c:139,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/bio/bio_err.c:140,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/bio/bio_err.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: ERR_load_BIO_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bio_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_BIO_strings(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:33,1
    - Dst: BIO_lookup
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:36,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:39,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:40,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:42,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:42,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:47,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:48,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:48,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:50,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - str
    - ip
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: BIO_get_host_ip
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - BIO_ADDRINFO_free
    - BIOerr
    - BIO_ADDRINFO_address
    - BIO_ADDRINFO_family
    - ERR_add_error_data
    - BIO_lookup
    - BIO_sock_init
    - BIO_ADDR_rawaddress
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int BIO_get_host_ip(const char *str, unsigned char *ip)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:64,1
    - Dst: BIO_sock_init
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:68,1
    - Dst: BIO_lookup
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:71,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:72,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:73,1
    - Dst: ntohs
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:76,1
    - Dst: BIO_ADDR_rawport
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:76,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:76,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:79,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - str
    - port_ptr
    argTypes:
    - char*
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 85
    functionName: BIO_get_port
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - BIO_ADDRINFO_free
    - BIOerr
    - ntohs
    - BIO_ADDRINFO_address
    - BIO_ADDRINFO_family
    - ERR_add_error_data
    - BIO_lookup
    - BIO_ADDR_rawport
    - BIO_sock_init
    linkageType: ''
    returnType: int
    signature: int BIO_get_port(const char *str, unsigned short *port_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:99,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: BIO_sock_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 1
    functionsReached:
    - getsockopt
    - get_last_socket_error
    linkageType: ''
    returnType: int
    signature: int BIO_sock_error(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gethostbyname
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 114
    functionName: BIO_gethostbyname
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - gethostbyname
    linkageType: ''
    returnType: struct hostent
    signature: struct hostent *BIO_gethostbyname(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:126,1
    - Dst: WSAStartup
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:133,1
    - Dst: WSAGetLastError
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:134,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:135,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:136,1
    - Dst: sock_init
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 149
    functionName: BIO_sock_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 3
    functionsReached:
    - BIOerr
    - sock_init
    - WSAGetLastError
    - memset
    - WSAStartup
    - SYSerr
    linkageType: ''
    returnType: int
    signature: int BIO_sock_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSACleanup
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: bio_sock_cleanup_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 1
    functionsReached:
    - WSACleanup
    linkageType: ''
    returnType: void
    signature: void bio_sock_cleanup_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:166,1
    - Dst: ioctlsocket
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:192,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:195,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - type
    - arg
    argTypes:
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 197
    functionName: BIO_socket_ioctl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - get_last_socket_error
    - SYSerr
    - ioctlsocket
    linkageType: ''
    returnType: int
    signature: int BIO_socket_ioctl(int fd, long type, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_parse_hostserv
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:206,1
    - Dst: BIO_sock_init
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:209,1
    - Dst: BIO_lookup
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:212,1
    - Dst: BIO_socket
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:215,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:215,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:215,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:216,1
    - Dst: BIO_listen
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:221,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:221,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:223,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:228,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:229,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - host
    - bind_mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 233
    functionName: BIO_get_accept_socket
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - BIO_listen
    - BIO_parse_hostserv
    - BIO_ADDRINFO_free
    - BIO_socket
    - OPENSSL_free
    - BIO_ADDRINFO_address
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_socktype
    - BIO_lookup
    - BIO_closesocket
    - BIO_sock_init
    - BIO_ADDRINFO_protocol
    linkageType: ''
    returnType: int
    signature: int BIO_get_accept_socket(char *host, int bind_mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_accept_ex
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:240,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:242,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:246,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:246,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:247,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:252,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:253,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:255,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:255,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:255,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:260,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:261,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:264,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:265,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:266,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:268,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - sock
    - ip_port
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 274
    functionName: BIO_accept
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - strcpy
    - BIOerr
    - BIO_ADDR_service_string
    - OPENSSL_free
    - BIO_sock_should_retry
    - get_last_socket_error
    - OPENSSL_zalloc
    - BIO_closesocket
    - strcat
    - BIO_accept_ex
    - strlen
    - SYSerr
    - BIO_ADDR_hostname_string
    linkageType: ''
    returnType: int
    signature: int BIO_accept(int sock, char **ip_port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - 'on'
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: BIO_set_tcp_ndelay
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int BIO_set_tcp_ndelay(int s, int on)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_socket_ioctl
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:305,1
    - Dst: fcntl
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:309,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:311,1
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:311,1
    - Dst: fcntl
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:326,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:329,1
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:329,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 338
    functionName: BIO_socket_nbio
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 3
    functionsReached:
    - get_last_sys_error
    - BIOerr
    - fcntl
    - BIO_socket_ioctl
    - SYSerr
    linkageType: ''
    returnType: int
    signature: int BIO_socket_nbio(int s, int mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:349,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:349,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:352,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:352,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:353,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:357,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_sock.c:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - sock
    - type
    - info
    argTypes:
    - int
    - enum BIO_sock_info_type
    - union BIO_sock_info_u*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 367
    functionName: BIO_sock_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - BIO_ADDR_sockaddr_noconst
    - getsockname
    - get_last_socket_error
    - SYSerr
    linkageType: ''
    returnType: int
    signature: "int BIO_sock_info(int sock,\n                  enum BIO_sock_info_type
      type, union BIO_sock_info_u *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: DUMP_WIDTH_LESS_INDENT
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP_WIDTH_LESS_INDENT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - pos
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: SPACE
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPACE(buf, pos, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_indent_cb
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - u
    - s
    - len
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: BIO_dump_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent_cb
    linkageType: ''
    returnType: int
    signature: "int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u),\n
      \               void *u, const char *s, int len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DUMP_WIDTH_LESS_INDENT
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:42,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:47,1
    - Dst: SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:50,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:52,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:55,1
    - Dst: SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:61,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:62,1
    - Dst: SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:68,1
    - Dst: SPACE
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:80,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:88,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - u
    - s
    - len
    - indent
    argTypes:
    - void*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 91
    functionName: BIO_dump_indent_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 1
    functionsReached:
    - DUMP_WIDTH_LESS_INDENT
    - BIO_snprintf
    - cb
    - strcpy
    - SPACE
    linkageType: ''
    returnType: int
    signature: "int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void
      *u),\n                       void *u, const char *s, int len, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UP_fwrite
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - len
    - fp
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: write_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - UP_fwrite
    linkageType: ''
    returnType: int
    signature: int write_fp(const void *data, size_t len, void *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_cb
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - s
    - len
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: BIO_dump_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_cb
    linkageType: ''
    returnType: int
    signature: int BIO_dump_fp(FILE *fp, const char *s, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_indent_cb
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fp
    - s
    - len
    - indent
    argTypes:
    - FILE*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: BIO_dump_indent_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent_cb
    linkageType: ''
    returnType: int
    signature: int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - len
    - bp
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: write_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 6
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int write_bio(const void *data, size_t len, void *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_cb
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - s
    - len
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: BIO_dump
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_cb
    linkageType: ''
    returnType: int
    signature: int BIO_dump(BIO *bp, const char *s, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_indent_cb
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - s
    - len
    - indent
    argTypes:
    - BIO*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: BIO_dump_indent
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent_cb
    linkageType: ''
    returnType: int
    signature: int BIO_dump_indent(BIO *bp, const char *s, int len, int indent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:135,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:137,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:141,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:145,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/bio/b_dump.c:146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - out
    - indent
    - width
    - data
    - datalen
    argTypes:
    - BIO*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 148
    functionName: BIO_hex_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int BIO_hex_string(BIO *out, int indent, int width, unsigned char
      *data,\n                   int datalen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: BIO_s_accept
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_accept(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ACCEPT_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: acpt_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_ACCEPT_new
    linkageType: ''
    returnType: int
    signature: int acpt_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:95,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: BIO_ACCEPT_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 1
    functionsReached:
    - OPENSSL_zalloc
    - BIOerr
    linkageType: ''
    returnType: BIO_ACCEPT
    signature: BIO_ACCEPT *BIO_ACCEPT_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:109,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:112,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:113,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:114,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:115,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO_ACCEPT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: BIO_ACCEPT_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_ADDRINFO_free
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void BIO_ACCEPT_free(BIO_ACCEPT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:125,1
    - Dst: closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: acpt_close_socket
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - shutdown
    - closesocket
    linkageType: ''
    returnType: void
    signature: void acpt_close_socket(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpt_close_socket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:141,1
    - Dst: BIO_ACCEPT_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: acpt_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_ACCEPT_free
    - acpt_close_socket
    linkageType: ''
    returnType: int
    signature: int acpt_free(BIO *a)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:159,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:160,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:170,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:174,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:176,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:195,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:206,1
    - Dst: BIO_lookup
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:209,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:214,1
    - Dst: BIO_socket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:225,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:225,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:226,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:227,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:229,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:229,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:230,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:233,1
    - Dst: BIO_listen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:244,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:245,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:247,1
    - Dst: BIO_sock_info
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:256,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:258,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:264,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:266,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:277,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:280,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:282,1
    - Dst: BIO_accept_ex
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:285,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:292,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:293,1
    - Dst: BIO_new_socket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:305,1
    - Dst: BIO_set_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:309,1
    - Dst: BIO_get_callback
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:309,1
    - Dst: BIO_set_callback_arg
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:310,1
    - Dst: BIO_get_callback_arg
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:310,1
    - Dst: BIO_dup_chain
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:317,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:319,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:323,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:327,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:329,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:351,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:353,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 162
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - BIO*
    - BIO_ACCEPT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 356
    functionName: acpt_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_listen
    - BIO_sock_info
    - BIO_get_callback_arg
    - ERR_add_error_data
    - BIO_dup_chain
    - get_last_socket_error
    - BIO_closesocket
    - BIO_ADDRINFO_protocol
    - BIO_new_socket
    - BIO_set_callback_arg
    - BIOerr
    - BIO_socket
    - BIO_ADDR_service_string
    - OPENSSL_free
    - BIO_ADDRINFO_socktype
    - BIO_free
    - BIO_push
    - BIO_accept_ex
    - SYSerr
    - BIO_set_callback
    - BIO_set_retry_special
    - BIO_ADDRINFO_address
    - BIO_ADDRINFO_family
    - BIO_lookup
    - BIO_clear_retry_flags
    - BIO_ADDR_hostname_string
    - BIO_sock_should_retry
    - BIO_get_callback
    linkageType: ''
    returnType: int
    signature: int acpt_state(BIO *b, BIO_ACCEPT *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:363,1
    - Dst: acpt_state
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:367,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:372,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 358
    functionDepth: 7
    functionLinenumber: 358
    functionLinenumberEnd: 375
    functionName: acpt_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - acpt_state
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int acpt_read(BIO *b, char *out, int outl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:382,1
    - Dst: acpt_state
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:386,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:391,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 377
    functionDepth: 7
    functionLinenumber: 377
    functionLinenumberEnd: 394
    functionName: acpt_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - acpt_state
    - BIO_write
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int acpt_write(BIO *b, const char *in, int inl)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: acpt_close_socket
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:409,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:410,1
    - Dst: acpt_state
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:416,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:426,1
    - Dst: BIO_parse_hostserv
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:428,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:433,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:436,1
    - Dst: BUF_strdup
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:437,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:442,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:490,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:535,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 134
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 396
    functionDepth: 7
    functionLinenumber: 396
    functionLinenumberEnd: 542
    functionName: acpt_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_ADDRINFO_free
    - acpt_close_socket
    - BIO_parse_hostserv
    - OPENSSL_free
    - BIO_ADDRINFO_family
    - BUF_strdup
    - BIO_ctrl
    - BIO_free
    - acpt_state
    linkageType: ''
    returnType: long
    signature: long acpt_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:548,1
    - Dst: acpt_write
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 544
    functionDepth: 8
    functionLinenumber: 544
    functionLinenumberEnd: 551
    functionName: acpt_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - acpt_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int acpt_puts(BIO *bp, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:557,1
    - Dst: BIO_s_accept
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:557,1
    - Dst: BIO_set_accept_name
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:560,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c:562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 553
    functionDepth: 4
    functionLinenumber: 553
    functionLinenumberEnd: 564
    functionName: BIO_new_accept
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_s_accept
    - BIO_set_accept_name
    - BIO_free
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_accept(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:40,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: BIO_ADDR_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - BIOerr
    linkageType: ''
    returnType: BIO_ADDR
    signature: BIO_ADDR *BIO_ADDR_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: BIO_ADDR_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BIO_ADDR_free(BIO_ADDR *ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: BIO_ADDR_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void BIO_ADDR_clear(BIO_ADDR *ap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:69,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:74,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ap
    - sa
    argTypes:
    - BIO_ADDR*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: BIO_ADDR_make
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int BIO_ADDR_make(BIO_ADDR *ap, const struct sockaddr *sa)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:96,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:98,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:105,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - ap
    - family
    - where
    - wherelen
    - port
    argTypes:
    - BIO_ADDR*
    - int
    - void*
    - size_t
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 124
    functionName: BIO_ADDR_rawmake
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - memset
    - strncpy
    linkageType: ''
    returnType: int
    signature: "int BIO_ADDR_rawmake(BIO_ADDR *ap, int family,\n                     const
      void *where, size_t wherelen,\n                     unsigned short port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: BIO_ADDR_family
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_ADDR_family(const BIO_ADDR *ap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:148,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ap
    - p
    - l
    argTypes:
    - BIO_ADDR*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 163
    functionName: BIO_ADDR_rawaddress
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: BIO_ADDR_rawport
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addr_strings
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ap
    - numeric
    argTypes:
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 272
    functionName: BIO_ADDR_hostname_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached:
    - addr_strings
    linkageType: ''
    returnType: char
    signature: char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addr_strings
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ap
    - numeric
    argTypes:
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: BIO_ADDR_service_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached:
    - addr_strings
    linkageType: ''
    returnType: char
    signature: char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: BIO_ADDR_path_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *BIO_ADDR_path_string(const BIO_ADDR *ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: BIO_ADDR_sockaddr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *BIO_ADDR_sockaddr(const BIO_ADDR *ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: BIO_ADDR_sockaddr_noconst
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *BIO_ADDR_sockaddr_noconst(BIO_ADDR *ap)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: BIO_ADDR_sockaddr_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t BIO_ADDR_sockaddr_size(const BIO_ADDR *ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: BIO_ADDRINFO_next
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_ADDRINFO
    signature: BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: BIO_ADDRINFO_family
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: BIO_ADDRINFO_socktype
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 383
    functionName: BIO_ADDRINFO_protocol
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: BIO_ADDRINFO_sockaddr_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t BIO_ADDRINFO_sockaddr_size(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: BIO_ADDRINFO_sockaddr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *BIO_ADDRINFO_sockaddr(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: BIO_ADDRINFO_address
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: BIO_ADDR
    signature: BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: freeaddrinfo
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:426,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:436,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 440
    functionName: BIO_ADDRINFO_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 7
    functionsReached:
    - freeaddrinfo
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BIO_ADDRINFO_free(BIO_ADDRINFO *bai)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:474,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:485,1
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:488,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:489,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:508,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:511,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:514,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:518,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:526,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:536,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:544,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:547,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:550,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 4
    argNames:
    - hostserv
    - host
    - service
    - hostserv_prio
    argTypes:
    - char*
    - char**
    - char**
    - enum BIO_hostserv_priorities
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 552
    functionName: BIO_parse_hostserv
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached:
    - strrchr
    - BIOerr
    - OPENSSL_strndup
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: "int BIO_parse_hostserv(const char *hostserv, char **host, char **service,\n
      \                      enum BIO_hostserv_priorities hostserv_prio)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:568,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:569,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:589,1
    - Dst: BIO_ADDR_rawmake
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:591,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:592,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - family
    - socktype
    - where
    - wherelen
    - port
    - bai
    argTypes:
    - int
    - int
    - void*
    - size_t
    - unsigned short
    - BIO_ADDRINFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 602
    functionName: addrinfo_wrap
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - BIO_ADDRINFO_free
    - BIOerr
    - BIO_ADDR_sockaddr_noconst
    - BIO_ADDR_new
    - OPENSSL_zalloc
    - BIO_ADDR_rawmake
    linkageType: ''
    returnType: int
    signature: "int addrinfo_wrap(int family, int socktype,\n                         const
      void *where, size_t wherelen,\n                         unsigned short port,\n
      \                        BIO_ADDRINFO **bai)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:606,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 610
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_bio_lookup_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_lookup_ex
      Src: /src/openssl-1.1.1g/crypto/bio/b_addr.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - host
    - service
    - lookup_type
    - family
    - socktype
    - res
    argTypes:
    - char*
    - char*
    - enum BIO_lookup_type
    - int
    - int
    - BIO_ADDRINFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 617
    functionName: BIO_lookup
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_addr.c
    functionUses: 5
    functionsReached:
    - BIO_lookup_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_lookup(const char *host, const char *service,\n               enum
      BIO_lookup_type lookup_type,\n               int family, int socktype, BIO_ADDRINFO
      **res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: BIO_f_nbio_test
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_nbio_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:60,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: nbiof_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - BIOerr
    linkageType: ''
    returnType: int
    signature: int nbiof_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: nbiof_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int nbiof_free(BIO *a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:93,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:94,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:103,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:105,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 110
    functionName: nbiof_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int nbiof_read(BIO *b, char *out, int outl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:125,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:131,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:141,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:143,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 150
    functionName: nbiof_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - BIO_write
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int nbiof_write(BIO *b, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:160,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:161,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:162,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 172
    functionName: nbiof_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: long
    signature: long nbiof_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: nbiof_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long nbiof_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: nbiof_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int nbiof_gets(BIO *bp, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: nbiof_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int nbiof_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: char_to_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: char_to_int(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: OSSL_MAX
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_MAX(p,q)
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:114,1
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:146,1
    - Dst: char_to_int
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:147,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:150,1
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:164,1
    - Dst: char_to_int
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:167,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:170,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:214,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:217,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:220,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:223,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:226,1
    - Dst: fmtint
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:229,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:242,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:245,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:248,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:251,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:254,1
    - Dst: fmtint
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:257,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:264,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:266,1
    - Dst: fmtfp
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:267,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:276,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:278,1
    - Dst: fmtfp
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:279,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:288,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:290,1
    - Dst: fmtfp
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:291,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:296,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:297,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:301,1
    - Dst: fmtstr
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:308,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:313,1
    - Dst: fmtint
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:314,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:321,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:326,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:357,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 237
    argCount: 7
    argNames:
    - sbuffer
    - buffer
    - maxlen
    - retlen
    - truncated
    - format
    - args
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - int*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 361
    functionName: _dopr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 0
    functionsReached:
    - va_arg
    - ossl_isdigit
    - fmtfp
    - fmtint
    - doapr_outch
    - fmtstr
    - char_to_int
    linkageType: ''
    returnType: int
    signature: "int _dopr(char **sbuffer,\n      char **buffer,\n      size_t *maxlen,\n
      \     size_t *retlen, int *truncated, const char *format, va_list args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:376,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:395,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:401,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:407,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 8
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - value
    - flags
    - min
    - max
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 413
    functionName: fmtstr
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strnlen
    - doapr_outch
    linkageType: ''
    returnType: int
    signature: "int fmtstr(char **sbuffer,\n       char **buffer,\n       size_t *currlen,\n
      \      size_t *maxlen, const char *value, int flags, int min, int max)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:424,1
    - Dst: OSSL_MAX
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:461,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:461,1
    - Dst: OSSL_MAX
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:467,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:475,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:482,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:487,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:495,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:502,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:508,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 9
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - value
    - base
    - min
    - max
    - flags
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - int64_t
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 513
    functionName: fmtint
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 1
    functionsReached:
    - strlen
    - DECIMAL_SIZE
    - doapr_outch
    - OSSL_MAX
    linkageType: ''
    returnType: int
    signature: "int fmtint(char **sbuffer,\n       char **buffer,\n       size_t *currlen,\n
      \      size_t *maxlen, int64_t value, int base, int min, int max, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - LDOUBLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 521
    functionName: abs_val
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LDOUBLE
    signature: LDOUBLE abs_val(LDOUBLE value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in_exp
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 531
    functionName: pow_10
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LDOUBLE
    signature: LDOUBLE pow_10(int in_exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - LDOUBLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 541
    functionName: roundv
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long roundv(LDOUBLE value)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: pow_10
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:587,1
    - Dst: abs_val
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:637,1
    - Dst: roundv
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:655,1
    - Dst: pow_10
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:655,1
    - Dst: roundv
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:656,1
    - Dst: pow_10
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:656,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:728,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:734,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:740,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:744,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:748,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:757,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:761,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:767,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:778,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:781,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:784,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:788,1
    - Dst: doapr_outch
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:795,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 169
    argCount: 9
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - fvalue
    - min
    - max
    - flags
    - style
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - LDOUBLE
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 800
    functionName: fmtfp
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 1
    functionsReached:
    - abs_val
    - roundv
    - doapr_outch
    - pow_10
    linkageType: ''
    returnType: int
    signature: "int fmtfp(char **sbuffer,\n      char **buffer,\n      size_t *currlen,\n
      \     size_t *maxlen, LDOUBLE fvalue, int min, int max, int flags, int style)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:809,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:813,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:822,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:823,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:827,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:829,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:834,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - c
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 849
    functionName: doapr_outch
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 4
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_realloc
    - BIOerr
    - memcpy
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int doapr_outch(char **sbuffer,\n            char **buffer, size_t
      *currlen, size_t *maxlen, int c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:858,1
    - Dst: BIO_vprintf
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:860,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bio
    - format
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 864
    functionName: BIO_printf
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 32
    functionsReached:
    - va_start
    - BIO_vprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: int BIO_printf(BIO *bio, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _dopr
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:879,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:881,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:885,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:886,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - bio
    - format
    - args
    argTypes:
    - BIO*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 866
    functionDepth: 4
    functionLinenumber: 866
    functionLinenumberEnd: 891
    functionName: BIO_vprintf
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 2
    functionsReached:
    - _dopr
    - OPENSSL_free
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int BIO_vprintf(BIO *bio, const char *format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:904,1
    - Dst: BIO_vsnprintf
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:906,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - n
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 910
    functionName: BIO_snprintf
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 24
    functionsReached:
    - va_start
    - va_end
    - BIO_vsnprintf
    linkageType: ''
    returnType: int
    signature: int BIO_snprintf(char *buf, size_t n, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _dopr
      Src: /src/openssl-1.1.1g/crypto/bio/b_print.c:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - buf
    - n
    - format
    - args
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 930
    functionName: BIO_vsnprintf
    functionSourceFile: /src/openssl-1.1.1g/crypto/bio/b_print.c
    functionUses: 1
    functionsReached:
    - _dopr
    linkageType: ''
    returnType: int
    signature: int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list
      args)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rand_acquire_entropy_from_tsc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:54,1
    - Dst: rand_acquire_entropy_from_cpu
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:60,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:66,1
    - Dst: rand_pool_add_begin
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:67,1
    - Dst: BCryptGenRandom
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:70,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:74,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:75,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:80,1
    - Dst: rand_pool_add_begin
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:81,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:85,1
    - Dst: CryptGenRandom
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:87,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:90,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:93,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:94,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:99,1
    - Dst: rand_pool_add_begin
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:100,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:104,1
    - Dst: CryptGenRandom
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:107,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:110,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:112,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:113,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:119,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 120
    functionName: rand_pool_acquire_entropy
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached:
    - rand_acquire_entropy_from_cpu
    - rand_pool_add_end
    - rand_acquire_entropy_from_tsc
    - rand_pool_add_begin
    - rand_pool_entropy_available
    - BCryptGenRandom
    - CryptAcquireContextW
    - CryptGenRandom
    - CryptReleaseContext
    - rand_pool_bytes_needed
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_acquire_entropy(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcessId
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:136,1
    - Dst: GetCurrentThreadId
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:137,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:138,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: rand_pool_add_nonce_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    - GetCurrentProcessId
    - GetCurrentThreadId
    - rand_pool_add
    linkageType: ''
    returnType: int
    signature: int rand_pool_add_nonce_data(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:155,1
    - Dst: QueryPerformanceCounter
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:156,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: rand_pool_add_additional_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached:
    - QueryPerformanceCounter
    - GetCurrentThreadId
    - rand_pool_add
    linkageType: ''
    returnType: int
    signature: int rand_pool_add_additional_data(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_poll
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:163,1
    - Dst: RAND_status
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iMsg
    - wParam
    - lParam
    argTypes:
    - UINT
    - WPARAM
    - LPARAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: RAND_event
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached:
    - RAND_status
    - RAND_poll
    linkageType: ''
    returnType: int
    signature: int RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_poll
      Src: /src/openssl-1.1.1g/crypto/rand/rand_win.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: RAND_screen
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached:
    - RAND_poll
    linkageType: ''
    returnType: void
    signature: void RAND_screen(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: rand_pool_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rand_pool_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: rand_pool_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keep
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: rand_pool_keep_random_devices_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_keep_random_devices_open(int keep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/rand/rand_err.c:133,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/rand/rand_err.c:134,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/rand/rand_err.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: ERR_load_RAND_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_RAND_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - buf
    - bytes
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: RAND_query_egd_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAND_query_egd_bytes(const char *path, unsigned char *buf, int
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: RAND_egd
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAND_egd(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - bytes
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: RAND_egd_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAND_egd_bytes(const char *path, int bytes)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:71,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:73,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:75,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:76,1
    - Dst: socket
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:77,1
    - Dst: fdopen
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:78,1
    - Dst: setbuf
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:80,1
    - Dst: connect
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:84,1
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:114,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:114,1
    - Dst: fread
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:116,1
    - Dst: fread
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:126,1
    - Dst: RAND_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:131,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:135,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 3
    argNames:
    - path
    - buf
    - bytes
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 137
    functionName: RAND_query_egd_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - strcpy
    - fflush
    - RAND_add
    - fclose
    - fdopen
    - fwrite
    - socket
    - memset
    - setbuf
    - fread
    - strlen
    - connect
    linkageType: ''
    returnType: int
    signature: int RAND_query_egd_bytes(const char *path, unsigned char *buf, int
      bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_query_egd_bytes
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:143,1
    - Dst: RAND_status
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - path
    - bytes
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: RAND_egd_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - RAND_status
    - RAND_query_egd_bytes
    linkageType: ''
    returnType: int
    signature: int RAND_egd_bytes(const char *path, int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_egd_bytes
      Src: /src/openssl-1.1.1g/crypto/rand/rand_egd.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: RAND_egd
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - RAND_egd_bytes
    linkageType: ''
    returnType: int
    signature: int RAND_egd(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - items_input
    - items_input_num
    - items
    - databuffer
    argTypes:
    - struct item_st*
    - size_t
    - ILE3*
    - uint32_t__ptr32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 311
    functionName: prepare_item_list
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t prepare_item_list(const struct item_st *items_input,\n                                size_t
      items_input_num,\n                                ILE3 *items,\n                                uint32_t__ptr32
      databuffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - items
    argTypes:
    - ILE3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 336
    functionName: massage_JPI
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void massage_JPI(ILE3 *items)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:348,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:349,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:350,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:351,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:352,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:353,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:357,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:358,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:359,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:360,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:361,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:362,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:367,1
    - Dst: rand_pool_bytes_remaining
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:368,1
    - Dst: prepare_item_list
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:372,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:372,1
    - Dst: prepare_item_list
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:375,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:375,1
    - Dst: prepare_item_list
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:378,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:378,1
    - Dst: prepare_item_list
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:380,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:380,1
    - Dst: prepare_item_list
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:382,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:382,1
    - Dst: prepare_item_list
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:384,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:384,1
    - Dst: $DESCRIPTOR
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:393,1
    - Dst: sys$getdviw
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:395,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:397,1
    - Dst: sys$getjpiw
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:400,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:402,1
    - Dst: sys$getjpiw
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:405,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:407,1
    - Dst: sys$getsyiw
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:410,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:412,1
    - Dst: lib$get_ef
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:419,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:420,1
    - Dst: sys$getrmi
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:423,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:425,1
    - Dst: sys$synch
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:428,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:429,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:433,1
    - Dst: sys$getrmi
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:436,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:438,1
    - Dst: sys$synch
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:441,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:442,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:446,1
    - Dst: lib$free_ef
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:449,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:450,1
    - Dst: massage_JPI
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:455,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:460,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:463,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:465,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:466,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:477,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:479,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 480
    functionName: data_collect_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - rand_pool_entropy_available
    - ERR_add_error_data
    - sys$getdviw
    - rand_pool_bytes_remaining
    - rand_pool_bytes_needed
    - sys$getjpiw
    - rand_pool_add
    - $DESCRIPTOR
    - ossl_assert
    - lib$free_ef
    - OSSL_NELEM
    - lib$signal
    - sys$getrmi
    - prepare_item_list
    - lib$get_ef
    - RANDerr
    - massage_JPI
    - sys$synch
    - sys$getsyiw
    linkageType: ''
    returnType: size_t
    signature: size_t data_collect_method(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:496,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:497,1
    - Dst: sys$gettim_prec
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:499,1
    - Dst: sys$gettim
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:501,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 505
    functionName: rand_pool_add_nonce_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_current_id
    - getpid
    - sys$gettim
    - rand_pool_add
    - sys$gettim_prec
    linkageType: ''
    returnType: int
    signature: int rand_pool_add_nonce_data(RAND_POOL *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:525,1
    - Dst: dlopen
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 528
    functionName: init_get_entropy_address
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached:
    - dlopen
    - dlsym
    linkageType: ''
    returnType: int
    signature: int init_get_entropy_address(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:541,1
    - Dst: get_entropy_address
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:547,1
    - Dst: lib$signal
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:556,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:560,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 564
    functionName: get_entropy_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached:
    - lib$signal
    - rand_pool_entropy_available
    - rand_pool_add
    - get_entropy_address
    - rand_pool_bytes_needed
    linkageType: ''
    returnType: size_t
    signature: size_t get_entropy_method(RAND_POOL *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_get_entropy_address
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:575,1
    - Dst: get_entropy_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:576,1
    - Dst: data_collect_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 578
    functionName: rand_pool_acquire_entropy
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached:
    - init_get_entropy_address
    - data_collect_method
    - get_entropy_method
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_acquire_entropy(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:593,1
    - Dst: sys$gettim_prec
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:595,1
    - Dst: sys$gettim
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:597,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_vms.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 601
    functionName: rand_pool_add_additional_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached:
    - sys$gettim
    - sys$gettim_prec
    - CRYPTO_THREAD_get_current_id
    - rand_pool_add
    linkageType: ''
    returnType: int
    signature: int rand_pool_add_additional_data(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 606
    functionName: rand_pool_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rand_pool_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 610
    functionName: rand_pool_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keep
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 614
    functionName: rand_pool_keep_random_devices_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_keep_random_devices_open(int keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: S_ISREG
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/randfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fname
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: openssl_fopen
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/randfile.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: openssl_fopen(fname, mode)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: openssl_fopen
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:97,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:98,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:99,1
    - Dst: fstat
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:104,1
    - Dst: fileno
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:104,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:105,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:106,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:107,1
    - Dst: S_ISREG
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:112,1
    - Dst: setbuf
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:134,1
    - Dst: fread
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:144,1
    - Dst: ferror
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:146,1
    - Dst: clearerr
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:147,1
    - Dst: RAND_add
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:155,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:163,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:164,1
    - Dst: RAND_status
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:165,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:166,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:167,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 2
    argNames:
    - file
    - bytes
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 172
    functionName: RAND_load_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/randfile.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - openssl_fopen
    - RAND_add
    - RAND_status
    - fclose
    - clearerr
    - ERR_add_error_data
    - S_ISREG
    - OPENSSL_cleanse
    - ferror
    - setbuf
    - fread
    - fileno
    - fstat
    linkageType: ''
    returnType: int
    signature: int RAND_load_file(const char *file, long bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:182,1
    - Dst: S_ISREG
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:182,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:183,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:184,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:190,1
    - Dst: open
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:203,1
    - Dst: fdopen
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:205,1
    - Dst: openssl_fopen
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:227,1
    - Dst: openssl_fopen
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:231,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:233,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:234,1
    - Dst: chmod
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:242,1
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:245,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:246,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 249
    functionName: RAND_write_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/randfile.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - RAND_priv_bytes
    - openssl_fopen
    - fclose
    - stat
    - ERR_add_error_data
    - open
    - fdopen
    - chmod
    - fwrite
    - S_ISREG
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int RAND_write_file(const char *file)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:262,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:264,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:265,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:267,1
    - Dst: _alloca
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:273,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:275,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:276,1
    - Dst: _alloca
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:278,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:279,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:285,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:287,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:298,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:302,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:304,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:306,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:308,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/crypto/rand/randfile.c:310,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 314
    functionName: RAND_file_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/randfile.c
    functionUses: 0
    functionsReached:
    - strcpy
    - ossl_safe_getenv
    - GetEnvironmentVariableW
    - _alloca
    - WideCharToMultiByte
    - strcat
    - strlen
    linkageType: ''
    returnType: char
    signature: char *RAND_file_name(char *buf, size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG*::meth::uninstantiate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:114,1
    - Dst: rand_pool_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:115,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:128,1
    - Dst: drbg_ctr_init
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:137,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - drbg
    - type
    - flags
    argTypes:
    - RAND_DRBG*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 146
    functionName: RAND_DRBG_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - rand_pool_free
    - RAND_DRBG*::meth::uninstantiate
    - drbg_ctr_init
    linkageType: ''
    returnType: int
    signature: int RAND_DRBG_set(RAND_DRBG *drbg, int type, unsigned int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:159,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - type
    - flags
    argTypes:
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: RAND_DRBG_set_defaults
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    linkageType: ''
    returnType: int
    signature: int RAND_DRBG_set_defaults(int type, unsigned int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:191,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:192,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:195,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:199,1
    - Dst: openssl_get_fork_id
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:200,1
    - Dst: RAND_DRBG_set
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:225,1
    - Dst: rand_drbg_lock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:229,1
    - Dst: rand_drbg_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:235,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:236,1
    - Dst: rand_drbg_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:239,1
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - secure
    - type
    - flags
    - parent
    argTypes:
    - int
    - int
    - unsigned int
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 248
    functionName: rand_drbg_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - RAND_DRBG_set
    - RAND_DRBG_free
    - OPENSSL_secure_zalloc
    - OPENSSL_zalloc
    - rand_drbg_unlock
    - rand_drbg_lock
    - openssl_get_fork_id
    - CRYPTO_secure_allocated
    linkageType: ''
    returnType: RAND_DRBG
    signature: "RAND_DRBG *rand_drbg_new(int secure,\n                                int
      type,\n                                unsigned int flags,\n                                RAND_DRBG
      *parent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_drbg_new
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - flags
    - parent
    argTypes:
    - int
    - unsigned int
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: RAND_DRBG_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - rand_drbg_new
    linkageType: ''
    returnType: RAND_DRBG
    signature: RAND_DRBG *RAND_DRBG_new(int type, unsigned int flags, RAND_DRBG *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_drbg_new
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - flags
    - parent
    argTypes:
    - int
    - unsigned int
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: RAND_DRBG_secure_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - rand_drbg_new
    linkageType: ''
    returnType: RAND_DRBG
    signature: RAND_DRBG *RAND_DRBG_secure_new(int type, unsigned int flags, RAND_DRBG
      *parent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG*::meth::uninstantiate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:269,1
    - Dst: rand_pool_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:270,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:271,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:272,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:275,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 278
    functionName: RAND_DRBG_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_secure_clear_free
    - RAND_DRBG*::meth::uninstantiate
    - rand_pool_free
    - CRYPTO_free_ex_data
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: void RAND_DRBG_free(RAND_DRBG *drbg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:298,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:304,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:310,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:330,1
    - Dst: RAND_DRBG*::get_entropy
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:338,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:342,1
    - Dst: RAND_DRBG*::get_nonce
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:347,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:350,1
    - Dst: RAND_DRBG*::meth::instantiate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:355,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:357,1
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:363,1
    - Dst: tsan_store
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:364,1
    - Dst: RAND_DRBG*::cleanup_entropy
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:368,1
    - Dst: RAND_DRBG*::cleanup_nonce
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:370,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 61
    argCount: 3
    argNames:
    - drbg
    - pers
    - perslen
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 374
    functionName: RAND_DRBG_instantiate
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - RAND_DRBG*::cleanup_entropy
    - RAND_DRBG*::meth::instantiate
    - RAND_DRBG*::get_nonce
    - tsan_store
    - RAND_DRBG*::cleanup_nonce
    - tsan_load
    - time
    - RAND_DRBG*::get_entropy
    linkageType: ''
    returnType: int
    signature: "int RAND_DRBG_instantiate(RAND_DRBG *drbg,\n                          const
      unsigned char *pers, size_t perslen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:387,1
    - Dst: RAND_DRBG*::meth::uninstantiate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:396,1
    - Dst: RAND_DRBG_set
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 398
    functionName: RAND_DRBG_uninstantiate
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - RAND_DRBG*::meth::uninstantiate
    - RAND_DRBG_set
    linkageType: ''
    returnType: int
    signature: int RAND_DRBG_uninstantiate(RAND_DRBG *drbg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:415,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:419,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:426,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:432,1
    - Dst: RAND_DRBG*::get_entropy
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:440,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:446,1
    - Dst: RAND_DRBG*::meth::reseed
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:450,1
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:455,1
    - Dst: tsan_store
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:456,1
    - Dst: RAND_DRBG*::cleanup_entropy
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:460,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - drbg
    - adin
    - adinlen
    - prediction_resistance
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 464
    functionName: RAND_DRBG_reseed
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - RAND_DRBG*::cleanup_entropy
    - RAND_DRBG*::meth::reseed
    - tsan_store
    - tsan_load
    - time
    - RAND_DRBG*::get_entropy
    linkageType: ''
    returnType: int
    signature: "int RAND_DRBG_reseed(RAND_DRBG *drbg,\n                     const
      unsigned char *adin, size_t adinlen,\n                     int prediction_resistance)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:491,1
    - Dst: rand_pool_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:493,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:501,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:508,1
    - Dst: rand_pool_attach
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:514,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:519,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:531,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:536,1
    - Dst: RAND_DRBG*::meth::reseed
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:554,1
    - Dst: RAND_DRBG_reseed
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:557,1
    - Dst: rand_pool_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:561,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 4
    argNames:
    - drbg
    - buffer
    - len
    - entropy
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 565
    functionName: rand_drbg_restart
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - RAND_DRBG_uninstantiate
    - RAND_DRBG*::meth::reseed
    - rand_pool_free
    - RAND_DRBG_instantiate
    - rand_pool_attach
    - RAND_DRBG_reseed
    linkageType: ''
    returnType: int
    signature: "int rand_drbg_restart(RAND_DRBG *drbg,\n                      const
      unsigned char *buffer, size_t len, size_t entropy)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: rand_drbg_restart
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:586,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:589,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:593,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:599,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:603,1
    - Dst: openssl_get_fork_id
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:607,1
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:619,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:625,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:627,1
    - Dst: RAND_DRBG_reseed
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:633,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:634,1
    - Dst: RAND_DRBG*::meth::generate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:641,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:643,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 6
    argNames:
    - drbg
    - out
    - outlen
    - prediction_resistance
    - adin
    - adinlen
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 577
    functionDepth: 4
    functionLinenumber: 577
    functionLinenumberEnd: 650
    functionName: RAND_DRBG_generate
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - rand_drbg_restart
    - RAND_DRBG*::meth::generate
    - tsan_load
    - time
    - openssl_get_fork_id
    - RAND_DRBG_reseed
    linkageType: ''
    returnType: int
    signature: "int RAND_DRBG_generate(RAND_DRBG *drbg, unsigned char *out, size_t
      outlen,\n                       int prediction_resistance,\n                       const
      unsigned char *adin, size_t adinlen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_new
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:670,1
    - Dst: rand_drbg_get_additional_data
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:675,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:682,1
    - Dst: rand_drbg_cleanup_additional_data
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:690,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - drbg
    - out
    - outlen
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 660
    functionDepth: 5
    functionLinenumber: 660
    functionLinenumberEnd: 693
    functionName: RAND_DRBG_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - rand_pool_new
    - RAND_DRBG_generate
    - rand_drbg_get_additional_data
    - rand_drbg_cleanup_additional_data
    linkageType: ''
    returnType: int
    signature: int RAND_DRBG_bytes(RAND_DRBG *drbg, unsigned char *out, size_t outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - drbg
    - get_entropy
    - cleanup_entropy
    - get_nonce
    - cleanup_nonce
    argTypes:
    - RAND_DRBG*
    - RAND_DRBG_get_entropy_fn
    - RAND_DRBG_cleanup_entropy_fn
    - RAND_DRBG_get_nonce_fn
    - RAND_DRBG_cleanup_nonce_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 717
    functionName: RAND_DRBG_set_callbacks
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RAND_DRBG_set_callbacks(RAND_DRBG *drbg,\n                            RAND_DRBG_get_entropy_fn
      get_entropy,\n                            RAND_DRBG_cleanup_entropy_fn cleanup_entropy,\n
      \                           RAND_DRBG_get_nonce_fn get_nonce,\n                            RAND_DRBG_cleanup_nonce_fn
      cleanup_nonce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - drbg
    - interval
    argTypes:
    - RAND_DRBG*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 734
    functionName: RAND_DRBG_set_reseed_interval
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAND_DRBG_set_reseed_interval(RAND_DRBG *drbg, unsigned int interval)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - drbg
    - interval
    argTypes:
    - RAND_DRBG*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: RAND_DRBG_set_reseed_time_interval
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAND_DRBG_set_reseed_time_interval(RAND_DRBG *drbg, time_t interval)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - _master_reseed_interval
    - _slave_reseed_interval
    - _master_reseed_time_interval
    - _slave_reseed_time_interval
    argTypes:
    - unsigned int
    - unsigned int
    - time_t
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 785
    functionName: RAND_DRBG_set_reseed_defaults
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RAND_DRBG_set_reseed_defaults(\n                                  unsigned
      int _master_reseed_interval,\n                                  unsigned int
      _slave_reseed_interval,\n                                  time_t _master_reseed_time_interval,\n
      \                                 time_t _slave_reseed_time_interval\n                                  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 799
    functionName: rand_drbg_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: int rand_drbg_lock(RAND_DRBG *drbg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 813
    functionName: rand_drbg_unlock
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int rand_drbg_unlock(RAND_DRBG *drbg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:826,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:833,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:838,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 847
    functionName: rand_drbg_enable_locking
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: int
    signature: int rand_drbg_enable_locking(RAND_DRBG *drbg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - drbg
    - idx
    - arg
    argTypes:
    - RAND_DRBG*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 2
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: RAND_DRBG_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int RAND_DRBG_set_ex_data(RAND_DRBG *drbg, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - drbg
    - idx
    argTypes:
    - RAND_DRBG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 860
    functionName: RAND_DRBG_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *RAND_DRBG_get_ex_data(const RAND_DRBG *drbg, int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_secure_new
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:878,1
    - Dst: rand_drbg_enable_locking
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:883,1
    - Dst: tsan_store
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:887,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:895,1
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - parent
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 903
    functionName: drbg_setup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_secure_new
    - RAND_DRBG_free
    - rand_drbg_enable_locking
    - tsan_store
    - RAND_DRBG_instantiate
    linkageType: ''
    returnType: RAND_DRBG
    signature: RAND_DRBG *drbg_setup(RAND_DRBG *parent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:915,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:918,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:921,1
    - Dst: drbg_setup
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:924,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:931,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:933,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 909
    functionDepth: 5
    functionLinenumber: 909
    functionLinenumberEnd: 935
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - drbg_setup
    - CRYPTO_THREAD_init_local
    - CRYPTO_THREAD_cleanup_local
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_rand_drbg_init)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:941,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:944,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 938
    functionDepth: 4
    functionLinenumber: 938
    functionLinenumberEnd: 947
    functionName: rand_drbg_cleanup_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 1
    functionsReached:
    - RAND_DRBG_free
    - CRYPTO_THREAD_cleanup_local
    linkageType: ''
    returnType: void
    signature: void rand_drbg_cleanup_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:953,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:954,1
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:955,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:957,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:958,1
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 949
    functionDepth: 4
    functionLinenumber: 949
    functionLinenumberEnd: 960
    functionName: drbg_delete_thread_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_local
    - CRYPTO_THREAD_set_local
    - RAND_DRBG_free
    linkageType: ''
    returnType: void
    signature: void drbg_delete_thread_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get0_public
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:966,1
    - Dst: RAND_DRBG_bytes
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out
    - count
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 963
    functionDepth: 6
    functionLinenumber: 963
    functionLinenumberEnd: 974
    functionName: drbg_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get0_public
    - RAND_DRBG_bytes
    linkageType: ''
    returnType: int
    signature: int drbg_bytes(unsigned char *out, int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 1010
    functionName: rand_drbg_seedlen
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rand_drbg_seedlen(RAND_DRBG *drbg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get0_master
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1016,1
    - Dst: rand_drbg_lock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1026,1
    - Dst: rand_drbg_seedlen
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1027,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1042,1
    - Dst: rand_drbg_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1043,1
    - Dst: rand_drbg_restart
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1068,1
    - Dst: rand_drbg_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1069,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - buf
    - num
    - randomness
    argTypes:
    - void*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1013
    functionDepth: 5
    functionLinenumber: 1013
    functionLinenumberEnd: 1072
    functionName: drbg_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get0_master
    - rand_drbg_seedlen
    - rand_drbg_restart
    - rand_drbg_unlock
    - rand_drbg_lock
    - RAND_DRBG_generate
    linkageType: ''
    returnType: int
    signature: int drbg_add(const void *buf, int num, double randomness)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: drbg_add
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1075
    functionDepth: 6
    functionLinenumber: 1075
    functionLinenumberEnd: 1078
    functionName: drbg_seed
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - drbg_add
    linkageType: ''
    returnType: int
    signature: int drbg_seed(const void *buf, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get0_master
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1084,1
    - Dst: rand_drbg_lock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1089,1
    - Dst: rand_drbg_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1093
    functionName: drbg_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - rand_drbg_lock
    - RAND_DRBG_get0_master
    - rand_drbg_unlock
    linkageType: ''
    returnType: int
    signature: int drbg_status(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1106
    functionName: RAND_DRBG_get0_master
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 2
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: RAND_DRBG
    signature: RAND_DRBG *RAND_DRBG_get0_master(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1116,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1119,1
    - Dst: ossl_init_thread_start
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1121,1
    - Dst: drbg_setup
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1123,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1112
    functionDepth: 5
    functionLinenumber: 1112
    functionLinenumberEnd: 1127
    functionName: RAND_DRBG_get0_public
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_local
    - ossl_init_thread_start
    - CRYPTO_THREAD_set_local
    - drbg_setup
    - RUN_ONCE
    linkageType: ''
    returnType: RAND_DRBG
    signature: RAND_DRBG *RAND_DRBG_get0_public(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1137,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1140,1
    - Dst: ossl_init_thread_start
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1142,1
    - Dst: drbg_setup
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1144,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c:1145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1133
    functionDepth: 5
    functionLinenumber: 1133
    functionLinenumberEnd: 1148
    functionName: RAND_DRBG_get0_private
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - ossl_init_thread_start
    - CRYPTO_THREAD_set_local
    - drbg_setup
    - RUN_ONCE
    linkageType: ''
    returnType: RAND_DRBG
    signature: RAND_DRBG *RAND_DRBG_get0_private(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1162
    functionName: RAND_OpenSSL
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAND_METHOD
    signature: RAND_METHOD *RAND_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - RAND_DRBG_CTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: inc_128
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void inc_128(RAND_DRBG_CTR *ctr)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ctr
    - in
    - inlen
    argTypes:
    - RAND_DRBG_CTR*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: ctr_XOR
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr_XOR(RAND_DRBG_CTR *ctr, const unsigned char *in, size_t inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ctr
    - out
    - in
    argTypes:
    - RAND_DRBG_CTR*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: ctr_BCC_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - EVP_CipherUpdate
    linkageType: ''
    returnType: __owur
    signature: "__owur ctr_BCC_block(RAND_DRBG_CTR *ctr, unsigned char *out,\n                                const
      unsigned char *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ctr_BCC_block
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:85,1
    - Dst: ctr_BCC_block
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:86,1
    - Dst: ctr_BCC_block
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ctr
    - in
    argTypes:
    - RAND_DRBG_CTR*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: ctr_BCC_blocks
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - ctr_BCC_block
    linkageType: ''
    returnType: __owur
    signature: __owur ctr_BCC_blocks(RAND_DRBG_CTR *ctr, const unsigned char *in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:99,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:100,1
    - Dst: ctr_BCC_block
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:101,1
    - Dst: ctr_BCC_block
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:104,1
    - Dst: ctr_BCC_block
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - RAND_DRBG_CTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: ctr_BCC_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - ctr_BCC_block
    - memset
    linkageType: ''
    returnType: __owur
    signature: __owur ctr_BCC_init(RAND_DRBG_CTR *ctr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:129,1
    - Dst: ctr_BCC_blocks
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:130,1
    - Dst: ctr_BCC_blocks
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:140,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - ctr
    - in
    - inlen
    argTypes:
    - RAND_DRBG_CTR*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 150
    functionName: ctr_BCC_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - ctr_BCC_blocks
    - memcpy
    linkageType: ''
    returnType: __owur
    signature: "__owur ctr_BCC_update(RAND_DRBG_CTR *ctr,\n                                 const
      unsigned char *in, size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:155,1
    - Dst: ctr_BCC_blocks
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - RAND_DRBG_CTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: ctr_BCC_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - ctr_BCC_blocks
    - memset
    linkageType: ''
    returnType: __owur
    signature: __owur ctr_BCC_final(RAND_DRBG_CTR *ctr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ctr_BCC_init
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:172,1
    - Dst: ctr_BCC_update
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:193,1
    - Dst: ctr_BCC_update
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:194,1
    - Dst: ctr_BCC_update
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:195,1
    - Dst: ctr_BCC_update
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:196,1
    - Dst: ctr_BCC_final
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:197,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:200,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:203,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:207,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:212,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 7
    argNames:
    - ctr
    - in1
    - in1len
    - in2
    - in2len
    - in3
    - in3len
    argTypes:
    - RAND_DRBG_CTR*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 217
    functionName: ctr_df
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - ctr_BCC_final
    - ctr_BCC_update
    - ctr_BCC_init
    - EVP_CipherUpdate
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: __owur
    signature: "__owur ctr_df(RAND_DRBG_CTR *ctr,\n                         const
      unsigned char *in1, size_t in1len,\n                         const unsigned
      char *in2, size_t in2len,\n                         const unsigned char *in3,
      size_t in3len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: inc_128
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:234,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:235,1
    - Dst: inc_128
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:241,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:242,1
    - Dst: inc_128
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:247,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:248,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:254,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:255,1
    - Dst: ctr_df
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:261,1
    - Dst: ctr_XOR
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:265,1
    - Dst: ctr_XOR
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:267,1
    - Dst: ctr_XOR
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:268,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:271,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 7
    argNames:
    - drbg
    - in1
    - in1len
    - in2
    - in2len
    - nonce
    - noncelen
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 225
    functionDepth: 6
    functionLinenumber: 225
    functionLinenumberEnd: 274
    functionName: ctr_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - inc_128
    - ctr_df
    - memcpy
    - ctr_XOR
    - EVP_CipherUpdate
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: __owur
    signature: "__owur ctr_update(RAND_DRBG *drbg,\n                             const
      unsigned char *in1, size_t in1len,\n                             const unsigned
      char *in2, size_t in2len,\n                             const unsigned char
      *nonce, size_t noncelen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:286,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:287,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:288,1
    - Dst: ctr_update
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - drbg
    - entropy
    - entropylen
    - nonce
    - noncelen
    - pers
    - perslen
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 276
    functionDepth: 7
    functionLinenumber: 276
    functionLinenumberEnd: 293
    functionName: drbg_ctr_instantiate
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - memset
    - EVP_CipherInit_ex
    - ctr_update
    linkageType: ''
    returnType: __owur
    signature: "__owur drbg_ctr_instantiate(RAND_DRBG *drbg,\n                                       const
      unsigned char *entropy, size_t entropylen,\n                                       const
      unsigned char *nonce, size_t noncelen,\n                                       const
      unsigned char *pers, size_t perslen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ctr_update
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - drbg
    - entropy
    - entropylen
    - adin
    - adinlen
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 7
    functionLinenumber: 295
    functionLinenumberEnd: 304
    functionName: drbg_ctr_reseed
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - ctr_update
    linkageType: ''
    returnType: __owur
    signature: "__owur drbg_ctr_reseed(RAND_DRBG *drbg,\n                                  const
      unsigned char *entropy, size_t entropylen,\n                                  const
      unsigned char *adin, size_t adinlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ctr_update
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:313,1
    - Dst: inc_128
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:327,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:330,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:334,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:337,1
    - Dst: ctr_update
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:346,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 5
    argNames:
    - drbg
    - out
    - outlen
    - adin
    - adinlen
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 306
    functionDepth: 7
    functionLinenumber: 306
    functionLinenumberEnd: 349
    functionName: drbg_ctr_generate
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - EVP_CipherUpdate
    - inc_128
    - ctr_update
    - memcpy
    linkageType: ''
    returnType: __owur
    signature: "__owur drbg_ctr_generate(RAND_DRBG *drbg,\n                                    unsigned
      char *out, size_t outlen,\n                                    const unsigned
      char *adin, size_t adinlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:353,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:354,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: drbg_ctr_uninstantiate
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int drbg_ctr_uninstantiate(RAND_DRBG *drbg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_ecb
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:377,1
    - Dst: EVP_aes_192_ecb
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:381,1
    - Dst: EVP_aes_256_ecb
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:385,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:393,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:409,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c:413,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 435
    functionName: drbg_ctr_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
    functionUses: 1
    functionsReached:
    - EVP_aes_192_ecb
    - EVP_aes_128_ecb
    - EVP_CIPHER_CTX_new
    - EVP_aes_256_ecb
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: int drbg_ctr_init(RAND_DRBG *drbg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - secure
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: RAND_POOL_MIN_ALLOCATION
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAND_POOL_MIN_ALLOCATION(secure)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_rdtsc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:59,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:60,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: rand_acquire_entropy_from_tsc
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - rand_pool_entropy_available
    - OPENSSL_rdtsc
    - rand_pool_add
    linkageType: ''
    returnType: size_t
    signature: size_t rand_acquire_entropy_from_tsc(RAND_POOL *pool)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:90,1
    - Dst: rand_pool_add_begin
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:92,1
    - Dst: OPENSSL_ia32_rdseed_bytes
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:97,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:99,1
    - Dst: OPENSSL_ia32_rdrand_bytes
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:102,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:104,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:107,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 113
    functionName: rand_acquire_entropy_from_cpu
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_ia32_rdrand_bytes
    - rand_pool_add_end
    - rand_pool_add_begin
    - rand_pool_entropy_available
    - OPENSSL_ia32_rdseed_bytes
    - rand_pool_bytes_needed
    linkageType: ''
    returnType: size_t
    signature: size_t rand_acquire_entropy_from_cpu(RAND_POOL *pool)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:143,1
    - Dst: rand_pool_new
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:151,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:157,1
    - Dst: rand_pool_add_begin
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:158,1
    - Dst: rand_drbg_lock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:171,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:172,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:178,1
    - Dst: rand_drbg_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:179,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:181,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:182,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:192,1
    - Dst: rand_pool_acquire_entropy
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:198,1
    - Dst: rand_pool_length
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:202,1
    - Dst: rand_pool_detach
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:203,1
    - Dst: rand_pool_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:208,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 6
    argNames:
    - drbg
    - pout
    - entropy
    - min_len
    - max_len
    - prediction_resistance
    argTypes:
    - RAND_DRBG*
    - unsigned char**
    - int
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 210
    functionName: rand_drbg_get_entropy
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - rand_pool_acquire_entropy
    - rand_pool_add_end
    - rand_pool_new
    - rand_pool_add_begin
    - rand_pool_entropy_available
    - rand_pool_length
    - rand_pool_detach
    - rand_pool_free
    - tsan_load
    - rand_drbg_unlock
    - rand_drbg_lock
    - RAND_DRBG_generate
    - rand_pool_bytes_needed
    linkageType: ''
    returnType: size_t
    signature: "size_t rand_drbg_get_entropy(RAND_DRBG *drbg,\n                             unsigned
      char **pout,\n                             int entropy, size_t min_len, size_t
      max_len,\n                             int prediction_resistance)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:221,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - drbg
    - out
    - outlen
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: rand_drbg_cleanup_entropy
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: "void rand_drbg_cleanup_entropy(RAND_DRBG *drbg,\n                               unsigned
      char *out, size_t outlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:244,1
    - Dst: rand_pool_new
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:245,1
    - Dst: rand_pool_add_nonce_data
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:249,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:253,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:255,1
    - Dst: rand_pool_length
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:258,1
    - Dst: rand_pool_detach
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:259,1
    - Dst: rand_pool_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - drbg
    - pout
    - entropy
    - min_len
    - max_len
    argTypes:
    - RAND_DRBG*
    - unsigned char**
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 265
    functionName: rand_drbg_get_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - rand_pool_new
    - rand_pool_add_nonce_data
    - rand_pool_detach
    - rand_pool_add
    - rand_pool_free
    - CRYPTO_atomic_add
    - memset
    - rand_pool_length
    linkageType: ''
    returnType: size_t
    signature: "size_t rand_drbg_get_nonce(RAND_DRBG *drbg,\n                           unsigned
      char **pout,\n                           int entropy, size_t min_len, size_t
      max_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - drbg
    - out
    - outlen
    argTypes:
    - RAND_DRBG*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: rand_drbg_cleanup_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: "void rand_drbg_cleanup_nonce(RAND_DRBG *drbg,\n                             unsigned
      char *out, size_t outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_add_additional_data
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:291,1
    - Dst: rand_pool_length
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:294,1
    - Dst: rand_pool_detach
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pool
    - pout
    argTypes:
    - RAND_POOL*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 299
    functionName: rand_drbg_get_additional_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - rand_pool_length
    - rand_pool_detach
    - rand_pool_add_additional_data
    linkageType: ''
    returnType: size_t
    signature: size_t rand_drbg_get_additional_data(RAND_POOL *pool, unsigned char
      **pout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_reattach
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - out
    argTypes:
    - RAND_POOL*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: rand_drbg_cleanup_additional_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - rand_pool_reattach
    linkageType: ''
    returnType: void
    signature: void rand_drbg_cleanup_additional_data(RAND_POOL *pool, unsigned char
      *out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:309,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:314,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:318,1
    - Dst: rand_pool_init
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:322,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:329,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 340
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - rand_pool_init
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_rand_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_METHOD*::cleanup
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:350,1
    - Dst: RAND_set_rand_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:351,1
    - Dst: rand_pool_cleanup
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:352,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:354,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:357,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 362
    functionName: rand_cleanup_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - RAND_set_rand_method
    - RAND_METHOD*::cleanup
    - rand_pool_cleanup
    linkageType: ''
    returnType: void
    signature: void rand_cleanup_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:370,1
    - Dst: rand_pool_keep_random_devices_open
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - keep
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: RAND_keep_random_devices_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - rand_pool_keep_random_devices_open
    - RUN_ONCE
    linkageType: ''
    returnType: void
    signature: void RAND_keep_random_devices_open(int keep)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:387,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:392,1
    - Dst: RAND_DRBG_get0_master
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:394,1
    - Dst: rand_drbg_lock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:399,1
    - Dst: rand_drbg_restart
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:400,1
    - Dst: rand_drbg_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:401,1
    - Dst: rand_pool_new
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:407,1
    - Dst: rand_pool_acquire_entropy
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:413,1
    - Dst: RAND_METHOD*::add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:417,1
    - Dst: rand_pool_buffer
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:417,1
    - Dst: rand_pool_length
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:418,1
    - Dst: rand_pool_entropy
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:419,1
    - Dst: rand_pool_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:426,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 428
    functionName: RAND_poll
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 2
    functionsReached:
    - RAND_DRBG_get0_master
    - rand_pool_acquire_entropy
    - RAND_METHOD*::add
    - rand_drbg_restart
    - rand_pool_new
    - rand_pool_length
    - rand_pool_buffer
    - rand_pool_free
    - RAND_get_rand_method
    - rand_drbg_unlock
    - rand_drbg_lock
    - rand_pool_entropy
    - RAND_OpenSSL
    linkageType: ''
    returnType: int
    signature: int RAND_poll(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:437,1
    - Dst: RAND_POOL_MIN_ALLOCATION
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:438,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:441,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:453,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:455,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:458,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - entropy_requested
    - secure
    - min_len
    - max_len
    argTypes:
    - int
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 470
    functionName: rand_pool_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 4
    functionsReached:
    - RANDerr
    - OPENSSL_free
    - OPENSSL_secure_zalloc
    - OPENSSL_zalloc
    - RAND_POOL_MIN_ALLOCATION
    linkageType: ''
    returnType: RAND_POOL
    signature: "RAND_POOL *rand_pool_new(int entropy_requested, int secure,\n                         size_t
      min_len, size_t max_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:481,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - buffer
    - len
    - entropy
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 502
    functionName: rand_pool_attach
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - RANDerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: RAND_POOL
    signature: "RAND_POOL *rand_pool_attach(const unsigned char *buffer, size_t len,\n
      \                           size_t entropy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:520,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:522,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 526
    functionName: rand_pool_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 6
    functionsReached:
    - OPENSSL_free
    - OPENSSL_clear_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void rand_pool_free(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: rand_pool_buffer
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *rand_pool_buffer(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: rand_pool_entropy
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_entropy(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 550
    functionName: rand_pool_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_length(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 564
    functionName: rand_pool_detach
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *rand_pool_detach(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - buffer
    argTypes:
    - RAND_POOL*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: rand_pool_reattach
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void rand_pool_reattach(RAND_POOL *pool, unsigned char *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bits
    - ','
    - entropy_factor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 583
    functionName: ENTROPY_TO_BYTES
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTROPY_TO_BYTES(bits, entropy_factor)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 602
    functionName: rand_pool_entropy_available
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_entropy_available(RAND_POOL *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 615
    functionName: rand_pool_entropy_needed
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_entropy_needed(RAND_POOL *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:626,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:635,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:637,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:639,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:642,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:644,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:646,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - pool
    - len
    argTypes:
    - RAND_POOL*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 651
    functionName: rand_pool_grow
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - OPENSSL_secure_clear_free
    - memcpy
    - OPENSSL_secure_zalloc
    - OPENSSL_zalloc
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: int rand_pool_grow(RAND_POOL *pool, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_entropy_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:662,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:665,1
    - Dst: ENTROPY_TO_BYTES
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:669,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:673,1
    - Dst: rand_pool_grow
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pool
    - entropy_factor
    argTypes:
    - RAND_POOL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 701
    functionName: rand_pool_bytes_needed
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 5
    functionsReached:
    - RANDerr
    - rand_pool_entropy_needed
    - rand_pool_grow
    - ENTROPY_TO_BYTES
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_bytes_needed(RAND_POOL *pool, unsigned int entropy_factor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 707
    functionName: rand_pool_bytes_remaining
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_bytes_remaining(RAND_POOL *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:722,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:727,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:741,1
    - Dst: rand_pool_grow
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:751,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:753,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - pool
    - buffer
    - len
    - entropy
    argTypes:
    - RAND_POOL*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 759
    functionName: rand_pool_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 8
    functionsReached:
    - memcpy
    - RANDerr
    - rand_pool_grow
    linkageType: ''
    returnType: int
    signature: "int rand_pool_add(RAND_POOL *pool,\n                  const unsigned
      char *buffer, size_t len, size_t entropy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:779,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:784,1
    - Dst: rand_pool_grow
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:797,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pool
    - len
    argTypes:
    - RAND_POOL*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 801
    functionName: rand_pool_add_begin
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 3
    functionsReached:
    - RANDerr
    - rand_pool_grow
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *rand_pool_add_begin(RAND_POOL *pool, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pool
    - len
    - entropy
    argTypes:
    - RAND_POOL*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 825
    functionName: rand_pool_add_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 3
    functionsReached:
    - RANDerr
    linkageType: ''
    returnType: int
    signature: int rand_pool_add_end(RAND_POOL *pool, size_t len, size_t entropy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:829,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:832,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:834,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RAND_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 840
    functionName: RAND_set_rand_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - ENGINE_finish
    - RUN_ONCE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int RAND_set_rand_method(const RAND_METHOD *meth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:846,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:849,1
    - Dst: ENGINE_get_default_RAND
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:855,1
    - Dst: ENGINE_get_RAND
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:856,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:860,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 870
    functionName: RAND_get_rand_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - ENGINE_get_RAND
    - ENGINE_get_default_RAND
    - ENGINE_finish
    - CRYPTO_THREAD_unlock
    - RUN_ONCE
    linkageType: ''
    returnType: RAND_METHOD
    signature: RAND_METHOD *RAND_get_rand_method(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:877,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:881,1
    - Dst: ENGINE_get_RAND
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:883,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:885,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:889,1
    - Dst: RAND_set_rand_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:891,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 895
    functionName: RAND_set_rand_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - ENGINE_get_RAND
    - RAND_set_rand_method
    - ENGINE_finish
    - CRYPTO_THREAD_unlock
    - ENGINE_init
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int RAND_set_rand_engine(ENGINE *engine)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:900,1
    - Dst: RAND_METHOD*::seed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 904
    functionName: RAND_seed
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - RAND_get_rand_method
    - RAND_METHOD*::seed
    linkageType: ''
    returnType: void
    signature: void RAND_seed(const void *buf, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:908,1
    - Dst: RAND_METHOD*::add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - buf
    - num
    - randomness
    argTypes:
    - void*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 912
    functionName: RAND_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 2
    functionsReached:
    - RAND_get_rand_method
    - RAND_METHOD*::add
    linkageType: ''
    returnType: void
    signature: void RAND_add(const void *buf, int num, double randomness)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:921,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:924,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:925,1
    - Dst: RAND_DRBG_get0_private
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:927,1
    - Dst: RAND_DRBG_bytes
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 919
    functionDepth: 6
    functionLinenumber: 919
    functionLinenumberEnd: 932
    functionName: RAND_priv_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 10
    functionsReached:
    - RAND_bytes
    - RAND_OpenSSL
    - RAND_get_rand_method
    - RAND_DRBG_get0_private
    - RAND_DRBG_bytes
    linkageType: ''
    returnType: int
    signature: int RAND_priv_bytes(unsigned char *buf, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:936,1
    - Dst: RAND_METHOD*::bytes
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:939,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 942
    functionName: RAND_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 21
    functionsReached:
    - RANDerr
    - RAND_get_rand_method
    - RAND_METHOD*::bytes
    linkageType: ''
    returnType: int
    signature: int RAND_bytes(unsigned char *buf, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:947,1
    - Dst: RAND_METHOD*::pseudorand
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:950,1
    - Dst: RANDerr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 953
    functionName: RAND_pseudo_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - RANDerr
    - RAND_get_rand_method
    - RAND_METHOD*::pseudorand
    linkageType: ''
    returnType: int
    signature: int RAND_pseudo_bytes(unsigned char *buf, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:958,1
    - Dst: RAND_METHOD*::status
      Src: /src/openssl-1.1.1g/crypto/rand/rand_lib.c:961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 963
    functionName: RAND_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    functionUses: 3
    functionsReached:
    - RAND_get_rand_method
    - RAND_METHOD*::status
    linkageType: ''
    returnType: int
    signature: int RAND_status(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: TWO32TO64
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TWO32TO64(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: rand_pool_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rand_pool_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: rand_pool_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keep
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: rand_pool_keep_random_devices_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_keep_random_devices_open(int keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: rand_pool_acquire_entropy
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 2
    functionsReached:
    - rand_pool_entropy_available
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_acquire_entropy(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:169,1
    - Dst: random
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:177,1
    - Dst: s$sleep
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:182,1
    - Dst: s$sleep2
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:186,1
    - Dst: clock_gettime
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:190,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:192,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 195
    functionName: rand_pool_acquire_entropy
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 2
    functionsReached:
    - s$sleep
    - rand_pool_entropy_available
    - rand_pool_add
    - random
    - clock_gettime
    - s$sleep2
    - rand_pool_bytes_needed
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_acquire_entropy(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: rand_pool_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keep
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: rand_pool_keep_random_devices_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_keep_random_devices_open(int keep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:250,1
    - Dst: sysctl
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 280
    functionName: sysctl_random
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 0
    functionsReached:
    - sysctl
    - ossl_assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t sysctl_random(char *buf, size_t buflen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getentropy
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:371,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:382,1
    - Dst: DSO_global_lookup
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:383,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:384,1
    - Dst: "union {\n        void *p;\n        int (*f)(void *buffer, size_t length);\n
        \   }::f"
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:386,1
    - Dst: syscall
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:391,1
    - Dst: sysctl_random
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:393,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 398
    functionName: syscall_random
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 0
    functionsReached:
    - DSO_global_lookup
    - "union {\n        void *p;\n        int (*f)(void *buffer, size_t length);\n
      \   }::f"
    - getentropy
    - syscall
    - ERR_set_mark
    - ERR_pop_to_mark
    - sysctl_random
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t syscall_random(void *buf, size_t buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shmdt
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: cleanup_shm
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 0
    functionsReached:
    - shmdt
    linkageType: ''
    returnType: void
    signature: void cleanup_shm(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: shmget
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:438,1
    - Dst: uname
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:448,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:449,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:450,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:451,1
    - Dst: open
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:459,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:461,1
    - Dst: FD_SET
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:462,1
    - Dst: select
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:463,1
    - Dst: read
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:466,1
    - Dst: close
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:468,1
    - Dst: shmget
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:472,1
    - Dst: shmat
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:483,1
    - Dst: OPENSSL_atexit
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:485,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 489
    functionName: wait_random_seeded
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 0
    functionsReached:
    - FD_SET
    - shmat
    - atoi
    - strchr
    - open
    - close
    - read
    - uname
    - select
    - OPENSSL_atexit
    - shmget
    - FD_ZERO
    linkageType: ''
    returnType: int
    signature: int wait_random_seeded(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 494
    functionName: wait_random_seeded
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wait_random_seeded(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - rd
    argTypes:
    - struct random_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: check_random_device
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 0
    functionsReached:
    - fstat
    linkageType: ''
    returnType: int
    signature: int check_random_device(struct random_device * rd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_random_device
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:525,1
    - Dst: open
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:529,1
    - Dst: fstat
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:533,1
    - Dst: close
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 544
    functionName: get_random_device
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 0
    functionsReached:
    - check_random_device
    - close
    - open
    - fstat
    linkageType: ''
    returnType: int
    signature: int get_random_device(size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_random_device
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:553,1
    - Dst: close
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 556
    functionName: close_random_device
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 0
    functionsReached:
    - check_random_device
    - close
    linkageType: ''
    returnType: void
    signature: void close_random_device(size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 566
    functionName: rand_pool_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int rand_pool_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:572,1
    - Dst: close_random_device
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 574
    functionName: rand_pool_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - close_random_device
    linkageType: ''
    returnType: void
    signature: void rand_pool_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_cleanup
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - keep
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 582
    functionName: rand_pool_keep_random_devices_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached:
    - rand_pool_cleanup
    linkageType: ''
    returnType: void
    signature: void rand_pool_keep_random_devices_open(int keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: rand_pool_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rand_pool_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: rand_pool_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keep
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: rand_pool_keep_random_devices_open
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_pool_keep_random_devices_open(int keep)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:621,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:633,1
    - Dst: rand_pool_add_begin
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:635,1
    - Dst: syscall_random
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:636,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:638,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:646,1
    - Dst: wait_random_seeded
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:658,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:663,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:664,1
    - Dst: get_random_device
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:669,1
    - Dst: rand_pool_add_begin
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:675,1
    - Dst: read
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:676,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:679,1
    - Dst: close_random_device
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:687,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:689,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:691,1
    - Dst: rand_acquire_entropy_from_tsc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:698,1
    - Dst: rand_acquire_entropy_from_cpu
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:704,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:716,1
    - Dst: rand_pool_add_begin
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:721,1
    - Dst: RAND_query_egd_bytes
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:722,1
    - Dst: rand_pool_add_end
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:727,1
    - Dst: rand_pool_bytes_needed
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:728,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:730,1
    - Dst: rand_pool_entropy_available
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:736,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 738
    functionName: rand_pool_acquire_entropy
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 2
    functionsReached:
    - wait_random_seeded
    - OSSL_NELEM
    - rand_pool_add_end
    - syscall_random
    - rand_acquire_entropy_from_tsc
    - rand_acquire_entropy_from_cpu
    - rand_pool_add_begin
    - rand_pool_entropy_available
    - close_random_device
    - get_random_device
    - read
    - RAND_query_egd_bytes
    - rand_pool_bytes_needed
    linkageType: ''
    returnType: size_t
    signature: size_t rand_pool_acquire_entropy(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:756,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:757,1
    - Dst: get_time_stamp
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:758,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 761
    functionName: rand_pool_add_nonce_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached:
    - getpid
    - rand_pool_add
    - CRYPTO_THREAD_get_current_id
    - get_time_stamp
    linkageType: ''
    returnType: int
    signature: int rand_pool_add_nonce_data(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openssl_get_fork_id
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:777,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:778,1
    - Dst: get_timer_bits
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:779,1
    - Dst: rand_pool_add
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 763
    functionDepth: 3
    functionLinenumber: 763
    functionLinenumberEnd: 782
    functionName: rand_pool_add_additional_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached:
    - openssl_get_fork_id
    - get_timer_bits
    - CRYPTO_THREAD_get_current_id
    - rand_pool_add
    linkageType: ''
    returnType: int
    signature: int rand_pool_add_additional_data(RAND_POOL *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:798,1
    - Dst: TWO32TO64
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:799,1
    - Dst: gettimeofday
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:807,1
    - Dst: TWO32TO64
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:808,1
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:811,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 812
    functionName: get_time_stamp
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached:
    - TWO32TO64
    - gettimeofday
    - clock_gettime
    - time
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_time_stamp(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_rdtsc
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:823,1
    - Dst: gethrtime
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:829,1
    - Dst: read_wall_time
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:834,1
    - Dst: TWO32TO64
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:835,1
    - Dst: clock_gettime
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:849,1
    - Dst: TWO32TO64
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:850,1
    - Dst: gettimeofday
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:858,1
    - Dst: TWO32TO64
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:859,1
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/rand/rand_unix.c:862,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 863
    functionName: get_timer_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    functionUses: 1
    functionsReached:
    - OPENSSL_rdtsc
    - read_wall_time
    - gettimeofday
    - gethrtime
    - clock_gettime
    - time
    - TWO32TO64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_timer_bits(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:40,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: pkey_tls1_prf_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - KDFerr
    linkageType: ''
    returnType: int
    signature: int pkey_tls1_prf_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:52,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:53,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: pkey_tls1_prf_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_clear_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void pkey_tls1_prf_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:69,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:70,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:72,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 91
    functionName: pkey_tls1_prf_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_memdup
    - memcpy
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int pkey_tls1_prf_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:97,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:100,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:103,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:105,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:111,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:112,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:113,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:114,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:115,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:116,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:117,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:118,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 122
    functionName: pkey_tls1_prf_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - KDFerr
    - strcmp
    - EVP_PKEY_CTX_str2ctrl
    - EVP_PKEY_CTX_hex2ctrl
    linkageType: ''
    returnType: int
    signature: "int pkey_tls1_prf_ctrl_str(EVP_PKEY_CTX *ctx,\n                                  const
      char *type, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:129,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:133,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:137,1
    - Dst: tls1_prf_alg
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 143
    functionName: pkey_tls1_prf_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - tls1_prf_alg
    - KDFerr
    linkageType: ''
    returnType: int
    signature: "int pkey_tls1_prf_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n
      \                               size_t *keylen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:187,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:188,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:191,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:192,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:193,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:196,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:197,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:200,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:202,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:204,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:206,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:211,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:213,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:215,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:217,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:222,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:227,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:231,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:233,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:239,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:240,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:241,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:242,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:243,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 67
    argCount: 7
    argNames:
    - md
    - sec
    - sec_len
    - seed
    - seed_len
    - out
    - olen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 245
    functionName: tls1_prf_P_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - EVP_PKEY_free
    - EVP_MD_CTX_copy_ex
    - EVP_MD_CTX_set_flags
    - memcpy
    - EVP_DigestSignInit
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_free
    - EVP_PKEY_new_raw_private_key
    - EVP_MD_size
    - EVP_DigestSignFinal
    - ossl_assert
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int tls1_prf_P_hash(const EVP_MD *md,\n                           const
      unsigned char *sec, size_t sec_len,\n                           const unsigned
      char *seed, size_t seed_len,\n                           unsigned char *out,
      size_t olen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:253,1
    - Dst: tls1_prf_P_hash
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:256,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:256,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:260,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:261,1
    - Dst: tls1_prf_P_hash
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:264,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:264,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:266,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:271,1
    - Dst: tls1_prf_P_hash
      Src: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 7
    argNames:
    - md
    - sec
    - slen
    - seed
    - seed_len
    - out
    - olen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 247
    functionDepth: 5
    functionLinenumber: 247
    functionLinenumberEnd: 278
    functionName: tls1_prf_alg
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - EVP_MD_type
    - KDFerr
    - EVP_sha1
    - tls1_prf_P_hash
    - EVP_md5
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int tls1_prf_alg(const EVP_MD *md,\n                        const
      unsigned char *sec, size_t slen,\n                        const unsigned char
      *seed, size_t seed_len,\n                        unsigned char *out, size_t
      olen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/kdf/kdf_err.c:61,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/kdf/kdf_err.c:62,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/kdf/kdf_err.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: ERR_load_KDF_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/kdf_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_KDF_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:51,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: pkey_hkdf_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - KDFerr
    linkageType: ''
    returnType: int
    signature: int pkey_hkdf_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:64,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:65,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: pkey_hkdf_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_clear_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void pkey_hkdf_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:94,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:96,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:108,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:110,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:124,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 132
    functionName: pkey_hkdf_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_memdup
    - memcpy
    linkageType: ''
    returnType: int
    signature: int pkey_hkdf_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:137,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:140,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:142,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:144,1
    - Dst: EVP_PKEY_CTX_hkdf_mode
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:149,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:152,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:153,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:156,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:157,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:159,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:160,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:162,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:163,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:165,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:166,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:168,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:169,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:171,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:172,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 176
    functionName: pkey_hkdf_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - KDFerr
    - strcmp
    - EVP_PKEY_CTX_str2ctrl
    - EVP_PKEY_CTX_hkdf_mode
    - EVP_PKEY_CTX_hex2ctrl
    - EVP_PKEY_CTX_md
    linkageType: ''
    returnType: int
    signature: "int pkey_hkdf_ctrl_str(EVP_PKEY_CTX *ctx, const char *type,\n                              const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:182,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:183,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:184,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: pkey_hkdf_derive_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - memset
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int pkey_hkdf_derive_init(EVP_PKEY_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:196,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:200,1
    - Dst: HKDF
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:206,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:212,1
    - Dst: HKDF_Extract
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:215,1
    - Dst: HKDF_Expand
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 225
    functionName: pkey_hkdf_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - HKDF_Extract
    - KDFerr
    - HKDF_Expand
    - HKDF
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: "int pkey_hkdf_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                            size_t
      *keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HKDF_Extract
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:267,1
    - Dst: HKDF_Expand
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:270,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - evp_md
    - salt
    - salt_len
    - key
    - key_len
    - info
    - info_len
    - okm
    - okm_len
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: HKDF
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanse
    - HKDF_Extract
    - HKDF_Expand
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *HKDF(const EVP_MD *evp_md,\n                           const
      unsigned char *salt, size_t salt_len,\n                           const unsigned
      char *key, size_t key_len,\n                           const unsigned char *info,
      size_t info_len,\n                           unsigned char *okm, size_t okm_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMAC
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - evp_md
    - salt
    - salt_len
    - key
    - key_len
    - prk
    - prk_len
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 6
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: HKDF_Extract
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    functionUses: 2
    functionsReached:
    - HMAC
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *HKDF_Extract(const EVP_MD *evp_md,\n                                   const
      unsigned char *salt, size_t salt_len,\n                                   const
      unsigned char *key, size_t key_len,\n                                   unsigned
      char *prk, size_t *prk_len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:302,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:311,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:314,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:322,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:325,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:329,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:332,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:335,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:342,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:349,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/kdf/hkdf.c:350,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 7
    argNames:
    - evp_md
    - prk
    - prk_len
    - info
    - info_len
    - okm
    - okm_len
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 352
    functionName: HKDF_Expand
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    functionUses: 2
    functionsReached:
    - HMAC_CTX_new
    - HMAC_Init_ex
    - HMAC_Final
    - HMAC_CTX_free
    - HMAC_Update
    - memcpy
    - EVP_MD_size
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *HKDF_Expand(const EVP_MD *evp_md,\n                                  const
      unsigned char *prk, size_t prk_len,\n                                  const
      unsigned char *info, size_t info_len,\n                                  unsigned
      char *okm, size_t okm_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - nptr
    - result
    argTypes:
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: atou64
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int atou64(const char *nptr, uint64_t *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:60,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 78
    functionName: pkey_scrypt_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - KDFerr
    linkageType: ''
    returnType: int
    signature: int pkey_scrypt_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:84,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:85,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: pkey_scrypt_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: void pkey_scrypt_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:100,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:103,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:105,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - buffer
    - buflen
    - new_buffer
    - new_buflen
    argTypes:
    - unsigned char**
    - size_t*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 114
    functionName: pkey_scrypt_set_membuf
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_clear_free
    - OPENSSL_memdup
    - KDFerr
    linkageType: ''
    returnType: int
    signature: "int pkey_scrypt_set_membuf(unsigned char **buffer, size_t *buflen,\n
      \                                 const unsigned char *new_buffer,\n                                  const
      int new_buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: is_power_of_two
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_power_of_two(uint64_t value)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pkey_scrypt_set_membuf
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:128,1
    - Dst: pkey_scrypt_set_membuf
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:131,1
    - Dst: is_power_of_two
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 165
    functionName: pkey_scrypt_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    functionUses: 0
    functionsReached:
    - pkey_scrypt_set_membuf
    - is_power_of_two
    linkageType: ''
    returnType: int
    signature: int pkey_scrypt_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atou64
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:172,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:173,1
    - Dst: pkey_scrypt_ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: pkey_scrypt_ctrl_uint64
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    functionUses: 0
    functionsReached:
    - KDFerr
    - pkey_scrypt_ctrl
    - atou64
    linkageType: ''
    returnType: int
    signature: "int pkey_scrypt_ctrl_uint64(EVP_PKEY_CTX *ctx, int type,\n                                   const
      char *value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:183,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:187,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:188,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:190,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:191,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:193,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:194,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:196,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:197,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:199,1
    - Dst: pkey_scrypt_ctrl_uint64
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:200,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:202,1
    - Dst: pkey_scrypt_ctrl_uint64
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:203,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:205,1
    - Dst: pkey_scrypt_ctrl_uint64
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:206,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:208,1
    - Dst: pkey_scrypt_ctrl_uint64
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:209,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 214
    functionName: pkey_scrypt_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    functionUses: 0
    functionsReached:
    - KDFerr
    - strcmp
    - EVP_PKEY_CTX_str2ctrl
    - pkey_scrypt_ctrl_uint64
    - EVP_PKEY_CTX_hex2ctrl
    linkageType: ''
    returnType: int
    signature: "int pkey_scrypt_ctrl_str(EVP_PKEY_CTX *ctx, const char *type,\n                                const
      char *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:222,1
    - Dst: KDFerr
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:227,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openssl-1.1.1g/crypto/kdf/scrypt.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 5
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: pkey_scrypt_derive
    functionSourceFile: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_scrypt
    - KDFerr
    linkageType: ''
    returnType: int
    signature: "int pkey_scrypt_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                              size_t
      *keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c:27,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: ASN1_SCTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_SCTX
    signature: ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ASN1_SCTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ASN1_SCTX_free(ASN1_SCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: ASN1_SCTX_get_item
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_ITEM
    signature: ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: ASN1_SCTX_get_template
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TEMPLATE
    signature: ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ASN1_SCTX_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - data
    argTypes:
    - ASN1_SCTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: ASN1_SCTX_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ASN1_SCTX_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ASN1_SCTX_get_app_data(ASN1_SCTX *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:60,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:63,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:64,1
    - Dst: BIO_f_asn1
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:64,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:69,1
    - Dst: BIO_asn1_set_prefix
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:73,1
    - Dst: BIO_asn1_set_suffix
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:74,1
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:85,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:94,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - out
    - val
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 102
    functionName: BIO_new_NDEF
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c
    functionUses: 1
    functionsReached:
    - BIO_asn1_set_prefix
    - OPENSSL_free
    - ASN1err
    - BIO_ctrl
    - OPENSSL_zalloc
    - BIO_free
    - BIO_push
    - ASN1_AUX*::asn1_cb
    - BIO_f_asn1
    - BIO_asn1_set_suffix
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:115,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:116,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:117,1
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 131
    functionName: ndef_prefix
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - ASN1_item_ndef_i2d
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: int
    signature: int ndef_prefix(BIO *b, unsigned char **pbuf, int *plen, void *parg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: ndef_prefix_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int ndef_prefix_free(BIO *b, unsigned char **pbuf, int *plen,\n                            void
      *parg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ndef_prefix_free
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:155,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: ndef_suffix_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - ndef_prefix_free
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int ndef_suffix_free(BIO *b, unsigned char **pbuf, int *plen,\n                            void
      *parg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:181,1
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:185,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:186,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:187,1
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 201
    functionName: ndef_suffix
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - ASN1_item_ndef_i2d
    - OPENSSL_malloc
    - ASN1err
    - ASN1_AUX*::asn1_cb
    linkageType: ''
    returnType: int
    signature: int ndef_suffix(BIO *b, unsigned char **pbuf, int *plen, void *parg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:20,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:24,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:25,1
    - Dst: X509_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:31,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 34
    functionName: X509_PKEY_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c
    functionUses: 0
    functionsReached:
    - X509_PKEY_free
    - ASN1_OCTET_STRING_new
    - X509_ALGOR_new
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_PKEY
    signature: X509_PKEY *X509_PKEY_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:41,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:42,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: X509_PKEY_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - X509_ALGOR_free
    - OPENSSL_free
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: void X509_PKEY_free(X509_PKEY *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:29,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:31,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:34,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:35,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:39,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - i2d
    - type
    - data
    - md
    - len
    argTypes:
    - i2d_of_void*
    - EVP_MD*
    - char*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 47
    functionName: ASN1_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_digest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ASN1err
    - i2d
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: "int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,\n
      \               unsigned char *md, unsigned int *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:57,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:62,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_digest.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - it
    - type
    - asn
    - md
    - len
    argTypes:
    - ASN1_ITEM*
    - EVP_MD*
    - void*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: ASN1_item_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_digest.c
    functionUses: 6
    functionsReached:
    - ASN1_item_i2d
    - OPENSSL_free
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void
      *asn,\n                     unsigned char *md, unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: offset2ptr
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offset2ptr(addr, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: asn1_get_choice_selector
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: int
    signature: int asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pval
    - value
    - it
    argTypes:
    - ASN1_VALUE**
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: asn1_set_choice_selector
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: int
    signature: "int asn1_set_choice_selector(ASN1_VALUE **pval, int value,\n                             const
      ASN1_ITEM *it)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:71,1
    - Dst: offset2ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:72,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:77,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:79,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:84,1
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:88,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:91,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:93,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:95,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - pval
    - op
    - it
    argTypes:
    - ASN1_VALUE**
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 102
    functionName: asn1_do_lock
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - ASN1err
    - offset2ptr
    - CRYPTO_THREAD_lock_new
    - REF_ASSERT_ISNT
    - CRYPTO_DOWN_REF
    - fprintf
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int asn1_do_lock(ASN1_VALUE **pval, int op, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: asn1_get_enc_ptr
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: ASN1_ENCODING
    signature: ASN1_ENCODING *asn1_get_enc_ptr(ASN1_VALUE **pval, const ASN1_ITEM
      *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: asn1_enc_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - asn1_get_enc_ptr
    linkageType: ''
    returnType: void
    signature: void asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:129,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: asn1_enc_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - asn1_get_enc_ptr
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:142,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:146,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:147,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:148,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - pval
    - in
    - inlen
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: asn1_enc_save
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ASN1err
    - memcpy
    - asn1_get_enc_ptr
    linkageType: ''
    returnType: int
    signature: "int asn1_enc_save(ASN1_VALUE **pval, const unsigned char *in, int
      inlen,\n                  const ASN1_ITEM *it)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:162,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - len
    - out
    - pval
    - it
    argTypes:
    - int*
    - unsigned char**
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: asn1_enc_restore
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - asn1_get_enc_ptr
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval,\n
      \                    const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: asn1_get_field_ptr
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: ASN1_VALUE
    signature: ASN1_VALUE **asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE
      *tt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ADB_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:203,1
    - Dst: offset2ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:206,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:220,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:222,1
    - Dst: ASN1_ADB*::adb_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:225,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:226,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c:251,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - pval
    - tt
    - nullerr
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 253
    functionName: asn1_do_adb
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - offset2ptr
    - ASN1_ADB*::adb_cb
    - ASN1_ADB_ptr
    - OBJ_obj2nid
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: ASN1_TEMPLATE
    signature: "ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE
      *tt,\n                                 int nullerr)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:30,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:37,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:52,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:56,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:57,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:61,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:62,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:64,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:68,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:73,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:75,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:79,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:80,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:81,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:84,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:89,1
    - Dst: EVP_SignInit_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:90,1
    - Dst: EVP_SignUpdate
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:91,1
    - Dst: EVP_SignFinal
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:92,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:95,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:98,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:109,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:110,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:111,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 7
    argNames:
    - i2d
    - algor1
    - algor2
    - signature
    - data
    - pkey
    - type
    argTypes:
    - i2d_of_void*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - char*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 113
    functionName: ASN1_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_sign.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - OBJ_nid2obj
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - EVP_SignUpdate
    - OPENSSL_free
    - EVP_SignInit_ex
    - ASN1err
    - ASN1_OBJECT_free
    - EVP_SignFinal
    - OPENSSL_clear_free
    - i2d
    - EVP_MD_CTX_free
    - EVP_PKEY_size
    - ASN1_TYPE_free
    linkageType: ''
    returnType: int
    signature: "int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2,\n
      \             ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey,\n              const
      EVP_MD *type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:122,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:125,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:128,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:129,1
    - Dst: ASN1_item_sign_ctx
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:133,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - it
    - algor1
    - algor2
    - signature
    - asn
    - pkey
    - type
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 137
    functionName: ASN1_item_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_sign.c
    functionUses: 4
    functionsReached:
    - ASN1_item_sign_ctx
    - EVP_MD_CTX_new
    - ASN1err
    - EVP_DigestSignInit
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1,\n                   X509_ALGOR
      *algor2, ASN1_BIT_STRING *signature, void *asn,\n                   EVP_PKEY
      *pkey, const EVP_MD *type)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:150,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:151,1
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:151,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:154,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:159,1
    - Dst: EVP_PKEY*::ameth::item_sign
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:164,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:175,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:184,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:187,1
    - Dst: EVP_MD_nid
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:188,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:190,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:201,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:201,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:203,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:203,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:207,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:210,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:214,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:215,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:218,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:222,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:224,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:227,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:238,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_sign.c:239,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 6
    argNames:
    - it
    - algor1
    - algor2
    - signature
    - asn
    - ctx
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 241
    functionName: ASN1_item_sign_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_sign.c
    functionUses: 4
    functionsReached:
    - OBJ_nid2obj
    - EVP_MD_CTX_md
    - EVP_MD_CTX_pkey_ctx
    - EVP_PKEY*::ameth::item_sign
    - EVP_MD_nid
    - OPENSSL_malloc
    - X509_ALGOR_set0
    - EVP_DigestSign
    - OPENSSL_free
    - ASN1err
    - OBJ_find_sigid_by_algs
    - EVP_PKEY_CTX_get0_pkey
    - ASN1_item_i2d
    - EVP_PKEY_size
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_sign_ctx(const ASN1_ITEM *it,\n                       X509_ALGOR
      *algor1, X509_ALGOR *algor2,\n                       ASN1_BIT_STRING *signature,
      void *asn, EVP_MD_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PBEPARAM_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:34,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:36,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:41,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:42,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:48,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:50,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:54,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:55,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:58,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:61,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:61,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:62,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:66,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:69,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:73,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:74,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:75,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - algor
    - alg
    - iter
    - salt
    - saltlen
    argTypes:
    - X509_ALGOR*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 77
    functionName: PKCS5_pbe_set0_algor
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c
    functionUses: 0
    functionsReached:
    - PBEPARAM_new
    - OPENSSL_malloc
    - OBJ_nid2obj
    - ASN1_STRING_set0
    - ASN1_item_pack
    - PBEPARAM_free
    - RAND_bytes
    - X509_ALGOR_set0
    - OPENSSL_free
    - ASN1err
    - memcpy
    - ASN1_STRING_free
    - ASN1_ITEM_rptr
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: "int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter,\n                         const
      unsigned char *salt, int saltlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:85,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:87,1
    - Dst: PKCS5_pbe_set0_algor
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:91,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - alg
    - iter
    - salt
    - saltlen
    argTypes:
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: PKCS5_pbe_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c
    functionUses: 2
    functionsReached:
    - X509_ALGOR_new
    - X509_ALGOR_free
    - ASN1err
    - PKCS5_pbe_set0_algor
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbe_set(int alg, int iter,\n                          const
      unsigned char *salt, int saltlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:29,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:34,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:35,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:42,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ASN1_OBJECT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 51
    functionName: i2d_ASN1_OBJECT
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - ASN1_object_size
    - OPENSSL_malloc
    - ASN1_put_object
    - ASN1err
    - memcpy
    linkageType: ''
    returnType: int
    signature: int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:65,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:73,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:78,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:87,1
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:99,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:100,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:106,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:107,1
    - Dst: BN_mul_word
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:111,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:112,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:119,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:124,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:132,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:136,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:138,1
    - Dst: BN_div_word
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:143,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:160,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:170,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:175,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:176,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 121
    argCount: 4
    argNames:
    - out
    - olen
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 178
    functionName: a2d_ASN1_OBJECT
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BN_div_word
    - BN_add_word
    - BN_new
    - OPENSSL_free
    - ASN1err
    - ossl_isdigit
    - BN_mul_word
    - BN_free
    - BN_set_word
    - BN_num_bits
    - strlen
    linkageType: ''
    returnType: int
    signature: int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf,
      int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2txt
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - buf_len
    - a
    argTypes:
    - char*
    - int
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: i2t_ASN1_OBJECT
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_object.c
    functionUses: 3
    functionsReached:
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:191,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:192,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:194,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:195,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:198,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:201,1
    - Dst: BIO_dump
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:202,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:205,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 209
    functionName: i2a_ASN1_OBJECT
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_object.c
    functionUses: 7
    functionsReached:
    - OPENSSL_malloc
    - BIO_write
    - OPENSSL_free
    - ASN1err
    - i2t_ASN1_OBJECT
    - BIO_dump
    linkageType: ''
    returnType: int
    signature: int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:220,1
    - Dst: c2i_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:230,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 237
    functionName: d2i_ASN1_OBJECT
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - ASN1_get_object
    - c2i_ASN1_OBJECT
    - ASN1err
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: "ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char
      **pp,\n                             long length)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:254,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:267,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:274,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:276,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:284,1
    - Dst: ASN1_OBJECT_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:295,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:307,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:308,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:315,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:329,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:331,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 3
    argNames:
    - a
    - pp
    - len
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 333
    functionName: c2i_ASN1_OBJECT
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_object.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_new
    - OBJ_nid2obj
    - OPENSSL_malloc
    - OPENSSL_free
    - ASN1_OBJECT_free
    - ASN1err
    - memcpy
    - OBJ_obj2nid
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: "ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char
      **pp,\n                             long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:339,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 346
    functionName: ASN1_OBJECT_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_object.c
    functionUses: 1
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *ASN1_OBJECT_new(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:356,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:357,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:362,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 368
    functionName: ASN1_OBJECT_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_object.c
    functionUses: 22
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ASN1_OBJECT_free(ASN1_OBJECT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/asn1/a_object.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - nid
    - data
    - len
    - sn
    - ln
    argTypes:
    - int
    - unsigned char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 383
    functionName: ASN1_OBJECT_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - OBJ_dup
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: "ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int
      len,\n                                const char *sn, const char *ln)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:28,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:29,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:35,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:40,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:41,1
    - Dst: EVP_PKEY*::ameth::old_priv_decode
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:46,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:50,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:53,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:54,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:57,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:60,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:70,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 4
    argNames:
    - type
    - a
    - pp
    - length
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 72
    functionName: d2i_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY*::ameth::old_priv_decode
    - ASN1err
    - EVP_PKEY_set_type
    - ENGINE_finish
    - PKCS8_PRIV_KEY_INFO_free
    - EVP_PKEY_new
    - EVP_PKEY_free
    - d2i_PKCS8_PRIV_KEY_INFO
    - EVP_PKCS82PKEY
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char
      **pp,\n                         long length)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:82,1
    - Dst: d2i_ASN1_SEQUENCE_ANY
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:91,1
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:97,1
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:99,1
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:101,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:103,1
    - Dst: sk_ASN1_TYPE_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:106,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:108,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:112,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:113,1
    - Dst: sk_ASN1_TYPE_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:123,1
    - Dst: d2i_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 125
    functionName: d2i_AutoPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_TYPE_num
    - STACK_OF
    - ASN1err
    - d2i_PrivateKey
    - sk_ASN1_TYPE_pop_free
    - PKCS8_PRIV_KEY_INFO_free
    - d2i_PKCS8_PRIV_KEY_INFO
    - EVP_PKCS82PKEY
    - d2i_ASN1_SEQUENCE_ANY
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp,\n
      \                            long length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: is_utc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_utc(const int year)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: leap_year
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int leap_year(const int year)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: leap_year
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 72
    functionName: determine_days
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - leap_year
    linkageType: ''
    returnType: void
    signature: void determine_days(struct tm *tm)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:116,1
    - Dst: ascii_isdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:131,1
    - Dst: ascii_isdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:138,1
    - Dst: leap_year
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:167,1
    - Dst: determine_days
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:174,1
    - Dst: ascii_isdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:199,1
    - Dst: ascii_isdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:230,1
    - Dst: ascii_isdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:234,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:249,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 146
    argCount: 2
    argNames:
    - tm
    - d
    argTypes:
    - struct tm*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 263
    functionName: asn1_time_to_tm
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - OPENSSL_gmtime_adj
    - memset
    - determine_days
    - ascii_isdigit
    - leap_year
    linkageType: ''
    returnType: int
    signature: int asn1_time_to_tm(struct tm *tm, const ASN1_TIME *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: is_utc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:272,1
    - Dst: is_utc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:277,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:284,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:290,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:297,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:302,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:308,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:313,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - s
    - ts
    - type
    argTypes:
    - ASN1_TIME*
    - struct tm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 315
    functionName: asn1_time_from_tm
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - is_utc
    - ASN1_STRING_set
    - ASN1_STRING_free
    - ebcdic2ascii
    - ASN1_STRING_new
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *asn1_time_from_tm(ASN1_TIME *s, struct tm *ts, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_TIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: ASN1_TIME_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_adj
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:328,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:330,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:334,1
    - Dst: asn1_time_from_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - s
    - t
    - offset_day
    - offset_sec
    argTypes:
    - ASN1_TIME*
    - time_t
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 338
    functionName: ASN1_TIME_adj
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 2
    functionsReached:
    - OPENSSL_gmtime
    - asn1_time_from_tm
    - OPENSSL_gmtime_adj
    - ASN1err
    linkageType: ''
    returnType: ASN1_TIME
    signature: "ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t,\n                         int
      offset_day, long offset_sec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:343,1
    - Dst: ASN1_UTCTIME_check
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: ASN1_TIME_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_UTCTIME_check
    - ASN1_GENERALIZEDTIME_check
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_check(const ASN1_TIME *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:356,1
    - Dst: asn1_time_from_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - t
    - out
    argTypes:
    - ASN1_TIME*
    - ASN1_GENERALIZEDTIME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 368
    functionName: ASN1_TIME_to_generalizedtime
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 1
    functionsReached:
    - asn1_time_from_tm
    - ASN1_TIME_to_tm
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME
      *t,\n                                                   ASN1_GENERALIZEDTIME
      **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTCTIME_set_string
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:373,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_TIME*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 376
    functionName: ASN1_TIME_set_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_set_string
    - ASN1_UTCTIME_set_string
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_set_string(ASN1_TIME *s, const char *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:384,1
    - Dst: ASN1_TIME_check
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:390,1
    - Dst: ASN1_TIME_check
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:392,1
    - Dst: asn1_time_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:411,1
    - Dst: is_utc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:413,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:420,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:423,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:428,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:432,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_TIME*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 435
    functionName: ASN1_TIME_set_string_X509
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - is_utc
    - OPENSSL_free
    - memcpy
    - ASN1_STRING_copy
    - OPENSSL_zalloc
    - ASN1_TIME_check
    - asn1_time_to_tm
    - strlen
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:442,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:443,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:444,1
    - Dst: asn1_time_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - tm
    argTypes:
    - ASN1_TIME*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 450
    functionName: ASN1_TIME_to_tm
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 1
    functionsReached:
    - OPENSSL_gmtime
    - asn1_time_to_tm
    - memset
    - time
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:457,1
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:459,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - pday
    - psec
    - from
    - to
    argTypes:
    - int*
    - int*
    - ASN1_TIME*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 462
    functionName: ASN1_TIME_diff
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 2
    functionsReached:
    - ASN1_TIME_to_tm
    - OPENSSL_gmtime_diff
    linkageType: ''
    returnType: int
    signature: "int ASN1_TIME_diff(int *pday, int *psec,\n                   const
      ASN1_TIME *from, const ASN1_TIME *to)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: asn1_time_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:476,1
    - Dst: ascii_isdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:497,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:501,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:506,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:512,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - bp
    - tm
    argTypes:
    - BIO*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 514
    functionName: ASN1_TIME_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 2
    functionsReached:
    - ascii_isdigit
    - asn1_time_to_tm
    - BIO_write
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:521,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:524,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:527,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_TIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 535
    functionName: ASN1_TIME_cmp_time_t
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - OPENSSL_gmtime
    - ASN1_TIME_to_tm
    - OPENSSL_gmtime_diff
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:541,1
    - Dst: asn1_time_from_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 545
    functionName: ASN1_TIME_normalize
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - asn1_time_from_tm
    - ASN1_TIME_to_tm
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_normalize(ASN1_TIME *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-1.1.1g/crypto/asn1/a_time.c:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_TIME*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 547
    functionDepth: 5
    functionLinenumber: 547
    functionLinenumberEnd: 558
    functionName: ASN1_TIME_compare
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_diff
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:26,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:26,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:27,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:30,1
    - Dst: ASN1_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:31,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - (*xnew) (void)
    - d2i
    - in
    - x
    argTypes:
    - void*
    - d2i_of_void*
    - FILE*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: ASN1_d2i_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c
    functionUses: 1
    functionsReached:
    - ASN1err
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - ASN1_d2i_bio
    - BIO_new
    linkageType: ''
    returnType: void
    signature: void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in,
      void **x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:44,1
    - Dst: d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:49,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - (*xnew) (void)
    - d2i
    - in
    - x
    argTypes:
    - void*
    - d2i_of_void*
    - BIO*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: ASN1_d2i_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c
    functionUses: 1
    functionsReached:
    - BUF_MEM_free
    - asn1_d2i_read_bio
    - d2i
    linkageType: ''
    returnType: void
    signature: void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in,
      void **x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:64,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:69,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - it
    - in
    - x
    argTypes:
    - ASN1_ITEM*
    - BIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: ASN1_item_d2i_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c
    functionUses: 8
    functionsReached:
    - ASN1_item_d2i
    - BUF_MEM_free
    - asn1_d2i_read_bio
    linkageType: ''
    returnType: void
    signature: void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:81,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:81,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:82,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:85,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:86,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - it
    - in
    - x
    argTypes:
    - ASN1_ITEM*
    - FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: ASN1_item_d2i_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c
    functionUses: 7
    functionsReached:
    - ASN1err
    - BIO_s_file
    - ASN1_item_d2i_bio
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: void
    signature: void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:108,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:110,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:114,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:119,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:120,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:123,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:125,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:130,1
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:140,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:144,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:144,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:148,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:156,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:177,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:189,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:190,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:195,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:197,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:213,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:225,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c:232,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 109
    argCount: 2
    argNames:
    - in
    - pb
    argTypes:
    - BIO*
    - BUF_MEM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 234
    functionName: asn1_d2i_read_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c
    functionUses: 3
    functionsReached:
    - BUF_MEM_grow_clean
    - ERR_peek_error
    - ASN1err
    - BUF_MEM_free
    - BUF_MEM_new
    - ERR_GET_REASON
    - ERR_clear_error
    - ASN1_get_object
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int asn1_d2i_read_bio(BIO *in, BUF_MEM **pb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: ASN1_STRING_set_default_mask
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_set_default_mask(unsigned long mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ASN1_STRING_get_default_mask
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_STRING_get_default_mask(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:53,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:56,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:59,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:61,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:63,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:65,1
    - Dst: ASN1_STRING_set_default_mask
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: ASN1_STRING_set_default_mask_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strtoul
    - strncmp
    - ASN1_STRING_set_default_mask
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_set_default_mask_asc(const char *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:90,1
    - Dst: ASN1_mbstring_ncopy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:95,1
    - Dst: ASN1_mbstring_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - out
    - in
    - inlen
    - inform
    - nid
    argTypes:
    - ASN1_STRING**
    - unsigned char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 104
    functionName: ASN1_STRING_set_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 2
    functionsReached:
    - ASN1_STRING_TABLE_get
    - ASN1_mbstring_ncopy
    - ASN1_mbstring_copy
    linkageType: ''
    returnType: ASN1_STRING
    signature: "ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out,\n                                    const
      unsigned char *in, int inlen,\n                                    int inform,
      int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_STRING_TABLE**
    - ASN1_STRING_TABLE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: sk_table_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sk_table_cmp(const ASN1_STRING_TABLE *const *a,\n                        const
      ASN1_STRING_TABLE *const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_STRING_TABLE*
    - ASN1_STRING_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: table_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int table_cmp(const ASN1_STRING_TABLE *a, const ASN1_STRING_TABLE *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_STRING_TABLE_find
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:134,1
    - Dst: sk_ASN1_STRING_TABLE_value
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:136,1
    - Dst: OBJ_bsearch_table
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:138,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: ASN1_STRING_TABLE_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - OBJ_bsearch_table
    - sk_ASN1_STRING_TABLE_find
    - sk_ASN1_STRING_TABLE_value
    linkageType: ''
    returnType: ASN1_STRING_TABLE
    signature: ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_STRING_TABLE_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:152,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:156,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:159,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:160,1
    - Dst: sk_ASN1_STRING_TABLE_push
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:163,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 180
    functionName: stable_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_TABLE_get
    - sk_ASN1_STRING_TABLE_new
    - OPENSSL_free
    - ASN1err
    - OPENSSL_zalloc
    - sk_ASN1_STRING_TABLE_push
    linkageType: ''
    returnType: ASN1_STRING_TABLE
    signature: ASN1_STRING_TABLE *stable_get(int nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stable_get
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:188,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - nid
    - minsize
    - maxsize
    - mask
    - flags
    argTypes:
    - int
    - long
    - long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: ASN1_STRING_TABLE_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - stable_get
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "int ASN1_STRING_TABLE_add(int nid,\n                          long
      minsize, long maxsize, unsigned long mask,\n                          unsigned
      long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:206,1
    - Dst: sk_ASN1_STRING_TABLE_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: ASN1_STRING_TABLE_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_STRING_TABLE_pop_free
    - STACK_OF
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_TABLE_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - tbl
    argTypes:
    - ASN1_STRING_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: st_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void st_free(ASN1_STRING_TABLE *tbl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: ASN1_tag2bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_tag2bit(int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: asn1_tlc_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asn1_tlc_clear(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: asn1_tlc_clear_nc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asn1_tlc_clear_nc(c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asn1_tlc_clear_nc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:113,1
    - Dst: ASN1_item_ex_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pval
    - in
    - len
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: ASN1_item_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 3
    functionsReached:
    - asn1_tlc_clear_nc
    - ASN1_item_ex_d2i
    linkageType: ''
    returnType: ASN1_VALUE
    signature: "ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **pval,\n                          const
      unsigned char **in, long len,\n                          const ASN1_ITEM *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:124,1
    - Dst: ASN1_item_ex_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - pval
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: ASN1_item_ex_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 2
    functionsReached:
    - ASN1_item_ex_free
    - asn1_item_embed_d2i
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in,
      long len,\n                     const ASN1_ITEM *it,\n                     int
      tag, int aclass, char opt, ASN1_TLC *ctx)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:160,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:174,1
    - Dst: asn1_template_ex_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:178,1
    - Dst: asn1_d2i_ex_primitive
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:181,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:187,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:190,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:199,1
    - Dst: ASN1_tag2bit
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:203,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:207,1
    - Dst: asn1_d2i_ex_primitive
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:210,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:215,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:218,1
    - Dst: asn1_get_choice_selector
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:222,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:225,1
    - Dst: asn1_template_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:226,1
    - Dst: asn1_set_choice_selector
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:227,1
    - Dst: ASN1_item_ex_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:229,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:230,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:236,1
    - Dst: asn1_template_ex_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:240,1
    - Dst: asn1_template_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:251,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:253,1
    - Dst: ASN1_item_ex_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:262,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:265,1
    - Dst: asn1_set_choice_selector
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:269,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:271,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:287,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:290,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:302,1
    - Dst: ASN1_item_ex_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:306,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:307,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:311,1
    - Dst: asn1_do_adb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:319,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:322,1
    - Dst: asn1_template_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:323,1
    - Dst: asn1_do_adb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:331,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:334,1
    - Dst: asn1_check_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:339,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:341,1
    - Dst: asn1_template_ex_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:363,1
    - Dst: asn1_template_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:372,1
    - Dst: asn1_check_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:380,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:381,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:386,1
    - Dst: asn1_do_adb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:397,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:402,1
    - Dst: asn1_template_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:403,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:406,1
    - Dst: asn1_enc_save
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:411,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:413,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:422,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:425,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:428,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 218
    argCount: 9
    argNames:
    - pval
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    - depth
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 430
    functionName: asn1_item_embed_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_check_eoc
    - asn1_set_choice_selector
    - asn1_d2i_ex_primitive
    - ASN1_item_ex_free
    - asn1_get_choice_selector
    - ASN1_EXTERN_FUNCS*::asn1_ex_d2i
    - ASN1err
    - asn1_cb
    - ASN1_item_ex_new
    - ERR_add_error_data
    - asn1_check_tlen
    - asn1_enc_save
    - asn1_template_ex_d2i
    - asn1_get_field_ptr
    - asn1_do_adb
    - asn1_template_free
    - ASN1_tag2bit
    linkageType: ''
    returnType: int
    signature: "int asn1_item_embed_d2i(ASN1_VALUE **pval, const unsigned char **in,\n
      \                              long len, const ASN1_ITEM *it,\n                               int
      tag, int aclass, char opt, ASN1_TLC *ctx,\n                               int
      depth)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_tlen
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:461,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:465,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:470,1
    - Dst: asn1_template_noexp_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:475,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:477,1
    - Dst: asn1_check_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:484,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:485,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:493,1
    - Dst: asn1_template_noexp_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:499,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 7
    argNames:
    - val
    - in
    - inlen
    - tt
    - opt
    - ctx
    - depth
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_TEMPLATE*
    - char
    - ASN1_TLC*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 506
    functionName: asn1_template_ex_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_check_eoc
    - asn1_check_tlen
    - asn1_template_noexp_d2i
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "int asn1_template_ex_d2i(ASN1_VALUE **val,\n                                const
      unsigned char **in, long inlen,\n                                const ASN1_TEMPLATE
      *tt, char opt,\n                                ASN1_TLC *ctx, int depth)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_tlen
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:550,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:553,1
    - Dst: sk_ASN1_VALUE_new_null
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:558,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:563,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:563,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:565,1
    - Dst: sk_ASN1_VALUE_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:566,1
    - Dst: ASN1_item_ex_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:567,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:567,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:572,1
    - Dst: asn1_check_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:581,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:583,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:592,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:593,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:595,1
    - Dst: ASN1_item_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:598,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:598,1
    - Dst: sk_ASN1_VALUE_push
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:602,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:602,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:603,1
    - Dst: ASN1_item_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:604,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:604,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:609,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:614,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:615,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:618,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:624,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:624,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:627,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 98
    argCount: 7
    argNames:
    - val
    - in
    - len
    - tt
    - opt
    - ctx
    - depth
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_TEMPLATE*
    - char
    - ASN1_TLC*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 638
    functionName: asn1_template_noexp_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_check_eoc
    - ASN1_item_ex_free
    - sk_ASN1_VALUE_new_null
    - ASN1_ITEM_ptr
    - ASN1err
    - STACK_OF
    - sk_ASN1_VALUE_num
    - asn1_check_tlen
    - ASN1_item_free
    - sk_ASN1_VALUE_pop
    - asn1_item_embed_d2i
    - sk_ASN1_VALUE_push
    linkageType: ''
    returnType: int
    signature: "int asn1_template_noexp_d2i(ASN1_VALUE **val,\n                                   const
      unsigned char **in, long len,\n                                   const ASN1_TEMPLATE
      *tt, char opt,\n                                   ASN1_TLC *ctx, int depth)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:653,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:667,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:671,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:676,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:679,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:691,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:694,1
    - Dst: asn1_tlc_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:707,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:711,1
    - Dst: asn1_find_end
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:719,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:730,1
    - Dst: asn1_collect
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:742,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:747,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:748,1
    - Dst: asn1_ex_c2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:761,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:768,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 93
    argCount: 8
    argNames:
    - pval
    - in
    - inlen
    - it
    - tag
    - aclass
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 770
    functionName: asn1_d2i_ex_primitive
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - BUF_MEM_grow_clean
    - asn1_tlc_clear
    - OPENSSL_free
    - ASN1err
    - asn1_check_tlen
    - asn1_collect
    - asn1_find_end
    - asn1_ex_c2i
    linkageType: ''
    returnType: int
    signature: "int asn1_d2i_ex_primitive(ASN1_VALUE **pval,\n                                 const
      unsigned char **in, long inlen,\n                                 const ASN1_ITEM
      *it,\n                                 int tag, int aclass, char opt, ASN1_TLC
      *ctx)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_c2i
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:786,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:790,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:798,1
    - Dst: c2i_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:804,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:810,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:818,1
    - Dst: c2i_ASN1_BIT_STRING
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:828,1
    - Dst: c2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:835,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:860,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:864,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:870,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:872,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:882,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:887,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:888,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:889,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:903,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 122
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 908
    functionName: asn1_ex_c2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_STRING_set
    - c2i_ASN1_OBJECT
    - ASN1_PRIMITIVE_FUNCS*::prim_c2i
    - ASN1_STRING_free
    - OPENSSL_free
    - ASN1err
    - ASN1_TYPE_set
    - ASN1_TYPE_free
    - c2i_ASN1_BIT_STRING
    - c2i_ASN1_INTEGER
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: int
    signature: "int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int
      len,\n                       int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:935,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:944,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:946,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:951,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:961,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - in
    - len
    - inf
    argTypes:
    - unsigned char**
    - long
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 966
    functionName: asn1_find_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_check_eoc
    - asn1_check_tlen
    - ASN1err
    linkageType: ''
    returnType: int
    signature: int asn1_find_end(const unsigned char **in, long len, char inf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1003,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1008,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1015,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1017,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1024,1
    - Dst: asn1_collect
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1027,1
    - Dst: collect_data
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1029,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1034,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 7
    argNames:
    - buf
    - in
    - len
    - inf
    - tag
    - aclass
    - depth
    argTypes:
    - BUF_MEM*
    - unsigned char**
    - long
    - char
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 1039
    functionName: asn1_collect
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 2
    functionsReached:
    - asn1_check_eoc
    - collect_data
    - ASN1err
    - asn1_check_tlen
    - asn1_collect
    linkageType: ''
    returnType: int
    signature: "int asn1_collect(BUF_MEM *buf, const unsigned char **in, long len,\n
      \                       char inf, int tag, int aclass, int depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1046,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1047,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1050,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - p
    - plen
    argTypes:
    - BUF_MEM*
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1041
    functionDepth: 3
    functionLinenumber: 1041
    functionLinenumberEnd: 1054
    functionName: collect_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - BUF_MEM_grow_clean
    - ASN1err
    - memcpy
    linkageType: ''
    returnType: int
    signature: int collect_data(BUF_MEM *buf, const unsigned char **p, long plen)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1069
    functionName: asn1_check_eoc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int asn1_check_eoc(const unsigned char **in, long len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1097,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1110,1
    - Dst: asn1_tlc_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1111,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1118,1
    - Dst: asn1_tlc_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1119,1
    - Dst: asn1_tlc_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1129,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1130,1
    - Dst: asn1_tlc_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c:1137,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 11
    argNames:
    - olen
    - otag
    - oclass
    - inf
    - cst
    - in
    - len
    - exptag
    - expclass
    - opt
    - ctx
    argTypes:
    - long*
    - int*
    - unsigned char*
    - char*
    - char*
    - unsigned char**
    - long
    - int
    - int
    - char
    - ASN1_TLC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1160
    functionName: asn1_check_tlen
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
    functionUses: 6
    functionsReached:
    - ASN1_get_object
    - ASN1err
    - asn1_tlc_clear
    linkageType: ''
    returnType: int
    signature: "int asn1_check_tlen(long *olen, int *otag, unsigned char *oclass,\n
      \                          char *inf, char *cst,\n                           const
      unsigned char **in, long len,\n                           int exptag, int expclass,
      char opt, ASN1_TLC *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - it
    argTypes:
    - ASN1_VALUE*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ASN1_item_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c
    functionUses: 1
    functionsReached:
    - asn1_item_embed_free
    linkageType: ''
    returnType: void
    signature: void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: ASN1_item_ex_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c
    functionUses: 3
    functionsReached:
    - asn1_item_embed_free
    linkageType: ''
    returnType: void
    signature: void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: asn1_template_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:49,1
    - Dst: asn1_primitive_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:51,1
    - Dst: asn1_primitive_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:55,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:60,1
    - Dst: asn1_get_choice_selector
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:64,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:69,1
    - Dst: asn1_template_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:70,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:75,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:83,1
    - Dst: asn1_do_lock
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:88,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:91,1
    - Dst: asn1_enc_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:95,1
    - Dst: asn1_do_adb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:106,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:109,1
    - Dst: asn1_template_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:110,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:113,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:115,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 120
    functionName: asn1_item_embed_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c
    functionUses: 2
    functionsReached:
    - asn1_get_field_ptr
    - asn1_enc_free
    - asn1_get_choice_selector
    - OPENSSL_free
    - ASN1_EXTERN_FUNCS*::asn1_ex_free
    - asn1_cb
    - asn1_primitive_free
    - asn1_template_free
    - asn1_do_adb
    - asn1_do_lock
    linkageType: ''
    returnType: void
    signature: void asn1_item_embed_free(ASN1_VALUE **pval, const ASN1_ITEM *it, int
      embed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:131,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:131,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:134,1
    - Dst: sk_ASN1_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:135,1
    - Dst: asn1_item_embed_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:137,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:137,1
    - Dst: sk_ASN1_VALUE_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:139,1
    - Dst: asn1_item_embed_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:142,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pval
    - tt
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 144
    functionName: asn1_template_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c
    functionUses: 2
    functionsReached:
    - asn1_item_embed_free
    - ASN1_ITEM_ptr
    - sk_ASN1_VALUE_num
    - STACK_OF
    - sk_ASN1_VALUE_value
    - sk_ASN1_VALUE_free
    linkageType: ''
    returnType: void
    signature: void asn1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:156,1
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:160,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:185,1
    - Dst: asn1_primitive_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:199,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:200,1
    - Dst: asn1_string_embed_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c:204,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 208
    functionName: asn1_primitive_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c
    functionUses: 2
    functionsReached:
    - asn1_string_embed_free
    - OPENSSL_free
    - ASN1_OBJECT_free
    - ASN1_PRIMITIVE_FUNCS*::prim_clear
    - asn1_primitive_free
    - ASN1_PRIMITIVE_FUNCS*::prim_free
    linkageType: ''
    returnType: void
    signature: void asn1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it, int
      embed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c:21,1
    - Dst: i2d_RSAPublicKey
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c:24,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c:24,1
    - Dst: i2d_DSAPublicKey
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c:28,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c:28,1
    - Dst: i2o_ECPublicKey
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c:32,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c:32,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: i2d_PublicKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_DSA
    - EVP_PKEY_get0_EC_KEY
    - ASN1err
    - EVP_PKEY_id
    - i2d_RSAPublicKey
    - EVP_PKEY_get0_RSA
    - i2d_DSAPublicKey
    - i2o_ECPublicKey
    linkageType: ''
    returnType: int
    signature: int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:19,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:21,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:22,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a
    - data
    - len
    argTypes:
    - ASN1_TYPE*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: ASN1_TYPE_set_octetstring
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_free
    - ASN1_TYPE_set
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:36,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:39,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:40,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - a
    - data
    - max_len
    argTypes:
    - ASN1_TYPE*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: ASN1_TYPE_get_octetstring
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1err
    - memcpy
    - ASN1_STRING_length
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data,
      int max_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:74,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - a
    - num
    - data
    - len
    argTypes:
    - ASN1_TYPE*
    - long
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: ASN1_TYPE_set_int_octetstring
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_TYPE_pack_sequence
    linkageType: ''
    returnType: int
    signature: "int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned
      char *data,\n                                  int len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:93,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:93,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:101,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:108,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:108,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:111,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - a
    - num
    - data
    - max_len
    argTypes:
    - ASN1_TYPE*
    - long*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: ASN1_TYPE_get_int_octetstring
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_unpack_sequence
    - ASN1_STRING_length
    - memcpy
    - ASN1err
    - M_ASN1_free_of
    - ASN1_ITEM_rptr
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: "int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num,\n
      \                                 unsigned char *data, int max_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:26,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:32,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:38,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - bp
    - a
    - type
    argTypes:
    - BIO*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 46
    functionName: i2a_ASN1_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/f_string.c
    functionUses: 3
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:55,1
    - Dst: ossl_isxdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:77,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:94,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:95,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:100,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:103,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:111,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:113,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:115,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:124,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/f_string.c:134,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 4
    argNames:
    - bp
    - bs
    - buf
    - size
    argTypes:
    - BIO*
    - ASN1_STRING*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 136
    functionName: a2i_ASN1_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/f_string.c
    functionUses: 0
    functionsReached:
    - OPENSSL_realloc
    - ossl_isxdigit
    - OPENSSL_free
    - ASN1err
    - OPENSSL_hexchar2int
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/x_info.c:20,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_info.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: X509_INFO_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_info.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_INFO
    signature: X509_INFO *X509_INFO_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_info.c:34,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_info.c:35,1
    - Dst: X509_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_info.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_info.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_info.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: X509_INFO_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_info.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_PKEY_free
    - OPENSSL_free
    - X509_CRL_free
    linkageType: ''
    returnType: void
    signature: void X509_INFO_free(X509_INFO *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: ASN1_TYPE_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_type.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_get(const ASN1_TYPE *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asn1_primitive_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - a
    - type
    - value
    argTypes:
    - ASN1_TYPE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: ASN1_TYPE_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_type.c
    functionUses: 5
    functionsReached:
    - asn1_primitive_free
    linkageType: ''
    returnType: void
    signature: void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:45,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:48,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:51,1
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:54,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - a
    - type
    - value
    argTypes:
    - ASN1_TYPE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: ASN1_TYPE_set1
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_type.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_dup
    - OBJ_dup
    - ASN1_TYPE_set
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:72,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_TYPE*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 107
    functionName: ASN1_TYPE_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_type.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_cmp
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:114,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:121,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:123,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - it
    - s
    - t
    argTypes:
    - ASN1_ITEM*
    - void*
    - ASN1_TYPE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 131
    functionName: ASN1_TYPE_pack_sequence
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_type.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_TYPE_set
    - ASN1_OCTET_STRING_free
    - ASN1_item_pack
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE
      **t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/crypto/asn1/a_type.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - it
    - t
    argTypes:
    - ASN1_ITEM*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: ASN1_TYPE_unpack_sequence
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_type.c
    functionUses: 7
    functionsReached:
    - ASN1_item_unpack
    linkageType: ''
    returnType: void
    signature: void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE
      *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ex_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: ASN1_item_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c
    functionUses: 0
    functionsReached:
    - ASN1_item_ex_new
    linkageType: ''
    returnType: ASN1_VALUE
    signature: ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ASN1_item_ex_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c
    functionUses: 2
    functionsReached:
    - asn1_item_embed_new
    linkageType: ''
    returnType: int
    signature: int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_mem_debug_push
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:56,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:64,1
    - Dst: asn1_template_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:71,1
    - Dst: asn1_primitive_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:73,1
    - Dst: asn1_primitive_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:78,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:84,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:89,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:95,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:97,1
    - Dst: asn1_set_choice_selector
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:101,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:102,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:109,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:114,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:120,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:122,1
    - Dst: asn1_do_lock
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:127,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:129,1
    - Dst: asn1_enc_init
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:134,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:136,1
    - Dst: asn1_template_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:137,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:140,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:145,1
    - Dst: asn1_item_embed_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:150,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:152,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:154,1
    - Dst: asn1_item_embed_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:159,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:161,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:163,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 111
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 167
    functionName: asn1_item_embed_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - asn1_primitive_new
    - asn1_set_choice_selector
    - asn1_item_embed_free
    - asn1_template_new
    - OPENSSL_mem_debug_pop
    - asn1_get_field_ptr
    - OPENSSL_free
    - asn1_cb
    - ASN1err
    - memset
    - OPENSSL_zalloc
    - ASN1_EXTERN_FUNCS*::asn1_ex_new
    - OPENSSL_mem_debug_push
    - asn1_do_lock
    - asn1_enc_init
    linkageType: ''
    returnType: int
    signature: int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int
      embed)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:178,1
    - Dst: asn1_template_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:185,1
    - Dst: asn1_primitive_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:187,1
    - Dst: asn1_primitive_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:191,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 200
    functionName: asn1_item_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c
    functionUses: 0
    functionsReached:
    - asn1_primitive_clear
    - ASN1_EXTERN_FUNCS*::asn1_ex_clear
    - asn1_template_clear
    linkageType: ''
    returnType: void
    signature: void asn1_item_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:204,1
    - Dst: asn1_template_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:213,1
    - Dst: OPENSSL_mem_debug_push
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:223,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:228,1
    - Dst: sk_ASN1_VALUE_new_null
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:229,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:231,1
    - Dst: asn1_item_embed_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - pval
    - tt
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 246
    functionName: asn1_template_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - asn1_item_embed_new
    - sk_ASN1_VALUE_new_null
    - ASN1_ITEM_ptr
    - STACK_OF
    - ASN1err
    - asn1_template_clear
    - OPENSSL_mem_debug_push
    linkageType: ''
    returnType: int
    signature: int asn1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:254,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pval
    - tt
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: asn1_template_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c
    functionUses: 2
    functionsReached:
    - asn1_item_clear
    - ASN1_ITEM_ptr
    linkageType: ''
    returnType: void
    signature: void asn1_template_clear(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:276,1
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:280,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:290,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:302,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:303,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:314,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:318,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 328
    functionName: asn1_primitive_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2obj
    - OPENSSL_malloc
    - ASN1err
    - ASN1_PRIMITIVE_FUNCS*::prim_new
    - memset
    - ASN1_PRIMITIVE_FUNCS*::prim_clear
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: int
    signature: "int asn1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it,\n                              int
      embed)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_clear
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c:336,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 349
    functionName: asn1_primitive_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - ASN1_PRIMITIVE_FUNCS*::prim_clear
    linkageType: ''
    returnType: void
    signature: void asn1_primitive_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/asn1/x_algor.c:36,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_algor.c:41,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_algor.c:47,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/asn1/x_algor.c:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - alg
    - aobj
    - ptype
    - pval
    argTypes:
    - X509_ALGOR*
    - ASN1_OBJECT*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 52
    functionName: X509_ALGOR_set0
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_algor.c
    functionUses: 12
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_TYPE_free
    - ASN1_OBJECT_free
    - ASN1_TYPE_set
    linkageType: ''
    returnType: int
    signature: int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype,
      void *pval)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - paobj
    - pptype
    - ppval
    - algor
    argTypes:
    - ASN1_OBJECT**
    - int*
    - void**
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: X509_ALGOR_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_algor.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype,\n                     const
      void **ppval, const X509_ALGOR *algor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/asn1/x_algor.c:81,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/x_algor.c:81,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/asn1/x_algor.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - alg
    - md
    argTypes:
    - X509_ALGOR*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: X509_ALGOR_set_md
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_algor.c
    functionUses: 2
    functionsReached:
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - EVP_MD_type
    linkageType: ''
    returnType: void
    signature: void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/asn1/x_algor.c:88,1
    - Dst: ASN1_TYPE_cmp
      Src: /src/openssl-1.1.1g/crypto/asn1/x_algor.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_ALGOR*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: X509_ALGOR_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_algor.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_cmp
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:26,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:27,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:29,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:33,1
    - Dst: d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - i2d
    - d2i
    - x
    argTypes:
    - i2d_of_void*
    - d2i_of_void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 38
    functionName: ASN1_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_dup.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ASN1err
    - d2i
    - i2d
    linkageType: ''
    returnType: void
    signature: void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:59,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:61,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_dup.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - it
    - x
    argTypes:
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: ASN1_item_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_dup.c
    functionUses: 1
    functionsReached:
    - ASN1_item_i2d
    - OPENSSL_free
    - ASN1err
    - ASN1_item_d2i
    linkageType: ''
    returnType: void
    signature: void *ASN1_item_dup(const ASN1_ITEM *it, void *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isasn1print
      Src: /src/openssl-1.1.1g/crypto/asn1/a_print.c:28,1
    - Dst: ossl_isascii
      Src: /src/openssl-1.1.1g/crypto/asn1/a_print.c:30,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 38
    functionName: ASN1_PRINTABLE_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_print.c
    functionUses: 1
    functionsReached:
    - ossl_isascii
    - ossl_isasn1print
    linkageType: ''
    returnType: int
    signature: int ASN1_PRINTABLE_type(const unsigned char *s, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRINTABLE_type
      Src: /src/openssl-1.1.1g/crypto/asn1/a_print.c:64,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - ASN1_UNIVERSALSTRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 66
    functionName: ASN1_UNIVERSALSTRING_to_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_print.c
    functionUses: 0
    functionsReached:
    - ASN1_PRINTABLE_type
    linkageType: ''
    returnType: int
    signature: int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/a_print.c:86,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/a_print.c:92,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - bp
    - v
    argTypes:
    - BIO*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 95
    functionName: ASN1_STRING_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_print.c
    functionUses: 2
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_type
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:50,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:52,1
    - Dst: PBE2PARAM_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:57,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:62,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:63,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:67,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:69,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:69,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:70,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:70,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:74,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:79,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:81,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:82,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:90,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:91,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:94,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:100,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:106,1
    - Dst: PKCS5_pbkdf2_set
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:108,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:115,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:118,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:122,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:122,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:126,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:132,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:135,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:136,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:138,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 6
    argNames:
    - cipher
    - iter
    - salt
    - saltlen
    - aiv
    - prf_nid
    argTypes:
    - EVP_CIPHER*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 141
    functionName: PKCS5_pbe2_set_iv
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - PBE2PARAM_free
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_type
    - ASN1_ITEM_rptr
    - ASN1_TYPE_pack_sequence
    - X509_ALGOR_new
    - RAND_bytes
    - memcpy
    - ERR_clear_error
    - EVP_CipherInit_ex
    - OBJ_nid2obj
    - ASN1err
    - EVP_CIPHER_CTX_new
    - X509_ALGOR_free
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_iv_length
    - PKCS5_pbkdf2_set
    - EVP_CIPHER_param_to_asn1
    - EVP_CIPHER_key_length
    - PBE2PARAM_new
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter,\n
      \                             unsigned char *salt, int saltlen,\n                              unsigned
      char *aiv, int prf_nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_pbe2_set_iv
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cipher
    - iter
    - salt
    - saltlen
    argTypes:
    - EVP_CIPHER*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 6
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: PKCS5_pbe2_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c
    functionUses: 2
    functionsReached:
    - PKCS5_pbe2_set_iv
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,\n                           unsigned
      char *salt, int saltlen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PBKDF2PARAM_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:156,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:158,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:166,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:172,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:173,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:179,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:185,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:187,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:193,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:196,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:196,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:201,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:205,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:209,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:209,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:213,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:217,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:218,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c:219,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 5
    argNames:
    - iter
    - salt
    - saltlen
    - prf_nid
    - keylen
    argTypes:
    - int
    - unsigned char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 221
    functionName: PKCS5_pbkdf2_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c
    functionUses: 2
    functionsReached:
    - ASN1_INTEGER_new
    - OPENSSL_malloc
    - ASN1_OCTET_STRING_new
    - OBJ_nid2obj
    - PBKDF2PARAM_free
    - X509_ALGOR_new
    - X509_ALGOR_set0
    - RAND_bytes
    - ASN1err
    - memcpy
    - X509_ALGOR_free
    - ASN1_ITEM_rptr
    - ASN1_INTEGER_set
    - ASN1_TYPE_pack_sequence
    - PBKDF2PARAM_new
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen,\n
      \                            int prf_nid, int keylen)"
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 76
    argCount: 3
    argNames:
    - str
    - len
    - val
    argTypes:
    - unsigned char*
    - int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 114
    functionName: UTF8_getc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_utf8.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UTF8_getc(const unsigned char *str, int len, unsigned long *val)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 3
    argNames:
    - str
    - len
    - value
    argTypes:
    - unsigned char*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 188
    functionName: UTF8_putc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_utf8.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UTF8_putc(unsigned char *str, int len, unsigned long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:39,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: ASN1_PCTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_PCTX
    signature: ASN1_PCTX *ASN1_PCTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: ASN1_PCTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_free(ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ASN1_PCTX_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: ASN1_PCTX_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ASN1_PCTX_get_nm_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: ASN1_PCTX_set_nm_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: ASN1_PCTX_get_cert_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ASN1_PCTX_set_cert_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: ASN1_PCTX_get_oid_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: ASN1_PCTX_set_oid_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: ASN1_PCTX_get_str_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: ASN1_PCTX_set_str_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_print_ctx
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - out
    - ifld
    - indent
    - it
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - int
    - ASN1_ITEM*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: ASN1_item_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - asn1_item_print_ctx
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent,\n                    const
      ASN1_ITEM *it, const ASN1_PCTX *pctx)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: asn1_print_fsname
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:157,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:159,1
    - Dst: asn1_template_print_ctx
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:168,1
    - Dst: asn1_primitive_print
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:175,1
    - Dst: asn1_print_fsname
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:180,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_print
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:185,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:188,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:192,1
    - Dst: asn1_get_choice_selector
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:198,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:201,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:206,1
    - Dst: asn1_template_print_ctx
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:207,1
    - Dst: asn1_print_fsname
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:213,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:217,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:220,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:226,1
    - Dst: asn1_do_adb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:236,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:239,1
    - Dst: asn1_template_print_ctx
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:240,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:245,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:250,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:257,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 98
    argCount: 8
    argNames:
    - out
    - fld
    - indent
    - it
    - fname
    - sname
    - nohdr
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - ASN1_ITEM*
    - char*
    - char*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 262
    functionName: asn1_item_print_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - asn1_primitive_print
    - asn1_print_fsname
    - asn1_template_print_ctx
    - ASN1_EXTERN_FUNCS*::asn1_ex_print
    - asn1_get_choice_selector
    - asn1_cb
    - BIO_puts
    - BIO_printf
    - asn1_get_field_ptr
    - asn1_do_adb
    linkageType: ''
    returnType: int
    signature: "int asn1_item_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,\n
      \                              const ASN1_ITEM *it,\n                               const
      char *fname, const char *sname,\n                               int nohdr, const
      ASN1_PCTX *pctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:272,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:292,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:301,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:304,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:307,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:308,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:309,1
    - Dst: sk_ASN1_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:312,1
    - Dst: asn1_item_print_ctx
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:313,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:314,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:318,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:322,1
    - Dst: asn1_item_print_ctx
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:327,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:327,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 5
    argNames:
    - out
    - fld
    - indent
    - tt
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - ASN1_TEMPLATE*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 329
    functionName: asn1_template_print_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_ptr
    - asn1_item_print_ctx
    - sk_ASN1_VALUE_num
    - STACK_OF
    - sk_ASN1_VALUE_value
    - BIO_puts
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,\n
      \                           const ASN1_TEMPLATE *tt, const ASN1_PCTX *pctx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:339,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:343,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:352,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:357,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:360,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:364,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 5
    argNames:
    - out
    - indent
    - fname
    - sname
    - pctx
    argTypes:
    - BIO*
    - int
    - char*
    - char*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 367
    functionName: asn1_print_fsname
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    - BIO_write
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int asn1_print_fsname(BIO *out, int indent,\n                             const
      char *fname, const char *sname,\n                             const ASN1_PCTX
      *pctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - out
    - boolval
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 391
    functionName: asn1_print_boolean
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int asn1_print_boolean(BIO *out, int boolval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:397,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:400,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 404
    functionName: asn1_print_integer
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - i2s_ASN1_INTEGER
    - BIO_puts
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int asn1_print_integer(BIO *out, const ASN1_INTEGER *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:410,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:410,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:413,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - oid
    argTypes:
    - BIO*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 417
    functionName: asn1_print_oid
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - OBJ_obj2nid
    - BIO_printf
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: int asn1_print_oid(BIO *out, const ASN1_OBJECT *oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:422,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:424,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - out
    - str
    - indent
    argTypes:
    - BIO*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 431
    functionName: asn1_print_obstring
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_dump_indent
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int asn1_print_obstring(BIO *out, const ASN1_STRING *str, int indent)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: asn1_print_fsname
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:444,1
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_print
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:447,1
    - Dst: ASN1_tag2str
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:466,1
    - Dst: ASN1_tag2str
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:469,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:475,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:481,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:483,1
    - Dst: asn1_print_boolean
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:493,1
    - Dst: asn1_print_integer
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:499,1
    - Dst: ASN1_UTCTIME_print
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:503,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:507,1
    - Dst: asn1_print_oid
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:511,1
    - Dst: asn1_print_obstring
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:516,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:523,1
    - Dst: ASN1_parse_dump
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:525,1
    - Dst: ASN1_STRING_print_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:531,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c:536,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 7
    argNames:
    - out
    - fld
    - it
    - indent
    - fname
    - sname
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - char*
    - char*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 433
    functionDepth: 5
    functionLinenumber: 433
    functionLinenumberEnd: 539
    functionName: asn1_primitive_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - ASN1_PRIMITIVE_FUNCS*::prim_print
    - asn1_print_fsname
    - asn1_print_obstring
    - ASN1_UTCTIME_print
    - ASN1_GENERALIZEDTIME_print
    - ASN1_STRING_print_ex
    - ASN1_tag2str
    - asn1_print_oid
    - BIO_puts
    - asn1_print_boolean
    - ASN1_parse_dump
    - asn1_print_integer
    linkageType: ''
    returnType: int
    signature: "int asn1_primitive_print(BIO *out, ASN1_VALUE **fld,\n                                const
      ASN1_ITEM *it, int indent,\n                                const char *fname,
      const char *sname,\n                                const ASN1_PCTX *pctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:35,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:37,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:41,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:43,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:45,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:47,1
    - Dst: ASN1_tag2str
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:49,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:51,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - bp
    - tag
    - xclass
    - constructed
    - indent
    argTypes:
    - BIO*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: asn1_print_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - BIO_write
    - ASN1_tag2str
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "int asn1_print_info(BIO *bp, int tag, int xclass, int constructed,\n
      \                          int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_parse2
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pp
    - len
    - indent
    argTypes:
    - BIO*
    - unsigned char*
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: ASN1_parse
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c
    functionUses: 0
    functionsReached:
    - asn1_parse2
    linkageType: ''
    returnType: int
    signature: int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_parse2
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bp
    - pp
    - len
    - indent
    - dump
    argTypes:
    - BIO*
    - unsigned char*
    - long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: ASN1_parse_dump
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c
    functionUses: 1
    functionsReached:
    - asn1_parse2
    linkageType: ''
    returnType: int
    signature: "int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int
      indent,\n                    int dump)"
  - BBCount: 71
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:84,1
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:93,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:95,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:105,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:114,1
    - Dst: asn1_print_info
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:117,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:123,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:126,1
    - Dst: asn1_parse2
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:132,1
    - Dst: asn1_parse2
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:149,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:161,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:172,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:174,1
    - Dst: d2i_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:179,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:180,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:182,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:184,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:190,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:195,1
    - Dst: d2i_ASN1_OCTET_STRING
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:202,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:220,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:222,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:229,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:232,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:239,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:242,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:252,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:258,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:260,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:263,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:266,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:270,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:274,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:278,1
    - Dst: d2i_ASN1_ENUMERATED
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:284,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:286,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:289,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:292,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:296,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:300,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:304,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:308,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:311,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:320,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:323,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:326,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:331,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:344,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:345,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:346,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c:347,1
    CyclomaticComplexity: 138
    EdgeCount: 138
    ICount: 264
    argCount: 7
    argNames:
    - bp
    - pp
    - length
    - offset
    - depth
    - indent
    - dump
    argTypes:
    - BIO*
    - unsigned char**
    - long
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 69
    functionDepth: 5
    functionLinenumber: 69
    functionLinenumberEnd: 350
    functionName: asn1_parse2
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c
    functionUses: 3
    functionsReached:
    - d2i_ASN1_OBJECT
    - BIO_write
    - i2a_ASN1_OBJECT
    - BIO_dump_indent
    - asn1_print_info
    - ASN1_ENUMERATED_free
    - ASN1_INTEGER_free
    - d2i_ASN1_INTEGER
    - ASN1_OCTET_STRING_free
    - ASN1_OBJECT_free
    - asn1_parse2
    - BIO_puts
    - d2i_ASN1_OCTET_STRING
    - d2i_ASN1_ENUMERATED
    - BIO_printf
    - ASN1_get_object
    linkageType: ''
    returnType: int
    signature: "int asn1_parse2(BIO *bp, const unsigned char **pp, long length,\n
      \                      int offset, int depth, int indent, int dump)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 379
    functionName: ASN1_tag2str
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ASN1_tag2str(int tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_item_list.c:28,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_item_list.c:29,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_item_list.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: ASN1_ITEM_lookup
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_item_list.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OSSL_NELEM
    - ASN1_ITEM_ptr
    linkageType: ''
    returnType: ASN1_ITEM
    signature: ASN1_ITEM *ASN1_ITEM_lookup(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_item_list.c:39,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_item_list.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: ASN1_ITEM_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_item_list.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ASN1_ITEM_ptr
    linkageType: ''
    returnType: ASN1_ITEM
    signature: ASN1_ITEM *ASN1_ITEM_get(size_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: send_bio_chars
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int send_bio_chars(void *arg, const void *buf, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: send_fp_chars
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: int send_fp_chars(void *arg, const void *buf, int len)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: HEX_SIZE
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:71,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:76,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:77,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:82,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:83,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:97,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:101,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:103,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:110,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:111,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:120,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:124,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 5
    argNames:
    - c
    - flags
    - do_quotes
    - io_ch
    - arg
    argTypes:
    - unsigned long
    - unsigned short
    - char*
    - char_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 127
    functionName: do_esc_char
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - HEX_SIZE
    - io_ch
    linkageType: ''
    returnType: int
    signature: "int do_esc_char(unsigned long c, unsigned short flags, char *do_quotes,\n
      \                      char_io *io_ch, void *arg)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:155,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:161,1
    - Dst: UTF8_getc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:193,1
    - Dst: UTF8_putc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:207,1
    - Dst: do_esc_char
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:215,1
    - Dst: do_esc_char
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:222,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 7
    argNames:
    - buf
    - buflen
    - type
    - flags
    - quotes
    - io_ch
    - arg
    argTypes:
    - unsigned char*
    - int
    - int
    - unsigned short
    - char*
    - char_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 230
    functionName: do_buf
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - UTF8_getc
    - do_esc_char
    - UTF8_putc
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "int do_buf(unsigned char *buf, int buflen,\n                  int
      type, unsigned short flags, char *quotes, char_io *io_ch,\n                  void
      *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - io_ch
    - arg
    - buf
    - buflen
    argTypes:
    - char_io*
    - void*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: do_hex_dump
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - io_ch
    linkageType: ''
    returnType: int
    signature: "int do_hex_dump(char_io *io_ch, void *arg, unsigned char *buf,\n                       int
      buflen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:271,1
    - Dst: do_hex_dump
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:275,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:282,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:283,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:284,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:288,1
    - Dst: do_hex_dump
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:289,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - lflags
    - io_ch
    - arg
    - str
    argTypes:
    - unsigned long
    - char_io*
    - void*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 294
    functionName: do_dump
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ASN1err
    - io_ch
    - i2d_ASN1_TYPE
    - do_hex_dump
    linkageType: ''
    returnType: int
    signature: "int do_dump(unsigned long lflags, char_io *io_ch, void *arg,\n                   const
      ASN1_STRING *str)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_tag2str
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:346,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:347,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:348,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:348,1
    - Dst: do_dump
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:372,1
    - Dst: do_buf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:391,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:399,1
    - Dst: do_buf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:401,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:403,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 4
    argNames:
    - io_ch
    - arg
    - lflags
    - str
    argTypes:
    - char_io*
    - void*
    - unsigned long
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 406
    functionName: do_print_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - do_buf
    - io_ch
    - ASN1_tag2str
    - strlen
    - do_dump
    linkageType: ''
    returnType: int
    signature: "int do_print_ex(char_io *io_ch, void *arg, unsigned long lflags,\n
      \                      const ASN1_STRING *str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - io_ch
    - arg
    - indent
    argTypes:
    - char_io*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 417
    functionName: do_indent
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - io_ch
    linkageType: ''
    returnType: int
    signature: int do_indent(char_io *io_ch, void *arg, int indent)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: do_indent
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:438,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:486,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:489,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:491,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:493,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:494,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:498,1
    - Dst: do_indent
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:501,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:506,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:507,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:508,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:509,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:513,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:519,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:522,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:528,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:529,1
    - Dst: do_indent
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:532,1
    - Dst: io_ch
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:536,1
    - Dst: do_print_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:550,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 107
    argCount: 5
    argNames:
    - io_ch
    - arg
    - n
    - indent
    - flags
    argTypes:
    - char_io*
    - void*
    - X509_NAME*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 422
    functionDepth: 5
    functionLinenumber: 422
    functionLinenumberEnd: 556
    functionName: do_name_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_object
    - OBJ_nid2sn
    - OBJ_nid2ln
    - io_ch
    - X509_NAME_entry_count
    - OBJ_obj2txt
    - do_indent
    - OBJ_obj2nid
    - X509_NAME_ENTRY_set
    - do_print_ex
    - X509_NAME_ENTRY_get_data
    - strlen
    linkageType: ''
    returnType: int
    signature: "int do_name_ex(char_io *io_ch, void *arg, const X509_NAME *n,\n                      int
      indent, unsigned long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_print
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:564,1
    - Dst: do_name_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - out
    - nm
    - indent
    - flags
    argTypes:
    - BIO*
    - X509_NAME*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 560
    functionDepth: 6
    functionLinenumber: 560
    functionLinenumberEnd: 566
    functionName: X509_NAME_print_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 7
    functionsReached:
    - do_name_ex
    - X509_NAME_print
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent,\n
      \                      unsigned long flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:575,1
    - Dst: X509_NAME_print
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:578,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:579,1
    - Dst: do_name_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - fp
    - nm
    - indent
    - flags
    argTypes:
    - FILE*
    - X509_NAME*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 569
    functionDepth: 6
    functionLinenumber: 569
    functionLinenumberEnd: 583
    functionName: X509_NAME_print_ex_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - do_name_ex
    - BIO_new_fp
    - BIO_free
    - X509_NAME_print
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent,\n
      \                         unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_print_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - str
    - flags
    argTypes:
    - BIO*
    - ASN1_STRING*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 5
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: ASN1_STRING_print_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 1
    functionsReached:
    - do_print_ex
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned
      long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_print_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - str
    - flags
    argTypes:
    - FILE*
    - ASN1_STRING*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 5
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: ASN1_STRING_print_ex_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - do_print_ex
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned
      long flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_mbstring_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_strex.c:620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - unsigned char**
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 626
    functionName: ASN1_STRING_to_UTF8
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
    functionUses: 2
    functionsReached:
    - ASN1_mbstring_copy
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: pkey_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int pkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                  void *exarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c:43,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c:46,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - priv
    - aobj
    - version
    - ptype
    - pval
    - penc
    - penclen
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - ASN1_OBJECT*
    - int
    - int
    - void*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: PKCS8_pkey_set0
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c
    functionUses: 4
    functionsReached:
    - X509_ALGOR_set0
    - ASN1_INTEGER_set
    - ASN1_STRING_set0
    linkageType: ''
    returnType: int
    signature: "int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj,\n
      \                   int version,\n                    int ptype, void *pval,
      unsigned char *penc, int penclen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c:60,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ppkalg
    - pk
    - ppklen
    - pa
    - p8
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - int*
    - X509_ALGOR**
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: PKCS8_pkey_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c
    functionUses: 5
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    linkageType: ''
    returnType: int
    signature: "int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg,\n                    const
      unsigned char **pk, int *ppklen,\n                    const X509_ALGOR **pa,
      const PKCS8_PRIV_KEY_INFO *p8)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p8
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: PKCS8_pkey_get0_attrs
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: 'STACK_OF *

      PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - p8
    - nid
    - type
    - bytes
    - len
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: PKCS8_pkey_add1_attr_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c
    functionUses: 1
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid,
      int type,\n                                const unsigned char *bytes, int len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:52,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:56,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:57,1
    - Dst: EVP_CIPHER_type
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:62,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:64,1
    - Dst: PBE2PARAM_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:69,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:76,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:77,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:82,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:84,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:84,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:85,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:85,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:89,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:94,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:96,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:97,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:101,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:107,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:111,1
    - Dst: pkcs5_scrypt_set
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:113,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:120,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:124,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:128,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:128,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:132,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:138,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:141,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:142,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:143,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 7
    argNames:
    - cipher
    - salt
    - saltlen
    - aiv
    - N
    - r
    - p
    argTypes:
    - EVP_CIPHER*
    - unsigned char*
    - int
    - unsigned char*
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 146
    functionName: PKCS5_pbe2_set_scrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - PBE2PARAM_free
    - EVP_CIPHER_type
    - ASN1_ITEM_rptr
    - ASN1_TYPE_pack_sequence
    - pkcs5_scrypt_set
    - X509_ALGOR_new
    - RAND_bytes
    - memcpy
    - EVP_CipherInit_ex
    - OBJ_nid2obj
    - ASN1err
    - EVP_CIPHER_CTX_new
    - X509_ALGOR_free
    - EVP_PBE_scrypt
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_param_to_asn1
    - EVP_CIPHER_key_length
    - PBE2PARAM_new
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher,\n                                  const
      unsigned char *salt, int saltlen,\n                                  unsigned
      char *aiv, uint64_t N, uint64_t r,\n                                  uint64_t
      p)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SCRYPT_PARAMS_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:153,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:162,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:165,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:168,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:171,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:174,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:180,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:183,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:189,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:193,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:197,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:197,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:201,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:205,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:207,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:208,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 6
    argNames:
    - salt
    - saltlen
    - keylen
    - N
    - r
    - p
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 210
    functionName: pkcs5_scrypt_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_set_int64
    - SCRYPT_PARAMS_new
    - ASN1_INTEGER_new
    - ASN1_STRING_set
    - ASN1_INTEGER_set_uint64
    - OBJ_nid2obj
    - X509_ALGOR_new
    - RAND_bytes
    - ASN1err
    - X509_ALGOR_free
    - SCRYPT_PARAMS_free
    - ASN1_ITEM_rptr
    - ASN1_TYPE_pack_sequence
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *pkcs5_scrypt_set(const unsigned char *salt, size_t saltlen,\n
      \                                   size_t keylen, uint64_t N, uint64_t r,\n
      \                                   uint64_t p)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:223,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:224,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:230,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:230,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:233,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:237,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:243,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:245,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:251,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:252,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:253,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:254,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:255,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:264,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:267,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:270,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c:271,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 273
    functionName: PKCS5_v2_scrypt_keyivgen
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_unpack_sequence
    - EVP_CIPHER_CTX_key_length
    - EVP_CIPHER_CTX_cipher
    - OPENSSL_cleanse
    - SCRYPT_PARAMS_free
    - EVPerr
    - EVP_PBE_scrypt
    - ASN1_ITEM_rptr
    - EVP_CipherInit_ex
    - ASN1_INTEGER_get_uint64
    linkageType: ''
    returnType: int
    signature: "int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass,\n
      \                            int passlen, ASN1_TYPE *param,\n                             const
      EVP_CIPHER *c, const EVP_MD *md, int en_de)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:28,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:29,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:35,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:35,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:36,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:40,1
    - Dst: d2i_RSAPublicKey
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:43,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:44,1
    - Dst: d2i_DSAPublicKey
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:52,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:53,1
    - Dst: o2i_ECPublicKey
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:60,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:61,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:67,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c:75,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 4
    argNames:
    - type
    - a
    - pp
    - length
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 77
    functionName: d2i_PublicKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c
    functionUses: 0
    functionsReached:
    - d2i_RSAPublicKey
    - ASN1err
    - EVP_PKEY_set_type
    - EVP_PKEY_id
    - d2i_DSAPublicKey
    - EVP_PKEY_new
    - EVP_PKEY_free
    - o2i_ECPublicKey
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char
      **pp,\n                        long length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - palg
    - pdigest
    argTypes:
    - X509_SIG*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: X509_SIG_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_sig.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg,\n
      \                  const ASN1_OCTET_STRING **pdigest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - palg
    - pdigest
    argTypes:
    - X509_SIG*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: X509_SIG_getm
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_sig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg,\n                   ASN1_OCTET_STRING
      **pdigest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_time_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tm
    - d
    argTypes:
    - struct tm*
    - ASN1_UTCTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: asn1_utctime_to_tm
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c
    functionUses: 0
    functionsReached:
    - asn1_time_to_tm
    linkageType: ''
    returnType: int
    signature: int asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_utctime_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - ASN1_UTCTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: ASN1_UTCTIME_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c
    functionUses: 1
    functionsReached:
    - asn1_utctime_to_tm
    linkageType: ''
    returnType: int
    signature: int ASN1_UTCTIME_check(const ASN1_UTCTIME *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:36,1
    - Dst: ASN1_UTCTIME_check
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:40,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_UTCTIME*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: ASN1_UTCTIME_set_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_copy
    - ASN1_UTCTIME_check
    - strlen
    linkageType: ''
    returnType: int
    signature: int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTCTIME_adj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_UTCTIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: ASN1_UTCTIME_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c
    functionUses: 0
    functionsReached:
    - ASN1_UTCTIME_adj
    linkageType: ''
    returnType: ASN1_UTCTIME
    signature: ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:60,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:65,1
    - Dst: asn1_time_from_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - s
    - t
    - offset_day
    - offset_sec
    argTypes:
    - ASN1_UTCTIME*
    - time_t
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: ASN1_UTCTIME_adj
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c
    functionUses: 2
    functionsReached:
    - OPENSSL_gmtime
    - asn1_time_from_tm
    - OPENSSL_gmtime_adj
    linkageType: ''
    returnType: ASN1_UTCTIME
    signature: "ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t,\n                               int
      offset_day, long offset_sec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: asn1_utctime_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:77,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:80,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_UTCTIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 91
    functionName: ASN1_UTCTIME_cmp_time_t
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_gmtime
    - asn1_utctime_to_tm
    - OPENSSL_gmtime_diff
    linkageType: ''
    returnType: int
    signature: int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - tm
    argTypes:
    - BIO*
    - ASN1_UTCTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: ASN1_UTCTIME_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c
    functionUses: 1
    functionsReached:
    - ASN1_TIME_print
    linkageType: ''
    returnType: int
    signature: int ASN1_UTCTIME_print(BIO *bp, const ASN1_UTCTIME *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: COPY_SIZE
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_SIZE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:61,1
    - Dst: COPY_SIZE
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: long_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - COPY_SIZE
    - memcpy
    linkageType: ''
    returnType: void
    signature: void long_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: num_bits_ulong
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_bits_ulong(unsigned long value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:96,1
    - Dst: COPY_SIZE
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:96,1
    - Dst: num_bits_ulong
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - pval
    - cont
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 130
    functionName: long_i2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - num_bits_ulong
    - COPY_SIZE
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int long_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,\n
      \                   const ASN1_ITEM *it)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:159,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:170,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:180,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:186,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:189,1
    - Dst: COPY_SIZE
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:189,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 191
    functionName: long_c2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - COPY_SIZE
    - ASN1err
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int long_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                   int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:198,1
    - Dst: COPY_SIZE
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:198,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/x_long.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: long_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - COPY_SIZE
    - memcpy
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int long_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                     int indent, const ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:31,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: uint64_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int uint64_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: uint64_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void uint64_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: uint64_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uint64_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:58,1
    - Dst: i2c_uint64_int
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - pval
    - cont
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: uint64_i2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - i2c_uint64_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int uint64_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,\n
      \                   const ASN1_ITEM *it)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uint64_new
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:80,1
    - Dst: c2i_uint64_int
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:94,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:97,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:102,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 112
    functionName: uint64_c2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ASN1err
    - c2i_uint64_int
    - uint64_new
    linkageType: ''
    returnType: int
    signature: "int uint64_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                   int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:118,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: uint64_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int uint64_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                       int indent, const ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:126,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: uint32_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int uint32_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: uint32_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void uint32_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: uint32_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uint32_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:153,1
    - Dst: i2c_uint64_int
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - pval
    - cont
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 166
    functionName: uint32_i2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - i2c_uint64_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int uint32_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,\n
      \                   const ASN1_ITEM *it)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: uint64_new
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:183,1
    - Dst: c2i_uint64_int
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:197,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:200,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:205,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:212,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:219,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 221
    functionName: uint32_c2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ASN1err
    - c2i_uint64_int
    - uint64_new
    linkageType: ''
    returnType: int
    signature: "int uint32_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                   int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:227,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/x_int64.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: uint32_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int uint32_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                       int indent, const ASN1_PCTX *pctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY_ASN1_METHOD**
    - EVP_PKEY_ASN1_METHOD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: ameth_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ameth_cmp(const EVP_PKEY_ASN1_METHOD *const *a,\n                     const
      EVP_PKEY_ASN1_METHOD *const *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:38,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_num
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: EVP_PKEY_asn1_get_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 2
    functionsReached:
    - OSSL_NELEM
    - sk_EVP_PKEY_ASN1_METHOD_num
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_asn1_get_count(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:46,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_value
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: EVP_PKEY_asn1_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 2
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_value
    - OSSL_NELEM
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_ASN1_METHOD_find
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:62,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_value
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:64,1
    - Dst: OBJ_bsearch_ameth
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:66,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: pkey_asn1_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_value
    - sk_EVP_PKEY_ASN1_METHOD_find
    - OSSL_NELEM
    - OBJ_bsearch_ameth
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *pkey_asn1_find(int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pkey_asn1_find
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:83,1
    - Dst: ENGINE_get_pkey_asn1_meth_engine
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:92,1
    - Dst: ENGINE_get_pkey_asn1_meth
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pe
    - type
    argTypes:
    - ENGINE**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 101
    functionName: EVP_PKEY_asn1_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 4
    functionsReached:
    - ENGINE_get_pkey_asn1_meth_engine
    - ENGINE_get_pkey_asn1_meth
    - pkey_asn1_find
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:110,1
    - Dst: ENGINE_pkey_asn1_find_str
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:114,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:119,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:121,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:128,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:129,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:132,1
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:133,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - pe
    - str
    - len
    argTypes:
    - ENGINE**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 137
    functionName: EVP_PKEY_asn1_find_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY_asn1_get0
    - EVP_PKEY_asn1_get_count
    - ENGINE_free
    - ENGINE_pkey_asn1_find_str
    - ENGINE_init
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe,\n                                                   const
      char *str, int len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:155,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_new
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:160,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_find
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:166,1
    - Dst: EVPerr
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:167,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_push
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:172,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_sort
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 176
    functionName: EVP_PKEY_asn1_add0
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_find
    - sk_EVP_PKEY_ASN1_METHOD_sort
    - sk_EVP_PKEY_ASN1_METHOD_push
    - sk_EVP_PKEY_ASN1_METHOD_new
    - EVPerr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_new
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:181,1
    - Dst: EVP_PKEY_asn1_add0
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:185,1
    - Dst: EVP_PKEY_asn1_free
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: EVP_PKEY_asn1_add_alias
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_asn1_new
    - EVP_PKEY_asn1_free
    - EVP_PKEY_asn1_add0
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_asn1_add_alias(int to, int from)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - ppkey_id
    - ppkey_base_id
    - ppkey_flags
    - pinfo
    - ppem_str
    - ameth
    argTypes:
    - int*
    - int*
    - int*
    - char**
    - char**
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: EVP_PKEY_asn1_get0_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *ppkey_base_id,\n                            int
      *ppkey_flags, const char **pinfo,\n                            const char **ppem_str,\n
      \                           const EVP_PKEY_ASN1_METHOD *ameth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: EVP_PKEY_get0_asn1
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:220,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:230,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:236,1
    - Dst: EVP_PKEY_asn1_free
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - id
    - flags
    - pem_str
    - info
    argTypes:
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 247
    functionName: EVP_PKEY_asn1_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strdup
    - EVP_PKEY_asn1_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags,\n                                        const
      char *pem_str, const char *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 285
    functionName: EVP_PKEY_asn1_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst,\n                        const
      EVP_PKEY_ASN1_METHOD *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:290,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:291,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: EVP_PKEY_asn1_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 315
    functionName: EVP_PKEY_asn1_set_public
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,\n                              int
      (*pub_decode) (EVP_PKEY *pk,\n                                                 X509_PUBKEY
      *pub),\n                              int (*pub_encode) (X509_PUBKEY *pub,\n
      \                                                const EVP_PKEY *pk),\n                              int
      (*pub_cmp) (const EVP_PKEY *a,\n                                              const
      EVP_PKEY *b),\n                              int (*pub_print) (BIO *out,\n                                                const
      EVP_PKEY *pkey,\n                                                int indent,
      ASN1_PCTX *pctx),\n                              int (*pkey_size) (const EVP_PKEY
      *pk),\n                              int (*pkey_bits) (const EVP_PKEY *pk))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: EVP_PKEY_asn1_set_private
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth,\n                               int
      (*priv_decode) (EVP_PKEY *pk,\n                                                   const
      PKCS8_PRIV_KEY_INFO\n                                                   *p8inf),\n
      \                              int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8,\n
      \                                                  const EVP_PKEY *pk),\n                               int
      (*priv_print) (BIO *out,\n                                                  const
      EVP_PKEY *pkey,\n                                                  int indent,\n
      \                                                 ASN1_PCTX *pctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 354
    functionName: EVP_PKEY_asn1_set_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth,\n                             int
      (*param_decode) (EVP_PKEY *pkey,\n                                                  const
      unsigned char **pder,\n                                                  int
      derlen),\n                             int (*param_encode) (const EVP_PKEY *pkey,\n
      \                                                 unsigned char **pder),\n                             int
      (*param_missing) (const EVP_PKEY *pk),\n                             int (*param_copy)
      (EVP_PKEY *to,\n                                                const EVP_PKEY
      *from),\n                             int (*param_cmp) (const EVP_PKEY *a,\n
      \                                              const EVP_PKEY *b),\n                             int
      (*param_print) (BIO *out,\n                                                 const
      EVP_PKEY *pkey,\n                                                 int indent,
      ASN1_PCTX *pctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: EVP_PKEY_asn1_set_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth,\n                            void
      (*pkey_free) (EVP_PKEY *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: EVP_PKEY_asn1_set_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth,\n                            int
      (*pkey_ctrl) (EVP_PKEY *pkey, int op,\n                                              long
      arg1, void *arg2))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: EVP_PKEY_asn1_set_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                    int (*pkey_security_bits) (const EVP_PKEY\n
      \                                                               *pk))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 392
    functionName: EVP_PKEY_asn1_set_item
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth,\n                            int
      (*item_verify) (EVP_MD_CTX *ctx,\n                                                const
      ASN1_ITEM *it,\n                                                void *asn,\n
      \                                               X509_ALGOR *a,\n                                                ASN1_BIT_STRING
      *sig,\n                                                EVP_PKEY *pkey),\n                            int
      (*item_sign) (EVP_MD_CTX *ctx,\n                                              const
      ASN1_ITEM *it,\n                                              void *asn,\n                                              X509_ALGOR
      *alg1,\n                                              X509_ALGOR *alg2,\n                                              ASN1_BIT_STRING
      *sig))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 400
    functionName: EVP_PKEY_asn1_set_siginf
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth,\n                              int
      (*siginf_set) (X509_SIG_INFO *siginf,\n                                                 const
      X509_ALGOR *alg,\n                                                 const ASN1_STRING
      *sig))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: EVP_PKEY_asn1_set_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth,\n                             int
      (*pkey_check) (const EVP_PKEY *pk))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: EVP_PKEY_asn1_set_public_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                   int (*pkey_pub_check) (const EVP_PKEY *pk))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: EVP_PKEY_asn1_set_param_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                  int (*pkey_param_check) (const EVP_PKEY *pk))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: EVP_PKEY_asn1_set_set_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                   int (*set_priv_key) (EVP_PKEY *pk,\n                                                         const
      unsigned char\n                                                            *priv,\n
      \                                                        size_t len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: EVP_PKEY_asn1_set_set_pub_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                  int (*set_pub_key) (EVP_PKEY *pk,\n                                                       const
      unsigned char *pub,\n                                                       size_t
      len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 443
    functionName: EVP_PKEY_asn1_set_get_priv_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                   int (*get_priv_key) (const EVP_PKEY *pk,\n
      \                                                        unsigned char *priv,\n
      \                                                        size_t *len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: EVP_PKEY_asn1_set_get_pub_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                  int (*get_pub_key) (const EVP_PKEY *pk,\n
      \                                                      unsigned char *pub,\n
      \                                                      size_t *len))"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:26,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:32,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:38,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:44,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 52
    functionName: i2a_ASN1_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/f_int.c
    functionUses: 3
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:63,1
    - Dst: ossl_isxdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:79,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:104,1
    - Dst: OPENSSL_clear_realloc
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:109,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:112,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:120,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:122,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:132,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:141,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 4
    argNames:
    - bp
    - bs
    - buf
    - size
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 143
    functionName: a2i_ASN1_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/f_int.c
    functionUses: 0
    functionsReached:
    - ossl_isxdigit
    - OPENSSL_free
    - ASN1err
    - OPENSSL_hexchar2int
    - BIO_gets
    - OPENSSL_clear_realloc
    linkageType: ''
    returnType: int
    signature: int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: i2a_ASN1_ENUMERATED
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/f_int.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: a2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/asn1/f_int.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - bp
    - bs
    - buf
    - size
    argTypes:
    - BIO*
    - ASN1_ENUMERATED*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: a2i_ASN1_ENUMERATED
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/f_int.c
    functionUses: 0
    functionsReached:
    - a2i_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int
      size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:27,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:29,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:36,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:40,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - bp
    - buf
    - buflen
    - indent
    argTypes:
    - BIO*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: ASN1_buf_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c
    functionUses: 2
    functionsReached:
    - BIO_puts
    - BIO_printf
    - BIO_write
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen,
      int indent)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:55,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:56,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:58,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:59,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:65,1
    - Dst: bn_get_words
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:66,1
    - Dst: bn_get_words
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:67,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:72,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:73,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:77,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:80,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:87,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c:91,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - bp
    - number
    - num
    - ign
    - indent
    argTypes:
    - BIO*
    - char*
    - BIGNUM*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 93
    functionName: ASN1_bn_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c
    functionUses: 4
    functionsReached:
    - OPENSSL_malloc
    - bn_get_words
    - BN_num_bytes
    - ASN1_buf_print
    - BN_bn2bin
    - BN_is_negative
    - BIO_printf
    - OPENSSL_clear_free
    - BIO_indent
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num,\n
      \                 unsigned char *ign, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: ASN1_GEN_STR
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_GEN_STR(str,val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_generate_v3
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:83,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:85,1
    - Dst: ASN1_generate_v3
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - nconf
    argTypes:
    - char*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: ASN1_generate_nconf
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - X509V3_set_nconf
    - ASN1_generate_v3
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_v3
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:92,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - cnf
    argTypes:
    - char*
    - X509V3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: ASN1_generate_v3
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ASN1err
    - generate_v3
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:120,1
    - Dst: asn1_multi
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:135,1
    - Dst: asn1_str2type
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:137,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:147,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:148,1
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:157,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:178,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:190,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:195,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:207,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:220,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:225,1
    - Dst: d2i_ASN1_TYPE
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:230,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:233,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:234,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 4
    argNames:
    - str
    - cnf
    - depth
    - perr
    argTypes:
    - char*
    - X509V3_CTX*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 238
    functionName: generate_v3
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 2
    functionsReached:
    - ASN1_get_object
    - ASN1_object_size
    - OPENSSL_malloc
    - CONF_parse_list
    - asn1_str2type
    - OPENSSL_free
    - ASN1_put_object
    - i2d_ASN1_TYPE
    - memcpy
    - asn1_multi
    - d2i_ASN1_TYPE
    - ASN1_TYPE_free
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "ASN1_TYPE *generate_v3(const char *str, X509V3_CTX *cnf, int depth,\n
      \                             int *perr)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: asn1_str2tag
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:263,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:266,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:267,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:277,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:288,1
    - Dst: parse_tagging
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:291,1
    - Dst: parse_tagging
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:297,1
    - Dst: append_exp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:299,1
    - Dst: append_exp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:304,1
    - Dst: append_exp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:309,1
    - Dst: append_exp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:314,1
    - Dst: append_exp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:319,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:325,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:328,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:330,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:332,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:334,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:337,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 3
    argNames:
    - elem
    - len
    - bitstr
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 346
    functionName: asn1_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 6
    functionsReached:
    - parse_tagging
    - asn1_str2tag
    - ERR_add_error_data
    - ASN1err
    - append_exp
    - strncmp
    linkageType: ''
    returnType: int
    signature: int asn1_cb(const char *elem, int len, void *bitstr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:355,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:360,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:391,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:392,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - vstart
    - vlen
    - ptag
    - pclass
    argTypes:
    - char*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 401
    functionName: parse_tagging
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - strtoul
    - ERR_add_error_data
    - ASN1err
    linkageType: ''
    returnType: int
    signature: int parse_tagging(const char *vstart, int vlen, int *ptag, int *pclass)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:409,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:410,1
    - Dst: sk_ASN1_TYPE_new_null
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:414,1
    - Dst: X509V3_get_section
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:420,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:423,1
    - Dst: generate_v3
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:425,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:425,1
    - Dst: sk_ASN1_TYPE_push
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:429,1
    - Dst: i2d_ASN1_SET_ANY
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:439,1
    - Dst: i2d_ASN1_SEQUENCE_ANY
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:441,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:445,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:447,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:458,1
    - Dst: sk_ASN1_TYPE_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:460,1
    - Dst: X509V3_section_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:461,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 5
    argNames:
    - utype
    - section
    - cnf
    - depth
    - perr
    argTypes:
    - int
    - char*
    - X509V3_CTX*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 464
    functionName: asn1_multi
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - i2d_ASN1_SEQUENCE_ANY
    - sk_ASN1_TYPE_new_null
    - sk_CONF_VALUE_num
    - X509V3_section_free
    - X509V3_get_section
    - OPENSSL_free
    - STACK_OF
    - sk_ASN1_TYPE_push
    - sk_ASN1_TYPE_pop_free
    - generate_v3
    - sk_CONF_VALUE_value
    - ASN1_STRING_type_new
    - i2d_ASN1_SET_ANY
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "ASN1_TYPE *asn1_multi(int utype, const char *section, X509V3_CTX *cnf,\n
      \                            int depth, int *perr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:472,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - arg
    - exp_tag
    - exp_class
    - exp_constructed
    - exp_pad
    - imp_ok
    argTypes:
    - tag_exp_arg*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 500
    functionName: append_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "int append_exp(tag_exp_arg *arg, int exp_tag, int exp_class,\n                      int
      exp_constructed, int exp_pad, int imp_ok)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:506,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:507,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:508,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:509,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:510,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:511,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:512,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:513,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:514,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:515,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:516,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:517,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:518,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:519,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:520,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:521,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:522,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:523,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:524,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:525,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:526,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:527,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:528,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:529,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:530,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:531,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:532,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:533,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:534,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:535,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:536,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:537,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:538,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:539,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:540,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:541,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:544,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:545,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:546,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:549,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:550,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:552,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:553,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:555,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:557,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:559,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:561,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:562,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:563,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:567,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:570,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - tagstr
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 576
    functionName: asn1_str2tag
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - strncmp
    - OSSL_NELEM
    - ASN1_GEN_STR
    - strlen
    linkageType: ''
    returnType: int
    signature: int asn1_str2tag(const char *tagstr, int len)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:586,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:587,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:598,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:605,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:611,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:612,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:620,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:624,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:625,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:632,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:635,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:636,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:644,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:647,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:648,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:651,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:652,1
    - Dst: ASN1_TIME_check
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:656,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:657,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:677,1
    - Dst: ASN1_mbstring_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:681,1
    - Dst: ASN1_tag2bit
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:682,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:683,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:691,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:692,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:697,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:698,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:705,1
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:708,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:710,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:716,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:729,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:737,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:740,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 152
    argCount: 3
    argNames:
    - str
    - format
    - utype
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 743
    functionName: asn1_str2type
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_STRING_set
    - CONF_parse_list
    - ASN1_mbstring_copy
    - ASN1err
    - ERR_add_error_data
    - ASN1_STRING_new
    - s2i_ASN1_INTEGER
    - OBJ_txt2obj
    - ASN1_TYPE_free
    - ASN1_TIME_check
    - OPENSSL_hexstr2buf
    - ASN1_tag2bit
    - X509V3_get_value_bool
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *asn1_str2type(const char *str, int format, int utype)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:751,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:755,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:758,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - elem
    - len
    - bitstr
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 763
    functionName: bitstr_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - strtoul
    - ASN1_BIT_STRING_set_bit
    - ASN1err
    linkageType: ''
    returnType: int
    signature: int bitstr_cb(const char *elem, int len, void *bitstr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:771,1
    - Dst: asn1_str2tag
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:775,1
    - Dst: ASN1_tag2bit
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:778,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - elem
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 783
    functionName: mask_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - asn1_str2tag
    - ASN1_tag2bit
    - strncmp
    linkageType: ''
    returnType: int
    signature: int mask_cb(const char *elem, int len, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - pmask
    argTypes:
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 789
    functionName: ASN1_str2mask
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: int ASN1_str2mask(const char *str, unsigned long *pmask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: bn_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: int
    signature: int bn_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: bn_secure_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_secure_new
    linkageType: ''
    returnType: int
    signature: int bn_secure_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:88,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: bn_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void bn_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:103,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:110,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - pval
    - cont
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: bn_i2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_num_bytes
    - BN_bn2bin
    linkageType: ''
    returnType: int
    signature: "int bn_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,\n
      \                 const ASN1_ITEM *it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_new
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:120,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:123,1
    - Dst: bn_free
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: bn_c2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - bn_free
    - BN_bin2bn
    - bn_new
    linkageType: ''
    returnType: int
    signature: "int bn_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                 int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_secure_new
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:136,1
    - Dst: bn_c2i
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:139,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: bn_secure_c2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - bn_c2i
    - BN_set_flags
    - bn_secure_new
    linkageType: ''
    returnType: int
    signature: "int bn_secure_c2i(ASN1_VALUE **pval, const unsigned char *cont, int
      len,\n                         int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:152,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: bn_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c
    functionUses: 4
    functionsReached:
    - BIO_puts
    - BN_print
    linkageType: ''
    returnType: int
    signature: "int bn_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                    int
      indent, const ASN1_PCTX *pctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_mbstring_ncopy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - len
    - inform
    - mask
    argTypes:
    - ASN1_STRING**
    - unsigned char*
    - int
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: ASN1_mbstring_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 3
    functionsReached:
    - ASN1_mbstring_ncopy
    linkageType: ''
    returnType: int
    signature: "int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in,
      int len,\n                       int inform, unsigned long mask)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:55,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:64,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:73,1
    - Dst: traverse_string
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:83,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:85,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:95,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:100,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:101,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:102,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:107,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:108,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:109,1
    - Dst: traverse_string
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:114,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:115,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:144,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:150,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:152,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:159,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:160,1
    - Dst: traverse_string
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:185,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:189,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:191,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:192,1
    - Dst: traverse_string
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:198,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 126
    argCount: 7
    argNames:
    - out
    - in
    - len
    - inform
    - mask
    - minsize
    - maxsize
    argTypes:
    - ASN1_STRING**
    - unsigned char*
    - int
    - int
    - unsigned long
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 200
    functionName: ASN1_mbstring_ncopy
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 2
    functionsReached:
    - BIO_snprintf
    - OPENSSL_malloc
    - ASN1_STRING_set
    - ASN1_STRING_free
    - OPENSSL_free
    - traverse_string
    - ERR_add_error_data
    - ASN1err
    - ASN1_STRING_type_new
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in,
      int len,\n                        int inform, unsigned long mask,\n                        long
      minsize, long maxsize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_getc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:228,1
    - Dst: rfunc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - p
    - len
    - inform
    - arg
    argTypes:
    - unsigned char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 241
    functionName: traverse_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 1
    functionsReached:
    - UTF8_getc
    - rfunc
    linkageType: ''
    returnType: int
    signature: "int traverse_string(const unsigned char *p, int len, int inform,\n
      \                          int (*rfunc) (unsigned long value, void *in),\n                           void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: in_utf8
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int in_utf8(unsigned long value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_putc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 263
    functionName: out_utf8
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached:
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: int out_utf8(unsigned long value, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_fromascii
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:273,1
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:275,1
    - Dst: ossl_isasn1print
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:278,1
    - Dst: ossl_isascii
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:280,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 290
    functionName: type_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 2
    functionsReached:
    - ossl_isascii
    - ossl_fromascii
    - ossl_isasn1print
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: int type_str(unsigned long value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: cpy_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpy_asc(unsigned long value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: cpy_bmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpy_bmp(unsigned long value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: cpy_univ
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpy_univ(unsigned long value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_putc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: cpy_utf8
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached:
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: int cpy_utf8(unsigned long value, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_time_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tm
    - d
    argTypes:
    - struct tm*
    - ASN1_GENERALIZEDTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: asn1_generalizedtime_to_tm
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c
    functionUses: 0
    functionsReached:
    - asn1_time_to_tm
    linkageType: ''
    returnType: int
    signature: int asn1_generalizedtime_to_tm(struct tm *tm, const ASN1_GENERALIZEDTIME
      *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_generalizedtime_to_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - ASN1_GENERALIZEDTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: ASN1_GENERALIZEDTIME_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c
    functionUses: 2
    functionsReached:
    - asn1_generalizedtime_to_tm
    linkageType: ''
    returnType: int
    signature: int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:39,1
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:43,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: ASN1_GENERALIZEDTIME_set_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c
    functionUses: 3
    functionsReached:
    - ASN1_STRING_copy
    - ASN1_GENERALIZEDTIME_check
    - strlen
    linkageType: ''
    returnType: int
    signature: int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const
      char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: ASN1_GENERALIZEDTIME_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_adj
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME
      *s,\n                                               time_t t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:65,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:70,1
    - Dst: asn1_time_from_tm
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - s
    - t
    - offset_day
    - offset_sec
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - time_t
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: ASN1_GENERALIZEDTIME_adj
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c
    functionUses: 2
    functionsReached:
    - OPENSSL_gmtime
    - asn1_time_from_tm
    - OPENSSL_gmtime_adj
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME
      *s,\n                                               time_t t, int offset_day,\n
      \                                              long offset_sec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - tm
    argTypes:
    - BIO*
    - ASN1_GENERALIZEDTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: ASN1_GENERALIZEDTIME_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c
    functionUses: 4
    functionsReached:
    - ASN1_TIME_print
    linkageType: ''
    returnType: int
    signature: int ASN1_GENERALIZEDTIME_print(BIO *bp, const ASN1_GENERALIZEDTIME
      *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:23,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:23,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:24,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:27,1
    - Dst: ASN1_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:28,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - i2d
    - out
    - x
    argTypes:
    - i2d_of_void*
    - FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: ASN1_i2d_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c
    functionUses: 1
    functionsReached:
    - ASN1_i2d_bio
    - ASN1err
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:40,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:44,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:46,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:51,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - i2d
    - out
    - x
    argTypes:
    - i2d_of_void*
    - BIO*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 66
    functionName: ASN1_i2d_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - BIO_write
    - OPENSSL_free
    - ASN1err
    - i2d
    linkageType: ''
    returnType: int
    signature: int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:76,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:76,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:77,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:80,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:81,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - it
    - out
    - x
    argTypes:
    - ASN1_ITEM*
    - FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: ASN1_item_i2d_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c
    functionUses: 7
    functionsReached:
    - ASN1_item_i2d_bio
    - ASN1err
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:92,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:94,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - it
    - out
    - x
    argTypes:
    - ASN1_ITEM*
    - BIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 111
    functionName: ASN1_item_i2d_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c
    functionUses: 10
    functionsReached:
    - ASN1_item_i2d
    - OPENSSL_free
    - BIO_write
    - ASN1err
    linkageType: ''
    returnType: int
    signature: int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: BIO_f_asn1
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_asn1(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:103,1
    - Dst: asn1_bio_init
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:108,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:111,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: asn1_bio_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - asn1_bio_init
    - BIO_set_init
    - OPENSSL_zalloc
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int asn1_bio_new(BIO *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:119,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - BIO_ASN1_BUF_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: asn1_bio_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: int
    signature: int asn1_bio_init(BIO_ASN1_BUF_CTX *ctx, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:137,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:142,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:143,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: asn1_bio_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - OPENSSL_free
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int asn1_bio_free(BIO *b)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:156,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:157,1
    - Dst: asn1_bio_setup_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:168,1
    - Dst: asn1_bio_flush_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:176,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:185,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:186,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:189,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:196,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:216,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:234,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:242,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:243,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 247
    functionName: asn1_bio_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_setup_ex
    - ASN1_object_size
    - BIO_write
    - asn1_bio_flush_ex
    - ASN1_put_object
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - ossl_assert
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int asn1_bio_write(BIO *b, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:257,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:257,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:265,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - b
    - ctx
    - cleanup
    - next
    argTypes:
    - BIO*
    - BIO_ASN1_BUF_CTX*
    - asn1_ps_func*
    - asn1_bio_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 272
    functionName: asn1_bio_flush_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - BIO_next
    - BIO_write
    - cleanup
    linkageType: ''
    returnType: int
    signature: "int asn1_bio_flush_ex(BIO *b, BIO_ASN1_BUF_CTX *ctx,\n                             asn1_ps_func
      *cleanup, asn1_bio_state_t next)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:279,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - b
    - ctx
    - setup
    - ex_state
    - other_state
    argTypes:
    - BIO*
    - BIO_ASN1_BUF_CTX*
    - asn1_ps_func*
    - asn1_bio_state_t
    - asn1_bio_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: asn1_bio_setup_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - setup
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: "int asn1_bio_setup_ex(BIO *b, BIO_ASN1_BUF_CTX *ctx,\n                             asn1_ps_func
      *setup,\n                             asn1_bio_state_t ex_state,\n                             asn1_bio_state_t
      other_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:292,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 296
    functionName: asn1_bio_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int asn1_bio_read(BIO *b, char *in, int inl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_write
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:300,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 5
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: asn1_bio_puts
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int asn1_bio_puts(BIO *b, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:305,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - str
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: asn1_bio_gets
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int asn1_bio_gets(BIO *b, char *str, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:313,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: asn1_bio_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long asn1_bio_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:326,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:329,1
    - Dst: asn1_bio_setup_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:370,1
    - Dst: asn1_bio_flush_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:376,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:383,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:385,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:392,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - b
    - cmd
    - arg1
    - arg2
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 319
    functionDepth: 5
    functionLinenumber: 319
    functionLinenumberEnd: 397
    functionName: asn1_bio_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_setup_ex
    - asn1_bio_flush_ex
    - BIO_ctrl
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: long asn1_bio_ctrl(BIO *b, int cmd, long arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - b
    - cmd
    - ex_func
    - ex_free_func
    argTypes:
    - BIO*
    - int
    - asn1_ps_func*
    - asn1_ps_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: asn1_bio_set_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: "int asn1_bio_set_ex(BIO *b, int cmd,\n                           asn1_ps_func
      *ex_func, asn1_ps_func *ex_free_func)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - b
    - cmd
    - ex_func
    - ex_free_func
    argTypes:
    - BIO*
    - int
    - asn1_ps_func**
    - asn1_ps_func**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 420
    functionName: asn1_bio_get_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: "int asn1_bio_get_ex(BIO *b, int cmd,\n                           asn1_ps_func
      **ex_func,\n                           asn1_ps_func **ex_free_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_set_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - prefix
    - prefix_free
    argTypes:
    - BIO*
    - asn1_ps_func*
    - asn1_ps_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: BIO_asn1_set_prefix
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - asn1_bio_set_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix,\n                        asn1_ps_func
      *prefix_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_get_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - pprefix
    - pprefix_free
    argTypes:
    - BIO*
    - asn1_ps_func**
    - asn1_ps_func**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 4
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: BIO_asn1_get_prefix
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_get_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix,\n                        asn1_ps_func
      **pprefix_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_set_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - suffix
    - suffix_free
    argTypes:
    - BIO*
    - asn1_ps_func*
    - asn1_ps_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: BIO_asn1_set_suffix
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - asn1_bio_set_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix,\n                        asn1_ps_func
      *suffix_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_get_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - psuffix
    - psuffix_free
    argTypes:
    - BIO*
    - asn1_ps_func**
    - asn1_ps_func**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: BIO_asn1_get_suffix
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_get_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix,\n                        asn1_ps_func
      **psuffix_free)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c:20,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c:22,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c:24,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c:25,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - out
    - bs
    - tbl
    - indent
    argTypes:
    - BIO*
    - ASN1_BIT_STRING*
    - BIT_STRING_BITNAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: ASN1_BIT_STRING_name_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_get_bit
    - BIO_puts
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs,\n                               BIT_STRING_BITNAME
      *tbl, int indent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_num_asc
      Src: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c:37,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - bs
    - name
    - value
    - tbl
    argTypes:
    - ASN1_BIT_STRING*
    - char*
    - int
    - BIT_STRING_BITNAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: ASN1_BIT_STRING_set_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_set_bit
    - ASN1_BIT_STRING_num_asc
    linkageType: ''
    returnType: int
    signature: "int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name,
      int value,\n                            BIT_STRING_BITNAME *tbl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c:51,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - name
    - tbl
    argTypes:
    - char*
    - BIT_STRING_BITNAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: ASN1_BIT_STRING_num_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:27,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:28,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:29,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:30,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:31,1
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:32,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:34,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:36,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:37,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:41,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:42,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:43,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:44,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:50,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:51,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/t_spki.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - out
    - spki
    argTypes:
    - BIO*
    - NETSCAPE_SPKI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 56
    functionName: NETSCAPE_SPKI_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/t_spki.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - BIO_write
    - EVP_PKEY_free
    - X509_PUBKEY_get0_param
    - EVP_PKEY_print_public
    - X509_PUBKEY_get
    - BIO_printf
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:29,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:35,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:38,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:39,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:39,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:41,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:46,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:50,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:52,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:55,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:57,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:62,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:63,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:64,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:66,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:69,1
    - Dst: EVP_VerifyFinal
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:74,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:76,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:82,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 5
    argNames:
    - i2d
    - a
    - signature
    - data
    - pkey
    argTypes:
    - i2d_of_void*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - char*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 84
    functionName: ASN1_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_verify.c
    functionUses: 0
    functionsReached:
    - EVP_VerifyInit_ex
    - OBJ_nid2sn
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - EVP_get_digestbyname
    - EVP_VerifyUpdate
    - ASN1err
    - i2d
    - EVP_MD_CTX_free
    - EVP_VerifyFinal
    - OBJ_obj2nid
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *a, ASN1_BIT_STRING *signature,\n
      \               char *data, EVP_PKEY *pkey)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:98,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:103,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:107,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:109,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:114,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:114,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:115,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:120,1
    - Dst: EVP_PKEY*::ameth::item_verify
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:124,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:134,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:137,1
    - Dst: EVP_PKEY_type
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:143,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:144,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:148,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:149,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:156,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:158,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:162,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:167,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:170,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:175,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_verify.c:176,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 5
    argNames:
    - it
    - a
    - signature
    - asn
    - pkey
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 178
    functionName: ASN1_item_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_verify.c
    functionUses: 4
    functionsReached:
    - EVP_get_digestbynid
    - EVP_MD_CTX_new
    - EVP_PKEY_type
    - ASN1err
    - OBJ_find_sigid_algs
    - EVP_PKEY*::ameth::item_verify
    - EVP_DigestVerify
    - EVP_MD_CTX_free
    - ASN1_item_i2d
    - OBJ_obj2nid
    - OPENSSL_clear_free
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,\n                     ASN1_BIT_STRING
      *signature, void *asn, EVP_PKEY *pkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:24,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:27,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:28,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:29,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:32,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:33,1
    - Dst: do_tcreate
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:34,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 40
    functionName: stbl_module_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c
    functionUses: 0
    functionsReached:
    - NCONF_get_section
    - sk_CONF_VALUE_num
    - CONF_imodule_get_value
    - ASN1err
    - STACK_OF
    - do_tcreate
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int stbl_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_TABLE_cleanup
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: stbl_module_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_TABLE_cleanup
    linkageType: ''
    returnType: void
    signature: void stbl_module_finish(CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: ASN1_add_stable_module
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: void ASN1_add_stable_module(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:63,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:65,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:67,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:70,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:73,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:74,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:75,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:76,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:79,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:80,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:83,1
    - Dst: ASN1_str2mask
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:84,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:86,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:87,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:89,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:99,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:101,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:104,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:106,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:109,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c:111,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 2
    argNames:
    - value
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 113
    functionName: do_tcreate
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_TABLE_add
    - sk_CONF_VALUE_num
    - strcmp
    - OBJ_sn2nid
    - X509V3_parse_list
    - STACK_OF
    - ASN1err
    - ASN1_str2mask
    - ERR_add_error_data
    - strtoul
    - OBJ_ln2nid
    - sk_CONF_VALUE_value
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: int
    signature: int do_tcreate(const char *value, const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c:21,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c:22,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c:29,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c:32,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c:33,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c:37,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c:47,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - obj
    - it
    - oct
    argTypes:
    - void*
    - ASN1_ITEM*
    - ASN1_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 49
    functionName: ASN1_item_pack
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c
    functionUses: 6
    functionsReached:
    - ASN1_STRING_free
    - OPENSSL_free
    - ASN1err
    - ASN1_STRING_new
    - ASN1_item_i2d
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_STRING
      **oct)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c:59,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - oct
    - it
    argTypes:
    - ASN1_STRING*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: ASN1_item_unpack
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c
    functionUses: 6
    functionsReached:
    - ASN1_item_d2i
    - ASN1err
    linkageType: ''
    returnType: void
    signature: void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:27,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:30,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:31,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:32,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:35,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:36,1
    - Dst: do_create
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:37,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: oid_module_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c
    functionUses: 0
    functionsReached:
    - NCONF_get_section
    - sk_CONF_VALUE_num
    - CONF_imodule_get_value
    - do_create
    - ASN1err
    - STACK_OF
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int oid_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: oid_module_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oid_module_finish(CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: ASN1_add_oid_module
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: void ASN1_add_oid_module(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:66,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:75,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:77,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:80,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:86,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:87,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:90,1
    - Dst: OBJ_create
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:95,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - value
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 100
    functionName: do_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c
    functionUses: 1
    functionsReached:
    - OBJ_create
    - strrchr
    - OPENSSL_malloc
    - ossl_isspace
    - OPENSSL_free
    - ASN1err
    - memcpy
    linkageType: ''
    returnType: int
    signature: int do_create(const char *value, const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::old_priv_encode
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pr.c:20,1
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pr.c:23,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pr.c:26,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pr.c:27,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/i2d_pr.c:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: i2d_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/i2d_pr.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY2PKCS8
    - ASN1err
    - PKCS8_PRIV_KEY_INFO_free
    - i2d_PKCS8_PRIV_KEY_INFO
    - EVP_PKEY*::ameth::old_priv_encode
    linkageType: ''
    returnType: int
    signature: int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/asn1/nsseq.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: nsseq_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/nsseq.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "int nsseq_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                   void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_flags_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - out
    - it
    argTypes:
    - ASN1_VALUE*
    - unsigned char**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: ASN1_item_ndef_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
    functionUses: 2
    functionsReached:
    - asn1_item_flags_i2d
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out,\n                       const
      ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_flags_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - out
    - it
    argTypes:
    - ASN1_VALUE*
    - unsigned char**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: ASN1_item_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
    functionUses: 11
    functionsReached:
    - asn1_item_flags_i2d
    linkageType: ''
    returnType: int
    signature: int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM
      *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:61,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:64,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:65,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:69,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - val
    - out
    - it
    - flags
    argTypes:
    - ASN1_VALUE*
    - unsigned char**
    - ASN1_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 75
    functionName: asn1_item_flags_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - ASN1err
    - ASN1_item_ex_i2d
    linkageType: ''
    returnType: int
    signature: "int asn1_item_flags_i2d(ASN1_VALUE *val, unsigned char **out,\n                               const
      ASN1_ITEM *it, int flags)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: asn1_template_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:101,1
    - Dst: asn1_i2d_ex_primitive
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:103,1
    - Dst: asn1_i2d_ex_primitive
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:106,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:109,1
    - Dst: asn1_get_choice_selector
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:111,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:116,1
    - Dst: asn1_template_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:117,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:120,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:127,1
    - Dst: asn1_enc_restore
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:136,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:152,1
    - Dst: asn1_do_adb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:159,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:162,1
    - Dst: asn1_template_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:163,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:169,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:173,1
    - Dst: asn1_do_adb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:177,1
    - Dst: asn1_get_field_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:180,1
    - Dst: asn1_template_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:182,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:185,1
    - Dst: asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:186,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 5
    argNames:
    - pval
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 195
    functionName: ASN1_item_ex_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
    functionUses: 2
    functionsReached:
    - ASN1_object_size
    - asn1_get_choice_selector
    - ASN1_EXTERN_FUNCS*::asn1_ex_i2d
    - ASN1_put_eoc
    - asn1_cb
    - ASN1_put_object
    - asn1_i2d_ex_primitive
    - asn1_enc_restore
    - asn1_template_ex_i2d
    - asn1_get_field_ptr
    - asn1_do_adb
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out,\n                     const
      ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:253,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:253,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:286,1
    - Dst: sk_ASN1_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:288,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:289,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:289,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:295,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:300,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:310,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:312,1
    - Dst: asn1_set_seq_out
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:314,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:314,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:317,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:319,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:328,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:328,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:332,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:335,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:336,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:336,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:338,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:344,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:344,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 83
    argCount: 5
    argNames:
    - pval
    - out
    - tt
    - tag
    - iclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_TEMPLATE*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 197
    functionDepth: 4
    functionLinenumber: 197
    functionLinenumberEnd: 347
    functionName: asn1_template_ex_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
    functionUses: 1
    functionsReached:
    - ASN1_object_size
    - ASN1_ITEM_ptr
    - asn1_set_seq_out
    - ASN1_put_eoc
    - sk_ASN1_VALUE_num
    - STACK_OF
    - sk_ASN1_VALUE_value
    - ASN1_put_object
    - ASN1_item_ex_i2d
    linkageType: ''
    returnType: int
    signature: "int asn1_template_ex_i2d(ASN1_VALUE **pval, unsigned char **out,\n
      \                               const ASN1_TEMPLATE *tt, int tag, int iclass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 366
    functionName: der_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int der_cmp(const void *a, const void *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: asn1_ex_i2c
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:445,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:476,1
    - Dst: asn1_ex_i2c
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:477,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:479,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:485,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - pval
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 487
    functionName: asn1_i2d_ex_primitive
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
    functionUses: 1
    functionsReached:
    - asn1_ex_i2c
    - ASN1_object_size
    - ASN1_put_eoc
    - ASN1_put_object
    linkageType: ''
    returnType: int
    signature: "int asn1_i2d_ex_primitive(ASN1_VALUE **pval, unsigned char **out,\n
      \                                const ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_i2c
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:504,1
    - Dst: i2c_ASN1_BIT_STRING
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:561,1
    - Dst: i2c_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:569,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c:607,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 4
    argNames:
    - pval
    - cout
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 609
    functionName: asn1_ex_i2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
    functionUses: 1
    functionsReached:
    - i2c_ASN1_INTEGER
    - memcpy
    - ASN1_PRIMITIVE_FUNCS*::prim_i2c
    - i2c_ASN1_BIT_STRING
    linkageType: ''
    returnType: int
    signature: "int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cout, int *putype,\n
      \                      const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/asn1/a_octet.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ASN1_OCTET_STRING_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_octet.c
    functionUses: 4
    functionsReached:
    - ASN1_STRING_dup
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_octet.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OCTET_STRING*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: ASN1_OCTET_STRING_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_octet.c
    functionUses: 8
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: "int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a,\n                          const
      ASN1_OCTET_STRING *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_octet.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - d
    - len
    argTypes:
    - ASN1_OCTET_STRING*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: ASN1_OCTET_STRING_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_octet.c
    functionUses: 16
    functionsReached:
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *x, const unsigned char
      *d,\n                          int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: _asn1_check_infinite_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _asn1_check_infinite_end(const unsigned char **p, long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asn1_check_infinite_end
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ASN1_check_infinite_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached:
    - _asn1_check_infinite_end
    linkageType: ''
    returnType: int
    signature: int ASN1_check_infinite_end(unsigned char **p, long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asn1_check_infinite_end
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: ASN1_const_check_infinite_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached:
    - _asn1_check_infinite_end
    linkageType: ''
    returnType: int
    signature: int ASN1_const_check_infinite_end(const unsigned char **p, long len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_length
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:84,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:91,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:101,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 5
    argNames:
    - pp
    - plength
    - ptag
    - pclass
    - omax
    argTypes:
    - unsigned char**
    - long*
    - int*
    - int*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 103
    functionName: ASN1_get_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 6
    functionsReached:
    - ASN1err
    - asn1_get_length
    linkageType: ''
    returnType: int
    signature: "int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag,\n
      \                   int *pclass, long omax)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - pp
    - inf
    - rl
    - max
    argTypes:
    - unsigned char**
    - int*
    - long*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 150
    functionName: asn1_get_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int asn1_get_length(const unsigned char **pp, int *inf, long *rl,\n
      \                          long max)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_length
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - pp
    - constructed
    - length
    - tag
    - xclass
    argTypes:
    - unsigned char**
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 183
    functionName: ASN1_put_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 6
    functionsReached:
    - asn1_put_length
    linkageType: ''
    returnType: void
    signature: "void ASN1_put_object(unsigned char **pp, int constructed, int length,
      int tag,\n                     int xclass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pp
    argTypes:
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: ASN1_put_eoc
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_put_eoc(unsigned char **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pp
    - length
    argTypes:
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 213
    functionName: asn1_put_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void asn1_put_length(unsigned char **pp, int length)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - constructed
    - length
    - tag
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 241
    functionName: ASN1_object_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_object_size(int constructed, int length, int tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - str
    argTypes:
    - ASN1_STRING*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: ASN1_STRING_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 10
    functionsReached:
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:261,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:264,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 269
    functionName: ASN1_STRING_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 5
    functionsReached:
    - ASN1_STRING_copy
    - ASN1_STRING_free
    - ASN1_STRING_new
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:280,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:290,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:295,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:297,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - str
    - _data
    - len_in
    argTypes:
    - ASN1_STRING*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 309
    functionName: ASN1_STRING_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 15
    functionsReached:
    - memcpy
    - OPENSSL_realloc
    - ASN1err
    - strlen
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - str
    - data
    - len
    argTypes:
    - ASN1_STRING*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: ASN1_STRING_set0
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 14
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: ASN1_STRING_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 11
    functionsReached:
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *ASN1_STRING_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:327,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 334
    functionName: ASN1_STRING_type_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 6
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *ASN1_STRING_type_new(int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:341,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - embed
    argTypes:
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: asn1_string_embed_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void asn1_string_embed_free(ASN1_STRING *a, int embed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_embed_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: ASN1_STRING_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 13
    functionsReached:
    - asn1_string_embed_free
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_free(ASN1_STRING *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:358,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: ASN1_STRING_clear_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 5
    functionsReached:
    - ASN1_STRING_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_clear_free(ASN1_STRING *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_STRING*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 375
    functionName: ASN1_STRING_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 5
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: ASN1_STRING_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_length(const ASN1_STRING *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: ASN1_STRING_length_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_length_set(ASN1_STRING *x, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: ASN1_STRING_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_type(const ASN1_STRING *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: ASN1_STRING_get0_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: ASN1_STRING_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ASN1_STRING_data(ASN1_STRING *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_NDEF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:73,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:75,1
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:78,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:79,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:82,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:83,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - out
    - val
    - in
    - flags
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: i2d_ASN1_bio_stream
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - ASN1_item_i2d_bio
    - BIO_new_NDEF
    - BIO_pop
    - ASN1err
    - SMIME_crlf_copy
    - BIO_free
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: "int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags,\n
      \                       const ASN1_ITEM *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:103,1
    - Dst: BIO_f_base64
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:103,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:105,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:111,1
    - Dst: i2d_ASN1_bio_stream
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:112,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:113,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:114,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - out
    - val
    - in
    - flags
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 6
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: B64_write_ASN1
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - BIO_pop
    - ASN1err
    - BIO_f_base64
    - BIO_free
    - BIO_push
    - i2d_ASN1_bio_stream
    - BIO_flush
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int B64_write_ASN1(BIO *out, ASN1_VALUE *val, BIO *in, int flags,\n
      \                         const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:125,1
    - Dst: B64_write_ASN1
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:126,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - out
    - val
    - in
    - flags
    - hdr
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 7
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: PEM_write_bio_ASN1_stream
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - B64_write_ASN1
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in,
      int flags,\n                              const char *hdr, const ASN1_ITEM *it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:136,1
    - Dst: BIO_f_base64
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:136,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:137,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:140,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:141,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:143,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:144,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:145,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - bio
    - it
    argTypes:
    - BIO*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 148
    functionName: b64_read_asn1
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - BIO_pop
    - ASN1err
    - BIO_f_base64
    - ASN1_item_d2i_bio
    - BIO_free
    - BIO_push
    - BIO_flush
    - BIO_new
    linkageType: ''
    returnType: ASN1_VALUE
    signature: ASN1_VALUE *b64_read_asn1(BIO *bio, const ASN1_ITEM *it)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:250,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:261,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:262,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:263,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:264,1
    - Dst: asn1_write_micalg
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:265,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:266,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:268,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:271,1
    - Dst: asn1_output_data
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:272,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:274,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:278,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:279,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:280,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:281,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:282,1
    - Dst: B64_write_ASN1
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:283,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:284,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:296,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:305,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:306,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:307,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:308,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:310,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:311,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:312,1
    - Dst: B64_write_ASN1
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:314,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:316,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 8
    argNames:
    - bio
    - val
    - data
    - flags
    - ctype_nid
    - econt_nid
    - mdalgs
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - int
    - int
    - STACK_OF*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 230
    functionDepth: 7
    functionLinenumber: 230
    functionLinenumberEnd: 318
    functionName: SMIME_write_ASN1
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - B64_write_ASN1
    - sk_X509_ALGOR_num
    - RAND_bytes
    - asn1_output_data
    - asn1_write_micalg
    - BIO_puts
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags,\n
      \                    int ctype_nid, int econt_nid,\n                     STACK_OF(X509_ALGOR)
      *mdalgs, const ASN1_ITEM *it)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:335,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:340,1
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:350,1
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:354,1
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:357,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:363,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - out
    - data
    - val
    - flags
    - it
    argTypes:
    - BIO*
    - BIO*
    - ASN1_VALUE*
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 370
    functionName: asn1_output_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_pop
    - ASN1err
    - BIO_free
    - ASN1_AUX*::asn1_cb
    - SMIME_crlf_copy
    linkageType: ''
    returnType: int
    signature: "int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,\n
      \                           const ASN1_ITEM *it)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:381,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:382,1
    - Dst: mime_parse_hdr
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:391,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:392,1
    - Dst: mime_hdr_find
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:396,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:398,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:399,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:405,1
    - Dst: mime_param_find
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:407,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:409,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:410,1
    - Dst: multi_split
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:413,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:414,1
    - Dst: sk_BIO_num
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:415,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:416,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:417,1
    - Dst: sk_BIO_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:422,1
    - Dst: mime_parse_hdr
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:424,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:425,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:426,1
    - Dst: mime_hdr_find
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:432,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:434,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:435,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:436,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:440,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:441,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:442,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:443,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:444,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:445,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:448,1
    - Dst: b64_read_asn1
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:450,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:451,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:452,1
    - Dst: sk_BIO_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:457,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:458,1
    - Dst: sk_BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:459,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:461,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:467,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:468,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:469,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:470,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:471,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:475,1
    - Dst: b64_read_asn1
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:477,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:478,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 3
    argNames:
    - bio
    - bcont
    - it
    argTypes:
    - BIO*
    - BIO**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 378
    functionDepth: 5
    functionLinenumber: 378
    functionLinenumberEnd: 483
    functionName: SMIME_read_ASN1
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - sk_BIO_num
    - mime_hdr_find
    - strcmp
    - sk_MIME_HEADER_pop_free
    - ASN1err
    - STACK_OF
    - mime_parse_hdr
    - mime_param_find
    - multi_split
    - sk_BIO_pop_free
    - ERR_add_error_data
    - sk_BIO_free
    - b64_read_asn1
    - BIO_free
    - sk_BIO_value
    linkageType: ''
    returnType: ASN1_VALUE
    signature: ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM
      *it)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:496,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:496,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:499,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:501,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:502,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:506,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:507,1
    - Dst: strip_eol
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:508,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:514,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:517,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:519,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:523,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:526,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:527,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:528,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - in
    - out
    - flags
    argTypes:
    - BIO*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 530
    functionName: SMIME_crlf_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 3
    functionsReached:
    - BIO_write
    - BIO_pop
    - BIO_new
    - BIO_printf
    - strip_eol
    - BIO_f_buffer
    - BIO_free
    - BIO_push
    - BIO_gets
    - BIO_flush
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int SMIME_crlf_copy(BIO *in, BIO *out, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:537,1
    - Dst: mime_parse_hdr
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:540,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:541,1
    - Dst: mime_hdr_find
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:544,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:546,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:547,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:550,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:551,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:552,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:553,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:556,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:557,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 562
    functionName: SMIME_text
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - mime_hdr_find
    - strcmp
    - sk_MIME_HEADER_pop_free
    - ASN1err
    - STACK_OF
    - mime_parse_hdr
    - ERR_add_error_data
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int SMIME_text(BIO *in, BIO *out)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:575,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:578,1
    - Dst: sk_BIO_new_null
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:582,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:586,1
    - Dst: mime_bound_check
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:587,1
    - Dst: sk_BIO_push
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:592,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:593,1
    - Dst: strip_eol
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:599,1
    - Dst: sk_BIO_push
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:603,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:604,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:607,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:607,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:610,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:612,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:615,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:618,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - bio
    - bound
    - ret
    argTypes:
    - BIO*
    - char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 569
    functionDepth: 4
    functionLinenumber: 569
    functionLinenumberEnd: 620
    functionName: multi_split
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - sk_BIO_new_null
    - BIO_set_mem_eof_return
    - STACK_OF
    - sk_BIO_push
    - strip_eol
    - BIO_s_mem
    - BIO_free
    - mime_bound_check
    - BIO_gets
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int multi_split(BIO *bio, const char *bound, STACK_OF(BIO) **ret)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:638,1
    - Dst: sk_MIME_HEADER_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:641,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:644,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:646,1
    - Dst: strip_ends
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:665,1
    - Dst: mime_debug
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:672,1
    - Dst: mime_hdr_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:674,1
    - Dst: strip_ends
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:674,1
    - Dst: sk_MIME_HEADER_push
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:677,1
    - Dst: strip_ends
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:700,1
    - Dst: mime_hdr_addparam
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:709,1
    - Dst: strip_ends
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:709,1
    - Dst: mime_debug
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:713,1
    - Dst: mime_debug
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:723,1
    - Dst: mime_hdr_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:731,1
    - Dst: strip_ends
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:731,1
    - Dst: sk_MIME_HEADER_push
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:734,1
    - Dst: mime_hdr_addparam
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:739,1
    - Dst: strip_ends
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:739,1
    - Dst: mime_hdr_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:747,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:748,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 102
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 750
    functionName: mime_parse_hdr
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 2
    functionsReached:
    - ossl_isspace
    - mime_hdr_new
    - sk_MIME_HEADER_push
    - strip_ends
    - STACK_OF
    - mime_hdr_addparam
    - sk_MIME_HEADER_pop_free
    - sk_MIME_HEADER_new
    - mime_hdr_free
    - mime_debug
    - BIO_gets
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *mime_parse_hdr(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strip_end
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:754,1
    - Dst: strip_start
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 755
    functionName: strip_ends
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - strip_start
    - strip_end
    linkageType: ''
    returnType: char
    signature: char *strip_ends(char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 774
    functionName: strip_start
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - ossl_isspace
    linkageType: ''
    returnType: char
    signature: char *strip_start(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:783,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 797
    functionName: strip_end
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - ossl_isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strip_end(char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:805,1
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:808,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:811,1
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:814,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:816,1
    - Dst: sk_MIME_PARAM_new
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:821,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:826,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:827,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:828,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 830
    functionName: mime_hdr_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - ossl_tolower
    - OPENSSL_malloc
    - OPENSSL_free
    - OPENSSL_strdup
    - sk_MIME_PARAM_new
    linkageType: ''
    returnType: MIME_HEADER
    signature: MIME_HEADER *mime_hdr_new(const char *name, const char *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:838,1
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:842,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:845,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:850,1
    - Dst: sk_MIME_PARAM_push
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:855,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:859,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:860,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:861,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - mhdr
    - name
    - value
    argTypes:
    - MIME_HEADER*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 863
    functionName: mime_hdr_addparam
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - ossl_tolower
    - OPENSSL_malloc
    - sk_MIME_PARAM_push
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: int mime_hdr_addparam(MIME_HEADER *mhdr, const char *name, const char
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - MIME_HEADER**
    - MIME_HEADER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 872
    functionName: mime_hdr_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int mime_hdr_cmp(const MIME_HEADER *const *a,\n                        const
      MIME_HEADER *const *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - MIME_PARAM**
    - MIME_PARAM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 880
    functionName: mime_param_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int mime_param_cmp(const MIME_PARAM *const *a,\n                          const
      MIME_PARAM *const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_MIME_HEADER_find
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:893,1
    - Dst: sk_MIME_HEADER_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - hdrs
    - name
    argTypes:
    - STACK_OF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 895
    functionName: mime_hdr_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 2
    functionsReached:
    - sk_MIME_HEADER_find
    - sk_MIME_HEADER_value
    linkageType: ''
    returnType: MIME_HEADER
    signature: MIME_HEADER *mime_hdr_find(STACK_OF(MIME_HEADER) *hdrs, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_MIME_PARAM_find
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:904,1
    - Dst: sk_MIME_PARAM_value
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hdr
    - name
    argTypes:
    - MIME_HEADER*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 906
    functionName: mime_param_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - sk_MIME_PARAM_find
    - sk_MIME_PARAM_value
    linkageType: ''
    returnType: MIME_PARAM
    signature: MIME_PARAM *mime_param_find(MIME_HEADER *hdr, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:912,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:913,1
    - Dst: sk_MIME_PARAM_pop_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:915,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - MIME_HEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 917
    functionName: mime_hdr_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - sk_MIME_PARAM_pop_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void mime_hdr_free(MIME_HEADER *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:921,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:922,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - param
    argTypes:
    - MIME_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 924
    functionName: mime_param_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void mime_param_free(MIME_PARAM *param)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:935,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:937,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:942,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:943,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c:944,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - line
    - linelen
    - bound
    - blen
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 950
    functionName: mime_bound_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int mime_bound_check(char *line, int linelen, const char *bound, int
      blen)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - linebuf
    - plen
    - flags
    argTypes:
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 971
    functionName: strip_eol
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strip_eol(char *linebuf, int *plen, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: IMPLEMENT_ASN1_STRING_FUNCTIONS
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/tasn_typ.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_STRING_FUNCTIONS(sname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - d
    - len
    argTypes:
    - ASN1_BIT_STRING*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: ASN1_BIT_STRING_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: int ASN1_BIT_STRING_set(ASN1_BIT_STRING *x, unsigned char *d, int len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:71,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ASN1_BIT_STRING*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 77
    functionName: i2c_ASN1_BIT_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:98,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:117,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:129,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:137,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:139,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - a
    - pp
    - len
    argTypes:
    - ASN1_BIT_STRING**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 141
    functionName: c2i_ASN1_BIT_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ASN1_BIT_STRING_free
    - OPENSSL_free
    - ASN1err
    - ASN1_BIT_STRING_new
    - memcpy
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: "ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,\n                                     const
      unsigned char **pp, long len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_realloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:165,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:167,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - a
    - n
    - value
    argTypes:
    - ASN1_BIT_STRING*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 179
    functionName: ASN1_BIT_STRING_set_bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c
    functionUses: 2
    functionsReached:
    - memset
    - ASN1err
    - OPENSSL_clear_realloc
    linkageType: ''
    returnType: int
    signature: int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - ASN1_BIT_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 190
    functionName: ASN1_BIT_STRING_get_bit
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - a
    - flags
    - flags_len
    argTypes:
    - ASN1_BIT_STRING*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: ASN1_BIT_STRING_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a,\n                          const
      unsigned char *flags, int flags_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_err.c:344,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_err.c:345,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/asn1/asn1_err.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 350
    functionName: ERR_load_ASN1_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/asn1_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_ASN1_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ASN1_INTEGER_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_dup
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - ASN1_INTEGER*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: ASN1_INTEGER_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 6
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - dst
    - src
    - len
    - pad
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: twos_complement
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void twos_complement(unsigned char *dst, const unsigned char *src,\n
      \                           size_t len, unsigned char pad)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: twos_complement
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:136,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - b
    - blen
    - neg
    - pp
    argTypes:
    - unsigned char*
    - size_t
    - int
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 140
    functionName: i2c_ibuf
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - twos_complement
    linkageType: ''
    returnType: size_t
    signature: "size_t i2c_ibuf(const unsigned char *b, size_t blen, int neg,\n                       unsigned
      char **pp)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:154,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:187,1
    - Dst: twos_complement
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:196,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - b
    - pneg
    - p
    - plen
    argTypes:
    - unsigned char*
    - int*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 199
    functionName: c2i_ibuf
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - twos_complement
    - ASN1err
    linkageType: ''
    returnType: size_t
    signature: "size_t c2i_ibuf(unsigned char *b, int *pneg,\n                       const
      unsigned char *p, size_t plen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2c_ibuf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ASN1_INTEGER*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: i2c_ASN1_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - i2c_ibuf
    linkageType: ''
    returnType: int
    signature: int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pr
    - b
    - blen
    argTypes:
    - uint64_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 224
    functionName: asn1_get_uint64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1err
    linkageType: ''
    returnType: int
    signature: int asn1_get_uint64(uint64_t *pr, const unsigned char *b, size_t blen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - r
    argTypes:
    - unsigned char[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: asn1_put_uint64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t asn1_put_uint64(unsigned char b[sizeof(uint64_t)], uint64_t
      r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:253,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:265,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - pr
    - b
    - blen
    - neg
    argTypes:
    - int64_t*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 277
    functionName: asn1_get_int64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - asn1_get_uint64
    linkageType: ''
    returnType: int
    signature: "int asn1_get_int64(int64_t *pr, const unsigned char *b, size_t blen,\n
      \                         int neg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: c2i_ibuf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:287,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:293,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:300,1
    - Dst: c2i_ibuf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:303,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:313,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:315,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - a
    - pp
    - len
    argTypes:
    - ASN1_INTEGER**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 317
    functionName: c2i_ASN1_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_STRING_set
    - ASN1_INTEGER_free
    - ASN1err
    - c2i_ibuf
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char
      **pp,\n                               long len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:322,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:326,1
    - Dst: asn1_get_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pr
    - a
    - itype
    argTypes:
    - int64_t*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: asn1_string_get_int64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_get_int64
    - ASN1err
    linkageType: ''
    returnType: int
    signature: int asn1_string_get_int64(int64_t *pr, const ASN1_STRING *a, int itype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:344,1
    - Dst: asn1_put_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:347,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - a
    - r
    - itype
    argTypes:
    - ASN1_STRING*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 351
    functionName: asn1_string_set_int64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - asn1_put_uint64
    linkageType: ''
    returnType: int
    signature: int asn1_string_set_int64(ASN1_STRING *a, int64_t r, int itype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:357,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:361,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:365,1
    - Dst: asn1_get_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pr
    - a
    - itype
    argTypes:
    - uint64_t*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 369
    functionName: asn1_string_get_uint64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_get_uint64
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "int asn1_string_get_uint64(uint64_t *pr, const ASN1_STRING *a,\n                                  int
      itype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:377,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - r
    - itype
    argTypes:
    - ASN1_STRING*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: asn1_string_set_uint64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - asn1_put_uint64
    linkageType: ''
    returnType: int
    signature: int asn1_string_set_uint64(ASN1_STRING *a, uint64_t r, int itype)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:398,1
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:405,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:420,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:431,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:435,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:443,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:445,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ASN1_INTEGER**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 447
    functionName: d2i_ASN1_UINTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - OPENSSL_malloc
    - OPENSSL_free
    - ASN1_INTEGER_free
    - ASN1err
    - memcpy
    - ASN1_get_object
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char
      **pp,\n                                long length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:456,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:463,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:467,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:467,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:470,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:475,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:476,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:481,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:484,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:489,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - bn
    - ai
    - atype
    argTypes:
    - BIGNUM*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 491
    functionName: bn_to_asn1_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - BN_num_bytes
    - ASN1_INTEGER_free
    - ASN1err
    - BN_bn2bin
    - BN_is_negative
    - BN_is_zero
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: ASN1_STRING
    signature: "ASN1_STRING *bn_to_asn1_string(const BIGNUM *bn, ASN1_STRING *ai,\n
      \                                     int atype)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:499,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:503,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:505,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ai
    - bn
    - itype
    argTypes:
    - ASN1_INTEGER*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 493
    functionDepth: 4
    functionLinenumber: 493
    functionLinenumberEnd: 511
    functionName: asn1_string_to_bn
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - BN_set_negative
    - BN_bin2bn
    - ASN1err
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *asn1_string_to_bn(const ASN1_INTEGER *ai, BIGNUM *bn,\n                                 int
      itype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_get_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - a
    argTypes:
    - int64_t*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 4
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: ASN1_INTEGER_get_int64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_get_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_set_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - ASN1_INTEGER*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: ASN1_INTEGER_set_int64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - asn1_string_set_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_get_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - a
    argTypes:
    - uint64_t*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 3
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: ASN1_INTEGER_get_uint64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - asn1_string_get_uint64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_set_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - ASN1_INTEGER*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: ASN1_INTEGER_set_uint64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - asn1_string_set_uint64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - ASN1_INTEGER*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: ASN1_INTEGER_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 11
    functionsReached:
    - ASN1_INTEGER_set_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_set(ASN1_INTEGER *a, long v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 5
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: ASN1_INTEGER_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 13
    functionsReached:
    - ASN1_INTEGER_get_int64
    linkageType: ''
    returnType: long
    signature: long ASN1_INTEGER_get(const ASN1_INTEGER *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_to_asn1_string
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - ai
    argTypes:
    - BIGNUM*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 555
    functionName: BN_to_ASN1_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 7
    functionsReached:
    - bn_to_asn1_string
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_to_bn
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ai
    - bn
    argTypes:
    - ASN1_INTEGER*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 557
    functionDepth: 5
    functionLinenumber: 557
    functionLinenumberEnd: 560
    functionName: ASN1_INTEGER_to_BN
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 6
    functionsReached:
    - asn1_string_to_bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_get_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - a
    argTypes:
    - int64_t*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 4
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: ASN1_ENUMERATED_get_int64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_get_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_set_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - ASN1_ENUMERATED*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: ASN1_ENUMERATED_set_int64
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_set_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_set_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - ASN1_ENUMERATED*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 4
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: ASN1_ENUMERATED_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 2
    functionsReached:
    - ASN1_ENUMERATED_set_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get_int64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:587,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 577
    functionDepth: 5
    functionLinenumber: 577
    functionLinenumberEnd: 593
    functionName: ASN1_ENUMERATED_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 4
    functionsReached:
    - ASN1_ENUMERATED_get_int64
    linkageType: ''
    returnType: long
    signature: long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_to_asn1_string
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - ai
    argTypes:
    - BIGNUM*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: BN_to_ASN1_ENUMERATED
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - bn_to_asn1_string
    linkageType: ''
    returnType: ASN1_ENUMERATED
    signature: ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED
      *ai)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_to_bn
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ai
    - bn
    argTypes:
    - ASN1_ENUMERATED*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 5
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: ASN1_ENUMERATED_to_BN
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_to_bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2i_ibuf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:611,1
    - Dst: ASN1err
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:615,1
    - Dst: c2i_ibuf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:618,1
    - Dst: asn1_get_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ret
    - neg
    - pp
    - len
    argTypes:
    - uint64_t*
    - int*
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 620
    functionName: c2i_uint64_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 2
    functionsReached:
    - asn1_get_uint64
    - ASN1err
    - c2i_ibuf
    linkageType: ''
    returnType: int
    signature: int c2i_uint64_int(uint64_t *ret, int *neg, const unsigned char **pp,
      long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_uint64
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:627,1
    - Dst: i2c_ibuf
      Src: /src/openssl-1.1.1g/crypto/asn1/a_int.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - r
    - neg
    argTypes:
    - unsigned char*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 629
    functionName: i2c_uint64_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/asn1/a_int.c
    functionUses: 2
    functionsReached:
    - i2c_ibuf
    - asn1_put_uint64
    linkageType: ''
    returnType: int
    signature: int i2c_uint64_int(unsigned char *p, uint64_t r, int neg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:33,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:35,1
    - Dst: BF_encrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:37,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:40,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:42,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:53,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:55,1
    - Dst: BF_encrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:57,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:60,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - BF_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: BF_cfb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c
    functionUses: 0
    functionsReached:
    - l2n
    - BF_encrypt
    - n2l
    linkageType: ''
    returnType: void
    signature: "void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     long length, const BF_KEY *schedule,\n                      unsigned
      char *ivec, int *num, int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: n2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: l2nn
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: n2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: l2n
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - LL
    - ','
    - R
    - ','
    - S
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: BF_ENC
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF_ENC(LL,R,S,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: BF_options
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_ecb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *BF_options(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ecb.c:30,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ecb.c:32,1
    - Dst: BF_encrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ecb.c:35,1
    - Dst: BF_decrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ecb.c:37,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ecb.c:39,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ecb.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - key
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - BF_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: BF_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_ecb.c
    functionUses: 0
    functionsReached:
    - l2n
    - BF_decrypt
    - BF_encrypt
    - n2l
    linkageType: ''
    returnType: void
    signature: "void BF_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                   const BF_KEY *key, int encrypt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/bf/bf_skey.c:22,1
    - Dst: BF_encrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_skey.c:56,1
    - Dst: BF_encrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_skey.c:63,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - key
    - len
    - data
    argTypes:
    - BF_KEY*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 67
    functionName: BF_set_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_skey.c
    functionUses: 1
    functionsReached:
    - BF_encrypt
    - memcpy
    linkageType: ''
    returnType: void
    signature: void BF_set_key(BF_KEY *key, int len, const unsigned char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:35,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:36,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:37,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:38,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:39,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:40,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:41,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:42,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:43,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:44,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:45,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:46,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:47,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:48,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:49,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:50,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:52,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:53,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:54,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - data
    - key
    argTypes:
    - BF_LONG*
    - BF_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: BF_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_enc.c
    functionUses: 3
    functionsReached:
    - BF_ENC
    linkageType: ''
    returnType: void
    signature: void BF_encrypt(BF_LONG *data, const BF_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:75,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:76,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:77,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:78,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:80,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:81,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:82,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:83,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:84,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:85,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:86,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:87,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:88,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:89,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:90,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:91,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:92,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:93,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:94,1
    - Dst: BF_ENC
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - data
    - key
    argTypes:
    - BF_LONG*
    - BF_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 100
    functionName: BF_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_enc.c
    functionUses: 1
    functionsReached:
    - BF_ENC
    linkageType: ''
    returnType: void
    signature: void BF_decrypt(BF_LONG *data, const BF_KEY *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:111,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:112,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:115,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:116,1
    - Dst: BF_encrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:121,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:124,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:125,1
    - Dst: n2ln
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:128,1
    - Dst: BF_encrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:133,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:136,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:137,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:139,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:140,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:142,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:143,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:146,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:147,1
    - Dst: BF_decrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:150,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:153,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:154,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:159,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:160,1
    - Dst: BF_decrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:163,1
    - Dst: l2nn
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:166,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:170,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_enc.c:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - BF_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 175
    functionName: BF_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_enc.c
    functionUses: 0
    functionsReached:
    - n2ln
    - BF_decrypt
    - BF_encrypt
    - l2n
    - l2nn
    - n2l
    linkageType: ''
    returnType: void
    signature: "void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long
      length,\n                    const BF_KEY *schedule, unsigned char *ivec, int
      encrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c:32,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c:33,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c:37,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c:38,1
    - Dst: BF_encrypt
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c:41,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c:44,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c:46,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c:56,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - BF_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: BF_ofb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c
    functionUses: 0
    functionsReached:
    - l2n
    - BF_encrypt
    - n2l
    linkageType: ''
    returnType: void
    signature: "void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     long length, const BF_KEY *schedule,\n                      unsigned
      char *ivec, int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openssl-1.1.1g/crypto/engine/eng_all.c:16,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/engine/eng_all.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: ENGINE_load_builtin_engines
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_all.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OPENSSL_cpuid_setup
    linkageType: ''
    returnType: void
    signature: void ENGINE_load_builtin_engines(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: ENGINE_setup_bsd_cryptodev
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_all.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENGINE_setup_bsd_cryptodev(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:88,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:89,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:90,1
    - Dst: ENGINE_set_RSA
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:93,1
    - Dst: RSA_get_default_method
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:93,1
    - Dst: ENGINE_set_DSA
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:96,1
    - Dst: DSA_get_default_method
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:96,1
    - Dst: ENGINE_set_EC
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:99,1
    - Dst: EC_KEY_OpenSSL
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:99,1
    - Dst: ENGINE_set_DH
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:102,1
    - Dst: DH_get_default_method
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:102,1
    - Dst: ENGINE_set_RAND
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:104,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:104,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:106,1
    - Dst: ENGINE_set_digests
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:109,1
    - Dst: ENGINE_set_load_privkey_function
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:113,1
    - Dst: ossl_register_hmac_meth
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:116,1
    - Dst: ENGINE_set_pkey_meths
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:117,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 127
    functionName: bind_helper
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 2
    functionsReached:
    - RSA_get_default_method
    - ENGINE_set_RSA
    - ENGINE_set_destroy_function
    - ENGINE_set_DSA
    - DSA_get_default_method
    - ENGINE_set_EC
    - DH_get_default_method
    - ossl_register_hmac_meth
    - ENGINE_set_RAND
    - ENGINE_set_DH
    - ENGINE_set_pkey_meths
    - ENGINE_set_name
    - ENGINE_set_digests
    - EC_KEY_OpenSSL
    - ENGINE_set_id
    - ENGINE_set_ciphers
    - ENGINE_set_load_privkey_function
    - RAND_OpenSSL
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:131,1
    - Dst: bind_helper
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:134,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: engine_openssl
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - ENGINE_new
    - bind_helper
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_openssl(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_openssl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:143,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:146,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:151,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: engine_load_openssl_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - ENGINE_add
    - ENGINE_free
    - ERR_clear_error
    - engine_openssl
    linkageType: ''
    returnType: void
    signature: void engine_load_openssl_int(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:162,1
    - Dst: bind_helper
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: bind_fn
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - bind_helper
    linkageType: ''
    returnType: int
    signature: int bind_fn(ENGINE *e, const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: test
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:195,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:197,1
    - Dst: test
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:197,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:197,1
    - Dst: RC4_set_key
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:198,1
    - Dst: test
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:198,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:198,1
    - Dst: test
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: test_rc4_init_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test
    - RC4_set_key
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int test_rc4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:207,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:209,1
    - Dst: test
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: test_rc4_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test
    - RC4
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int test_rc4_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:219,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:220,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:221,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:222,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:223,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:224,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 231
    functionName: test_r4_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_init
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *test_r4_cipher(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: test_r4_cipher_destroy
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: void test_r4_cipher_destroy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:244,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:245,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:246,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:247,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:248,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:249,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 256
    functionName: test_r4_40_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_init
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *test_r4_40_cipher(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: test_r4_40_cipher_destroy
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: void test_r4_40_cipher_destroy(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_r4_cipher
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:270,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:271,1
    - Dst: test_r4_40_cipher
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:272,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 279
    functionName: test_cipher_nids
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_nid
    - test_r4_40_cipher
    - test_r4_cipher
    linkageType: ''
    returnType: int
    signature: int test_cipher_nids(const int **nids)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_cipher_nids
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:286,1
    - Dst: test_r4_cipher
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:290,1
    - Dst: test_r4_40_cipher
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:292,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 302
    functionName: openssl_ciphers
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test_cipher_nids
    - test_r4_40_cipher
    - fprintf
    - test_r4_cipher
    linkageType: ''
    returnType: int
    signature: "int openssl_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                           const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:312,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:314,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: test_sha1_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - SHA1_Init
    - EVP_MD_CTX_md_data
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_sha1_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:320,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:322,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: test_sha1_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA1_Update
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_sha1_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:328,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:330,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: test_sha1_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - SHA1_Final
    - EVP_MD_CTX_md_data
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:339,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:340,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:341,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:342,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:344,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:345,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:346,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:347,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:348,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 354
    functionName: test_sha_md
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_input_blocksize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_final
    - EVP_MD_meth_new
    - EVP_MD_meth_free
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *test_sha_md(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: test_sha_md_destroy
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: void test_sha_md_destroy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_sha_md
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:368,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 375
    functionName: test_digest_nids
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - test_sha_md
    - EVP_MD_type
    linkageType: ''
    returnType: int
    signature: int test_digest_nids(const int **nids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_digest_nids
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:382,1
    - Dst: test_sha_md
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:386,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 396
    functionName: openssl_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test_sha_md
    - test_digest_nids
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int openssl_digests(ENGINE *e, const EVP_MD **digest,\n                           const
      int **nids, int nid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:406,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:408,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:411,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 400
    functionDepth: 4
    functionLinenumber: 400
    functionLinenumberEnd: 414
    functionName: openssl_load_privkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - BIO_new_file
    - BIO_free
    - fprintf
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *openssl_load_privkey(ENGINE *eng, const char *key_id,\n
      \                                     UI_METHOD *ui_method,\n                                      void
      *callback_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:436,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:437,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:441,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:443,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:446,1
    - Dst: EVP_PKEY_CTX_set0_keygen_info
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:447,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 452
    functionName: ossl_hmac_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - EVP_PKEY_CTX_set0_keygen_info
    - HMAC_CTX_new
    - OPENSSL_free
    - OPENSSL_zalloc
    - EVP_PKEY_CTX_set_data
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_init(EVP_PKEY_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_hmac_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:461,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:463,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:464,1
    - Dst: HMAC_CTX_copy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:466,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:469,1
    - Dst: ossl_hmac_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:476,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 456
    functionDepth: 5
    functionLinenumber: 456
    functionLinenumberEnd: 478
    functionName: ossl_hmac_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - HMAC_CTX_copy
    - ossl_hmac_cleanup
    - ossl_hmac_init
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:482,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:485,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:486,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:487,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 5
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: ossl_hmac_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - HMAC_CTX_free
    - OPENSSL_free
    - EVP_PKEY_CTX_set_data
    - OPENSSL_clear_free
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: void
    signature: void ossl_hmac_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:495,1
    - Dst: ASN1_OCTET_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:498,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 492
    functionDepth: 4
    functionLinenumber: 492
    functionLinenumberEnd: 504
    functionName: ossl_hmac_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_dup
    - EVP_PKEY_assign
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:508,1
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:508,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 512
    functionName: ossl_int_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_pkey_ctx
    - HMAC_Update
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int ossl_int_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:516,1
    - Dst: EVP_MD_CTX_set_update_fn
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: ossl_hmac_signctx_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX_set_update_fn
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:525,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:526,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - sig
    - siglen
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 521
    functionDepth: 5
    functionLinenumber: 521
    functionLinenumberEnd: 538
    functionName: ossl_hmac_signctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_size
    - EVP_PKEY_CTX_get_data
    - HMAC_Final
    linkageType: ''
    returnType: int
    signature: "int ossl_hmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                             size_t
      *siglen, EVP_MD_CTX *mctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:542,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:550,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:559,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:560,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:561,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 540
    functionDepth: 5
    functionLinenumber: 540
    functionLinenumberEnd: 570
    functionName: ossl_hmac_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - HMAC_Init_ex
    - ASN1_OCTET_STRING_set
    - EVP_PKEY_get0
    - EVP_PKEY_CTX_get0_pkey
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:578,1
    - Dst: ossl_hmac_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:580,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:582,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:586,1
    - Dst: ossl_hmac_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:589,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 572
    functionDepth: 6
    functionLinenumber: 572
    functionLinenumberEnd: 594
    functionName: ossl_hmac_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OPENSSL_free
    - OPENSSL_hexstr2buf
    - ossl_hmac_ctrl
    linkageType: ''
    returnType: int
    signature: "int ossl_hmac_ctrl_str(EVP_PKEY_CTX *ctx,\n                              const
      char *type, const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:601,1
    - Dst: EVP_PKEY_meth_set_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:604,1
    - Dst: EVP_PKEY_meth_set_copy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:605,1
    - Dst: EVP_PKEY_meth_set_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:606,1
    - Dst: EVP_PKEY_meth_set_keygen
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:608,1
    - Dst: EVP_PKEY_meth_set_signctx
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:610,1
    - Dst: EVP_PKEY_meth_set_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 616
    functionName: ossl_register_hmac_meth
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_meth_set_init
    - EVP_PKEY_meth_set_keygen
    - EVP_PKEY_meth_set_ctrl
    - EVP_PKEY_meth_set_signctx
    - EVP_PKEY_meth_set_cleanup
    - EVP_PKEY_meth_new
    - EVP_PKEY_meth_set_copy
    linkageType: ''
    returnType: int
    signature: int ossl_register_hmac_meth(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - e
    - pmeth
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_PKEY_METHOD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 637
    functionName: ossl_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ossl_pkey_meths(ENGINE *e, EVP_PKEY_METHOD **pmeth,\n                           const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sha_md_destroy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:643,1
    - Dst: test_r4_cipher_destroy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:645,1
    - Dst: test_r4_40_cipher_destroy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 649
    functionName: openssl_destroy
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test_r4_40_cipher_destroy
    - test_sha_md_destroy
    - test_r4_cipher_destroy
    linkageType: ''
    returnType: int
    signature: int openssl_destroy(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_ia32_rdrand_bytes
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: get_random_bytes
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached:
    - OPENSSL_ia32_rdrand_bytes
    linkageType: ''
    returnType: int
    signature: int get_random_bytes(unsigned char *buf, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: random_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int random_status(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rdrand_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rdrand_init(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:58,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:59,1
    - Dst: ENGINE_set_flags
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:60,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:61,1
    - Dst: ENGINE_set_RAND
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: bind_helper
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c
    functionUses: 4
    functionsReached:
    - ENGINE_set_RAND
    - ENGINE_set_init_function
    - ENGINE_set_name
    - ENGINE_set_flags
    - ENGINE_set_id
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:70,1
    - Dst: bind_helper
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:73,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: ENGINE_rdrand
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - ENGINE_new
    - bind_helper
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_rdrand(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_rdrand
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:85,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:88,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:89,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: engine_load_rdrand_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c
    functionUses: 1
    functionsReached:
    - ENGINE_add
    - ENGINE_free
    - ERR_clear_error
    - ENGINE_rdrand
    linkageType: ''
    returnType: void
    signature: void engine_load_rdrand_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: engine_load_rdrand_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void engine_load_rdrand_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_pkey_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_pkey_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:29,1
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: ENGINE_register_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - ENGINE*::pkey_meths
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_pkey_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:42,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:42,1
    - Dst: ENGINE_register_pkey_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: ENGINE_register_all_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_pkey_meths
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_pkey_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:50,1
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: ENGINE_set_default_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - ENGINE*::pkey_meths
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_pkey_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: ENGINE_get_pkey_meth_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_pkey_meth_engine(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_pkey_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:73,1
    - Dst: fn
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:74,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: ENGINE_get_pkey_meth
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 2
    functionsReached:
    - ENGINEerr
    - fn
    - ENGINE_get_pkey_meths
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: ENGINE_get_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_PKEY_METHS_PTR
    signature: ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_PKEY_METHS_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: ENGINE_set_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:107,1
    - Dst: ENGINE*::pkey_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:109,1
    - Dst: EVP_PKEY_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: engine_pkey_meths_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - ENGINE*::pkey_meths
    - EVP_PKEY_meth_free
    linkageType: ''
    returnType: void
    signature: void engine_pkey_meths_free(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ENGINE_unregister_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_digests(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: engine_unregister_all_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_digests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::digests
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:28,1
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: ENGINE_register_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    - ENGINE*::digests
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_digests(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:41,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:41,1
    - Dst: ENGINE_register_digests
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: ENGINE_register_all_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_digests
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_digests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::digests
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:49,1
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: ENGINE_set_default_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    - ENGINE*::digests
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_digests(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: ENGINE_get_digest_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_digest_engine(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_digests
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:72,1
    - Dst: fn
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:73,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/tb_digest.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: ENGINE_get_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - ENGINE_get_digests
    - fn
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *ENGINE_get_digest(ENGINE *e, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ENGINE_get_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_DIGESTS_PTR
    signature: ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_DIGESTS_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: ENGINE_set_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:23,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: DEFINE_RUN_ONCE
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE(do_engine_lock_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:33,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:34,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:35,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:39,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:40,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: ENGINE_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 7
    functionsReached:
    - ENGINEerr
    - OPENSSL_free
    - CRYPTO_new_ex_data
    - OPENSSL_zalloc
    - engine_ref_debug
    - RUN_ONCE
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 70
    functionName: engine_set_all_null
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void engine_set_all_null(ENGINE *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:79,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:82,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:85,1
    - Dst: engine_pkey_meths_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:87,1
    - Dst: engine_pkey_asn1_meths_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:88,1
    - Dst: ENGINE*::destroy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:94,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:95,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - e
    - not_locked
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 98
    functionName: engine_free_util
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - engine_pkey_meths_free
    - OPENSSL_free
    - engine_pkey_asn1_meths_free
    - REF_ASSERT_ISNT
    - CRYPTO_DOWN_REF
    - CRYPTO_free_ex_data
    - ENGINE*::destroy
    - engine_ref_debug
    linkageType: ''
    returnType: int
    signature: int engine_free_util(ENGINE *e, int not_locked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_free_util
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: ENGINE_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 15
    functionsReached:
    - engine_free_util
    linkageType: ''
    returnType: int
    signature: int ENGINE_free(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_CLEANUP_ITEM_new_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - create
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: int_cleanup_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_CLEANUP_ITEM_new_null
    linkageType: ''
    returnType: int
    signature: int int_cleanup_check(int create)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:128,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cb
    argTypes:
    - ENGINE_CLEANUP_CB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: int_cleanup_item
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - OPENSSL_malloc
    linkageType: ''
    returnType: ENGINE_CLEANUP_ITEM
    signature: ENGINE_CLEANUP_ITEM *int_cleanup_item(ENGINE_CLEANUP_CB *cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: int_cleanup_check
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:140,1
    - Dst: int_cleanup_item
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:142,1
    - Dst: sk_ENGINE_CLEANUP_ITEM_insert
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - ENGINE_CLEANUP_CB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: engine_cleanup_add_first
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - int_cleanup_check
    - sk_ENGINE_CLEANUP_ITEM_insert
    - int_cleanup_item
    linkageType: ''
    returnType: void
    signature: void engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: int_cleanup_check
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:150,1
    - Dst: int_cleanup_item
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:152,1
    - Dst: sk_ENGINE_CLEANUP_ITEM_push
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cb
    argTypes:
    - ENGINE_CLEANUP_CB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: engine_cleanup_add_last
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - int_cleanup_check
    - OPENSSL_free
    - int_cleanup_item
    - sk_ENGINE_CLEANUP_ITEM_push
    linkageType: ''
    returnType: void
    signature: void engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - ENGINE_CLEANUP_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: engine_cleanup_cb_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void engine_cleanup_cb_free(ENGINE_CLEANUP_ITEM *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_cleanup_check
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:168,1
    - Dst: sk_ENGINE_CLEANUP_ITEM_pop_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:169,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: engine_cleanup_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 1
    functionsReached:
    - int_cleanup_check
    - CRYPTO_THREAD_lock_free
    - sk_ENGINE_CLEANUP_ITEM_pop_free
    linkageType: ''
    returnType: void
    signature: void engine_cleanup_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - idx
    - arg
    argTypes:
    - ENGINE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: ENGINE_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - idx
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: ENGINE_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 6
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *ENGINE_get_ex_data(const ENGINE *e, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: ENGINE_set_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 7
    functionsReached:
    - ENGINEerr
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_id(ENGINE *e, const char *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_lib.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - name
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: ENGINE_set_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 7
    functionsReached:
    - ENGINEerr
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_name(ENGINE *e, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - destroy_f
    argTypes:
    - ENGINE*
    - ENGINE_GEN_INT_FUNC_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: ENGINE_set_destroy_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR
      destroy_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - init_f
    argTypes:
    - ENGINE*
    - ENGINE_GEN_INT_FUNC_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: ENGINE_set_init_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - finish_f
    argTypes:
    - ENGINE*
    - ENGINE_GEN_INT_FUNC_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: ENGINE_set_finish_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ctrl_f
    argTypes:
    - ENGINE*
    - ENGINE_CTRL_FUNC_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: ENGINE_set_ctrl_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: ENGINE_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_flags(ENGINE *e, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - defns
    argTypes:
    - ENGINE*
    - ENGINE_CMD_DEFN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: ENGINE_set_cmd_defns
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: ENGINE_get_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ENGINE_get_id(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: ENGINE_get_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ENGINE_get_name(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: ENGINE_get_destroy_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_GEN_INT_FUNC_PTR
    signature: ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: ENGINE_get_init_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_GEN_INT_FUNC_PTR
    signature: ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: ENGINE_get_finish_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_GEN_INT_FUNC_PTR
    signature: ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: ENGINE_get_ctrl_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_CTRL_FUNC_PTR
    signature: ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: ENGINE_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_get_flags(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: ENGINE_get_cmd_defns
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_CMD_DEFN
    signature: ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: ENGINE_get_static_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ENGINE_get_static_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_DSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_DSA(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_DSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c:38,1
    - Dst: ENGINE_register_DSA
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - ENGINE_register_DSA
    - ENGINE_get_next
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_DSA(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_DSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_DSA(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *ENGINE_get_DSA(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - dsa_meth
    argTypes:
    - ENGINE*
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_DSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - defn
    argTypes:
    - ENGINE_CMD_DEFN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: int_ctrl_cmd_is_null
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int int_ctrl_cmd_is_null(const ENGINE_CMD_DEFN *defn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:34,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:34,1
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - defn
    - s
    argTypes:
    - ENGINE_CMD_DEFN*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: int_ctrl_cmd_by_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - int_ctrl_cmd_is_null
    linkageType: ''
    returnType: int
    signature: int int_ctrl_cmd_by_name(const ENGINE_CMD_DEFN *defn, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - defn
    - num
    argTypes:
    - ENGINE_CMD_DEFN*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: int_ctrl_cmd_by_num
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - int_ctrl_cmd_is_null
    linkageType: ''
    returnType: int
    signature: int int_ctrl_cmd_by_num(const ENGINE_CMD_DEFN *defn, unsigned int num)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:70,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:79,1
    - Dst: int_ctrl_cmd_by_name
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:86,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:87,1
    - Dst: int_ctrl_cmd_by_num
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:97,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:98,1
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:106,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:108,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:110,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:110,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:112,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:115,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:115,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 123
    functionName: int_ctrl_helper
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - int_ctrl_cmd_is_null
    - strcpy
    - int_ctrl_cmd_by_num
    - int_ctrl_cmd_by_name
    - strlen
    linkageType: ''
    returnType: int
    signature: "int int_ctrl_helper(ENGINE *e, int cmd, long i, void *p,\n                           void
      (*f) (void))"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:129,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:132,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:134,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:137,1
    - Dst: int_ctrl_helper
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:156,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:158,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:171,1
    - Dst: ENGINE*::ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 175
    functionName: ENGINE_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - int_ctrl_helper
    - ENGINE*::ctrl
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:181,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - e
    - cmd
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 191
    functionName: ENGINE_cmd_is_executable
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - ENGINE_ctrl
    linkageType: ''
    returnType: int
    signature: int ENGINE_cmd_is_executable(ENGINE *e, int cmd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:199,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:203,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:214,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:217,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - e
    - cmd_name
    - i
    - p
    - cmd_optional
    argTypes:
    - ENGINE*
    - char*
    - long
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 227
    functionName: ENGINE_ctrl_cmd
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - ENGINE_ctrl
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name,\n                    long
      i, void *p, void (*f) (void), int cmd_optional)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:237,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:241,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:252,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:255,1
    - Dst: ENGINE_cmd_is_executable
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:258,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:259,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:264,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:270,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:279,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:289,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:295,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:302,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:313,1
    - Dst: strtol
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:317,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:319,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c:327,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 4
    argNames:
    - e
    - cmd_name
    - arg
    - cmd_optional
    argTypes:
    - ENGINE*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 330
    functionName: ENGINE_ctrl_cmd_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - ENGINE_ctrl
    - ENGINE_cmd_is_executable
    - strtol
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const
      char *arg,\n                           int cmd_optional)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_RSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_RSA(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_RSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c:38,1
    - Dst: ENGINE_register_RSA
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_RSA
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_RSA(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_RSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_RSA(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *ENGINE_get_RSA(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - rsa_meth
    argTypes:
    - ENGINE*
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_RSA
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: skip_dot
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *skip_dot(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:30,1
    - Dst: sk_ENGINE_new_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:33,1
    - Dst: sk_ENGINE_push
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:34,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: int_engine_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - ENGINE_finish
    - sk_ENGINE_push
    - sk_ENGINE_new_null
    linkageType: ''
    returnType: int
    signature: int int_engine_init(ENGINE *e)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:46,1
    - Dst: skip_dot
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:52,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:54,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:57,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:60,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:65,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:66,1
    - Dst: skip_dot
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:67,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:70,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:77,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:79,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:82,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:83,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:86,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:88,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:90,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:100,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:102,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:112,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:114,1
    - Dst: NCONF_get_number_e
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:115,1
    - Dst: int_engine_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:118,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:121,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:125,1
    - Dst: ENGINE_set_default_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:126,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:128,1
    - Dst: int_engine_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:133,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:140,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:143,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:147,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 85
    argCount: 3
    argNames:
    - name
    - value
    - cnf
    argTypes:
    - char*
    - char*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 149
    functionName: int_engine_configure
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - int_engine_init
    - NCONF_get_section
    - sk_CONF_VALUE_num
    - strcmp
    - ENGINE_by_id
    - ENGINE_free
    - STACK_OF
    - ERR_add_error_data
    - skip_dot
    - sk_CONF_VALUE_value
    - ERR_clear_error
    - NCONF_get_number_e
    - ENGINE_set_default_string
    - ENGINE_ctrl_cmd_string
    - fprintf
    linkageType: ''
    returnType: int
    signature: int int_engine_configure(const char *name, const char *value, const
      CONF *cnf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:153,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:157,1
    - Dst: CONF_imodule_get_name
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:158,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:158,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:161,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:161,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:164,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:169,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:170,1
    - Dst: int_engine_configure
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 151
    functionDepth: 7
    functionLinenumber: 151
    functionLinenumberEnd: 176
    functionName: int_engine_module_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - NCONF_get_section
    - sk_CONF_VALUE_num
    - CONF_imodule_get_value
    - STACK_OF
    - CONF_imodule_get_name
    - int_engine_configure
    - sk_CONF_VALUE_value
    - fprintf
    linkageType: ''
    returnType: int
    signature: int int_engine_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_pop
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:182,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:183,1
    - Dst: sk_ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: int_engine_module_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_free
    - ENGINE_finish
    - sk_ENGINE_pop
    linkageType: ''
    returnType: void
    signature: void int_engine_module_finish(CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: ENGINE_add_conf_module
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: void ENGINE_add_conf_module(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - isfunct
    - ','
    - diff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: engine_ref_debug
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: engine_ref_debug(e, isfunct, diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: engine_table_select
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: engine_table_select(t,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: int_free_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void int_free_str(char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:142,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: dynamic_data_ctx_free_func
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - DSO_free
    - OPENSSL_free
    - sk_OPENSSL_STRING_pop_free
    linkageType: ''
    returnType: void
    signature: "void dynamic_data_ctx_free_func(void *parent, void *ptr,\n                                       CRYPTO_EX_DATA
      *ad, int idx, long argl,\n                                       void *argp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:156,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:160,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:163,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:165,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:166,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:172,1
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:173,1
    - Dst: ENGINE_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:177,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:183,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:189,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - e
    - ctx
    argTypes:
    - ENGINE*
    - dynamic_data_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 192
    functionName: dynamic_set_data_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - sk_OPENSSL_STRING_new_null
    - sk_OPENSSL_STRING_free
    - ENGINE_set_ex_data
    - OPENSSL_free
    - OPENSSL_zalloc
    - ENGINE_get_ex_data
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int dynamic_set_data_ctx(ENGINE *e, dynamic_data_ctx **ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_new_index
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:207,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:210,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:213,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:220,1
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:226,1
    - Dst: dynamic_set_data_ctx
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 232
    functionName: dynamic_get_data_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - dynamic_set_data_ctx
    - ENGINE_get_ex_data
    - CRYPTO_THREAD_unlock
    - ENGINE_get_ex_new_index
    linkageType: ''
    returnType: dynamic_data_ctx
    signature: dynamic_data_ctx *dynamic_get_data_ctx(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:236,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:239,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:240,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:241,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:242,1
    - Dst: ENGINE_set_ctrl_function
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:243,1
    - Dst: ENGINE_set_flags
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:244,1
    - Dst: ENGINE_set_cmd_defns
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:245,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 250
    functionName: engine_dynamic
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - ENGINE_new
    - ENGINE_set_ctrl_function
    - ENGINE_set_cmd_defns
    - ENGINE_set_init_function
    - ENGINE_set_name
    - ENGINE_set_flags
    - ENGINE_free
    - ENGINE_set_finish_function
    - ENGINE_set_id
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_dynamic(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_dynamic
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:254,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:257,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:262,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 269
    functionName: engine_load_dynamic_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 1
    functionsReached:
    - ENGINE_add
    - engine_dynamic
    - ENGINE_free
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: void engine_load_dynamic_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: dynamic_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dynamic_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: dynamic_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dynamic_finish(ENGINE *e)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_get_data_ctx
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:291,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:295,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:301,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:309,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:311,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:320,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:322,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:324,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:330,1
    - Dst: dynamic_load
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:336,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:339,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:346,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:347,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:351,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:353,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:356,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:357,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:358,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:366,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 289
    functionDepth: 5
    functionLinenumber: 289
    functionLinenumberEnd: 368
    functionName: dynamic_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - dynamic_get_data_ctx
    - OPENSSL_free
    - OPENSSL_strdup
    - dynamic_load
    - strlen
    - sk_OPENSSL_STRING_push
    linkageType: ''
    returnType: int
    signature: int dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DSO_load
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:374,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:379,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:382,1
    - Dst: DSO_merge
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:383,1
    - Dst: DSO_load
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:386,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:388,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - dynamic_data_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 394
    functionName: int_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - DSO_load
    - OPENSSL_free
    - DSO_merge
    - sk_OPENSSL_STRING_value
    - sk_OPENSSL_STRING_num
    linkageType: ''
    returnType: int
    signature: int int_load(dynamic_data_ctx *ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DSO_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:402,1
    - Dst: DSO_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:408,1
    - Dst: DSO_convert_filename
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:411,1
    - Dst: int_load
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:413,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:414,1
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:415,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:422,1
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:425,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:427,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:438,1
    - Dst: dynamic_data_ctx*::v_check
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:441,1
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:451,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:453,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:462,1
    - Dst: ENGINE_get_static_state
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:470,1
    - Dst: CRYPTO_get_mem_functions
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:471,1
    - Dst: engine_set_all_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:477,1
    - Dst: dynamic_data_ctx*::bind_engine
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:480,1
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:483,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:485,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:487,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:492,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:501,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c:506,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 60
    argCount: 2
    argNames:
    - e
    - ctx
    argTypes:
    - ENGINE*
    - dynamic_data_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 510
    functionName: dynamic_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - DSO_new
    - engine_set_all_null
    - dynamic_data_ctx*::bind_engine
    - int_load
    - memcpy
    - DSO_ctrl
    - ENGINE_add
    - dynamic_data_ctx*::v_check
    - ENGINE_get_static_state
    - CRYPTO_get_mem_functions
    - ERR_clear_error
    - DSO_free
    - DSO_bind_func
    - DSO_convert_filename
    linkageType: ''
    returnType: int
    signature: int dynamic_load(ENGINE *e, dynamic_data_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: ENGINE_get_table_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ENGINE_get_table_flags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ENGINE_set_table_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENGINE_set_table_flags(unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - ENGINE_PILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: engine_pile_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long engine_pile_hash(const ENGINE_PILE *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ENGINE_PILE*
    - ENGINE_PILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: engine_pile_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int engine_pile_cmp(const ENGINE_PILE *a, const ENGINE_PILE *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:66,1
    - Dst: lh_ENGINE_PILE_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - t
    - create
    argTypes:
    - ENGINE_TABLE**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: int_table_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - lh_ENGINE_PILE_new
    - LHASH_OF
    linkageType: ''
    returnType: int
    signature: int int_table_check(ENGINE_TABLE **t, int create)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:88,1
    - Dst: int_table_check
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:91,1
    - Dst: engine_cleanup_add_first
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:95,1
    - Dst: lh_ENGINE_PILE_retrieve
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:98,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:100,1
    - Dst: sk_ENGINE_new_null
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:107,1
    - Dst: lh_ENGINE_PILE_insert
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:111,1
    - Dst: lh_ENGINE_PILE_retrieve
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:112,1
    - Dst: sk_ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:113,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:114,1
    - Dst: sk_ENGINE_delete_ptr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:119,1
    - Dst: sk_ENGINE_push
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:123,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:128,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:129,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:134,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:142,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 6
    argNames:
    - table
    - cleanup
    - e
    - nids
    - num_nids
    - setdefault
    argTypes:
    - ENGINE_TABLE**
    - ENGINE_CLEANUP_CB*
    - ENGINE*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 144
    functionName: engine_table_register
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 8
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - ENGINEerr
    - OPENSSL_malloc
    - sk_ENGINE_new_null
    - sk_ENGINE_free
    - OPENSSL_free
    - lh_ENGINE_PILE_retrieve
    - lh_ENGINE_PILE_insert
    - engine_cleanup_add_first
    - engine_unlocked_finish
    - sk_ENGINE_push
    - engine_unlocked_init
    - CRYPTO_THREAD_unlock
    - int_table_check
    - sk_ENGINE_delete_ptr
    linkageType: ''
    returnType: int
    signature: "int engine_table_register(ENGINE_TABLE **table, ENGINE_CLEANUP_CB
      *cleanup,\n                          ENGINE *e, const int *nids, int num_nids,\n
      \                         int setdefault)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_find
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:150,1
    - Dst: sk_ENGINE_delete
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:151,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pile
    - e
    argTypes:
    - ENGINE_PILE*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: int_unregister_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_find
    - sk_ENGINE_delete
    - engine_unlocked_finish
    linkageType: ''
    returnType: void
    signature: void int_unregister_cb(ENGINE_PILE *pile, ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:164,1
    - Dst: int_table_check
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:165,1
    - Dst: lh_ENGINE_PILE_doall_ENGINE
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:166,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - table
    - e
    argTypes:
    - ENGINE_TABLE**
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: engine_table_unregister
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 4
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - int_table_check
    - lh_ENGINE_PILE_doall_ENGINE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void engine_table_unregister(ENGINE_TABLE **table, ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:174,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:176,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - ENGINE_PILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: int_cleanup_cb_doall
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_free
    - OPENSSL_free
    - engine_unlocked_finish
    linkageType: ''
    returnType: void
    signature: void int_cleanup_cb_doall(ENGINE_PILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:182,1
    - Dst: lh_ENGINE_PILE_doall
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:184,1
    - Dst: lh_ENGINE_PILE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:185,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - table
    argTypes:
    - ENGINE_TABLE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: engine_table_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 4
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - lh_ENGINE_PILE_doall
    - lh_ENGINE_PILE_free
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void engine_table_cleanup(ENGINE_TABLE **table)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:205,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:210,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:211,1
    - Dst: int_table_check
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:216,1
    - Dst: lh_ENGINE_PILE_retrieve
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:219,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:222,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:224,1
    - Dst: sk_ENGINE_value
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:235,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:238,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:245,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:250,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:253,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:256,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:261,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:276,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:279,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:282,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:287,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 4
    argNames:
    - table
    - nid
    - f
    - l
    argTypes:
    - ENGINE_TABLE**
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 289
    functionName: engine_table_select_tmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - sk_ENGINE_value
    - lh_ENGINE_PILE_retrieve
    - ERR_set_mark
    - engine_unlocked_finish
    - CRYPTO_THREAD_unlock
    - engine_unlocked_init
    - ERR_pop_to_mark
    - int_table_check
    - fprintf
    linkageType: ''
    returnType: ENGINE
    signature: "ENGINE *engine_table_select_tmp(ENGINE_TABLE **table, int nid, const
      char *f,\n                                int l)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_PILE_DOALL*::cb
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pile
    - dall
    argTypes:
    - ENGINE_PILE*
    - ENGINE_PILE_DOALL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: int_dall
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - ENGINE_PILE_DOALL*::cb
    linkageType: ''
    returnType: void
    signature: void int_dall(const ENGINE_PILE *pile, ENGINE_PILE_DOALL *dall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_ENGINE_PILE_doall_ENGINE_PILE_DOALL
      Src: /src/openssl-1.1.1g/crypto/engine/eng_table.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - table
    - cb
    - arg
    argTypes:
    - ENGINE_TABLE*
    - engine_table_doall_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: engine_table_doall
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - lh_ENGINE_PILE_doall_ENGINE_PILE_DOALL
    linkageType: ''
    returnType: void
    signature: "void engine_table_doall(ENGINE_TABLE *table, engine_table_doall_cb
      *cb,\n                        void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_remove
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: engine_list_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINE_remove
    linkageType: ''
    returnType: void
    signature: void engine_list_cleanup(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:54,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:59,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:63,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:69,1
    - Dst: engine_cleanup_add_last
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:77,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:81,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 96
    functionName: engine_list_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - strcmp
    - engine_cleanup_add_last
    - engine_ref_debug
    linkageType: ''
    returnType: int
    signature: int engine_list_add(ENGINE *e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:103,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:111,1
    - Dst: engine_free_util
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:125,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 127
    functionName: engine_list_remove
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - engine_free_util
    linkageType: ''
    returnType: int
    signature: int engine_list_remove(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:134,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:135,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:139,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:143,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: ENGINE_get_first
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 4
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - engine_ref_debug
    - CRYPTO_THREAD_unlock
    - RUN_ONCE
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_first(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:153,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:154,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:158,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:162,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 166
    functionName: ENGINE_get_last
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - engine_ref_debug
    - CRYPTO_THREAD_unlock
    - RUN_ONCE
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_last(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:173,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:176,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:181,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:183,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: ENGINE_get_next
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 4
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - ENGINE_free
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_next(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:193,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:196,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:201,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:203,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 207
    functionName: ENGINE_get_prev
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - ENGINE_free
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_prev(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:214,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:218,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:221,1
    - Dst: engine_list_add
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:222,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:223,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 228
    functionName: ENGINE_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 9
    functionsReached:
    - ENGINEerr
    - engine_list_add
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ENGINE_add(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:235,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:238,1
    - Dst: engine_list_remove
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:239,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:240,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 245
    functionName: ENGINE_remove
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_unlock
    - CRYPTO_THREAD_write_lock
    - engine_list_remove
    linkageType: ''
    returnType: int
    signature: int ENGINE_remove(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - ENGINE*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 275
    functionName: engine_cpy
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void engine_cpy(ENGINE *dest, const ENGINE *src)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:282,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:285,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:286,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:290,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:292,1
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:301,1
    - Dst: engine_cpy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:305,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:310,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:313,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:319,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:320,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:322,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:323,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:324,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:325,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:327,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:328,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:333,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:334,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:335,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 277
    functionDepth: 6
    functionLinenumber: 277
    functionLinenumberEnd: 338
    functionName: ENGINE_by_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 2
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - ENGINE_new
    - ossl_safe_getenv
    - strcmp
    - engine_cpy
    - ENGINE_by_id
    - ENGINE_free
    - ERR_add_error_data
    - engine_ref_debug
    - CRYPTO_THREAD_unlock
    - ENGINE_ctrl_cmd_string
    - RUN_ONCE
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_by_id(const char *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:344,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/engine/eng_list.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: ENGINE_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int ENGINE_up_ref(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/engine/eng_err.c:148,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/engine/eng_err.c:149,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/engine/eng_err.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: ERR_load_ENGINE_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_ENGINE_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dh.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_DH(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dh.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_DH(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dh.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_DH(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dh.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dh.c:38,1
    - Dst: ENGINE_register_DH
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dh.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_get_first
    - ENGINE_register_DH
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_DH(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dh.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_DH(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openssl-1.1.1g/crypto/engine/tb_dh.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dh.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_DH(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dh.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *ENGINE_get_DH(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - dh_meth
    argTypes:
    - ENGINE*
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_DH
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_dh.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_default_ciphers
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:16,1
    - Dst: ENGINE_set_default_digests
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:18,1
    - Dst: ENGINE_set_default_RSA
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:21,1
    - Dst: ENGINE_set_default_DSA
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:25,1
    - Dst: ENGINE_set_default_DH
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:29,1
    - Dst: ENGINE_set_default_EC
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:33,1
    - Dst: ENGINE_set_default_RAND
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:36,1
    - Dst: ENGINE_set_default_pkey_meths
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:39,1
    - Dst: ENGINE_set_default_pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:42,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 20
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - ENGINE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 14
    functionDepth: 5
    functionLinenumber: 14
    functionLinenumberEnd: 45
    functionName: ENGINE_set_default
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_fat.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_default_EC
    - ENGINE_set_default_ciphers
    - ENGINE_set_default_DH
    - ENGINE_set_default_pkey_meths
    - ENGINE_set_default_pkey_asn1_meths
    - ENGINE_set_default_DSA
    - ENGINE_set_default_RSA
    - ENGINE_set_default_RAND
    - ENGINE_set_default_digests
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default(ENGINE *e, unsigned int flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:54,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:56,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:58,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:60,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:62,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:64,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:66,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:68,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:70,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:72,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:74,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - alg
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 79
    functionName: int_def_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_fat.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int int_def_cb(const char *alg, int len, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:84,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:85,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:87,1
    - Dst: ENGINE_set_default
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - def_list
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: ENGINE_set_default_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_fat.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - ERR_add_error_data
    - CONF_parse_list
    - ENGINE_set_default
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_string(ENGINE *e, const char *def_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_register_ciphers
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:95,1
    - Dst: ENGINE_register_digests
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:96,1
    - Dst: ENGINE_register_RSA
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:98,1
    - Dst: ENGINE_register_DSA
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:101,1
    - Dst: ENGINE_register_DH
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:104,1
    - Dst: ENGINE_register_EC
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:107,1
    - Dst: ENGINE_register_RAND
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:109,1
    - Dst: ENGINE_register_pkey_meths
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:110,1
    - Dst: ENGINE_register_pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: ENGINE_register_complete
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_fat.c
    functionUses: 0
    functionsReached:
    - ENGINE_register_RSA
    - ENGINE_register_RAND
    - ENGINE_register_ciphers
    - ENGINE_register_DH
    - ENGINE_register_digests
    - ENGINE_register_DSA
    - ENGINE_register_pkey_asn1_meths
    - ENGINE_register_pkey_meths
    - ENGINE_register_EC
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_complete(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:119,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:119,1
    - Dst: ENGINE_register_complete
      Src: /src/openssl-1.1.1g/crypto/engine/eng_fat.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 6
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: ENGINE_register_all_complete
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_fat.c
    functionUses: 1
    functionsReached:
    - ENGINE_register_complete
    - ENGINE_get_next
    - ENGINE_get_first
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_all_complete(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rand.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_RAND
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rand.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_RAND(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rand.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_RAND
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rand.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_RAND(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rand.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_RAND
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_RAND(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rand.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rand.c:38,1
    - Dst: ENGINE_register_RAND
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rand.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_RAND
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rand.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_RAND
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_RAND(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rand.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_RAND
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_RAND(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openssl-1.1.1g/crypto/engine/tb_rand.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_RAND
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_RAND(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_RAND
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rand.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: RAND_METHOD
    signature: RAND_METHOD *ENGINE_get_RAND(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - rand_meth
    argTypes:
    - ENGINE*
    - RAND_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_RAND
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_rand.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - loadpriv_f
    argTypes:
    - ENGINE*
    - ENGINE_LOAD_KEY_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: ENGINE_set_load_privkey_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ENGINE_set_load_privkey_function(ENGINE *e,\n                                     ENGINE_LOAD_KEY_PTR
      loadpriv_f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - loadpub_f
    argTypes:
    - ENGINE*
    - ENGINE_LOAD_KEY_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: ENGINE_set_load_pubkey_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR
      loadpub_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - loadssl_f
    argTypes:
    - ENGINE*
    - ENGINE_SSL_CLIENT_CERT_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: ENGINE_set_load_ssl_client_cert_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ENGINE_set_load_ssl_client_cert_function(ENGINE *e,\n                                             ENGINE_SSL_CLIENT_CERT_PTR\n
      \                                            loadssl_f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: ENGINE_get_load_privkey_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_LOAD_KEY_PTR
    signature: ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: ENGINE_get_load_pubkey_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_LOAD_KEY_PTR
    signature: ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: ENGINE_get_ssl_client_cert_function
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_SSL_CLIENT_CERT_PTR
    signature: "ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const
      ENGINE\n                                                               *e)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:59,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:63,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:65,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:66,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:69,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:71,1
    - Dst: ENGINE*::load_privkey
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:75,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - e
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: ENGINE_load_private_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - ENGINE*::load_privkey
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id,\n
      \                                 UI_METHOD *ui_method, void *callback_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:90,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:94,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:96,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:97,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:100,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:102,1
    - Dst: ENGINE*::load_pubkey
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:105,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - e
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 112
    functionName: ENGINE_load_public_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - ENGINE*::load_pubkey
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id,\n
      \                                UI_METHOD *ui_method, void *callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ENGINE_unregister_ciphers
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_ciphers(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: engine_unregister_all_ciphers
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_ciphers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::ciphers
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:28,1
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: ENGINE_register_ciphers
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - ENGINE*::ciphers
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_ciphers(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:41,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:41,1
    - Dst: ENGINE_register_ciphers
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: ENGINE_register_all_ciphers
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_ciphers
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_ciphers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::ciphers
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:49,1
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: ENGINE_set_default_ciphers
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - ENGINE*::ciphers
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_ciphers(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: ENGINE_get_cipher_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_cipher_engine(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ciphers
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:72,1
    - Dst: fn
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:73,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: ENGINE_get_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - ENGINE_get_ciphers
    - fn
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ENGINE_get_ciphers
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_CIPHERS_PTR
    signature: ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_CIPHERS_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: ENGINE_set_ciphers
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_EC
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_EC(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_EC
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_EC(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_EC
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_EC(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c:38,1
    - Dst: ENGINE_register_EC
      Src: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_EC
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_get_first
    - ENGINE_register_EC
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_EC(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_EC
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_EC(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_EC
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_EC(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_EC
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ec_meth
    argTypes:
    - ENGINE*
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_EC
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ec_meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:41,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:42,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: clean_devcrypto_session
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - ioctl
    - memset
    - SYSerr
    linkageType: ''
    returnType: int
    signature: int clean_devcrypto_session(struct session_op *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:126,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts:
    - condition: ("Code that never should be reached" == NULL)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: get_cipher_data_index
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t get_cipher_data_index(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_data_index
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: get_cipher_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 17
    functionsReached:
    - get_cipher_data_index
    linkageType: ''
    returnType: struct cipher_data_st
    signature: struct cipher_data_st *get_cipher_data(int nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:153,1
    - Dst: get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:155,1
    - Dst: EVP_CIPHER_CTX_nid
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:155,1
    - Dst: clean_devcrypto_session
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:159,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:168,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 174
    functionName: cipher_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    - clean_devcrypto_session
    - EVP_CIPHER_CTX_nid
    - get_cipher_data
    - ioctl
    - SYSerr
    linkageType: ''
    returnType: int
    signature: "int cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                       const
      unsigned char *iv, int enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:180,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:182,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:189,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:199,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:203,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:204,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:206,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:220,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:221,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:229,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:230,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:235,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts:
    - condition: (inl >= ivlen)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    - condition: (inl >= ivlen)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    constantsTouched: []
    func_position:
      end: 255
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 255
    functionName: cipher_do_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_get_cipher_data
    - memcpy
    - memset
    - EVP_CIPHER_CTX_iv_noconst
    - assert
    - EVP_CIPHER_CTX_iv_length
    - ioctl
    - SYSerr
    linkageType: ''
    returnType: int
    signature: "int cipher_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t inl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:261,1
    - Dst: cipher_do_cipher
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:275,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:284,1
    - Dst: cipher_do_cipher
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 296
    functionName: ctr_do_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    - memset
    - cipher_do_cipher
    linkageType: ''
    returnType: int
    signature: "int ctr_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                         const
      unsigned char *in, size_t inl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:301,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:311,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:312,1
    - Dst: cipher_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:313,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:313,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: cipher_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - cipher_init
    - EVP_CIPHER_CTX_get_cipher_data
    - memset
    - EVP_CIPHER_CTX_iv
    linkageType: ''
    returnType: int
    signature: int cipher_ctrl(EVP_CIPHER_CTX *ctx, int type, int p1, void* p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:330,1
    - Dst: clean_devcrypto_session
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: cipher_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    - clean_devcrypto_session
    linkageType: ''
    returnType: int
    signature: int cipher_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:350,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:354,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:362,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:363,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:369,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:373,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:375,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:380,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:381,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:385,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:386,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:388,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:390,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 397
    functionName: prepare_cipher_methods
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_ctrl
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - memset
    - EVP_CIPHER_meth_set_init
    - ioctl
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_flags
    linkageType: ''
    returnType: void
    signature: void prepare_cipher_methods(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_data_index
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: get_cipher_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_cipher_data_index
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *get_cipher_method(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: get_cipher_nids
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_cipher_nids(const int **nids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_data_index
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:416,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: destroy_cipher_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - get_cipher_data_index
    linkageType: ''
    returnType: void
    signature: void destroy_cipher_method(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:426,1
    - Dst: destroy_cipher_method
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: destroy_all_cipher_methods
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - destroy_cipher_method
    linkageType: ''
    returnType: void
    signature: void destroy_all_cipher_methods(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_nids
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:434,1
    - Dst: get_cipher_method
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 439
    functionName: devcrypto_ciphers
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_cipher_method
    - get_cipher_nids
    linkageType: ''
    returnType: int
    signature: "int devcrypto_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                             const
      int **nids, int nid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:499,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts:
    - condition: ("Code that never should be reached" == NULL)
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    constantsTouched: []
    func_position:
      end: 510
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 510
    functionName: get_digest_data_index
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t get_digest_data_index(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_digest_data_index
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 515
    functionName: get_digest_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_digest_data_index
    linkageType: ''
    returnType: struct digest_data_st
    signature: struct digest_data_st *get_digest_data(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:525,1
    - Dst: get_digest_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:527,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:527,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:531,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:533,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 539
    functionName: digest_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - get_digest_data
    - EVP_MD_CTX_type
    - memset
    - ioctl
    - SYSerr
    linkageType: ''
    returnType: int
    signature: int digest_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:546,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - src
    - srclen
    - res
    - flags
    argTypes:
    - struct digest_ctx*
    - void*
    - size_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 554
    functionName: digest_op
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - ioctl
    - memset
    linkageType: ''
    returnType: int
    signature: "int digest_op(struct digest_ctx *ctx, const void *src, size_t srclen,\n
      \                    void *res, unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:559,1
    - Dst: digest_op
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:567,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 573
    functionName: digest_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - digest_op
    - EVP_MD_CTX_md_data
    - SYSerr
    linkageType: ''
    returnType: int
    signature: int digest_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:578,1
    - Dst: digest_op
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:582,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 588
    functionName: digest_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - digest_op
    - EVP_MD_CTX_md_data
    - SYSerr
    linkageType: ''
    returnType: int
    signature: int digest_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:593,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:595,1
    - Dst: digest_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:601,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:602,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:608,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 590
    functionDepth: 4
    functionLinenumber: 590
    functionLinenumberEnd: 613
    functionName: digest_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - digest_init
    - EVP_MD_CTX_md_data
    - SYSerr
    - ioctl
    linkageType: ''
    returnType: int
    signature: int digest_copy(EVP_MD_CTX *to, const EVP_MD_CTX *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:618,1
    - Dst: clean_devcrypto_session
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 624
    functionName: digest_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - clean_devcrypto_session
    linkageType: ''
    returnType: int
    signature: int digest_cleanup(EVP_MD_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:632,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:633,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:635,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:639,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:642,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:644,1
    - Dst: ioctl
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - digest_data_index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 648
    functionName: devcrypto_test_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - ioctl
    - memset
    linkageType: ''
    returnType: int
    signature: int devcrypto_test_digest(size_t digest_data_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:663,1
    - Dst: devcrypto_test_digest
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:669,1
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:672,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:674,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:676,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:678,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:679,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:680,1
    - Dst: EVP_MD_meth_set_copy
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:681,1
    - Dst: EVP_MD_meth_set_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:682,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:683,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:685,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 691
    functionName: prepare_digest_methods
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_cleanup
    - EVP_MD_meth_set_input_blocksize
    - EVP_MD_meth_set_result_size
    - devcrypto_test_digest
    - EVP_MD_meth_set_copy
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_final
    - EVP_MD_meth_new
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: void prepare_digest_methods(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_digest_data_index
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 700
    functionName: get_digest_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_digest_data_index
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *get_digest_method(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 706
    functionName: get_digest_nids
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_digest_nids(const int **nids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_digest_data_index
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:710,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: destroy_digest_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_free
    - get_digest_data_index
    linkageType: ''
    returnType: void
    signature: void destroy_digest_method(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:720,1
    - Dst: destroy_digest_method
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 3
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: destroy_all_digest_methods
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - destroy_digest_method
    linkageType: ''
    returnType: void
    signature: void destroy_all_digest_methods(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_digest_nids
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:728,1
    - Dst: get_digest_method
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 733
    functionName: devcrypto_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_digest_method
    - get_digest_nids
    linkageType: ''
    returnType: int
    signature: "int devcrypto_digests(ENGINE *e, const EVP_MD **digest,\n                             const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_all_cipher_methods
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:745,1
    - Dst: destroy_all_digest_methods
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:747,1
    - Dst: close
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 743
    functionDepth: 4
    functionLinenumber: 743
    functionLinenumberEnd: 753
    functionName: devcrypto_unload
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 0
    functionsReached:
    - destroy_all_digest_methods
    - close
    - destroy_all_cipher_methods
    linkageType: ''
    returnType: int
    signature: int devcrypto_unload(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:762,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:766,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:766,1
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:770,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:771,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:772,1
    - Dst: close
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:778,1
    - Dst: prepare_cipher_methods
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:782,1
    - Dst: prepare_digest_methods
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:784,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:787,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:788,1
    - Dst: ENGINE_set_RSA
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:812,1
    - Dst: ENGINE_set_DSA
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:815,1
    - Dst: ENGINE_set_DH
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:818,1
    - Dst: ENGINE_set_EC
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:821,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:824,1
    - Dst: ENGINE_set_digests
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:826,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:829,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:833,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:834,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c:835,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 758
    functionDepth: 5
    functionLinenumber: 758
    functionLinenumberEnd: 836
    functionName: engine_load_devcrypto_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    functionUses: 1
    functionsReached:
    - ENGINE_set_RSA
    - ENGINE_set_destroy_function
    - strerror
    - close
    - fprintf
    - prepare_cipher_methods
    - ENGINE_set_DH
    - ENGINE_add
    - ERR_clear_error
    - prepare_digest_methods
    - ENGINE_set_DSA
    - ENGINE_new
    - ENGINE_set_ciphers
    - ENGINE_set_EC
    - ENGINE_free
    - ENGINE_set_name
    - open
    - ENGINE_set_digests
    - ENGINE_set_id
    linkageType: ''
    returnType: void
    signature: void engine_load_devcrypto_int()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:26,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:34,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 38
    functionName: engine_unlocked_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_init.c
    functionUses: 2
    functionsReached:
    - ENGINE*::init
    - engine_ref_debug
    linkageType: ''
    returnType: int
    signature: int engine_unlocked_init(ENGINE *e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:57,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:60,1
    - Dst: ENGINE*::finish
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:61,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:63,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:67,1
    - Dst: engine_free_util
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:69,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - e
    - unlock_for_handlers
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 74
    functionName: engine_unlocked_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_init.c
    functionUses: 4
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - ENGINEerr
    - engine_free_util
    - ENGINE*::finish
    - REF_ASSERT_ISNT
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    linkageType: ''
    returnType: int
    signature: int engine_unlocked_finish(ENGINE *e, int unlock_for_handlers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:81,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:84,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:85,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:88,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:89,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: ENGINE_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_init.c
    functionUses: 14
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - engine_unlocked_init
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int ENGINE_init(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:101,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:102,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:103,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/eng_init.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: ENGINE_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/eng_init.c
    functionUses: 23
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - ENGINEerr
    - engine_unlocked_finish
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ENGINE_finish(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: ENGINE_unregister_pkey_asn1_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_pkey_asn1_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: engine_unregister_all_pkey_asn1_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_pkey_asn1_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:39,1
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: ENGINE_register_pkey_asn1_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - ENGINE*::pkey_asn1_meths
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_pkey_asn1_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:52,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:52,1
    - Dst: ENGINE_register_pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: ENGINE_register_all_pkey_asn1_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - ENGINE_register_pkey_asn1_meths
    - ENGINE_get_next
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_pkey_asn1_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:60,1
    - Dst: engine_table_register
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: ENGINE_set_default_pkey_asn1_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - ENGINE*::pkey_asn1_meths
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_pkey_asn1_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: ENGINE_get_pkey_asn1_meth_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:86,1
    - Dst: fn
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:87,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: ENGINE_get_pkey_asn1_meth
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - ENGINE_get_pkey_asn1_meths
    - fn
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: ENGINE_get_pkey_asn1_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_PKEY_ASN1_METHS_PTR
    signature: ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE
      *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_PKEY_ASN1_METHS_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: ENGINE_set_pkey_asn1_meths
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR
      f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:120,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:122,1
    - Dst: EVP_PKEY_asn1_free
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: engine_pkey_asn1_meths_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_asn1_free
    - ENGINE*::pkey_asn1_meths
    linkageType: ''
    returnType: void
    signature: void engine_pkey_asn1_meths_free(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:146,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:147,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:149,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:151,1
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - e
    - str
    - len
    argTypes:
    - ENGINE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: ENGINE_get_pkey_asn1_meth_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - ENGINE*::pkey_asn1_meths
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e,\n                                                          const
      char *str,\n                                                          int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_num
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:171,1
    - Dst: sk_ENGINE_value
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:172,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:174,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:176,1
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - nid
    - sk
    - def
    - arg
    argTypes:
    - int
    - STACK_OF*
    - ENGINE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: look_str_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_value
    - ENGINE*::pkey_asn1_meths
    - sk_ENGINE_num
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void look_str_cb(int nid, STACK_OF(ENGINE) *sk, ENGINE *def, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:195,1
    - Dst: ENGINEerr
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:196,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:200,1
    - Dst: engine_table_doall
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:201,1
    - Dst: engine_ref_debug
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:205,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - pe
    - str
    - len
    argTypes:
    - ENGINE**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 210
    functionName: ENGINE_pkey_asn1_find_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - engine_ref_debug
    - CRYPTO_THREAD_unlock
    - RUN_ONCE
    - engine_table_doall
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe,\n                                                      const
      char *str,\n                                                      int len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:75,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:85,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:88,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:91,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:95,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:100,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:101,1
    - Dst: module_run
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - cnf
    - appname
    - flags
    argTypes:
    - CONF*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 110
    functionName: CONF_modules_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - module_run
    - sk_CONF_VALUE_num
    - NCONF_get_section
    - STACK_OF
    - sk_CONF_VALUE_value
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "int CONF_modules_load(const CONF *cnf, const char *appname,\n                      unsigned
      long flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:118,1
    - Dst: CONF_get1_default_config_file
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:123,1
    - Dst: NCONF_load
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:129,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:131,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:131,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:132,1
    - Dst: CONF_modules_load
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:138,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:142,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - filename
    - appname
    - flags
    argTypes:
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 149
    functionName: CONF_modules_load_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - NCONF_load
    - CONF_modules_load
    - NCONF_new
    - NCONF_free
    - OPENSSL_free
    - CONF_get1_default_config_file
    - ERR_GET_REASON
    - ERR_peek_last_error
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "int CONF_modules_load_file(const char *filename, const char *appname,\n
      \                          unsigned long flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: module_find
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:157,1
    - Dst: module_load_dso
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:161,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:165,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:166,1
    - Dst: module_init
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:171,1
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:175,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:177,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:178,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - cnf
    - name
    - value
    - flags
    argTypes:
    - CONF*
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 185
    functionName: module_run
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - module_init
    - BIO_snprintf
    - DECIMAL_SIZE
    - ERR_add_error_data
    - module_find
    - module_load_dso
    linkageType: ''
    returnType: int
    signature: "int module_run(const CONF *cnf, const char *name, const char *value,\n
      \                     unsigned long flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:198,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:200,1
    - Dst: DSO_load
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:203,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:208,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:213,1
    - Dst: module_add
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:215,1
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:223,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:224,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - cnf
    - name
    - value
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 227
    functionName: module_load_dso
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - CONFerr
    - DSO_load
    - ERR_add_error_data
    - module_add
    - ERR_clear_error
    - DSO_free
    - DSO_bind_func
    linkageType: ''
    returnType: CONF_MODULE
    signature: "CONF_MODULE *module_load_dso(const CONF *cnf,\n                                    const
      char *name, const char *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_MODULE_new_null
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:235,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:238,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:239,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:244,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:248,1
    - Dst: sk_CONF_MODULE_push
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:252,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:253,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - dso
    - name
    - ifunc
    - ffunc
    argTypes:
    - DSO*
    - char*
    - conf_init_func*
    - conf_finish_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 259
    functionName: module_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 5
    functionsReached:
    - CONFerr
    - sk_CONF_MODULE_push
    - OPENSSL_free
    - OPENSSL_strdup
    - OPENSSL_zalloc
    - sk_CONF_MODULE_new_null
    linkageType: ''
    returnType: CONF_MODULE
    signature: "CONF_MODULE *module_add(DSO *dso, const char *name,\n                               conf_init_func
      *ifunc, conf_finish_func *ffunc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:272,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:277,1
    - Dst: sk_CONF_MODULE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:279,1
    - Dst: sk_CONF_MODULE_value
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:280,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 287
    functionName: module_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - strrchr
    - sk_CONF_MODULE_num
    - sk_CONF_MODULE_value
    - strncmp
    - strlen
    linkageType: ''
    returnType: CONF_MODULE
    signature: CONF_MODULE *module_find(const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:298,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:303,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:304,1
    - Dst: CONF_MODULE*::init
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:312,1
    - Dst: sk_CONF_IMODULE_new_null
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:320,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:322,1
    - Dst: sk_CONF_IMODULE_push
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:327,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:328,1
    - Dst: CONF_MODULE*::finish
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:340,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:344,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:345,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:346,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - pmod
    - name
    - value
    - cnf
    argTypes:
    - CONF_MODULE*
    - char*
    - char*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 351
    functionName: module_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - OPENSSL_malloc
    - CONF_MODULE*::finish
    - sk_CONF_IMODULE_push
    - CONF_MODULE*::init
    - OPENSSL_free
    - OPENSSL_strdup
    - sk_CONF_IMODULE_new_null
    linkageType: ''
    returnType: int
    signature: "int module_init(CONF_MODULE *pmod, const char *name, const char *value,\n
      \                      const CONF *cnf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONF_modules_finish
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:363,1
    - Dst: sk_CONF_MODULE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:365,1
    - Dst: sk_CONF_MODULE_value
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:366,1
    - Dst: sk_CONF_MODULE_delete
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:371,1
    - Dst: module_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:372,1
    - Dst: sk_CONF_MODULE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:374,1
    - Dst: sk_CONF_MODULE_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - all
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 378
    functionName: CONF_modules_unload
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - sk_CONF_MODULE_num
    - sk_CONF_MODULE_delete
    - module_free
    - sk_CONF_MODULE_free
    - sk_CONF_MODULE_value
    - CONF_modules_finish
    linkageType: ''
    returnType: void
    signature: void CONF_modules_unload(int all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:383,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:384,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_MODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 386
    functionName: module_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - DSO_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void module_free(CONF_MODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_IMODULE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:393,1
    - Dst: sk_CONF_IMODULE_pop
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:394,1
    - Dst: module_finish
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:395,1
    - Dst: sk_CONF_IMODULE_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: CONF_modules_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - sk_CONF_IMODULE_free
    - sk_CONF_IMODULE_pop
    - module_finish
    - sk_CONF_IMODULE_num
    linkageType: ''
    returnType: void
    signature: void CONF_modules_finish(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONF_IMODULE*::pmod::finish
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:408,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:410,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:411,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - imod
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 413
    functionName: module_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - CONF_IMODULE*::pmod::finish
    linkageType: ''
    returnType: void
    signature: void module_finish(CONF_IMODULE *imod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: module_add
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - ifunc
    - ffunc
    argTypes:
    - char*
    - conf_init_func*
    - conf_finish_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: CONF_module_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 4
    functionsReached:
    - module_add
    linkageType: ''
    returnType: int
    signature: "int CONF_module_add(const char *name, conf_init_func *ifunc,\n                    conf_finish_func
      *ffunc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_modules_finish
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:428,1
    - Dst: CONF_modules_unload
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: conf_modules_free_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - CONF_modules_finish
    - CONF_modules_unload
    linkageType: ''
    returnType: void
    signature: void conf_modules_free_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: CONF_imodule_get_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *CONF_imodule_get_name(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: CONF_imodule_get_value
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *CONF_imodule_get_value(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: CONF_imodule_get_usr_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *CONF_imodule_get_usr_data(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - usr_data
    argTypes:
    - CONF_IMODULE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: CONF_imodule_set_usr_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: CONF_imodule_get_module
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONF_MODULE
    signature: CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: CONF_imodule_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - flags
    argTypes:
    - CONF_IMODULE*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: CONF_imodule_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmod
    argTypes:
    - CONF_MODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: CONF_module_get_usr_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *CONF_module_get_usr_data(CONF_MODULE *pmod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pmod
    - usr_data
    argTypes:
    - CONF_MODULE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: CONF_module_set_usr_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:486,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:487,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:489,1
    - Dst: X509_get_default_cert_area
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:489,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:494,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:496,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:500,1
    - Dst: X509_get_default_cert_area
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 504
    functionName: CONF_get1_default_config_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - OPENSSL_malloc
    - ossl_safe_getenv
    - OPENSSL_strdup
    - X509_get_default_cert_area
    - strlen
    linkageType: ''
    returnType: char
    signature: char *CONF_get1_default_config_file(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:521,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:528,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:531,1
    - Dst: list_cb
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:533,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:538,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:540,1
    - Dst: list_cb
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mod.c:543,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - list_
    - sep
    - nospc
    - arg
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 551
    functionName: CONF_parse_list
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    functionUses: 4
    functionsReached:
    - CONFerr
    - isspace
    - strchr
    - list_cb
    - strlen
    linkageType: ''
    returnType: int
    signature: "int CONF_parse_list(const char *list_, int sep, int nospc,\n                    int
      (*list_cb) (const char *elem, int len, void *usr),\n                    void
      *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: ssl_module_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ssl_module_free(CONF_IMODULE *md)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:66,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:68,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:69,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:70,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:72,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:74,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:75,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:78,1
    - Dst: ssl_module_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:79,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:80,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:86,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:87,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:87,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:89,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:91,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:94,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:96,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:99,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:102,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:103,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:109,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:113,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:118,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:119,1
    - Dst: ssl_module_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:128,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 130
    functionName: ssl_module_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached:
    - CONFerr
    - NCONF_get_section
    - sk_CONF_VALUE_num
    - CONF_imodule_get_value
    - STACK_OF
    - ERR_add_error_data
    - strchr
    - OPENSSL_strdup
    - OPENSSL_zalloc
    - ssl_module_free
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int ssl_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - idx
    - name
    - cnt
    argTypes:
    - size_t
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: conf_ssl_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_CONF_CMD
    signature: SSL_CONF_CMD *conf_ssl_get(size_t idx, const char **name, size_t *cnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - name
    - idx
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: conf_ssl_name_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int conf_ssl_name_find(const char *name, size_t *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cmd
    - idx
    - cmdstr
    - arg
    argTypes:
    - SSL_CONF_CMD*
    - size_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: conf_ssl_get_cmd
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void conf_ssl_get_cmd(const SSL_CONF_CMD *cmd, size_t idx, char **cmdstr,\n
      \                     char **arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: conf_add_ssl_module
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: void conf_add_ssl_module(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - CONF_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: CONF_set_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CONF_set_default_method(CONF_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:113,1
    - Dst: CONF_set_nconf
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:116,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - conf
    - group
    - name
    argTypes:
    - LHASH_OF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: CONF_get_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 3
    functionsReached:
    - NCONF_get_string
    - CONF_set_nconf
    linkageType: ''
    returnType: char
    signature: "char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group,\n
      \                     const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_default
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:182,1
    - Dst: CONF_METHOD*::create
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:184,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - meth
    argTypes:
    - CONF_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 191
    functionName: NCONF_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - NCONF_default
    - CONF_METHOD*::create
    linkageType: ''
    returnType: CONF
    signature: CONF *NCONF_new(CONF_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONF*::meth::destroy
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: NCONF_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONF*::meth::destroy
    linkageType: ''
    returnType: void
    signature: void NCONF_free(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONF*::meth::destroy_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: NCONF_free_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - CONF*::meth::destroy_data
    linkageType: ''
    returnType: void
    signature: void NCONF_free_data(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:210,1
    - Dst: CONF*::meth::load
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - conf
    - file
    - eline
    argTypes:
    - CONF*
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: NCONF_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - CONF*::meth::load
    linkageType: ''
    returnType: int
    signature: int NCONF_load(CONF *conf, const char *file, long *eline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:222,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:223,1
    - Dst: NCONF_load_bio
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:226,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - conf
    - fp
    - eline
    argTypes:
    - CONF*
    - FILE*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: NCONF_load_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - CONFerr
    - BIO_new_fp
    - NCONF_load_bio
    - BIO_free
    linkageType: ''
    returnType: int
    signature: int NCONF_load_fp(CONF *conf, FILE *fp, long *eline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:235,1
    - Dst: CONF*::meth::load_bio
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - conf
    - bp
    - eline
    argTypes:
    - CONF*
    - BIO*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: NCONF_load_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - CONF*::meth::load_bio
    linkageType: ''
    returnType: int
    signature: int NCONF_load_bio(CONF *conf, BIO *bp, long *eline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _CONF_get_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:259,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:269,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:273,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - conf
    - group
    - name
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 276
    functionName: NCONF_get_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 3
    functionsReached:
    - CONFerr
    - _CONF_get_string
    - ERR_add_error_data
    linkageType: ''
    returnType: char
    signature: char *NCONF_get_string(const CONF *conf, const char *group, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: default_is_number
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: int default_is_number(const CONF *conf, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: default_to_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int default_to_int(const CONF *conf, char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:297,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:301,1
    - Dst: is_number
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:312,1
    - Dst: to_int
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:313,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - conf
    - group
    - name
    - result
    argTypes:
    - CONF*
    - char*
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 324
    functionName: NCONF_get_number_e
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - NCONF_get_string
    - is_number
    - to_int
    linkageType: ''
    returnType: int
    signature: "int NCONF_get_number_e(const CONF *conf, const char *group, const
      char *name,\n                       long *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:331,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:332,1
    - Dst: NCONF_dump_bio
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:335,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - conf
    - out
    argTypes:
    - CONF*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 327
    functionDepth: 5
    functionLinenumber: 327
    functionLinenumberEnd: 338
    functionName: NCONF_dump_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - CONFerr
    - BIO_new_fp
    - NCONF_dump_bio
    - BIO_free
    linkageType: ''
    returnType: int
    signature: int NCONF_dump_fp(const CONF *conf, FILE *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:344,1
    - Dst: CONF*::meth::dump
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conf
    - out
    argTypes:
    - CONF*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 349
    functionName: NCONF_dump_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - CONF*::meth::dump
    linkageType: ''
    returnType: int
    signature: int NCONF_dump_bio(const CONF *conf, BIO *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:357,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 366
    functionName: OPENSSL_INIT_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - memset
    - malloc
    linkageType: ''
    returnType: OPENSSL_INIT_SETTINGS
    signature: OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:376,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - settings
    - filename
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 385
    functionName: OPENSSL_INIT_set_config_filename
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    linkageType: ''
    returnType: int
    signature: "int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings,\n
      \                                    const char *filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - settings
    - flags
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: OPENSSL_INIT_set_config_file_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings,\n
      \                                       unsigned long flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:399,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - settings
    - appname
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 408
    functionName: OPENSSL_INIT_set_config_appname
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    linkageType: ''
    returnType: int
    signature: "int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings,\n
      \                                   const char *appname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:413,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:414,1
    - Dst: free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_lib.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - settings
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: OPENSSL_INIT_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/conf/conf_sap.c:35,1
    - Dst: strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_sap.c:37,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/conf/conf_sap.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - appname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: OPENSSL_config
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_sap.c
    functionUses: 0
    functionsReached:
    - strdup
    - OPENSSL_init_crypto
    - memset
    linkageType: ''
    returnType: void
    signature: void OPENSSL_config(const char *appname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/crypto/conf/conf_sap.c:58,1
    - Dst: OPENSSL_load_builtin_modules
      Src: /src/openssl-1.1.1g/crypto/conf/conf_sap.c:62,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/openssl-1.1.1g/crypto/conf/conf_sap.c:65,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/conf/conf_sap.c:67,1
    - Dst: CONF_modules_load_file
      Src: /src/openssl-1.1.1g/crypto/conf/conf_sap.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - settings
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 73
    functionName: openssl_config_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_sap.c
    functionUses: 1
    functionsReached:
    - ERR_clear_error
    - CONF_modules_load_file
    - ENGINE_load_builtin_engines
    - OPENSSL_load_builtin_modules
    - fprintf
    linkageType: ''
    returnType: int
    signature: int openssl_config_int(const OPENSSL_INIT_SETTINGS *settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: openssl_no_config_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_sap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void openssl_no_config_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_add_oid_module
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mall.c:24,1
    - Dst: ASN1_add_stable_module
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mall.c:25,1
    - Dst: ENGINE_add_conf_module
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mall.c:27,1
    - Dst: EVP_add_alg_module
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mall.c:29,1
    - Dst: conf_add_ssl_module
      Src: /src/openssl-1.1.1g/crypto/conf/conf_mall.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: OPENSSL_load_builtin_modules
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_mall.c
    functionUses: 1
    functionsReached:
    - ENGINE_add_conf_module
    - EVP_add_alg_module
    - ASN1_add_stable_module
    - conf_add_ssl_module
    - ASN1_add_oid_module
    linkageType: ''
    returnType: void
    signature: void OPENSSL_load_builtin_modules(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: IS_COMMENT
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_COMMENT(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: IS_FCOMMENT
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_FCOMMENT(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: IS_EOF
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_EOF(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: IS_ESC
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ESC(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: IS_NUMBER
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NUMBER(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: IS_WS
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WS(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: IS_ALNUM
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ALNUM(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: IS_ALNUM_PUNCT
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ALNUM_PUNCT(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: IS_QUOTE
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_QUOTE(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: IS_DQUOTE
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DQUOTE(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: S_ISDIR
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: scan_esc
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scan_esc(conf,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: NCONF_default
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CONF_METHOD
    signature: CONF_METHOD *NCONF_default(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: NCONF_WIN32
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONF_METHOD
    signature: CONF_METHOD *NCONF_WIN32(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:106,1
    - Dst: CONF_METHOD*::init
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - meth
    argTypes:
    - CONF_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: def_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - CONF_METHOD*::init
    linkageType: ''
    returnType: CONF
    signature: CONF *def_create(CONF_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: def_init_default
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int def_init_default(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: def_init_WIN32
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int def_init_WIN32(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: def_destroy_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: def_destroy
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - def_destroy_data
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int def_destroy(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _CONF_free_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: def_destroy_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - _CONF_free_data
    linkageType: ''
    returnType: int
    signature: int def_destroy_data(CONF *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:162,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:164,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:167,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:167,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:168,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:170,1
    - Dst: def_load_bio
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:174,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - conf
    - name
    - line
    argTypes:
    - CONF*
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: def_load
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - CONFerr
    - def_load_bio
    - ERR_GET_REASON
    - ERR_peek_last_error
    - BIO_free
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int def_load(CONF *conf, const char *name, long *line)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:189,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:195,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:201,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:202,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:206,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:208,1
    - Dst: _CONF_new_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:212,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:213,1
    - Dst: _CONF_new_section
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:217,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:219,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:226,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:227,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:233,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:235,1
    - Dst: get_next_file
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:245,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:246,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:250,1
    - Dst: sk_BIO_pop
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:256,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:260,1
    - Dst: IS_ESC
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:295,1
    - Dst: IS_ESC
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:295,1
    - Dst: clear_comments
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:305,1
    - Dst: eat_ws
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:306,1
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:307,1
    - Dst: eat_ws
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:313,1
    - Dst: eat_alpha_numeric
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:316,1
    - Dst: eat_ws
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:317,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:323,1
    - Dst: str_copy
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:328,1
    - Dst: _CONF_get_section
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:330,1
    - Dst: _CONF_new_section
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:331,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:333,1
    - Dst: eat_alpha_numeric
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:340,1
    - Dst: eat_alpha_numeric
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:346,1
    - Dst: eat_ws
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:350,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:351,1
    - Dst: eat_ws
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:358,1
    - Dst: trim_ws
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:360,1
    - Dst: str_copy
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:361,1
    - Dst: process_include
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:365,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:368,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:371,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:372,1
    - Dst: sk_BIO_new_null
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:377,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:378,1
    - Dst: sk_BIO_push
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:382,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:383,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:391,1
    - Dst: eat_ws
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:396,1
    - Dst: trim_ws
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:397,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:399,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:400,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:403,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:406,1
    - Dst: str_copy
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:409,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:412,1
    - Dst: _CONF_get_section
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:413,1
    - Dst: _CONF_new_section
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:415,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:417,1
    - Dst: _CONF_add_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:423,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:424,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:430,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:431,1
    - Dst: sk_BIO_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:436,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:439,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:440,1
    - Dst: sk_BIO_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:446,1
    - Dst: sk_BIO_pop
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:447,1
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:448,1
    - Dst: sk_BIO_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:451,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:453,1
    - Dst: OPENSSL_DIR_end
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:455,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:459,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:460,1
    - Dst: CONF_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:462,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:466,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:467,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:468,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 235
    argCount: 3
    argNames:
    - conf
    - in
    - line
    argTypes:
    - CONF*
    - BIO*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 471
    functionName: def_load_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - eat_ws
    - _CONF_new_section
    - BIO_snprintf
    - STACK_OF
    - IS_EOF
    - sk_BIO_free
    - ERR_add_error_data
    - process_include
    - BUF_MEM_new
    - trim_ws
    - IS_ESC
    - CONF_free
    - CONFerr
    - BIO_vfree
    - OPENSSL_malloc
    - strcmp
    - sk_BIO_pop
    - sk_BIO_new_null
    - OPENSSL_free
    - str_copy
    - get_next_file
    - _CONF_new_data
    - _CONF_get_section
    - _CONF_add_string
    - eat_alpha_numeric
    - DECIMAL_SIZE
    - OPENSSL_strdup
    - BUF_MEM_free
    - BIO_new_file
    - sk_BIO_num
    - sk_BIO_push
    - clear_comments
    - OPENSSL_DIR_end
    - BIO_gets
    - strncmp
    - BUF_MEM_grow
    - strlen
    linkageType: ''
    returnType: int
    signature: int def_load_bio(CONF *conf, BIO *in, long *line)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_FCOMMENT
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:476,1
    - Dst: IS_WS
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:480,1
    - Dst: IS_COMMENT
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:487,1
    - Dst: IS_DQUOTE
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:491,1
    - Dst: scan_dquote
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:492,1
    - Dst: IS_QUOTE
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:495,1
    - Dst: scan_quote
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:496,1
    - Dst: IS_ESC
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:499,1
    - Dst: scan_esc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:500,1
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:503,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 508
    functionName: clear_comments
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_FCOMMENT
    - scan_esc
    - IS_DQUOTE
    - IS_QUOTE
    - IS_WS
    - IS_EOF
    - IS_ESC
    - scan_dquote
    - IS_COMMENT
    - scan_quote
    linkageType: ''
    returnType: void
    signature: void clear_comments(CONF *conf, char *p)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:516,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:519,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:520,1
    - Dst: IS_QUOTE
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:524,1
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:527,1
    - Dst: IS_ESC
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:528,1
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:530,1
    - Dst: IS_DQUOTE
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:537,1
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:540,1
    - Dst: IS_ESC
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:552,1
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:555,1
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:566,1
    - Dst: IS_ALNUM
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:585,1
    - Dst: IS_ALNUM
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:594,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:602,1
    - Dst: _CONF_get_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:617,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:622,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:625,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:627,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:630,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:631,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:654,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:656,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:659,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 127
    argCount: 4
    argNames:
    - conf
    - section
    - pto
    - from
    argTypes:
    - CONF*
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 661
    functionName: str_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - BUF_MEM_grow_clean
    - IS_DQUOTE
    - IS_QUOTE
    - OPENSSL_free
    - IS_EOF
    - BUF_MEM_free
    - BUF_MEM_new
    - IS_ESC
    - _CONF_get_string
    - BUF_MEM_grow
    - strlen
    - IS_ALNUM
    linkageType: ''
    returnType: int
    signature: int str_copy(CONF *conf, char *section, char **pto, char *from)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:675,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:676,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:677,1
    - Dst: S_ISDIR
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:682,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:684,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:686,1
    - Dst: get_next_file
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:690,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:695,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - include
    - dirctx
    - dirpath
    argTypes:
    - char*
    - OPENSSL_DIR_CTX**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 697
    functionName: process_include
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - stat
    - ERR_add_error_data
    - get_next_file
    - S_ISDIR
    - BIO_new_file
    - SYSerr
    linkageType: ''
    returnType: BIO
    signature: "BIO *process_include(char *include, OPENSSL_DIR_CTX **dirctx,\n                            char
      **dirpath)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:708,1
    - Dst: OPENSSL_DIR_read
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:709,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:712,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:715,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:716,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:722,1
    - Dst: CONFerr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:724,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:736,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:740,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:741,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:743,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:745,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:746,1
    - Dst: OPENSSL_DIR_end
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:752,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - path
    - dirctx
    argTypes:
    - char*
    - OPENSSL_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 755
    functionName: get_next_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 2
    functionsReached:
    - CONFerr
    - OPENSSL_DIR_read
    - OPENSSL_strlcat
    - OPENSSL_free
    - OPENSSL_strlcpy
    - OPENSSL_zalloc
    - OPENSSL_DIR_end
    - strcasecmp
    - BIO_new_file
    - strlen
    linkageType: ''
    returnType: BIO
    signature: BIO *get_next_file(const char *path, OPENSSL_DIR_CTX **dirctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - conf
    - c
    - type
    argTypes:
    - CONF*
    - char
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 780
    functionName: is_keytype
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_keytype(const CONF *conf, char c, unsigned short type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_WS
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:784,1
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 787
    functionName: eat_ws
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_WS
    - IS_EOF
    linkageType: ''
    returnType: char
    signature: char *eat_ws(CONF *conf, char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:793,1
    - Dst: IS_WS
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:796,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - conf
    - start
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 800
    functionName: trim_ws
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_EOF
    - IS_WS
    linkageType: ''
    returnType: void
    signature: void trim_ws(CONF *conf, char *start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_ESC
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:805,1
    - Dst: scan_esc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:806,1
    - Dst: IS_ALNUM_PUNCT
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 813
    functionName: eat_alpha_numeric
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - scan_esc
    - IS_ALNUM_PUNCT
    - IS_ESC
    linkageType: ''
    returnType: char
    signature: char *eat_alpha_numeric(CONF *conf, char *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:820,1
    - Dst: IS_ESC
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:821,1
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:823,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 831
    functionName: scan_quote
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_ESC
    - IS_EOF
    linkageType: ''
    returnType: char
    signature: char *scan_quote(CONF *conf, char *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_EOF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:838,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 851
    functionName: scan_dquote
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_EOF
    linkageType: ''
    returnType: char
    signature: char *scan_dquote(CONF *conf, char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:856,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - CONF_VALUE*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 859
    functionName: dump_value_doall_arg
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void dump_value_doall_arg(const CONF_VALUE *a, BIO *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_doall_BIO
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conf
    - out
    argTypes:
    - CONF*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 867
    functionName: def_dump
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - lh_CONF_VALUE_doall_BIO
    linkageType: ''
    returnType: int
    signature: int def_dump(const CONF *conf, BIO *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_NUMBER
      Src: /src/openssl-1.1.1g/crypto/conf/conf_def.c:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 872
    functionName: def_is_number
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - IS_NUMBER
    linkageType: ''
    returnType: int
    signature: int def_is_number(const CONF *conf, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 877
    functionName: def_to_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int def_to_int(const CONF *conf, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_retrieve
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conf
    - section
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: _CONF_get_section
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_retrieve
    linkageType: ''
    returnType: CONF_VALUE
    signature: CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:51,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:53,1
    - Dst: sk_CONF_VALUE_push
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:56,1
    - Dst: lh_CONF_VALUE_insert
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:60,1
    - Dst: sk_CONF_VALUE_delete_ptr
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:62,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:63,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:64,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - conf
    - section
    - value
    argTypes:
    - CONF*
    - CONF_VALUE*
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: _CONF_add_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - STACK_OF
    - sk_CONF_VALUE_delete_ptr
    - lh_CONF_VALUE_insert
    - sk_CONF_VALUE_push
    linkageType: ''
    returnType: int
    signature: int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_retrieve
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:82,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:85,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:86,1
    - Dst: lh_CONF_VALUE_retrieve
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:93,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - conf
    - section
    - name
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 100
    functionName: _CONF_get_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 2
    functionsReached:
    - strcmp
    - ossl_safe_getenv
    - lh_CONF_VALUE_retrieve
    linkageType: ''
    returnType: char
    signature: "char *_CONF_get_string(const CONF *conf, const char *section,\n                       const
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:104,1
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: conf_value_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long conf_value_hash(const CONF_VALUE *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:112,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CONF_VALUE*
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: conf_value_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int conf_value_cmp(const CONF_VALUE *a, const CONF_VALUE *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_new
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: _CONF_new_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_new
    linkageType: ''
    returnType: int
    signature: int _CONF_new_data(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_set_down_load
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:149,1
    - Dst: lh_CONF_VALUE_doall_LH_CONF_VALUE
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:150,1
    - Dst: lh_CONF_VALUE_doall
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:157,1
    - Dst: lh_CONF_VALUE_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: _CONF_free_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_set_down_load
    - lh_CONF_VALUE_doall
    - lh_CONF_VALUE_doall_LH_CONF_VALUE
    - lh_CONF_VALUE_free
    linkageType: ''
    returnType: void
    signature: void _CONF_free_data(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_delete
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - conf
    argTypes:
    - CONF_VALUE*
    - LHASH_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: value_free_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - lh_CONF_VALUE_delete
    linkageType: ''
    returnType: void
    signature: void value_free_hash(const CONF_VALUE *a, LHASH_OF(CONF_VALUE) *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:170,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:176,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:177,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:178,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:179,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:180,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:181,1
    - Dst: sk_CONF_VALUE_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:184,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 186
    functionName: value_free_stack_doall
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - OPENSSL_free
    - STACK_OF
    - sk_CONF_VALUE_free
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: void
    signature: void value_free_stack_doall(CONF_VALUE *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:191,1
    - Dst: sk_CONF_VALUE_new_null
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:195,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:197,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:199,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:200,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:203,1
    - Dst: lh_CONF_VALUE_insert
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:207,1
    - Dst: lh_CONF_VALUE_error
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:208,1
    - Dst: sk_CONF_VALUE_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:215,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/conf/conf_api.c:216,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - conf
    - section
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 218
    functionName: _CONF_new_section
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - STACK_OF
    - memcpy
    - sk_CONF_VALUE_free
    - lh_CONF_VALUE_error
    - lh_CONF_VALUE_insert
    - sk_CONF_VALUE_new_null
    - strlen
    linkageType: ''
    returnType: CONF_VALUE
    signature: CONF_VALUE *_CONF_new_section(CONF *conf, const char *section)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/conf/conf_err.c:89,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/conf/conf_err.c:90,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/conf/conf_err.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: ERR_load_CONF_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/conf/conf_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_CONF_strings(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MD2_Init
      Src: /src/openssl-1.1.1g/crypto/md2/md2_one.c:26,1
    - Dst: MD2_Update
      Src: /src/openssl-1.1.1g/crypto/md2/md2_one.c:29,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/md2/md2_one.c:37,1
    - Dst: MD2_Update
      Src: /src/openssl-1.1.1g/crypto/md2/md2_one.c:38,1
    - Dst: MD2_Final
      Src: /src/openssl-1.1.1g/crypto/md2/md2_one.c:44,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/md2/md2_one.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: MD2
    functionSourceFile: /src/openssl-1.1.1g/crypto/md2/md2_one.c
    functionUses: 0
    functionsReached:
    - MD2_Final
    - ebcdic2ascii
    - MD2_Update
    - MD2_Init
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *MD2(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: MD2_options
    functionSourceFile: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *MD2_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:74,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:75,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - MD2_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: MD2_Init
    functionSourceFile: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int MD2_Init(MD2_CTX *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:90,1
    - Dst: md2_block
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:91,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:97,1
    - Dst: md2_block
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:108,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - MD2_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 115
    functionName: MD2_Update
    functionSourceFile: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c
    functionUses: 2
    functionsReached:
    - md2_block
    - memcpy
    linkageType: ''
    returnType: int
    signature: int MD2_Update(MD2_CTX *c, const unsigned char *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:146,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - c
    - d
    argTypes:
    - MD2_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 148
    functionName: md2_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c
    functionUses: 1
    functionsReached:
    - memcpy
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void md2_block(MD2_CTX *c, const unsigned char *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md2_block
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:163,1
    - Dst: md2_block
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:167,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - MD2_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 173
    functionName: MD2_Final
    functionSourceFile: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c
    functionUses: 2
    functionsReached:
    - md2_block
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int MD2_Final(unsigned char *md, MD2_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: P0
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P0(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: P1
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P1(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: FF0
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF0(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: GG0
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GG0(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: FF1
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF1(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: GG1
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GG1(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - W0
    - ','
    - W7
    - ','
    - W13
    - ','
    - W3
    - ','
    - W10
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: EXPAND
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND(W0,W7,W13,W3,W10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - ','
    - TJ
    - ','
    - Wi
    - ','
    - Wj
    - ','
    - FF
    - ','
    - GG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: RND
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(A, B, C, D, E, F, G, H, TJ, Wi, Wj, FF, GG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - ','
    - TJ
    - ','
    - Wi
    - ','
    - Wj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: R1
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(A,B,C,D,E,F,G,H,TJ,Wi,Wj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - ','
    - TJ
    - ','
    - Wi
    - ','
    - Wj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: R2
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(A,B,C,D,E,F,G,H,TJ,Wi,Wj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - SM3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: sm3_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int sm3_init(SM3_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:52,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:53,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:54,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:55,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:56,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:57,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:58,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:59,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:60,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:61,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:62,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:63,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:64,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:65,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:66,1
    - Dst: HOST_c2l
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:67,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:69,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:70,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:71,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:72,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:73,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:74,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:75,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:76,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:77,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:78,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:79,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:80,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:81,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:82,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:83,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:84,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:85,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:86,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:87,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:88,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:89,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:90,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:91,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:92,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:93,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:94,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:95,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:96,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:97,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:98,1
    - Dst: R1
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:99,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:100,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:101,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:102,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:103,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:104,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:105,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:106,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:107,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:108,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:109,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:110,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:111,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:112,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:113,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:114,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:115,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:116,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:117,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:118,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:119,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:120,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:121,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:122,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:123,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:124,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:125,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:126,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:127,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:128,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:129,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:130,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:131,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:132,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:133,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:134,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:135,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:136,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:137,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:138,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:139,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:140,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:141,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:142,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:143,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:144,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:145,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:146,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:147,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:148,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:149,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:150,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:151,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:152,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:153,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:154,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:155,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:156,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:157,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:158,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:159,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:160,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:161,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:162,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:163,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:164,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:165,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:166,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:167,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:168,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:169,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:170,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:171,1
    - Dst: EXPAND
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:172,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:173,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:174,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:175,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:176,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:177,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:178,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:179,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:180,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:181,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:182,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:183,1
    - Dst: R2
      Src: /src/openssl-1.1.1g/crypto/sm3/sm3.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 151
    argCount: 3
    argNames:
    - ctx
    - p
    - num
    argTypes:
    - SM3_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 195
    functionName: sm3_block_data_order
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/sm3.c
    functionUses: 0
    functionsReached:
    - EXPAND
    - R2
    - R1
    - HOST_c2l
    linkageType: ''
    returnType: void
    signature: void sm3_block_data_order(SM3_CTX *ctx, const void *p, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sm3_init
      Src: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c:20,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c
    functionUses: 174
    functionsReached:
    - sm3_init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sm3_update
      Src: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c:25,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: update
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c
    functionUses: 16
    functionsReached:
    - sm3_update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sm3_final
      Src: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c:30,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: final
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c
    functionUses: 18
    functionsReached:
    - sm3_final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: EVP_sm3
    functionSourceFile: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sm3(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:26,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:36,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:38,1
    - Dst: EVP_DecodeBlock
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:42,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:59,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: ct_base64_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_DecodeBlock
    - OPENSSL_free
    - CTerr
    - strlen
    linkageType: ''
    returnType: int
    signature: int ct_base64_decode(const char *in, unsigned char **out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SCT_new
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:68,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:74,1
    - Dst: SCT_set_version
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:82,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:83,1
    - Dst: ct_base64_decode
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:87,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:89,1
    - Dst: SCT_set0_log_id
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:92,1
    - Dst: ct_base64_decode
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:96,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:98,1
    - Dst: SCT_set0_extensions
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:101,1
    - Dst: ct_base64_decode
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:104,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:106,1
    - Dst: o2i_SCT_signature
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:113,1
    - Dst: SCT_set_timestamp
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:116,1
    - Dst: SCT_set_log_entry_type
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:124,1
    - Dst: SCT_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:125,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 6
    argNames:
    - version
    - logid_base64
    - entry_type
    - timestamp
    - extensions_base64
    - signature_base64
    argTypes:
    - unsigned char
    - char*
    - ct_log_entry_type_t
    - uint64_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 127
    functionName: SCT_new_from_base64
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - SCT_set_version
    - SCT_set_timestamp
    - OPENSSL_free
    - SCT_set_log_entry_type
    - SCT_set0_log_id
    - CTerr
    - SCT_set0_extensions
    - o2i_SCT_signature
    - ct_base64_decode
    - SCT_free
    - SCT_new
    linkageType: ''
    returnType: SCT
    signature: "SCT *SCT_new_from_base64(unsigned char version, const char *logid_base64,\n
      \                        ct_log_entry_type_t entry_type, uint64_t timestamp,\n
      \                        const char *extensions_base64,\n                         const
      char *signature_base64)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:143,1
    - Dst: ct_base64_decode
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:147,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:149,1
    - Dst: d2i_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:155,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:157,1
    - Dst: CTLOG_new
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:161,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_b64.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ct_log
    - pkey_base64
    - name
    argTypes:
    - CTLOG**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 135
    functionDepth: 7
    functionLinenumber: 135
    functionLinenumberEnd: 168
    functionName: CTLOG_new_from_base64
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    - CTerr
    - CTLOG_new
    - ct_base64_decode
    - d2i_PUBKEY
    linkageType: ''
    returnType: int
    signature: int CTLOG_new_from_base64(CTLOG **ct_log, const char *pkey_base64,
      const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: n2s
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2s(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: s2n
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s2n(s,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: l2n3
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n3(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: n2l8
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l8(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: l2n8
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n8(l,c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:25,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: SCT_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SCT_CTX
    signature: SCT_CTX *SCT_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:38,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:39,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:40,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sctx
    argTypes:
    - SCT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: SCT_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SCT_CTX_free(SCT_CTX *sctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:52,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cert
    - nid
    - is_duplicated
    argTypes:
    - X509*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: ct_x509_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int ct_x509_get_ext(X509 *cert, int nid, int *is_duplicated)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ct_x509_get_ext
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:73,1
    - Dst: ct_x509_get_ext
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:75,1
    - Dst: X509_set_issuer_name
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:90,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:90,1
    - Dst: X509_get_ext
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:94,1
    - Dst: X509_get_ext
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:95,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:101,1
    - Dst: X509_EXTENSION_set_data
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:103,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - cert
    - presigner
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 107
    functionName: ct_x509_cert_fixup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_get_ext
    - X509_EXTENSION_set_data
    - X509_set_issuer_name
    - X509_EXTENSION_get_data
    - ct_x509_get_ext
    - X509_get_issuer_name
    linkageType: ''
    returnType: __owur
    signature: __owur ct_x509_cert_fixup(X509 *cert, X509 *presigner)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ct_x509_get_ext
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:116,1
    - Dst: i2d_X509
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:128,1
    - Dst: ct_x509_get_ext
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:134,1
    - Dst: X509_dup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:161,1
    - Dst: X509_delete_ext
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:165,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:166,1
    - Dst: ct_x509_cert_fixup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:168,1
    - Dst: i2d_re_X509_tbs
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:171,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:176,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:178,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:182,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:188,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:189,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:190,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 3
    argNames:
    - sctx
    - cert
    - presigner
    argTypes:
    - SCT_CTX*
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 192
    functionName: SCT_CTX_set1_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_delete_ext
    - OPENSSL_free
    - X509_dup
    - ct_x509_cert_fixup
    - i2d_re_X509_tbs
    - i2d_X509
    - ct_x509_get_ext
    - X509_EXTENSION_free
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_set1_cert(SCT_CTX *sctx, X509 *cert, X509 *presigner)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:206,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:212,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:216,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:216,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:220,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:228,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:229,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - pkey
    - hash
    - hash_len
    argTypes:
    - X509_PUBKEY*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 194
    functionDepth: 5
    functionLinenumber: 194
    functionLinenumberEnd: 231
    functionName: ct_public_key_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - i2d_X509_PUBKEY
    - OPENSSL_malloc
    - OPENSSL_free
    - EVP_Digest
    - EVP_sha256
    linkageType: ''
    returnType: __owur
    signature: "__owur ct_public_key_hash(X509_PUBKEY *pkey, unsigned char **hash,\n
      \                                    size_t *hash_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCT_CTX_set1_issuer_pubkey
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:235,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sctx
    - issuer
    argTypes:
    - SCT_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: SCT_CTX_set1_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_get_X509_PUBKEY
    - SCT_CTX_set1_issuer_pubkey
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_set1_issuer(SCT_CTX *sctx, const X509 *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ct_public_key_hash
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sctx
    - pubkey
    argTypes:
    - SCT_CTX*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: SCT_CTX_set1_issuer_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 1
    functionsReached:
    - ct_public_key_hash
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_set1_issuer_pubkey(SCT_CTX *sctx, X509_PUBKEY *pubkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:245,1
    - Dst: ct_public_key_hash
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:250,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:251,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sctx
    - pubkey
    argTypes:
    - SCT_CTX*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 6
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: SCT_CTX_set1_pubkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get
    - EVP_PKEY_free
    - ct_public_key_hash
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_set1_pubkey(SCT_CTX *sctx, X509_PUBKEY *pubkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sctx
    - time_in_ms
    argTypes:
    - SCT_CTX*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: SCT_CTX_set_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SCT_CTX_set_time(SCT_CTX *sctx, uint64_t time_in_ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_policy.c:30,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_policy.c:33,1
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/ct/ct_policy.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: CT_POLICY_EVAL_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_zalloc
    - time
    linkageType: ''
    returnType: CT_POLICY_EVAL_CTX
    signature: CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_policy.c:48,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_policy.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_policy.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: CT_POLICY_EVAL_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - X509_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/ct/ct_policy.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: CT_POLICY_EVAL_CTX_set1_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/ct/ct_policy.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - issuer
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: CT_POLICY_EVAL_CTX_set1_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - log_store
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - CTLOG_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX
      *ctx,\n                                               CTLOG_STORE *log_store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - time_in_ms
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: CT_POLICY_EVAL_CTX_set_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t
      time_in_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: CT_POLICY_EVAL_CTX_get0_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 * CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: CT_POLICY_EVAL_CTX_get0_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 * CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: CT_POLICY_EVAL_CTX_get0_log_store
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CTLOG_STORE
    signature: CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: CT_POLICY_EVAL_CTX_get_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: l2n8
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:55,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:56,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:58,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:65,1
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:77,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:79,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:81,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:86,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:87,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:90,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - sctx
    - sct
    argTypes:
    - EVP_MD_CTX*
    - SCT_CTX*
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 94
    functionName: sct_ctx_update
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - s2n
    - l2n3
    - l2n8
    linkageType: ''
    returnType: int
    signature: int sct_ctx_update(EVP_MD_CTX *ctx, const SCT_CTX *sctx, const SCT
      *sct)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SCT_is_complete
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:101,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:104,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:108,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:112,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:113,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:117,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:121,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:125,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:125,1
    - Dst: sct_ctx_update
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:128,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:132,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:135,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c:138,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 2
    argNames:
    - sctx
    - sct
    argTypes:
    - SCT_CTX*
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 140
    functionName: SCT_CTX_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - SCT_is_complete
    - memcmp
    - sct_ctx_update
    - CTerr
    - EVP_sha256
    - EVP_MD_CTX_free
    - EVP_DigestVerifyFinal
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_verify(const SCT_CTX *sctx, const SCT *sct)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCT_get_signature_nid
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:21,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:24,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:26,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sct
    - out
    argTypes:
    - SCT*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: SCT_signature_algorithms_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - SCT_get_signature_nid
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void SCT_signature_algorithms_print(const SCT *sct, BIO *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:31,1
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:36,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:43,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:44,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:45,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:46,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - timestamp
    - out
    argTypes:
    - uint64_t
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 48
    functionName: timestamp_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - ASN1_GENERALIZEDTIME_adj
    - ASN1_GENERALIZEDTIME_free
    - ASN1_GENERALIZEDTIME_print
    - ASN1_GENERALIZEDTIME_new
    - ASN1_GENERALIZEDTIME_set_string
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: void
    signature: void timestamp_print(uint64_t timestamp, BIO *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SCT_get_validation_status
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: SCT_validation_status_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - SCT_get_validation_status
    linkageType: ''
    returnType: char
    signature: char *SCT_validation_status_string(const SCT *sct)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_get0_log_by_id
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:80,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:81,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:84,1
    - Dst: BIO_hex_string
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:85,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:89,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:92,1
    - Dst: CTLOG_get0_name
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:93,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:96,1
    - Dst: BIO_hex_string
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:97,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:99,1
    - Dst: timestamp_print
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:100,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:102,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:104,1
    - Dst: BIO_hex_string
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:106,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:108,1
    - Dst: SCT_signature_algorithms_print
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:110,1
    - Dst: BIO_hex_string
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - sct
    - out
    - indent
    - log_store
    argTypes:
    - SCT*
    - BIO*
    - int
    - CTLOG_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 70
    functionDepth: 7
    functionLinenumber: 70
    functionLinenumberEnd: 112
    functionName: SCT_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - CTLOG_get0_name
    - CTLOG_STORE_get0_log_by_id
    - timestamp_print
    - BIO_hex_string
    - SCT_signature_algorithms_print
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void SCT_print(const SCT *sct, BIO *out, int indent,\n               const
      CTLOG_STORE *log_store)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_SCT_num
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:117,1
    - Dst: sk_SCT_value
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:121,1
    - Dst: SCT_print
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:123,1
    - Dst: sk_SCT_num
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:124,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_prn.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - sct_list
    - out
    - indent
    - separator
    - log_store
    argTypes:
    - STACK_OF*
    - BIO*
    - int
    - char*
    - CTLOG_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 8
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: SCT_LIST_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - sk_SCT_num
    - sk_SCT_value
    - SCT_print
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent,\n
      \                   const char *separator, const CTLOG_STORE *log_store)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/ct/ct_err.c:90,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ct/ct_err.c:91,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ct/ct_err.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: ERR_load_CT_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_CT_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:24,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: SCT_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - CTerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SCT
    signature: SCT *SCT_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: SCT_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SCT_free(SCT *sct)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sct
    - version
    argTypes:
    - SCT*
    - sct_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: SCT_set_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - CTerr
    linkageType: ''
    returnType: int
    signature: int SCT_set_version(SCT *sct, sct_version_t version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sct
    - entry_type
    argTypes:
    - SCT*
    - ct_log_entry_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: SCT_set_log_entry_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - CTerr
    linkageType: ''
    returnType: int
    signature: int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - sct
    - log_id
    - log_id_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: SCT_set0_log_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - CTerr
    linkageType: ''
    returnType: int
    signature: int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:97,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:101,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:107,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - sct
    - log_id
    - log_id_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: SCT_set1_log_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - CTerr
    linkageType: ''
    returnType: int
    signature: int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, size_t log_id_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - timestamp
    argTypes:
    - SCT*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: SCT_set_timestamp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SCT_set_timestamp(SCT *sct, uint64_t timestamp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - sct
    - nid
    argTypes:
    - SCT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: SCT_set_signature_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - CTerr
    linkageType: ''
    returnType: int
    signature: int SCT_set_signature_nid(SCT *sct, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sct
    - ext
    - ext_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: SCT_set0_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:153,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:159,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - sct
    - ext
    - ext_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: SCT_set1_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - CTerr
    linkageType: ''
    returnType: int
    signature: int SCT_set1_extensions(SCT *sct, const unsigned char *ext, size_t
      ext_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sct
    - sig
    - sig_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: SCT_set0_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:179,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:185,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - sct
    - sig
    - sig_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 193
    functionName: SCT_set1_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - CTerr
    linkageType: ''
    returnType: int
    signature: int SCT_set1_signature(SCT *sct, const unsigned char *sig, size_t sig_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: SCT_get_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sct_version_t
    signature: sct_version_t SCT_get_version(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: SCT_get_log_entry_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ct_log_entry_type_t
    signature: ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - log_id
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: SCT_get0_log_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: SCT_get_timestamp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t SCT_get_timestamp(const SCT *sct)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 231
    functionName: SCT_get_signature_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SCT_get_signature_nid(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - ext
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: SCT_get0_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - sig
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: SCT_get0_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SCT_get0_signature(const SCT *sct, unsigned char **sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SCT_signature_is_complete
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: SCT_is_complete
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - SCT_signature_is_complete
    linkageType: ''
    returnType: int
    signature: int SCT_is_complete(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCT_get_signature_nid
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: SCT_signature_is_complete
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - SCT_get_signature_nid
    linkageType: ''
    returnType: int
    signature: int SCT_signature_is_complete(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: SCT_get_source
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sct_source_t
    signature: sct_source_t SCT_get_source(const SCT *sct)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SCT_set_log_entry_type
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:275,1
    - Dst: SCT_set_log_entry_type
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sct
    - source
    argTypes:
    - SCT*
    - sct_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 283
    functionName: SCT_set_source
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - SCT_set_log_entry_type
    linkageType: ''
    returnType: int
    signature: int SCT_set_source(SCT *sct, sct_source_t source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: SCT_get_validation_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: sct_validation_status_t
    signature: sct_validation_status_t SCT_get_validation_status(const SCT *sct)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_get0_log_by_id
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:306,1
    - Dst: SCT_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:315,1
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:319,1
    - Dst: CTLOG_get0_public_key
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:319,1
    - Dst: SCT_CTX_set1_pubkey
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:321,1
    - Dst: SCT_get_log_entry_type
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:324,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:332,1
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:334,1
    - Dst: SCT_CTX_set1_issuer_pubkey
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:336,1
    - Dst: SCT_CTX_set_time
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:340,1
    - Dst: SCT_CTX_set1_cert
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:360,1
    - Dst: SCT_CTX_verify
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:363,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:369,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:370,1
    - Dst: SCT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:371,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - sct
    - ctx
    argTypes:
    - SCT*
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 290
    functionDepth: 7
    functionLinenumber: 290
    functionLinenumberEnd: 374
    functionName: SCT_validate
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - SCT_CTX_free
    - SCT_CTX_set1_issuer_pubkey
    - CTLOG_get0_public_key
    - CTLOG_STORE_get0_log_by_id
    - SCT_CTX_verify
    - X509_get0_pubkey
    - SCT_CTX_set1_pubkey
    - SCT_CTX_set_time
    - X509_PUBKEY_free
    - X509_PUBKEY_set
    - SCT_CTX_set1_cert
    - SCT_CTX_new
    - SCT_get_log_entry_type
    linkageType: ''
    returnType: int
    signature: int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_SCT_num
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:379,1
    - Dst: sk_SCT_value
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:384,1
    - Dst: SCT_validate
      Src: /src/openssl-1.1.1g/crypto/ct/ct_sct.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - scts
    - ctx
    argTypes:
    - STACK_OF*
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 376
    functionDepth: 8
    functionLinenumber: 376
    functionLinenumberEnd: 396
    functionName: SCT_LIST_validate
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - sk_SCT_num
    - SCT_validate
    - sk_SCT_value
    linkageType: ''
    returnType: int
    signature: int SCT_LIST_validate(const STACK_OF(SCT) *scts, CT_POLICY_EVAL_CTX
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:59,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: ctlog_store_load_ctx_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CTLOG_STORE_LOAD_CTX
    signature: CTLOG_STORE_LOAD_CTX *ctlog_store_load_ctx_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CTLOG_STORE_LOAD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: ctlog_store_load_ctx_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ctlog_store_load_ctx_free(CTLOG_STORE_LOAD_CTX* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_PUBKEY
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:78,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:81,1
    - Dst: SHA256
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:85,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pkey
    - log_id
    argTypes:
    - EVP_PKEY*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: ct_v1_log_id_from_pkey
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - SHA256
    - i2d_PUBKEY
    - OPENSSL_free
    - CTerr
    linkageType: ''
    returnType: int
    signature: "int ct_v1_log_id_from_pkey(EVP_PKEY *pkey,\n                                  unsigned
      char log_id[CT_V1_HASHLEN])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:94,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:97,1
    - Dst: sk_CTLOG_new_null
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:101,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 109
    functionName: CTLOG_STORE_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - CTerr
    - sk_CTLOG_new_null
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CTLOG_STORE
    signature: CTLOG_STORE *CTLOG_STORE_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_CTLOG_pop_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - store
    argTypes:
    - CTLOG_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: CTLOG_STORE_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - sk_CTLOG_pop_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void CTLOG_STORE_free(CTLOG_STORE *store)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:121,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:125,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:129,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:131,1
    - Dst: CTLOG_new_from_base64
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ct_log
    - conf
    - section
    argTypes:
    - CTLOG**
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 8
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: ctlog_new_from_conf
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - CTerr
    - CTLOG_new_from_base64
    linkageType: ''
    returnType: int
    signature: int ctlog_new_from_conf(CTLOG **ct_log, const CONF *conf, const char
      *section)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:140,1
    - Dst: CTLOG_STORE_load_file
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - store
    argTypes:
    - CTLOG_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: CTLOG_STORE_load_default_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTLOG_STORE_load_file
    - ossl_safe_getenv
    linkageType: ''
    returnType: int
    signature: int CTLOG_STORE_load_default_file(CTLOG_STORE *store)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:167,1
    - Dst: ctlog_new_from_conf
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:172,1
    - Dst: sk_CTLOG_push
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:184,1
    - Dst: CTLOG_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:190,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - log_name
    - log_name_len
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 154
    functionDepth: 9
    functionLinenumber: 154
    functionLinenumberEnd: 193
    functionName: ctlog_store_load_log
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - ctlog_new_from_conf
    - OPENSSL_free
    - OPENSSL_strndup
    - CTerr
    - CTLOG_free
    - sk_CTLOG_push
    linkageType: ''
    returnType: int
    signature: "int ctlog_store_load_log(const char *log_name, int log_name_len,\n
      \                               void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ctlog_store_load_ctx_new
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:199,1
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:204,1
    - Dst: NCONF_load
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:208,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:209,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:213,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:215,1
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:219,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:221,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:227,1
    - Dst: ctlog_store_load_ctx_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:228,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - store
    - file
    argTypes:
    - CTLOG_STORE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 230
    functionName: CTLOG_STORE_load_file
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - NCONF_load
    - CONF_parse_list
    - NCONF_new
    - NCONF_free
    - CTerr
    - ctlog_store_load_ctx_free
    - ctlog_store_load_ctx_new
    linkageType: ''
    returnType: int
    signature: int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:239,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:242,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:246,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:248,1
    - Dst: ct_v1_log_id_from_pkey
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:252,1
    - Dst: CTLOG_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - public_key
    - name
    argTypes:
    - EVP_PKEY*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 5
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: CTLOG_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached:
    - CTerr
    - OPENSSL_strdup
    - ct_v1_log_id_from_pkey
    - OPENSSL_zalloc
    - CTLOG_free
    linkageType: ''
    returnType: CTLOG
    signature: CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:266,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:267,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - log
    argTypes:
    - CTLOG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: CTLOG_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void CTLOG_free(CTLOG *log)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - CTLOG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: CTLOG_get0_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *CTLOG_get0_name(const CTLOG *log)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - log
    - log_id
    - log_id_len
    argTypes:
    - CTLOG*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: CTLOG_get0_log_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id,\n
      \                      size_t *log_id_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - CTLOG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: CTLOG_get0_public_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_CTLOG_num
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:299,1
    - Dst: sk_CTLOG_value
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:300,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/ct/ct_log.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - store
    - log_id
    - log_id_len
    argTypes:
    - CTLOG_STORE*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: CTLOG_STORE_get0_log_by_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    functionUses: 2
    functionsReached:
    - sk_CTLOG_num
    - sk_CTLOG_value
    - memcmp
    linkageType: ''
    returnType: CTLOG
    signature: "CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store,\n                                        const
      uint8_t *log_id,\n                                        size_t log_id_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:31,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:42,1
    - Dst: SCT_get_signature_nid
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:50,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:51,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:55,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:58,1
    - Dst: SCT_set1_signature
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - sct
    - in
    - len
    argTypes:
    - SCT*
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 68
    functionName: o2i_SCT_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_oct.c
    functionUses: 1
    functionsReached:
    - n2s
    - SCT_get_signature_nid
    - CTerr
    - SCT_set1_signature
    linkageType: ''
    returnType: int
    signature: int o2i_SCT_signature(SCT *sct, const unsigned char **in, size_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:76,1
    - Dst: SCT_new
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:80,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:99,1
    - Dst: BUF_memdup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:104,1
    - Dst: n2l8
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:110,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:112,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:114,1
    - Dst: BUF_memdup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:118,1
    - Dst: o2i_SCT_signature
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:126,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:128,1
    - Dst: BUF_memdup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:135,1
    - Dst: SCT_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:143,1
    - Dst: SCT_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:149,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 3
    argNames:
    - psct
    - in
    - len
    argTypes:
    - SCT**
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 151
    functionName: o2i_SCT
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - n2s
    - n2l8
    - CTerr
    - o2i_SCT_signature
    - BUF_memdup
    - SCT_free
    - SCT_new
    linkageType: ''
    returnType: SCT
    signature: SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SCT_signature_is_complete
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:158,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:159,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:164,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:180,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:182,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:190,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:191,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - sct
    - out
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 198
    functionName: i2o_SCT_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - SCT_signature_is_complete
    - OPENSSL_malloc
    - s2n
    - OPENSSL_free
    - CTerr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int i2o_SCT_signature(const SCT *sct, unsigned char **out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SCT_is_complete
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:205,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:206,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:227,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:229,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:237,1
    - Dst: l2n8
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:239,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:240,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:242,1
    - Dst: i2o_SCT_signature
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:245,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - sct
    - out
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 255
    functionName: i2o_SCT
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - SCT_is_complete
    - s2n
    - OPENSSL_free
    - i2o_SCT_signature
    - CTerr
    - memcpy
    - l2n8
    linkageType: ''
    returnType: int
    signature: int i2o_SCT(const SCT *sct, unsigned char **out)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: i2o_SCT_LIST
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:329,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:330,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:333,1
    - Dst: CTerr
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:334,1
    - Dst: sk_SCT_num
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:343,1
    - Dst: i2o_SCT
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:347,1
    - Dst: sk_SCT_value
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:347,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:349,1
    - Dst: i2o_SCT
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:351,1
    - Dst: sk_SCT_value
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:351,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:362,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:370,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - STACK_OF*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 374
    functionName: i2o_SCT_LIST
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_oct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - i2o_SCT_LIST
    - sk_SCT_num
    - s2n
    - OPENSSL_free
    - CTerr
    - sk_SCT_value
    - i2o_SCT
    linkageType: ''
    returnType: int
    signature: int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2o_SCT_LIST
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:401,1
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:404,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ct/ct_oct.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - STACK_OF*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 5
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: i2d_SCT_LIST
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_OCTET_STRING
    - OPENSSL_free
    - i2o_SCT_LIST
    linkageType: ''
    returnType: int
    signature: int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/ct/ct_x509v3.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - val
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: i2s_poison
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_x509v3.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *i2s_poison(const X509V3_EXT_METHOD *method, void *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_NULL_new
      Src: /src/openssl-1.1.1g/crypto/ct/ct_x509v3.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: s2i_poison
    functionSourceFile: /src/openssl-1.1.1g/crypto/ct/ct_x509v3.c
    functionUses: 0
    functionsReached:
    - ASN1_NULL_new
    linkageType: ''
    returnType: void
    signature: void *s2i_poison(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
      const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_ERR_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:46,1
    - Dst: ERR_load_BN_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:47,1
    - Dst: ERR_load_RSA_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:49,1
    - Dst: ERR_load_DH_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:52,1
    - Dst: ERR_load_EVP_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:54,1
    - Dst: ERR_load_BUF_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:55,1
    - Dst: ERR_load_OBJ_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:56,1
    - Dst: ERR_load_PEM_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:57,1
    - Dst: ERR_load_DSA_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:59,1
    - Dst: ERR_load_X509_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:61,1
    - Dst: ERR_load_ASN1_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:62,1
    - Dst: ERR_load_CONF_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:63,1
    - Dst: ERR_load_CRYPTO_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:64,1
    - Dst: ERR_load_COMP_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:66,1
    - Dst: ERR_load_EC_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:69,1
    - Dst: ERR_load_BIO_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:72,1
    - Dst: ERR_load_PKCS7_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:73,1
    - Dst: ERR_load_X509V3_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:74,1
    - Dst: ERR_load_PKCS12_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:75,1
    - Dst: ERR_load_RAND_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:76,1
    - Dst: ERR_load_DSO_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:77,1
    - Dst: ERR_load_TS_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:79,1
    - Dst: ERR_load_ENGINE_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:82,1
    - Dst: ERR_load_OCSP_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:85,1
    - Dst: ERR_load_UI_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:87,1
    - Dst: ERR_load_CMS_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:89,1
    - Dst: ERR_load_CT_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:92,1
    - Dst: ERR_load_ASYNC_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:94,1
    - Dst: ERR_load_KDF_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:96,1
    - Dst: ERR_load_OSSL_STORE_strings
      Src: /src/openssl-1.1.1g/crypto/err/err_all.c:97,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 101
    functionName: err_load_crypto_strings_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err_all.c
    functionUses: 1
    functionsReached:
    - ERR_load_EVP_strings
    - ERR_load_X509_strings
    - ERR_load_COMP_strings
    - ERR_load_BIO_strings
    - ERR_load_CRYPTO_strings
    - ERR_load_RAND_strings
    - ERR_load_ERR_strings
    - ERR_load_ENGINE_strings
    - ERR_load_OBJ_strings
    - ERR_load_PKCS12_strings
    - ERR_load_RSA_strings
    - ERR_load_PKCS7_strings
    - ERR_load_DSA_strings
    - ERR_load_TS_strings
    - ERR_load_UI_strings
    - ERR_load_OCSP_strings
    - ERR_load_KDF_strings
    - ERR_load_ASN1_strings
    - ERR_load_DH_strings
    - ERR_load_OSSL_STORE_strings
    - ERR_load_CONF_strings
    - ERR_load_CT_strings
    - ERR_load_BN_strings
    - ERR_load_PEM_strings
    - ERR_load_EC_strings
    - ERR_load_DSO_strings
    - ERR_load_ASYNC_strings
    - ERR_load_BUF_strings
    - ERR_load_CMS_strings
    - ERR_load_X509V3_strings
    linkageType: ''
    returnType: int
    signature: int err_load_crypto_strings_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/crypto/err/err.c:163,1
    - Dst: ERR_GET_FUNC
      Src: /src/openssl-1.1.1g/crypto/err/err.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: err_string_data_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_GET_LIB
    - ERR_GET_FUNC
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long err_string_data_hash(const ERR_STRING_DATA *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ERR_STRING_DATA*
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: err_string_data_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int err_string_data_cmp(const ERR_STRING_DATA *a,\n                               const
      ERR_STRING_DATA *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:179,1
    - Dst: lh_ERR_STRING_DATA_retrieve
      Src: /src/openssl-1.1.1g/crypto/err/err.c:180,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: int_err_get_item
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - lh_ERR_STRING_DATA_retrieve
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: ERR_STRING_DATA
    signature: ERR_STRING_DATA *int_err_get_item(const ERR_STRING_DATA *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/err/err.c:210,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:212,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:214,1
    - Dst: ERR_PACK
      Src: /src/openssl-1.1.1g/crypto/err/err.c:221,1
    - Dst: openssl_strerror_r
      Src: /src/openssl-1.1.1g/crypto/err/err.c:227,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/err/err.c:228,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/err/err.c:238,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:257,1
    - Dst: set_sys_error
      Src: /src/openssl-1.1.1g/crypto/err/err.c:259,1
    - Dst: err_load_strings
      Src: /src/openssl-1.1.1g/crypto/err/err.c:260,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 261
    functionName: build_SYS_str_reasons
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - openssl_strerror_r
    - ossl_isspace
    - get_last_sys_error
    - ERR_PACK
    - CRYPTO_THREAD_unlock
    - set_sys_error
    - err_load_strings
    - strlen
    linkageType: ''
    returnType: void
    signature: void build_SYS_str_reasons(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 272
    functionName: err_clear_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: err_clear_data(p, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: err_clear
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: err_clear(p, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_clear_data
      Src: /src/openssl-1.1.1g/crypto/err/err.c:289,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/err/err.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - ERR_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: ERR_STATE_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - err_clear_data
    linkageType: ''
    returnType: void
    signature: void ERR_STATE_free(ERR_STATE *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/err/err.c:296,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/err/err.c:298,1
    - Dst: lh_ERR_STRING_DATA_new
      Src: /src/openssl-1.1.1g/crypto/err/err.c:301,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/err/err.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - CRYPTO_THREAD_lock_new
    - lh_ERR_STRING_DATA_new
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_err_strings_init)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:314,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/err/err.c:315,1
    - Dst: lh_ERR_STRING_DATA_free
      Src: /src/openssl-1.1.1g/crypto/err/err.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: err_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - lh_ERR_STRING_DATA_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_cleanup_local
    linkageType: ''
    returnType: void
    signature: void err_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PACK
      Src: /src/openssl-1.1.1g/crypto/err/err.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lib
    - str
    argTypes:
    - int
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: err_patch
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_PACK
    linkageType: ''
    returnType: void
    signature: void err_patch(int lib, ERR_STRING_DATA *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:337,1
    - Dst: lh_ERR_STRING_DATA_insert
      Src: /src/openssl-1.1.1g/crypto/err/err.c:339,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: err_load_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - lh_ERR_STRING_DATA_insert
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int err_load_strings(const ERR_STRING_DATA *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/err/err.c:348,1
    - Dst: err_load_strings
      Src: /src/openssl-1.1.1g/crypto/err/err.c:351,1
    - Dst: err_load_strings
      Src: /src/openssl-1.1.1g/crypto/err/err.c:352,1
    - Dst: err_patch
      Src: /src/openssl-1.1.1g/crypto/err/err.c:353,1
    - Dst: err_load_strings
      Src: /src/openssl-1.1.1g/crypto/err/err.c:354,1
    - Dst: build_SYS_str_reasons
      Src: /src/openssl-1.1.1g/crypto/err/err.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 358
    functionName: ERR_load_ERR_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - build_SYS_str_reasons
    - err_load_strings
    - RUN_ONCE
    - err_patch
    linkageType: ''
    returnType: int
    signature: int ERR_load_ERR_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_ERR_strings
      Src: /src/openssl-1.1.1g/crypto/err/err.c:362,1
    - Dst: err_patch
      Src: /src/openssl-1.1.1g/crypto/err/err.c:365,1
    - Dst: err_load_strings
      Src: /src/openssl-1.1.1g/crypto/err/err.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - lib
    - str
    argTypes:
    - int
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 368
    functionName: ERR_load_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 4
    functionsReached:
    - err_load_strings
    - ERR_load_ERR_strings
    - err_patch
    linkageType: ''
    returnType: int
    signature: int ERR_load_strings(int lib, ERR_STRING_DATA *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_ERR_strings
      Src: /src/openssl-1.1.1g/crypto/err/err.c:372,1
    - Dst: err_load_strings
      Src: /src/openssl-1.1.1g/crypto/err/err.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 376
    functionName: ERR_load_strings_const
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 24
    functionsReached:
    - err_load_strings
    - ERR_load_ERR_strings
    linkageType: ''
    returnType: int
    signature: int ERR_load_strings_const(const ERR_STRING_DATA *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/err/err.c:380,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:383,1
    - Dst: lh_ERR_STRING_DATA_delete
      Src: /src/openssl-1.1.1g/crypto/err/err.c:389,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - lib
    - str
    argTypes:
    - int
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 393
    functionName: ERR_unload_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 4
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - lh_ERR_STRING_DATA_delete
    - RUN_ONCE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ERR_unload_strings(int lib, ERR_STRING_DATA *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/err/err.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: err_free_strings_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: void
    signature: void err_free_strings_int(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/err/err.c:413,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/err/err.c:418,1
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/crypto/err/err.c:422,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/crypto/err/err.c:426,1
    - Dst: ERR_PACK
      Src: /src/openssl-1.1.1g/crypto/err/err.c:434,1
    - Dst: err_clear_data
      Src: /src/openssl-1.1.1g/crypto/err/err.c:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - lib
    - func
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 438
    functionName: ERR_put_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - strrchr
    - ERR_get_state
    - err_clear_data
    - ERR_PACK
    - strncmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void ERR_put_error(int lib, int func, int reason, const char *file,
      int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/crypto/err/err.c:445,1
    - Dst: err_clear
      Src: /src/openssl-1.1.1g/crypto/err/err.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 453
    functionName: ERR_clear_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 33
    functionsReached:
    - ERR_get_state
    - err_clear
    linkageType: ''
    returnType: void
    signature: void ERR_clear_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-1.1.1g/crypto/err/err.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: ERR_get_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_get_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-1.1.1g/crypto/err/err.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: ERR_get_error_line
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_get_error_line(const char **file, int *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-1.1.1g/crypto/err/err.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - line
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 469
    functionName: ERR_get_error_line_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ERR_get_error_line_data(const char **file, int *line,\n
      \                                     const char **data, int *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-1.1.1g/crypto/err/err.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: ERR_peek_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 3
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-1.1.1g/crypto/err/err.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: ERR_peek_error_line
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_error_line(const char **file, int *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-1.1.1g/crypto/err/err.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - line
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: ERR_peek_error_line_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ERR_peek_error_line_data(const char **file, int *line,\n
      \                                      const char **data, int *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-1.1.1g/crypto/err/err.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: ERR_peek_last_error
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 6
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_last_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-1.1.1g/crypto/err/err.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: ERR_peek_last_error_line
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_last_error_line(const char **file, int *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-1.1.1g/crypto/err/err.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - line
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: ERR_peek_last_error_line_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ERR_peek_last_error_line_data(const char **file, int
      *line,\n                                            const char **data, int *flags)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/crypto/err/err.c:511,1
    - Dst: err_clear
      Src: /src/openssl-1.1.1g/crypto/err/err.c:530,1
    - Dst: err_clear
      Src: /src/openssl-1.1.1g/crypto/err/err.c:537,1
    - Dst: err_clear_data
      Src: /src/openssl-1.1.1g/crypto/err/err.c:569,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 6
    argNames:
    - inc
    - top
    - file
    - line
    - data
    - flags
    argTypes:
    - int
    - int
    - char**
    - int*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 583
    functionName: get_error_values
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 9
    functionsReached:
    - ERR_get_state
    - err_clear
    - err_clear_data
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long get_error_values(int inc, int top, const char **file,\n
      \                                     int *line, const char **data,\n                                      int
      *flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/crypto/err/err.c:594,1
    - Dst: ERR_lib_error_string
      Src: /src/openssl-1.1.1g/crypto/err/err.c:595,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/err/err.c:597,1
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/err/err.c:601,1
    - Dst: ERR_GET_FUNC
      Src: /src/openssl-1.1.1g/crypto/err/err.c:602,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/err/err.c:604,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-1.1.1g/crypto/err/err.c:608,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/err/err.c:609,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/err/err.c:611,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/err/err.c:615,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/err/err.c:616,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/err/err.c:618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - e
    - buf
    - len
    argTypes:
    - unsigned long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 620
    functionName: ERR_error_string_n
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - ERR_func_error_string
    - ERR_GET_FUNC
    - ERR_reason_error_string
    - ERR_lib_error_string
    - ERR_GET_REASON
    - ERR_GET_LIB
    - strlen
    linkageType: ''
    returnType: void
    signature: void ERR_error_string_n(unsigned long e, char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_error_string_n
      Src: /src/openssl-1.1.1g/crypto/err/err.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - e
    - ret
    argTypes:
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 634
    functionName: ERR_error_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_error_string_n
    linkageType: ''
    returnType: char
    signature: char *ERR_error_string(unsigned long e, char *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/err/err.c:641,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/crypto/err/err.c:645,1
    - Dst: ERR_PACK
      Src: /src/openssl-1.1.1g/crypto/err/err.c:646,1
    - Dst: int_err_get_item
      Src: /src/openssl-1.1.1g/crypto/err/err.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 649
    functionName: ERR_lib_error_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - ERR_GET_LIB
    - int_err_get_item
    - RUN_ONCE
    - ERR_PACK
    linkageType: ''
    returnType: char
    signature: char *ERR_lib_error_string(unsigned long e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/err/err.c:656,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/crypto/err/err.c:660,1
    - Dst: ERR_GET_FUNC
      Src: /src/openssl-1.1.1g/crypto/err/err.c:661,1
    - Dst: ERR_PACK
      Src: /src/openssl-1.1.1g/crypto/err/err.c:662,1
    - Dst: int_err_get_item
      Src: /src/openssl-1.1.1g/crypto/err/err.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 665
    functionName: ERR_func_error_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 25
    functionsReached:
    - ERR_PACK
    - ERR_GET_FUNC
    - ERR_GET_LIB
    - int_err_get_item
    - RUN_ONCE
    linkageType: ''
    returnType: char
    signature: char *ERR_func_error_string(unsigned long e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/err/err.c:672,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/crypto/err/err.c:676,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/err/err.c:677,1
    - Dst: ERR_PACK
      Src: /src/openssl-1.1.1g/crypto/err/err.c:678,1
    - Dst: int_err_get_item
      Src: /src/openssl-1.1.1g/crypto/err/err.c:679,1
    - Dst: ERR_PACK
      Src: /src/openssl-1.1.1g/crypto/err/err.c:681,1
    - Dst: int_err_get_item
      Src: /src/openssl-1.1.1g/crypto/err/err.c:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - e
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 685
    functionName: ERR_reason_error_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - ERR_PACK
    - ERR_GET_REASON
    - ERR_GET_LIB
    - int_err_get_item
    - RUN_ONCE
    linkageType: ''
    returnType: char
    signature: char *ERR_reason_error_string(unsigned long e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:689,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:693,1
    - Dst: ERR_STATE_free
      Src: /src/openssl-1.1.1g/crypto/err/err.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 695
    functionName: err_delete_thread_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_local
    - CRYPTO_THREAD_set_local
    - ERR_STATE_free
    linkageType: ''
    returnType: void
    signature: void err_delete_thread_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: ERR_remove_thread_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ERR_remove_thread_state(void *dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pid
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: ERR_remove_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ERR_remove_state(unsigned long pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_init_local
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(err_do_init)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/err/err.c:718,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/err/err.c:720,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/err/err.c:723,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:726,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:731,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/err/err.c:734,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:735,1
    - Dst: ossl_init_thread_start
      Src: /src/openssl-1.1.1g/crypto/err/err.c:739,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:740,1
    - Dst: ERR_STATE_free
      Src: /src/openssl-1.1.1g/crypto/err/err.c:741,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:742,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/err/err.c:747,1
    - Dst: set_sys_error
      Src: /src/openssl-1.1.1g/crypto/err/err.c:750,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 752
    functionName: ERR_get_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 3
    functionsReached:
    - CRYPTO_THREAD_get_local
    - ERR_STATE_free
    - get_last_sys_error
    - ossl_init_thread_start
    - OPENSSL_init_crypto
    - CRYPTO_THREAD_set_local
    - OPENSSL_zalloc
    - set_sys_error
    - RUN_ONCE
    linkageType: ''
    returnType: ERR_STATE
    signature: ERR_STATE *ERR_get_state(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/crypto/err/err.c:760,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/err/err.c:774,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/err/err.c:777,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:780,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:781,1
    - Dst: set_sys_error
      Src: /src/openssl-1.1.1g/crypto/err/err.c:784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 786
    functionName: err_shelve_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_local
    - get_last_sys_error
    - OPENSSL_init_crypto
    - CRYPTO_THREAD_set_local
    - set_sys_error
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int err_shelve_state(void **state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/crypto/err/err.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 796
    functionName: err_unshelve_state
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_set_local
    linkageType: ''
    returnType: void
    signature: void err_unshelve_state(void* state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/err/err.c:802,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:805,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/err/err.c:807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 809
    functionName: ERR_get_next_error_library
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 8
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ERR_get_next_error_library(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/crypto/err/err.c:816,1
    - Dst: err_clear_data
      Src: /src/openssl-1.1.1g/crypto/err/err.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 811
    functionDepth: 4
    functionLinenumber: 811
    functionLinenumberEnd: 827
    functionName: err_set_error_data_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_get_state
    - err_clear_data
    linkageType: ''
    returnType: int
    signature: int err_set_error_data_int(char *data, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: err_set_error_data_int
      Src: /src/openssl-1.1.1g/crypto/err/err.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 829
    functionDepth: 5
    functionLinenumber: 829
    functionLinenumberEnd: 836
    functionName: ERR_set_error_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - err_set_error_data_int
    linkageType: ''
    returnType: void
    signature: void ERR_set_error_data(char *data, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/crypto/err/err.c:841,1
    - Dst: ERR_add_error_vdata
      Src: /src/openssl-1.1.1g/crypto/err/err.c:842,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/crypto/err/err.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 844
    functionName: ERR_add_error_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 59
    functionsReached:
    - va_start
    - va_end
    - ERR_add_error_vdata
    linkageType: ''
    returnType: void
    signature: void ERR_add_error_data(int num, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/err/err.c:852,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/crypto/err/err.c:860,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/err/err.c:863,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/err/err.c:866,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/err/err.c:868,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/err/err.c:873,1
    - Dst: err_set_error_data_int
      Src: /src/openssl-1.1.1g/crypto/err/err.c:875,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/err/err.c:876,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - num
    - args
    argTypes:
    - int
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 846
    functionDepth: 5
    functionLinenumber: 846
    functionLinenumberEnd: 877
    functionName: ERR_add_error_vdata
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_realloc
    - va_arg
    - OPENSSL_strlcat
    - OPENSSL_free
    - err_set_error_data_int
    - strlen
    linkageType: ''
    returnType: void
    signature: void ERR_add_error_vdata(int num, va_list args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/crypto/err/err.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 879
    functionDepth: 4
    functionLinenumber: 879
    functionLinenumberEnd: 891
    functionName: ERR_set_mark
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 8
    functionsReached:
    - ERR_get_state
    linkageType: ''
    returnType: int
    signature: int ERR_set_mark(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/crypto/err/err.c:897,1
    - Dst: err_clear
      Src: /src/openssl-1.1.1g/crypto/err/err.c:903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 911
    functionName: ERR_pop_to_mark
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 8
    functionsReached:
    - ERR_get_state
    - err_clear
    linkageType: ''
    returnType: int
    signature: int ERR_pop_to_mark(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/crypto/err/err.c:918,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 913
    functionDepth: 4
    functionLinenumber: 913
    functionLinenumberEnd: 932
    functionName: ERR_clear_last_mark
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - ERR_get_state
    linkageType: ''
    returnType: int
    signature: int ERR_clear_last_mark(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/crypto/err/err.c:939,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/err/err.c:949,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/crypto/err/err.c:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - clear
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 934
    functionDepth: 4
    functionLinenumber: 934
    functionLinenumberEnd: 952
    functionName: err_clear_last_constant_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - constant_time_select_int
    - ERR_get_state
    - constant_time_eq_int
    linkageType: ''
    returnType: void
    signature: void err_clear_last_constant_time(int clear)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:34,1
    - Dst: ERR_get_error_line_data
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:36,1
    - Dst: ERR_error_string_n
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:37,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:38,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:40,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - u
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 43
    functionName: ERR_print_errors_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err_prn.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - cb
    - CRYPTO_THREAD_get_current_id
    - ERR_get_error_line_data
    - ERR_error_string_n
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void
      *u),\n                         void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - bp
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err_prn.c
    functionUses: 0
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int print_bio(const char *str, size_t len, void *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_print_errors_cb
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: ERR_print_errors
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err_prn.c
    functionUses: 2
    functionsReached:
    - ERR_print_errors_cb
    linkageType: ''
    returnType: void
    signature: void ERR_print_errors(BIO *bp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:58,1
    - Dst: ERR_print_errors_cb
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:62,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/err/err_prn.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: ERR_print_errors_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/err/err_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - ERR_print_errors_cb
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void ERR_print_errors_fp(FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:30,1
    - Dst: TS_STATUS_INFO_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:31,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:33,1
    - Dst: TS_TST_INFO_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:35,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: TS_RESP_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c
    functionUses: 0
    functionsReached:
    - TS_TST_INFO_print_bio
    - TS_STATUS_INFO_print_bio
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int TS_RESP_print_bio(BIO *bio, TS_RESP *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:75,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:76,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:77,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:78,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:80,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:82,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:83,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:85,1
    - Dst: ASN1_STRING_print_ex
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:86,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:86,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:87,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:90,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:92,1
    - Dst: ts_status_map_print
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:94,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:96,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_STATUS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 100
    functionName: TS_STATUS_INFO_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - sk_ASN1_UTF8STRING_num
    - ASN1_STRING_print_ex
    - sk_ASN1_UTF8STRING_value
    - ts_status_map_print
    - BIO_puts
    - BIO_printf
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: int
    signature: int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:108,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - a
    - v
    argTypes:
    - BIO*
    - struct status_map_st*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: ts_status_map_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - ASN1_BIT_STRING_get_bit
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int ts_status_map_print(BIO *bio, const struct status_map_st *a,\n
      \                              const ASN1_BIT_STRING *v)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:125,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:126,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:128,1
    - Dst: TS_OBJ_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:129,1
    - Dst: TS_MSG_IMPRINT_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:131,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:133,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:135,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:137,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:138,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:140,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:141,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:142,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:144,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:146,1
    - Dst: ts_ACCURACY_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:148,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:149,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:151,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:153,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:155,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:157,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:158,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:160,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:162,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:164,1
    - Dst: i2v_GENERAL_NAME
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:165,1
    - Dst: X509V3_EXT_val_prn
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:166,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:167,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:169,1
    - Dst: TS_ext_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 118
    functionDepth: 6
    functionLinenumber: 118
    functionLinenumberEnd: 174
    functionName: TS_TST_INFO_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - i2v_GENERAL_NAME
    - TS_ext_print_bio
    - TS_ASN1_INTEGER_print_bio
    - ASN1_GENERALIZEDTIME_print
    - TS_MSG_IMPRINT_print_bio
    - ts_ACCURACY_print_bio
    - STACK_OF
    - TS_OBJ_print_bio
    - sk_CONF_VALUE_pop_free
    - BIO_printf
    - ASN1_INTEGER_get
    - X509V3_EXT_val_prn
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:179,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:181,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:182,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:184,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:186,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:187,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:191,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_ACCURACY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: ts_ACCURACY_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - TS_ASN1_INTEGER_print_bio
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ts_ACCURACY_print_bio(BIO *bio, const TS_ACCURACY *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:25,1
    - Dst: BN_bn2hex
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:28,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:29,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:30,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:30,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:31,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - bio
    - num
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: TS_ASN1_INTEGER_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_lib.c
    functionUses: 2
    functionsReached:
    - BIO_write
    - OPENSSL_free
    - BN_free
    - BN_bn2hex
    - strlen
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: int
    signature: int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2txt
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:42,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bio
    - obj
    argTypes:
    - BIO*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: TS_OBJ_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_lib.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:54,1
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:55,1
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:57,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:58,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:59,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:61,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:62,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:63,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:64,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:65,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:65,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - bio
    - extensions
    argTypes:
    - BIO*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: TS_ext_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_lib.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - i2a_ASN1_OBJECT
    - X509v3_get_ext_count
    - X509_EXTENSION_get_object
    - X509_EXTENSION_get_data
    - X509_EXTENSION_get_critical
    - X509V3_EXT_print
    - BIO_printf
    - X509v3_get_ext
    - ASN1_STRING_print
    linkageType: ''
    returnType: int
    signature: int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:76,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - alg
    argTypes:
    - BIO*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: TS_X509_ALGOR_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - OBJ_obj2nid
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TS_X509_ALGOR_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:84,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:86,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:88,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:88,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ts/ts_lib.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: TS_MSG_IMPRINT_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_lib.c
    functionUses: 1
    functionsReached:
    - TS_X509_ALGOR_print_bio
    - BIO_dump_indent
    - ASN1_STRING_length
    - BIO_printf
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_MSG_IMPRINT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: d2i_TS_MSG_IMPRINT_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bp, TS_MSG_IMPRINT **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: i2d_TS_MSG_IMPRINT_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_TS_MSG_IMPRINT_bio(BIO *bp, TS_MSG_IMPRINT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_MSG_IMPRINT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: d2i_TS_MSG_IMPRINT_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: i2d_TS_MSG_IMPRINT_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_REQ**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: d2i_TS_REQ_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_REQ
    signature: TS_REQ *d2i_TS_REQ_bio(BIO *bp, TS_REQ **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: i2d_TS_REQ_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_TS_REQ_bio(BIO *bp, TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_REQ**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: d2i_TS_REQ_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_REQ
    signature: TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: i2d_TS_REQ_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_TST_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: d2i_TS_TST_INFO_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bp, TS_TST_INFO **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: i2d_TS_TST_INFO_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_TS_TST_INFO_bio(BIO *bp, TS_TST_INFO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_TST_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: d2i_TS_TST_INFO_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: i2d_TS_TST_INFO_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:137,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:141,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:144,1
    - Dst: PKCS7_to_TS_TST_INFO
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:145,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:147,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 157
    functionName: ts_resp_set_tst_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - TSerr
    - ASN1_INTEGER_get
    - TS_TST_INFO_free
    - PKCS7_to_TS_TST_INFO
    linkageType: ''
    returnType: int
    signature: int ts_resp_set_tst_info(TS_RESP *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:166,1
    - Dst: ts_resp_set_tst_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - op
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 7
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: ts_resp_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ts_resp_set_tst_info
    - TS_TST_INFO_free
    linkageType: ''
    returnType: int
    signature: "int ts_resp_cb(int op, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                      void
      *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_RESP**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: d2i_TS_RESP_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_RESP
    signature: TS_RESP *d2i_TS_RESP_bio(BIO *bp, TS_RESP **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: i2d_TS_RESP_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_TS_RESP_bio(BIO *bp, TS_RESP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_RESP**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: d2i_TS_RESP_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_RESP
    signature: TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: i2d_TS_RESP_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_signed
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:254,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:255,1
    - Dst: PKCS7_get_detached
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:258,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:259,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:264,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:265,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:270,1
    - Dst: d2i_TS_TST_INFO
      Src: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - token
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 276
    functionName: PKCS7_to_TS_TST_INFO
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
    functionUses: 1
    functionsReached:
    - d2i_TS_TST_INFO
    - TSerr
    - PKCS7_type_is_signed
    - PKCS7_get_detached
    - OBJ_obj2nid
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:49,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:51,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:54,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: TS_CONF_load_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_X509_AUX
    - TSerr
    - BIO_new_file
    - BIO_free
    linkageType: ''
    returnType: X509
    signature: X509 *TS_CONF_load_cert(const char *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:92,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:94,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:97,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - file
    - pass
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: TS_CONF_load_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TSerr
    - PEM_read_bio_PrivateKey
    - BIO_new_file
    - BIO_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:106,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - tag
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: ts_CONF_lookup_fail
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TSerr
    - ERR_add_error_data
    linkageType: ''
    returnType: void
    signature: void ts_CONF_lookup_fail(const char *name, const char *tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:112,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - tag
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: ts_CONF_invalid
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TSerr
    - ERR_add_error_data
    linkageType: ''
    returnType: void
    signature: void ts_CONF_invalid(const char *name, const char *tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:119,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conf
    - section
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: TS_CONF_get_tsa_section
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - ts_CONF_lookup_fail
    linkageType: ''
    returnType: char
    signature: char *TS_CONF_get_tsa_section(CONF *conf, const char *section)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:130,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:132,1
    - Dst: TS_RESP_CTX_set_serial_cb
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - conf
    - section
    - cb
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_serial_cb
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: TS_CONF_set_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - ts_CONF_lookup_fail
    - TS_RESP_CTX_set_serial_cb
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb
      cb,\n                       TS_RESP_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:150,1
    - Dst: TS_CONF_set_default_engine
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:152,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - conf
    - section
    - device
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: TS_CONF_set_crypto_device
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - ts_CONF_invalid
    - TS_CONF_set_default_engine
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_crypto_device(CONF *conf, const char *section,\n                              const
      char *device)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:166,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:169,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:171,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:172,1
    - Dst: ENGINE_set_default
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:173,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:179,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:180,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 161
    functionDepth: 7
    functionLinenumber: 161
    functionLinenumberEnd: 184
    functionName: TS_CONF_set_default_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 1
    functionsReached:
    - ENGINE_set_default
    - ENGINE_ctrl
    - strcmp
    - ENGINE_by_id
    - ENGINE_free
    - ERR_add_error_data
    - TSerr
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_default_engine(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:195,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:197,1
    - Dst: TS_CONF_load_cert
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:201,1
    - Dst: TS_RESP_CTX_set_signer_cert
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:203,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - conf
    - section
    - cert
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 210
    functionName: TS_CONF_set_signer_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - X509_free
    - TS_RESP_CTX_set_signer_cert
    - TS_CONF_load_cert
    - ts_CONF_lookup_fail
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_signer_cert(CONF *conf, const char *section,\n                            const
      char *cert, TS_RESP_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:216,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:220,1
    - Dst: TS_CONF_load_certs
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:223,1
    - Dst: TS_RESP_CTX_set_certs
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:225,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - conf
    - section
    - certs
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 232
    functionName: TS_CONF_set_certs
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - TS_RESP_CTX_set_certs
    - STACK_OF
    - TS_CONF_load_certs
    - sk_X509_pop_free
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_certs(CONF *conf, const char *section, const char
      *certs,\n                      TS_RESP_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:241,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:243,1
    - Dst: TS_CONF_load_key
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:246,1
    - Dst: TS_RESP_CTX_set_signer_key
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:248,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - conf
    - section
    - key
    - pass
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 255
    functionName: TS_CONF_set_signer_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - TS_CONF_load_key
    - ts_CONF_lookup_fail
    - TS_RESP_CTX_set_signer_key
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_signer_key(CONF *conf, const char *section,\n                           const
      char *key, const char *pass,\n                           TS_RESP_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:263,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:265,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:268,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:270,1
    - Dst: TS_RESP_CTX_set_signer_digest
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - conf
    - section
    - md
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 279
    functionName: TS_CONF_set_signer_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - ts_CONF_invalid
    - EVP_get_digestbyname
    - ts_CONF_lookup_fail
    - TS_RESP_CTX_set_signer_digest
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_signer_digest(CONF *conf, const char *section,\n                              const
      char *md, TS_RESP_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:287,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:289,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:292,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:293,1
    - Dst: TS_RESP_CTX_set_def_policy
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:296,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - conf
    - section
    - policy
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 303
    functionName: TS_CONF_set_def_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - ts_CONF_invalid
    - ASN1_OBJECT_free
    - TS_RESP_CTX_set_def_policy
    - ts_CONF_lookup_fail
    - OBJ_txt2obj
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_def_policy(CONF *conf, const char *section,\n                           const
      char *policy, TS_RESP_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:309,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:310,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:313,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:314,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:317,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:318,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:322,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:323,1
    - Dst: TS_RESP_CTX_add_policy
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:326,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:328,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:333,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 335
    functionName: TS_CONF_set_policies
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - ts_CONF_invalid
    - sk_CONF_VALUE_num
    - X509V3_parse_list
    - STACK_OF
    - ASN1_OBJECT_free
    - OBJ_txt2obj
    - TS_RESP_CTX_add_policy
    - sk_CONF_VALUE_pop_free
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:341,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:342,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:345,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:348,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:349,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:352,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:353,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:356,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:357,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:361,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:362,1
    - Dst: TS_RESP_CTX_add_md
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:365,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:371,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 373
    functionName: TS_CONF_set_digests
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - ts_CONF_invalid
    - EVP_get_digestbyname
    - sk_CONF_VALUE_num
    - TS_RESP_CTX_add_md
    - X509V3_parse_list
    - STACK_OF
    - ts_CONF_lookup_fail
    - sk_CONF_VALUE_pop_free
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:380,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:381,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:383,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:384,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:387,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:388,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:389,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:391,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:392,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:394,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:395,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:397,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:399,1
    - Dst: TS_RESP_CTX_set_accuracy
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:403,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:408,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 410
    functionName: TS_CONF_set_accuracy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - ts_CONF_invalid
    - TS_RESP_CTX_set_accuracy
    - sk_CONF_VALUE_num
    - strcmp
    - X509V3_parse_list
    - atoi
    - STACK_OF
    - sk_CONF_VALUE_pop_free
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_number_e
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:421,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:425,1
    - Dst: TS_RESP_CTX_set_clock_precision_digits
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 435
    functionName: TS_CONF_set_clock_precision_digits
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_clock_precision_digits
    - ts_CONF_invalid
    - NCONF_get_number_e
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_clock_precision_digits(CONF *conf, const char *section,\n
      \                                      TS_RESP_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:440,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:443,1
    - Dst: TS_RESP_CTX_add_flags
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:444,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:445,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - conf
    - section
    - field
    - flag
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - int
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 452
    functionName: ts_CONF_add_flag
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - TS_RESP_CTX_add_flags
    - strcmp
    - ts_CONF_invalid
    linkageType: ''
    returnType: int
    signature: "int ts_CONF_add_flag(CONF *conf, const char *section,\n                            const
      char *field, int flag, TS_RESP_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_add_flag
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: TS_CONF_set_ordering
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_add_flag
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_add_flag
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: TS_CONF_set_tsa_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_add_flag
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_add_flag
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: TS_CONF_set_ess_cert_id_chain
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_add_flag
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section,\n
      \                                 TS_RESP_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:476,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:481,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:483,1
    - Dst: TS_RESP_CTX_set_ess_cert_id_digest
      Src: /src/openssl-1.1.1g/crypto/ts/ts_conf.c:487,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 493
    functionName: TS_CONF_set_ess_cert_id_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - TS_RESP_CTX_set_ess_cert_id_digest
    - ts_CONF_invalid
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_ess_cert_id_digest(CONF *conf, const char *section,\n
      \                                  TS_RESP_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:17,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: TS_VERIFY_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - TSerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: TS_VERIFY_CTX
    signature: TS_VERIFY_CTX *TS_VERIFY_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:26,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_VERIFY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: TS_VERIFY_CTX_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - memset
    linkageType: ''
    returnType: void
    signature: void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TS_VERIFY_CTX_cleanup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_VERIFY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: TS_VERIFY_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - TS_VERIFY_CTX_cleanup
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - f
    argTypes:
    - TS_VERIFY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: TS_VERIFY_CTX_add_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - f
    argTypes:
    - TS_VERIFY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: TS_VERIFY_CTX_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - b
    argTypes:
    - TS_VERIFY_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: TS_VERIFY_CTX_set_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - TS_VERIFY_CTX*
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: TS_VERIFY_CTX_set_store
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - hexstr
    - len
    argTypes:
    - TS_VERIFY_CTX*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: TS_VERIFY_CTX_set_imprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx,\n                                         unsigned
      char *hexstr, long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:83,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:84,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:86,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:88,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:89,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:91,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:93,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:95,1
    - Dst: TS_VERIFY_CTX_init
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_VERIFY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: TS_VERIFY_CTX_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 1
    functionsReached:
    - X509_STORE_free
    - OPENSSL_free
    - ASN1_INTEGER_free
    - ASN1_OBJECT_free
    - GENERAL_NAME_free
    - X509_ALGOR_free
    - TS_VERIFY_CTX_init
    - sk_X509_pop_free
    - BIO_free_all
    linkageType: ''
    returnType: void
    signature: void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:109,1
    - Dst: TS_VERIFY_CTX_cleanup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:111,1
    - Dst: TS_VERIFY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:112,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:118,1
    - Dst: X509_ALGOR_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:125,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:128,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:129,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:131,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:131,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:134,1
    - Dst: TS_VERIFY_CTX_cleanup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:142,1
    - Dst: TS_VERIFY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c:144,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - req
    - ctx
    argTypes:
    - TS_REQ*
    - TS_VERIFY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 146
    functionName: TS_REQ_to_TS_VERIFY_CTX
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - OBJ_dup
    - OPENSSL_malloc
    - ASN1_STRING_length
    - memcpy
    - TS_VERIFY_CTX_cleanup
    - TS_VERIFY_CTX_free
    - X509_ALGOR_dup
    - ASN1_INTEGER_dup
    - ASN1_STRING_get0_data
    - TS_VERIFY_CTX_new
    linkageType: ''
    returnType: TS_VERIFY_CTX
    signature: TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:54,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:58,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:63,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - struct TS_resp_ctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: def_serial_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - TSerr
    - ASN1_INTEGER_set
    - TS_RESP_CTX_set_status_info
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *def_serial_cb(struct TS_resp_ctx *ctx, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:75,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:76,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:77,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - data
    - sec
    - usec
    argTypes:
    - struct TS_resp_ctx*
    - void*
    - long*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: def_time_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TSerr
    - gettimeofday
    - TS_RESP_CTX_set_status_info
    - TS_RESP_CTX_add_failure_info
    linkageType: ''
    returnType: int
    signature: "int def_time_cb(struct TS_resp_ctx *ctx, void *data,\n                       long
      *sec, long *usec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:94,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:95,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:96,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - data
    - sec
    - usec
    argTypes:
    - struct TS_resp_ctx*
    - void*
    - long*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: def_time_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TSerr
    - TS_RESP_CTX_add_failure_info
    - TS_RESP_CTX_set_status_info
    - time
    linkageType: ''
    returnType: int
    signature: "int def_time_cb(struct TS_resp_ctx *ctx, void *data,\n                       long
      *sec, long *usec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:112,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - ext
    - data
    argTypes:
    - struct TS_resp_ctx*
    - X509_EXTENSION*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: def_extension_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_add_failure_info
    - TS_RESP_CTX_set_status_info
    linkageType: ''
    returnType: int
    signature: "int def_extension_cb(struct TS_resp_ctx *ctx, X509_EXTENSION *ext,\n
      \                           void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:124,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:125,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: TS_RESP_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TSerr
    - OPENSSL_zalloc
    - EVP_sha256
    linkageType: ''
    returnType: TS_RESP_CTX
    signature: TS_RESP_CTX *TS_RESP_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:143,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:144,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:145,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:146,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:147,1
    - Dst: sk_EVP_MD_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:148,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:149,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:150,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:151,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: TS_RESP_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - X509_free
    - sk_ASN1_OBJECT_pop_free
    - OPENSSL_free
    - ASN1_INTEGER_free
    - ASN1_OBJECT_free
    - sk_EVP_MD_free
    - EVP_PKEY_free
    - sk_X509_pop_free
    linkageType: ''
    returnType: void
    signature: void TS_RESP_CTX_free(TS_RESP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:157,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:158,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:162,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - signer
    argTypes:
    - TS_RESP_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: TS_RESP_CTX_set_signer_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - X509_free
    - TSerr
    - X509_check_purpose
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:170,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - TS_RESP_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: TS_RESP_CTX_set_signer_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_up_ref
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - TS_RESP_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: TS_RESP_CTX_set_signer_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:185,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:186,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - def_policy
    argTypes:
    - TS_RESP_CTX*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: TS_RESP_CTX_set_def_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TSerr
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT
      *def_policy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:214,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:216,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:218,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:223,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - TS_RESP_CTX*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: TS_RESP_CTX_add_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - OBJ_dup
    - sk_ASN1_OBJECT_new_null
    - sk_ASN1_OBJECT_push
    - ASN1_OBJECT_free
    - TSerr
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_MD_new_null
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:231,1
    - Dst: sk_EVP_MD_push
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:233,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - TS_RESP_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: TS_RESP_CTX_add_md
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TSerr
    - sk_EVP_MD_push
    - sk_EVP_MD_new_null
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: TS_RESP_CTX_accuracy_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TS_RESP_CTX_accuracy_free(ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_CTX_accuracy_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:254,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:256,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:257,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:260,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:261,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:264,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:265,1
    - Dst: TS_RESP_CTX_accuracy_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:270,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - secs
    - millis
    - micros
    argTypes:
    - TS_RESP_CTX*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 250
    functionDepth: 5
    functionLinenumber: 250
    functionLinenumberEnd: 273
    functionName: TS_RESP_CTX_set_accuracy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_new
    - TS_RESP_CTX_accuracy_free
    - ASN1_INTEGER_set
    - TSerr
    linkageType: ''
    returnType: int
    signature: "int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx,\n                             int
      secs, int millis, int micros)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - TS_RESP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: TS_RESP_CTX_add_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - data
    argTypes:
    - TS_RESP_CTX*
    - TS_serial_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: TS_RESP_CTX_set_serial_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - data
    argTypes:
    - TS_RESP_CTX*
    - TS_time_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: TS_RESP_CTX_set_time_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - data
    argTypes:
    - TS_RESP_CTX*
    - TS_extension_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: TS_RESP_CTX_set_extension_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx,\n                                  TS_extension_cb
      cb, void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TS_STATUS_INFO_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:306,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:308,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:311,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:312,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:312,1
    - Dst: sk_ASN1_UTF8STRING_new_null
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:315,1
    - Dst: sk_ASN1_UTF8STRING_push
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:317,1
    - Dst: TS_RESP_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:321,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:326,1
    - Dst: TS_STATUS_INFO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:327,1
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:328,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - status
    - text
    argTypes:
    - TS_RESP_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 330
    functionName: TS_RESP_CTX_set_status_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 4
    functionsReached:
    - sk_ASN1_UTF8STRING_new_null
    - ASN1_STRING_set
    - TS_STATUS_INFO_free
    - ASN1_UTF8STRING_free
    - TS_STATUS_INFO_new
    - ASN1_UTF8STRING_new
    - TS_RESP_set_status_info
    - sk_ASN1_UTF8STRING_push
    - TSerr
    - ASN1_INTEGER_set
    - strlen
    linkageType: ''
    returnType: int
    signature: "int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx,\n                                int
      status, const char *text)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:338,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - status
    - text
    argTypes:
    - TS_RESP_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 332
    functionDepth: 6
    functionLinenumber: 332
    functionLinenumberEnd: 342
    functionName: TS_RESP_CTX_set_status_info_cond
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get
    - TS_RESP_CTX_set_status_info
    linkageType: ''
    returnType: int
    signature: "int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx,\n                                     int
      status, const char *text)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:348,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:350,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - failure
    argTypes:
    - TS_RESP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: TS_RESP_CTX_add_failure_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 3
    functionsReached:
    - TSerr
    - ASN1_BIT_STRING_set_bit
    - ASN1_BIT_STRING_new
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: TS_RESP_CTX_get_request
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_REQ
    signature: TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: TS_RESP_CTX_get_tst_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - precision
    argTypes:
    - TS_RESP_CTX*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: TS_RESP_CTX_set_clock_precision_digits
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx,\n                                           unsigned
      precision)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ts_RESP_CTX_init
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:384,1
    - Dst: TS_RESP_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:386,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:387,1
    - Dst: d2i_TS_REQ_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:390,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:391,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:393,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:396,1
    - Dst: ts_RESP_check_request
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:398,1
    - Dst: ts_RESP_get_policy
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:400,1
    - Dst: ts_RESP_create_tst_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:402,1
    - Dst: ts_RESP_process_extensions
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:404,1
    - Dst: ts_RESP_sign
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:406,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:412,1
    - Dst: TS_RESP_CTX_set_status_info_cond
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:414,1
    - Dst: TS_RESP_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:418,1
    - Dst: ts_RESP_CTX_cleanup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:425,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 2
    argNames:
    - ctx
    - req_bio
    argTypes:
    - TS_RESP_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 378
    functionDepth: 7
    functionLinenumber: 378
    functionLinenumberEnd: 427
    functionName: TS_RESP_create_response
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TS_RESP_free
    - TS_RESP_CTX_add_failure_info
    - ts_RESP_check_request
    - ts_RESP_create_tst_info
    - d2i_TS_REQ_bio
    - ts_RESP_CTX_cleanup
    - TS_RESP_new
    - ts_RESP_process_extensions
    - ts_RESP_sign
    - ts_RESP_CTX_init
    - TSerr
    - ts_RESP_get_policy
    - TS_RESP_CTX_set_status_info_cond
    - TS_RESP_CTX_set_status_info
    linkageType: ''
    returnType: TS_RESP
    signature: TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 435
    functionName: ts_RESP_CTX_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ts_RESP_CTX_init(TS_RESP_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TS_REQ_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:440,1
    - Dst: TS_RESP_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:442,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 446
    functionName: ts_RESP_CTX_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TS_TST_INFO_free
    - TS_REQ_free
    - TS_RESP_free
    linkageType: ''
    returnType: void
    signature: void ts_RESP_CTX_cleanup(TS_RESP_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TS_REQ_get_version
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:459,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:460,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:462,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:468,1
    - Dst: sk_EVP_MD_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:469,1
    - Dst: sk_EVP_MD_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:470,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:471,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:475,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:478,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:482,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:483,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:486,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:490,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:491,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 449
    functionDepth: 6
    functionLinenumber: 449
    functionLinenumberEnd: 498
    functionName: ts_RESP_check_request
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_get
    - sk_EVP_MD_num
    - EVP_MD_type
    - TS_REQ_get_version
    - TS_RESP_CTX_add_failure_info
    - sk_EVP_MD_value
    - EVP_MD_size
    - OBJ_obj2nid
    - TS_RESP_CTX_set_status_info
    linkageType: ''
    returnType: int
    signature: int ts_RESP_check_request(TS_RESP_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:508,1
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:511,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:515,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:516,1
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:517,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:521,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:522,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:524,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 501
    functionDepth: 6
    functionLinenumber: 501
    functionLinenumberEnd: 527
    functionName: ts_RESP_get_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_OBJECT_value
    - OBJ_cmp
    - sk_ASN1_OBJECT_num
    - TS_RESP_CTX_add_failure_info
    - TSerr
    - TS_RESP_CTX_set_status_info
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *ts_RESP_get_policy(TS_RESP_CTX *ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TS_TST_INFO_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:542,1
    - Dst: TS_TST_INFO_set_version
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:544,1
    - Dst: TS_TST_INFO_set_policy_id
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:546,1
    - Dst: TS_TST_INFO_set_msg_imprint
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:548,1
    - Dst: TS_RESP_CTX*::serial_cb
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:550,1
    - Dst: TS_TST_INFO_set_serial
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:551,1
    - Dst: TS_RESP_CTX*::time_cb
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:553,1
    - Dst: TS_RESP_set_genTime_with_precision
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:555,1
    - Dst: TS_TST_INFO_set_time
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:557,1
    - Dst: TS_ACCURACY_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:561,1
    - Dst: TS_ACCURACY_set_seconds
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:563,1
    - Dst: TS_ACCURACY_set_millis
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:565,1
    - Dst: TS_ACCURACY_set_micros
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:567,1
    - Dst: TS_TST_INFO_set_accuracy
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:569,1
    - Dst: TS_TST_INFO_set_ordering
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:573,1
    - Dst: TS_TST_INFO_set_nonce
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:577,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:581,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:585,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:585,1
    - Dst: TS_TST_INFO_set_tsa
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:588,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:595,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:597,1
    - Dst: TS_RESP_CTX_set_status_info_cond
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:598,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:602,1
    - Dst: TS_ACCURACY_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:603,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:604,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:605,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 67
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - TS_RESP_CTX*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 530
    functionDepth: 7
    functionLinenumber: 530
    functionLinenumberEnd: 608
    functionName: ts_RESP_create_tst_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TS_TST_INFO_set_nonce
    - X509_NAME_dup
    - TS_TST_INFO_set_accuracy
    - X509_get_subject_name
    - TS_TST_INFO_set_policy_id
    - TSerr
    - TS_TST_INFO_set_msg_imprint
    - GENERAL_NAME_new
    - TS_ACCURACY_free
    - TS_TST_INFO_set_time
    - TS_RESP_CTX*::time_cb
    - TS_TST_INFO_set_serial
    - TS_TST_INFO_free
    - TS_TST_INFO_new
    - TS_TST_INFO_set_version
    - TS_RESP_CTX*::serial_cb
    - TS_TST_INFO_set_ordering
    - TS_TST_INFO_set_tsa
    - TS_ACCURACY_new
    - TS_ACCURACY_set_micros
    - TS_RESP_set_genTime_with_precision
    - ASN1_GENERALIZEDTIME_free
    - GENERAL_NAME_free
    - ASN1_INTEGER_free
    - TS_ACCURACY_set_seconds
    - TS_ACCURACY_set_millis
    - TS_RESP_CTX_set_status_info_cond
    linkageType: ''
    returnType: TS_TST_INFO
    signature: "TS_TST_INFO *ts_RESP_create_tst_info(TS_RESP_CTX *ctx,\n                                            ASN1_OBJECT
      *policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:613,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:617,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 629
    functionName: ts_RESP_process_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - sk_X509_EXTENSION_value
    - STACK_OF
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: int ts_RESP_process_extensions(TS_RESP_CTX *ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:637,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:644,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:645,1
    - Dst: PKCS7_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:649,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:650,1
    - Dst: PKCS7_set_type
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:653,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:655,1
    - Dst: PKCS7_add_certificate
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:659,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:661,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:662,1
    - Dst: PKCS7_add_certificate
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:663,1
    - Dst: PKCS7_add_signature
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:668,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:670,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:674,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:675,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:677,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:683,1
    - Dst: ess_SIGNING_CERT_new_init
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:684,1
    - Dst: ess_add_signing_cert
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:687,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:688,1
    - Dst: ess_signing_cert_v2_new_init
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:692,1
    - Dst: ess_add_signing_cert_v2
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:697,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:698,1
    - Dst: ts_TST_INFO_content_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:703,1
    - Dst: PKCS7_dataInit
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:705,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:706,1
    - Dst: i2d_TS_TST_INFO_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:709,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:710,1
    - Dst: PKCS7_dataFinal
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:713,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:714,1
    - Dst: TS_RESP_set_tst_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:717,1
    - Dst: TS_RESP_CTX_set_status_info_cond
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:724,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:727,1
    - Dst: ESS_SIGNING_CERT_V2_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:728,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:729,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:730,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 632
    functionDepth: 7
    functionLinenumber: 632
    functionLinenumberEnd: 732
    functionName: ts_RESP_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - PKCS7_set_type
    - STACK_OF
    - ess_signing_cert_v2_new_init
    - PKCS7_free
    - TSerr
    - TS_RESP_CTX_set_status_info_cond
    - i2d_TS_TST_INFO_bio
    - PKCS7_add_certificate
    - ESS_SIGNING_CERT_free
    - TS_RESP_set_tst_info
    - ess_SIGNING_CERT_new_init
    - PKCS7_add_signature
    - ess_add_signing_cert_v2
    - PKCS7_new
    - OBJ_nid2obj
    - PKCS7_dataFinal
    - EVP_sha1
    - ess_add_signing_cert
    - PKCS7_add_signed_attribute
    - ASN1_INTEGER_set
    - BIO_free_all
    - X509_check_private_key
    - ts_TST_INFO_content_new
    - sk_X509_num
    - PKCS7_dataInit
    - ESS_SIGNING_CERT_V2_free
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int ts_RESP_sign(TS_RESP_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ESS_SIGNING_CERT_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:741,1
    - Dst: sk_ESS_CERT_ID_new_null
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:744,1
    - Dst: ess_CERT_ID_new_init
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:747,1
    - Dst: sk_ESS_CERT_ID_push
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:748,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:750,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:751,1
    - Dst: ess_CERT_ID_new_init
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:752,1
    - Dst: sk_ESS_CERT_ID_push
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:753,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:759,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:760,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - signcert
    - certs
    argTypes:
    - X509*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 762
    functionName: ess_SIGNING_CERT_new_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ESS_SIGNING_CERT_free
    - sk_ESS_CERT_ID_new_null
    - sk_X509_num
    - sk_ESS_CERT_ID_push
    - TSerr
    - ESS_SIGNING_CERT_new
    - sk_X509_value
    - ess_CERT_ID_new_init
    linkageType: ''
    returnType: ESS_SIGNING_CERT
    signature: "ESS_SIGNING_CERT *ess_SIGNING_CERT_new_init(X509 *signcert,\n                                                   STACK_OF(X509)
      *certs)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:771,1
    - Dst: ESS_CERT_ID_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:772,1
    - Dst: X509_digest
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:774,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:774,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:776,1
    - Dst: ESS_ISSUER_SERIAL_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:782,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:784,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:787,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:787,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:789,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:792,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:794,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:794,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:800,1
    - Dst: ESS_CERT_ID_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:801,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:802,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 2
    argNames:
    - cert
    - issuer_needed
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 764
    functionDepth: 4
    functionLinenumber: 764
    functionLinenumberEnd: 804
    functionName: ess_CERT_ID_new_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - sk_GENERAL_NAME_push
    - ESS_CERT_ID_new
    - GENERAL_NAME_new
    - X509_check_purpose
    - ESS_CERT_ID_free
    - ASN1_OCTET_STRING_set
    - ESS_ISSUER_SERIAL_new
    - EVP_sha1
    - GENERAL_NAME_free
    - ASN1_INTEGER_free
    - ASN1_INTEGER_dup
    - X509_get_serialNumber
    - X509_NAME_dup
    - X509_get_issuer_name
    - TSerr
    - X509_digest
    linkageType: ''
    returnType: ESS_CERT_ID
    signature: ESS_CERT_ID *ess_CERT_ID_new_init(X509 *cert, int issuer_needed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:812,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:814,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:816,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:817,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:819,1
    - Dst: PKCS7_set_content
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:823,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:828,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:829,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 806
    functionDepth: 4
    functionLinenumber: 806
    functionLinenumberEnd: 831
    functionName: ts_TST_INFO_content_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - OBJ_nid2obj
    - ASN1_OCTET_STRING_new
    - PKCS7_free
    - ASN1_TYPE_set
    - ASN1_OCTET_STRING_free
    - PKCS7_set_content
    - PKCS7_new
    linkageType: ''
    returnType: int
    signature: int ts_TST_INFO_content_new(PKCS7 *p7)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ESS_SIGNING_CERT
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:839,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:840,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:841,1
    - Dst: i2d_ESS_SIGNING_CERT
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:845,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:846,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:846,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:847,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:850,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:852,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:856,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:857,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - si
    - sc
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ESS_SIGNING_CERT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 860
    functionName: ess_add_signing_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ASN1_STRING_set
    - ASN1_STRING_free
    - OPENSSL_free
    - ASN1_STRING_new
    - PKCS7_add_signed_attribute
    - TSerr
    - i2d_ESS_SIGNING_CERT
    linkageType: ''
    returnType: int
    signature: int ess_add_signing_cert(PKCS7_SIGNER_INFO *si, ESS_SIGNING_CERT *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ESS_SIGNING_CERT_V2_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:870,1
    - Dst: ess_cert_id_v2_new_init
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:872,1
    - Dst: sk_ESS_CERT_ID_V2_push
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:874,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:878,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:879,1
    - Dst: ess_cert_id_v2_new_init
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:881,1
    - Dst: sk_ESS_CERT_ID_V2_push
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:883,1
    - Dst: ESS_SIGNING_CERT_V2_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:890,1
    - Dst: ESS_CERT_ID_V2_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:891,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:892,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - hash_alg
    - signcert
    - certs
    argTypes:
    - EVP_MD*
    - X509*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 894
    functionName: ess_signing_cert_v2_new_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - sk_ESS_CERT_ID_V2_push
    - ESS_CERT_ID_V2_free
    - ESS_SIGNING_CERT_V2_new
    - ess_cert_id_v2_new_init
    - sk_X509_num
    - ESS_SIGNING_CERT_V2_free
    - TSerr
    - sk_X509_value
    linkageType: ''
    returnType: ESS_SIGNING_CERT_V2
    signature: "ESS_SIGNING_CERT_V2 *ess_signing_cert_v2_new_init(const EVP_MD *hash_alg,\n
      \                                                        X509 *signcert,\n                                                         STACK_OF(X509)
      *certs)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:905,1
    - Dst: ESS_CERT_ID_V2_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:907,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:910,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:911,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:914,1
    - Dst: X509_digest
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:923,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:926,1
    - Dst: ESS_ISSUER_SERIAL_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:930,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:932,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:935,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:935,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:937,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:940,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:942,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:942,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:949,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:950,1
    - Dst: ESS_CERT_ID_V2_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:951,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:952,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 3
    argNames:
    - hash_alg
    - cert
    - issuer_needed
    argTypes:
    - EVP_MD*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 896
    functionDepth: 6
    functionLinenumber: 896
    functionLinenumberEnd: 954
    functionName: ess_cert_id_v2_new_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ESS_CERT_ID_V2_free
    - ESS_ISSUER_SERIAL_new
    - X509_get_serialNumber
    - X509_NAME_dup
    - X509_get_issuer_name
    - TSerr
    - sk_GENERAL_NAME_push
    - GENERAL_NAME_new
    - ASN1_OCTET_STRING_set
    - X509_ALGOR_new
    - EVP_sha256
    - ASN1_INTEGER_dup
    - X509_digest
    - X509_ALGOR_free
    - X509_ALGOR_set_md
    - GENERAL_NAME_free
    - ASN1_INTEGER_free
    - ESS_CERT_ID_V2_new
    - memset
    linkageType: ''
    returnType: ESS_CERT_ID_V2
    signature: "ESS_CERT_ID_V2 *ess_cert_id_v2_new_init(const EVP_MD *hash_alg,\n
      \                                              X509 *cert, int issuer_needed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ESS_SIGNING_CERT_V2
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:961,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:963,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:964,1
    - Dst: i2d_ESS_SIGNING_CERT_V2
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:969,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:970,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:970,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:971,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:975,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:977,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:981,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:982,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - si
    - sc
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ESS_SIGNING_CERT_V2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 956
    functionDepth: 3
    functionLinenumber: 956
    functionLinenumberEnd: 984
    functionName: ess_add_signing_cert_v2
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ASN1_STRING_set
    - ASN1_STRING_free
    - OPENSSL_free
    - ASN1_STRING_new
    - PKCS7_add_signed_attribute
    - i2d_ESS_SIGNING_CERT_V2
    - TSerr
    linkageType: ''
    returnType: int
    signature: "int ess_add_signing_cert_v2(PKCS7_SIGNER_INFO *si,\n                                   ESS_SIGNING_CERT_V2
      *sc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:999,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:1009,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:1014,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:1015,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:1041,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:1043,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:1044,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c:1050,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - asn1_time
    - sec
    - usec
    - precision
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - long
    - long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 986
    functionDepth: 6
    functionLinenumber: 986
    functionLinenumberEnd: 1052
    functionName: TS_RESP_set_genTime_with_precision
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - OPENSSL_gmtime
    - BIO_snprintf
    - ASN1_GENERALIZEDTIME_free
    - ASN1_GENERALIZEDTIME_new
    - ASN1_GENERALIZEDTIME_set_string
    - TSerr
    - strlen
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "ASN1_GENERALIZEDTIME *TS_RESP_set_genTime_with_precision(\n        ASN1_GENERALIZEDTIME
      *asn1_time, long sec, long usec,\n        unsigned precision)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - TS_RESP_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1058
    functionName: TS_RESP_CTX_set_ess_cert_id_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_ess_cert_id_digest(TS_RESP_CTX *ctx, const EVP_MD
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - version
    argTypes:
    - TS_REQ*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 5
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: TS_REQ_set_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_version(TS_REQ *a, long version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: TS_REQ_get_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long TS_REQ_get_version(const TS_REQ *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TS_MSG_IMPRINT_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:33,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:35,1
    - Dst: TS_MSG_IMPRINT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - msg_imprint
    argTypes:
    - TS_REQ*
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: TS_REQ_set_msg_imprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - TSerr
    - TS_MSG_IMPRINT_dup
    - TS_MSG_IMPRINT_free
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TS_REQ_get_msg_imprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:54,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:56,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - alg
    argTypes:
    - TS_MSG_IMPRINT*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: TS_MSG_IMPRINT_set_algo
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - TSerr
    - X509_ALGOR_free
    - X509_ALGOR_dup
    linkageType: ''
    returnType: int
    signature: int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: TS_MSG_IMPRINT_get_algo
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - d
    - len
    argTypes:
    - TS_MSG_IMPRINT*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: TS_MSG_IMPRINT_set_msg
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    linkageType: ''
    returnType: int
    signature: int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: TS_MSG_IMPRINT_get_msg
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:85,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:87,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - policy
    argTypes:
    - TS_REQ*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: TS_REQ_set_policy_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - TSerr
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: TS_REQ_get_policy_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:106,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:108,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - nonce
    argTypes:
    - TS_REQ*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: TS_REQ_set_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_dup
    - TSerr
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: TS_REQ_get_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - cert_req
    argTypes:
    - TS_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: TS_REQ_set_cert_req
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_cert_req(TS_REQ *a, int cert_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: TS_REQ_get_cert_req
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_cert_req(const TS_REQ *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: TS_REQ_ext_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: void
    signature: void TS_REQ_ext_free(TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: TS_REQ_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_ext_count(TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - nid
    - lastpos
    argTypes:
    - TS_REQ*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: TS_REQ_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - obj
    - lastpos
    argTypes:
    - TS_REQ*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: TS_REQ_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - crit
    - lastpos
    argTypes:
    - TS_REQ*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: TS_REQ_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: TS_REQ_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: TS_REQ_delete_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - ex
    - loc
    argTypes:
    - TS_REQ*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: TS_REQ_add_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - nid
    - crit
    - idx
    argTypes:
    - TS_REQ*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: TS_REQ_get_ext_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TS_STATUS_INFO_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:23,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:25,1
    - Dst: TS_STATUS_INFO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - status_info
    argTypes:
    - TS_RESP*
    - TS_STATUS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: TS_RESP_set_status_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_STATUS_INFO_dup
    - TSerr
    - TS_STATUS_INFO_free
    linkageType: ''
    returnType: int
    signature: int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *status_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: TS_RESP_get_status_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_STATUS_INFO
    signature: TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:42,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - a
    - p7
    - tst_info
    argTypes:
    - TS_RESP*
    - PKCS7*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: TS_RESP_set_tst_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_TST_INFO_free
    - PKCS7_free
    linkageType: ''
    returnType: void
    signature: void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: TS_RESP_get_token
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *TS_RESP_get_token(TS_RESP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: TS_RESP_get_tst_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - version
    argTypes:
    - TS_TST_INFO*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: TS_TST_INFO_set_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_version(TS_TST_INFO *a, long version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: TS_TST_INFO_get_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long TS_TST_INFO_get_version(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:74,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:76,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - policy
    argTypes:
    - TS_TST_INFO*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: TS_TST_INFO_set_policy_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TSerr
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: TS_TST_INFO_get_policy_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TS_MSG_IMPRINT_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:95,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:97,1
    - Dst: TS_MSG_IMPRINT_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - msg_imprint
    argTypes:
    - TS_TST_INFO*
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: TS_TST_INFO_set_msg_imprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TSerr
    - TS_MSG_IMPRINT_dup
    - TS_MSG_IMPRINT_free
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: TS_TST_INFO_get_msg_imprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:116,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:118,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - serial
    argTypes:
    - TS_TST_INFO*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: TS_TST_INFO_set_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - TSerr
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: TS_TST_INFO_get_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:137,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:139,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - gtime
    argTypes:
    - TS_TST_INFO*
    - ASN1_GENERALIZEDTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: TS_TST_INFO_set_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_GENERALIZEDTIME_free
    - ASN1_STRING_dup
    - TSerr
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME
      *gtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: TS_TST_INFO_get_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TS_ACCURACY_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:158,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:160,1
    - Dst: TS_ACCURACY_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - accuracy
    argTypes:
    - TS_TST_INFO*
    - TS_ACCURACY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: TS_TST_INFO_set_accuracy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TSerr
    - TS_ACCURACY_dup
    - TS_ACCURACY_free
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: TS_TST_INFO_get_accuracy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_ACCURACY
    signature: TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:179,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:181,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - seconds
    argTypes:
    - TS_ACCURACY*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: TS_ACCURACY_set_seconds
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - TSerr
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_ACCURACY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: TS_ACCURACY_get_seconds
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:201,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:203,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - a
    - millis
    argTypes:
    - TS_ACCURACY*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 210
    functionName: TS_ACCURACY_set_millis
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - TSerr
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_ACCURACY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: TS_ACCURACY_get_millis
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:224,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:226,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - a
    - micros
    argTypes:
    - TS_ACCURACY*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: TS_ACCURACY_set_micros
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - TSerr
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_ACCURACY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: TS_ACCURACY_get_micros
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - ordering
    argTypes:
    - TS_TST_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: TS_TST_INFO_set_ordering
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: TS_TST_INFO_get_ordering
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ordering(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:257,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:259,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - nonce
    argTypes:
    - TS_TST_INFO*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: TS_TST_INFO_set_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - TSerr
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: TS_TST_INFO_get_nonce
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:278,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:280,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - tsa
    argTypes:
    - TS_TST_INFO*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 286
    functionName: TS_TST_INFO_set_tsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TSerr
    - GENERAL_NAME_free
    - GENERAL_NAME_dup
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: TS_TST_INFO_get_tsa
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GENERAL_NAME
    signature: GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: TS_TST_INFO_ext_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: void
    signature: void TS_TST_INFO_ext_free(TS_TST_INFO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: TS_TST_INFO_get_ext_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ext_count(TS_TST_INFO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - nid
    - lastpos
    argTypes:
    - TS_TST_INFO*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: TS_TST_INFO_get_ext_by_NID
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - obj
    - lastpos
    argTypes:
    - TS_TST_INFO*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: TS_TST_INFO_get_ext_by_OBJ
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj,
      int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - crit
    - lastpos
    argTypes:
    - TS_TST_INFO*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: TS_TST_INFO_get_ext_by_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_TST_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: TS_TST_INFO_get_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_TST_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: TS_TST_INFO_delete_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - ex
    - loc
    argTypes:
    - TS_TST_INFO*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: TS_TST_INFO_add_ext
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - nid
    - crit
    - idx
    argTypes:
    - TS_TST_INFO*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: TS_TST_INFO_get_ext_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int
      *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - TS_STATUS_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: TS_STATUS_INFO_set_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_STATUS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: TS_STATUS_INFO_get0_status
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_STATUS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: TS_STATUS_INFO_get0_text
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: 'STACK_OF *

      TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_STATUS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: TS_STATUS_INFO_get0_failure_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: ASN1_BIT_STRING *TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO
      *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TS_REQ_get_version
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:26,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:27,1
    - Dst: TS_MSG_IMPRINT_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:29,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:31,1
    - Dst: TS_REQ_get_policy_id
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:32,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:34,1
    - Dst: TS_OBJ_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:36,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:38,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:40,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:42,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:43,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:45,1
    - Dst: TS_ext_print_bio
      Src: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 18
    functionDepth: 7
    functionLinenumber: 18
    functionLinenumberEnd: 51
    functionName: TS_REQ_print_bio
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - TS_REQ_get_version
    - TS_ext_print_bio
    - TS_ASN1_INTEGER_print_bio
    - TS_MSG_IMPRINT_print_bio
    - TS_OBJ_print_bio
    - BIO_printf
    - TS_REQ_get_policy_id
    linkageType: ''
    returnType: int
    signature: int TS_REQ_print_bio(BIO *bio, TS_REQ *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:264,1
    - Dst: d2i_ESS_SIGNING_CERT
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - si
    argTypes:
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: ess_get_signing_cert
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - d2i_ESS_SIGNING_CERT
    - PKCS7_get_signed_attribute
    linkageType: ''
    returnType: ESS_SIGNING_CERT
    signature: ESS_SIGNING_CERT *ess_get_signing_cert(PKCS7_SIGNER_INFO *si)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:276,1
    - Dst: d2i_ESS_SIGNING_CERT_V2
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - si
    argTypes:
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: ess_get_signing_cert_v2
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - d2i_ESS_SIGNING_CERT_V2
    - PKCS7_get_signed_attribute
    linkageType: ''
    returnType: ESS_SIGNING_CERT_V2
    signature: ESS_SIGNING_CERT_V2 *ess_get_signing_cert_v2(PKCS7_SIGNER_INFO *si)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:350,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:353,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:355,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:355,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:358,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:358,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - is
    - cert
    argTypes:
    - ESS_ISSUER_SERIAL*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 362
    functionName: ts_issuer_serial_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - X509_get_serialNumber
    - ASN1_INTEGER_cmp
    - X509_get_issuer_name
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int ts_issuer_serial_cmp(ESS_ISSUER_SERIAL *is, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ts_check_status_info
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:376,1
    - Dst: int_ts_RESP_verify_token
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - response
    argTypes:
    - TS_VERIFY_CTX*
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 384
    functionName: TS_RESP_verify_response
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - int_ts_RESP_verify_token
    - ts_check_status_info
    linkageType: ''
    returnType: int
    signature: int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_to_TS_TST_INFO
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:392,1
    - Dst: int_ts_RESP_verify_token
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:395,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - token
    argTypes:
    - TS_VERIFY_CTX*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: TS_RESP_verify_token
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - TS_TST_INFO_free
    - int_ts_RESP_verify_token
    - PKCS7_to_TS_TST_INFO
    linkageType: ''
    returnType: int
    signature: int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_verify_signature
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:431,1
    - Dst: TS_TST_INFO_get_version
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:434,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:435,1
    - Dst: ts_check_policy
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:439,1
    - Dst: ts_check_imprints
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:442,1
    - Dst: ts_compute_imprint
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:446,1
    - Dst: ts_check_imprints
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:448,1
    - Dst: ts_check_nonces
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:451,1
    - Dst: ts_check_signer_name
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:454,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:455,1
    - Dst: ts_check_signer_name
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:459,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:460,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:466,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:467,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:468,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - token
    - tst_info
    argTypes:
    - TS_VERIFY_CTX*
    - PKCS7*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 413
    functionDepth: 7
    functionLinenumber: 413
    functionLinenumberEnd: 470
    functionName: int_ts_RESP_verify_token
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 2
    functionsReached:
    - X509_free
    - ts_check_imprints
    - ts_check_nonces
    - TS_TST_INFO_get_version
    - OPENSSL_free
    - ts_check_signer_name
    - X509_ALGOR_free
    - TS_RESP_verify_signature
    - ts_check_policy
    - TSerr
    - ts_compute_imprint
    linkageType: ''
    returnType: int
    signature: "int int_ts_RESP_verify_token(TS_VERIFY_CTX *ctx,\n                                    PKCS7
      *token, TS_TST_INFO *tst_info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:475,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:484,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:489,1
    - Dst: ts_get_status_text
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:490,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:497,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:498,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:501,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:504,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:509,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:511,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:512,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:517,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - response
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 472
    functionDepth: 6
    functionLinenumber: 472
    functionLinenumberEnd: 520
    functionName: ts_check_status_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - ASN1_BIT_STRING_get_bit
    - sk_ASN1_UTF8STRING_num
    - strcpy
    - OPENSSL_free
    - ERR_add_error_data
    - strcat
    - TSerr
    - ASN1_INTEGER_get
    - ts_get_status_text
    linkageType: ''
    returnType: int
    signature: int ts_check_status_info(TS_RESP *response)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:529,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:530,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:531,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:533,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:536,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:537,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:541,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:542,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:543,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:546,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - text
    argTypes:
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 552
    functionName: ts_get_status_text
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - sk_ASN1_UTF8STRING_num
    - strncpy
    - sk_ASN1_UTF8STRING_value
    - ASN1_STRING_length
    - TSerr
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: char
    signature: char *ts_get_status_text(STACK_OF(ASN1_UTF8STRING) *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:559,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - req_oid
    - tst_info
    argTypes:
    - ASN1_OBJECT*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: ts_check_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - TSerr
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: "int ts_check_policy(const ASN1_OBJECT *req_oid,\n                           const
      TS_TST_INFO *tst_info)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_dup
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:581,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:583,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:584,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:587,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:591,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:592,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:596,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:598,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:601,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:603,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:604,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:607,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:609,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:613,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:614,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:615,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 5
    argNames:
    - data
    - tst_info
    - md_alg
    - imprint
    - imprint_len
    argTypes:
    - BIO*
    - TS_TST_INFO*
    - X509_ALGOR**
    - unsigned char**
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 567
    functionDepth: 4
    functionLinenumber: 567
    functionLinenumberEnd: 619
    functionName: ts_compute_imprint
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - EVP_DigestInit
    - TSerr
    - OPENSSL_free
    - EVP_DigestUpdate
    - X509_ALGOR_free
    - X509_ALGOR_dup
    - EVP_MD_CTX_free
    - EVP_MD_size
    - EVP_get_digestbyobj
    - BIO_read
    linkageType: ''
    returnType: int
    signature: "int ts_compute_imprint(BIO *data, TS_TST_INFO *tst_info,\n                              X509_ALGOR
      **md_alg,\n                              unsigned char **imprint, unsigned *imprint_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:630,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:635,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:637,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:641,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:642,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:642,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:645,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 4
    argNames:
    - algor_a
    - imprint_a
    - len_a
    - tst_info
    argTypes:
    - X509_ALGOR*
    - unsigned char*
    - unsigned
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 647
    functionName: ts_check_imprints
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_get
    - OBJ_cmp
    - memcmp
    - ASN1_STRING_length
    - TSerr
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: "int ts_check_imprints(X509_ALGOR *algor_a,\n                             const
      unsigned char *imprint_a, unsigned len_a,\n                             TS_TST_INFO
      *tst_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:654,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:659,1
    - Dst: TSerr
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - tst_info
    argTypes:
    - ASN1_INTEGER*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 665
    functionName: ts_check_nonces
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - TSerr
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int ts_check_nonces(const ASN1_INTEGER *a, TS_TST_INFO *tst_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:673,1
    - Dst: X509_name_cmp
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:678,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:678,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:680,1
    - Dst: ts_find_name
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:682,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:689,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:690,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c:692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - tsa_name
    - signer
    argTypes:
    - GENERAL_NAME*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 695
    functionName: ts_check_signer_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - ts_find_name
    - X509_get_ext_d2i
    - X509_name_cmp
    - STACK_OF
    - X509_get_subject_name
    - GENERAL_NAMES_free
    linkageType: ''
    returnType: int
    signature: int ts_check_signer_name(GENERAL_NAME *tsa_name, X509 *signer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/ts/ts_err.c:178,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_err.c:179,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/ts/ts_err.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 6
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: ERR_load_TS_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/ts/ts_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_TS_strings(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:110,1
    - Dst: sk_ACCESS_DESCRIPTION_new_reserve
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:113,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:114,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:118,1
    - Dst: ACCESS_DESCRIPTION_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:119,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:120,1
    - Dst: sk_ACCESS_DESCRIPTION_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:124,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:125,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:127,1
    - Dst: v2i_GENERAL_NAME_ex
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:134,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:136,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:137,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:141,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:143,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:149,1
    - Dst: sk_ACCESS_DESCRIPTION_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:154,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 156
    functionName: v2i_AUTHORITY_INFO_ACCESS
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c
    functionUses: 0
    functionsReached:
    - ACCESS_DESCRIPTION_new
    - sk_CONF_VALUE_num
    - v2i_GENERAL_NAME_ex
    - OPENSSL_strndup
    - OPENSSL_free
    - strchr
    - ERR_add_error_data
    - OBJ_txt2obj
    - sk_ACCESS_DESCRIPTION_new_reserve
    - sk_ACCESS_DESCRIPTION_push
    - sk_CONF_VALUE_value
    - sk_ACCESS_DESCRIPTION_pop_free
    - X509V3err
    linkageType: ''
    returnType: AUTHORITY_INFO_ACCESS
    signature: "AUTHORITY_INFO_ACCESS *v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD\n
      \                                                       *method,\n                                                        X509V3_CTX
      *ctx,\n                                                        STACK_OF(CONF_VALUE)\n
      \                                                       *nval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ACCESS_DESCRIPTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 5
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: i2a_ACCESS_DESCRIPTION
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pku.c:40,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pku.c:42,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pku.c:43,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pku.c:45,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pku.c:48,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pku.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - method
    - usage
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - PKEY_USAGE_PERIOD*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: i2r_PKEY_USAGE_PERIOD
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_pku.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_print
    - BIO_write
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_PKEY_USAGE_PERIOD(X509V3_EXT_METHOD *method,\n                                 PKEY_USAGE_PERIOD
      *usage, BIO *out,\n                                 int indent)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sk_POLICYINFO_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:34,1
    - Dst: sk_X509_POLICY_DATA_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:36,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:38,1
    - Dst: sk_POLICYINFO_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:42,1
    - Dst: policy_data_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:43,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:45,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:51,1
    - Dst: sk_X509_POLICY_DATA_find
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:57,1
    - Dst: sk_X509_POLICY_DATA_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:60,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:61,1
    - Dst: policy_data_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:71,1
    - Dst: sk_POLICYINFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:73,1
    - Dst: sk_X509_POLICY_DATA_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:75,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - x
    - policies
    - crit
    argTypes:
    - X509*
    - CERTIFICATEPOLICIES*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 79
    functionName: policy_cache_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_DATA_pop_free
    - sk_POLICYINFO_pop_free
    - policy_data_free
    - sk_X509_POLICY_DATA_find
    - sk_X509_POLICY_DATA_new
    - sk_POLICYINFO_num
    - sk_X509_POLICY_DATA_push
    - policy_data_new
    - OBJ_obj2nid
    - X509V3err
    - sk_POLICYINFO_value
    linkageType: ''
    returnType: int
    signature: "int policy_cache_create(X509 *x,\n                               CERTIFICATEPOLICIES
      *policies, int crit)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:92,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:94,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:109,1
    - Dst: policy_cache_set_int
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:118,1
    - Dst: policy_cache_set_int
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:121,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:128,1
    - Dst: policy_cache_create
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:140,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:147,1
    - Dst: policy_cache_set_mapping
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:154,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:159,1
    - Dst: policy_cache_set_int
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:164,1
    - Dst: POLICY_CONSTRAINTS_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:172,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:173,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 176
    functionName: policy_cache_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - X509_get_ext_d2i
    - POLICY_CONSTRAINTS_free
    - ASN1_INTEGER_free
    - policy_cache_set_int
    - policy_cache_set_mapping
    - X509V3err
    - policy_cache_create
    linkageType: ''
    returnType: int
    signature: int policy_cache_new(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: policy_data_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:182,1
    - Dst: sk_X509_POLICY_DATA_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cache
    argTypes:
    - X509_POLICY_CACHE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: policy_cache_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c
    functionUses: 1
    functionsReached:
    - policy_data_free
    - sk_X509_POLICY_DATA_pop_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void policy_cache_free(X509_POLICY_CACHE *cache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:191,1
    - Dst: policy_cache_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:192,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: policy_cache_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - policy_cache_new
    linkageType: ''
    returnType: X509_POLICY_CACHE
    signature: X509_POLICY_CACHE *policy_cache_set(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_DATA_find
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:206,1
    - Dst: sk_X509_POLICY_DATA_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cache
    - id
    argTypes:
    - X509_POLICY_CACHE*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: policy_cache_find_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_DATA_find
    - sk_X509_POLICY_DATA_value
    linkageType: ''
    returnType: X509_POLICY_DATA
    signature: "X509_POLICY_DATA *policy_cache_find_data(const X509_POLICY_CACHE *cache,\n
      \                                        const ASN1_OBJECT *id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_POLICY_DATA**
    - X509_POLICY_DATA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: policy_data_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: "int policy_data_cmp(const X509_POLICY_DATA *const *a,\n                           const
      X509_POLICY_DATA *const *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - out
    - value
    argTypes:
    - long*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: policy_cache_set_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: int
    signature: int policy_cache_set_int(long *out, ASN1_INTEGER *value)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:78,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:81,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:82,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:83,1
    - Dst: X509V3_EXT_get
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:85,1
    - Dst: unknown_ext_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:86,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:88,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:88,1
    - Dst: X509V3_EXT_METHOD*::d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:90,1
    - Dst: unknown_ext_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:93,1
    - Dst: X509V3_EXT_METHOD*::i2s
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:96,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:101,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:106,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:107,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:111,1
    - Dst: X509V3_EXT_METHOD*::i2v
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:116,1
    - Dst: X509V3_EXT_val_prn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:120,1
    - Dst: X509V3_EXT_METHOD*::i2r
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:123,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:129,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:130,1
    - Dst: ASN1_item_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:132,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:132,1
    - Dst: X509V3_EXT_METHOD*::ext_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:134,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - out
    - ext
    - flag
    - indent
    argTypes:
    - BIO*
    - X509_EXTENSION*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 136
    functionName: X509V3_EXT_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c
    functionUses: 2
    functionsReached:
    - STACK_OF
    - ASN1_item_free
    - OPENSSL_malloc
    - OPENSSL_free
    - ASN1_STRING_length
    - X509V3_EXT_METHOD*::i2s
    - X509_EXTENSION_get_data
    - sk_CONF_VALUE_pop_free
    - X509V3_EXT_METHOD*::i2r
    - ASN1_ITEM_ptr
    - X509V3_EXT_METHOD*::ext_free
    - X509V3_EXT_METHOD*::i2v
    - X509V3_EXT_get
    - unknown_ext_print
    - X509V3_EXT_val_prn
    - ASN1_item_d2i
    - ascii2ebcdic
    - X509V3_EXT_METHOD*::d2i
    - BIO_printf
    - ASN1_STRING_get0_data
    - strlen
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long
      flag,\n                     int indent)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:144,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:148,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:152,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:155,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:156,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:158,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:159,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:160,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:161,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:163,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:164,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:165,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:165,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:167,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - bp
    - title
    - exts
    - flag
    - indent
    argTypes:
    - BIO*
    - char*
    - STACK_OF*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 171
    functionName: X509V3_extensions_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c
    functionUses: 4
    functionsReached:
    - BIO_write
    - i2a_ASN1_OBJECT
    - X509_EXTENSION_get_object
    - X509_EXTENSION_get_data
    - X509_EXTENSION_get_critical
    - X509V3_EXT_print
    - BIO_printf
    - sk_X509_EXTENSION_value
    - ASN1_STRING_print
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: "int X509V3_extensions_print(BIO *bp, const char *title,\n                            const
      STACK_OF(X509_EXTENSION) *exts,\n                            unsigned long flag,
      int indent)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:183,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:185,1
    - Dst: ASN1_parse_dump
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:189,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - out
    - ext
    - extlen
    - flag
    - indent
    - supported
    argTypes:
    - BIO*
    - unsigned char*
    - int
    - unsigned long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: unknown_ext_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c
    functionUses: 1
    functionsReached:
    - ASN1_parse_dump
    - BIO_dump_indent
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int unknown_ext_print(BIO *out, const unsigned char *ext, int extlen,\n
      \                            unsigned long flag, int indent, int supported)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:204,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:206,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fp
    - ext
    - flag
    - indent
    argTypes:
    - FILE*
    - X509_EXTENSION*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: X509V3_EXT_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - X509V3_EXT_print
    linkageType: ''
    returnType: int
    signature: int X509V3_EXT_print_fp(FILE *fp, X509_EXTENSION *ext, int flag, int
      indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - oct
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: i2s_ASN1_OCTET_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c
    functionUses: 0
    functionsReached:
    - OPENSSL_buf2hexstr
    linkageType: ''
    returnType: char
    signature: "char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,\n                            const
      ASN1_OCTET_STRING *oct)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:39,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:40,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:44,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: s2i_ASN1_OCTET_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c
    functionUses: 0
    functionsReached:
    - X509V3err
    - ASN1_OCTET_STRING_new
    - OPENSSL_hexstr2buf
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,\n
      \                                        X509V3_CTX *ctx, const char *str)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:65,1
    - Dst: s2i_ASN1_OCTET_STRING
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:66,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:68,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:69,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:77,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:87,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:91,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:93,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:93,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:96,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:97,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c:104,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 106
    functionName: s2i_skey_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_set
    - X509_PUBKEY_get0_param
    - strcmp
    - EVP_sha1
    - ASN1_OCTET_STRING_free
    - EVP_Digest
    - X509V3err
    - s2i_ASN1_OCTET_STRING
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "ASN1_OCTET_STRING *s2i_skey_id(X509V3_EXT_METHOD *method,\n                                      X509V3_CTX
      *ctx, char *str)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 99
    functionName: ia5ncasecmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ia5ncasecmp(const char *s1, const char *s2, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ia5ncasecmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: ia5casecmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 0
    functionsReached:
    - ia5ncasecmp
    linkageType: ''
    returnType: int
    signature: int ia5casecmp(const char *s1, const char *s2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:111,1
    - Dst: NAME_CONSTRAINTS_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:115,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:118,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:119,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:120,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:123,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:127,1
    - Dst: GENERAL_SUBTREE_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:131,1
    - Dst: v2i_GENERAL_NAME_ex
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:134,1
    - Dst: sk_GENERAL_SUBTREE_new_null
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:137,1
    - Dst: sk_GENERAL_SUBTREE_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:138,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:146,1
    - Dst: NAME_CONSTRAINTS_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:148,1
    - Dst: GENERAL_SUBTREE_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:149,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 152
    functionName: v2i_NAME_CONSTRAINTS
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - NAME_CONSTRAINTS_free
    - v2i_GENERAL_NAME_ex
    - GENERAL_SUBTREE_free
    - NAME_CONSTRAINTS_new
    - STACK_OF
    - sk_GENERAL_SUBTREE_new_null
    - sk_CONF_VALUE_value
    - sk_GENERAL_SUBTREE_push
    - X509V3err
    - strncmp
    - GENERAL_SUBTREE_new
    linkageType: ''
    returnType: void
    signature: "void *v2i_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method,\n                                  X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_i2r_name_constraints
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:158,1
    - Dst: do_i2r_name_constraints
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - method
    - a
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: i2r_NAME_CONSTRAINTS
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 0
    functionsReached:
    - do_i2r_name_constraints
    linkageType: ''
    returnType: int
    signature: "int i2r_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method, void *a,\n
      \                               BIO *bp, int ind)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:171,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:172,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:173,1
    - Dst: sk_GENERAL_SUBTREE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:174,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:175,1
    - Dst: print_nc_ipadd
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:177,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:179,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - method
    - trees
    - bp
    - ind
    - name
    argTypes:
    - X509V3_EXT_METHOD*
    - STACK_OF*
    - BIO*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: do_i2r_name_constraints
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - print_nc_ipadd
    - sk_GENERAL_SUBTREE_num
    - sk_GENERAL_SUBTREE_value
    - BIO_puts
    - BIO_printf
    - GENERAL_NAME_print
    linkageType: ''
    returnType: int
    signature: "int do_i2r_name_constraints(const X509V3_EXT_METHOD *method,\n                                   STACK_OF(GENERAL_SUBTREE)
      *trees,\n                                   BIO *bp, int ind, const char *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:191,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:193,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:197,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:200,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:202,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bp
    - ip
    argTypes:
    - BIO*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 207
    functionName: print_nc_ipadd
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int print_nc_ipadd(BIO *bp, ASN1_OCTET_STRING *ip)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: add_lengths
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int add_lengths(int *out, int a, int b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:242,1
    - Dst: add_lengths
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:248,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:248,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:249,1
    - Dst: add_lengths
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:250,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:251,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:252,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:256,1
    - Dst: nc_match
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:261,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:273,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:276,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:277,1
    - Dst: nc_match
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:281,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:289,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:290,1
    - Dst: nc_match
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:291,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - x
    - nc
    argTypes:
    - X509*
    - NAME_CONSTRAINTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 298
    functionName: NAME_CONSTRAINTS_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - X509_NAME_get_entry
    - sk_GENERAL_NAME_value
    - nc_match
    - sk_GENERAL_SUBTREE_num
    - sk_GENERAL_NAME_num
    - X509_NAME_entry_count
    - add_lengths
    - X509_NAME_get_index_by_NID
    - X509_get_subject_name
    - X509_NAME_ENTRY_get_data
    linkageType: ''
    returnType: int
    signature: int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:328,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:340,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:341,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:389,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 32
    argCount: 3
    argNames:
    - cn
    - dnsid
    - idlen
    argTypes:
    - ASN1_STRING*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 391
    functionName: cn2dnsid
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_STRING_to_UTF8
    - strlen
    linkageType: ''
    returnType: int
    signature: int cn2dnsid(ASN1_STRING *cn, unsigned char **dnsid, size_t *idlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:399,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:416,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:419,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:420,1
    - Dst: cn2dnsid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:423,1
    - Dst: nc_match
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:430,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:431,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - x
    - nc
    argTypes:
    - X509*
    - NAME_CONSTRAINTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 436
    functionName: NAME_CONSTRAINTS_check_CN
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - X509_NAME_get_entry
    - nc_match
    - OPENSSL_free
    - X509_NAME_get_index_by_NID
    - X509_get_subject_name
    - cn2dnsid
    - X509_NAME_ENTRY_get_data
    linkageType: ''
    returnType: int
    signature: int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:448,1
    - Dst: sk_GENERAL_SUBTREE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:449,1
    - Dst: nc_match_single
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:459,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:471,1
    - Dst: sk_GENERAL_SUBTREE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:472,1
    - Dst: nc_match_single
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:478,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 2
    argNames:
    - gen
    - nc
    argTypes:
    - GENERAL_NAME*
    - NAME_CONSTRAINTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 488
    functionName: nc_match
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 2
    functionsReached:
    - sk_GENERAL_SUBTREE_num
    - nc_match_single
    - sk_GENERAL_SUBTREE_value
    linkageType: ''
    returnType: int
    signature: int nc_match(GENERAL_NAME *gen, NAME_CONSTRAINTS *nc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nc_dn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:494,1
    - Dst: nc_dns
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:497,1
    - Dst: nc_email
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:500,1
    - Dst: nc_uri
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:503,1
    - Dst: nc_ip
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - gen
    - base
    argTypes:
    - GENERAL_NAME*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 513
    functionName: nc_match_single
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - nc_uri
    - nc_dn
    - nc_ip
    - nc_dns
    - nc_email
    linkageType: ''
    returnType: int
    signature: int nc_match_single(GENERAL_NAME *gen, GENERAL_NAME *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:524,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:526,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:530,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - nm
    - base
    argTypes:
    - X509_NAME*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: nc_dn
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - memcmp
    - i2d_X509_NAME
    linkageType: ''
    returnType: int
    signature: int nc_dn(X509_NAME *nm, X509_NAME *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ia5casecmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:552,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - dns
    - base
    argTypes:
    - ASN1_IA5STRING*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 557
    functionName: nc_dns
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - ia5casecmp
    linkageType: ''
    returnType: int
    signature: int nc_dns(ASN1_IA5STRING *dns, ASN1_IA5STRING *base)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:564,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:565,1
    - Dst: ia5casecmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:572,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:585,1
    - Dst: ia5casecmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:593,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - eml
    - base
    argTypes:
    - ASN1_IA5STRING*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 598
    functionName: nc_email
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strchr
    - ia5casecmp
    linkageType: ''
    returnType: int
    signature: int nc_email(ASN1_IA5STRING *eml, ASN1_IA5STRING *base)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:604,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:615,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:618,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:621,1
    - Dst: ia5ncasecmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:632,1
    - Dst: ia5ncasecmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c:639,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - uri
    - base
    argTypes:
    - ASN1_IA5STRING*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 644
    functionName: nc_uri
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - ia5ncasecmp
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int nc_uri(ASN1_IA5STRING *uri, ASN1_IA5STRING *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ip
    - base
    argTypes:
    - ASN1_OCTET_STRING*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 675
    functionName: nc_ip
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nc_ip(ASN1_OCTET_STRING *ip, ASN1_OCTET_STRING *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_int.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - meth
    - ctx
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: s2i_asn1_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_int.c
    functionUses: 0
    functionsReached:
    - s2i_ASN1_INTEGER
    linkageType: ''
    returnType: void
    signature: "void *s2i_asn1_int(X509V3_EXT_METHOD *meth, X509V3_CTX *ctx,\n                          const
      char *value)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:83,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:84,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:85,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:87,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:89,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:91,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:94,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:95,1
    - Dst: AUTHORITY_KEYID_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:102,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:103,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:111,1
    - Dst: X509_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:112,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:113,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:115,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:122,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:122,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:123,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:123,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:125,1
    - Dst: AUTHORITY_KEYID_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:131,1
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:135,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:136,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:137,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:138,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:154,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:155,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:156,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:157,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c:158,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 160
    functionName: v2i_AUTHORITY_KEYID
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_new_null
    - sk_CONF_VALUE_num
    - ERR_add_error_data
    - X509_get_serialNumber
    - X509_NAME_dup
    - X509_get_issuer_name
    - X509V3err
    - sk_GENERAL_NAME_push
    - X509_get_ext
    - X509V3_EXT_d2i
    - GENERAL_NAME_new
    - sk_GENERAL_NAME_free
    - strcmp
    - X509_get_ext_by_NID
    - ASN1_INTEGER_dup
    - ASN1_OCTET_STRING_free
    - sk_CONF_VALUE_value
    - AUTHORITY_KEYID_new
    - GENERAL_NAME_free
    - ASN1_INTEGER_free
    - X509_NAME_free
    linkageType: ''
    returnType: AUTHORITY_KEYID
    signature: "AUTHORITY_KEYID *v2i_AUTHORITY_KEYID(X509V3_EXT_METHOD *method,\n
      \                                           X509V3_CTX *ctx,\n                                            STACK_OF(CONF_VALUE)
      *values)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:77,1
    - Dst: sk_ASN1_OBJECT_new_reserve
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:80,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:82,1
    - Dst: sk_ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:83,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:88,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:93,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:94,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:95,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:97,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 103
    functionName: v2i_EXTENDED_KEY_USAGE
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - sk_ASN1_OBJECT_new_reserve
    - sk_ASN1_OBJECT_free
    - sk_ASN1_OBJECT_push
    - OBJ_txt2obj
    - sk_CONF_VALUE_value
    - X509V3err
    linkageType: ''
    returnType: void
    signature: "void *v2i_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method,\n                                    X509V3_CTX
      *ctx,\n                                    STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:44,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:46,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:48,1
    - Dst: sk_CONF_VALUE_new_null
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:50,1
    - Dst: sk_CONF_VALUE_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:55,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:59,1
    - Dst: sk_CONF_VALUE_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:64,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:66,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 3
    argNames:
    - name
    - value
    - extlist
    argTypes:
    - char*
    - char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 68
    functionName: X509V3_add_value
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - sk_CONF_VALUE_free
    - OPENSSL_strdup
    - sk_CONF_VALUE_push
    - X509V3err
    - sk_CONF_VALUE_new_null
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value(const char *name, const char *value,\n                     STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - extlist
    argTypes:
    - char*
    - unsigned char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: X509V3_add_value_uchar
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509V3_add_value
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value_uchar(const char *name, const unsigned char *value,\n
      \                          STACK_OF(CONF_VALUE) **extlist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:84,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: X509V3_conf_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509V3_conf_free(CONF_VALUE *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:92,1
    - Dst: X509V3_add_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - asn1_bool
    - extlist
    argTypes:
    - char*
    - int
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: X509V3_add_value_bool
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509V3_add_value
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value_bool(const char *name, int asn1_bool,\n                          STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - asn1_bool
    - extlist
    argTypes:
    - char*
    - int
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: X509V3_add_value_bool_nf
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509V3_add_value
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value_bool_nf(const char *name, int asn1_bool,\n                             STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:114,1
    - Dst: BN_bn2dec
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:115,1
    - Dst: BN_bn2hex
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:117,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:121,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:122,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:125,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:131,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:132,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:134,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:135,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 139
    functionName: bignum_to_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_strlcat
    - OPENSSL_free
    - BN_bn2dec
    - OPENSSL_strlcpy
    - BN_bn2hex
    - BN_num_bits
    - X509V3err
    - strlen
    linkageType: ''
    returnType: char
    signature: char *bignum_to_string(const BIGNUM *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_to_BN
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:148,1
    - Dst: bignum_to_string
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:149,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:150,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - method
    - a
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 6
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: i2s_ASN1_ENUMERATED
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - bignum_to_string
    - X509V3err
    - BN_free
    - ASN1_ENUMERATED_to_BN
    linkageType: ''
    returnType: char
    signature: char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *method, const ASN1_ENUMERATED
      *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:162,1
    - Dst: bignum_to_string
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:163,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:164,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - method
    - a
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: i2s_ASN1_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - bignum_to_string
    - X509V3err
    - BN_free
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: char
    signature: char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *method, const ASN1_INTEGER
      *a)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:176,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:179,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:181,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:197,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:199,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:202,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:203,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:207,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:210,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:211,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:213,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - method
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 169
    functionDepth: 6
    functionLinenumber: 169
    functionLinenumberEnd: 220
    functionName: s2i_ASN1_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 2
    functionsReached:
    - BN_new
    - BN_to_ASN1_INTEGER
    - BN_free
    - BN_is_zero
    - BN_dec2bn
    - X509V3err
    - BN_hex2bn
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *method, const char
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:230,1
    - Dst: X509V3_add_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:232,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - name
    - aint
    - extlist
    argTypes:
    - char*
    - ASN1_INTEGER*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 222
    functionDepth: 7
    functionLinenumber: 222
    functionLinenumberEnd: 235
    functionName: X509V3_add_value_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - i2s_ASN1_INTEGER
    - OPENSSL_free
    - X509V3_add_value
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint,\n
      \                        STACK_OF(CONF_VALUE) **extlist)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:243,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:244,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:245,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:246,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:247,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:248,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:252,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:253,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:254,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:255,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:256,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:257,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:262,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:264,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - value
    - asn1_bool
    argTypes:
    - CONF_VALUE*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 266
    functionName: X509V3_get_value_bool
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 2
    functionsReached:
    - strcmp
    - X509V3err
    - X509V3_conf_err
    linkageType: ''
    returnType: int
    signature: int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:272,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - aint
    argTypes:
    - CONF_VALUE*
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 7
    functionLinenumber: 268
    functionLinenumberEnd: 278
    functionName: X509V3_get_value_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - s2i_ASN1_INTEGER
    - X509V3_conf_err
    linkageType: ''
    returnType: int
    signature: int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:381,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:385,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: strip_spaces
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - ossl_isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strip_spaces(char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:404,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - name
    - cmp
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 411
    functionName: name_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 2
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int name_cmp(const char *name, const char *cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: sk_strcmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sk_strcmp(const char *const *a, const char *const *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:469,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:477,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:479,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:480,1
    - Dst: append_ia5
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:481,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:484,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:485,1
    - Dst: append_ia5
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - name
    - gens
    argTypes:
    - X509_NAME*
    - GENERAL_NAMES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 492
    functionName: get_email
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509_NAME_get_entry
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - STACK_OF
    - X509_NAME_get_index_by_NID
    - append_ia5
    - X509_NAME_ENTRY_get_data
    linkageType: ''
    returnType: STACK_OF
    signature: "STACK_OF *get_email(X509_NAME *name,\n                                           GENERAL_NAMES
      *gens)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - OPENSSL_STRING
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: str_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void str_free(OPENSSL_STRING str)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - p
    - plen
    - subject_len
    - flags
    argTypes:
    - unsigned char**
    - size_t*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 563
    functionName: skip_prefix
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void skip_prefix(const unsigned char **p, size_t *plen,\n                        size_t
      subject_len,\n                        unsigned int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:570,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 5
    argNames:
    - pattern
    - pattern_len
    - subject
    - subject_len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 592
    functionName: equal_nocase
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int equal_nocase(const unsigned char *pattern, size_t pattern_len,\n
      \                       const unsigned char *subject, size_t subject_len,\n
      \                       unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:599,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - pattern
    - pattern_len
    - subject
    - subject_len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 603
    functionName: equal_case
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int equal_case(const unsigned char *pattern, size_t pattern_len,\n
      \                     const unsigned char *subject, size_t subject_len,\n                      unsigned
      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: equal_nocase
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:624,1
    - Dst: equal_case
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:631,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - a
    - a_len
    - b
    - b_len
    - unused_flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 632
    functionName: equal_email
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - equal_case
    - equal_nocase
    linkageType: ''
    returnType: int
    signature: "int equal_email(const unsigned char *a, size_t a_len,\n                       const
      unsigned char *b, size_t b_len,\n                       unsigned int unused_flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: equal_nocase
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:651,1
    - Dst: equal_nocase
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:655,1
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:670,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 24
    argCount: 7
    argNames:
    - prefix
    - prefix_len
    - suffix
    - suffix_len
    - subject
    - subject_len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 687
    functionName: wildcard_match
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - equal_nocase
    linkageType: ''
    returnType: int
    signature: "int wildcard_match(const unsigned char *prefix, size_t prefix_len,\n
      \                         const unsigned char *suffix, size_t suffix_len,\n
      \                         const unsigned char *subject, size_t subject_len,\n
      \                         unsigned int flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:729,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 33
    argCount: 3
    argNames:
    - p
    - len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 753
    functionName: valid_star
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *valid_star(const unsigned char *p, size_t len,\n                                       unsigned
      int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_star
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:767,1
    - Dst: equal_nocase
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:769,1
    - Dst: wildcard_match
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - pattern
    - pattern_len
    - subject
    - subject_len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 774
    functionName: equal_wildcard
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - equal_nocase
    - valid_star
    - wildcard_match
    linkageType: ''
    returnType: int
    signature: "int equal_wildcard(const unsigned char *pattern, size_t pattern_len,\n
      \                         const unsigned char *subject, size_t subject_len,\n
      \                         unsigned int flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:794,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:795,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:798,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:802,1
    - Dst: equal
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:810,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:812,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:813,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 7
    argNames:
    - a
    - cmp_type
    - equal
    - flags
    - b
    - blen
    - peername
    argTypes:
    - ASN1_STRING*
    - int
    - equal_fn
    - unsigned int
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 816
    functionName: do_check_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - memcmp
    - OPENSSL_free
    - OPENSSL_strndup
    - ASN1_STRING_to_UTF8
    - equal
    linkageType: ''
    returnType: int
    signature: "int do_check_string(const ASN1_STRING *a, int cmp_type, equal_fn equal,\n
      \                          unsigned int flags, const char *b, size_t blen,\n
      \                          char **peername)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:852,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:854,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:856,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:859,1
    - Dst: do_check_string
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:870,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:874,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:886,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:887,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:888,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:889,1
    - Dst: do_check_string
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:892,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 6
    argNames:
    - x
    - chk
    - chklen
    - flags
    - check_type
    - peername
    argTypes:
    - X509*
    - char*
    - size_t
    - unsigned int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 897
    functionName: do_x509_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509_NAME_get_entry
    - sk_GENERAL_NAME_value
    - X509_get_ext_d2i
    - X509_NAME_ENTRY_get_data
    - sk_GENERAL_NAME_num
    - do_check_string
    - X509_NAME_get_index_by_NID
    - X509_get_subject_name
    - GENERAL_NAMES_free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int do_x509_check(X509 *x, const char *chk, size_t chklen,\n                         unsigned
      int flags, int check_type, char **peername)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:910,1
    - Dst: memchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:911,1
    - Dst: do_x509_check
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:915,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - x
    - chk
    - chklen
    - flags
    - peername
    argTypes:
    - X509*
    - char*
    - size_t
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 899
    functionDepth: 4
    functionLinenumber: 899
    functionLinenumberEnd: 916
    functionName: X509_check_host
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - memchr
    - do_x509_check
    - strlen
    linkageType: ''
    returnType: int
    signature: "int X509_check_host(X509 *x, const char *chk, size_t chklen,\n                    unsigned
      int flags, char **peername)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:929,1
    - Dst: memchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:930,1
    - Dst: do_x509_check
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - x
    - chk
    - chklen
    - flags
    argTypes:
    - X509*
    - char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 918
    functionDepth: 4
    functionLinenumber: 918
    functionLinenumberEnd: 935
    functionName: X509_check_email
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - memchr
    - do_x509_check
    - strlen
    linkageType: ''
    returnType: int
    signature: "int X509_check_email(X509 *x, const char *chk, size_t chklen,\n                     unsigned
      int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_x509_check
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - x
    - chk
    - chklen
    - flags
    argTypes:
    - X509*
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 937
    functionDepth: 4
    functionLinenumber: 937
    functionLinenumberEnd: 943
    functionName: X509_check_ip
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - do_x509_check
    linkageType: ''
    returnType: int
    signature: "int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen,\n
      \                 unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: a2i_ipadd
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:952,1
    - Dst: do_x509_check
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - x
    - ipasc
    - flags
    argTypes:
    - X509*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 945
    functionDepth: 4
    functionLinenumber: 945
    functionLinenumberEnd: 956
    functionName: X509_check_ip_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - a2i_ipadd
    - do_x509_check
    linkageType: ''
    returnType: int
    signature: int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: a2i_ipadd
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:971,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:976,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:979,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ipasc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 963
    functionDepth: 2
    functionLinenumber: 963
    functionLinenumberEnd: 984
    functionName: a2i_IPADDRESS
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - a2i_ipadd
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:992,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:995,1
    - Dst: a2i_ipadd
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1001,1
    - Dst: a2i_ipadd
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1006,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1008,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1014,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1017,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1023,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1024,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - ipasc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 1026
    functionName: a2i_IPADDRESS_NC
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - a2i_ipadd
    - ASN1_OCTET_STRING_set
    - OPENSSL_free
    - strchr
    - ASN1_OCTET_STRING_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1032,1
    - Dst: ipv6_from_asc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1033,1
    - Dst: ipv4_from_asc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ipout
    - ipasc
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1041
    functionName: a2i_ipadd
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 4
    functionsReached:
    - ipv6_from_asc
    - ipv4_from_asc
    - strchr
    linkageType: ''
    returnType: int
    signature: int a2i_ipadd(unsigned char *ipout, const char *ipasc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1046,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 2
    argNames:
    - v4
    - in
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1056
    functionName: ipv4_from_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: int
    signature: int ipv4_from_asc(unsigned char *v4, const char *in)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1080,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1119,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1121,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1124,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1128,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - v6
    - in
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1131
    functionName: ipv6_from_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - memset
    - CONF_parse_list
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ipv6_from_asc(unsigned char *v6, const char *in)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ipv4_from_asc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1156,1
    - Dst: ipv6_hex
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - elem
    - len
    - usr
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1166
    functionName: ipv6_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - ipv4_from_asc
    - ipv6_hex
    linkageType: ''
    returnType: int
    signature: int ipv6_cb(const char *elem, int len, void *usr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c:1183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - unsigned char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1191
    functionName: ipv6_hex
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - OPENSSL_hexchar2int
    linkageType: ''
    returnType: int
    signature: int ipv6_hex(unsigned char *out, const char *in, int inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: node_data_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_data_critical(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: node_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_critical(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_node.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_POLICY_NODE**
    - X509_POLICY_NODE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: node_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_node.c
    functionUses: 0
    functionsReached:
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: "int node_cmp(const X509_POLICY_NODE *const *a,\n                    const
      X509_POLICY_NODE *const *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tree
    argTypes:
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: X509_policy_tree_level_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_policy_tree_level_count(const X509_POLICY_TREE *tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - tree
    - i
    argTypes:
    - X509_POLICY_TREE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: X509_policy_tree_get0_level
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_POLICY_LEVEL
    signature: "X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE
      *tree,\n                                               int i)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_lib.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - level
    argTypes:
    - X509_POLICY_LEVEL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: X509_policy_level_node_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_num
    linkageType: ''
    returnType: int
    signature: int X509_policy_level_node_count(X509_POLICY_LEVEL *level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_lib.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - level
    - i
    argTypes:
    - X509_POLICY_LEVEL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: X509_policy_level_get0_node
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_value
    linkageType: ''
    returnType: X509_POLICY_NODE
    signature: X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level,
      int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - X509_POLICY_NODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: X509_policy_node_get0_policy
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - X509_POLICY_NODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: X509_policy_node_get0_parent
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_POLICY_NODE
    signature: "X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE\n
      \                                                    *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:22,1
    - Dst: sk_POLICYQUALINFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:25,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:26,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - X509_POLICY_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: policy_data_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c
    functionUses: 2
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    - OPENSSL_free
    - sk_POLICYQUALINFO_pop_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void policy_data_free(X509_POLICY_DATA *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:47,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:52,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:54,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:57,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:59,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:60,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c:61,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - policy
    - cid
    - crit
    argTypes:
    - POLICYINFO*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 81
    functionName: policy_data_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c
    functionUses: 1
    functionsReached:
    - OBJ_dup
    - sk_ASN1_OBJECT_new_null
    - OPENSSL_free
    - ASN1_OBJECT_free
    - OPENSSL_zalloc
    - X509V3err
    linkageType: ''
    returnType: X509_POLICY_DATA
    signature: "X509_POLICY_DATA *policy_data_new(POLICYINFO *policy,\n                                  const
      ASN1_OBJECT *cid, int crit)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:48,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:49,1
    - Dst: X509V3_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:51,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:53,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:55,1
    - Dst: v2i_GENERAL_NAMES
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:58,1
    - Dst: X509V3_section_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:60,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - sect
    argTypes:
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: gnames_from_sectname
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - X509V3_section_free
    - X509V3_get_section
    - X509V3_parse_list
    - STACK_OF
    - sk_CONF_VALUE_pop_free
    - v2i_GENERAL_NAMES
    - X509V3err
    linkageType: ''
    returnType: STACK_OF
    signature: "STACK_OF *gnames_from_sectname(X509V3_CTX *ctx,\n                                                    char
      *sect)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:69,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:70,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:72,1
    - Dst: gnames_from_sectname
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:73,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:76,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:78,1
    - Dst: X509_NAME_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:80,1
    - Dst: X509V3_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:83,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:85,1
    - Dst: X509V3_NAME_from_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:89,1
    - Dst: X509V3_section_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:90,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:93,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:94,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:99,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:100,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:101,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:109,1
    - Dst: DIST_POINT_NAME_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:114,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:128,1
    - Dst: sk_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:129,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 3
    argNames:
    - pdp
    - ctx
    - cnf
    argTypes:
    - DIST_POINT_NAME**
    - X509V3_CTX*
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 131
    functionName: set_dist_point_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - strcmp
    - X509_NAME_new
    - gnames_from_sectname
    - X509V3_get_section
    - X509V3_NAME_from_section
    - STACK_OF
    - X509V3_section_free
    - sk_X509_NAME_ENTRY_num
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_pop_free
    - X509_NAME_free
    - DIST_POINT_NAME_new
    - X509V3err
    - strncmp
    - sk_GENERAL_NAME_pop_free
    linkageType: ''
    returnType: int
    signature: "int set_dist_point_name(DIST_POINT_NAME **pdp, X509V3_CTX *ctx,\n
      \                              CONF_VALUE *cnf)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:148,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:152,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:157,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:158,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:160,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:165,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:166,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:177,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - preas
    - value
    argTypes:
    - ASN1_BIT_STRING**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 179
    functionName: set_reasons
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - strcmp
    - X509V3_parse_list
    - STACK_OF
    - ASN1_BIT_STRING_new
    - ASN1_BIT_STRING_set_bit
    - sk_CONF_VALUE_value
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: int
    signature: int set_reasons(ASN1_BIT_STRING **preas, char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:186,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:188,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:192,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:193,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:197,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - out
    - rname
    - rflags
    - indent
    argTypes:
    - BIO*
    - char*
    - ASN1_BIT_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: print_reasons
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_get_bit
    - BIO_puts
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int print_reasons(BIO *out, const char *rname,\n                         ASN1_BIT_STRING
      *rflags, int indent)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DIST_POINT_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:208,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:212,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:214,1
    - Dst: set_dist_point_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:215,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:220,1
    - Dst: set_reasons
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:221,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:223,1
    - Dst: gnames_from_sectname
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:224,1
    - Dst: DIST_POINT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:233,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - nval
    argTypes:
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 235
    functionName: crldp_from_section
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - DIST_POINT_new
    - sk_CONF_VALUE_num
    - strcmp
    - gnames_from_sectname
    - set_dist_point_name
    - DIST_POINT_free
    - set_reasons
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: DIST_POINT
    signature: "DIST_POINT *crldp_from_section(X509V3_CTX *ctx,\n                                      STACK_OF(CONF_VALUE)
      *nval)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:240,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:244,1
    - Dst: sk_DIST_POINT_new_reserve
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:247,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:253,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:255,1
    - Dst: X509V3_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:256,1
    - Dst: crldp_from_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:259,1
    - Dst: X509V3_section_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:260,1
    - Dst: sk_DIST_POINT_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:263,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:265,1
    - Dst: GENERAL_NAMES_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:267,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:269,1
    - Dst: DIST_POINT_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:272,1
    - Dst: sk_DIST_POINT_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:274,1
    - Dst: DIST_POINT_NAME_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:275,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:285,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:287,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:288,1
    - Dst: sk_DIST_POINT_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:289,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 291
    functionName: v2i_crld
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAMES_new
    - sk_GENERAL_NAME_push
    - DIST_POINT_new
    - sk_DIST_POINT_push
    - v2i_GENERAL_NAME
    - sk_DIST_POINT_pop_free
    - sk_CONF_VALUE_num
    - crldp_from_section
    - X509V3_section_free
    - X509V3_get_section
    - X509V3err
    - STACK_OF
    - GENERAL_NAME_free
    - sk_CONF_VALUE_value
    - DIST_POINT_NAME_new
    - sk_DIST_POINT_new_reserve
    - GENERAL_NAMES_free
    linkageType: ''
    returnType: void
    signature: "void *v2i_crld(const X509V3_EXT_METHOD *method,\n                      X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: dpn_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - X509_NAME_free
    linkageType: ''
    returnType: int
    signature: "int dpn_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ISSUING_DIST_POINT_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:367,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:370,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:371,1
    - Dst: set_dist_point_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:374,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:379,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:380,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:382,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:383,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:385,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:386,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:388,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:389,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:391,1
    - Dst: set_reasons
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:392,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:395,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:396,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:403,1
    - Dst: ISSUING_DIST_POINT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:405,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 407
    functionName: v2i_idp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - ISSUING_DIST_POINT_new
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - strcmp
    - ISSUING_DIST_POINT_free
    - set_dist_point_name
    - set_reasons
    - sk_CONF_VALUE_value
    - X509V3err
    - X509V3_get_value_bool
    linkageType: ''
    returnType: void
    signature: "void *v2i_idp(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,\n
      \                    STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:423,1
    - Dst: print_gens
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:424,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:428,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:429,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - out
    - dpn
    - indent
    argTypes:
    - BIO*
    - DIST_POINT_NAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 420
    functionDepth: 7
    functionLinenumber: 420
    functionLinenumberEnd: 433
    functionName: print_distpoint
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - X509_NAME_print_ex
    - print_gens
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int print_distpoint(BIO *out, DIST_POINT_NAME *dpn, int indent)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: print_distpoint
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:440,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:442,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:444,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:446,1
    - Dst: print_reasons
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:448,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:450,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:454,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 4
    argNames:
    - method
    - pidp
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 435
    functionDepth: 8
    functionLinenumber: 435
    functionLinenumberEnd: 457
    functionName: i2r_idp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - print_reasons
    - print_distpoint
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out,\n
      \                  int indent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:462,1
    - Dst: sk_DIST_POINT_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:465,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:466,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:467,1
    - Dst: print_distpoint
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:469,1
    - Dst: print_reasons
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:471,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:473,1
    - Dst: print_gens
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - method
    - pcrldp
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 459
    functionDepth: 8
    functionLinenumber: 459
    functionLinenumberEnd: 478
    functionName: i2r_crldp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_DIST_POINT_value
    - STACK_OF
    - sk_DIST_POINT_num
    - BIO_puts
    - BIO_printf
    - print_reasons
    - print_distpoint
    - print_gens
    linkageType: ''
    returnType: int
    signature: "int i2r_crldp(const X509V3_EXT_METHOD *method, void *pcrldp, BIO *out,\n
      \                    int indent)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:483,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:488,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:491,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:492,1
    - Dst: X509_NAME_add_entry
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:493,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:494,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:500,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c:501,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - dpn
    - iname
    argTypes:
    - DIST_POINT_NAME*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 506
    functionName: DIST_POINT_set_dpname
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
    functionUses: 1
    functionsReached:
    - X509_NAME_add_entry
    - sk_X509_NAME_ENTRY_num
    - STACK_OF
    - X509_NAME_dup
    - X509_NAME_free
    - i2d_X509_NAME
    - sk_X509_NAME_ENTRY_value
    linkageType: ''
    returnType: int
    signature: int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_dup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: GENERAL_NAME_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c
    functionUses: 1
    functionsReached:
    - ASN1_dup
    linkageType: ''
    returnType: GENERAL_NAME
    signature: GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:70,1
    - Dst: OTHERNAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:74,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:80,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:84,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:88,1
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:92,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - GENERAL_NAME*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: GENERAL_NAME_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_cmp
    - OBJ_cmp
    - ASN1_STRING_cmp
    - OTHERNAME_cmp
    - ASN1_OCTET_STRING_cmp
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:106,1
    - Dst: ASN1_TYPE_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OTHERNAME*
    - OTHERNAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: OTHERNAME_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_cmp
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - a
    - type
    - value
    argTypes:
    - GENERAL_NAME*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 144
    functionName: GENERAL_NAME_set0_value
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - a
    - ptype
    argTypes:
    - GENERAL_NAME*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 175
    functionName: GENERAL_NAME_get0_value
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OTHERNAME_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:181,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:184,1
    - Dst: GENERAL_NAME_set0_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - gen
    - oid
    - value
    argTypes:
    - GENERAL_NAME*
    - ASN1_OBJECT*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: GENERAL_NAME_set0_othername
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_set0_value
    - ASN1_TYPE_free
    - OTHERNAME_new
    linkageType: ''
    returnType: int
    signature: "int GENERAL_NAME_set0_othername(GENERAL_NAME *gen,\n                                ASN1_OBJECT
      *oid, ASN1_TYPE *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - gen
    - poid
    - pvalue
    argTypes:
    - GENERAL_NAME*
    - ASN1_OBJECT**
    - ASN1_TYPE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: GENERAL_NAME_get0_otherName
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen,\n                                ASN1_OBJECT
      **poid, ASN1_TYPE **pvalue)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:160,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:164,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:169,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:173,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:174,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:178,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:179,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:183,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:184,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:188,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:195,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:197,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:199,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:202,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:204,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:210,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:211,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - out
    - gen
    argTypes:
    - BIO*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 154
    functionDepth: 7
    functionLinenumber: 154
    functionLinenumberEnd: 215
    functionName: GENERAL_NAME_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 3
    functionsReached:
    - i2a_ASN1_OBJECT
    - X509_NAME_print_ex
    - BIO_puts
    - BIO_printf
    - ASN1_STRING_print
    linkageType: ''
    returnType: int
    signature: int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:221,1
    - Dst: sk_GENERAL_NAME_new_reserve
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:222,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:226,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:227,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:231,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:233,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:234,1
    - Dst: copy_issuer
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:235,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:238,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:242,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:247,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 249
    functionName: v2i_issuer_alt
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_new_reserve
    - v2i_GENERAL_NAME
    - sk_GENERAL_NAME_free
    - sk_CONF_VALUE_num
    - strcmp
    - name_cmp
    - sk_CONF_VALUE_value
    - copy_issuer
    - X509V3err
    - sk_GENERAL_NAME_pop_free
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: "GENERAL_NAMES *v2i_issuer_alt(X509V3_EXT_METHOD *method,\n                                     X509V3_CTX
      *ctx,\n                                     STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:263,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:266,1
    - Dst: X509_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:269,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:270,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:271,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:275,1
    - Dst: sk_GENERAL_NAME_reserve
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:276,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:277,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:282,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:283,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:285,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - ctx
    - gens
    argTypes:
    - X509V3_CTX*
    - GENERAL_NAMES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 292
    functionName: copy_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - sk_GENERAL_NAME_push
    - X509_get_ext
    - X509V3_EXT_d2i
    - sk_GENERAL_NAME_reserve
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_free
    - sk_GENERAL_NAME_num
    - X509_get_ext_by_NID
    - X509V3err
    linkageType: ''
    returnType: int
    signature: int copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:300,1
    - Dst: sk_GENERAL_NAME_new_reserve
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:303,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:305,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:306,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:311,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:312,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:313,1
    - Dst: copy_email
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:314,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:316,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:317,1
    - Dst: copy_email
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:318,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:322,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:324,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:329,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 331
    functionName: v2i_subject_alt
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_new_reserve
    - v2i_GENERAL_NAME
    - sk_GENERAL_NAME_free
    - sk_CONF_VALUE_num
    - strcmp
    - name_cmp
    - sk_CONF_VALUE_value
    - X509V3err
    - copy_email
    - sk_GENERAL_NAME_pop_free
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: "GENERAL_NAMES *v2i_subject_alt(X509V3_EXT_METHOD *method,\n                                      X509V3_CTX
      *ctx,\n                                      STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:349,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:354,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:356,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:359,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:361,1
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:362,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:362,1
    - Dst: X509_NAME_delete_entry
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:364,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:365,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:368,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:369,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:375,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:376,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:385,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:386,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - gens
    - move_p
    argTypes:
    - X509V3_CTX*
    - GENERAL_NAMES*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 389
    functionName: copy_email
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - X509_NAME_get_entry
    - ASN1_STRING_dup
    - GENERAL_NAME_new
    - X509_NAME_delete_entry
    - sk_GENERAL_NAME_push
    - X509_NAME_ENTRY_free
    - ASN1_IA5STRING_free
    - GENERAL_NAME_free
    - X509_NAME_get_index_by_NID
    - X509_get_subject_name
    - X509V3err
    - X509_NAME_ENTRY_get_data
    - X509_REQ_get_subject_name
    linkageType: ''
    returnType: int
    signature: int copy_email(X509V3_CTX *ctx, GENERAL_NAMES *gens, int move_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:397,1
    - Dst: sk_GENERAL_NAME_new_reserve
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:400,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:402,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:403,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:408,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:409,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:411,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 417
    functionName: v2i_GENERAL_NAMES
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_new_reserve
    - v2i_GENERAL_NAME
    - sk_GENERAL_NAME_free
    - sk_CONF_VALUE_num
    - sk_CONF_VALUE_value
    - X509V3err
    - sk_GENERAL_NAME_pop_free
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: "GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method,\n
      \                                X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: v2i_GENERAL_NAME_ex
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - method
    - ctx
    - cnf
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: v2i_GENERAL_NAME
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 4
    functionsReached:
    - v2i_GENERAL_NAME_ex
    linkageType: ''
    returnType: GENERAL_NAME
    signature: "GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method,\n
      \                              X509V3_CTX *ctx, CONF_VALUE *cnf)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:434,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:441,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:443,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:458,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:459,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:460,1
    - Dst: a2i_IPADDRESS_NC
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:469,1
    - Dst: a2i_IPADDRESS
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:471,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:473,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:474,1
    - Dst: do_dirname
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:480,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:481,1
    - Dst: do_othername
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:487,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:488,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:493,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:498,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:499,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:500,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:501,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:512,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 6
    argNames:
    - out
    - method
    - ctx
    - gen_type
    - value
    - is_nc
    argTypes:
    - GENERAL_NAME*
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 514
    functionName: a2i_GENERAL_NAME
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 0
    functionsReached:
    - a2i_IPADDRESS_NC
    - GENERAL_NAME_new
    - ASN1_STRING_set
    - GENERAL_NAME_free
    - ERR_add_error_data
    - a2i_IPADDRESS
    - OBJ_txt2obj
    - do_dirname
    - X509V3err
    - ASN1_IA5STRING_new
    - do_othername
    - strlen
    linkageType: ''
    returnType: GENERAL_NAME
    signature: "GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out,\n                               const
      X509V3_EXT_METHOD *method,\n                               X509V3_CTX *ctx,
      int gen_type, const char *value,\n                               int is_nc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:528,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:532,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:534,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:536,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:538,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:540,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:542,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:544,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:547,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:548,1
    - Dst: a2i_GENERAL_NAME
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:552,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - out
    - method
    - ctx
    - cnf
    - is_nc
    argTypes:
    - GENERAL_NAME*
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - CONF_VALUE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 554
    functionName: v2i_GENERAL_NAME_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 3
    functionsReached:
    - a2i_GENERAL_NAME
    - X509V3err
    - name_cmp
    - ERR_add_error_data
    linkageType: ''
    returnType: GENERAL_NAME
    signature: "GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,\n                                  const
      X509V3_EXT_METHOD *method,\n                                  X509V3_CTX *ctx,
      CONF_VALUE *cnf, int is_nc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:561,1
    - Dst: OTHERNAME_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:563,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:569,1
    - Dst: ASN1_generate_v3
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:570,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:573,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:576,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - gen
    - value
    - ctx
    argTypes:
    - GENERAL_NAME*
    - char*
    - X509V3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 581
    functionName: do_othername
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strndup
    - OPENSSL_free
    - strchr
    - OBJ_txt2obj
    - OTHERNAME_new
    - ASN1_generate_v3
    - ASN1_TYPE_free
    linkageType: ''
    returnType: int
    signature: int do_othername(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:586,1
    - Dst: X509_NAME_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:589,1
    - Dst: X509V3_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:591,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:593,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:594,1
    - Dst: X509V3_NAME_from_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:598,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:605,1
    - Dst: X509V3_section_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c:606,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - gen
    - value
    - ctx
    argTypes:
    - GENERAL_NAME*
    - char*
    - X509V3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 608
    functionName: do_dirname
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - X509V3_NAME_from_section
    - X509_NAME_new
    - X509V3_section_free
    - X509V3_get_section
    - ERR_add_error_data
    - STACK_OF
    - X509_NAME_free
    - X509V3err
    linkageType: ''
    returnType: int
    signature: int do_dirname(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:34,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:35,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - method
    - ia5
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: i2s_ASN1_IA5STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - X509V3err
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING
      *ia5)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:48,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:52,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:54,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:54,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:55,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:59,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 65
    functionName: s2i_ASN1_IA5STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - ASN1_IA5STRING_free
    - ebcdic2ascii
    - X509V3err
    - ASN1_IA5STRING_new
    - strlen
    linkageType: ''
    returnType: ASN1_IA5STRING
    signature: "ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method,\n                                   X509V3_CTX
      *ctx, const char *str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_enum.c:47,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_enum.c:50,1
    - Dst: i2s_ASN1_ENUMERATED
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_enum.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - method
    - e
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: i2s_ASN1_ENUMERATED_TABLE
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_enum.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - i2s_ASN1_ENUMERATED
    - ASN1_ENUMERATED_get
    linkageType: ''
    returnType: char
    signature: "char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *method,\n                                const
      ASN1_ENUMERATED *e)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: v3_check_critical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:42,1
    - Dst: v3_check_generic
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:43,1
    - Dst: v3_generic_extension
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:44,1
    - Dst: do_ext_nconf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:45,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:45,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:47,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - conf
    - ctx
    - name
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: X509V3_EXT_nconf
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - v3_generic_extension
    - v3_check_generic
    - OBJ_sn2nid
    - ERR_add_error_data
    - do_ext_nconf
    - X509V3err
    - v3_check_critical
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const
      char *name,\n                                 const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: v3_check_critical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:60,1
    - Dst: v3_check_generic
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:61,1
    - Dst: v3_generic_extension
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:62,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:62,1
    - Dst: do_ext_nconf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - ctx
    - ext_nid
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: X509V3_EXT_nconf_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - v3_generic_extension
    - v3_check_generic
    - do_ext_nconf
    - v3_check_critical
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx,
      int ext_nid,\n                                     const char *value)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:74,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:78,1
    - Dst: X509V3_EXT_get_nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:81,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:82,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:88,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:90,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:91,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:92,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:94,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:94,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:97,1
    - Dst: X509V3_EXT_METHOD*::v2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:100,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:102,1
    - Dst: X509V3_EXT_METHOD*::s2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:106,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:110,1
    - Dst: X509V3_EXT_METHOD*::r2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:113,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:116,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:118,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:118,1
    - Dst: do_ext_i2d
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:122,1
    - Dst: ASN1_item_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:124,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:124,1
    - Dst: X509V3_EXT_METHOD*::ext_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:126,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 5
    argNames:
    - conf
    - ctx
    - ext_nid
    - crit
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 129
    functionName: do_ext_nconf
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 2
    functionsReached:
    - OBJ_nid2sn
    - X509V3_EXT_METHOD*::s2i
    - do_ext_i2d
    - NCONF_get_section
    - sk_CONF_VALUE_num
    - ASN1_ITEM_ptr
    - X509V3_parse_list
    - X509V3_EXT_METHOD*::ext_free
    - STACK_OF
    - X509V3_EXT_get_nid
    - ERR_add_error_data
    - sk_CONF_VALUE_pop_free
    - X509V3_EXT_METHOD*::v2i
    - ASN1_item_free
    - X509V3_EXT_METHOD*::r2i
    - X509V3err
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid,\n
      \                                   int crit, const char *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:142,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:142,1
    - Dst: X509V3_EXT_METHOD*::i2d
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:148,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:149,1
    - Dst: X509V3_EXT_METHOD*::i2d
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:152,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:154,1
    - Dst: X509_EXTENSION_create_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:160,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:163,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:168,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:169,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:170,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - method
    - ext_nid
    - crit
    - ext_struc
    argTypes:
    - X509V3_EXT_METHOD*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 173
    functionName: do_ext_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 1
    functionsReached:
    - X509V3_EXT_METHOD*::i2d
    - OPENSSL_malloc
    - ASN1_OCTET_STRING_new
    - ASN1_ITEM_ptr
    - OPENSSL_free
    - ASN1_OCTET_STRING_free
    - X509_EXTENSION_create_by_NID
    - ASN1_item_i2d
    - X509V3err
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method,\n                                  int
      ext_nid, int crit, void *ext_struc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_get_nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:181,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:182,1
    - Dst: do_ext_i2d
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ext_nid
    - crit
    - ext_struc
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: X509V3_EXT_i2d
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 4
    functionsReached:
    - X509V3err
    - X509V3_EXT_get_nid
    - do_ext_i2d
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:192,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:192,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: v3_check_critical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 2
    functionsReached:
    - strncmp
    - ossl_isspace
    - strlen
    linkageType: ''
    returnType: int
    signature: int v3_check_critical(const char **value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:206,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:206,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:209,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:209,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: v3_check_generic
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 2
    functionsReached:
    - strncmp
    - ossl_isspace
    - strlen
    linkageType: ''
    returnType: int
    signature: int v3_check_generic(const char **value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:232,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:233,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:235,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:240,1
    - Dst: generic_asn1
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:242,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:245,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:247,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:251,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:252,1
    - Dst: X509_EXTENSION_create_by_OBJ
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:260,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:263,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:264,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - ext
    - value
    - crit
    - gen_type
    - ctx
    argTypes:
    - char*
    - char*
    - int
    - int
    - X509V3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 268
    functionName: v3_generic_extension
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 2
    functionsReached:
    - ASN1_OCTET_STRING_new
    - generic_asn1
    - OPENSSL_free
    - ERR_add_error_data
    - ASN1_OBJECT_free
    - ASN1_OCTET_STRING_free
    - OBJ_txt2obj
    - OPENSSL_hexstr2buf
    - X509V3err
    - X509_EXTENSION_create_by_OBJ
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *v3_generic_extension(const char *ext, const char *value,\n
      \                                           int crit, int gen_type,\n                                            X509V3_CTX
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_generate_v3
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:275,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:278,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - value
    - ctx
    - ext_len
    argTypes:
    - char*
    - X509V3_CTX*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: generic_asn1
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_free
    - i2d_ASN1_TYPE
    - ASN1_generate_v3
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *generic_asn1(const char *value, X509V3_CTX *ctx,\n
      \                                  long *ext_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:304,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:308,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:310,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:311,1
    - Dst: X509V3_EXT_nconf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:312,1
    - Dst: delete_ext
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:315,1
    - Dst: X509v3_add_ext
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:317,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:318,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - sk
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 325
    functionName: X509V3_EXT_add_nconf_sk
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_section
    - sk_CONF_VALUE_num
    - STACK_OF
    - delete_ext
    - sk_CONF_VALUE_value
    - X509v3_add_ext
    - X509_EXTENSION_free
    - X509V3_EXT_nconf
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char
      *section,\n                            STACK_OF(X509_EXTENSION) **sk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:334,1
    - Dst: X509V3_EXT_add_nconf_sk
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - cert
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: X509V3_EXT_add_nconf
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - X509V3_EXT_add_nconf_sk
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section,\n
      \                        X509 *cert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:345,1
    - Dst: X509V3_EXT_add_nconf_sk
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - crl
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 4
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: X509V3_EXT_CRL_add_nconf
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - X509V3_EXT_add_nconf_sk
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char
      *section,\n                             X509_CRL *crl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:356,1
    - Dst: X509V3_EXT_add_nconf_sk
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:360,1
    - Dst: X509_REQ_add_extensions
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:363,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - req
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 366
    functionName: X509V3_EXT_REQ_add_nconf
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509_REQ_add_extensions
    - STACK_OF
    - sk_X509_EXTENSION_pop_free
    - X509V3_EXT_add_nconf_sk
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char
      *section,\n                             X509_REQ *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:373,1
    - Dst: X509V3_CTX*::db_meth::get_string
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - name
    - section
    argTypes:
    - X509V3_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 379
    functionName: X509V3_get_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3err
    - X509V3_CTX*::db_meth::get_string
    linkageType: ''
    returnType: char
    signature: char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char
      *section)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_CTX*::db_meth::free_string
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: X509V3_string_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3_CTX*::db_meth::free_string
    linkageType: ''
    returnType: void
    signature: void X509V3_string_free(X509V3_CTX *ctx, char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - section
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: nconf_get_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    linkageType: ''
    returnType: char
    signature: char *nconf_get_string(void *db, const char *section, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - section
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: nconf_get_section
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_section
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *nconf_get_section(void *db, const char *section)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - conf
    argTypes:
    - X509V3_CTX*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: X509V3_set_nconf
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - issuer
    - subj
    - req
    - crl
    - flags
    argTypes:
    - X509V3_CTX*
    - X509*
    - X509*
    - X509_REQ*
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 440
    functionName: X509V3_set_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subj, X509_REQ
      *req,\n                    X509_CRL *crl, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_get_string
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - section
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: conf_lhash_get_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - CONF_get_string
    linkageType: ''
    returnType: char
    signature: char *conf_lhash_get_string(void *db, const char *section, const char
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - section
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: conf_lhash_get_section
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - CONF_get_section
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *conf_lhash_get_section(void *db, const char *section)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BASIC_CONSTRAINTS_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:62,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:63,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:66,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:67,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:68,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:69,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:71,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:72,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:75,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:76,1
    - Dst: BASIC_CONSTRAINTS_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 54
    functionDepth: 8
    functionLinenumber: 54
    functionLinenumberEnd: 84
    functionName: v2i_BASIC_CONSTRAINTS
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c
    functionUses: 0
    functionsReached:
    - X509V3_get_value_int
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - strcmp
    - BASIC_CONSTRAINTS_new
    - sk_CONF_VALUE_value
    - BASIC_CONSTRAINTS_free
    - X509V3err
    - X509V3_get_value_bool
    linkageType: ''
    returnType: BASIC_CONSTRAINTS
    signature: "BASIC_CONSTRAINTS *v2i_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method,\n
      \                                               X509V3_CTX *ctx,\n                                                STACK_OF(CONF_VALUE)
      *values)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - afi
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: length_from_afi
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int length_from_afi(const unsigned afi)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - IPAddressFamily*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: X509v3_addr_get_afi
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int X509v3_addr_get_afi(const IPAddressFamily *f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:106,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - addr
    - bs
    - length
    - fill
    argTypes:
    - unsigned char*
    - ASN1_BIT_STRING*
    - int
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: addr_expand
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int addr_expand(unsigned char *addr,\n                       const
      ASN1_BIT_STRING *bs,\n                       const int length, const unsigned
      char fill)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: addr_prefixlen
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addr_prefixlen(bs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:138,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:140,1
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:143,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:148,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:151,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:153,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:157,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:158,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 4
    argNames:
    - out
    - afi
    - fill
    - bs
    argTypes:
    - BIO*
    - unsigned
    - unsigned char
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 162
    functionName: i2r_address
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_printf
    - addr_expand
    linkageType: ''
    returnType: int
    signature: "int i2r_address(BIO *out,\n                       const unsigned afi,\n
      \                      const unsigned char fill, const ASN1_BIT_STRING *bs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:173,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:174,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:175,1
    - Dst: i2r_address
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:178,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:180,1
    - Dst: addr_prefixlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:180,1
    - Dst: i2r_address
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:183,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:185,1
    - Dst: i2r_address
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:186,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - out
    - indent
    - aors
    - afi
    argTypes:
    - BIO*
    - int
    - IPAddressOrRanges*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 193
    functionName: i2r_IPAddressOrRanges
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - addr_prefixlen
    - BIO_puts
    - BIO_printf
    - sk_IPAddressOrRange_num
    - i2r_address
    - sk_IPAddressOrRange_value
    linkageType: ''
    returnType: int
    signature: "int i2r_IPAddressOrRanges(BIO *out,\n                                 const
      int indent,\n                                 const IPAddressOrRanges *aors,\n
      \                                const unsigned afi)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:203,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:204,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:205,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:208,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:211,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:214,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:220,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:223,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:226,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:229,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:232,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:235,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:238,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:241,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:244,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:251,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:254,1
    - Dst: i2r_IPAddressOrRanges
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:255,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 4
    argNames:
    - method
    - ext
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 264
    functionName: i2r_IPAddrBlocks
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_value
    - BIO_puts
    - sk_IPAddressFamily_num
    - BIO_printf
    - X509v3_addr_get_afi
    - i2r_IPAddressOrRanges
    linkageType: ''
    returnType: int
    signature: "int i2r_IPAddrBlocks(const X509V3_EXT_METHOD *method,\n                            void
      *ext, BIO *out, int indent)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:285,1
    - Dst: addr_prefixlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:287,1
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:290,1
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:298,1
    - Dst: addr_prefixlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:300,1
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:303,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:309,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - a
    - b
    - length
    argTypes:
    - IPAddressOrRange*
    - IPAddressOrRange*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 313
    functionName: IPAddressOrRange_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - memcmp
    - addr_prefixlen
    - addr_expand
    linkageType: ''
    returnType: int
    signature: "int IPAddressOrRange_cmp(const IPAddressOrRange *a,\n                                const
      IPAddressOrRange *b, const int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPAddressOrRange_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddressOrRange**
    - IPAddressOrRange**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: v4IPAddressOrRange_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_cmp
    linkageType: ''
    returnType: int
    signature: "int v4IPAddressOrRange_cmp(const IPAddressOrRange *const *a,\n                                  const
      IPAddressOrRange *const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPAddressOrRange_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddressOrRange**
    - IPAddressOrRange**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: v6IPAddressOrRange_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_cmp
    linkageType: ''
    returnType: int
    signature: "int v6IPAddressOrRange_cmp(const IPAddressOrRange *const *a,\n                                  const
      IPAddressOrRange *const *b)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:345,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 3
    argNames:
    - min
    - max
    - length
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 383
    functionName: range_should_be_prefix
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int range_should_be_prefix(const unsigned char *min,\n                                  const
      unsigned char *max, const int length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IPAddressOrRange_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:392,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:398,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:400,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - result
    - addr
    - prefixlen
    argTypes:
    - IPAddressOrRange**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 415
    functionName: make_addressPrefix
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_free
    - IPAddressOrRange_new
    - ASN1_BIT_STRING_set
    - ASN1_BIT_STRING_new
    linkageType: ''
    returnType: int
    signature: "int make_addressPrefix(IPAddressOrRange **result,\n                              unsigned
      char *addr, const int prefixlen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: range_should_be_prefix
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:429,1
    - Dst: make_addressPrefix
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:430,1
    - Dst: IPAddressOrRange_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:432,1
    - Dst: IPAddressRange_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:435,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:438,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:441,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:445,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:458,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:474,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 4
    argNames:
    - result
    - min
    - max
    - length
    argTypes:
    - IPAddressOrRange**
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 476
    functionName: make_addressRange
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressRange_new
    - IPAddressOrRange_free
    - range_should_be_prefix
    - ASN1_BIT_STRING_set
    - ASN1_BIT_STRING_new
    - IPAddressOrRange_new
    - make_addressPrefix
    linkageType: ''
    returnType: int
    signature: "int make_addressRange(IPAddressOrRange **result,\n                             unsigned
      char *min,\n                             unsigned char *max, const int length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:499,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:500,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:502,1
    - Dst: IPAddressFamily_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:506,1
    - Dst: IPAddressChoice_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:509,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:512,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:514,1
    - Dst: sk_IPAddressFamily_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:516,1
    - Dst: IPAddressFamily_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:522,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 3
    argNames:
    - addr
    - afi
    - safi
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 524
    functionName: make_IPAddressFamily
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_set
    - sk_IPAddressFamily_push
    - memcmp
    - sk_IPAddressFamily_value
    - IPAddressFamily_free
    - sk_IPAddressFamily_num
    - IPAddressFamily_new
    - IPAddressChoice_new
    linkageType: ''
    returnType: IPAddressFamily
    signature: "IPAddressFamily *make_IPAddressFamily(IPAddrBlocks *addr,\n                                             const
      unsigned afi,\n                                             const unsigned *safi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_IPAddressFamily
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:532,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:542,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - afi
    - safi
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 546
    functionName: X509v3_addr_add_inherit
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - make_IPAddressFamily
    - ASN1_NULL_new
    linkageType: ''
    returnType: int
    signature: "int X509v3_addr_add_inherit(IPAddrBlocks *addr,\n                            const
      unsigned afi, const unsigned *safi)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: make_IPAddressFamily
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:555,1
    - Dst: sk_IPAddressOrRange_new_null
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:567,1
    - Dst: sk_IPAddressOrRange_set_cmp_func
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:571,1
    - Dst: sk_IPAddressOrRange_set_cmp_func
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - addr
    - afi
    - safi
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 580
    functionName: make_prefix_or_range
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressOrRange_set_cmp_func
    - make_IPAddressFamily
    - sk_IPAddressOrRange_new_null
    linkageType: ''
    returnType: IPAddressOrRanges
    signature: "IPAddressOrRanges *make_prefix_or_range(IPAddrBlocks *addr,\n                                               const
      unsigned afi,\n                                               const unsigned
      *safi)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_prefix_or_range
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:590,1
    - Dst: make_addressPrefix
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:592,1
    - Dst: sk_IPAddressOrRange_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:594,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:596,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - addr
    - afi
    - safi
    - a
    - prefixlen
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 598
    functionName: X509v3_addr_add_prefix
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_free
    - sk_IPAddressOrRange_push
    - make_prefix_or_range
    - make_addressPrefix
    linkageType: ''
    returnType: int
    signature: "int X509v3_addr_add_prefix(IPAddrBlocks *addr,\n                           const
      unsigned afi,\n                           const unsigned *safi,\n                           unsigned
      char *a, const int prefixlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_prefix_or_range
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:608,1
    - Dst: length_from_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:610,1
    - Dst: make_addressRange
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:613,1
    - Dst: sk_IPAddressOrRange_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:615,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - addr
    - afi
    - safi
    - min
    - max
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 603
    functionDepth: 5
    functionLinenumber: 603
    functionLinenumberEnd: 619
    functionName: X509v3_addr_add_range
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_free
    - sk_IPAddressOrRange_push
    - length_from_afi
    - make_prefix_or_range
    - make_addressRange
    linkageType: ''
    returnType: int
    signature: "int X509v3_addr_add_range(IPAddrBlocks *addr,\n                          const
      unsigned afi,\n                          const unsigned *safi,\n                          unsigned
      char *min, unsigned char *max)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:631,1
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:632,1
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:634,1
    - Dst: addr_expand
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - aor
    - min
    - max
    - length
    argTypes:
    - IPAddressOrRange*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: extract_min_max
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - addr_expand
    linkageType: ''
    returnType: int
    signature: "int extract_min_max(IPAddressOrRange *aor,\n                           unsigned
      char *min, unsigned char *max, int length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: length_from_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:648,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:653,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 5
    argNames:
    - aor
    - afi
    - min
    - max
    - length
    argTypes:
    - IPAddressOrRange*
    - unsigned
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 657
    functionName: X509v3_addr_get_range
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    - length_from_afi
    linkageType: ''
    returnType: int
    signature: "int X509v3_addr_get_range(IPAddressOrRange *aor,\n                          const
      unsigned afi,\n                          unsigned char *min,\n                          unsigned
      char *max, const int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - IPAddressFamily**
    - IPAddressFamily**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 677
    functionName: IPAddressFamily_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int IPAddressFamily_cmp(const IPAddressFamily *const *a_,\n                               const
      IPAddressFamily *const *b_)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:698,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:699,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:700,1
    - Dst: IPAddressFamily_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:701,1
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:708,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:709,1
    - Dst: length_from_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:710,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:710,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:731,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:733,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:734,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:735,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:737,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:738,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:744,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:745,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:746,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:754,1
    - Dst: range_should_be_prefix
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:761,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:769,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:771,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:773,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:775,1
    - Dst: range_should_be_prefix
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:776,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 43
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddrBlocks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 786
    functionName: X509v3_addr_is_canonical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressFamily_cmp
    - memcmp
    - sk_IPAddressFamily_value
    - range_should_be_prefix
    - extract_min_max
    - length_from_afi
    - sk_IPAddressFamily_num
    - sk_IPAddressOrRange_num
    - sk_IPAddressOrRange_value
    - X509v3_addr_get_afi
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_is_canonical(IPAddrBlocks *addr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: length_from_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:794,1
    - Dst: sk_IPAddressOrRange_sort
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:799,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:804,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:805,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:806,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:810,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:811,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:817,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:818,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:824,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:832,1
    - Dst: make_addressRange
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:834,1
    - Dst: sk_IPAddressOrRange_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:836,1
    - Dst: sk_IPAddressOrRange_delete
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:837,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:838,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:839,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:848,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:850,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:853,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:855,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - aors
    - afi
    argTypes:
    - IPAddressOrRanges*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 791
    functionDepth: 5
    functionLinenumber: 791
    functionLinenumberEnd: 861
    functionName: IPAddressOrRanges_canonize
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressOrRange_delete
    - memcmp
    - IPAddressOrRange_free
    - sk_IPAddressOrRange_sort
    - extract_min_max
    - length_from_afi
    - sk_IPAddressOrRange_set
    - sk_IPAddressOrRange_num
    - sk_IPAddressOrRange_value
    - make_addressRange
    linkageType: ''
    returnType: int
    signature: "int IPAddressOrRanges_canonize(IPAddressOrRanges *aors,\n                                      const
      unsigned afi)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:869,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:870,1
    - Dst: IPAddressOrRanges_canonize
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:872,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:874,1
    - Dst: sk_IPAddressFamily_set_cmp_func
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:877,1
    - Dst: sk_IPAddressFamily_sort
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:878,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:879,1
    - Dst: X509v3_addr_is_canonical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddrBlocks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 866
    functionDepth: 6
    functionLinenumber: 866
    functionLinenumberEnd: 882
    functionName: X509v3_addr_canonize
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - X509v3_addr_is_canonical
    - sk_IPAddressFamily_value
    - IPAddressOrRanges_canonize
    - sk_IPAddressFamily_sort
    - sk_IPAddressFamily_num
    - sk_IPAddressFamily_set_cmp_func
    - ossl_assert
    - X509v3_addr_get_afi
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_canonize(IPAddrBlocks *addr)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:897,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:898,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:902,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:903,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:909,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:911,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:913,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:916,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:920,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:922,1
    - Dst: length_from_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:935,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:942,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:943,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:945,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:946,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:949,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:950,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:952,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:955,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:963,1
    - Dst: X509v3_addr_add_inherit
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:964,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:965,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:967,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:970,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:975,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:976,1
    - Dst: a2i_ipadd
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:980,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:981,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:982,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:988,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:990,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:992,1
    - Dst: X509v3_addr_add_prefix
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:995,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:996,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1001,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1002,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1004,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1006,1
    - Dst: a2i_ipadd
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1009,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1010,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1012,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1015,1
    - Dst: length_from_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1015,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1016,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1018,1
    - Dst: X509v3_addr_add_range
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1021,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1022,1
    - Dst: X509v3_addr_add_prefix
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1027,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1028,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1033,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1035,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1039,1
    - Dst: X509v3_addr_canonize
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1046,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1051,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1052,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 141
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - struct v3_ext_method*
    - struct v3_ext_ctx*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 887
    functionDepth: 7
    functionLinenumber: 887
    functionLinenumberEnd: 1054
    functionName: v2i_IPAddrBlocks
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - strtoul
    - X509V3err
    - X509v3_addr_canonize
    - X509v3_addr_add_prefix
    - a2i_ipadd
    - X509V3_conf_err
    - strcmp
    - memcmp
    - OPENSSL_free
    - name_cmp
    - X509v3_addr_add_inherit
    - strspn
    - length_from_afi
    - OPENSSL_strdup
    - sk_CONF_VALUE_value
    - X509v3_addr_add_range
    - sk_IPAddressFamily_new
    - sk_IPAddressFamily_pop_free
    linkageType: ''
    returnType: void
    signature: "void *v2i_IPAddrBlocks(const struct v3_ext_method *method,\n                              struct
      v3_ext_ctx *ctx,\n                              STACK_OF(CONF_VALUE) *values)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1081,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddrBlocks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1087
    functionName: X509v3_addr_inherits
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_value
    - sk_IPAddressFamily_num
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_inherits(IPAddrBlocks *addr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1105,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1106,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1106,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1110,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1112,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1112,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1115,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1117,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - parent
    - child
    - length
    argTypes:
    - IPAddressOrRanges*
    - IPAddressOrRanges*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1124
    functionName: addr_contains
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - memcmp
    - sk_IPAddressOrRange_num
    - extract_min_max
    - sk_IPAddressOrRange_value
    linkageType: ''
    returnType: int
    signature: "int addr_contains(IPAddressOrRanges *parent,\n                         IPAddressOrRanges
      *child, int length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_addr_inherits
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1134,1
    - Dst: X509v3_addr_inherits
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1134,1
    - Dst: sk_IPAddressFamily_set_cmp_func
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1136,1
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1137,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1138,1
    - Dst: sk_IPAddressFamily_find
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1139,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1141,1
    - Dst: addr_contains
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1144,1
    - Dst: length_from_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1146,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddrBlocks*
    - IPAddrBlocks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1150
    functionName: X509v3_addr_subset
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_value
    - sk_IPAddressFamily_find
    - addr_contains
    - length_from_afi
    - sk_IPAddressFamily_num
    - sk_IPAddressFamily_set_cmp_func
    - X509v3_addr_inherits
    - X509v3_addr_get_afi
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _err_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1168
    functionName: validation_err
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validation_err(_err_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1291,1
    - Dst: addr_validate_path_internal
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c:1296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1297
    functionName: X509v3_addr_validate_path
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
    functionUses: 1
    functionsReached:
    - addr_validate_path_internal
    - sk_X509_num
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_validate_path(X509_STORE_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3err.c:251,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3err.c:252,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3err.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 6
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: ERR_load_X509V3_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_X509V3_strings(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:32,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:35,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:37,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:38,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:39,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:41,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:42,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - err
    - lev
    - node
    - indent
    argTypes:
    - BIO*
    - X509_POLICY_LEVEL*
    - X509_POLICY_NODE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: expected_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_value
    - i2a_ASN1_OBJECT
    - sk_ASN1_OBJECT_num
    - STACK_OF
    - BIO_puts
    linkageType: ''
    returnType: void
    signature: "void expected_print(BIO *err, X509_POLICY_LEVEL *lev,\n                           X509_POLICY_NODE
      *node, int indent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:51,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:61,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:62,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:66,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:68,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:69,1
    - Dst: X509_POLICY_NODE_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:71,1
    - Dst: expected_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:73,1
    - Dst: X509_POLICY_NODE_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:76,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - str
    - tree
    - curr
    argTypes:
    - char*
    - X509_POLICY_TREE*
    - X509_POLICY_LEVEL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 79
    functionName: tree_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - X509_POLICY_NODE_print
    - BIO_new_fp
    - expected_print
    - sk_X509_POLICY_NODE_value
    - BIO_free
    - BIO_printf
    - sk_X509_POLICY_NODE_num
    linkageType: ''
    returnType: void
    signature: "void tree_print(char *str, X509_POLICY_TREE *tree,\n                       X509_POLICY_LEVEL
      *curr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:252,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:253,1
    - Dst: policy_node_match
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:255,1
    - Dst: level_add_node
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:256,1
    - Dst: level_add_node
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - curr
    - data
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 266
    functionName: tree_link_matching_nodes
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_num
    - policy_node_match
    - sk_X509_POLICY_NODE_value
    - level_add_node
    linkageType: ''
    returnType: int
    signature: "int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,\n                                    X509_POLICY_DATA
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_DATA_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:279,1
    - Dst: sk_X509_POLICY_DATA_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:280,1
    - Dst: tree_link_matching_nodes
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - curr
    - cache
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 287
    functionName: tree_link_nodes
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_DATA_num
    - tree_link_matching_nodes
    - sk_X509_POLICY_DATA_value
    linkageType: ''
    returnType: int
    signature: "int tree_link_nodes(X509_POLICY_LEVEL *curr,\n                           const
      X509_POLICY_CACHE *cache)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: policy_data_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:308,1
    - Dst: node_critical
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:308,1
    - Dst: level_add_node
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:314,1
    - Dst: policy_data_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - curr
    - cache
    - id
    - node
    - tree
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    - ASN1_OBJECT*
    - X509_POLICY_NODE*
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 319
    functionName: tree_add_unmatched
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - node_critical
    - policy_data_new
    - policy_data_free
    - level_add_node
    linkageType: ''
    returnType: int
    signature: "int tree_add_unmatched(X509_POLICY_LEVEL *curr,\n                              const
      X509_POLICY_CACHE *cache,\n                              const ASN1_OBJECT *id,\n
      \                             X509_POLICY_NODE *node, X509_POLICY_TREE *tree)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tree_add_unmatched
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:336,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:341,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:342,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:345,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:346,1
    - Dst: level_find_node
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:347,1
    - Dst: tree_add_unmatched
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:349,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - curr
    - cache
    - node
    - tree
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    - X509_POLICY_NODE*
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 355
    functionName: tree_link_unmatched
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_value
    - tree_add_unmatched
    - sk_ASN1_OBJECT_num
    - STACK_OF
    - level_find_node
    linkageType: ''
    returnType: int
    signature: "int tree_link_unmatched(X509_POLICY_LEVEL *curr,\n                               const
      X509_POLICY_CACHE *cache,\n                               X509_POLICY_NODE *node,
      X509_POLICY_TREE *tree)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:368,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:369,1
    - Dst: tree_link_unmatched
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:371,1
    - Dst: level_add_node
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - curr
    - cache
    - tree
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 379
    functionName: tree_link_any
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_num
    - tree_link_unmatched
    - sk_X509_POLICY_NODE_value
    - level_add_node
    linkageType: ''
    returnType: int
    signature: "int tree_link_any(X509_POLICY_LEVEL *curr,\n                         const
      X509_POLICY_CACHE *cache,\n                         X509_POLICY_TREE *tree)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:393,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:398,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:399,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:403,1
    - Dst: sk_X509_POLICY_NODE_delete
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:404,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:412,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:413,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:416,1
    - Dst: sk_X509_POLICY_NODE_delete
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:417,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:423,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - tree
    - curr
    argTypes:
    - X509_POLICY_TREE*
    - X509_POLICY_LEVEL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 434
    functionName: tree_prune
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_delete
    - OPENSSL_free
    - STACK_OF
    - sk_X509_POLICY_NODE_value
    - sk_X509_POLICY_NODE_num
    linkageType: ''
    returnType: int
    signature: int tree_prune(X509_POLICY_TREE *tree, X509_POLICY_LEVEL *curr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: policy_cache_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:584,1
    - Dst: tree_link_nodes
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:585,1
    - Dst: tree_link_any
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:589,1
    - Dst: tree_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:592,1
    - Dst: tree_prune
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:594,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - tree
    argTypes:
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 577
    functionDepth: 7
    functionLinenumber: 577
    functionLinenumberEnd: 599
    functionName: tree_evaluate
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - tree_link_nodes
    - tree_link_any
    - policy_cache_set
    - tree_print
    - tree_prune
    linkageType: ''
    returnType: int
    signature: int tree_evaluate(X509_POLICY_TREE *tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - X509_POLICY_NODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 605
    functionName: exnode_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void exnode_free(X509_POLICY_NODE *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:615,1
    - Dst: sk_X509_POLICY_NODE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:616,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:619,1
    - Dst: sk_X509_POLICY_NODE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:620,1
    - Dst: policy_node_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:621,1
    - Dst: sk_X509_POLICY_DATA_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:624,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:625,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - tree
    argTypes:
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 628
    functionName: X509_policy_tree_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 1
    functionsReached:
    - X509_free
    - sk_X509_POLICY_DATA_pop_free
    - OPENSSL_free
    - sk_X509_POLICY_NODE_free
    - sk_X509_POLICY_NODE_pop_free
    - policy_node_free
    linkageType: ''
    returnType: void
    signature: void X509_policy_tree_free(X509_POLICY_TREE *tree)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:646,1
    - Dst: tree_init
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:650,1
    - Dst: X509_policy_tree_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:657,1
    - Dst: tree_evaluate
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:667,1
    - Dst: tree_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:669,1
    - Dst: X509_policy_tree_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:675,1
    - Dst: tree_calculate_authority_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:683,1
    - Dst: tree_calculate_user_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:685,1
    - Dst: sk_X509_POLICY_NODE_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:687,1
    - Dst: X509_policy_tree_get0_user_policies
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:694,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:695,1
    - Dst: X509_policy_tree_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c:701,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 5
    argNames:
    - ptree
    - pexplicit_policy
    - certs
    - policy_oids
    - flags
    argTypes:
    - X509_POLICY_TREE**
    - int*
    - STACK_OF*
    - STACK_OF*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 638
    functionDepth: 8
    functionLinenumber: 638
    functionLinenumberEnd: 703
    functionName: X509_policy_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
    functionUses: 1
    functionsReached:
    - X509_policy_tree_free
    - tree_init
    - tree_evaluate
    - STACK_OF
    - tree_calculate_authority_set
    - sk_X509_POLICY_NODE_free
    - tree_print
    - X509_policy_tree_get0_user_policies
    - sk_X509_POLICY_NODE_num
    - tree_calculate_user_set
    linkageType: ''
    returnType: int
    signature: "int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,\n
      \                     STACK_OF(X509) *certs,\n                      STACK_OF(ASN1_OBJECT)
      *policy_oids, unsigned int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_INTEGER_new_null
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:98,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:99,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:103,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:104,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:110,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:111,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:113,1
    - Dst: strtol
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:116,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:119,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:120,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:125,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:126,1
    - Dst: sk_ASN1_INTEGER_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:127,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:128,1
    - Dst: sk_ASN1_INTEGER_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c:135,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 137
    functionName: v2i_TLS_FEATURE
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ASN1_INTEGER_new
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - sk_ASN1_INTEGER_pop_free
    - strtol
    - sk_ASN1_INTEGER_push
    - sk_ASN1_INTEGER_new_null
    - sk_CONF_VALUE_value
    - strcasecmp
    - X509V3err
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: TLS_FEATURE
    signature: "TLS_FEATURE *v2i_TLS_FEATURE(const X509V3_EXT_METHOD *method,\n                                    X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: POLICY_CONSTRAINTS_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:63,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:64,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:67,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:68,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:69,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:70,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:72,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:73,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:76,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:77,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:82,1
    - Dst: POLICY_CONSTRAINTS_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c:89,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 91
    functionName: v2i_POLICY_CONSTRAINTS
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c
    functionUses: 0
    functionsReached:
    - X509V3_get_value_int
    - POLICY_CONSTRAINTS_free
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - strcmp
    - POLICY_CONSTRAINTS_new
    - sk_CONF_VALUE_value
    - X509V3err
    linkageType: ''
    returnType: void
    signature: "void *v2i_POLICY_CONSTRAINTS(const X509V3_EXT_METHOD *method,\n                                    X509V3_CTX
      *ctx,\n                                    STACK_OF(CONF_VALUE) *values)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_PURPOSE**
    - X509_PURPOSE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: xp_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xp_cmp(const X509_PURPOSE *const *a, const X509_PURPOSE *const
      *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x509v3_cache_extensions
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:83,1
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:90,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:93,1
    - Dst: X509_PURPOSE*::check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - x
    - id
    - ca
    argTypes:
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 95
    functionName: X509_check_purpose
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 8
    functionsReached:
    - X509_PURPOSE_get_by_id
    - X509_PURPOSE_get0
    - X509_PURPOSE*::check_purpose
    - x509v3_cache_extensions
    linkageType: ''
    returnType: int
    signature: int X509_check_purpose(X509 *x, int id, int ca)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:99,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - purpose
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: X509_PURPOSE_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_PURPOSE_get_by_id
    - X509V3err
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_set(int *p, int purpose)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: X509_PURPOSE_get_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_X509_PURPOSE_num
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_count(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: X509_PURPOSE_get0
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 2
    functionsReached:
    - sk_X509_PURPOSE_value
    linkageType: ''
    returnType: X509_PURPOSE
    signature: X509_PURPOSE *X509_PURPOSE_get0(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_count
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:127,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:128,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: X509_PURPOSE_get_by_sname
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - strcmp
    - X509_PURPOSE_get_count
    - X509_PURPOSE_get0
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_by_sname(const char *sname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_find
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - purpose
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: X509_PURPOSE_get_by_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 3
    functionsReached:
    - sk_X509_PURPOSE_find
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_by_id(int purpose)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:164,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:167,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:168,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:173,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:177,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:178,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:181,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:182,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:184,1
    - Dst: sk_X509_PURPOSE_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:200,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:201,1
    - Dst: sk_X509_PURPOSE_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:204,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:205,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:214,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 6
    argNames:
    - id
    - trust
    - flags
    - name
    - sname
    - arg
    argTypes:
    - int
    - int
    - int
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 217
    functionName: X509_PURPOSE_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - sk_X509_PURPOSE_push
    - X509_PURPOSE_get_by_id
    - OPENSSL_free
    - sk_X509_PURPOSE_new
    - OPENSSL_strdup
    - X509_PURPOSE_get0
    - X509V3err
    linkageType: ''
    returnType: int
    signature: "int X509_PURPOSE_add(int id, int trust, int flags,\n                     int
      (*ck) (const X509_PURPOSE *, const X509 *, int),\n                     const
      char *name, const char *sname, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:225,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:226,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: xptable_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void xptable_free(X509_PURPOSE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: X509_PURPOSE_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_X509_PURPOSE_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_PURPOSE_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: X509_PURPOSE_get_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_id(const X509_PURPOSE *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: X509_PURPOSE_get0_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: X509_PURPOSE_get0_sname
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: X509_PURPOSE_get_trust
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_trust(const X509_PURPOSE *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: nid_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nid_cmp(const int *a, const int *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:295,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:295,1
    - Dst: OBJ_bsearch_nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:300,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 303
    functionName: X509_supported_extension
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_EXTENSION_get_object
    - OBJ_obj2nid
    - OBJ_bsearch_nid
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int X509_supported_extension(X509_EXTENSION *ex)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:320,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:321,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:328,1
    - Dst: DIST_POINT_set_dpname
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:330,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - x
    - dp
    argTypes:
    - X509*
    - DIST_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 331
    functionName: setup_dp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_get_issuer_name
    - sk_GENERAL_NAME_num
    - sk_GENERAL_NAME_value
    - DIST_POINT_set_dpname
    linkageType: ''
    returnType: int
    signature: int setup_dp(X509 *x, DIST_POINT *dp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:337,1
    - Dst: sk_DIST_POINT_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:340,1
    - Dst: setup_dp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:341,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 345
    functionName: setup_crldp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_DIST_POINT_value
    - X509_get_ext_d2i
    - setup_dp
    - sk_DIST_POINT_num
    linkageType: ''
    returnType: int
    signature: int setup_crldp(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - usage
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: ku_reject
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ku_reject(x, usage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - usage
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: xku_reject
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xku_reject(x, usage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - usage
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: ns_reject
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ns_reject(x, usage)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: tsan_ld_acq
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:367,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:371,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:373,1
    - Dst: X509_digest
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:377,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:377,1
    - Dst: X509_get_version
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:380,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:383,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:391,1
    - Dst: BASIC_CONSTRAINTS_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:399,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:405,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:407,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:408,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:412,1
    - Dst: PROXY_CERT_INFO_EXTENSION_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:415,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:421,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:429,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:434,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:436,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:437,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:437,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:476,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:481,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:487,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:491,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:494,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:498,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:498,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:498,1
    - Dst: X509_check_akid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:501,1
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:502,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:505,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:508,1
    - Dst: setup_crldp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:511,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:515,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:518,1
    - Dst: X509_get_ext_count
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:522,1
    - Dst: X509_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:523,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:524,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:524,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:527,1
    - Dst: X509_supported_extension
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:529,1
    - Dst: x509_init_sig_info
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:534,1
    - Dst: tsan_st_rel
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:537,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:544,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 151
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 355
    functionDepth: 6
    functionLinenumber: 355
    functionLinenumberEnd: 545
    functionName: x509v3_cache_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - tsan_st_rel
    - CRYPTO_THREAD_unlock
    - X509_get_issuer_name
    - X509_get_subject_name
    - BASIC_CONSTRAINTS_free
    - setup_crldp
    - X509_supported_extension
    - X509_get_ext
    - ASN1_BIT_STRING_free
    - X509_EXTENSION_get_object
    - X509_check_akid
    - X509_get_ext_by_NID
    - X509_get_ext_count
    - X509_digest
    - sk_ASN1_OBJECT_pop_free
    - PROXY_CERT_INFO_EXTENSION_free
    - sk_ASN1_OBJECT_value
    - X509_get_ext_d2i
    - EVP_sha1
    - ku_reject
    - X509_get_version
    - OBJ_obj2nid
    - X509_NAME_cmp
    - x509_init_sig_info
    - CRYPTO_THREAD_write_lock
    - tsan_ld_acq
    - sk_ASN1_OBJECT_num
    - X509_EXTENSION_get_critical
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: void
    signature: void x509v3_cache_extensions(X509 *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:562,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 585
    functionName: check_ca
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - ku_reject
    linkageType: ''
    returnType: int
    signature: int check_ca(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: X509_set_proxy_flag
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_set_proxy_flag(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - l
    argTypes:
    - X509*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: X509_set_proxy_pathlen
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_set_proxy_pathlen(X509 *x, long l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509v3_cache_extensions
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:599,1
    - Dst: check_ca
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 597
    functionDepth: 7
    functionLinenumber: 597
    functionLinenumberEnd: 602
    functionName: X509_check_ca
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - check_ca
    - x509v3_cache_extensions
    linkageType: ''
    returnType: int
    signature: int X509_check_ca(X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 616
    functionName: check_ssl_ca
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - check_ca
    linkageType: ''
    returnType: int
    signature: int check_ssl_ca(const X509 *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:621,1
    - Dst: check_ssl_ca
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:624,1
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:626,1
    - Dst: ns_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 632
    functionName: check_purpose_ssl_client
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - xku_reject
    - ns_reject
    - ku_reject
    - check_ssl_ca
    linkageType: ''
    returnType: int
    signature: "int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x,\n
      \                                   int ca)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:645,1
    - Dst: check_ssl_ca
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:648,1
    - Dst: ns_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:650,1
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 657
    functionName: check_purpose_ssl_server
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - xku_reject
    - ns_reject
    - ku_reject
    - check_ssl_ca
    linkageType: ''
    returnType: int
    signature: "int check_purpose_ssl_server(const X509_PURPOSE *xp, const X509 *x,\n
      \                                   int ca)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_purpose_ssl_server
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:663,1
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 670
    functionName: check_purpose_ns_ssl_server
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - check_purpose_ssl_server
    linkageType: ''
    returnType: int
    signature: "int check_purpose_ns_ssl_server(const X509_PURPOSE *xp, const X509
      *x,\n                                       int ca)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:675,1
    - Dst: check_ca
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:679,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - x
    - ca
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 697
    functionName: purpose_smime
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - xku_reject
    - check_ca
    linkageType: ''
    returnType: int
    signature: int purpose_smime(const X509 *x, int ca)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: purpose_smime
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:703,1
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 709
    functionName: check_purpose_smime_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - purpose_smime
    - ku_reject
    linkageType: ''
    returnType: int
    signature: "int check_purpose_smime_sign(const X509_PURPOSE *xp, const X509 *x,\n
      \                                   int ca)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: purpose_smime
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:715,1
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 721
    functionName: check_purpose_smime_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - purpose_smime
    - ku_reject
    linkageType: ''
    returnType: int
    signature: "int check_purpose_smime_encrypt(const X509_PURPOSE *xp, const X509
      *x,\n                                       int ca)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:728,1
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 736
    functionName: check_purpose_crl_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - check_ca
    linkageType: ''
    returnType: int
    signature: "int check_purpose_crl_sign(const X509_PURPOSE *xp, const X509 *x,\n
      \                                 int ca)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 753
    functionName: ocsp_helper
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - check_ca
    linkageType: ''
    returnType: int
    signature: int ocsp_helper(const X509_PURPOSE *xp, const X509 *x, int ca)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:762,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:780,1
    - Dst: X509_get_ext
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:782,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:783,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 788
    functionName: check_purpose_timestamp_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_get_ext
    - check_ca
    - X509_EXTENSION_get_critical
    - X509_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: "int check_purpose_timestamp_sign(const X509_PURPOSE *xp, const X509
      *x,\n                                        int ca)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 793
    functionName: no_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int no_check(const X509_PURPOSE *xp, const X509 *x, int ca)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:810,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:810,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:811,1
    - Dst: x509v3_cache_extensions
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:814,1
    - Dst: x509v3_cache_extensions
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:817,1
    - Dst: X509_check_akid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:822,1
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:828,1
    - Dst: ku_reject
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:830,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - issuer
    - subject
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 808
    functionDepth: 7
    functionLinenumber: 808
    functionLinenumberEnd: 833
    functionName: X509_check_issued
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_check_akid
    - ku_reject
    - x509v3_cache_extensions
    - X509_get_issuer_name
    - X509_get_subject_name
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int X509_check_issued(X509 *issuer, X509 *subject)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:843,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:847,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:847,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:861,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:862,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:868,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:868,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 2
    argNames:
    - issuer
    - akid
    argTypes:
    - X509*
    - AUTHORITY_KEYID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 872
    functionName: X509_check_akid
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 3
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - X509_get_serialNumber
    - ASN1_INTEGER_cmp
    - ASN1_OCTET_STRING_cmp
    - X509_get_issuer_name
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 879
    functionName: X509_get_extension_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t X509_get_extension_flags(X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 881
    functionDepth: 4
    functionLinenumber: 881
    functionLinenumberEnd: 889
    functionName: X509_get_key_usage
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t X509_get_key_usage(X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 891
    functionDepth: 4
    functionLinenumber: 891
    functionLinenumberEnd: 899
    functionName: X509_get_extended_key_usage
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t X509_get_extended_key_usage(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 901
    functionDepth: 4
    functionLinenumber: 901
    functionLinenumberEnd: 907
    functionName: X509_get0_subject_key_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 2
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 909
    functionDepth: 4
    functionLinenumber: 909
    functionLinenumberEnd: 915
    functionName: X509_get0_authority_key_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 917
    functionDepth: 4
    functionLinenumber: 917
    functionLinenumberEnd: 923
    functionName: X509_get0_authority_issuer
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: GENERAL_NAMES *X509_get0_authority_issuer(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 925
    functionDepth: 4
    functionLinenumber: 925
    functionLinenumberEnd: 931
    functionName: X509_get0_authority_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *X509_get0_authority_serial(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 933
    functionDepth: 4
    functionLinenumber: 933
    functionLinenumberEnd: 940
    functionName: X509_get_pathlen
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: long
    signature: long X509_get_pathlen(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 942
    functionDepth: 4
    functionLinenumber: 942
    functionLinenumberEnd: 949
    functionName: X509_get_proxy_pathlen
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: long
    signature: long X509_get_proxy_pathlen(X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:70,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:74,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:76,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:77,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:78,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - method
    - pci
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - PROXY_CERT_INFO_EXTENSION*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: i2r_pci
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - i2a_ASN1_INTEGER
    - i2a_ASN1_OBJECT
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_pci(X509V3_EXT_METHOD *method, PROXY_CERT_INFO_EXTENSION *pci,\n
      \                  BIO *out, int indent)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:91,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:93,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:95,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:98,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:99,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:101,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:104,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:106,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:108,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:111,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:112,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:114,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:117,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:121,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:123,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:124,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:129,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:131,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:134,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:138,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:142,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:152,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:155,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:156,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:159,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:160,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:163,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:165,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:166,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:169,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:170,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:174,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:178,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:181,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:183,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:184,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:189,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:193,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:196,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:197,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:200,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:201,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:202,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:206,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:215,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:218,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:219,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:223,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:225,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:229,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:230,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:237,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 131
    argCount: 4
    argNames:
    - val
    - language
    - pathlen
    - policy
    argTypes:
    - CONF_VALUE*
    - ASN1_OBJECT**
    - ASN1_INTEGER**
    - ASN1_OCTET_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 241
    functionName: process_pci_value
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c
    functionUses: 0
    functionsReached:
    - strlen
    - ASN1_OCTET_STRING_new
    - OPENSSL_realloc
    - X509V3_get_value_int
    - BIO_should_retry
    - X509V3_conf_err
    - strcmp
    - OPENSSL_free
    - memcpy
    - ASN1_OCTET_STRING_free
    - OBJ_txt2obj
    - OPENSSL_hexstr2buf
    - X509V3err
    - BIO_new_file
    - strncmp
    - BIO_free_all
    - BIO_read
    linkageType: ''
    returnType: int
    signature: "int process_pci_value(CONF_VALUE *val,\n                             ASN1_OBJECT
      **language, ASN1_INTEGER **pathlen,\n                             ASN1_OCTET_STRING
      **policy)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:247,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:253,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:254,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:255,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:257,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:259,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:263,1
    - Dst: X509V3_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:266,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:268,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:269,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:272,1
    - Dst: process_pci_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:274,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:274,1
    - Dst: X509V3_section_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:277,1
    - Dst: process_pci_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:281,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:282,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:290,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:294,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:296,1
    - Dst: PROXY_CERT_INFO_EXTENSION_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:301,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:303,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:315,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:316,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:318,1
    - Dst: PROXY_CERT_INFO_EXTENSION_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:320,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c:323,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 3
    argNames:
    - method
    - ctx
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 243
    functionDepth: 9
    functionLinenumber: 243
    functionLinenumberEnd: 325
    functionName: r2i_pci
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c
    functionUses: 0
    functionsReached:
    - PROXY_CERT_INFO_EXTENSION_free
    - process_pci_value
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - X509V3_section_free
    - X509V3_parse_list
    - X509V3_get_section
    - STACK_OF
    - ASN1_OBJECT_free
    - ASN1_INTEGER_free
    - ASN1_OCTET_STRING_free
    - PROXY_CERT_INFO_EXTENSION_new
    - sk_CONF_VALUE_value
    - sk_CONF_VALUE_pop_free
    - OBJ_obj2nid
    - X509V3err
    linkageType: ''
    returnType: PROXY_CERT_INFO_EXTENSION
    signature: "PROXY_CERT_INFO_EXTENSION *r2i_pci(X509V3_EXT_METHOD *method,\n                                          X509V3_CTX
      *ctx, char *value)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sk_POLICY_MAPPING_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:29,1
    - Dst: sk_POLICY_MAPPING_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:33,1
    - Dst: sk_POLICY_MAPPING_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:34,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:36,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:37,1
    - Dst: policy_cache_find_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:43,1
    - Dst: policy_data_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:50,1
    - Dst: sk_X509_POLICY_DATA_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:61,1
    - Dst: policy_data_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:62,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:67,1
    - Dst: sk_POLICY_MAPPING_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c:78,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - x
    - maps
    argTypes:
    - X509*
    - POLICY_MAPPINGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 81
    functionName: policy_cache_set_mapping
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c
    functionUses: 1
    functionsReached:
    - policy_cache_find_data
    - policy_data_free
    - sk_ASN1_OBJECT_push
    - sk_POLICY_MAPPING_value
    - sk_POLICY_MAPPING_pop_free
    - sk_X509_POLICY_DATA_push
    - policy_data_new
    - OBJ_obj2nid
    - sk_POLICY_MAPPING_num
    linkageType: ''
    returnType: int
    signature: int policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:69,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:72,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:75,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:77,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:80,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:83,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:86,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:88,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:89,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:90,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:92,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:93,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - out
    - choice
    - indent
    - msg
    argTypes:
    - BIO*
    - ASIdentifierChoice*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 61
    functionDepth: 7
    functionLinenumber: 61
    functionLinenumberEnd: 104
    functionName: i2r_ASIdentifierChoice
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - i2s_ASN1_INTEGER
    - sk_ASIdOrRange_num
    - BIO_printf
    - sk_ASIdOrRange_value
    linkageType: ''
    returnType: int
    signature: "int i2r_ASIdentifierChoice(BIO *out,\n                                  ASIdentifierChoice
      *choice,\n                                  int indent, const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2r_ASIdentifierChoice
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:113,1
    - Dst: i2r_ASIdentifierChoice
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - method
    - ext
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 8
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: i2r_ASIdentifiers
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - i2r_ASIdentifierChoice
    linkageType: ''
    returnType: int
    signature: "int i2r_ASIdentifiers(const X509V3_EXT_METHOD *method,\n                             void
      *ext, BIO *out, int indent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:127,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:131,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:136,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:139,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:140,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:145,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:147,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 11
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - ASIdOrRange**
    - ASIdOrRange**
    assertStmts:
    - condition: "((a->type == ASIdOrRange_id && a->u.id != NULL) ||\n           (a->type
        == ASIdOrRange_range && a->u.range != NULL &&\n            a->u.range->min
        != NULL && a->u.range->max != NULL))"
      pos:
        line_end: 128
        line_start: 126
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    - condition: "((b->type == ASIdOrRange_id && b->u.id != NULL) ||\n           (b->type
        == ASIdOrRange_range && b->u.range != NULL &&\n            b->u.range->min
        != NULL && b->u.range->max != NULL))"
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    constantsTouched: []
    func_position:
      end: 148
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 148
    functionName: ASIdOrRange_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_cmp
    - assert
    linkageType: ''
    returnType: int
    signature: "int ASIdOrRange_cmp(const ASIdOrRange *const *a_,\n                           const
      ASIdOrRange *const *b_)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:169,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - asid
    - which
    argTypes:
    - ASIdentifiers*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: X509v3_asid_add_inherit
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASIdentifierChoice_new
    - ASN1_NULL_new
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_add_inherit(ASIdentifiers *asid, int which)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:201,1
    - Dst: sk_ASIdOrRange_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:203,1
    - Dst: ASIdOrRange_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:208,1
    - Dst: ASRange_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:215,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:217,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:219,1
    - Dst: sk_ASIdOrRange_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:222,1
    - Dst: ASIdOrRange_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:227,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - asid
    - which
    - min
    - max
    argTypes:
    - ASIdentifiers*
    - int
    - ASN1_INTEGER*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 229
    functionName: X509v3_asid_add_id_or_range
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - sk_ASIdOrRange_push
    - ASIdOrRange_new
    - ASIdOrRange_free
    - ASIdentifierChoice_new
    - ASN1_INTEGER_free
    - ASRange_new
    - sk_ASIdOrRange_new
    linkageType: ''
    returnType: int
    signature: "int X509v3_asid_add_id_or_range(ASIdentifiers *asid,\n                                int
      which, ASN1_INTEGER *min, ASN1_INTEGER *max)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - aor
    - min
    - max
    argTypes:
    - ASIdOrRange*
    - ASN1_INTEGER**
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: extract_min_max
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 4
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int extract_min_max(ASIdOrRange *aor,\n                           ASN1_INTEGER
      **min, ASN1_INTEGER **max)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:273,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:279,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:280,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:281,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:285,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:286,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:292,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:293,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:294,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:300,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:301,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:302,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:303,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:309,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:311,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:319,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:326,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:328,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:331,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:332,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:340,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:341,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 40
    argCount: 1
    argNames:
    - choice
    argTypes:
    - ASIdentifierChoice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 256
    functionDepth: 6
    functionLinenumber: 256
    functionLinenumberEnd: 343
    functionName: ASIdentifierChoice_is_canonical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - BN_add_word
    - BN_new
    - extract_min_max
    - X509V3err
    - BN_to_ASN1_INTEGER
    - ASN1_INTEGER_cmp
    - ASN1_INTEGER_free
    - sk_ASIdOrRange_num
    - BN_free
    - sk_ASIdOrRange_value
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: int
    signature: int ASIdentifierChoice_is_canonical(ASIdentifierChoice *choice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_is_canonical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:351,1
    - Dst: ASIdentifierChoice_is_canonical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - ASIdentifiers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 7
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: X509v3_asid_is_canonical
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASIdentifierChoice_is_canonical
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_is_canonical(ASIdentifiers *asid)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:375,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:376,1
    - Dst: sk_ASIdOrRange_sort
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:384,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:390,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:391,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:392,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:396,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:397,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:403,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:403,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:409,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:410,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:416,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:417,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:425,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:426,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:427,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:428,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:434,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:436,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:444,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:448,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:449,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:459,1
    - Dst: ASIdOrRange_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:471,1
    - Dst: sk_ASIdOrRange_delete
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:472,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:481,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:483,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:486,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:487,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:493,1
    - Dst: ASIdentifierChoice_is_canonical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:493,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:499,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:500,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 82
    argCount: 1
    argNames:
    - choice
    argTypes:
    - ASIdentifierChoice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 358
    functionDepth: 7
    functionLinenumber: 358
    functionLinenumberEnd: 502
    functionName: ASIdentifierChoice_canonize
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - sk_ASIdOrRange_sort
    - OPENSSL_malloc
    - ASIdOrRange_free
    - BN_add_word
    - X509V3err
    - extract_min_max
    - BN_new
    - BN_to_ASN1_INTEGER
    - ASN1_INTEGER_cmp
    - ASN1_INTEGER_free
    - ASIdentifierChoice_is_canonical
    - sk_ASIdOrRange_num
    - sk_ASIdOrRange_delete
    - BN_free
    - sk_ASIdOrRange_value
    - ossl_assert
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: int
    signature: int ASIdentifierChoice_canonize(ASIdentifierChoice *choice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_canonize
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:510,1
    - Dst: ASIdentifierChoice_canonize
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - ASIdentifiers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 507
    functionDepth: 8
    functionLinenumber: 507
    functionLinenumberEnd: 512
    functionName: X509v3_asid_canonize
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASIdentifierChoice_canonize
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_canonize(ASIdentifiers *asid)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifiers_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:525,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:526,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:530,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:531,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:537,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:539,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:542,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:544,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:551,1
    - Dst: X509v3_asid_add_inherit
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:552,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:554,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:556,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:563,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:568,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:570,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:572,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:576,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:577,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:579,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:581,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:590,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:591,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:595,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:597,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:601,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:602,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:603,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:605,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:608,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:609,1
    - Dst: X509v3_asid_add_id_or_range
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:614,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:615,1
    - Dst: X509v3_asid_canonize
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:624,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:629,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:630,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:631,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - struct v3_ext_method*
    - struct v3_ext_ctx*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 517
    functionDepth: 9
    functionLinenumber: 517
    functionLinenumberEnd: 633
    functionName: v2i_ASIdentifiers
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - strspn
    - X509V3_get_value_int
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - strcmp
    - X509v3_asid_add_id_or_range
    - OPENSSL_free
    - ASN1_INTEGER_free
    - ASN1_INTEGER_cmp
    - s2i_ASN1_INTEGER
    - X509v3_asid_add_inherit
    - OPENSSL_strdup
    - ASIdentifiers_free
    - name_cmp
    - sk_CONF_VALUE_value
    - ASIdentifiers_new
    - X509V3err
    - X509v3_asid_canonize
    linkageType: ''
    returnType: void
    signature: "void *v2i_ASIdentifiers(const struct v3_ext_method *method,\n                               struct
      v3_ext_ctx *ctx,\n                               STACK_OF(CONF_VALUE) *values)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - ASIdentifiers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 662
    functionName: X509v3_asid_inherits
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_inherits(ASIdentifiers *asid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:678,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:679,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:679,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:682,1
    - Dst: extract_min_max
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:684,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:684,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:687,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:689,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - ASIdOrRanges*
    - ASIdOrRanges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 696
    functionName: asid_contains
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - sk_ASIdOrRange_value
    - ASN1_INTEGER_cmp
    - sk_ASIdOrRange_num
    - extract_min_max
    linkageType: ''
    returnType: int
    signature: int asid_contains(ASIdOrRanges *parent, ASIdOrRanges *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_asid_inherits
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:706,1
    - Dst: X509v3_asid_inherits
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:707,1
    - Dst: asid_contains
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:708,1
    - Dst: asid_contains
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:710,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASIdentifiers*
    - ASIdentifiers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 712
    functionName: X509v3_asid_subset
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - asid_contains
    - X509v3_asid_inherits
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _err_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 730
    functionName: validation_err
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validation_err(_err_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:870,1
    - Dst: asid_validate_path_internal
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c:875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 876
    functionName: X509v3_asid_validate_path
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
    functionUses: 1
    functionsReached:
    - sk_X509_num
    - asid_validate_path_internal
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_validate_path(X509_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509V3_EXT_METHOD_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:28,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:29,1
    - Dst: sk_X509V3_EXT_METHOD_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:32,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509V3_EXT_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: X509V3_EXT_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509V3_EXT_METHOD_push
    - X509V3err
    - sk_X509V3_EXT_METHOD_new
    linkageType: ''
    returnType: int
    signature: int X509V3_EXT_add(X509V3_EXT_METHOD *ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509V3_EXT_METHOD**
    - X509V3_EXT_METHOD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: ext_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ext_cmp(const X509V3_EXT_METHOD *const *a,\n                   const
      X509V3_EXT_METHOD *const *b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_bsearch_ext
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:61,1
    - Dst: sk_X509V3_EXT_METHOD_find
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:66,1
    - Dst: sk_X509V3_EXT_METHOD_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: X509V3_EXT_get_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 2
    functionsReached:
    - sk_X509V3_EXT_METHOD_find
    - sk_X509V3_EXT_METHOD_value
    - OBJ_bsearch_ext
    linkageType: ''
    returnType: X509V3_EXT_METHOD
    signature: X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:73,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:73,1
    - Dst: X509V3_EXT_get_nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: X509V3_EXT_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 1
    functionsReached:
    - X509_EXTENSION_get_object
    - OBJ_obj2nid
    - X509V3_EXT_get_nid
    linkageType: ''
    returnType: X509V3_EXT_METHOD
    signature: X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_add
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - extlist
    argTypes:
    - X509V3_EXT_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: X509V3_EXT_add_list
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_add
    linkageType: ''
    returnType: int
    signature: int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_get_nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:91,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:92,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:95,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:96,1
    - Dst: X509V3_EXT_add
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - nid_to
    - nid_from
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: X509V3_EXT_add_alias
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - X509V3err
    - X509V3_EXT_add
    - OPENSSL_malloc
    - X509V3_EXT_get_nid
    linkageType: ''
    returnType: int
    signature: int X509V3_EXT_add_alias(int nid_to, int nid_from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509V3_EXT_METHOD_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: X509V3_EXT_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509V3_EXT_METHOD_pop_free
    linkageType: ''
    returnType: void
    signature: void X509V3_EXT_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509V3_EXT_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: ext_list_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ext_list_free(X509V3_EXT_METHOD *ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: X509V3_add_standard_extensions
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509V3_add_standard_extensions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_get
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:136,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:138,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:139,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:140,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:142,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:142,1
    - Dst: X509V3_EXT_METHOD*::d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 144
    functionName: X509V3_EXT_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 2
    functionsReached:
    - ASN1_item_d2i
    - ASN1_ITEM_ptr
    - ASN1_STRING_length
    - X509V3_EXT_get
    - X509_EXTENSION_get_data
    - X509V3_EXT_METHOD*::d2i
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: void
    signature: void *X509V3_EXT_d2i(X509_EXTENSION *ext)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:181,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:182,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:183,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:183,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:200,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c:201,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - STACK_OF*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 210
    functionName: X509V3_get_d2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
    functionUses: 9
    functionsReached:
    - X509V3_EXT_d2i
    - X509_EXTENSION_get_object
    - X509_EXTENSION_get_critical
    - OBJ_obj2nid
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: void
    signature: "void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int
      *crit,\n                     int *idx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:85,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:90,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:90,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:92,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:95,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:97,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:102,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:103,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:104,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:108,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:110,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 31
    argCount: 4
    argNames:
    - method
    - in
    - bp
    - ind
    argTypes:
    - struct v3_ext_method*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 117
    functionName: i2r_NAMING_AUTHORITY
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - OBJ_obj2txt
    - BIO_printf
    - OBJ_obj2nid
    - ASN1_STRING_print
    linkageType: ''
    returnType: int
    signature: "int i2r_NAMING_AUTHORITY(const struct v3_ext_method *method, void
      *in,\n                                BIO *bp, int ind)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:126,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:127,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:128,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:129,1
    - Dst: sk_ADMISSIONS_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:133,1
    - Dst: sk_ADMISSIONS_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:134,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:136,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:139,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:140,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:141,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:142,1
    - Dst: i2r_NAMING_AUTHORITY
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:147,1
    - Dst: sk_PROFESSION_INFO_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:151,1
    - Dst: sk_PROFESSION_INFO_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:152,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:154,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:158,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:159,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:160,1
    - Dst: i2r_NAMING_AUTHORITY
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:165,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:171,1
    - Dst: sk_ASN1_STRING_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:173,1
    - Dst: sk_ASN1_STRING_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:174,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:176,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:177,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:178,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:184,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:186,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:187,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:188,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:188,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:191,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:192,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 61
    argCount: 4
    argNames:
    - method
    - in
    - bp
    - ind
    argTypes:
    - struct v3_ext_method*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 119
    functionDepth: 8
    functionLinenumber: 119
    functionLinenumberEnd: 204
    functionName: i2r_ADMISSION_SYNTAX
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - sk_ASN1_OBJECT_value
    - sk_PROFESSION_INFO_value
    - sk_ASN1_STRING_num
    - ASN1_STRING_print
    - sk_ASN1_OBJECT_num
    - sk_ADMISSIONS_value
    - sk_ADMISSIONS_num
    - i2r_NAMING_AUTHORITY
    - sk_ASN1_STRING_value
    - OBJ_obj2txt
    - sk_PROFESSION_INFO_num
    - BIO_printf
    - OBJ_obj2nid
    - GENERAL_NAME_print
    linkageType: ''
    returnType: int
    signature: "int i2r_ADMISSION_SYNTAX(const struct v3_ext_method *method, void
      *in,\n                                BIO *bp, int ind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: NAMING_AUTHORITY_get0_authorityId
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId(const NAMING_AUTHORITY
      *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - id
    argTypes:
    - NAMING_AUTHORITY*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: NAMING_AUTHORITY_set0_authorityId
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, ASN1_OBJECT*
      id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: NAMING_AUTHORITY_get0_authorityURL
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_IA5STRING
    signature: "ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL(\n    const NAMING_AUTHORITY
      *n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - u
    argTypes:
    - NAMING_AUTHORITY*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: NAMING_AUTHORITY_set0_authorityURL
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_IA5STRING_free
    linkageType: ''
    returnType: void
    signature: void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, ASN1_IA5STRING*
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: NAMING_AUTHORITY_get0_authorityText
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_STRING
    signature: "ASN1_STRING *NAMING_AUTHORITY_get0_authorityText(\n    const NAMING_AUTHORITY
      *n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - t
    argTypes:
    - NAMING_AUTHORITY*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: NAMING_AUTHORITY_set0_authorityText
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_IA5STRING_free
    linkageType: ''
    returnType: void
    signature: void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, ASN1_STRING*
      t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - as
    argTypes:
    - ADMISSION_SYNTAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: ADMISSION_SYNTAX_get0_admissionAuthority
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GENERAL_NAME
    signature: GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority(const ADMISSION_SYNTAX
      *as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - as
    - aa
    argTypes:
    - ADMISSION_SYNTAX*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: ADMISSION_SYNTAX_set0_admissionAuthority
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_free
    linkageType: ''
    returnType: void
    signature: "void ADMISSION_SYNTAX_set0_admissionAuthority(ADMISSION_SYNTAX *as,\n
      \                                             GENERAL_NAME *aa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - as
    argTypes:
    - ADMISSION_SYNTAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: ADMISSION_SYNTAX_get0_contentsOfAdmissions
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *ADMISSION_SYNTAX_get0_contentsOfAdmissions(const ADMISSION_SYNTAX
      *as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADMISSIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: ADMISSIONS_get0_admissionAuthority
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GENERAL_NAME
    signature: GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - aa
    argTypes:
    - ADMISSIONS*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: ADMISSIONS_set0_admissionAuthority
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_free
    linkageType: ''
    returnType: void
    signature: void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME
      *aa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADMISSIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: ADMISSIONS_get0_namingAuthority
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NAMING_AUTHORITY
    signature: NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS
      *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NAMING_AUTHORITY_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - na
    argTypes:
    - ADMISSIONS*
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: ADMISSIONS_set0_namingAuthority
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - NAMING_AUTHORITY_free
    linkageType: ''
    returnType: void
    signature: void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY
      *na)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADMISSIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: ADMISSIONS_get0_professionInfos
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PROFESSION_INFOS
    signature: PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS
      *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_PROFESSION_INFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - pi
    argTypes:
    - ADMISSIONS*
    - PROFESSION_INFOS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: ADMISSIONS_set0_professionInfos
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - sk_PROFESSION_INFO_pop_free
    linkageType: ''
    returnType: void
    signature: void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: PROFESSION_INFO_get0_addProfessionInfo
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo(const PROFESSION_INFO
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pi
    - aos
    argTypes:
    - PROFESSION_INFO*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: PROFESSION_INFO_set0_addProfessionInfo
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: "void PROFESSION_INFO_set0_addProfessionInfo(PROFESSION_INFO *pi,\n
      \                                           ASN1_OCTET_STRING *aos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: PROFESSION_INFO_get0_namingAuthority
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NAMING_AUTHORITY
    signature: NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority(const PROFESSION_INFO
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NAMING_AUTHORITY_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pi
    - na
    argTypes:
    - PROFESSION_INFO*
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: PROFESSION_INFO_set0_namingAuthority
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - NAMING_AUTHORITY_free
    linkageType: ''
    returnType: void
    signature: "void PROFESSION_INFO_set0_namingAuthority(PROFESSION_INFO *pi,\n                                          NAMING_AUTHORITY
      *na)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: PROFESSION_INFO_get0_professionItems
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *PROFESSION_INFO_get0_professionItems(const PROFESSION_INFO
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: PROFESSION_INFO_get0_professionOIDs
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *PROFESSION_INFO_get0_professionOIDs(const PROFESSION_INFO
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: PROFESSION_INFO_get0_registrationNumber
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_PRINTABLESTRING
    signature: ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber(const
      PROFESSION_INFO *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRINTABLESTRING_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pi
    - rn
    argTypes:
    - PROFESSION_INFO*
    - ASN1_PRINTABLESTRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: PROFESSION_INFO_set0_registrationNumber
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_PRINTABLESTRING_free
    linkageType: ''
    returnType: void
    signature: "void PROFESSION_INFO_set0_registrationNumber(PROFESSION_INFO *pi,\n
      \                                            ASN1_PRINTABLESTRING *rn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:72,1
    - Dst: sk_POLICY_MAPPING_new_reserve
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:75,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:76,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:81,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:83,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:85,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:88,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:89,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:91,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:93,1
    - Dst: POLICY_MAPPING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:96,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:98,1
    - Dst: sk_POLICY_MAPPING_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:104,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:108,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:109,1
    - Dst: sk_POLICY_MAPPING_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 112
    functionName: v2i_POLICY_MAPPINGS
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c
    functionUses: 0
    functionsReached:
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - ASN1_OBJECT_free
    - sk_POLICY_MAPPING_pop_free
    - POLICY_MAPPING_new
    - OBJ_txt2obj
    - sk_POLICY_MAPPING_new_reserve
    - sk_CONF_VALUE_value
    - sk_POLICY_MAPPING_push
    - X509V3err
    linkageType: ''
    returnType: void
    signature: "void *v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method,\n                                 X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:91,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:95,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:95,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:97,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:101,1
    - Dst: sk_POLICYINFO_new_reserve
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:105,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:107,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:113,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:116,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:118,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:122,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:126,1
    - Dst: X509V3_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:127,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:129,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:131,1
    - Dst: policy_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:134,1
    - Dst: X509V3_section_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:135,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:139,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:140,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:142,1
    - Dst: POLICYINFO_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:145,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:147,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:148,1
    - Dst: sk_POLICYINFO_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:153,1
    - Dst: POLICYINFO_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:154,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:155,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:159,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:162,1
    - Dst: sk_POLICYINFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:163,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 3
    argNames:
    - method
    - ctx
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 165
    functionName: r2i_certpol
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c
    functionUses: 0
    functionsReached:
    - sk_POLICYINFO_new_reserve
    - sk_POLICYINFO_pop_free
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - strcmp
    - X509V3_section_free
    - X509V3_parse_list
    - X509V3_get_section
    - STACK_OF
    - ASN1_OBJECT_free
    - sk_POLICYINFO_push
    - POLICYINFO_new
    - OBJ_txt2obj
    - sk_CONF_VALUE_pop_free
    - sk_CONF_VALUE_value
    - POLICYINFO_free
    - X509V3err
    - policy_section
    linkageType: ''
    returnType: STACK_OF
    signature: "STACK_OF *r2i_certpol(X509V3_EXT_METHOD *method,\n                                         X509V3_CTX
      *ctx, const char *value)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: POLICYINFO_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:175,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:177,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:178,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:179,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:181,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:182,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:184,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:189,1
    - Dst: sk_POLICYQUALINFO_new_null
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:191,1
    - Dst: POLICYQUALINFO_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:192,1
    - Dst: sk_POLICYQUALINFO_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:194,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:196,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:197,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:200,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:202,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:203,1
    - Dst: name_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:205,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:206,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:208,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:210,1
    - Dst: X509V3_get_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:213,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:215,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:217,1
    - Dst: notice_section
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:220,1
    - Dst: X509V3_section_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:221,1
    - Dst: sk_POLICYQUALINFO_new_null
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:225,1
    - Dst: sk_POLICYQUALINFO_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:226,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:229,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:231,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:236,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:243,1
    - Dst: POLICYINFO_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:246,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 3
    argNames:
    - ctx
    - polstrs
    - ia5org
    argTypes:
    - X509V3_CTX*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 248
    functionName: policy_section
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c
    functionUses: 1
    functionsReached:
    - sk_CONF_VALUE_num
    - sk_POLICYQUALINFO_new_null
    - STACK_OF
    - X509V3err
    - ASN1_IA5STRING_new
    - POLICYQUALINFO_new
    - X509V3_conf_err
    - strcmp
    - POLICYINFO_new
    - name_cmp
    - OBJ_nid2obj
    - ASN1_STRING_set
    - sk_CONF_VALUE_value
    - notice_section
    - X509V3_section_free
    - sk_POLICYQUALINFO_push
    - X509V3_get_section
    - OBJ_txt2obj
    - POLICYINFO_free
    - strlen
    linkageType: ''
    returnType: POLICYINFO
    signature: "POLICYINFO *policy_section(X509V3_CTX *ctx,\n                                  STACK_OF(CONF_VALUE)
      *polstrs, int ia5org)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tagstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: displaytext_get_tag_len
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int displaytext_get_tag_len(const char *tagstr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: displaytext_get_tag_len
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:262,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:267,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:269,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:271,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:273,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:275,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:277,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 2
    argNames:
    - tagstr
    - tag_len
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 281
    functionName: displaytext_str2tag
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c
    functionUses: 0
    functionsReached:
    - displaytext_get_tag_len
    - strncmp
    linkageType: ''
    returnType: int
    signature: int displaytext_str2tag(const char *tagstr, unsigned int *tag_len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: POLICYQUALINFO_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:293,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:295,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:296,1
    - Dst: USERNOTICE_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:299,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:302,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:303,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:305,1
    - Dst: displaytext_str2tag
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:306,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:307,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:311,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:312,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:314,1
    - Dst: NOTICEREF_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:317,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:326,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:327,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:329,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:331,1
    - Dst: NOTICEREF_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:333,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:338,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:339,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:340,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:341,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:342,1
    - Dst: nref_nos
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:345,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:346,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:350,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:351,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:358,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:366,1
    - Dst: POLICYQUALINFO_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:369,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 85
    argCount: 3
    argNames:
    - ctx
    - unot
    - ia5org
    argTypes:
    - X509V3_CTX*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 371
    functionName: notice_section
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2obj
    - strlen
    - ASN1_STRING_set
    - X509V3_conf_err
    - sk_CONF_VALUE_num
    - strcmp
    - NOTICEREF_new
    - X509V3_parse_list
    - STACK_OF
    - POLICYQUALINFO_free
    - nref_nos
    - USERNOTICE_new
    - sk_CONF_VALUE_value
    - sk_CONF_VALUE_pop_free
    - displaytext_str2tag
    - X509V3err
    - ASN1_STRING_type_new
    - POLICYQUALINFO_new
    linkageType: ''
    returnType: POLICYQUALINFO
    signature: "POLICYQUALINFO *notice_section(X509V3_CTX *ctx,\n                                      STACK_OF(CONF_VALUE)
      *unot, int ia5org)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:450,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:452,1
    - Dst: sk_ASN1_INTEGER_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:453,1
    - Dst: sk_ASN1_INTEGER_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:454,1
    - Dst: sk_ASN1_INTEGER_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:457,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:459,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:461,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:463,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:466,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:467,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:470,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - out
    - notice
    - indent
    argTypes:
    - BIO*
    - USERNOTICE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 444
    functionDepth: 7
    functionLinenumber: 444
    functionLinenumberEnd: 475
    functionName: print_notice
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_INTEGER_value
    - sk_ASN1_INTEGER_num
    - OPENSSL_free
    - i2s_ASN1_INTEGER
    - BIO_puts
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void print_notice(BIO *out, USERNOTICE *notice, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:481,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:483,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:484,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:485,1
    - Dst: node_data_critical
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:486,1
    - Dst: print_qualifiers
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:488,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out
    - node
    - indent
    argTypes:
    - BIO*
    - X509_POLICY_NODE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 477
    functionDepth: 5
    functionLinenumber: 477
    functionLinenumberEnd: 491
    functionName: X509_POLICY_NODE_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c
    functionUses: 1
    functionsReached:
    - i2a_ASN1_OBJECT
    - BIO_puts
    - print_qualifiers
    - BIO_printf
    - node_data_critical
    linkageType: ''
    returnType: void
    signature: void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:65,1
    - Dst: sk_SXNETID_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:66,1
    - Dst: sk_SXNETID_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:67,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:68,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:70,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - method
    - sx
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - SXNET*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: sxnet_i2r
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - sk_SXNETID_value
    - OPENSSL_free
    - sk_SXNETID_num
    - i2s_ASN1_INTEGER
    - BIO_printf
    - ASN1_INTEGER_get
    - ASN1_STRING_print
    linkageType: ''
    returnType: int
    signature: "int sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out,\n                     int
      indent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:90,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:91,1
    - Dst: SXNET_add_id_asc
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: sxnet_v2i
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - sk_CONF_VALUE_value
    - SXNET_add_id_asc
    linkageType: ''
    returnType: SXNET
    signature: "SXNET *sxnet_v2i(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,\n                        STACK_OF(CONF_VALUE)
      *nval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:108,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:109,1
    - Dst: SXNET_add_id_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - psx
    - zone
    - user
    - userlen
    argTypes:
    - SXNET**
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 7
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: SXNET_add_id_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c
    functionUses: 1
    functionsReached:
    - s2i_ASN1_INTEGER
    - X509V3err
    - SXNET_add_id_INTEGER
    linkageType: ''
    returnType: int
    signature: int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user,
      int userlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:122,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:123,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:124,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:125,1
    - Dst: SXNET_add_id_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - psx
    - lzone
    - user
    - userlen
    argTypes:
    - SXNET**
    - unsigned long
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: SXNET_add_id_ulong
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_INTEGER_free
    - SXNET_add_id_INTEGER
    - X509V3err
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: "int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char
      *user,\n                       int userlen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:143,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:148,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:150,1
    - Dst: SXNET_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:154,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:156,1
    - Dst: SXNET_get_id_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:161,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:162,1
    - Dst: SXNETID_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:166,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:169,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:171,1
    - Dst: sk_SXNETID_push
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:173,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:179,1
    - Dst: SXNETID_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:180,1
    - Dst: SXNET_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:181,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 4
    argNames:
    - psx
    - zone
    - user
    - userlen
    argTypes:
    - SXNET**
    - ASN1_INTEGER*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: SXNET_add_id_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c
    functionUses: 2
    functionsReached:
    - SXNETID_new
    - ASN1_OCTET_STRING_set
    - SXNETID_free
    - SXNET_free
    - SXNET_new
    - SXNET_get_id_INTEGER
    - sk_SXNETID_push
    - X509V3err
    - ASN1_INTEGER_set
    - strlen
    linkageType: ''
    returnType: int
    signature: "int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *zone, const char
      *user,\n                         int userlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:191,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:192,1
    - Dst: SXNET_get_id_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:195,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sx
    - zone
    argTypes:
    - SXNET*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: SXNET_get_id_asc
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - s2i_ASN1_INTEGER
    - X509V3err
    - ASN1_INTEGER_free
    - SXNET_get_id_INTEGER
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:205,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:206,1
    - Dst: X509V3err
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:207,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:208,1
    - Dst: SXNET_get_id_INTEGER
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:211,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sx
    - lzone
    argTypes:
    - SXNET*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 214
    functionName: SXNET_get_id_ulong
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_INTEGER_free
    - SXNET_get_id_INTEGER
    - X509V3err
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_SXNETID_num
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:220,1
    - Dst: sk_SXNETID_value
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:221,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sx
    - zone
    argTypes:
    - SXNET*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: SXNET_get_id_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c
    functionUses: 3
    functionsReached:
    - ASN1_INTEGER_cmp
    - sk_SXNETID_value
    - sk_SXNETID_num
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sk
    - c
    argTypes:
    - OPENSSL_STACK*
    - OPENSSL_sk_compfunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: OPENSSL_sk_set_cmp_func
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPENSSL_sk_compfunc
    signature: OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, OPENSSL_sk_compfunc
      c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:49,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:50,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:64,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:66,1
    - Dst: OPENSSL_sk_free
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - sk
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 71
    functionName: OPENSSL_sk_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OPENSSL_malloc
    - OPENSSL_sk_free
    - memcpy
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *sk)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:80,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:81,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:96,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:98,1
    - Dst: copy_func
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:105,1
    - Dst: free_func
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:108,1
    - Dst: OPENSSL_sk_free
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:109,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - sk
    - copy_func
    - free_func
    argTypes:
    - OPENSSL_STACK*
    - OPENSSL_sk_copyfunc
    - OPENSSL_sk_freefunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 114
    functionName: OPENSSL_sk_deep_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - copy_func
    - OPENSSL_malloc
    - OPENSSL_free
    - OPENSSL_sk_free
    - OPENSSL_zalloc
    - free_func
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: "OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *sk,\n                             OPENSSL_sk_copyfunc
      copy_func,\n                             OPENSSL_sk_freefunc free_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_new_reserve
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: OPENSSL_sk_new_null
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_new_reserve
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: OPENSSL_STACK *OPENSSL_sk_new_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_new_reserve
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - OPENSSL_sk_compfunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: OPENSSL_sk_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_new_reserve
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - target
    - current
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: compute_growth
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline compute_growth(int target, int current)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:180,1
    - Dst: CRYPTOerr
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:181,1
    - Dst: compute_growth
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:191,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - st
    - n
    - exact
    argTypes:
    - OPENSSL_STACK*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 205
    functionName: sk_reserve
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - compute_growth
    - OPENSSL_realloc
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int sk_reserve(OPENSSL_STACK *st, int n, int exact)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:209,1
    - Dst: sk_reserve
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:219,1
    - Dst: OPENSSL_sk_free
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - OPENSSL_sk_compfunc
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 225
    functionName: OPENSSL_sk_new_reserve
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 2
    functionsReached:
    - OPENSSL_zalloc
    - OPENSSL_sk_free
    - sk_reserve
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_reserve
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - st
    - n
    argTypes:
    - OPENSSL_STACK*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: OPENSSL_sk_reserve
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - sk_reserve
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_reserve
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:242,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - st
    - data
    - loc
    argTypes:
    - OPENSSL_STACK*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 255
    functionName: OPENSSL_sk_insert
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - memmove
    - sk_reserve
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_insert(OPENSSL_STACK *st, const void *data, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st
    - loc
    argTypes:
    - OPENSSL_STACK*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: internal_delete
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline *internal_delete(OPENSSL_STACK *st, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_delete
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - st
    - p
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: OPENSSL_sk_delete_ptr
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_delete
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_delete
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - st
    - loc
    argTypes:
    - OPENSSL_STACK*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: OPENSSL_sk_delete
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_delete
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:305,1
    - Dst: OBJ_bsearch_ex_
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - st
    - data
    - ret_val_options
    argTypes:
    - OPENSSL_STACK*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 314
    functionName: internal_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OBJ_bsearch_ex_
    - qsort
    linkageType: ''
    returnType: int
    signature: "int internal_find(OPENSSL_STACK *st, const void *data,\n                         int
      ret_val_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_find
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: OPENSSL_sk_find
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_find
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_find
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: OPENSSL_sk_find_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_find
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_insert
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: OPENSSL_sk_push
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_insert
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_insert
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: OPENSSL_sk_unshift
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_insert
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_delete
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: OPENSSL_sk_shift
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_delete
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_shift(OPENSSL_STACK *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_delete
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 350
    functionName: OPENSSL_sk_pop
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_delete
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_pop(OPENSSL_STACK *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: OPENSSL_sk_zero
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void OPENSSL_sk_zero(OPENSSL_STACK *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:368,1
    - Dst: OPENSSL_sk_free
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - st
    - func
    argTypes:
    - OPENSSL_STACK*
    - OPENSSL_sk_freefunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 370
    functionName: OPENSSL_sk_pop_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - func
    - OPENSSL_sk_free
    linkageType: ''
    returnType: void
    signature: void OPENSSL_sk_pop_free(OPENSSL_STACK *st, OPENSSL_sk_freefunc func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:376,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: OPENSSL_sk_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void OPENSSL_sk_free(OPENSSL_STACK *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: OPENSSL_sk_num
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_num(const OPENSSL_STACK *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - st
    - i
    argTypes:
    - OPENSSL_STACK*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: OPENSSL_sk_value
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - st
    - i
    - data
    argTypes:
    - OPENSSL_STACK*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: OPENSSL_sk_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/openssl-1.1.1g/crypto/stack/stack.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: OPENSSL_sk_sort
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void OPENSSL_sk_sort(OPENSSL_STACK *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: OPENSSL_sk_is_sorted
    functionSourceFile: /src/openssl-1.1.1g/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/comp/comp_err.c:40,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/comp/comp_err.c:41,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/comp/comp_err.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: ERR_load_COMP_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/comp_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_COMP_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opaque
    - 'no'
    - size
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: zlib_zalloc
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *zlib_zalloc(void *opaque, unsigned int no, unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - address
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: zlib_zfree
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void zlib_zfree(void *opaque, void *address)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:126,1
    - Dst: inflateInit_
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:136,1
    - Dst: deflateInit_
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 155
    functionName: zlib_stateful_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - inflateInit_
    - OPENSSL_free
    - deflateInit_
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int zlib_stateful_init(COMP_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:160,1
    - Dst: deflateEnd
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:161,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: zlib_stateful_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - inflateEnd
    - OPENSSL_free
    - deflateEnd
    linkageType: ''
    returnType: void
    signature: void zlib_stateful_finish(COMP_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: deflate
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: zlib_stateful_compress_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - deflate
    linkageType: ''
    returnType: int
    signature: "int zlib_stateful_compress_block(COMP_CTX *ctx, unsigned char *out,\n
      \                                       unsigned int olen, unsigned char *in,\n
      \                                       unsigned int ilen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inflate
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: zlib_stateful_expand_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - inflate
    linkageType: ''
    returnType: int
    signature: "int zlib_stateful_expand_block(COMP_CTX *ctx, unsigned char *out,\n
      \                                     unsigned int olen, unsigned char *in,\n
      \                                     unsigned int ilen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DSO_load
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:226,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:228,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:230,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:231,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:233,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:235,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:236,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:238,1
    - Dst: DSO_bind_func
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:239,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:246,1
    - Dst: comp_zlib_cleanup_int
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:247,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 260
    functionName: COMP_zlib
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - DSO_bind_func
    - DSO_load
    - comp_zlib_cleanup_int
    linkageType: ''
    returnType: COMP_METHOD
    signature: COMP_METHOD *COMP_zlib(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSO_free
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: comp_zlib_cleanup_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 2
    functionsReached:
    - DSO_free
    linkageType: ''
    returnType: void
    signature: void comp_zlib_cleanup_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: BIO_f_zlib
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_zlib(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMP_zlib
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:322,1
    - Dst: COMPerr
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:324,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:328,1
    - Dst: COMPerr
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:330,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:340,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: bio_zlib_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - COMPerr
    - COMP_zlib
    - BIO_set_init
    - OPENSSL_zalloc
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int bio_zlib_new(BIO *bi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:351,1
    - Dst: inflateEnd
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:354,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:355,1
    - Dst: deflateEnd
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:359,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:360,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:362,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:363,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 367
    functionName: bio_zlib_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - deflateEnd
    - OPENSSL_free
    - inflateEnd
    - BIO_set_init
    - BIO_get_data
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int bio_zlib_free(BIO *bi)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:374,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:378,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:380,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:382,1
    - Dst: COMPerr
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:384,1
    - Dst: inflateInit
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:387,1
    - Dst: inflate
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:398,1
    - Dst: COMPerr
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:400,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:401,1
    - Dst: zError
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:401,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:413,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:417,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 369
    functionDepth: 4
    functionLinenumber: 369
    functionLinenumberEnd: 425
    functionName: bio_zlib_read
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - COMPerr
    - OPENSSL_malloc
    - zError
    - inflateInit
    - inflate
    - ERR_add_error_data
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int bio_zlib_read(BIO *b, char *out, int outl)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:432,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:436,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:440,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:442,1
    - Dst: COMPerr
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:445,1
    - Dst: deflateInit
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:450,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:460,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:464,1
    - Dst: deflate
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:484,1
    - Dst: COMPerr
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:486,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:487,1
    - Dst: zError
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:487,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 492
    functionName: bio_zlib_write
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - COMPerr
    - OPENSSL_malloc
    - BIO_write
    - zError
    - deflate
    - ERR_add_error_data
    - deflateInit
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int bio_zlib_write(BIO *b, const char *in, int inl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:499,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:501,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:506,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:513,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:515,1
    - Dst: deflate
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:531,1
    - Dst: COMPerr
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:535,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:536,1
    - Dst: zError
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:536,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 541
    functionName: bio_zlib_flush
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - COMPerr
    - BIO_write
    - zError
    - deflate
    - ERR_add_error_data
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int bio_zlib_flush(BIO *b)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:548,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:552,1
    - Dst: bio_zlib_flush
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:562,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:564,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:582,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:588,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:596,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:597,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:598,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:614,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:620,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:624,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 543
    functionDepth: 5
    functionLinenumber: 543
    functionLinenumberEnd: 630
    functionName: bio_zlib_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - bio_zlib_flush
    - BIO_ctrl
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_get_data
    - BIO_flush
    - BIO_copy_next_retry
    linkageType: ''
    returnType: long
    signature: long bio_zlib_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:634,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/crypto/comp/c_zlib.c:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 638
    functionName: bio_zlib_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long bio_zlib_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/comp/comp_lib.c:22,1
    - Dst: COMPerr
      Src: /src/openssl-1.1.1g/crypto/comp/comp_lib.c:23,1
    - Dst: COMP_CTX*::meth::init
      Src: /src/openssl-1.1.1g/crypto/comp/comp_lib.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/comp_lib.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: COMP_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - COMPerr
    - OPENSSL_free
    - COMP_CTX*::meth::init
    - OPENSSL_zalloc
    linkageType: ''
    returnType: COMP_CTX
    signature: COMP_CTX *COMP_CTX_new(COMP_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: COMP_CTX_get_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: COMP_METHOD
    signature: COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: COMP_get_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int COMP_get_type(const COMP_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: COMP_get_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *COMP_get_name(const COMP_METHOD *meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX*::meth::finish
      Src: /src/openssl-1.1.1g/crypto/comp/comp_lib.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/comp/comp_lib.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: COMP_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - COMP_CTX*::meth::finish
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void COMP_CTX_free(COMP_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX*::meth::compress
      Src: /src/openssl-1.1.1g/crypto/comp/comp_lib.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: COMP_compress_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - COMP_CTX*::meth::compress
    linkageType: ''
    returnType: int
    signature: "int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,\n
      \                       unsigned char *in, int ilen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX*::meth::expand
      Src: /src/openssl-1.1.1g/crypto/comp/comp_lib.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: COMP_expand_block
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - COMP_CTX*::meth::expand
    linkageType: ''
    returnType: int
    signature: "int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,\n
      \                     unsigned char *in, int ilen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comp
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: COMP_CTX_get_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int COMP_CTX_get_type(const COMP_CTX* comp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c:32,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c:33,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c:37,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c:38,1
    - Dst: CAST_encrypt
      Src: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c:41,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c:44,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c:46,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c:56,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - CAST_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: CAST_ofb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c
    functionUses: 0
    functionsReached:
    - l2n
    - CAST_encrypt
    - n2l
    linkageType: ''
    returnType: void
    signature: "void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, const CAST_KEY *schedule,\n                        unsigned
      char *ivec, int *num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:33,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:35,1
    - Dst: CAST_encrypt
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:37,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:40,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:42,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:53,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:55,1
    - Dst: CAST_encrypt
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:57,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:60,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - CAST_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: CAST_cfb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c
    functionUses: 0
    functionsReached:
    - l2n
    - CAST_encrypt
    - n2l
    linkageType: ''
    returnType: void
    signature: "void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, const CAST_KEY *schedule,\n                        unsigned
      char *ivec, int *num, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: c2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: c2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: l2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: l2cn
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2cn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: n2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: l2nn
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: n2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: l2n
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: ROTL
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: ROTL
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - n
    - ','
    - key
    - ','
    - L
    - ','
    - R
    - ','
    - OP1
    - ','
    - OP2
    - ','
    - OP3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 145
    functionName: E_CAST
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_CAST(n,key,L,R,OP1,OP2,OP3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - n
    - ','
    - key
    - ','
    - L
    - ','
    - R
    - ','
    - OP1
    - ','
    - OP2
    - ','
    - OP3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: E_CAST
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_CAST(n,key,L,R,OP1,OP2,OP3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - n
    - ','
    - key
    - ','
    - L
    - ','
    - R
    - ','
    - OP1
    - ','
    - OP2
    - ','
    - OP3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: E_CAST
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_CAST(n,key,L,R,OP1,OP2,OP3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - A
    - ','
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: CAST_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/c_skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAST_exp(l,A,a,n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:55,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:57,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:59,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:61,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:69,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:71,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:73,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:75,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:83,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:85,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:87,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:89,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:97,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:99,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:101,1
    - Dst: CAST_exp
      Src: /src/openssl-1.1.1g/crypto/cast/c_skey.c:103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 3
    argNames:
    - key
    - len
    - data
    argTypes:
    - CAST_KEY*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 118
    functionName: CAST_set_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/c_skey.c
    functionUses: 1
    functionsReached:
    - CAST_exp
    linkageType: ''
    returnType: void
    signature: void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/cast/c_ecb.c:19,1
    - Dst: n2l
      Src: /src/openssl-1.1.1g/crypto/cast/c_ecb.c:21,1
    - Dst: CAST_encrypt
      Src: /src/openssl-1.1.1g/crypto/cast/c_ecb.c:24,1
    - Dst: CAST_decrypt
      Src: /src/openssl-1.1.1g/crypto/cast/c_ecb.c:26,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_ecb.c:28,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/crypto/cast/c_ecb.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAST_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: CAST_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/cast/c_ecb.c
    functionUses: 0
    functionsReached:
    - l2n
    - CAST_encrypt
    - n2l
    - CAST_decrypt
    linkageType: ''
    returnType: void
    signature: "void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     const CAST_KEY *ks, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ASN1_bio_stream
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:19,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - p7
    - in
    - flags
    argTypes:
    - BIO*
    - PKCS7*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: i2d_PKCS7_bio_stream
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_bio_stream
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_bio_ASN1_stream
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:25,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - p7
    - in
    - flags
    argTypes:
    - BIO*
    - PKCS7*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 8
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: PEM_write_bio_PKCS7_stream
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PEM_write_bio_ASN1_stream
    linkageType: ''
    returnType: int
    signature: int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:31,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:32,1
    - Dst: SMIME_write_ASN1
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:40,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - bio
    - p7
    - data
    - flags
    argTypes:
    - BIO*
    - PKCS7*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: SMIME_write_PKCS7
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    - STACK_OF
    - SMIME_write_ASN1
    linkageType: ''
    returnType: int
    signature: int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_read_ASN1
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:47,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - bcont
    argTypes:
    - BIO*
    - BIO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: SMIME_read_PKCS7
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - SMIME_read_ASN1
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_stream
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_asn1.c:41,1
    - Dst: PKCS7_dataInit
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_asn1.c:45,1
    - Dst: PKCS7_dataFinal
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_asn1.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 58
    functionName: pk7_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - PKCS7_dataInit
    - PKCS7_stream
    - PKCS7_dataFinal
    linkageType: ''
    returnType: int
    signature: "int pk7_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_asn1.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: si_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_asn1.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: ri_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: int
    signature: "int ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                void *exarg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: PKCS7_type_is_other
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int PKCS7_type_is_other(PKCS7 *p7)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:47,1
    - Dst: PKCS7_type_is_other
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: PKCS7_get_octet_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - PKCS7_type_is_other
    - PKCS7_type_is_data
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:59,1
    - Dst: BIO_f_md
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:59,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:60,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:64,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:66,1
    - Dst: BIO_set_md
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:70,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:73,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:74,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - pbio
    - alg
    argTypes:
    - BIO**
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: PKCS7_bio_add_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - BIO_f_md
    - BIO_set_md
    - PKCS7err
    - BIO_free
    - BIO_push
    - EVP_get_digestbyobj
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int PKCS7_bio_add_digest(BIO **pbio, X509_ALGOR *alg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:96,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:101,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:105,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:108,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:110,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:114,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:117,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:120,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:124,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:127,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:134,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - ri
    - key
    - keylen
    argTypes:
    - PKCS7_RECIP_INFO*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 137
    functionName: pkcs7_encode_rinfo
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_encrypt
    - OPENSSL_malloc
    - ASN1_STRING_set0
    - OPENSSL_free
    - PKCS7err
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_ctrl
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: "int pkcs7_encode_rinfo(PKCS7_RECIP_INFO *ri,\n                              unsigned
      char *key, int keylen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:149,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:153,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:156,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:158,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:162,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:166,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:169,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:173,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:178,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:184,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:189,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:191,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 5
    argNames:
    - pek
    - peklen
    - ri
    - pkey
    - fixlen
    argTypes:
    - unsigned char**
    - int*
    - PKCS7_RECIP_INFO*
    - EVP_PKEY*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 194
    functionName: pkcs7_decrypt_rinfo
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - OPENSSL_malloc
    - OPENSSL_free
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - PKCS7err
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_ctrl
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int pkcs7_decrypt_rinfo(unsigned char **pek, int *peklen,\n                               PKCS7_RECIP_INFO
      *ri, EVP_PKEY *pkey,\n                               size_t fixlen)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:202,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:203,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:209,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:223,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:227,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:233,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:241,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:250,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:256,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:261,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:265,1
    - Dst: PKCS7_bio_add_digest
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:266,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:266,1
    - Dst: PKCS7_bio_add_digest
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:269,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:278,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:278,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:279,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:282,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:283,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:284,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:285,1
    - Dst: EVP_CIPHER_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:285,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:287,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:289,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:291,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:293,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:298,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:302,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:307,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:308,1
    - Dst: pkcs7_encode_rinfo
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:309,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:312,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:317,1
    - Dst: PKCS7_is_detached
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:322,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:323,1
    - Dst: BIO_s_null
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:323,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:325,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:327,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:327,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:330,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:336,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:342,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:343,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 129
    argCount: 2
    argNames:
    - p7
    - bio
    argTypes:
    - PKCS7*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 196
    functionDepth: 5
    functionLinenumber: 196
    functionLinenumberEnd: 345
    functionName: PKCS7_dataInit
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - ASN1_TYPE_new
    - sk_X509_ALGOR_num
    - sk_PKCS7_RECIP_INFO_value
    - sk_X509_ALGOR_value
    - PKCS7err
    - STACK_OF
    - BIO_s_mem
    - EVP_CIPHER_type
    - PKCS7_is_detached
    - OPENSSL_cleanse
    - PKCS7_bio_add_digest
    - PKCS7_get_octet_string
    - RAND_bytes
    - BIO_push
    - EVP_CipherInit_ex
    - OBJ_nid2obj
    - BIO_new
    - OBJ_obj2nid
    - sk_PKCS7_RECIP_INFO_num
    - BIO_set_mem_eof_return
    - EVP_CIPHER_iv_length
    - BIO_free_all
    - EVP_CIPHER_CTX_rand_key
    - BIO_new_mem_buf
    - BIO_get_cipher_ctx
    - pkcs7_encode_rinfo
    - EVP_CIPHER_key_length
    - EVP_CIPHER_param_to_asn1
    - BIO_s_null
    - BIO_f_cipher
    linkageType: ''
    returnType: BIO
    signature: BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:350,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:351,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:354,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ri
    - pcert
    argTypes:
    - PKCS7_RECIP_INFO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: pkcs7_cmp_ri
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - X509_get_issuer_name
    - X509_NAME_cmp
    - X509_get_serialNumber
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int pkcs7_cmp_ri(PKCS7_RECIP_INFO *ri, X509 *pcert)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:369,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:370,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:376,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:381,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:385,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:396,1
    - Dst: PKCS7_is_detached
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:397,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:398,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:410,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:412,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:422,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:424,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:430,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:436,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:442,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:443,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:444,1
    - Dst: BIO_f_md
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:444,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:445,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:449,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:450,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:452,1
    - Dst: BIO_set_md
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:457,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:461,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:467,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:467,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:468,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:483,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:484,1
    - Dst: pkcs7_cmp_ri
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:485,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:490,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:502,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:503,1
    - Dst: pkcs7_decrypt_rinfo
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:505,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:506,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:508,1
    - Dst: pkcs7_decrypt_rinfo
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:512,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:514,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:518,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:519,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:521,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:524,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:525,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:528,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:536,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:542,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:544,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:551,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:552,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:555,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:557,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:563,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:570,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:572,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:572,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:575,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:580,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:585,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:586,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:587,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:588,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:589,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:590,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 180
    argCount: 4
    argNames:
    - p7
    - pkey
    - in_bio
    - pcert
    argTypes:
    - PKCS7*
    - EVP_PKEY*
    - BIO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 592
    functionName: PKCS7_dataDecode
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - sk_X509_ALGOR_num
    - sk_PKCS7_RECIP_INFO_value
    - sk_X509_ALGOR_value
    - PKCS7err
    - STACK_OF
    - BIO_s_mem
    - PKCS7_is_detached
    - EVP_get_digestbynid
    - OPENSSL_malloc
    - BIO_set_md
    - PKCS7_get_octet_string
    - EVP_CIPHER_CTX_key_length
    - ERR_clear_error
    - BIO_push
    - EVP_CipherInit_ex
    - BIO_new
    - pkcs7_cmp_ri
    - sk_PKCS7_RECIP_INFO_num
    - OBJ_obj2nid
    - OPENSSL_clear_free
    - BIO_set_mem_eof_return
    - BIO_free_all
    - EVP_CIPHER_CTX_rand_key
    - BIO_new_mem_buf
    - BIO_f_md
    - BIO_get_cipher_ctx
    - pkcs7_decrypt_rinfo
    - EVP_CIPHER_asn1_to_param
    - EVP_get_cipherbyobj
    - EVP_CIPHER_key_length
    - EVP_CIPHER_CTX_set_key_length
    - BIO_f_cipher
    linkageType: ''
    returnType: BIO
    signature: BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509
      *pcert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_find_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:597,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:599,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:603,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:605,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:608,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:610,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pmd
    - bio
    - nid
    argTypes:
    - EVP_MD_CTX**
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 613
    functionName: PKCS7_find_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - BIO_find_type
    - PKCS7err
    - BIO_get_md_ctx
    - EVP_MD_CTX_type
    - BIO_next
    linkageType: ''
    returnType: BIO
    signature: BIO *PKCS7_find_digest(EVP_MD_CTX **pmd, BIO *bio, int nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:621,1
    - Dst: PKCS7_add0_attrib_signing_time
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:622,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:623,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:629,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:630,1
    - Dst: PKCS7_add1_attrib_digest
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:633,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:634,1
    - Dst: PKCS7_SIGNER_INFO_sign
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - si
    - mctx
    argTypes:
    - PKCS7_SIGNER_INFO*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 643
    functionName: do_pkcs7_signed_attrib
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - PKCS7err
    - PKCS7_add0_attrib_signing_time
    - PKCS7_SIGNER_INFO_sign
    - PKCS7_get_signed_attribute
    - PKCS7_add1_attrib_digest
    linkageType: ''
    returnType: int
    signature: int do_pkcs7_signed_attrib(PKCS7_SIGNER_INFO *si, EVP_MD_CTX *mctx)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:652,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:653,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:657,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:662,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:666,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:668,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:672,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:684,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:686,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:696,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:698,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:706,1
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:708,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:709,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:716,1
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:718,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:719,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:726,1
    - Dst: sk_PKCS7_SIGNER_INFO_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:731,1
    - Dst: sk_PKCS7_SIGNER_INFO_value
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:732,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:736,1
    - Dst: PKCS7_find_digest
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:740,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:748,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:757,1
    - Dst: do_pkcs7_signed_attrib
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:758,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:763,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:764,1
    - Dst: EVP_SignFinal
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:768,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:769,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:770,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:773,1
    - Dst: PKCS7_find_digest
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:779,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:780,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:782,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:784,1
    - Dst: PKCS7_is_detached
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:788,1
    - Dst: BIO_find_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:798,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:800,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:803,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:808,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:809,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:810,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:815,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 137
    argCount: 2
    argNames:
    - p7
    - bio
    argTypes:
    - PKCS7*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 817
    functionName: PKCS7_dataFinal
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_copy_ex
    - PKCS7err
    - STACK_OF
    - PKCS7_is_detached
    - EVP_MD_CTX_free
    - EVP_SignFinal
    - do_pkcs7_signed_attrib
    - OPENSSL_malloc
    - PKCS7_find_digest
    - ASN1_OCTET_STRING_set
    - PKCS7_get_octet_string
    - OPENSSL_free
    - sk_X509_ATTRIBUTE_num
    - EVP_PKEY_size
    - sk_PKCS7_SIGNER_INFO_num
    - EVP_MD_CTX_new
    - ASN1_STRING_set0
    - BIO_set_flags
    - ASN1_OCTET_STRING_free
    - OBJ_obj2nid
    - BIO_set_mem_eof_return
    - sk_PKCS7_SIGNER_INFO_value
    - BIO_get_mem_data
    - ASN1_OCTET_STRING_new
    - PKCS7_type_is_data
    - BIO_find_type
    linkageType: ''
    returnType: int
    signature: int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:828,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:832,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:834,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:838,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:841,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:843,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:847,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:848,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:851,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:853,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:855,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:857,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:860,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:863,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:865,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:869,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:871,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:876,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:877,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - si
    argTypes:
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 819
    functionDepth: 4
    functionLinenumber: 819
    functionLinenumberEnd: 880
    functionName: PKCS7_SIGNER_INFO_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - ASN1_STRING_set0
    - ASN1_ITEM_rptr
    - OPENSSL_free
    - PKCS7err
    - EVP_DigestSignInit
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_free
    - EVP_PKEY_CTX_ctrl
    - EVP_DigestSignFinal
    - EVP_get_digestbyobj
    - ASN1_item_i2d
    linkageType: ''
    returnType: int
    signature: int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:887,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:891,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:896,1
    - Dst: PKCS7_type_is_signed
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:900,1
    - Dst: PKCS7_type_is_signedAndEnveloped
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:902,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:905,1
    - Dst: X509_find_by_issuer_and_serial
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:911,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:915,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:921,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:922,1
    - Dst: X509_STORE_CTX_set_purpose
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:925,1
    - Dst: X509_verify_cert
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:926,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:928,1
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:929,1
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:932,1
    - Dst: PKCS7_signatureVerify
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:934,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 5
    argNames:
    - cert_store
    - ctx
    - bio
    - p7
    - si
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX*
    - BIO*
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 882
    functionDepth: 6
    functionLinenumber: 882
    functionLinenumberEnd: 937
    functionName: PKCS7_dataVerify
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_cleanup
    - X509_find_by_issuer_and_serial
    - X509_STORE_CTX_init
    - PKCS7_type_is_signedAndEnveloped
    - PKCS7err
    - STACK_OF
    - X509_verify_cert
    - X509_STORE_CTX_set_purpose
    - PKCS7_type_is_signed
    - PKCS7_signatureVerify
    linkageType: ''
    returnType: int
    signature: "int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx,
      BIO *bio,\n                     PKCS7 *p7, PKCS7_SIGNER_INFO *si)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:946,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:950,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:952,1
    - Dst: PKCS7_type_is_signed
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:956,1
    - Dst: PKCS7_type_is_signedAndEnveloped
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:956,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:957,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:961,1
    - Dst: BIO_find_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:966,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:967,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:971,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:973,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:976,1
    - Dst: EVP_MD_pkey_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:982,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:982,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:984,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:991,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:995,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1001,1
    - Dst: PKCS7_digest_from_attributes
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1003,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1005,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1010,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1011,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1016,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1016,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1019,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1020,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1022,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1026,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1029,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1033,1
    - Dst: EVP_VerifyFinal
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1039,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1041,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1047,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 87
    argCount: 4
    argNames:
    - bio
    - p7
    - si
    - x509
    argTypes:
    - BIO*
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 939
    functionDepth: 4
    functionLinenumber: 939
    functionLinenumberEnd: 1049
    functionName: PKCS7_signatureVerify
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_md
    - EVP_MD_CTX_copy_ex
    - PKCS7_digest_from_attributes
    - PKCS7err
    - STACK_OF
    - EVP_MD_pkey_type
    - EVP_MD_CTX_free
    - EVP_VerifyFinal
    - X509_get0_pubkey
    - ASN1_ITEM_rptr
    - EVP_get_digestbynid
    - memcmp
    - PKCS7_type_is_signedAndEnveloped
    - OPENSSL_free
    - sk_X509_ATTRIBUTE_num
    - BIO_get_md_ctx
    - PKCS7_type_is_signed
    - EVP_VerifyInit_ex
    - EVP_MD_CTX_new
    - OBJ_obj2nid
    - EVP_VerifyUpdate
    - BIO_find_type
    - EVP_MD_CTX_type
    - BIO_next
    - ASN1_item_i2d
    linkageType: ''
    returnType: int
    signature: "int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si,\n
      \                         X509 *x509)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1053,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1057,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1065,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1067,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p7
    - idx
    argTypes:
    - PKCS7*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1069
    functionName: PKCS7_get_issuer_and_serial
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - sk_PKCS7_RECIP_INFO_num
    - OBJ_obj2nid
    - STACK_OF
    - sk_PKCS7_RECIP_INFO_value
    linkageType: ''
    returnType: PKCS7_ISSUER_AND_SERIAL
    signature: PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_attribute
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - nid
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1074
    functionName: PKCS7_get_signed_attribute
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 3
    functionsReached:
    - get_attribute
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_attribute
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - nid
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1079
    functionName: PKCS7_get_attribute
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - get_attribute
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1085,1
    - Dst: X509at_get_attr
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1086,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sk
    - nid
    argTypes:
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1088
    functionName: get_attribute
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - X509at_get_attr_by_NID
    - X509at_get_attr
    - X509_ATTRIBUTE_get0_type
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *get_attribute(STACK_OF(X509_ATTRIBUTE) *sk, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_attribute
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p7si
    - nid
    - atrtype
    - value
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1140
    functionName: PKCS7_add_signed_attribute
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 3
    functionsReached:
    - add_attribute
    linkageType: ''
    returnType: int
    signature: "int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int
      atrtype,\n                               void *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_attribute
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p7si
    - nid
    - atrtype
    - value
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1146
    functionName: PKCS7_add_attribute
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - add_attribute
    linkageType: ''
    returnType: int
    signature: "int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,\n
      \                       void *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:88,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:91,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - si
    - coid
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: PKCS7_add_attrib_content_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c
    functionUses: 0
    functionsReached:
    - PKCS7_add_signed_attribute
    - OBJ_nid2obj
    - PKCS7_get_signed_attribute
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT
      *coid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_gmtime_adj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:98,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:99,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - si
    - t
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: PKCS7_add0_attrib_signing_time
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c
    functionUses: 1
    functionsReached:
    - PKCS7_add_signed_attribute
    - PKCS7err
    - X509_gmtime_adj
    linkageType: ''
    returnType: int
    signature: int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME
      *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:111,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:114,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:115,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - si
    - md
    - mdlen
    argTypes:
    - PKCS7_SIGNER_INFO*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 121
    functionName: PKCS7_add1_attrib_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c
    functionUses: 1
    functionsReached:
    - PKCS7_add_signed_attribute
    - ASN1_STRING_set
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: "int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si,\n                             const
      unsigned char *md, int mdlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_dataInit
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:70,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:71,1
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:75,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:77,1
    - Dst: PKCS7_dataFinal
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:79,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:80,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - p7
    - data
    - flags
    argTypes:
    - PKCS7*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 91
    functionName: PKCS7_final
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c
    functionUses: 0
    functionsReached:
    - PKCS7_dataFinal
    - BIO_flush
    - PKCS7err
    - PKCS7_dataInit
    - SMIME_crlf_copy
    - BIO_free_all
    linkageType: ''
    returnType: int
    signature: int PKCS7_final(PKCS7 *p7, BIO *data, int flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:114,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:115,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:116,1
    - Dst: PKCS7_add_signature
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:121,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:122,1
    - Dst: PKCS7_add_certificate
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:128,1
    - Dst: PKCS7_add_attrib_content_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:133,1
    - Dst: sk_X509_ALGOR_new_null
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:137,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:138,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:141,1
    - Dst: add_digest_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:142,1
    - Dst: add_digest_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:143,1
    - Dst: add_digest_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:144,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:145,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:146,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:147,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:148,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:149,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:150,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:151,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:152,1
    - Dst: PKCS7_add_attrib_smimecap
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:153,1
    - Dst: sk_X509_ALGOR_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:155,1
    - Dst: pkcs7_copy_existing_digest
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:159,1
    - Dst: PKCS7_SIGNER_INFO_sign
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:161,1
    - Dst: sk_X509_ALGOR_pop_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:167,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 45
    argCount: 5
    argNames:
    - p7
    - signcert
    - pkey
    - md
    - flags
    argTypes:
    - PKCS7*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 169
    functionName: PKCS7_sign_add_signer
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c
    functionUses: 0
    functionsReached:
    - X509_check_private_key
    - sk_X509_ALGOR_pop_free
    - PKCS7_add_certificate
    - add_cipher_smcap
    - sk_X509_ALGOR_new_null
    - PKCS7err
    - STACK_OF
    - PKCS7_add_attrib_content_type
    - pkcs7_copy_existing_digest
    - PKCS7_add_signature
    - add_digest_smcap
    - PKCS7_add_attrib_smimecap
    - PKCS7_SIGNER_INFO_sign
    linkageType: ''
    returnType: PKCS7_SIGNER_INFO
    signature: "PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, X509 *signcert,\n
      \                                        EVP_PKEY *pkey, const EVP_MD *md,\n
      \                                        int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:179,1
    - Dst: PKCS7_get_signer_info
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:182,1
    - Dst: sk_PKCS7_SIGNER_INFO_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:183,1
    - Dst: sk_PKCS7_SIGNER_INFO_value
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:184,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:187,1
    - Dst: OBJ_cmp
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:189,1
    - Dst: PKCS7_digest_from_attributes
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:190,1
    - Dst: PKCS7_add1_attrib_digest
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:197,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:199,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - p7
    - si
    argTypes:
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 202
    functionName: pkcs7_copy_existing_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c
    functionUses: 1
    functionsReached:
    - OBJ_cmp
    - PKCS7_get_signer_info
    - PKCS7_digest_from_attributes
    - PKCS7err
    - STACK_OF
    - sk_X509_ATTRIBUTE_num
    - sk_PKCS7_SIGNER_INFO_num
    - sk_PKCS7_SIGNER_INFO_value
    - PKCS7_add1_attrib_digest
    linkageType: ''
    returnType: int
    signature: int pkcs7_copy_existing_digest(PKCS7 *p7, PKCS7_SIGNER_INFO *si)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:484,1
    - Dst: PKCS7_type_is_enveloped
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:488,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:489,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:493,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:494,1
    - Dst: PKCS7_dataDecode
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:499,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:500,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:507,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:507,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:508,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:509,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:512,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:513,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:514,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:515,1
    - Dst: SMIME_text
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:518,1
    - Dst: BIO_method_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:519,1
    - Dst: BIO_get_cipher_status
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:520,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:523,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:526,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:527,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:531,1
    - Dst: BIO_method_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:534,1
    - Dst: BIO_get_cipher_status
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:535,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:541,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:546,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c:547,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 5
    argNames:
    - p7
    - pkey
    - cert
    - data
    - flags
    argTypes:
    - PKCS7*
    - EVP_PKEY*
    - X509*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 477
    functionDepth: 6
    functionLinenumber: 477
    functionLinenumberEnd: 549
    functionName: PKCS7_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c
    functionUses: 0
    functionsReached:
    - X509_check_private_key
    - PKCS7_dataDecode
    - BIO_get_cipher_status
    - OPENSSL_malloc
    - BIO_read
    - BIO_write
    - OPENSSL_free
    - PKCS7err
    - BIO_f_buffer
    - BIO_method_type
    - BIO_push
    - SMIME_text
    - PKCS7_type_is_enveloped
    - BIO_free_all
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data,
      int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:22,1
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:29,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:32,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:36,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:50,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:57,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - p7
    - cmd
    - larg
    - parg
    argTypes:
    - PKCS7*
    - int
    - long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 61
    functionName: PKCS7_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - PKCS7_type_is_data
    - PKCS7err
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: long
    signature: long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:67,1
    - Dst: PKCS7_set_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:69,1
    - Dst: PKCS7_set_content
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:71,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - p7
    - type
    argTypes:
    - PKCS7*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: PKCS7_content_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_set_content
    - PKCS7_free
    - PKCS7_set_type
    - PKCS7_new
    linkageType: ''
    returnType: int
    signature: int PKCS7_content_new(PKCS7 *p7, int type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:84,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:87,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:91,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - p7
    - p7_data
    argTypes:
    - PKCS7*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: PKCS7_set_content
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    - PKCS7_free
    - PKCS7err
    linkageType: ''
    returnType: int
    signature: int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:114,1
    - Dst: PKCS7_SIGNED_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:119,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:121,1
    - Dst: PKCS7_SIGNED_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:122,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:129,1
    - Dst: PKCS7_SIGN_ENVELOPE_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:134,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:137,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:140,1
    - Dst: PKCS7_ENVELOPE_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:144,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:147,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:149,1
    - Dst: PKCS7_ENCRYPT_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:153,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:156,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:158,1
    - Dst: PKCS7_DIGEST_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:163,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:166,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:170,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 69
    argCount: 2
    argNames:
    - p7
    - type
    argTypes:
    - PKCS7*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 176
    functionName: PKCS7_set_type
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 3
    functionsReached:
    - PKCS7_ENCRYPT_new
    - OBJ_nid2obj
    - ASN1_OCTET_STRING_new
    - PKCS7err
    - PKCS7_SIGNED_new
    - PKCS7_DIGEST_new
    - PKCS7_SIGNED_free
    - PKCS7_SIGN_ENVELOPE_new
    - PKCS7_ENVELOPE_new
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int PKCS7_set_type(PKCS7 *p7, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p7
    - type
    - other
    argTypes:
    - PKCS7*
    - int
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: PKCS7_set0_type_other
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:189,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:190,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:192,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:203,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:207,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:211,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:212,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:213,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:219,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:220,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:221,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:222,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:225,1
    - Dst: sk_X509_ALGOR_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:227,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:228,1
    - Dst: sk_PKCS7_SIGNER_INFO_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:233,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - p7
    - psi
    argTypes:
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 236
    functionName: PKCS7_add_signer
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - OBJ_nid2obj
    - X509_ALGOR_new
    - sk_X509_ALGOR_num
    - sk_PKCS7_SIGNER_INFO_push
    - sk_X509_ALGOR_value
    - PKCS7err
    - STACK_OF
    - sk_X509_ALGOR_push
    - X509_ALGOR_free
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *psi)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:241,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:243,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:252,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:257,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:259,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:262,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:263,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - p7
    - x509
    argTypes:
    - PKCS7*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 268
    functionName: PKCS7_add_certificate
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached:
    - X509_free
    - sk_X509_push
    - sk_X509_new_null
    - PKCS7err
    - STACK_OF
    - X509_up_ref
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_certificate(PKCS7 *p7, X509 *x509)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:273,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:275,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:284,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:289,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:291,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:295,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:296,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - p7
    - crl
    argTypes:
    - PKCS7*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 301
    functionName: PKCS7_add_crl
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_CRL_push
    - X509_CRL_up_ref
    - PKCS7err
    - STACK_OF
    - X509_CRL_free
    - OBJ_obj2nid
    - sk_X509_CRL_new_null
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:309,1
    - Dst: X509_NAME_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:311,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:312,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:319,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:321,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:321,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:325,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:330,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:330,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:330,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:334,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:338,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:343,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - p7i
    - x509
    - pkey
    - dgst
    argTypes:
    - PKCS7_SIGNER_INFO*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 347
    functionName: PKCS7_SIGNER_INFO_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_up_ref
    - OBJ_nid2obj
    - EVP_MD_type
    - X509_ALGOR_set0
    - ASN1_INTEGER_free
    - PKCS7err
    - ASN1_INTEGER_dup
    - X509_get_serialNumber
    - X509_get_issuer_name
    - EVP_PKEY*::ameth::pkey_ctrl
    - ASN1_INTEGER_set
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: "int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY
      *pkey,\n                          const EVP_MD *dgst)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:356,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:358,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:360,1
    - Dst: PKCS7_SIGNER_INFO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:365,1
    - Dst: PKCS7_SIGNER_INFO_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:367,1
    - Dst: PKCS7_add_signer
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:369,1
    - Dst: PKCS7_SIGNER_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:373,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - p7
    - x509
    - pkey
    - dgst
    argTypes:
    - PKCS7*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 349
    functionDepth: 6
    functionLinenumber: 349
    functionLinenumberEnd: 375
    functionName: PKCS7_add_signature
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached:
    - EVP_get_digestbynid
    - PKCS7_SIGNER_INFO_set
    - PKCS7_SIGNER_INFO_free
    - PKCS7err
    - PKCS7_add_signer
    - EVP_PKEY_get_default_digest_nid
    - PKCS7_SIGNER_INFO_new
    linkageType: ''
    returnType: PKCS7_SIGNER_INFO
    signature: "PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, EVP_PKEY
      *pkey,\n                                       const EVP_MD *dgst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_digest
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:379,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:380,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:381,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:385,1
    - Dst: EVP_MD_nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:385,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p7
    - md
    argTypes:
    - PKCS7*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 391
    functionName: PKCS7_set_digest
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - OBJ_nid2obj
    - EVP_MD_nid
    - PKCS7err
    - PKCS7_type_is_digest
    linkageType: ''
    returnType: int
    signature: int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - si
    - pk
    - pdig
    - psig
    argTypes:
    - PKCS7_SIGNER_INFO*
    - EVP_PKEY**
    - X509_ALGOR**
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 414
    functionName: PKCS7_SIGNER_INFO_get0_algs
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk,\n
      \                                X509_ALGOR **pdig, X509_ALGOR **psig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ri
    - penc
    argTypes:
    - PKCS7_RECIP_INFO*
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: PKCS7_RECIP_INFO_get0_alg
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_RECIP_INFO_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:426,1
    - Dst: PKCS7_RECIP_INFO_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:428,1
    - Dst: PKCS7_add_recipient_info
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:430,1
    - Dst: PKCS7_RECIP_INFO_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - p7
    - x509
    argTypes:
    - PKCS7*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 436
    functionName: PKCS7_add_recipient
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_RECIP_INFO_new
    - PKCS7_RECIP_INFO_free
    - PKCS7_add_recipient_info
    - PKCS7_RECIP_INFO_set
    linkageType: ''
    returnType: PKCS7_RECIP_INFO
    signature: PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:441,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:443,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:452,1
    - Dst: sk_PKCS7_RECIP_INFO_push
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - p7
    - ri
    argTypes:
    - PKCS7*
    - PKCS7_RECIP_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 460
    functionName: PKCS7_add_recipient_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - sk_PKCS7_RECIP_INFO_push
    - PKCS7err
    - STACK_OF
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:466,1
    - Dst: X509_NAME_set
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:468,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:469,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:472,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:474,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:474,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:477,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:480,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:485,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:487,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:492,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:497,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - p7i
    - x509
    argTypes:
    - PKCS7_RECIP_INFO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 462
    functionDepth: 5
    functionLinenumber: 462
    functionLinenumberEnd: 504
    functionName: PKCS7_RECIP_INFO_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    - ASN1_INTEGER_free
    - PKCS7err
    - ASN1_INTEGER_dup
    - X509_get_serialNumber
    - X509_get_issuer_name
    - X509_up_ref
    - X509_get0_pubkey
    - ASN1_INTEGER_set
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_signed
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:508,1
    - Dst: X509_find_by_issuer_and_serial
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p7
    - si
    argTypes:
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 515
    functionName: PKCS7_cert_from_signer_info
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - X509_find_by_issuer_and_serial
    - PKCS7_type_is_signed
    linkageType: ''
    returnType: X509
    signature: X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:522,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:531,1
    - Dst: EVP_CIPHER_type
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:536,1
    - Dst: PKCS7err
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - p7
    - cipher
    argTypes:
    - PKCS7*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 545
    functionName: PKCS7_set_cipher
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - EVP_CIPHER_type
    - PKCS7err
    linkageType: ''
    returnType: int
    signature: int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:551,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:559,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c:567,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - boundary
    - p7
    argTypes:
    - unsigned char***
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 588
    functionName: PKCS7_stream
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: int
    signature: int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_NDEF
      Src: /src/openssl-1.1.1g/crypto/pkcs7/bio_pk7.c:23,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/pkcs7/bio_pk7.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - p7
    argTypes:
    - BIO*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: BIO_new_PKCS7
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/bio_pk7.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - BIO_new_NDEF
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pkcs7err.c:150,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pkcs7err.c:151,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/pkcs7/pkcs7err.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 6
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: ERR_load_PKCS7_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/pkcs7/pkcs7err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_PKCS7_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OBJECT**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: sn_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sn_cmp(const ASN1_OBJECT *const *a, const unsigned int *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OBJECT**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ln_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ln_cmp(const ASN1_OBJECT *const *a, const unsigned int *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:71,1
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ca
    argTypes:
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: added_obj_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long added_obj_hash(const ADDED_OBJ *ca)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:103,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:110,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ca
    - cb
    argTypes:
    - ADDED_OBJ*
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 124
    functionName: added_obj_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int added_obj_cmp(const ADDED_OBJ *ca, const ADDED_OBJ *cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_new
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: init_added
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - lh_ADDED_OBJ_new
    linkageType: ''
    returnType: int
    signature: int init_added(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: cleanup1_doall
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup1_doall(ADDED_OBJ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: cleanup2_doall
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup2_doall(ADDED_OBJ *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: cleanup3_doall
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void cleanup3_doall(ADDED_OBJ *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_set_down_load
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:157,1
    - Dst: lh_ADDED_OBJ_doall
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:158,1
    - Dst: lh_ADDED_OBJ_doall
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:159,1
    - Dst: lh_ADDED_OBJ_doall
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:160,1
    - Dst: lh_ADDED_OBJ_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: obj_cleanup_int
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 1
    functionsReached:
    - lh_ADDED_OBJ_set_down_load
    - lh_ADDED_OBJ_free
    - lh_ADDED_OBJ_doall
    linkageType: ''
    returnType: void
    signature: void obj_cleanup_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: OBJ_new_nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OBJ_new_nid(int num)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: init_added
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:181,1
    - Dst: OBJ_dup
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:183,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:185,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:188,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:191,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:194,1
    - Dst: lh_ADDED_OBJ_insert
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:201,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:203,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:215,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:216,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 218
    functionName: OBJ_add_object
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OBJ_dup
    - OPENSSL_malloc
    - OBJerr
    - OPENSSL_free
    - ASN1_OBJECT_free
    - lh_ADDED_OBJ_insert
    - init_added
    linkageType: ''
    returnType: int
    signature: int OBJ_add_object(const ASN1_OBJECT *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:227,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:237,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 245
    functionName: OBJ_nid2obj
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 73
    functionsReached:
    - OBJerr
    - lh_ADDED_OBJ_retrieve
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *OBJ_nid2obj(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:254,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:264,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 272
    functionName: OBJ_nid2sn
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 10
    functionsReached:
    - OBJerr
    - lh_ADDED_OBJ_retrieve
    linkageType: ''
    returnType: char
    signature: char *OBJ_nid2sn(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:281,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:291,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 299
    functionName: OBJ_nid2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 11
    functionsReached:
    - OBJerr
    - lh_ADDED_OBJ_retrieve
    linkageType: ''
    returnType: char
    signature: char *OBJ_nid2ln(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ap
    - bp
    argTypes:
    - ASN1_OBJECT**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 313
    functionName: obj_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int obj_cmp(const ASN1_OBJECT *const *ap, const unsigned int *bp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:333,1
    - Dst: OBJ_bsearch_obj
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:337,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 341
    functionName: OBJ_obj2nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 97
    functionsReached:
    - lh_ADDED_OBJ_retrieve
    - OBJ_bsearch_obj
    linkageType: ''
    returnType: int
    signature: int OBJ_obj2nid(const ASN1_OBJECT *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:360,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:361,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:362,1
    - Dst: a2d_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:366,1
    - Dst: ASN1_object_size
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:375,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:379,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:380,1
    - Dst: ASN1_put_object
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:386,1
    - Dst: a2d_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:388,1
    - Dst: d2i_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:391,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - s
    - no_name
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 350
    functionDepth: 6
    functionLinenumber: 350
    functionLinenumberEnd: 394
    functionName: OBJ_txt2obj
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 14
    functionsReached:
    - d2i_ASN1_OBJECT
    - OBJ_nid2obj
    - ASN1_object_size
    - OPENSSL_malloc
    - OBJerr
    - OBJ_sn2nid
    - OPENSSL_free
    - ASN1_put_object
    - a2d_ASN1_OBJECT
    - OBJ_ln2nid
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:402,1
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:402,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:411,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:413,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:415,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:418,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:419,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:439,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:446,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:448,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:453,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:464,1
    - Dst: BN_bn2dec
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:482,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:485,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:492,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:503,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:505,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:506,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:508,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:522,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:526,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 120
    argCount: 4
    argNames:
    - buf
    - buf_len
    - a
    - no_name
    argTypes:
    - char*
    - int
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 528
    functionName: OBJ_obj2txt
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 7
    functionsReached:
    - OBJ_nid2ln
    - BIO_snprintf
    - OBJ_nid2sn
    - BN_add_word
    - DECIMAL_SIZE
    - BN_new
    - OPENSSL_free
    - BN_bn2dec
    - OPENSSL_strlcpy
    - BN_sub_word
    - BN_free
    - BN_set_word
    - OBJ_obj2nid
    - BN_lshift
    - strlen
    linkageType: ''
    returnType: int
    signature: int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:534,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:535,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 7
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: OBJ_txt2nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - OBJ_txt2obj
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int OBJ_txt2nid(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:551,1
    - Dst: OBJ_bsearch_ln
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 559
    functionName: OBJ_ln2nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 4
    functionsReached:
    - lh_ADDED_OBJ_retrieve
    - OBJ_bsearch_ln
    linkageType: ''
    returnType: int
    signature: int OBJ_ln2nid(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:572,1
    - Dst: OBJ_bsearch_sn
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 580
    functionName: OBJ_sn2nid
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 6
    functionsReached:
    - lh_ADDED_OBJ_retrieve
    - OBJ_bsearch_sn
    linkageType: ''
    returnType: int
    signature: int OBJ_sn2nid(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_bsearch_ex_
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - base
    - num
    - size
    argTypes:
    - void*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 586
    functionName: OBJ_bsearch_
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OBJ_bsearch_ex_
    linkageType: ''
    returnType: void
    signature: "void *OBJ_bsearch_(const void *key, const void *base, int num, int
      size,\n                         int (*cmp) (const void *, const void *))"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 5
    argNames:
    - key
    - base_
    - num
    - size
    - flags
    argTypes:
    - void*
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 635
    functionName: OBJ_bsearch_ex_
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void *OBJ_bsearch_ex_(const void *key, const void *base_, int num,\n
      \                           int size,\n                            int (*cmp)
      (const void *, const void *),\n                            int flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:649,1
    - Dst: ossl_isalnum
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:653,1
    - Dst: ossl_isdigit
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:656,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:660,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:666,1
    - Dst: ossl_isspace
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:670,1
    - Dst: OBJ_create
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:684,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 688
    functionName: OBJ_create_objects
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OBJ_create
    - ossl_isspace
    - ossl_isalnum
    - ossl_isdigit
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int OBJ_create_objects(BIO *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:696,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:697,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:698,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:703,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:708,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:709,1
    - Dst: OBJ_new_nid
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:713,1
    - Dst: OBJ_add_object
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:717,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_dat.c:723,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - oid
    - sn
    - ln
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 690
    functionDepth: 7
    functionLinenumber: 690
    functionLinenumberEnd: 725
    functionName: OBJ_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 2
    functionsReached:
    - OBJ_new_nid
    - OBJerr
    - OBJ_sn2nid
    - OBJ_add_object
    - ASN1_OBJECT_free
    - OBJ_txt2obj
    - OBJ_ln2nid
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int OBJ_create(const char *oid, const char *sn, const char *ln)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 732
    functionName: OBJ_length
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OBJ_length(const ASN1_OBJECT *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 739
    functionName: OBJ_get0_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/objects/obj_err.c:40,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/objects/obj_err.c:41,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/objects/obj_err.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: ERR_load_OBJ_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_OBJ_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nid_triple*
    - nid_triple*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: sig_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sig_cmp(const nid_triple *a, const nid_triple *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nid_triple**
    - nid_triple**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: sig_sk_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sig_sk_cmp(const nid_triple *const *a, const nid_triple *const
      *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nid_triple**
    - nid_triple**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: sigx_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sigx_cmp(const nid_triple *const *a, const nid_triple *const *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_find
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:50,1
    - Dst: sk_nid_triple_value
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:51,1
    - Dst: OBJ_bsearch_sig
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:55,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - signid
    - pdig_nid
    - ppkey_nid
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 65
    functionName: OBJ_find_sigid_algs
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_xref.c
    functionUses: 5
    functionsReached:
    - OBJ_bsearch_sig
    - OSSL_NELEM
    - sk_nid_triple_find
    - sk_nid_triple_value
    linkageType: ''
    returnType: int
    signature: int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_find
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:77,1
    - Dst: sk_nid_triple_value
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:79,1
    - Dst: OBJ_bsearch_sigx
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:85,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - psignid
    - dig_nid
    - pkey_nid
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: OBJ_find_sigid_by_algs
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_xref.c
    functionUses: 4
    functionsReached:
    - OSSL_NELEM
    - OBJ_bsearch_sigx
    - sk_nid_triple_find
    - sk_nid_triple_value
    linkageType: ''
    returnType: int
    signature: int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_new
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:99,1
    - Dst: sk_nid_triple_new
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:103,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:106,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:107,1
    - Dst: sk_nid_triple_push
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:115,1
    - Dst: sk_nid_triple_push
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:119,1
    - Dst: sk_nid_triple_sort
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:122,1
    - Dst: sk_nid_triple_sort
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - signid
    - dig_id
    - pkey_id
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 126
    functionName: OBJ_add_sigid
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OBJerr
    - OPENSSL_free
    - sk_nid_triple_new
    - sk_nid_triple_push
    - sk_nid_triple_sort
    linkageType: ''
    returnType: int
    signature: int OBJ_add_sigid(int signid, int dig_id, int pkey_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tt
    argTypes:
    - nid_triple*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: sid_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void sid_free(nid_triple *tt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_pop_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:135,1
    - Dst: sk_nid_triple_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_xref.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: OBJ_sigid_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_xref.c
    functionUses: 1
    functionsReached:
    - sk_nid_triple_free
    - sk_nid_triple_pop_free
    linkageType: ''
    returnType: void
    signature: void OBJ_sigid_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: obj_strcasecmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int obj_strcasecmp(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:69,1
    - Dst: lh_OBJ_NAME_new
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:70,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:71,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - CRYPTO_mem_ctrl
    - CRYPTO_THREAD_lock_new
    - lh_OBJ_NAME_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(o_names_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: OBJ_NAME_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int OBJ_NAME_init(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:88,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:91,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:94,1
    - Dst: sk_NAME_FUNCS_new_null
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:95,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:96,1
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:104,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:105,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:106,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:107,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:109,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:115,1
    - Dst: sk_NAME_FUNCS_push
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:117,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:118,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:121,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:122,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:127,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:136,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 138
    functionName: OBJ_NAME_new_index
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - sk_NAME_FUNCS_num
    - CRYPTO_mem_ctrl
    - OBJerr
    - sk_NAME_FUNCS_push
    - OPENSSL_free
    - sk_NAME_FUNCS_new_null
    - sk_NAME_FUNCS_value
    - OPENSSL_zalloc
    - CRYPTO_THREAD_unlock
    - OBJ_NAME_init
    linkageType: ''
    returnType: int
    signature: "int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *),\n
      \                      int (*cmp_func) (const char *, const char *),\n                       void
      (*free_func) (const char *, int, const char *))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:147,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:148,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OBJ_NAME*
    - OBJ_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 154
    functionName: obj_name_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - sk_NAME_FUNCS_num
    - strcasecmp
    - sk_NAME_FUNCS_value
    linkageType: ''
    returnType: int
    signature: int obj_name_cmp(const OBJ_NAME *a, const OBJ_NAME *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:161,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:163,1
    - Dst: openssl_lh_strcasehash
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - OBJ_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 170
    functionName: obj_name_hash
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - sk_NAME_FUNCS_num
    - openssl_lh_strcasehash
    - sk_NAME_FUNCS_value
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long obj_name_hash(const OBJ_NAME *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:180,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:182,1
    - Dst: lh_OBJ_NAME_retrieve
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:191,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:204,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 206
    functionName: OBJ_NAME_get
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - lh_OBJ_NAME_retrieve
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_unlock
    - OBJ_NAME_init
    linkageType: ''
    returnType: char
    signature: char *OBJ_NAME_get(const char *name, int type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:213,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:219,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:230,1
    - Dst: lh_OBJ_NAME_insert
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:232,1
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:236,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:241,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:245,1
    - Dst: lh_OBJ_NAME_error
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:247,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:249,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - name
    - type
    - data
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 259
    functionName: OBJ_NAME_add
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - OPENSSL_malloc
    - lh_OBJ_NAME_error
    - sk_NAME_FUNCS_num
    - OPENSSL_free
    - sk_NAME_FUNCS_value
    - lh_OBJ_NAME_insert
    - CRYPTO_THREAD_unlock
    - OBJ_NAME_init
    linkageType: ''
    returnType: int
    signature: int OBJ_NAME_add(const char *name, int type, const char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:266,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:269,1
    - Dst: lh_OBJ_NAME_delete
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:274,1
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:278,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:283,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:287,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 293
    functionName: OBJ_NAME_remove
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - sk_NAME_FUNCS_num
    - OPENSSL_free
    - sk_NAME_FUNCS_value
    - lh_OBJ_NAME_delete
    - CRYPTO_THREAD_unlock
    - OBJ_NAME_init
    linkageType: ''
    returnType: int
    signature: int OBJ_NAME_remove(const char *name, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_DOALL*::fn
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - name
    - d
    argTypes:
    - OBJ_NAME*
    - OBJ_DOALL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: do_all_fn
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - OBJ_DOALL*::fn
    linkageType: ''
    returnType: void
    signature: void do_all_fn(const OBJ_NAME *name, OBJ_DOALL *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_OBJ_NAME_doall_OBJ_DOALL
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 319
    functionName: OBJ_NAME_do_all
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - lh_OBJ_NAME_doall_OBJ_DOALL
    linkageType: ''
    returnType: void
    signature: "void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void
      *arg),\n                     void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - d_
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: do_all_sorted_fn
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_all_sorted_fn(const OBJ_NAME *name, void *d_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n1_
    - n2_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: do_all_sorted_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int do_all_sorted_cmp(const void *n1_, const void *n2_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:354,1
    - Dst: lh_OBJ_NAME_num_items
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:354,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:358,1
    - Dst: qsort
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:360,1
    - Dst: fn
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:363,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 367
    functionName: OBJ_NAME_do_all_sorted
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - fn
    - lh_OBJ_NAME_num_items
    - qsort
    - OPENSSL_free
    - OBJ_NAME_do_all
    linkageType: ''
    returnType: void
    signature: "void OBJ_NAME_do_all_sorted(int type,\n                            void
      (*fn) (const OBJ_NAME *, void *arg),\n                            void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_remove
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - onp
    argTypes:
    - OBJ_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: names_lh_free_doall
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_remove
    linkageType: ''
    returnType: void
    signature: void names_lh_free_doall(OBJ_NAME *onp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - NAME_FUNCS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: name_funcs_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void name_funcs_free(NAME_FUNCS *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lh_OBJ_NAME_get_down_load
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:393,1
    - Dst: lh_OBJ_NAME_set_down_load
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:394,1
    - Dst: lh_OBJ_NAME_doall
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:396,1
    - Dst: lh_OBJ_NAME_free
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:398,1
    - Dst: sk_NAME_FUNCS_pop_free
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:399,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:400,1
    - Dst: lh_OBJ_NAME_set_down_load
      Src: /src/openssl-1.1.1g/crypto/objects/o_names.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 406
    functionName: OBJ_NAME_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/o_names.c
    functionUses: 1
    functionsReached:
    - lh_OBJ_NAME_set_down_load
    - CRYPTO_THREAD_lock_free
    - sk_NAME_FUNCS_pop_free
    - lh_OBJ_NAME_doall
    - lh_OBJ_NAME_get_down_load
    - lh_OBJ_NAME_free
    linkageType: ''
    returnType: void
    signature: void OBJ_NAME_cleanup(int type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_new
      Src: /src/openssl-1.1.1g/crypto/objects/obj_lib.c:26,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_lib.c:28,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/objects/obj_lib.c:38,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/objects/obj_lib.c:44,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/objects/obj_lib.c:47,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/crypto/objects/obj_lib.c:52,1
    - Dst: OBJerr
      Src: /src/openssl-1.1.1g/crypto/objects/obj_lib.c:53,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - o
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 55
    functionName: OBJ_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_lib.c
    functionUses: 17
    functionsReached:
    - ASN1_OBJECT_new
    - OBJerr
    - ASN1_OBJECT_free
    - OPENSSL_strdup
    - OPENSSL_memdup
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/objects/obj_lib.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OBJECT*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: OBJ_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/objects/obj_lib.c
    functionUses: 16
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new_method
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: RSA_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - RSA_new_method
    linkageType: ''
    returnType: RSA
    signature: RSA *RSA_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: RSA_get_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_get_method(const RSA *rsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_METHOD*::finish
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:39,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:41,1
    - Dst: RSA_METHOD*::init
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - rsa
    - meth
    argTypes:
    - RSA*
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 6
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: RSA_set_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - RSA_METHOD*::finish
    - ENGINE_finish
    - RSA_METHOD*::init
    linkageType: ''
    returnType: int
    signature: int RSA_set_method(RSA *rsa, const RSA_METHOD *meth)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:52,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:55,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:60,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:62,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:63,1
    - Dst: RSA_get_default_method
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:67,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:71,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:72,1
    - Dst: ENGINE_get_default_RSA
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:77,1
    - Dst: ENGINE_get_RSA
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:80,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:82,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:89,1
    - Dst: RSA*::meth::init
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:93,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:94,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:101,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 103
    functionName: RSA_new_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - RSA_get_default_method
    - RSA*::meth::init
    - OPENSSL_free
    - ENGINE_get_default_RSA
    - ENGINE_get_RSA
    - CRYPTO_THREAD_lock_new
    - CRYPTO_new_ex_data
    - OPENSSL_zalloc
    - RSAerr
    - RSA_free
    - ENGINE_init
    linkageType: ''
    returnType: RSA
    signature: RSA *RSA_new_method(ENGINE *engine)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:112,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:113,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:116,1
    - Dst: RSA*::meth::finish
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:119,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:121,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:124,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:126,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:128,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:129,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:130,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:131,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:132,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:133,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:134,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:135,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:136,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:137,1
    - Dst: BN_BLINDING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:138,1
    - Dst: BN_BLINDING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:139,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 105
    functionDepth: 6
    functionLinenumber: 105
    functionLinenumberEnd: 142
    functionName: RSA_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 5
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - BN_BLINDING_free
    - OPENSSL_free
    - RSA_PSS_PARAMS_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - ENGINE_finish
    - BN_free
    - RSA*::meth::finish
    - sk_RSA_PRIME_INFO_pop_free
    - CRYPTO_DOWN_REF
    - CRYPTO_free_ex_data
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void RSA_free(RSA *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:148,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:151,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: RSA_up_ref
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int RSA_up_ref(RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - idx
    - arg
    argTypes:
    - RSA*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: RSA_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int RSA_set_ex_data(RSA *r, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - idx
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: RSA_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 3
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *RSA_get_ex_data(const RSA *r, int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:168,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:172,1
    - Dst: rsa_multip_cap
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:174,1
    - Dst: BN_security_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: RSA_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_security_bits
    - sk_RSA_PRIME_INFO_num
    - rsa_multip_cap
    linkageType: ''
    returnType: int
    signature: int RSA_security_bits(const RSA *rsa)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:191,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:195,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:199,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - r
    - n
    - e
    - d
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: RSA_set0_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - BN_set_flags
    - BN_free
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:217,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:219,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:222,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 228
    functionName: RSA_set0_factors
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - BN_set_flags
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:241,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:243,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:246,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:248,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:251,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - r
    - dmp1
    - dmq1
    - iqmp
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 257
    functionName: RSA_set0_crt_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - BN_set_flags
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM
      *iqmp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:266,1
    - Dst: sk_RSA_PRIME_INFO_new_reserve
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:273,1
    - Dst: rsa_multip_info_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:281,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:285,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:286,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:287,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:291,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:292,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:293,1
    - Dst: rsa_multip_info_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:295,1
    - Dst: sk_RSA_PRIME_INFO_push
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:298,1
    - Dst: rsa_multip_calc_product
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:303,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:315,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:323,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 5
    argNames:
    - r
    - primes
    - exps
    - coeffs
    - pnum
    argTypes:
    - RSA*
    - BIGNUM*[]
    - BIGNUM*[]
    - BIGNUM*[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 325
    functionName: RSA_set0_multi_prime_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_set_flags
    - rsa_multip_info_new
    - STACK_OF
    - sk_RSA_PRIME_INFO_pop_free
    - sk_RSA_PRIME_INFO_new_reserve
    - rsa_multip_calc_product
    - rsa_multip_info_free
    - sk_RSA_PRIME_INFO_push
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: "int RSA_set0_multi_prime_params(RSA *r, BIGNUM *primes[], BIGNUM *exps[],\n
      \                               BIGNUM *coeffs[], int pnum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - n
    - e
    - d
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 336
    functionName: RSA_get0_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RSA_get0_key(const RSA *r,\n                  const BIGNUM **n,
      const BIGNUM **e, const BIGNUM **d)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: RSA_get0_factors
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM
      **q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: RSA_get_multi_prime_extra_count
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - sk_RSA_PRIME_INFO_num
    linkageType: ''
    returnType: int
    signature: int RSA_get_multi_prime_extra_count(const RSA *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_multi_prime_extra_count
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:361,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - primes
    argTypes:
    - RSA*
    - BIGNUM*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 374
    functionName: RSA_get0_multi_prime_factors
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - RSA_get_multi_prime_extra_count
    - sk_RSA_PRIME_INFO_value
    linkageType: ''
    returnType: int
    signature: int RSA_get0_multi_prime_factors(const RSA *r, const BIGNUM *primes[])
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - dmp1
    - dmq1
    - iqmp
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 386
    functionName: RSA_get0_crt_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RSA_get0_crt_params(const RSA *r,\n                         const
      BIGNUM **dmp1, const BIGNUM **dmq1,\n                         const BIGNUM **iqmp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_multi_prime_extra_count
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:393,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - r
    - exps
    - coeffs
    argTypes:
    - RSA*
    - BIGNUM*[]
    - BIGNUM*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 412
    functionName: RSA_get0_multi_prime_crt_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - RSA_get_multi_prime_extra_count
    - sk_RSA_PRIME_INFO_value
    linkageType: ''
    returnType: int
    signature: "int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[],\n
      \                                   const BIGNUM *coeffs[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: RSA_get0_n
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_n(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: RSA_get0_e
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_e(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: RSA_get0_d
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_d(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: RSA_get0_p
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_p(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: RSA_get0_q
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_q(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: RSA_get0_dmp1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_dmp1(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: RSA_get0_dmq1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_dmq1(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: RSA_get0_iqmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_iqmp(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: RSA_get0_pss_params
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_PSS_PARAMS
    signature: RSA_PSS_PARAMS *RSA_get0_pss_params(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: RSA_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_clear_flags(RSA *r, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: RSA_test_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_test_flags(const RSA *r, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: RSA_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_set_flags(RSA *r, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: RSA_get_version
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_get_version(RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: RSA_get0_engine
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *RSA_get0_engine(const RSA *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - optype
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 493
    functionName: RSA_pkey_ctx_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int RSA_pkey_ctx_ctrl(EVP_PKEY_CTX *ctx, int optype, int cmd, int p1,
      void *p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:42,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:44,1
    - Dst: OBJ_length
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:47,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:48,1
    - Dst: i2d_X509_SIG
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - out
    - out_len
    - type
    - m
    - m_len
    argTypes:
    - unsigned char**
    - int*
    - int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 67
    functionName: encode_pkcs1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - i2d_X509_SIG
    - OBJ_nid2obj
    - OBJ_length
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int encode_pkcs1(unsigned char **out, int *out_len, int type,\n                        const
      unsigned char *m, unsigned int m_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_sign
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:77,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:88,1
    - Dst: encode_pkcs1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:94,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:99,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:100,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:103,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:112,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 6
    argNames:
    - type
    - m
    - m_len
    - sigret
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 114
    functionName: RSA_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - RSA_size
    - RSA*::meth::rsa_sign
    - RSAerr
    - RSA_private_encrypt
    - OPENSSL_clear_free
    - encode_pkcs1
    linkageType: ''
    returnType: int
    signature: "int RSA_sign(int type, const unsigned char *m, unsigned int m_len,\n
      \            unsigned char *sigret, unsigned int *siglen, RSA *rsa)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:131,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:132,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:137,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:139,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:143,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:155,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:160,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:164,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:168,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:169,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:180,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:184,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:188,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:189,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:200,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:202,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:206,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:208,1
    - Dst: encode_pkcs1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:215,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:219,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:220,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:226,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:234,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:235,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 87
    argCount: 8
    argNames:
    - type
    - m
    - m_len
    - rm
    - prm_len
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 237
    functionName: int_rsa_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbynid
    - OPENSSL_malloc
    - RSA_size
    - memcmp
    - memcpy
    - RSAerr
    - RSA_public_decrypt
    - EVP_MD_size
    - OPENSSL_clear_free
    - encode_pkcs1
    linkageType: ''
    returnType: int
    signature: "int int_rsa_verify(int type, const unsigned char *m, unsigned int
      m_len,\n                   unsigned char *rm, size_t *prm_len,\n                   const
      unsigned char *sigbuf, size_t siglen, RSA *rsa)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_verify
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:244,1
    - Dst: int_rsa_verify
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - type
    - m
    - m_len
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: RSA_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - int_rsa_verify
    - RSA*::meth::rsa_verify
    linkageType: ''
    returnType: int
    signature: "int RSA_verify(int type, const unsigned char *m, unsigned int m_len,\n
      \              const unsigned char *sigbuf, unsigned int siglen, RSA *rsa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:18,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pinfo
    argTypes:
    - RSA_PRIME_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: rsa_multip_info_free_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void rsa_multip_info_free_ex(RSA_PRIME_INFO *pinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:25,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:26,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:27,1
    - Dst: rsa_multip_info_free_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pinfo
    argTypes:
    - RSA_PRIME_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: rsa_multip_info_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c
    functionUses: 1
    functionsReached:
    - rsa_multip_info_free_ex
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void rsa_multip_info_free(RSA_PRIME_INFO *pinfo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:36,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:37,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:40,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:42,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:44,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:46,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:52,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:53,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:54,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: rsa_multip_info_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c
    functionUses: 1
    functionsReached:
    - BN_secure_new
    - OPENSSL_free
    - BN_free
    - OPENSSL_zalloc
    - RSAerr
    linkageType: ''
    returnType: RSA_PRIME_INFO
    signature: RSA_PRIME_INFO *rsa_multip_info_new(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:68,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:73,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:81,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:83,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:87,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 98
    functionName: rsa_multip_calc_product
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c
    functionUses: 1
    functionsReached:
    - sk_RSA_PRIME_INFO_value
    - BN_secure_new
    - BN_mul
    - BN_CTX_free
    - BN_CTX_new
    - sk_RSA_PRIME_INFO_num
    linkageType: ''
    returnType: int
    signature: int rsa_multip_calc_product(RSA *rsa)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: rsa_multip_cap
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rsa_multip_cap(int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c:30,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c:42,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: RSA_padding_add_X931
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_X931(unsigned char *to, int tlen,\n                         const
      unsigned char *from, int flen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c:61,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c:72,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c:80,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c:89,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c:93,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 96
    functionName: RSA_padding_check_X931
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_X931(unsigned char *to, int tlen,\n                           const
      unsigned char *from, int flen, int num)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 117
    functionName: RSA_X931_hash_id
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_X931_hash_id(int nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:16,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:21,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:25,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: RSA_meth_new
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_zalloc
    - RSAerr
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_meth_new(const char *name, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: RSA_meth_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void RSA_meth_free(RSA_METHOD *meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:42,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:45,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:47,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:51,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: RSA_meth_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - memcpy
    - OPENSSL_strdup
    - RSAerr
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: RSA_meth_get0_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *RSA_meth_get0_name(const RSA_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:65,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:68,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - meth
    - name
    argTypes:
    - RSA_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: RSA_meth_set1_name
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - RSAerr
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set1_name(RSA_METHOD *meth, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: RSA_meth_get_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_get_flags(const RSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - meth
    - flags
    argTypes:
    - RSA_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: RSA_meth_set_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set_flags(RSA_METHOD *meth, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: RSA_meth_get0_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *RSA_meth_get0_app_data(const RSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - meth
    - app_data
    argTypes:
    - RSA_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: RSA_meth_set0_app_data
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: "(*RSA_meth_get_pub_enc(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 114
    functionName: RSA_meth_set_pub_enc
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_pub_enc(RSA_METHOD *meth,\n                         int
      (*pub_enc) (int flen, const unsigned char *from,\n                                         unsigned
      char *to, RSA *rsa,\n                                         int padding))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: "(*RSA_meth_get_pub_dec(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: RSA_meth_set_pub_dec
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_pub_dec(RSA_METHOD *meth,\n                         int
      (*pub_dec) (int flen, const unsigned char *from,\n                                         unsigned
      char *to, RSA *rsa,\n                                         int padding))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: "(*RSA_meth_get_priv_enc(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: RSA_meth_set_priv_enc
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_priv_enc(RSA_METHOD *meth,\n                          int
      (*priv_enc) (int flen, const unsigned char *from,\n                                           unsigned
      char *to, RSA *rsa,\n                                           int padding))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: "(*RSA_meth_get_priv_dec(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: RSA_meth_set_priv_dec
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_priv_dec(RSA_METHOD *meth,\n                          int
      (*priv_dec) (int flen, const unsigned char *from,\n                                           unsigned
      char *to, RSA *rsa,\n                                           int padding))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r0
    - i
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: "(*RSA_meth_get_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r0,
      const BIGNUM *i, RSA *rsa, BN_CTX *ctx)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r0,
      const BIGNUM *i, RSA *rsa, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: RSA_meth_set_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_mod_exp(RSA_METHOD *meth,\n                         int
      (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa,\n                                         BN_CTX
      *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    - m_ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: "(*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM
      *r, const BIGNUM *a, const BIGNUM *p,\n     const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX
      *m_ctx)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM
      *r, const BIGNUM *a, const BIGNUM *p,\n     const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX
      *m_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: RSA_meth_set_bn_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_bn_mod_exp(RSA_METHOD *meth,\n                            int
      (*bn_mod_exp) (BIGNUM *r,\n                                               const
      BIGNUM *a,\n                                               const BIGNUM *p,\n
      \                                              const BIGNUM *m,\n                                               BN_CTX
      *ctx,\n                                               BN_MONT_CTX *m_ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa)
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: RSA_meth_set_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set_init(RSA_METHOD *meth, int (*init) (RSA *rsa))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa)
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: RSA_meth_set_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set_finish(RSA_METHOD *meth, int (*finish) (RSA *rsa))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - type
    - m
    - m_length
    - sigret
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: "(*RSA_meth_get_sign(const RSA_METHOD *meth))\n    (int type,\n
      \    const unsigned char *m, unsigned int m_length,\n     unsigned char *sigret,
      unsigned int *siglen,\n     const RSA *rsa)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_sign(const RSA_METHOD *meth))\n    (int type,\n
      \    const unsigned char *m, unsigned int m_length,\n     unsigned char *sigret,
      unsigned int *siglen,\n     const RSA *rsa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: RSA_meth_set_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_sign(RSA_METHOD *meth,\n                      int
      (*sign) (int type, const unsigned char *m,\n                                   unsigned
      int m_length,\n                                   unsigned char *sigret, unsigned
      int *siglen,\n                                   const RSA *rsa))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - dtype
    - m
    - m_length
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: "(*RSA_meth_get_verify(const RSA_METHOD *meth))\n    (int dtype,
      const unsigned char *m,\n     unsigned int m_length, const unsigned char *sigbuf,\n
      \    unsigned int siglen, const RSA *rsa)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_verify(const RSA_METHOD *meth))\n    (int dtype,
      const unsigned char *m,\n     unsigned int m_length, const unsigned char *sigbuf,\n
      \    unsigned int siglen, const RSA *rsa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: RSA_meth_set_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_verify(RSA_METHOD *meth,\n                        int
      (*verify) (int dtype, const unsigned char *m,\n                                       unsigned
      int m_length,\n                                       const unsigned char *sigbuf,\n
      \                                      unsigned int siglen, const RSA *rsa))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rsa
    - bits
    - e
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: "(*RSA_meth_get_keygen(const RSA_METHOD *meth))\n    (RSA *rsa,
      int bits, BIGNUM *e, BN_GENCB *cb)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_keygen(const RSA_METHOD *meth))\n    (RSA *rsa,
      int bits, BIGNUM *e, BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: RSA_meth_set_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_keygen(RSA_METHOD *meth,\n                        int
      (*keygen) (RSA *rsa, int bits, BIGNUM *e,\n                                       BN_GENCB
      *cb))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rsa
    - bits
    - primes
    - e
    - cb
    argTypes:
    - RSA*
    - int
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: "(*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth))\n    (RSA
      *rsa, int bits, int primes, BIGNUM *e, BN_GENCB *cb)"
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth))\n    (RSA
      *rsa, int bits, int primes, BIGNUM *e, BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: RSA_meth_set_multi_prime_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth,\n                                    int
      (*keygen) (RSA *rsa, int bits,\n                                                   int
      primes, BIGNUM *e,\n                                                   BN_GENCB
      *cb))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: RSA_set_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_set_default_method(const RSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: RSA_get_default_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_get_default_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: RSA_PKCS1_OpenSSL
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_PKCS1_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: RSA_null_method
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_null_method(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:76,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:77,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:81,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:82,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:87,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:88,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:89,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:94,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:96,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:97,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:98,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:99,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:100,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:102,1
    - Dst: RSA_padding_add_PKCS1_type_2
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:108,1
    - Dst: RSA_padding_add_PKCS1_OAEP
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:111,1
    - Dst: RSA_padding_add_SSLv23
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:114,1
    - Dst: RSA_padding_add_none
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:117,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:120,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:126,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:129,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:131,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:137,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:141,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:149,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:151,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:152,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:153,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 68
    functionDepth: 8
    functionLinenumber: 68
    functionLinenumberEnd: 155
    functionName: rsa_ossl_public_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_bn2binpad
    - OPENSSL_malloc
    - RSA_padding_add_PKCS1_OAEP
    - RSA_padding_add_PKCS1_type_2
    - BN_bin2bn
    - BN_MONT_CTX_set_locked
    - BN_ucmp
    - RSA_padding_add_none
    - BN_CTX_end
    - BN_CTX_free
    - RSAerr
    - BN_CTX_get
    - RSA*::meth::bn_mod_exp
    - OPENSSL_clear_free
    - BN_num_bytes
    - BN_CTX_start
    - RSA_padding_add_SSLv23
    - BN_num_bits
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int rsa_ossl_public_encrypt(int flen, const unsigned char *from,\n
      \                                 unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:161,1
    - Dst: RSA_setup_blinding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:164,1
    - Dst: BN_BLINDING_is_current_thread
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:171,1
    - Dst: RSA_setup_blinding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:186,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - rsa
    - local
    - ctx
    argTypes:
    - RSA*
    - int*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 194
    functionName: rsa_get_blinding
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - RSA_setup_blinding
    - BN_BLINDING_is_current_thread
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: BN_BLINDING
    signature: BN_BLINDING *rsa_get_blinding(RSA *rsa, int *local, BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_convert_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:203,1
    - Dst: BN_BLINDING_lock
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:210,1
    - Dst: BN_BLINDING_convert_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:211,1
    - Dst: BN_BLINDING_unlock
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - b
    - f
    - unblind
    - ctx
    argTypes:
    - BN_BLINDING*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 196
    functionDepth: 5
    functionLinenumber: 196
    functionLinenumberEnd: 216
    functionName: rsa_blinding_convert
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_unlock
    - BN_BLINDING_lock
    - BN_BLINDING_convert_ex
    linkageType: ''
    returnType: int
    signature: "int rsa_blinding_convert(BN_BLINDING *b, BIGNUM *f, BIGNUM *unblind,\n
      \                               BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_invert_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b
    - f
    - unblind
    - ctx
    argTypes:
    - BN_BLINDING*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: rsa_blinding_invert
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_invert_ex
    linkageType: ''
    returnType: int
    signature: "int rsa_blinding_invert(BN_BLINDING *b, BIGNUM *f, BIGNUM *unblind,\n
      \                              BN_CTX *ctx)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:249,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:251,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:252,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:253,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:254,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:255,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:257,1
    - Dst: RSA_padding_add_PKCS1_type_1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:263,1
    - Dst: RSA_padding_add_X931
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:266,1
    - Dst: RSA_padding_add_none
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:269,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:273,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:279,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:282,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:284,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:290,1
    - Dst: rsa_get_blinding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:295,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:297,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:303,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:304,1
    - Dst: rsa_blinding_convert
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:307,1
    - Dst: RSA*::meth::rsa_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:316,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:319,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:321,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:325,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:326,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:329,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:331,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:333,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:337,1
    - Dst: rsa_blinding_invert
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:341,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:345,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:347,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:359,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:361,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:362,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:363,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 108
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 233
    functionDepth: 8
    functionLinenumber: 233
    functionLinenumberEnd: 365
    functionName: rsa_ossl_private_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - BN_bn2binpad
    - OPENSSL_malloc
    - RSA*::meth::rsa_mod_exp
    - rsa_blinding_invert
    - BN_bin2bn
    - rsa_get_blinding
    - BN_free
    - BN_MONT_CTX_set_locked
    - rsa_blinding_convert
    - BN_sub
    - BN_ucmp
    - RSA_padding_add_none
    - RSA_padding_add_PKCS1_type_1
    - BN_new
    - BN_with_flags
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - RSAerr
    - RSA*::meth::bn_mod_exp
    - OPENSSL_clear_free
    - BN_num_bytes
    - BN_CTX_start
    - RSA_padding_add_X931
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int rsa_ossl_private_encrypt(int flen, const unsigned char *from,\n
      \                                  unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:383,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:385,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:386,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:387,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:388,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:389,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:391,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:400,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:406,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:409,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:410,1
    - Dst: rsa_get_blinding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:416,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:418,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:424,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:425,1
    - Dst: rsa_blinding_convert
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:428,1
    - Dst: RSA*::meth::rsa_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:438,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:441,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:443,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:447,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:448,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:451,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:454,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:456,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:459,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:461,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:465,1
    - Dst: rsa_blinding_invert
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:469,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:472,1
    - Dst: RSA_padding_check_PKCS1_type_2
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:476,1
    - Dst: RSA_padding_check_PKCS1_OAEP
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:479,1
    - Dst: RSA_padding_check_SSLv23
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:482,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:485,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:488,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:491,1
    - Dst: err_clear_last_constant_time
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:492,1
    - Dst: constant_time_msb
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:492,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:495,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:496,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:497,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 106
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 367
    functionDepth: 8
    functionLinenumber: 367
    functionLinenumberEnd: 499
    functionName: rsa_ossl_private_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - err_clear_last_constant_time
    - RSA_padding_check_PKCS1_type_2
    - BN_bn2binpad
    - OPENSSL_malloc
    - RSA*::meth::rsa_mod_exp
    - rsa_blinding_invert
    - memcpy
    - BN_bin2bn
    - rsa_get_blinding
    - BN_free
    - BN_MONT_CTX_set_locked
    - rsa_blinding_convert
    - RSA_padding_check_PKCS1_OAEP
    - BN_ucmp
    - constant_time_msb
    - BN_new
    - BN_with_flags
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - RSAerr
    - RSA*::meth::bn_mod_exp
    - OPENSSL_clear_free
    - BN_num_bytes
    - BN_CTX_start
    - RSA_padding_check_SSLv23
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int rsa_ossl_private_decrypt(int flen, const unsigned char *from,\n
      \                                  unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:510,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:511,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:515,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:516,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:521,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:522,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:523,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:528,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:530,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:531,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:532,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:533,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:534,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:536,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:545,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:549,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:552,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:553,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:559,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:563,1
    - Dst: bn_get_words
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:567,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:568,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:571,1
    - Dst: RSA_padding_check_PKCS1_type_1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:575,1
    - Dst: RSA_padding_check_X931
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:578,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:581,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:584,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:588,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:591,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:592,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:593,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 502
    functionDepth: 8
    functionLinenumber: 502
    functionLinenumberEnd: 595
    functionName: rsa_ossl_public_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_bn2binpad
    - OPENSSL_malloc
    - memcpy
    - BN_bin2bn
    - BN_MONT_CTX_set_locked
    - BN_sub
    - BN_ucmp
    - bn_get_words
    - BN_CTX_end
    - BN_CTX_free
    - RSAerr
    - BN_CTX_get
    - RSA*::meth::bn_mod_exp
    - OPENSSL_clear_free
    - RSA_padding_check_X931
    - RSA_padding_check_PKCS1_type_1
    - BN_num_bytes
    - BN_CTX_start
    - BN_num_bits
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int rsa_ossl_public_decrypt(int flen, const unsigned char *from,\n
      \                                 unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:603,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:605,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:606,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:607,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:608,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:613,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:618,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:627,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:628,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:630,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:631,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:633,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:637,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:638,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:639,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:640,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:647,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:651,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:651,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:655,1
    - Dst: bn_from_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:668,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:669,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:671,1
    - Dst: bn_from_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:674,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:675,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:677,1
    - Dst: bn_mod_sub_fixed_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:686,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:689,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:690,1
    - Dst: bn_mul_fixed_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:693,1
    - Dst: bn_mod_add_fixed_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:694,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:702,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:705,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:707,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:708,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:713,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:715,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:718,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:721,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:723,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:724,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:728,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:732,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:733,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:737,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:741,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:744,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:747,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:749,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:753,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:767,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:767,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:770,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:771,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:777,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:778,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:779,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:783,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:786,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:787,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:789,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:790,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:791,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:795,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:796,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:797,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:802,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:803,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:806,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:812,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:813,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:816,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:820,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:823,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:825,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:826,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:830,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:840,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:841,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:843,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:845,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:850,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:856,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:857,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:858,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:862,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:863,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:867,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:869,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:870,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:874,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:875,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:876,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:879,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:880,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:883,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:884,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:888,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:894,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:898,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:899,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:909,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:911,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:912,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:916,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:918,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:919,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:921,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:928,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:931,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:933,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:935,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:939,1
    - Dst: bn_correct_top
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:950,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:953,1
    CyclomaticComplexity: 115
    EdgeCount: 115
    ICount: 238
    argCount: 4
    argNames:
    - r0
    - I
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 597
    functionDepth: 8
    functionLinenumber: 597
    functionLinenumberEnd: 955
    functionName: rsa_ossl_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - bn_to_mont_fixed_top
    - sk_RSA_PRIME_INFO_num
    - BN_mod
    - bn_from_mont_fixed_top
    - BN_mul
    - BN_mod_exp_mont_consttime
    - BN_free
    - BN_MONT_CTX_set_locked
    - BN_sub
    - sk_RSA_PRIME_INFO_value
    - bn_mod_add_fixed_top
    - bn_mul_mont_fixed_top
    - bn_mul_fixed_top
    - BN_new
    - BN_with_flags
    - BN_CTX_end
    - BN_CTX_get
    - BN_is_zero
    - RSA*::meth::bn_mod_exp
    - BN_mod_exp_mont
    - bn_mod_sub_fixed_top
    - BN_add
    - BN_CTX_start
    - BN_is_negative
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int rsa_ossl_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 961
    functionName: rsa_ossl_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rsa_ossl_init(RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:968,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:969,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:970,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:971,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:972,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 963
    functionDepth: 4
    functionLinenumber: 963
    functionLinenumberEnd: 976
    functionName: rsa_ossl_finish
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - sk_RSA_PRIME_INFO_value
    - sk_RSA_PRIME_INFO_num
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: int rsa_ossl_finish(RSA *rsa)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:31,1
    - Dst: RSA_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:32,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:33,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:44,1
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:48,1
    - Dst: RSA_generate_key_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:50,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:51,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:52,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:56,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:57,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c:58,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - bits
    - e_value
    - cb_arg
    argTypes:
    - int
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 27
    functionDepth: 7
    functionLinenumber: 27
    functionLinenumberEnd: 60
    functionName: RSA_generate_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - BN_new
    - BN_GENCB_set_old
    - RSA_generate_key_ex
    - BN_free
    - BN_set_bit
    - RSA_new
    - BN_GENCB_free
    - RSA_free
    linkageType: ''
    returnType: RSA
    signature: "RSA *RSA_generate_key(int bits, unsigned long e_value,\n                      void
      (*callback) (int, int, void *), void *cb_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:25,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:37,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 42
    functionName: RSA_padding_add_PKCS1_type_1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - memcpy
    - memset
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen,\n                                 const
      unsigned char *from, int flen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:66,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:74,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:87,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:96,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:102,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:109,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:112,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 115
    functionName: RSA_padding_check_PKCS1_type_1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - memcpy
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen,\n
      \                                  const unsigned char *from, int flen,\n                                   int
      num)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:124,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:137,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:142,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: RSA_padding_add_PKCS1_type_2
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - memcpy
    - RAND_bytes
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen,\n                                 const
      unsigned char *from, int flen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:173,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:178,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:180,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:190,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:196,1
    - Dst: constant_time_eq
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:197,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:202,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:204,1
    - Dst: constant_time_ge
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:214,1
    - Dst: constant_time_ge
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:226,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:238,1
    - Dst: constant_time_lt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:238,1
    - Dst: constant_time_eq
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:241,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:243,1
    - Dst: constant_time_lt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:246,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:247,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:250,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:251,1
    - Dst: err_clear_last_constant_time
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:252,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c:254,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 154
    functionDepth: 5
    functionLinenumber: 154
    functionLinenumberEnd: 255
    functionName: RSA_padding_check_PKCS1_type_2
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - constant_time_eq
    - constant_time_lt
    - err_clear_last_constant_time
    - constant_time_select_8
    - constant_time_is_zero
    - RSAerr
    - constant_time_select_int
    - constant_time_ge
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen,\n
      \                                  const unsigned char *from, int flen,\n                                   int
      num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:21,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:21,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:22,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:25,1
    - Dst: RSA_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:26,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: RSA_print_fp
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - RSAerr
    - RSA_print
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int RSA_print_fp(FILE *fp, const RSA *x, int off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:36,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:37,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:39,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: RSA_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_print_private
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: int
    signature: int RSA_print(BIO *bp, const RSA *x, int off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_padding_add_PKCS1_OAEP_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - to
    - tlen
    - from
    - flen
    - param
    - plen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: RSA_padding_add_PKCS1_OAEP
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - RSA_padding_add_PKCS1_OAEP_mgf1
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen,\n                               const
      unsigned char *from, int flen,\n                               const unsigned
      char *param, int plen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:54,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:58,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:61,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:67,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:76,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:78,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:80,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:81,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:85,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:87,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:91,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:96,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:103,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:104,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 8
    argNames:
    - to
    - tlen
    - from
    - flen
    - param
    - plen
    - md
    - mgf1md
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - EVP_MD*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 106
    functionName: RSA_padding_add_PKCS1_OAEP_mgf1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - EVP_sha1
    - RAND_bytes
    - memcpy
    - memset
    - EVP_Digest
    - RSAerr
    - EVP_MD_size
    - OPENSSL_clear_free
    - PKCS1_MGF1
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen,\n
      \                                   const unsigned char *from, int flen,\n                                    const
      unsigned char *param, int plen,\n                                    const EVP_MD
      *md, const EVP_MD *mgf1md)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_padding_check_PKCS1_OAEP_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    - param
    - plen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: RSA_padding_check_PKCS1_OAEP
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - RSA_padding_check_PKCS1_OAEP_mgf1
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,\n                                 const
      unsigned char *from, int flen, int num,\n                                 const
      unsigned char *param, int plen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:134,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:138,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:151,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:157,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:159,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:163,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:165,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:177,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:188,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:193,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:198,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:203,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:206,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:206,1
    - Dst: constant_time_eq
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:213,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:214,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:215,1
    - Dst: constant_time_ge
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:234,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:246,1
    - Dst: constant_time_lt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:246,1
    - Dst: constant_time_eq
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:249,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:251,1
    - Dst: constant_time_lt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:254,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:255,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:262,1
    - Dst: err_clear_last_constant_time
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:264,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:266,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:267,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:268,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:270,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 9
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    - param
    - plen
    - md
    - mgf1md
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    - unsigned char*
    - int
    - EVP_MD*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 271
    functionName: RSA_padding_check_PKCS1_OAEP_mgf1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - constant_time_eq
    - constant_time_lt
    - err_clear_last_constant_time
    - constant_time_select_8
    - EVP_sha1
    - constant_time_is_zero
    - CRYPTO_memcmp
    - EVP_Digest
    - RSAerr
    - constant_time_select_int
    - EVP_MD_size
    - constant_time_ge
    - OPENSSL_clear_free
    - PKCS1_MGF1
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen,\n
      \                                     const unsigned char *from, int flen,\n
      \                                     int num, const unsigned char *param,\n
      \                                     int plen, const EVP_MD *md,\n                                      const
      EVP_MD *mgf1md)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:278,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:285,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:293,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:294,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:295,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:298,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:302,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:304,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:310,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c:311,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 5
    argNames:
    - mask
    - len
    - seed
    - seedlen
    - dgst
    argTypes:
    - unsigned char*
    - long
    - unsigned char*
    - long
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 313
    functionName: PKCS1_MGF1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c
    functionUses: 2
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - memcpy
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - EVP_MD_size
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int PKCS1_MGF1(unsigned char *mask, long len,\n               const
      unsigned char *seed, long seedlen, const EVP_MD *dgst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_verify_PKCS1_PSS_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rsa
    - mHash
    - Hash
    - EM
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - EVP_MD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: RSA_verify_PKCS1_PSS
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached:
    - RSA_verify_PKCS1_PSS_mgf1
    linkageType: ''
    returnType: int
    signature: "int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash,\n                         const
      EVP_MD *Hash, const unsigned char *EM,\n                         int sLen)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:41,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:50,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:63,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:67,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:68,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:70,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:78,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:84,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:88,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:93,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:95,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:98,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:106,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:110,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:113,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:114,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:115,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:118,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:121,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:123,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:131,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:132,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 96
    argCount: 6
    argNames:
    - rsa
    - mHash
    - Hash
    - mgf1Hash
    - EM
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - EVP_MD*
    - EVP_MD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 136
    functionName: RSA_verify_PKCS1_PSS_mgf1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - RSA_size
    - memcmp
    - OPENSSL_free
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - RSAerr
    - EVP_MD_CTX_free
    - BN_num_bits
    - EVP_MD_size
    - PKCS1_MGF1
    linkageType: ''
    returnType: int
    signature: "int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash,\n
      \                             const EVP_MD *Hash, const EVP_MD *mgf1Hash,\n
      \                             const unsigned char *EM, int sLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_padding_add_PKCS1_PSS_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rsa
    - EM
    - mHash
    - Hash
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - unsigned char*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: RSA_padding_add_PKCS1_PSS
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached:
    - RSA_padding_add_PKCS1_PSS_mgf1
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM,\n                              const
      unsigned char *mHash,\n                              const EVP_MD *Hash, int
      sLen)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:159,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:174,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:178,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:179,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:185,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:192,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:197,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:199,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:203,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:208,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:211,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:212,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:213,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:215,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:217,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:221,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:246,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c:247,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 6
    argNames:
    - rsa
    - EM
    - mHash
    - Hash
    - mgf1Hash
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - unsigned char*
    - EVP_MD*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 251
    functionName: RSA_padding_add_PKCS1_PSS_mgf1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - RSA_size
    - RAND_bytes
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - RSAerr
    - EVP_MD_CTX_free
    - BN_num_bits
    - EVP_MD_size
    - OPENSSL_clear_free
    - PKCS1_MGF1
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM,\n
      \                                  const unsigned char *mHash,\n                                   const
      EVP_MD *Hash, const EVP_MD *mgf1Hash,\n                                   int
      sLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:24,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:37,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:42,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:48,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 54
    functionName: RSA_padding_add_SSLv23
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c
    functionUses: 1
    functionsReached:
    - memcpy
    - RAND_bytes
    - memset
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_SSLv23(unsigned char *to, int tlen,\n                           const
      unsigned char *from, int flen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:74,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:78,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:80,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:90,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:96,1
    - Dst: constant_time_eq
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:97,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:98,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:105,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:107,1
    - Dst: constant_time_eq
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:112,1
    - Dst: constant_time_ge
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:120,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:121,1
    - Dst: constant_time_ge
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:125,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:126,1
    - Dst: constant_time_ge
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:140,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:141,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:153,1
    - Dst: constant_time_lt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:153,1
    - Dst: constant_time_eq
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:156,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:158,1
    - Dst: constant_time_lt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:161,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:162,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:165,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:166,1
    - Dst: err_clear_last_constant_time
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:167,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c:169,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 54
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 170
    functionName: RSA_padding_check_SSLv23
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - constant_time_eq
    - constant_time_lt
    - err_clear_last_constant_time
    - constant_time_select_8
    - constant_time_is_zero
    - RSAerr
    - constant_time_select_int
    - constant_time_ge
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_SSLv23(unsigned char *to, int tlen,\n                             const
      unsigned char *from, int flen, int num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_keygen
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:35,1
    - Dst: RSA_generate_multi_prime_key
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - rsa
    - bits
    - e_value
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: RSA_generate_key_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_keygen
    - RSA_generate_multi_prime_key
    linkageType: ''
    returnType: int
    signature: int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB
      *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_multi_prime_keygen
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:46,1
    - Dst: RSA*::meth::rsa_keygen
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:56,1
    - Dst: rsa_builtin_keygen
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - rsa
    - bits
    - primes
    - e_value
    - cb
    argTypes:
    - RSA*
    - int
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: RSA_generate_multi_prime_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_keygen
    - rsa_builtin_keygen
    - RSA*::meth::rsa_multi_prime_keygen
    linkageType: ''
    returnType: int
    signature: "int RSA_generate_multi_prime_key(RSA *rsa, int bits, int primes,\n
      \                                BIGNUM *e_value, BN_GENCB *cb)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:71,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:78,1
    - Dst: rsa_multip_cap
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:82,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:84,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:88,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:91,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:92,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:93,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:94,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:106,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:108,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:110,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:112,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:114,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:116,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:118,1
    - Dst: BN_secure_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:120,1
    - Dst: sk_RSA_PRIME_INFO_new_reserve
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:126,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:131,1
    - Dst: rsa_multip_info_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:137,1
    - Dst: sk_RSA_PRIME_INFO_push
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:140,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:144,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:157,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:160,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:164,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:181,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:184,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:189,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:189,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:191,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:192,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:193,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:197,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:198,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:199,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:201,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:205,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:214,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:218,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:222,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:240,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:242,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:257,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:278,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:280,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:282,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:286,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:295,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:295,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:298,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:298,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:301,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:305,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:307,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:307,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:309,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:314,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:319,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:320,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:321,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:325,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:329,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:334,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:337,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:338,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:339,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:345,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:347,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:348,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:354,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:358,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:362,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:365,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:366,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:372,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:373,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:374,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:375,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:381,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:387,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:390,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c:391,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 256
    argCount: 5
    argNames:
    - rsa
    - bits
    - primes
    - e_value
    - cb
    argTypes:
    - RSA*
    - int
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 393
    functionName: rsa_builtin_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c
    functionUses: 1
    functionsReached:
    - BN_secure_new
    - BN_copy
    - BN_cmp
    - STACK_OF
    - rsa_multip_cap
    - sk_RSA_PRIME_INFO_pop_free
    - ERR_GET_REASON
    - sk_RSA_PRIME_INFO_new_reserve
    - BN_get_word
    - ERR_GET_LIB
    - BN_mod
    - sk_RSA_PRIME_INFO_push
    - BN_set_flags
    - rsa_multip_info_new
    - BN_mul
    - ERR_pop_to_mark
    - BN_free
    - BN_sub
    - sk_RSA_PRIME_INFO_value
    - BN_rshift
    - BN_new
    - BN_with_flags
    - BN_CTX_end
    - ERR_set_mark
    - BN_CTX_free
    - RSAerr
    - BN_CTX_get
    - ERR_peek_last_error
    - BN_CTX_start
    - BN_value_one
    - BN_mod_inverse
    - BN_CTX_new
    - BN_GENCB_call
    - BN_generate_prime_ex
    linkageType: ''
    returnType: int
    signature: "int rsa_builtin_keygen(RSA *rsa, int bits, int primes, BIGNUM *e_value,\n
      \                             BN_GENCB *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:47,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pkey
    - pstr
    - pstrtype
    argTypes:
    - EVP_PKEY*
    - ASN1_STRING**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: rsa_param_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_pack
    linkageType: ''
    returnType: int
    signature: "int rsa_param_encode(const EVP_PKEY *pkey,\n                            ASN1_STRING
      **pstr, int *pstrtype)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:60,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:61,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:66,1
    - Dst: rsa_pss_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - rsa
    - alg
    argTypes:
    - RSA*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: rsa_param_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - rsa_pss_decode
    - OBJ_obj2nid
    - X509_ALGOR_get0
    - RSAerr
    linkageType: ''
    returnType: int
    signature: int rsa_param_decode(RSA *rsa, const X509_ALGOR *alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rsa_param_encode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:82,1
    - Dst: i2d_RSAPublicKey
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:84,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:87,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:87,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: rsa_pub_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - rsa_param_encode
    - OPENSSL_free
    - X509_PUBKEY_set0_param
    - i2d_RSAPublicKey
    linkageType: ''
    returnType: int
    signature: int rsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:102,1
    - Dst: d2i_RSAPublicKey
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:104,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:105,1
    - Dst: rsa_param_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:108,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:109,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:112,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 95
    functionDepth: 7
    functionLinenumber: 95
    functionLinenumberEnd: 117
    functionName: rsa_pub_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_RSAPublicKey
    - X509_PUBKEY_get0_param
    - rsa_param_decode
    - RSAerr
    - RSA_free
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int rsa_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:121,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: rsa_pub_cmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int rsa_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_RSAPrivateKey
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:132,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:133,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: old_rsa_priv_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - RSAerr
    - d2i_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: "int old_rsa_priv_decode(EVP_PKEY *pkey,\n                               const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_RSAPrivateKey
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: old_rsa_priv_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: int old_rsa_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rsa_param_encode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:152,1
    - Dst: i2d_RSAPrivateKey
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:154,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:157,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:158,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:162,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:162,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:164,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 170
    functionName: rsa_priv_encode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_RSAPrivateKey
    - OBJ_nid2obj
    - rsa_param_encode
    - ASN1_STRING_free
    - PKCS8_pkey_set0
    - RSAerr
    linkageType: ''
    returnType: int
    signature: int rsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:179,1
    - Dst: d2i_RSAPrivateKey
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:181,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:183,1
    - Dst: rsa_param_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:186,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:187,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 172
    functionDepth: 7
    functionLinenumber: 172
    functionLinenumberEnd: 192
    functionName: rsa_priv_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_RSAPrivateKey
    - rsa_param_decode
    - RSAerr
    - PKCS8_pkey_get0
    - RSA_free
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int rsa_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: int_rsa_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_size
    linkageType: ''
    returnType: int
    signature: int int_rsa_size(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: rsa_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int rsa_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_security_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: rsa_security_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_security_bits
    linkageType: ''
    returnType: int
    signature: int rsa_security_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 7
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: int_rsa_free
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void int_rsa_free(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:216,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:218,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: rsa_mgf1_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ASN1_TYPE_unpack_sequence
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *rsa_mgf1_decode(X509_ALGOR *alg)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:228,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:232,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:236,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:240,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:244,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:248,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:250,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:254,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:256,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:260,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:263,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:266,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:269,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:271,1
    - Dst: rsa_mgf1_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:273,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:275,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:277,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:280,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:283,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:285,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:287,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:290,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:292,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:295,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:297,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:299,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:302,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:304,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:307,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:312,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 108
    argCount: 4
    argNames:
    - bp
    - pss_key
    - pss
    - indent
    argTypes:
    - BIO*
    - int
    - RSA_PSS_PARAMS*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 315
    functionName: rsa_pss_param_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    - i2a_ASN1_INTEGER
    - rsa_mgf1_decode
    - BIO_puts
    - X509_ALGOR_free
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "int rsa_pss_param_print(BIO *bp, int pss_key, RSA_PSS_PARAMS *pss,\n
      \                              int indent)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:325,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:326,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:328,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:331,1
    - Dst: pkey_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:331,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:335,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:341,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:346,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:348,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:353,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:355,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:357,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:359,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:361,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:363,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:365,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:371,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:373,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:377,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:382,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:387,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:394,1
    - Dst: pkey_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:399,1
    - Dst: rsa_pss_param_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:399,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 89
    argCount: 4
    argNames:
    - bp
    - pkey
    - 'off'
    - priv
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 317
    functionDepth: 6
    functionLinenumber: 317
    functionLinenumberEnd: 404
    functionName: pkey_rsa_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - sk_RSA_PRIME_INFO_value
    - ASN1_bn_print
    - rsa_pss_param_print
    - BIO_printf
    - BN_num_bits
    - sk_RSA_PRIME_INFO_num
    - BIO_indent
    - pkey_is_pss
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_print(BIO *bp, const EVP_PKEY *pkey, int off, int priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_rsa_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 7
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: rsa_pub_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - pkey_rsa_print
    linkageType: ''
    returnType: int
    signature: "int rsa_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_rsa_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 412
    functionDepth: 7
    functionLinenumber: 412
    functionLinenumberEnd: 416
    functionName: rsa_priv_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - pkey_rsa_print
    linkageType: ''
    returnType: int
    signature: "int rsa_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:422,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:422,1
    - Dst: rsa_mgf1_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:429,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 437
    functionName: rsa_pss_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_unpack_sequence
    - ASN1_ITEM_rptr
    - rsa_mgf1_decode
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: RSA_PSS_PARAMS
    signature: RSA_PSS_PARAMS *rsa_pss_decode(const X509_ALGOR *alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:442,1
    - Dst: rsa_pss_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:444,1
    - Dst: rsa_pss_param_print
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:446,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:447,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:450,1
    - Dst: X509_signature_dump
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - bp
    - sigalg
    - sig
    - indent
    - pctx
    argTypes:
    - BIO*
    - X509_ALGOR*
    - ASN1_STRING*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: rsa_sig_print
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_PSS_PARAMS_free
    - rsa_pss_param_print
    - BIO_puts
    - X509_signature_dump
    - rsa_pss_decode
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: "int rsa_sig_print(BIO *bp, const X509_ALGOR *sigalg,\n                         const
      ASN1_STRING *sig, int indent, ASN1_PCTX *pctx)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_SIGNER_INFO_get0_algs
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:469,1
    - Dst: pkey_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:473,1
    - Dst: PKCS7_RECIP_INFO_get0_alg
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:476,1
    - Dst: rsa_cms_sign
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:481,1
    - Dst: rsa_cms_verify
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:483,1
    - Dst: pkey_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:487,1
    - Dst: rsa_cms_encrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:490,1
    - Dst: rsa_cms_decrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:492,1
    - Dst: pkey_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:496,1
    - Dst: rsa_pss_get_param
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:504,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:506,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:509,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:522,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:522,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 458
    functionDepth: 5
    functionLinenumber: 458
    functionLinenumberEnd: 526
    functionName: rsa_pkey_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - PKCS7_SIGNER_INFO_get0_algs
    - OBJ_nid2obj
    - PKCS7_RECIP_INFO_get0_alg
    - EVP_MD_type
    - rsa_cms_encrypt
    - X509_ALGOR_set0
    - rsa_pss_get_param
    - RSAerr
    - rsa_cms_sign
    - rsa_cms_verify
    - pkey_is_pss
    - rsa_cms_decrypt
    linkageType: ''
    returnType: int
    signature: int rsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:531,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:533,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - palg
    - md
    argTypes:
    - X509_ALGOR**
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 529
    functionDepth: 6
    functionLinenumber: 529
    functionLinenumberEnd: 538
    functionName: rsa_md_to_algor
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_new
    - X509_ALGOR_set_md
    - EVP_MD_type
    linkageType: ''
    returnType: int
    signature: int rsa_md_to_algor(X509_ALGOR **palg, const EVP_MD *md)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:547,1
    - Dst: rsa_md_to_algor
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:550,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:552,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:552,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:554,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:557,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:557,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:560,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:561,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - palg
    - mgf1md
    argTypes:
    - X509_ALGOR**
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 541
    functionDepth: 7
    functionLinenumber: 541
    functionLinenumberEnd: 565
    functionName: rsa_md_to_mgf1
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - rsa_md_to_algor
    - OBJ_nid2obj
    - EVP_MD_type
    - ASN1_item_pack
    - X509_ALGOR_new
    - X509_ALGOR_set0
    - ASN1_STRING_free
    - X509_ALGOR_free
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int rsa_md_to_mgf1(X509_ALGOR **palg, const EVP_MD *mgf1md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:573,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:574,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 578
    functionName: rsa_algor_to_md
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - EVP_get_digestbyobj
    - RSAerr
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *rsa_algor_to_md(X509_ALGOR *alg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:588,1
    - Dst: EVP_PKEY_CTX_get_signature_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:591,1
    - Dst: EVP_PKEY_CTX_get_rsa_mgf1_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:593,1
    - Dst: EVP_PKEY_CTX_get_rsa_pss_saltlen
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:595,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:598,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:600,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:600,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:601,1
    - Dst: rsa_pss_params_create
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:607,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - pkctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 608
    functionName: rsa_ctx_to_pss
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_size
    - EVP_PKEY_CTX_get_rsa_mgf1_md
    - EVP_PKEY_CTX_get_rsa_pss_saltlen
    - EVP_PKEY_CTX_get0_pkey
    - EVP_PKEY_bits
    - rsa_pss_params_create
    - EVP_PKEY_CTX_get_signature_md
    - EVP_MD_size
    linkageType: ''
    returnType: RSA_PSS_PARAMS
    signature: RSA_PSS_PARAMS *rsa_ctx_to_pss(EVP_PKEY_CTX *pkctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PSS_PARAMS_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:613,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:618,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:621,1
    - Dst: rsa_md_to_algor
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:624,1
    - Dst: rsa_md_to_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:628,1
    - Dst: rsa_md_to_algor
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:630,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:634,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - sigmd
    - mgf1md
    - saltlen
    argTypes:
    - EVP_MD*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 610
    functionDepth: 8
    functionLinenumber: 610
    functionLinenumberEnd: 636
    functionName: rsa_pss_params_create
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - RSA_PSS_PARAMS_new
    - ASN1_INTEGER_new
    - rsa_md_to_algor
    - RSA_PSS_PARAMS_free
    - rsa_md_to_mgf1
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: RSA_PSS_PARAMS
    signature: "RSA_PSS_PARAMS *rsa_pss_params_create(const EVP_MD *sigmd,\n                                      const
      EVP_MD *mgf1md, int saltlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rsa_ctx_to_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:640,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:646,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:646,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 649
    functionName: rsa_ctx_to_pss_string
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_PSS_PARAMS_free
    - ASN1_ITEM_rptr
    - rsa_ctx_to_pss
    - ASN1_item_pack
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *rsa_ctx_to_pss_string(EVP_PKEY_CTX *pkctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:666,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:667,1
    - Dst: rsa_pss_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:671,1
    - Dst: rsa_pss_get_param
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:673,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:674,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:680,1
    - Dst: EVP_PKEY_CTX_get_signature_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:684,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:686,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:686,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:687,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:692,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:695,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:698,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:704,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - pkctx
    - sigalg
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX*
    - X509_ALGOR*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 657
    functionDepth: 4
    functionLinenumber: 657
    functionLinenumberEnd: 706
    functionName: rsa_pss_to_ctx
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_MD_type
    - EVP_PKEY_CTX_get_signature_md
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - RSA_PSS_PARAMS_free
    - rsa_pss_get_param
    - rsa_pss_decode
    - RSAerr
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - OBJ_obj2nid
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: "int rsa_pss_to_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pkctx,\n                          X509_ALGOR
      *sigalg, EVP_PKEY *pkey)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rsa_algor_to_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:713,1
    - Dst: rsa_algor_to_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:716,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:720,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:722,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:733,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - pss
    - pmd
    - pmgf1md
    - psaltlen
    argTypes:
    - RSA_PSS_PARAMS*
    - EVP_MD**
    - EVP_MD**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 708
    functionDepth: 6
    functionLinenumber: 708
    functionLinenumberEnd: 739
    functionName: rsa_pss_get_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 2
    functionsReached:
    - rsa_algor_to_md
    - ASN1_INTEGER_get
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int rsa_pss_get_param(const RSA_PSS_PARAMS *pss, const EVP_MD **pmd,\n
      \                     const EVP_MD **pmgf1md, int *psaltlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMS_SignerInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:746,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:748,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:749,1
    - Dst: rsa_pss_to_ctx
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:751,1
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:753,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:754,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:760,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 742
    functionDepth: 5
    functionLinenumber: 742
    functionLinenumberEnd: 765
    functionName: rsa_cms_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - rsa_pss_to_ctx
    - CMS_SignerInfo_get0_pkey_ctx
    - CMS_SignerInfo_get0_algs
    - OBJ_find_sigid_algs
    - RSAerr
    - OBJ_obj2nid
    - pkey_ctx_is_pss
    linkageType: ''
    returnType: int
    signature: int rsa_cms_verify(CMS_SignerInfo *si)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:778,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:779,1
    - Dst: rsa_pss_to_ctx
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - sigalg
    - sig
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 773
    functionDepth: 5
    functionLinenumber: 773
    functionLinenumberEnd: 787
    functionName: rsa_item_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - rsa_pss_to_ctx
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int rsa_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,\n
      \                          X509_ALGOR *sigalg, ASN1_BIT_STRING *sig,\n                           EVP_PKEY
      *pkey)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMS_SignerInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:794,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:797,1
    - Dst: EVP_PKEY_CTX_get_rsa_padding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:799,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:803,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:803,1
    - Dst: rsa_ctx_to_pss_string
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:809,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:812,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 790
    functionDepth: 5
    functionLinenumber: 790
    functionLinenumberEnd: 814
    functionName: rsa_cms_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_get_rsa_padding
    - OBJ_nid2obj
    - CMS_SignerInfo_get0_pkey_ctx
    - X509_ALGOR_set0
    - CMS_SignerInfo_get0_algs
    - rsa_ctx_to_pss_string
    linkageType: ''
    returnType: int
    signature: int rsa_cms_sign(CMS_SignerInfo *si)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:822,1
    - Dst: EVP_PKEY_CTX_get_rsa_padding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:824,1
    - Dst: rsa_ctx_to_pss_string
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:830,1
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:835,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:837,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:840,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:840,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:843,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:843,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - alg1
    - alg2
    - sig
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 817
    functionDepth: 5
    functionLinenumber: 817
    functionLinenumberEnd: 848
    functionName: rsa_item_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_get_rsa_padding
    - ASN1_STRING_dup
    - OBJ_nid2obj
    - EVP_MD_CTX_pkey_ctx
    - X509_ALGOR_set0
    - ASN1_STRING_free
    - rsa_ctx_to_pss_string
    linkageType: ''
    returnType: int
    signature: "int rsa_item_sign(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,\n
      \                        X509_ALGOR *alg1, X509_ALGOR *alg2,\n                         ASN1_BIT_STRING
      *sig)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:860,1
    - Dst: rsa_pss_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:863,1
    - Dst: rsa_pss_get_param
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:864,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:866,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:872,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:872,1
    - Dst: X509_SIG_INFO_set
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:877,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:877,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:881,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - siginf
    - sigalg
    - sig
    argTypes:
    - X509_SIG_INFO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 850
    functionDepth: 7
    functionLinenumber: 850
    functionLinenumberEnd: 883
    functionName: rsa_sig_info_set
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - X509_SIG_INFO_set
    - EVP_MD_type
    - OBJ_obj2nid
    - RSA_PSS_PARAMS_free
    - rsa_pss_get_param
    - rsa_pss_decode
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: "int rsa_sig_info_set(X509_SIG_INFO *siginf, const X509_ALGOR *sigalg,\n
      \                           const ASN1_STRING *sig)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:890,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:890,1
    - Dst: rsa_mgf1_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:897,1
    - Dst: RSA_OAEP_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 904
    functionName: rsa_oaep_decode
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_unpack_sequence
    - RSA_OAEP_PARAMS_free
    - ASN1_ITEM_rptr
    - rsa_mgf1_decode
    linkageType: ''
    returnType: RSA_OAEP_PARAMS
    signature: RSA_OAEP_PARAMS *rsa_oaep_decode(const X509_ALGOR *alg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:917,1
    - Dst: CMS_RecipientInfo_ktri_get0_algs
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:920,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:922,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:926,1
    - Dst: rsa_oaep_decode
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:930,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:933,1
    - Dst: rsa_algor_to_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:937,1
    - Dst: rsa_algor_to_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:940,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:947,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:948,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:952,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:962,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:964,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:966,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:968,1
    - Dst: RSA_OAEP_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:974,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 976
    functionName: rsa_cms_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_set_rsa_padding
    - CMS_RecipientInfo_ktri_get0_algs
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - CMS_RecipientInfo_get0_pkey_ctx
    - rsa_algor_to_md
    - RSA_OAEP_PARAMS_free
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - RSAerr
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - rsa_oaep_decode
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int rsa_cms_decrypt(CMS_RecipientInfo *ri)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:984,1
    - Dst: CMS_RecipientInfo_ktri_get0_algs
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:988,1
    - Dst: EVP_PKEY_CTX_get_rsa_padding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:991,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:995,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:995,1
    - Dst: EVP_PKEY_CTX_get_rsa_oaep_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1001,1
    - Dst: EVP_PKEY_CTX_get_rsa_mgf1_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1003,1
    - Dst: EVP_PKEY_CTX_get0_rsa_oaep_label
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1005,1
    - Dst: RSA_OAEP_PARAMS_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1008,1
    - Dst: rsa_md_to_algor
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1011,1
    - Dst: rsa_md_to_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1013,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1017,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1020,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1023,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1024,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1027,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1027,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1031,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1031,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1033,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1033,1
    - Dst: RSA_OAEP_PARAMS_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1037,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1038,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 978
    functionDepth: 8
    functionLinenumber: 978
    functionLinenumberEnd: 1040
    functionName: rsa_cms_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - rsa_md_to_algor
    - CMS_RecipientInfo_get0_pkey_ctx
    - ASN1_ITEM_rptr
    - EVP_PKEY_CTX_get_rsa_padding
    - ASN1_OCTET_STRING_set
    - EVP_PKEY_CTX_get_rsa_mgf1_md
    - CMS_RecipientInfo_ktri_get0_algs
    - RSA_OAEP_PARAMS_new
    - X509_ALGOR_new
    - ASN1_item_pack
    - OBJ_nid2obj
    - EVP_PKEY_CTX_get0_rsa_oaep_label
    - X509_ALGOR_set0
    - ASN1_STRING_free
    - ASN1_OCTET_STRING_free
    - RSA_OAEP_PARAMS_free
    - ASN1_OCTET_STRING_new
    - rsa_md_to_mgf1
    - EVP_PKEY_CTX_get_rsa_oaep_md
    linkageType: ''
    returnType: int
    signature: int rsa_cms_encrypt(CMS_RecipientInfo *ri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_check_key_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1046
    functionName: rsa_pkey_check
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_check_key_ex
    linkageType: ''
    returnType: int
    signature: int rsa_pkey_check(const EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c:26,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c:31,1
    - Dst: rsa_multip_calc_product
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 7
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: rsa_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - rsa_multip_calc_product
    - RSA_free
    - RSA_new
    linkageType: ''
    returnType: int
    signature: "int rsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: rsa_pss_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_free
    linkageType: ''
    returnType: int
    signature: "int rsa_pss_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                     void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: rsa_oaep_cb
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_free
    linkageType: ''
    returnType: int
    signature: "int rsa_oaep_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM
      *it,\n                       void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_dup
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c:115,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: RSAPublicKey_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_dup
    linkageType: ''
    returnType: RSA
    signature: RSA *RSAPublicKey_dup(RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_dup
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c:120,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: RSAPrivateKey_dup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_dup
    linkageType: ''
    returnType: RSA
    signature: RSA *RSAPrivateKey_dup(RSA *rsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_none.c:18,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_none.c:23,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_none.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 29
    functionName: RSA_padding_add_none
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_none.c
    functionUses: 3
    functionsReached:
    - memcpy
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_none(unsigned char *to, int tlen,\n                         const
      unsigned char *from, int flen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_none.c:36,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_none.c:40,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_none.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: RSA_padding_check_none
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_none.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_none(unsigned char *to, int tlen,\n                           const
      unsigned char *from, int flen, int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: RSA_bits
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 2
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int RSA_bits(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: RSA_size
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 8
    functionsReached:
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: int RSA_size(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_pub_enc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: RSA_public_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - RSA*::meth::rsa_pub_enc
    linkageType: ''
    returnType: int
    signature: "int RSA_public_encrypt(int flen, const unsigned char *from, unsigned
      char *to,\n                       RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_priv_enc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: RSA_private_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_priv_enc
    linkageType: ''
    returnType: int
    signature: "int RSA_private_encrypt(int flen, const unsigned char *from,\n                        unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_priv_dec
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: RSA_private_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - RSA*::meth::rsa_priv_dec
    linkageType: ''
    returnType: int
    signature: "int RSA_private_decrypt(int flen, const unsigned char *from,\n                        unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_pub_dec
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: RSA_public_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_pub_dec
    linkageType: ''
    returnType: int
    signature: "int RSA_public_decrypt(int flen, const unsigned char *from, unsigned
      char *to,\n                       RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: RSA_flags
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_flags(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: RSA_blinding_off
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_free
    linkageType: ''
    returnType: void
    signature: void RSA_blinding_off(RSA *rsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_blinding_off
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:69,1
    - Dst: RSA_setup_blinding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - rsa
    - ctx
    argTypes:
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: RSA_blinding_on
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - RSA_setup_blinding
    - RSA_blinding_off
    linkageType: ''
    returnType: int
    signature: int RSA_blinding_on(RSA *rsa, BN_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:90,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:91,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:92,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:93,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:97,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:97,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:99,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:99,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:101,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:104,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:106,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - d
    - p
    - q
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 108
    functionName: rsa_get_public_exp
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - BN_mul
    - BN_CTX_start
    - BN_CTX_end
    - BN_value_one
    - BN_CTX_get
    - BN_mod_inverse
    - BN_sub
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *rsa_get_public_exp(const BIGNUM *d, const BIGNUM *p,\n                                  const
      BIGNUM *q, BN_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:117,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:123,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:124,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:126,1
    - Dst: rsa_get_public_exp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:131,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:133,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:141,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:144,1
    - Dst: BN_with_flags
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:147,1
    - Dst: BN_BLINDING_create_param
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:149,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:152,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:155,1
    - Dst: BN_BLINDING_set_current_thread
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:159,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:162,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:164,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c:166,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - rsa
    - in_ctx
    argTypes:
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 110
    functionDepth: 6
    functionLinenumber: 110
    functionLinenumberEnd: 169
    functionName: RSA_setup_blinding
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
    functionUses: 2
    functionsReached:
    - BN_new
    - BN_CTX_start
    - BN_with_flags
    - BN_BLINDING_set_current_thread
    - BN_CTX_end
    - BN_CTX_free
    - BN_free
    - RSAerr
    - BN_CTX_get
    - BN_CTX_new
    - BN_BLINDING_create_param
    - rsa_get_public_exp
    linkageType: ''
    returnType: BN_BLINDING
    signature: BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *in_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_check_key_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: RSA_check_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c
    functionUses: 0
    functionsReached:
    - RSA_check_key_ex
    linkageType: ''
    returnType: int
    signature: int RSA_check_key(const RSA *key)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:28,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:34,1
    - Dst: rsa_multip_cap
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:36,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:36,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:37,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:42,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:43,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:44,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:45,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:46,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:47,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:51,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:55,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:57,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:59,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:61,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:65,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:67,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:71,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:73,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:78,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:79,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:81,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:86,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:91,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:92,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:97,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:100,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:103,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:107,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:107,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:111,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:111,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:117,1
    - Dst: BN_gcd
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:121,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:126,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:127,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:127,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:131,1
    - Dst: BN_gcd
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:135,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:140,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:144,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:149,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:151,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:156,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:156,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:160,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:164,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:166,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:170,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:170,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:174,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:178,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:180,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:184,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:188,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:190,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:195,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:197,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:197,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:201,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:205,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:207,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:210,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:214,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:216,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:221,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:222,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:223,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:224,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:225,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c:226,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 192
    argCount: 2
    argNames:
    - key
    - cb
    argTypes:
    - RSA*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 228
    functionName: RSA_check_key_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c
    functionUses: 2
    functionsReached:
    - BN_cmp
    - rsa_multip_cap
    - sk_RSA_PRIME_INFO_num
    - BN_mod
    - BN_mul
    - BN_div
    - BN_free
    - BN_sub
    - BN_mod_mul
    - sk_RSA_PRIME_INFO_value
    - BN_is_one
    - BN_new
    - BN_CTX_free
    - RSAerr
    - BN_is_odd
    - BN_gcd
    - BN_is_prime_ex
    - BN_value_one
    - BN_mod_inverse
    - BN_num_bits
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int RSA_check_key_ex(const RSA *key, BN_GENCB *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:30,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:31,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:33,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:37,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:39,1
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:43,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:44,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - type
    - m
    - m_len
    - sigret
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 52
    functionName: RSA_sign_ASN1_OCTET_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - RSA_size
    - i2d_ASN1_OCTET_STRING
    - RSAerr
    - RSA_private_encrypt
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int RSA_sign_ASN1_OCTET_STRING(int type,\n                               const
      unsigned char *m, unsigned int m_len,\n                               unsigned
      char *sigret, unsigned int *siglen,\n                               RSA *rsa)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:64,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:65,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:70,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:72,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:75,1
    - Dst: d2i_ASN1_OCTET_STRING
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:81,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:86,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:87,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:92,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c:93,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 6
    argNames:
    - dtype
    - m
    - m_len
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 95
    functionName: RSA_verify_ASN1_OCTET_STRING
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - RSA_size
    - memcmp
    - ASN1_OCTET_STRING_free
    - d2i_ASN1_OCTET_STRING
    - RSAerr
    - RSA_public_decrypt
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int RSA_verify_ASN1_OCTET_STRING(int dtype,\n                                 const
      unsigned char *m,\n                                 unsigned int m_len, unsigned
      char *sigbuf,\n                                 unsigned int siglen, RSA *rsa)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:31,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:34,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:37,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:38,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:39,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:44,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:57,1
    - Dst: BN_X931_derive_prime_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:61,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:67,1
    - Dst: BN_X931_derive_prime_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:70,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:76,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:77,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:87,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:90,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:94,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:94,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:96,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:96,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:98,1
    - Dst: BN_gcd
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:101,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:104,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:107,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:111,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:116,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:119,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:123,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:126,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:130,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:136,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:137,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:138,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 102
    argCount: 13
    argNames:
    - rsa
    - p1
    - p2
    - q1
    - q2
    - Xp1
    - Xp2
    - Xp
    - Xq1
    - Xq2
    - Xq
    - e
    - cb
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 19
    functionDepth: 10
    functionLinenumber: 19
    functionLinenumberEnd: 142
    functionName: RSA_X931_derive_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_CTX_start
    - BN_CTX_end
    - BN_mul
    - BN_gcd
    - BN_X931_derive_prime_ex
    - BN_CTX_free
    - BN_value_one
    - BN_CTX_get
    - BN_div
    - BN_sub
    - BN_CTX_new
    - BN_mod_inverse
    - BN_mod
    - BN_dup
    linkageType: ''
    returnType: int
    signature: "int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, BIGNUM *q1,\n
      \                      BIGNUM *q2, const BIGNUM *Xp1, const BIGNUM *Xp2,\n                       const
      BIGNUM *Xp, const BIGNUM *Xq1, const BIGNUM *Xq2,\n                       const
      BIGNUM *Xq, const BIGNUM *e, BN_GENCB *cb)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:151,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:155,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:156,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:157,1
    - Dst: BN_X931_generate_Xpq
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:160,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:163,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:164,1
    - Dst: BN_X931_generate_prime_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:170,1
    - Dst: BN_X931_generate_prime_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:174,1
    - Dst: RSA_X931_derive_ex
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:183,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:190,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c:191,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - rsa
    - bits
    - e
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 144
    functionDepth: 11
    functionLinenumber: 144
    functionLinenumberEnd: 198
    functionName: RSA_X931_generate_key_ex
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c
    functionUses: 0
    functionsReached:
    - BN_X931_generate_Xpq
    - RSA_X931_derive_ex
    - BN_X931_generate_prime_ex
    - BN_new
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_free
    - BN_CTX_get
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e,\n
      \                            BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pkey
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: pkey_is_pss
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pkey_is_pss(pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: pkey_ctx_is_pss
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pkey_ctx_is_pss(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_err.c:242,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_err.c:243,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_err.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 6
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: ERR_load_RSA_strings
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_RSA_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: rsa_pss_restricted
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsa_pss_restricted(rctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:55,1
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: pkey_rsa_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_ctx_is_pss
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_init(EVP_PKEY_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pkey_rsa_init
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:79,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:85,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:93,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 100
    functionName: pkey_rsa_copy
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - OPENSSL_free
    - pkey_rsa_init
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:106,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:106,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pk
    argTypes:
    - RSA_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: setup_tbuf
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_size
    - OPENSSL_malloc
    - RSAerr
    linkageType: ''
    returnType: int
    signature: int setup_tbuf(RSA_PKEY_CTX *ctx, EVP_PKEY_CTX *pk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: pkey_rsa_cleanup
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: void pkey_rsa_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:133,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:134,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:138,1
    - Dst: RSA_sign_ASN1_OCTET_STRING
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:142,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:149,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:150,1
    - Dst: setup_tbuf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:153,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:154,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:157,1
    - Dst: RSA_X931_hash_id
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:158,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:158,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:159,1
    - Dst: RSA_sign
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:163,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:163,1
    - Dst: setup_tbuf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:169,1
    - Dst: RSA_padding_add_PKCS1_PSS_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:171,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:176,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:176,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:182,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 189
    functionName: pkey_rsa_sign
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_size
    - EVP_MD_type
    - RSA_X931_hash_id
    - RSA_size
    - RSA_padding_add_PKCS1_PSS_mgf1
    - setup_tbuf
    - memcpy
    - RSA_sign
    - RSAerr
    - EVP_MD_size
    - RSA_private_encrypt
    - RSA_sign_ASN1_OCTET_STRING
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                         size_t
      *siglen, const unsigned char *tbs,\n                         size_t tbslen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: setup_tbuf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:200,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:202,1
    - Dst: RSA_X931_hash_id
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:208,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:208,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:209,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:213,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:214,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:219,1
    - Dst: int_rsa_verify
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:222,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:222,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:232,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - rout
    - routlen
    - sig
    - siglen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 239
    functionName: pkey_rsa_verifyrecover
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_type
    - RSA_X931_hash_id
    - setup_tbuf
    - memcpy
    - RSAerr
    - RSA_public_decrypt
    - EVP_MD_size
    - int_rsa_verify
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_verifyrecover(EVP_PKEY_CTX *ctx,\n                                  unsigned
      char *rout, size_t *routlen,\n                                  const unsigned
      char *sig, size_t siglen)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RSA_verify
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:251,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:251,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:253,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:254,1
    - Dst: pkey_rsa_verifyrecover
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:258,1
    - Dst: setup_tbuf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:262,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:264,1
    - Dst: RSA_verify_PKCS1_PSS_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:268,1
    - Dst: setup_tbuf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:278,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:280,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:286,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 241
    functionDepth: 6
    functionLinenumber: 241
    functionLinenumberEnd: 291
    functionName: pkey_rsa_verify
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_rsa_verifyrecover
    - RSA_verify_PKCS1_PSS_mgf1
    - EVP_MD_type
    - RSA_verify
    - memcmp
    - setup_tbuf
    - RSAerr
    - RSA_public_decrypt
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_verify(EVP_PKEY_CTX *ctx,\n                           const
      unsigned char *sig, size_t siglen,\n                           const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:301,1
    - Dst: setup_tbuf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:302,1
    - Dst: RSA_padding_add_PKCS1_OAEP_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:304,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:310,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 320
    functionName: pkey_rsa_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - RSA_padding_add_PKCS1_OAEP_mgf1
    - setup_tbuf
    - RSA_public_encrypt
    - RSA_size
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_encrypt(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *out, size_t *outlen,\n                            const unsigned char
      *in, size_t inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_tbuf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:330,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:332,1
    - Dst: RSA_padding_check_PKCS1_OAEP_mgf1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:336,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:342,1
    - Dst: constant_time_select_s
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:345,1
    - Dst: constant_time_msb_s
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:345,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:346,1
    - Dst: constant_time_msb
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 322
    functionDepth: 6
    functionLinenumber: 322
    functionLinenumberEnd: 348
    functionName: pkey_rsa_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - setup_tbuf
    - RSA_private_decrypt
    - constant_time_select_s
    - RSA_padding_check_PKCS1_OAEP_mgf1
    - constant_time_select_int
    - constant_time_msb_s
    - constant_time_msb
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_decrypt(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *out, size_t *outlen,\n                            const unsigned char
      *in, size_t inlen)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:357,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:360,1
    - Dst: RSA_X931_hash_id
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:365,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:366,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - md
    - padding
    argTypes:
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 397
    functionName: check_padding_md
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_type
    - RSA_X931_hash_id
    - RSAerr
    linkageType: ''
    returnType: int
    signature: int check_padding_md(const EVP_MD *md, int padding)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: check_padding_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:406,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:413,1
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:414,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:421,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:427,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:438,1
    - Dst: rsa_pss_restricted
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:446,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:449,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:453,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:455,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:465,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:472,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:472,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:473,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:476,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:482,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:491,1
    - Dst: check_padding_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:501,1
    - Dst: rsa_pss_restricted
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:503,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:504,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:504,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:506,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:520,1
    - Dst: rsa_pss_restricted
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:529,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:530,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:530,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:532,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:541,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:544,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:556,1
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:575,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:579,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 161
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 587
    functionName: pkey_rsa_ctrl
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_is_one
    - EVP_MD_type
    - EVP_sha1
    - OPENSSL_free
    - rsa_pss_restricted
    - BN_free
    - RSAerr
    - EVP_MD_size
    - BN_is_odd
    - pkey_ctx_is_pss
    - check_padding_md
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:593,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:596,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:599,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:601,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:603,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:605,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:607,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:609,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:611,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:614,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:617,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:620,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:623,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:625,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:627,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:630,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:631,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:634,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:635,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:637,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:640,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:644,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_pubexp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:646,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:648,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:652,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:653,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_primes
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:655,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:658,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:659,1
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:663,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:665,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:666,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:669,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:670,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:673,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:674,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:676,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:680,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:681,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:684,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:689,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:692,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:694,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 589
    functionDepth: 7
    functionLinenumber: 589
    functionLinenumberEnd: 699
    functionName: pkey_rsa_ctrl_str
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_CTX_set_rsa_keygen_pubexp
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - strcmp
    - atoi
    - OPENSSL_free
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - BN_asc2bn
    - EVP_PKEY_CTX_set_rsa_keygen_primes
    - BN_free
    - RSAerr
    - EVP_PKEY_CTX_md
    - OPENSSL_hexstr2buf
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen
    - pkey_ctx_is_pss
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_ctrl_str(EVP_PKEY_CTX *ctx,\n                             const
      char *type, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:706,1
    - Dst: rsa_pss_params_create
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - rsa
    - ctx
    argTypes:
    - RSA*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 702
    functionDepth: 9
    functionLinenumber: 702
    functionLinenumberEnd: 716
    functionName: rsa_set_pss_param
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - rsa_pss_params_create
    - pkey_ctx_is_pss
    linkageType: ''
    returnType: int
    signature: int rsa_set_pss_param(RSA *rsa, EVP_PKEY_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:726,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:727,1
    - Dst: RSA_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:730,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:734,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:736,1
    - Dst: evp_pkey_set_cb_translate
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:739,1
    - Dst: RSA_generate_multi_prime_key
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:743,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:745,1
    - Dst: rsa_set_pss_param
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:746,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:747,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:751,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:753,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 718
    functionDepth: 10
    functionLinenumber: 718
    functionLinenumberEnd: 755
    functionName: pkey_rsa_keygen
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - BN_new
    - evp_pkey_set_cb_translate
    - BN_set_word
    - rsa_set_pss_param
    - BN_GENCB_free
    - RSA_new
    - RSA_generate_multi_prime_key
    - RSA_free
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:806,1
    - Dst: rsa_pss_get_param
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:813,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:817,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:817,1
    - Dst: RSA_bits
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:818,1
    - Dst: RSAerr
      Src: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c:821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 797
    functionDepth: 7
    functionLinenumber: 797
    functionLinenumberEnd: 837
    functionName: pkey_pss_init
    functionSourceFile: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - RSA_size
    - rsa_pss_get_param
    - RSAerr
    - EVP_MD_size
    - RSA_bits
    - pkey_ctx_is_pss
    linkageType: ''
    returnType: int
    signature: int pkey_pss_init(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/des/ecb_enc.c:22,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/des/ecb_enc.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: DES_options
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/ecb_enc.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: char
    signature: char *DES_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ecb_enc.c:38,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ecb_enc.c:40,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/ecb_enc.c:42,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ecb_enc.c:44,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ecb_enc.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - input
    - output
    - ks
    - enc
    argTypes:
    - const_DES_cblock*
    - DES_cblock*
    - DES_key_schedule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: DES_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/ecb_enc.c
    functionUses: 1
    functionsReached:
    - DES_encrypt1
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,\n
      \                    DES_key_schedule *ks, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ecb3_enc.c:21,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ecb3_enc.c:22,1
    - Dst: DES_encrypt3
      Src: /src/openssl-1.1.1g/crypto/des/ecb3_enc.c:26,1
    - Dst: DES_decrypt3
      Src: /src/openssl-1.1.1g/crypto/des/ecb3_enc.c:28,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ecb3_enc.c:31,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ecb3_enc.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - input
    - output
    - ks1
    - ks2
    - ks3
    - enc
    argTypes:
    - const_DES_cblock*
    - DES_cblock*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 33
    functionName: DES_ecb3_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/ecb3_enc.c
    functionUses: 1
    functionsReached:
    - DES_decrypt3
    - DES_encrypt3
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,\n
      \                     DES_key_schedule *ks1, DES_key_schedule *ks2,\n                      DES_key_schedule
      *ks3, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:32,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:34,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:36,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:39,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:41,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:52,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:54,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:56,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:59,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64enc.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 73
    functionName: DES_cfb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/cfb64enc.c
    functionUses: 1
    functionsReached:
    - DES_encrypt1
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                      long length, DES_key_schedule *schedule,\n                       DES_cblock
      *ivec, int *num, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IP
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:22,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:31,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:32,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:40,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:41,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:42,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:43,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:44,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:45,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:46,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:47,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:48,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:49,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:50,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:51,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:52,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:53,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:54,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:55,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:57,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:58,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:59,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:60,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:61,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:62,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:63,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:64,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:65,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:66,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:67,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:68,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:69,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:70,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:71,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:72,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:76,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:77,1
    - Dst: FP
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 3
    argNames:
    - data
    - ks
    - enc
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 83
    functionName: DES_encrypt1
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_enc.c
    functionUses: 3
    functionsReached:
    - D_ENCRYPT
    - FP
    - ROTATE
    - IP
    linkageType: ''
    returnType: void
    signature: void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:100,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:101,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:109,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:110,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:111,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:112,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:113,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:114,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:115,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:116,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:117,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:118,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:119,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:120,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:121,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:122,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:123,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:124,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:126,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:127,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:128,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:129,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:130,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:131,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:132,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:133,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:134,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:135,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:136,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:137,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:138,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:139,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:140,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:141,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:144,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 3
    argNames:
    - data
    - ks
    - enc
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 147
    functionName: DES_encrypt2
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_enc.c
    functionUses: 0
    functionsReached:
    - D_ENCRYPT
    - ROTATE
    linkageType: ''
    returnType: void
    signature: void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IP
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:156,1
    - Dst: DES_encrypt2
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:159,1
    - Dst: DES_encrypt2
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:160,1
    - Dst: DES_encrypt2
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:161,1
    - Dst: FP
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - data
    - ks1
    - ks2
    - ks3
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 167
    functionName: DES_encrypt3
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_enc.c
    functionUses: 1
    functionsReached:
    - FP
    - DES_encrypt2
    - IP
    linkageType: ''
    returnType: void
    signature: "void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,\n                  DES_key_schedule
      *ks2, DES_key_schedule *ks3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IP
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:176,1
    - Dst: DES_encrypt2
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:179,1
    - Dst: DES_encrypt2
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:180,1
    - Dst: DES_encrypt2
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:181,1
    - Dst: FP
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - data
    - ks1
    - ks2
    - ks3
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: DES_decrypt3
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_enc.c
    functionUses: 1
    functionsReached:
    - FP
    - DES_encrypt2
    - IP
    linkageType: ''
    returnType: void
    signature: "void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,\n                  DES_key_schedule
      *ks2, DES_key_schedule *ks3)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:212,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:213,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:215,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:216,1
    - Dst: DES_encrypt3
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:222,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:226,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:227,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:230,1
    - Dst: DES_encrypt3
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:236,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:240,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:241,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:244,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:245,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:249,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:250,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:252,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:253,1
    - Dst: DES_decrypt3
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:260,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:266,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:267,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:272,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:273,1
    - Dst: DES_decrypt3
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:280,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:286,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:292,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/des_enc.c:293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 8
    argNames:
    - input
    - output
    - length
    - ks1
    - ks2
    - ks3
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_cblock*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 297
    functionName: DES_ede3_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_enc.c
    functionUses: 1
    functionsReached:
    - c2ln
    - c2l
    - DES_decrypt3
    - l2cn
    - l2c
    - DES_encrypt3
    linkageType: ''
    returnType: void
    signature: "void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char
      *output,\n                          long length, DES_key_schedule *ks1,\n                          DES_key_schedule
      *ks2, DES_key_schedule *ks3,\n                          DES_cblock *ivec, int
      enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c:22,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c:23,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c:26,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c:27,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c:29,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c:35,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c:40,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 5
    argNames:
    - in
    - output
    - length
    - schedule
    - ivec
    argTypes:
    - unsigned char*
    - DES_cblock*
    - long
    - DES_key_schedule*
    - const_DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 53
    functionName: DES_cbc_cksum
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c
    functionUses: 0
    functionsReached:
    - l2c
    - c2ln
    - c2l
    - DES_encrypt1
    linkageType: ''
    returnType: DES_LONG
    signature: "DES_LONG DES_cbc_cksum(const unsigned char *in, DES_cblock *output,\n
      \                      long length, DES_key_schedule *schedule,\n                       const_DES_cblock
      *ivec)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ofb_enc.c:46,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ofb_enc.c:47,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/ofb_enc.c:53,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/ofb_enc.c:56,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/des/ofb_enc.c:60,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb_enc.c:79,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb_enc.c:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 6
    argNames:
    - in
    - out
    - numbits
    - length
    - schedule
    - ivec
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - long
    - DES_key_schedule*
    - DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 82
    functionName: DES_ofb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/ofb_enc.c
    functionUses: 0
    functionsReached:
    - c2ln
    - DES_encrypt1
    - c2l
    - l2cn
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_ofb_encrypt(const unsigned char *in, unsigned char *out,
      int numbits,\n                     long length, DES_key_schedule *schedule,\n
      \                    DES_cblock *ivec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:28,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:29,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:31,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:32,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:37,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:38,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:40,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:41,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:46,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:48,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:50,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:53,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:58,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:60,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:62,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:65,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:66,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:68,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:69,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:71,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:73,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:75,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:78,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:79,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:84,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:86,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:88,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:91,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:97,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 74
    argCount: 8
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - inw
    - outw
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - const_DES_cblock*
    - const_DES_cblock*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 103
    functionName: DES_xcbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c
    functionUses: 1
    functionsReached:
    - c2ln
    - DES_encrypt1
    - c2l
    - l2cn
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_xcbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     long length, DES_key_schedule *schedule,\n                      DES_cblock
      *ivec, const_DES_cblock *inw,\n                      const_DES_cblock *outw,
      int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 59
    functionName: OPENSSL_IMPLEMENT_GLOBAL
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/set_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OPENSSL_IMPLEMENT_GLOBAL(int, DES_check_key, 0)\n\nstatic const
      unsigned char odd_parity[256] = {\n    1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11,
      13, 13, 14, 14,\n    16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28,
      31, 31,\n    32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47,\n
      \   49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,\n    64,
      64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,\n    81, 81, 82,
      82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,\n    97, 97, 98, 98, 100,
      100, 103, 103, 104, 104, 107, 107, 109, 109, 110,\n    110,\n    112, 112, 115,
      115, 117, 117, 118, 118, 121, 121, 122, 122, 124, 124, 127,\n    127,\n    128,
      128, 131, 131, 133, 133, 134, 134, 137, 137, 138, 138, 140, 140, 143,\n    143,\n
      \   145, 145, 146, 146, 148, 148, 151, 151, 152, 152, 155, 155, 157, 157, 158,\n
      \   158,\n    161, 161, 162, 162, 164, 164, 167, 167, 168, 168, 171, 171, 173,
      173, 174,\n    174,\n    176, 176, 179, 179, 181, 181, 182, 182, 185, 185, 186,
      186, 188, 188, 191,\n    191,\n    193, 193, 194, 194, 196, 196, 199, 199, 200,
      200, 203, 203, 205, 205, 206,\n    206,\n    208, 208, 211, 211, 213, 213, 214,
      214, 217, 217, 218, 218, 220, 220, 223,\n    223,\n    224, 224, 227, 227, 229,
      229, 230, 230, 233, 233, 234, 234, 236, 236, 239,\n    239,\n    241, 241, 242,
      242, 244, 244, 247, 247, 248, 248, 251, 251, 253, 253, 254,\n    254\n};\n\nvoid
      DES_set_odd_parity(DES_cblock *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - const_DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: DES_check_key_parity
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/set_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DES_check_key_parity(const_DES_cblock *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - const_DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: DES_is_weak_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int DES_is_weak_key(const_DES_cblock *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - t
    - ','
    - n
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: HPERM_OP
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/set_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HPERM_OP(a,t,n,m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:281,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: DES_set_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_check_key_parity
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:295,1
    - Dst: DES_is_weak_key
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:297,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 301
    functionName: DES_set_key_checked
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/set_key.c
    functionUses: 1
    functionsReached:
    - DES_check_key_parity
    - DES_is_weak_key
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:313,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:319,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:320,1
    - Dst: PERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:326,1
    - Dst: HPERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:327,1
    - Dst: HPERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:328,1
    - Dst: PERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:329,1
    - Dst: PERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:330,1
    - Dst: PERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:331,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:362,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 367
    functionName: DES_set_key_unchecked
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/set_key.c
    functionUses: 7
    functionsReached:
    - c2l
    - PERM_OP
    - HPERM_OP
    - memcpy
    - ROTATE
    linkageType: ''
    returnType: void
    signature: void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule
      *schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key
      Src: /src/openssl-1.1.1g/crypto/des/set_key.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: DES_key_sched
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - DES_set_key
    linkageType: ''
    returnType: int
    signature: int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ofb64enc.c:31,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ofb64enc.c:32,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64enc.c:36,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64enc.c:37,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/ofb64enc.c:40,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64enc.c:43,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64enc.c:45,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64enc.c:55,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64enc.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 60
    functionName: DES_ofb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/ofb64enc.c
    functionUses: 1
    functionsReached:
    - DES_encrypt1
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_ofb64_encrypt(register const unsigned char *in,\n                       register
      unsigned char *out, long length,\n                       DES_key_schedule *schedule,
      DES_cblock *ivec, int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - t
    - ','
    - n
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: PERM_OP
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERM_OP(a,b,t,n,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - t
    - ','
    - n
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: HPERM_OP
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HPERM_OP(a,t,n,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:41,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:42,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:43,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:44,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:45,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:46,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:47,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:48,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:49,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:50,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:51,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:52,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:53,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:54,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:55,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:56,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:61,1
    - Dst: ROTATE
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:62,1
    - Dst: PERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:64,1
    - Dst: PERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:65,1
    - Dst: PERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:66,1
    - Dst: PERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:67,1
    - Dst: PERM_OP
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 4
    argNames:
    - out
    - ks
    - Eswap0
    - Eswap1
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - DES_LONG
    - DES_LONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 72
    functionName: fcrypt_body
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c
    functionUses: 0
    functionsReached:
    - D_ENCRYPT
    - ROTATE
    - PERM_OP
    linkageType: ''
    returnType: void
    signature: "void fcrypt_body(DES_LONG *out, DES_key_schedule *ks, DES_LONG Eswap0,\n
      \                DES_LONG Eswap1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: c2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: c2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: l2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: n2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: l2n
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: l2cn
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2cn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - R
    - ','
    - S
    - ','
    - u
    - ','
    - t
    - ','
    - E0
    - ','
    - E1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: LOAD_DATA_tmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DATA_tmp(R,S,u,t,E0,E1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - R
    - ','
    - S
    - ','
    - u
    - ','
    - t
    - ','
    - E0
    - ','
    - E1
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: LOAD_DATA
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DATA(R,S,u,t,E0,E1,tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: LOAD_DATA_tmp
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DATA_tmp(a,b,c,d,e,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - R
    - ','
    - S
    - ','
    - u
    - ','
    - t
    - ','
    - E0
    - ','
    - E1
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: LOAD_DATA
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DATA(R,S,u,t,E0,E1,tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - LL
    - ','
    - R
    - ','
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: D_ENCRYPT
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D_ENCRYPT(LL,R,S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - t
    - ','
    - n
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: PERM_OP
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERM_OP(a,b,t,n,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: IP
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IP(l,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: FP
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/des_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FP(l,r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ofb64ede.c:32,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ofb64ede.c:33,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64ede.c:37,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64ede.c:38,1
    - Dst: DES_encrypt3
      Src: /src/openssl-1.1.1g/crypto/des/ofb64ede.c:43,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64ede.c:48,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64ede.c:49,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64ede.c:57,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ofb64ede.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 8
    argNames:
    - in
    - out
    - length
    - k1
    - k2
    - k3
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_cblock*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 62
    functionName: DES_ede3_ofb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/ofb64ede.c
    functionUses: 1
    functionsReached:
    - DES_encrypt3
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_ede3_ofb64_encrypt(register const unsigned char *in,\n                            register
      unsigned char *out, long length,\n                            DES_key_schedule
      *k1, DES_key_schedule *k2,\n                            DES_key_schedule *k3,
      DES_cblock *ivec, int *num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:36,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:37,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:39,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:40,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:45,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:47,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:49,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:52,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:57,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:59,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:61,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:65,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:66,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:69,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:70,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:72,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:74,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:76,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:79,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:80,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:85,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:87,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:89,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:92,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:100,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 67
    argCount: 6
    argNames:
    - in
    - out
    - length
    - _schedule
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 106
    functionName: DES_ncbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c
    functionUses: 1
    functionsReached:
    - c2ln
    - DES_encrypt1
    - c2l
    - l2cn
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_ncbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     long length, DES_key_schedule *_schedule,\n                      DES_cblock
      *ivec, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/crypto/des/rand_key.c:16,1
    - Dst: DES_is_weak_key
      Src: /src/openssl-1.1.1g/crypto/des/rand_key.c:18,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/des/rand_key.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ret
    argTypes:
    - DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 7
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: DES_random_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/rand_key.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - DES_set_odd_parity
    - DES_is_weak_key
    linkageType: ''
    returnType: int
    signature: int DES_random_key(DES_cblock *ret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:26,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:27,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:30,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:31,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:33,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:36,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:41,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:42,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:45,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:46,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:48,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:49,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:52,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:56,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:57,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 6
    argNames:
    - input
    - output
    - length
    - schedule
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 66
    functionName: DES_pcbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c
    functionUses: 0
    functionsReached:
    - c2ln
    - c2l
    - DES_encrypt1
    - l2cn
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,\n
      \                     long length, DES_key_schedule *schedule,\n                      DES_cblock
      *ivec, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:33,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:34,1
    - Dst: DES_encrypt3
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:38,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:43,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:44,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:55,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:56,1
    - Dst: DES_encrypt3
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:60,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:65,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 9
    argNames:
    - in
    - out
    - length
    - ks1
    - ks2
    - ks3
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_cblock*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 78
    functionName: DES_ede3_cfb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/cfb64ede.c
    functionUses: 1
    functionsReached:
    - DES_encrypt3
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char
      *out,\n                            long length, DES_key_schedule *ks1,\n                            DES_key_schedule
      *ks2, DES_key_schedule *ks3,\n                            DES_cblock *ivec,
      int *num, int enc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:100,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:101,1
    - Dst: DES_encrypt3
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:107,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:108,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:112,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:126,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:127,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:128,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:129,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:131,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:139,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:140,1
    - Dst: DES_encrypt3
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:148,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:149,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:163,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:164,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:165,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:166,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:168,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:176,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:177,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:181,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:186,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb64ede.c:187,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 83
    argCount: 9
    argNames:
    - in
    - out
    - numbits
    - length
    - ks1
    - ks2
    - ks3
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - long
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_cblock*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 189
    functionName: DES_ede3_cfb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/cfb64ede.c
    functionUses: 2
    functionsReached:
    - c2ln
    - c2l
    - memmove
    - l2cn
    - l2c
    - DES_encrypt3
    linkageType: ''
    returnType: void
    signature: "void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         int numbits, long length, DES_key_schedule *ks1,\n
      \                         DES_key_schedule *ks2, DES_key_schedule *ks3,\n                          DES_cblock
      *ivec, int enc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:41,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:49,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:50,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:56,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:57,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:61,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:76,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:77,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:78,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:79,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:84,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:93,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:94,1
    - Dst: DES_encrypt1
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:103,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:104,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:119,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:120,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:121,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:122,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:127,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:136,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:137,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:142,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:147,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/cfb_enc.c:148,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 84
    argCount: 7
    argNames:
    - in
    - out
    - numbits
    - length
    - schedule
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int
    assertStmts:
    - condition: (sizeof(sh[0]) == 4)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/des/cfb_enc.c
    constantsTouched: []
    func_position:
      end: 150
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 150
    functionName: DES_cfb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/cfb_enc.c
    functionUses: 2
    functionsReached:
    - c2ln
    - DES_encrypt1
    - c2l
    - memmove
    - l2cn
    - l2c
    - assert
    linkageType: ''
    returnType: void
    signature: "void DES_cfb_encrypt(const unsigned char *in, unsigned char *out,
      int numbits,\n                     long length, DES_key_schedule *schedule,\n
      \                    DES_cblock *ivec, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: Q_B0
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_B0(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: Q_B1
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_B1(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: Q_B2
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_B2(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: Q_B3
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_B3(a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Q_B0
      Src: /src/openssl-1.1.1g/crypto/des/qud_cksm.c:40,1
    - Dst: Q_B1
      Src: /src/openssl-1.1.1g/crypto/des/qud_cksm.c:40,1
    - Dst: Q_B2
      Src: /src/openssl-1.1.1g/crypto/des/qud_cksm.c:40,1
    - Dst: Q_B3
      Src: /src/openssl-1.1.1g/crypto/des/qud_cksm.c:41,1
    - Dst: Q_B0
      Src: /src/openssl-1.1.1g/crypto/des/qud_cksm.c:42,1
    - Dst: Q_B1
      Src: /src/openssl-1.1.1g/crypto/des/qud_cksm.c:42,1
    - Dst: Q_B2
      Src: /src/openssl-1.1.1g/crypto/des/qud_cksm.c:42,1
    - Dst: Q_B3
      Src: /src/openssl-1.1.1g/crypto/des/qud_cksm.c:43,1
    - Dst: Q_B1
      Src: /src/openssl-1.1.1g/crypto/des/qud_cksm.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - input
    - output
    - length
    - out_count
    - seed
    argTypes:
    - unsigned char*
    - DES_cblock[]
    - long
    - int
    - DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 76
    functionName: DES_quad_cksum
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached:
    - Q_B0
    - Q_B3
    - Q_B1
    - Q_B2
    linkageType: ''
    returnType: DES_LONG
    signature: "DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[],\n
      \                       long length, int out_count, DES_cblock *seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:18,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:19,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:33,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:34,1
    - Dst: DES_cbc_cksum
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:35,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:36,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - str
    - key
    argTypes:
    - char*
    - DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 38
    functionName: DES_string_to_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/str2key.c
    functionUses: 0
    functionsReached:
    - DES_set_key_unchecked
    - DES_cbc_cksum
    - memset
    - DES_set_odd_parity
    - strlen
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void DES_string_to_key(const char *str, DES_cblock *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:45,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:46,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:47,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:67,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:68,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:69,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:70,1
    - Dst: DES_cbc_cksum
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:71,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:72,1
    - Dst: DES_cbc_cksum
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:73,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:74,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:75,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-1.1.1g/crypto/des/str2key.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - str
    - key1
    - key2
    argTypes:
    - char*
    - DES_cblock*
    - DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 77
    functionName: DES_string_to_2keys
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/str2key.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DES_set_key_unchecked
    - DES_cbc_cksum
    - memset
    - DES_set_odd_parity
    - strlen
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock
      *key2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_fcrypt
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:63,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:76,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:79,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:80,1
    - Dst: DES_fcrypt
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:83,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:85,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - salt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 89
    functionName: DES_crypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/fcrypt.c
    functionUses: 0
    functionsReached:
    - ebcdic2ascii
    - ascii2ebcdic
    - OPENSSL_strlcpy
    - strlen
    - DES_fcrypt
    linkageType: ''
    returnType: char
    signature: char *DES_crypt(const char *buf, const char *salt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:123,1
    - Dst: fcrypt_body
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:124,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:127,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/des/fcrypt.c:129,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - buf
    - salt
    - ret
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 149
    functionName: DES_fcrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/des/fcrypt.c
    functionUses: 1
    functionsReached:
    - fcrypt_body
    - l2c
    - DES_set_key_unchecked
    linkageType: ''
    returnType: char
    signature: char *DES_fcrypt(const char *buf, const char *salt, char *ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_skey.c:27,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_skey.c:29,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_skey.c:35,1
    - Dst: ROTATE_l32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_skey.c:52,1
    - Dst: ROTATE_l32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_skey.c:55,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - key
    - len
    - data
    - rounds
    argTypes:
    - RC5_32_KEY*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 61
    functionName: RC5_32_set_key
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_skey.c
    functionUses: 1
    functionsReached:
    - c2ln
    - c2l
    - ROTATE_l32
    linkageType: ''
    returnType: void
    signature: "void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char
      *data,\n                    int rounds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:24,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:25,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:28,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:29,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:34,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:36,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:38,1
    - Dst: c2ln
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:41,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:46,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:48,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:50,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:52,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:53,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:55,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:56,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:59,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:61,1
    - Dst: RC5_32_decrypt
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:63,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:66,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:67,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:72,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:74,1
    - Dst: RC5_32_decrypt
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:76,1
    - Dst: l2cn
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:79,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:83,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 6
    argNames:
    - in
    - out
    - length
    - ks
    - iv
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC5_32_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 88
    functionName: RC5_32_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c
    functionUses: 0
    functionsReached:
    - RC5_32_decrypt
    - c2ln
    - RC5_32_encrypt
    - c2l
    - l2cn
    - l2c
    linkageType: ''
    returnType: void
    signature: "void RC5_32_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, RC5_32_KEY *ks, unsigned char *iv,\n                        int
      encrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:98,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:99,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:100,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:101,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:102,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:103,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:104,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:105,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:107,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:108,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:109,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:110,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:113,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:114,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:115,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:116,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:117,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:118,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:119,1
    - Dst: E_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC5_32_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 124
    functionName: RC5_32_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c
    functionUses: 1
    functionsReached:
    - E_RC5_32
    linkageType: ''
    returnType: void
    signature: void RC5_32_encrypt(unsigned long *d, RC5_32_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:135,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:136,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:137,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:138,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:140,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:141,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:142,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:143,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:145,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:146,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:147,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:148,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:150,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:151,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:152,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:153,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:154,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:155,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:156,1
    - Dst: D_RC5_32
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC5_32_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 160
    functionName: RC5_32_decrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c
    functionUses: 1
    functionsReached:
    - D_RC5_32
    linkageType: ''
    returnType: void
    signature: void RC5_32_decrypt(unsigned long *d, RC5_32_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c:32,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c:33,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c:37,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c:38,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c:41,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c:44,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c:46,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c:56,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC5_32_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: RC5_32_ofb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c
    functionUses: 0
    functionsReached:
    - RC5_32_encrypt
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void RC5_32_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         long length, RC5_32_KEY *schedule,\n                          unsigned
      char *ivec, int *num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_ecb.c:19,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_ecb.c:21,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_ecb.c:24,1
    - Dst: RC5_32_decrypt
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_ecb.c:26,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_ecb.c:28,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5_ecb.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - RC5_32_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: RC5_32_ecb_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_ecb.c
    functionUses: 0
    functionsReached:
    - RC5_32_decrypt
    - RC5_32_encrypt
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void RC5_32_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       RC5_32_KEY *ks, int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: c2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: c2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: l2c
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: l2cn
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2cn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: n2ln
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: l2nn
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: n2l
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: l2n
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: ROTATE_l32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_l32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: ROTATE_r32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_r32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: ROTATE_l32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_l32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: ROTATE_r32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_r32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: ROTATE_l32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_l32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: ROTATE_r32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_r32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: ROTATE_l32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_l32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: ROTATE_r32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_r32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: E_RC5_32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_RC5_32(a,b,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: D_RC5_32
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D_RC5_32(a,b,s,n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:33,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:35,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:37,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:40,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:42,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:53,1
    - Dst: c2l
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:55,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:57,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:60,1
    - Dst: l2c
      Src: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC5_32_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: RC5_32_cfb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c
    functionUses: 0
    functionsReached:
    - RC5_32_encrypt
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void RC5_32_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         long length, RC5_32_KEY *schedule,\n                          unsigned
      char *ivec, int *num, int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_showfatal
      Src: /src/openssl-1.1.1g/ms/uplink.c:30,1
    - Dst: TerminateProcess
      Src: /src/openssl-1.1.1g/ms/uplink.c:31,1
    - Dst: GetCurrentProcess
      Src: /src/openssl-1.1.1g/ms/uplink.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: unimplemented
    functionSourceFile: /src/openssl-1.1.1g/ms/uplink.c
    functionUses: 0
    functionsReached:
    - TerminateProcess
    - GetCurrentProcess
    - OPENSSL_showfatal
    linkageType: ''
    returnType: void
    signature: void unimplemented(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _sntprintf
      Src: /src/openssl-1.1.1g/ms/uplink.c:58,1
    - Dst: _T
      Src: /src/openssl-1.1.1g/ms/uplink.c:59,1
    - Dst: _tcscpy
      Src: /src/openssl-1.1.1g/ms/uplink.c:60,1
    - Dst: _T
      Src: /src/openssl-1.1.1g/ms/uplink.c:60,1
    - Dst: GetModuleHandle
      Src: /src/openssl-1.1.1g/ms/uplink.c:63,1
    - Dst: _tcscpy
      Src: /src/openssl-1.1.1g/ms/uplink.c:65,1
    - Dst: _T
      Src: /src/openssl-1.1.1g/ms/uplink.c:65,1
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/ms/uplink.c:76,1
    - Dst: _tcscpy
      Src: /src/openssl-1.1.1g/ms/uplink.c:79,1
    - Dst: _T
      Src: /src/openssl-1.1.1g/ms/uplink.c:79,1
    - Dst: _tcscpy
      Src: /src/openssl-1.1.1g/ms/uplink.c:85,1
    - Dst: _T
      Src: /src/openssl-1.1.1g/ms/uplink.c:85,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - table
    - index
    argTypes:
    - void**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 100
    functionName: OPENSSL_Uplink
    functionSourceFile: /src/openssl-1.1.1g/ms/uplink.c
    functionUses: 0
    functionsReached:
    - _T
    - _sntprintf
    - GetModuleHandle
    - _tcscpy
    - GetProcAddress
    linkageType: ''
    returnType: void
    signature: void OPENSSL_Uplink(volatile void **table, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: LAZY
    functionSourceFile: /src/openssl-1.1.1g/ms/uplink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UP_fprintf
      Src: /src/openssl-1.1.1g/ms/uplink.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/ms/uplink.c
    functionUses: 0
    functionsReached:
    - UP_fprintf
    linkageType: ''
    returnType: void
    signature: void main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: app_stdin
    functionSourceFile: /src/openssl-1.1.1g/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *app_stdin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: app_stdout
    functionSourceFile: /src/openssl-1.1.1g/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *app_stdout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: app_stderr
    functionSourceFile: /src/openssl-1.1.1g/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *app_stderr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feof
      Src: /src/openssl-1.1.1g/ms/applink.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: app_feof
    functionSourceFile: /src/openssl-1.1.1g/ms/applink.c
    functionUses: 0
    functionsReached:
    - feof
    linkageType: ''
    returnType: int
    signature: int app_feof(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/openssl-1.1.1g/ms/applink.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: app_ferror
    functionSourceFile: /src/openssl-1.1.1g/ms/applink.c
    functionUses: 0
    functionsReached:
    - ferror
    linkageType: ''
    returnType: int
    signature: int app_ferror(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clearerr
      Src: /src/openssl-1.1.1g/ms/applink.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: app_clearerr
    functionSourceFile: /src/openssl-1.1.1g/ms/applink.c
    functionUses: 0
    functionsReached:
    - clearerr
    linkageType: ''
    returnType: void
    signature: void app_clearerr(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fileno
      Src: /src/openssl-1.1.1g/ms/applink.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: app_fileno
    functionSourceFile: /src/openssl-1.1.1g/ms/applink.c
    functionUses: 0
    functionsReached:
    - _fileno
    linkageType: ''
    returnType: int
    signature: int app_fileno(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/openssl-1.1.1g/ms/applink.c:78,1
    - Dst: _fileno
      Src: /src/openssl-1.1.1g/ms/applink.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - mod
    argTypes:
    - FILE*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: app_fsetmod
    functionSourceFile: /src/openssl-1.1.1g/ms/applink.c
    functionUses: 0
    functionsReached:
    - _setmode
    - _fileno
    linkageType: ''
    returnType: int
    signature: int app_fsetmod(FILE *fp, char mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 133
    functionName: OPENSSL_Applink
    functionSourceFile: /src/openssl-1.1.1g/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_Applink(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:29,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:32,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:33,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:35,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:36,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:37,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:38,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:39,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:40,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:41,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:42,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:42,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:45,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - offset
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 48
    functionName: check_time
    functionSourceFile: /src/openssl-1.1.1g/test/gmdifftest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_gmtime
    - TEST_true
    - TEST_long_eq
    - TEST_int_eq
    - OPENSSL_gmtime_adj
    - OPENSSL_gmtime_diff
    - time
    linkageType: ''
    returnType: int
    signature: int check_time(long offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_time
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:52,1
    - Dst: check_time
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:53,1
    - Dst: check_time
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:54,1
    - Dst: check_time
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: test_gmtime
    functionSourceFile: /src/openssl-1.1.1g/test/gmdifftest.c
    functionUses: 0
    functionsReached:
    - check_time
    linkageType: ''
    returnType: int
    signature: int test_gmtime(int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:61,1
    - Dst: ADD_ALL_TESTS_NOSUBTEST
      Src: /src/openssl-1.1.1g/test/gmdifftest.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/gmdifftest.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - ADD_ALL_TESTS_NOSUBTEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: nelem
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nelem(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:136,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: test_zu
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_zu(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:164,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: test_j
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_j(int i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nelem
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:195,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:199,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:202,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:203,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:207,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:209,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:210,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:211,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - test
    - sub
    - val
    - width
    - prec
    argTypes:
    - int
    - int
    - double
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: dofptest
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - nelem
    - TEST_str_eq
    - TEST_info
    - printf
    linkageType: ''
    returnType: int
    signature: int dofptest(int test, int sub, double val, const char *width, int
      prec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:228,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:229,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:229,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:230,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:231,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:231,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:232,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:232,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:233,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:233,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:234,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:234,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:235,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:235,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:236,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:236,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:237,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:237,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:238,1
    - Dst: dofptest
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:238,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:240,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: test_fp
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - printf
    - dofptest
    linkageType: ''
    returnType: int
    signature: int test_fp(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:249,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: test_big
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int test_big(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_has_option
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:258,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:260,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:261,1
    - Dst: nelem
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:261,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:262,1
    - Dst: nelem
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:262,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:263,1
    - Dst: nelem
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - nelem
    - ADD_ALL_TESTS
    - test_has_option
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: test_open_streams
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_open_streams(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: test_close_streams
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_close_streams(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfprintf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: test_vprintf_stdout
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - vfprintf
    linkageType: ''
    returnType: int
    signature: int test_vprintf_stdout(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfprintf
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: test_vprintf_stderr
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - vfprintf
    linkageType: ''
    returnType: int
    signature: int test_vprintf_stderr(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: test_flush_stdout
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - fflush
    linkageType: ''
    returnType: int
    signature: int test_flush_stdout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/openssl-1.1.1g/test/bioprinttest.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: test_flush_stderr
    functionSourceFile: /src/openssl-1.1.1g/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - fflush
    linkageType: ''
    returnType: int
    signature: int test_flush_stderr(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PBE_get
      Src: /src/openssl-1.1.1g/test/pbelutest.c:23,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/pbelutest.c:24,1
    - Dst: EVP_PBE_find
      Src: /src/openssl-1.1.1g/test/pbelutest.c:24,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/pbelutest.c:25,1
    - Dst: EVP_PBE_get
      Src: /src/openssl-1.1.1g/test/pbelutest.c:35,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/pbelutest.c:38,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/pbelutest.c:39,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 44
    functionName: test_pbelu
    functionSourceFile: /src/openssl-1.1.1g/test/pbelutest.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_find
    - OBJ_nid2sn
    - TEST_true
    - EVP_PBE_get
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int test_pbelu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/pbelutest.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/pbelutest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/x509aux.c:32,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/x509aux.c:32,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509aux.c:35,1
    - Dst: PEM_read_bio
      Src: /src/openssl-1.1.1g/test/x509aux.c:38,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/x509aux.c:39,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/x509aux.c:50,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/x509aux.c:51,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:52,1
    - Dst: d2i
      Src: /src/openssl-1.1.1g/test/x509aux.c:56,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:59,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/test/x509aux.c:65,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:67,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/x509aux.c:72,1
    - Dst: TEST_perror
      Src: /src/openssl-1.1.1g/test/x509aux.c:73,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/test/x509aux.c:77,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:79,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:86,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/x509aux.c:90,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:91,1
    - Dst: d2i
      Src: /src/openssl-1.1.1g/test/x509aux.c:96,1
    - Dst: X509_cmp
      Src: /src/openssl-1.1.1g/test/x509aux.c:97,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:98,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/x509aux.c:102,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/test/x509aux.c:106,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:108,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/x509aux.c:113,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/x509aux.c:121,1
    - Dst: i2d
      Src: /src/openssl-1.1.1g/test/x509aux.c:125,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:127,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/x509aux.c:132,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:133,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/x509aux.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/x509aux.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/x509aux.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/x509aux.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/x509aux.c:147,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/x509aux.c:149,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/x509aux.c:150,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/x509aux.c:152,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:152,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:155,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 107
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 162
    functionName: test_certs
    functionSourceFile: /src/openssl-1.1.1g/test/x509aux.c
    functionUses: 0
    functionsReached:
    - X509_free
    - OPENSSL_malloc
    - strcmp
    - TEST_ptr
    - memcmp
    - OPENSSL_free
    - PEM_read_bio
    - d2i
    - X509_cmp
    - test_get_argument
    - TEST_error
    - i2d
    - BIO_free
    - ERR_GET_REASON
    - ERR_peek_last_error
    - ERR_clear_error
    - BIO_new_file
    - TEST_perror
    linkageType: ''
    returnType: int
    signature: int test_certs(int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument_count
      Src: /src/openssl-1.1.1g/test/x509aux.c:166,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509aux.c:169,1
    - Dst: test_get_program_name
      Src: /src/openssl-1.1.1g/test/x509aux.c:169,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/x509aux.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 175
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/x509aux.c
    functionUses: 0
    functionsReached:
    - test_get_argument_count
    - TEST_error
    - ADD_ALL_TESTS
    - test_get_program_name
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/openssl-1.1.1g/test/threadstest.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: run_thread
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t, void (*f)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/openssl-1.1.1g/test/threadstest.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: thread_run
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: DWORD
    signature: DWORD thread_run(LPVOID arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateThread
      Src: /src/openssl-1.1.1g/test/threadstest.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: run_thread
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CreateThread
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t, void (*f)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/openssl-1.1.1g/test/threadstest.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObject
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/openssl-1.1.1g/test/threadstest.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: thread_run
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void *thread_run(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/openssl-1.1.1g/test/threadstest.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: run_thread
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - pthread_create
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t, void (*f)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/openssl-1.1.1g/test/threadstest.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/test/threadstest.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/threadstest.c:87,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/test/threadstest.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/threadstest.c:88,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/test/threadstest.c:88,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/test/threadstest.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: test_lock
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - TEST_true
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_lock_new
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int test_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: once_do_run
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void once_do_run(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_run_once
      Src: /src/openssl-1.1.1g/test/threadstest.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: once_run_thread_cb
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_run_once
    linkageType: ''
    returnType: void
    signature: void once_run_thread_cb(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/threadstest.c:113,1
    - Dst: run_thread
      Src: /src/openssl-1.1.1g/test/threadstest.c:113,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/threadstest.c:114,1
    - Dst: wait_for_thread
      Src: /src/openssl-1.1.1g/test/threadstest.c:114,1
    - Dst: CRYPTO_THREAD_run_once
      Src: /src/openssl-1.1.1g/test/threadstest.c:115,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/threadstest.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: test_once
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_run_once
    - TEST_true
    - wait_for_thread
    - TEST_int_eq
    - run_thread
    linkageType: ''
    returnType: int
    signature: int test_once(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: thread_local_destructor
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_local_destructor(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/test/threadstest.c:141,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/threadstest.c:142,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/threadstest.c:143,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-1.1.1g/test/threadstest.c:143,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/test/threadstest.c:147,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/threadstest.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: thread_local_thread_cb
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - TEST_ptr_eq
    - TEST_true
    - CRYPTO_THREAD_set_local
    - TEST_ptr_null
    linkageType: ''
    returnType: void
    signature: void thread_local_thread_cb(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/threadstest.c:159,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-1.1.1g/test/threadstest.c:159,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/test/threadstest.c:163,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/threadstest.c:164,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/threadstest.c:165,1
    - Dst: run_thread
      Src: /src/openssl-1.1.1g/test/threadstest.c:165,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/threadstest.c:166,1
    - Dst: wait_for_thread
      Src: /src/openssl-1.1.1g/test/threadstest.c:166,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/threadstest.c:167,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-1.1.1g/test/threadstest.c:172,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/threadstest.c:173,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/threadstest.c:177,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/threadstest.c:182,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-1.1.1g/test/threadstest.c:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 185
    functionName: test_thread_local
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - TEST_true
    - wait_for_thread
    - TEST_int_eq
    - CRYPTO_THREAD_cleanup_local
    - run_thread
    - CRYPTO_THREAD_init_local
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_thread_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/threadstest.c:189,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/threadstest.c:190,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/threadstest.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/threadstest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:92,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:97,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:97,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:98,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:99,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:100,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:101,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:102,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 107
    functionName: load_dsa_params
    functionSourceFile: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - DSA_set0_pqg
    - DSA_new
    - BN_bin2bn
    - BN_free
    - DSA_free
    linkageType: ''
    returnType: DSA
    signature: DSA *load_dsa_params(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:111,1
    - Dst: load_dsa_params
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:111,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:114,1
    - Dst: DSA_generate_key
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: genkeys
    functionSourceFile: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - DSA_generate_key
    - TEST_ptr
    - load_dsa_params
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int genkeys(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:128,1
    - Dst: DSA_get0_q
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:128,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:131,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:132,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:137,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:138,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:139,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:139,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:142,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:144,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:146,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:148,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:148,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:150,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:152,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:152,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:154,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:154,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:157,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:158,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:162,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:162,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:165,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:166,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:171,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:171,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:175,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:176,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:181,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:182,1
    - Dst: DSA_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:187,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:188,1
    - Dst: DSA_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:192,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:193,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:199,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:200,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:202,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:203,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:204,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 63
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 120
    functionDepth: 11
    functionLinenumber: 120
    functionLinenumberEnd: 207
    functionName: sign_and_verify
    functionSourceFile: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_new
    - EVP_PKEY_sign_init
    - OPENSSL_malloc
    - RAND_bytes
    - TEST_int_eq
    - OPENSSL_free
    - memcpy
    - TEST_error
    - DSA_verify
    - EVP_PKEY_CTX_free
    - EVP_PKEY_verify_init
    - EVP_PKEY_verify
    - EVP_PKEY_set1_DSA
    - EVP_PKEY_sign
    - DSA_get0_q
    - TEST_ptr
    - BN_num_bytes
    - memset
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int sign_and_verify(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sign_and_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:215,1
    - Dst: sign_and_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 12
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: dsa_exact_size_test
    functionSourceFile: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - sign_and_verify
    linkageType: ''
    returnType: int
    signature: int dsa_exact_size_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sign_and_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:219,1
    - Dst: sign_and_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 12
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: dsa_small_digest_test
    functionSourceFile: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - sign_and_verify
    linkageType: ''
    returnType: int
    signature: int dsa_small_digest_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sign_and_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:223,1
    - Dst: sign_and_verify
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 12
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: dsa_large_digest_test
    functionSourceFile: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - sign_and_verify
    linkageType: ''
    returnType: int
    signature: int dsa_large_digest_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: genkeys
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:236,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:239,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:240,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 6
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - genkeys
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_x509.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:119,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:123,1
    - Dst: ASN1_TIME_check
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:123,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:124,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:130,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:130,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:131,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:135,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:135,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:136,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:139,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:140,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:144,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:144,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:145,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:147,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:148,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:149,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:150,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:154,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:154,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:155,1
    - Dst: ASN1_TIME_set
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:159,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:160,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:161,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:165,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:165,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:166,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:170,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:171,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:175,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:176,1
    - Dst: ASN1_TIME_new
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:179,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:180,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:181,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:185,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:185,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:186,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:189,1
    - Dst: ASN1_TIME_normalize
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:189,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:190,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:193,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:198,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:198,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:198,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:198,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:199,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:202,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:202,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:203,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:207,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:208,1
    - Dst: ASN1_TIME_new
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:211,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:212,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:213,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:217,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:217,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:218,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:222,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:222,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:222,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:222,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:223,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:226,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:226,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:227,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:231,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:232,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:236,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:237,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:238,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:240,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:241,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:244,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:244,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:245,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:248,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:253,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 123
    argCount: 2
    argNames:
    - tbl
    - idx
    argTypes:
    - struct testdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 256
    functionName: test_table
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_set_string
    - ASN1_TIME_set
    - TEST_true
    - TEST_ptr
    - ASN1_TIME_cmp_time_t
    - TEST_int_eq
    - ASN1_TIME_normalize
    - ASN1_TIME_diff
    - TEST_info
    - ASN1_TIME_free
    - ASN1_TIME_check
    - ASN1_TIME_to_generalizedtime
    - TEST_error
    - ASN1_TIME_new
    - strlen
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_table(struct testdata *tbl, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_table
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 6
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: test_table_pos
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - test_table
    linkageType: ''
    returnType: int
    signature: int test_table_pos(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_table
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 6
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: test_table_neg
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - test_table
    linkageType: ''
    returnType: int
    signature: int test_table_neg(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_table
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 6
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: test_table_pos_64bit
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - test_table
    linkageType: ''
    returnType: int
    signature: int test_table_pos_64bit(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_table
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 6
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: test_table_neg_64bit
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - test_table
    linkageType: ''
    returnType: int
    signature: int test_table_neg_64bit(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:320,1
    - Dst: ASN1_TIME_compare
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 6
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: test_table_compare
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ASN1_TIME_compare
    linkageType: ''
    returnType: int
    signature: int test_table_compare(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:339,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:341,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:341,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:343,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:344,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:344,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:347,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:348,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:348,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:351,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:352,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:352,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:356,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/asn1_time_test.c:356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    - TEST_info
    - localtime
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_idea.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:48,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/test/dhtest.c:48,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:49,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/dhtest.c:49,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:50,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/dhtest.c:50,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:51,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/dhtest.c:51,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:52,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/dhtest.c:52,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:60,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/dhtest.c:60,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:61,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/dhtest.c:61,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:62,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/dhtest.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:63,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/test/dhtest.c:63,1
    - Dst: DH_check
      Src: /src/openssl-1.1.1g/test/dhtest.c:66,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:68,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:69,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:70,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:71,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:72,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:73,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:74,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-1.1.1g/test/dhtest.c:78,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:79,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:80,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:81,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:85,1
    - Dst: DH_get0_p
      Src: /src/openssl-1.1.1g/test/dhtest.c:85,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:86,1
    - Dst: DH_get0_q
      Src: /src/openssl-1.1.1g/test/dhtest.c:86,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:87,1
    - Dst: DH_get0_g
      Src: /src/openssl-1.1.1g/test/dhtest.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:91,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/dhtest.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:92,1
    - Dst: DH_set0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:92,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:96,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:97,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:98,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:102,1
    - Dst: DH_get0_pub_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:102,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:103,1
    - Dst: DH_get0_priv_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:103,1
    - Dst: DH_generate_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:107,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:113,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:114,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:115,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:119,1
    - Dst: DH_get0_pub_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:119,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:120,1
    - Dst: DH_get0_priv_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:120,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:124,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/test/dhtest.c:124,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:131,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/test/dhtest.c:131,1
    - Dst: BN_GENCB_set
      Src: /src/openssl-1.1.1g/test/dhtest.c:133,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:134,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/test/dhtest.c:134,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:135,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openssl-1.1.1g/test/dhtest.c:135,1
    - Dst: DH_check
      Src: /src/openssl-1.1.1g/test/dhtest.c:140,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:142,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:143,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:144,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:145,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:146,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-1.1.1g/test/dhtest.c:149,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:152,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/test/dhtest.c:152,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:155,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/test/dhtest.c:155,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:156,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/test/dhtest.c:156,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:157,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/test/dhtest.c:157,1
    - Dst: DH_generate_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:165,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:167,1
    - Dst: DH_generate_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:169,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:171,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:174,1
    - Dst: DHparams_dup
      Src: /src/openssl-1.1.1g/test/dhtest.c:174,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:175,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/test/dhtest.c:175,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:176,1
    - Dst: DH_set0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:176,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:180,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:181,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dhtest.c:181,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:182,1
    - Dst: DH_compute_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:182,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:185,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:186,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dhtest.c:186,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:187,1
    - Dst: DH_compute_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:187,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:190,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:191,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dhtest.c:191,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:192,1
    - Dst: DH_compute_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:195,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:196,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:197,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:205,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:206,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:207,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:210,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:215,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:216,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:217,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:218,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:219,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:220,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:221,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:222,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:223,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 116
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 28
    functionDepth: 8
    functionLinenumber: 28
    functionLinenumberEnd: 226
    functionName: dh_test
    functionSourceFile: /src/openssl-1.1.1g/test/dhtest.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - DH_get0_pub_key
    - TEST_uint_eq
    - DH_get0_q
    - DH_compute_key
    - DH_free
    - BN_get_word
    - OPENSSL_malloc
    - DH_check
    - TEST_true
    - TEST_ptr_eq
    - DH_set0_key
    - OPENSSL_free
    - DH_get0_p
    - DH_get0_g
    - DH_get0_key
    - TEST_mem_eq
    - BN_free
    - DH_get0_pqg
    - DH_set0_pqg
    - DH_get0_priv_key
    - DHparams_dup
    - BN_new
    - BN_GENCB_free
    - BN_set_word
    - DH_generate_parameters_ex
    - TEST_ptr
    - DH_size
    - BN_GENCB_set
    - TEST_false
    - DH_new
    - DH_generate_key
    - BN_dup
    linkageType: ''
    returnType: int
    signature: int dh_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - n
    - arg
    argTypes:
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: cb
    functionSourceFile: /src/openssl-1.1.1g/test/dhtest.c
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cb(int p, int n, BN_GENCB *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pre
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 508
    functionName: make_rfc5114_td
    functionSourceFile: /src/openssl-1.1.1g/test/dhtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_rfc5114_td(pre)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/dhtest.c:526,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:529,1
    - Dst: rfc5114_td*::get_param
      Src: /src/openssl-1.1.1g/test/dhtest.c:529,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:530,1
    - Dst: rfc5114_td*::get_param
      Src: /src/openssl-1.1.1g/test/dhtest.c:530,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:533,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/dhtest.c:533,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:534,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/dhtest.c:534,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:535,1
    - Dst: DH_set0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:535,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:538,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/dhtest.c:538,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:539,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/dhtest.c:539,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:540,1
    - Dst: DH_set0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:540,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:544,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:544,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:545,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:545,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:548,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dhtest.c:548,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:548,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:549,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dhtest.c:549,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:549,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:555,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/dhtest.c:556,1
    - Dst: DH_compute_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:556,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:559,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/dhtest.c:560,1
    - Dst: DH_compute_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:560,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:563,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:564,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:567,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:569,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:571,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:573,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:579,1
    - Dst: DH_get_2048_224
      Src: /src/openssl-1.1.1g/test/dhtest.c:579,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:580,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dhtest.c:580,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:580,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:583,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/dhtest.c:583,1
    - Dst: DH_generate_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:588,1
    - Dst: DH_compute_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:591,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/dhtest.c:599,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:600,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:601,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:602,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:606,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:607,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:608,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:609,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:610,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:611,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:612,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dhtest.c:613,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:617,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:618,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:619,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:620,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:621,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dhtest.c:622,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 624
    functionName: rfc5114_test
    functionSourceFile: /src/openssl-1.1.1g/test/dhtest.c
    functionUses: 0
    functionsReached:
    - TEST_int_ne
    - DH_get_2048_224
    - TEST_uint_eq
    - DH_compute_key
    - DH_free
    - OPENSSL_malloc
    - DH_set0_key
    - TEST_true
    - OPENSSL_free
    - DH_get0_key
    - BN_bin2bn
    - TEST_mem_eq
    - ERR_clear_error
    - BN_free
    - TEST_error
    - OSSL_NELEM
    - rfc5114_td*::get_param
    - TEST_ptr
    - DH_size
    - DH_generate_key
    linkageType: ''
    returnType: int
    signature: int rfc5114_test(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:635,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-1.1.1g/test/dhtest.c:635,1
    - Dst: DH_check
      Src: /src/openssl-1.1.1g/test/dhtest.c:638,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:640,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:641,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:642,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:643,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dhtest.c:644,1
    - Dst: DH_generate_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:647,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:649,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:652,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-1.1.1g/test/dhtest.c:652,1
    - Dst: DH_generate_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:655,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:657,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:659,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:660,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dhtest.c:660,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:661,1
    - Dst: DH_compute_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:661,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/test/dhtest.c:664,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dhtest.c:665,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/dhtest.c:665,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:666,1
    - Dst: DH_compute_key
      Src: /src/openssl-1.1.1g/test/dhtest.c:666,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dhtest.c:669,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dhtest.c:670,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:676,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:677,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:678,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/dhtest.c:679,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 626
    functionDepth: 8
    functionLinenumber: 626
    functionLinenumberEnd: 681
    functionName: rfc7919_test
    functionSourceFile: /src/openssl-1.1.1g/test/dhtest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - DH_check
    - TEST_true
    - TEST_ptr
    - OPENSSL_free
    - DH_new_by_nid
    - TEST_false
    - DH_get0_key
    - DH_compute_key
    - TEST_mem_eq
    - DH_free
    - DH_size
    - DH_generate_key
    linkageType: ''
    returnType: int
    signature: int rfc7919_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/dhtest.c:688,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dhtest.c:690,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dhtest.c:691,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dhtest.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 695
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/dhtest.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/asynciotest.c:48,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/asynciotest.c:50,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/asynciotest.c:51,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-1.1.1g/test/asynciotest.c:52,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-1.1.1g/test/asynciotest.c:53,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/asynciotest.c:54,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/asynciotest.c:55,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/asynciotest.c:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: bio_f_async_filter
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *bio_f_async_filter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/asynciotest.c:66,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/asynciotest.c:70,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/asynciotest.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: async_new
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - OPENSSL_zalloc
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int async_new(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/asynciotest.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:82,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/asynciotest.c:83,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/asynciotest.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: async_free
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - OPENSSL_free
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int async_free(BIO *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/asynciotest.c:93,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/asynciotest.c:100,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/asynciotest.c:102,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/asynciotest.c:105,1
    - Dst: BIO_should_read
      Src: /src/openssl-1.1.1g/test/asynciotest.c:106,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/asynciotest.c:107,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/asynciotest.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 115
    functionName: async_read
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_should_read
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_next
    - BIO_get_data
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int async_read(BIO *bio, char *out, int outl)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/asynciotest.c:129,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/asynciotest.c:136,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/asynciotest.c:138,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/asynciotest.c:145,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/asynciotest.c:148,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/asynciotest.c:153,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/asynciotest.c:154,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/asynciotest.c:155,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/asynciotest.c:156,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/asynciotest.c:164,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/asynciotest.c:168,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/asynciotest.c:170,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/asynciotest.c:172,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/asynciotest.c:174,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/asynciotest.c:180,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/asynciotest.c:181,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/asynciotest.c:189,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/asynciotest.c:193,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/asynciotest.c:194,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/asynciotest.c:199,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/asynciotest.c:200,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/asynciotest.c:205,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/asynciotest.c:222,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/asynciotest.c:242,1
    - Dst: BIO_should_write
      Src: /src/openssl-1.1.1g/test/asynciotest.c:245,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/test/asynciotest.c:246,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/test/asynciotest.c:251,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 57
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 255
    functionName: async_write
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_get_length_prefixed_1
    - PACKET_buf_init
    - BIO_write
    - PACKET_get_1
    - PACKET_remaining
    - BIO_should_write
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - PACKET_forward
    - BIO_next
    - BIO_get_data
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int async_write(BIO *bio, const char *in, int inl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/asynciotest.c:260,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/asynciotest.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: async_ctrl
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long async_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: async_gets
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int async_gets(BIO *bio, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_write
      Src: /src/openssl-1.1.1g/test/asynciotest.c:284,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/asynciotest.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 5
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: async_puts
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - async_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int async_puts(BIO *bio, const char *str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asynciotest.c:299,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/asynciotest.c:299,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/asynciotest.c:299,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/asynciotest.c:299,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/asynciotest.c:314,1
    - Dst: bio_f_async_filter
      Src: /src/openssl-1.1.1g/test/asynciotest.c:314,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/asynciotest.c:315,1
    - Dst: bio_f_async_filter
      Src: /src/openssl-1.1.1g/test/asynciotest.c:315,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asynciotest.c:316,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asynciotest.c:317,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:318,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:319,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asynciotest.c:324,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/asynciotest.c:324,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asynciotest.c:326,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/asynciotest.c:326,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/asynciotest.c:343,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/asynciotest.c:348,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/asynciotest.c:350,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/asynciotest.c:355,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/asynciotest.c:365,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/asynciotest.c:369,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/asynciotest.c:371,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/asynciotest.c:376,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:381,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:382,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:388,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:389,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:390,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:391,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 1
    argNames:
    - test
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 394
    functionName: test_asyncio
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - SSL_write
    - TLS_server_method
    - TEST_true
    - create_ssl_objects
    - TEST_ptr
    - create_ssl_ctx_pair
    - create_ssl_connection
    - SSL_get_error
    - TEST_size_t_eq
    - SSL_read
    - TLS_client_method
    - TEST_false
    - TEST_mem_eq
    - BIO_free
    - bio_f_async_filter
    - SSL_free
    - SSL_CTX_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_asyncio(int test)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asynciotest.c:398,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/asynciotest.c:398,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asynciotest.c:399,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/asynciotest.c:399,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/asynciotest.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openssl-1.1.1g/test/asynciotest.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:600,1
    - Dst: EVP_shake256
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:600,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:601,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - hashctx
    - msg
    - msglen
    argTypes:
    - EVP_MD_CTX*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 606
    functionName: dohash
    functionSourceFile: /src/openssl-1.1.1g/test/curve448_internal_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_shake256
    - EVP_DigestInit_ex
    - EVP_DigestFinalXOF
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *dohash(EVP_MD_CTX *hashctx, const uint8_t *msg,\n                             size_t
      msglen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:611,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:613,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:614,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:614,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:616,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:616,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:617,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:617,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:619,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:619,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:620,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:620,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:622,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:622,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:623,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:623,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:625,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:625,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:626,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:626,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:628,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:628,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:629,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:629,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:631,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:631,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:632,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:632,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:634,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:634,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:635,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:635,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:637,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:637,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:638,1
    - Dst: ED448_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:638,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:640,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:640,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:641,1
    - Dst: ED448ph_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:641,1
    - Dst: dohash
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:641,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:644,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:644,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:645,1
    - Dst: ED448ph_sign
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:645,1
    - Dst: dohash
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:645,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:648,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:648,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:649,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:653,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 608
    functionDepth: 8
    functionLinenumber: 608
    functionLinenumberEnd: 655
    functionName: test_ed448
    functionSourceFile: /src/openssl-1.1.1g/test/curve448_internal_test.c
    functionUses: 0
    functionsReached:
    - dohash
    - ED448_sign
    - TEST_true
    - EVP_MD_CTX_new
    - ED448ph_sign
    - memcmp
    - TEST_ptr
    - TEST_int_eq
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_ed448(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:665,1
    - Dst: X448
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:665,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:666,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:666,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:667,1
    - Dst: X448
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:667,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:668,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:668,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:671,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:672,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:675,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:676,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:679,1
    - Dst: X448
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:679,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:684,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:684,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:685,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:689,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:690,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 657
    functionDepth: 7
    functionLinenumber: 657
    functionLinenumberEnd: 694
    functionName: test_x448
    functionSourceFile: /src/openssl-1.1.1g/test/curve448_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - fflush
    - memcmp
    - TEST_int_eq
    - memcpy
    - TEST_info
    - X448
    - printf
    linkageType: ''
    returnType: int
    signature: int test_x448(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_has_option
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:703,1
    - Dst: test_has_option
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:707,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:710,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/curve448_internal_test.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 713
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/curve448_internal_test.c
    functionUses: 0
    functionsReached:
    - test_has_option
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_pkcs7.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RC2_set_key
      Src: /src/openssl-1.1.1g/test/rc2test.c:47,1
    - Dst: RC2_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/rc2test.c:49,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc2test.c:50,1
    - Dst: RC2_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/rc2test.c:53,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc2test.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: test_rc2
    functionSourceFile: /src/openssl-1.1.1g/test/rc2test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - RC2_ecb_encrypt
    - RC2_set_key
    linkageType: ''
    returnType: int
    signature: int test_rc2(const int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/rc2test.c:65,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/rc2test.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/rc2test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_obj_mac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:23,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:24,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:25,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:29,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:30,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:31,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:35,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:36,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:37,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:41,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:42,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:43,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:47,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:48,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:49,1
    - Dst: ASN1_STRING_TABLE_cleanup
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:53,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:56,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:57,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:58,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:62,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:63,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:64,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 71
    functionName: test_string_tbl
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_string_table_test.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_TABLE_add
    - ASN1_STRING_TABLE_get
    - TEST_true
    - TEST_ptr
    - TEST_info
    - ASN1_STRING_TABLE_cleanup
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_string_tbl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_string_table_test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_string_table_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/v3ext.c:27,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/v3ext.c:27,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/v3ext.c:28,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/v3ext.c:28,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/v3ext.c:29,1
    - Dst: X509_get_pathlen
      Src: /src/openssl-1.1.1g/test/v3ext.c:29,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/v3ext.c:35,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/v3ext.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: test_pathlen
    functionSourceFile: /src/openssl-1.1.1g/test/v3ext.c
    functionUses: 0
    functionsReached:
    - X509_free
    - TEST_ptr
    - X509_get_pathlen
    - TEST_int_eq
    - PEM_read_bio_X509
    - BIO_free
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_pathlen(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/v3ext.c:42,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/v3ext.c:42,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/v3ext.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/v3ext.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:28,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:29,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:30,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:31,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:31,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:33,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:33,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:33,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:34,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:34,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:36,1
    - Dst: BN_pseudo_rand
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:36,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:36,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:38,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:38,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:40,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:40,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:42,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:42,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:43,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:43,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:45,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:45,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:46,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:46,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:50,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:51,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:51,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:52,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:52,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:52,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:53,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:53,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:53,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:56,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:56,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:57,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:57,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:57,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:58,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:58,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:58,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:62,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:65,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 19
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 20
    functionDepth: 7
    functionLinenumber: 20
    functionLinenumberEnd: 67
    functionName: group_field_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_encode
    - ERR_GET_REASON
    - ERR_GET_LIB
    - EC_GROUP*::meth::field_decode
    - EC_GROUP*::meth::field_inv
    - TEST_true
    - BN_zero
    - ERR_clear_error
    - EC_GROUP*::meth::field_mul
    - BN_is_one
    - BN_pseudo_rand
    - BN_CTX_end
    - BN_CTX_get
    - ERR_peek_last_error
    - TEST_ptr
    - BN_CTX_start
    - TEST_false
    - BN_value_one
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int group_field_tests(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:78,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:78,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:81,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:82,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:83,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:84,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:84,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:85,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:86,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:87,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:88,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:88,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:89,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:89,1
    - Dst: group_field_tests
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:90,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:95,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:96,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:98,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - meth
    - params
    - len
    argTypes:
    - EC_METHOD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 70
    functionDepth: 8
    functionLinenumber: 70
    functionLinenumberEnd: 100
    functionName: field_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ec_internal_test.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_new
    - TEST_true
    - group_field_tests
    - EC_GROUP_set_curve
    - TEST_ptr
    - BN_CTX_start
    - BN_CTX_end
    - BN_bin2bn
    - BN_CTX_free
    - BN_CTX_get
    - EC_GROUP_free
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int field_tests(const EC_METHOD *meth, const unsigned char *params,\n
      \                      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:139,1
    - Dst: field_tests
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:140,1
    - Dst: EC_GFp_simple_method
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 9
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: field_tests_ecp_simple
    functionSourceFile: /src/openssl-1.1.1g/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - field_tests
    - EC_GFp_simple_method
    linkageType: ''
    returnType: int
    signature: int field_tests_ecp_simple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:147,1
    - Dst: field_tests
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:148,1
    - Dst: EC_GFp_mont_method
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 9
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: field_tests_ecp_mont
    functionSourceFile: /src/openssl-1.1.1g/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_GFp_mont_method
    - TEST_info
    - field_tests
    linkageType: ''
    returnType: int
    signature: int field_tests_ecp_mont(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:156,1
    - Dst: field_tests
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:157,1
    - Dst: EC_GF2m_simple_method
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 9
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: field_tests_ec2_simple
    functionSourceFile: /src/openssl-1.1.1g/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_GF2m_simple_method
    - TEST_info
    - field_tests
    linkageType: ''
    returnType: int
    signature: int field_tests_ec2_simple(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:170,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:170,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:172,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:172,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:173,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:173,1
    - Dst: group_field_tests
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:174,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:180,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 163
    functionDepth: 8
    functionLinenumber: 163
    functionLinenumberEnd: 184
    functionName: field_tests_default
    functionSourceFile: /src/openssl-1.1.1g/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - group_field_tests
    - TEST_ptr
    - EC_GROUP_new_by_curve_name
    - TEST_info
    - BN_CTX_free
    - EC_GROUP_free
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int field_tests_default(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:188,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:189,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:190,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:190,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:193,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:194,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:196,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_true
    - ADD_TEST
    - TEST_ptr
    - ADD_ALL_TESTS
    - EC_get_builtin_curves
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ec_internal_test.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/igetest.c:152,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:156,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:158,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:159,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:160,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/igetest.c:162,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/igetest.c:163,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:164,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:165,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:166,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:171,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:172,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:173,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/igetest.c:175,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/igetest.c:176,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:177,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:178,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 184
    functionName: test_ige_vectors
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - memcpy
    - TEST_int_le
    - AES_ige_encrypt
    - test_output_memory
    - TEST_info
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_ige_vectors(int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/igetest.c:193,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:197,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:198,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:200,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:201,1
    - Dst: AES_bi_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:204,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/igetest.c:207,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:208,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:209,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:210,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/igetest.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 216
    functionName: test_bi_ige_vectors
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - TEST_int_le
    - AES_bi_ige_encrypt
    - test_output_memory
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_vectors(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:225,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:226,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:227,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:229,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:230,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:231,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/igetest.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: test_ige_enc_dec
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - memcpy
    - AES_ige_encrypt
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_ige_enc_dec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:243,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:244,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:245,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:247,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:251,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:252,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:253,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/igetest.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 256
    functionName: test_ige_enc_chaining
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - memcpy
    - AES_ige_encrypt
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_ige_enc_chaining(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:265,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:266,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:267,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:269,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:273,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:274,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:275,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:277,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/igetest.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 282
    functionName: test_ige_dec_chaining
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - memcpy
    - AES_ige_encrypt
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_ige_dec_chaining(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:295,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:296,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:297,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:302,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:303,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:304,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/igetest.c:313,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/igetest.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 320
    functionName: test_ige_garble_forwards
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - memcpy
    - AES_ige_encrypt
    - TEST_size_t_gt
    linkageType: ''
    returnType: int
    signature: int test_ige_garble_forwards(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:329,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:330,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:331,1
    - Dst: AES_bi_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:332,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:335,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:336,1
    - Dst: AES_bi_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:337,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/igetest.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 341
    functionName: test_bi_ige_enc_dec
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - memcpy
    - AES_bi_ige_encrypt
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_enc_dec(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:352,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:353,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:354,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:355,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:360,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:361,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:362,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/igetest.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 372
    functionName: test_bi_ige_garble1
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - memcpy
    - AES_ige_encrypt
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_garble1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:383,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:384,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:385,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:386,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:391,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:392,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:393,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/igetest.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 403
    functionName: test_bi_ige_garble2
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - memcpy
    - AES_ige_encrypt
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_garble2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/igetest.c:414,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:415,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:416,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:417,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:422,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/igetest.c:423,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/test/igetest.c:424,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/igetest.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 434
    functionName: test_bi_ige_garble3
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - AES_set_encrypt_key
    - AES_set_decrypt_key
    - memcpy
    - AES_ige_encrypt
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_garble3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/igetest.c:438,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/igetest.c:439,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/igetest.c:440,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/igetest.c:441,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/igetest.c:443,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/igetest.c:444,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/igetest.c:445,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/igetest.c:446,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/igetest.c:447,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/igetest.c:448,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/igetest.c:449,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/igetest.c:450,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/igetest.c:451,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/igetest.c:451,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/igetest.c:452,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/igetest.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 454
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/igetest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - RAND_bytes
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:75,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:79,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:79,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:80,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:94,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:95,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:99,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:101,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 107
    functionName: test_offset
    functionSourceFile: /src/openssl-1.1.1g/test/time_offset_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - ASN1_TIME_cmp_time_t
    - TEST_int_eq
    - ASN1_TIME_diff
    - TEST_info
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_offset(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:111,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/time_offset_test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/time_offset_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_conf_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:261,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:264,1
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:267,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:268,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 274
    functionName: test_x509_cmp_time
    functionSourceFile: /src/openssl-1.1.1g/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - X509_cmp_time
    - TEST_info
    - memset
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_x509_cmp_time(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:278,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:283,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:284,1
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:286,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:287,1
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:290,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:291,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:294,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: test_x509_cmp_time_current
    functionSourceFile: /src/openssl-1.1.1g/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - X509_cmp_time
    - ASN1_TIME_free
    - ASN1_TIME_adj
    - time
    linkageType: ''
    returnType: int
    signature: int test_x509_cmp_time_current(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_new
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:307,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:309,1
    - Dst: ASN1_TIME_set_string_X509
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:314,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:316,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:317,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:324,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:325,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:333,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:335,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:344,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 300
    functionDepth: 4
    functionLinenumber: 300
    functionLinenumberEnd: 346
    functionName: test_x509_time
    functionSourceFile: /src/openssl-1.1.1g/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_str_eq
    - TEST_int_eq
    - ASN1_TIME_free
    - TEST_info
    - ASN1_TIME_new
    - ASN1_TIME_set_string_X509
    linkageType: ''
    returnType: int
    signature: int test_x509_time(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:411,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:415,1
    - Dst: ASN1_TIME_new
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:415,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:418,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:418,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:419,1
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:419,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:420,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:421,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 425
    functionName: test_days
    functionSourceFile: /src/openssl-1.1.1g/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_set_string
    - BIO_snprintf
    - TEST_true
    - TEST_ptr
    - TEST_int_eq
    - ASN1_TIME_free
    - ASN1_TIME_to_tm
    - ASN1_TIME_new
    linkageType: ''
    returnType: int
    signature: int test_days(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - t
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: construct_asn1_time
    functionSourceFile: /src/openssl-1.1.1g/test/x509_time_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: construct_asn1_time(s, t, e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:464,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:464,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:464,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:467,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:470,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:474,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:474,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:475,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:475,1
    - Dst: TEST_strn_eq
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:476,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:481,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 457
    functionDepth: 5
    functionLinenumber: 457
    functionLinenumberEnd: 483
    functionName: test_x509_time_print
    functionSourceFile: /src/openssl-1.1.1g/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - BIO_get_mem_data
    - TEST_int_ne
    - TEST_strn_eq
    - TEST_ptr
    - TEST_str_eq
    - TEST_int_eq
    - BIO_s_mem
    - BIO_free
    - ASN1_TIME_print
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_x509_time_print(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:487,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:488,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:488,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:489,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:489,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:490,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:490,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:491,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/x509_time_test.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 493
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_modes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glue_strings
      Src: /src/openssl-1.1.1g/test/crltest.c:194,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/crltest.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pem
    - out
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: glue2bio
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - glue_strings
    - BIO_new_mem_buf
    linkageType: ''
    returnType: BIO
    signature: BIO *glue2bio(const char **pem, char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glue2bio
      Src: /src/openssl-1.1.1g/test/crltest.c:204,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openssl-1.1.1g/test/crltest.c:205,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/crltest.c:207,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/crltest.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pem
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: CRL_from_strings
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_X509_CRL
    - OPENSSL_free
    - glue2bio
    - BIO_free
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *CRL_from_strings(const char **pem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glue2bio
      Src: /src/openssl-1.1.1g/test/crltest.c:218,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/crltest.c:219,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/crltest.c:221,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/crltest.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pem
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: X509_from_strings
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - OPENSSL_free
    - glue2bio
    - PEM_read_bio_X509
    linkageType: ''
    returnType: X509
    signature: X509 *X509_from_strings(const char **pem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/crltest.c:282,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openssl-1.1.1g/test/crltest.c:282,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-1.1.1g/test/crltest.c:284,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-1.1.1g/test/crltest.c:285,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-1.1.1g/test/crltest.c:287,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-1.1.1g/test/crltest.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - X509_CRL*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: make_CRL_stack
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - X509_CRL_up_ref
    - sk_X509_CRL_new_null
    - sk_X509_CRL_push
    - STACK_OF
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *make_CRL_stack(X509_CRL *x1, X509_CRL *x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-1.1.1g/test/crltest.c:295,1
    - Dst: CRL_from_strings
      Src: /src/openssl-1.1.1g/test/crltest.c:296,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/crltest.c:299,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/crltest.c:300,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/crltest.c:301,1
    - Dst: verify
      Src: /src/openssl-1.1.1g/test/crltest.c:301,1
    - Dst: make_CRL_stack
      Src: /src/openssl-1.1.1g/test/crltest.c:302,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/crltest.c:304,1
    - Dst: verify
      Src: /src/openssl-1.1.1g/test/crltest.c:304,1
    - Dst: make_CRL_stack
      Src: /src/openssl-1.1.1g/test/crltest.c:305,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/test/crltest.c:307,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/test/crltest.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: test_basic_crl
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - make_CRL_stack
    - TEST_ptr
    - TEST_int_eq
    - X509_CRL_free
    - verify
    - CRL_from_strings
    linkageType: ''
    returnType: int
    signature: int test_basic_crl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/crltest.c:314,1
    - Dst: verify
      Src: /src/openssl-1.1.1g/test/crltest.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: test_no_crl
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - verify
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int test_no_crl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-1.1.1g/test/crltest.c:321,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/crltest.c:324,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/crltest.c:325,1
    - Dst: verify
      Src: /src/openssl-1.1.1g/test/crltest.c:325,1
    - Dst: make_CRL_stack
      Src: /src/openssl-1.1.1g/test/crltest.c:326,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/test/crltest.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 319
    functionDepth: 5
    functionLinenumber: 319
    functionLinenumberEnd: 331
    functionName: test_bad_issuer_crl
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - make_CRL_stack
    - TEST_ptr
    - TEST_int_eq
    - X509_CRL_free
    - verify
    - CRL_from_strings
    linkageType: ''
    returnType: int
    signature: int test_bad_issuer_crl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-1.1.1g/test/crltest.c:335,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/crltest.c:338,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/crltest.c:339,1
    - Dst: verify
      Src: /src/openssl-1.1.1g/test/crltest.c:339,1
    - Dst: make_CRL_stack
      Src: /src/openssl-1.1.1g/test/crltest.c:340,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/test/crltest.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 5
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: test_known_critical_crl
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - make_CRL_stack
    - TEST_ptr
    - TEST_int_eq
    - X509_CRL_free
    - verify
    - CRL_from_strings
    linkageType: ''
    returnType: int
    signature: int test_known_critical_crl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-1.1.1g/test/crltest.c:348,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/crltest.c:351,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/crltest.c:352,1
    - Dst: verify
      Src: /src/openssl-1.1.1g/test/crltest.c:352,1
    - Dst: make_CRL_stack
      Src: /src/openssl-1.1.1g/test/crltest.c:353,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/test/crltest.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 358
    functionName: test_unknown_critical_crl
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - make_CRL_stack
    - TEST_ptr
    - TEST_int_eq
    - X509_CRL_free
    - verify
    - CRL_from_strings
    linkageType: ''
    returnType: int
    signature: int test_unknown_critical_crl(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-1.1.1g/test/crltest.c:362,1
    - Dst: glue2bio
      Src: /src/openssl-1.1.1g/test/crltest.c:364,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openssl-1.1.1g/test/crltest.c:366,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/crltest.c:368,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/crltest.c:369,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/test/crltest.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 372
    functionName: test_reuse_crl
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - glue2bio
    - OPENSSL_free
    - X509_CRL_free
    - BIO_free
    - PEM_read_bio_X509_CRL
    - CRL_from_strings
    linkageType: ''
    returnType: int
    signature: int test_reuse_crl(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/crltest.c:376,1
    - Dst: X509_from_strings
      Src: /src/openssl-1.1.1g/test/crltest.c:376,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/crltest.c:377,1
    - Dst: X509_from_strings
      Src: /src/openssl-1.1.1g/test/crltest.c:377,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/crltest.c:380,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/crltest.c:381,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/crltest.c:382,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/crltest.c:383,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/crltest.c:384,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/crltest.c:384,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/crltest.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 387
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - X509_from_strings
    - ADD_TEST
    - TEST_ptr
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/crltest.c:391,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/crltest.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/crltest.c
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1518,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1521,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1522,1
    - Dst: Poly1305_Final
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1523,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1525,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1526,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1531,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1532,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1533,1
    - Dst: Poly1305_Final
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1534,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1536,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1537,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1545,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1546,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1547,1
    - Dst: Poly1305_Final
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1548,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1550,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1551,1
    - Dst: Poly1305_Init
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1556,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1557,1
    - Dst: Poly1305_Update
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1558,1
    - Dst: Poly1305_Final
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1559,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1561,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1562,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1507
    functionDepth: 2
    functionLinenumber: 1507
    functionLinenumberEnd: 1570
    functionName: test_poly1305
    functionSourceFile: /src/openssl-1.1.1g/test/poly1305_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_eq
    - Poly1305_Update
    - TEST_info
    - Poly1305_Final
    - TEST_mem_eq
    - Poly1305_Init
    linkageType: ''
    returnType: int
    signature: int test_poly1305(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1574,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/poly1305_internal_test.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1576
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/poly1305_internal_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_rand_drbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/test/bntest.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - key
    argTypes:
    - STANZA*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: findattr
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: char
    signature: char *findattr(STANZA *s, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glue_strings
      Src: /src/openssl-1.1.1g/test/bntest.c:75,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:76,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/bntest.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - bn_strings
    argTypes:
    - BIGNUM**
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: parse_bigBN
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - glue_strings
    - BN_hex2bn
    linkageType: ''
    returnType: int
    signature: int parse_bigBN(BIGNUM **out, const char *bn_strings[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: parseBN
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_hex2bn
    linkageType: ''
    returnType: int
    signature: int parseBN(BIGNUM **out, const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: parsedecBN
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_dec2bn
    linkageType: ''
    returnType: int
    signature: int parsedecBN(BIGNUM **out, const char *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: findattr
      Src: /src/openssl-1.1.1g/test/bntest.c:102,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/bntest.c:103,1
    - Dst: parseBN
      Src: /src/openssl-1.1.1g/test/bntest.c:107,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bntest.c:107,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/bntest.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - attribute
    argTypes:
    - STANZA*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 6
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: getBN
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - findattr
    - TEST_error
    - parseBN
    - strlen
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *getBN(STANZA *s, const char *attribute)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:120,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:120,1
    - Dst: TEST_ulong_le
      Src: /src/openssl-1.1.1g/test/bntest.c:121,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/test/bntest.c:121,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - out
    - attribute
    argTypes:
    - STANZA*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 7
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: getint
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - TEST_ulong_le
    - BN_free
    - BN_get_word
    - getBN
    linkageType: ''
    returnType: int
    signature: int getint(STANZA *s, int *out, const char *attribute)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/bntest.c:133,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/bntest.c:136,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - expected
    - actual
    argTypes:
    - char*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: equalBN
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - TEST_error
    - TEST_BN_eq
    linkageType: ''
    returnType: int
    signature: int equalBN(const char *op, const BIGNUM *expected, const BIGNUM *actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: rand_neg
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rand_neg(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:157,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:157,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:158,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:158,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:159,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:159,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:160,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:163,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:163,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:164,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:164,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:165,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:165,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:166,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:166,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/test/bntest.c:168,1
    - Dst: BN_swap
      Src: /src/openssl-1.1.1g/test/bntest.c:171,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:172,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:173,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-1.1.1g/test/bntest.c:178,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:179,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:180,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-1.1.1g/test/bntest.c:185,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:186,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:187,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:191,1
    - Dst: BN_swap
      Src: /src/openssl-1.1.1g/test/bntest.c:193,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:194,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:195,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:196,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:196,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:197,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:197,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-1.1.1g/test/bntest.c:201,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:202,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:203,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:204,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:204,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:205,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:205,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-1.1.1g/test/bntest.c:209,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:210,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:211,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:212,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:212,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:213,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:213,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:218,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:219,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:220,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:221,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 223
    functionName: test_swap
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_consttime_swap
    - TEST_true
    - BN_copy
    - BN_swap
    - BN_set_flags
    - TEST_ptr
    - BN_new
    - BN_bntest_rand
    - BN_get_flags
    - TEST_false
    - BN_free
    - BN_num_bits
    - equalBN
    linkageType: ''
    returnType: int
    signature: int test_swap(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:230,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:230,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:231,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:231,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:232,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:232,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:237,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:237,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:238,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:238,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/bntest.c:239,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/test/bntest.c:239,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:240,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/test/bntest.c:240,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:243,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:243,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:245,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:245,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:246,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:246,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:248,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:248,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:249,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:249,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:250,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:250,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:251,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:256,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:257,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:258,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 225
    functionDepth: 6
    functionLinenumber: 225
    functionLinenumberEnd: 260
    functionName: test_sub
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_add
    - TEST_true
    - BN_copy
    - TEST_int_ne
    - BN_set_negative
    - rand_neg
    - TEST_ptr
    - BN_add_word
    - BN_new
    - TEST_BN_eq_zero
    - BN_bntest_rand
    - BN_free
    - BN_set_bit
    - BN_sub
    linkageType: ''
    returnType: int
    signature: int test_sub(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:268,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:268,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:269,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:269,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:270,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:270,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:271,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:271,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:272,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:272,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:273,1
    - Dst: BN_RECP_CTX_new
      Src: /src/openssl-1.1.1g/test/bntest.c:273,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:278,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:278,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:279,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:279,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:280,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/test/bntest.c:280,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:281,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/test/bntest.c:281,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:284,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:284,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:287,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:287,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:288,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:288,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:289,1
    - Dst: BN_RECP_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:289,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:290,1
    - Dst: BN_div_recp
      Src: /src/openssl-1.1.1g/test/bntest.c:290,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:291,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:291,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:292,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:292,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:293,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:293,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:294,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:299,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:300,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:301,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:302,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:303,1
    - Dst: BN_RECP_CTX_free
      Src: /src/openssl-1.1.1g/test/bntest.c:304,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 262
    functionDepth: 6
    functionLinenumber: 262
    functionLinenumberEnd: 306
    functionName: test_div_recip
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_add
    - TEST_true
    - BN_copy
    - BN_set_negative
    - rand_neg
    - BN_RECP_CTX_set
    - TEST_ptr
    - BN_add_word
    - BN_new
    - BN_mul
    - TEST_BN_eq_zero
    - BN_div_recp
    - BN_RECP_CTX_new
    - BN_bntest_rand
    - BN_free
    - BN_sub
    - BN_lshift
    - BN_RECP_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_div_recip(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:313,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:313,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:314,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:314,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:315,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:315,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:316,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:316,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:317,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:317,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:320,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:320,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:323,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:323,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:325,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:325,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:326,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:326,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:327,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/test/bntest.c:327,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:328,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:328,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:329,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:329,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:330,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:335,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:336,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:337,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:338,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:339,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 308
    functionDepth: 6
    functionLinenumber: 308
    functionLinenumberEnd: 341
    functionName: test_mod
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_set_negative
    - TEST_true
    - rand_neg
    - TEST_BN_eq_zero
    - TEST_ptr
    - BN_new
    - BN_bntest_rand
    - BN_div
    - BN_free
    - BN_sub
    - BN_mod
    linkageType: ''
    returnType: int
    signature: int test_mod(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:394,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:394,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:395,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:395,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:396,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:396,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:397,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:397,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:398,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:398,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:399,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:399,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:400,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:400,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:401,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:401,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:402,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/test/bntest.c:402,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:406,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:406,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:408,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:408,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:410,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:412,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:412,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-1.1.1g/test/bntest.c:414,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:418,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:418,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:423,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:423,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:428,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:428,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:435,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:435,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:436,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:436,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:437,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:437,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:438,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:442,1
    - Dst: parse_bigBN
      Src: /src/openssl-1.1.1g/test/bntest.c:442,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:443,1
    - Dst: parse_bigBN
      Src: /src/openssl-1.1.1g/test/bntest.c:443,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:445,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:446,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/test/bntest.c:446,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:447,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:447,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:448,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:448,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:449,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:449,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:450,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:486,1
    - Dst: parse_bigBN
      Src: /src/openssl-1.1.1g/test/bntest.c:486,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:487,1
    - Dst: parse_bigBN
      Src: /src/openssl-1.1.1g/test/bntest.c:487,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:490,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:491,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/test/bntest.c:491,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:492,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:492,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:495,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:495,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:496,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:496,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:497,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:501,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:501,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:505,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:505,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:508,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:508,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:509,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:509,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:513,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:513,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:518,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:518,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:523,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:523,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:528,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:528,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:529,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:529,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:530,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/test/bntest.c:530,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:531,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:538,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:538,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:543,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:543,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:548,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:548,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:553,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:553,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:554,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:554,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:556,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:557,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:561,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:561,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:563,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:564,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:564,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:565,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:573,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/test/bntest.c:573,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:574,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:574,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:576,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:576,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:577,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:577,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:578,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-1.1.1g/test/bntest.c:578,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:579,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:583,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:583,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:584,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:584,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:585,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-1.1.1g/test/bntest.c:585,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:586,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/test/bntest.c:592,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:593,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:594,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:595,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:596,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:597,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:598,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:599,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:600,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 387
    functionDepth: 7
    functionLinenumber: 387
    functionLinenumberEnd: 602
    functionName: test_modexp_mont5
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_set
    - TEST_BN_eq_zero
    - BN_hex2bn
    - BN_MONT_CTX_free
    - BN_mod_exp_simple
    - BN_one
    - TEST_true
    - BN_mod_mul_montgomery
    - BN_zero
    - BN_mod_exp_mont_consttime
    - BN_free
    - BN_MONT_CTX_new
    - TEST_BN_eq_one
    - BN_new
    - BN_from_montgomery
    - parse_bigBN
    - BN_mod_exp_mont
    - TEST_BN_eq
    - TEST_ptr
    - BN_bntest_rand
    - TEST_false
    - BN_dup
    linkageType: ''
    returnType: int
    signature: int test_modexp_mont5(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:610,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:610,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:611,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:611,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:612,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:612,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:616,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:616,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:617,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:617,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:617,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:619,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:619,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:620,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:620,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:621,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:621,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:623,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/test/bntest.c:623,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/test/bntest.c:623,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/test/bntest.c:624,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/test/bntest.c:624,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:626,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:626,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:628,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:633,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:634,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:635,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 605
    functionDepth: 6
    functionLinenumber: 605
    functionLinenumberEnd: 637
    functionName: test_gf2m_add
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_copy
    - BN_set_negative
    - rand_neg
    - TEST_BN_eq_zero
    - TEST_ptr
    - BN_new
    - BN_rand
    - TEST_false
    - BN_value_one
    - BN_free
    - BN_GF2m_add
    - BN_is_odd
    linkageType: ''
    returnType: int
    signature: int test_gf2m_add(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:644,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:644,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:645,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:645,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:646,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:646,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:647,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:647,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:648,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:648,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:649,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:649,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:652,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:652,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:653,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:653,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:657,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:657,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:660,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-1.1.1g/test/bntest.c:660,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:661,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:661,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:662,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-1.1.1g/test/bntest.c:662,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:664,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:670,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:671,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:672,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:673,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:674,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:675,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 639
    functionDepth: 6
    functionLinenumber: 639
    functionLinenumberEnd: 677
    functionName: test_gf2m_mod
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_BN_eq_zero
    - BN_GF2m_arr2poly
    - TEST_ptr
    - BN_new
    - BN_bntest_rand
    - BN_GF2m_mod
    - BN_free
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: int test_gf2m_mod(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:685,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:685,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:686,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:686,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:687,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:687,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:688,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:688,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:689,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:689,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:690,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:690,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:691,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:691,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:692,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:692,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:693,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:693,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:696,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:696,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:697,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:697,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:701,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:701,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:702,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:702,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:703,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:703,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:706,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:706,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:707,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:707,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:708,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:708,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:709,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:709,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:710,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:710,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:711,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:711,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:713,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:720,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:721,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:722,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:723,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:724,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:725,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:726,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:727,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:728,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 679
    functionDepth: 7
    functionLinenumber: 679
    functionLinenumberEnd: 730
    functionName: test_gf2m_mul
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_BN_eq_zero
    - BN_GF2m_arr2poly
    - TEST_ptr
    - BN_GF2m_mod_mul
    - BN_new
    - BN_bntest_rand
    - BN_free
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: int test_gf2m_mul(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:737,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:737,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:738,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:738,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:739,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:739,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:740,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:740,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:741,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:741,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:744,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:744,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:745,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:745,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:749,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:749,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:752,1
    - Dst: BN_GF2m_mod_sqr
      Src: /src/openssl-1.1.1g/test/bntest.c:752,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:753,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:753,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:754,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:754,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:755,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:755,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:757,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:763,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:764,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:765,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:766,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:767,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 732
    functionDepth: 7
    functionLinenumber: 732
    functionLinenumberEnd: 769
    functionName: test_gf2m_sqr
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_copy
    - TEST_BN_eq_zero
    - BN_GF2m_arr2poly
    - TEST_ptr
    - BN_GF2m_mod_mul
    - BN_new
    - BN_bntest_rand
    - BN_free
    - BN_GF2m_add
    - BN_GF2m_mod_sqr
    linkageType: ''
    returnType: int
    signature: int test_gf2m_sqr(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:776,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:776,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:777,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:777,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:778,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:778,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:779,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:779,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:780,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:780,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:783,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:783,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:784,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:784,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:788,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:788,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:791,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openssl-1.1.1g/test/bntest.c:791,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:792,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:792,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-1.1.1g/test/bntest.c:794,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:800,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:801,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:802,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:803,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:804,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 771
    functionDepth: 8
    functionLinenumber: 771
    functionLinenumberEnd: 806
    functionName: test_gf2m_modinv
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_GF2m_arr2poly
    - TEST_ptr
    - BN_GF2m_mod_mul
    - BN_new
    - BN_bntest_rand
    - BN_GF2m_mod_inv
    - BN_free
    - TEST_BN_eq_one
    linkageType: ''
    returnType: int
    signature: int test_gf2m_modinv(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:814,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:814,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:815,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:815,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:816,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:816,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:817,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:817,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:818,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:818,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:819,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:819,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:820,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:820,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:823,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:823,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:824,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:824,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:828,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:828,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:829,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:829,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:832,1
    - Dst: BN_GF2m_mod_div
      Src: /src/openssl-1.1.1g/test/bntest.c:832,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:833,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:833,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:834,1
    - Dst: BN_GF2m_mod_div
      Src: /src/openssl-1.1.1g/test/bntest.c:834,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-1.1.1g/test/bntest.c:836,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:842,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:843,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:844,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:845,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:846,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:847,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:848,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 808
    functionDepth: 9
    functionLinenumber: 808
    functionLinenumberEnd: 850
    functionName: test_gf2m_moddiv
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_GF2m_arr2poly
    - TEST_ptr
    - BN_GF2m_mod_mul
    - BN_new
    - BN_bntest_rand
    - BN_free
    - BN_GF2m_mod_div
    - TEST_BN_eq_one
    linkageType: ''
    returnType: int
    signature: int test_gf2m_moddiv(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:858,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:858,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:859,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:859,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:860,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:860,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:861,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:861,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:862,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:862,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:863,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:863,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:864,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:864,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:867,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:867,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:868,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:868,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:872,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:872,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:873,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:873,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:874,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:874,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:877,1
    - Dst: BN_GF2m_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:877,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:878,1
    - Dst: BN_GF2m_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:878,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:879,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:879,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:880,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:880,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:881,1
    - Dst: BN_GF2m_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:881,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:882,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:882,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:884,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:890,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:891,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:892,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:893,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:894,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:895,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:896,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 852
    functionDepth: 8
    functionLinenumber: 852
    functionLinenumberEnd: 898
    functionName: test_gf2m_modexp
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_add
    - TEST_true
    - TEST_BN_eq_zero
    - BN_GF2m_arr2poly
    - TEST_ptr
    - BN_GF2m_mod_mul
    - BN_new
    - BN_GF2m_mod_exp
    - BN_bntest_rand
    - BN_free
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: int test_gf2m_modexp(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:906,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:906,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:907,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:907,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:908,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:908,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:909,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:909,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:910,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:910,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:911,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:911,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:912,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:912,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:915,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:915,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:916,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:916,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:920,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:920,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:924,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-1.1.1g/test/bntest.c:924,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:925,1
    - Dst: BN_GF2m_mod_sqrt
      Src: /src/openssl-1.1.1g/test/bntest.c:925,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:926,1
    - Dst: BN_GF2m_mod_sqr
      Src: /src/openssl-1.1.1g/test/bntest.c:926,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:927,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:927,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:929,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:935,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:936,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:937,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:938,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:939,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:940,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:941,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 900
    functionDepth: 9
    functionLinenumber: 900
    functionLinenumberEnd: 943
    functionName: test_gf2m_modsqrt
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_BN_eq_zero
    - BN_GF2m_arr2poly
    - TEST_ptr
    - BN_new
    - BN_bntest_rand
    - BN_GF2m_mod
    - BN_GF2m_mod_sqrt
    - BN_free
    - BN_GF2m_add
    - BN_GF2m_mod_sqr
    linkageType: ''
    returnType: int
    signature: int test_gf2m_modsqrt(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:951,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:951,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:952,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:952,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:953,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:953,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:954,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:954,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:955,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:955,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:956,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:956,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:959,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:959,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:960,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-1.1.1g/test/bntest.c:960,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:964,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:964,1
    - Dst: BN_GF2m_mod_solve_quad
      Src: /src/openssl-1.1.1g/test/bntest.c:967,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:970,1
    - Dst: BN_GF2m_mod_sqr
      Src: /src/openssl-1.1.1g/test/bntest.c:970,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:971,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:971,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:972,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-1.1.1g/test/bntest.c:972,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:973,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-1.1.1g/test/bntest.c:973,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:978,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/bntest.c:983,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bntest.c:984,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:989,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:990,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:991,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:992,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:993,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:994,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 945
    functionDepth: 8
    functionLinenumber: 945
    functionLinenumberEnd: 996
    functionName: test_gf2m_modsolvequad
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_int_ge
    - BN_GF2m_mod_solve_quad
    - TEST_true
    - TEST_BN_eq_zero
    - BN_GF2m_arr2poly
    - TEST_ptr
    - BN_new
    - BN_bntest_rand
    - BN_GF2m_mod
    - TEST_info
    - BN_free
    - BN_GF2m_add
    - BN_GF2m_mod_sqr
    linkageType: ''
    returnType: int
    signature: int test_gf2m_modsolvequad(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1004,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1004,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1005,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1005,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1006,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1006,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1007,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1007,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1020,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/test/bntest.c:1020,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1022,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:1022,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1025,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:1025,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1027,1
    - Dst: rand_neg
      Src: /src/openssl-1.1.1g/test/bntest.c:1027,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1030,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1030,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1032,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1033,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1033,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1035,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/test/bntest.c:1035,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1038,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1040,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-1.1.1g/test/bntest.c:1040,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1042,1
    - Dst: BN_is_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1044,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1046,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1049,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1049,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1051,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/test/bntest.c:1051,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bntest.c:1052,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/bntest.c:1058,1
    - Dst: BN_kronecker
      Src: /src/openssl-1.1.1g/test/bntest.c:1058,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1061,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1061,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1064,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1070,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1071,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1072,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1073,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 999
    functionDepth: 6
    functionLinenumber: 999
    functionLinenumberEnd: 1075
    functionName: test_kronecker
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - BN_add_word
    - BN_is_word
    - BN_mod_exp_recp
    - BN_sub_word
    - TEST_int_ge
    - TEST_true
    - TEST_int_eq
    - BN_kronecker
    - TEST_info
    - BN_free
    - BN_ucmp
    - BN_set_negative
    - BN_new
    - BN_rshift1
    - BN_is_zero
    - rand_neg
    - TEST_ptr
    - BN_bntest_rand
    - BN_is_negative
    - BN_generate_prime_ex
    linkageType: ''
    returnType: int
    signature: int test_kronecker(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1083,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1083,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1084,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1084,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1085,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1085,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1086,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1086,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1089,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:1089,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1090,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1091,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:1091,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1092,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1093,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:1093,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1094,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1102,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1102,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1103,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:1103,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1104,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1105,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1105,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1106,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:1106,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1107,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1108,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1108,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1109,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:1109,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1110,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1111,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1111,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1112,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:1112,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1113,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1114,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1114,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1115,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:1115,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1116,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1117,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1117,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1118,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:1118,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1119,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1129,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1129,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/bntest.c:1129,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1130,1
    - Dst: BN_uadd
      Src: /src/openssl-1.1.1g/test/bntest.c:1130,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1131,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1132,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/test/bntest.c:1132,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1133,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1134,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/test/bntest.c:1134,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1135,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1142,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1142,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1143,1
    - Dst: BN_uadd
      Src: /src/openssl-1.1.1g/test/bntest.c:1143,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1144,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1145,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1145,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1146,1
    - Dst: BN_uadd
      Src: /src/openssl-1.1.1g/test/bntest.c:1146,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1147,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1148,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1148,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1149,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/test/bntest.c:1149,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1150,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1151,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1151,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1152,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/test/bntest.c:1152,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1153,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1154,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1154,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1155,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/test/bntest.c:1155,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1156,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1157,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1157,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1158,1
    - Dst: BN_usub
      Src: /src/openssl-1.1.1g/test/bntest.c:1158,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1159,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1166,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1167,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1168,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1168,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1169,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1169,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1170,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1171,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1171,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1172,1
    - Dst: BN_sub_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1172,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1173,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1179,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1180,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1181,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1182,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1077
    functionDepth: 7
    functionLinenumber: 1077
    functionLinenumberEnd: 1184
    functionName: file_sum
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_add
    - BN_usub
    - TEST_true
    - BN_copy
    - TEST_ptr
    - BN_cmp
    - BN_new
    - BN_add_word
    - BN_uadd
    - BN_is_negative
    - BN_free
    - BN_get_word
    - BN_sub
    - BN_sub_word
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_sum(STANZA *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1192,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1192,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1193,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1193,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1194,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1194,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1195,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1195,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1196,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1196,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1197,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1197,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1200,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1202,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1202,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1203,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:1203,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1204,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1205,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:1205,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1206,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1207,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:1207,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1208,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1209,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1210,1
    - Dst: BN_lshift1
      Src: /src/openssl-1.1.1g/test/bntest.c:1210,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1211,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1212,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/test/bntest.c:1212,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1213,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1214,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/test/bntest.c:1214,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1215,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1219,1
    - Dst: BN_set_bit
      Src: /src/openssl-1.1.1g/test/bntest.c:1219,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1220,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:1220,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1221,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1222,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/test/bntest.c:1222,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1223,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1228,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1229,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1230,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1231,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1232,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1233,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1186
    functionDepth: 7
    functionLinenumber: 1186
    functionLinenumberEnd: 1236
    functionName: file_lshift1
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_add
    - TEST_true
    - TEST_ptr
    - BN_new
    - BN_zero
    - BN_mul
    - BN_rshift1
    - BN_div
    - BN_free
    - BN_set_bit
    - BN_set_word
    - BN_lshift1
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_lshift1(STANZA *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1243,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1243,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1244,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1244,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1245,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1245,1
    - Dst: getint
      Src: /src/openssl-1.1.1g/test/bntest.c:1246,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1249,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/test/bntest.c:1249,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1250,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1251,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/test/bntest.c:1251,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1252,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1257,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1258,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1259,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1238
    functionDepth: 8
    functionLinenumber: 1238
    functionLinenumberEnd: 1261
    functionName: file_lshift
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - getint
    - TEST_true
    - BN_rshift
    - TEST_ptr
    - BN_new
    - BN_free
    - BN_lshift
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_lshift(STANZA *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1268,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1268,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1269,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1269,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1270,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1270,1
    - Dst: getint
      Src: /src/openssl-1.1.1g/test/bntest.c:1271,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1274,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/test/bntest.c:1274,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1275,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1280,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/test/bntest.c:1280,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1281,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1287,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1288,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1289,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1263
    functionDepth: 8
    functionLinenumber: 1263
    functionLinenumberEnd: 1291
    functionName: file_rshift
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - getint
    - TEST_true
    - BN_rshift
    - TEST_ptr
    - BN_new
    - BN_rshift1
    - BN_free
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_rshift(STANZA *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1299,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1299,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1300,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1300,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1301,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1301,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1302,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1302,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1303,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1303,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1306,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1307,1
    - Dst: BN_sqr
      Src: /src/openssl-1.1.1g/test/bntest.c:1307,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1308,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1309,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:1309,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1310,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1311,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:1311,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1312,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1313,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1317,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1318,1
    - Dst: BN_sqrt
      Src: /src/openssl-1.1.1g/test/bntest.c:1318,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1319,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1323,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1324,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1324,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1325,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1325,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1327,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1329,1
    - Dst: BN_sqrt
      Src: /src/openssl-1.1.1g/test/bntest.c:1329,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:1331,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1333,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:1334,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:1334,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1336,1
    - Dst: BN_sqrt
      Src: /src/openssl-1.1.1g/test/bntest.c:1336,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:1338,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1344,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1345,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1346,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1347,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1348,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1349,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 40
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1293
    functionDepth: 7
    functionLinenumber: 1293
    functionLinenumberEnd: 1351
    functionName: file_square
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_add
    - BN_sqrt
    - TEST_true
    - BN_set_negative
    - BN_copy
    - TEST_BN_eq_zero
    - TEST_ptr
    - BN_new
    - BN_zero
    - BN_mul
    - TEST_int_eq
    - BN_div
    - equalBN
    - ERR_clear_error
    - BN_value_one
    - BN_free
    - BN_sqr
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_square(STANZA *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1359,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1359,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1360,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1360,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1361,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1361,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1362,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1362,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1363,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1363,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1364,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1364,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1367,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1369,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:1369,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1370,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1371,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:1371,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1372,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1373,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1374,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:1374,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1375,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1376,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1381,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1382,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1383,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1384,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1385,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1386,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1353
    functionDepth: 7
    functionLinenumber: 1353
    functionLinenumberEnd: 1388
    functionName: file_product
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - BN_new
    - BN_zero
    - BN_mul
    - BN_div
    - BN_free
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_product(STANZA *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1397,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1397,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1398,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1398,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1399,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1399,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1400,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1400,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1401,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1401,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1402,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1402,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1403,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1403,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1406,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:1406,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1407,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1408,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1409,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:1409,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1410,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:1410,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1411,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1418,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1419,1
    - Dst: BN_get_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1420,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/bntest.c:1422,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1423,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1423,1
    - Dst: BN_div_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1425,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/bntest.c:1428,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/bntest.c:1432,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1436,1
    - Dst: BN_mod_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1439,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/bntest.c:1442,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/bntest.c:1446,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1453,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1454,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/bntest.c:1454,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1455,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1456,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/bntest.c:1456,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1457,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/test/bntest.c:1457,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1458,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1464,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1465,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1466,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1467,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1468,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1469,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1470,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 47
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts:
    - condition: (remainder_word != (BN_ULONG)-1)
      pos:
        line_end: 1421
        line_start: 1421
        source_file: /src/openssl-1.1.1g/test/bntest.c
    constantsTouched: []
    func_position:
      end: 1472
      start: 1390
    functionDepth: 7
    functionLinenumber: 1390
    functionLinenumberEnd: 1472
    functionName: file_quotient
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_add
    - TEST_true
    - BN_copy
    - BN_div_word
    - TEST_ptr
    - BN_new
    - BN_mul
    - BN_mod_word
    - BN_is_negative
    - BN_div
    - TEST_error
    - BN_get_word
    - assert
    - BN_free
    - BN_nnmod
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_quotient(STANZA *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1479,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1479,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1480,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1480,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1481,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1481,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1482,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1482,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1483,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1483,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1486,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:1486,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1487,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/test/bntest.c:1490,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1492,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1493,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1494,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1497,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:1497,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1498,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/test/bntest.c:1498,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1499,1
    - Dst: BN_nnmod
      Src: /src/openssl-1.1.1g/test/bntest.c:1499,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1500,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:1500,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1501,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:1501,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1502,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:1502,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1504,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-1.1.1g/test/bntest.c:1504,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1505,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1509,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1510,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1511,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1518,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1519,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1520,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1521,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1522,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1474
    functionDepth: 7
    functionLinenumber: 1474
    functionLinenumberEnd: 1524
    functionName: file_modmul
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - BN_MONT_CTX_free
    - TEST_ptr
    - BN_mod_mul_montgomery
    - BN_new
    - BN_from_montgomery
    - BN_to_montgomery
    - BN_free
    - BN_mod_mul
    - BN_is_odd
    - BN_nnmod
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_modmul(STANZA *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1532,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1532,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1533,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1533,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1534,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1534,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1535,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1535,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1536,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1536,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1537,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1537,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1540,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:1540,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1541,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/test/bntest.c:1544,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1545,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/test/bntest.c:1545,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1546,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1547,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:1547,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1549,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1554,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1555,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1556,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1563,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:1563,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1564,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:1564,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1565,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1570,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1571,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1572,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1573,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1574,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1575,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1576,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1577,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1526
    functionDepth: 7
    functionLinenumber: 1526
    functionLinenumberEnd: 1579
    functionName: file_modexp
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_BN_eq
    - TEST_ptr
    - BN_new
    - BN_mul
    - BN_mod_exp_mont_consttime
    - BN_hex2bn
    - BN_free
    - BN_mod_exp
    - BN_mod_exp_mont
    - BN_is_odd
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_modexp(STANZA *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1586,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1586,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1587,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1587,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1588,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1588,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1589,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1589,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1592,1
    - Dst: BN_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:1592,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1593,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1598,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1599,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1600,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1601,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1581
    functionDepth: 7
    functionLinenumber: 1581
    functionLinenumberEnd: 1603
    functionName: file_exp
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_exp
    - TEST_ptr
    - BN_new
    - BN_free
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_exp(STANZA *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1610,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1610,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1611,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1611,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1612,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1612,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1613,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1613,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1614,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1614,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1618,1
    - Dst: BN_mod_sqrt
      Src: /src/openssl-1.1.1g/test/bntest.c:1618,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1619,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/bntest.c:1619,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/bntest.c:1623,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1624,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1629,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1630,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1631,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1632,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1633,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1605
    functionDepth: 7
    functionLinenumber: 1605
    functionLinenumberEnd: 1635
    functionName: file_modsqrt
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - BN_cmp
    - BN_new
    - equalBN
    - BN_free
    - BN_sub
    - BN_mod_sqrt
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_modsqrt(STANZA *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1642,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1642,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1643,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1643,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1644,1
    - Dst: getBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1644,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1645,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1645,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1648,1
    - Dst: BN_gcd
      Src: /src/openssl-1.1.1g/test/bntest.c:1648,1
    - Dst: equalBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1649,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1654,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1655,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1656,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1637
    functionDepth: 7
    functionLinenumber: 1637
    functionLinenumberEnd: 1659
    functionName: file_gcd
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - BN_new
    - BN_gcd
    - BN_free
    - equalBN
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_gcd(STANZA *s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1665,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1671,1
    - Dst: BN_bn2bin_padded
      Src: /src/openssl-1.1.1g/test/bntest.c:1671,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bntest.c:1673,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1674,1
    - Dst: BN_bn2bin_padded
      Src: /src/openssl-1.1.1g/test/bntest.c:1674,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bntest.c:1676,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1677,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1684,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:1684,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1686,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/test/bntest.c:1686,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1687,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/test/bntest.c:1687,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1690,1
    - Dst: BN_bn2bin_padded
      Src: /src/openssl-1.1.1g/test/bntest.c:1690,1
    - Dst: BN_bn2bin_padded
      Src: /src/openssl-1.1.1g/test/bntest.c:1693,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1696,1
    - Dst: BN_bn2bin_padded
      Src: /src/openssl-1.1.1g/test/bntest.c:1696,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1697,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1700,1
    - Dst: BN_bn2bin_padded
      Src: /src/openssl-1.1.1g/test/bntest.c:1700,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1701,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1702,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1705,1
    - Dst: BN_bn2bin_padded
      Src: /src/openssl-1.1.1g/test/bntest.c:1705,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1706,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1708,1
    - Dst: sizseof
      Src: /src/openssl-1.1.1g/test/bntest.c:1708,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1715,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1661
    functionDepth: 6
    functionLinenumber: 1661
    functionLinenumberEnd: 1720
    functionName: test_bn2padded
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - sizseof
    - BN_new
    - TEST_int_eq
    - BN_num_bytes
    - BN_bn2bin
    - BN_rand
    - memset
    - BN_bn2bin_padded
    - TEST_mem_eq
    - BN_free
    linkageType: ''
    returnType: int
    signature: int test_bn2padded(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1727,1
    - Dst: parsedecBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1727,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1728,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1729,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1730,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1731,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1732,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1734,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1737,1
    - Dst: parsedecBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1737,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1738,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1739,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1740,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1741,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1742,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1744,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1747,1
    - Dst: parsedecBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1747,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1748,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1749,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1750,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1751,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1752,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1754,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1757,1
    - Dst: parsedecBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1757,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1758,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1759,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1760,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1761,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-1.1.1g/test/bntest.c:1762,1
    - Dst: TEST_BN_odd
      Src: /src/openssl-1.1.1g/test/bntest.c:1763,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1765,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1768,1
    - Dst: parsedecBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1768,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1769,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1770,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1771,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1772,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1774,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1777,1
    - Dst: parsedecBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1777,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1778,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1779,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1780,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1781,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1782,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1787,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1722
    functionDepth: 7
    functionLinenumber: 1722
    functionLinenumberEnd: 1789
    functionName: test_dec2bn
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_BN_le_zero
    - TEST_BN_gt_zero
    - TEST_BN_odd
    - TEST_BN_eq_zero
    - TEST_BN_eq_word
    - TEST_int_eq
    - parsedecBN
    - TEST_BN_ne_zero
    - TEST_BN_lt_zero
    - TEST_BN_abs_eq_word
    - BN_free
    - TEST_BN_ge_zero
    - TEST_BN_eq_one
    - TEST_BN_even
    linkageType: ''
    returnType: int
    signature: int test_dec2bn(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1796,1
    - Dst: parseBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1796,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1797,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1798,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1799,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1801,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1804,1
    - Dst: parseBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1804,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1805,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1806,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1807,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1808,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1809,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1811,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1814,1
    - Dst: parseBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1814,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1815,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1816,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1817,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1818,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1819,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1821,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1824,1
    - Dst: parseBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1824,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1825,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1826,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1827,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1828,1
    - Dst: TEST_BN_odd
      Src: /src/openssl-1.1.1g/test/bntest.c:1829,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1831,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1834,1
    - Dst: parseBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1834,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1835,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1836,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1837,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1838,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1840,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1843,1
    - Dst: parseBN
      Src: /src/openssl-1.1.1g/test/bntest.c:1843,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1844,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1845,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1846,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1847,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/bntest.c:1848,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1853,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1791
    functionDepth: 6
    functionLinenumber: 1791
    functionLinenumberEnd: 1855
    functionName: test_hex2bn
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_BN_gt_zero
    - TEST_BN_le_zero
    - TEST_BN_odd
    - TEST_BN_eq_zero
    - TEST_BN_eq_word
    - TEST_int_eq
    - TEST_BN_ne_zero
    - TEST_BN_lt_zero
    - TEST_BN_abs_eq_word
    - BN_free
    - TEST_BN_ge_zero
    - parseBN
    - TEST_BN_even
    linkageType: ''
    returnType: int
    signature: int test_hex2bn(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1862,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1862,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1865,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1865,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1866,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1867,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1870,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1870,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1871,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1872,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1875,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1875,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1876,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1877,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1880,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1880,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1881,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1882,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1885,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1885,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1886,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1887,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1890,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1890,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1891,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1892,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1895,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1895,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1896,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1897,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1900,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1900,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1901,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1902,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1907,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1857
    functionDepth: 7
    functionLinenumber: 1857
    functionLinenumberEnd: 1909
    functionName: test_asc2bn
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_BN_eq_zero
    - TEST_ptr
    - TEST_BN_eq_word
    - BN_new
    - BN_asc2bn
    - TEST_BN_lt_zero
    - TEST_BN_abs_eq_word
    - BN_free
    - TEST_BN_ge_zero
    linkageType: ''
    returnType: int
    signature: int test_asc2bn(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1929,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1929,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1930,1
    - Dst: BN_asc2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1930,1
    - Dst: BN_bn2mpi
      Src: /src/openssl-1.1.1g/test/bntest.c:1932,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/bntest.c:1933,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1936,1
    - Dst: BN_bn2mpi
      Src: /src/openssl-1.1.1g/test/bntest.c:1936,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1937,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1940,1
    - Dst: BN_mpi2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:1940,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:1943,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1944,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1947,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1951,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1920
    functionDepth: 7
    functionLinenumber: 1920
    functionLinenumberEnd: 1953
    functionName: test_mpi
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - TEST_true
    - TEST_BN_eq
    - BN_mpi2bn
    - TEST_ptr
    - BN_new
    - TEST_size_t_eq
    - BN_asc2bn
    - TEST_mem_eq
    - BN_free
    - BN_bn2mpi
    linkageType: ''
    returnType: int
    signature: int test_mpi(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1960,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1960,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:1964,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:1964,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:1965,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:1965,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1966,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:1966,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-1.1.1g/test/bntest.c:1967,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:1968,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:1968,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1969,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:1969,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-1.1.1g/test/bntest.c:1970,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1971,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/bntest.c:1971,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1972,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:1977,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1955
    functionDepth: 6
    functionLinenumber: 1955
    functionLinenumberEnd: 1979
    functionName: test_rand
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 14
    functionsReached:
    - TEST_true
    - TEST_ptr
    - TEST_BN_eq_word
    - BN_new
    - TEST_false
    - BN_rand
    - BN_free
    - TEST_BN_eq_one
    linkageType: ''
    returnType: int
    signature: int test_rand(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1987,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1987,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1988,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1988,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1989,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1989,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:1990,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:1990,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1994,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:1994,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:1996,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:1997,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:1998,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:1998,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2000,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2001,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2005,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2005,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2006,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2006,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:2009,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:2010,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2013,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2013,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2014,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2014,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:2016,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2017,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:2017,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2018,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2019,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2023,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2023,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2024,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:2024,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2025,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2026,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2028,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2029,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2034,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:2035,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:2036,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2041,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2042,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2043,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2044,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2045,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2046,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 1981
    functionDepth: 3
    functionLinenumber: 1981
    functionLinenumberEnd: 2048
    functionName: test_negzero
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_set_negative
    - TEST_true
    - BN_set_flags
    - TEST_BN_eq_zero
    - TEST_ptr
    - BN_new
    - BN_zero
    - BN_mul
    - BN_is_negative
    - BN_div
    - BN_free
    - TEST_BN_ge_zero
    - BN_set_word
    linkageType: ''
    returnType: int
    signature: int test_negzero(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2056,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2056,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2057,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2057,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2058,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2058,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2059,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2059,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2061,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2063,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/test/bntest.c:2063,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2063,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:2065,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2067,1
    - Dst: BN_mod_mul
      Src: /src/openssl-1.1.1g/test/bntest.c:2067,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2067,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2067,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:2069,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2071,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:2071,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2071,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2071,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:2073,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2075,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/test/bntest.c:2075,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2075,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2075,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:2078,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2080,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:2080,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2080,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2080,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:2083,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2085,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:2085,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:2087,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2090,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2090,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2093,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-1.1.1g/test/bntest.c:2093,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:2095,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2097,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/test/bntest.c:2097,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2097,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2097,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:2100,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2102,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:2102,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2102,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2102,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/bntest.c:2105,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2109,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2110,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2111,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2112,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2050
    functionDepth: 7
    functionLinenumber: 2050
    functionLinenumberEnd: 2114
    functionName: test_badmod
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - TEST_ptr
    - BN_new
    - BN_zero
    - BN_mod_exp_mont_consttime
    - TEST_false
    - BN_set_word
    - BN_div
    - BN_value_one
    - ERR_clear_error
    - BN_mod_exp
    - BN_mod_exp_mont
    - BN_free
    - BN_mod_mul
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_badmod(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2121,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2121,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2122,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2122,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2123,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2123,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2125,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2127,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:2127,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2127,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2128,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2129,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/test/bntest.c:2129,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2129,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2131,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2132,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:2132,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2133,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2135,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2136,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2136,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2137,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2138,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2143,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2144,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2145,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2116
    functionDepth: 6
    functionLinenumber: 2116
    functionLinenumberEnd: 2147
    functionName: test_expmodzero
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_BN_eq_zero
    - TEST_ptr
    - BN_new
    - BN_zero
    - BN_mod_exp_mont_word
    - BN_mod_exp_mont_consttime
    - BN_value_one
    - BN_mod_exp
    - BN_free
    - BN_mod_exp_mont
    linkageType: ''
    returnType: int
    signature: int test_expmodzero(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2152,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2153,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2154,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2155,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2157,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2158,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2159,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2160,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2161,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2162,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2162,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2163,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2163,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2164,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2164,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2169,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:2169,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2170,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2171,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/test/bntest.c:2171,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2172,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2173,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/bntest.c:2173,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2174,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2175,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2175,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2176,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2177,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-1.1.1g/test/bntest.c:2177,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2178,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2179,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-1.1.1g/test/bntest.c:2179,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/bntest.c:2180,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/bntest.c:2184,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2189,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2190,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2191,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2192,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2149
    functionDepth: 6
    functionLinenumber: 2149
    functionLinenumberEnd: 2194
    functionName: test_expmodone
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_set_negative
    - TEST_BN_eq_zero
    - TEST_ptr
    - BN_new
    - BN_mod_exp_mont_word
    - BN_mod_exp_mont_consttime
    - BN_mod_exp_recp
    - BN_free
    - BN_mod_exp
    - BN_set_word
    - BN_mod_exp_mont
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: int test_expmodone(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2201,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2201,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2205,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/test/bntest.c:2205,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2209,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/test/bntest.c:2209,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:2211,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/test/bntest.c:2211,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - kBits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2196
    functionDepth: 3
    functionLinenumber: 2196
    functionLinenumberEnd: 2219
    functionName: test_smallprime
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - BN_new
    - TEST_int_eq
    - TEST_false
    - BN_free
    - BN_num_bits
    - BN_generate_prime_ex
    linkageType: ''
    returnType: int
    signature: int test_smallprime(int kBits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2226,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2226,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2230,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/test/bntest.c:2230,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2234,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/test/bntest.c:2234,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:2236,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/test/bntest.c:2236,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - kBits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2221
    functionDepth: 3
    functionLinenumber: 2221
    functionLinenumberEnd: 2244
    functionName: test_smallsafeprime
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - BN_new
    - TEST_int_eq
    - TEST_false
    - BN_free
    - BN_num_bits
    - BN_generate_prime_ex
    linkageType: ''
    returnType: int
    signature: int test_smallsafeprime(int kBits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2254,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2254,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2258,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2258,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:2259,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/test/bntest.c:2259,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2248
    functionDepth: 8
    functionLinenumber: 2248
    functionLinenumberEnd: 2268
    functionName: test_is_prime
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_is_prime_fasttest_ex
    - TEST_ptr
    - BN_new
    - TEST_int_eq
    - BN_free
    - BN_set_word
    linkageType: ''
    returnType: int
    signature: int test_is_prime(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2278,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2278,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2282,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/bntest.c:2282,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2283,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openssl-1.1.1g/test/bntest.c:2283,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2289,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2272
    functionDepth: 8
    functionLinenumber: 2272
    functionLinenumberEnd: 2291
    functionName: test_not_prime
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_is_prime_fasttest_ex
    - TEST_ptr
    - BN_new
    - TEST_false
    - BN_free
    - BN_set_word
    linkageType: ''
    returnType: int
    signature: int test_not_prime(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/test/bntest.c:2299,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/bntest.c:2300,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2301,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/bntest.c:2301,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:2304,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/test/bntest.c:2309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2293
    functionDepth: 2
    functionLinenumber: 2293
    functionLinenumberEnd: 2311
    functionName: test_ctx_set_ct_flag
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - BN_set_flags
    - TEST_ptr
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: int test_ctx_set_ct_flag(BN_CTX *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/test/bntest.c:2319,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/bntest.c:2320,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2321,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/bntest.c:2321,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bntest.c:2323,1
    - Dst: BN_get_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:2323,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/test/bntest.c:2329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2313
    functionDepth: 2
    functionLinenumber: 2313
    functionLinenumberEnd: 2331
    functionName: test_ctx_check_ct_flag
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - TEST_ptr
    - BN_CTX_start
    - BN_CTX_end
    - TEST_false
    - BN_get_flags
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: int test_ctx_check_ct_flag(BN_CTX *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2361,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2361,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2362,1
    - Dst: BN_CTX_secure_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2362,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2367,1
    - Dst: test_ctx_set_ct_flag
      Src: /src/openssl-1.1.1g/test/bntest.c:2367,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2368,1
    - Dst: test_ctx_check_ct_flag
      Src: /src/openssl-1.1.1g/test/bntest.c:2368,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2374,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2333
    functionDepth: 3
    functionLinenumber: 2333
    functionLinenumberEnd: 2377
    functionName: test_ctx_consttime_flag
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - test_ctx_check_ct_flag
    - BN_CTX_secure_new
    - TEST_ptr
    - test_ctx_set_ct_flag
    - BN_CTX_free
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int test_ctx_consttime_flag(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2384,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2384,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2385,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2385,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2386,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2386,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2389,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/test/bntest.c:2389,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2392,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/test/bntest.c:2392,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2394,1
    - Dst: BN_gcd
      Src: /src/openssl-1.1.1g/test/bntest.c:2394,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2395,1
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/test/bntest.c:2395,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2401,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2402,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2403,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2405
      start: 2379
    functionDepth: 3
    functionLinenumber: 2379
    functionLinenumberEnd: 2405
    functionName: test_gcd_prime
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BN_is_one
    - TEST_ptr
    - BN_new
    - BN_gcd
    - BN_free
    - BN_generate_prime_ex
    linkageType: ''
    returnType: int
    signature: int test_gcd_prime(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2625,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2625,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2626,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:2626,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2627,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:2627,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2628,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:2628,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:2631,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:2631,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2634,1
    - Dst: BN_bn2dec
      Src: /src/openssl-1.1.1g/test/bntest.c:2634,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:2637,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bntest.c:2637,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bntest.c:2637,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2643,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2644,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2645,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2646,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2647,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2617
    functionDepth: 6
    functionLinenumber: 2617
    functionLinenumberEnd: 2649
    functionName: test_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - BN_new
    - TEST_int_eq
    - OPENSSL_free
    - BN_bn2dec
    - TEST_mem_eq
    - BN_free
    - BN_mod_exp
    - BN_dec2bn
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_mod_exp(int i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2659,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2659,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2660,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:2660,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2661,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:2661,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bntest.c:2662,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/bntest.c:2662,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:2665,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:2666,1
    - Dst: BN_set_flags
      Src: /src/openssl-1.1.1g/test/bntest.c:2667,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:2669,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/test/bntest.c:2669,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2672,1
    - Dst: BN_bn2dec
      Src: /src/openssl-1.1.1g/test/bntest.c:2672,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bntest.c:2675,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bntest.c:2675,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bntest.c:2675,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2681,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2682,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2683,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2684,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2685,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2651
    functionDepth: 6
    functionLinenumber: 2651
    functionLinenumberEnd: 2687
    functionName: test_mod_exp_consttime
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_set_flags
    - TEST_true
    - TEST_ptr
    - BN_new
    - TEST_int_eq
    - OPENSSL_free
    - BN_bn2dec
    - TEST_mem_eq
    - BN_free
    - BN_mod_exp
    - BN_dec2bn
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_mod_exp_consttime(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/bntest.c:2705,1
    - Dst: findattr
      Src: /src/openssl-1.1.1g/test/bntest.c:2709,1
    - Dst: FILETEST*::func
      Src: /src/openssl-1.1.1g/test/bntest.c:2710,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bntest.c:2711,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bntest.c:2718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2720
    functionName: file_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - findattr
    - TEST_info
    - FILETEST*::func
    linkageType: ''
    returnType: int
    signature: int file_test_run(STANZA *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/bntest.c:2725,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2728,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/bntest.c:2728,1
    - Dst: test_start_file
      Src: /src/openssl-1.1.1g/test/bntest.c:2730,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2731,1
    - Dst: BIO_eof
      Src: /src/openssl-1.1.1g/test/bntest.c:2736,1
    - Dst: test_readstanza
      Src: /src/openssl-1.1.1g/test/bntest.c:2736,1
    - Dst: file_test_run
      Src: /src/openssl-1.1.1g/test/bntest.c:2739,1
    - Dst: test_clearstanza
      Src: /src/openssl-1.1.1g/test/bntest.c:2742,1
    - Dst: test_end_file
      Src: /src/openssl-1.1.1g/test/bntest.c:2744,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2722
    functionDepth: 2
    functionLinenumber: 2722
    functionLinenumberEnd: 2749
    functionName: run_file_tests
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - test_end_file
    - test_start_file
    - TEST_ptr
    - OPENSSL_free
    - test_get_argument
    - test_readstanza
    - file_test_run
    - test_clearstanza
    - OPENSSL_zalloc
    - BIO_eof
    linkageType: ''
    returnType: int
    signature: int run_file_tests(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument_count
      Src: /src/openssl-1.1.1g/test/bntest.c:2754,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bntest.c:2756,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/bntest.c:2756,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2760,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2761,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2762,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2763,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2764,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2765,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2766,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2767,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2768,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2769,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bntest.c:2770,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/bntest.c:2770,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2771,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2772,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2773,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2774,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bntest.c:2775,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bntest.c:2776,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2777,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2778,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2780,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2781,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2782,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2783,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2784,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2785,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2786,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2787,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2788,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bntest.c:2790,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/bntest.c:2790,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bntest.c:2791,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/bntest.c:2791,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bntest.c:2792,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bntest.c:2793,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/bntest.c:2793,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bntest.c:2794,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/bntest.c:2794,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bntest.c:2796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2752
    functionDepth: 2
    functionLinenumber: 2752
    functionLinenumberEnd: 2799
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_TEST
    - TEST_ptr
    - ADD_ALL_TESTS
    - BN_CTX_new
    - test_get_argument_count
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/bntest.c:2803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2801
    functionDepth: 2
    functionLinenumber: 2801
    functionLinenumberEnd: 2804
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: cookie_gen
    functionSourceFile: /src/openssl-1.1.1g/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cookie_gen(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 287
    functionName: cookie_verify
    functionSourceFile: /src/openssl-1.1.1g/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cookie_verify(SSL *ssl, const unsigned char *cookie,\n                         unsigned
      int cookie_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:301,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:301,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:301,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:302,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:302,1
    - Dst: SSL_CTX_set_cookie_generate_cb
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:304,1
    - Dst: SSL_CTX_set_cookie_verify_cb
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:305,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:308,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:308,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:309,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:309,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:309,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:311,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:314,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:314,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:316,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:317,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:320,1
    - Dst: DTLSv1_listen
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:320,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:322,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:325,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:326,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:329,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:333,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:336,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:338,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:343,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:344,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:345,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:346,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 348
    functionName: dtls_listen_test
    functionSourceFile: /src/openssl-1.1.1g/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached:
    - SSL_set0_wbio
    - SSL_CTX_set_cookie_generate_cb
    - BIO_s_mem
    - BIO_reset
    - SSL_set0_rbio
    - TEST_int_ge
    - TEST_true
    - TEST_int_eq
    - OPENSSL_free
    - TEST_info
    - TEST_mem_eq
    - BIO_ADDR_new
    - BIO_free
    - SSL_new
    - SSL_CTX_set_cookie_verify_cb
    - SSL_free
    - BIO_set_mem_eof_return
    - BIO_new_mem_buf
    - BIO_get_mem_data
    - TEST_ptr
    - DTLS_server_method
    - DTLSv1_listen
    - SSL_CTX_new
    - SSL_CTX_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int dtls_listen_test(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:354,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/dtlsv1listentest.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/srptest.c:41,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-1.1.1g/test/srptest.c:41,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:45,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openssl-1.1.1g/test/srptest.c:45,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:49,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:50,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:51,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:52,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/srptest.c:55,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/srptest.c:56,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/srptest.c:57,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:59,1
    - Dst: SRP_Calc_B
      Src: /src/openssl-1.1.1g/test/srptest.c:62,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:63,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:65,1
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openssl-1.1.1g/test/srptest.c:65,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/srptest.c:69,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/srptest.c:70,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/srptest.c:71,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:73,1
    - Dst: SRP_Calc_A
      Src: /src/openssl-1.1.1g/test/srptest.c:76,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:77,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:79,1
    - Dst: SRP_Verify_A_mod_N
      Src: /src/openssl-1.1.1g/test/srptest.c:79,1
    - Dst: SRP_Calc_u
      Src: /src/openssl-1.1.1g/test/srptest.c:83,1
    - Dst: SRP_Calc_x
      Src: /src/openssl-1.1.1g/test/srptest.c:86,1
    - Dst: SRP_Calc_client_key
      Src: /src/openssl-1.1.1g/test/srptest.c:87,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:88,1
    - Dst: SRP_Calc_server_key
      Src: /src/openssl-1.1.1g/test/srptest.c:91,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/srptest.c:92,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/srptest.c:94,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:100,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:101,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:102,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/srptest.c:103,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/srptest.c:104,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:105,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/srptest.c:106,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:107,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/srptest.c:108,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:109,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 3
    argNames:
    - username
    - client_pass
    - server_pass
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 23
    functionDepth: 8
    functionLinenumber: 23
    functionLinenumberEnd: 112
    functionName: run_srp
    functionSourceFile: /src/openssl-1.1.1g/test/srptest.c
    functionUses: 0
    functionsReached:
    - SRP_Verify_B_mod_N
    - TEST_BN_ne_zero
    - SRP_Calc_A
    - BN_clear_free
    - SRP_Calc_x
    - TEST_true
    - RAND_bytes
    - SRP_Calc_client_key
    - BN_bin2bn
    - BN_free
    - test_output_bignum
    - SRP_Calc_B
    - SRP_get_default_gN
    - SRP_Verify_A_mod_N
    - TEST_BN_eq
    - TEST_ptr
    - SRP_Calc_server_key
    - SRP_create_verifier_BN
    - SRP_Calc_u
    linkageType: ''
    returnType: int
    signature: "int run_srp(const char *username, const char *client_pass,\n                   const
      char *server_pass)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:119,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/srptest.c:119,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/srptest.c:122,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/srptest.c:123,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/srptest.c:124,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/srptest.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - name
    - bn
    - hexbn
    argTypes:
    - char*
    - BIGNUM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: check_bn
    functionSourceFile: /src/openssl-1.1.1g/test/srptest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_BN_eq
    - BN_cmp
    - TEST_error
    - BN_free
    - BN_hex2bn
    linkageType: ''
    returnType: int
    signature: int check_bn(const char *name, const BIGNUM *bn, const char *hexbn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/srptest.c:146,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-1.1.1g/test/srptest.c:146,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/srptest.c:148,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:150,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openssl-1.1.1g/test/srptest.c:150,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/srptest.c:154,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:155,1
    - Dst: check_bn
      Src: /src/openssl-1.1.1g/test/srptest.c:155,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/srptest.c:162,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/srptest.c:165,1
    - Dst: SRP_Calc_B
      Src: /src/openssl-1.1.1g/test/srptest.c:169,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:170,1
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openssl-1.1.1g/test/srptest.c:170,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/srptest.c:173,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:174,1
    - Dst: check_bn
      Src: /src/openssl-1.1.1g/test/srptest.c:174,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/srptest.c:181,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/srptest.c:184,1
    - Dst: SRP_Calc_A
      Src: /src/openssl-1.1.1g/test/srptest.c:188,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:189,1
    - Dst: SRP_Verify_A_mod_N
      Src: /src/openssl-1.1.1g/test/srptest.c:189,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/srptest.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:193,1
    - Dst: check_bn
      Src: /src/openssl-1.1.1g/test/srptest.c:193,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/srptest.c:200,1
    - Dst: SRP_Calc_u
      Src: /src/openssl-1.1.1g/test/srptest.c:203,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:205,1
    - Dst: check_bn
      Src: /src/openssl-1.1.1g/test/srptest.c:205,1
    - Dst: SRP_Calc_x
      Src: /src/openssl-1.1.1g/test/srptest.c:210,1
    - Dst: SRP_Calc_client_key
      Src: /src/openssl-1.1.1g/test/srptest.c:211,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/srptest.c:212,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:213,1
    - Dst: check_bn
      Src: /src/openssl-1.1.1g/test/srptest.c:213,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/srptest.c:220,1
    - Dst: SRP_Calc_server_key
      Src: /src/openssl-1.1.1g/test/srptest.c:223,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/srptest.c:224,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:225,1
    - Dst: check_bn
      Src: /src/openssl-1.1.1g/test/srptest.c:225,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/srptest.c:232,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:237,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:238,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:239,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/srptest.c:240,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/srptest.c:241,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:242,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/srptest.c:243,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:244,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/srptest.c:245,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/srptest.c:246,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 130
    functionDepth: 8
    functionLinenumber: 130
    functionLinenumberEnd: 249
    functionName: run_srp_kat
    functionSourceFile: /src/openssl-1.1.1g/test/srptest.c
    functionUses: 0
    functionsReached:
    - SRP_Verify_A_mod_N
    - check_bn
    - SRP_Calc_x
    - TEST_true
    - TEST_ptr
    - SRP_Verify_B_mod_N
    - SRP_Calc_B
    - SRP_Calc_client_key
    - SRP_get_default_gN
    - TEST_info
    - SRP_Calc_A
    - SRP_Calc_server_key
    - BN_free
    - SRP_create_verifier_BN
    - TEST_note
    - BN_hex2bn
    - SRP_Calc_u
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int run_srp_kat(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/srptest.c:254,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/srptest.c:255,1
    - Dst: run_srp
      Src: /src/openssl-1.1.1g/test/srptest.c:255,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/srptest.c:259,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/srptest.c:260,1
    - Dst: run_srp
      Src: /src/openssl-1.1.1g/test/srptest.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 9
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: run_srp_tests
    functionSourceFile: /src/openssl-1.1.1g/test/srptest.c
    functionUses: 0
    functionsReached:
    - TEST_false
    - TEST_info
    - TEST_true
    - run_srp
    linkageType: ''
    returnType: int
    signature: int run_srp_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/srptest.c:270,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/srptest.c:272,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/srptest.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/srptest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - printf
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_tls1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/test/afalgtest.c:72,1
    - Dst: EVP_aes_192_cbc
      Src: /src/openssl-1.1.1g/test/afalgtest.c:76,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-1.1.1g/test/afalgtest.c:80,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/afalgtest.c:86,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/test/afalgtest.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/afalgtest.c:89,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/afalgtest.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/afalgtest.c:90,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/afalgtest.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/afalgtest.c:91,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-1.1.1g/test/afalgtest.c:91,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/afalgtest.c:95,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/afalgtest.c:98,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/test/afalgtest.c:98,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/afalgtest.c:99,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/afalgtest.c:99,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/afalgtest.c:100,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/afalgtest.c:100,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/afalgtest.c:101,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-1.1.1g/test/afalgtest.c:101,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/afalgtest.c:105,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/afalgtest.c:106,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/test/afalgtest.c:112,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 1
    argNames:
    - keysize_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 114
    functionName: test_afalg_aes_cbc
    functionSourceFile: /src/openssl-1.1.1g/test/afalgtest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - TEST_true
    - EVP_aes_192_cbc
    - EVP_CipherFinal_ex
    - TEST_ptr
    - EVP_CIPHER_CTX_reset
    - TEST_int_eq
    - EVP_CIPHER_CTX_new
    - EVP_CipherUpdate
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - EVP_aes_256_cbc
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: int test_afalg_aes_cbc(int keysize_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_load_builtin_engines
      Src: /src/openssl-1.1.1g/test/afalgtest.c:120,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/test/afalgtest.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: global_init
    functionSourceFile: /src/openssl-1.1.1g/test/afalgtest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - ENGINE_load_builtin_engines
    linkageType: ''
    returnType: int
    signature: int global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/test/afalgtest.c:131,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/afalgtest.c:133,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/afalgtest.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 7
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/afalgtest.c
    functionUses: 0
    functionsReached:
    - ENGINE_by_id
    - ADD_ALL_TESTS
    - TEST_info
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/afalgtest.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/afalgtest.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_x509v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_srtp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_cms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:56,1
    - Dst: dlopen
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - filename
    - lib
    argTypes:
    - char*
    - SHLIB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: shlib_load
    functionSourceFile: /src/openssl-1.1.1g/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - strlen
    - dlopen
    linkageType: ''
    returnType: int
    signature: int shlib_load(const char *filename, SHLIB *lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lib
    - symname
    - sym
    argTypes:
    - SHLIB
    - char*
    - SHLIB_SYM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: shlib_sym
    functionSourceFile: /src/openssl-1.1.1g/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - dlsym
    linkageType: ''
    returnType: int
    signature: int shlib_sym(SHLIB lib, const char *symname, SHLIB_SYM *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lib
    argTypes:
    - SHLIB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: shlib_close
    functionSourceFile: /src/openssl-1.1.1g/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - dlclose
    linkageType: ''
    returnType: int
    signature: int shlib_close(SHLIB lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryA
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - filename
    - lib
    argTypes:
    - char*
    - SHLIB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: shlib_load
    functionSourceFile: /src/openssl-1.1.1g/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - LoadLibraryA
    linkageType: ''
    returnType: int
    signature: int shlib_load(const char *filename, SHLIB *lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddress
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lib
    - symname
    - sym
    argTypes:
    - SHLIB
    - char*
    - SHLIB_SYM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: shlib_sym
    functionSourceFile: /src/openssl-1.1.1g/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int shlib_sym(SHLIB lib, const char *symname, SHLIB_SYM *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FreeLibrary
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lib
    argTypes:
    - SHLIB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: shlib_close
    functionSourceFile: /src/openssl-1.1.1g/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - FreeLibrary
    linkageType: ''
    returnType: int
    signature: int shlib_close(SHLIB lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:109,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:114,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: atexit_handler
    functionSourceFile: /src/openssl-1.1.1g/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - fclose
    - fprintf
    - fopen
    linkageType: ''
    returnType: void
    signature: void atexit_handler(void)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: shlib_load
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:141,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:142,1
    - Dst: shlib_load
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:150,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:151,1
    - Dst: shlib_load
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:156,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:157,1
    - Dst: shlib_sym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:166,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:167,1
    - Dst: myOPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:171,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:172,1
    - Dst: shlib_sym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:180,1
    - Dst: shlib_sym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:181,1
    - Dst: shlib_sym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:182,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:183,1
    - Dst: mySSL_CTX_new
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:189,1
    - Dst: myTLS_method
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:189,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:191,1
    - Dst: mySSL_CTX_free
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:194,1
    - Dst: shlib_sym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:197,1
    - Dst: shlib_sym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:198,1
    - Dst: shlib_sym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:199,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:200,1
    - Dst: myERR_get_error
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:204,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:205,1
    - Dst: myOpenSSL_version_num
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:210,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:211,1
    - Dst: myOPENSSL_atexit
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:216,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:217,1
    - Dst: shlib_sym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:234,1
    - Dst: shlib_sym
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:235,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:236,1
    - Dst: myDSO_dsobyaddr
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:246,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:248,1
    - Dst: myDSO_free
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:251,1
    - Dst: shlib_close
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:256,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:257,1
    - Dst: shlib_close
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:262,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:263,1
    - Dst: __GLIBC_PREREQ
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:272,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:279,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 288
    functionName: test_lib
    functionSourceFile: /src/openssl-1.1.1g/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - shlib_sym
    - myOPENSSL_init_crypto
    - myDSO_dsobyaddr
    - __GLIBC_PREREQ
    - shlib_load
    - mySSL_CTX_new
    - myTLS_method
    - myOPENSSL_atexit
    - mySSL_CTX_free
    - myERR_get_error
    - myDSO_free
    - shlib_close
    - fprintf
    - myOpenSSL_version_num
    linkageType: ''
    returnType: int
    signature: int test_lib(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:302,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:308,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:310,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:312,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:314,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:316,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:319,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:326,1
    - Dst: test_lib
      Src: /src/openssl-1.1.1g/test/shlibloadtest.c:331,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 335
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - strcmp
    - test_lib
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:47,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:47,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:53,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:53,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:54,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:54,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:56,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:56,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:57,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:58,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:62,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:63,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:63,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:64,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:67,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:67,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:68,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:70,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:72,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:73,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:76,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:77,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:79,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:80,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:89,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:90,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:90,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:91,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:94,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:94,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:95,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:96,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:99,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:101,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:102,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:110,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:110,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:111,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:111,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:114,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:114,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:115,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:116,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:117,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:118,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:120,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:125,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:126,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:126,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:127,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:130,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:130,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:131,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:133,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:135,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:136,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:139,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:140,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:142,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:143,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:152,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:152,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:153,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:153,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:154,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:157,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:157,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:158,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:159,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:162,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:164,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:165,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 96
    argCount: 3
    argNames:
    - cipher
    - key
    - iv
    argTypes:
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 171
    functionName: do_bio_cipher
    functionSourceFile: /src/openssl-1.1.1g/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - TEST_true
    - TEST_uchar_eq
    - RAND_bytes
    - BIO_push
    - TEST_info
    - TEST_int_gt
    - memset
    - BIO_new_mem_buf
    - BIO_new
    - TEST_mem_eq
    - BIO_flush
    - BIO_set_cipher
    - BIO_free_all
    - BIO_f_cipher
    linkageType: ''
    returnType: int
    signature: "int do_bio_cipher(const EVP_CIPHER* cipher, const unsigned char* key,\n
      \   const unsigned char* iv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_bio_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:178,1
    - Dst: do_bio_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cipher
    - idx
    argTypes:
    - EVP_CIPHER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: do_test_bio_cipher
    functionSourceFile: /src/openssl-1.1.1g/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_bio_cipher
    linkageType: ''
    returnType: int
    signature: int do_test_bio_cipher(const EVP_CIPHER* cipher, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:187,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 7
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: test_bio_enc_aes_128_cbc
    functionSourceFile: /src/openssl-1.1.1g/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - do_test_bio_cipher
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_aes_128_cbc(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:192,1
    - Dst: EVP_aes_128_ctr
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 7
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: test_bio_enc_aes_128_ctr
    functionSourceFile: /src/openssl-1.1.1g/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_aes_128_ctr
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_aes_128_ctr(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:197,1
    - Dst: EVP_aes_256_cfb
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 7
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: test_bio_enc_aes_256_cfb
    functionSourceFile: /src/openssl-1.1.1g/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_cfb
    - do_test_bio_cipher
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_aes_256_cfb(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:202,1
    - Dst: EVP_aes_256_ofb
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 7
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: test_bio_enc_aes_256_ofb
    functionSourceFile: /src/openssl-1.1.1g/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_aes_256_ofb
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_aes_256_ofb(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:208,1
    - Dst: EVP_chacha20
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 7
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: test_bio_enc_chacha20
    functionSourceFile: /src/openssl-1.1.1g/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_chacha20
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_chacha20(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:214,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 7
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: test_bio_enc_chacha20_poly1305
    functionSourceFile: /src/openssl-1.1.1g/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_chacha20_poly1305
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_chacha20_poly1305(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:221,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:222,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:223,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:224,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:226,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bio_enc_test.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_pem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/pemtest.c:33,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/pemtest.c:33,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/pemtest.c:41,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/pemtest.c:42,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/pemtest.c:42,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/pemtest.c:43,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/pemtest.c:43,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/pemtest.c:44,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/pemtest.c:44,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/pemtest.c:45,1
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-1.1.1g/test/pemtest.c:45,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/pemtest.c:48,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/pemtest.c:48,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/pemtest.c:48,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/pemtest.c:49,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/pemtest.c:49,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/pemtest.c:50,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/pemtest.c:50,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/pemtest.c:50,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/pemtest.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/pemtest.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/pemtest.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/pemtest.c:57,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 59
    functionName: test_b64
    functionSourceFile: /src/openssl-1.1.1g/test/pemtest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - PEM_read_bio_ex
    - memcmp
    - TEST_ptr
    - TEST_int_eq
    - OPENSSL_free
    - BIO_s_mem
    - BIO_free
    - BIO_printf
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_b64(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/pemtest.c:63,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/pemtest.c:63,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/pemtest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/pemtest.c:70,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/pemtest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/pemtest.c:71,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/pemtest.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/pemtest.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/pemtest.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/pemtest.c:74,1
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-1.1.1g/test/pemtest.c:74,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/pemtest.c:76,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/pemtest.c:79,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/pemtest.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/pemtest.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/pemtest.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 84
    functionName: test_invalid
    functionSourceFile: /src/openssl-1.1.1g/test/pemtest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - PEM_read_bio_ex
    - TEST_ptr
    - OPENSSL_free
    - BIO_s_mem
    - BIO_free
    - BIO_printf
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/pemtest.c:88,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/pemtest.c:88,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/pemtest.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/pemtest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:65,1
    - Dst: op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:65,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:67,1
    - Dst: op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: test_binary_op
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - op
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: "int test_binary_op(unsigned int (*op) (unsigned int a, unsigned int
      b),\n                          const char *op_name, unsigned int a, unsigned
      int b,\n                          int is_true)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:77,1
    - Dst: op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:77,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:79,1
    - Dst: op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: test_binary_op_8
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - op
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: "int test_binary_op_8(unsigned\n                            char (*op)
      (unsigned int a, unsigned int b),\n                            const char *op_name,
      unsigned int a,\n                            unsigned int b, int is_true)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:88,1
    - Dst: op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:88,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:90,1
    - Dst: op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: test_binary_op_s
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - op
    - TEST_uint_eq
    - TEST_size_t_eq
    linkageType: ''
    returnType: int
    signature: "int test_binary_op_s(size_t (*op) (size_t a, size_t b),\n                            const
      char *op_name, size_t a, size_t b,\n                            int is_true)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:99,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:102,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:103,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:106,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 111
    functionName: test_binary_op_64
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - op
    - TEST_error
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int test_binary_op_64(uint64_t (*op)(uint64_t a, uint64_t b),\n                             const
      char *op_name, uint64_t a, uint64_t b,\n                             int is_true)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:117,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:117,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:119,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: test_is_zero
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_is_zero
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_is_zero(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:128,1
    - Dst: constant_time_is_zero_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:128,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:130,1
    - Dst: constant_time_is_zero_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: test_is_zero_8
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_uint_eq
    - constant_time_is_zero_8
    linkageType: ''
    returnType: int
    signature: int test_is_zero_8(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:139,1
    - Dst: constant_time_is_zero_32
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:139,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:141,1
    - Dst: constant_time_is_zero_32
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: test_is_zero_32
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_is_zero_32
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_is_zero_32(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:150,1
    - Dst: constant_time_is_zero_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:150,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:152,1
    - Dst: constant_time_is_zero_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: test_is_zero_s
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_uint_eq
    - constant_time_is_zero_s
    - TEST_size_t_eq
    linkageType: ''
    returnType: int
    signature: int test_is_zero_s(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:159,1
    - Dst: constant_time_select
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:159,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:161,1
    - Dst: constant_time_select
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: test_select
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_select
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_select(unsigned int a, unsigned int b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:168,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:168,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:170,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: test_select_8
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_select_8
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_select_8(unsigned char a, unsigned char b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:177,1
    - Dst: constant_time_select_32
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:177,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:179,1
    - Dst: constant_time_select_32
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: test_select_32
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_select_32
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_select_32(uint32_t a, uint32_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:186,1
    - Dst: constant_time_select_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:186,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:188,1
    - Dst: constant_time_select_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: test_select_s
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_uint_eq
    - constant_time_select_s
    linkageType: ''
    returnType: int
    signature: int test_select_s(size_t a, size_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select_64
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:195,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:198,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:199,1
    - Dst: constant_time_select_64
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:202,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: test_select_64
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - constant_time_select_64
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int test_select_64(uint64_t a, uint64_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:212,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:212,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:214,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: test_select_int
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_select_int
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int test_select_int(int a, int b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:221,1
    - Dst: constant_time_eq_int_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:221,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:223,1
    - Dst: constant_time_eq_int_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: test_eq_int_8
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_eq_int_8
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int test_eq_int_8(int a, int b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:230,1
    - Dst: constant_time_eq_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:230,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:232,1
    - Dst: constant_time_eq_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: test_eq_s
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_eq_s
    - TEST_int_eq
    - TEST_size_t_eq
    linkageType: ''
    returnType: int
    signature: int test_eq_s(size_t a, size_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:239,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:239,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:241,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: test_eq_int
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_uint_eq
    - constant_time_eq_int
    linkageType: ''
    returnType: int
    signature: int test_eq_int(int a, int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:248,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:248,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: test_sizeofs
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_sizeofs(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:259,1
    - Dst: test_select
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:262,1
    - Dst: test_binary_op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:263,1
    - Dst: test_binary_op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:265,1
    - Dst: test_binary_op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:267,1
    - Dst: test_binary_op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:269,1
    - Dst: test_binary_op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:271,1
    - Dst: test_binary_op
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:273,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 278
    functionName: test_binops
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - test_binary_op
    - OSSL_NELEM
    - test_select
    linkageType: ''
    returnType: int
    signature: int test_binops(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:286,1
    - Dst: test_binary_op_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:289,1
    - Dst: test_binary_op_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:291,1
    - Dst: test_binary_op_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:293,1
    - Dst: test_binary_op_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:295,1
    - Dst: test_binary_op_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:297,1
    - Dst: test_binary_op_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 304
    functionName: test_binops_8
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - test_binary_op_8
    linkageType: ''
    returnType: int
    signature: int test_binops_8(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:312,1
    - Dst: test_select_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:315,1
    - Dst: test_eq_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:316,1
    - Dst: test_binary_op_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:317,1
    - Dst: test_binary_op_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:319,1
    - Dst: test_binary_op_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:321,1
    - Dst: test_binary_op_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:323,1
    - Dst: test_binary_op_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:325,1
    - Dst: test_binary_op_s
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 332
    functionName: test_binops_s
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - test_eq_s
    - test_select_s
    - test_binary_op_s
    linkageType: ''
    returnType: int
    signature: int test_binops_s(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:340,1
    - Dst: test_select_int
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:343,1
    - Dst: test_eq_int
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:344,1
    - Dst: test_eq_int_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 349
    functionName: test_signed
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - test_eq_int_8
    - test_eq_int
    - test_select_int
    linkageType: ''
    returnType: int
    signature: int test_signed(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_select_8
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 364
    functionName: test_8values
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - test_select_8
    linkageType: ''
    returnType: int
    signature: int test_8values(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:372,1
    - Dst: test_select_32
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 379
    functionName: test_32values
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - test_select_32
    linkageType: ''
    returnType: int
    signature: int test_32values(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:386,1
    - Dst: test_binary_op_64
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:389,1
    - Dst: test_select_64
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:391,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 397
    functionName: test_64values
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - test_binary_op_64
    - test_select_64
    - TEST_info
    linkageType: ''
    returnType: int
    signature: int test_64values(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:401,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:402,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:402,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:403,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:403,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:404,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:404,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:405,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:405,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:406,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:406,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:407,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:407,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:408,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:408,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:409,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:409,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:410,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:410,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:411,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:411,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:412,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/constant_time_test.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 414
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_dsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ts.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_kdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - nid
    - ','
    - flag
    - ','
    - pr
    - ','
    - post
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 102
    functionName: make_drbg_test_data
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_drbg_test_data(nid, flag, pr, post)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nid
    - ','
    - pr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: make_drbg_test_data_use_df
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_drbg_test_data_use_df(nid, pr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nid
    - ','
    - pr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: make_drbg_test_data_no_df
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_drbg_test_data_no_df(nid, pr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get_ex_data
      Src: /src/openssl-1.1.1g/test/drbgtest.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - drbg
    - pout
    - entropy
    - min_len
    - max_len
    - prediction_resistance
    argTypes:
    - RAND_DRBG*
    - unsigned char**
    - int
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: kat_entropy
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get_ex_data
    linkageType: ''
    returnType: size_t
    signature: "size_t kat_entropy(RAND_DRBG *drbg, unsigned char **pout,\n                          int
      entropy, size_t min_len, size_t max_len,\n                          int prediction_resistance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get_ex_data
      Src: /src/openssl-1.1.1g/test/drbgtest.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - drbg
    - pout
    - entropy
    - min_len
    - max_len
    argTypes:
    - RAND_DRBG*
    - unsigned char**
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: kat_nonce
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get_ex_data
    linkageType: ''
    returnType: size_t
    signature: "size_t kat_nonce(RAND_DRBG *drbg, unsigned char **pout,\n                        int
      entropy, size_t min_len, size_t max_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:155,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/drbgtest.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: uninstantiate
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 5
    functionsReached:
    - RAND_DRBG_uninstantiate
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: int uninstantiate(RAND_DRBG *drbg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbgtest.c:175,1
    - Dst: RAND_DRBG_new
      Src: /src/openssl-1.1.1g/test/drbgtest.c:175,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:177,1
    - Dst: RAND_DRBG_set_callbacks
      Src: /src/openssl-1.1.1g/test/drbgtest.c:177,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/drbgtest.c:182,1
    - Dst: RAND_DRBG_set_ex_data
      Src: /src/openssl-1.1.1g/test/drbgtest.c:187,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:189,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:190,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:190,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:198,1
    - Dst: RAND_DRBG_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:199,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:199,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:201,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:203,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:209,1
    - Dst: RAND_DRBG_set
      Src: /src/openssl-1.1.1g/test/drbgtest.c:209,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:210,1
    - Dst: RAND_DRBG_set_callbacks
      Src: /src/openssl-1.1.1g/test/drbgtest.c:210,1
    - Dst: RAND_DRBG_set_ex_data
      Src: /src/openssl-1.1.1g/test/drbgtest.c:213,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:220,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:220,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:229,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:229,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:231,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:240,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:240,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:242,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:247,1
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/test/drbgtest.c:248,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - td
    argTypes:
    - DRBG_SELFTEST_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 250
    functionName: single_kat
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - RAND_DRBG_set
    - RAND_DRBG_free
    - RAND_DRBG_set_ex_data
    - TEST_ptr
    - RAND_DRBG_new
    - RAND_DRBG_instantiate
    - memset
    - RAND_DRBG_set_callbacks
    - TEST_mem_eq
    - RAND_DRBG_reseed
    - uninstantiate
    - RAND_DRBG_generate
    linkageType: ''
    returnType: int
    signature: int single_kat(DRBG_SELFTEST_DATA *td)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:257,1
    - Dst: RAND_DRBG_set
      Src: /src/openssl-1.1.1g/test/drbgtest.c:257,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:258,1
    - Dst: RAND_DRBG_set_callbacks
      Src: /src/openssl-1.1.1g/test/drbgtest.c:258,1
    - Dst: RAND_DRBG_set_ex_data
      Src: /src/openssl-1.1.1g/test/drbgtest.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - drbg
    - td
    - t
    argTypes:
    - RAND_DRBG*
    - DRBG_SELFTEST_DATA*
    - TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 269
    functionName: init
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 197
    functionsReached:
    - RAND_DRBG_set_ex_data
    - RAND_DRBG_set_callbacks
    - TEST_true
    - RAND_DRBG_set
    linkageType: ''
    returnType: int
    signature: int init(RAND_DRBG *drbg, DRBG_SELFTEST_DATA *td, TEST_CTX *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:277,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/drbgtest.c:277,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:278,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - drbg
    - td
    - t
    argTypes:
    - RAND_DRBG*
    - DRBG_SELFTEST_DATA*
    - TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: instantiate
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 9
    functionsReached:
    - init
    - RAND_DRBG_instantiate
    - TEST_true
    linkageType: ''
    returnType: int
    signature: "int instantiate(RAND_DRBG *drbg, DRBG_SELFTEST_DATA *td,\n                       TEST_CTX
      *t)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbgtest.c:296,1
    - Dst: RAND_DRBG_new
      Src: /src/openssl-1.1.1g/test/drbgtest.c:296,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/drbgtest.c:304,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:305,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/drbgtest.c:314,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:314,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/drbgtest.c:318,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:318,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:320,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/drbgtest.c:325,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:326,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:327,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/drbgtest.c:332,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:333,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:334,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/drbgtest.c:344,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:345,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:346,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/drbgtest.c:353,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:354,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:355,1
    - Dst: instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:360,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:361,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:361,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/drbgtest.c:366,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:366,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/drbgtest.c:371,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:371,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/drbgtest.c:380,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:380,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:382,1
    - Dst: instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:386,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:393,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:393,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:395,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:396,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:397,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/drbgtest.c:405,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:405,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:407,1
    - Dst: instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:411,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:418,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:418,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:420,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:421,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:422,1
    - Dst: instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:430,1
    - Dst: RAND_DRBG_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:431,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/drbgtest.c:436,1
    - Dst: RAND_DRBG_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:436,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:437,1
    - Dst: instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:441,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/drbgtest.c:444,1
    - Dst: RAND_DRBG_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:444,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:445,1
    - Dst: instantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:449,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/drbgtest.c:452,1
    - Dst: RAND_DRBG_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:452,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:453,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:457,1
    - Dst: uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:463,1
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/test/drbgtest.c:464,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 99
    argCount: 1
    argNames:
    - td
    argTypes:
    - DRBG_SELFTEST_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 287
    functionDepth: 5
    functionLinenumber: 287
    functionLinenumberEnd: 466
    functionName: error_check
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - RAND_DRBG_free
    - TEST_ptr
    - TEST_int_eq
    - TEST_int_le
    - instantiate
    - RAND_DRBG_instantiate
    - RAND_DRBG_new
    - TEST_false
    - TEST_mem_eq
    - RAND_DRBG_reseed
    - init
    - uninstantiate
    - RAND_DRBG_generate
    linkageType: ''
    returnType: int
    signature: int error_check(DRBG_SELFTEST_DATA *td)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: single_kat
      Src: /src/openssl-1.1.1g/test/drbgtest.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 468
    functionDepth: 6
    functionLinenumber: 468
    functionLinenumberEnd: 479
    functionName: test_kats
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - single_kat
    linkageType: ''
    returnType: int
    signature: int test_kats(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error_check
      Src: /src/openssl-1.1.1g/test/drbgtest.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 481
    functionDepth: 6
    functionLinenumber: 481
    functionLinenumberEnd: 492
    functionName: test_error_checks
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - error_check
    linkageType: ''
    returnType: int
    signature: int test_error_checks(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get_ex_data
      Src: /src/openssl-1.1.1g/test/drbgtest.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: get_hook_ctx
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get_ex_data
    linkageType: ''
    returnType: HOOK_CTX
    signature: HOOK_CTX *get_hook_ctx(RAND_DRBG *drbg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:524,1
    - Dst: HOOK_CTX*::get_entropy
      Src: /src/openssl-1.1.1g/test/drbgtest.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - drbg
    - pout
    - entropy
    - min_len
    - max_len
    - prediction_resistance
    argTypes:
    - RAND_DRBG*
    - unsigned char**
    - int
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 535
    functionName: get_entropy_hook
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - get_hook_ctx
    - HOOK_CTX*::get_entropy
    linkageType: ''
    returnType: size_t
    signature: "size_t get_entropy_hook(RAND_DRBG *drbg, unsigned char **pout,\n                              int
      entropy, size_t min_len, size_t max_len,\n                              int
      prediction_resistance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/drbgtest.c:540,1
    - Dst: RAND_DRBG_set_ex_data
      Src: /src/openssl-1.1.1g/test/drbgtest.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - drbg
    - ctx
    argTypes:
    - RAND_DRBG*
    - HOOK_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 545
    functionName: hook_drbg
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_set_ex_data
    - memset
    linkageType: ''
    returnType: void
    signature: void hook_drbg(RAND_DRBG *drbg, HOOK_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:550,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/test/drbgtest.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 554
    functionName: unhook_drbg
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_free_ex_data
    - get_hook_ctx
    linkageType: ''
    returnType: void
    signature: void unhook_drbg(RAND_DRBG *drbg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HOOK_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 561
    functionName: reset_hook_ctx
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_hook_ctx(HOOK_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:566,1
    - Dst: reset_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:567,1
    - Dst: reset_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 569
    functionName: reset_drbg_hook_ctx
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - reset_hook_ctx
    linkageType: ''
    returnType: void
    signature: void reset_drbg_hook_ctx(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/drbgtest.c:604,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/drbgtest.c:605,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/drbgtest.c:606,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/drbgtest.c:610,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/drbgtest.c:611,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/drbgtest.c:619,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:623,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/drbgtest.c:623,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:624,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/test/drbgtest.c:624,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/drbgtest.c:626,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:634,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:635,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:636,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:641,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:647,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:653,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:659,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:660,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-1.1.1g/test/drbgtest.c:664,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-1.1.1g/test/drbgtest.c:665,1
    - Dst: TEST_time_t_ge
      Src: /src/openssl-1.1.1g/test/drbgtest.c:669,1
    - Dst: TEST_time_t_ge
      Src: /src/openssl-1.1.1g/test/drbgtest.c:670,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/drbgtest.c:673,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 36
    argCount: 8
    argNames:
    - expect_success
    - master
    - public
    - private
    - expect_master_reseed
    - expect_public_reseed
    - expect_private_reseed
    - reseed_time
    argTypes:
    - int
    - RAND_DRBG*
    - RAND_DRBG*
    - RAND_DRBG*
    - int
    - int
    - int
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 585
    functionDepth: 7
    functionLinenumber: 585
    functionLinenumberEnd: 677
    functionName: test_drbg_reseed
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - TEST_int_ne
    - RAND_bytes
    - TEST_int_eq
    - TEST_int_le
    - TEST_time_t_le
    - ERR_clear_error
    - time
    - TEST_time_t_ge
    linkageType: ''
    returnType: int
    signature: "int test_drbg_reseed(int expect_success,\n                            RAND_DRBG
      *master,\n                            RAND_DRBG *public,\n                            RAND_DRBG
      *private,\n                            int expect_master_reseed,\n                            int
      expect_public_reseed,\n                            int expect_private_reseed,\n
      \                           time_t reseed_time\n                           )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/openssl-1.1.1g/test/drbgtest.c:692,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/drbgtest.c:693,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:698,1
    - Dst: waitpid
      Src: /src/openssl-1.1.1g/test/drbgtest.c:698,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:698,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:702,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:702,1
    - Dst: unhook_drbg
      Src: /src/openssl-1.1.1g/test/drbgtest.c:706,1
    - Dst: unhook_drbg
      Src: /src/openssl-1.1.1g/test/drbgtest.c:707,1
    - Dst: unhook_drbg
      Src: /src/openssl-1.1.1g/test/drbgtest.c:708,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/test/drbgtest.c:709,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - master
    - public
    - private
    argTypes:
    - RAND_DRBG*
    - RAND_DRBG*
    - RAND_DRBG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 685
    functionDepth: 8
    functionLinenumber: 685
    functionLinenumberEnd: 710
    functionName: test_drbg_reseed_after_fork
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - TEST_int_ge
    - TEST_true
    - fork
    - TEST_int_eq
    - test_drbg_reseed
    - unhook_drbg
    - exit
    - waitpid
    linkageType: ''
    returnType: int
    signature: "int test_drbg_reseed_after_fork(RAND_DRBG *master,\n                                       RAND_DRBG
      *public,\n                                       RAND_DRBG *private)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:726,1
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/test/drbgtest.c:726,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-1.1.1g/test/drbgtest.c:726,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbgtest.c:730,1
    - Dst: RAND_DRBG_get0_master
      Src: /src/openssl-1.1.1g/test/drbgtest.c:730,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbgtest.c:731,1
    - Dst: RAND_DRBG_get0_public
      Src: /src/openssl-1.1.1g/test/drbgtest.c:731,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbgtest.c:732,1
    - Dst: RAND_DRBG_get0_private
      Src: /src/openssl-1.1.1g/test/drbgtest.c:732,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/drbgtest.c:736,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/drbgtest.c:737,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/drbgtest.c:738,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:739,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:740,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:744,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:745,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:746,1
    - Dst: hook_drbg
      Src: /src/openssl-1.1.1g/test/drbgtest.c:750,1
    - Dst: hook_drbg
      Src: /src/openssl-1.1.1g/test/drbgtest.c:751,1
    - Dst: hook_drbg
      Src: /src/openssl-1.1.1g/test/drbgtest.c:752,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:758,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:758,1
    - Dst: reset_drbg_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:760,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:766,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:766,1
    - Dst: reset_drbg_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:768,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:775,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:775,1
    - Dst: reset_drbg_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:777,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:785,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:785,1
    - Dst: reset_drbg_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:787,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:795,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:795,1
    - Dst: reset_drbg_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:797,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:800,1
    - Dst: test_drbg_reseed_after_fork
      Src: /src/openssl-1.1.1g/test/drbgtest.c:800,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/drbgtest.c:805,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/drbgtest.c:815,1
    - Dst: RAND_add
      Src: /src/openssl-1.1.1g/test/drbgtest.c:816,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:817,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:817,1
    - Dst: reset_drbg_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:820,1
    - Dst: RAND_add
      Src: /src/openssl-1.1.1g/test/drbgtest.c:828,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:829,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:829,1
    - Dst: reset_drbg_hook_ctx
      Src: /src/openssl-1.1.1g/test/drbgtest.c:831,1
    - Dst: unhook_drbg
      Src: /src/openssl-1.1.1g/test/drbgtest.c:837,1
    - Dst: unhook_drbg
      Src: /src/openssl-1.1.1g/test/drbgtest.c:838,1
    - Dst: unhook_drbg
      Src: /src/openssl-1.1.1g/test/drbgtest.c:839,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 718
    functionDepth: 9
    functionLinenumber: 718
    functionLinenumberEnd: 842
    functionName: test_rand_drbg_reseed
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get0_master
    - time
    - TEST_ptr_eq
    - TEST_true
    - reset_drbg_hook_ctx
    - RAND_add
    - TEST_ptr_ne
    - TEST_ptr
    - RAND_DRBG_uninstantiate
    - test_drbg_reseed
    - unhook_drbg
    - RAND_get_rand_method
    - RAND_DRBG_get0_private
    - memset
    - hook_drbg
    - RAND_DRBG_get0_public
    - test_drbg_reseed_after_fork
    - RAND_OpenSSL
    linkageType: ''
    returnType: int
    signature: int test_rand_drbg_reseed(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-1.1.1g/test/drbgtest.c:851,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbgtest.c:854,1
    - Dst: RAND_DRBG_get0_public
      Src: /src/openssl-1.1.1g/test/drbgtest.c:854,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbgtest.c:855,1
    - Dst: RAND_DRBG_get0_private
      Src: /src/openssl-1.1.1g/test/drbgtest.c:855,1
    - Dst: RAND_DRBG_set_reseed_time_interval
      Src: /src/openssl-1.1.1g/test/drbgtest.c:859,1
    - Dst: RAND_DRBG_set_reseed_time_interval
      Src: /src/openssl-1.1.1g/test/drbgtest.c:860,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/drbgtest.c:863,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/test/drbgtest.c:865,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/drbgtest.c:868,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 848
    functionDepth: 7
    functionLinenumber: 848
    functionLinenumberEnd: 869
    functionName: run_multi_thread_test
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - TEST_ptr
    - RAND_bytes
    - RAND_DRBG_set_reseed_time_interval
    - RAND_DRBG_get0_private
    - time
    - RAND_DRBG_get0_public
    linkageType: ''
    returnType: void
    signature: void run_multi_thread_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_multi_thread_test
      Src: /src/openssl-1.1.1g/test/drbgtest.c:877,1
    - Dst: OPENSSL_thread_stop
      Src: /src/openssl-1.1.1g/test/drbgtest.c:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 875
    functionDepth: 8
    functionLinenumber: 875
    functionLinenumberEnd: 884
    functionName: thread_run
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - run_multi_thread_test
    - OPENSSL_thread_stop
    linkageType: ''
    returnType: DWORD
    signature: DWORD thread_run(LPVOID arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateThread
      Src: /src/openssl-1.1.1g/test/drbgtest.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 890
    functionName: run_thread
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 2
    functionsReached:
    - CreateThread
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/openssl-1.1.1g/test/drbgtest.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 895
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 2
    functionsReached:
    - WaitForSingleObject
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_multi_thread_test
      Src: /src/openssl-1.1.1g/test/drbgtest.c:903,1
    - Dst: OPENSSL_thread_stop
      Src: /src/openssl-1.1.1g/test/drbgtest.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 901
    functionDepth: 8
    functionLinenumber: 901
    functionLinenumberEnd: 910
    functionName: thread_run
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - run_multi_thread_test
    - OPENSSL_thread_stop
    linkageType: ''
    returnType: void
    signature: void *thread_run(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/openssl-1.1.1g/test/drbgtest.c:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: run_thread
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 2
    functionsReached:
    - pthread_create
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/openssl-1.1.1g/test/drbgtest.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 920
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 2
    functionsReached:
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_thread
      Src: /src/openssl-1.1.1g/test/drbgtest.c:936,1
    - Dst: run_multi_thread_test
      Src: /src/openssl-1.1.1g/test/drbgtest.c:937,1
    - Dst: wait_for_thread
      Src: /src/openssl-1.1.1g/test/drbgtest.c:939,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:941,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:943,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 930
    functionDepth: 8
    functionLinenumber: 930
    functionLinenumberEnd: 947
    functionName: test_multi_thread
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - run_multi_thread_test
    - run_thread
    - TEST_true
    - wait_for_thread
    linkageType: ''
    returnType: int
    signature: int test_multi_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbgtest.c:967,1
    - Dst: RAND_DRBG_get0_master
      Src: /src/openssl-1.1.1g/test/drbgtest.c:967,1
    - Dst: rand_drbg_seedlen
      Src: /src/openssl-1.1.1g/test/drbgtest.c:971,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/drbgtest.c:974,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbgtest.c:977,1
    - Dst: RAND_seed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:978,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/drbgtest.c:980,1
    - Dst: RAND_status
      Src: /src/openssl-1.1.1g/test/drbgtest.c:980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 960
    functionDepth: 3
    functionLinenumber: 960
    functionLinenumberEnd: 986
    functionName: test_rand_seed
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get0_master
    - RAND_status
    - rand_drbg_seedlen
    - TEST_ptr
    - RAND_DRBG_uninstantiate
    - TEST_int_eq
    - RAND_seed
    - memset
    linkageType: ''
    returnType: int
    signature: int test_rand_seed(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1000,1
    - Dst: RAND_seed
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1003,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1004,1
    - Dst: RAND_status
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1004,1
    - Dst: RAND_add
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1008,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1009,1
    - Dst: RAND_status
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 995
    functionDepth: 3
    functionLinenumber: 995
    functionLinenumberEnd: 1014
    functionName: test_rand_add
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_add
    - RAND_status
    - TEST_true
    - RAND_seed
    - memset
    linkageType: ''
    returnType: int
    signature: int test_rand_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get_ex_new_index
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1018,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1020,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1020,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1021,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1021,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1022,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1023,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1024,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/drbgtest.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1029
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - RAND_DRBG_get_ex_new_index
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_bn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: cb_client_npn
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cb_client_npn(SSL *s, unsigned char **out, unsigned char *outlen,\n
      \                        const unsigned char *in, unsigned int inlen,\n                         void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: cb_server_npn
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cb_server_npn(SSL *s, const unsigned char **data,\n                         unsigned
      int *len, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: cb_server_rejects_npn
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cb_server_rejects_npn(SSL *s, const unsigned char **data,\n                                 unsigned
      int *len, void *arg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:157,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:158,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:161,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:162,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:163,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:167,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:168,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:169,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:177,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:180,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 26
    argCount: 2
    argNames:
    - client
    - server
    argTypes:
    - SSL*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 193
    functionName: verify_npn
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - memcmp
    - BIO_write
    - SSL_get0_next_proto_negotiated
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int verify_npn(SSL *client, SSL *server)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:219,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:221,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:227,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:228,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: servername_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - SSL_set_SSL_CTX
    - SSL_get_servername
    - strcasecmp
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int servername_cb(SSL *s, int *ad, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:237,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:244,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:246,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:248,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - client
    - server
    argTypes:
    - SSL*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: verify_servername
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - SSL_get_SSL_CTX
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int verify_servername(SSL *client, SSL *server)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:270,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:274,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:274,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - outlen
    - in
    argTypes:
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 292
    functionName: next_protos_parse
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - strlen
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *next_protos_parse(size_t *outlen,\n                                        const
      char *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: next_protos_parse
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:302,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:304,1
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:306,1
    - Dst: SSL_select_next_proto
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:309,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:312,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:320,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:321,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 326
    functionName: cb_server_alpn
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - next_protos_parse
    - OPENSSL_free
    - memcpy
    - SSL_select_next_proto
    - fprintf
    - abort
    linkageType: ''
    returnType: int
    signature: "int cb_server_alpn(SSL *s, const unsigned char **out,\n                          unsigned
      char *outlen, const unsigned char *in,\n                          unsigned int
      inlen, void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_alpn_selected
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:332,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:333,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:335,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:339,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:344,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:345,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:350,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:355,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:356,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:357,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:366,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:367,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:368,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:369,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:370,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:371,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:373,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:374,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:377,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - client
    - server
    argTypes:
    - SSL*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 381
    functionName: verify_alpn
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - memcmp
    - OPENSSL_free
    - SSL_get_SSL_CTX
    - BIO_printf
    - SSL_get0_alpn_selected
    - strlen
    linkageType: ''
    returnType: int
    signature: int verify_alpn(SSL *client, SSL *server)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 424
    functionName: serverinfo_cli_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int serverinfo_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char *in, size_t inlen,\n                                   int *al,
      void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: verify_serverinfo
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int verify_serverinfo(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: custom_ext_0_cli_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int custom_ext_0_cli_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: custom_ext_0_cli_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int custom_ext_0_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 470
    functionName: custom_ext_1_cli_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "int custom_ext_1_cli_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: custom_ext_1_cli_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int custom_ext_1_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: custom_ext_2_cli_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "int custom_ext_2_cli_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 499
    functionName: custom_ext_2_cli_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int custom_ext_2_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 510
    functionName: custom_ext_3_cli_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "int custom_ext_3_cli_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:518,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 523
    functionName: custom_ext_3_cli_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int custom_ext_3_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: custom_ext_0_srv_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int custom_ext_0_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 545
    functionName: custom_ext_0_srv_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int custom_ext_0_srv_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:554,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 559
    functionName: custom_ext_1_srv_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int custom_ext_1_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: custom_ext_1_srv_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int custom_ext_1_srv_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:575,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 580
    functionName: custom_ext_2_srv_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int custom_ext_2_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 589
    functionName: custom_ext_2_srv_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int custom_ext_2_srv_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:598,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 603
    functionName: custom_ext_3_srv_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int custom_ext_3_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 612
    functionName: custom_ext_3_srv_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "int custom_ext_3_srv_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:627,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:628,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:629,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:630,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:631,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:632,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:633,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:634,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:635,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:638,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:640,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:642,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:644,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:647,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:650,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:653,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:656,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:659,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:661,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:664,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:667,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:668,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:669,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:670,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:672,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:673,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:675,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:676,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:677,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:678,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:679,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:680,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:681,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:683,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:685,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:686,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:687,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:689,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:690,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:691,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:693,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:695,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:696,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:697,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:698,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:699,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:701,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:702,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:703,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:704,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:705,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:707,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:708,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:709,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:711,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:712,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:713,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:714,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:715,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:716,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:717,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:718,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:719,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:720,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 722
    functionName: sv_usage
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void sv_usage(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:726,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:729,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:732,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:732,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:733,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:734,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:736,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:737,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:737,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:753,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:756,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:756,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - out
    - key
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 758
    functionName: print_key_details
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - EC_GROUP_get_curve_name
    - EVP_PKEY_bits
    - EVP_PKEY_id
    - EVP_PKEY_get1_EC_KEY
    - EC_curve_nid2nist
    - EC_KEY_free
    - BIO_printf
    - EC_KEY_get0_group
    linkageType: ''
    returnType: void
    signature: void print_key_details(BIO *out, EVP_PKEY *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:767,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:768,1
    - Dst: SSL_get_version
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:770,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:771,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:771,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:772,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:774,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:777,1
    - Dst: print_key_details
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:778,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:780,1
    - Dst: SSL_get_peer_tmp_key
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:782,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:783,1
    - Dst: print_key_details
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:784,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:785,1
    - Dst: SSL_get_peer_signature_nid
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:787,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:788,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:788,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:789,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - c_ssl
    - prefix
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 760
    functionDepth: 5
    functionLinenumber: 760
    functionLinenumberEnd: 790
    functionName: print_details
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - X509_free
    - OBJ_nid2sn
    - EVP_PKEY_free
    - SSL_CIPHER_get_version
    - X509_get0_pubkey
    - SSL_get_peer_tmp_key
    - SSL_get_peer_certificate
    - SSL_get_peer_signature_nid
    - BIO_puts
    - SSL_get_version
    - BIO_printf
    - print_key_details
    - SSL_CIPHER_get_name
    - SSL_get_current_cipher
    linkageType: ''
    returnType: void
    signature: void print_details(SSL *c_ssl, const char *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:812,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 818
    functionName: protocol_from_string
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int protocol_from_string(const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:823,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:826,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:827,1
    - Dst: PEM_read_bio_SSL_SESSION
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:830,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:832,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:833,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 820
    functionDepth: 5
    functionLinenumber: 820
    functionLinenumberEnd: 837
    functionName: read_session
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - PEM_read_bio_SSL_SESSION
    - BIO_new_file
    - BIO_free
    - ERR_print_errors
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *read_session(const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:841,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:844,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:848,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:849,1
    - Dst: PEM_write_bio_SSL_SESSION
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:852,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - filename
    - sess
    argTypes:
    - char*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 839
    functionDepth: 5
    functionLinenumber: 839
    functionLinenumberEnd: 855
    functionName: write_session
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_SSL_SESSION
    - BIO_printf
    - BIO_new_file
    - BIO_free
    - ERR_print_errors
    linkageType: ''
    returnType: int
    signature: int write_session(const char *filename, SSL_SESSION *sess)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: protocol_from_string
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:865,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:867,1
    - Dst: SSL_ctrl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - version
    - ssl
    - setting
    argTypes:
    - char*
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 873
    functionName: set_protocol_version
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - SSL_ctrl
    - protocol_from_string
    linkageType: ''
    returnType: int
    signature: int set_protocol_version(const char *version, SSL *ssl, int setting)
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:906,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:918,1
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:924,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:926,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:927,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:928,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:929,1
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:931,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:933,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:934,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:935,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:938,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:942,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:946,1
    - Dst: SSL_CONF_CTX_set1_prefix
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:950,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:951,1
    - Dst: SSL_CONF_CTX_set1_prefix
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:954,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:955,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:959,1
    - Dst: SSL_CONF_CTX_set1_prefix
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:963,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:964,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:972,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:973,1
    - Dst: EXIT
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:975,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:976,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:978,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:980,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:982,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:984,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:986,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:990,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:993,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:997,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1000,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1002,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1004,1
    - Dst: strspn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1009,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1009,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1010,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1017,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1019,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1021,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1023,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1025,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1027,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1029,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1032,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1035,1
    - Dst: atol
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1038,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1041,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1046,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1050,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1054,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1058,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1062,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1066,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1068,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1072,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1074,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1078,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1081,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1086,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1090,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1094,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1096,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1098,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1102,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1104,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1106,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1110,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1112,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1116,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1117,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1121,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1125,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1129,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1133,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1137,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1141,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1145,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1149,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1153,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1157,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1161,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1163,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1165,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1169,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1173,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1177,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1181,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1184,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1185,1
    - Dst: SSL_CONF_cmd_argv
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1192,1
    - Dst: SSL_CONF_cmd_argv
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1195,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1201,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1205,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1207,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1212,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1214,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1216,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 302
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 875
    functionDepth: 5
    functionLinenumber: 875
    functionLinenumberEnd: 1222
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - atoi
    - STACK_OF
    - SSL_CONF_cmd_argv
    - SSL_CONF_CTX_new
    - fprintf
    - sk_OPENSSL_STRING_new_null
    - strcmp
    - CRYPTO_set_mem_debug
    - SSL_CONF_CTX_set1_prefix
    - getenv
    - strspn
    - atol
    - EXIT
    - sk_OPENSSL_STRING_push
    - CRYPTO_mem_ctrl
    - SSL_CONF_CTX_set_flags
    - BIO_printf
    - ERR_print_errors
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_accept
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1880,1
    - Dst: BIO_set_accept_ip_family
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1884,1
    - Dst: BIO_set_bind_mode
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1885,1
    - Dst: BIO_do_accept
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1886,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1889,1
    - Dst: BIO_get_accept_port
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1889,1
    - Dst: BIO_new_connect
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1891,1
    - Dst: BIO_set_conn_ip_family
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1892,1
    - Dst: BIO_set_nbio
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1896,1
    - Dst: BIO_set_nbio
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1898,1
    - Dst: BIO_do_connect
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1906,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1907,1
    - Dst: BIO_do_accept
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1914,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1915,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1924,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1925,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1928,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1928,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1932,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1932,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1936,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1937,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1938,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1940,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1941,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1942,1
    - Dst: clock
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1968,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1970,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1973,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1974,1
    - Dst: SSL_state_string_long
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1975,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1984,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1986,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1987,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:1998,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2002,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2010,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2012,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2013,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2021,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2025,1
    - Dst: clock
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2039,1
    - Dst: clock
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2047,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2049,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2052,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2053,1
    - Dst: SSL_state_string_long
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2054,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2063,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2065,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2066,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2072,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2076,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2084,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2086,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2087,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2093,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2097,1
    - Dst: clock
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2102,1
    - Dst: print_details
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2108,1
    - Dst: verify_npn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2110,1
    - Dst: verify_serverinfo
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2113,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2114,1
    - Dst: verify_alpn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2117,1
    - Dst: verify_servername
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2118,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2122,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2132,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2134,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2135,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2136,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2137,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2138,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2140,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2142,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 195
    argCount: 6
    argNames:
    - s_ssl
    - c_ssl
    - family
    - count
    - s_time
    - c_time
    argTypes:
    - SSL*
    - SSL*
    - int
    - long
    - clock_t*
    - clock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 1869
    functionDepth: 6
    functionLinenumber: 1869
    functionLinenumberEnd: 2146
    functionName: doit_localhost
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - verify_serverinfo
    - BIO_new_connect
    - verify_npn
    - SSL_set_connect_state
    - SSL_set_accept_state
    - BIO_should_retry
    - printf
    - fprintf
    - strcmp
    - BIO_pop
    - verify_servername
    - SSL_state_string_long
    - BIO_f_ssl
    - BIO_set_ssl
    - BIO_free
    - verify_alpn
    - BIO_do_connect
    - BIO_set_nbio
    - BIO_read
    - SSL_set_bio
    - BIO_set_bind_mode
    - SSL_in_init
    - BIO_do_accept
    - BIO_set_accept_ip_family
    - BIO_free_all
    - BIO_write
    - BIO_set_conn_ip_family
    - BIO_get_accept_port
    - clock
    - memset
    - print_details
    - BIO_new_accept
    - ERR_print_errors
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int doit_localhost(SSL *s_ssl, SSL *c_ssl, int family, long count,\n
      \                  clock_t *s_time, clock_t *c_time)"
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_bio_pair
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2161,1
    - Dst: BIO_new_bio_pair
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2163,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2166,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2166,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2170,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2170,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2174,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2175,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2176,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2178,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2179,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2180,1
    - Dst: clock
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2230,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2232,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2235,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2236,1
    - Dst: SSL_state_string_long
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2237,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2246,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2248,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2249,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2260,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2264,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2272,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2274,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2275,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2283,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2287,1
    - Dst: clock
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2301,1
    - Dst: clock
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2309,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2311,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2314,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2315,1
    - Dst: SSL_state_string_long
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2316,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2325,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2327,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2328,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2334,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2338,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2346,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2348,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2349,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2355,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2359,1
    - Dst: clock
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2364,1
    - Dst: BIO_ctrl_pending
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2385,1
    - Dst: BIO_ctrl_get_write_guarantee
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2386,1
    - Dst: BIO_nread
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2397,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2398,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2399,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2404,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2406,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2413,1
    - Dst: BIO_ctrl_pending
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2425,1
    - Dst: BIO_ctrl_get_read_request
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2426,1
    - Dst: BIO_nwrite0
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2444,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2445,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2448,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2450,1
    - Dst: BIO_nwrite
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2455,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2457,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2463,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2472,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2473,1
    - Dst: print_details
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2482,1
    - Dst: verify_npn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2484,1
    - Dst: verify_serverinfo
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2487,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2488,1
    - Dst: verify_alpn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2491,1
    - Dst: verify_servername
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2492,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2496,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2506,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2508,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2509,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2510,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2511,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2512,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2513,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2515,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2517,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 221
    argCount: 5
    argNames:
    - s_ssl
    - c_ssl
    - count
    - s_time
    - c_time
    argTypes:
    - SSL*
    - SSL*
    - long
    - clock_t*
    - clock_t*
    assertStmts:
    - condition: (r <= (int)num)
      pos:
        line_end: 2398
        line_start: 2398
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
    - condition: (r > 0)
      pos:
        line_end: 2397
        line_start: 2397
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
    - condition: (r > 0)
      pos:
        line_end: 2444
        line_start: 2444
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
    constantsTouched: []
    func_position:
      end: 2521
      start: 2149
    functionDepth: 6
    functionLinenumber: 2149
    functionLinenumberEnd: 2521
    functionName: doit_biopair
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - verify_serverinfo
    - BIO_ctrl_get_read_request
    - verify_npn
    - SSL_set_connect_state
    - BIO_should_retry
    - SSL_set_accept_state
    - BIO_new_bio_pair
    - printf
    - fprintf
    - strcmp
    - verify_servername
    - SSL_state_string_long
    - BIO_f_ssl
    - BIO_set_ssl
    - BIO_free
    - verify_alpn
    - BIO_read
    - SSL_set_bio
    - ERR_print_errors
    - BIO_nwrite
    - SSL_in_init
    - BIO_new
    - assert
    - BIO_ctrl_pending
    - BIO_write
    - clock
    - memset
    - BIO_nwrite0
    - print_details
    - BIO_nread
    - BIO_ctrl_get_write_guarantee
    linkageType: ''
    returnType: int
    signature: "int doit_biopair(SSL *s_ssl, SSL *c_ssl, long count,\n                 clock_t
      *s_time, clock_t *c_time)"
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2550,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2552,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2555,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2555,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2556,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2556,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2558,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2562,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2562,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2563,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2563,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2565,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2569,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2570,1
    - Dst: SSL_set_max_send_fragment
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2571,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2572,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2578,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2584,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2590,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2591,1
    - Dst: SSL_set_max_send_fragment
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2597,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2598,1
    - Dst: BIO_pending
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2611,1
    - Dst: BIO_pending
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2615,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2620,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2621,1
    - Dst: SSL_state_string_long
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2622,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2626,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2627,1
    - Dst: SSL_state_string_long
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2628,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2632,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2633,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2639,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2643,1
    - Dst: BIO_should_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2644,1
    - Dst: BIO_should_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2646,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2649,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2651,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2655,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2659,1
    - Dst: SSL_set_max_send_fragment
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2665,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2668,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2672,1
    - Dst: BIO_should_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2673,1
    - Dst: BIO_should_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2675,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2678,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2680,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2684,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2688,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2705,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2709,1
    - Dst: BIO_should_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2710,1
    - Dst: BIO_should_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2712,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2715,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2717,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2721,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2722,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2727,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2741,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2745,1
    - Dst: BIO_should_read
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2746,1
    - Dst: BIO_should_write
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2748,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2751,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2753,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2757,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2758,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2763,1
    - Dst: SSL_set_max_send_fragment
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2770,1
    - Dst: print_details
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2780,1
    - Dst: verify_npn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2782,1
    - Dst: verify_serverinfo
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2785,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2786,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2790,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2795,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2796,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2797,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2798,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2799,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2800,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2802,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2804,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 249
    argCount: 3
    argNames:
    - s_ssl
    - c_ssl
    - count
    argTypes:
    - SSL*
    - SSL*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2528
    functionDepth: 6
    functionLinenumber: 2528
    functionLinenumberEnd: 2808
    functionName: doit
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - verify_serverinfo
    - BIO_s_mem
    - BIO_pending
    - BIO_should_read
    - verify_npn
    - SSL_set_connect_state
    - BIO_should_retry
    - SSL_set_accept_state
    - printf
    - fprintf
    - strcmp
    - OPENSSL_free
    - BIO_should_write
    - SSL_state_string_long
    - BIO_f_ssl
    - OPENSSL_zalloc
    - BIO_set_ssl
    - BIO_free
    - BIO_read
    - SSL_set_bio
    - SSL_in_init
    - BIO_free_all
    - BIO_write
    - SSL_set_max_send_fragment
    - BIO_up_ref
    - print_details
    - ERR_print_errors
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int doit(SSL *s_ssl, SSL *c_ssl, long count)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2814,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2814,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2814,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2818,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2818,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2820,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2821,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2822,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2827,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2831,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2832,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2810
    functionDepth: 4
    functionLinenumber: 2810
    functionLinenumberEnd: 2843
    functionName: verify_callback
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_error
    - X509_STORE_CTX_get_error_depth
    - X509_NAME_oneline
    - X509_verify_cert_error_string
    - X509_STORE_CTX_get_current_cert
    - X509_get_subject_name
    - printf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int verify_callback(int ok, X509_STORE_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get0_cert
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2852,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2854,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2855,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2856,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2859,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2859,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2861,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2862,1
    - Dst: X509_verify_cert
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2845
    functionDepth: 6
    functionLinenumber: 2845
    functionLinenumberEnd: 2870
    functionName: app_verify_callback
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_error_depth
    - X509_NAME_oneline
    - X509_verify_cert
    - printf
    - X509_get_subject_name
    - X509_STORE_CTX_get0_cert
    linkageType: ''
    returnType: int
    signature: int app_verify_callback(X509_STORE_CTX *ctx, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2901,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2903,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2904,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2905,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2906,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2907,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2880
    functionDepth: 4
    functionLinenumber: 2880
    functionLinenumberEnd: 2912
    functionName: get_dh512
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - BN_free
    - DH_free
    - DH_new
    - DH_set0_pqg
    linkageType: ''
    returnType: DH
    signature: DH *get_dh512(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2945,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2947,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2948,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2949,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2950,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2951,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:2952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2914
    functionDepth: 4
    functionLinenumber: 2914
    functionLinenumberEnd: 2956
    functionName: get_dh1024
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - BN_free
    - DH_free
    - DH_new
    - DH_set0_pqg
    linkageType: ''
    returnType: DH
    signature: DH *get_dh1024(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3009,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3011,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3012,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3013,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3014,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3015,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3016,1
    - Dst: DH_set_length
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 2958
    functionDepth: 4
    functionLinenumber: 2958
    functionLinenumberEnd: 3021
    functionName: get_dh1024dsa
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - BN_free
    - DH_free
    - DH_set_length
    - DH_new
    - DH_set0_pqg
    linkageType: ''
    returnType: DH
    signature: DH *get_dh1024dsa(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3032,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3034,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3036,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3039,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3040,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3042,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3043,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3046,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - pskkey
    - psk
    - max_psk_len
    argTypes:
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3026
    functionDepth: 5
    functionLinenumber: 3026
    functionLinenumberEnd: 3049
    functionName: psk_key2bn
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BN_num_bytes
    - BN_bn2bin
    - BN_free
    - BIO_printf
    - BN_hex2bn
    linkageType: ''
    returnType: int
    signature: "int psk_key2bn(const char *pskkey, unsigned char *psk,\n                      unsigned
      int max_psk_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3060,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3064,1
    - Dst: psk_key2bn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - ssl
    - hint
    - identity
    - max_identity_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 3051
    functionDepth: 6
    functionLinenumber: 3051
    functionLinenumberEnd: 3072
    functionName: psk_client_callback
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - fprintf
    - psk_key2bn
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_client_callback(SSL *ssl, const char *hint,\n                                        char
      *identity,\n                                        unsigned int max_identity_len,\n
      \                                       unsigned char *psk,\n                                        unsigned
      int max_psk_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3080,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3081,1
    - Dst: psk_key2bn
      Src: /src/openssl-1.1.1g/test/ssltest_old.c:3084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ssl
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3074
    functionDepth: 6
    functionLinenumber: 3074
    functionLinenumberEnd: 3086
    functionName: psk_server_callback
    functionSourceFile: /src/openssl-1.1.1g/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strcmp
    - psk_key2bn
    - BIO_printf
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_server_callback(SSL *ssl, const char *identity,\n
      \                                       unsigned char *psk,\n                                        unsigned
      int max_psk_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/test/memleaktest.c:33,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/memleaktest.c:34,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openssl-1.1.1g/test/memleaktest.c:35,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/test/memleaktest.c:36,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/memleaktest.c:38,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/memleaktest.c:39,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/memleaktest.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/memleaktest.c:43,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openssl-1.1.1g/test/memleaktest.c:47,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/memleaktest.c:49,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/memleaktest.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 56
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/memleaktest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - getenv
    - TEST_int_ne
    - strcmp
    - CRYPTO_mem_ctrl
    - TEST_ptr
    - OPENSSL_free
    - TEST_int_eq
    - CRYPTO_set_mem_debug
    - CRYPTO_mem_leaks_fp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/test/enginetest.c:30,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/test/enginetest.c:30,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:31,1
    - Dst: ENGINE_get_id
      Src: /src/openssl-1.1.1g/test/enginetest.c:32,1
    - Dst: ENGINE_get_name
      Src: /src/openssl-1.1.1g/test/enginetest.c:32,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: display_engine_list
    functionSourceFile: /src/openssl-1.1.1g/test/enginetest.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_name
    - ENGINE_get_next
    - ENGINE_free
    - ENGINE_get_first
    - TEST_info
    - ENGINE_get_id
    linkageType: ''
    returnType: void
    signature: void display_engine_list(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/enginetest.c:57,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:58,1
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:58,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:59,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/test/enginetest.c:59,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:60,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/test/enginetest.c:60,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:61,1
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:61,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:62,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/test/enginetest.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:63,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/test/enginetest.c:63,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:64,1
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:64,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:65,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/test/enginetest.c:65,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:66,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/test/enginetest.c:66,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:67,1
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:67,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:68,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/test/enginetest.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:69,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/test/enginetest.c:69,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:71,1
    - Dst: display_engine_list
      Src: /src/openssl-1.1.1g/test/enginetest.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:74,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/test/enginetest.c:74,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:76,1
    - Dst: display_engine_list
      Src: /src/openssl-1.1.1g/test/enginetest.c:77,1
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/test/enginetest.c:79,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:80,1
    - Dst: ENGINE_remove
      Src: /src/openssl-1.1.1g/test/enginetest.c:80,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:82,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:83,1
    - Dst: display_engine_list
      Src: /src/openssl-1.1.1g/test/enginetest.c:84,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:86,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/test/enginetest.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:87,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/test/enginetest.c:87,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:89,1
    - Dst: display_engine_list
      Src: /src/openssl-1.1.1g/test/enginetest.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:92,1
    - Dst: ENGINE_remove
      Src: /src/openssl-1.1.1g/test/enginetest.c:92,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:94,1
    - Dst: display_engine_list
      Src: /src/openssl-1.1.1g/test/enginetest.c:95,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:97,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/test/enginetest.c:97,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:99,1
    - Dst: display_engine_list
      Src: /src/openssl-1.1.1g/test/enginetest.c:100,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/enginetest.c:103,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/test/enginetest.c:103,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/enginetest.c:105,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/enginetest.c:108,1
    - Dst: ENGINE_remove
      Src: /src/openssl-1.1.1g/test/enginetest.c:108,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/enginetest.c:110,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:112,1
    - Dst: ENGINE_remove
      Src: /src/openssl-1.1.1g/test/enginetest.c:112,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:114,1
    - Dst: display_engine_list
      Src: /src/openssl-1.1.1g/test/enginetest.c:115,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:117,1
    - Dst: ENGINE_remove
      Src: /src/openssl-1.1.1g/test/enginetest.c:117,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:119,1
    - Dst: display_engine_list
      Src: /src/openssl-1.1.1g/test/enginetest.c:120,1
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/test/enginetest.c:130,1
    - Dst: ENGINE_remove
      Src: /src/openssl-1.1.1g/test/enginetest.c:131,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:132,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:134,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:135,1
    - Dst: display_engine_list
      Src: /src/openssl-1.1.1g/test/enginetest.c:136,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:138,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/test/enginetest.c:138,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:139,1
    - Dst: ENGINE_remove
      Src: /src/openssl-1.1.1g/test/enginetest.c:139,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:142,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/test/enginetest.c:144,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/enginetest.c:145,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/test/enginetest.c:146,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/enginetest.c:147,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:148,1
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:148,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:149,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/test/enginetest.c:149,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:150,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/test/enginetest.c:150,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:154,1
    - Dst: ENGINE_add
      Src: /src/openssl-1.1.1g/test/enginetest.c:154,1
    - Dst: test_note
      Src: /src/openssl-1.1.1g/test/enginetest.c:155,1
    - Dst: ENGINE_get_id
      Src: /src/openssl-1.1.1g/test/enginetest.c:156,1
    - Dst: ENGINE_get_name
      Src: /src/openssl-1.1.1g/test/enginetest.c:157,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:162,1
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/test/enginetest.c:163,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:164,1
    - Dst: ENGINE_remove
      Src: /src/openssl-1.1.1g/test/enginetest.c:164,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:166,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:169,1
    - Dst: ENGINE_get_id
      Src: /src/openssl-1.1.1g/test/enginetest.c:169,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:170,1
    - Dst: ENGINE_get_name
      Src: /src/openssl-1.1.1g/test/enginetest.c:170,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:175,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:176,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:177,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:178,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:180,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 182
    functionName: test_engines
    functionSourceFile: /src/openssl-1.1.1g/test/enginetest.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_name
    - display_engine_list
    - test_note
    - TEST_true
    - OPENSSL_free
    - ENGINE_get_first
    - ENGINE_add
    - TEST_info
    - ERR_clear_error
    - sprintf
    - ENGINE_new
    - ENGINE_remove
    - OPENSSL_strdup
    - TEST_ptr
    - ENGINE_set_name
    - ENGINE_free
    - TEST_false
    - ENGINE_set_id
    - memset
    - ENGINE_get_id
    linkageType: ''
    returnType: int
    signature: int test_engines(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: test_encrypt
    functionSourceFile: /src/openssl-1.1.1g/test/enginetest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int test_encrypt(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                        size_t
      *siglen, const unsigned char *tbs, size_t tbslen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - e
    - pmeth
    - pnids
    - nid
    argTypes:
    - ENGINE*
    - EVP_PKEY_METHOD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 213
    functionName: test_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/test/enginetest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int test_pkey_meths(ENGINE *e, EVP_PKEY_METHOD **pmeth,\n                           const
      int **pnids, int nid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:227,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:228,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-1.1.1g/test/enginetest.c:230,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:231,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:232,1
    - Dst: RSA_set0_key
      Src: /src/openssl-1.1.1g/test/enginetest.c:236,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/enginetest.c:236,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/enginetest.c:237,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 217
    functionDepth: 7
    functionLinenumber: 217
    functionLinenumberEnd: 243
    functionName: get_test_pkey
    functionSourceFile: /src/openssl-1.1.1g/test/enginetest.c
    functionUses: 0
    functionsReached:
    - RSA_set0_key
    - EVP_PKEY_assign_RSA
    - BN_bin2bn
    - RSA_new
    - EVP_PKEY_new
    - EVP_PKEY_free
    - RSA_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *get_test_pkey(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:256,1
    - Dst: get_test_pkey
      Src: /src/openssl-1.1.1g/test/enginetest.c:256,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/test/enginetest.c:259,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:260,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/enginetest.c:260,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:263,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:263,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:265,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/enginetest.c:267,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/test/enginetest.c:267,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/enginetest.c:268,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/test/enginetest.c:268,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/enginetest.c:269,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:271,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:275,1
    - Dst: ENGINE_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:275,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:276,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-1.1.1g/test/enginetest.c:276,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:277,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-1.1.1g/test/enginetest.c:277,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/enginetest.c:285,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:285,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/enginetest.c:286,1
    - Dst: EVP_PKEY_set1_engine
      Src: /src/openssl-1.1.1g/test/enginetest.c:286,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:290,1
    - Dst: EVP_PKEY_meth_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:290,1
    - Dst: ENGINE_set_pkey_meths
      Src: /src/openssl-1.1.1g/test/enginetest.c:292,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:295,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:295,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/enginetest.c:298,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/test/enginetest.c:298,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:300,1
    - Dst: EVP_PKEY_meth_set_encrypt
      Src: /src/openssl-1.1.1g/test/enginetest.c:304,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:306,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:307,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:307,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/enginetest.c:310,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/test/enginetest.c:310,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/enginetest.c:311,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/test/enginetest.c:311,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:312,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:315,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:320,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:320,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/enginetest.c:321,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/test/enginetest.c:321,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/enginetest.c:322,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/test/enginetest.c:322,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/enginetest.c:323,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:326,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:330,1
    - Dst: EVP_PKEY_set1_engine
      Src: /src/openssl-1.1.1g/test/enginetest.c:330,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/enginetest.c:333,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/enginetest.c:336,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/enginetest.c:336,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/enginetest.c:337,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/test/enginetest.c:337,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/enginetest.c:338,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/test/enginetest.c:338,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/enginetest.c:339,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:345,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:346,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:347,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/enginetest.c:348,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 245
    functionDepth: 8
    functionLinenumber: 245
    functionLinenumberEnd: 350
    functionName: test_redirect
    functionSourceFile: /src/openssl-1.1.1g/test/enginetest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_encrypt
    - TEST_int_gt
    - OPENSSL_malloc
    - TEST_true
    - OPENSSL_free
    - TEST_info
    - EVP_PKEY_CTX_free
    - EVP_PKEY_size
    - EVP_PKEY_set1_engine
    - ENGINE_new
    - EVP_PKEY_free
    - TEST_ptr_null
    - ENGINE_set_pkey_meths
    - EVP_PKEY_meth_set_encrypt
    - TEST_ptr
    - ENGINE_set_name
    - ENGINE_free
    - TEST_int_le
    - EVP_PKEY_encrypt_init
    - TEST_false
    - ENGINE_set_id
    - get_test_pkey
    - EVP_PKEY_meth_new
    linkageType: ''
    returnType: int
    signature: int test_redirect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/test/enginetest.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: global_init
    functionSourceFile: /src/openssl-1.1.1g/test/enginetest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: int
    signature: int global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/enginetest.c:365,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/enginetest.c:367,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/enginetest.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 371
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/enginetest.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:40,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:42,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:45,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:49,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:51,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:54,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:59,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:59,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:62,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:62,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:65,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:68,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:68,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:73,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:75,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:79,1
    - Dst: PEM_read_bio_X509_REQ
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:82,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:84,1
    - Dst: X509_REQ_check_private_key
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:88,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:95,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:96,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:102,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:103,1
    - Dst: X509_REQ_free
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:104,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:105,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 28
    functionDepth: 8
    functionLinenumber: 28
    functionLinenumberEnd: 107
    functionName: test_x509_check_cert_pkey
    functionSourceFile: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c
    functionUses: 0
    functionsReached:
    - X509_check_private_key
    - X509_free
    - X509_REQ_free
    - PEM_read_bio_X509_REQ
    - X509_REQ_check_private_key
    - strcmp
    - TEST_ptr
    - TEST_int_eq
    - PEM_read_bio_PrivateKey
    - TEST_error
    - BIO_free
    - PEM_read_bio_X509
    - EVP_PKEY_free
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_x509_check_cert_pkey(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:111,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:111,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:112,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:112,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:113,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:113,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:114,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:114,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:115,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - TEST_note
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_cast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:38,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:38,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:39,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:39,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:40,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:40,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:41,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ectest.c:41,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:42,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:42,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:43,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:43,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:44,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:44,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:45,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:45,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:46,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:46,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:49,1
    - Dst: EC_GROUP_get_order
      Src: /src/openssl-1.1.1g/test/ectest.c:49,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:50,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:50,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:51,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:51,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:52,1
    - Dst: EC_GROUP_precompute_mult
      Src: /src/openssl-1.1.1g/test/ectest.c:52,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:53,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:53,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:54,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:54,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:55,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:55,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:56,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/test/ectest.c:56,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:57,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:57,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:58,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:58,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:59,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/ectest.c:59,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:60,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:60,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:61,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/test/ectest.c:61,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:62,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:69,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/ectest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:74,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:74,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:75,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:75,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:76,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/test/ectest.c:76,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:78,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/ectest.c:78,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:79,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:79,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:80,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:80,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:83,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:83,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:83,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:84,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:84,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:85,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:88,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:88,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:89,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:89,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:90,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:90,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/ectest.c:94,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:95,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:95,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:97,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:97,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:98,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:98,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:101,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:101,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:104,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:107,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:107,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:108,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/test/ectest.c:108,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:109,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:109,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:124,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:124,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:125,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:125,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:132,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:134,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:135,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:136,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:137,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:138,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:139,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:140,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:141,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 50
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 30
    functionDepth: 8
    functionLinenumber: 30
    functionLinenumberEnd: 143
    functionName: group_order_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_precompute_mult
    - EC_POINT_add
    - EC_POINT_is_at_infinity
    - BN_one
    - EC_GROUP_get0_generator
    - EC_POINT_mul
    - TEST_true
    - TEST_int_eq
    - BN_mul
    - EC_POINTs_mul
    - EC_POINT_cmp
    - TEST_info
    - BN_free
    - BN_sub
    - EC_POINT_copy
    - BN_set_negative
    - EC_GROUP_get_order
    - BN_new
    - EC_POINT_dbl
    - BN_CTX_free
    - BN_set_word
    - BN_add
    - TEST_ptr
    - EC_POINT_free
    - TEST_false
    - BN_value_one
    - EC_POINT_new
    - BN_CTX_new
    - EC_POINT_invert
    linkageType: ''
    returnType: int
    signature: int group_order_tests(EC_GROUP *group)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:160,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ectest.c:160,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:161,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:161,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:162,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:162,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:163,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:163,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:164,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:164,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:165,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:165,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:166,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:166,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:171,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:171,1
    - Dst: EC_GFp_mont_method
      Src: /src/openssl-1.1.1g/test/ectest.c:171,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:172,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:172,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:173,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:173,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:173,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:174,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:174,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:176,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:180,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:180,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:183,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:184,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:185,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:186,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:187,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:190,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:190,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:191,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:191,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:192,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:193,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:193,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:194,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:195,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/test/ectest.c:195,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:196,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:196,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:197,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:197,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:198,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:198,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:199,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:199,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:200,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:200,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:201,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:202,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:202,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:203,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:203,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:206,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:206,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:207,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:207,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:209,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:210,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:211,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:215,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:218,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:221,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:222,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:224,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:224,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:228,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:229,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:232,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:232,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:233,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:233,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:236,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:238,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:238,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:239,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:239,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/test/ectest.c:243,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:245,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:246,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/test/ectest.c:246,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:247,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:247,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/ectest.c:249,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/test/ectest.c:252,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:254,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:255,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/test/ectest.c:255,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:256,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:256,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/ectest.c:258,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/test/ectest.c:261,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:263,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:264,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/test/ectest.c:264,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:265,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:265,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/ectest.c:267,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:270,1
    - Dst: EC_POINT_get_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/test/ectest.c:270,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:273,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:274,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:275,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:276,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:277,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:279,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/test/ectest.c:279,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:280,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:280,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:287,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:287,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:289,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/test/ectest.c:289,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:290,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:290,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:292,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:292,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:294,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:294,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:295,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:295,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:297,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:297,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:299,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:299,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:299,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:304,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:304,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:306,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:306,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:307,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:307,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:308,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:308,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:310,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:310,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:310,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:311,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:311,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:313,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:314,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:315,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:317,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:317,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:319,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:320,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/test/ectest.c:320,1
    - Dst: group_order_tests
      Src: /src/openssl-1.1.1g/test/ectest.c:321,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:322,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:322,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:322,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:323,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:323,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:327,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:327,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:329,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/test/ectest.c:329,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:330,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:330,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:332,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:332,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:334,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:334,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:335,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:335,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:337,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:337,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:338,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:338,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:339,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:339,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:341,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:341,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:341,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:342,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:342,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:345,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:346,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:347,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:349,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:349,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:351,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:352,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:352,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:352,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:357,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:357,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:359,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/test/ectest.c:359,1
    - Dst: group_order_tests
      Src: /src/openssl-1.1.1g/test/ectest.c:360,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:361,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:361,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:361,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:362,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:362,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:366,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:366,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:368,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/test/ectest.c:368,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:369,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:369,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:371,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:371,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:373,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:373,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:374,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:374,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:376,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:376,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:377,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:377,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:378,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:378,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:380,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:380,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:380,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:381,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:381,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:384,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:385,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:386,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:388,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:388,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:390,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:391,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:391,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:391,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:396,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:396,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:398,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/test/ectest.c:398,1
    - Dst: group_order_tests
      Src: /src/openssl-1.1.1g/test/ectest.c:399,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:400,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:400,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:400,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:401,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:401,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:405,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:405,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:407,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/test/ectest.c:407,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:408,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:408,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:410,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:410,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:412,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:412,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:414,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:414,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:416,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:416,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:417,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:417,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:418,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:418,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:420,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:420,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:420,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:421,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:421,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:424,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:425,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:426,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:428,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:428,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:430,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:431,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:431,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:431,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:436,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:436,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:438,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/test/ectest.c:438,1
    - Dst: group_order_tests
      Src: /src/openssl-1.1.1g/test/ectest.c:439,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:440,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:440,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:440,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:441,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:441,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:445,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:445,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:448,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/test/ectest.c:448,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:449,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:449,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:452,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:452,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:455,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:455,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:457,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:457,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:460,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:460,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:461,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:461,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:462,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:462,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:465,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:465,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:465,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:466,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:466,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:469,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:470,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:471,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:473,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:473,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:476,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:477,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:477,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:477,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:482,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:482,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:484,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/test/ectest.c:484,1
    - Dst: group_order_tests
      Src: /src/openssl-1.1.1g/test/ectest.c:485,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:486,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:486,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:486,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:487,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:487,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:490,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:490,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:495,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/test/ectest.c:495,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:496,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:496,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:501,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:501,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:506,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:506,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:507,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:507,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:512,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:512,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:513,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:513,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:514,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:514,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:519,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:519,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:519,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:520,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:520,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:523,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:524,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:525,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:527,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:527,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:532,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:533,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:533,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:533,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:538,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:538,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:540,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/test/ectest.c:540,1
    - Dst: group_order_tests
      Src: /src/openssl-1.1.1g/test/ectest.c:541,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:542,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:542,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:542,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:543,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:543,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:548,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:548,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:549,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:549,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:550,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:550,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:551,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/test/ectest.c:551,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:552,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:552,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:553,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/test/ectest.c:553,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:554,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:554,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:555,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:555,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:556,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:556,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:557,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:557,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:564,1
    - Dst: EC_GROUP_get_order
      Src: /src/openssl-1.1.1g/test/ectest.c:564,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:565,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:565,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:565,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/ectest.c:566,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:567,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/test/ectest.c:567,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:572,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:575,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:575,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:576,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:576,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:577,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:577,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:578,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:578,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:579,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/ectest.c:579,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/test/ectest.c:579,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:580,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:580,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/ectest.c:582,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:586,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:586,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:587,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:587,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:588,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/ectest.c:588,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/test/ectest.c:588,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:589,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:589,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/ectest.c:591,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:596,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:596,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/ectest.c:598,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:601,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:601,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:602,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:602,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:605,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:610,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:611,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:612,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:613,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:614,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:615,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:616,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:617,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:618,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:619,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:620,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:621,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:622,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:623,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:625,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:626,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:627,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:628,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:629,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:630,1
    CyclomaticComplexity: 215
    EdgeCount: 215
    ICount: 169
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 145
    functionDepth: 9
    functionLinenumber: 145
    functionLinenumberEnd: 632
    functionName: prime_field_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get_curve
    - EC_POINT_point2oct
    - TEST_int_ne
    - EC_POINT_oct2point
    - EC_GFp_mont_method
    - EC_POINT_add
    - EC_POINT_is_at_infinity
    - test_output_memory
    - BN_rand
    - TEST_int_gt
    - EC_GROUP_get_degree
    - BN_hex2bn
    - TEST_true
    - group_order_tests
    - EC_POINT_set_affine_coordinates
    - TEST_int_eq
    - BN_zero
    - EC_POINT_get_affine_coordinates
    - EC_POINTs_mul
    - TEST_info
    - EC_POINT_cmp
    - BN_free
    - test_output_bignum
    - EC_GROUP_set_curve
    - EC_POINT_copy
    - TEST_size_t_ne
    - EC_POINT_set_to_infinity
    - BN_set_negative
    - BN_CTX_new
    - EC_GROUP_get_order
    - EC_POINT_get_Jprojective_coordinates_GFp
    - BN_new
    - EC_GROUP_copy
    - EC_POINT_dbl
    - BN_rshift1
    - BN_CTX_free
    - EC_GROUP_free
    - BN_add
    - EC_GROUP_new
    - TEST_BN_eq
    - TEST_ptr
    - EC_POINT_free
    - EC_POINT_set_compressed_coordinates
    - EC_GROUP_set_generator
    - EC_POINT_is_on_curve
    - BN_is_prime_ex
    - TEST_false
    - BN_value_one
    - BN_num_bits
    - EC_POINT_new
    - TEST_note
    - EC_POINT_invert
    - TEST_BN_even
    linkageType: ''
    returnType: int
    signature: int prime_field_tests(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:818,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ectest.c:818,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:819,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:819,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:820,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:820,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:821,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:821,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:822,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:822,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:823,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:823,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:824,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:824,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:825,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:825,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:826,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:826,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:827,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:827,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:828,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:828,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:829,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:829,1
    - Dst: EC_GF2m_simple_method
      Src: /src/openssl-1.1.1g/test/ectest.c:829,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:830,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:830,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:831,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:831,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:832,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:832,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:833,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:833,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:834,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:834,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:835,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:835,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:836,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:836,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:836,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:845,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:845,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:846,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:846,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:849,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:849,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:850,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:850,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:851,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:851,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:852,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:852,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:853,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:853,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:855,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:856,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:857,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:859,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:859,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:860,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:867,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:867,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:868,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:868,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:869,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:869,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:870,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:870,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:871,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:871,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:872,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:872,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:874,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:875,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:876,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:879,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/test/ectest.c:879,1
    - Dst: group_order_tests
      Src: /src/openssl-1.1.1g/test/ectest.c:880,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:881,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:881,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:881,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:882,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:882,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ectest.c:886,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:887,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:887,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:888,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:888,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:889,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:889,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:890,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/test/ectest.c:890,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:891,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:891,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:892,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/test/ectest.c:892,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:893,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:893,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:894,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:894,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:895,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:895,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:896,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:896,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:903,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:903,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:903,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/ectest.c:904,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:905,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/test/ectest.c:905,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:910,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:913,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:913,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:914,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:914,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:915,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:915,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:916,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:916,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:919,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/ectest.c:919,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/test/ectest.c:919,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:920,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:920,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/ectest.c:922,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:926,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:926,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:927,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:927,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:930,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/ectest.c:930,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/test/ectest.c:930,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:931,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:931,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/ectest.c:933,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:938,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:938,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:939,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:939,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:945,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:946,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:947,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:948,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:949,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:950,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:951,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:952,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:953,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:954,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:955,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:956,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:957,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:958,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 77
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 806
    functionDepth: 9
    functionLinenumber: 806
    functionLinenumberEnd: 960
    functionName: char2_curve_test
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_POINT_add
    - EC_POINT_is_at_infinity
    - BN_rand
    - TEST_int_gt
    - EC_GROUP_get_degree
    - BN_hex2bn
    - TEST_true
    - group_order_tests
    - EC_POINT_set_affine_coordinates
    - TEST_int_eq
    - EC_POINT_get_affine_coordinates
    - EC_POINTs_mul
    - TEST_info
    - EC_POINT_cmp
    - BN_free
    - test_output_bignum
    - EC_GROUP_set_curve
    - EC_POINT_copy
    - OSSL_NELEM
    - BN_set_negative
    - BN_CTX_new
    - BN_new
    - EC_GROUP_copy
    - EC_POINT_dbl
    - EC_GF2m_simple_method
    - BN_rshift1
    - BN_CTX_free
    - EC_GROUP_free
    - BN_add
    - EC_GROUP_new
    - TEST_BN_eq
    - TEST_ptr
    - EC_POINT_free
    - EC_POINT_set_compressed_coordinates
    - EC_GROUP_set_generator
    - EC_POINT_is_on_curve
    - TEST_false
    - BN_value_one
    - BN_num_bits
    - EC_POINT_new
    - TEST_note
    - EC_POINT_invert
    - TEST_BN_even
    linkageType: ''
    returnType: int
    signature: int char2_curve_test(int n)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:973,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ectest.c:973,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:974,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:974,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:975,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:975,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:976,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:976,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:977,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:977,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:978,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:978,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:979,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:979,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:982,1
    - Dst: EC_GF2m_simple_method
      Src: /src/openssl-1.1.1g/test/ectest.c:982,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:986,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:987,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:987,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:988,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:988,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:988,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:989,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:989,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:991,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:995,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:995,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:998,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:999,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:1000,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:1001,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:1002,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1004,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1004,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1005,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1005,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1006,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1006,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1007,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:1007,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1008,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:1008,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1012,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/test/ectest.c:1012,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1013,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:1013,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1014,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:1014,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1015,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1015,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1016,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1016,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1017,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1017,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1018,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1018,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1019,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1019,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1020,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1020,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1023,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1023,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1025,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1025,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1026,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1026,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:1030,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:1030,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1033,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1033,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:1036,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:1037,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:1038,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:1042,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1045,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:1048,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:1049,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1051,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1051,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:1055,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/ectest.c:1056,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1059,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:1059,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1060,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:1060,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:1063,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1065,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:1065,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1066,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:1066,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/test/ectest.c:1071,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1073,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1074,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/test/ectest.c:1074,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1075,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1075,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/ectest.c:1077,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/test/ectest.c:1081,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1083,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1084,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/test/ectest.c:1084,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1085,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1085,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/ectest.c:1087,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-1.1.1g/test/ectest.c:1093,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1095,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1096,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-1.1.1g/test/ectest.c:1096,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1097,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1097,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/ectest.c:1099,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1103,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/test/ectest.c:1103,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1104,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1104,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:1107,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1111,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1112,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1113,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1114,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1115,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1116,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1117,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1118,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1119,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1120,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1121,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1122,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1123,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1124,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 962
    functionDepth: 5
    functionLinenumber: 962
    functionLinenumberEnd: 1126
    functionName: char2_field_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get_curve
    - EC_POINT_point2oct
    - TEST_int_ne
    - EC_POINT_oct2point
    - EC_POINT_add
    - EC_POINT_is_at_infinity
    - test_output_memory
    - TEST_int_gt
    - BN_hex2bn
    - TEST_true
    - EC_POINT_set_affine_coordinates
    - TEST_int_eq
    - EC_POINT_get_affine_coordinates
    - TEST_info
    - EC_POINT_cmp
    - BN_free
    - test_output_bignum
    - EC_GROUP_set_curve
    - EC_POINT_copy
    - TEST_size_t_ne
    - EC_POINT_set_to_infinity
    - BN_CTX_new
    - BN_new
    - EC_GROUP_copy
    - EC_GF2m_simple_method
    - BN_CTX_free
    - EC_GROUP_free
    - EC_GROUP_new
    - TEST_ptr
    - EC_POINT_free
    - EC_POINT_set_compressed_coordinates
    - EC_POINT_is_on_curve
    - EC_POINT_new
    - TEST_note
    - EC_POINT_invert
    linkageType: ''
    returnType: int
    signature: int char2_field_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1134,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1134,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:1135,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1136,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1139,1
    - Dst: EC_GROUP_check
      Src: /src/openssl-1.1.1g/test/ectest.c:1139,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:1140,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1140,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1141,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1129
    functionDepth: 6
    functionLinenumber: 1129
    functionLinenumberEnd: 1146
    functionName: internal_curve_test
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_check
    - OBJ_nid2sn
    - TEST_true
    - TEST_ptr
    - EC_GROUP_new_by_curve_name
    - TEST_info
    - EC_GROUP_free
    linkageType: ''
    returnType: int
    signature: int internal_curve_test(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1153,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1153,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:1154,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1154,1
    - Dst: group_order_tests
      Src: /src/openssl-1.1.1g/test/ectest.c:1157,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1148
    functionDepth: 9
    functionLinenumber: 1148
    functionLinenumberEnd: 1160
    functionName: internal_curve_test_method
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - group_order_tests
    - TEST_ptr
    - EC_GROUP_new_by_curve_name
    - TEST_info
    - EC_GROUP_free
    linkageType: ''
    returnType: int
    signature: int internal_curve_test_method(int n)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:1278,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1280,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1280,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1281,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1281,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1282,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1282,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1283,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1283,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1284,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1284,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1285,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1285,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1286,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1286,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1287,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1287,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1288,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1288,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1289,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1289,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1291,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1291,1
    - Dst: struct nistp_test_params*::meth
      Src: /src/openssl-1.1.1g/test/ectest.c:1291,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1292,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1292,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1293,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/test/ectest.c:1293,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1294,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1294,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1295,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1295,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1296,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:1296,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1297,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1297,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1298,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1298,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1299,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1299,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1300,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1300,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1301,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1301,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1302,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1302,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1303,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/test/ectest.c:1303,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:1303,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:1308,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1308,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1310,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1310,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1312,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1312,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1313,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1313,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1314,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1314,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1315,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1315,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1316,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1316,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:1316,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1317,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-1.1.1g/test/ectest.c:1317,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:1320,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1321,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1321,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1324,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1325,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1325,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1328,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1329,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1329,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1332,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/test/ectest.c:1332,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1333,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1333,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:1333,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1335,1
    - Dst: BN_rshift
      Src: /src/openssl-1.1.1g/test/ectest.c:1335,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1340,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1341,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1341,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1344,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1345,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1345,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:1351,1
    - Dst: EC_GROUP_have_precompute_mult
      Src: /src/openssl-1.1.1g/test/ectest.c:1351,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1354,1
    - Dst: EC_GROUP_precompute_mult
      Src: /src/openssl-1.1.1g/test/ectest.c:1354,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1355,1
    - Dst: EC_GROUP_have_precompute_mult
      Src: /src/openssl-1.1.1g/test/ectest.c:1355,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1359,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1360,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1360,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1363,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1364,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1364,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1367,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1367,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:1367,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1370,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1371,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1371,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1374,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1375,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1375,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1379,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/ectest.c:1379,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1380,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/ectest.c:1380,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1381,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:1381,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1382,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-1.1.1g/test/ectest.c:1382,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1383,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1383,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1384,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1384,1
    - Dst: group_order_tests
      Src: /src/openssl-1.1.1g/test/ectest.c:1387,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1389,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1390,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1391,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1392,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1393,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1394,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1395,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1396,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1397,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1398,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1399,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1400,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1401,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1402,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1403,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 63
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1268
    functionDepth: 9
    functionLinenumber: 1268
    functionLinenumberEnd: 1405
    functionName: nistp_single_test
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_precompute_mult
    - EC_GROUP_have_precompute_mult
    - EC_GROUP_get_degree
    - BN_hex2bn
    - EC_POINT_mul
    - TEST_true
    - group_order_tests
    - EC_POINT_set_affine_coordinates
    - TEST_int_eq
    - EC_POINT_cmp
    - BN_free
    - EC_GROUP_set_curve
    - EC_POINT_copy
    - BN_CTX_new
    - BN_rshift
    - BN_new
    - EC_POINT_dbl
    - BN_CTX_free
    - EC_GROUP_free
    - BN_set_word
    - BN_add
    - EC_GROUP_new
    - TEST_ptr
    - EC_POINT_free
    - struct nistp_test_params*::meth
    - EC_GROUP_set_generator
    - BN_is_prime_ex
    - TEST_false
    - BN_value_one
    - EC_POINT_new
    - TEST_note
    - EC_POINT_invert
    linkageType: ''
    returnType: int
    signature: int nistp_single_test(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1426,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1427,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/test/ectest.c:1430,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1431,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1432,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1433,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1434,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1435,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1436,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1437,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1440,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1441,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1442,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1443,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1444,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1444,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1444,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1444,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:1447,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1447,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:1448,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1448,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:1449,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1449,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:1450,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1450,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1451,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openssl-1.1.1g/test/ectest.c:1451,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1453,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ectest.c:1453,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1454,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1454,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1455,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-1.1.1g/test/ectest.c:1455,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1456,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1456,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1459,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1459,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1460,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1460,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/test/ectest.c:1466,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1467,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1468,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1469,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1470,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1471,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1411
    functionDepth: 8
    functionLinenumber: 1411
    functionLinenumberEnd: 1474
    functionName: underflow_test
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - TEST_int_gt
    - BN_hex2bn
    - EC_POINT_mul
    - TEST_true
    - TEST_int_eq
    - EC_GROUP_new_by_curve_name
    - EC_POINT_get_affine_coordinates
    - BN_CTX_new
    - BN_CTX_end
    - EC_POINT_dbl
    - BN_CTX_free
    - EC_POINT_set_Jprojective_coordinates_GFp
    - BN_CTX_get
    - EC_GROUP_free
    - TEST_ptr
    - EC_POINT_free
    - BN_CTX_start
    - EC_POINT_new
    linkageType: ''
    returnType: int
    signature: int underflow_test(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - n1d
    - n2d
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1584
    functionName: are_ec_nids_compatible
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline are_ec_nids_compatible(int n1d, int n2d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ectest.c:1616,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1616,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1617,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1617,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/test/ectest.c:1619,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1622,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1622,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1623,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1623,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1624,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1624,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1625,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1625,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1626,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1626,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1628,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1628,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1629,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1629,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1630,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1630,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1631,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/test/ectest.c:1631,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1632,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-1.1.1g/test/ectest.c:1632,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1634,1
    - Dst: EC_GROUP_dup
      Src: /src/openssl-1.1.1g/test/ectest.c:1634,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1635,1
    - Dst: EC_POINT_dup
      Src: /src/openssl-1.1.1g/test/ectest.c:1635,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1636,1
    - Dst: EC_POINT_add
      Src: /src/openssl-1.1.1g/test/ectest.c:1636,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1637,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1637,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1639,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:1639,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1640,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/test/ectest.c:1640,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1641,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:1641,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1642,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/test/ectest.c:1642,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1645,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1648,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1648,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1649,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1649,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1664,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1664,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1665,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1665,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1671,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-1.1.1g/test/ectest.c:1671,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:1672,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1672,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1672,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1676,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-1.1.1g/test/ectest.c:1676,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1683,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-1.1.1g/test/ectest.c:1683,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1685,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1686,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1687,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1688,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1689,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1689,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1690,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-1.1.1g/test/ectest.c:1690,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1691,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-1.1.1g/test/ectest.c:1691,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:1693,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1693,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1693,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1701,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-1.1.1g/test/ectest.c:1701,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1702,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1703,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1704,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1705,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1706,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1706,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1707,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-1.1.1g/test/ectest.c:1707,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1708,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-1.1.1g/test/ectest.c:1708,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:1710,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1710,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1710,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1719,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1719,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1721,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1722,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1723,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1724,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1725,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1725,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1727,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1727,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1729,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1730,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1731,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1732,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1733,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1733,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:1735,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1735,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1738,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1738,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1740,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1741,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1742,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1743,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1744,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1744,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1745,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-1.1.1g/test/ectest.c:1745,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1746,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-1.1.1g/test/ectest.c:1746,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1749,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1749,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1751,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1752,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1753,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1754,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1755,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1755,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1756,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-1.1.1g/test/ectest.c:1756,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1757,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-1.1.1g/test/ectest.c:1757,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1760,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1760,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1762,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1763,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1764,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1765,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ectest.c:1766,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1766,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1767,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-1.1.1g/test/ectest.c:1767,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1768,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-1.1.1g/test/ectest.c:1768,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ectest.c:1774,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1775,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ectest.c:1776,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1777,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1778,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1779,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1780,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1781,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/test/ectest.c:1782,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1783,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 52
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1595
    functionDepth: 6
    functionLinenumber: 1595
    functionLinenumberEnd: 1785
    functionName: check_named_curve_from_ecparameters
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_cofactor
    - TEST_int_ne
    - BN_copy
    - EC_GROUP_new_from_ecparameters
    - EC_GROUP_get_curve_name
    - BN_add_word
    - EC_POINT_add
    - EC_GROUP_get0_order
    - EC_GROUP_get0_generator
    - TEST_true
    - EC_POINT_set_affine_coordinates
    - EC_GROUP_dup
    - are_ec_nids_compatible
    - EC_GROUP_new_by_curve_name
    - EC_POINT_get_affine_coordinates
    - TEST_int_eq
    - TEST_info
    - EC_GROUP_get_asn1_flag
    - EC_GROUP_set_seed
    - OSSL_NELEM
    - OBJ_nid2sn
    - BN_CTX_end
    - BN_CTX_free
    - EC_GROUP_free
    - BN_CTX_get
    - EC_POINT_dup
    - ECPARAMETERS_free
    - TEST_ptr
    - EC_GROUP_get_ecparameters
    - EC_POINT_free
    - BN_CTX_start
    - EC_GROUP_set_generator
    - TEST_false
    - EC_POINT_new
    - BN_CTX_new
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int check_named_curve_from_ecparameters(int id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1794,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1794,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1795,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1795,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1796,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1796,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1797,1
    - Dst: EC_GROUP_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:1797,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1800,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1804,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1804,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1805,1
    - Dst: i2d_ECPKParameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1805,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1806,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1809,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-1.1.1g/test/ectest.c:1816,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1817,1
    - Dst: i2d_ECPKParameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1817,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1818,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1823,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1824,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1825,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1826,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1787
    functionDepth: 7
    functionLinenumber: 1787
    functionLinenumberEnd: 1828
    functionName: parameter_test
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - ECPARAMETERS_free
    - TEST_true
    - EC_GROUP_new_from_ecparameters
    - TEST_ptr
    - EC_GROUP_get_ecparameters
    - TEST_int_eq
    - EC_GROUP_new_by_curve_name
    - OPENSSL_free
    - TEST_mem_eq
    - EC_GROUP_free
    - i2d_ECPKParameters
    - EC_GROUP_set_asn1_flag
    - EC_GROUP_cmp
    linkageType: ''
    returnType: int
    signature: int parameter_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1906,1
    - Dst: d2i_ECPKParameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1906,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/ectest.c:1907,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-1.1.1g/test/ectest.c:1907,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1908,1
    - Dst: d2i_ECPKParameters
      Src: /src/openssl-1.1.1g/test/ectest.c:1908,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ectest.c:1910,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ectest.c:1910,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1911,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-1.1.1g/test/ectest.c:1911,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1915,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1916,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1898
    functionDepth: 7
    functionLinenumber: 1898
    functionLinenumberEnd: 1918
    functionName: cofactor_range_test
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - TEST_BN_eq
    - TEST_BN_eq_zero
    - TEST_ptr
    - EC_GROUP_get0_cofactor
    - TEST_int_gt
    - BN_free
    - EC_GROUP_free
    - d2i_ECPKParameters
    - BN_hex2bn
    linkageType: ''
    returnType: int
    signature: int cofactor_range_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ectest.c:1936,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ectest.c:1936,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1938,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1938,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1939,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:1939,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1940,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1940,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/test/ectest.c:1940,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1941,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1942,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1943,1
    - Dst: BN_CTX_start
      Src: /src/openssl-1.1.1g/test/ectest.c:1947,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1948,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1949,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1950,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1951,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1952,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1953,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1954,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1956,1
    - Dst: BN_CTX_get
      Src: /src/openssl-1.1.1g/test/ectest.c:1956,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1958,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:1958,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1959,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1959,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1960,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1961,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/test/ectest.c:1961,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-1.1.1g/test/ectest.c:1961,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1962,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-1.1.1g/test/ectest.c:1962,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1964,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-1.1.1g/test/ectest.c:1964,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:1965,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:1965,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1966,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ectest.c:1966,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1968,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1968,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1969,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-1.1.1g/test/ectest.c:1969,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1970,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1972,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/ectest.c:1972,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1973,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1973,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1974,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-1.1.1g/test/ectest.c:1974,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:1975,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1977,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/ectest.c:1977,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1978,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/ectest.c:1978,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:1978,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:1979,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1979,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:1981,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1981,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1983,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/ectest.c:1983,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:1984,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1984,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1986,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/ectest.c:1986,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1987,1
    - Dst: BN_sub
      Src: /src/openssl-1.1.1g/test/ectest.c:1987,1
    - Dst: BN_value_one
      Src: /src/openssl-1.1.1g/test/ectest.c:1987,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:1988,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1988,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:1990,1
    - Dst: BN_lshift
      Src: /src/openssl-1.1.1g/test/ectest.c:1990,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/ectest.c:1991,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:1991,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1995,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1996,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1997,1
    - Dst: BN_CTX_end
      Src: /src/openssl-1.1.1g/test/ectest.c:1998,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:1999,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 28
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1926
    functionDepth: 6
    functionLinenumber: 1926
    functionLinenumberEnd: 2001
    functionName: cardinality_test
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get_curve
    - EC_GROUP_get_cofactor
    - BN_copy
    - BN_lshift
    - EC_GROUP_get0_order
    - EC_GROUP_get0_generator
    - TEST_true
    - EC_POINT_set_affine_coordinates
    - EC_GROUP_new_by_curve_name
    - EC_POINT_get_affine_coordinates
    - TEST_info
    - BN_sub
    - EC_GROUP_set_curve
    - OBJ_nid2sn
    - BN_CTX_end
    - BN_CTX_free
    - EC_GROUP_free
    - BN_CTX_get
    - BN_set_word
    - EC_GROUP_new
    - TEST_BN_eq
    - TEST_ptr
    - EC_POINT_free
    - BN_CTX_start
    - EC_GROUP_set_generator
    - TEST_false
    - EC_POINT_new
    - BN_value_one
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int cardinality_test(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:2022,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/ectest.c:2022,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:2023,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:2023,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:2028,1
    - Dst: EC_POINT_point2hex
      Src: /src/openssl-1.1.1g/test/ectest.c:2028,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:2029,1
    - Dst: EC_POINT_hex2point
      Src: /src/openssl-1.1.1g/test/ectest.c:2029,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ectest.c:2030,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-1.1.1g/test/ectest.c:2030,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:2040,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-1.1.1g/test/ectest.c:2040,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:2046,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ectest.c:2047,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:2048,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 4
    argNames:
    - group
    - P
    - form
    - bnctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2011
    functionDepth: 6
    functionLinenumber: 2011
    functionLinenumberEnd: 2051
    functionName: ec_point_hex2point_test_helper
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_hex2point
    - EC_POINT_set_to_infinity
    - TEST_true
    - TEST_ptr
    - EC_POINT_free
    - TEST_int_eq
    - OPENSSL_free
    - EC_POINT_point2hex
    - EC_POINT_is_at_infinity
    - EC_POINT_cmp
    - EC_POINT_new
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_hex2point_test_helper(const EC_GROUP *group,
      const EC_POINT *P,\n                                   point_conversion_form_t
      form,\n                                   BN_CTX *bnctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:2066,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/ectest.c:2066,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:2067,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ectest.c:2067,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:2068,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/test/ectest.c:2068,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:2069,1
    - Dst: EC_POINT_dup
      Src: /src/openssl-1.1.1g/test/ectest.c:2069,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:2072,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-1.1.1g/test/ectest.c:2072,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:2075,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-1.1.1g/test/ectest.c:2075,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:2078,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-1.1.1g/test/ectest.c:2078,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:2081,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-1.1.1g/test/ectest.c:2081,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:2084,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-1.1.1g/test/ectest.c:2084,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:2087,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-1.1.1g/test/ectest.c:2087,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ectest.c:2095,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ectest.c:2096,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/ectest.c:2097,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2056
    functionDepth: 7
    functionLinenumber: 2056
    functionLinenumberEnd: 2100
    functionName: ec_point_hex2point_test
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_dup
    - EC_GROUP_get0_generator
    - TEST_true
    - TEST_ptr
    - EC_POINT_free
    - EC_GROUP_new_by_curve_name
    - BN_CTX_free
    - EC_GROUP_free
    - ec_point_hex2point_test_helper
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int ec_point_hex2point_test(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-1.1.1g/test/ectest.c:2107,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ectest.c:2108,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ectest.c:2108,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ectest.c:2109,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-1.1.1g/test/ectest.c:2109,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ectest.c:2112,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ectest.c:2113,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ectest.c:2114,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ectest.c:2115,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ectest.c:2117,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ectest.c:2118,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ectest.c:2118,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ectest.c:2121,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ectest.c:2121,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ectest.c:2122,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ectest.c:2124,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ectest.c:2125,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ectest.c:2127,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ectest.c:2128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2131
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - OPENSSL_malloc
    - TEST_true
    - ADD_TEST
    - TEST_ptr
    - ADD_ALL_TESTS
    - EC_get_builtin_curves
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ectest.c:2136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2133
    functionDepth: 1
    functionLinenumber: 2133
    functionLinenumberEnd: 2138
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ectest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 377
    functionName: get_std_name_by_id
    functionSourceFile: /src/openssl-1.1.1g/test/ciphername_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *get_std_name_by_id(int id)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:384,1
    - Dst: SSL_CIPHER_standard_name
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:389,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:390,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:391,1
    - Dst: OPENSSL_cipher_name
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:395,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:396,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:397,1
    - Dst: OPENSSL_cipher_name
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:401,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:402,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:403,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:408,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:408,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:410,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:414,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:415,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:419,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:421,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:425,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:427,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:431,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:432,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:433,1
    - Dst: SSL_CIPHER_standard_name
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:437,1
    - Dst: get_std_name_by_id
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:438,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:439,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:440,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:445,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:446,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:451,1
    - Dst: OPENSSL_cipher_name
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:452,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:453,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:454,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:461,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:462,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 464
    functionName: test_cipher_name
    functionSourceFile: /src/openssl-1.1.1g/test/ciphername_test.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_CTX_set_cipher_list
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    - TEST_ptr
    - OPENSSL_cipher_name
    - TEST_str_eq
    - STACK_OF
    - SSL_CIPHER_standard_name
    - get_std_name_by_id
    - TEST_info
    - SSL_get_ciphers
    - SSL_CIPHER_get_name
    - SSL_new
    - SSL_CTX_new
    - SSL_CTX_free
    - SSL_free
    - SSL_CIPHER_get_id
    linkageType: ''
    returnType: int
    signature: int test_cipher_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ciphername_test.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ciphername_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/sanitytest.c:21,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: test_sanity_null_zero
    functionSourceFile: /src/openssl-1.1.1g/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memset
    linkageType: ''
    returnType: int
    signature: int test_sanity_null_zero(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:43,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:44,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: test_sanity_enum_size
    functionSourceFile: /src/openssl-1.1.1g/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_eq
    linkageType: ''
    returnType: int
    signature: int test_sanity_enum_size(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:53,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: test_sanity_twos_complement
    functionSourceFile: /src/openssl-1.1.1g/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_long_eq
    linkageType: ''
    returnType: int
    signature: int test_sanity_twos_complement(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:62,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: test_sanity_sign
    functionSourceFile: /src/openssl-1.1.1g/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_long_eq
    linkageType: ''
    returnType: int
    signature: int test_sanity_sign(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:71,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/sanitytest.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: test_sanity_unsigned_conversion
    functionSourceFile: /src/openssl-1.1.1g/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_long_eq
    linkageType: ''
    returnType: int
    signature: int test_sanity_unsigned_conversion(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/sanitytest.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: test_sanity_range
    functionSourceFile: /src/openssl-1.1.1g/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int test_sanity_range(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/test/sanitytest.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: test_sanity_memcmp
    functionSourceFile: /src/openssl-1.1.1g/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: int test_sanity_memcmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sanitytest.c:94,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sanitytest.c:95,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sanitytest.c:96,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sanitytest.c:97,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sanitytest.c:98,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sanitytest.c:99,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sanitytest.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - buf
    argTypes:
    - unsigned char*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 299
    functionName: pt
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 201
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *pt(const unsigned char *p, char buf[DATA_BUF_SIZE])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/test/destest.c:307,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:308,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:309,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:310,1
    - Dst: DES_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:311,1
    - Dst: DES_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:312,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:314,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/destest.c:315,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/destest.c:316,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/destest.c:316,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:319,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/destest.c:320,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/destest.c:321,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/destest.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 325
    functionName: test_des_ecb
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DES_set_key_unchecked
    - TEST_info
    - TEST_mem_eq
    - memset
    - DES_ecb_encrypt
    - pt
    linkageType: ''
    returnType: int
    signature: int test_des_ecb(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/test/destest.c:333,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/test/destest.c:334,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-1.1.1g/test/destest.c:335,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:336,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:337,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:338,1
    - Dst: DES_ecb3_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:339,1
    - Dst: DES_ecb3_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:340,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:342,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/destest.c:343,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/destest.c:344,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/destest.c:344,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:347,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/destest.c:348,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/destest.c:349,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/destest.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 353
    functionName: test_des_ede_ecb
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_ecb3_encrypt
    - memcpy
    - DES_set_key_unchecked
    - TEST_info
    - TEST_mem_eq
    - memset
    - pt
    linkageType: ''
    returnType: int
    signature: int test_des_ede_ecb(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/destest.c:361,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/destest.c:363,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:363,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:365,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:366,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:367,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:368,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:370,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:373,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:374,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 377
    functionName: test_des_cbc
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - TEST_int_eq
    - memcpy
    - memset
    - TEST_mem_eq
    - DES_ncbc_encrypt
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_des_cbc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/destest.c:385,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/destest.c:387,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:387,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:389,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:390,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:391,1
    - Dst: DES_xcbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:392,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:394,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:396,1
    - Dst: DES_xcbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:397,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 400
    functionName: test_des_ede_cbc
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - TEST_int_eq
    - memcpy
    - DES_xcbc_encrypt
    - memset
    - TEST_mem_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_des_ede_cbc(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/destest.c:408,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/destest.c:411,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:411,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/destest.c:413,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:413,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/destest.c:415,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:415,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:417,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:418,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:419,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:421,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:423,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:425,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:428,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:429,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 432
    functionName: test_ede_cbc
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - TEST_int_eq
    - memcpy
    - memset
    - TEST_mem_eq
    - DES_ede3_cbc_encrypt
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_ede_cbc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/destest.c:439,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:441,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:442,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/destest.c:443,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:443,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: test_input_align
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - TEST_int_eq
    - memcpy
    - memset
    - DES_ncbc_encrypt
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_input_align(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/destest.c:454,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:456,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:457,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/destest.c:458,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:458,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 462
    functionName: test_output_align
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - TEST_int_eq
    - memcpy
    - memset
    - DES_ncbc_encrypt
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_output_align(int i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/destest.c:466,1
    - Dst: DES_crypt
      Src: /src/openssl-1.1.1g/test/destest.c:466,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/destest.c:468,1
    - Dst: DES_crypt
      Src: /src/openssl-1.1.1g/test/destest.c:468,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/destest.c:471,1
    - Dst: DES_crypt
      Src: /src/openssl-1.1.1g/test/destest.c:471,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/destest.c:473,1
    - Dst: DES_crypt
      Src: /src/openssl-1.1.1g/test/destest.c:473,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/destest.c:475,1
    - Dst: DES_crypt
      Src: /src/openssl-1.1.1g/test/destest.c:475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 478
    functionName: test_des_crypt
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_str_eq
    - DES_crypt
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_des_crypt(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/destest.c:485,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/destest.c:487,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:487,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:489,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:490,1
    - Dst: DES_pcbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:491,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:493,1
    - Dst: DES_pcbc_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:495,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 498
    functionName: test_des_pcbc
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - TEST_int_eq
    - memset
    - DES_pcbc_encrypt
    - TEST_mem_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_des_pcbc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:504,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:505,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:506,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:508,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:510,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:511,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - bits
    - cfb_cipher
    argTypes:
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 514
    functionName: cfb_test
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - TEST_mem_eq
    - DES_cfb_encrypt
    - memcpy
    linkageType: ''
    returnType: int
    signature: int cfb_test(int bits, unsigned char *cfb_cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-1.1.1g/test/destest.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: test_des_cfb8
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - cfb_test
    linkageType: ''
    returnType: int
    signature: int test_des_cfb8(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-1.1.1g/test/destest.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 4
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: test_des_cfb16
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - cfb_test
    linkageType: ''
    returnType: int
    signature: int test_des_cfb16(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-1.1.1g/test/destest.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 4
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: test_des_cfb32
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - cfb_test
    linkageType: ''
    returnType: int
    signature: int test_des_cfb32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-1.1.1g/test/destest.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 4
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: test_des_cfb48
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - cfb_test
    linkageType: ''
    returnType: int
    signature: int test_des_cfb48(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-1.1.1g/test/destest.c:542,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:545,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:546,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:548,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:549,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:551,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:553,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:555,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:556,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:558,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:561,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:563,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:565,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:568,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:570,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:572,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 536
    functionDepth: 4
    functionLinenumber: 536
    functionLinenumberEnd: 573
    functionName: test_des_cfb64
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - DES_cfb_encrypt
    - memcpy
    - TEST_mem_eq
    - cfb_test
    - DES_cfb64_encrypt
    linkageType: ''
    returnType: int
    signature: int test_des_cfb64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:580,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:581,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:583,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:585,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:587,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:589,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:591,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:593,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 575
    functionDepth: 4
    functionLinenumber: 575
    functionLinenumberEnd: 596
    functionName: test_des_ede_cfb64
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - DES_ede3_cfb64_encrypt
    - TEST_mem_eq
    - memcpy
    linkageType: ''
    returnType: int
    signature: int test_des_ede_cfb64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:602,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:603,1
    - Dst: DES_ofb_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:604,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:605,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:608,1
    - Dst: DES_ofb_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:609,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 612
    functionName: test_des_ofb
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - DES_ofb_encrypt
    - TEST_mem_eq
    - memcpy
    linkageType: ''
    returnType: int
    signature: int test_des_ofb(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:620,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:621,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:622,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:623,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:626,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:628,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:630,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:632,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 635
    functionName: test_des_ofb64
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - memcpy
    - TEST_mem_eq
    - memset
    - DES_ofb64_encrypt
    linkageType: ''
    returnType: int
    signature: int test_des_ofb64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:643,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:644,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:645,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/destest.c:646,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:649,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:652,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/destest.c:654,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openssl-1.1.1g/test/destest.c:656,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 637
    functionDepth: 4
    functionLinenumber: 637
    functionLinenumberEnd: 659
    functionName: test_des_ede_ofb64
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - memcpy
    - DES_ede3_ofb64_encrypt
    - TEST_mem_eq
    - memset
    linkageType: ''
    returnType: int
    signature: int test_des_ede_ofb64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-1.1.1g/test/destest.c:667,1
    - Dst: DES_cbc_cksum
      Src: /src/openssl-1.1.1g/test/destest.c:668,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/destest.c:668,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-1.1.1g/test/destest.c:670,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/destest.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 673
    functionName: test_des_cbc_cksum
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_set_key_checked
    - TEST_cs_eq
    - DES_cbc_cksum
    - TEST_mem_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_des_cbc_cksum(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DES_quad_cksum
      Src: /src/openssl-1.1.1g/test/destest.c:679,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/destest.c:680,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-1.1.1g/test/destest.c:682,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-1.1.1g/test/destest.c:684,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-1.1.1g/test/destest.c:686,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-1.1.1g/test/destest.c:688,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-1.1.1g/test/destest.c:690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 693
    functionName: test_des_quad_cksum
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_cs_eq
    - DES_quad_cksum
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_des_quad_cksum(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/destest.c:699,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:700,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:701,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/destest.c:702,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:703,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:704,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:705,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:706,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:707,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:708,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:709,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:710,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:711,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:712,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:713,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:714,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:715,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/destest.c:716,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/destest.c:717,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/destest.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 721
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/destest.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: BN_print_var
    functionSourceFile: /src/openssl-1.1.1g/test/exptest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_print_var(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/test/exptest.c:34,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/exptest.c:35,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:36,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - method
    - r
    - a
    argTypes:
    - char*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: a_is_zero_mod_one
    functionSourceFile: /src/openssl-1.1.1g/test/exptest.c
    functionUses: 0
    functionsReached:
    - BN_print_var
    - TEST_error
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int a_is_zero_mod_one(const char *method, const BIGNUM *r,\n                             const
      BIGNUM *a)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/exptest.c:51,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:54,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:54,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:55,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:55,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:56,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:56,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:57,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:57,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/test/exptest.c:60,1
    - Dst: BN_one
      Src: /src/openssl-1.1.1g/test/exptest.c:61,1
    - Dst: BN_zero
      Src: /src/openssl-1.1.1g/test/exptest.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:64,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/exptest.c:64,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:67,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/test/exptest.c:67,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:70,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-1.1.1g/test/exptest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:73,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-1.1.1g/test/exptest.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:76,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-1.1.1g/test/exptest.c:76,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:79,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-1.1.1g/test/exptest.c:79,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:82,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-1.1.1g/test/exptest.c:82,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:85,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/test/exptest.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:88,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-1.1.1g/test/exptest.c:88,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:91,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/exptest.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:94,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-1.1.1g/test/exptest.c:94,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:101,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openssl-1.1.1g/test/exptest.c:101,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/exptest.c:104,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/exptest.c:105,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:107,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:113,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:114,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:115,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:116,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/exptest.c:117,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 46
    functionDepth: 6
    functionLinenumber: 46
    functionLinenumberEnd: 120
    functionName: test_mod_exp_zero
    functionSourceFile: /src/openssl-1.1.1g/test/exptest.c
    functionUses: 0
    functionsReached:
    - TEST_BN_eq_zero
    - BN_mod_exp_mont_word
    - BN_rand
    - BN_mod_exp_recp
    - BN_mod_exp_simple
    - BN_one
    - TEST_true
    - BN_zero
    - BN_mod_exp_mont_consttime
    - TEST_error
    - BN_free
    - BN_mod_exp
    - BN_print_var
    - BN_new
    - BN_CTX_free
    - BN_mod_exp_mont
    - TEST_ptr
    - a_is_zero_mod_one
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int test_mod_exp_zero(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:135,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/test/exptest.c:135,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:138,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:138,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:139,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:139,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:140,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:140,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:141,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:141,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:142,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:142,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:143,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:143,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exptest.c:144,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/exptest.c:144,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/exptest.c:147,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/exptest.c:149,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/exptest.c:151,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/exptest.c:153,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/exptest.c:155,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/test/exptest.c:157,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:159,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/test/exptest.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:160,1
    - Dst: BN_mod
      Src: /src/openssl-1.1.1g/test/exptest.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:161,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-1.1.1g/test/exptest.c:161,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:162,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-1.1.1g/test/exptest.c:162,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:163,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-1.1.1g/test/exptest.c:163,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exptest.c:164,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-1.1.1g/test/exptest.c:164,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/exptest.c:167,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/exptest.c:168,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/exptest.c:169,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/exptest.c:170,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/exptest.c:171,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/exptest.c:172,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/exptest.c:173,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/exptest.c:174,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/exptest.c:175,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:177,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:178,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:179,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:180,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:181,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:182,1
    - Dst: BN_print_var
      Src: /src/openssl-1.1.1g/test/exptest.c:183,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:189,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:190,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:191,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:192,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:193,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:194,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/exptest.c:195,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/test/exptest.c:196,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 1
    argNames:
    - round
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 122
    functionDepth: 6
    functionLinenumber: 122
    functionLinenumberEnd: 199
    functionName: test_mod_exp
    functionSourceFile: /src/openssl-1.1.1g/test/exptest.c
    functionUses: 0
    functionsReached:
    - BN_print_var
    - TEST_true
    - TEST_BN_eq
    - TEST_ptr
    - RAND_bytes
    - BN_new
    - BN_cmp
    - BN_mod_exp_mont_consttime
    - BN_rand
    - TEST_info
    - BN_mod_exp_recp
    - BN_free
    - BN_CTX_free
    - BN_mod_exp_mont
    - BN_CTX_new
    - BN_mod
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: int test_mod_exp(int round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/exptest.c:203,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/exptest.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/exptest.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_engine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:36,1
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:36,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:43,1
    - Dst: RAND_set_rand_method
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: change_rand
    functionSourceFile: /src/openssl-1.1.1g/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - RAND_get_rand_method
    - RAND_set_rand_method
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int change_rand(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:50,1
    - Dst: RAND_set_rand_method
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: restore_rand
    functionSourceFile: /src/openssl-1.1.1g/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - RAND_set_rand_method
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int restore_rand(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:62,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:66,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:66,1
    - Dst: TEST_int_lt
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:67,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:67,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:68,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:68,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:70,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:71,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:71,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:74,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 79
    functionName: fbytes
    functionSourceFile: /src/openssl-1.1.1g/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - TEST_true
    - TEST_ptr
    - BN_new
    - BN_num_bytes
    - TEST_int_le
    - BN_hex2bn
    - BN_free
    - bytes
    - BN_bn2binpad
    - TEST_int_lt
    linkageType: ''
    returnType: int
    signature: int fbytes(unsigned char *buf, int num)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:119,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:119,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:121,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:121,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:123,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:123,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:124,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:124,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:124,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:125,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:126,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:126,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:128,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:128,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:130,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:130,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:131,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:131,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:132,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:132,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:133,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:133,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:135,1
    - Dst: change_rand
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:135,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:140,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:140,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:141,1
    - Dst: EC_KEY_key2buf
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:141,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:143,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:143,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:144,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:145,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:150,1
    - Dst: ECDSA_sign_setup
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:150,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:151,1
    - Dst: ECDSA_do_sign_ex
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:151,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:154,1
    - Dst: ECDSA_do_verify
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:154,1
    - Dst: ECDSA_SIG_get0
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:158,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:159,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:167,1
    - Dst: restore_rand
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:167,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:170,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:172,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:173,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:174,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:175,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:176,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:177,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:178,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:179,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 40
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 181
    functionName: x9_62_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - ECDSA_sign_setup
    - EC_KEY_key2buf
    - EVP_DigestInit_ex
    - ECDSA_do_verify
    - OPENSSL_hexstr2buf
    - EVP_MD_CTX_free
    - BN_hex2bn
    - restore_rand
    - BN_clear_free
    - EVP_get_digestbynid
    - TEST_true
    - TEST_int_eq
    - OPENSSL_free
    - ECDSA_SIG_free
    - TEST_info
    - TEST_mem_eq
    - BN_free
    - OBJ_nid2sn
    - EVP_MD_CTX_new
    - EC_KEY_new_by_curve_name
    - BN_new
    - change_rand
    - ECDSA_SIG_get0
    - ECDSA_do_sign_ex
    - TEST_BN_eq
    - TEST_ptr
    - EVP_DigestUpdate
    - EC_KEY_free
    - EC_KEY_generate_key
    linkageType: ''
    returnType: int
    signature: int x9_62_tests(int n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:213,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:213,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:217,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:217,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:219,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:219,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:221,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:221,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:223,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:223,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:224,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:224,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:225,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:225,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:226,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:226,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:228,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:228,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:229,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:229,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:230,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:231,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:231,1
    - Dst: ECDSA_size
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:234,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:236,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:236,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:238,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:238,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:239,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:239,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:240,1
    - Dst: ECDSA_size
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:240,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:242,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:242,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:243,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:243,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:244,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:244,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:246,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:246,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:247,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:247,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:248,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:248,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:250,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:250,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:251,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:251,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:252,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:252,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:257,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:257,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:258,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:258,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:259,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:259,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:263,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:263,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:264,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:264,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:265,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:265,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:297,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:297,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:298,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:298,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:299,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:299,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:303,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:303,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:304,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:304,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:305,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:305,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:310,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:311,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:312,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:313,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 40
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 315
    functionName: test_builtin
    functionSourceFile: /src/openssl-1.1.1g/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - TEST_int_ne
    - EVP_DigestSign
    - EVP_MD_CTX_free
    - EVP_PKEY_new
    - EVP_DigestVerifyInit
    - OPENSSL_malloc
    - TEST_true
    - RAND_bytes
    - TEST_int_eq
    - OPENSSL_free
    - EVP_DigestSignInit
    - TEST_info
    - OBJ_nid2sn
    - EVP_MD_CTX_new
    - EC_KEY_new_by_curve_name
    - ECDSA_size
    - TEST_ptr
    - EVP_PKEY_assign_EC_KEY
    - TEST_int_le
    - EVP_DigestVerify
    - EC_KEY_generate_key
    - EVP_MD_CTX_reset
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int test_builtin(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:321,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:324,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:325,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:325,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:326,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:326,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:328,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:329,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - OPENSSL_malloc
    - TEST_true
    - TEST_ptr
    - ADD_ALL_TESTS
    - TEST_note
    - EC_get_builtin_curves
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ecdsatest.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/test/uitest.c:25,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/uitest.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: test_pem_password_cb
    functionSourceFile: /src/openssl-1.1.1g/test/uitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strlcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_pem_password_cb(char *buf, int size, int rwflag, void *userdata)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/uitest.c:41,1
    - Dst: UI_UTIL_wrap_read_pem_callback
      Src: /src/openssl-1.1.1g/test/uitest.c:42,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/uitest.c:43,1
    - Dst: UI_new_method
      Src: /src/openssl-1.1.1g/test/uitest.c:43,1
    - Dst: UI_add_user_data
      Src: /src/openssl-1.1.1g/test/uitest.c:47,1
    - Dst: UI_add_input_string
      Src: /src/openssl-1.1.1g/test/uitest.c:49,1
    - Dst: UI_process
      Src: /src/openssl-1.1.1g/test/uitest.c:53,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/uitest.c:55,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/uitest.c:63,1
    - Dst: UI_free
      Src: /src/openssl-1.1.1g/test/uitest.c:67,1
    - Dst: UI_destroy_method
      Src: /src/openssl-1.1.1g/test/uitest.c:68,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 71
    functionName: test_old
    functionSourceFile: /src/openssl-1.1.1g/test/uitest.c
    functionUses: 0
    functionsReached:
    - UI_add_user_data
    - TEST_ptr
    - TEST_str_eq
    - UI_UTIL_wrap_read_pem_callback
    - UI_process
    - UI_new_method
    - UI_destroy_method
    - TEST_info
    - UI_add_input_string
    - UI_free
    linkageType: ''
    returnType: int
    signature: int test_old(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_ui_method
      Src: /src/openssl-1.1.1g/test/uitest.c:83,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/uitest.c:84,1
    - Dst: password_callback
      Src: /src/openssl-1.1.1g/test/uitest.c:84,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/uitest.c:85,1
    - Dst: destroy_ui_method
      Src: /src/openssl-1.1.1g/test/uitest.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 89
    functionName: test_new_ui
    functionSourceFile: /src/openssl-1.1.1g/test/uitest.c
    functionUses: 0
    functionsReached:
    - setup_ui_method
    - password_callback
    - TEST_str_eq
    - TEST_int_gt
    - destroy_ui_method
    linkageType: ''
    returnType: int
    signature: int test_new_ui(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/uitest.c:93,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/uitest.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/uitest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ui.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:16,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:16,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:18,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:18,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:19,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:19,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:23,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:23,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:23,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:26,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:26,1
    - Dst: CMS_encrypt
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:29,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:29,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:30,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:33,1
    - Dst: CMS_decrypt
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:33,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:38,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:38,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:38,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:39,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:39,1
    - Dst: sk_X509_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:44,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:45,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:46,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:47,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 13
    functionDepth: 9
    functionLinenumber: 13
    functionLinenumberEnd: 50
    functionName: test_encrypt_decrypt
    functionSourceFile: /src/openssl-1.1.1g/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - STACK_OF
    - BIO_s_mem
    - TEST_int_gt
    - sk_X509_free
    - CMS_ContentInfo_free
    - TEST_true
    - strcmp
    - TEST_int_eq
    - BIO_free
    - CMS_encrypt
    - CMS_decrypt
    - BIO_new_mem_buf
    - sk_X509_push
    - sk_X509_new_null
    - TEST_ptr
    - BIO_gets
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_encrypt_decrypt(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:57,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:57,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:58,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:58,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:61,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:64,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:64,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:65,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:68,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:70,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:71,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:76,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:76,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:77,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:78,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:82,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 87
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - TEST_true
    - ADD_TEST
    - TEST_ptr
    - test_get_argument
    - PEM_read_bio_PrivateKey
    - PEM_read_bio_X509
    - BIO_free
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:91,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/cmsapitest.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - b
    - oper
    - argp
    - argi
    - argl
    - ret
    argTypes:
    - BIO*
    - int
    - char*
    - int
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: my_bio_callback
    functionSourceFile: /src/openssl-1.1.1g/test/bio_callback_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: "long my_bio_callback(BIO *b, int oper, const char *argp, int argi,\n
      \                           long argl, long ret)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:52,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:52,1
    - Dst: BIO_set_callback
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:56,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:57,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:58,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:59,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:60,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:61,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:62,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:63,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:64,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:65,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:66,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:67,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:68,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:69,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:70,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:71,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:75,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:76,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:77,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:78,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:79,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:80,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:81,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:82,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:83,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:84,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:85,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:86,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:87,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:88,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:89,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:94,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:95,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:96,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:97,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:98,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:99,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:100,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:101,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:102,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:103,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:104,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:105,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:106,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:107,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:108,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:112,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:114,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:115,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:116,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:117,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:118,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:119,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:120,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:121,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:122,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:123,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:124,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:125,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:126,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:127,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:128,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:132,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:133,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:134,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:135,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:136,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:137,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:138,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:139,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:140,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:141,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:142,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:143,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:144,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:145,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:146,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:150,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:151,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:152,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:153,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:154,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:155,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:156,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:157,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:158,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:165,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:169,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:170,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 172
    functionName: test_bio_callback
    functionSourceFile: /src/openssl-1.1.1g/test/bio_callback_test.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - BIO_write
    - TEST_ptr_eq
    - TEST_long_eq
    - TEST_int_eq
    - BIO_s_mem
    - BIO_puts
    - TEST_mem_eq
    - memset
    - BIO_free
    - BIO_set_mem_eof_return
    - BIO_set_callback
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_bio_callback(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bio_callback_test.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/bio_callback_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ebcdic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:68,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:72,1
    - Dst: EVP_PKEY_CTX_set_tls1_prf_md
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:73,1
    - Dst: EVP_md5_sha1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:73,1
    - Dst: EVP_PKEY_CTX_set1_tls1_prf_secret
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:74,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:75,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:76,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:77,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:78,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 8
    argNames:
    - seed1
    - seed1_len
    - seed2
    - seed2_len
    - seed3
    - seed3_len
    - out
    - olen
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: do_PRF
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_tls1_prf_md
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_add1_tls1_prf_seed
    - EVP_PKEY_CTX_free
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new_id
    - EVP_md5_sha1
    - EVP_PKEY_CTX_set1_tls1_prf_secret
    linkageType: ''
    returnType: int
    signature: "int do_PRF(const void *seed1, int seed1_len,\n                  const
      void *seed2, int seed2_len,\n                  const void *seed3, int seed3_len,\n
      \                 unsigned char *out, int olen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:108,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:109,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 112
    functionName: client_session
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - d2i_SSL_SESSION
    - memcpy
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *client_session(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:123,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:124,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:128,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:131,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:134,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:138,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:141,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:145,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:149,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:153,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:154,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:158,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:160,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:161,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:167,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:167,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:171,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:171,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:175,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:175,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:179,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:183,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:187,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 39
    argCount: 1
    argNames:
    - wbio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 190
    functionName: validate_client_hello
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - BIO_get_mem_data
    - PACKET_get_length_prefixed_1
    - PACKET_buf_init
    - PACKET_get_1
    - PACKET_equal
    - PACKET_remaining
    - PACKET_copy_bytes
    - EVP_DigestUpdate
    - BIO_reset
    - PACKET_forward
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int validate_client_hello(BIO *wbio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:213,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rbio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 218
    functionName: send_hello_verify
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - memcpy
    linkageType: ''
    returnType: int
    signature: int send_hello_verify(BIO *rbio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:257,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:258,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:260,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:264,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rbio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 268
    functionName: send_server_hello
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - BIO_write
    - memcpy
    linkageType: ''
    returnType: int
    signature: int send_server_hello(BIO *rbio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:295,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:300,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:303,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:304,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:304,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:305,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:306,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:307,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:308,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:311,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:312,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:313,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:314,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:323,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:324,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:325,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:325,1
    - Dst: EVP_Cipher
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:326,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:327,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:330,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:331,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:332,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:333,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:336,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:338,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:339,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 5
    argNames:
    - rbio
    - type
    - seqnr
    - msg
    - len
    argTypes:
    - BIO*
    - unsigned char
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 343
    functionName: send_record
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - EVP_Cipher
    - OPENSSL_malloc
    - EVP_aes_128_cbc
    - BIO_write
    - HMAC_CTX_new
    - HMAC_Init_ex
    - HMAC_Final
    - HMAC_CTX_free
    - EVP_sha1
    - RAND_bytes
    - OPENSSL_free
    - HMAC_Update
    - memcpy
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int send_record(BIO *rbio, unsigned char type, uint64_t seqnr,\n                       const
      void *msg, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_PRF
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:359,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:365,1
    - Dst: do_PRF
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:368,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:369,1
    - Dst: send_record
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - rbio
    argTypes:
    - SSL*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 345
    functionDepth: 6
    functionLinenumber: 345
    functionLinenumberEnd: 375
    functionName: send_finished
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_size
    - EVP_DigestFinal_ex
    - do_PRF
    - send_record
    linkageType: ''
    returnType: int
    signature: int send_finished(SSL *s, BIO *rbio)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:384,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:385,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:389,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:392,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:395,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:399,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:403,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:407,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:409,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:413,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 21
    argCount: 1
    argNames:
    - wbio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 423
    functionName: validate_ccs
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - BIO_get_mem_data
    - PACKET_buf_init
    - PACKET_get_1
    - PACKET_forward
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int validate_ccs(BIO *wbio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: NODROP
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODROP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: DROP
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DROP(x)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:456,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:457,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:458,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:459,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:461,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:462,1
    - Dst: client_session
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:464,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:465,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:468,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:469,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:470,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:470,1
    - Dst: EVP_md5_sha1
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:470,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:474,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:474,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:475,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:476,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:476,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:477,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:477,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:478,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:478,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:481,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:482,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:483,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:483,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:485,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:487,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:487,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:488,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:488,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:490,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:491,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:494,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:496,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:496,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:505,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:505,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:510,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:513,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:514,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:515,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:515,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:516,1
    - Dst: validate_client_hello
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:516,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:517,1
    - Dst: send_hello_verify
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:517,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:520,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:521,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:522,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:522,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:523,1
    - Dst: validate_client_hello
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:523,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:524,1
    - Dst: send_server_hello
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:524,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:527,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:528,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:529,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:529,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:530,1
    - Dst: send_finished
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:530,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:533,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:534,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:535,1
    - Dst: validate_ccs
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:535,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:543,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:546,1
    - Dst: send_record
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:546,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:548,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:556,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:557,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:558,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:562,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:567,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:573,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:574,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:575,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:576,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:577,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 444
    functionDepth: 7
    functionLinenumber: 444
    functionLinenumberEnd: 580
    functionName: test_bad_dtls
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - SSL_set_session
    - SSL_CTX_set_cipher_list
    - SSL_SESSION_free
    - BIO_s_mem
    - send_server_hello
    - EVP_DigestInit_ex
    - validate_client_hello
    - send_finished
    - SSL_set_connect_state
    - TEST_int_gt
    - EVP_MD_CTX_free
    - TEST_true
    - RAND_bytes
    - TEST_int_eq
    - memcpy
    - validate_ccs
    - TEST_error
    - BIO_free
    - time
    - SSL_new
    - SSL_free
    - SSL_CTX_free
    - OSSL_NELEM
    - EVP_MD_CTX_new
    - SSL_set_bio
    - SSL_read
    - SSL_CTX_set_max_proto_version
    - send_record
    - EVP_md5_sha1
    - DTLS_client_method
    - TEST_ptr
    - SSL_get_error
    - TEST_int_le
    - send_hello_verify
    - TEST_false
    - BIO_up_ref
    - SSL_do_handshake
    - SSL_CTX_new
    - client_session
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_bad_dtls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bad_dtls_test.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 586
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_hmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:47,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:47,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:48,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:48,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:53,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:53,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:54,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:54,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - group
    - point
    - num
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 42
    functionDepth: 8
    functionLinenumber: 42
    functionLinenumberEnd: 64
    functionName: walk_curve
    functionSourceFile: /src/openssl-1.1.1g/test/ecstresstest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_mul
    - TEST_true
    - TEST_ptr
    - BN_new
    - EC_POINT_get_affine_coordinates
    - BN_free
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *walk_curve(const EC_GROUP *group, EC_POINT *point, int64_t
      num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:77,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:77,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:78,1
    - Dst: EC_POINT_dup
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:78,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:78,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:80,1
    - Dst: walk_curve
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:80,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:84,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:88,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:88,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:89,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:90,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:96,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:97,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:98,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 66
    functionDepth: 9
    functionLinenumber: 66
    functionLinenumberEnd: 101
    functionName: test_curve
    functionSourceFile: /src/openssl-1.1.1g/test/ecstresstest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_dup
    - EC_GROUP_get0_generator
    - walk_curve
    - TEST_true
    - TEST_BN_eq
    - TEST_ptr
    - EC_POINT_free
    - EC_GROUP_new_by_curve_name
    - BN_hex2bn
    - EC_GROUP_free
    - BN_free
    - BIO_printf
    - BN_print
    linkageType: ''
    returnType: int
    signature: int test_curve(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - in
    - result
    argTypes:
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: atoi64
    functionSourceFile: /src/openssl-1.1.1g/test/ecstresstest.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: int atoi64(const char *in, int64_t *result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi64
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:129,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:130,1
    - Dst: test_get_option_argument
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:137,1
    - Dst: atoi64
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:139,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ecstresstest.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ecstresstest.c
    functionUses: 0
    functionsReached:
    - atoi64
    - ADD_TEST
    - TEST_error
    - test_get_option_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_seed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:23,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:25,1
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:25,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:26,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:26,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:26,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:27,1
    - Dst: X509_load_cert_file
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:27,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:28,1
    - Dst: X509_load_cert_file
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:28,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:31,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 34
    functionName: test_509_dup_cert
    functionSourceFile: /src/openssl-1.1.1g/test/x509_dup_cert_test.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - TEST_true
    - X509_LOOKUP_file
    - X509_load_cert_file
    - TEST_ptr
    - X509_STORE_CTX_free
    - X509_STORE_add_lookup
    - test_get_argument
    - X509_STORE_new
    linkageType: ''
    returnType: int
    signature: int test_509_dup_cert(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument_count
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:38,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:40,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:41,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/x509_dup_cert_test.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/x509_dup_cert_test.c
    functionUses: 0
    functionsReached:
    - test_get_argument_count
    - TEST_int_gt
    - TEST_note
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RC5_32_set_key
      Src: /src/openssl-1.1.1g/test/rc5test.c:184,1
    - Dst: RC5_32_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/rc5test.c:186,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc5test.c:187,1
    - Dst: RC5_32_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/rc5test.c:190,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc5test.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 195
    functionName: test_rc5_ecb
    functionSourceFile: /src/openssl-1.1.1g/test/rc5test.c
    functionUses: 0
    functionsReached:
    - RC5_32_ecb_encrypt
    - TEST_mem_eq
    - RC5_32_set_key
    linkageType: ''
    returnType: int
    signature: int test_rc5_ecb(int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RC5_32_set_key
      Src: /src/openssl-1.1.1g/test/rc5test.c:206,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/rc5test.c:208,1
    - Dst: RC5_32_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/rc5test.c:209,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc5test.c:212,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/rc5test.c:216,1
    - Dst: RC5_32_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/rc5test.c:217,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc5test.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 224
    functionName: test_rc5_cbc
    functionSourceFile: /src/openssl-1.1.1g/test/rc5test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TEST_mem_eq
    - RC5_32_set_key
    - RC5_32_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: int test_rc5_cbc(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/rc5test.c:230,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/rc5test.c:230,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/rc5test.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/rc5test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/recordlentest.c:33,1
    - Dst: BIO_write_ex
      Src: /src/openssl-1.1.1g/test/recordlentest.c:41,1
    - Dst: BIO_write_ex
      Src: /src/openssl-1.1.1g/test/recordlentest.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - b
    - len
    - rectype
    - recversion
    argTypes:
    - BIO*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 61
    functionName: write_record
    functionSourceFile: /src/openssl-1.1.1g/test/recordlentest.c
    functionUses: 0
    functionsReached:
    - memset
    - BIO_write_ex
    linkageType: ''
    returnType: int
    signature: int write_record(BIO *b, size_t len, int rectype, int recversion)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/test/recordlentest.c:65,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/test/recordlentest.c:73,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/recordlentest.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - enc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: fail_due_to_record_overflow
    functionSourceFile: /src/openssl-1.1.1g/test/recordlentest.c
    functionUses: 0
    functionsReached:
    - ERR_GET_LIB
    - ERR_peek_error
    - ERR_GET_REASON
    linkageType: ''
    returnType: int
    signature: int fail_due_to_record_overflow(int enc)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/recordlentest.c:103,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/recordlentest.c:105,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/recordlentest.c:105,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/recordlentest.c:105,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/recordlentest.c:105,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/recordlentest.c:116,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/recordlentest.c:122,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/recordlentest.c:122,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/test/recordlentest.c:126,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/recordlentest.c:135,1
    - Dst: write_record
      Src: /src/openssl-1.1.1g/test/recordlentest.c:135,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/recordlentest.c:139,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/test/recordlentest.c:139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/recordlentest.c:143,1
    - Dst: fail_due_to_record_overflow
      Src: /src/openssl-1.1.1g/test/recordlentest.c:143,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/recordlentest.c:149,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/recordlentest.c:149,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/recordlentest.c:163,1
    - Dst: write_record
      Src: /src/openssl-1.1.1g/test/recordlentest.c:163,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/recordlentest.c:167,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/recordlentest.c:167,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/recordlentest.c:170,1
    - Dst: fail_due_to_record_overflow
      Src: /src/openssl-1.1.1g/test/recordlentest.c:170,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/recordlentest.c:177,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/recordlentest.c:178,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/recordlentest.c:179,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/recordlentest.c:180,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 67
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 182
    functionName: test_record_overflow
    functionSourceFile: /src/openssl-1.1.1g/test/recordlentest.c
    functionUses: 0
    functionsReached:
    - SSL_accept
    - TLS_server_method
    - TEST_true
    - SSL_read_ex
    - create_ssl_objects
    - TEST_int_eq
    - create_ssl_ctx_pair
    - SSL_CTX_set_max_proto_version
    - TEST_int_le
    - write_record
    - TLS_client_method
    - TEST_false
    - SSL_get_rbio
    - ERR_clear_error
    - fail_due_to_record_overflow
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_record_overflow(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/recordlentest.c:186,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/recordlentest.c:186,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/recordlentest.c:187,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/recordlentest.c:187,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/recordlentest.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/recordlentest.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_s_mempacket_test_free
      Src: /src/openssl-1.1.1g/test/recordlentest.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/recordlentest.c
    functionUses: 0
    functionsReached:
    - bio_s_mempacket_test_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_txt_db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:35,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:43,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:44,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:48,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:49,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:50,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 54
    functionName: test_tbl_standard
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_internal_test.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - OSSL_NELEM
    - TEST_int_ne
    - TEST_info
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int test_tbl_standard(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:88,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:90,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:91,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:96,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:97,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:101,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:102,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:104,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:105,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 108
    functionName: test_standard_methods
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_internal_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - OBJ_nid2sn
    - TEST_true
    - TEST_int_ne
    - TEST_info
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int test_standard_methods(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:112,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_internal_test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_die
      Src: /src/openssl-1.1.1g/test/aborttest.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/aborttest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_die
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_safestack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_crypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - timer_us
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: timer_cb
    functionSourceFile: /src/openssl-1.1.1g/test/dtlstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int timer_cb(SSL *s, unsigned int timer_us)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:64,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/dtlstest.c:64,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/dtlstest.c:64,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/test/dtlstest.c:65,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:70,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/dtlstest.c:70,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/dtlstest.c:73,1
    - Dst: bio_f_tls_dump_filter
      Src: /src/openssl-1.1.1g/test/dtlstest.c:73,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlstest.c:74,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:78,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/dtlstest.c:78,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-1.1.1g/test/dtlstest.c:82,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/test/dtlstest.c:92,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/dtlstest.c:93,1
    - Dst: mempacket_test_inject
      Src: /src/openssl-1.1.1g/test/dtlstest.c:94,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:103,1
    - Dst: create_bare_ssl_connection
      Src: /src/openssl-1.1.1g/test/dtlstest.c:103,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/dtlstest.c:108,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:114,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:115,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:116,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:117,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - testidx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 120
    functionName: test_dtls_unprocessed
    functionSourceFile: /src/openssl-1.1.1g/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - TEST_true
    - DTLS_client_method
    - create_ssl_objects
    - create_bare_ssl_connection
    - TEST_ptr
    - mempacket_test_inject
    - create_ssl_ctx_pair
    - DTLS_server_method
    - DTLS_set_timer_cb
    - SSL_get_wbio
    - bio_f_tls_dump_filter
    - BIO_next
    - SSL_free
    - SSL_CTX_free
    - printf
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_dtls_unprocessed(int testidx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:159,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/dtlstest.c:159,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/dtlstest.c:159,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/test/dtlstest.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:167,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/dtlstest.c:167,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:169,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/dtlstest.c:169,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlstest.c:171,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/dtlstest.c:171,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/dtlstest.c:174,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/dtlstest.c:175,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:176,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:177,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/dtlstest.c:190,1
    - Dst: bio_f_tls_dump_filter
      Src: /src/openssl-1.1.1g/test/dtlstest.c:190,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlstest.c:191,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:195,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/dtlstest.c:195,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:200,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/dtlstest.c:200,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-1.1.1g/test/dtlstest.c:204,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-1.1.1g/test/dtlstest.c:205,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/test/dtlstest.c:209,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/test/dtlstest.c:216,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/dtlstest.c:221,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/dtlstest.c:223,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/dtlstest.c:224,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:226,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/dtlstest.c:226,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:229,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/dtlstest.c:229,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dtlstest.c:233,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/dtlstest.c:233,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:239,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:240,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:241,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:242,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:243,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 246
    functionName: test_dtls_drop_records
    functionSourceFile: /src/openssl-1.1.1g/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - SSL_SESSION_free
    - SSL_get1_session
    - DTLS_set_timer_cb
    - BIO_ctrl
    - create_ssl_connection
    - TEST_true
    - TEST_int_eq
    - create_ssl_ctx_pair
    - bio_f_tls_dump_filter
    - SSL_free
    - create_ssl_objects
    - SSL_session_reused
    - DTLS_client_method
    - TEST_ptr
    - DTLS_server_method
    - SSL_shutdown
    - SSL_get_wbio
    - BIO_next
    - SSL_CTX_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_dtls_drop_records(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/dtlstest.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: generate_cookie_cb
    functionSourceFile: /src/openssl-1.1.1g/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int generate_cookie_cb(SSL *ssl, unsigned char *cookie,\n                              unsigned
      int *cookie_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dtlstest.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: verify_cookie_cb
    functionSourceFile: /src/openssl-1.1.1g/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: "int verify_cookie_cb(SSL *ssl, const unsigned char *cookie,\n                            unsigned
      int cookie_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:270,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/dtlstest.c:270,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/dtlstest.c:270,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/test/dtlstest.c:271,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/dtlstest.c:276,1
    - Dst: SSL_CTX_set_cookie_generate_cb
      Src: /src/openssl-1.1.1g/test/dtlstest.c:277,1
    - Dst: SSL_CTX_set_cookie_verify_cb
      Src: /src/openssl-1.1.1g/test/dtlstest.c:278,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:280,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/dtlstest.c:280,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:282,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/dtlstest.c:282,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:288,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:289,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:290,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 294
    functionName: test_cookie
    functionSourceFile: /src/openssl-1.1.1g/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - DTLS_client_method
    - create_ssl_objects
    - SSL_CTX_set_cookie_generate_cb
    - create_ssl_ctx_pair
    - DTLS_server_method
    - SSL_CTX_set_options
    - SSL_CTX_set_cookie_verify_cb
    - SSL_CTX_free
    - SSL_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_cookie(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:302,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/dtlstest.c:302,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/dtlstest.c:302,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/test/dtlstest.c:303,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:308,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/dtlstest.c:308,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-1.1.1g/test/dtlstest.c:312,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-1.1.1g/test/dtlstest.c:313,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/dtlstest.c:315,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/test/dtlstest.c:315,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/dtlstest.c:316,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/test/dtlstest.c:316,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtlstest.c:318,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/dtlstest.c:318,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:323,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:324,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:325,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 329
    functionName: test_dtls_duplicate_records
    functionSourceFile: /src/openssl-1.1.1g/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - DTLS_client_method
    - create_ssl_objects
    - create_ssl_ctx_pair
    - DTLS_server_method
    - DTLS_set_timer_cb
    - BIO_ctrl
    - SSL_get_wbio
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_dtls_duplicate_records(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlstest.c:333,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/dtlstest.c:333,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtlstest.c:334,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/dtlstest.c:334,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/dtlstest.c:337,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/dtlstest.c:338,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dtlstest.c:339,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dtlstest.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 343
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_f_tls_dump_filter_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:347,1
    - Dst: bio_s_mempacket_test_free
      Src: /src/openssl-1.1.1g/test/dtlstest.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - bio_s_mempacket_test_free
    - bio_f_tls_dump_filter_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_dtls1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: CUSTOM_DATA
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUSTOM_DATA(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - znum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: CUSTOM_EXPECTED_SUCCESS
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUSTOM_EXPECTED_SUCCESS(num, znum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - znum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: ENCDEC_DATA
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCDEC_DATA(num, znum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - max
    - ','
    - zmax
    - ','
    - min
    - ','
    - zmin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: ENCDEC_ARRAY
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCDEC_ARRAY(max, zmax, min, zmin)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_PACKAGE*::d2i
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:493,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:497,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:503,1
    - Dst: TEST_PACKAGE*::ifree
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:509,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - bytes
    - nbytes
    - expected
    - expected_size
    - package
    argTypes:
    - unsigned char*
    - long
    - EXPECTED*
    - size_t
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 511
    functionName: do_decode
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TEST_PACKAGE*::d2i
    - ERR_clear_error
    - TEST_PACKAGE*::ifree
    linkageType: ''
    returnType: int
    signature: "int do_decode(unsigned char *bytes, long nbytes,\n                     const
      EXPECTED *expected, size_t expected_size,\n                     const TEST_PACKAGE
      *package)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_PACKAGE*::i2d
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:528,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:533,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:536,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - input
    - expected
    - expected_len
    - package
    argTypes:
    - EXPECTED*
    - unsigned char*
    - size_t
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 546
    functionName: do_encode
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TEST_PACKAGE*::i2d
    - OPENSSL_free
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "int do_encode(EXPECTED *input,\n                     const unsigned
      char *expected, size_t expected_len,\n                     const TEST_PACKAGE
      *package)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_PACKAGE*::i2d
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:557,1
    - Dst: do_decode
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:561,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bytes
    - nbytes
    - package
    argTypes:
    - EXPECTED*
    - long
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 564
    functionName: do_enc_dec
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - TEST_PACKAGE*::i2d
    - do_decode
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int do_enc_dec(EXPECTED *bytes, long nbytes,\n                      const
      TEST_PACKAGE *package)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:570,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - len
    - pp
    argTypes:
    - size_t
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 592
    functionName: der_encode_length
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: size_t der_encode_length(size_t len, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: der_encode_length
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:606,1
    - Dst: der_encode_length
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:619,1
    - Dst: der_encode_length
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:622,1
    - Dst: der_encode_length
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:631,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:634,1
    - Dst: der_encode_length
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:640,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:643,1
    - Dst: der_encode_length
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:648,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:649,1
    - Dst: der_encode_length
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:656,1
    - Dst: der_encode_length
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:658,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:659,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:663,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - custom_data
    - encoding
    - explicit_default
    argTypes:
    - TEST_CUSTOM_DATA*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 666
    functionName: make_custom_der
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - der_encode_length
    - memcpy
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: "size_t make_custom_der(const TEST_CUSTOM_DATA *custom_data,\n                              unsigned
      char **encoding, int explicit_default)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_custom_der
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:678,1
    - Dst: do_decode
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:684,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - custom_data
    - expected
    - expected_size
    - package
    argTypes:
    - TEST_CUSTOM_DATA*
    - EXPECTED*
    - size_t
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 689
    functionName: do_decode_custom
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - do_decode
    - make_custom_der
    linkageType: ''
    returnType: int
    signature: "int do_decode_custom(const TEST_CUSTOM_DATA *custom_data,\n                            const
      EXPECTED *expected, size_t expected_size,\n                            const
      TEST_PACKAGE *package)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_custom_der
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:697,1
    - Dst: do_encode
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:703,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - input
    - custom_data
    - package
    argTypes:
    - EXPECTED*
    - TEST_CUSTOM_DATA*
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 707
    functionName: do_encode_custom
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - make_custom_der
    - do_encode
    linkageType: ''
    returnType: int
    signature: "int do_encode_custom(EXPECTED *input,\n                            const
      TEST_CUSTOM_DATA *custom_data,\n                            const TEST_PACKAGE
      *package)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:712,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:716,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:717,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:720,1
    - Dst: ASN1_item_print
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:722,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - package
    argTypes:
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 709
    functionDepth: 3
    functionLinenumber: 709
    functionLinenumberEnd: 726
    functionName: do_print_item
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - OPENSSL_malloc
    - ASN1_ITEM_ptr
    - RAND_bytes
    - OPENSSL_free
    - ASN1_item_print
    linkageType: ''
    returnType: int
    signature: int do_print_item(const TEST_PACKAGE *package)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:741,1
    - Dst: do_encode_custom
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:745,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:749,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:751,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:755,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:757,1
    - Dst: OPENSSL_die
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:763,1
    - Dst: do_decode_custom
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:766,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:772,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:774,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:778,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:780,1
    - Dst: OPENSSL_die
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:786,1
    - Dst: do_enc_dec
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:795,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:800,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:802,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:806,1
    - Dst: OPENSSL_die
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:813,1
    - Dst: do_print_item
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:818,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:819,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:820,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 1
    argNames:
    - package
    argTypes:
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 825
    functionName: test_intern
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - do_decode_custom
    - OPENSSL_assert
    - do_enc_dec
    - OPENSSL_die
    - do_encode_custom
    - TEST_error
    - TEST_openssl_errors
    - do_print_item
    linkageType: ''
    returnType: int
    signature: int test_intern(const TEST_PACKAGE *package)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 831
    functionName: test_long_32bit
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_long_32bit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 833
    functionDepth: 5
    functionLinenumber: 833
    functionLinenumberEnd: 836
    functionName: test_long_64bit
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_long_64bit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 839
    functionDepth: 5
    functionLinenumber: 839
    functionLinenumberEnd: 842
    functionName: test_int32
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_int32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 844
    functionDepth: 5
    functionLinenumber: 844
    functionLinenumberEnd: 847
    functionName: test_uint32
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 849
    functionDepth: 5
    functionLinenumber: 849
    functionLinenumberEnd: 852
    functionName: test_int64
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_int64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 854
    functionDepth: 5
    functionLinenumber: 854
    functionLinenumberEnd: 857
    functionName: test_uint64
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_uint64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:862,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:863,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:865,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:866,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:867,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_encode_test.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 870
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:136,1
    - Dst: RSA_set0_key
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:136,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:137,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:138,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:142,1
    - Dst: RSA_set0_factors
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:142,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:143,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:144,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:147,1
    - Dst: RSA_set0_crt_params
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:147,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:148,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:149,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:150,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:154,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:155,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:156,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:157,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:157,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:157,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:160,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:161,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:162,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:163,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:163,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:163,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:166,1
    - Dst: RSA_set0_multi_prime_params
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:166,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:173,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:177,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:179,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:181,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 184
    functionName: key2048p3
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_mp_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - TEST_int_eq
    - RSA_set0_crt_params
    - RSA_set0_factors
    - RSA_set0_key
    - OPENSSL_free
    - BN_bin2bn
    - OPENSSL_zalloc
    - BN_free
    - RSA_set0_multi_prime_params
    linkageType: ''
    returnType: int
    signature: int key2048p3(RSA *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:198,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:199,1
    - Dst: key2048p3
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:201,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:202,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:205,1
    - Dst: RSA_check_key_ex
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:205,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:208,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:210,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:213,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:214,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:219,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 221
    functionName: test_rsa_mp
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_mp_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - RSA_public_encrypt
    - TEST_ptr
    - TEST_int_eq
    - RSA_private_decrypt
    - RSA_check_key_ex
    - TEST_mem_eq
    - RSA_free
    - RSA_new
    - key2048p3
    linkageType: ''
    returnType: int
    signature: int test_rsa_mp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/rsa_mp_test.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_mp_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/wpackettest.c
    functionUses: 49
    functionsReached:
    - WPACKET_cleanup
    linkageType: ''
    returnType: int
    signature: int cleanup(WPACKET *pkt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:51,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:51,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:52,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:52,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:54,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:54,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:56,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:56,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:61,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:61,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:62,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:63,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:63,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:64,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:65,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:68,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:69,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:70,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:71,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:71,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:72,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:76,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:76,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:77,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:77,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:78,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:78,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:79,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:79,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:80,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:81,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:83,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:83,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:84,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:90,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:90,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:93,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:93,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:94,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:97,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:97,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:99,1
    - Dst: WPACKET_put_bytes_u24
      Src: /src/openssl-1.1.1g/test/wpackettest.c:99,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:101,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:101,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:103,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:103,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:104,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:104,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:105,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:107,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:107,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:109,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/test/wpackettest.c:109,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:111,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:111,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:112,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:112,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:113,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:113,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:114,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:115,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 118
    functionName: test_WPACKET_init
    functionSourceFile: /src/openssl-1.1.1g/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - WPACKET_get_total_written
    - WPACKET_init_static_len
    - TEST_true
    - WPACKET_init
    - TEST_int_eq
    - WPACKET_put_bytes_u16
    - cleanup
    - TEST_false
    - WPACKET_close
    - TEST_mem_eq
    - WPACKET_put_bytes_u8
    - WPACKET_put_bytes_u24
    - WPACKET_finish
    - WPACKET_init_len
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:125,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:130,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-1.1.1g/test/wpackettest.c:130,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:132,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-1.1.1g/test/wpackettest.c:132,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:134,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-1.1.1g/test/wpackettest.c:134,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:135,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:135,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:136,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:138,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:138,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:143,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-1.1.1g/test/wpackettest.c:143,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:148,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-1.1.1g/test/wpackettest.c:148,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:150,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-1.1.1g/test/wpackettest.c:150,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:152,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-1.1.1g/test/wpackettest.c:152,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:154,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:154,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:156,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-1.1.1g/test/wpackettest.c:156,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:157,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:157,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:158,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:158,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:159,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:160,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:160,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:161,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:162,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 165
    functionName: test_WPACKET_set_max_size
    functionSourceFile: /src/openssl-1.1.1g/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - WPACKET_get_total_written
    - TEST_true
    - WPACKET_init
    - cleanup
    - WPACKET_set_max_size
    - TEST_false
    - TEST_mem_eq
    - WPACKET_put_bytes_u8
    - WPACKET_finish
    - WPACKET_init_len
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_set_max_size(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:173,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:173,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:174,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-1.1.1g/test/wpackettest.c:174,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:175,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:175,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:177,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:177,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:178,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:178,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:180,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:180,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:182,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:182,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:183,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:183,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:184,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:185,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:188,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:188,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:189,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:190,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:190,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:191,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:191,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:192,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:193,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:193,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:194,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:195,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:198,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:199,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:199,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:200,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:200,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:201,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:202,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:202,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:203,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/test/wpackettest.c:203,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:204,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:205,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:205,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:206,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/test/wpackettest.c:206,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:207,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:208,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:209,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:209,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:210,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:210,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:211,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:212,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:215,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:215,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:216,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:216,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:217,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:217,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:218,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:218,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:219,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:219,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:220,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:220,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:221,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:221,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:222,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:222,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:223,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:223,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:224,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:225,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:228,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:228,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:229,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:229,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:230,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:231,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:231,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:232,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:232,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:233,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/test/wpackettest.c:233,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:234,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:235,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:235,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:236,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/test/wpackettest.c:236,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:237,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:238,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:238,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:239,1
    - Dst: WPACKET_fill_lengths
      Src: /src/openssl-1.1.1g/test/wpackettest.c:239,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:240,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:240,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:241,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:242,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:242,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:243,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 246
    functionName: test_WPACKET_start_sub_packet
    functionSourceFile: /src/openssl-1.1.1g/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - WPACKET_get_total_written
    - WPACKET_get_length
    - TEST_true
    - WPACKET_init
    - cleanup
    - TEST_size_t_eq
    - WPACKET_start_sub_packet_u8
    - TEST_false
    - WPACKET_close
    - TEST_mem_eq
    - WPACKET_put_bytes_u8
    - WPACKET_start_sub_packet
    - WPACKET_fill_lengths
    - WPACKET_finish
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_start_sub_packet(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:255,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:255,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:256,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-1.1.1g/test/wpackettest.c:256,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:258,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:258,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:259,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:259,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:260,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:260,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:261,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:261,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:262,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:263,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:266,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:266,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:267,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-1.1.1g/test/wpackettest.c:267,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:268,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-1.1.1g/test/wpackettest.c:268,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/wpackettest.c:270,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:270,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:271,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:271,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:272,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:272,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:273,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:273,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:274,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:274,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:275,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:276,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:279,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:279,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:280,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-1.1.1g/test/wpackettest.c:280,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:281,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:281,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:282,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:282,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:283,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:284,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:287,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:287,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:288,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:288,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:289,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-1.1.1g/test/wpackettest.c:289,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:290,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:290,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:291,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:291,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:292,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:292,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:293,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:294,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:297,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/test/wpackettest.c:297,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:298,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:298,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:299,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-1.1.1g/test/wpackettest.c:299,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:300,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:300,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:301,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/test/wpackettest.c:301,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:302,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:302,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:303,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:303,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:304,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:305,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 307
    functionName: test_WPACKET_set_flags
    functionSourceFile: /src/openssl-1.1.1g/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - WPACKET_get_total_written
    - TEST_true
    - WPACKET_set_flags
    - WPACKET_init
    - cleanup
    - TEST_size_t_eq
    - WPACKET_start_sub_packet_u8
    - TEST_false
    - TEST_mem_eq
    - WPACKET_close
    - WPACKET_put_bytes_u8
    - WPACKET_start_sub_packet
    - WPACKET_finish
    - WPACKET_init_len
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_set_flags(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:315,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:315,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:316,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/test/wpackettest.c:316,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:317,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:320,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:320,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:321,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:321,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:322,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:323,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:326,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:326,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:327,1
    - Dst: WPACKET_sub_allocate_bytes_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:327,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:328,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:331,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:331,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:332,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:332,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:333,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:334,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 337
    functionName: test_WPACKET_allocate_bytes
    functionSourceFile: /src/openssl-1.1.1g/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - WPACKET_get_total_written
    - WPACKET_allocate_bytes
    - TEST_true
    - cleanup
    - TEST_mem_eq
    - WPACKET_sub_allocate_bytes_u8
    - WPACKET_finish
    - WPACKET_init_len
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_allocate_bytes(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:345,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:345,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:346,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/test/wpackettest.c:346,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:347,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:347,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:348,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:348,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:349,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:350,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:353,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/test/wpackettest.c:353,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:354,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/test/wpackettest.c:354,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:355,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/test/wpackettest.c:355,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/wpackettest.c:356,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/test/wpackettest.c:356,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/wpackettest.c:357,1
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/wpackettest.c:358,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 361
    functionName: test_WPACKET_memcpy
    functionSourceFile: /src/openssl-1.1.1g/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - WPACKET_get_total_written
    - WPACKET_sub_memcpy_u8
    - TEST_true
    - cleanup
    - TEST_mem_eq
    - WPACKET_finish
    - WPACKET_memcpy
    - WPACKET_init_len
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_memcpy(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/wpackettest.c:365,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/test/wpackettest.c:365,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/wpackettest.c:368,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/wpackettest.c:369,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/wpackettest.c:370,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/wpackettest.c:371,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/wpackettest.c:372,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/wpackettest.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 375
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - BUF_MEM_new
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/test/wpackettest.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get_ex_data
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - drbg
    - pout
    - entropy
    - min_len
    - max_len
    - prediction_resistance
    argTypes:
    - RAND_DRBG*
    - unsigned char**
    - int
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: kat_entropy
    functionSourceFile: /src/openssl-1.1.1g/test/drbg_cavs_test.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get_ex_data
    linkageType: ''
    returnType: size_t
    signature: "size_t kat_entropy(RAND_DRBG *drbg, unsigned char **pout,\n                          int
      entropy, size_t min_len, size_t max_len,\n                          int prediction_resistance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get_ex_data
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - drbg
    - pout
    - entropy
    - min_len
    - max_len
    argTypes:
    - RAND_DRBG*
    - unsigned char**
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: kat_nonce
    functionSourceFile: /src/openssl-1.1.1g/test/drbg_cavs_test.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get_ex_data
    linkageType: ''
    returnType: size_t
    signature: "size_t kat_nonce(RAND_DRBG *drbg, unsigned char **pout,\n                        int
      entropy, size_t min_len, size_t max_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:77,1
    - Dst: RAND_DRBG_new
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:77,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:80,1
    - Dst: RAND_DRBG_set_callbacks
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:80,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:85,1
    - Dst: RAND_DRBG_set_ex_data
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:90,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:92,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:96,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:96,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:97,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:97,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:99,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:99,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:101,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:101,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:107,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:108,1
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:109,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - td
    argTypes:
    - struct drbg_kat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 111
    functionName: single_kat_no_reseed
    functionSourceFile: /src/openssl-1.1.1g/test/drbg_cavs_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_true
    - RAND_DRBG_free
    - RAND_DRBG_set_ex_data
    - TEST_ptr
    - RAND_DRBG_uninstantiate
    - OPENSSL_free
    - RAND_DRBG_new
    - RAND_DRBG_instantiate
    - memset
    - RAND_DRBG_set_callbacks
    - TEST_mem_eq
    - RAND_DRBG_generate
    linkageType: ''
    returnType: int
    signature: int single_kat_no_reseed(const struct drbg_kat *td)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:136,1
    - Dst: RAND_DRBG_new
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:136,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:139,1
    - Dst: RAND_DRBG_set_callbacks
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:139,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:144,1
    - Dst: RAND_DRBG_set_ex_data
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:149,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:151,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:155,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:155,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:161,1
    - Dst: RAND_DRBG_reseed
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:161,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:162,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:162,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:164,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:164,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:166,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:166,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:167,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:172,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:173,1
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - td
    argTypes:
    - struct drbg_kat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 176
    functionName: single_kat_pr_false
    functionSourceFile: /src/openssl-1.1.1g/test/drbg_cavs_test.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_generate
    - OPENSSL_malloc
    - TEST_true
    - RAND_DRBG_free
    - RAND_DRBG_set_ex_data
    - TEST_ptr
    - RAND_DRBG_uninstantiate
    - OPENSSL_free
    - RAND_DRBG_new
    - RAND_DRBG_instantiate
    - memset
    - RAND_DRBG_set_callbacks
    - TEST_mem_eq
    - RAND_DRBG_reseed
    linkageType: ''
    returnType: int
    signature: int single_kat_pr_false(const struct drbg_kat *td)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:200,1
    - Dst: RAND_DRBG_new
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:200,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:203,1
    - Dst: RAND_DRBG_set_callbacks
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:203,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:208,1
    - Dst: RAND_DRBG_set_ex_data
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:213,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:215,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:219,1
    - Dst: RAND_DRBG_instantiate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:219,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:225,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:225,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:232,1
    - Dst: RAND_DRBG_generate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:232,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:234,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:234,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:235,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:240,1
    - Dst: RAND_DRBG_uninstantiate
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:241,1
    - Dst: RAND_DRBG_free
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:242,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - td
    argTypes:
    - struct drbg_kat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 244
    functionName: single_kat_pr_true
    functionSourceFile: /src/openssl-1.1.1g/test/drbg_cavs_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_true
    - RAND_DRBG_free
    - RAND_DRBG_set_ex_data
    - TEST_ptr
    - RAND_DRBG_uninstantiate
    - OPENSSL_free
    - RAND_DRBG_new
    - RAND_DRBG_instantiate
    - memset
    - RAND_DRBG_set_callbacks
    - TEST_mem_eq
    - RAND_DRBG_generate
    linkageType: ''
    returnType: int
    signature: int single_kat_pr_true(const struct drbg_kat *td)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: single_kat_no_reseed
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:253,1
    - Dst: single_kat_pr_false
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:257,1
    - Dst: single_kat_pr_true
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 246
    functionDepth: 6
    functionLinenumber: 246
    functionLinenumberEnd: 270
    functionName: test_cavs_kats
    functionSourceFile: /src/openssl-1.1.1g/test/drbg_cavs_test.c
    functionUses: 0
    functionsReached:
    - single_kat_pr_false
    - single_kat_no_reseed
    - single_kat_pr_true
    linkageType: ''
    returnType: int
    signature: int test_cavs_kats(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_DRBG_get_ex_new_index
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:274,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/drbg_cavs_test.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/drbg_cavs_test.c
    functionUses: 0
    functionsReached:
    - RAND_DRBG_get_ex_new_index
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:29,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:33,1
    - Dst: SSL_bytes_to_cipher_list
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:33,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:34,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:35,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:40,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: test_empty
    functionSourceFile: /src/openssl-1.1.1g/test/cipherbytes_test.c
    functionUses: 7
    functionsReached:
    - sk_SSL_CIPHER_free
    - SSL_bytes_to_cipher_list
    - TEST_int_eq
    - STACK_OF
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_empty(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:47,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:52,1
    - Dst: SSL_bytes_to_cipher_list
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:52,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:54,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:55,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:55,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:56,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:57,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:57,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:58,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:58,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:58,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:64,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 67
    functionName: test_unsupported
    functionSourceFile: /src/openssl-1.1.1g/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_free
    - SSL_bytes_to_cipher_list
    - TEST_true
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    - TEST_ptr
    - TEST_str_eq
    - TEST_int_eq
    - STACK_OF
    - SSL_CIPHER_get_name
    linkageType: ''
    returnType: int
    signature: int test_unsupported(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:78,1
    - Dst: SSL_bytes_to_cipher_list
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:78,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:80,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:81,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:81,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:82,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:83,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:83,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:85,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:85,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:85,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:87,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:87,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:87,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:94,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:95,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 97
    functionName: test_v2
    functionSourceFile: /src/openssl-1.1.1g/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_free
    - SSL_bytes_to_cipher_list
    - TEST_true
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    - strcmp
    - TEST_ptr
    - TEST_int_eq
    - STACK_OF
    - SSL_CIPHER_get_name
    linkageType: ''
    returnType: int
    signature: int test_v2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:101,1
    - Dst: SSL_bytes_to_cipher_list
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:108,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:109,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:110,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:110,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:111,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:112,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:112,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:113,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:113,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:113,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:115,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:115,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:115,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:117,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:117,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:117,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:119,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:119,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:119,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:121,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:121,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:121,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:127,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 130
    functionName: test_v3
    functionSourceFile: /src/openssl-1.1.1g/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_free
    - SSL_bytes_to_cipher_list
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    - TEST_ptr
    - TEST_str_eq
    - TEST_int_eq
    - STACK_OF
    - SSL_CIPHER_get_name
    linkageType: ''
    returnType: int
    signature: int test_v3(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:134,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:134,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:134,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:135,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:135,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:138,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:139,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:140,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - ADD_TEST
    - TEST_ptr
    - SSL_new
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:147,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/cipherbytes_test.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - SSL_free
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/d2i_test.c:55,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/d2i_test.c:56,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/d2i_test.c:60,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-1.1.1g/test/d2i_test.c:60,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/d2i_test.c:70,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/d2i_test.c:71,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-1.1.1g/test/d2i_test.c:74,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/d2i_test.c:76,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-1.1.1g/test/d2i_test.c:81,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/d2i_test.c:84,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/d2i_test.c:89,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/d2i_test.c:90,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/d2i_test.c:95,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/d2i_test.c:101,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/d2i_test.c:101,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/test/d2i_test.c:101,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/d2i_test.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/d2i_test.c:104,1
    - Dst: ASN1_item_free
      Src: /src/openssl-1.1.1g/test/d2i_test.c:105,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 107
    functionName: test_bad_asn1
    functionSourceFile: /src/openssl-1.1.1g/test/d2i_test.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i
    - TEST_int_ge
    - ERR_peek_error
    - memcmp
    - TEST_ptr
    - TEST_int_eq
    - OPENSSL_free
    - TEST_ptr_null
    - TEST_false
    - ASN1_item_d2i_bio
    - ERR_GET_REASON
    - BIO_free
    - ASN1_item_free
    - ASN1_item_i2d
    - BIO_new_file
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int test_bad_asn1(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/d2i_test.c:128,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/d2i_test.c:128,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/d2i_test.c:129,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/d2i_test.c:129,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/d2i_test.c:130,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/d2i_test.c:130,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/d2i_test.c:131,1
    - Dst: ASN1_ITEM_lookup
      Src: /src/openssl-1.1.1g/test/d2i_test.c:135,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/d2i_test.c:138,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/d2i_test.c:139,1
    - Dst: ASN1_ITEM_get
      Src: /src/openssl-1.1.1g/test/d2i_test.c:141,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/d2i_test.c:145,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/d2i_test.c:150,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/d2i_test.c:151,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/d2i_test.c:158,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/d2i_test.c:162,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 164
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/d2i_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_TEST
    - strcmp
    - TEST_ptr
    - test_get_argument
    - TEST_error
    - TEST_note
    - ASN1_ITEM_lookup
    - ASN1_ITEM_get
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:78,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:78,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:79,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:81,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:81,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:91,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:91,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:102,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:102,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:104,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:108,1
    - Dst: SSL_CTX_clear_options
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:110,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:117,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:117,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:125,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:127,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:127,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:137,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:138,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:142,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:143,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:144,1
    - Dst: PEM_read_bio_SSL_SESSION
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:147,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:148,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:149,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:156,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:156,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:156,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:157,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:157,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:161,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:161,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:162,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:162,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:163,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:163,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:164,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:165,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:169,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:170,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:173,1
    - Dst: SSL_set_session_ticket_ext
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:173,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:174,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:178,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:178,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:184,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:184,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:186,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:192,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:194,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:197,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:197,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:199,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:199,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:201,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:203,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:203,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:207,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:209,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:209,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:210,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:210,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:215,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:215,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:216,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:224,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:226,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:228,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:236,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:237,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:238,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:239,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 118
    argCount: 1
    argNames:
    - currtest
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 242
    functionName: test_client_hello
    functionSourceFile: /src/openssl-1.1.1g/test/clienthellotest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - SSL_set_session
    - SSL_CTX_set_cipher_list
    - PACKET_equal
    - PACKET_remaining
    - SSL_SESSION_free
    - PEM_read_bio_SSL_SESSION
    - BIO_s_mem
    - SSL_CTX_clear_options
    - SSL_set_session_ticket_ext
    - SSL_SESSION_set_time
    - SSL_set_connect_state
    - PACKET_forward
    - PACKET_get_net_2
    - PACKET_buf_init
    - TEST_true
    - SSL_connect
    - PACKET_as_length_prefixed_2
    - TEST_info
    - ERR_clear_error
    - time
    - SSL_CTX_set_ciphersuites
    - BIO_free
    - SSL_new
    - SSL_free
    - TLS_method
    - SSL_set_bio
    - SSL_CTX_set_max_proto_version
    - BIO_new_file
    - SSL_CTX_set_alpn_protos
    - BIO_get_mem_data
    - PACKET_get_length_prefixed_1
    - TEST_ptr
    - TEST_int_le
    - TEST_false
    - SSL_CTX_set_options
    - SSL_CTX_new
    - SSL_CTX_free
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_client_hello(int currtest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:246,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:246,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/clienthellotest.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/clienthellotest.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ssl2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:43,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:46,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:47,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:48,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:49,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:50,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:51,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:52,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: bio_f_watchccs_filter
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *bio_f_watchccs_filter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: watchccs_new
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int watchccs_new(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: watchccs_free
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int watchccs_free(BIO *bio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:73,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:80,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:82,1
    - Dst: BIO_should_read
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:83,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: watchccs_read
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_should_read
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_next
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int watchccs_read(BIO *bio, char *out, int outl)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:92,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:101,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:103,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:107,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:108,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:109,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:110,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:116,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:117,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:126,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:127,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:134,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:135,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:142,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:144,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:144,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:154,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:155,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:162,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:164,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:164,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:206,1
    - Dst: BIO_should_write
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:207,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:208,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 65
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 211
    functionName: watchccs_write
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_get_length_prefixed_1
    - PACKET_buf_init
    - BIO_write
    - PACKET_get_1
    - PACKET_get_length_prefixed_3
    - memcmp
    - PACKET_remaining
    - BIO_should_write
    - PACKET_copy_bytes
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - PACKET_forward
    - BIO_next
    - PACKET_data
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int watchccs_write(BIO *bio, const char *in, int inl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:216,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 230
    functionName: watchccs_ctrl
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long watchccs_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: watchccs_gets
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int watchccs_gets(BIO *bio, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: watchccs_write
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:240,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: watchccs_puts
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - watchccs_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int watchccs_puts(BIO *bio, const char *str)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:257,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:257,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:257,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:257,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:260,1
    - Dst: SSL_CTX_set_max_early_data
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:260,1
    - Dst: SSL_CTX_clear_options
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:288,1
    - Dst: SSL_CTX_clear_options
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:294,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:297,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:303,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:303,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:304,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:304,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:306,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:307,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:309,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:310,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:311,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:312,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:318,1
    - Dst: SSL_CTX_set1_groups_list
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:318,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:322,1
    - Dst: bio_f_watchccs_filter
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:322,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:323,1
    - Dst: bio_f_watchccs_filter
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:323,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:324,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:325,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:326,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:327,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:332,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:332,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:338,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:338,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:339,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:339,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:339,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:342,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:342,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:347,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:347,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:350,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:350,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:353,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:353,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:360,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:360,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:368,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:368,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:368,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:373,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:374,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:375,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:376,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:381,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:382,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:383,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:384,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:389,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:390,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:391,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:392,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:397,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:398,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:399,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:400,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:405,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:406,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:407,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:408,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:413,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:414,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:415,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:416,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:421,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:422,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:423,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:424,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:429,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:430,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:431,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:432,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:437,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:438,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:439,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:440,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:445,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:446,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:447,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:448,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:453,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:454,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:455,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:456,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:461,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:462,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:463,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:464,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:469,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:475,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:476,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:477,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:478,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:479,1
    CyclomaticComplexity: 117
    EdgeCount: 117
    ICount: 158
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 482
    functionName: test_tls13ccs
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - SSL_CTX_set_max_early_data
    - TLS_server_method
    - SSL_SESSION_free
    - TEST_size_t_eq
    - SSL_CTX_clear_options
    - SSL_get1_session
    - TEST_int_gt
    - TEST_size_t_gt
    - create_ssl_connection
    - TEST_true
    - SSL_connect
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - TEST_error
    - BIO_free
    - SSL_free
    - SSL_write_early_data
    - SSL_read_early_data
    - create_ssl_objects
    - SSL_CTX_set1_groups_list
    - TEST_ptr
    - SSL_shutdown
    - bio_f_watchccs_filter
    - TEST_int_le
    - TEST_false
    - SSL_CTX_free
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_tls13ccs(int tst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:486,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:486,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:487,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:487,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 493
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openssl-1.1.1g/test/tls13ccstest.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:21,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:21,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:22,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:22,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:23,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:23,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:24,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:24,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:25,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:25,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:26,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:26,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 30
    functionName: test_PACKET_remaining
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: int test_PACKET_remaining(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:36,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:36,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:37,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:37,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:38,1
    - Dst: PACKET_end
      Src: /src/openssl-1.1.1g/test/packettest.c:38,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:39,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:39,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:40,1
    - Dst: PACKET_end
      Src: /src/openssl-1.1.1g/test/packettest.c:40,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:41,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:41,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:42,1
    - Dst: PACKET_end
      Src: /src/openssl-1.1.1g/test/packettest.c:42,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: test_PACKET_end
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_ptr_eq
    - TEST_true
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_end
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: int test_PACKET_end(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:53,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:53,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:54,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/packettest.c:54,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:55,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:56,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:56,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:57,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/packettest.c:57,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:58,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:59,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/packettest.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: test_PACKET_get_1
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - PACKET_get_1
    - TEST_uint_eq
    - TEST_false
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:70,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:71,1
    - Dst: PACKET_get_4
      Src: /src/openssl-1.1.1g/test/packettest.c:71,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:73,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:74,1
    - Dst: PACKET_get_4
      Src: /src/openssl-1.1.1g/test/packettest.c:74,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:75,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:76,1
    - Dst: PACKET_get_4
      Src: /src/openssl-1.1.1g/test/packettest.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: test_PACKET_get_4
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - TEST_ulong_eq
    - TEST_false
    - PACKET_forward
    - PACKET_get_4
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_4(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:87,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:88,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/packettest.c:88,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:90,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:91,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/packettest.c:91,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:92,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:93,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/packettest.c:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: test_PACKET_get_net_2
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - TEST_uint_eq
    - TEST_false
    - PACKET_forward
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_net_2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:104,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:104,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:105,1
    - Dst: PACKET_get_net_3
      Src: /src/openssl-1.1.1g/test/packettest.c:105,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:106,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:107,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:107,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:108,1
    - Dst: PACKET_get_net_3
      Src: /src/openssl-1.1.1g/test/packettest.c:108,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:109,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:110,1
    - Dst: PACKET_get_net_3
      Src: /src/openssl-1.1.1g/test/packettest.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: test_PACKET_get_net_3
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - TEST_false
    - PACKET_forward
    - PACKET_get_net_3
    - TEST_ulong_eq
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_net_3(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:121,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:121,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:122,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/test/packettest.c:122,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:123,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:124,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:124,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:125,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/test/packettest.c:125,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:126,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:127,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/test/packettest.c:127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: test_PACKET_get_net_4
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - PACKET_get_net_4
    - TEST_true
    - TEST_false
    - PACKET_forward
    - TEST_ulong_eq
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_net_4(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:138,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:138,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:139,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-1.1.1g/test/packettest.c:139,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:140,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/test/packettest.c:140,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:141,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:142,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:142,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:143,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:143,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:144,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-1.1.1g/test/packettest.c:144,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:145,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/test/packettest.c:145,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:146,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:147,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:147,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:148,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-1.1.1g/test/packettest.c:148,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 152
    functionName: test_PACKET_get_sub_packet
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - PACKET_get_net_4
    - TEST_true
    - PACKET_get_sub_packet
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_false
    - PACKET_forward
    - TEST_ulong_eq
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_sub_packet(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:159,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:160,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/test/packettest.c:160,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:161,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:162,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:163,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:164,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:165,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:165,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:166,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:166,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:167,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/test/packettest.c:167,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:168,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:169,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:170,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:171,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:172,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:172,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 176
    functionName: test_PACKET_get_bytes
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - TEST_uchar_eq
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_get_bytes
    - TEST_false
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_bytes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:183,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:184,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/test/packettest.c:184,1
    - Dst: TEST_char_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:185,1
    - Dst: TEST_char_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:186,1
    - Dst: TEST_char_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:187,1
    - Dst: TEST_char_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:188,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:189,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:190,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:190,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:191,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/test/packettest.c:191,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:192,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:193,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:194,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:195,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:196,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:196,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 200
    functionName: test_PACKET_copy_bytes
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - TEST_uchar_eq
    - TEST_char_eq
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_copy_bytes
    - TEST_false
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: int test_PACKET_copy_bytes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:208,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:209,1
    - Dst: PACKET_copy_all
      Src: /src/openssl-1.1.1g/test/packettest.c:209,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:210,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:211,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:212,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:212,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:213,1
    - Dst: PACKET_copy_all
      Src: /src/openssl-1.1.1g/test/packettest.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: test_PACKET_copy_all
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_false
    - TEST_mem_eq
    - PACKET_copy_all
    linkageType: ''
    returnType: int
    signature: int test_PACKET_copy_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:226,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:226,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:227,1
    - Dst: PACKET_memdup
      Src: /src/openssl-1.1.1g/test/packettest.c:227,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:228,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:229,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/test/packettest.c:229,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:230,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:231,1
    - Dst: PACKET_memdup
      Src: /src/openssl-1.1.1g/test/packettest.c:231,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:232,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:233,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/test/packettest.c:233,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/packettest.c:237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 239
    functionName: test_PACKET_memdup
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - OPENSSL_free
    - TEST_size_t_eq
    - TEST_mem_eq
    - PACKET_memdup
    - PACKET_forward
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: int test_PACKET_memdup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/packettest.c:248,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/packettest.c:249,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:252,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:252,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:253,1
    - Dst: PACKET_strndup
      Src: /src/openssl-1.1.1g/test/packettest.c:253,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:254,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/packettest.c:254,1
    - Dst: TEST_strn_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:255,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:256,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:256,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:257,1
    - Dst: PACKET_strndup
      Src: /src/openssl-1.1.1g/test/packettest.c:257,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:258,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/packettest.c:258,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:259,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/packettest.c:264,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 266
    functionName: test_PACKET_strndup
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - TEST_strn_eq
    - TEST_str_eq
    - OPENSSL_free
    - PACKET_strndup
    - TEST_size_t_eq
    - memset
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_PACKET_strndup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/packettest.c:273,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/packettest.c:274,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:277,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:277,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:278,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openssl-1.1.1g/test/packettest.c:278,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:279,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:279,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:280,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openssl-1.1.1g/test/packettest.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: test_PACKET_contains_zero_byte
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_contains_zero_byte
    - PACKET_buf_init
    - TEST_true
    - TEST_false
    - memset
    linkageType: ''
    returnType: int
    signature: int test_PACKET_contains_zero_byte(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:291,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:291,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:292,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:292,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:293,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/test/packettest.c:293,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:294,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:295,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:295,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:296,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/test/packettest.c:296,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 301
    functionName: test_PACKET_forward
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - TEST_uchar_eq
    - PACKET_get_bytes
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: int test_PACKET_forward(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:309,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:309,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:310,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:310,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:311,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:311,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:312,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:312,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:313,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 317
    functionName: test_PACKET_buf_init
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_false
    linkageType: ''
    returnType: int
    signature: int test_PACKET_buf_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_null_init
      Src: /src/openssl-1.1.1g/test/packettest.c:323,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:324,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:324,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:325,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/packettest.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 329
    functionName: test_PACKET_null_init
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_null_init
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_false
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: int test_PACKET_null_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:335,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:335,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:336,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/test/packettest.c:336,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:337,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/test/packettest.c:337,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:338,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:338,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:339,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/test/packettest.c:339,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:340,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/test/packettest.c:340,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:341,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/test/packettest.c:341,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:342,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/test/packettest.c:342,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 346
    functionName: test_PACKET_equal
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_equal
    - TEST_false
    - PACKET_buf_init
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_equal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:359,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:359,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:360,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:360,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:361,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/packettest.c:361,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:362,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:362,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:363,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/packettest.c:363,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:364,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:365,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/packettest.c:365,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:366,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:366,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 370
    functionName: test_PACKET_get_length_prefixed_1
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_1
    - PACKET_buf_init
    - TEST_true
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_uint_eq
    - TEST_false
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_length_prefixed_1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:382,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:382,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:383,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:383,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:384,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/packettest.c:384,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:385,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:385,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:386,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/packettest.c:386,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:387,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:388,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/packettest.c:388,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:389,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 393
    functionName: test_PACKET_get_length_prefixed_2
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_buf_init
    - TEST_true
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_uint_eq
    - TEST_false
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_length_prefixed_2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:405,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:405,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:406,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:406,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:407,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-1.1.1g/test/packettest.c:407,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:408,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:408,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:409,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/packettest.c:409,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:410,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:411,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-1.1.1g/test/packettest.c:411,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:412,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:412,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 416
    functionName: test_PACKET_get_length_prefixed_3
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - PACKET_get_length_prefixed_3
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_uint_eq
    - TEST_false
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_length_prefixed_3(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:429,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:429,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:430,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:430,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:431,1
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/packettest.c:431,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:432,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:432,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:433,1
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/packettest.c:433,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:434,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:434,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:435,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:435,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 439
    functionName: test_PACKET_as_length_prefixed_1
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_as_length_prefixed_1
    - TEST_false
    linkageType: ''
    returnType: int
    signature: int test_PACKET_as_length_prefixed_1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:451,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:451,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:452,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/packettest.c:452,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/packettest.c:453,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/packettest.c:453,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:454,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:454,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/packettest.c:455,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/packettest.c:455,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:456,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:456,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/packettest.c:457,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/packettest.c:457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: test_PACKET_as_length_prefixed_2
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_true
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_as_length_prefixed_2
    - TEST_false
    linkageType: ''
    returnType: int
    signature: int test_PACKET_as_length_prefixed_2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:470,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:471,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:472,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:473,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:474,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:475,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:476,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:477,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:478,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:479,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:480,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:481,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:482,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:483,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:484,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:485,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:486,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:487,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:488,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:489,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:490,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:491,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/packettest.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 494
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/packettest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetLastError
      Src: /src/openssl-1.1.1g/test/errtest.c:25,1
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/test/errtest.c:26,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/errtest.c:27,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/test/errtest.c:27,1
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/test/errtest.c:30,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/errtest.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: preserves_system_error
    functionSourceFile: /src/openssl-1.1.1g/test/errtest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - SetLastError
    - GetLastError
    - ERR_get_error
    linkageType: ''
    returnType: int
    signature: int preserves_system_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/errtest.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/errtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ossl_typ.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:24,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:26,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:27,1
    - Dst: EVP_PKEY_CTX_set_tls1_prf_md
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:30,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:30,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:31,1
    - Dst: EVP_PKEY_CTX_set1_tls1_prf_secret
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:34,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:35,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:38,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:39,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:42,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:43,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:52,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:56,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 58
    functionName: test_kdf_tls1_prf
    functionSourceFile: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_tls1_prf_md
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_add1_tls1_prf_seed
    - TEST_error
    - TEST_mem_eq
    - EVP_PKEY_CTX_free
    - EVP_sha256
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_set1_tls1_prf_secret
    linkageType: ''
    returnType: int
    signature: int test_kdf_tls1_prf(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:65,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:67,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:68,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:71,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:71,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:72,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_salt
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:75,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:76,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:79,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:80,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:83,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:84,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:87,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:88,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:96,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 102
    functionName: test_kdf_hkdf
    functionSourceFile: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set1_hkdf_salt
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_set1_hkdf_key
    - TEST_error
    - EVP_PKEY_CTX_add1_hkdf_info
    - TEST_mem_eq
    - EVP_sha256
    - EVP_PKEY_CTX_free
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new_id
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:110,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:112,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:113,1
    - Dst: EVP_PKEY_CTX_set1_pbe_pass
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:116,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:117,1
    - Dst: EVP_PKEY_CTX_set1_scrypt_salt
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:120,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:121,1
    - Dst: EVP_PKEY_CTX_set_scrypt_N
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:124,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:125,1
    - Dst: EVP_PKEY_CTX_set_scrypt_r
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:128,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:129,1
    - Dst: EVP_PKEY_CTX_set_scrypt_p
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:132,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:133,1
    - Dst: EVP_PKEY_CTX_set_scrypt_maxmem_bytes
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:136,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:137,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:140,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:141,1
    - Dst: EVP_PKEY_CTX_set_scrypt_maxmem_bytes
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:144,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:145,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:148,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:149,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:164,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 170
    functionName: test_kdf_scrypt
    functionSourceFile: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_scrypt_p
    - EVP_PKEY_CTX_set_scrypt_N
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_set1_scrypt_salt
    - EVP_PKEY_CTX_set_scrypt_maxmem_bytes
    - EVP_PKEY_CTX_set1_pbe_pass
    - TEST_error
    - TEST_mem_eq
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_scrypt_r
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_derive
    linkageType: ''
    returnType: int
    signature: int test_kdf_scrypt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:175,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:176,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_complex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/gosttest.c:41,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/gosttest.c:41,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/gosttest.c:41,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/gosttest.c:42,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/gosttest.c:52,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/gosttest.c:52,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/gosttest.c:53,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/gosttest.c:53,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/gosttest.c:54,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/gosttest.c:54,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/gosttest.c:59,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/gosttest.c:59,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/gosttest.c:63,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/gosttest.c:63,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/gosttest.c:65,1
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/test/gosttest.c:65,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/gosttest.c:73,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/gosttest.c:74,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/gosttest.c:75,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/gosttest.c:76,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: test_tls13
    functionSourceFile: /src/openssl-1.1.1g/test/gosttest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - SSL_CTX_set_cipher_list
    - create_ssl_objects
    - SSL_version
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - TEST_false
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_tls13(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/gosttest.c:83,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/gosttest.c:83,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/gosttest.c:84,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/gosttest.c:84,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/gosttest.c:85,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/gosttest.c:85,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/gosttest.c:86,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/gosttest.c:86,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/gosttest.c:89,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/gosttest.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/gosttest.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ct_test.c:63,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/ct_test.c:63,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ct_test.c:67,1
    - Dst: CTLOG_STORE_new
      Src: /src/openssl-1.1.1g/test/ct_test.c:67,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ct_test.c:68,1
    - Dst: CTLOG_STORE_load_default_file
      Src: /src/openssl-1.1.1g/test/ct_test.c:69,1
    - Dst: CTLOG_STORE_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:75,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:76,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/ct_test.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: set_up
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - CTLOG_STORE_free
    - TEST_ptr
    - TEST_int_eq
    - OPENSSL_free
    - CTLOG_STORE_load_default_file
    - TEST_error
    - OPENSSL_zalloc
    - CTLOG_STORE_new
    linkageType: ''
    returnType: CT_TEST_FIXTURE
    signature: CT_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:84,1
    - Dst: SCT_LIST_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:85,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CT_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: tear_down
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SCT_LIST_free
    - OPENSSL_free
    - CTLOG_STORE_free
    linkageType: ''
    returnType: void
    signature: void tear_down(CT_TEST_FIXTURE *fixture)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_mk_file_path
      Src: /src/openssl-1.1.1g/test/ct_test.c:93,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/ct_test.c:96,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/ct_test.c:99,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:100,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dir
    - file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: load_pem_cert
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - test_mk_file_path
    - BIO_free
    - PEM_read_bio_X509
    - BIO_new_file
    linkageType: ''
    returnType: X509
    signature: X509 *load_pem_cert(const char *dir, const char *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_mk_file_path
      Src: /src/openssl-1.1.1g/test/ct_test.c:111,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/ct_test.c:114,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ct_test.c:117,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dir
    - file
    - buffer
    - buffer_length
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: read_text_file
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - test_mk_file_path
    - BIO_free
    - BIO_new_file
    - BIO_read
    linkageType: ''
    returnType: int
    signature: "int read_text_file(const char *dir, const char *file,\n                          char
      *buffer, int buffer_length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ct_test.c:158,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ct_test.c:158,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/ct_test.c:158,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ct_test.c:159,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-1.1.1g/test/ct_test.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ct_test.c:164,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ct_test.c:164,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/test/ct_test.c:167,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ct_test.c:168,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:174,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - extension
    - expected_output
    argTypes:
    - X509_EXTENSION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 176
    functionName: compare_extension_printout
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - BIO_get_mem_data
    - BIO_write
    - TEST_true
    - TEST_ptr
    - TEST_str_eq
    - BIO_s_mem
    - X509V3_EXT_print
    - BIO_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int compare_extension_printout(X509_EXTENSION *extension,\n                                      const
      char *expected_output)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/ct_test.c:223,1
    - Dst: CT_POLICY_EVAL_CTX_new
      Src: /src/openssl-1.1.1g/test/ct_test.c:229,1
    - Dst: read_text_file
      Src: /src/openssl-1.1.1g/test/ct_test.c:232,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/ct_test.c:236,1
    - Dst: CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
      Src: /src/openssl-1.1.1g/test/ct_test.c:241,1
    - Dst: CT_POLICY_EVAL_CTX_set_time
      Src: /src/openssl-1.1.1g/test/ct_test.c:244,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ct_test.c:251,1
    - Dst: load_pem_cert
      Src: /src/openssl-1.1.1g/test/ct_test.c:251,1
    - Dst: CT_POLICY_EVAL_CTX_set1_cert
      Src: /src/openssl-1.1.1g/test/ct_test.c:255,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ct_test.c:258,1
    - Dst: load_pem_cert
      Src: /src/openssl-1.1.1g/test/ct_test.c:258,1
    - Dst: CT_POLICY_EVAL_CTX_set1_issuer
      Src: /src/openssl-1.1.1g/test/ct_test.c:261,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-1.1.1g/test/ct_test.c:265,1
    - Dst: X509_get_ext
      Src: /src/openssl-1.1.1g/test/ct_test.c:266,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ct_test.c:268,1
    - Dst: compare_extension_printout
      Src: /src/openssl-1.1.1g/test/ct_test.c:272,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openssl-1.1.1g/test/ct_test.c:276,1
    - Dst: sk_SCT_num
      Src: /src/openssl-1.1.1g/test/ct_test.c:277,1
    - Dst: sk_SCT_value
      Src: /src/openssl-1.1.1g/test/ct_test.c:278,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ct_test.c:280,1
    - Dst: SCT_get_source
      Src: /src/openssl-1.1.1g/test/ct_test.c:280,1
    - Dst: assert_validity
      Src: /src/openssl-1.1.1g/test/ct_test.c:287,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/ct_test.c:290,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ct_test.c:298,1
    - Dst: o2i_SCT_LIST
      Src: /src/openssl-1.1.1g/test/ct_test.c:298,1
    - Dst: assert_validity
      Src: /src/openssl-1.1.1g/test/ct_test.c:302,1
    - Dst: compare_sct_list_printout
      Src: /src/openssl-1.1.1g/test/ct_test.c:307,1
    - Dst: i2o_SCT_LIST
      Src: /src/openssl-1.1.1g/test/ct_test.c:311,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/ct_test.c:312,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:319,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:320,1
    - Dst: SCT_LIST_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:321,1
    - Dst: SCT_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:322,1
    - Dst: CT_POLICY_EVAL_CTX_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:323,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:324,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 77
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CT_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 219
    functionDepth: 5
    functionLinenumber: 219
    functionLinenumberEnd: 326
    functionName: execute_cert_test
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - o2i_SCT_LIST
    - CT_POLICY_EVAL_CTX_set_time
    - sk_SCT_num
    - STACK_OF
    - CT_POLICY_EVAL_CTX_new
    - CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
    - read_text_file
    - X509_free
    - TEST_int_ge
    - X509_get_ext
    - X509V3_EXT_d2i
    - TEST_int_eq
    - OPENSSL_free
    - X509_get_ext_by_NID
    - load_pem_cert
    - TEST_mem_eq
    - assert_validity
    - compare_sct_list_printout
    - SCT_LIST_free
    - sk_SCT_value
    - SCT_get_source
    - TEST_ptr_null
    - CT_POLICY_EVAL_CTX_free
    - i2o_SCT_LIST
    - CT_POLICY_EVAL_CTX_set1_issuer
    - TEST_ptr
    - CT_POLICY_EVAL_CTX_set1_cert
    - compare_extension_printout
    - SCT_free
    linkageType: ''
    returnType: int
    signature: int execute_cert_test(CT_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: SETUP_CT_TEST_FIXTURE
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETUP_CT_TEST_FIXTURE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: EXECUTE_CT_TEST
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXECUTE_CT_TEST()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ct_test.c:333,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 342
    functionName: test_no_scts_in_certificate
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_CT_TEST
    - SETUP_CT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_no_scts_in_certificate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ct_test.c:346,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: test_one_sct_in_certificate
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_CT_TEST
    - SETUP_CT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_one_sct_in_certificate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ct_test.c:361,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 372
    functionName: test_multiple_scts_in_certificate
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_CT_TEST
    - SETUP_CT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_multiple_scts_in_certificate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ct_test.c:376,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 386
    functionName: test_verify_one_sct
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_CT_TEST
    - SETUP_CT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_verify_one_sct(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ct_test.c:390,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: test_verify_multiple_scts
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_CT_TEST
    - SETUP_CT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_verify_multiple_scts(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ct_test.c:404,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 416
    functionName: test_verify_fails_for_future_sct
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_CT_TEST
    - SETUP_CT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_verify_fails_for_future_sct(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ct_test.c:438,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 447
    functionName: test_decode_tls_sct
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_CT_TEST
    - SETUP_CT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_decode_tls_sct(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ct_test.c:458,1
    - Dst: sk_SCT_new_null
      Src: /src/openssl-1.1.1g/test/ct_test.c:462,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ct_test.c:463,1
    - Dst: SCT_new_from_base64
      Src: /src/openssl-1.1.1g/test/ct_test.c:463,1
    - Dst: sk_SCT_push
      Src: /src/openssl-1.1.1g/test/ct_test.c:469,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 449
    functionDepth: 5
    functionLinenumber: 449
    functionLinenumberEnd: 474
    functionName: test_encode_tls_sct
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SCT_new_from_base64
    - TEST_ptr
    - sk_SCT_new_null
    - EXECUTE_CT_TEST
    - sk_SCT_push
    - SETUP_CT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_encode_tls_sct(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CT_POLICY_EVAL_CTX_new
      Src: /src/openssl-1.1.1g/test/ct_test.c:483,1
    - Dst: CT_POLICY_EVAL_CTX_get_time
      Src: /src/openssl-1.1.1g/test/ct_test.c:485,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-1.1.1g/test/ct_test.c:488,1
    - Dst: abs
      Src: /src/openssl-1.1.1g/test/ct_test.c:488,1
    - Dst: difftime
      Src: /src/openssl-1.1.1g/test/ct_test.c:488,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/ct_test.c:488,1
    - Dst: CT_POLICY_EVAL_CTX_free
      Src: /src/openssl-1.1.1g/test/ct_test.c:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 496
    functionName: test_default_ct_policy_eval_ctx_time_is_now
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 1
    functionsReached:
    - time
    - CT_POLICY_EVAL_CTX_free
    - CT_POLICY_EVAL_CTX_new
    - TEST_time_t_le
    - difftime
    - CT_POLICY_EVAL_CTX_get_time
    - abs
    linkageType: ''
    returnType: int
    signature: int test_default_ct_policy_eval_ctx_time_is_now(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ct_test.c:506,1
    - Dst: CTLOG_new_from_base64
      Src: /src/openssl-1.1.1g/test/ct_test.c:506,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ct_test.c:507,1
    - Dst: CTLOG_new_from_base64
      Src: /src/openssl-1.1.1g/test/ct_test.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 8
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: test_ctlog_from_base64
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - CTLOG_new_from_base64
    linkageType: ''
    returnType: int
    signature: int test_ctlog_from_base64(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/test/ct_test.c:516,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/test/ct_test.c:518,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:521,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:522,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:523,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:524,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:525,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:526,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:527,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:528,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:529,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ct_test.c:530,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ct_test.c:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 535
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ct_test.c
    functionUses: 0
    functionsReached:
    - getenv
    - ADD_TEST
    - printf
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_blowfish.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openssl-1.1.1g/test/rc4test.c:63,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/rc4test.c:64,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/test/rc4test.c:65,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc4test.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: test_rc4_encrypt
    functionSourceFile: /src/openssl-1.1.1g/test/rc4test.c
    functionUses: 0
    functionsReached:
    - RC4_set_key
    - RC4
    - TEST_mem_eq
    - memset
    linkageType: ''
    returnType: int
    signature: int test_rc4_encrypt(const int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openssl-1.1.1g/test/rc4test.c:74,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/rc4test.c:75,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/test/rc4test.c:76,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc4test.c:77,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/rc4test.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: test_rc4_end_processing
    functionSourceFile: /src/openssl-1.1.1g/test/rc4test.c
    functionUses: 0
    functionsReached:
    - TEST_uchar_eq
    - RC4_set_key
    - TEST_mem_eq
    - memset
    - RC4
    linkageType: ''
    returnType: int
    signature: int test_rc4_end_processing(const int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openssl-1.1.1g/test/rc4test.c:87,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/rc4test.c:88,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/test/rc4test.c:89,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/test/rc4test.c:90,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc4test.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: test_rc4_multi_call
    functionSourceFile: /src/openssl-1.1.1g/test/rc4test.c
    functionUses: 0
    functionsReached:
    - RC4_set_key
    - RC4
    - TEST_mem_eq
    - memset
    linkageType: ''
    returnType: int
    signature: int test_rc4_multi_call(const int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openssl-1.1.1g/test/rc4test.c:106,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/rc4test.c:107,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/test/rc4test.c:108,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/test/rc4test.c:110,1
    - Dst: SHA1_Update
      Src: /src/openssl-1.1.1g/test/rc4test.c:111,1
    - Dst: SHA1_Final
      Src: /src/openssl-1.1.1g/test/rc4test.c:113,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rc4test.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: test_rc_bulk
    functionSourceFile: /src/openssl-1.1.1g/test/rc4test.c
    functionUses: 0
    functionsReached:
    - RC4_set_key
    - SHA1_Final
    - SHA1_Update
    - SHA1_Init
    - memset
    - TEST_mem_eq
    - RC4
    linkageType: ''
    returnType: int
    signature: int test_rc_bulk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/rc4test.c:122,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/rc4test.c:122,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/rc4test.c:123,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/rc4test.c:124,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/rc4test.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/rc4test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SM4_set_key
      Src: /src/openssl-1.1.1g/test/sm4_internal_test.c:57,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/sm4_internal_test.c:58,1
    - Dst: SM4_encrypt
      Src: /src/openssl-1.1.1g/test/sm4_internal_test.c:60,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sm4_internal_test.c:61,1
    - Dst: SM4_encrypt
      Src: /src/openssl-1.1.1g/test/sm4_internal_test.c:65,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sm4_internal_test.c:67,1
    - Dst: SM4_decrypt
      Src: /src/openssl-1.1.1g/test/sm4_internal_test.c:71,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sm4_internal_test.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 77
    functionName: test_sm4_ecb
    functionSourceFile: /src/openssl-1.1.1g/test/sm4_internal_test.c
    functionUses: 0
    functionsReached:
    - SM4_decrypt
    - SM4_set_key
    - memcpy
    - TEST_mem_eq
    - SM4_encrypt
    linkageType: ''
    returnType: int
    signature: int test_sm4_ecb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sm4_internal_test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sm4_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_rc4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:30,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ssl
    - hint
    - ident
    - max_ident_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: clnt_psk_callback
    functionSourceFile: /src/openssl-1.1.1g/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - memset
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int clnt_psk_callback(SSL *ssl, const char *hint,\n                                      char
      *ident, unsigned int max_ident_len,\n                                      unsigned
      char *psk,\n                                      unsigned int max_psk_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ssl
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: srvr_psk_callback
    functionSourceFile: /src/openssl-1.1.1g/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int srvr_psk_callback(SSL *ssl, const char *identity,\n                                      unsigned
      char *psk,\n                                      unsigned int max_psk_len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:59,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:61,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:61,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:66,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:68,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:69,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:69,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:70,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:71,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:71,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:76,1
    - Dst: SSL_set_mtu
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:81,1
    - Dst: DTLS_get_data_mtu
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:82,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:84,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:87,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:88,1
    - Dst: SSL_set_mtu
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:94,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:103,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:103,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:105,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:107,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:112,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:117,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:122,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:128,1
    - Dst: SSL_READ_ETM
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:136,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:139,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:140,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 3
    argNames:
    - ctx
    - cs
    - no_etm
    argTypes:
    - SSL_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 142
    functionName: mtu_test
    functionSourceFile: /src/openssl-1.1.1g/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - SSL_write
    - SSL_READ_ETM
    - create_ssl_connection
    - TEST_true
    - TEST_int_eq
    - TEST_info
    - TEST_error
    - SSL_free
    - BIO_read
    - TEST_size_t_ne
    - SSL_set_mtu
    - create_ssl_objects
    - DTLS_get_data_mtu
    - SSL_set_cipher_list
    - TEST_ptr
    - SSL_set_options
    - TEST_false
    - memset
    - SSL_get_rbio
    linkageType: ''
    returnType: int
    signature: int mtu_test(SSL_CTX *ctx, const char *cs, int no_etm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:147,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:150,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:150,1
    - Dst: DTLS_method
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:150,1
    - Dst: SSL_CTX_set_psk_server_callback
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:153,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:154,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:155,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:162,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:162,1
    - Dst: SSL_CTX_get_ciphers
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:165,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:166,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:167,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:168,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:171,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:174,1
    - Dst: mtu_test
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:174,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:176,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:181,1
    - Dst: mtu_test
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:181,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:183,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:187,1
    - Dst: bio_s_mempacket_test_free
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:188,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 190
    functionName: run_mtu_tests
    functionSourceFile: /src/openssl-1.1.1g/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - sk_SSL_CIPHER_value
    - SSL_CTX_set_security_level
    - STACK_OF
    - TEST_int_gt
    - SSL_CIPHER_get_name
    - TEST_true
    - SSL_CTX_set_psk_client_callback
    - TEST_info
    - strncmp
    - sk_SSL_CIPHER_num
    - SSL_CTX_get_ciphers
    - mtu_test
    - bio_s_mempacket_test_free
    - DTLS_method
    - SSL_CTX_set_psk_server_callback
    - TEST_ptr
    - SSL_CTX_new
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int run_mtu_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dtls_mtu_test.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - test_function
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ADD_TEST
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TEST(test_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test_function
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: ADD_ALL_TESTS
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ALL_TESTS(test_function, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test_function
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: ADD_ALL_TESTS_NOSUBTEST
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ALL_TESTS_NOSUBTEST(test_function, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TEST_FIXTURE_TYPE
    - ','
    - set_up
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: SETUP_TEST_FIXTURE
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETUP_TEST_FIXTURE(TEST_FIXTURE_TYPE, set_up)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - execute_func
    - ','
    - tear_down
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: EXECUTE_TEST
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXECUTE_TEST(execute_func, tear_down)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: testutil_stringify_helper
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testutil_stringify_helper(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: testutil_stringify
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testutil_stringify(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: PRINTF_FORMAT
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTF_FORMAT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - opname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: DECLARE_COMPARISON
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_COMPARISON(type, name, opname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: DECLARE_COMPARISONS
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_COMPARISONS(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: TEST_int_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 83
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: TEST_int_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: TEST_int_lt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: TEST_int_le
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: TEST_int_gt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: TEST_int_ge
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: TEST_uint_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: TEST_uint_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: TEST_uint_lt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: TEST_uint_le
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: TEST_uint_gt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: TEST_uint_ge
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: TEST_char_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: TEST_char_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: TEST_char_lt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: TEST_char_le
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: TEST_char_gt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: TEST_char_ge
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: TEST_uchar_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: TEST_uchar_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: TEST_uchar_lt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: TEST_uchar_le
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: TEST_uchar_gt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: TEST_uchar_ge
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: TEST_long_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: TEST_long_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: TEST_long_lt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: TEST_long_le
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: TEST_long_gt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: TEST_long_ge
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: TEST_ulong_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: TEST_ulong_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: TEST_ulong_lt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: TEST_ulong_le
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: TEST_ulong_gt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: TEST_ulong_ge
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: TEST_size_t_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: TEST_size_t_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: TEST_size_t_lt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: TEST_size_t_le
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: TEST_size_t_gt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: TEST_size_t_ge
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: TEST_time_t_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: TEST_time_t_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: TEST_time_t_lt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: TEST_time_t_le
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: TEST_time_t_gt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: TEST_time_t_ge
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: TEST_ptr_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ptr_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: TEST_ptr_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ptr_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: TEST_ptr
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 144
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ptr(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: TEST_ptr_null
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ptr_null(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: TEST_str_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_str_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: TEST_str_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_str_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: TEST_strn_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_strn_eq(a, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: TEST_strn_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_strn_ne(a, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - m
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: TEST_mem_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_mem_eq(a, m, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - m
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: TEST_mem_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_mem_ne(a, m, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: TEST_true
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 159
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_true(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: TEST_false
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_false(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: TEST_BN_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: TEST_BN_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: TEST_BN_lt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: TEST_BN_gt
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: TEST_BN_le
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: TEST_BN_ge
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: TEST_BN_eq_zero
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_eq_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: TEST_BN_ne_zero
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_ne_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: TEST_BN_lt_zero
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_lt_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: TEST_BN_gt_zero
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_gt_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: TEST_BN_le_zero
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_le_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: TEST_BN_ge_zero
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_ge_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: TEST_BN_eq_one
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_eq_one(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: TEST_BN_eq_word
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_eq_word(a, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: TEST_BN_abs_eq_word
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_abs_eq_word(a, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: TEST_BN_odd
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_odd(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: TEST_BN_even
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_even(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: TEST_error
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_error(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 391
    functionName: TEST_info
    functionSourceFile: /src/openssl-1.1.1g/test/testutil.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_info(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: CTS128_TEST_VECTOR
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTS128_TEST_VECTOR(len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: cts128_encrypt_key_schedule
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    linkageType: ''
    returnType: AES_KEY
    signature: AES_KEY *cts128_encrypt_key_schedule(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: cts128_decrypt_key_schedule
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - AES_set_decrypt_key
    linkageType: ''
    returnType: AES_KEY
    signature: AES_KEY *cts128_decrypt_key_schedule(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - in
    - out
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: last_blocks_correction
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t last_blocks_correction(const unsigned char *in,\n                                     unsigned
      char *out, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:167,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:169,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - in
    - out
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: last_blocks_correction_nist
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t last_blocks_correction_nist(const unsigned char *in,\n                                          unsigned
      char *out, size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cts128_encrypt_key_schedule
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:184,1
    - Dst: cts128_decrypt_key_schedule
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:185,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:191,1
    - Dst: CTS128_FIXTURE*::last_blocks_correction
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:193,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:196,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:197,1
    - Dst: CTS128_FIXTURE*::encrypt_block
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:197,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:200,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:201,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:205,1
    - Dst: CTS128_FIXTURE*::decrypt_block
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:206,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:209,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:210,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:211,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:215,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:216,1
    - Dst: CTS128_FIXTURE*::encrypt_stream
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:216,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:220,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:221,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:225,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:226,1
    - Dst: CTS128_FIXTURE*::decrypt_stream
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:226,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:230,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:231,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 2
    argNames:
    - fixture
    - num
    argTypes:
    - CTS128_FIXTURE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 235
    functionName: execute_cts128
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - cts128_decrypt_key_schedule
    - CTS128_FIXTURE*::decrypt_stream
    - TEST_size_t_eq
    - memcpy
    - CTS128_FIXTURE*::encrypt_stream
    - CTS128_FIXTURE*::decrypt_block
    - TEST_info
    - CTS128_FIXTURE*::encrypt_block
    - TEST_mem_eq
    - CTS128_FIXTURE*::last_blocks_correction
    - cts128_encrypt_key_schedule
    linkageType: ''
    returnType: int
    signature: int execute_cts128(const CTS128_FIXTURE *fixture, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_cts128
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 246
    functionName: test_aes_cts128
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - execute_cts128
    linkageType: ''
    returnType: int
    signature: int test_aes_cts128(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_cts128
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: test_aes_cts128_nist
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - execute_cts128
    linkageType: ''
    returnType: int
    signature: int test_aes_cts128_nist(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 808
    functionName: GCM128_TEST_VECTOR
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM128_TEST_VECTOR(n)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:858,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:860,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:861,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:862,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:864,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:866,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:867,1
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:867,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:869,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:872,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:873,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:875,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:877,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:878,1
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:878,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:880,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 884
    functionName: test_gcm128
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_finish
    - CRYPTO_gcm128_encrypt
    - AES_set_encrypt_key
    - CRYPTO_gcm128_setiv
    - TEST_false
    - memset
    - TEST_mem_eq
    - CRYPTO_gcm128_init
    - CRYPTO_gcm128_decrypt
    - CRYPTO_gcm128_aad
    linkageType: ''
    returnType: int
    signature: int test_gcm128(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:888,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:888,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:889,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:889,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:890,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/modes_internal_test.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 892
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:24,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:28,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:34,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:36,1
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:40,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:42,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:43,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:44,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:45,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:52,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:56,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 59
    functionName: load_certs_from_file
    functionSourceFile: /src/openssl-1.1.1g/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - sk_X509_push
    - sk_X509_new_null
    - STACK_OF
    - ERR_set_mark
    - ERR_pop_to_mark
    - BIO_free
    - PEM_read_bio_X509
    - sk_X509_pop_free
    - BIO_new_file
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *load_certs_from_file(const char *filename)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:95,1
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:101,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:105,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:105,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:108,1
    - Dst: load_certs_from_file
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:111,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:113,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:116,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:119,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:123,1
    - Dst: X509_verify_cert
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:126,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:128,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:133,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:134,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:135,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:136,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:137,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 139
    functionName: test_alt_chains_cert_forgery
    functionSourceFile: /src/openssl-1.1.1g/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - X509_free
    - load_certs_from_file
    - X509_STORE_free
    - X509_STORE_CTX_get_error
    - X509_LOOKUP_file
    - X509_STORE_CTX_init
    - X509_STORE_CTX_free
    - X509_STORE_add_lookup
    - STACK_OF
    - X509_verify_cert
    - sk_X509_pop_free
    - PEM_read_bio_X509
    - X509_STORE_new
    - X509_STORE_CTX_new
    - BIO_free
    - X509_LOOKUP_load_file
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_alt_chains_cert_forgery(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:148,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:152,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:156,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:160,1
    - Dst: X509_verify_cert
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:164,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:172,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:173,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 141
    functionDepth: 6
    functionLinenumber: 141
    functionLinenumberEnd: 176
    functionName: test_store_ctx
    functionSourceFile: /src/openssl-1.1.1g/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_STORE_CTX_init
    - X509_STORE_CTX_free
    - X509_verify_cert
    - PEM_read_bio_X509
    - X509_STORE_CTX_new
    - BIO_free
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_store_ctx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:180,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:180,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:181,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:181,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:182,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:182,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:183,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:187,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/verify_extra_test.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - TEST_error
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:221,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:227,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:235,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:236,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*[]
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 248
    functionName: multihexstr2buf
    functionSourceFile: /src/openssl-1.1.1g/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - OPENSSL_hexchar2int
    - strlen
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *multihexstr2buf(const char *str[3], size_t *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:256,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:257,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:258,1
    - Dst: multihexstr2buf
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:259,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:264,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:270,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:271,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:272,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:273,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:274,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:275,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:279,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:281,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:282,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - rec
    - recd
    - key
    - iv
    - ivlen
    - seq
    argTypes:
    - SSL3_RECORD*
    - RECORD_DATA*
    - unsigned char**
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 285
    functionName: load_record
    functionSourceFile: /src/openssl-1.1.1g/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - memcpy
    - OPENSSL_hexstr2buf
    - multihexstr2buf
    linkageType: ''
    returnType: int
    signature: "int load_record(SSL3_RECORD *rec, RECORD_DATA *recd, unsigned char
      **key,\n                       unsigned char *iv, size_t ivlen, unsigned char
      *seq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: multihexstr2buf
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:294,1
    - Dst: multihexstr2buf
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:296,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:298,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:299,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:303,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - rec
    - recd
    - enc
    argTypes:
    - SSL3_RECORD*
    - RECORD_DATA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 311
    functionName: test_record
    functionSourceFile: /src/openssl-1.1.1g/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - OPENSSL_free
    - TEST_info
    - TEST_mem_eq
    - multihexstr2buf
    linkageType: ''
    returnType: int
    signature: int test_record(SSL3_RECORD *rec, RECORD_DATA *recd, int enc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:321,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:333,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:333,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:334,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:335,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:339,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:340,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:341,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:345,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:346,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:349,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:350,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:353,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:354,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:355,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:359,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:361,1
    - Dst: load_record
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:362,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:363,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:364,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:369,1
    - Dst: RECORD_LAYER_get_write_sequence
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:369,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:370,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:371,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:374,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:375,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:377,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:382,1
    - Dst: tls13_enc
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:382,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:383,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:386,1
    - Dst: test_record
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:386,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:387,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:392,1
    - Dst: tls13_enc
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:392,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:393,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:396,1
    - Dst: test_record
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:396,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:397,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:401,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:402,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:403,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:404,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:411,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:415,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:416,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:417,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:418,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:419,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:420,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 422
    functionName: test_tls13_encryption
    functionSourceFile: /src/openssl-1.1.1g/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_eq
    - RECORD_LAYER_get_read_sequence
    - TEST_true
    - TEST_int_eq
    - OPENSSL_free
    - memcpy
    - RECORD_LAYER_get_write_sequence
    - TEST_info
    - TEST_error
    - SSL_new
    - SSL_free
    - EVP_CipherInit_ex
    - TLS_method
    - OSSL_NELEM
    - EVP_CIPHER_CTX_new
    - load_record
    - EVP_CIPHER_iv_length
    - EVP_aes_128_gcm
    - tls13_enc
    - TEST_ptr
    - SSL_CIPHER_find
    - test_record
    - TEST_note
    - SSL_CTX_new
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_tls13_encryption(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/tls13encryptiontest.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:27,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:28,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:29,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:36,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:37,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:40,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:41,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:44,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 48
    functionName: test_asn1_meths
    functionSourceFile: /src/openssl-1.1.1g/test/pkey_meth_test.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - EVP_PKEY_asn1_get0
    - EVP_PKEY_asn1_get_count
    - TEST_error
    - TEST_note
    - EVP_PKEY_asn1_get0_info
    linkageType: ''
    returnType: int
    signature: int test_asn1_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_count
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:59,1
    - Dst: EVP_PKEY_meth_get0
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:60,1
    - Dst: EVP_PKEY_meth_get0_info
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:61,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:68,1
    - Dst: EVP_PKEY_meth_get_count
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:69,1
    - Dst: EVP_PKEY_meth_get0
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:70,1
    - Dst: EVP_PKEY_meth_get0_info
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:71,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:72,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: test_pkey_meths
    functionSourceFile: /src/openssl-1.1.1g/test/pkey_meth_test.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - TEST_error
    - TEST_note
    - EVP_PKEY_meth_get0_info
    - EVP_PKEY_meth_get_count
    - EVP_PKEY_meth_get0
    linkageType: ''
    returnType: int
    signature: int test_pkey_meths(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:80,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/pkey_meth_test.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/pkey_meth_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Init
      Src: /src/openssl-1.1.1g/test/mdc2_internal_test.c:53,1
    - Dst: MDC2_Update
      Src: /src/openssl-1.1.1g/test/mdc2_internal_test.c:54,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/mdc2_internal_test.c:55,1
    - Dst: MDC2_Final
      Src: /src/openssl-1.1.1g/test/mdc2_internal_test.c:56,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/mdc2_internal_test.c:58,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/mdc2_internal_test.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: test_mdc2
    functionSourceFile: /src/openssl-1.1.1g/test/mdc2_internal_test.c
    functionUses: 0
    functionsReached:
    - MDC2_Update
    - MDC2_Init
    - MDC2_Final
    - TEST_info
    - TEST_mem_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_mdc2(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/mdc2_internal_test.c:69,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/mdc2_internal_test.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/mdc2_internal_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/md2test.c:49,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/test/md2test.c:49,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/md2test.c:49,1
    - Dst: EVP_md2
      Src: /src/openssl-1.1.1g/test/md2test.c:50,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/test/md2test.c:54,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/md2test.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: test_md2
    functionSourceFile: /src/openssl-1.1.1g/test/md2test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_md2
    - TEST_str_eq
    - EVP_Digest
    - sprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_md2(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/md2test.c:64,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/md2test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/md2test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/mdc2test.c:43,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/test/mdc2test.c:46,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/mdc2test.c:49,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/mdc2test.c:50,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/mdc2test.c:51,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/test/mdc2test.c:51,1
    - Dst: EVP_mdc2
      Src: /src/openssl-1.1.1g/test/mdc2test.c:51,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/mdc2test.c:52,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/test/mdc2test.c:52,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/mdc2test.c:53,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/test/mdc2test.c:53,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/mdc2test.c:54,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/mdc2test.c:55,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/test/mdc2test.c:55,1
    - Dst: EVP_mdc2
      Src: /src/openssl-1.1.1g/test/mdc2test.c:55,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-1.1.1g/test/mdc2test.c:59,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/mdc2test.c:60,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/test/mdc2test.c:60,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/mdc2test.c:61,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/test/mdc2test.c:61,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/mdc2test.c:62,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/mdc2test.c:67,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 69
    functionName: test_mdc2
    functionSourceFile: /src/openssl-1.1.1g/test/mdc2test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - TEST_true
    - EVP_MD_CTX_new
    - EVP_mdc2
    - TEST_ptr
    - ebcdic2ascii
    - EVP_MD_CTX_md_data
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - TEST_mem_eq
    - EVP_MD_CTX_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_mdc2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/mdc2test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/mdc2test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/ideatest.c:58,1
    - Dst: IDEA_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/ideatest.c:59,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/ideatest.c:60,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/ideatest.c:63,1
    - Dst: IDEA_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/ideatest.c:64,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/ideatest.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: test_idea_ecb
    functionSourceFile: /src/openssl-1.1.1g/test/ideatest.c
    functionUses: 0
    functionsReached:
    - IDEA_set_decrypt_key
    - IDEA_ecb_encrypt
    - IDEA_set_encrypt_key
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_idea_ecb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/ideatest.c:74,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/ideatest.c:75,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ideatest.c:76,1
    - Dst: IDEA_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/ideatest.c:77,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ideatest.c:78,1
    - Dst: IDEA_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/ideatest.c:79,1
    - Dst: IDEA_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/ideatest.c:80,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/ideatest.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: test_idea_cbc
    functionSourceFile: /src/openssl-1.1.1g/test/ideatest.c
    functionUses: 0
    functionsReached:
    - IDEA_set_encrypt_key
    - IDEA_set_decrypt_key
    - IDEA_cbc_encrypt
    - memcpy
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_idea_cbc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-1.1.1g/test/ideatest.c:89,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openssl-1.1.1g/test/ideatest.c:90,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ideatest.c:91,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/ideatest.c:93,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/ideatest.c:95,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/ideatest.c:98,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ideatest.c:100,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/ideatest.c:102,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/ideatest.c:104,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/ideatest.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: test_idea_cfb64
    functionSourceFile: /src/openssl-1.1.1g/test/ideatest.c
    functionUses: 0
    functionsReached:
    - IDEA_cfb64_encrypt
    - IDEA_set_encrypt_key
    - IDEA_set_decrypt_key
    - memcpy
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_idea_cfb64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ideatest.c:114,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ideatest.c:115,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ideatest.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ideatest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: chdir
    functionSourceFile: /src/openssl-1.1.1g/test/conf_include_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chdir(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:40,1
    - Dst: strpbrk
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:48,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:55,1
    - Dst: chdir
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: change_path
    functionSourceFile: /src/openssl-1.1.1g/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - OPENSSL_free
    - OPENSSL_strdup
    - chdir
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int change_path(const char *file)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:76,1
    - Dst: NCONF_load_bio
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:76,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:77,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:77,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:80,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:84,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:88,1
    - Dst: CONF_modules_load
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:88,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:89,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:94,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:95,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:95,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:96,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:102,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:102,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:103,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:104,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:110,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:110,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:111,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:112,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:117,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:118,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:118,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:119,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 124
    functionName: test_load_config
    functionSourceFile: /src/openssl-1.1.1g/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - ERR_peek_error
    - CONF_modules_load
    - TEST_ptr
    - TEST_str_eq
    - TEST_int_eq
    - NCONF_get_number
    - NCONF_load_bio
    - TEST_int_gt
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int test_load_config(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:136,1
    - Dst: setenv
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:136,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:137,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:137,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:138,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:147,1
    - Dst: unsetenv
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:147,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:148,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:148,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: test_check_null_numbers
    functionSourceFile: /src/openssl-1.1.1g/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - setenv
    - TEST_true
    - unsetenv
    - TEST_long_eq
    - TEST_int_eq
    - NCONF_get_number
    - TEST_false
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int test_check_null_numbers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:165,1
    - Dst: setenv
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:166,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:167,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:167,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:168,1
    - Dst: setenv
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:174,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:175,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:175,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 179
    functionName: test_check_overflow
    functionSourceFile: /src/openssl-1.1.1g/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - setenv
    - TEST_true
    - TEST_long_eq
    - NCONF_get_number
    - TEST_false
    - sprintf
    linkageType: ''
    returnType: int
    signature: int test_check_overflow(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:186,1
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:186,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:189,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:191,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:192,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:192,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:193,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:197,1
    - Dst: change_path
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:205,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:207,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:208,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 211
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - change_path
    - ADD_TEST
    - NCONF_new
    - TEST_ptr
    - test_get_argument
    - TEST_note
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_vfree
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:215,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:216,1
    - Dst: CONF_modules_unload
      Src: /src/openssl-1.1.1g/test/conf_include_test.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - BIO_vfree
    - NCONF_free
    - CONF_modules_unload
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_pkcs12.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_mdc2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/sslapitest.c:103,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:105,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - s
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: hostname_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strcmp
    - SSL_get_servername
    linkageType: ''
    returnType: int
    signature: int hostname_cb(SSL *s, int *al, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:114,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/sslapitest.c:118,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/test/sslapitest.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: client_keylog_callback
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strcat
    - TEST_info
    - strlen
    linkageType: ''
    returnType: void
    signature: void client_keylog_callback(const SSL *ssl, const char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:130,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/sslapitest.c:134,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/test/sslapitest.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: server_keylog_callback
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strcat
    - TEST_info
    - strlen
    linkageType: ''
    returnType: void
    signature: void server_keylog_callback(const SSL *ssl, const char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:152,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/test/sslapitest.c:156,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:157,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - hex_encoded
    - hex_length
    - raw
    - raw_length
    argTypes:
    - char*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: compare_hex_encoded_buffer
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_size_t_eq
    - sprintf
    linkageType: ''
    returnType: int
    signature: "int compare_hex_encoded_buffer(const char *hex_encoded,\n                                      size_t
      hex_length,\n                                      const uint8_t *raw,\n                                      size_t
      raw_length)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strtok
      Src: /src/openssl-1.1.1g/test/sslapitest.c:184,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/test/sslapitest.c:185,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:186,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:192,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/test/sslapitest.c:192,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:194,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:194,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:196,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/test/sslapitest.c:196,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:204,1
    - Dst: SSL_get_client_random
      Src: /src/openssl-1.1.1g/test/sslapitest.c:209,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:212,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:215,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/test/sslapitest.c:215,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:217,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:217,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:219,1
    - Dst: compare_hex_encoded_buffer
      Src: /src/openssl-1.1.1g/test/sslapitest.c:219,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:224,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/test/sslapitest.c:224,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:226,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:229,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:231,1
    - Dst: compare_hex_encoded_buffer
      Src: /src/openssl-1.1.1g/test/sslapitest.c:231,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:231,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:236,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:237,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:238,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:239,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:240,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:241,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:242,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:249,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:251,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:253,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:255,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:257,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:259,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:261,1
    - Dst: SSL_get_client_random
      Src: /src/openssl-1.1.1g/test/sslapitest.c:264,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:267,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:270,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/test/sslapitest.c:270,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:272,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:272,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:274,1
    - Dst: compare_hex_encoded_buffer
      Src: /src/openssl-1.1.1g/test/sslapitest.c:274,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:279,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/test/sslapitest.c:279,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/sslapitest.c:286,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:292,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:294,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:296,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:298,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:300,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:302,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:304,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:306,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:308,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 64
    argCount: 4
    argNames:
    - buffer
    - ssl
    - session
    - expected
    argTypes:
    - char*
    - SSL*
    - SSL_SESSION*
    - struct sslapitest_log_counts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 312
    functionName: test_keylog_output
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_ne
    - strtok
    - SSL_get_client_random
    - SSL_SESSION_get_master_key
    - strcmp
    - TEST_ptr
    - TEST_size_t_eq
    - TEST_false
    - compare_hex_encoded_buffer
    - TEST_info
    - strlen
    linkageType: ''
    returnType: int
    signature: "int test_keylog_output(char *buffer, const SSL *ssl,\n                              const
      SSL_SESSION *session,\n                              struct sslapitest_log_counts
      *expected)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/sslapitest.c:323,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/sslapitest.c:324,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:329,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:329,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:329,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:330,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:336,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:337,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:340,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:340,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:343,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:343,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:344,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:344,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:346,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:347,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:347,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:350,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:351,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:351,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:356,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:356,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:358,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:358,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:360,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:361,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:362,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:373,1
    - Dst: test_keylog_output
      Src: /src/openssl-1.1.1g/test/sslapitest.c:373,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:374,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:378,1
    - Dst: test_keylog_output
      Src: /src/openssl-1.1.1g/test/sslapitest.c:378,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:379,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:385,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:386,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:387,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:388,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 391
    functionName: test_keylog
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - SSL_CTX_set_cipher_list
    - create_ssl_objects
    - SSL_get_session
    - create_ssl_ctx_pair
    - SSL_CTX_get_keylog_callback
    - TLS_client_method
    - TEST_false
    - SSL_CTX_set_options
    - memset
    - TEST_int_gt
    - test_keylog_output
    - SSL_free
    - SSL_CTX_free
    - SSL_CTX_set_keylog_callback
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_keylog(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/sslapitest.c:406,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/sslapitest.c:407,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:412,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:412,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:412,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:412,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:415,1
    - Dst: SSL_CTX_set_max_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:415,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:419,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:419,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:420,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:420,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:423,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:424,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:424,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:428,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:429,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:429,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:434,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:434,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:436,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:436,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:438,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:451,1
    - Dst: test_keylog_output
      Src: /src/openssl-1.1.1g/test/sslapitest.c:451,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:452,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:453,1
    - Dst: test_keylog_output
      Src: /src/openssl-1.1.1g/test/sslapitest.c:453,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:454,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:459,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:460,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:461,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:462,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:463,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/sslapitest.c:467,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/sslapitest.c:468,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:472,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:472,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:474,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:474,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:476,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:476,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:477,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:477,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:480,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:480,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:482,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:482,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:484,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:484,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:490,1
    - Dst: test_keylog_output
      Src: /src/openssl-1.1.1g/test/sslapitest.c:490,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:491,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:492,1
    - Dst: test_keylog_output
      Src: /src/openssl-1.1.1g/test/sslapitest.c:492,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:493,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:500,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:501,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:502,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:503,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:504,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 507
    functionName: test_keylog_no_master_key
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - TLS_server_method
    - SSL_CTX_set_max_early_data
    - SSL_get_session
    - SSL_SESSION_free
    - SSL_get1_session
    - SSL_CTX_set_keylog_callback
    - create_ssl_connection
    - TEST_true
    - TEST_int_eq
    - create_ssl_ctx_pair
    - SSL_CTX_get_keylog_callback
    - TLS_client_method
    - SSL_free
    - SSL_get_early_data_status
    - SSL_write_early_data
    - SSL_read_early_data
    - create_ssl_objects
    - SSL_session_reused
    - SSL_shutdown
    - TEST_false
    - memset
    - test_keylog_output
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_keylog_no_master_key(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_client_hello_get0_ciphers
      Src: /src/openssl-1.1.1g/test/sslapitest.c:534,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:535,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:536,1
    - Dst: SSL_client_hello_get0_compression_methods
      Src: /src/openssl-1.1.1g/test/sslapitest.c:537,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:538,1
    - Dst: SSL_client_hello_get1_extensions_present
      Src: /src/openssl-1.1.1g/test/sslapitest.c:540,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:542,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:543,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/sslapitest.c:544,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:545,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:548,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - s
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 550
    functionName: full_client_hello_callback
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - SSL_client_hello_get1_extensions_present
    - memcmp
    - TEST_int_eq
    - SSL_client_hello_get0_compression_methods
    - TEST_size_t_eq
    - OPENSSL_free
    - TEST_mem_eq
    - SSL_client_hello_get0_ciphers
    - printf
    linkageType: ''
    returnType: int
    signature: int full_client_hello_callback(SSL *s, int *al, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:558,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:558,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:558,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:558,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:562,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:565,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:567,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:567,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:569,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:569,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:571,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:571,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:577,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:577,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:579,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:579,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:586,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:587,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:588,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:589,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 592
    functionName: test_client_hello_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - SSL_CTX_set_cipher_list
    - create_ssl_objects
    - TEST_int_eq
    - create_ssl_ctx_pair
    - SSL_get_error
    - SSL_CTX_set_max_proto_version
    - TLS_client_method
    - TEST_false
    - SSL_CTX_set_client_hello_cb
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_client_hello_cb(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:615,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:615,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:615,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:616,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:619,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:619,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:620,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:620,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:622,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:622,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:623,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:623,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:625,1
    - Dst: SSL_get0_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:625,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:626,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:626,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:629,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:634,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:634,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:636,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:636,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:637,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:637,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:638,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:638,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:640,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:640,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:641,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:641,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:642,1
    - Dst: SSL_get0_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:642,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:643,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:644,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-1.1.1g/test/sslapitest.c:645,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/sslapitest.c:645,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:647,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:654,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:654,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:656,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:656,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:657,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:657,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:659,1
    - Dst: SSL_get0_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:659,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:660,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:660,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:661,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/test/sslapitest.c:661,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:662,1
    - Dst: SSL_renegotiate_pending
      Src: /src/openssl-1.1.1g/test/sslapitest.c:662,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:666,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:667,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:669,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:669,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:673,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:674,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:676,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:676,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:682,1
    - Dst: SSL_renegotiate_pending
      Src: /src/openssl-1.1.1g/test/sslapitest.c:682,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:683,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:683,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:684,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:684,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:685,1
    - Dst: SSL_get0_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:685,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:686,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:687,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-1.1.1g/test/sslapitest.c:688,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/sslapitest.c:688,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:691,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:697,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:698,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:699,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:700,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:701,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 704
    functionName: test_ccs_change_cipher
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - TLS_server_method
    - TEST_ptr_ne
    - SSL_SESSION_free
    - SSL_get1_session
    - SSL_get_current_cipher
    - SSL_renegotiate
    - create_ssl_connection
    - TEST_ptr_eq
    - TEST_true
    - TEST_int_eq
    - create_ssl_ctx_pair
    - shutdown_ssl_connection
    - TLS_client_method
    - SSL_free
    - SSL_read_ex
    - create_ssl_objects
    - SSL_session_reused
    - SSL_renegotiate_pending
    - SSL_CIPHER_get_id
    - SSL_set_cipher_list
    - TEST_ptr
    - SSL_get_error
    - SSL_get0_session
    - TEST_false
    - SSL_CTX_set_options
    - SSL_CTX_free
    - TEST_ulong_eq
    linkageType: ''
    returnType: int
    signature: int test_ccs_change_cipher(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:719,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:719,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/sslapitest.c:721,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:722,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:724,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:727,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:727,1
    - Dst: SSL_CTX_set_read_ahead
      Src: /src/openssl-1.1.1g/test/sslapitest.c:736,1
    - Dst: i2d_X509
      Src: /src/openssl-1.1.1g/test/sslapitest.c:746,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/test/sslapitest.c:747,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:750,1
    - Dst: SSL_CTX_add_extra_chain_cert
      Src: /src/openssl-1.1.1g/test/sslapitest.c:752,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:753,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:758,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:758,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:760,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:760,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:768,1
    - Dst: SSL_clear
      Src: /src/openssl-1.1.1g/test/sslapitest.c:768,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:773,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:774,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:775,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:776,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:777,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 5
    argNames:
    - smeth
    - cmeth
    - min_version
    - max_version
    - read_ahead
    argTypes:
    - SSL_METHOD*
    - SSL_METHOD*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 780
    functionName: execute_test_large_message
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - OPENSSL_assert
    - TEST_true
    - create_ssl_objects
    - SSL_CTX_set_read_ahead
    - TEST_ptr
    - SSL_clear
    - create_ssl_ctx_pair
    - SSL_CTX_add_extra_chain_cert
    - BIO_free
    - PEM_read_bio_X509
    - i2d_X509
    - X509_up_ref
    - BIO_new_file
    - SSL_CTX_free
    - SSL_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: "int execute_test_large_message(const SSL_METHOD *smeth,\n                                      const
      SSL_METHOD *cmeth,\n                                      int min_version, int
      max_version,\n                                      int read_ahead)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_large_message
      Src: /src/openssl-1.1.1g/test/sslapitest.c:784,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:784,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 782
    functionDepth: 5
    functionLinenumber: 782
    functionLinenumberEnd: 787
    functionName: test_large_message_tls
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TLS_client_method
    - execute_test_large_message
    linkageType: ''
    returnType: int
    signature: int test_large_message_tls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_large_message
      Src: /src/openssl-1.1.1g/test/sslapitest.c:791,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:791,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 789
    functionDepth: 5
    functionLinenumber: 789
    functionLinenumberEnd: 794
    functionName: test_large_message_tls_read_ahead
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TLS_client_method
    - execute_test_large_message
    linkageType: ''
    returnType: int
    signature: int test_large_message_tls_read_ahead(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_large_message
      Src: /src/openssl-1.1.1g/test/sslapitest.c:803,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:803,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 797
    functionDepth: 5
    functionLinenumber: 797
    functionLinenumberEnd: 807
    functionName: test_large_message_dtls
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_large_message
    - DTLS_client_method
    - DTLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_large_message_dtls(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/sslapitest.c:815,1
    - Dst: SSL_get_tlsext_status_ids
      Src: /src/openssl-1.1.1g/test/sslapitest.c:820,1
    - Dst: sk_OCSP_RESPID_num
      Src: /src/openssl-1.1.1g/test/sslapitest.c:821,1
    - Dst: sk_OCSP_RESPID_value
      Src: /src/openssl-1.1.1g/test/sslapitest.c:824,1
    - Dst: OCSP_RESPID_match
      Src: /src/openssl-1.1.1g/test/sslapitest.c:825,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:831,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:831,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:834,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 811
    functionDepth: 7
    functionLinenumber: 811
    functionLinenumberEnd: 837
    functionName: ocsp_server_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_tlsext_status_ocsp_resp
    - sk_OCSP_RESPID_num
    - OCSP_RESPID_match
    - TEST_ptr
    - SSL_get_tlsext_status_ids
    - STACK_OF
    - sk_OCSP_RESPID_value
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int ocsp_server_cb(SSL *s, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_tlsext_status_ocsp_resp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:848,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 854
    functionName: ocsp_client_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_get_tlsext_status_ocsp_resp
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int ocsp_client_cb(SSL *s, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/sslapitest.c:861,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:865,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:865,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:865,1
    - Dst: SSL_CTX_get_tlsext_status_type
      Src: /src/openssl-1.1.1g/test/sslapitest.c:870,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:875,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:876,1
    - Dst: SSL_get_tlsext_status_type
      Src: /src/openssl-1.1.1g/test/sslapitest.c:876,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:877,1
    - Dst: SSL_set_tlsext_status_type
      Src: /src/openssl-1.1.1g/test/sslapitest.c:877,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:879,1
    - Dst: SSL_get_tlsext_status_type
      Src: /src/openssl-1.1.1g/test/sslapitest.c:879,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:883,1
    - Dst: SSL_CTX_set_tlsext_status_type
      Src: /src/openssl-1.1.1g/test/sslapitest.c:886,1
    - Dst: SSL_CTX_get_tlsext_status_type
      Src: /src/openssl-1.1.1g/test/sslapitest.c:887,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:890,1
    - Dst: SSL_get_tlsext_status_type
      Src: /src/openssl-1.1.1g/test/sslapitest.c:891,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:893,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:900,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openssl-1.1.1g/test/sslapitest.c:901,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:902,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openssl-1.1.1g/test/sslapitest.c:903,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:904,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:904,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:906,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:906,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:908,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:909,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:911,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:912,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:920,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:920,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:923,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:923,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:925,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:926,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:928,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:929,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:940,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:940,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:948,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:948,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:949,1
    - Dst: OCSP_RESPID_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:949,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:950,1
    - Dst: sk_OCSP_RESPID_new_null
      Src: /src/openssl-1.1.1g/test/sslapitest.c:950,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:951,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/sslapitest.c:951,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:953,1
    - Dst: OCSP_RESPID_set_by_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:953,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:954,1
    - Dst: sk_OCSP_RESPID_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:954,1
    - Dst: SSL_set_tlsext_status_ids
      Src: /src/openssl-1.1.1g/test/sslapitest.c:957,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:961,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:964,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:964,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:966,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:967,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:973,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:974,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:975,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:976,1
    - Dst: sk_OCSP_RESPID_pop_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:977,1
    - Dst: OCSP_RESPID_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:978,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:979,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:980,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 856
    functionDepth: 7
    functionLinenumber: 856
    functionLinenumberEnd: 984
    functionName: test_tlsext_status_type
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_set_tlsext_status_ids
    - OCSP_RESPID_new
    - SSL_CTX_get_tlsext_status_type
    - STACK_OF
    - SSL_CTX_set_tlsext_status_arg
    - OCSP_RESPID_set_by_key
    - create_ssl_connection
    - X509_free
    - SSL_set_tlsext_status_type
    - TEST_true
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - PEM_read_bio_X509
    - BIO_free
    - SSL_new
    - SSL_free
    - OCSP_RESPID_free
    - sk_OCSP_RESPID_push
    - create_ssl_objects
    - SSL_CTX_set_tlsext_status_cb
    - BIO_new_file
    - sk_OCSP_RESPID_pop_free
    - SSL_get_tlsext_status_type
    - TEST_ptr
    - SSL_CTX_set_tlsext_status_type
    - TEST_false
    - SSL_CTX_free
    - sk_OCSP_RESPID_new_null
    linkageType: ''
    returnType: int
    signature: int test_tlsext_status_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 999
    functionName: new_session_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    linkageType: ''
    returnType: int
    signature: int new_session_cb(SSL *ssl, SSL_SESSION *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - sess
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1004
    functionName: remove_session_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void remove_session_cb(SSL_CTX *ctx, SSL_SESSION *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ssl
    - id
    - len
    - copy
    argTypes:
    - SSL*
    - unsigned char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1014
    functionName: get_session_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_SESSION
    signature: "SSL_SESSION *get_session_cb(SSL *ssl, const unsigned char *id, int
      len,\n                                   int *copy)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1034,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1034,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1034,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1034,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1043,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1044,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1048,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1049,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1053,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1055,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1060,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1060,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1062,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1062,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1064,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1064,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1068,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1068,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1071,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1073,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1077,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1077,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1079,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1079,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1080,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1080,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1082,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1082,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1092,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1093,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1101,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1102,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1106,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1107,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1107,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1109,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1113,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1113,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1115,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1115,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1119,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1119,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1123,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1124,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1132,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1132,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1135,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1135,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1137,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1137,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1142,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1142,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1143,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1143,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1149,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1149,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1153,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1153,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1159,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1160,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1160,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1162,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1162,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1164,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1164,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1170,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1170,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1174,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1174,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1180,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1181,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1182,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1183,1
    - Dst: SSL_CTX_sess_set_get_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1184,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1188,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1191,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1195,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1196,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1198,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1199,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1201,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1203,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1206,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1208,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1210,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1210,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1212,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1212,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1214,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1214,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1215,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1215,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1226,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1226,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1230,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1230,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1238,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1239,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1240,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1248,1
    - Dst: SSL_SESSION_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1248,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1249,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1249,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1251,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1258,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1258,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1260,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1260,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1261,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1261,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1263,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1263,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1267,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1271,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1272,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1275,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1276,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1284,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1285,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1286,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1287,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1289,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1290,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1292,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1293,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1294,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1295,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 172
    argCount: 3
    argNames:
    - maxprot
    - use_int_cache
    - use_ext_cache
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1298
    functionName: execute_test_session
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - SSL_set_session
    - TLS_server_method
    - SSL_get_session
    - SSL_SESSION_free
    - SSL_get1_session
    - SSL_CTX_sess_set_new_cb
    - create_ssl_connection
    - TEST_ptr_eq
    - TEST_true
    - TEST_int_eq
    - create_ssl_ctx_pair
    - SSL_SESSION_dup
    - shutdown_ssl_connection
    - TLS_client_method
    - SSL_free
    - SSL_CTX_free
    - SSL_CTX_remove_session
    - create_ssl_objects
    - SSL_CTX_set_max_proto_version
    - SSL_session_reused
    - SSL_CTX_sess_set_get_cb
    - SSL_CTX_set_session_cache_mode
    - TEST_ptr
    - TEST_false
    - SSL_CTX_sess_set_remove_cb
    - SSL_CTX_set_options
    - SSL_CTX_add_session
    linkageType: ''
    returnType: int
    signature: "int execute_test_session(int maxprot, int use_int_cache,\n                                int
      use_ext_cache)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1304,1
    - Dst: execute_test_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1301
    functionDepth: 2
    functionLinenumber: 1301
    functionLinenumberEnd: 1313
    functionName: test_session_with_only_int_cache
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_session
    linkageType: ''
    returnType: int
    signature: int test_session_with_only_int_cache(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1318,1
    - Dst: execute_test_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1315
    functionDepth: 2
    functionLinenumber: 1315
    functionLinenumberEnd: 1327
    functionName: test_session_with_only_ext_cache
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_session
    linkageType: ''
    returnType: int
    signature: int test_session_with_only_ext_cache(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1332,1
    - Dst: execute_test_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1341
    functionName: test_session_with_both_cache
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_session
    linkageType: ''
    returnType: int
    signature: int test_session_with_both_cache(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1358
    functionName: new_cachesession_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    linkageType: ''
    returnType: int
    signature: int new_cachesession_cb(SSL *ssl, SSL_SESSION *sess)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1362,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1363,1
    - Dst: SSL_verify_client_post_handshake
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1363,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1367,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1367,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1368,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1368,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1369,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1369,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1370,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - sssl
    - cssl
    argTypes:
    - SSL*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1375
    functionName: post_handshake_verify
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - SSL_verify_client_post_handshake
    - TEST_int_eq
    - SSL_set_verify
    - SSL_read
    - TEST_int_le
    - SSL_do_handshake
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int post_handshake_verify(SSL *sssl, SSL *cssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1382,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1382,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1382,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1382,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1385,1
    - Dst: SSL_CTX_set_num_tickets
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1385,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1386,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1386,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1392,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1394,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - stateful
    - idx
    - sctx
    - cctx
    argTypes:
    - int
    - int
    - SSL_CTX**
    - SSL_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1399
    functionName: setup_ticket_test
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - SSL_CTX_set_num_tickets
    - create_ssl_ctx_pair
    - SSL_CTX_set_session_id_context
    - TLS_client_method
    - SSL_CTX_set_options
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_sess_set_new_cb
    linkageType: ''
    returnType: int
    signature: "int setup_ticket_test(int stateful, int idx, SSL_CTX **sctx,\n                             SSL_CTX
      **cctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1409,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1409,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1411,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1411,1
    - Dst: SSL_set_post_handshake_auth
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1414,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1416,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1416,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1425,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1425,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1426,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1429,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1429,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1430,1
    - Dst: post_handshake_verify
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1437,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1438,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1441,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1442,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1443,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1444,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1446,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1453,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1454,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 4
    argNames:
    - idx
    - sctx
    - cctx
    - succ
    argTypes:
    - int
    - SSL_CTX*
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1401
    functionDepth: 2
    functionLinenumber: 1401
    functionLinenumberEnd: 1456
    functionName: check_resumption
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - TEST_true
    - create_ssl_objects
    - post_handshake_verify
    - SSL_SESSION_free
    - SSL_set_post_handshake_auth
    - TEST_int_eq
    - SSL_shutdown
    - TEST_false
    - SSL_session_reused
    - SSL_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int check_resumption(int idx, SSL_CTX *sctx, SSL_CTX *cctx, int succ)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: setup_ticket_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1470,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1473,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1473,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1477,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1477,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1480,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1483,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1484,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1485,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1486,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1487,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1488,1
    - Dst: setup_ticket_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1501,1
    - Dst: check_resumption
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1504,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1510,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1511,1
    - Dst: setup_ticket_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1514,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1517,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1517,1
    - Dst: SSL_set_post_handshake_auth
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1521,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1523,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1523,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1526,1
    - Dst: post_handshake_verify
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1530,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1531,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1534,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1535,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1536,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1537,1
    - Dst: check_resumption
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1547,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1553,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1554,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1555,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1556,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1559,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1560,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 2
    argNames:
    - stateful
    - idx
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1458
    functionDepth: 2
    functionLinenumber: 1458
    functionLinenumberEnd: 1563
    functionName: test_tickets
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - setup_ticket_test
    - OSSL_NELEM
    - TEST_true
    - create_ssl_objects
    - post_handshake_verify
    - SSL_SESSION_free
    - TEST_int_eq
    - SSL_set_post_handshake_auth
    - SSL_shutdown
    - check_resumption
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_tickets(int stateful, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_tickets
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1565
    functionDepth: 3
    functionLinenumber: 1565
    functionLinenumberEnd: 1568
    functionName: test_stateless_tickets
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_tickets
    linkageType: ''
    returnType: int
    signature: int test_stateless_tickets(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_tickets
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1573
    functionName: test_stateful_tickets
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_tickets
    linkageType: ''
    returnType: int
    signature: int test_stateful_tickets(int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1582,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1582,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1582,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1582,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1585,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1585,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1590,1
    - Dst: SSL_CTX_set_psk_use_session_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1592,1
    - Dst: SSL_CTX_set_psk_find_session_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1593,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1594,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1600,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1600,1
    - Dst: create_a_psk
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1603,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1604,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1606,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1608,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1608,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1610,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1611,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1613,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1619,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1620,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1621,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1622,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1623,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1624,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1628
    functionName: test_psk_tickets
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_psk_find_session_callback
    - TLS_server_method
    - TEST_true
    - SSL_SESSION_up_ref
    - create_ssl_objects
    - SSL_SESSION_free
    - create_a_psk
    - TEST_ptr
    - TEST_int_eq
    - create_ssl_ctx_pair
    - SSL_CTX_set_psk_use_session_callback
    - SSL_CTX_set_session_id_context
    - TLS_client_method
    - SSL_CTX_set_session_cache_mode
    - SSL_free
    - SSL_CTX_free
    - SSL_CTX_sess_set_new_cb
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_psk_tickets(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - res
    - bio1
    - bio2
    - type
    argTypes:
    - BIO**
    - BIO*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1665
    functionName: setupbio
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setupbio(BIO **res, BIO *bio1, BIO *bio2, int type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1708,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1708,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1708,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1708,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1720,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1721,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1724,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1724,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1732,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1732,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1732,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1740,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1740,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1740,1
    - Dst: setupbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1745,1
    - Dst: setupbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1746,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1747,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1755,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1757,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1761,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1761,1
    - Dst: setupbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1766,1
    - Dst: setupbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1767,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1777,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1781,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1783,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1788,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1789,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1797,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1798,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1799,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1800,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 68
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1679
    functionDepth: 4
    functionLinenumber: 1679
    functionLinenumberEnd: 1802
    functionName: test_ssl_set_bio
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - TLS_server_method
    - TEST_true
    - create_ssl_objects
    - SSL_set_bio
    - TEST_ptr
    - create_ssl_ctx_pair
    - BIO_s_mem
    - SSL_CTX_set_max_proto_version
    - setupbio
    - create_ssl_connection
    - TLS_client_method
    - BIO_free
    - BIO_up_ref
    - SSL_free
    - SSL_CTX_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_ssl_set_bio(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1813,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1813,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1813,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1814,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1814,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1815,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1815,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1815,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1816,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1816,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1816,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1819,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1825,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1829,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1829,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1829,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1832,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1834,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1839,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1841,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1845,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1846,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1847,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1848,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - pop_ssl
    - change_bio
    argTypes:
    - int
    - bio_change_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1806
    functionDepth: 4
    functionLinenumber: 1806
    functionLinenumberEnd: 1851
    functionName: execute_test_ssl_bio
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set0_wbio
    - TEST_ptr
    - BIO_pop
    - BIO_s_mem
    - BIO_f_ssl
    - BIO_set_ssl
    - BIO_free
    - BIO_push
    - SSL_set0_rbio
    - SSL_new
    - SSL_CTX_new
    - SSL_CTX_free
    - SSL_free
    - TLS_method
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int execute_test_ssl_bio(int pop_ssl, bio_change_t change_bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_ssl_bio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1853
    functionDepth: 5
    functionLinenumber: 1853
    functionLinenumberEnd: 1856
    functionName: test_ssl_bio_pop_next_bio
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_ssl_bio
    linkageType: ''
    returnType: int
    signature: int test_ssl_bio_pop_next_bio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_ssl_bio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1858
    functionDepth: 5
    functionLinenumber: 1858
    functionLinenumberEnd: 1861
    functionName: test_ssl_bio_pop_ssl_bio
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_ssl_bio
    linkageType: ''
    returnType: int
    signature: int test_ssl_bio_pop_ssl_bio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_ssl_bio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1863
    functionDepth: 5
    functionLinenumber: 1863
    functionLinenumberEnd: 1866
    functionName: test_ssl_bio_change_rbio
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_ssl_bio
    linkageType: ''
    returnType: int
    signature: int test_ssl_bio_change_rbio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_ssl_bio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1868
    functionDepth: 5
    functionLinenumber: 1868
    functionLinenumberEnd: 1871
    functionName: test_ssl_bio_change_wbio
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_ssl_bio
    linkageType: ''
    returnType: int
    signature: int test_ssl_bio_change_wbio(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1926,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1926,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1929,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1931,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1933,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1933,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1933,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1933,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1942,1
    - Dst: SSL_CTX_set1_sigalgs
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1948,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1950,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1954,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1960,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1965,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1965,1
    - Dst: SSL_set1_sigalgs
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1973,1
    - Dst: SSL_set1_sigalgs_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1975,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1978,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1987,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1987,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1995,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1996,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1997,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:1998,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 2001
    functionName: test_set_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - OSSL_NELEM
    - TLS_server_method
    - TEST_true
    - create_ssl_objects
    - SSL_CTX_set1_sigalgs
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_CTX_set_max_proto_version
    - TLS_client_method
    - SSL_set1_sigalgs_list
    - TEST_info
    - SSL_set1_sigalgs
    - SSL_free
    - SSL_CTX_free
    - SSL_CTX_set1_sigalgs_list
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_set_sigalgs(int idx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2030,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2034,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - ssl
    - md
    - id
    - idlen
    - sess
    argTypes:
    - SSL*
    - EVP_MD*
    - unsigned char**
    - size_t*
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2008
    functionDepth: 1
    functionLinenumber: 2008
    functionLinenumberEnd: 2037
    functionName: use_session_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_up_ref
    - strlen
    linkageType: ''
    returnType: int
    signature: "int use_session_cb(SSL *ssl, const EVP_MD *md, const unsigned char
      **id,\n                          size_t *idlen, SSL_SESSION **sess)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2049,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2060,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2062,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2063,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - ssl
    - hint
    - id
    - max_id_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2066
    functionName: psk_client_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strncpy
    - strlen
    - SSL_SESSION_get_master_key
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_client_cb(SSL *ssl, const char *hint, char *id,\n
      \                                 unsigned int max_id_len,\n                                  unsigned
      char *psk,\n                                  unsigned int max_psk_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2082,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2083,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2089,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ssl
    - identity
    - identity_len
    - sess
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2069
    functionDepth: 1
    functionLinenumber: 2069
    functionLinenumberEnd: 2093
    functionName: find_session_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_up_ref
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int find_session_cb(SSL *ssl, const unsigned char *identity,\n                           size_t
      identity_len, SSL_SESSION **sess)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2111,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2116,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ssl
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2121
    functionName: psk_server_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strcmp
    - SSL_SESSION_get_master_key
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_server_cb(SSL *ssl, const char *identity,\n                                  unsigned
      char *psk, unsigned int max_psk_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2148,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2149,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2150,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2151,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2152,1
    - Dst: SSL_SESSION_set1_master_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2152,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2154,1
    - Dst: SSL_SESSION_set_cipher
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2154,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2155,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2156,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2136
    functionDepth: 1
    functionLinenumber: 2136
    functionLinenumberEnd: 2162
    functionName: create_a_psk
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 1
    functionsReached:
    - TEST_true
    - SSL_SESSION_free
    - TEST_ptr
    - SSL_SESSION_set1_master_key
    - SSL_SESSION_new
    - SSL_CIPHER_find
    - SSL_SESSION_set_protocol_version
    - SSL_SESSION_set_cipher
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *create_a_psk(SSL *ssl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2172,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2172,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2172,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2173,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2178,1
    - Dst: SSL_CTX_set_max_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2178,1
    - Dst: SSL_CTX_set_read_ahead
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2183,1
    - Dst: SSL_CTX_set_read_ahead
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2184,1
    - Dst: SSL_CTX_set_psk_use_session_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2187,1
    - Dst: SSL_CTX_set_psk_find_session_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2188,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2194,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2194,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2205,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2205,1
    - Dst: create_a_psk
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2209,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2210,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2215,1
    - Dst: SSL_SESSION_set_max_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2215,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2217,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2217,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2218,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2225,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2225,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2226,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2227,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2239,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2239,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2243,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2244,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2245,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2246,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2247,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2250,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2250,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2252,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2252,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 6
    argNames:
    - cctx
    - sctx
    - clientssl
    - serverssl
    - sess
    - idx
    argTypes:
    - SSL_CTX**
    - SSL_CTX**
    - SSL**
    - SSL**
    - SSL_SESSION**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2168
    functionDepth: 2
    functionLinenumber: 2168
    functionLinenumberEnd: 2256
    functionName: setupearly_data_test
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - SSL_CTX_set_max_early_data
    - TLS_server_method
    - SSL_SESSION_free
    - SSL_get1_session
    - create_ssl_connection
    - SSL_SESSION_set_max_early_data
    - SSL_CTX_set_psk_find_session_callback
    - TEST_true
    - SSL_set_tlsext_host_name
    - SSL_CTX_set_read_ahead
    - create_ssl_ctx_pair
    - TLS_client_method
    - SSL_free
    - SSL_SESSION_up_ref
    - create_ssl_objects
    - create_a_psk
    - TEST_ptr
    - SSL_CTX_set_psk_use_session_callback
    - SSL_shutdown
    linkageType: ''
    returnType: int
    signature: "int setupearly_data_test(SSL_CTX **cctx, SSL_CTX **sctx, SSL **clientssl,\n
      \                               SSL **serverssl, SSL_SESSION **sess, int idx)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2268,1
    - Dst: setupearly_data_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2268,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2273,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2273,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2273,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2275,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2275,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2276,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2276,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2279,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2279,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2280,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2280,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2288,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2288,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2288,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2290,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2290,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2291,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2291,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2292,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2292,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2296,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2296,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2296,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2298,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2298,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2302,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2302,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2305,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2305,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2309,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2309,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2309,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2311,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2311,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2312,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2312,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2313,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2313,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2320,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2320,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2320,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2321,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2321,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2322,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2322,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2332,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2333,1
    - Dst: BIO_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2333,1
    - Dst: TEST_size_t_lt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2334,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2335,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2340,1
    - Dst: BIO_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2340,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2341,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2345,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2345,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2348,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2355,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2355,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2355,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2357,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2357,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2361,1
    - Dst: BIO_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2361,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2363,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2367,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2367,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2368,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2368,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2372,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2372,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2372,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2375,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2376,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2376,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2380,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2383,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2383,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2384,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2384,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2392,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2392,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2393,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2393,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2398,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2398,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2398,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2399,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2399,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2400,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2400,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2401,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2401,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2404,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2405,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2409,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2410,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2411,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2412,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2414,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2414,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2416,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2416,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2420,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2420,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2420,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2422,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2422,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2423,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2423,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2426,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2426,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2429,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2429,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2430,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2430,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2434,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2434,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2434,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2437,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2438,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2438,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2442,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2445,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2445,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2445,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2446,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2446,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2447,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2447,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2448,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2448,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2454,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2455,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2456,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2458,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2459,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2460,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2461,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 100
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2258
    functionDepth: 4
    functionLinenumber: 2258
    functionLinenumberEnd: 2463
    functionName: test_early_data_read_write
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - SSL_SESSION_free
    - TEST_size_t_eq
    - BIO_read_ex
    - SSL_get1_session
    - TEST_size_t_gt
    - TEST_int_gt
    - SSL_accept
    - TEST_true
    - SSL_connect
    - TEST_int_eq
    - TEST_mem_eq
    - ERR_clear_error
    - SSL_get_early_data_status
    - SSL_free
    - SSL_read_early_data
    - SSL_write_early_data
    - SSL_read_ex
    - create_ssl_objects
    - TEST_size_t_lt
    - setupearly_data_test
    - BIO_write_ex
    - SSL_write_ex
    - SSL_shutdown
    - TEST_false
    - SSL_get_rbio
    - SSL_CTX_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_early_data_read_write(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2467
    functionDepth: 0
    functionLinenumber: 2467
    functionLinenumberEnd: 2477
    functionName: allow_early_data_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int allow_early_data_cb(SSL *s, void *arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2499,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2499,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2499,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2499,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2506,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2508,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2510,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2512,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2514,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2515,1
    - Dst: SSL_CONF_cmd
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2515,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2517,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2520,1
    - Dst: SSL_CTX_set_allow_early_data_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2522,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2525,1
    - Dst: setupearly_data_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2525,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2533,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2533,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2534,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2534,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2537,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2538,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2539,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2540,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2543,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2543,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2545,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2545,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2549,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2549,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2549,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2551,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2551,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2555,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2555,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2562,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2562,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2567,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2567,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2570,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2570,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2575,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2575,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2576,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2576,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2579,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2579,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2585,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2585,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2586,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2586,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2587,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2593,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2594,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2595,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2597,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2598,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2599,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2600,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 63
    argCount: 3
    argNames:
    - idx
    - usecb
    - confopt
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2488
    functionDepth: 3
    functionLinenumber: 2488
    functionLinenumberEnd: 2602
    functionName: test_early_data_replay_int
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - TLS_server_method
    - SSL_SESSION_free
    - TEST_size_t_eq
    - TEST_int_gt
    - SSL_CONF_CTX_new
    - create_ssl_connection
    - TEST_true
    - SSL_connect
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - TEST_mem_eq
    - SSL_free
    - SSL_get_early_data_status
    - SSL_write_early_data
    - SSL_read_early_data
    - SSL_CONF_cmd
    - create_ssl_objects
    - SSL_CONF_CTX_free
    - setupearly_data_test
    - SSL_session_reused
    - SSL_CONF_CTX_set_ssl_ctx
    - TEST_ptr
    - SSL_shutdown
    - SSL_CONF_CTX_set_flags
    - SSL_CTX_set_options
    - SSL_CTX_set_allow_early_data_cb
    - SSL_CTX_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_early_data_replay_int(int idx, int usecb, int confopt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_early_data_replay_int
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2604
    functionDepth: 4
    functionLinenumber: 2604
    functionLinenumberEnd: 2614
    functionName: test_early_data_replay
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_early_data_replay_int
    linkageType: ''
    returnType: int
    signature: int test_early_data_replay(int idx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2633,1
    - Dst: setupearly_data_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2633,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2639,1
    - Dst: SSL_set1_groups_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2639,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2653,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2653,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2653,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2658,1
    - Dst: SSL_set_recv_max_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2658,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2662,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2662,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2662,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2664,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2664,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2668,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2668,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2671,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2672,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2672,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2687,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2687,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2687,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2688,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2688,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2695,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2706,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2706,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2706,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2714,1
    - Dst: BIO_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2714,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2726,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2726,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2727,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2727,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2735,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2743,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2743,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2743,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2744,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2744,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2745,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2745,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2747,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2747,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2748,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2748,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2754,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2755,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2757,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2758,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2759,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2760,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2761,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 68
    argCount: 2
    argNames:
    - testtype
    - idx
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2624
    functionDepth: 4
    functionLinenumber: 2624
    functionLinenumberEnd: 2763
    functionName: early_data_skip_helper
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    - TEST_size_t_eq
    - SSL_SESSION_set_time
    - TEST_true
    - TEST_int_eq
    - TEST_error
    - TEST_mem_eq
    - time
    - SSL_set1_groups_list
    - SSL_get_early_data_status
    - SSL_free
    - SSL_read_early_data
    - SSL_write_early_data
    - SSL_set_recv_max_early_data
    - SSL_read_ex
    - setupearly_data_test
    - BIO_write_ex
    - SSL_write_ex
    - SSL_get_error
    - TEST_false
    - SSL_get_wbio
    - SSL_CTX_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int early_data_skip_helper(int testtype, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: early_data_skip_helper
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2769
    functionDepth: 5
    functionLinenumber: 2769
    functionLinenumberEnd: 2772
    functionName: test_early_data_skip
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - early_data_skip_helper
    linkageType: ''
    returnType: int
    signature: int test_early_data_skip(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: early_data_skip_helper
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2778
    functionDepth: 5
    functionLinenumber: 2778
    functionLinenumberEnd: 2781
    functionName: test_early_data_skip_hrr
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - early_data_skip_helper
    linkageType: ''
    returnType: int
    signature: int test_early_data_skip_hrr(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: early_data_skip_helper
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2788
    functionDepth: 5
    functionLinenumber: 2788
    functionLinenumberEnd: 2791
    functionName: test_early_data_skip_hrr_fail
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - early_data_skip_helper
    linkageType: ''
    returnType: int
    signature: int test_early_data_skip_hrr_fail(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: early_data_skip_helper
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2797
    functionDepth: 5
    functionLinenumber: 2797
    functionLinenumberEnd: 2800
    functionName: test_early_data_skip_abort
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - early_data_skip_helper
    linkageType: ''
    returnType: int
    signature: int test_early_data_skip_abort(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2815,1
    - Dst: setupearly_data_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2815,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2820,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2821,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2821,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2821,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2825,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2825,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2828,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2829,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2829,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2831,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2831,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2836,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2836,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2836,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2837,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2837,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2838,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2838,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2839,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2839,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2840,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2840,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2841,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2841,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2844,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2844,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2845,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2845,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2851,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2852,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2853,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2855,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2856,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2857,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2858,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 29
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2806
    functionDepth: 3
    functionLinenumber: 2806
    functionLinenumberEnd: 2860
    functionName: test_early_data_not_sent
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - SSL_read_ex
    - SSL_SESSION_free
    - TEST_int_eq
    - setupearly_data_test
    - TEST_size_t_eq
    - TEST_false
    - TEST_mem_eq
    - SSL_set_connect_state
    - SSL_write_ex
    - SSL_get_early_data_status
    - SSL_CTX_free
    - SSL_free
    - strlen
    - SSL_read_early_data
    linkageType: ''
    returnType: int
    signature: int test_early_data_not_sent(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2876,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2864
    functionDepth: 1
    functionLinenumber: 2864
    functionLinenumberEnd: 2885
    functionName: alpn_select_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int alpn_select_cb(SSL *ssl, const unsigned char **out,\n                          unsigned
      char *outlen, const unsigned char *in,\n                          unsigned int
      inlen, void *arg)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2909,1
    - Dst: setupearly_data_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2909,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2925,1
    - Dst: SSL_SESSION_set1_hostname
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2925,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2926,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2926,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2934,1
    - Dst: SSL_SESSION_set1_alpn_selected
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2934,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2936,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2936,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2948,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2948,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2959,1
    - Dst: SSL_SESSION_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2960,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2961,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2962,1
    - Dst: SSL_SESSION_set1_hostname
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2962,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2967,1
    - Dst: SSL_SESSION_set1_hostname
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2967,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2968,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2968,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2969,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2969,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2991,1
    - Dst: SSL_SESSION_set1_alpn_selected
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2991,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2993,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2993,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:2997,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3002,1
    - Dst: SSL_SESSION_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3003,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3004,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3005,1
    - Dst: SSL_SESSION_set1_alpn_selected
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3005,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3008,1
    - Dst: SSL_SESSION_set1_alpn_selected
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3008,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3011,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3011,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3014,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3022,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3026,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3028,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3028,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3028,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3030,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3030,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3031,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3031,1
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3031,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3034,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3034,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3034,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3038,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3038,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3041,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3041,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3042,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3042,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3043,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3043,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3050,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3051,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3052,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3054,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3055,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3056,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3057,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 86
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 2888
    functionDepth: 3
    functionLinenumber: 2888
    functionLinenumberEnd: 3059
    functionName: test_early_data_psk
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_set1_alpn_selected
    - SSL_SESSION_free
    - SSL_CTX_set_alpn_select_cb
    - ERR_GET_REASON
    - SSL_set_connect_state
    - ERR_get_error
    - TEST_true
    - SSL_set_tlsext_host_name
    - SSL_connect
    - TEST_int_eq
    - SSL_SESSION_dup
    - TEST_error
    - TEST_mem_eq
    - SSL_get_early_data_status
    - SSL_free
    - SSL_write_early_data
    - SSL_read_early_data
    - setupearly_data_test
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_set_alpn_protos
    - SSL_SESSION_set_protocol_version
    - SSL_SESSION_set1_hostname
    - TEST_ptr
    - SSL_get_error
    - TEST_false
    - SSL_CTX_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_early_data_psk(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3074,1
    - Dst: setupearly_data_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3074,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3079,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3079,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3079,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3087,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3087,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3088,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3088,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3089,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3089,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3091,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3091,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3092,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3092,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3097,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3097,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3097,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3098,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3098,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3101,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3101,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3102,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3102,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3108,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3109,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3110,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3112,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3113,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3114,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3115,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3065
    functionDepth: 3
    functionLinenumber: 3065
    functionLinenumberEnd: 3117
    functionName: test_early_data_not_expected
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_accept
    - TEST_true
    - SSL_read_ex
    - SSL_SESSION_free
    - SSL_connect
    - TEST_int_eq
    - setupearly_data_test
    - TEST_int_le
    - TEST_size_t_eq
    - TEST_int_gt
    - TEST_mem_eq
    - SSL_write_ex
    - SSL_get_early_data_status
    - SSL_CTX_free
    - SSL_free
    - strlen
    - SSL_write_early_data
    linkageType: ''
    returnType: int
    signature: int test_early_data_not_expected(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3133,1
    - Dst: setupearly_data_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3133,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3138,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3139,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3140,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3140,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3140,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3148,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3148,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3157,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3157,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3157,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3158,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3158,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3161,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3162,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3162,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3167,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3167,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3167,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3168,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3168,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3169,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3169,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3171,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3171,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3172,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3172,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3173,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3173,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3173,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3174,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3174,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3175,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3176,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3176,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3182,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3183,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3185,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3186,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3187,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3188,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 29
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3191
      start: 3125
    functionDepth: 3
    functionLinenumber: 3125
    functionLinenumberEnd: 3191
    functionName: test_early_data_tls1_2
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_get_early_data_status
    - TEST_true
    - SSL_read_ex
    - SSL_SESSION_free
    - TEST_int_eq
    - setupearly_data_test
    - TEST_size_t_eq
    - TEST_false
    - TEST_mem_eq
    - SSL_set_connect_state
    - SSL_write_ex
    - strlen
    - SSL_CTX_free
    - SSL_free
    - SSL_set_max_proto_version
    - SSL_read_early_data
    linkageType: ''
    returnType: int
    signature: int test_early_data_tls1_2(int idx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3214,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3214,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3214,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3214,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3217,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3217,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3223,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3223,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3229,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3229,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3234,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3234,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3239,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3239,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3245,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3245,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3251,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3251,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3256,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3256,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3261,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3261,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3267,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3268,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3269,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3270,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 48
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3208
    functionDepth: 1
    functionLinenumber: 3208
    functionLinenumberEnd: 3273
    functionName: test_set_ciphersuite
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - SSL_CTX_set_cipher_list
    - create_ssl_objects
    - SSL_set_cipher_list
    - create_ssl_ctx_pair
    - SSL_set_ciphersuites
    - TLS_client_method
    - SSL_CTX_set_ciphersuites
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_set_ciphersuite(int idx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3284,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3284,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3284,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3284,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3287,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3287,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3289,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3289,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3291,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3291,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3295,1
    - Dst: SSL_SESSION_get0_cipher
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3297,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3298,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3299,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3300,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3301,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3306,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3306,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3308,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3308,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3310,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3310,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3311,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3311,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3313,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3313,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3316,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3317,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3318,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3319,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3320,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3321,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3329,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3329,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3330,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3330,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3332,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3332,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3333,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3333,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3335,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3335,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3338,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3340,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3341,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3342,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3343,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3347,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3347,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3348,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3348,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3350,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3350,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3354,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3355,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3356,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3357,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3358,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3361,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3361,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3363,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3363,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3365,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3365,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3367,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3367,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3373,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3373,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3386,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3386,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3388,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3388,1
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3388,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3395,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3396,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3397,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3398,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3399,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3275
    functionDepth: 2
    functionLinenumber: 3275
    functionLinenumberEnd: 3402
    functionName: test_ciphersuite_change
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - TLS_server_method
    - SSL_SESSION_free
    - SSL_get1_session
    - ERR_GET_REASON
    - ERR_get_error
    - create_ssl_connection
    - TEST_true
    - SSL_SESSION_get0_cipher
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - SSL_CTX_set_ciphersuites
    - SSL_free
    - create_ssl_objects
    - SSL_session_reused
    - SSL_shutdown
    - TEST_false
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_ciphersuite_change(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3419,1
    - Dst: defined
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3419,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3457,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3459,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3459,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3459,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3460,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3466,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3466,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3467,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3467,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3470,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3470,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3471,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3471,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3477,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3477,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3482,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3482,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3483,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3483,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3486,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3486,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3487,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3487,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3493,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3493,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3497,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3497,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3499,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3499,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3501,1
    - Dst: TEST_strn_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3509,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3510,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3516,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3520,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3522,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3524,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3526,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3533,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3534,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3535,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3536,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 80
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3411
    functionDepth: 1
    functionLinenumber: 3411
    functionLinenumberEnd: 3538
    functionName: test_tls13_ciphersuite
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_CTX_set_cipher_list
    - SSL_CIPHER_get_name
    - SSL_get_current_cipher
    - create_ssl_connection
    - TEST_true
    - TEST_strn_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - SSL_CTX_set_ciphersuites
    - defined
    - SSL_free
    - OSSL_NELEM
    - create_ssl_objects
    - TEST_str_eq
    - SSL_set_ciphersuites
    - SSL_set_cipher_list
    - SSL_CTX_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_tls13_ciphersuite(int idx)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3560,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3560,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3560,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3560,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3573,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3573,1
    - Dst: SSL_CTX_set_psk_use_session_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3584,1
    - Dst: SSL_CTX_set_psk_find_session_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3585,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3589,1
    - Dst: SSL_CTX_set_psk_server_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3590,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3604,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3604,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3606,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3606,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3608,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3608,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3609,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3609,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3613,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3614,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3619,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3620,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3623,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3624,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3625,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3626,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3630,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3635,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3635,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3640,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3641,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3642,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3643,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3644,1
    - Dst: SSL_SESSION_set1_master_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3644,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3646,1
    - Dst: SSL_SESSION_set_cipher
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3646,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3647,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3647,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3649,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3649,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3654,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3654,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3655,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3655,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3656,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3656,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3660,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3661,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3662,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3663,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3666,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3667,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3668,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3669,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3673,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3678,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3678,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3683,1
    - Dst: SSL_set1_groups_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3683,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3690,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3690,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3691,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3691,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3692,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3692,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3696,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3697,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3698,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3699,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3702,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3703,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3704,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3705,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3709,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3720,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3720,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3722,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3722,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3724,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3724,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3725,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3725,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3729,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3730,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3731,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3736,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3739,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3740,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3741,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3742,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3746,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3752,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3753,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3755,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3756,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3757,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3758,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 114
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3547
    functionDepth: 1
    functionLinenumber: 3547
    functionLinenumberEnd: 3760
    functionName: test_tls13_psk
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_SESSION_free
    - SSL_SESSION_new
    - create_ssl_connection
    - SSL_CTX_set_psk_find_session_callback
    - TEST_true
    - create_ssl_ctx_pair
    - SSL_CTX_set_psk_client_callback
    - shutdown_ssl_connection
    - TLS_client_method
    - SSL_CTX_set_ciphersuites
    - SSL_set1_groups_list
    - SSL_free
    - SSL_SESSION_up_ref
    - create_ssl_objects
    - SSL_session_reused
    - SSL_CTX_set_psk_server_callback
    - SSL_SESSION_set_protocol_version
    - TEST_ptr
    - SSL_CTX_set_psk_use_session_callback
    - SSL_SESSION_set1_master_key
    - TEST_false
    - SSL_CIPHER_find
    - SSL_CTX_free
    - SSL_SESSION_set_cipher
    linkageType: ''
    returnType: int
    signature: int test_tls13_psk(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3764
    functionDepth: 0
    functionLinenumber: 3764
    functionLinenumberEnd: 3775
    functionName: generate_cookie_callback
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int generate_cookie_callback(SSL *ssl, unsigned char *cookie,\n                                    unsigned
      int *cookie_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3785
      start: 3777
    functionDepth: 0
    functionLinenumber: 3777
    functionLinenumberEnd: 3785
    functionName: verify_cookie_callback
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int verify_cookie_callback(SSL *ssl, const unsigned char *cookie,\n
      \                                 unsigned int cookie_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_cookie_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3794
      start: 3787
    functionDepth: 0
    functionLinenumber: 3787
    functionLinenumberEnd: 3794
    functionName: generate_stateless_cookie_callback
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - generate_cookie_callback
    linkageType: ''
    returnType: int
    signature: "int generate_stateless_cookie_callback(SSL *ssl, unsigned char *cookie,\n
      \                                       size_t *cookie_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_cookie_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3800
      start: 3796
    functionDepth: 0
    functionLinenumber: 3796
    functionLinenumberEnd: 3800
    functionName: verify_stateless_cookie_callback
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - verify_cookie_callback
    linkageType: ''
    returnType: int
    signature: "int verify_stateless_cookie_callback(SSL *ssl, const unsigned char
      *cookie,\n                                      size_t cookie_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3808,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3808,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3808,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3808,1
    - Dst: SSL_CTX_clear_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3814,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3816,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3816,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3819,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3819,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3825,1
    - Dst: SSL_stateless
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3825,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3829,1
    - Dst: SSL_CTX_set_stateless_cookie_generate_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3833,1
    - Dst: SSL_CTX_set_stateless_cookie_verify_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3834,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3840,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3840,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3843,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3843,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3846,1
    - Dst: SSL_stateless
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3846,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3850,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3857,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3857,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3860,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3860,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3863,1
    - Dst: SSL_stateless
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3863,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3865,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3865,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3868,1
    - Dst: SSL_stateless
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3868,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3870,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3870,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3874,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3879,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3880,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3881,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3882,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3885
      start: 3802
    functionDepth: 1
    functionLinenumber: 3802
    functionLinenumberEnd: 3885
    functionName: test_stateless
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - create_ssl_objects
    - SSL_CTX_set_stateless_cookie_generate_cb
    - TEST_int_eq
    - create_ssl_ctx_pair
    - SSL_CTX_clear_options
    - shutdown_ssl_connection
    - TLS_client_method
    - TEST_false
    - SSL_CTX_set_stateless_cookie_verify_cb
    - SSL_stateless
    - SSL_CTX_free
    - SSL_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_stateless(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3906,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3911,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3919
      start: 3900
    functionDepth: 1
    functionLinenumber: 3900
    functionLinenumberEnd: 3919
    functionName: old_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_is_server
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "int old_add_cb(SSL *s, unsigned int ext_type, const unsigned char
      **out,\n                      size_t *outlen, int *al, void *add_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - ext_type
    - out
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3921
    functionDepth: 1
    functionLinenumber: 3921
    functionLinenumberEnd: 3925
    functionName: old_free_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "void old_free_cb(SSL *s, unsigned int ext_type, const unsigned char
      *out,\n                        void *add_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3932,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - parse_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3943
      start: 3927
    functionDepth: 1
    functionLinenumber: 3927
    functionLinenumberEnd: 3943
    functionName: old_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_is_server
    linkageType: ''
    returnType: int
    signature: "int old_parse_cb(SSL *s, unsigned int ext_type, const unsigned char
      *in,\n                        size_t inlen, int *al, void *parse_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3952,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3957,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 9
    argNames:
    - s
    - ext_type
    - context
    - out
    - outlen
    - x
    - chainidx
    - al
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char**
    - size_t*
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3965
      start: 3945
    functionDepth: 1
    functionLinenumber: 3945
    functionLinenumberEnd: 3965
    functionName: new_add_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_is_server
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "int new_add_cb(SSL *s, unsigned int ext_type, unsigned int context,\n
      \                     const unsigned char **out, size_t *outlen, X509 *x,\n
      \                     size_t chainidx, int *al, void *add_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - ext_type
    - context
    - out
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3971
      start: 3967
    functionDepth: 1
    functionLinenumber: 3967
    functionLinenumberEnd: 3971
    functionName: new_free_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "void new_free_cb(SSL *s, unsigned int ext_type, unsigned int context,\n
      \                       const unsigned char *out, void *add_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3979,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 9
    argNames:
    - s
    - ext_type
    - context
    - in
    - inlen
    - x
    - chainidx
    - al
    - parse_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char*
    - size_t
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3989
      start: 3973
    functionDepth: 1
    functionLinenumber: 3973
    functionLinenumberEnd: 3989
    functionName: new_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_is_server
    linkageType: ''
    returnType: int
    signature: "int new_parse_cb(SSL *s, unsigned int ext_type, unsigned int context,\n
      \                       const unsigned char *in, size_t inlen, X509 *x,\n                        size_t
      chainidx, int *al, void *parse_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_SSL_CTX
      Src: /src/openssl-1.1.1g/test/sslapitest.c:3995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4001
      start: 3991
    functionDepth: 1
    functionLinenumber: 3991
    functionLinenumberEnd: 4001
    functionName: sni_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_SSL_CTX
    linkageType: ''
    returnType: int
    signature: int sni_cb(SSL *s, int *al, void *arg)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4032,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4032,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4032,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4032,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4038,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4038,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4038,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4045,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4046,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4048,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4066,1
    - Dst: SSL_CTX_add_client_custom_ext
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4066,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4072,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4072,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4079,1
    - Dst: SSL_CTX_add_client_custom_ext
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4079,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4083,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4083,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4091,1
    - Dst: SSL_CTX_add_server_custom_ext
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4091,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4097,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4097,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4102,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4102,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4110,1
    - Dst: SSL_CTX_add_server_custom_ext
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4110,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4114,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4114,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4122,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4122,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4123,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4123,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4127,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4127,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4129,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4129,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4156,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4157,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4158,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4159,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4160,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4169,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4169,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4171,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4171,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4172,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4172,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4209,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4210,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4211,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4212,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4213,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4214,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 110
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4216
      start: 4011
    functionDepth: 1
    functionLinenumber: 4011
    functionLinenumberEnd: 4216
    functionName: test_custom_exts
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - TLS_server_method
    - SSL_SESSION_free
    - SSL_get1_session
    - SSL_CTX_add_client_custom_ext
    - create_ssl_connection
    - TEST_true
    - create_ssl_ctx_pair
    - SSL_CTX_set_tlsext_servername_arg
    - TLS_client_method
    - SSL_CTX_add_server_custom_ext
    - SSL_free
    - SSL_CTX_add_custom_ext
    - create_ssl_objects
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_shutdown
    - TEST_false
    - SSL_CTX_set_options
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_custom_exts(int tst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4230,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4230,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4231,1
    - Dst: SSL_CTX_use_serverinfo_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4250,1
    - Dst: SSL_CTX_use_serverinfo
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4252,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4264,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4273
      start: 4222
    functionDepth: 1
    functionLinenumber: 4222
    functionLinenumberEnd: 4273
    functionName: test_serverinfo
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - SSL_CTX_use_serverinfo
    - SSL_CTX_use_serverinfo_ex
    - SSL_CTX_new
    - SSL_CTX_free
    - TLS_method
    linkageType: ''
    returnType: int
    signature: int test_serverinfo(int tst)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4318,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4318,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4318,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4318,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4323,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4323,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4324,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4325,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4327,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4327,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4329,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4329,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4338,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4338,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4352,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4352,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4356,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4356,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4361,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4361,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4365,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4365,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4371,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4371,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4376,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4376,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4384,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4390,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4396,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4399,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4407,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4409,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4416,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4417,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4418,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4419,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4420,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 46
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4423
      start: 4282
    functionDepth: 1
    functionLinenumber: 4282
    functionLinenumberEnd: 4423
    functionName: test_export_key_mat
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - OPENSSL_assert
    - TLS_server_method
    - TEST_true
    - SSL_CTX_set_min_proto_version
    - create_ssl_objects
    - TEST_mem_ne
    - SSL_export_keying_material
    - TEST_int_eq
    - create_ssl_ctx_pair
    - SSL_CTX_set_max_proto_version
    - TEST_int_le
    - TLS_client_method
    - TEST_mem_eq
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_export_key_mat(int tst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4446,1
    - Dst: setupearly_data_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4446,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4451,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4451,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4452,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4452,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4455,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4455,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4459,1
    - Dst: SSL_export_keying_material_early
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4459,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4462,1
    - Dst: SSL_export_keying_material_early
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4462,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4465,1
    - Dst: SSL_export_keying_material_early
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4465,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4468,1
    - Dst: SSL_export_keying_material_early
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4468,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4475,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4481,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4484,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4491,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4492,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4493,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4495,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4496,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4497,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4498,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4501
      start: 4432
    functionDepth: 3
    functionLinenumber: 4432
    functionLinenumberEnd: 4501
    functionName: test_export_key_mat_early
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_mem_ne
    - SSL_SESSION_free
    - SSL_write_early_data
    - TEST_int_eq
    - setupearly_data_test
    - TEST_mem_eq
    - SSL_export_keying_material_early
    - SSL_get_early_data_status
    - SSL_CTX_free
    - SSL_free
    - SSL_read_early_data
    linkageType: ''
    returnType: int
    signature: int test_export_key_mat_early(int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4515,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4515,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4515,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4516,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4520,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4520,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4522,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4522,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4529,1
    - Dst: SSL_key_update
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4529,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4533,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4533,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4538,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4538,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4538,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4538,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4539,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4539,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4540,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4543,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4543,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4543,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4543,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4544,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4544,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4545,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4552,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4553,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4554,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4555,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4507
    functionDepth: 1
    functionLinenumber: 4507
    functionLinenumberEnd: 4558
    functionName: test_key_update
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_key_update
    - SSL_write
    - TLS_server_method
    - TEST_true
    - create_ssl_objects
    - TEST_int_eq
    - create_ssl_ctx_pair
    - SSL_read
    - TLS_client_method
    - SSL_do_handshake
    - SSL_free
    - SSL_CTX_free
    - strlen
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_key_update(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4573,1
    - Dst: bio_s_always_retry
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4573,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4577,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4578,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4578,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4578,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4579,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4583,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4583,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4585,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4585,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4592,1
    - Dst: SSL_key_update
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4592,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4593,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4593,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4597,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4598,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4598,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4598,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4602,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4606,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4606,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4606,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4607,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4607,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4611,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4615,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4615,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4616,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4616,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4623,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4623,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4623,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4623,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4624,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4624,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4624,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4628,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4628,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4628,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4628,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4629,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4629,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4629,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4635,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4636,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4637,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4638,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4639,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4640,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4643
      start: 4566
    functionDepth: 4
    functionLinenumber: 4566
    functionLinenumberEnd: 4643
    functionName: test_key_update_in_write
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_write
    - TLS_server_method
    - SSL_set0_wbio
    - create_ssl_connection
    - TEST_true
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - BIO_free
    - SSL_free
    - SSL_CTX_free
    - create_ssl_objects
    - SSL_read
    - SSL_key_update
    - TEST_ptr
    - SSL_get_error
    - SSL_get_wbio
    - BIO_up_ref
    - SSL_do_handshake
    - bio_s_always_retry
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_key_update_in_write(int tst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4658,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4658,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4658,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4658,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4662,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4662,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4664,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4664,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4666,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4666,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4670,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4671,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4672,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4676,1
    - Dst: SSL_clear
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4676,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4679,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4679,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4681,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4681,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4683,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4683,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4686,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4687,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4692,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4693,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4694,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4695,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4646
    functionDepth: 1
    functionLinenumber: 4646
    functionLinenumberEnd: 4698
    functionName: test_ssl_clear
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - create_ssl_objects
    - create_ssl_ctx_pair
    - SSL_shutdown
    - SSL_CTX_set_max_proto_version
    - TLS_client_method
    - SSL_session_reused
    - SSL_clear
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_ssl_clear(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4708,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4708,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4711,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4711,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4713,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4715,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4715,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4717,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4717,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4720,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4720,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4722,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4722,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4724,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4724,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4726,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4726,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4730,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4731,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4731,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4732,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4732,1
    - Dst: TEST_uint_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4736,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4736,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4737,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4737,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 22
    argCount: 2
    argNames:
    - bio
    - mfl_codemfl_code
    argTypes:
    - BIO*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4747
      start: 4701
    functionDepth: 1
    functionLinenumber: 4701
    functionLinenumberEnd: 4747
    functionName: get_MFL_from_client_hello
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - BIO_get_mem_data
    - TEST_uint_gt
    - PACKET_buf_init
    - PACKET_get_length_prefixed_1
    - TEST_true
    - PACKET_get_length_prefixed_2
    - PACKET_get_1
    - PACKET_remaining
    - PACKET_as_length_prefixed_2
    - PACKET_forward
    - TEST_uint_ne
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int get_MFL_from_client_hello(BIO *bio, int *mfl_codemfl_code)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4764,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4764,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4765,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4768,1
    - Dst: SSL_CTX_set_tlsext_max_fragment_length
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4768,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4772,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4773,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4776,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4776,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4777,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4777,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4778,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4778,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4779,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4780,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4784,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4785,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4787,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4787,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4792,1
    - Dst: get_MFL_from_client_hello
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4792,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4795,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4801,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4802,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 1
    argNames:
    - idx_tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4805
      start: 4757
    functionDepth: 4
    functionLinenumber: 4757
    functionLinenumberEnd: 4805
    functionName: test_max_fragment_len_ext
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - SSL_CTX_set_tlsext_max_fragment_length
    - SSL_set_bio
    - TEST_ptr
    - SSL_connect
    - BIO_s_mem
    - TEST_int_le
    - get_MFL_from_client_hello
    - BIO_free
    - SSL_set_connect_state
    - SSL_new
    - SSL_CTX_new
    - SSL_CTX_free
    - SSL_free
    - TLS_method
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_max_fragment_len_ext(int idx_tst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4814,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4814,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4814,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4814,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4819,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4819,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4820,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4820,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4821,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4821,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4822,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4822,1
    - Dst: SSL_CTX_set_post_handshake_auth
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4825,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4827,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4827,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4831,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4831,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4835,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4836,1
    - Dst: SSL_verify_client_post_handshake
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4836,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4839,1
    - Dst: SSL_key_update
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4839,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4843,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4843,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4847,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4847,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4851,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4852,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4857,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4858,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4859,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4860,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4862
      start: 4808
    functionDepth: 1
    functionLinenumber: 4808
    functionLinenumberEnd: 4862
    functionName: test_pha_key_update
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_key_update
    - SSL_CTX_set_min_proto_version
    - TLS_server_method
    - TEST_true
    - SSL_verify_client_post_handshake
    - create_ssl_objects
    - SSL_set_verify
    - create_ssl_ctx_pair
    - SSL_CTX_set_post_handshake_auth
    - SSL_CTX_set_max_proto_version
    - TEST_int_eq
    - SSL_shutdown
    - TLS_client_method
    - SSL_do_handshake
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_pha_key_update(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_srp_username
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4875,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4881,1
    - Dst: SSL_set_srp_server_param
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4887,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4896,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4898
      start: 4869
    functionDepth: 6
    functionLinenumber: 4869
    functionLinenumberEnd: 4898
    functionName: ssl_srp_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_srp_server_param
    - SSL_get_srp_username
    - SRP_user_pwd_free
    - SRP_VBASE_get1_by_user
    linkageType: ''
    returnType: int
    signature: int ssl_srp_cb(SSL *s, int *ad, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4903,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4906,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4909,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4909,1
    - Dst: SRP_create_verifier
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4912,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4914,1
    - Dst: TXT_DB_read
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4921,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4922,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4925,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4926,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4929,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4930,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4931,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4933,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4934,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4935,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4936,1
    - Dst: TXT_DB_insert
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4936,1
    - Dst: TXT_DB_write
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4941,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4948,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4950,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4951,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4952,1
    - Dst: TXT_DB_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4953,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 3
    argNames:
    - userid
    - password
    - filename
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4956
      start: 4900
    functionDepth: 5
    functionLinenumber: 4900
    functionLinenumberEnd: 4956
    functionName: create_new_vfile
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TXT_DB_read
    - SRP_create_verifier
    - TEST_true
    - TXT_DB_insert
    - TEST_ptr
    - OPENSSL_free
    - TXT_DB_write
    - OPENSSL_strdup
    - OPENSSL_zalloc
    - BIO_free
    - BIO_new_file
    - TXT_DB_free
    - BIO_new_mem_buf
    linkageType: ''
    returnType: int
    signature: int create_new_vfile(char *userid, char *password, const char *filename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SRP_get_default_gN
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4965,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4966,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4969,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4969,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4973,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4974,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4979,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4980,1
    - Dst: sk_SRP_user_pwd_insert
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4987,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4993,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4994,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:4995,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - userid
    - password
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4998
      start: 4958
    functionDepth: 5
    functionLinenumber: 4958
    functionLinenumberEnd: 4998
    functionName: create_new_vbase
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - sk_SRP_user_pwd_insert
    - SRP_user_pwd_free
    - TEST_ptr
    - OPENSSL_strdup
    - SRP_get_default_gN
    - OPENSSL_zalloc
    - BN_free
    - SRP_create_verifier_BN
    linkageType: ''
    returnType: int
    signature: int create_new_vbase(char *userid, char *password)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SRP_VBASE_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5018,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5019,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5023,1
    - Dst: create_new_vbase
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5023,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5027,1
    - Dst: create_new_vfile
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5027,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5033,1
    - Dst: SRP_VBASE_init
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5033,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5037,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5037,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5037,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5037,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5042,1
    - Dst: SSL_CTX_set_srp_username_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5042,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5043,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5043,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5044,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5044,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5045,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5045,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5046,1
    - Dst: SSL_CTX_set_srp_username
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5046,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5050,1
    - Dst: SSL_CTX_set_srp_password
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5050,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5053,1
    - Dst: SSL_CTX_set_srp_password
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5053,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5057,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5057,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5061,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5063,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5066,1
    - Dst: SRP_VBASE_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5073,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5075,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5076,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5077,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5078,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 60
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5081
      start: 5011
    functionDepth: 7
    functionLinenumber: 5011
    functionLinenumberEnd: 5081
    functionName: test_srp
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_CTX_set_cipher_list
    - SSL_CTX_set_srp_username
    - SRP_VBASE_free
    - create_new_vfile
    - TEST_int_gt
    - create_ssl_connection
    - TEST_true
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - SSL_free
    - create_ssl_objects
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_srp_password
    - create_new_vbase
    - TEST_ptr
    - SRP_VBASE_new
    - SRP_VBASE_init
    - SSL_CTX_free
    - SSL_CTX_set_srp_username_callback
    linkageType: ''
    returnType: int
    signature: int test_srp(int tst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5184,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5193,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5193,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5194,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5194,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5195,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5201,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5206,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5206,1
    - Dst: SSL_state_string
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5206,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5216,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - s
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5220
      start: 5179
    functionDepth: 1
    functionLinenumber: 5179
    functionLinenumberEnd: 5220
    functionName: sslapi_info_callback
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_int_ne
    - TEST_true
    - SSL_is_server
    - strcmp
    - TEST_int_eq
    - SSL_state_string
    - TEST_false
    - SSL_in_init
    linkageType: ''
    returnType: void
    signature: void sslapi_info_callback(const SSL *s, int where, int ret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5268,1
    - Dst: setupearly_data_test
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5268,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5273,1
    - Dst: SSL_set_info_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5275,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5279,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5279,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5279,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5281,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5281,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5282,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5282,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5285,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5285,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5286,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5286,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5288,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5288,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5290,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5298,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5298,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5298,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5299,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5308,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5311,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5311,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5313,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5313,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5315,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5320,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5321,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5322,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5323,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5324,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5328,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5328,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5330,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5330,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5331,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5331,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5333,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5333,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5334,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5340,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5341,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5342,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5343,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5344,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 49
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5346
      start: 5232
    functionDepth: 3
    functionLinenumber: 5232
    functionLinenumberEnd: 5346
    functionName: test_info_callback
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - TLS_server_method
    - SSL_SESSION_free
    - TEST_size_t_eq
    - SSL_CTX_set_info_callback
    - SSL_get1_session
    - create_ssl_connection
    - TEST_true
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - TEST_mem_eq
    - SSL_get_early_data_status
    - SSL_free
    - SSL_read_early_data
    - SSL_write_early_data
    - create_ssl_objects
    - SSL_set_info_callback
    - setupearly_data_test
    - SSL_session_reused
    - SSL_shutdown
    - TEST_false
    - SSL_CTX_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_info_callback(int tst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5358,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5358,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5358,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5359,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5365,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5365,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5365,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5366,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5375,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5375,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5377,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5377,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5381,1
    - Dst: SSL_pending
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5381,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5382,1
    - Dst: SSL_has_pending
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5382,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5383,1
    - Dst: SSL_pending
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5383,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5384,1
    - Dst: SSL_has_pending
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5384,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5385,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5385,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5386,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5387,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5387,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5388,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5389,1
    - Dst: SSL_pending
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5389,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5390,1
    - Dst: SSL_has_pending
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5390,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5396,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5397,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5398,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5399,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 25
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5402
      start: 5348
    functionDepth: 1
    functionLinenumber: 5348
    functionLinenumberEnd: 5402
    functionName: test_ssl_pending
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - DTLS_client_method
    - create_ssl_objects
    - SSL_read_ex
    - SSL_pending
    - TEST_int_eq
    - create_ssl_ctx_pair
    - DTLS_server_method
    - TEST_size_t_eq
    - TLS_client_method
    - TEST_false
    - SSL_has_pending
    - SSL_write_ex
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_ssl_pending(int tst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5477,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5477,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5477,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5478,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5484,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5484,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5487,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5487,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5489,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5489,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5492,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5492,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5497,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5497,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5499,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5499,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5503,1
    - Dst: SSL_get_shared_ciphers
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5503,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5504,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5504,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5505,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5512,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5513,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5514,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5515,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5518
      start: 5470
    functionDepth: 1
    functionLinenumber: 5470
    functionLinenumberEnd: 5518
    functionName: test_ssl_get_shared_ciphers
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - SSL_CTX_set_cipher_list
    - create_ssl_objects
    - strcmp
    - TEST_ptr
    - SSL_get_shared_ciphers
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - TEST_info
    - SSL_CTX_set_ciphersuites
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_ssl_get_shared_ciphers(int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_set1_ticket_appdata
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5529,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5529,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5531
      start: 5525
    functionDepth: 1
    functionLinenumber: 5525
    functionLinenumberEnd: 5531
    functionName: gen_tick_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strlen
    - SSL_SESSION_set1_ticket_appdata
    - SSL_get_session
    linkageType: ''
    returnType: int
    signature: int gen_tick_cb(SSL *s, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5547,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5551,1
    - Dst: SSL_SESSION_get0_ticket_appdata
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5551,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5553,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5553,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5554,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5554,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 6
    argNames:
    - s
    - ss
    - keyname
    - keyname_length
    - status
    - arg
    argTypes:
    - SSL*
    - SSL_SESSION*
    - unsigned char*
    - size_t
    - SSL_TICKET_STATUS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5575
      start: 5533
    functionDepth: 1
    functionLinenumber: 5533
    functionLinenumberEnd: 5575
    functionName: dec_tick_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - memcmp
    - TEST_int_eq
    - TEST_size_t_eq
    - SSL_SESSION_get0_ticket_appdata
    - strlen
    linkageType: ''
    returnType: SSL_TICKET_RETURN
    signature: "SSL_TICKET_RETURN dec_tick_cb(SSL *s, SSL_SESSION *ss,\n                                     const
      unsigned char *keyname,\n                                     size_t keyname_length,\n
      \                                    SSL_TICKET_STATUS status,\n                                     void
      *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5585,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5586,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5587,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5587,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5588,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - s
    - key_name
    - iv
    - ctx
    - hctx
    - enc
    argTypes:
    - SSL*
    - unsigned char[]
    - unsigned char[]
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5593
      start: 5577
    functionDepth: 5
    functionLinenumber: 5577
    functionLinenumberEnd: 5593
    functionName: tick_key_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - HMAC_Init_ex
    - memset
    - EVP_sha256
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int tick_key_cb(SSL *s, unsigned char key_name[16],\n                       unsigned
      char iv[EVP_MAX_IV_LENGTH], EVP_CIPHER_CTX *ctx,\n                       HMAC_CTX
      *hctx, int enc)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5660,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5660,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5660,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5661,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5672,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5672,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5675,1
    - Dst: SSL_CTX_set_session_ticket_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5675,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5680,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5680,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5683,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5683,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5685,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5685,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5696,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5697,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5702,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5703,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5704,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5705,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5706,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5710,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5710,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5712,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5712,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5713,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5713,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5719,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5719,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5722,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5722,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5726,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5731,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5737,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5738,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5739,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5740,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5741,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 78
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5744
      start: 5610
    functionDepth: 1
    functionLinenumber: 5610
    functionLinenumberEnd: 5744
    functionName: test_ticket_callbacks
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - TLS_server_method
    - TEST_true
    - create_ssl_objects
    - SSL_SESSION_free
    - TEST_int_eq
    - create_ssl_ctx_pair
    - SSL_shutdown
    - SSL_CTX_set_tlsext_ticket_key_cb
    - TLS_client_method
    - SSL_get1_session
    - TEST_false
    - SSL_CTX_set_session_ticket_cb
    - SSL_session_reused
    - SSL_CTX_set_session_cache_mode
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_ticket_callbacks(int tst)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5778,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5778,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5778,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5779,1
    - Dst: SSL_CTX_set_post_handshake_auth
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5787,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5789,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5789,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5794,1
    - Dst: create_bare_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5794,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5796,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5796,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5797,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5797,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5799,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5799,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5801,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5801,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5802,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5802,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5806,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5806,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5814,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5814,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5815,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5815,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5817,1
    - Dst: SSL_get_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5817,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5823,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5823,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5826,1
    - Dst: SSL_key_update
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5826,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5830,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5831,1
    - Dst: SSL_verify_client_post_handshake
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5831,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5835,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5835,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5837,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5837,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5841,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5841,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5843,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5844,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5844,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5845,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5845,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5847,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5848,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5848,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5854,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5854,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5863,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5863,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5868,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5868,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5869,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5869,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5870,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5870,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5871,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5871,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5872,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5872,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5880,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5880,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5881,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5881,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5882,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5882,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5892,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5892,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5893,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5893,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5900,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5901,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5902,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5903,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 75
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5906
      start: 5759
    functionDepth: 1
    functionLinenumber: 5759
    functionLinenumberEnd: 5906
    functionName: test_shutdown
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_write
    - TLS_server_method
    - SSL_verify_client_post_handshake
    - SSL_get_session
    - TEST_ptr_ne
    - SSL_get_shutdown
    - TEST_size_t_eq
    - create_ssl_connection
    - TEST_true
    - memcmp
    - TEST_int_eq
    - SSL_CTX_set_post_handshake_auth
    - create_ssl_ctx_pair
    - TLS_client_method
    - SSL_free
    - create_bare_ssl_connection
    - SSL_read_ex
    - create_ssl_objects
    - SSL_set_verify
    - SSL_SESSION_is_resumable
    - SSL_write_ex
    - SSL_key_update
    - SSL_get_error
    - SSL_shutdown
    - TEST_false
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_shutdown(int tst)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5917,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5930,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5930,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5933,1
    - Dst: SSL_use_certificate_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5933,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5934,1
    - Dst: SSL_use_PrivateKey_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5934,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5936,1
    - Dst: SSL_check_private_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5936,1
    - Dst: test_mk_file_path
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5943,1
    - Dst: test_mk_file_path
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5944,1
    - Dst: test_mk_file_path
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5945,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5946,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5946,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5946,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5948,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5949,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5951,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5951,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5951,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5952,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5952,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5953,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5953,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5954,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5954,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5957,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5958,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5958,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5958,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5959,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5959,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5960,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5960,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5962,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5963,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5963,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5963,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5964,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5964,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5965,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5965,1
    - Dst: SSL_check_chain
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5967,1
    - Dst: SSL_use_cert_and_key
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5976,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5985,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5986,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5987,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5988,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5989,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5990,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5991,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:5992,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 56
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5994
      start: 5911
    functionDepth: 4
    functionLinenumber: 5911
    functionLinenumberEnd: 5994
    functionName: cert_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - SSL_set_SSL_CTX
    - X509_free
    - TEST_int_ge
    - TEST_true
    - OPENSSL_free
    - PEM_read_bio_PrivateKey
    - test_mk_file_path
    - PEM_read_bio_X509
    - BIO_free
    - SSL_use_cert_and_key
    - SSL_use_PrivateKey_file
    - BIO_new
    - sk_X509_pop_free
    - sk_X509_push
    - sk_X509_new_null
    - TEST_ptr
    - BIO_s_file
    - BIO_read_filename
    - SSL_check_private_key
    - SSL_use_certificate_file
    - EVP_PKEY_free
    - SSL_check_chain
    linkageType: ''
    returnType: int
    signature: int cert_cb(SSL *s, void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6018,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6018,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6018,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6019,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6033,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6033,1
    - Dst: SSL_CTX_set_cert_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6034,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6036,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6036,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6045,1
    - Dst: SSL_set1_sigalgs_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6045,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6053,1
    - Dst: SSL_set1_sigalgs_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6053,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6058,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6059,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6061,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6068,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6069,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6070,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6071,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6072,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 2
    argNames:
    - prot
    - tst
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6075
      start: 6006
    functionDepth: 1
    functionLinenumber: 6006
    functionLinenumberEnd: 6075
    functionName: test_cert_cb_int
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - create_ssl_objects
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - SSL_CTX_set_cert_cb
    - SSL_set1_sigalgs_list
    - SSL_CTX_new
    - SSL_CTX_free
    - SSL_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_cert_cb_int(int prot, int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_cert_cb_int
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6083,1
    - Dst: test_cert_cb_int
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6090
      start: 6078
    functionDepth: 2
    functionLinenumber: 6078
    functionLinenumberEnd: 6090
    functionName: test_cert_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_cert_cb_int
    linkageType: ''
    returnType: int
    signature: int test_cert_cb(int tst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_peer_certificate
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6099,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6100,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6102,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6104,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6105,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6108,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6109,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6110,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6113,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6114,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6115,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6119,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6120,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6121,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - ssl
    - x509
    - pkey
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6130
      start: 6092
    functionDepth: 4
    functionLinenumber: 6092
    functionLinenumberEnd: 6130
    functionName: client_cert_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - TEST_ptr
    - SSL_get_peer_certificate
    - PEM_read_bio_PrivateKey
    - PEM_read_bio_X509
    - BIO_free
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - preverify_ok
    - x509_ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6135
      start: 6132
    functionDepth: 0
    functionLinenumber: 6132
    functionLinenumberEnd: 6135
    functionName: verify_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int verify_cb(int preverify_ok, X509_STORE_CTX *x509_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6152,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6152,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6152,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6153,1
    - Dst: SSL_CTX_set_client_cert_cb
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6164,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6165,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6169,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6169,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6171,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6171,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6178,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6179,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6180,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6184
      start: 6137
    functionDepth: 1
    functionLinenumber: 6137
    functionLinenumberEnd: 6184
    functionName: test_client_cert_cb
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_verify
    - TLS_server_method
    - TEST_true
    - SSL_CTX_set_client_cert_cb
    - create_ssl_objects
    - create_ssl_ctx_pair
    - TLS_client_method
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_client_cert_cb(int tst)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6202,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6205,1
    - Dst: X509_NAME_new
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6206,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6207,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6208,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6208,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6216,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6216,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6216,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6217,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6223,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6226,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6226,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6227,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6227,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6227,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6228,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6228,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6228,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6229,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6229,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6230,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6230,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6230,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6231,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6231,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6231,1
    - Dst: SSL_CTX_set0_CA_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6234,1
    - Dst: SSL_CTX_set0_CA_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6235,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6239,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6239,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6240,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6240,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6240,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6241,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6241,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6241,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6242,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6242,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6243,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6243,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6243,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6244,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6244,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6244,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6247,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6248,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6252,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6252,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6254,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6254,1
    - Dst: SSL_get0_peer_CA_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6262,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6265,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6266,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6266,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6267,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6267,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6267,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6269,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6269,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6269,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6272,1
    - Dst: SSL_get0_peer_CA_list
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6281,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6282,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6283,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6283,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6284,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6284,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6284,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6286,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6286,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6286,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6293,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6294,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6295,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6296,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6297,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6298,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6299,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6300,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 58
    argCount: 2
    argNames:
    - prot
    - tst
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6303
      start: 6194
    functionDepth: 2
    functionLinenumber: 6194
    functionLinenumberEnd: 6303
    functionName: test_ca_names_int
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_CTX_set0_CA_list
    - STACK_OF
    - SSL_get0_peer_CA_list
    - X509_NAME_dup
    - sk_X509_NAME_value
    - create_ssl_connection
    - TEST_true
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - X509_NAME_add_entry_by_txt
    - SSL_free
    - OSSL_NELEM
    - SSL_CTX_set_verify
    - create_ssl_objects
    - sk_X509_NAME_push
    - SSL_CTX_set_client_CA_list
    - sk_X509_NAME_new_null
    - X509_NAME_cmp
    - TEST_ptr_null
    - X509_NAME_new
    - TEST_ptr
    - sk_X509_NAME_num
    - X509_NAME_free
    - SSL_CTX_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: int
    signature: int test_ca_names_int(int prot, int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ca_names_int
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6311,1
    - Dst: test_ca_names_int
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6318
      start: 6306
    functionDepth: 3
    functionLinenumber: 6306
    functionLinenumberEnd: 6318
    functionName: test_ca_names
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_ca_names_int
    linkageType: ''
    returnType: int
    signature: int test_ca_names(int tst)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6349,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6349,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6349,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6350,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6355,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6355,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6360,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6360,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6366,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6366,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6371,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6371,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6374,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6374,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6376,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6376,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6383,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6383,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6384,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6384,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6385,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6385,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6386,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6386,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6389,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6390,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6393,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6393,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6397,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6397,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6403,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6403,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6412,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6412,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6424,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6424,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6429,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6429,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6443,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6443,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6449,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6449,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6452,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6452,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6453,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6453,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6454,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6454,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6457,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6457,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6465,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6466,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6467,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6468,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6469,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 79
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6472
      start: 6332
    functionDepth: 1
    functionLinenumber: 6332
    functionLinenumberEnd: 6472
    functionName: test_servername
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - TLS_server_method
    - TEST_ptr_ne
    - SSL_SESSION_free
    - SSL_get1_session
    - create_ssl_connection
    - TEST_true
    - SSL_set_tlsext_host_name
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - SSL_get_servername
    - SSL_free
    - create_ssl_objects
    - TEST_str_eq
    - SSL_SESSION_is_resumable
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_session_reused
    - SSL_shutdown
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_servername(int tst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6476,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6476,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6477,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6477,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6478,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6478,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6481,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6483,1
    - Dst: test_export_key_mat
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6489,1
    - Dst: CRYPTO_get_alloc_counts
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6490,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6491,1
    - Dst: test_mk_file_path
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6497,1
    - Dst: test_mk_file_path
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6501,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6503,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6507,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6508,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6510,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6513,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6515,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6516,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6517,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6519,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6520,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6521,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6523,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6524,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6525,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6526,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6527,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6529,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6529,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6530,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6533,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6536,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6537,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6540,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6545,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6546,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6547,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6548,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6549,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6550,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6551,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6552,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6554,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6558,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6559,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6560,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6562,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6564,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6566,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6567,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6568,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6570,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6572,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6573,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6575,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6576,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6577,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6579,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6580,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6580,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6582,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6584,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6585,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6586,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6586,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6587,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6588,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6589,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6590,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6591,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6594
      start: 6474
    functionDepth: 2
    functionLinenumber: 6474
    functionLinenumberEnd: 6594
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - test_export_key_mat
    - getenv
    - ADD_TEST
    - TEST_ptr
    - ADD_ALL_TESTS
    - OPENSSL_free
    - test_get_argument
    - CRYPTO_get_alloc_counts
    - TEST_error
    - test_mk_file_path
    - test_printf_stdout
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6598,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6599,1
    - Dst: bio_s_mempacket_test_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6600,1
    - Dst: bio_s_always_retry_free
      Src: /src/openssl-1.1.1g/test/sslapitest.c:6601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6602
      start: 6596
    functionDepth: 1
    functionLinenumber: 6596
    functionLinenumberEnd: 6602
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - bio_s_mempacket_test_free
    - bio_s_always_retry_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:36,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 48
    functionName: get_faked_bytes
    functionSourceFile: /src/openssl-1.1.1g/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - bytes
    - TEST_size_t_gt
    linkageType: ''
    returnType: int
    signature: int get_faked_bytes(unsigned char *buf, int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:53,1
    - Dst: RAND_get_rand_method
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:53,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:60,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:65,1
    - Dst: RAND_set_rand_method
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - hex_bytes
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: start_fake_rand
    functionSourceFile: /src/openssl-1.1.1g/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - RAND_set_rand_method
    - RAND_get_rand_method
    - OPENSSL_hexstr2buf
    - strlen
    linkageType: ''
    returnType: int
    signature: int start_fake_rand(const char *hex_bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:75,1
    - Dst: RAND_set_rand_method
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: restore_rand
    functionSourceFile: /src/openssl-1.1.1g/test/sm2_internal_test.c
    functionUses: 1
    functionsReached:
    - RAND_set_rand_method
    - OPENSSL_free
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int restore_rand(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:96,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:96,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:97,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:97,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:98,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:98,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:101,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:102,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:105,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:106,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:109,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:109,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:110,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:110,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:111,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:111,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:115,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:115,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:116,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:116,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:117,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:117,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:122,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:123,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:124,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:125,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:126,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:127,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:128,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:129,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:131,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 7
    argNames:
    - p_hex
    - a_hex
    - b_hex
    - x_hex
    - y_hex
    - order_hex
    - cof_hex
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 136
    functionName: create_EC_group
    functionSourceFile: /src/openssl-1.1.1g/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EC_POINT_set_affine_coordinates
    - TEST_ptr
    - EC_POINT_free
    - EC_GROUP_set_generator
    - BN_free
    - EC_GROUP_free
    - EC_POINT_new
    - BN_hex2bn
    - EC_GROUP_new_curve_GFp
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *create_EC_group(const char *p_hex, const char *a_hex,\n
      \                                const char *b_hex, const char *x_hex,\n                                 const
      char *y_hex, const char *order_hex,\n                                 const
      char *cof_hex)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:144,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:148,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:156,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:157,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:157,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:160,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:161,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:162,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:162,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:163,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:163,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:166,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:167,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:168,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:168,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:169,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:169,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:170,1
    - Dst: sm2_ciphertext_size
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:170,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:173,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:174,1
    - Dst: start_fake_rand
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:177,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:178,1
    - Dst: sm2_encrypt
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:178,1
    - Dst: restore_rand
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:180,1
    - Dst: restore_rand
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:183,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:185,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:188,1
    - Dst: sm2_plaintext_size
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:188,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:189,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:192,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:193,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:194,1
    - Dst: sm2_decrypt
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:194,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:195,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:196,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:201,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:202,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:203,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:204,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:205,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:206,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 43
    argCount: 6
    argNames:
    - group
    - digest
    - privkey_hex
    - message
    - k_hex
    - ctext_hex
    argTypes:
    - EC_GROUP*
    - EVP_MD*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 138
    functionDepth: 8
    functionLinenumber: 138
    functionLinenumberEnd: 208
    functionName: test_sm2_crypt
    functionSourceFile: /src/openssl-1.1.1g/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_KEY_set_group
    - OPENSSL_hexstr2buf
    - BN_hex2bn
    - restore_rand
    - sm2_ciphertext_size
    - sm2_plaintext_size
    - EC_POINT_mul
    - TEST_true
    - TEST_int_eq
    - OPENSSL_free
    - TEST_mem_eq
    - OPENSSL_zalloc
    - sm2_encrypt
    - BN_free
    - sm2_decrypt
    - EC_KEY_set_public_key
    - EC_KEY_new
    - TEST_ptr
    - EC_POINT_free
    - EC_KEY_free
    - EC_POINT_new
    - EC_KEY_set_private_key
    - start_fake_rand
    - strlen
    linkageType: ''
    returnType: int
    signature: "int test_sm2_crypt(const EC_GROUP *group,\n                          const
      EVP_MD *digest,\n                          const char *privkey_hex,\n                          const
      char *message,\n                          const char *k_hex, const char *ctext_hex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_EC_group
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:214,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:223,1
    - Dst: test_sm2_crypt
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:226,1
    - Dst: EVP_sm3
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:228,1
    - Dst: test_sm2_crypt
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:241,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:243,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 210
    functionDepth: 9
    functionLinenumber: 210
    functionLinenumberEnd: 260
    functionName: sm2_crypt_test
    functionSourceFile: /src/openssl-1.1.1g/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - test_sm2_crypt
    - TEST_ptr
    - EC_GROUP_free
    - EVP_sha256
    - create_EC_group
    - EVP_sm3
    linkageType: ''
    returnType: int
    signature: int sm2_crypt_test(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:270,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:281,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:281,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:284,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:285,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:286,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:286,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:287,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:287,1
    - Dst: EC_POINT_new
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:290,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:291,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:292,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:292,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:293,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:293,1
    - Dst: start_fake_rand
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:296,1
    - Dst: sm2_do_sign
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:297,1
    - Dst: EVP_sm3
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:297,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:297,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:299,1
    - Dst: restore_rand
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:300,1
    - Dst: restore_rand
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:303,1
    - Dst: ECDSA_SIG_get0
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:305,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:307,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:307,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:308,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:308,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:309,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:310,1
    - Dst: sm2_do_verify
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:313,1
    - Dst: EVP_sm3
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:313,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:314,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:317,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:320,1
    - Dst: EC_POINT_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:321,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:322,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:323,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:324,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:325,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 7
    argNames:
    - group
    - userid
    - privkey_hex
    - message
    - k_hex
    - r_hex
    - s_hex
    argTypes:
    - EC_GROUP*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 262
    functionDepth: 8
    functionLinenumber: 262
    functionLinenumberEnd: 328
    functionName: test_sm2_sign
    functionSourceFile: /src/openssl-1.1.1g/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - start_fake_rand
    - EC_KEY_set_group
    - BN_hex2bn
    - sm2_do_sign
    - restore_rand
    - EC_POINT_mul
    - TEST_true
    - ECDSA_SIG_free
    - BN_free
    - sm2_do_verify
    - ECDSA_SIG_get0
    - EC_KEY_set_public_key
    - EC_KEY_new
    - TEST_BN_eq
    - TEST_ptr
    - EC_POINT_free
    - EC_KEY_free
    - EC_POINT_new
    - EC_KEY_set_private_key
    - EVP_sm3
    - strlen
    linkageType: ''
    returnType: int
    signature: "int test_sm2_sign(const EC_GROUP *group,\n                         const
      char *userid,\n                         const char *privkey_hex,\n                         const
      char *message,\n                         const char *k_hex,\n                         const
      char *r_hex,\n                         const char *s_hex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_EC_group
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:335,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:344,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:347,1
    - Dst: test_sm2_sign
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:347,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 330
    functionDepth: 9
    functionLinenumber: 330
    functionLinenumberEnd: 364
    functionName: sm2_sig_test
    functionSourceFile: /src/openssl-1.1.1g/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - test_sm2_sign
    - EC_GROUP_free
    - create_EC_group
    linkageType: ''
    returnType: int
    signature: int sm2_sig_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:371,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:373,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sm2_internal_test.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 377
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/versions.c:17,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/versions.c:18,1
    - Dst: OpenSSL_version_num
      Src: /src/openssl-1.1.1g/test/versions.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/versions.c
    functionUses: 0
    functionsReached:
    - OpenSSL_version_num
    - printf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_async.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_set_key
      Src: /src/openssl-1.1.1g/test/casttest.c:63,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/casttest.c:64,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/casttest.c:65,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/casttest.c:66,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/casttest.c:70,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/casttest.c:71,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/casttest.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 76
    functionName: cast_test_vector
    functionSourceFile: /src/openssl-1.1.1g/test/casttest.c
    functionUses: 0
    functionsReached:
    - CAST_ecb_encrypt
    - TEST_info
    - TEST_mem_eq
    - CAST_set_key
    linkageType: ''
    returnType: int
    signature: int cast_test_vector(int z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/casttest.c:85,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/casttest.c:86,1
    - Dst: CAST_set_key
      Src: /src/openssl-1.1.1g/test/casttest.c:89,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/casttest.c:90,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/casttest.c:91,1
    - Dst: CAST_set_key
      Src: /src/openssl-1.1.1g/test/casttest.c:92,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/casttest.c:93,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/casttest.c:94,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/casttest.c:97,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/casttest.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: cast_test_iterations
    functionSourceFile: /src/openssl-1.1.1g/test/casttest.c
    functionUses: 0
    functionsReached:
    - CAST_set_key
    - CAST_ecb_encrypt
    - TEST_mem_eq
    - memcpy
    linkageType: ''
    returnType: int
    signature: int cast_test_iterations(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/casttest.c:108,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/casttest.c:108,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/casttest.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/casttest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:360,1
    - Dst: d2i_RSAPrivateKey
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:360,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:363,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:363,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:364,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:364,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:371,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 353
    functionDepth: 7
    functionLinenumber: 353
    functionLinenumberEnd: 375
    functionName: load_example_rsa_key
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - d2i_RSAPrivateKey
    - TEST_ptr
    - EVP_PKEY_set1_RSA
    - EVP_PKEY_new
    - EVP_PKEY_free
    - RSA_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *load_example_rsa_key(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:387,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:389,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:389,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:390,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:390,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:390,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:391,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:391,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:392,1
    - Dst: EVP_SealInit
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:392,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:394,1
    - Dst: EVP_SealUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:394,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:396,1
    - Dst: EVP_SealFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:396,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:402,1
    - Dst: EVP_OpenInit
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:402,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:403,1
    - Dst: EVP_OpenUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:403,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:405,1
    - Dst: EVP_OpenFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:405,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:409,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:414,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:415,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:416,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 377
    functionDepth: 8
    functionLinenumber: 377
    functionLinenumberEnd: 418
    functionName: test_EVP_Enveloped
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_SealInit
    - EVP_OpenFinal
    - EVP_PKEY_free
    - TEST_ptr
    - EVP_SealFinal
    - OPENSSL_free
    - EVP_OpenInit
    - EVP_OpenUpdate
    - EVP_CIPHER_CTX_new
    - TEST_mem_eq
    - OPENSSL_zalloc
    - load_example_rsa_key
    - EVP_PKEY_size
    - EVP_SealUpdate
    - EVP_aes_256_cbc
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_EVP_Enveloped(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:429,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:429,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:430,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:430,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:431,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:431,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:434,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:434,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:434,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:435,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:435,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:439,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:439,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:440,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:440,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:443,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:443,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:444,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:444,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:448,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:448,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:448,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:450,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:450,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:452,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:452,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:458,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:459,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:460,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:461,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 421
    functionDepth: 8
    functionLinenumber: 421
    functionLinenumberEnd: 464
    functionName: test_EVP_DigestSignInit
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_true
    - EVP_MD_CTX_new
    - EVP_DigestVerifyUpdate
    - EVP_PKEY_free
    - TEST_ptr
    - EVP_DigestVerifyInit
    - OPENSSL_free
    - TEST_size_t_eq
    - EVP_DigestSignInit
    - EVP_DigestSignUpdate
    - EVP_sha256
    - load_example_rsa_key
    - EVP_MD_CTX_free
    - EVP_PKEY_size
    - EVP_DigestVerifyFinal
    - EVP_DigestSignFinal
    linkageType: ''
    returnType: int
    signature: int test_EVP_DigestSignInit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:472,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:472,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:473,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:473,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:476,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:476,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:476,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:477,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:477,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:478,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:478,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:484,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:485,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 466
    functionDepth: 8
    functionLinenumber: 466
    functionLinenumberEnd: 487
    functionName: test_EVP_DigestVerifyInit
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_MD_CTX_new
    - EVP_DigestVerifyUpdate
    - TEST_ptr
    - EVP_sha256
    - load_example_rsa_key
    - EVP_MD_CTX_free
    - EVP_PKEY_free
    - EVP_DigestVerifyFinal
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: int test_EVP_DigestVerifyInit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:500,1
    - Dst: d2i_AutoPrivateKey
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:500,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:501,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:502,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:502,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 489
    functionDepth: 6
    functionLinenumber: 489
    functionLinenumberEnd: 510
    functionName: test_d2i_AutoPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - d2i_AutoPrivateKey
    - TEST_ptr
    - TEST_int_eq
    - EVP_PKEY_id
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int test_d2i_AutoPrivateKey(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:561,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:561,1
    - Dst: d2i_EC_PUBKEY_bio
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:564,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:565,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:566,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:568,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 555
    functionDepth: 4
    functionLinenumber: 555
    functionLinenumberEnd: 571
    functionName: test_invalide_ec_char2_pub_range_decode
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - d2i_EC_PUBKEY_bio
    - EC_KEY_free
    - BIO_new_mem_buf
    - BIO_free
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_invalide_ec_char2_pub_range_decode(int id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:581,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:581,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:585,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:589,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:589,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:595,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 599
    functionName: test_EVP_PKCS82PKEY
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - TEST_ptr
    - PKCS8_PRIV_KEY_INFO_free
    - d2i_PKCS8_PRIV_KEY_INFO
    - EVP_PKEY_free
    - EVP_PKCS82PKEY
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKCS82PKEY(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:641,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:641,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:642,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:645,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:646,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:649,1
    - Dst: EVP_PKEY_set_alias_type
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:649,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:652,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:652,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:655,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:655,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:658,1
    - Dst: EVP_PKEY_CTX_set1_id
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:658,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:659,1
    - Dst: EVP_MD_CTX_set_pkey_ctx
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:662,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:664,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:664,1
    - Dst: EVP_sm3
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:664,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:667,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:667,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:667,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:670,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:670,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:675,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:676,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:677,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:678,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 604
    functionDepth: 4
    functionLinenumber: 604
    functionLinenumberEnd: 680
    functionName: test_EVP_SM2_verify
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_set1_id
    - TEST_int_gt
    - EVP_MD_CTX_free
    - EVP_DigestVerifyInit
    - TEST_true
    - EVP_PKEY_CTX_free
    - BIO_free
    - EVP_DigestVerifyFinal
    - EVP_PKEY_set_alias_type
    - EVP_MD_CTX_new
    - BIO_new_mem_buf
    - EVP_DigestVerifyUpdate
    - TEST_ptr
    - EVP_MD_CTX_set_pkey_ctx
    - EVP_PKEY_free
    - EVP_sm3
    - strlen
    - PEM_read_bio_PUBKEY
    linkageType: ''
    returnType: int
    signature: int test_EVP_SM2_verify(void)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:704,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:705,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:708,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:708,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:711,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:711,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:714,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:714,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:717,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:718,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:721,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:721,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:724,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:724,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:727,1
    - Dst: EVP_PKEY_set_alias_type
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:727,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:730,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:730,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:733,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:733,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:736,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:736,1
    - Dst: EVP_MD_CTX_set_pkey_ctx
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:739,1
    - Dst: EVP_MD_CTX_set_pkey_ctx
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:740,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:742,1
    - Dst: EVP_PKEY_CTX_set1_id
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:742,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:745,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:745,1
    - Dst: EVP_sm3
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:745,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:748,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:748,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:752,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:752,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:755,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:755,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:758,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:758,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:761,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:761,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:766,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:766,1
    - Dst: EVP_sm3
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:766,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:769,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:769,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:772,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:772,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:777,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:777,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:780,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:780,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:783,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:783,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:786,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:786,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:789,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:789,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:792,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:795,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:795,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:800,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:801,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:802,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:803,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:804,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:805,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:806,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:807,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:808,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 810
    functionName: test_EVP_SM2
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_encrypt
    - EVP_PKEY_decrypt_init
    - TEST_size_t_eq
    - EVP_PKEY_decrypt
    - EVP_PKEY_CTX_set1_id
    - TEST_int_gt
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_free
    - EVP_PKEY_CTX_new_id
    - EVP_DigestVerifyInit
    - OPENSSL_malloc
    - TEST_true
    - EVP_PKEY_paramgen
    - memcmp
    - OPENSSL_free
    - EVP_DigestSignInit
    - EVP_PKEY_CTX_free
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_size
    - EVP_DigestVerifyFinal
    - EVP_DigestSignFinal
    - EVP_PKEY_set_alias_type
    - EVP_MD_CTX_new
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - EVP_DigestVerifyUpdate
    - TEST_ptr
    - EVP_PKEY_keygen
    - EVP_MD_CTX_set_pkey_ctx
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_keygen_init
    - EVP_PKEY_free
    - EVP_sm3
    linkageType: ''
    returnType: int
    signature: int test_EVP_SM2(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:857,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:860,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:862,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:867,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:869,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:875,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:876,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:876,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:877,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:877,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:878,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:879,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:879,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:880,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:880,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:881,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:886,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 2
    argNames:
    - tst
    - pub
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 845
    functionDepth: 3
    functionLinenumber: 845
    functionLinenumberEnd: 888
    functionName: test_set_get_raw_keys_int
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_ptr
    - EVP_PKEY_get_raw_private_key
    - EVP_PKEY_get_raw_public_key
    - memset
    - TEST_mem_eq
    - EVP_PKEY_new_raw_private_key
    - EVP_PKEY_free
    - EVP_PKEY_new_raw_public_key
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_set_get_raw_keys_int(int tst, int pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_set_get_raw_keys_int
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:892,1
    - Dst: test_set_get_raw_keys_int
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 4
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: test_set_get_raw_keys
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - test_set_get_raw_keys_int
    linkageType: ''
    returnType: int
    signature: int test_set_get_raw_keys(int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 899
    functionName: pkey_custom_check
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pkey_custom_check(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 904
    functionName: pkey_custom_pub_check
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pkey_custom_pub_check(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 909
    functionName: pkey_custom_param_check
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pkey_custom_param_check(EVP_PKEY *pkey)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:937,1
    - Dst: d2i_AutoPrivateKey
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:937,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:938,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:939,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:939,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:944,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:944,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:945,1
    - Dst: d2i_EC_PUBKEY_bio
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:945,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:946,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:946,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:947,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:947,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:951,1
    - Dst: d2i_ECParameters
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:951,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:952,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:953,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:953,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:954,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:954,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:962,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:962,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:965,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:965,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:968,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:968,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:971,1
    - Dst: EVP_PKEY_param_check
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:971,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:974,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:976,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:979,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:979,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:982,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:982,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:985,1
    - Dst: EVP_PKEY_param_check
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:985,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:991,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:992,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:993,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:994,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 53
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 913
    functionDepth: 8
    functionLinenumber: 913
    functionLinenumberEnd: 996
    functionName: test_EVP_PKEY_check
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_up_ref
    - EVP_PKEY_check
    - EVP_PKEY_id
    - EVP_PKEY_new
    - EVP_PKEY_CTX_new_id
    - TEST_ptr_eq
    - TEST_true
    - TEST_int_eq
    - EVP_PKEY_CTX_free
    - BIO_free
    - EVP_PKEY_public_check
    - d2i_ECParameters
    - d2i_AutoPrivateKey
    - EVP_PKEY_param_check
    - BIO_new_mem_buf
    - TEST_ptr
    - EVP_PKEY_assign_EC_KEY
    - d2i_EC_PUBKEY_bio
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKEY_check(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1013,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1013,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1019,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1021,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1021,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1022,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1022,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1022,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1023,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_salt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1023,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1025,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1025,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1027,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1027,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1029,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1029,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1030,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1037,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 998
    functionDepth: 3
    functionLinenumber: 998
    functionLinenumberEnd: 1040
    functionName: test_HKDF
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set1_hkdf_salt
    - EVP_PKEY_CTX_set_hkdf_md
    - TEST_ptr
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_add1_hkdf_info
    - memset
    - TEST_int_gt
    - EVP_sha256
    - TEST_mem_eq
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_new_id
    linkageType: ''
    returnType: int
    signature: int test_HKDF(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1050,1
    - Dst: d2i_X509_PUBKEY
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1050,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1053,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1053,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1059,1
    - Dst: d2i_X509_PUBKEY
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1059,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1062,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1062,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1068,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1043
    functionDepth: 5
    functionLinenumber: 1043
    functionLinenumberEnd: 1070
    functionName: test_X509_PUBKEY_inplace
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - d2i_X509_PUBKEY
    - TEST_ptr
    - X509_PUBKEY_free
    - X509_PUBKEY_get0
    linkageType: ''
    returnType: int
    signature: int test_X509_PUBKEY_inplace(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1093,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1093,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1094,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1094,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1094,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1096,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1096,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1099,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1099,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1101,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1102,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1102,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1105,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1106,1
    - Dst: EVP_EncryptFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1106,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1107,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1112,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1112,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1112,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1114,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1114,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1120,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1120,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1122,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1123,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1123,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1126,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1127,1
    - Dst: EVP_DecryptFinal
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1127,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1128,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1129,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1134,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1074
    functionDepth: 4
    functionLinenumber: 1074
    functionLinenumberEnd: 1136
    functionName: test_decrypt_null_chunks
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptFinal
    - TEST_true
    - TEST_ptr
    - TEST_int_eq
    - EVP_EncryptFinal
    - EVP_EncryptUpdate
    - EVP_DecryptUpdate
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - EVP_DecryptInit_ex
    - EVP_chacha20_poly1305
    linkageType: ''
    returnType: int
    signature: int test_decrypt_null_chunks(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DH_get_2048_256
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1146,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1147,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1148,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1149,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1150,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1151,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1152,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1153,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1156,1
    - Dst: EVP_PKEY_set1_DH
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1156,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1157,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1157,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1161,1
    - Dst: EVP_PKEY_set1_DH
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1161,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1162,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1162,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1167,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1168,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1169,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1170,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1140
    functionDepth: 5
    functionLinenumber: 1140
    functionLinenumberEnd: 1173
    functionName: test_EVP_PKEY_set1_DH
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - DH_get_2048_256
    - TEST_true
    - EVP_PKEY_set1_DH
    - TEST_ptr
    - TEST_int_eq
    - EVP_PKEY_id
    - DH_new_by_nid
    - DH_free
    - EVP_PKEY_new
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKEY_set1_DH(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1178,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1179,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1180,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1181,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1181,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1183,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1186,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1187,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1189,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1189,1
    - Dst: EVP_PKEY_meth_new
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1190,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1191,1
    - Dst: EVP_PKEY_meth_set_check
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1193,1
    - Dst: EVP_PKEY_meth_set_public_check
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1194,1
    - Dst: EVP_PKEY_meth_set_param_check
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1195,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1196,1
    - Dst: EVP_PKEY_meth_add0
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1196,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1198,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1198,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1199,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1201,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1202,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1203,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1206,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/evp_extra_test.c:1209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1213
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_TEST
    - TEST_ptr
    - ADD_ALL_TESTS
    - TEST_int_eq
    - EVP_PKEY_meth_add0
    - EVP_PKEY_meth_set_check
    - EVP_PKEY_meth_set_param_check
    - EVP_PKEY_meth_set_public_check
    - EVP_PKEY_meth_new
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:23,1
    - Dst: SSL_CTX_get_min_proto_version
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:23,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:24,1
    - Dst: SSL_CTX_get_max_proto_version
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:24,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: test_func
    functionSourceFile: /src/openssl-1.1.1g/test/sysdefaulttest.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - TEST_int_eq
    - SSL_CTX_get_max_proto_version
    - SSL_CTX_get_min_proto_version
    linkageType: ''
    returnType: int
    signature: int test_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: global_init
    functionSourceFile: /src/openssl-1.1.1g/test/sysdefaulttest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_ssl
    linkageType: ''
    returnType: int
    signature: int global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:41,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:41,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:41,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sysdefaulttest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - SSL_CTX_new
    - ADD_TEST
    - TLS_method
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sysdefaulttest.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sysdefaulttest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:31,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:31,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:31,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:31,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:40,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:40,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:41,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:41,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:42,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:42,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:44,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:44,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:46,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:46,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:50,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:51,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:52,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:57,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:57,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:60,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:63,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:63,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:67,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:67,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:69,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:72,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:72,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:72,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:77,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:78,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:79,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:80,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 83
    functionName: test_fatalerr
    functionSourceFile: /src/openssl-1.1.1g/test/fatalerrtest.c
    functionUses: 0
    functionsReached:
    - SSL_write
    - SSL_CTX_set_cipher_list
    - TEST_int_gt
    - printf
    - create_ssl_connection
    - TEST_true
    - create_ssl_ctx_pair
    - TEST_error
    - ERR_clear_error
    - SSL_CTX_set_ciphersuites
    - SSL_free
    - TLS_method
    - create_ssl_objects
    - SSL_read
    - BIO_write
    - TEST_ptr
    - TEST_int_le
    - SSL_get_wbio
    - TEST_false
    - SSL_CTX_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_fatalerr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:87,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:87,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:88,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:88,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/fatalerrtest.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/fatalerrtest.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:55,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:55,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:57,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:61,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:61,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:81,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:81,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:83,1
    - Dst: SSL_alloc_buffers
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:83,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:86,1
    - Dst: SSL_alloc_buffers
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:88,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:88,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:91,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:96,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:100,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:105,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:115,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:115,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:118,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:118,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:120,1
    - Dst: SSL_alloc_buffers
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:120,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:122,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:122,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:125,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:129,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:133,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:138,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:145,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:147,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:148,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 75
    argCount: 1
    argNames:
    - test
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 46
    functionDepth: 6
    functionLinenumber: 46
    functionLinenumberEnd: 151
    functionName: test_func
    functionSourceFile: /src/openssl-1.1.1g/test/sslbuffertest.c
    functionUses: 0
    functionsReached:
    - SSL_write
    - TEST_true
    - create_ssl_objects
    - SSL_free_buffers
    - SSL_get_error
    - TEST_size_t_eq
    - SSL_read
    - ERR_print_errors_fp
    - TEST_error
    - TEST_mem_eq
    - SSL_alloc_buffers
    - SSL_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int test_func(int test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:155,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: global_init
    functionSourceFile: /src/openssl-1.1.1g/test/sslbuffertest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_mem_ctrl
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: int global_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:164,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:164,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:165,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:165,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:168,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:168,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:168,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:171,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sslbuffertest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_ptr
    - ADD_ALL_TESTS
    - create_ssl_ctx_pair
    - test_get_argument
    - TLS_client_method
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:181,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslbuffertest.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sslbuffertest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/secmemtest.c:21,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-1.1.1g/test/secmemtest.c:23,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/secmemtest.c:25,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/secmemtest.c:26,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-1.1.1g/test/secmemtest.c:26,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-1.1.1g/test/secmemtest.c:28,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/secmemtest.c:30,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:31,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-1.1.1g/test/secmemtest.c:31,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/secmemtest.c:32,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-1.1.1g/test/secmemtest.c:32,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-1.1.1g/test/secmemtest.c:34,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/secmemtest.c:35,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:37,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-1.1.1g/test/secmemtest.c:37,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/secmemtest.c:39,1
    - Dst: CRYPTO_secure_used
      Src: /src/openssl-1.1.1g/test/secmemtest.c:39,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/secmemtest.c:41,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/secmemtest.c:42,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/secmemtest.c:45,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-1.1.1g/test/secmemtest.c:45,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:47,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-1.1.1g/test/secmemtest.c:48,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/secmemtest.c:49,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:51,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-1.1.1g/test/secmemtest.c:51,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/secmemtest.c:53,1
    - Dst: CRYPTO_secure_used
      Src: /src/openssl-1.1.1g/test/secmemtest.c:53,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:55,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/secmemtest.c:58,1
    - Dst: CRYPTO_secure_used
      Src: /src/openssl-1.1.1g/test/secmemtest.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:60,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/secmemtest.c:63,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-1.1.1g/test/secmemtest.c:63,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:64,1
    - Dst: CRYPTO_secure_malloc_initialized
      Src: /src/openssl-1.1.1g/test/secmemtest.c:64,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:66,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/secmemtest.c:69,1
    - Dst: CRYPTO_secure_used
      Src: /src/openssl-1.1.1g/test/secmemtest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:70,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-1.1.1g/test/secmemtest.c:70,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/secmemtest.c:71,1
    - Dst: CRYPTO_secure_malloc_initialized
      Src: /src/openssl-1.1.1g/test/secmemtest.c:71,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/secmemtest.c:74,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:75,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-1.1.1g/test/secmemtest.c:75,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/secmemtest.c:77,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-1.1.1g/test/secmemtest.c:77,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:78,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-1.1.1g/test/secmemtest.c:78,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/secmemtest.c:84,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-1.1.1g/test/secmemtest.c:84,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/secmemtest.c:85,1
    - Dst: CRYPTO_secure_malloc_initialized
      Src: /src/openssl-1.1.1g/test/secmemtest.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:86,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-1.1.1g/test/secmemtest.c:86,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/secmemtest.c:115,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:116,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-1.1.1g/test/secmemtest.c:116,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:117,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-1.1.1g/test/secmemtest.c:117,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:125,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:126,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:127,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/secmemtest.c:130,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/secmemtest.c:132,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-1.1.1g/test/secmemtest.c:132,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 134
    functionName: test_sec_mem
    functionSourceFile: /src/openssl-1.1.1g/test/secmemtest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_secure_malloc_init
    - OPENSSL_malloc
    - TEST_true
    - OPENSSL_secure_clear_free
    - TEST_ptr
    - OPENSSL_free
    - OPENSSL_secure_malloc
    - TEST_size_t_eq
    - OPENSSL_secure_free
    - TEST_false
    - TEST_info
    - CRYPTO_secure_used
    - TEST_ptr_null
    - CRYPTO_secure_malloc_done
    - CRYPTO_secure_allocated
    - CRYPTO_secure_malloc_initialized
    linkageType: ''
    returnType: int
    signature: int test_sec_mem(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/secmemtest.c:143,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-1.1.1g/test/secmemtest.c:143,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/secmemtest.c:144,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-1.1.1g/test/secmemtest.c:144,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/secmemtest.c:148,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:154,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/secmemtest.c:164,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-1.1.1g/test/secmemtest.c:170,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-1.1.1g/test/secmemtest.c:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 176
    functionName: test_sec_mem_clear
    functionSourceFile: /src/openssl-1.1.1g/test/secmemtest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_secure_malloc_init
    - TEST_true
    - TEST_uchar_eq
    - TEST_ptr
    - OPENSSL_secure_malloc
    - OPENSSL_secure_free
    - CRYPTO_secure_malloc_done
    linkageType: ''
    returnType: int
    signature: int test_sec_mem_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/secmemtest.c:180,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/secmemtest.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/secmemtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/chacha_internal_test.c:165,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/chacha_internal_test.c:166,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-1.1.1g/test/chacha_internal_test.c:168,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/chacha_internal_test.c:175,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/chacha_internal_test.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 180
    functionName: test_cha_cha_internal
    functionSourceFile: /src/openssl-1.1.1g/test/chacha_internal_test.c
    functionUses: 0
    functionsReached:
    - ChaCha20_ctr32
    - TEST_uchar_eq
    - memcpy
    - TEST_info
    - memset
    linkageType: ''
    returnType: int
    signature: int test_cha_cha_internal(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openssl-1.1.1g/test/chacha_internal_test.c:185,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/chacha_internal_test.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/chacha_internal_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cpuid_setup
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: int_hash
    functionSourceFile: /src/openssl-1.1.1g/test/lhash_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long int
    signature: unsigned long int int_hash(const int *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - q
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: int_cmp
    functionSourceFile: /src/openssl-1.1.1g/test/lhash_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int int_cmp(const int *p, const int *q)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: int_find
    functionSourceFile: /src/openssl-1.1.1g/test/lhash_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int int_find(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_find
      Src: /src/openssl-1.1.1g/test/lhash_test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: int_doall
    functionSourceFile: /src/openssl-1.1.1g/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - int_find
    linkageType: ''
    returnType: void
    signature: void int_doall(int *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_find
      Src: /src/openssl-1.1.1g/test/lhash_test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - int*
    - short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: int_doall_arg
    functionSourceFile: /src/openssl-1.1.1g/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - int_find
    linkageType: ''
    returnType: void
    signature: void int_doall_arg(int *p, short *f)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/lhash_test.c:82,1
    - Dst: lh_int_new
      Src: /src/openssl-1.1.1g/test/lhash_test.c:83,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/lhash_test.c:87,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/lhash_test.c:92,1
    - Dst: lh_int_insert
      Src: /src/openssl-1.1.1g/test/lhash_test.c:92,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:93,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:98,1
    - Dst: lh_int_num_items
      Src: /src/openssl-1.1.1g/test/lhash_test.c:98,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:103,1
    - Dst: lh_int_retrieve
      Src: /src/openssl-1.1.1g/test/lhash_test.c:103,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:104,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:108,1
    - Dst: lh_int_retrieve
      Src: /src/openssl-1.1.1g/test/lhash_test.c:108,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:109,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:113,1
    - Dst: lh_int_retrieve
      Src: /src/openssl-1.1.1g/test/lhash_test.c:113,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/lhash_test.c:118,1
    - Dst: lh_int_insert
      Src: /src/openssl-1.1.1g/test/lhash_test.c:118,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:120,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:122,1
    - Dst: lh_int_retrieve
      Src: /src/openssl-1.1.1g/test/lhash_test.c:122,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/lhash_test.c:126,1
    - Dst: lh_int_doall
      Src: /src/openssl-1.1.1g/test/lhash_test.c:127,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:129,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:130,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/lhash_test.c:135,1
    - Dst: lh_int_doall_short
      Src: /src/openssl-1.1.1g/test/lhash_test.c:136,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:138,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:139,1
    - Dst: lh_int_delete
      Src: /src/openssl-1.1.1g/test/lhash_test.c:145,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:146,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:147,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:153,1
    - Dst: lh_int_error
      Src: /src/openssl-1.1.1g/test/lhash_test.c:153,1
    - Dst: lh_int_free
      Src: /src/openssl-1.1.1g/test/lhash_test.c:158,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 160
    functionName: test_int_lhash
    functionSourceFile: /src/openssl-1.1.1g/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - lh_int_error
    - TEST_ptr_eq
    - lh_int_free
    - TEST_ptr
    - lh_int_retrieve
    - TEST_int_eq
    - lh_int_doall_short
    - lh_int_num_items
    - TEST_info
    - memset
    - lh_int_doall
    - lh_int_new
    - lh_int_delete
    - lh_int_insert
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_int_lhash(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: stress_hash
    functionSourceFile: /src/openssl-1.1.1g/test/lhash_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long int
    signature: unsigned long int stress_hash(const int *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lh_int_new
      Src: /src/openssl-1.1.1g/test/lhash_test.c:169,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/lhash_test.c:174,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/lhash_test.c:179,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/lhash_test.c:180,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:181,1
    - Dst: lh_int_insert
      Src: /src/openssl-1.1.1g/test/lhash_test.c:185,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:189,1
    - Dst: lh_int_num_items
      Src: /src/openssl-1.1.1g/test/lhash_test.c:189,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:192,1
    - Dst: OPENSSL_LH_stats_bio
      Src: /src/openssl-1.1.1g/test/lhash_test.c:193,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/lhash_test.c:194,1
    - Dst: OPENSSL_LH_node_usage_stats_bio
      Src: /src/openssl-1.1.1g/test/lhash_test.c:195,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/lhash_test.c:201,1
    - Dst: lh_int_delete
      Src: /src/openssl-1.1.1g/test/lhash_test.c:201,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:202,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/lhash_test.c:205,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:206,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/lhash_test.c:209,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/lhash_test.c:212,1
    - Dst: OPENSSL_LH_stats_bio
      Src: /src/openssl-1.1.1g/test/lhash_test.c:213,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/lhash_test.c:214,1
    - Dst: OPENSSL_LH_node_usage_stats_bio
      Src: /src/openssl-1.1.1g/test/lhash_test.c:215,1
    - Dst: lh_int_free
      Src: /src/openssl-1.1.1g/test/lhash_test.c:219,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 221
    functionName: test_stress
    functionSourceFile: /src/openssl-1.1.1g/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_LH_stats_bio
    - lh_int_free
    - TEST_ptr
    - TEST_int_eq
    - OPENSSL_LH_node_usage_stats_bio
    - OPENSSL_free
    - lh_int_num_items
    - TEST_info
    - lh_int_new
    - TEST_note
    - lh_int_delete
    - lh_int_insert
    linkageType: ''
    returnType: int
    signature: int test_stress(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/lhash_test.c:225,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/lhash_test.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nid
    - ','
    - amask
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: test_cert_table
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_cert_table(nid, amask, idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:42,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:45,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:45,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:46,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - nid
    - amask
    - idx
    - idxname
    argTypes:
    - int
    - uint32_t
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: do_test_cert_table
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - TEST_error
    - OBJ_nid2sn
    linkageType: ''
    returnType: int
    signature: "int do_test_cert_table(int nid, uint32_t amask, size_t idx,\n                              const
      char *idxname)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:56,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:56,1
    - Dst: test_cert_table
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:57,1
    - Dst: test_cert_table
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:59,1
    - Dst: test_cert_table
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:61,1
    - Dst: test_cert_table
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:63,1
    - Dst: test_cert_table
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:65,1
    - Dst: test_cert_table
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:68,1
    - Dst: test_cert_table
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:71,1
    - Dst: test_cert_table
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 77
    functionName: test_ssl_cert_table
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - TEST_size_t_eq
    - test_cert_table
    linkageType: ''
    returnType: int
    signature: int test_ssl_cert_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_cert_table_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dsatest.c:77,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/test/dsatest.c:77,1
    - Dst: BN_GENCB_set
      Src: /src/openssl-1.1.1g/test/dsatest.c:80,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/dsatest.c:81,1
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/test/dsatest.c:81,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dsatest.c:82,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openssl-1.1.1g/test/dsatest.c:82,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dsatest.c:86,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dsatest.c:88,1
    - Dst: DSA_get0_pqg
      Src: /src/openssl-1.1.1g/test/dsatest.c:91,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/test/dsatest.c:92,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dsatest.c:94,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dsatest.c:94,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/test/dsatest.c:97,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dsatest.c:99,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dsatest.c:99,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/test/dsatest.c:102,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/dsatest.c:104,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/dsatest.c:104,1
    - Dst: DSA_generate_key
      Src: /src/openssl-1.1.1g/test/dsatest.c:107,1
    - Dst: DSA_sign
      Src: /src/openssl-1.1.1g/test/dsatest.c:108,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/dsatest.c:109,1
    - Dst: DSA_verify
      Src: /src/openssl-1.1.1g/test/dsatest.c:109,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/test/dsatest.c:113,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/test/dsatest.c:114,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 66
    functionDepth: 11
    functionLinenumber: 66
    functionLinenumberEnd: 116
    functionName: dsa_test
    functionSourceFile: /src/openssl-1.1.1g/test/dsatest.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - TEST_true
    - DSA_new
    - TEST_ptr
    - TEST_int_eq
    - DSA_generate_parameters_ex
    - BN_GENCB_set
    - BN_bn2bin
    - DSA_generate_key
    - DSA_sign
    - TEST_mem_eq
    - DSA_verify
    - BN_GENCB_free
    - DSA_get0_pqg
    - DSA_free
    linkageType: ''
    returnType: int
    signature: int dsa_test(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/dsatest.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - p
    - n
    - arg
    argTypes:
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: dsa_cb
    functionSourceFile: /src/openssl-1.1.1g/test/dsatest.c
    functionUses: 0
    functionsReached:
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int dsa_cb(int p, int n, BN_GENCB *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/dsatest.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/dsatest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_e_os2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int**
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: int_compare
    functionSourceFile: /src/openssl-1.1.1g/test/stack_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int int_compare(const int *const *a, const int *const *b)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/stack_test.c:57,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/stack_test.c:70,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/stack_test.c:82,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/stack_test.c:83,1
    - Dst: sk_sint_new_null
      Src: /src/openssl-1.1.1g/test/stack_test.c:83,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/stack_test.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/stack_test.c:88,1
    - Dst: sk_sint_reserve
      Src: /src/openssl-1.1.1g/test/stack_test.c:88,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:93,1
    - Dst: sk_sint_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:93,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:94,1
    - Dst: sk_sint_push
      Src: /src/openssl-1.1.1g/test/stack_test.c:97,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:99,1
    - Dst: sk_sint_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:99,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:104,1
    - Dst: sk_sint_value
      Src: /src/openssl-1.1.1g/test/stack_test.c:104,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:105,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:114,1
    - Dst: sk_sint_find
      Src: /src/openssl-1.1.1g/test/stack_test.c:114,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:115,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:125,1
    - Dst: sk_sint_find_ex
      Src: /src/openssl-1.1.1g/test/stack_test.c:125,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:126,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/stack_test.c:132,1
    - Dst: sk_sint_is_sorted
      Src: /src/openssl-1.1.1g/test/stack_test.c:132,1
    - Dst: sk_sint_set_cmp_func
      Src: /src/openssl-1.1.1g/test/stack_test.c:134,1
    - Dst: sk_sint_sort
      Src: /src/openssl-1.1.1g/test/stack_test.c:135,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/stack_test.c:136,1
    - Dst: sk_sint_is_sorted
      Src: /src/openssl-1.1.1g/test/stack_test.c:136,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:141,1
    - Dst: sk_sint_find
      Src: /src/openssl-1.1.1g/test/stack_test.c:141,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:142,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:148,1
    - Dst: sk_sint_find_ex
      Src: /src/openssl-1.1.1g/test/stack_test.c:148,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:149,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:153,1
    - Dst: sk_sint_find_ex
      Src: /src/openssl-1.1.1g/test/stack_test.c:153,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:154,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:159,1
    - Dst: sk_sint_shift
      Src: /src/openssl-1.1.1g/test/stack_test.c:159,1
    - Dst: sk_sint_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:164,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 70
    argCount: 1
    argNames:
    - reserve
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 166
    functionName: test_int_stack
    functionSourceFile: /src/openssl-1.1.1g/test/stack_test.c
    functionUses: 0
    functionsReached:
    - sk_sint_set_cmp_func
    - STACK_OF
    - sk_sint_new_null
    - sk_sint_value
    - TEST_ptr_eq
    - TEST_true
    - TEST_int_eq
    - sk_sint_is_sorted
    - TEST_info
    - sk_sint_push
    - OSSL_NELEM
    - sk_sint_num
    - sk_sint_shift
    - sk_sint_sort
    - sk_sint_find_ex
    - sk_sint_find
    - TEST_ptr
    - TEST_false
    - sk_sint_reserve
    - sk_sint_free
    linkageType: ''
    returnType: int
    signature: int test_int_stack(int reserve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned char**
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: uchar_compare
    functionSourceFile: /src/openssl-1.1.1g/test/stack_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int uchar_compare(const unsigned char *const *a,\n                         const
      unsigned char *const *b)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/stack_test.c:177,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/stack_test.c:178,1
    - Dst: sk_uchar_new
      Src: /src/openssl-1.1.1g/test/stack_test.c:178,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/stack_test.c:182,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/stack_test.c:183,1
    - Dst: sk_uchar_reserve
      Src: /src/openssl-1.1.1g/test/stack_test.c:183,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:188,1
    - Dst: sk_uchar_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:188,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:189,1
    - Dst: sk_uchar_unshift
      Src: /src/openssl-1.1.1g/test/stack_test.c:192,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:194,1
    - Dst: sk_uchar_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:194,1
    - Dst: sk_uchar_dup
      Src: /src/openssl-1.1.1g/test/stack_test.c:198,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:199,1
    - Dst: sk_uchar_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:199,1
    - Dst: sk_uchar_sort
      Src: /src/openssl-1.1.1g/test/stack_test.c:201,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:205,1
    - Dst: sk_uchar_pop
      Src: /src/openssl-1.1.1g/test/stack_test.c:205,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:206,1
    - Dst: sk_uchar_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:211,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:215,1
    - Dst: sk_uchar_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:215,1
    - Dst: sk_uchar_zero
      Src: /src/openssl-1.1.1g/test/stack_test.c:219,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:220,1
    - Dst: sk_uchar_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:220,1
    - Dst: sk_uchar_insert
      Src: /src/openssl-1.1.1g/test/stack_test.c:224,1
    - Dst: sk_uchar_insert
      Src: /src/openssl-1.1.1g/test/stack_test.c:225,1
    - Dst: sk_uchar_insert
      Src: /src/openssl-1.1.1g/test/stack_test.c:226,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:228,1
    - Dst: sk_uchar_value
      Src: /src/openssl-1.1.1g/test/stack_test.c:228,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:229,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/stack_test.c:234,1
    - Dst: sk_uchar_delete
      Src: /src/openssl-1.1.1g/test/stack_test.c:234,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:236,1
    - Dst: sk_uchar_delete
      Src: /src/openssl-1.1.1g/test/stack_test.c:236,1
    - Dst: sk_uchar_set
      Src: /src/openssl-1.1.1g/test/stack_test.c:240,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:242,1
    - Dst: sk_uchar_value
      Src: /src/openssl-1.1.1g/test/stack_test.c:242,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:243,1
    - Dst: sk_uchar_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:249,1
    - Dst: sk_uchar_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:250,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 64
    argCount: 1
    argNames:
    - reserve
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 252
    functionName: test_uchar_stack
    functionSourceFile: /src/openssl-1.1.1g/test/stack_test.c
    functionUses: 0
    functionsReached:
    - sk_uchar_zero
    - sk_uchar_set
    - sk_uchar_unshift
    - STACK_OF
    - sk_uchar_insert
    - TEST_ptr_eq
    - TEST_true
    - sk_uchar_delete
    - TEST_int_eq
    - TEST_info
    - sk_uchar_dup
    - OSSL_NELEM
    - sk_uchar_pop
    - TEST_ptr_null
    - sk_uchar_num
    - sk_uchar_free
    - TEST_ptr
    - sk_uchar_new
    - sk_uchar_sort
    - sk_uchar_value
    - sk_uchar_reserve
    linkageType: ''
    returnType: int
    signature: int test_uchar_stack(int reserve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/stack_test.c:256,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/stack_test.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - SS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: SS_copy
    functionSourceFile: /src/openssl-1.1.1g/test/stack_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - memcpy
    linkageType: ''
    returnType: SS
    signature: SS *SS_copy(const SS *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - SS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: SS_free
    functionSourceFile: /src/openssl-1.1.1g/test/stack_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SS_free(SS *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/stack_test.c:269,1
    - Dst: sk_SS_new_null
      Src: /src/openssl-1.1.1g/test/stack_test.c:269,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/stack_test.c:270,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/stack_test.c:272,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/stack_test.c:278,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/stack_test.c:280,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:284,1
    - Dst: sk_SS_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:284,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:285,1
    - Dst: sk_SS_push
      Src: /src/openssl-1.1.1g/test/stack_test.c:288,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:290,1
    - Dst: sk_SS_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:290,1
    - Dst: sk_SS_deep_copy
      Src: /src/openssl-1.1.1g/test/stack_test.c:294,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/stack_test.c:295,1
    - Dst: sk_SS_value
      Src: /src/openssl-1.1.1g/test/stack_test.c:298,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/stack_test.c:299,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:300,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:303,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:304,1
    - Dst: TEST_char_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:307,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:308,1
    - Dst: sk_SS_pop_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:314,1
    - Dst: sk_SS_delete_ptr
      Src: /src/openssl-1.1.1g/test/stack_test.c:318,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/stack_test.c:319,1
    - Dst: SS_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:321,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:322,1
    - Dst: sk_SS_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:322,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:325,1
    - Dst: sk_SS_value
      Src: /src/openssl-1.1.1g/test/stack_test.c:325,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:326,1
    - Dst: sk_SS_pop_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:332,1
    - Dst: sk_SS_pop_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:333,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 335
    functionName: test_SS_stack
    functionSourceFile: /src/openssl-1.1.1g/test/stack_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - OPENSSL_malloc
    - sk_SS_deep_copy
    - TEST_ptr_eq
    - sk_SS_pop_free
    - SS_free
    - TEST_ptr_ne
    - TEST_char_eq
    - TEST_ptr
    - TEST_int_eq
    - sk_SS_delete_ptr
    - STACK_OF
    - sk_SS_num
    - TEST_info
    - sk_SS_value
    - sk_SS_new_null
    - sk_SS_push
    linkageType: ''
    returnType: int
    signature: int test_SS_stack(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/stack_test.c:339,1
    - Dst: sk_SU_new_null
      Src: /src/openssl-1.1.1g/test/stack_test.c:339,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/stack_test.c:341,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:351,1
    - Dst: sk_SU_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:351,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:352,1
    - Dst: sk_SU_push
      Src: /src/openssl-1.1.1g/test/stack_test.c:355,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:357,1
    - Dst: sk_SU_num
      Src: /src/openssl-1.1.1g/test/stack_test.c:357,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/stack_test.c:362,1
    - Dst: sk_SU_value
      Src: /src/openssl-1.1.1g/test/stack_test.c:362,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/stack_test.c:363,1
    - Dst: sk_SU_free
      Src: /src/openssl-1.1.1g/test/stack_test.c:369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 371
    functionName: test_SU_stack
    functionSourceFile: /src/openssl-1.1.1g/test/stack_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - TEST_ptr_eq
    - sk_SU_num
    - sk_SU_value
    - TEST_int_eq
    - STACK_OF
    - sk_SU_push
    - TEST_info
    - sk_SU_free
    - sk_SU_new_null
    linkageType: ''
    returnType: int
    signature: int test_SU_stack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/stack_test.c:375,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/stack_test.c:376,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/stack_test.c:377,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/stack_test.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/stack_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_comp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/v3nametest.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: is_exception
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_exception(const char *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/v3nametest.c:95,1
    - Dst: X509_NAME_new
      Src: /src/openssl-1.1.1g/test/v3nametest.c:96,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/test/v3nametest.c:104,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/test/v3nametest.c:107,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openssl-1.1.1g/test/v3nametest.c:108,1
    - Dst: X509_set_subject_name
      Src: /src/openssl-1.1.1g/test/v3nametest.c:112,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/test/v3nametest.c:116,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/v3nametest.c:117,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - crt
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 119
    functionName: set_cn
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - va_start
    - X509_NAME_add_entry_by_NID
    - X509_set_subject_name
    - va_arg
    - X509_NAME_new
    - va_end
    - X509_NAME_free
    linkageType: ''
    returnType: int
    signature: int set_cn(X509 *crt, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/v3nametest.c:135,1
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openssl-1.1.1g/test/v3nametest.c:136,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/test/v3nametest.c:142,1
    - Dst: va_arg
      Src: /src/openssl-1.1.1g/test/v3nametest.c:145,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-1.1.1g/test/v3nametest.c:147,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-1.1.1g/test/v3nametest.c:150,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/test/v3nametest.c:153,1
    - Dst: GENERAL_NAME_set0_value
      Src: /src/openssl-1.1.1g/test/v3nametest.c:158,1
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/v3nametest.c:162,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-1.1.1g/test/v3nametest.c:164,1
    - Dst: X509_add1_ext_i2d
      Src: /src/openssl-1.1.1g/test/v3nametest.c:167,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-1.1.1g/test/v3nametest.c:171,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/test/v3nametest.c:172,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-1.1.1g/test/v3nametest.c:173,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/v3nametest.c:174,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - crt
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 176
    functionName: set_altname
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - va_start
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_new_null
    - GENERAL_NAME_new
    - ASN1_STRING_set
    - X509_add1_ext_i2d
    - GENERAL_NAMES_free
    - va_arg
    - ASN1_IA5STRING_free
    - GENERAL_NAME_free
    - GENERAL_NAME_set0_value
    - va_end
    - ASN1_IA5STRING_new
    - abort
    linkageType: ''
    returnType: int
    signature: int set_altname(X509 *crt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-1.1.1g/test/v3nametest.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: set_cn1
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_cn1(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-1.1.1g/test/v3nametest.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: set_cn_and_email
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_cn_and_email(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-1.1.1g/test/v3nametest.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: set_cn2
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_cn2(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-1.1.1g/test/v3nametest.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: set_cn3
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_cn3(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-1.1.1g/test/v3nametest.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: set_email1
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_email1(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-1.1.1g/test/v3nametest.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: set_email2
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_email2(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-1.1.1g/test/v3nametest.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: set_email3
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_email3(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-1.1.1g/test/v3nametest.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: set_email_and_cn
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_email_and_cn(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_altname
      Src: /src/openssl-1.1.1g/test/v3nametest.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: set_altname_dns
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_altname
    linkageType: ''
    returnType: int
    signature: int set_altname_dns(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_altname
      Src: /src/openssl-1.1.1g/test/v3nametest.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: set_altname_email
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_altname
    linkageType: ''
    returnType: int
    signature: int set_altname_email(X509 *crt, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/v3nametest.c:258,1
    - Dst: X509_new
      Src: /src/openssl-1.1.1g/test/v3nametest.c:258,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/v3nametest.c:260,1
    - Dst: X509_set_version
      Src: /src/openssl-1.1.1g/test/v3nametest.c:260,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/v3nametest.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: make_cert
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - X509_new
    - X509_free
    - TEST_true
    - TEST_ptr
    - X509_set_version
    linkageType: ''
    returnType: X509
    signature: X509 *make_cert(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/v3nametest.c:274,1
    - Dst: is_exception
      Src: /src/openssl-1.1.1g/test/v3nametest.c:277,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/v3nametest.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - fn
    - op
    - nameincert
    - match
    - name
    argTypes:
    - struct set_name_fn*
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: check_message
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - TEST_error
    - is_exception
    linkageType: ''
    returnType: int
    signature: "int check_message(const struct set_name_fn *fn, const char *op,\n
      \                        const char *nameincert, int match, const char *name)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/test/v3nametest.c:290,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/v3nametest.c:291,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/v3nametest.c:292,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/v3nametest.c:295,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/v3nametest.c:298,1
    - Dst: X509_check_host
      Src: /src/openssl-1.1.1g/test/v3nametest.c:298,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/v3nametest.c:308,1
    - Dst: check_message
      Src: /src/openssl-1.1.1g/test/v3nametest.c:308,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/v3nametest.c:312,1
    - Dst: X509_check_host
      Src: /src/openssl-1.1.1g/test/v3nametest.c:312,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/v3nametest.c:323,1
    - Dst: check_message
      Src: /src/openssl-1.1.1g/test/v3nametest.c:323,1
    - Dst: X509_check_email
      Src: /src/openssl-1.1.1g/test/v3nametest.c:328,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/test/v3nametest.c:332,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/v3nametest.c:336,1
    - Dst: check_message
      Src: /src/openssl-1.1.1g/test/v3nametest.c:336,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/v3nametest.c:338,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 46
    argCount: 3
    argNames:
    - crt
    - nameincert
    - fn
    argTypes:
    - X509*
    - char*
    - struct set_name_fn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 283
    functionDepth: 5
    functionLinenumber: 283
    functionLinenumberEnd: 342
    functionName: run_cert
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - TEST_int_ge
    - OPENSSL_malloc
    - X509_check_host
    - TEST_true
    - check_message
    - OPENSSL_free
    - strchr
    - memcpy
    - X509_check_email
    - strcasecmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int run_cert(X509 *crt, const char *nameincert,\n                     const
      struct set_name_fn *fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/v3nametest.c:351,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/v3nametest.c:353,1
    - Dst: make_cert
      Src: /src/openssl-1.1.1g/test/v3nametest.c:353,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/v3nametest.c:354,1
    - Dst: struct set_name_fn*::fn
      Src: /src/openssl-1.1.1g/test/v3nametest.c:354,1
    - Dst: run_cert
      Src: /src/openssl-1.1.1g/test/v3nametest.c:355,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/v3nametest.c:357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 344
    functionDepth: 6
    functionLinenumber: 344
    functionLinenumberEnd: 360
    functionName: call_run_cert
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - TEST_true
    - TEST_ptr
    - TEST_info
    - make_cert
    - run_cert
    - struct set_name_fn*::fn
    linkageType: ''
    returnType: int
    signature: int call_run_cert(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/v3nametest.c:364,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/v3nametest.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:31,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:32,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:33,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/exdatatest.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: exnew
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - TEST_ptr_null
    - TEST_int_eq
    - TEST_long_eq
    linkageType: ''
    returnType: void
    signature: "void exnew(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n          int
      idx, long argl, void *argp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:41,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:42,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:43,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 6
    argNames:
    - to
    - from
    - from_d
    - idx
    - argl
    - argp
    argTypes:
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    - void*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: exdup
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - TEST_int_eq
    - TEST_ptr
    - TEST_long_eq
    linkageType: ''
    returnType: int
    signature: "int exdup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,\n          void
      *from_d, int idx, long argl, void *argp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:52,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:53,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: exfree
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - TEST_int_eq
    - TEST_long_eq
    linkageType: ''
    returnType: void
    signature: "void exfree(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n            int
      idx, long argl, void *argp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/exdatatest.c:73,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:74,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:75,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:76,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/exdatatest.c:77,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:78,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exdatatest.c:79,1
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:79,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/exdatatest.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: exnew2
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - TEST_true
    - TEST_long_eq
    - TEST_ptr
    - CRYPTO_set_ex_data
    - TEST_int_eq
    - OPENSSL_free
    - OPENSSL_zalloc
    - TEST_ptr_null
    linkageType: ''
    returnType: void
    signature: "void exnew2(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n          int
      idx, long argl, void *argp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:91,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:92,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:93,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:94,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:95,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:96,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:97,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exdatatest.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 6
    argNames:
    - to
    - from
    - from_d
    - idx
    - argl
    - argp
    argTypes:
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    - void*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 109
    functionName: exdup2
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - TEST_true
    - TEST_long_eq
    - TEST_ptr
    - TEST_int_eq
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int exdup2(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,\n          void
      *from_d, int idx, long argl, void *argp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/exdatatest.c:115,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:116,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:117,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:118,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:119,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/exdatatest.c:120,1
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: exfree2
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - TEST_true
    - TEST_long_eq
    - TEST_ptr
    - CRYPTO_set_ex_data
    - TEST_int_eq
    - OPENSSL_free
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: "void exfree2(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n            int
      idx, long argl, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/exdatatest.c:133,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: MYOBJ_new
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - CRYPTO_new_ex_data
    linkageType: ''
    returnType: MYOBJ
    signature: MYOBJ *MYOBJ_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:142,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - cp
    argTypes:
    - MYOBJ*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: MYOBJ_sethello
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    - TEST_int_eq
    linkageType: ''
    returnType: void
    signature: void MYOBJ_sethello(MYOBJ *obj, char *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - MYOBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: MYOBJ_gethello
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: char
    signature: char *MYOBJ_gethello(MYOBJ *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:154,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - cp
    argTypes:
    - MYOBJ*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: MYOBJ_sethello2
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void MYOBJ_sethello2(MYOBJ *obj, char *cp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:163,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - MYOBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: MYOBJ_gethello2
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: char
    signature: char *MYOBJ_gethello2(MYOBJ *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:173,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/exdatatest.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - MYOBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: MYOBJ_free
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_free_ex_data
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void MYOBJ_free(MYOBJ *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MYOBJ_new
      Src: /src/openssl-1.1.1g/test/exdatatest.c:179,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - MYOBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: MYOBJ_dup
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - MYOBJ_new
    - CRYPTO_dup_ex_data
    linkageType: ''
    returnType: MYOBJ
    signature: MYOBJ *MYOBJ_dup(MYOBJ *in)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/exdatatest.c:195,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/exdatatest.c:197,1
    - Dst: CRYPTO_get_ex_new_index
      Src: /src/openssl-1.1.1g/test/exdatatest.c:198,1
    - Dst: CRYPTO_get_ex_new_index
      Src: /src/openssl-1.1.1g/test/exdatatest.c:201,1
    - Dst: MYOBJ_new
      Src: /src/openssl-1.1.1g/test/exdatatest.c:204,1
    - Dst: MYOBJ_new
      Src: /src/openssl-1.1.1g/test/exdatatest.c:205,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:206,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:206,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:208,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:208,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:210,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:210,1
    - Dst: MYOBJ_sethello
      Src: /src/openssl-1.1.1g/test/exdatatest.c:213,1
    - Dst: MYOBJ_gethello
      Src: /src/openssl-1.1.1g/test/exdatatest.c:214,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:215,1
    - Dst: MYOBJ_sethello2
      Src: /src/openssl-1.1.1g/test/exdatatest.c:218,1
    - Dst: MYOBJ_gethello2
      Src: /src/openssl-1.1.1g/test/exdatatest.c:219,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:220,1
    - Dst: MYOBJ_gethello
      Src: /src/openssl-1.1.1g/test/exdatatest.c:223,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/exdatatest.c:224,1
    - Dst: MYOBJ_gethello2
      Src: /src/openssl-1.1.1g/test/exdatatest.c:227,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/exdatatest.c:228,1
    - Dst: MYOBJ_dup
      Src: /src/openssl-1.1.1g/test/exdatatest.c:231,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:232,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/test/exdatatest.c:235,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/exdatatest.c:236,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:238,1
    - Dst: MYOBJ_gethello
      Src: /src/openssl-1.1.1g/test/exdatatest.c:241,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:242,1
    - Dst: MYOBJ_gethello2
      Src: /src/openssl-1.1.1g/test/exdatatest.c:245,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/exdatatest.c:246,1
    - Dst: MYOBJ_free
      Src: /src/openssl-1.1.1g/test/exdatatest.c:249,1
    - Dst: MYOBJ_free
      Src: /src/openssl-1.1.1g/test/exdatatest.c:250,1
    - Dst: MYOBJ_free
      Src: /src/openssl-1.1.1g/test/exdatatest.c:251,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/exdatatest.c:252,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/exdatatest.c:253,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 259
    functionName: test_exdata
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - MYOBJ_new
    - TEST_ptr_eq
    - TEST_ptr
    - MYOBJ_free
    - TEST_int_eq
    - OPENSSL_free
    - MYOBJ_sethello2
    - OPENSSL_strdup
    - TEST_ptr_null
    - MYOBJ_sethello
    - MYOBJ_gethello
    - MYOBJ_dup
    - MYOBJ_gethello2
    - CRYPTO_get_ex_new_index
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: int
    signature: int test_exdata(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/exdatatest.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_bio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_evp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nanosleep
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:26,1
    - Dst: usleep
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - millis
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: ossl_sleep
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - usleep
    - nanosleep
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline ossl_sleep(unsigned int millis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - millis
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ossl_sleep
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - Sleep
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline ossl_sleep(unsigned int millis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:45,1
    - Dst: gettimeofday
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - millis
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: ossl_sleep
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline ossl_sleep(unsigned int millis)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:75,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:78,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:79,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:80,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:81,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:82,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:83,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:84,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: bio_f_tls_dump_filter
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 2
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *bio_f_tls_dump_filter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: bio_f_tls_dump_filter_free
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 1
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void bio_f_tls_dump_filter_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: tls_dump_new
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int tls_dump_new(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: tls_dump_free
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int tls_dump_free(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:111,1
    - Dst: BIO_test_flags
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:113,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:114,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: copy_flags
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_set_flags
    - BIO_test_flags
    - BIO_clear_flags
    linkageType: ''
    returnType: void
    signature: void copy_flags(BIO *bio)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:147,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:154,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:155,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:157,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:161,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:162,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:165,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:166,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:168,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:170,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:176,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:178,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:181,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:183,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:186,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:187,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:192,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:196,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:198,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:200,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:202,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:206,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:211,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:214,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:215,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 216
    functionName: dump_data
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - fflush
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_data(const char *data, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:221,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:223,1
    - Dst: copy_flags
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:224,1
    - Dst: dump_data
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 231
    functionName: tls_dump_read
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - dump_data
    - copy_flags
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int tls_dump_read(BIO *bio, char *out, int outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:236,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:238,1
    - Dst: copy_flags
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: tls_dump_write
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - copy_flags
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int tls_dump_write(BIO *bio, const char *in, int inl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:247,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: tls_dump_ctrl
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long tls_dump_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: tls_dump_gets
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tls_dump_gets(BIO *bio, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_dump_write
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:271,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: tls_dump_puts
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - tls_dump_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int tls_dump_puts(BIO *bio, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:285,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - MEMPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: mempacket_free
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void mempacket_free(MEMPACKET *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:313,1
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:313,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:315,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:315,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:316,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:316,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:317,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:317,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:318,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:318,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:319,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:319,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:320,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:320,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:321,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: bio_s_mempacket_test
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - TEST_true
    - BIO_meth_set_destroy
    - TEST_ptr
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *bio_s_mempacket_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: bio_s_mempacket_test_free
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 4
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void bio_s_mempacket_test_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:336,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:336,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:338,1
    - Dst: sk_MEMPACKET_new_null
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:338,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:339,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:344,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 347
    functionName: mempacket_test_new
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - OPENSSL_free
    - BIO_set_init
    - OPENSSL_zalloc
    - sk_MEMPACKET_new_null
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int mempacket_test_new(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:351,1
    - Dst: sk_MEMPACKET_pop_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:353,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:354,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:355,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 358
    functionName: mempacket_test_free
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    - sk_MEMPACKET_pop_free
    - BIO_set_init
    - BIO_get_data
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int mempacket_test_free(BIO *bio)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:371,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:377,1
    - Dst: sk_MEMPACKET_value
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:378,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:381,1
    - Dst: sk_MEMPACKET_shift
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:384,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:420,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:424,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:433,1
    - Dst: mempacket_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:434,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 436
    functionName: mempacket_test_read
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - mempacket_free
    - memmove
    - sk_MEMPACKET_shift
    - memcpy
    - sk_MEMPACKET_value
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int mempacket_test_read(BIO *bio, char *out, int outl)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:441,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:473,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:473,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:477,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:477,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:487,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:490,1
    - Dst: sk_MEMPACKET_value
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:497,1
    - Dst: sk_MEMPACKET_insert
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:500,1
    - Dst: sk_MEMPACKET_value
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:513,1
    - Dst: sk_MEMPACKET_push
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:534,1
    - Dst: mempacket_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:545,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 5
    argNames:
    - bio
    - in
    - inl
    - pktnum
    - type
    argTypes:
    - BIO*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 547
    functionName: mempacket_test_inject
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - sk_MEMPACKET_push
    - TEST_ptr
    - mempacket_free
    - memcpy
    - sk_MEMPACKET_value
    - sk_MEMPACKET_insert
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: "int mempacket_test_inject(BIO *bio, const char *in, int inl, int pktnum,\n
      \                         int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mempacket_test_inject
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: mempacket_test_write
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - mempacket_test_inject
    linkageType: ''
    returnType: int
    signature: int mempacket_test_write(BIO *bio, const char *in, int inl)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:557,1
    - Dst: sk_MEMPACKET_num
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:562,1
    - Dst: BIO_get_shutdown
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:565,1
    - Dst: BIO_set_shutdown
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:568,1
    - Dst: sk_MEMPACKET_value
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:574,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 604
    functionName: mempacket_test_ctrl
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_shutdown
    - sk_MEMPACKET_num
    - BIO_get_shutdown
    - sk_MEMPACKET_value
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: long mempacket_test_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 610
    functionName: mempacket_test_gets
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mempacket_test_gets(BIO *bio, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mempacket_test_write
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:614,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 612
    functionDepth: 4
    functionLinenumber: 612
    functionLinenumberEnd: 615
    functionName: mempacket_test_puts
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - mempacket_test_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int mempacket_test_puts(BIO *bio, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:628,1
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:628,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:630,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:630,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:632,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:632,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:634,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:634,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:636,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:636,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:638,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:638,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:640,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:640,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:642,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:642,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 647
    functionName: bio_s_always_retry
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 1
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - TEST_true
    - BIO_meth_set_destroy
    - TEST_ptr
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *bio_s_always_retry(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 652
    functionName: bio_s_always_retry_free
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 1
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void bio_s_always_retry_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: always_retry_new
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int always_retry_new(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:662,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 665
    functionName: always_retry_free
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 1
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int always_retry_free(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: always_retry_read
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int always_retry_read(BIO *bio, char *out, int outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 677
    functionName: always_retry_write
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    linkageType: ''
    returnType: int
    signature: int always_retry_write(BIO *bio, const char *in, int inl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 697
    functionName: always_retry_ctrl
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    linkageType: ''
    returnType: long
    signature: long always_retry_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: always_retry_gets
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int always_retry_gets(BIO *bio, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 709
    functionName: always_retry_puts
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    linkageType: ''
    returnType: int
    signature: int always_retry_puts(BIO *bio, const char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:719,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:719,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:720,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:720,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:724,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:724,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:727,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:727,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:732,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:732,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:735,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:735,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:740,1
    - Dst: SSL_CTX_use_certificate_file
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:740,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:742,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:742,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:745,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:745,1
    - Dst: SSL_CTX_set_dh_auto
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:750,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:759,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:760,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 25
    argCount: 8
    argNames:
    - sm
    - cm
    - min_proto_version
    - max_proto_version
    - sctx
    - cctx
    - certfile
    - privkeyfile
    argTypes:
    - SSL_METHOD*
    - SSL_METHOD*
    - int
    - int
    - SSL_CTX**
    - SSL_CTX**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 762
    functionName: create_ssl_ctx_pair
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 44
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - TEST_true
    - SSL_CTX_use_certificate_file
    - TEST_ptr
    - SSL_CTX_use_PrivateKey_file
    - TEST_int_eq
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_dh_auto
    - SSL_CTX_check_private_key
    - SSL_CTX_new
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: "int create_ssl_ctx_pair(const SSL_METHOD *sm, const SSL_METHOD *cm,\n
      \                       int min_proto_version, int max_proto_version,\n                        SSL_CTX
      **sctx, SSL_CTX **cctx, char *certfile,\n                        char *privkeyfile)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:777,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:777,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:781,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:781,1
    - Dst: SSL_is_dtls
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:784,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:785,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:785,1
    - Dst: bio_s_mempacket_test
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:785,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:786,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:786,1
    - Dst: bio_s_mempacket_test
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:786,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:789,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:789,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:789,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:790,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:790,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:790,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:795,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:795,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:798,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:798,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:802,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:803,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:806,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:807,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:808,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:809,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:815,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:816,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:817,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:818,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:819,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:820,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 6
    argNames:
    - serverctx
    - clientctx
    - sssl
    - cssl
    - s_to_c_fbio
    - c_to_s_fbio
    argTypes:
    - SSL_CTX*
    - SSL_CTX*
    - SSL**
    - SSL**
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 823
    functionName: create_ssl_objects
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 47
    functionsReached:
    - BIO_up_ref
    - SSL_set_bio
    - TEST_ptr
    - BIO_s_mem
    - bio_s_mempacket_test
    - SSL_is_dtls
    - BIO_free
    - BIO_push
    - SSL_new
    - BIO_set_mem_eof_return
    - SSL_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "int create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL
      **sssl,\n                          SSL **cssl, BIO *s_to_c_fbio, BIO *c_to_s_fbio)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_dtls
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:837,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:842,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:844,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:848,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:856,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:858,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:864,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:876,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:878,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:883,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:885,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:891,1
    - Dst: ossl_sleep
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:900,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 51
    argCount: 4
    argNames:
    - serverssl
    - clientssl
    - want
    - read
    argTypes:
    - SSL*
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 905
    functionName: create_bare_ssl_connection
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 2
    functionsReached:
    - SSL_accept
    - SSL_connect
    - SSL_get_error
    - SSL_read
    - ossl_sleep
    - TEST_info
    - SSL_is_dtls
    linkageType: ''
    returnType: int
    signature: "int create_bare_ssl_connection(SSL *serverssl, SSL *clientssl, int
      want,\n                               int read)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_bare_ssl_connection
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:917,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:926,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:927,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:929,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:929,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - serverssl
    - clientssl
    - want
    argTypes:
    - SSL*
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 936
    functionName: create_ssl_connection
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 46
    functionsReached:
    - create_bare_ssl_connection
    - SSL_read_ex
    - TEST_int_eq
    - SSL_get_error
    - TEST_ulong_eq
    linkageType: ''
    returnType: int
    signature: int create_ssl_connection(SSL *serverssl, SSL *clientssl, int want)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:940,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:941,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:942,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/ssltestlib.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - serverssl
    - clientssl
    argTypes:
    - SSL*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 944
    functionName: shutdown_ssl_connection
    functionSourceFile: /src/openssl-1.1.1g/test/ssltestlib.c
    functionUses: 4
    functionsReached:
    - SSL_free
    - SSL_shutdown
    linkageType: ''
    returnType: void
    signature: void shutdown_ssl_connection(SSL *serverssl, SSL *clientssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:34,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CIPHERLIST_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: tear_down
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void tear_down(CIPHERLIST_TEST_FIXTURE *fixture)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:45,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:45,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:48,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:48,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:48,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:49,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:49,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:49,1
    - Dst: tear_down
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: set_up
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_ptr
    - TLS_client_method
    - OPENSSL_zalloc
    - SSL_CTX_new
    - tear_down
    linkageType: ''
    returnType: CIPHERLIST_TEST_FIXTURE
    signature: CIPHERLIST_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:150,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:158,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:158,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:159,1
    - Dst: SSL_get1_supported_ciphers
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:159,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:162,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:163,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:164,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:169,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:169,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:170,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:171,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:179,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 182
    functionName: test_default_cipherlist
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - sk_SSL_CIPHER_free
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    - TEST_ptr
    - TEST_int_eq
    - STACK_OF
    - SSL_get1_supported_ciphers
    - TEST_info
    - SSL_new
    - SSL_free
    - SSL_CIPHER_get_id
    linkageType: ''
    returnType: int
    signature: int test_default_cipherlist(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_default_cipherlist
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:187,1
    - Dst: test_default_cipherlist
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CIPHERLIST_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: execute_test
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - test_default_cipherlist
    linkageType: ''
    returnType: int
    signature: int execute_test(CIPHERLIST_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: SETUP_CIPHERLIST_TEST_FIXTURE
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETUP_CIPHERLIST_TEST_FIXTURE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: EXECUTE_CIPHERLIST_TEST
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXECUTE_CIPHERLIST_TEST()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CIPHERLIST_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:199,1
    - Dst: EXECUTE_CIPHERLIST_TEST
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 204
    functionName: test_default_cipherlist_implicit
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_CIPHERLIST_TEST
    - SETUP_CIPHERLIST_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_default_cipherlist_implicit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CIPHERLIST_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:211,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:211,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:212,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:212,1
    - Dst: tear_down
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:213,1
    - Dst: EXECUTE_CIPHERLIST_TEST
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: test_default_cipherlist_explicit
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - TEST_true
    - EXECUTE_CIPHERLIST_TEST
    - tear_down
    - SETUP_CIPHERLIST_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_default_cipherlist_explicit(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CIPHERLIST_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:221,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:227,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:227,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:230,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:230,1
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:230,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:233,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:235,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:238,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:238,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:241,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:241,1
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:241,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:247,1
    - Dst: tear_down
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 250
    functionName: test_default_cipherlist_clear
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - SSL_set_cipher_list
    - TEST_ptr
    - TEST_int_eq
    - ERR_get_error
    - ERR_GET_REASON
    - SSL_new
    - SSL_free
    - tear_down
    - SETUP_CIPHERLIST_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_default_cipherlist_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:254,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:255,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/cipherlist_test.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:31,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:31,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:33,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:34,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:35,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:35,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:37,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:38,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:39,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:39,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:45,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - cert_out
    - key_out
    argTypes:
    - X509**
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: get_cert_and_key
    functionSourceFile: /src/openssl-1.1.1g/test/ocspapitest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - TEST_ptr
    - PEM_read_bio_PrivateKey
    - BIO_free
    - PEM_read_bio_X509
    - EVP_PKEY_free
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int get_cert_and_key(X509 **cert_out, EVP_PKEY **key_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:55,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:55,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:57,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:58,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:59,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - cert_out
    argTypes:
    - X509**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: get_cert
    functionSourceFile: /src/openssl-1.1.1g/test/ocspapitest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - TEST_ptr
    - BIO_free
    - PEM_read_bio_X509
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int get_cert(X509 **cert_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_BASICRESP_new
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:72,1
    - Dst: ASN1_TIME_set
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:75,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:75,1
    - Dst: ASN1_TIME_set
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:76,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:76,1
    - Dst: X509_NAME_new
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:77,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:78,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:79,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:81,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:83,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:84,1
    - Dst: OCSP_cert_id_new
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:86,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:86,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:87,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:88,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:89,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:91,1
    - Dst: OCSP_basic_add1_status
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:91,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:98,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:99,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:100,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:101,1
    - Dst: OCSP_CERTID_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:102,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:103,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:104,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 106
    functionName: make_dummy_resp
    functionSourceFile: /src/openssl-1.1.1g/test/ocspapitest.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - X509_NAME_add_entry_by_NID
    - ASN1_BIT_STRING_set
    - OCSP_CERTID_free
    - ASN1_INTEGER_set_uint64
    - TEST_true
    - ASN1_BIT_STRING_free
    - OCSP_BASICRESP_new
    - ASN1_BIT_STRING_new
    - OCSP_basic_add1_status
    - OCSP_BASICRESP_free
    - EVP_sha256
    - time
    - ASN1_TIME_set
    - OCSP_cert_id_new
    - ASN1_TIME_free
    - X509_NAME_new
    - TEST_ptr
    - ASN1_INTEGER_free
    - X509_NAME_free
    linkageType: ''
    returnType: OCSP_BASICRESP
    signature: OCSP_BASICRESP *make_dummy_resp(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:113,1
    - Dst: make_dummy_resp
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:120,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:121,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:122,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:123,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:124,1
    - Dst: get_cert_and_key
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:124,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:125,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:126,1
    - Dst: OCSP_basic_sign
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:126,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:126,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:129,1
    - Dst: OCSP_resp_get0_signer
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:129,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:130,1
    - Dst: X509_cmp
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:130,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:132,1
    - Dst: make_dummy_resp
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:135,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:137,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:138,1
    - Dst: OCSP_basic_sign
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:138,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:138,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:141,1
    - Dst: OCSP_resp_get0_signer
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:141,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:142,1
    - Dst: X509_cmp
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:142,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:146,1
    - Dst: sk_X509_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:147,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:148,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:149,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 108
    functionDepth: 7
    functionLinenumber: 108
    functionLinenumberEnd: 151
    functionName: test_resp_signer
    functionSourceFile: /src/openssl-1.1.1g/test/ocspapitest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - sk_X509_push
    - TEST_true
    - sk_X509_new_null
    - TEST_ptr
    - EVP_sha1
    - TEST_int_eq
    - STACK_OF
    - make_dummy_resp
    - X509_cmp
    - OCSP_BASICRESP_free
    - get_cert_and_key
    - sk_X509_free
    - EVP_PKEY_free
    - OCSP_resp_get0_signer
    - OCSP_basic_sign
    linkageType: ''
    returnType: int
    signature: int test_resp_signer(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_DESCRIPTION_new
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:155,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:158,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:165,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:167,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:171,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:172,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:173,1
    - Dst: ACCESS_DESCRIPTION_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:177,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 181
    functionName: test_access_description
    functionSourceFile: /src/openssl-1.1.1g/test/ocspapitest.c
    functionUses: 0
    functionsReached:
    - ACCESS_DESCRIPTION_new
    - GENERAL_NAME_new
    - ACCESS_DESCRIPTION_free
    - TEST_ptr
    - GENERAL_NAME_free
    linkageType: ''
    returnType: int
    signature: int test_access_description(int testcase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:195,1
    - Dst: get_cert
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:195,1
    - Dst: OCSP_url_svcloc_new
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:201,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:201,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:202,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:205,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 183
    functionDepth: 5
    functionLinenumber: 183
    functionLinenumberEnd: 210
    functionName: test_ocsp_url_svcloc_new
    functionSourceFile: /src/openssl-1.1.1g/test/ocspapitest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - TEST_true
    - TEST_ptr
    - X509_get_issuer_name
    - get_cert
    - OCSP_url_svcloc_new
    - X509_EXTENSION_free
    linkageType: ''
    returnType: int
    signature: int test_ocsp_url_svcloc_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:216,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:216,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:217,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:217,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:220,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:221,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ocspapitest.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ocspapitest.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:231,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:232,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:235,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:236,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:238,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:239,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:241,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:242,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:245,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:246,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:248,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:249,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:251,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:253,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:254,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:256,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:257,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:260,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:261,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:263,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:264,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:266,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:267,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:267,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:268,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:268,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:269,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:270,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:271,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:272,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:273,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:275,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:276,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:278,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:279,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:279,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:280,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:281,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:282,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:284,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:285,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:285,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:286,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:287,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/bftest.c:288,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 290
    functionName: print_test_data
    functionSourceFile: /src/openssl-1.1.1g/test/bftest.c
    functionUses: 0
    functionsReached:
    - printf
    - strlen
    linkageType: ''
    returnType: int
    signature: int print_test_data(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BF_set_key
      Src: /src/openssl-1.1.1g/test/bftest.c:298,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:298,1
    - Dst: BF_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:302,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:303,1
    - Dst: BF_decrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:306,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 311
    functionName: test_bf_ecb_raw
    functionSourceFile: /src/openssl-1.1.1g/test/bftest.c
    functionUses: 0
    functionsReached:
    - BF_decrypt
    - BF_encrypt
    - BF_set_key
    - TEST_mem_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_bf_ecb_raw(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BF_set_key
      Src: /src/openssl-1.1.1g/test/bftest.c:319,1
    - Dst: BF_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:321,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:322,1
    - Dst: BF_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:325,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 330
    functionName: test_bf_ecb
    functionSourceFile: /src/openssl-1.1.1g/test/bftest.c
    functionUses: 0
    functionsReached:
    - BF_ecb_encrypt
    - BF_set_key
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_bf_ecb(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BF_set_key
      Src: /src/openssl-1.1.1g/test/bftest.c:338,1
    - Dst: BF_ecb_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:339,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: test_bf_set_key
    functionSourceFile: /src/openssl-1.1.1g/test/bftest.c
    functionUses: 0
    functionsReached:
    - BF_ecb_encrypt
    - BF_set_key
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_bf_set_key(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:354,1
    - Dst: BF_set_key
      Src: /src/openssl-1.1.1g/test/bftest.c:356,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bftest.c:357,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bftest.c:358,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bftest.c:359,1
    - Dst: BF_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:360,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:362,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bftest.c:365,1
    - Dst: BF_cbc_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:366,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:367,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 371
    functionName: test_bf_cbc
    functionSourceFile: /src/openssl-1.1.1g/test/bftest.c
    functionUses: 0
    functionsReached:
    - BF_cbc_encrypt
    - BF_set_key
    - memcpy
    - memset
    - TEST_mem_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_bf_cbc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:380,1
    - Dst: BF_set_key
      Src: /src/openssl-1.1.1g/test/bftest.c:382,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bftest.c:383,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bftest.c:384,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bftest.c:385,1
    - Dst: BF_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:387,1
    - Dst: BF_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:389,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:391,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bftest.c:395,1
    - Dst: BF_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:396,1
    - Dst: BF_cfb64_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:397,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 403
    functionName: test_bf_cfb64
    functionSourceFile: /src/openssl-1.1.1g/test/bftest.c
    functionUses: 0
    functionsReached:
    - BF_set_key
    - memcpy
    - BF_cfb64_encrypt
    - memset
    - TEST_mem_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_bf_cfb64(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:412,1
    - Dst: BF_set_key
      Src: /src/openssl-1.1.1g/test/bftest.c:414,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bftest.c:415,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/bftest.c:416,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bftest.c:417,1
    - Dst: BF_ofb64_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:419,1
    - Dst: BF_ofb64_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:421,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:423,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/bftest.c:427,1
    - Dst: BF_ofb64_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:428,1
    - Dst: BF_ofb64_encrypt
      Src: /src/openssl-1.1.1g/test/bftest.c:429,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bftest.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 434
    functionName: test_bf_ofb64
    functionSourceFile: /src/openssl-1.1.1g/test/bftest.c
    functionUses: 0
    functionsReached:
    - BF_set_key
    - memcpy
    - memset
    - TEST_mem_eq
    - BF_ofb64_encrypt
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_bf_ofb64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/test/bftest.c:443,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:443,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/test/bftest.c:445,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/bftest.c:445,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/bftest.c:449,1
    - Dst: print_test_data
      Src: /src/openssl-1.1.1g/test/bftest.c:450,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bftest.c:452,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bftest.c:453,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/bftest.c:454,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bftest.c:455,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bftest.c:456,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bftest.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 461
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/bftest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - ebcdic2ascii
    - test_get_argument
    - print_test_data
    - strlen
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_symhacks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_opensslv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ecdsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ripemd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:89,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-1.1.1g/test/evp_test.c:90,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/evp_test.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 6
    argNames:
    - t
    - err
    - expected
    - expected_len
    - got
    - got_len
    argTypes:
    - EVP_TEST*
    - char*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: memory_err_compare
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - TEST_mem_eq
    - TEST_mem_ne
    linkageType: ''
    returnType: int
    signature: "int memory_err_compare(EVP_TEST *t, const char *err,\n                              const
      void *expected, size_t expected_len,\n                              const void
      *got, size_t got_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:112,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - EVP_TEST_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: evp_test_buffer_free
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void evp_test_buffer_free(EVP_TEST_BUFFER *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:125,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:125,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:128,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:133,1
    - Dst: sk_EVP_TEST_BUFFER_new_null
      Src: /src/openssl-1.1.1g/test/evp_test.c:133,1
    - Dst: sk_EVP_TEST_BUFFER_push
      Src: /src/openssl-1.1.1g/test/evp_test.c:135,1
    - Dst: evp_test_buffer_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - value
    - sk
    argTypes:
    - char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: evp_test_buffer_append
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - evp_test_buffer_free
    - sk_EVP_TEST_BUFFER_push
    - OPENSSL_malloc
    - sk_EVP_TEST_BUFFER_new_null
    - TEST_ptr
    - parse_bin
    linkageType: ''
    returnType: int
    signature: "int evp_test_buffer_append(const char *value,\n                                  STACK_OF(EVP_TEST_BUFFER)
      **sk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/openssl-1.1.1g/test/evp_test.c:154,1
    - Dst: sk_EVP_TEST_BUFFER_num
      Src: /src/openssl-1.1.1g/test/evp_test.c:159,1
    - Dst: sk_EVP_TEST_BUFFER_value
      Src: /src/openssl-1.1.1g/test/evp_test.c:161,1
    - Dst: sk_EVP_TEST_BUFFER_num
      Src: /src/openssl-1.1.1g/test/evp_test.c:161,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:164,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:164,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/evp_test.c:167,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - value
    - sk
    argTypes:
    - char*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 173
    functionName: evp_test_buffer_ncopy
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - atoi
    - OPENSSL_free
    - sk_EVP_TEST_BUFFER_num
    - memcpy
    - sk_EVP_TEST_BUFFER_value
    linkageType: ''
    returnType: int
    signature: "int evp_test_buffer_ncopy(const char *value,\n                                 STACK_OF(EVP_TEST_BUFFER)
      *sk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/openssl-1.1.1g/test/evp_test.c:182,1
    - Dst: sk_EVP_TEST_BUFFER_num
      Src: /src/openssl-1.1.1g/test/evp_test.c:187,1
    - Dst: sk_EVP_TEST_BUFFER_value
      Src: /src/openssl-1.1.1g/test/evp_test.c:190,1
    - Dst: sk_EVP_TEST_BUFFER_num
      Src: /src/openssl-1.1.1g/test/evp_test.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - value
    - sk
    argTypes:
    - char*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: evp_test_buffer_set_count
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - sk_EVP_TEST_BUFFER_value
    - atoi
    - sk_EVP_TEST_BUFFER_num
    linkageType: ''
    returnType: int
    signature: "int evp_test_buffer_set_count(const char *value,\n                                     STACK_OF(EVP_TEST_BUFFER)
      *sk)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:235,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:239,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:239,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:245,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - input
    - input_len
    - out_len
    argTypes:
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 262
    functionName: unescape
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - OPENSSL_free
    - TEST_error
    - OPENSSL_zalloc
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char * unescape(const char *input, size_t input_len,\n                               size_t
      *out_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:273,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:286,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/evp_test.c:296,1
    - Dst: unescape
      Src: /src/openssl-1.1.1g/test/evp_test.c:301,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:306,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/test/evp_test.c:306,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:307,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/evp_test.c:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - value
    - buf
    - buflen
    argTypes:
    - char*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 314
    functionName: parse_bin
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - strcmp
    - TEST_ptr
    - TEST_info
    - unescape
    - OPENSSL_hexstr2buf
    - TEST_openssl_errors
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_bin(const char *value, unsigned char **buf, size_t *buflen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/test/evp_test.c:336,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:338,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:338,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:344,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 349
    functionName: digest_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - TEST_ptr
    - OBJ_sn2nid
    - OBJ_ln2nid
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int digest_test_init(EVP_TEST *t, const char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_TEST_BUFFER_pop_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:355,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: digest_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_EVP_TEST_BUFFER_pop_free
    linkageType: ''
    returnType: void
    signature: void digest_test_cleanup(EVP_TEST *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:364,1
    - Dst: evp_test_buffer_append
      Src: /src/openssl-1.1.1g/test/evp_test.c:365,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:366,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:367,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:368,1
    - Dst: evp_test_buffer_set_count
      Src: /src/openssl-1.1.1g/test/evp_test.c:369,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:370,1
    - Dst: evp_test_buffer_ncopy
      Src: /src/openssl-1.1.1g/test/evp_test.c:371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 373
    functionName: digest_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - evp_test_buffer_set_count
    - evp_test_buffer_append
    - parse_bin
    - evp_test_buffer_ncopy
    linkageType: ''
    returnType: int
    signature: "int digest_test_parse(EVP_TEST *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - buf
    - buflen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: digest_update_fn
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: int digest_update_fn(void *ctx, const unsigned char *buf, size_t buflen)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:388,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_test.c:388,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:391,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:393,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/test/evp_test.c:396,1
    - Dst: evp_test_buffer_do
      Src: /src/openssl-1.1.1g/test/evp_test.c:400,1
    - Dst: EVP_MD_flags
      Src: /src/openssl-1.1.1g/test/evp_test.c:405,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:409,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_test.c:409,1
    - Dst: EVP_MD_CTX_copy
      Src: /src/openssl-1.1.1g/test/evp_test.c:412,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:413,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-1.1.1g/test/evp_test.c:416,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:417,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/evp_test.c:421,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:422,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:426,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-1.1.1g/test/evp_test.c:429,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/test/evp_test.c:434,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/evp_test.c:439,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:443,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:451,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:452,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 454
    functionName: digest_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal
    - EVP_MD_CTX_copy
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - TEST_ptr
    - EVP_MD_flags
    - TEST_str_eq
    - TEST_int_eq
    - OPENSSL_free
    - memory_err_compare
    - EVP_DigestFinalXOF
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - evp_test_buffer_do
    linkageType: ''
    returnType: int
    signature: int digest_test_run(EVP_TEST *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/test/evp_test.c:496,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:498,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:498,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:504,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/test/evp_test.c:507,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/test/evp_test.c:512,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 519
    functionName: cipher_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_flags
    - OBJ_sn2nid
    - EVP_get_cipherbyname
    - OBJ_ln2nid
    - OPENSSL_zalloc
    - EVP_CIPHER_mode
    linkageType: ''
    returnType: int
    signature: int cipher_test_init(EVP_TEST *t, const char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:525,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:526,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:527,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:528,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:529,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 531
    functionName: cipher_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cipher_test_cleanup(EVP_TEST *t)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:538,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:539,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:540,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:541,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:542,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:543,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:544,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:545,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:547,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:548,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:549,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:550,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:551,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:552,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:554,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:562,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:563,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:565,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 572
    functionName: cipher_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bin
    linkageType: ''
    returnType: int
    signature: "int cipher_test_parse(EVP_TEST *t, const char *keyword,\n                             const
      char *value)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:584,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_test.c:584,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/openssl-1.1.1g/test/evp_test.c:586,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:602,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/evp_test.c:605,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:616,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/evp_test.c:620,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/evp_test.c:623,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/test/evp_test.c:629,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/test/evp_test.c:634,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/test/evp_test.c:653,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-1.1.1g/test/evp_test.c:659,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/evp_test.c:663,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:669,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:677,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:685,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:690,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:697,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/test/evp_test.c:704,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openssl-1.1.1g/test/evp_test.c:711,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:716,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:721,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:728,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:736,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-1.1.1g/test/evp_test.c:742,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:746,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/evp_test.c:752,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/test/evp_test.c:756,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:761,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:769,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:770,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 173
    argCount: 5
    argNames:
    - t
    - enc
    - out_misalign
    - inp_misalign
    - frag
    argTypes:
    - EVP_TEST*
    - int
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 772
    functionName: cipher_test_enc
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - OPENSSL_malloc
    - EVP_CIPHER_CTX_set_flags
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_ctrl
    - TEST_ptr
    - OPENSSL_free
    - memcpy
    - memory_err_compare
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_CTX_set_key_length
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_set_padding
    - EVP_CipherUpdate
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int cipher_test_enc(EVP_TEST *t, int enc,\n                           size_t
      out_misalign, size_t inp_misalign, int frag)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/test/evp_test.c:784,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/test/evp_test.c:786,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/evp_test.c:801,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/evp_test.c:806,1
    - Dst: cipher_test_enc
      Src: /src/openssl-1.1.1g/test/evp_test.c:813,1
    - Dst: cipher_test_enc
      Src: /src/openssl-1.1.1g/test/evp_test.c:822,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/test/evp_test.c:838,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/test/evp_test.c:839,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 774
    functionDepth: 4
    functionLinenumber: 774
    functionLinenumberEnd: 850
    functionName: cipher_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - cipher_test_enc
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_mode
    linkageType: ''
    returnType: int
    signature: int cipher_test_run(EVP_TEST *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:888,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:890,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:897,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:904,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:914,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/test/evp_test.c:916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 919
    functionName: mac_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OPENSSL_zalloc
    - sk_OPENSSL_STRING_new_null
    linkageType: ''
    returnType: int
    signature: int mac_test_init(EVP_TEST *t, const char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 925
    functionName: openssl_free
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void openssl_free(char *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:931,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:932,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:933,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:934,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 936
    functionName: mac_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_OPENSSL_STRING_pop_free
    linkageType: ''
    returnType: void
    signature: void mac_test_cleanup(EVP_TEST *t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:943,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:944,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:945,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/evp_test.c:946,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:951,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:952,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:953,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:954,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:955,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/test/evp_test.c:956,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/evp_test.c:957,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 959
    functionName: mac_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OPENSSL_strdup
    - parse_bin
    - sk_OPENSSL_STRING_push
    linkageType: ''
    returnType: int
    signature: "int mac_test_parse(EVP_TEST *t,\n                          const char
      *keyword, const char *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:967,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/evp_test.c:967,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/test/evp_test.c:969,1
    - Dst: EVP_PKEY_CTX_ctrl_str
      Src: /src/openssl-1.1.1g/test/evp_test.c:972,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - t
    - pctx
    - value
    argTypes:
    - EVP_TEST*
    - EVP_PKEY_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 981
    functionName: mac_test_ctrl_pkey
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - OPENSSL_free
    - strchr
    - EVP_PKEY_CTX_ctrl_str
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int mac_test_ctrl_pkey(EVP_TEST *t, EVP_PKEY_CTX *pctx,\n                              const
      char *value)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/openssl-1.1.1g/test/evp_test.c:995,1
    - Dst: EVP_PKEY_new_CMAC_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:1003,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/test/evp_test.c:1004,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:1006,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1014,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/test/evp_test.c:1014,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1019,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_test.c:1019,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/test/evp_test.c:1023,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/test/evp_test.c:1027,1
    - Dst: mac_test_ctrl_pkey
      Src: /src/openssl-1.1.1g/test/evp_test.c:1028,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/test/evp_test.c:1029,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:1034,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/test/evp_test.c:1038,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1042,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1042,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/test/evp_test.c:1046,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:1047,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1055,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1056,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1057,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1058,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 983
    functionDepth: 4
    functionLinenumber: 983
    functionLinenumberEnd: 1060
    functionName: mac_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_free
    - OPENSSL_malloc
    - EVP_get_digestbyname
    - OPENSSL_free
    - EVP_DigestSignInit
    - sk_OPENSSL_STRING_value
    - EVP_PKEY_CTX_free
    - EVP_DigestSignFinal
    - strstr
    - EVP_MD_CTX_new
    - EVP_get_cipherbyname
    - sk_OPENSSL_STRING_num
    - EVP_PKEY_new_raw_private_key
    - mac_test_ctrl_pkey
    - EVP_PKEY_new_CMAC_key
    - TEST_ptr
    - memory_err_compare
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int mac_test_run(EVP_TEST *t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:1108,1
    - Dst: find_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:1110,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1116,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1116,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1117,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1121,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_test.c:1121,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1123,1
    - Dst: keyopinit
      Src: /src/openssl-1.1.1g/test/evp_test.c:1126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - t
    - name
    - use_public
    argTypes:
    - EVP_TEST*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1095
    functionDepth: 3
    functionLinenumber: 1095
    functionLinenumberEnd: 1130
    functionName: pkey_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - TEST_ptr
    - OPENSSL_free
    - keyopinit
    - OPENSSL_zalloc
    - find_key
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int pkey_test_init(EVP_TEST *t, const char *name,\n                          int
      use_public,\n                          int (*keyopinit) (EVP_PKEY_CTX *ctx),\n
      \                         int (*keyop)(EVP_PKEY_CTX *ctx,\n                                       unsigned
      char *sig, size_t *siglen,\n                                       const unsigned
      char *tbs,\n                                       size_t tbslen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1136,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1137,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1139
    functionName: pkey_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void pkey_test_cleanup(EVP_TEST *t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1147,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/evp_test.c:1147,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1149,1
    - Dst: EVP_PKEY_CTX_ctrl_str
      Src: /src/openssl-1.1.1g/test/evp_test.c:1152,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:1158,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:1161,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/test/evp_test.c:1163,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-1.1.1g/test/evp_test.c:1164,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - t
    - pctx
    - value
    argTypes:
    - EVP_TEST*
    - EVP_PKEY_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1174
    functionName: pkey_test_ctrl
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbynid
    - TEST_ptr
    - OBJ_sn2nid
    - OPENSSL_free
    - strchr
    - EVP_PKEY_CTX_ctrl_str
    - OPENSSL_strdup
    - OBJ_ln2nid
    - EVP_get_cipherbynid
    linkageType: ''
    returnType: int
    signature: "int pkey_test_ctrl(EVP_TEST *t, EVP_PKEY_CTX *pctx,\n                          const
      char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1180,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:1181,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1182,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:1183,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1184,1
    - Dst: pkey_test_ctrl
      Src: /src/openssl-1.1.1g/test/evp_test.c:1185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1176
    functionDepth: 3
    functionLinenumber: 1176
    functionLinenumberEnd: 1187
    functionName: pkey_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bin
    - pkey_test_ctrl
    linkageType: ''
    returnType: int
    signature: "int pkey_test_parse(EVP_TEST *t,\n                           const
      char *keyword, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKEY_DATA*::keyop
      Src: /src/openssl-1.1.1g/test/evp_test.c:1195,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1197,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1197,1
    - Dst: PKEY_DATA*::keyop
      Src: /src/openssl-1.1.1g/test/evp_test.c:1201,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:1206,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1215
    functionName: pkey_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - OPENSSL_free
    - memory_err_compare
    - PKEY_DATA*::keyop
    linkageType: ''
    returnType: int
    signature: int pkey_test_run(EVP_TEST *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1217
    functionDepth: 4
    functionLinenumber: 1217
    functionLinenumberEnd: 1220
    functionName: sign_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: int sign_test_init(EVP_TEST *t, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1230
    functionDepth: 4
    functionLinenumber: 1230
    functionLinenumberEnd: 1234
    functionName: verify_recover_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: int verify_recover_test_init(EVP_TEST *t, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1244
    functionDepth: 4
    functionLinenumber: 1244
    functionLinenumberEnd: 1248
    functionName: decrypt_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: int decrypt_test_init(EVP_TEST *t, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1258
    functionDepth: 4
    functionLinenumber: 1258
    functionLinenumberEnd: 1261
    functionName: verify_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: int verify_test_init(EVP_TEST *t, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-1.1.1g/test/evp_test.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1271
    functionName: verify_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_verify
    linkageType: ''
    returnType: int
    signature: int verify_test_run(EVP_TEST *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1282
    functionDepth: 4
    functionLinenumber: 1282
    functionLinenumberEnd: 1285
    functionName: pderive_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: int pderive_test_init(EVP_TEST *t, const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1292,1
    - Dst: find_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:1294,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-1.1.1g/test/evp_test.c:1296,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1300,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:1301,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1302,1
    - Dst: pkey_test_ctrl
      Src: /src/openssl-1.1.1g/test/evp_test.c:1303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1287
    functionDepth: 3
    functionLinenumber: 1287
    functionLinenumberEnd: 1305
    functionName: pderive_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - pkey_test_ctrl
    - EVP_PKEY_derive_set_peer
    - parse_bin
    - find_key
    linkageType: ''
    returnType: int
    signature: "int pderive_test_parse(EVP_TEST *t,\n                              const
      char *keyword, const char *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/test/evp_test.c:1313,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1317,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1317,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/test/evp_test.c:1321,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:1325,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1332,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1307
    functionDepth: 2
    functionLinenumber: 1307
    functionLinenumberEnd: 1334
    functionName: pderive_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - OPENSSL_free
    - memory_err_compare
    - EVP_PKEY_derive
    linkageType: ''
    returnType: int
    signature: int pderive_test_run(EVP_TEST *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_test.c:1380,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:1381,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:1386,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_test.c:1390,1
    - Dst: isdigit
      Src: /src/openssl-1.1.1g/test/evp_test.c:1390,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:1391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - value
    - pr
    argTypes:
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1398
    functionName: parse_uint64
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - TEST_info
    - TEST_true
    - isdigit
    linkageType: ''
    returnType: int
    signature: int parse_uint64(const char *value, uint64_t *pr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1405,1
    - Dst: parse_uint64
      Src: /src/openssl-1.1.1g/test/evp_test.c:1406,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1407,1
    - Dst: parse_uint64
      Src: /src/openssl-1.1.1g/test/evp_test.c:1408,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1409,1
    - Dst: parse_uint64
      Src: /src/openssl-1.1.1g/test/evp_test.c:1410,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1411,1
    - Dst: parse_uint64
      Src: /src/openssl-1.1.1g/test/evp_test.c:1412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1414
    functionName: scrypt_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_uint64
    linkageType: ''
    returnType: int
    signature: "int scrypt_test_parse(EVP_TEST *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1422,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/test/evp_test.c:1423,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1428,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/test/evp_test.c:1429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1417
    functionDepth: 3
    functionLinenumber: 1417
    functionLinenumberEnd: 1435
    functionName: pbkdf2_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - atoi
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: "int pbkdf2_test_parse(EVP_TEST *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1442,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/test/evp_test.c:1443,1
    - Dst: pbkdf2_test_parse
      Src: /src/openssl-1.1.1g/test/evp_test.c:1448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1437
    functionDepth: 4
    functionLinenumber: 1437
    functionLinenumberEnd: 1449
    functionName: pkcs12_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - pbkdf2_test_parse
    - atoi
    linkageType: ''
    returnType: int
    signature: "int pkcs12_test_parse(EVP_TEST *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1456,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1463,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1465,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:1468,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1474
    functionName: pbe_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - TEST_error
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pbe_test_init(EVP_TEST *t, const char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1480,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1481,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1483
    functionName: pbe_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void pbe_test_cleanup(EVP_TEST *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1490,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:1491,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1492,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:1493,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1494,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:1495,1
    - Dst: pbkdf2_test_parse
      Src: /src/openssl-1.1.1g/test/evp_test.c:1497,1
    - Dst: pkcs12_test_parse
      Src: /src/openssl-1.1.1g/test/evp_test.c:1499,1
    - Dst: scrypt_test_parse
      Src: /src/openssl-1.1.1g/test/evp_test.c:1502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1485
    functionDepth: 5
    functionLinenumber: 1485
    functionLinenumberEnd: 1505
    functionName: pbe_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkcs12_test_parse
    - strcmp
    - scrypt_test_parse
    - pbkdf2_test_parse
    - parse_bin
    linkageType: ''
    returnType: int
    signature: "int pbe_test_parse(EVP_TEST *t,\n                          const char
      *keyword, const char *value)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1512,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1512,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openssl-1.1.1g/test/evp_test.c:1517,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openssl-1.1.1g/test/evp_test.c:1526,1
    - Dst: PKCS12_key_gen_uni
      Src: /src/openssl-1.1.1g/test/evp_test.c:1535,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:1543,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1549,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1507
    functionDepth: 5
    functionLinenumber: 1507
    functionLinenumberEnd: 1551
    functionName: pbe_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - OPENSSL_free
    - PKCS12_key_gen_uni
    - memory_err_compare
    - PKCS5_PBKDF2_HMAC
    - EVP_PBE_scrypt
    linkageType: ''
    returnType: int
    signature: int pbe_test_run(EVP_TEST *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1586,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1586,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1588,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1590,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1592,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1594,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/evp_test.c:1594,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:1597,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1605,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - t
    - encoding
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1607
    functionName: encode_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - TEST_ptr
    - OPENSSL_free
    - OPENSSL_strdup
    - TEST_error
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int encode_test_init(EVP_TEST *t, const char *encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1613,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1614,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/evp_test.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1609
    functionDepth: 1
    functionLinenumber: 1609
    functionLinenumberEnd: 1616
    functionName: encode_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - memset
    linkageType: ''
    returnType: void
    signature: void encode_test_cleanup(EVP_TEST *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1623,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:1624,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1625,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:1626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1618
    functionDepth: 3
    functionLinenumber: 1618
    functionLinenumberEnd: 1628
    functionName: encode_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bin
    linkageType: ''
    returnType: int
    signature: "int encode_test_parse(EVP_TEST *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1637,1
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_test.c:1637,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1644,1
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_test.c:1644,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1645,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1646,1
    - Dst: EVP_ENCODE_LENGTH
      Src: /src/openssl-1.1.1g/test/evp_test.c:1646,1
    - Dst: EVP_EncodeInit
      Src: /src/openssl-1.1.1g/test/evp_test.c:1649,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_test.c:1650,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:1650,1
    - Dst: EVP_EncodeFinal
      Src: /src/openssl-1.1.1g/test/evp_test.c:1656,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:1659,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1665,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1666,1
    - Dst: EVP_DECODE_LENGTH
      Src: /src/openssl-1.1.1g/test/evp_test.c:1666,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-1.1.1g/test/evp_test.c:1669,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:1670,1
    - Dst: EVP_DecodeFinal
      Src: /src/openssl-1.1.1g/test/evp_test.c:1677,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:1684,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1693,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1694,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1695,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1696,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1630
    functionDepth: 3
    functionLinenumber: 1630
    functionLinenumberEnd: 1698
    functionName: encode_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_EncodeInit
    - EVP_ENCODE_LENGTH
    - TEST_true
    - EVP_DecodeUpdate
    - TEST_ptr
    - EVP_EncodeUpdate
    - OPENSSL_free
    - EVP_EncodeFinal
    - memory_err_compare
    - EVP_DECODE_LENGTH
    - EVP_DecodeInit
    - EVP_ENCODE_CTX_free
    - EVP_ENCODE_CTX_new
    - EVP_DecodeFinal
    linkageType: ''
    returnType: int
    signature: int encode_test_run(EVP_TEST *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:1727,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1730,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:1737,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1739,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1739,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/test/evp_test.c:1741,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1743,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:1746,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1747,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1724
    functionDepth: 3
    functionLinenumber: 1724
    functionLinenumberEnd: 1753
    functionName: kdf_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - TEST_ptr
    - OBJ_sn2nid
    - OPENSSL_free
    - EVP_PKEY_derive_init
    - OBJ_ln2nid
    - OPENSSL_zalloc
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_new_id
    linkageType: ''
    returnType: int
    signature: int kdf_test_init(EVP_TEST *t, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1758,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1755
    functionDepth: 2
    functionLinenumber: 1755
    functionLinenumberEnd: 1760
    functionName: kdf_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void kdf_test_cleanup(EVP_TEST *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1767,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:1768,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1769,1
    - Dst: pkey_test_ctrl
      Src: /src/openssl-1.1.1g/test/evp_test.c:1770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1762
    functionDepth: 3
    functionLinenumber: 1762
    functionLinenumberEnd: 1772
    functionName: kdf_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bin
    - strncmp
    - pkey_test_ctrl
    linkageType: ''
    returnType: int
    signature: "int kdf_test_parse(EVP_TEST *t,\n                          const char
      *keyword, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1780,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1780,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/test/evp_test.c:1784,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:1788,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1796,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1774
    functionDepth: 2
    functionLinenumber: 1774
    functionLinenumberEnd: 1798
    functionName: kdf_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - OPENSSL_free
    - memory_err_compare
    - EVP_PKEY_derive
    linkageType: ''
    returnType: int
    signature: int kdf_test_run(EVP_TEST *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1826,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/evp_test.c:1826,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1827,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1827,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_test.c:1833,1
    - Dst: find_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:1833,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:1834,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/evp_test.c:1838,1
    - Dst: find_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:1838,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:1839,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1851,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1851,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1860,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - t
    - pair
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1818
    functionDepth: 1
    functionLinenumber: 1818
    functionLinenumberEnd: 1862
    functionName: keypair_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_true
    - TEST_ptr
    - OPENSSL_free
    - strchr
    - OPENSSL_strdup
    - TEST_info
    - find_key
    linkageType: ''
    returnType: int
    signature: int keypair_test_init(EVP_TEST *t, const char *pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1864
    functionDepth: 1
    functionLinenumber: 1864
    functionLinenumberEnd: 1868
    functionName: keypair_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void keypair_test_cleanup(EVP_TEST *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1873
    functionDepth: 0
    functionLinenumber: 1873
    functionLinenumberEnd: 1876
    functionName: void_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int void_test_parse(EVP_TEST *t, const char *keyword, const char *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_cmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1894,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:1902,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1878
    functionDepth: 2
    functionLinenumber: 1878
    functionLinenumberEnd: 1915
    functionName: keypair_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - EVP_PKEY_cmp
    linkageType: ''
    returnType: int
    signature: int keypair_test_run(EVP_TEST *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:1938,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:1941,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1946,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/test/evp_test.c:1946,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:1952,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1957,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:1957,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1966,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1934
    functionDepth: 3
    functionLinenumber: 1934
    functionLinenumberEnd: 1968
    functionName: keygen_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - OBJ_sn2nid
    - OBJ_ln2nid
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_new_id
    linkageType: ''
    returnType: int
    signature: int keygen_test_init(EVP_TEST *t, const char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1974,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1975,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:1976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1970
    functionDepth: 2
    functionLinenumber: 1970
    functionLinenumberEnd: 1978
    functionName: keygen_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void keygen_test_cleanup(EVP_TEST *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1985,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:1986,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/evp_test.c:1986,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:1987,1
    - Dst: pkey_test_ctrl
      Src: /src/openssl-1.1.1g/test/evp_test.c:1988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1980
    functionDepth: 3
    functionLinenumber: 1980
    functionLinenumberEnd: 1990
    functionName: keygen_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - TEST_ptr
    - OPENSSL_strdup
    - pkey_test_ctrl
    linkageType: ''
    returnType: int
    signature: "int keygen_test_parse(EVP_TEST *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-1.1.1g/test/evp_test.c:1998,1
    - Dst: find_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:2006,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2007,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2011,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:2011,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2019,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2025,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 1992
    functionDepth: 3
    functionLinenumber: 1992
    functionLinenumberEnd: 2027
    functionName: keygen_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - EVP_PKEY_keygen
    - TEST_info
    - find_key
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int keygen_test_run(EVP_TEST *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2060,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/test/evp_test.c:2061,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:2063,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:2063,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2070,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:2070,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2073,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/test/evp_test.c:2073,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2074,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - t
    - alg
    - is_verify
    - is_oneshot
    argTypes:
    - EVP_TEST*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2054
    functionDepth: 3
    functionLinenumber: 2054
    functionLinenumberEnd: 2081
    functionName: digestsigver_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - EVP_MD_CTX_new
    - strcmp
    - TEST_ptr
    - OBJ_sn2nid
    - OPENSSL_free
    - OBJ_ln2nid
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: "int digestsigver_test_init(EVP_TEST *t, const char *alg, int is_verify,\n
      \                                 int is_oneshot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: digestsigver_test_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:2085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2083
    functionDepth: 4
    functionLinenumber: 2083
    functionLinenumberEnd: 2086
    functionName: digestsign_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - digestsigver_test_init
    linkageType: ''
    returnType: int
    signature: int digestsign_test_init(EVP_TEST *t, const char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2092,1
    - Dst: sk_EVP_TEST_BUFFER_pop_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2093,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2094,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2095,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2088
    functionDepth: 4
    functionLinenumber: 2088
    functionLinenumberEnd: 2098
    functionName: digestsigver_test_cleanup
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - sk_EVP_TEST_BUFFER_pop_free
    - OPENSSL_free
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void digestsigver_test_cleanup(EVP_TEST *t)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2105,1
    - Dst: find_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:2110,1
    - Dst: find_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:2112,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/test/evp_test.c:2118,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/test/evp_test.c:2123,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2129,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:2131,1
    - Dst: evp_test_buffer_append
      Src: /src/openssl-1.1.1g/test/evp_test.c:2132,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2134,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:2135,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2138,1
    - Dst: evp_test_buffer_set_count
      Src: /src/openssl-1.1.1g/test/evp_test.c:2139,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2140,1
    - Dst: evp_test_buffer_ncopy
      Src: /src/openssl-1.1.1g/test/evp_test.c:2141,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2143,1
    - Dst: pkey_test_ctrl
      Src: /src/openssl-1.1.1g/test/evp_test.c:2146,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - EVP_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2100
    functionDepth: 3
    functionLinenumber: 2100
    functionLinenumberEnd: 2149
    functionName: digestsigver_test_parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - evp_test_buffer_set_count
    - evp_test_buffer_append
    - pkey_test_ctrl
    - EVP_DigestSignInit
    - parse_bin
    - find_key
    - evp_test_buffer_ncopy
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: "int digestsigver_test_parse(EVP_TEST *t,\n                                   const
      char *keyword, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:2154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - buf
    - buflen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2151
    functionDepth: 1
    functionLinenumber: 2151
    functionLinenumberEnd: 2155
    functionName: digestsign_update_fn
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: "int digestsign_update_fn(void *ctx, const unsigned char *buf,\n                                size_t
      buflen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evp_test_buffer_do
      Src: /src/openssl-1.1.1g/test/evp_test.c:2163,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/test/evp_test.c:2169,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2173,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:2173,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/test/evp_test.c:2177,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:2181,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2188,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2157
    functionDepth: 2
    functionLinenumber: 2157
    functionLinenumberEnd: 2190
    functionName: digestsign_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - OPENSSL_free
    - memory_err_compare
    - EVP_DigestSignFinal
    - evp_test_buffer_do
    linkageType: ''
    returnType: int
    signature: int digestsign_test_run(EVP_TEST *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: digestsigver_test_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:2202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2200
    functionDepth: 4
    functionLinenumber: 2200
    functionLinenumberEnd: 2203
    functionName: digestverify_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - digestsigver_test_init
    linkageType: ''
    returnType: int
    signature: int digestverify_test_init(EVP_TEST *t, const char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-1.1.1g/test/evp_test.c:2208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - buf
    - buflen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2205
    functionDepth: 1
    functionLinenumber: 2205
    functionLinenumberEnd: 2209
    functionName: digestverify_update_fn
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestVerifyUpdate
    linkageType: ''
    returnType: int
    signature: "int digestverify_update_fn(void *ctx, const unsigned char *buf,\n
      \                                 size_t buflen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_test_buffer_do
      Src: /src/openssl-1.1.1g/test/evp_test.c:2215,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/test/evp_test.c:2220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2211
    functionDepth: 2
    functionLinenumber: 2211
    functionLinenumberEnd: 2224
    functionName: digestverify_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestVerifyFinal
    - evp_test_buffer_do
    linkageType: ''
    returnType: int
    signature: int digestverify_test_run(EVP_TEST *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: digestsigver_test_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:2236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2234
    functionDepth: 4
    functionLinenumber: 2234
    functionLinenumberEnd: 2237
    functionName: oneshot_digestsign_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - digestsigver_test_init
    linkageType: ''
    returnType: int
    signature: int oneshot_digestsign_test_init(EVP_TEST *t, const char *alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestSign
      Src: /src/openssl-1.1.1g/test/evp_test.c:2245,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2250,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:2250,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-1.1.1g/test/evp_test.c:2254,1
    - Dst: memory_err_compare
      Src: /src/openssl-1.1.1g/test/evp_test.c:2259,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2266,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2239
    functionDepth: 3
    functionLinenumber: 2239
    functionLinenumberEnd: 2268
    functionName: oneshot_digestsign_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_DigestSign
    - TEST_ptr
    - OPENSSL_free
    - memory_err_compare
    linkageType: ''
    returnType: int
    signature: int oneshot_digestsign_test_run(EVP_TEST *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: digestsigver_test_init
      Src: /src/openssl-1.1.1g/test/evp_test.c:2280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - EVP_TEST*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2278
    functionDepth: 4
    functionLinenumber: 2278
    functionLinenumberEnd: 2281
    functionName: oneshot_digestverify_test_init
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - digestsigver_test_init
    linkageType: ''
    returnType: int
    signature: int oneshot_digestverify_test_init(EVP_TEST *t, const char *alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/test/evp_test.c:2287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2283
    functionDepth: 3
    functionLinenumber: 2283
    functionLinenumberEnd: 2291
    functionName: oneshot_digestverify_test_run
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestVerify
    linkageType: ''
    returnType: int
    signature: int oneshot_digestverify_test_run(EVP_TEST *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2327
    functionDepth: 0
    functionLinenumber: 2327
    functionLinenumberEnd: 2336
    functionName: find_test
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: EVP_TEST_METHOD
    signature: EVP_TEST_METHOD *find_test(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_clearstanza
      Src: /src/openssl-1.1.1g/test/evp_test.c:2340,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:2341,1
    - Dst: EVP_TEST*::meth::cleanup
      Src: /src/openssl-1.1.1g/test/evp_test.c:2344,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2345,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2348,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2350,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2338
    functionDepth: 2
    functionLinenumber: 2338
    functionLinenumberEnd: 2359
    functionName: clear_test
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_TEST*::meth::cleanup
    - OPENSSL_free
    - test_clearstanza
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: void clear_test(EVP_TEST *t)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2374,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2377,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2383,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2388,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2389,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2398,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:2403,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2405,1
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/test/evp_test.c:2410,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-1.1.1g/test/evp_test.c:2411,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2413,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2419,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2419,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2422,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2364
    functionDepth: 2
    functionLinenumber: 2364
    functionLinenumberEnd: 2426
    functionName: check_test_error
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - ERR_peek_error
    - strcmp
    - ERR_func_error_string
    - ERR_reason_error_string
    - TEST_info
    linkageType: ''
    returnType: int
    signature: int check_test_error(EVP_TEST *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_TEST*::meth::run_test
      Src: /src/openssl-1.1.1g/test/evp_test.c:2440,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2441,1
    - Dst: check_test_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:2445,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/evp_test.c:2446,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2431
    functionDepth: 3
    functionLinenumber: 2431
    functionLinenumberEnd: 2453
    functionName: run_test
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 1
    functionsReached:
    - check_test_error
    - EVP_TEST*::meth::run_test
    - TEST_info
    - TEST_openssl_errors
    linkageType: ''
    returnType: int
    signature: int run_test(EVP_TEST *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ppk
    - name
    - lst
    argTypes:
    - EVP_PKEY**
    - char*
    - KEY_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2455
    functionDepth: 0
    functionLinenumber: 2455
    functionLinenumberEnd: 2465
    functionName: find_key
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 6
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int find_key(EVP_PKEY **ppk, const char *name, KEY_LIST *lst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2472,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2473,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lst
    argTypes:
    - KEY_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2467
    functionDepth: 2
    functionLinenumber: 2467
    functionLinenumberEnd: 2477
    functionName: free_key_list
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void free_key_list(KEY_LIST *lst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:2484,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/test/evp_test.c:2486,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/evp_test.c:2487,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:2488,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/test/evp_test.c:2497,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/evp_test.c:2498,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:2499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2482
    functionDepth: 2
    functionLinenumber: 2482
    functionLinenumberEnd: 2504
    functionName: key_unsupported
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - ERR_GET_LIB
    - ERR_peek_error
    - ERR_GET_REASON
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: int key_unsupported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pp
    argTypes:
    - PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2509
    functionDepth: 0
    functionLinenumber: 2509
    functionLinenumberEnd: 2515
    functionName: take_value
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *take_value(PAIR *pp)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: BIO_eof
      Src: /src/openssl-1.1.1g/test/evp_test.c:2529,1
    - Dst: clear_test
      Src: /src/openssl-1.1.1g/test/evp_test.c:2531,1
    - Dst: test_readstanza
      Src: /src/openssl-1.1.1g/test/evp_test.c:2532,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2540,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/test/evp_test.c:2541,1
    - Dst: key_unsupported
      Src: /src/openssl-1.1.1g/test/evp_test.c:2542,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2543,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2544,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/evp_test.c:2545,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2549,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/openssl-1.1.1g/test/evp_test.c:2550,1
    - Dst: key_unsupported
      Src: /src/openssl-1.1.1g/test/evp_test.c:2551,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2552,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2553,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/evp_test.c:2554,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2558,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2559,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2565,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2570,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2573,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2578,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-1.1.1g/test/evp_test.c:2582,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2584,1
    - Dst: parse_bin
      Src: /src/openssl-1.1.1g/test/evp_test.c:2587,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2588,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:2592,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:2594,1
    - Dst: key_unsupported
      Src: /src/openssl-1.1.1g/test/evp_test.c:2595,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2596,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2597,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-1.1.1g/test/evp_test.c:2598,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2601,1
    - Dst: find_key
      Src: /src/openssl-1.1.1g/test/evp_test.c:2606,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2607,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2610,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:2610,1
    - Dst: take_value
      Src: /src/openssl-1.1.1g/test/evp_test.c:2612,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2615,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2617,1
    - Dst: EVP_PKEY_set_alias_type
      Src: /src/openssl-1.1.1g/test/evp_test.c:2620,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2630,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2635,1
    - Dst: find_test
      Src: /src/openssl-1.1.1g/test/evp_test.c:2635,1
    - Dst: EVP_TEST*::meth::init
      Src: /src/openssl-1.1.1g/test/evp_test.c:2637,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:2638,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2647,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2649,1
    - Dst: take_value
      Src: /src/openssl-1.1.1g/test/evp_test.c:2652,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2653,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2655,1
    - Dst: take_value
      Src: /src/openssl-1.1.1g/test/evp_test.c:2658,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/evp_test.c:2659,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2661,1
    - Dst: take_value
      Src: /src/openssl-1.1.1g/test/evp_test.c:2664,1
    - Dst: EVP_TEST*::meth::parse
      Src: /src/openssl-1.1.1g/test/evp_test.c:2667,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2670,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/evp_test.c:2674,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 131
    argCount: 1
    argNames:
    - t
    argTypes:
    - EVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2520
    functionDepth: 8
    functionLinenumber: 2520
    functionLinenumberEnd: 2682
    functionName: parse
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 6
    functionsReached:
    - find_key
    - EVP_TEST*::meth::init
    - take_value
    - clear_test
    - OPENSSL_malloc
    - strcmp
    - OPENSSL_free
    - find_test
    - PEM_read_bio_PrivateKey
    - TEST_info
    - parse_bin
    - TEST_error
    - EVP_PKEY_set_alias_type
    - strstr
    - EVP_TEST*::meth::parse
    - strchr
    - OBJ_txt2nid
    - test_readstanza
    - EVP_PKEY_new_raw_private_key
    - TEST_openssl_errors
    - BIO_eof
    - TEST_ptr
    - key_unsupported
    - EVP_PKEY_free
    - EVP_PKEY_new_raw_public_key
    - PEM_read_bio_PUBKEY
    linkageType: ''
    returnType: int
    signature: int parse(EVP_TEST *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/evp_test.c:2687,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/evp_test.c:2690,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/evp_test.c:2690,1
    - Dst: test_start_file
      Src: /src/openssl-1.1.1g/test/evp_test.c:2692,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2693,1
    - Dst: BIO_eof
      Src: /src/openssl-1.1.1g/test/evp_test.c:2697,1
    - Dst: parse
      Src: /src/openssl-1.1.1g/test/evp_test.c:2698,1
    - Dst: run_test
      Src: /src/openssl-1.1.1g/test/evp_test.c:2701,1
    - Dst: test_end_file
      Src: /src/openssl-1.1.1g/test/evp_test.c:2706,1
    - Dst: clear_test
      Src: /src/openssl-1.1.1g/test/evp_test.c:2707,1
    - Dst: free_key_list
      Src: /src/openssl-1.1.1g/test/evp_test.c:2709,1
    - Dst: free_key_list
      Src: /src/openssl-1.1.1g/test/evp_test.c:2710,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2711,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/evp_test.c:2713,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2684
    functionDepth: 9
    functionLinenumber: 2684
    functionLinenumberEnd: 2715
    functionName: run_file_tests
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_end_file
    - clear_test
    - test_start_file
    - free_key_list
    - TEST_ptr
    - OPENSSL_free
    - run_test
    - test_get_argument
    - OPENSSL_zalloc
    - BIO_free
    - BIO_eof
    - parse
    linkageType: ''
    returnType: int
    signature: int run_file_tests(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument_count
      Src: /src/openssl-1.1.1g/test/evp_test.c:2719,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/evp_test.c:2722,1
    - Dst: test_get_program_name
      Src: /src/openssl-1.1.1g/test/evp_test.c:2722,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/evp_test.c:2726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2717
    functionDepth: 1
    functionLinenumber: 2717
    functionLinenumberEnd: 2728
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_get_argument_count
    - TEST_error
    - ADD_ALL_TESTS
    - test_get_program_name
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:29,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:33,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: parse_boolean
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int parse_boolean(const char *value, int *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - struct_type
    - ','
    - name
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: IMPLEMENT_SSL_TEST_BOOL_OPTION
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_SSL_TEST_BOOL_OPTION(struct_type, name, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - struct_type
    - ','
    - name
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: IMPLEMENT_SSL_TEST_STRING_OPTION
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_SSL_TEST_STRING_OPTION(struct_type, name, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - struct_type
    - ','
    - name
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: IMPLEMENT_SSL_TEST_INT_OPTION
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_SSL_TEST_INT_OPTION(struct_type, name, field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - enums
    - num_enums
    - value
    - name
    argTypes:
    - test_enum*
    - size_t
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: parse_enum
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_enum(const test_enum *enums, size_t num_enums,\n                             int
      *value, const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - enums
    - num_enums
    - value
    argTypes:
    - test_enum*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: enum_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *enum_name(const test_enum *enums, size_t num_enums,\n                             int
      value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:108,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: parse_expected_result
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: __owur parse_expected_result(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:118,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - ssl_test_result_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: ssl_test_result_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_test_result_name(ssl_test_result_t result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:134,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alert
    - value
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: parse_alert
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: __owur parse_alert(int *alert, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_alert
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: parse_client_alert
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_alert
    linkageType: ''
    returnType: __owur
    signature: __owur parse_client_alert(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_alert
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: parse_server_alert
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_alert
    linkageType: ''
    returnType: __owur
    signature: __owur parse_server_alert(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:149,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: ssl_alert_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_alert_name(int alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:166,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: parse_protocol
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: __owur parse_protocol(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:172,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: ssl_protocol_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_protocol_name(int protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:187,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - client_conf
    - value
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: parse_client_verify_callback
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_client_verify_callback(SSL_TEST_CLIENT_CONF *client_conf,\n
      \                                              const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:197,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - ssl_verify_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: ssl_verify_callback_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_verify_callback_name(ssl_verify_callback_t callback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:214,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - client_conf
    - value
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 220
    functionName: parse_servername
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_servername(SSL_TEST_CLIENT_CONF *client_conf,\n                                   const
      char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:226,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 232
    functionName: parse_expected_servername
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_servername(SSL_TEST_CTX *test_ctx,\n                                            const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:236,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - server
    argTypes:
    - ssl_servername_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: ssl_servername_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_servername_name(ssl_servername_t server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:257,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - server_conf
    - value
    argTypes:
    - SSL_TEST_SERVER_CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: parse_servername_callback
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_servername_callback(SSL_TEST_SERVER_CONF *server_conf,\n
      \                                           const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:267,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - ssl_servername_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: ssl_servername_callback_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_servername_callback_name(ssl_servername_callback_t callback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:282,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: parse_session_ticket
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: __owur parse_session_ticket(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:292,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - server
    argTypes:
    - ssl_session_ticket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: ssl_session_ticket_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_session_ticket_name(ssl_session_ticket_t server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:312,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 318
    functionName: parse_session_id
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: __owur parse_session_id(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:322,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - server
    argTypes:
    - ssl_session_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: ssl_session_id_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_session_id_name(ssl_session_id_t server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:337,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: parse_test_method
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: __owur parse_test_method(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:347,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - ssl_test_method_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: ssl_test_method_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_test_method_name(ssl_test_method_t method)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:384,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: parse_handshake_mode
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: __owur parse_handshake_mode(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:394,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ssl_handshake_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 396
    functionName: ssl_handshake_mode_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_handshake_mode_name(ssl_handshake_mode_t mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:412,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 418
    functionName: parse_key_update_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: __owur parse_key_update_type(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:432,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - client_conf
    - value
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 438
    functionName: parse_ct_validation
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_ct_validation(SSL_TEST_CLIENT_CONF *client_conf,\n                                      const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:442,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ssl_ct_validation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: ssl_ct_validation_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_ct_validation_name(ssl_ct_validation_t mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:464,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - server_conf
    - value
    argTypes:
    - SSL_TEST_SERVER_CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 470
    functionName: parse_certstatus
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_certstatus(SSL_TEST_SERVER_CONF *server_conf,\n                                            const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:474,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert_status
    argTypes:
    - ssl_cert_status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: ssl_certstatus_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_certstatus_name(ssl_cert_status_t cert_status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:501,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - client_conf
    - value
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 507
    functionName: parse_max_fragment_len_mode
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_enum
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_max_fragment_len_mode(SSL_TEST_CLIENT_CONF *client_conf,\n
      \                                             const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:511,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - MFL_mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: ssl_max_fragment_len_name
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - enum_name
    linkageType: ''
    returnType: char
    signature: char *ssl_max_fragment_len_name(int MFL_mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:525,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:527,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:529,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:531,1
    - Dst: EC_curve_nist2nid
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ptype
    - value
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 540
    functionName: parse_expected_key_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OBJ_sn2nid
    - EC_curve_nist2nid
    - OBJ_ln2nid
    - EVP_PKEY_asn1_get0_info
    - EVP_PKEY_asn1_find_str
    linkageType: ''
    returnType: __owur
    signature: __owur parse_expected_key_type(int *ptype, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_expected_key_type
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: parse_expected_tmp_key_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_expected_key_type
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_tmp_key_type(SSL_TEST_CTX *test_ctx,\n                                              const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_expected_key_type
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: parse_expected_server_cert_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_expected_key_type
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_server_cert_type(SSL_TEST_CTX *test_ctx,\n                                                  const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_expected_key_type
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 4
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: parse_expected_server_sign_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_expected_key_type
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_server_sign_type(SSL_TEST_CTX *test_ctx,\n                                                 const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_expected_key_type
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 562
    functionDepth: 4
    functionLinenumber: 562
    functionLinenumberEnd: 567
    functionName: parse_expected_client_cert_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_expected_key_type
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_client_cert_type(SSL_TEST_CTX *test_ctx,\n                                                  const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_expected_key_type
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 569
    functionDepth: 4
    functionLinenumber: 569
    functionLinenumberEnd: 574
    functionName: parse_expected_client_sign_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_expected_key_type
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_client_sign_type(SSL_TEST_CTX *test_ctx,\n                                                 const
      char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:585,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ptype
    - value
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 592
    functionName: parse_expected_sign_hash
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OBJ_sn2nid
    - OBJ_ln2nid
    linkageType: ''
    returnType: __owur
    signature: __owur parse_expected_sign_hash(int *ptype, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_expected_sign_hash
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 599
    functionName: parse_expected_server_sign_hash
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_expected_sign_hash
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_server_sign_hash(SSL_TEST_CTX *test_ctx,\n                                                  const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_expected_sign_hash
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: parse_expected_client_sign_hash
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_expected_sign_hash
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_client_sign_hash(SSL_TEST_CTX *test_ctx,\n                                                  const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_expected_ca_names
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 623
    functionName: parse_expected_server_ca_names
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_expected_ca_names
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_server_ca_names(SSL_TEST_CTX *test_ctx,\n                                                 const
      char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_expected_ca_names
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 628
    functionName: parse_expected_client_ca_names
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_expected_ca_names
    linkageType: ''
    returnType: __owur
    signature: "__owur parse_expected_client_ca_names(SSL_TEST_CTX *test_ctx,\n                                                 const
      char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 727
    functionName: SSL_TEST_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SSL_TEST_CTX
    signature: SSL_TEST_CTX *SSL_TEST_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:731,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:732,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:733,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:734,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:735,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:736,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:737,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:738,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:739,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:740,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:741,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:742,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:743,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:744,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - conf
    argTypes:
    - SSL_TEST_EXTRA_CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 746
    functionName: ssl_test_extra_conf_free_data
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ssl_test_extra_conf_free_data(SSL_TEST_EXTRA_CONF *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_test_extra_conf_free_data
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:750,1
    - Dst: ssl_test_extra_conf_free_data
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: ssl_test_ctx_free_extra_data
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - ssl_test_extra_conf_free_data
    linkageType: ''
    returnType: void
    signature: void ssl_test_ctx_free_extra_data(SSL_TEST_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_test_ctx_free_extra_data
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:756,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:757,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:758,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:759,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:760,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:761,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:762,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 764
    functionName: SSL_TEST_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - ssl_test_ctx_free_extra_data
    - OPENSSL_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: void
    signature: void SSL_TEST_CTX_free(SSL_TEST_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:769,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:773,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:773,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:776,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:778,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:779,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:780,1
    - Dst: parse
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:781,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:782,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:791,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - client
    - conf
    - client_section
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 766
    functionDepth: 9
    functionLinenumber: 766
    functionLinenumberEnd: 797
    functionName: parse_client_options
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - NCONF_get_section
    - TEST_ptr
    - sk_CONF_VALUE_num
    - strcmp
    - STACK_OF
    - TEST_info
    - sk_CONF_VALUE_value
    - parse
    linkageType: ''
    returnType: int
    signature: "int parse_client_options(SSL_TEST_CLIENT_CONF *client, const CONF
      *conf,\n                                const char *client_section)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:802,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:806,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:806,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:809,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:811,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:812,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:813,1
    - Dst: parse
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:814,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:815,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:824,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - server
    - conf
    - server_section
    argTypes:
    - SSL_TEST_SERVER_CONF*
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 799
    functionDepth: 9
    functionLinenumber: 799
    functionLinenumberEnd: 830
    functionName: parse_server_options
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - NCONF_get_section
    - TEST_ptr
    - sk_CONF_VALUE_num
    - strcmp
    - STACK_OF
    - TEST_info
    - sk_CONF_VALUE_value
    - parse
    linkageType: ''
    returnType: int
    signature: "int parse_server_options(SSL_TEST_SERVER_CONF *server, const CONF
      *conf,\n                                const char *server_section)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:834,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:839,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:839,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:840,1
    - Dst: SSL_TEST_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:840,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:843,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:845,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:848,1
    - Dst: parse_client_options
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:849,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:851,1
    - Dst: parse_server_options
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:852,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:854,1
    - Dst: parse_server_options
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:855,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:857,1
    - Dst: parse_client_options
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:858,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:861,1
    - Dst: parse_server_options
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:862,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:865,1
    - Dst: parse_server_options
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:866,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:870,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:871,1
    - Dst: parse
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:872,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:873,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:882,1
    - Dst: SSL_TEST_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx.c:891,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 63
    argCount: 2
    argNames:
    - conf
    - test_section
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 832
    functionDepth: 10
    functionLinenumber: 832
    functionLinenumberEnd: 895
    functionName: SSL_TEST_CTX_create
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - parse_server_options
    - NCONF_get_section
    - TEST_ptr
    - sk_CONF_VALUE_num
    - strcmp
    - STACK_OF
    - SSL_TEST_CTX_new
    - TEST_info
    - SSL_TEST_CTX_free
    - sk_CONF_VALUE_value
    - parse_client_options
    - parse
    linkageType: ''
    returnType: SSL_TEST_CTX
    signature: SSL_TEST_CTX *SSL_TEST_CTX_create(const CONF *conf, const char *test_section)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/test/servername_test.c:42,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:43,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/test/servername_test.c:43,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/servername_test.c:45,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:47,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/servername_test.c:47,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:49,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/test/servername_test.c:49,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:52,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/servername_test.c:52,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:54,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/servername_test.c:54,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:56,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/test/servername_test.c:56,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:58,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/servername_test.c:58,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/servername_test.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:63,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/test/servername_test.c:63,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:64,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/servername_test.c:64,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:67,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/servername_test.c:67,1
    - Dst: TEST_uint_ne
      Src: /src/openssl-1.1.1g/test/servername_test.c:68,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/servername_test.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:69,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/test/servername_test.c:69,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/servername_test.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:71,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/test/servername_test.c:71,1
    - Dst: TEST_uint_le
      Src: /src/openssl-1.1.1g/test/servername_test.c:72,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/test/servername_test.c:72,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/servername_test.c:73,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openssl-1.1.1g/test/servername_test.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:74,1
    - Dst: PACKET_strndup
      Src: /src/openssl-1.1.1g/test/servername_test.c:74,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 21
    argCount: 2
    argNames:
    - bio
    - sni
    argTypes:
    - BIO*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 82
    functionName: get_sni_from_client_hello
    functionSourceFile: /src/openssl-1.1.1g/test/servername_test.c
    functionUses: 0
    functionsReached:
    - BIO_get_mem_data
    - PACKET_get_length_prefixed_1
    - PACKET_buf_init
    - PACKET_get_length_prefixed_2
    - TEST_true
    - PACKET_get_1
    - TEST_uint_le
    - PACKET_contains_zero_byte
    - PACKET_remaining
    - PACKET_strndup
    - PACKET_as_length_prefixed_2
    - TEST_uint_eq
    - TEST_false
    - PACKET_forward
    - TEST_uint_ne
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int get_sni_from_client_hello(BIO *bio, char **sni)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/servername_test.c:94,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/servername_test.c:94,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:95,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/servername_test.c:98,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:99,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/servername_test.c:103,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/servername_test.c:105,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/servername_test.c:105,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/servername_test.c:106,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/servername_test.c:106,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:107,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:107,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:108,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:109,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/servername_test.c:113,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/servername_test.c:115,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/servername_test.c:115,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:118,1
    - Dst: get_sni_from_client_hello
      Src: /src/openssl-1.1.1g/test/servername_test.c:118,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/servername_test.c:121,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:126,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:127,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:128,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 130
    functionName: client_setup_sni_before_state
    functionSourceFile: /src/openssl-1.1.1g/test/servername_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - SSL_set_tlsext_host_name
    - SSL_set_bio
    - get_sni_from_client_hello
    - TEST_ptr
    - SSL_connect
    - TEST_str_eq
    - OPENSSL_free
    - BIO_s_mem
    - TEST_int_le
    - BIO_free
    - SSL_new
    - SSL_CTX_new
    - SSL_CTX_free
    - SSL_free
    - TLS_method
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int client_setup_sni_before_state(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/servername_test.c:142,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/servername_test.c:142,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:143,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/servername_test.c:146,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:147,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/servername_test.c:150,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/servername_test.c:150,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/servername_test.c:151,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/servername_test.c:151,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:152,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:152,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:153,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:154,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/servername_test.c:158,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/servername_test.c:159,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/servername_test.c:162,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/servername_test.c:164,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/servername_test.c:164,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:167,1
    - Dst: get_sni_from_client_hello
      Src: /src/openssl-1.1.1g/test/servername_test.c:167,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/servername_test.c:170,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:175,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:176,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:177,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 179
    functionName: client_setup_sni_after_state
    functionSourceFile: /src/openssl-1.1.1g/test/servername_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - SSL_set_tlsext_host_name
    - SSL_set_bio
    - get_sni_from_client_hello
    - TEST_ptr
    - SSL_connect
    - TEST_str_eq
    - OPENSSL_free
    - BIO_s_mem
    - TEST_int_le
    - BIO_free
    - SSL_set_connect_state
    - SSL_new
    - SSL_CTX_new
    - SSL_CTX_free
    - SSL_free
    - TLS_method
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int client_setup_sni_after_state(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:187,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/servername_test.c:187,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/servername_test.c:187,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/servername_test.c:188,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:191,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/servername_test.c:191,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/servername_test.c:196,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/servername_test.c:198,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/servername_test.c:198,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/servername_test.c:201,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/servername_test.c:201,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:209,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:210,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:211,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/servername_test.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 215
    functionName: server_setup_sni
    functionSourceFile: /src/openssl-1.1.1g/test/servername_test.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TEST_true
    - SSL_set_tlsext_host_name
    - create_ssl_objects
    - create_ssl_ctx_pair
    - TLS_client_method
    - TEST_ptr_null
    - SSL_get_servername
    - SSL_free
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: int server_setup_sni(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - test
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: test_servername
    functionSourceFile: /src/openssl-1.1.1g/test/servername_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_servername(int test)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:236,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/servername_test.c:236,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/servername_test.c:237,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/servername_test.c:237,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/servername_test.c:240,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/servername_test.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 242
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/servername_test.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:184,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:199,1
    - Dst: SipHash_set_hash_size
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:199,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:200,1
    - Dst: SipHash_Init
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:200,1
    - Dst: SipHash_Update
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:202,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:203,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:203,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:204,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:208,1
    - Dst: SipHash_set_hash_size
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:209,1
    - Dst: SipHash_Init
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:209,1
    - Dst: SipHash_Update
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:211,1
    - Dst: SipHash_Update
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:212,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:213,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:213,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:216,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:217,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:225,1
    - Dst: SipHash_set_hash_size
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:225,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:226,1
    - Dst: SipHash_Init
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:226,1
    - Dst: SipHash_Update
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:228,1
    - Dst: SipHash_Update
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:229,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:230,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:230,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:233,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:234,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:239,1
    - Dst: SipHash_set_hash_size
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:239,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:240,1
    - Dst: SipHash_Init
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:240,1
    - Dst: SipHash_Update
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:242,1
    - Dst: SipHash_Update
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:243,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:244,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:244,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:247,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:248,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 256
    functionName: test_siphash
    functionSourceFile: /src/openssl-1.1.1g/test/siphash_internal_test.c
    functionUses: 0
    functionsReached:
    - SipHash_Update
    - TEST_true
    - SipHash_set_hash_size
    - SipHash_Init
    - TEST_int_le
    - TEST_info
    - SipHash_Final
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_siphash(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:265,1
    - Dst: SipHash_set_hash_size
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:265,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:267,1
    - Dst: SipHash_set_hash_size
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:267,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:268,1
    - Dst: SipHash_Init
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:268,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:269,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:269,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:270,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:270,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:273,1
    - Dst: SipHash_set_hash_size
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:273,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:274,1
    - Dst: SipHash_Init
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:274,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:275,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:275,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:276,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:276,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:279,1
    - Dst: SipHash_set_hash_size
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:279,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:280,1
    - Dst: SipHash_Init
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:280,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:281,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:281,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:282,1
    - Dst: SipHash_Final
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: test_siphash_basic
    functionSourceFile: /src/openssl-1.1.1g/test/siphash_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - SipHash_set_hash_size
    - TEST_int_eq
    - SipHash_Init
    - SipHash_Final
    linkageType: ''
    returnType: int
    signature: int test_siphash_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:287,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:288,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/siphash_internal_test.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/siphash_internal_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_rc2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: isblank
    functionSourceFile: /src/openssl-1.1.1g/test/ctype_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isblank(int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:30,1
    - Dst: isascii
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:30,1
    - Dst: ossl_isascii
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:30,1
    - Dst: ossl_isascii
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:33,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:36,1
    - Dst: isalpha
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:36,1
    - Dst: ossl_isalpha
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:36,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:37,1
    - Dst: isalnum
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:37,1
    - Dst: ossl_isalnum
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:37,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 50
    functionName: test_ctype_chars
    functionSourceFile: /src/openssl-1.1.1g/test/ctype_internal_test.c
    functionUses: 0
    functionsReached:
    - isalpha
    - ossl_isalnum
    - TEST_int_eq
    - isascii
    - isalnum
    - ossl_isascii
    - ossl_isalpha
    linkageType: ''
    returnType: int
    signature: int test_ctype_chars(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:68,1
    - Dst: ossl_toupper
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:68,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:69,1
    - Dst: ossl_toupper
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: test_ctype_toupper
    functionSourceFile: /src/openssl-1.1.1g/test/ctype_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ossl_toupper
    linkageType: ''
    returnType: int
    signature: int test_ctype_toupper(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:74,1
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:74,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:75,1
    - Dst: ossl_tolower
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: test_ctype_tolower
    functionSourceFile: /src/openssl-1.1.1g/test/ctype_internal_test.c
    functionUses: 0
    functionsReached:
    - ossl_tolower
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int test_ctype_tolower(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ctype_chars
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: test_ctype_eof
    functionSourceFile: /src/openssl-1.1.1g/test/ctype_internal_test.c
    functionUses: 0
    functionsReached:
    - test_ctype_chars
    linkageType: ''
    returnType: int
    signature: int test_ctype_eof(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:85,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:86,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:86,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:87,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:87,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ctype_internal_test.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ctype_internal_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ASN1_LONG_DATA
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:49,1
    - Dst: ASN1_LONG_DATA_free
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: test_long
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_decode_test.c
    functionUses: 0
    functionsReached:
    - ASN1_LONG_DATA_free
    - d2i_ASN1_LONG_DATA
    linkageType: ''
    returnType: int
    signature: int test_long(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ASN1_INT32_DATA
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:76,1
    - Dst: ASN1_INT32_DATA_free
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: test_int32
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_decode_test.c
    functionUses: 0
    functionsReached:
    - d2i_ASN1_INT32_DATA
    - ASN1_INT32_DATA_free
    linkageType: ''
    returnType: int
    signature: int test_int32(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ASN1_UINT32_DATA
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:102,1
    - Dst: ASN1_UINT32_DATA_free
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: test_uint32
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_decode_test.c
    functionUses: 0
    functionsReached:
    - d2i_ASN1_UINT32_DATA
    - ASN1_UINT32_DATA_free
    linkageType: ''
    returnType: int
    signature: int test_uint32(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ASN1_INT64_DATA
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:128,1
    - Dst: ASN1_INT64_DATA_free
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: test_int64
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_decode_test.c
    functionUses: 0
    functionsReached:
    - ASN1_INT64_DATA_free
    - d2i_ASN1_INT64_DATA
    linkageType: ''
    returnType: int
    signature: int test_int64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ASN1_UINT64_DATA
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:154,1
    - Dst: ASN1_UINT64_DATA_free
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: test_uint64
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_decode_test.c
    functionUses: 0
    functionsReached:
    - ASN1_UINT64_DATA_free
    - d2i_ASN1_UINT64_DATA
    linkageType: ''
    returnType: int
    signature: int test_uint64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:166,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:168,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:169,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:170,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/asn1_decode_test.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/asn1_decode_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_pem2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:38,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:38,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:42,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:46,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:46,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:48,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:48,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:50,1
    - Dst: SSL_CTX_get_min_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:50,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:52,1
    - Dst: SSL_CTX_get_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:52,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:55,1
    - Dst: SSL_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:55,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:57,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:57,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:59,1
    - Dst: SSL_get_min_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:59,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:61,1
    - Dst: SSL_get_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:61,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:67,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:68,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 1
    argNames:
    - idx_tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 70
    functionName: test_set_min_max_version
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_ctx_test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - TLS_server_method
    - SSL_CTX_free
    - SSL_set_min_proto_version
    - TEST_int_eq
    - SSL_get_min_proto_version
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_get_min_proto_version
    - SSL_new
    - SSL_CTX_new
    - SSL_free
    - SSL_CTX_get_max_proto_version
    - SSL_set_max_proto_version
    - SSL_get_max_proto_version
    linkageType: ''
    returnType: int
    signature: int test_set_min_max_version(int idx_tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ssl_ctx_test.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_ctx_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: _UC
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _UC(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: save_errno
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void save_errno(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: restore_errno
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int restore_errno(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/danetest.c:102,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:105,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/test/danetest.c:105,1
    - Dst: PEM_read_bio
      Src: /src/openssl-1.1.1g/test/danetest.c:110,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/danetest.c:112,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/danetest.c:113,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/danetest.c:114,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/danetest.c:115,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:120,1
    - Dst: d
      Src: /src/openssl-1.1.1g/test/danetest.c:120,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/danetest.c:121,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/danetest.c:122,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/danetest.c:126,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/test/danetest.c:126,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/danetest.c:129,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:134,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:135,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/danetest.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:148,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/test/danetest.c:149,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 2
    argNames:
    - fp
    - nelem
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 94
    functionDepth: 5
    functionLinenumber: 94
    functionLinenumberEnd: 151
    functionName: load_chain
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - sk_X509_push
    - d
    - TEST_true
    - sk_X509_new_null
    - strcmp
    - TEST_ptr
    - TEST_long_eq
    - OPENSSL_free
    - PEM_read_bio
    - STACK_OF
    - TEST_info
    - ERR_clear_error
    - sk_X509_pop_free
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *load_chain(BIO *fp, int nelem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/test/danetest.c:158,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/danetest.c:161,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/danetest.c:164,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/danetest.c:166,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/test/danetest.c:171,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/test/danetest.c:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - f
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 175
    functionName: read_to_eol
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - isspace
    - TEST_error
    - _UC
    - BIO_gets
    - strlen
    linkageType: ''
    returnType: char
    signature: char *read_to_eol(BIO *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:188,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/danetest.c:188,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/danetest.c:188,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/test/danetest.c:195,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/test/danetest.c:195,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/test/danetest.c:197,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:199,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - in
    - result
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 216
    functionName: hexdecode
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - isspace
    - OPENSSL_free
    - _UC
    - OPENSSL_hexchar2int
    - strlen
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t hexdecode(const char *in, void *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: save_errno
      Src: /src/openssl-1.1.1g/test/danetest.c:226,1
    - Dst: strtol
      Src: /src/openssl-1.1.1g/test/danetest.c:227,1
    - Dst: restore_errno
      Src: /src/openssl-1.1.1g/test/danetest.c:228,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/test/danetest.c:231,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/test/danetest.c:231,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/test/danetest.c:235,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/test/danetest.c:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: checked_uint8
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - save_errno
    - isspace
    - strtol
    - _UC
    - restore_errno
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t checked_uint8(const char *in, void *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct tlsa_field*::parser
      Src: /src/openssl-1.1.1g/test/danetest.c:265,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/danetest.c:266,1
    - Dst: SSL_dane_tlsa_add
      Src: /src/openssl-1.1.1g/test/danetest.c:271,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:272,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/danetest.c:274,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/danetest.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ssl
    - rrdata
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 283
    functionName: tlsa_import_rr
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - SSL_dane_tlsa_add
    - TEST_info
    - struct tlsa_field*::parser
    linkageType: ''
    returnType: int
    signature: int tlsa_import_rr(SSL *ssl, const char *rrdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openssl-1.1.1g/test/danetest.c:288,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/test/danetest.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: allws
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - _UC
    - isspace
    linkageType: ''
    returnType: int
    signature: int allws(const char *cp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: read_to_eol
      Src: /src/openssl-1.1.1g/test/danetest.c:301,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/danetest.c:302,1
    - Dst: sscanf
      Src: /src/openssl-1.1.1g/test/danetest.c:318,1
    - Dst: allws
      Src: /src/openssl-1.1.1g/test/danetest.c:320,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/danetest.c:321,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:325,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/danetest.c:325,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/danetest.c:327,1
    - Dst: SSL_dane_enable
      Src: /src/openssl-1.1.1g/test/danetest.c:328,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:329,1
    - Dst: SSL_dane_set_flags
      Src: /src/openssl-1.1.1g/test/danetest.c:333,1
    - Dst: read_to_eol
      Src: /src/openssl-1.1.1g/test/danetest.c:336,1
    - Dst: tlsa_import_rr
      Src: /src/openssl-1.1.1g/test/danetest.c:336,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:337,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/danetest.c:343,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:344,1
    - Dst: load_chain
      Src: /src/openssl-1.1.1g/test/danetest.c:344,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:345,1
    - Dst: verify_chain
      Src: /src/openssl-1.1.1g/test/danetest.c:349,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/test/danetest.c:350,1
    - Dst: SSL_get_verify_result
      Src: /src/openssl-1.1.1g/test/danetest.c:351,1
    - Dst: SSL_set_verify_result
      Src: /src/openssl-1.1.1g/test/danetest.c:357,1
    - Dst: SSL_get0_dane_authority
      Src: /src/openssl-1.1.1g/test/danetest.c:358,1
    - Dst: SSL_set_verify_result
      Src: /src/openssl-1.1.1g/test/danetest.c:360,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/danetest.c:361,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/danetest.c:363,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/danetest.c:365,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/test/danetest.c:366,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/danetest.c:368,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/danetest.c:372,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/danetest.c:373,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/danetest.c:377,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/danetest.c:378,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/danetest.c:382,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 4
    argNames:
    - ctx
    - base_name
    - f
    - path
    argTypes:
    - SSL_CTX*
    - char*
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 385
    functionName: test_tlsafile
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - allws
    - SSL_get_verify_result
    - STACK_OF
    - SSL_set_connect_state
    - load_chain
    - TEST_int_eq
    - TEST_error
    - TEST_info
    - ERR_clear_error
    - verify_chain
    - SSL_new
    - SSL_free
    - X509_verify_cert_error_string
    - SSL_dane_set_flags
    - sk_X509_pop_free
    - read_to_eol
    - SSL_set_verify_result
    - tlsa_import_rr
    - sscanf
    - TEST_ptr
    - SSL_dane_enable
    - TEST_false
    - SSL_get0_dane_authority
    linkageType: ''
    returnType: int
    signature: "int test_tlsafile(SSL_CTX *ctx, const char *base_name,\n                         BIO
      *f, const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:393,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/danetest.c:393,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:394,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/danetest.c:394,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/danetest.c:394,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/danetest.c:395,1
    - Dst: SSL_CTX_dane_enable
      Src: /src/openssl-1.1.1g/test/danetest.c:395,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/danetest.c:396,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/openssl-1.1.1g/test/danetest.c:396,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/danetest.c:397,1
    - Dst: SSL_CTX_dane_mtype_set
      Src: /src/openssl-1.1.1g/test/danetest.c:397,1
    - Dst: EVP_sha512
      Src: /src/openssl-1.1.1g/test/danetest.c:397,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/danetest.c:399,1
    - Dst: SSL_CTX_dane_mtype_set
      Src: /src/openssl-1.1.1g/test/danetest.c:399,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/danetest.c:399,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/danetest.c:401,1
    - Dst: test_tlsafile
      Src: /src/openssl-1.1.1g/test/danetest.c:401,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/danetest.c:406,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/danetest.c:407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 387
    functionDepth: 7
    functionLinenumber: 387
    functionLinenumberEnd: 410
    functionName: run_tlsatest
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_sha512
    - TEST_ptr
    - SSL_CTX_dane_mtype_set
    - test_tlsafile
    - SSL_CTX_dane_enable
    - TLS_client_method
    - SSL_CTX_new
    - TEST_int_gt
    - SSL_CTX_load_verify_locations
    - EVP_sha256
    - BIO_free
    - BIO_new_file
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int run_tlsatest(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:414,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/danetest.c:414,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:415,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/danetest.c:415,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/danetest.c:416,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/danetest.c:416,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/danetest.c:417,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/danetest.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - TEST_ptr
    - TEST_error
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_set0_dane
      Src: /src/openssl-1.1.1g/test/danetest.c:429,1
    - Dst: SSL_get0_dane
      Src: /src/openssl-1.1.1g/test/danetest.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - store_ctx
    - ssl
    argTypes:
    - X509_STORE_CTX*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: store_ctx_dane_init
    functionSourceFile: /src/openssl-1.1.1g/test/danetest.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_set0_dane
    - SSL_get0_dane
    linkageType: ''
    returnType: void
    signature: void store_ctx_dane_init(X509_STORE_CTX *store_ctx, SSL *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:24,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:24,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:25,1
    - Dst: BIO_set_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:30,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:31,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:32,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:32,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:34,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 41
    functionName: test_bio_memleak
    functionSourceFile: /src/openssl-1.1.1g/test/bio_memleak_test.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - BIO_set_flags
    - TEST_ptr
    - TEST_int_eq
    - BIO_s_mem
    - TEST_mem_eq
    - BIO_free
    - BIO_set_mem_buf
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_bio_memleak(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:49,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:49,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:50,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:52,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:52,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:54,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:55,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:57,1
    - Dst: BIO_set_close
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:57,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:59,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:61,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:66,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:67,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 69
    functionName: test_bio_get_mem
    functionSourceFile: /src/openssl-1.1.1g/test/bio_memleak_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - TEST_int_eq
    - BIO_s_mem
    - BUF_MEM_free
    - BIO_puts
    - BIO_set_close
    - TEST_int_gt
    - TEST_mem_eq
    - BIO_free
    - BIO_get_mem_ptr
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_bio_get_mem(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:78,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:79,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:81,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:81,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:83,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:85,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:85,1
    - Dst: TEST_int_lt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:87,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:87,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:89,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:89,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:91,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:93,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:93,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:95,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:95,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:97,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:102,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 104
    functionName: test_bio_new_mem_buf
    functionSourceFile: /src/openssl-1.1.1g/test/bio_memleak_test.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - TEST_ptr
    - TEST_int_eq
    - BIO_reset
    - TEST_mem_eq
    - TEST_int_gt
    - BIO_new_mem_buf
    - BIO_free
    - BIO_get_mem_ptr
    - TEST_int_lt
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int test_bio_new_mem_buf(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:113,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:114,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:116,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:116,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:118,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:120,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:120,1
    - Dst: BIO_set_close
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:122,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:124,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:124,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:125,1
    - Dst: BIO_set_mem_buf
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:127,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:128,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:130,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:130,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:132,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:134,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:134,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:136,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:136,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:138,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:143,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:144,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 146
    functionName: test_bio_rdonly_mem_buf
    functionSourceFile: /src/openssl-1.1.1g/test/bio_memleak_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - BIO_set_flags
    - TEST_int_eq
    - BIO_set_mem_buf
    - BIO_s_mem
    - BIO_reset
    - BIO_set_close
    - TEST_mem_eq
    - TEST_int_gt
    - BIO_new_mem_buf
    - BIO_new
    - BIO_free
    - BIO_get_mem_ptr
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int test_bio_rdonly_mem_buf(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:154,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:154,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:155,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:157,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:157,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:160,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:161,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:161,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:163,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:165,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:165,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:168,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:169,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:169,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:171,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:171,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:174,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:180,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 182
    functionName: test_bio_rdwr_rdonly
    functionSourceFile: /src/openssl-1.1.1g/test/bio_memleak_test.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - BIO_clear_flags
    - TEST_ptr
    - BIO_set_flags
    - TEST_int_eq
    - BIO_s_mem
    - BIO_reset
    - BIO_puts
    - TEST_mem_eq
    - TEST_int_gt
    - BIO_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_bio_rdwr_rdonly(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:190,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:190,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:191,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:193,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:193,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:196,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:198,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:198,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:200,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:202,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:202,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:205,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:205,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:207,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:210,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:211,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:211,1
    - Dst: TEST_int_lt
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:214,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:214,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:220,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 222
    functionName: test_bio_nonclear_rst
    functionSourceFile: /src/openssl-1.1.1g/test/bio_memleak_test.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - BIO_clear_flags
    - TEST_ptr
    - BIO_set_flags
    - TEST_int_eq
    - BIO_s_mem
    - BIO_reset
    - BIO_puts
    - TEST_mem_eq
    - TEST_int_gt
    - BIO_free
    - TEST_int_lt
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_bio_nonclear_rst(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:226,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: global_init
    functionSourceFile: /src/openssl-1.1.1g/test/bio_memleak_test.c
    functionUses: 0
    functionsReached:
    - CRYPTO_mem_ctrl
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: int global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:233,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:234,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:235,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:236,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:237,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/bio_memleak_test.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/bio_memleak_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - c
    argTypes:
    - RSA*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 95
    functionName: key1
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int key1(RSA *key, unsigned char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - c
    argTypes:
    - RSA*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 140
    functionName: key2
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int key2(RSA *key, unsigned char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - c
    argTypes:
    - RSA*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 212
    functionName: key3
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int key3(RSA *key, unsigned char *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/test/rsa_test.c:217,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/rsa_test.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: pad_unknown
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - ERR_get_error
    linkageType: ''
    returnType: int
    signature: int pad_unknown(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openssl-1.1.1g/test/rsa_test.c:226,1
    - Dst: key1
      Src: /src/openssl-1.1.1g/test/rsa_test.c:229,1
    - Dst: key2
      Src: /src/openssl-1.1.1g/test/rsa_test.c:232,1
    - Dst: key3
      Src: /src/openssl-1.1.1g/test/rsa_test.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - key
    - ctext
    - idx
    argTypes:
    - RSA**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 239
    functionName: rsa_setkey
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached:
    - key3
    - key1
    - key2
    - RSA_new
    linkageType: ''
    returnType: int
    signature: int rsa_setkey(RSA** key, unsigned char* ctext, int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rsa_setkey
      Src: /src/openssl-1.1.1g/test/rsa_test.c:254,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-1.1.1g/test/rsa_test.c:256,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/rsa_test.c:258,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/test/rsa_test.c:261,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rsa_test.c:262,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/test/rsa_test.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 241
    functionDepth: 7
    functionLinenumber: 241
    functionLinenumberEnd: 269
    functionName: test_rsa_pkcs1
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached:
    - RSA_public_encrypt
    - rsa_setkey
    - TEST_int_eq
    - RSA_private_decrypt
    - TEST_mem_eq
    - RSA_free
    linkageType: ''
    returnType: int
    signature: int test_rsa_pkcs1(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rsa_setkey
      Src: /src/openssl-1.1.1g/test/rsa_test.c:284,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-1.1.1g/test/rsa_test.c:286,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/rsa_test.c:288,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/test/rsa_test.c:291,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rsa_test.c:292,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/test/rsa_test.c:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 271
    functionDepth: 7
    functionLinenumber: 271
    functionLinenumberEnd: 299
    functionName: test_rsa_sslv23
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached:
    - RSA_public_encrypt
    - rsa_setkey
    - TEST_int_eq
    - RSA_private_decrypt
    - TEST_mem_eq
    - RSA_free
    linkageType: ''
    returnType: int
    signature: int test_rsa_sslv23(int idx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rsa_setkey
      Src: /src/openssl-1.1.1g/test/rsa_test.c:315,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-1.1.1g/test/rsa_test.c:317,1
    - Dst: pad_unknown
      Src: /src/openssl-1.1.1g/test/rsa_test.c:319,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/rsa_test.c:320,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/rsa_test.c:324,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/test/rsa_test.c:327,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rsa_test.c:329,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/test/rsa_test.c:333,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/rsa_test.c:335,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/test/rsa_test.c:341,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/rsa_test.c:343,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/test/rsa_test.c:350,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/rsa_test.c:352,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/test/rsa_test.c:358,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 301
    functionDepth: 7
    functionLinenumber: 301
    functionLinenumberEnd: 360
    functionName: test_rsa_oaep
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached:
    - RSA_public_encrypt
    - rsa_setkey
    - TEST_int_eq
    - pad_unknown
    - RSA_private_decrypt
    - TEST_int_le
    - TEST_info
    - TEST_mem_eq
    - RSA_free
    linkageType: ''
    returnType: int
    signature: int test_rsa_oaep(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/rsa_test.c:364,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/rsa_test.c:365,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/rsa_test.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/rsa_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_cmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/x509_internal_test.c:45,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/x509_internal_test.c:53,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/x509_internal_test.c:55,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/test/x509_internal_test.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 58
    functionName: test_standard_exts
    functionSourceFile: /src/openssl-1.1.1g/test/x509_internal_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - TEST_note
    - TEST_error
    - OBJ_nid2sn
    linkageType: ''
    returnType: int
    signature: int test_standard_exts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/x509_internal_test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/x509_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_whrlpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - keep
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: ssl3_digest_cached_records
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl3_digest_cached_records(SSL *s, int keep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:155,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - s
    - out
    - outlen
    - hashlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: ssl_handshake_hash
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ssl_handshake_hash(SSL *s, unsigned char *out, size_t outlen,\n
      \                      size_t *hashlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: ssl_handshake_md
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *ssl_handshake_md(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: RECORD_LAYER_reset_read_sequence
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RECORD_LAYER_reset_read_sequence(RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: RECORD_LAYER_reset_write_sequence
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RECORD_LAYER_reset_write_sequence(RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - s
    - enc
    - md
    - mac_pkey_type
    - mac_secret_size
    - comp
    - use_etm
    argTypes:
    - SSL_SESSION*
    - EVP_CIPHER**
    - EVP_MD**
    - int*
    - size_t*
    - SSL_COMP**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: ssl_cipher_get_evp
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,\n
      \                      const EVP_MD **md, int *mac_pkey_type,\n                       size_t
      *mac_secret_size, SSL_COMP **comp, int use_etm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: tls1_alert_code
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tls1_alert_code(int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssl
    - label
    - secret
    - secret_len
    argTypes:
    - SSL*
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: ssl_log_secret
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ssl_log_secret(SSL *ssl,\n                   const char *label,\n
      \                  const uint8_t *secret,\n                   size_t secret_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: ssl_md
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *ssl_md(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - s
    - al
    - func
    - reason
    - file
    - line
    argTypes:
    - SSL*
    - int
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: ossl_statem_fatal
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ossl_statem_fatal(SSL *s, int al, int func, int reason, const
      char *file,\n                           int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: ossl_statem_export_allowed
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_statem_export_allowed(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: ossl_statem_export_early_allowed
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_statem_export_early_allowed(SSL *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:231,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:233,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:234,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:238,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:240,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:244,1
    - Dst: tls13_derive_key
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:247,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:248,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:252,1
    - Dst: tls13_derive_iv
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:255,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:256,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 7
    argNames:
    - s
    - prk
    - label
    - labellen
    - ref_secret
    - ref_key
    - ref_iv
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 264
    functionName: test_secret
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached:
    - tls13_hkdf_expand
    - tls13_derive_iv
    - tls13_derive_key
    - TEST_error
    - TEST_mem_eq
    - ssl_handshake_hash
    - ssl_handshake_md
    linkageType: ''
    returnType: int
    signature: "int test_secret(SSL *s, unsigned char *prk,\n                       const
      unsigned char *label, size_t labellen,\n                       const unsigned
      char *ref_secret,\n                       const unsigned char *ref_key, const
      unsigned char *ref_iv)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:275,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:275,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:276,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:279,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:280,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:283,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:284,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:287,1
    - Dst: tls13_generate_secret
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:287,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:287,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:289,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:293,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:295,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:299,1
    - Dst: tls13_generate_handshake_secret
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:299,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:301,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:305,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:309,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:309,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:310,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:312,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:314,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:317,1
    - Dst: test_secret
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:317,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:319,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:321,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:325,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:327,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:329,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:332,1
    - Dst: test_secret
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:332,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:334,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:336,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:346,1
    - Dst: tls13_generate_master_secret
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:346,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:349,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:353,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:355,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:359,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:361,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:363,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:366,1
    - Dst: test_secret
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:366,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:368,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:370,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:374,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:376,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:378,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:381,1
    - Dst: test_secret
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:381,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:383,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:385,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:391,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:392,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 394
    functionName: test_handshake_secrets
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached:
    - strlen
    - TEST_true
    - TEST_ptr
    - test_secret
    - tls13_generate_secret
    - tls13_generate_handshake_secret
    - TEST_size_t_eq
    - tls13_generate_master_secret
    - SSL_SESSION_new
    - TEST_info
    - TEST_mem_eq
    - ssl_handshake_md
    - EVP_MD_size
    - SSL_new
    - SSL_CTX_new
    - SSL_CTX_free
    - SSL_free
    - TLS_method
    linkageType: ''
    returnType: int
    signature: int test_handshake_secrets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/tls13secretstest.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/tls13secretstest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: only_pause
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    linkageType: ''
    returnType: int
    signature: int only_pause(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: add_two
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    linkageType: ''
    returnType: int
    signature: int add_two(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:40,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: save_current
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - ASYNC_get_current_job
    linkageType: ''
    returnType: int
    signature: int save_current(void *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:51,1
    - Dst: ASYNC_get_wait_ctx
      Src: /src/openssl-1.1.1g/test/asynctest.c:54,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:59,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openssl-1.1.1g/test/asynctest.c:62,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:64,1
    - Dst: ASYNC_WAIT_CTX_clear_fd
      Src: /src/openssl-1.1.1g/test/asynctest.c:67,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:69,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openssl-1.1.1g/test/asynctest.c:72,1
    - Dst: ASYNC_WAIT_CTX_clear_fd
      Src: /src/openssl-1.1.1g/test/asynctest.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 78
    functionName: waitfd
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_get_wait_ctx
    - ASYNC_pause_job
    - ASYNC_get_current_job
    - ASYNC_WAIT_CTX_set_wait_fd
    - ASYNC_WAIT_CTX_clear_fd
    linkageType: ''
    returnType: int
    signature: int waitfd(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_block_pause
      Src: /src/openssl-1.1.1g/test/asynctest.c:82,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:83,1
    - Dst: ASYNC_unblock_pause
      Src: /src/openssl-1.1.1g/test/asynctest.c:84,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: blockpause
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - ASYNC_block_pause
    - ASYNC_unblock_pause
    linkageType: ''
    returnType: int
    signature: int blockpause(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:96,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openssl-1.1.1g/test/asynctest.c:97,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:98,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:100,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:102,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:104,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:106,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:108,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:110,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/asynctest.c:115,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:116,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:117,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:121,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:122,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 124
    functionName: test_ASYNC_init_thread
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_new
    - ASYNC_cleanup_thread
    - ASYNC_init_thread
    - ASYNC_start_job
    - ASYNC_WAIT_CTX_free
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_ASYNC_init_thread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:134,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openssl-1.1.1g/test/asynctest.c:135,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:136,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:139,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/asynctest.c:143,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:144,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:145,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:149,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 152
    functionName: test_ASYNC_start_job
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_new
    - ASYNC_cleanup_thread
    - ASYNC_init_thread
    - ASYNC_start_job
    - ASYNC_WAIT_CTX_free
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_ASYNC_start_job(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:162,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openssl-1.1.1g/test/asynctest.c:163,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:164,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:167,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/asynctest.c:170,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:171,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:172,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:176,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 154
    functionDepth: 5
    functionLinenumber: 154
    functionLinenumberEnd: 179
    functionName: test_ASYNC_get_current_job
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_new
    - ASYNC_cleanup_thread
    - ASYNC_init_thread
    - ASYNC_start_job
    - ASYNC_WAIT_CTX_free
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_ASYNC_get_current_job(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:189,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openssl-1.1.1g/test/asynctest.c:190,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:192,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:194,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:196,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:201,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:203,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:205,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:208,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:212,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:216,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:218,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:220,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:224,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:228,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:230,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:232,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/asynctest.c:237,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:238,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:239,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:243,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:244,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 246
    functionName: test_ASYNC_WAIT_CTX_get_all_fds
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_new
    - ASYNC_WAIT_CTX_get_changed_fds
    - ASYNC_cleanup_thread
    - ASYNC_init_thread
    - ASYNC_WAIT_CTX_get_all_fds
    - ASYNC_start_job
    - ASYNC_WAIT_CTX_free
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_ASYNC_WAIT_CTX_get_all_fds(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:254,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openssl-1.1.1g/test/asynctest.c:255,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:256,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:258,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/asynctest.c:261,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:262,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:263,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/test/asynctest.c:267,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 270
    functionName: test_ASYNC_block_pause
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_new
    - ASYNC_cleanup_thread
    - ASYNC_init_thread
    - ASYNC_start_job
    - ASYNC_WAIT_CTX_free
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_ASYNC_block_pause(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_is_capable
      Src: /src/openssl-1.1.1g/test/asynctest.c:274,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/asynctest.c:275,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openssl-1.1.1g/test/asynctest.c:278,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/test/asynctest.c:279,1
    - Dst: test_ASYNC_init_thread
      Src: /src/openssl-1.1.1g/test/asynctest.c:281,1
    - Dst: test_ASYNC_start_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:282,1
    - Dst: test_ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/test/asynctest.c:283,1
    - Dst: test_ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/test/asynctest.c:284,1
    - Dst: test_ASYNC_block_pause
      Src: /src/openssl-1.1.1g/test/asynctest.c:285,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/test/asynctest.c:289,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 291
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/asynctest.c
    functionUses: 0
    functionsReached:
    - test_ASYNC_get_current_job
    - CRYPTO_mem_ctrl
    - CRYPTO_set_mem_debug
    - test_ASYNC_start_job
    - test_ASYNC_WAIT_CTX_get_all_fds
    - ASYNC_is_capable
    - test_ASYNC_block_pause
    - test_ASYNC_init_thread
    - printf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_asn1t.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expected
    - ','
    - test
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: TEST
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(expected, test)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/test_test.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - expected
    - test
    - result
    argTypes:
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: test_case
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_case(int expected, const char *test, int result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:35,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:35,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:36,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:36,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:37,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:37,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:38,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:38,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:39,1
    - Dst: TEST_int_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:39,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:40,1
    - Dst: TEST_int_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:40,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:41,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/test_test.c:41,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:42,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/test_test.c:42,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:43,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/test_test.c:43,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:44,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:44,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:45,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:45,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:46,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:46,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:47,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:47,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:48,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: test_int
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_ge
    - TEST_int_ne
    - TEST
    - TEST_int_eq
    - TEST_int_le
    - TEST_int_gt
    - TEST_int_lt
    linkageType: ''
    returnType: int
    signature: int test_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:58,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:58,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:59,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:59,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:60,1
    - Dst: TEST_uint_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:60,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:61,1
    - Dst: TEST_uint_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:61,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:62,1
    - Dst: TEST_uint_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:62,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:63,1
    - Dst: TEST_uint_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:63,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:64,1
    - Dst: TEST_uint_le
      Src: /src/openssl-1.1.1g/test/test_test.c:64,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:65,1
    - Dst: TEST_uint_le
      Src: /src/openssl-1.1.1g/test/test_test.c:65,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:66,1
    - Dst: TEST_uint_le
      Src: /src/openssl-1.1.1g/test/test_test.c:66,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:67,1
    - Dst: TEST_uint_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:67,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:68,1
    - Dst: TEST_uint_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:68,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:69,1
    - Dst: TEST_uint_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:69,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:70,1
    - Dst: TEST_uint_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:70,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:71,1
    - Dst: TEST_uint_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 77
    functionName: test_uint
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_uint_gt
    - TEST_uint_le
    - TEST
    - TEST_uint_ge
    - TEST_uint_eq
    - TEST_uint_ne
    - TEST_uint_lt
    linkageType: ''
    returnType: int
    signature: int test_uint(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:81,1
    - Dst: TEST_char_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:81,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:82,1
    - Dst: TEST_char_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:82,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:83,1
    - Dst: TEST_char_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:83,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:84,1
    - Dst: TEST_char_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:84,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:85,1
    - Dst: TEST_char_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:85,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:86,1
    - Dst: TEST_char_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:86,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:87,1
    - Dst: TEST_char_le
      Src: /src/openssl-1.1.1g/test/test_test.c:87,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:88,1
    - Dst: TEST_char_le
      Src: /src/openssl-1.1.1g/test/test_test.c:88,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:89,1
    - Dst: TEST_char_le
      Src: /src/openssl-1.1.1g/test/test_test.c:89,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:90,1
    - Dst: TEST_char_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:90,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:91,1
    - Dst: TEST_char_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:91,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:92,1
    - Dst: TEST_char_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:92,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:93,1
    - Dst: TEST_char_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:93,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:94,1
    - Dst: TEST_char_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: test_char
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_char_eq
    - TEST
    - TEST_char_gt
    - TEST_char_lt
    - TEST_char_ne
    - TEST_char_le
    - TEST_char_ge
    linkageType: ''
    returnType: int
    signature: int test_char(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:104,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:104,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:105,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:105,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:106,1
    - Dst: TEST_uchar_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:106,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:107,1
    - Dst: TEST_uchar_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:107,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:108,1
    - Dst: TEST_uchar_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:108,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:109,1
    - Dst: TEST_uchar_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:109,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:110,1
    - Dst: TEST_uchar_le
      Src: /src/openssl-1.1.1g/test/test_test.c:110,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:111,1
    - Dst: TEST_uchar_le
      Src: /src/openssl-1.1.1g/test/test_test.c:111,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:112,1
    - Dst: TEST_uchar_le
      Src: /src/openssl-1.1.1g/test/test_test.c:112,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:113,1
    - Dst: TEST_uchar_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:113,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:114,1
    - Dst: TEST_uchar_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:114,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:115,1
    - Dst: TEST_uchar_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:115,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:116,1
    - Dst: TEST_uchar_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:116,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:117,1
    - Dst: TEST_uchar_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: test_uchar
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_uchar_eq
    - TEST_uchar_ge
    - TEST
    - TEST_uchar_lt
    - TEST_uchar_le
    - TEST_uchar_ne
    - TEST_uchar_gt
    linkageType: ''
    returnType: int
    signature: int test_uchar(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:127,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:127,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:128,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:128,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:129,1
    - Dst: TEST_long_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:129,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:130,1
    - Dst: TEST_long_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:130,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:131,1
    - Dst: TEST_long_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:131,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:132,1
    - Dst: TEST_long_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:132,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:133,1
    - Dst: TEST_long_le
      Src: /src/openssl-1.1.1g/test/test_test.c:133,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:134,1
    - Dst: TEST_long_le
      Src: /src/openssl-1.1.1g/test/test_test.c:134,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:135,1
    - Dst: TEST_long_le
      Src: /src/openssl-1.1.1g/test/test_test.c:135,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:136,1
    - Dst: TEST_long_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:136,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:137,1
    - Dst: TEST_long_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:137,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:138,1
    - Dst: TEST_long_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:138,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:139,1
    - Dst: TEST_long_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:139,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:140,1
    - Dst: TEST_long_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: test_long
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_long_le
    - TEST_long_lt
    - TEST_long_eq
    - TEST
    - TEST_long_ne
    - TEST_long_gt
    - TEST_long_ge
    linkageType: ''
    returnType: int
    signature: int test_long(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:150,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:150,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:151,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:151,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:152,1
    - Dst: TEST_ulong_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:152,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:153,1
    - Dst: TEST_ulong_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:153,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:154,1
    - Dst: TEST_ulong_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:154,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:155,1
    - Dst: TEST_ulong_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:155,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:156,1
    - Dst: TEST_ulong_le
      Src: /src/openssl-1.1.1g/test/test_test.c:156,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:157,1
    - Dst: TEST_ulong_le
      Src: /src/openssl-1.1.1g/test/test_test.c:157,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:158,1
    - Dst: TEST_ulong_le
      Src: /src/openssl-1.1.1g/test/test_test.c:158,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:159,1
    - Dst: TEST_ulong_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:159,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:160,1
    - Dst: TEST_ulong_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:160,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:161,1
    - Dst: TEST_ulong_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:161,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:162,1
    - Dst: TEST_ulong_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:162,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:163,1
    - Dst: TEST_ulong_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 169
    functionName: test_ulong
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST
    - TEST_ulong_ge
    - TEST_ulong_le
    - TEST_ulong_lt
    - TEST_ulong_gt
    - TEST_ulong_ne
    - TEST_ulong_eq
    linkageType: ''
    returnType: int
    signature: int test_ulong(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:173,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:173,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:174,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:174,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:175,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:175,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:176,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:176,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:177,1
    - Dst: TEST_size_t_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:177,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:178,1
    - Dst: TEST_size_t_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:178,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:179,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/test_test.c:179,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:180,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/test_test.c:180,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:181,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-1.1.1g/test/test_test.c:181,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:182,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:182,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:183,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:183,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:184,1
    - Dst: TEST_size_t_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:184,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:185,1
    - Dst: TEST_size_t_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:185,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:186,1
    - Dst: TEST_size_t_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 192
    functionName: test_size_t
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_ne
    - TEST_size_t_le
    - TEST
    - TEST_size_t_lt
    - TEST_size_t_eq
    - TEST_size_t_gt
    - TEST_size_t_ge
    linkageType: ''
    returnType: int
    signature: int test_size_t(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:196,1
    - Dst: TEST_time_t_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:196,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:197,1
    - Dst: TEST_time_t_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:197,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:198,1
    - Dst: TEST_time_t_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:198,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:199,1
    - Dst: TEST_time_t_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:199,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:200,1
    - Dst: TEST_time_t_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:200,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:201,1
    - Dst: TEST_time_t_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:201,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:202,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-1.1.1g/test/test_test.c:202,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:203,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-1.1.1g/test/test_test.c:203,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:204,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-1.1.1g/test/test_test.c:204,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:205,1
    - Dst: TEST_time_t_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:205,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:206,1
    - Dst: TEST_time_t_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:206,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:207,1
    - Dst: TEST_time_t_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:207,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:208,1
    - Dst: TEST_time_t_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:208,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:209,1
    - Dst: TEST_time_t_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 215
    functionName: test_time_t
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_time_t_gt
    - TEST
    - TEST_time_t_eq
    - TEST_time_t_lt
    - TEST_time_t_le
    - TEST_time_t_ne
    - TEST_time_t_ge
    linkageType: ''
    returnType: int
    signature: int test_time_t(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:222,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/test_test.c:222,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:223,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/test_test.c:223,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:224,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/test_test.c:224,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:225,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/test_test.c:225,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:226,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:226,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:227,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:227,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:228,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:228,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:229,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:229,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:230,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:230,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:231,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:231,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:232,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:232,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:233,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:233,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:234,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:234,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:235,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 241
    functionName: test_pointer
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - TEST_ptr_ne
    - TEST
    - TEST_ptr
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_pointer(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:245,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/test_test.c:245,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:246,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/test_test.c:246,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:247,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/test_test.c:247,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:248,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/test_test.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: test_bool
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST
    - TEST_false
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_bool(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:260,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:260,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:261,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:261,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:262,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:262,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:263,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:263,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:264,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:264,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:265,1
    - Dst: TEST_str_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:265,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:266,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:266,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:267,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:267,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:268,1
    - Dst: TEST_str_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:268,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:269,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:269,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:270,1
    - Dst: TEST_str_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:270,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:271,1
    - Dst: TEST_str_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:271,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:272,1
    - Dst: TEST_str_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:272,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:273,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 279
    functionName: test_string
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 1
    functionsReached:
    - TEST
    - TEST_str_eq
    - TEST_str_ne
    linkageType: ''
    returnType: int
    signature: int test_string(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:285,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:285,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:286,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:286,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:287,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:287,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:288,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:288,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:289,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:289,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:290,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:290,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:291,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:291,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:292,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:292,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:293,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:293,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:294,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:294,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:295,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 301
    functionName: test_memory
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST
    - TEST_mem_eq
    - TEST_mem_ne
    linkageType: ''
    returnType: int
    signature: int test_memory(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:309,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:309,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/test_test.c:309,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/test_test.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: test_memory_overflow
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST
    - TEST_mem_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_memory_overflow(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:317,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:317,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/test_test.c:317,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:318,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/test_test.c:318,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:319,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/test_test.c:319,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:320,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-1.1.1g/test/test_test.c:320,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:321,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-1.1.1g/test/test_test.c:321,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:322,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:322,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:323,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:323,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:324,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:324,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:325,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:325,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:326,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:326,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:327,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:327,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:328,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/test_test.c:328,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:329,1
    - Dst: TEST_BN_odd
      Src: /src/openssl-1.1.1g/test/test_test.c:329,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:330,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:330,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:331,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:331,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:332,1
    - Dst: TEST_BN_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:332,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:333,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:333,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/test_test.c:333,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:334,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/test_test.c:334,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:335,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-1.1.1g/test/test_test.c:335,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:336,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-1.1.1g/test/test_test.c:336,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:337,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-1.1.1g/test/test_test.c:337,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:338,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:338,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:339,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:339,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:340,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:340,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:341,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:341,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:342,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:342,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:343,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:343,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:344,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/test_test.c:344,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:345,1
    - Dst: TEST_BN_odd
      Src: /src/openssl-1.1.1g/test/test_test.c:345,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:346,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:346,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/test/test_test.c:346,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:347,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-1.1.1g/test/test_test.c:347,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:348,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-1.1.1g/test/test_test.c:348,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:349,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:349,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:350,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:350,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:351,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:351,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:352,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:352,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:353,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:353,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:354,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-1.1.1g/test/test_test.c:354,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:355,1
    - Dst: TEST_BN_even
      Src: /src/openssl-1.1.1g/test/test_test.c:355,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:356,1
    - Dst: TEST_BN_odd
      Src: /src/openssl-1.1.1g/test/test_test.c:356,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:357,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:357,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:358,1
    - Dst: TEST_BN_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:358,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:359,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:359,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:360,1
    - Dst: TEST_BN_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:360,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:361,1
    - Dst: TEST_BN_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:361,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:362,1
    - Dst: TEST_BN_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:362,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:363,1
    - Dst: TEST_BN_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:363,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:364,1
    - Dst: TEST_BN_le
      Src: /src/openssl-1.1.1g/test/test_test.c:364,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:365,1
    - Dst: TEST_BN_le
      Src: /src/openssl-1.1.1g/test/test_test.c:365,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:366,1
    - Dst: TEST_BN_le
      Src: /src/openssl-1.1.1g/test/test_test.c:366,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:367,1
    - Dst: TEST_BN_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:367,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:368,1
    - Dst: TEST_BN_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:368,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:369,1
    - Dst: TEST_BN_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:369,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:370,1
    - Dst: TEST_BN_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:370,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:371,1
    - Dst: TEST_BN_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:371,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:372,1
    - Dst: TEST_BN_ge
      Src: /src/openssl-1.1.1g/test/test_test.c:372,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/test_test.c:377,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/test_test.c:378,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/test_test.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 312
    functionDepth: 6
    functionLinenumber: 312
    functionLinenumberEnd: 381
    functionName: test_bignum
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_BN_le_zero
    - TEST_BN_ge
    - TEST_BN_eq_zero
    - TEST
    - TEST_BN_ne_zero
    - TEST_BN_abs_eq_word
    - TEST_BN_eq_word
    - TEST_BN_le
    - TEST_int_eq
    - TEST_BN_ne
    - TEST_BN_lt
    - TEST_BN_lt_zero
    - BN_free
    - TEST_BN_gt
    - TEST_BN_gt_zero
    - TEST_BN_odd
    - TEST_BN_eq
    - TEST_BN_ge_zero
    - BN_dec2bn
    - TEST_BN_eq_one
    - TEST_BN_even
    linkageType: ''
    returnType: int
    signature: int test_bignum(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:395,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:395,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:396,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:396,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:397,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:397,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:398,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:398,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/test_test.c:398,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/test_test.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 399
    functionName: test_long_output
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST
    - TEST_str_eq
    - TEST_mem_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_long_output(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/test_test.c:424,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/test_test.c:424,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/test_test.c:425,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/test_test.c:425,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/test_test.c:426,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/test_test.c:426,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/test_test.c:427,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/test_test.c:427,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:428,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:428,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:429,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:429,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:430,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:430,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:431,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:431,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:432,1
    - Dst: TEST_BN_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:432,1
    - Dst: TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:433,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:433,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/test_test.c:434,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/test_test.c:435,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/test_test.c:436,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/test_test.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 401
    functionDepth: 5
    functionLinenumber: 401
    functionLinenumberEnd: 439
    functionName: test_long_bignum
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_BN_eq
    - TEST
    - TEST_BN_ne
    - BN_free
    - BN_hex2bn
    linkageType: ''
    returnType: int
    signature: int test_long_bignum(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/test_test.c:443,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/test_test.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: test_messages
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - TEST_info
    linkageType: ''
    returnType: int
    signature: int test_messages(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:459,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:460,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/test_test.c:461,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/test_test.c:462,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:463,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:464,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:466,1
    - Dst: TEST_long_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:467,1
    - Dst: TEST_long_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:468,1
    - Dst: TEST_long_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:469,1
    - Dst: TEST_char_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:471,1
    - Dst: TEST_char_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:472,1
    - Dst: TEST_char_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:473,1
    - Dst: TEST_char_le
      Src: /src/openssl-1.1.1g/test/test_test.c:474,1
    - Dst: TEST_char_lt
      Src: /src/openssl-1.1.1g/test/test_test.c:475,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:477,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:478,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:479,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:480,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:481,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:483,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:484,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:485,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:487,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:488,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:489,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/test_test.c:490,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:491,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/test_test.c:492,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:494,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:495,1
    - Dst: TEST_str_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:496,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:498,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-1.1.1g/test/test_test.c:499,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-1.1.1g/test/test_test.c:500,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 501
    functionName: test_single_eval
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_ne
    - TEST_char_eq
    - TEST_size_t_eq
    - TEST_int_gt
    - TEST_char_ne
    - TEST_ptr_eq
    - TEST_mem_ne
    - TEST_int_eq
    - TEST_char_lt
    - TEST_mem_eq
    - TEST_str_ne
    - TEST_long_eq
    - TEST_long_lt
    - TEST_str_eq
    - TEST_long_ne
    - TEST_char_le
    - TEST_ptr_null
    - TEST_uchar_eq
    - TEST_ptr
    - TEST_int_le
    - TEST_ulong_eq
    linkageType: ''
    returnType: int
    signature: int test_single_eval(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_output_string
      Src: /src/openssl-1.1.1g/test/test_test.c:508,1
    - Dst: test_output_memory
      Src: /src/openssl-1.1.1g/test/test_test.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 511
    functionName: test_output
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - test_output_memory
    - test_output_string
    linkageType: ''
    returnType: int
    signature: int test_output(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/test_test.c:527,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/test_test.c:527,1
    - Dst: test_output_bignum
      Src: /src/openssl-1.1.1g/test/test_test.c:529,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/test_test.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 5
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: test_bn_output
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - test_output_bignum
    - BN_hex2bn
    - TEST_true
    - BN_free
    linkageType: ''
    returnType: int
    signature: int test_bn_output(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:536,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:537,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:538,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:539,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:540,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:541,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:542,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:543,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:544,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:545,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:546,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:547,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:548,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:549,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:550,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:551,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:552,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:553,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/test_test.c:554,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/test_test.c:555,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/test_test.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 557
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/test_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_alert_desc_string_long
      Src: /src/openssl-1.1.1g/test/ssl_test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: print_alert
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - SSL_alert_desc_string_long
    linkageType: ''
    returnType: char
    signature: char *print_alert(int alert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:33,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test.c:34,1
    - Dst: ssl_test_result_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:35,1
    - Dst: ssl_test_result_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: check_result
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - TEST_int_eq
    - ssl_test_result_name
    linkageType: ''
    returnType: int
    signature: int check_result(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:44,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test.c:46,1
    - Dst: print_alert
      Src: /src/openssl-1.1.1g/test/ssl_test.c:47,1
    - Dst: print_alert
      Src: /src/openssl-1.1.1g/test/ssl_test.c:48,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:63,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test.c:65,1
    - Dst: print_alert
      Src: /src/openssl-1.1.1g/test/ssl_test.c:66,1
    - Dst: print_alert
      Src: /src/openssl-1.1.1g/test/ssl_test.c:67,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/ssl_test.c:79,1
    - Dst: print_alert
      Src: /src/openssl-1.1.1g/test/ssl_test.c:80,1
    - Dst: print_alert
      Src: /src/openssl-1.1.1g/test/ssl_test.c:81,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/ssl_test.c:87,1
    - Dst: print_alert
      Src: /src/openssl-1.1.1g/test/ssl_test.c:88,1
    - Dst: print_alert
      Src: /src/openssl-1.1.1g/test/ssl_test.c:89,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/ssl_test.c:93,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/ssl_test.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 98
    functionName: check_alerts
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - print_alert
    - TEST_int_eq
    - TEST_int_le
    - TEST_info
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int check_alerts(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:102,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test.c:103,1
    - Dst: ssl_protocol_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:104,1
    - Dst: ssl_protocol_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:105,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:110,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test.c:112,1
    - Dst: ssl_protocol_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:113,1
    - Dst: ssl_protocol_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: check_protocol
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - ssl_protocol_name
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int check_protocol(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:123,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test.c:124,1
    - Dst: ssl_servername_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:125,1
    - Dst: ssl_servername_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: check_servername
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - ssl_servername_name
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int check_servername(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:136,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test.c:138,1
    - Dst: ssl_session_ticket_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:139,1
    - Dst: ssl_session_ticket_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: check_session_ticket
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - TEST_int_eq
    - ssl_session_ticket_name
    linkageType: ''
    returnType: int
    signature: int check_session_ticket(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:150,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test.c:151,1
    - Dst: ssl_session_id_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:152,1
    - Dst: ssl_session_id_name
      Src: /src/openssl-1.1.1g/test/ssl_test.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: check_session_id
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - TEST_int_eq
    - ssl_session_id_name
    linkageType: ''
    returnType: int
    signature: int check_session_id(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: check_compression
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int check_compression(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:169,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: check_npn
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int check_npn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:182,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: check_alpn
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int check_alpn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssl_test.c:199,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ssl_test.c:201,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 210
    functionName: check_session_ticket_app_data
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_str_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: "int check_session_ticket_app_data(HANDSHAKE_RESULT *result,\n                                         SSL_TEST_CTX
      *test_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:214,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: check_resumption
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 1
    functionsReached:
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int check_resumption(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/ssl_test.c:225,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/test/ssl_test.c:226,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/test/ssl_test.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - name
    - expected_nid
    - nid
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: check_nid
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int check_nid(const char *name, int expected_nid, int nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/test/ssl_test.c:254,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:255,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/test/ssl_test.c:255,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/test/ssl_test.c:259,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/test/ssl_test.c:259,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/test/ssl_test.c:261,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:262,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/test/ssl_test.c:262,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-1.1.1g/test/ssl_test.c:262,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-1.1.1g/test/ssl_test.c:263,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/ssl_test.c:270,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ssl_test.c:271,1
    - Dst: print_ca_names
      Src: /src/openssl-1.1.1g/test/ssl_test.c:272,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ssl_test.c:273,1
    - Dst: print_ca_names
      Src: /src/openssl-1.1.1g/test/ssl_test.c:274,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - name
    - expected_names
    - names
    argTypes:
    - char*
    - STACK_OF*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 276
    functionName: check_ca_names
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_note
    - sk_X509_NAME_num
    - TEST_info
    - print_ca_names
    - sk_X509_NAME_value
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: "int check_ca_names(const char *name,\n                          STACK_OF(X509_NAME)
      *expected_names,\n                          STACK_OF(X509_NAME) *names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_nid
      Src: /src/openssl-1.1.1g/test/ssl_test.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: check_tmp_key
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_nid
    linkageType: ''
    returnType: int
    signature: int check_tmp_key(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_nid
      Src: /src/openssl-1.1.1g/test/ssl_test.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: check_server_cert_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_nid
    linkageType: ''
    returnType: int
    signature: "int check_server_cert_type(HANDSHAKE_RESULT *result,\n                                  SSL_TEST_CTX
      *test_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_nid
      Src: /src/openssl-1.1.1g/test/ssl_test.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: check_server_sign_hash
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_nid
    linkageType: ''
    returnType: int
    signature: "int check_server_sign_hash(HANDSHAKE_RESULT *result,\n                                  SSL_TEST_CTX
      *test_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_nid
      Src: /src/openssl-1.1.1g/test/ssl_test.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: check_server_sign_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_nid
    linkageType: ''
    returnType: int
    signature: "int check_server_sign_type(HANDSHAKE_RESULT *result,\n                                  SSL_TEST_CTX
      *test_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_ca_names
      Src: /src/openssl-1.1.1g/test/ssl_test.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: check_server_ca_names
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_ca_names
    linkageType: ''
    returnType: int
    signature: "int check_server_ca_names(HANDSHAKE_RESULT *result,\n                                 SSL_TEST_CTX
      *test_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_nid
      Src: /src/openssl-1.1.1g/test/ssl_test.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: check_client_cert_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_nid
    linkageType: ''
    returnType: int
    signature: "int check_client_cert_type(HANDSHAKE_RESULT *result,\n                                  SSL_TEST_CTX
      *test_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_nid
      Src: /src/openssl-1.1.1g/test/ssl_test.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: check_client_sign_hash
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_nid
    linkageType: ''
    returnType: int
    signature: "int check_client_sign_hash(HANDSHAKE_RESULT *result,\n                                  SSL_TEST_CTX
      *test_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_nid
      Src: /src/openssl-1.1.1g/test/ssl_test.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: check_client_sign_type
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_nid
    linkageType: ''
    returnType: int
    signature: "int check_client_sign_type(HANDSHAKE_RESULT *result,\n                                  SSL_TEST_CTX
      *test_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_ca_names
      Src: /src/openssl-1.1.1g/test/ssl_test.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: check_client_ca_names
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_ca_names
    linkageType: ''
    returnType: int
    signature: "int check_client_ca_names(HANDSHAKE_RESULT *result,\n                                 SSL_TEST_CTX
      *test_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:346,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: check_cipher
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int check_cipher(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_result
      Src: /src/openssl-1.1.1g/test/ssl_test.c:362,1
    - Dst: check_alerts
      Src: /src/openssl-1.1.1g/test/ssl_test.c:363,1
    - Dst: check_protocol
      Src: /src/openssl-1.1.1g/test/ssl_test.c:365,1
    - Dst: check_servername
      Src: /src/openssl-1.1.1g/test/ssl_test.c:366,1
    - Dst: check_session_ticket
      Src: /src/openssl-1.1.1g/test/ssl_test.c:367,1
    - Dst: check_compression
      Src: /src/openssl-1.1.1g/test/ssl_test.c:368,1
    - Dst: check_session_id
      Src: /src/openssl-1.1.1g/test/ssl_test.c:369,1
    - Dst: check_npn
      Src: /src/openssl-1.1.1g/test/ssl_test.c:372,1
    - Dst: check_cipher
      Src: /src/openssl-1.1.1g/test/ssl_test.c:374,1
    - Dst: check_alpn
      Src: /src/openssl-1.1.1g/test/ssl_test.c:375,1
    - Dst: check_session_ticket_app_data
      Src: /src/openssl-1.1.1g/test/ssl_test.c:376,1
    - Dst: check_resumption
      Src: /src/openssl-1.1.1g/test/ssl_test.c:377,1
    - Dst: check_tmp_key
      Src: /src/openssl-1.1.1g/test/ssl_test.c:378,1
    - Dst: check_server_cert_type
      Src: /src/openssl-1.1.1g/test/ssl_test.c:379,1
    - Dst: check_server_sign_hash
      Src: /src/openssl-1.1.1g/test/ssl_test.c:380,1
    - Dst: check_server_sign_type
      Src: /src/openssl-1.1.1g/test/ssl_test.c:381,1
    - Dst: check_server_ca_names
      Src: /src/openssl-1.1.1g/test/ssl_test.c:382,1
    - Dst: check_client_cert_type
      Src: /src/openssl-1.1.1g/test/ssl_test.c:383,1
    - Dst: check_client_sign_hash
      Src: /src/openssl-1.1.1g/test/ssl_test.c:384,1
    - Dst: check_client_sign_type
      Src: /src/openssl-1.1.1g/test/ssl_test.c:385,1
    - Dst: check_client_ca_names
      Src: /src/openssl-1.1.1g/test/ssl_test.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 359
    functionDepth: 4
    functionLinenumber: 359
    functionLinenumberEnd: 389
    functionName: check_test
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_client_sign_hash
    - check_server_sign_type
    - check_server_ca_names
    - check_resumption
    - check_session_id
    - check_alpn
    - check_client_sign_type
    - check_cipher
    - check_result
    - check_protocol
    - check_servername
    - check_compression
    - check_tmp_key
    - check_session_ticket
    - check_npn
    - check_client_cert_type
    - check_server_cert_type
    - check_client_ca_names
    - check_alerts
    - check_session_ticket_app_data
    - check_server_sign_hash
    linkageType: ''
    returnType: int
    signature: int check_test(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/test/ssl_test.c:400,1
    - Dst: SSL_TEST_CTX_create
      Src: /src/openssl-1.1.1g/test/ssl_test.c:402,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:403,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:408,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:408,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:409,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_test.c:409,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:414,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:414,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:414,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:417,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:417,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:418,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_test.c:418,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:422,1
    - Dst: DTLS_server_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:422,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:423,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_test.c:423,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:426,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:426,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:427,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_test.c:427,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:430,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:431,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:437,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:437,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:438,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_test.c:438,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:444,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:444,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:444,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:446,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_test.c:446,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:450,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:450,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:451,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_test.c:451,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:456,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:456,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:457,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_test.c:457,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:460,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/ssl_test.c:460,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:461,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ssl_test.c:461,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:464,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:465,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test.c:471,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/test/ssl_test.c:471,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:475,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:476,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ssl_test.c:477,1
    - Dst: CONF_modules_load
      Src: /src/openssl-1.1.1g/test/ssl_test.c:477,1
    - Dst: SSL_CTX_config
      Src: /src/openssl-1.1.1g/test/ssl_test.c:480,1
    - Dst: SSL_CTX_config
      Src: /src/openssl-1.1.1g/test/ssl_test.c:481,1
    - Dst: SSL_CTX_config
      Src: /src/openssl-1.1.1g/test/ssl_test.c:485,1
    - Dst: SSL_CTX_config
      Src: /src/openssl-1.1.1g/test/ssl_test.c:488,1
    - Dst: SSL_CTX_config
      Src: /src/openssl-1.1.1g/test/ssl_test.c:491,1
    - Dst: do_handshake
      Src: /src/openssl-1.1.1g/test/ssl_test.c:494,1
    - Dst: check_test
      Src: /src/openssl-1.1.1g/test/ssl_test.c:498,1
    - Dst: CONF_modules_unload
      Src: /src/openssl-1.1.1g/test/ssl_test.c:501,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test.c:502,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test.c:503,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test.c:504,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test.c:505,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test.c:506,1
    - Dst: SSL_TEST_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test.c:507,1
    - Dst: HANDSHAKE_RESULT_free
      Src: /src/openssl-1.1.1g/test/ssl_test.c:508,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 98
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 391
    functionDepth: 11
    functionLinenumber: 391
    functionLinenumberEnd: 510
    functionName: test_handshake
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - CONF_modules_load
    - TLS_server_method
    - TEST_int_gt
    - SSL_TEST_CTX_create
    - TEST_true
    - OPENSSL_init_ssl
    - TLS_client_method
    - SSL_CTX_config
    - check_test
    - SSL_CTX_set_max_proto_version
    - SSL_TEST_CTX_free
    - HANDSHAKE_RESULT_free
    - DTLS_client_method
    - TEST_ptr
    - DTLS_server_method
    - CONF_modules_unload
    - do_handshake
    - SSL_CTX_new
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_handshake(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test.c:516,1
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/test/ssl_test.c:516,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ssl_test.c:518,1
    - Dst: NCONF_load
      Src: /src/openssl-1.1.1g/test/ssl_test.c:518,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/ssl_test.c:518,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/ssl_test.c:519,1
    - Dst: NCONF_get_number_e
      Src: /src/openssl-1.1.1g/test/ssl_test.c:519,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ssl_test.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 525
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - NCONF_load
    - TEST_int_ne
    - NCONF_new
    - TEST_ptr
    - ADD_ALL_TESTS
    - test_get_argument
    - TEST_int_gt
    - NCONF_get_number_e
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/test/ssl_test.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - NCONF_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ecdh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_num_ciphers
      Src: /src/openssl-1.1.1g/test/cipher_overhead_test.c:26,1
    - Dst: ssl3_get_cipher
      Src: /src/openssl-1.1.1g/test/cipher_overhead_test.c:31,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/cipher_overhead_test.c:34,1
    - Dst: ssl_cipher_get_overhead
      Src: /src/openssl-1.1.1g/test/cipher_overhead_test.c:34,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/cipher_overhead_test.c:35,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/cipher_overhead_test.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: cipher_overhead
    functionSourceFile: /src/openssl-1.1.1g/test/cipher_overhead_test.c
    functionUses: 0
    functionsReached:
    - ssl3_get_cipher
    - TEST_true
    - ssl_cipher_get_overhead
    - TEST_info
    - ssl3_num_ciphers
    linkageType: ''
    returnType: int
    signature: int cipher_overhead(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/cipher_overhead_test.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/cipher_overhead_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/test/hmactest.c:90,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/test/hmactest.c:91,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/test/hmactest.c:92,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/test/hmactest.c:93,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/hmactest.c:96,1
    - Dst: HMAC
      Src: /src/openssl-1.1.1g/test/hmactest.c:96,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/test/hmactest.c:96,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/hmactest.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: test_hmac_md5
    functionSourceFile: /src/openssl-1.1.1g/test/hmactest.c
    functionUses: 0
    functionsReached:
    - TEST_str_eq
    - ebcdic2ascii
    - EVP_md5
    - HMAC
    - pt
    linkageType: ''
    returnType: int
    signature: int test_hmac_md5(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/test/hmactest.c:113,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/hmactest.c:114,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/hmactest.c:115,1
    - Dst: HMAC_CTX_get_md
      Src: /src/openssl-1.1.1g/test/hmactest.c:115,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/hmactest.c:116,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:116,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/hmactest.c:117,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/hmactest.c:117,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/hmactest.c:118,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:118,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/test/hmactest.c:118,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/hmactest.c:119,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/hmactest.c:119,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/test/hmactest.c:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: test_hmac_bad
    functionSourceFile: /src/openssl-1.1.1g/test/hmactest.c
    functionUses: 0
    functionsReached:
    - HMAC_CTX_new
    - HMAC_Init_ex
    - TEST_ptr
    - EVP_sha1
    - HMAC_CTX_free
    - HMAC_Update
    - TEST_false
    - HMAC_CTX_get_md
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_hmac_bad(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/test/hmactest.c:136,1
    - Dst: HMAC_CTX_reset
      Src: /src/openssl-1.1.1g/test/hmactest.c:137,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/hmactest.c:139,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/hmactest.c:140,1
    - Dst: HMAC_CTX_get_md
      Src: /src/openssl-1.1.1g/test/hmactest.c:140,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/hmactest.c:141,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:141,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/hmactest.c:142,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/hmactest.c:142,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/hmactest.c:143,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:143,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/test/hmactest.c:143,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:146,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:146,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/test/hmactest.c:146,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:147,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/hmactest.c:147,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:148,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/test/hmactest.c:148,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/hmactest.c:151,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/hmactest.c:152,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/hmactest.c:155,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:155,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/hmactest.c:155,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:158,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:158,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/hmactest.c:158,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-1.1.1g/test/hmactest.c:159,1
    - Dst: HMAC_CTX_get_md
      Src: /src/openssl-1.1.1g/test/hmactest.c:159,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/hmactest.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:160,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/hmactest.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:161,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/test/hmactest.c:161,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/hmactest.c:164,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/hmactest.c:165,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:168,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:168,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:169,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/hmactest.c:169,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:170,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/test/hmactest.c:170,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/hmactest.c:172,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/hmactest.c:173,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:177,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:177,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:178,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/hmactest.c:178,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:179,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/test/hmactest.c:179,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/hmactest.c:181,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/hmactest.c:182,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:189,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:189,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/hmactest.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:190,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/hmactest.c:190,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:191,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/test/hmactest.c:191,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/hmactest.c:193,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/hmactest.c:194,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/test/hmactest.c:199,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 201
    functionName: test_hmac_run
    functionSourceFile: /src/openssl-1.1.1g/test/hmactest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - TEST_true
    - HMAC_CTX_new
    - HMAC_Init_ex
    - HMAC_Final
    - TEST_ptr
    - EVP_sha1
    - TEST_str_eq
    - HMAC_CTX_free
    - HMAC_Update
    - HMAC_CTX_reset
    - TEST_false
    - EVP_sha256
    - pt
    - HMAC_CTX_get_md
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_hmac_run(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/hmactest.c:209,1
    - Dst: HMAC
      Src: /src/openssl-1.1.1g/test/hmactest.c:209,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/test/hmactest.c:209,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/hmactest.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 6
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: test_hmac_single_shot
    functionSourceFile: /src/openssl-1.1.1g/test/hmactest.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - HMAC
    - pt
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_hmac_single_shot(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/test/hmactest.c:226,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/test/hmactest.c:227,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/hmactest.c:228,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/hmactest.c:228,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:231,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/hmactest.c:231,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/test/hmactest.c:231,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:232,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/test/hmactest.c:232,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:233,1
    - Dst: HMAC_CTX_copy
      Src: /src/openssl-1.1.1g/test/hmactest.c:233,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/hmactest.c:234,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/test/hmactest.c:234,1
    - Dst: pt
      Src: /src/openssl-1.1.1g/test/hmactest.c:237,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/hmactest.c:238,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/test/hmactest.c:243,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/test/hmactest.c:244,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 246
    functionName: test_hmac_copy
    functionSourceFile: /src/openssl-1.1.1g/test/hmactest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - HMAC_CTX_new
    - HMAC_Init_ex
    - HMAC_Final
    - TEST_ptr
    - EVP_sha1
    - TEST_str_eq
    - HMAC_CTX_free
    - HMAC_Update
    - HMAC_CTX_copy
    - pt
    linkageType: ''
    returnType: int
    signature: int test_hmac_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/test/hmactest.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - md
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: pt
    functionSourceFile: /src/openssl-1.1.1g/test/hmactest.c
    functionUses: 248
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *pt(unsigned char *md, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/hmactest.c:262,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/hmactest.c:263,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/hmactest.c:264,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/hmactest.c:265,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/hmactest.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/hmactest.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/buildtest_ec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:40,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:58,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:60,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:60,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:65,1
    - Dst: TEST_false
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:66,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:66,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:70,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:73,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:76,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 4
    argNames:
    - rounds
    - min_failures
    - max_retries
    - max_zero_words
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 82
    functionName: sanity_check_bytes
    functionSourceFile: /src/openssl-1.1.1g/test/rdrand_sanitytest.c
    functionUses: 0
    functionsReached:
    - rng
    - TEST_int_ge
    - memcmp
    - TEST_int_eq
    - memcpy
    - TEST_int_le
    - TEST_false
    - memset
    linkageType: ''
    returnType: int
    signature: "int sanity_check_bytes(size_t (*rng)(unsigned char *, size_t),\n    int
      rounds, int min_failures, int max_retries, int max_zero_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanity_check_bytes
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: sanity_check_rdrand_bytes
    functionSourceFile: /src/openssl-1.1.1g/test/rdrand_sanitytest.c
    functionUses: 0
    functionsReached:
    - sanity_check_bytes
    linkageType: ''
    returnType: int
    signature: int sanity_check_rdrand_bytes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanity_check_bytes
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: sanity_check_rdseed_bytes
    functionSourceFile: /src/openssl-1.1.1g/test/rdrand_sanitytest.c
    functionUses: 0
    functionsReached:
    - sanity_check_bytes
    linkageType: ''
    returnType: int
    signature: int sanity_check_rdseed_bytes(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:102,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:108,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/rdrand_sanitytest.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/rdrand_sanitytest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cpuid_setup
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/rdrand_sanitytest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:19,1
    - Dst: BIO_test_flags
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:21,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:22,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: copy_flags
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 2
    functionsReached:
    - BIO_next
    - BIO_set_flags
    - BIO_test_flags
    - BIO_clear_flags
    linkageType: ''
    returnType: void
    signature: void copy_flags(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:29,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:31,1
    - Dst: copy_flags
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: tls_corrupt_read
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - copy_flags
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int tls_corrupt_read(BIO *bio, char *out, int outl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:40,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:44,1
    - Dst: BUF_memdup
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:44,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:48,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:49,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:51,1
    - Dst: copy_flags
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: tls_corrupt_write
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - TEST_ptr
    - copy_flags
    - OPENSSL_free
    - BIO_next
    - BUF_memdup
    linkageType: ''
    returnType: int
    signature: int tls_corrupt_write(BIO *bio, const char *in, int inl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:61,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: tls_corrupt_ctrl
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long tls_corrupt_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: tls_corrupt_gets
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tls_corrupt_gets(BIO *bio, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: tls_corrupt_puts
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tls_corrupt_puts(BIO *bio, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: tls_corrupt_new
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int tls_corrupt_new(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: tls_corrupt_free
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int tls_corrupt_free(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:111,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:114,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:115,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:116,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:117,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:118,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:119,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: bio_f_tls_corrupt_filter
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *bio_f_tls_corrupt_filter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: bio_f_tls_corrupt_filter_free
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void bio_f_tls_corrupt_filter_free(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:144,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:147,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:147,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:147,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:148,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:148,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:149,1
    - Dst: SSL_get1_supported_ciphers
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:149,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:157,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:157,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:159,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:162,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:163,1
    - Dst: SSL_CIPHER_get_auth_nid
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:165,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:166,1
    - Dst: TEST_int_ne
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:168,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:172,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:173,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 177
    functionName: setup_cipher_list
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TLS_server_method
    - sk_SSL_CIPHER_num
    - TEST_int_ne
    - sk_SSL_CIPHER_free
    - sk_SSL_CIPHER_value
    - TEST_ptr
    - SSL_CIPHER_get_auth_nid
    - STACK_OF
    - SSL_get1_supported_ciphers
    - SSL_CIPHER_get_name
    - SSL_new
    - SSL_CTX_new
    - SSL_CTX_free
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int setup_cipher_list(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:189,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:196,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:196,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:196,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:196,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:201,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:202,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:202,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:203,1
    - Dst: SSL_CTX_get_ciphers
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:203,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:204,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:204,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:205,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:205,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:212,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:212,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:215,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:215,1
    - Dst: bio_f_tls_corrupt_filter
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:215,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:219,1
    - Dst: create_ssl_objects
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:219,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:223,1
    - Dst: create_ssl_connection
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:223,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:228,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:228,1
    - Dst: TEST_int_lt
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:231,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:231,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:234,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:234,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:234,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:240,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:241,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:242,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:243,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 1
    argNames:
    - testidx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 245
    functionName: test_ssl_corrupt
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - SSL_write
    - TLS_server_method
    - SSL_CTX_set_cipher_list
    - sk_SSL_CIPHER_value
    - STACK_OF
    - ERR_GET_REASON
    - create_ssl_connection
    - TEST_int_ge
    - ERR_peek_error
    - TEST_true
    - bio_f_tls_corrupt_filter
    - TEST_int_eq
    - create_ssl_ctx_pair
    - TLS_client_method
    - TEST_info
    - SSL_CTX_set_ciphersuites
    - TEST_int_lt
    - SSL_free
    - sk_SSL_CIPHER_num
    - SSL_CTX_get_ciphers
    - create_ssl_objects
    - SSL_read
    - SSL_CTX_set_max_proto_version
    - TEST_ptr
    - SSL_CTX_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int test_ssl_corrupt(int testidx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:251,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:251,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:252,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:252,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:253,1
    - Dst: setup_cipher_list
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:257,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 261
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - ADD_ALL_TESTS
    - test_get_argument
    - TEST_note
    - setup_cipher_list
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_f_tls_corrupt_filter_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:265,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/sslcorrupttest.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - bio_f_tls_corrupt_filter_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:33,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: HANDSHAKE_RESULT_new
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: HANDSHAKE_RESULT
    signature: HANDSHAKE_RESULT *HANDSHAKE_RESULT_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:45,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:46,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:47,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:48,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - result
    argTypes:
    - HANDSHAKE_RESULT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: HANDSHAKE_RESULT_free
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: void
    signature: void HANDSHAKE_RESULT_free(HANDSHAKE_RESULT *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:78,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:84,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ctx_data
    argTypes:
    - CTX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: ctx_data_free_data
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ctx_data_free_data(CTX_DATA *ctx_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:96,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:99,1
    - Dst: SSL_alert_type_string
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:99,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:100,1
    - Dst: SSL_alert_desc_string
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - s
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: info_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - strcmp
    - SSL_alert_type_string
    - SSL_get_ex_data
    - SSL_alert_desc_string
    linkageType: ''
    returnType: void
    signature: void info_cb(const SSL *s, int where, int ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:116,1
    - Dst: SSL_get_ex_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:118,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:125,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:127,1
    - Dst: SSL_clear_options
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:133,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:134,1
    - Dst: SSL_CTX_get_options
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:134,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - s
    - arg
    - ignore
    argTypes:
    - SSL*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 148
    functionName: select_server_ctx
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - strcmp
    - SSL_get_ex_data
    - SSL_set_options
    - SSL_get_servername
    - SSL_set_SSL_CTX
    - SSL_clear_options
    - SSL_CTX_get_options
    linkageType: ''
    returnType: int
    signature: int select_server_ctx(SSL *s, void *arg, int ignore)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:156,1
    - Dst: SSL_client_hello_get0_ext
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:162,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:189,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:189,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:191,1
    - Dst: SSL_clear_options
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:197,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:198,1
    - Dst: SSL_CTX_get_options
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:198,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:202,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:203,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - s
    - arg
    - ignore
    argTypes:
    - SSL*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 211
    functionName: client_hello_select_server_ctx
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_client_hello_get0_ext
    - SSL_get_ex_data
    - SSL_set_options
    - SSL_clear_options
    - SSL_set_SSL_CTX
    - SSL_CTX_get_options
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int client_hello_select_server_ctx(SSL *s, void *arg, int ignore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_server_ctx
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: servername_ignore_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - select_server_ctx
    linkageType: ''
    returnType: int
    signature: int servername_ignore_cb(SSL *s, int *ad, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_server_ctx
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: servername_reject_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - select_server_ctx
    linkageType: ''
    returnType: int
    signature: int servername_reject_cb(SSL *s, int *ad, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: client_hello_select_server_ctx
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 240
    functionName: client_hello_ignore_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - client_hello_select_server_ctx
    linkageType: ''
    returnType: int
    signature: int client_hello_ignore_cb(SSL *s, int *al, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: client_hello_select_server_ctx
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: client_hello_reject_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - client_hello_select_server_ctx
    linkageType: ''
    returnType: int
    signature: int client_hello_reject_cb(SSL *s, int *al, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_client_hello_get0_legacy_version
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:257,1
    - Dst: SSL_client_hello_get0_session_id
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:262,1
    - Dst: SSL_client_hello_get0_random
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:264,1
    - Dst: SSL_client_hello_get0_ciphers
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:265,1
    - Dst: SSL_client_hello_get0_compression_methods
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:266,1
    - Dst: client_hello_select_server_ctx
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:270,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - s
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 277
    functionName: client_hello_nov12_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_client_hello_get0_legacy_version
    - client_hello_select_server_ctx
    - SSL_client_hello_get0_compression_methods
    - SSL_client_hello_get0_random
    - SSL_client_hello_get0_ciphers
    - SSL_client_hello_get0_session_id
    - SSL_set_max_proto_version
    linkageType: ''
    returnType: int
    signature: int client_hello_nov12_cb(SSL *s, int *al, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:286,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 297
    functionName: server_ocsp_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - SSL_set_tlsext_status_ocsp_resp
    linkageType: ''
    returnType: int
    signature: int server_ocsp_cb(SSL *s, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_tlsext_status_ocsp_resp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: client_ocsp_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_get_tlsext_status_ocsp_resp
    linkageType: ''
    returnType: int
    signature: int client_ocsp_cb(SSL *s, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_set_error
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: verify_reject_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_set_error
    linkageType: ''
    returnType: int
    signature: int verify_reject_cb(X509_STORE_CTX *ctx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: verify_accept_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int verify_accept_cb(X509_STORE_CTX *ctx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - key_name
    - iv
    - ctx
    - hctx
    - enc
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: broken_session_ticket_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int broken_session_ticket_cb(SSL *s, unsigned char *key_name, unsigned
      char *iv,\n                                    EVP_CIPHER_CTX *ctx, HMAC_CTX
      *hctx, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - s
    - key_name
    - iv
    - ctx
    - hctx
    - enc
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: do_not_call_session_ticket_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int do_not_call_session_ticket_cb(SSL *s, unsigned char *key_name,\n
      \                                        unsigned char *iv,\n                                         EVP_CIPHER_CTX
      *ctx,\n                                         HMAC_CTX *hctx, int enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:342,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:345,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:347,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:347,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:355,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:361,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:368,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:374,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - protos
    - out
    - outlen
    argTypes:
    - char*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 377
    functionName: parse_protos
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - TEST_ptr
    - OPENSSL_free
    - memcpy
    - TEST_int_gt
    - strlen
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int parse_protos(const char *protos, unsigned char **out, size_t *outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_select_next_proto
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:393,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 399
    functionName: client_npn_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - SSL_select_next_proto
    linkageType: ''
    returnType: int
    signature: "int client_npn_cb(SSL *s, unsigned char **out, unsigned char *outlen,\n
      \                        const unsigned char *in, unsigned int inlen,\n                         void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: server_npn_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int server_npn_cb(SSL *s, const unsigned char **data,\n                         unsigned
      int *len, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_select_next_proto
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 440
    functionName: server_alpn_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_select_next_proto
    linkageType: ''
    returnType: int
    signature: "int server_alpn_cb(SSL *s, const unsigned char **out,\n                          unsigned
      char *outlen, const unsigned char *in,\n                          unsigned int
      inlen, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: client_srp_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *client_srp_cb(SSL *s, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:452,1
    - Dst: SSL_get_srp_username
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:452,1
    - Dst: SSL_set_srp_server_param_pw
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 461
    functionName: server_srp_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - strcmp
    - SSL_get_srp_username
    - SSL_set_srp_server_param_pw
    linkageType: ''
    returnType: int
    signature: int server_srp_cb(SSL *s, int *ad, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:467,1
    - Dst: SSL_SESSION_set1_ticket_appdata
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:473,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 474
    functionName: generate_session_ticket_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - strlen
    - SSL_SESSION_set1_ticket_appdata
    - SSL_get_session
    linkageType: ''
    returnType: int
    signature: int generate_session_ticket_cb(SSL *s, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - s
    - ss
    - keyname
    - keyname_len
    - status
    - arg
    argTypes:
    - SSL*
    - SSL_SESSION*
    - unsigned char*
    - size_t
    - SSL_TICKET_STATUS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 494
    functionName: decrypt_session_ticket_cb
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int decrypt_session_ticket_cb(SSL *s, SSL_SESSION *ss,\n                                     const
      unsigned char *keyname,\n                                     size_t keyname_len,\n
      \                                    SSL_TICKET_STATUS status,\n                                     void
      *arg)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:511,1
    - Dst: SSL_CTX_set_max_send_fragment
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:511,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:515,1
    - Dst: SSL_CTX_set_max_send_fragment
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:515,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:520,1
    - Dst: SSL_CTX_set_max_send_fragment
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:520,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:526,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:529,1
    - Dst: SSL_CTX_set_tlsext_max_fragment_length
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:541,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:553,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:554,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:557,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:558,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:563,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:566,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:569,1
    - Dst: SSL_CTX_set_tlsext_status_type
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:573,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:574,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:575,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:576,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:577,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:588,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:592,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:596,1
    - Dst: parse_protos
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:596,1
    - Dst: SSL_CTX_set_npn_advertised_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:600,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:604,1
    - Dst: parse_protos
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:604,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:607,1
    - Dst: SSL_CTX_set_npn_advertised_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:609,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:613,1
    - Dst: parse_protos
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:613,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:617,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:622,1
    - Dst: parse_protos
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:622,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:626,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:629,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:630,1
    - Dst: parse_protos
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:630,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:635,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:641,1
    - Dst: parse_protos
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:641,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:644,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:644,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:647,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:652,1
    - Dst: SSL_CTX_set_session_ticket_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:653,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:657,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:660,1
    - Dst: SSL_CTX_set_session_ticket_cb
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:661,1
    - Dst: SSL_CTX_set_tlsext_ticket_keys
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:669,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:670,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:670,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:671,1
    - Dst: SSL_CTX_set_tlsext_ticket_keys
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:671,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:674,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:677,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:681,1
    - Dst: SSL_CTX_set_default_ctlog_list_file
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:681,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:685,1
    - Dst: SSL_CTX_enable_ct
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:685,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:690,1
    - Dst: SSL_CTX_enable_ct
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:690,1
    - Dst: SSL_CTX_set_srp_username_callback
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:699,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:700,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:701,1
    - Dst: SSL_CTX_set_srp_cb_arg
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:702,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:705,1
    - Dst: SSL_CTX_set_srp_username_callback
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:707,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:708,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:709,1
    - Dst: SSL_CTX_set_srp_cb_arg
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:710,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:713,1
    - Dst: SSL_CTX_set_srp_username
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:713,1
    - Dst: SSL_CTX_set_srp_client_pwd_callback
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:716,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:717,1
    - Dst: SSL_CTX_set_srp_cb_arg
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:718,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 161
    argCount: 8
    argNames:
    - server_ctx
    - server2_ctx
    - client_ctx
    - test
    - extra
    - server_ctx_data
    - server2_ctx_data
    - client_ctx_data
    argTypes:
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_TEST_CTX*
    - SSL_TEST_EXTRA_CONF*
    - CTX_DATA*
    - CTX_DATA*
    - CTX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 724
    functionName: configure_handshake_ctx
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_srp_username
    - SSL_CTX_set_npn_advertised_cb
    - SSL_CTX_set_alpn_select_cb
    - SSL_CTX_set_session_ticket_cb
    - SSL_CTX_set_tlsext_ticket_keys
    - SSL_CTX_enable_ct
    - SSL_CTX_set_tlsext_status_arg
    - SSL_CTX_set_tlsext_max_fragment_length
    - TEST_true
    - TEST_int_eq
    - OPENSSL_free
    - SSL_CTX_set_tlsext_servername_arg
    - OPENSSL_zalloc
    - SSL_CTX_set_max_send_fragment
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_CTX_set_tlsext_ticket_key_cb
    - OPENSSL_strdup
    - SSL_CTX_set_default_ctlog_list_file
    - SSL_CTX_set_client_hello_cb
    - SSL_CTX_set_tlsext_status_cb
    - SSL_CTX_set_srp_cb_arg
    - SSL_CTX_set_alpn_protos
    - SSL_CTX_set_srp_client_pwd_callback
    - TEST_ptr
    - SSL_CTX_set_next_proto_select_cb
    - SSL_CTX_set_tlsext_status_type
    - SSL_CTX_set_cert_verify_callback
    - SSL_CTX_set_srp_username_callback
    - parse_protos
    linkageType: ''
    returnType: int
    signature: "int configure_handshake_ctx(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,\n
      \                                  SSL_CTX *client_ctx,\n                                   const
      SSL_TEST_CTX *test,\n                                   const SSL_TEST_EXTRA_CONF
      *extra,\n                                   CTX_DATA *server_ctx_data,\n                                   CTX_DATA
      *server2_ctx_data,\n                                   CTX_DATA *client_ctx_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:731,1
    - Dst: ssl_servername_name
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:732,1
    - Dst: SSL_set_post_handshake_auth
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - server
    - client
    - extra
    argTypes:
    - SSL*
    - SSL*
    - SSL_TEST_EXTRA_CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 735
    functionName: configure_handshake_ssl
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - ssl_servername_name
    - SSL_set_post_handshake_auth
    - SSL_set_tlsext_host_name
    linkageType: ''
    returnType: void
    signature: "void configure_handshake_ssl(SSL *server, SSL *client,\n                                    const
      SSL_TEST_EXTRA_CONF *extra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:765,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:765,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:766,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:766,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:767,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:767,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:776,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:777,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:778,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - peer
    - ctx
    argTypes:
    - PEER*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 780
    functionName: create_peer
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - OPENSSL_free
    - OPENSSL_zalloc
    - SSL_new
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int create_peer(PEER *peer, SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:784,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:785,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - peer
    argTypes:
    - PEER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 787
    functionName: peer_free_data
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - SSL_free
    linkageType: ''
    returnType: void
    signature: void peer_free_data(PEER *peer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:795,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:798,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - peer
    argTypes:
    - PEER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 811
    functionName: do_handshake_step
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_do_handshake
    - TEST_int_eq
    - SSL_get_error
    linkageType: ''
    returnType: void
    signature: void do_handshake_step(PEER *peer)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:826,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:833,1
    - Dst: TEST_int_le
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:835,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:844,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:856,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:859,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - peer
    argTypes:
    - PEER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 883
    functionName: do_app_data_step
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_write
    - TEST_int_eq
    - SSL_get_error
    - SSL_read
    - TEST_int_le
    linkageType: ''
    returnType: void
    signature: void do_app_data_step(PEER *peer)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: do_handshake_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:897,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:901,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:902,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:921,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:923,1
    - Dst: SSL_renegotiate_pending
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:928,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:934,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:935,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:938,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:943,1
    - Dst: SSL_renegotiate_abbreviated
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:945,1
    - Dst: do_handshake_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:952,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:972,1
    - Dst: SSL_key_update
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:979,1
    - Dst: do_handshake_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:984,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:993,1
    - Dst: SSL_verify_client_post_handshake
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:997,1
    - Dst: do_handshake_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1003,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1018,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1027,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1033,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 2
    argNames:
    - test_ctx
    - peer
    argTypes:
    - SSL_TEST_CTX*
    - PEER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 1038
    functionName: do_reneg_setup_step
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_key_update
    - SSL_set_cipher_list
    - TEST_true
    - SSL_verify_client_post_handshake
    - SSL_is_server
    - SSL_renegotiate_abbreviated
    - TEST_int_eq
    - SSL_read
    - SSL_get_error
    - do_handshake_step
    - SSL_in_init
    - SSL_renegotiate_pending
    - SSL_renegotiate
    linkageType: ''
    returnType: void
    signature: void do_reneg_setup_step(const SSL_TEST_CTX *test_ctx, PEER *peer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1060,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1064,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1069,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - peer
    argTypes:
    - PEER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1074
    functionName: do_shutdown_step
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - SSL_get_error
    - SSL_shutdown
    linkageType: ''
    returnType: void
    signature: void do_shutdown_step(PEER *peer)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - test_ctx
    argTypes:
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1096
    functionName: renegotiate_op
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int renegotiate_op(const SSL_TEST_CTX *test_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - test_ctx
    argTypes:
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1107
    functionName: post_handshake_op
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int post_handshake_op(const SSL_TEST_CTX *test_ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: renegotiate_op
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1114,1
    - Dst: post_handshake_op
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1114,1
    - Dst: post_handshake_op
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1120,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - test_ctx
    - phase
    argTypes:
    - SSL_TEST_CTX*
    - connect_phase_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1134
    functionName: next_phase
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - renegotiate_op
    - TEST_error
    - post_handshake_op
    linkageType: ''
    returnType: connect_phase_t
    signature: "connect_phase_t next_phase(const SSL_TEST_CTX *test_ctx,\n                                  connect_phase_t
      phase)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: do_handshake_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1141,1
    - Dst: do_app_data_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1144,1
    - Dst: do_reneg_setup_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1147,1
    - Dst: do_handshake_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1150,1
    - Dst: do_app_data_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1153,1
    - Dst: do_shutdown_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1156,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - test_ctx
    - peer
    - phase
    argTypes:
    - SSL_TEST_CTX*
    - PEER*
    - connect_phase_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1136
    functionDepth: 3
    functionLinenumber: 1136
    functionLinenumberEnd: 1162
    functionName: do_connect_step
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - do_shutdown_step
    - do_app_data_step
    - do_handshake_step
    - do_reneg_setup_step
    - TEST_error
    linkageType: ''
    returnType: void
    signature: "void do_connect_step(const SSL_TEST_CTX *test_ctx, PEER *peer,\n                            connect_phase_t
      phase)"
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 3
    argNames:
    - last_status
    - previous_status
    - client_spoke_last
    argTypes:
    - peer_status_t
    - peer_status_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1244
    functionName: handshake_status
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: handshake_status_t
    signature: "handshake_status_t handshake_status(peer_status_t last_status,\n                                           peer_status_t
      previous_status,\n                                           int client_spoke_last)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1255,1
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1255,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1256,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1258
    functionName: dup_str
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strnlen
    - TEST_ptr
    - OPENSSL_strndup
    - TEST_size_t_eq
    linkageType: ''
    returnType: char
    signature: char *dup_str(const unsigned char *in, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1262,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1266,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1267,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1260
    functionDepth: 2
    functionLinenumber: 1260
    functionLinenumberEnd: 1271
    functionName: pkey_type
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_id
    - EC_GROUP_get_curve_name
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int pkey_type(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_peer_certificate
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1275,1
    - Dst: pkey_type
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1278,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1278,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1273
    functionDepth: 3
    functionLinenumber: 1273
    functionLinenumberEnd: 1284
    functionName: peer_pkey_type
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_get0_pubkey
    - pkey_type
    - SSL_get_peer_certificate
    linkageType: ''
    returnType: int
    signature: int peer_pkey_type(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1297,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1301,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1303,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1305,1
    - Dst: BIO_new_dgram_sctp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1315,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1287
    functionDepth: 6
    functionLinenumber: 1287
    functionLinenumberEnd: 1322
    functionName: set_sock_as_sctp
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - BIO_new_dgram_sctp
    - memset
    - BIO_free
    linkageType: ''
    returnType: int
    signature: int set_sock_as_sctp(int sock)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1333,1
    - Dst: BIO_lookup_ex
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1341,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1345,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1346,1
    - Dst: BIO_socket
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1347,1
    - Dst: set_sock_as_sctp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1355,1
    - Dst: BIO_listen
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1356,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1356,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1358,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1370,1
    - Dst: BIO_lookup_ex
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1373,1
    - Dst: BIO_socket
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1377,1
    - Dst: set_sock_as_sctp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1381,1
    - Dst: BIO_connect
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1382,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1382,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1383,1
    - Dst: BIO_accept_ex
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1386,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1396,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1398,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1400,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1402,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 2
    argNames:
    - ssock
    - csock
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1324
    functionDepth: 7
    functionLinenumber: 1324
    functionLinenumberEnd: 1404
    functionName: create_sctp_socks
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - BIO_socket_nbio
    - BIO_ADDRINFO_next
    - BIO_listen
    - BIO_ADDRINFO_free
    - BIO_socket
    - BIO_connect
    - BIO_ADDRINFO_address
    - BIO_ADDRINFO_family
    - set_sock_as_sctp
    - BIO_closesocket
    - BIO_lookup_ex
    - BIO_accept_ex
    - BIO_sock_init
    linkageType: ''
    returnType: int
    signature: int create_sctp_socks(int *ssock, int *csock)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: HANDSHAKE_RESULT_new
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1430,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1450,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1451,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1452,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1453,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1454,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1455,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1456,1
    - Dst: configure_handshake_ctx
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1458,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1461,1
    - Dst: SSL_CTX_set_mode
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1467,1
    - Dst: SSL_CTX_set_mode
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1469,1
    - Dst: create_peer
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1473,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1474,1
    - Dst: create_peer
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1477,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1478,1
    - Dst: configure_handshake_ssl
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1485,1
    - Dst: SSL_SESSION_get_id
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1487,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1490,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1490,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1492,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1492,1
    - Dst: create_sctp_socks
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1503,1
    - Dst: BIO_new_dgram_sctp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1504,1
    - Dst: BIO_new_dgram_sctp
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1505,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1509,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1509,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1510,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1510,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1513,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1514,1
    - Dst: BIO_set_nbio
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1518,1
    - Dst: BIO_set_nbio
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1519,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1521,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1522,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1526,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1527,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1529,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1530,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1530,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1531,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1531,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1533,1
    - Dst: SSL_get_ex_new_index
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1536,1
    - Dst: TEST_int_ge
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1537,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1538,1
    - Dst: SSL_set_ex_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1538,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1539,1
    - Dst: SSL_set_ex_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1539,1
    - Dst: SSL_set_info_callback
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1542,1
    - Dst: SSL_set_info_callback
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1543,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1548,1
    - Dst: do_connect_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1560,1
    - Dst: handshake_status
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1561,1
    - Dst: do_connect_step
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1566,1
    - Dst: handshake_status
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1567,1
    - Dst: next_phase
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1574,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1600,1
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1649,1
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1650,1
    - Dst: SSL_get0_session
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1652,1
    - Dst: SSL_SESSION_get0_ticket
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1653,1
    - Dst: SSL_SESSION_get_id
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1654,1
    - Dst: SSL_get_current_compression
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1660,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1670,1
    - Dst: dup_str
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1671,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1673,1
    - Dst: dup_str
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1674,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1677,1
    - Dst: dup_str
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1678,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1680,1
    - Dst: dup_str
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1681,1
    - Dst: SSL_get0_session
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1683,1
    - Dst: SSL_SESSION_get0_ticket_appdata
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1684,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1685,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1688,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1689,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1691,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1691,1
    - Dst: dup_str
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1692,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1692,1
    - Dst: SSL_get1_session
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1695,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1697,1
    - Dst: SSL_SESSION_dup
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1704,1
    - Dst: SSL_get_peer_tmp_key
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1707,1
    - Dst: pkey_type
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1708,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1709,1
    - Dst: SSL_get_peer_signature_nid
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1712,1
    - Dst: SSL_get_peer_signature_nid
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1713,1
    - Dst: SSL_get_peer_signature_type_nid
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1715,1
    - Dst: SSL_get_peer_signature_type_nid
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1716,1
    - Dst: SSL_get0_peer_CA_list
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1718,1
    - Dst: SSL_dup_CA_list
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1722,1
    - Dst: SSL_get0_peer_CA_list
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1724,1
    - Dst: SSL_dup_CA_list
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1728,1
    - Dst: peer_pkey_type
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1730,1
    - Dst: peer_pkey_type
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1731,1
    - Dst: ctx_data_free_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1733,1
    - Dst: ctx_data_free_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1734,1
    - Dst: ctx_data_free_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1735,1
    - Dst: peer_free_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1737,1
    - Dst: peer_free_data
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1738,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 207
    argCount: 9
    argNames:
    - server_ctx
    - server2_ctx
    - client_ctx
    - test_ctx
    - extra
    - session_in
    - serv_sess_in
    - session_out
    - serv_sess_out
    argTypes:
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_TEST_CTX*
    - SSL_TEST_EXTRA_CONF*
    - SSL_SESSION*
    - SSL_SESSION*
    - SSL_SESSION**
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1420
    functionDepth: 8
    functionLinenumber: 1420
    functionLinenumberEnd: 1740
    functionName: do_handshake_internal
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - SSL_SESSION_get0_ticket
    - SSL_get_session
    - dup_str
    - SSL_get_peer_tmp_key
    - BIO_new_dgram_sctp
    - OPENSSL_strndup
    - BIO_s_mem
    - SSL_get0_next_proto_negotiated
    - SSL_get_peer_signature_nid
    - SSL_get0_peer_CA_list
    - SSL_get1_session
    - TEST_int_gt
    - SSL_set_connect_state
    - SSL_get0_alpn_selected
    - SSL_CIPHER_get_name
    - SSL_get_current_cipher
    - SSL_set_accept_state
    - ctx_data_free_data
    - TEST_int_ge
    - TEST_true
    - SSL_SESSION_get_id
    - SSL_get_ex_new_index
    - TEST_int_eq
    - SSL_SESSION_get0_ticket_appdata
    - pkey_type
    - SSL_SESSION_dup
    - SSL_get_current_compression
    - SSL_dup_CA_list
    - create_sctp_socks
    - next_phase
    - time
    - handshake_status
    - peer_free_data
    - configure_handshake_ssl
    - BIO_set_nbio
    - create_peer
    - do_connect_step
    - HANDSHAKE_RESULT_new
    - SSL_set_bio
    - SSL_set_info_callback
    - SSL_version
    - SSL_session_reused
    - SSL_get_peer_signature_type_nid
    - SSL_set_ex_data
    - peer_pkey_type
    - configure_handshake_ctx
    - TEST_ptr
    - SSL_get0_session
    - memset
    - BIO_up_ref
    - EVP_PKEY_free
    - TEST_note
    - SSL_CTX_set_mode
    - SSL_CTX_add_session
    - strlen
    - BIO_new
    linkageType: ''
    returnType: HANDSHAKE_RESULT
    signature: "HANDSHAKE_RESULT *do_handshake_internal(\n    SSL_CTX *server_ctx,
      SSL_CTX *server2_ctx, SSL_CTX *client_ctx,\n    const SSL_TEST_CTX *test_ctx,
      const SSL_TEST_EXTRA_CONF *extra,\n    SSL_SESSION *session_in, SSL_SESSION
      *serv_sess_in,\n    SSL_SESSION **session_out, SSL_SESSION **serv_sess_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_handshake_internal
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1750,1
    - Dst: HANDSHAKE_RESULT_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1763,1
    - Dst: do_handshake_internal
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1765,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1769,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/test/handshake_helper.c:1770,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - server_ctx
    - server2_ctx
    - client_ctx
    - resume_server_ctx
    - resume_client_ctx
    - test_ctx
    argTypes:
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1742
    functionDepth: 9
    functionLinenumber: 1742
    functionLinenumberEnd: 1772
    functionName: do_handshake
    functionSourceFile: /src/openssl-1.1.1g/test/handshake_helper.c
    functionUses: 7
    functionsReached:
    - SSL_SESSION_free
    - HANDSHAKE_RESULT_free
    - do_handshake_internal
    linkageType: ''
    returnType: HANDSHAKE_RESULT
    signature: "HANDSHAKE_RESULT *do_handshake(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,\n
      \                              SSL_CTX *client_ctx, SSL_CTX *resume_server_ctx,\n
      \                              SSL_CTX *resume_client_ctx,\n                               const
      SSL_TEST_CTX *test_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:39,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:40,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:41,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:42,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:43,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:44,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - conf1
    - conf2
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - SSL_TEST_CLIENT_CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: clientconf_eq
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_str_eq
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: "int clientconf_eq(SSL_TEST_CLIENT_CONF *conf1,\n                         SSL_TEST_CLIENT_CONF
      *conf2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:53,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:54,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:55,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:56,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:58,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - serv
    - serv2
    argTypes:
    - SSL_TEST_SERVER_CONF*
    - SSL_TEST_SERVER_CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: serverconf_eq
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_str_eq
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: "int serverconf_eq(SSL_TEST_SERVER_CONF *serv,\n                         SSL_TEST_SERVER_CONF
      *serv2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:68,1
    - Dst: clientconf_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:69,1
    - Dst: serverconf_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:70,1
    - Dst: serverconf_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - extra
    - extra2
    argTypes:
    - SSL_TEST_EXTRA_CONF*
    - SSL_TEST_EXTRA_CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: extraconf_eq
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - clientconf_eq
    - TEST_true
    - serverconf_eq
    linkageType: ''
    returnType: int
    signature: "int extraconf_eq(SSL_TEST_EXTRA_CONF *extra,\n                        SSL_TEST_EXTRA_CONF
      *extra2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:77,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:78,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:79,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:80,1
    - Dst: extraconf_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:81,1
    - Dst: extraconf_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:82,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:83,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:84,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:86,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:88,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:89,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:90,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:92,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:94,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:96,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:98,1
    - Dst: TEST_str_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:100,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:102,1
    - Dst: TEST_int_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:104,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ctx2
    argTypes:
    - SSL_TEST_CTX*
    - SSL_TEST_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 108
    functionName: testctx_eq
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - extraconf_eq
    - TEST_str_eq
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int testctx_eq(SSL_TEST_CTX *ctx, SSL_TEST_CTX *ctx2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:114,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:114,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:117,1
    - Dst: SSL_TEST_CTX_new
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: set_up
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - OPENSSL_free
    - OPENSSL_zalloc
    - SSL_TEST_CTX_new
    linkageType: ''
    returnType: SSL_TEST_CTX_TEST_FIXTURE
    signature: SSL_TEST_CTX_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:129,1
    - Dst: SSL_TEST_CTX_create
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:129,1
    - Dst: testctx_eq
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:130,1
    - Dst: SSL_TEST_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - SSL_TEST_CTX_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 11
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: execute_test
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - testctx_eq
    - SSL_TEST_CTX_create
    - SSL_TEST_CTX_free
    linkageType: ''
    returnType: int
    signature: int execute_test(SSL_TEST_CTX_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TEST_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - SSL_TEST_CTX_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: tear_down
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - SSL_TEST_CTX_free
    linkageType: ''
    returnType: void
    signature: void tear_down(SSL_TEST_CTX_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: SETUP_SSL_TEST_CTX_TEST_FIXTURE
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETUP_SSL_TEST_CTX_TEST_FIXTURE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: EXECUTE_SSL_TEST_CTX_TEST
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXECUTE_SSL_TEST_CTX_TEST()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_SSL_TEST_CTX_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:152,1
    - Dst: EXECUTE_SSL_TEST_CTX_TEST
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: test_empty_configuration
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_SSL_TEST_CTX_TEST
    - SETUP_SSL_TEST_CTX_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_empty_configuration(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_SSL_TEST_CTX_TEST_FIXTURE
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:163,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:186,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:187,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:196,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:197,1
    - Dst: EXECUTE_SSL_TEST_CTX_TEST
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:203,1
    - Dst: tear_down
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 209
    functionName: test_good_configuration
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - EXECUTE_SSL_TEST_CTX_TEST
    - OPENSSL_strdup
    - tear_down
    - SETUP_SSL_TEST_CTX_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_good_configuration(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr_null
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:234,1
    - Dst: SSL_TEST_CTX_create
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:234,1
    - Dst: SSL_TEST_CTX_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 11
    functionLinenumber: 230
    functionLinenumberEnd: 241
    functionName: test_bad_configuration
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - SSL_TEST_CTX_free
    - SSL_TEST_CTX_create
    - TEST_ptr_null
    linkageType: ''
    returnType: int
    signature: int test_bad_configuration(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:245,1
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:245,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:248,1
    - Dst: NCONF_load
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:248,1
    - Dst: test_get_argument
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:248,1
    - Dst: TEST_note
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:249,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:253,1
    - Dst: ADD_TEST
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:254,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:255,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 257
    functionName: setup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - NCONF_load
    - ADD_TEST
    - NCONF_new
    - TEST_ptr
    - ADD_ALL_TESTS
    - test_get_argument
    - TEST_int_gt
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - NCONF_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:29,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:30,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - advance_clock_arg
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: PacketedBio
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void PacketedBio(bool advance_clock_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: HasTimeout
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasTimeout() const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: CanRead
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CanRead() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: GetData
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_get_data
    linkageType: ''
    returnType: PacketedBio
    signature: PacketedBio *GetData(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:60,1
    - Dst: const_cast<BIO*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: GetData
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 1
    functionsReached:
    - const_cast<BIO*>
    - GetData
    linkageType: ''
    returnType: PacketedBio
    signature: PacketedBio *GetData(const BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - bio
    - out
    - len
    argTypes:
    - BIO*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: ReadAll
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int ReadAll(BIO *bio, uint8_t *out, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:82,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:86,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:95,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:95,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:97,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:102,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:102,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:104,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts:
    - condition: (ret == inl)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    constantsTouched: []
    func_position:
      end: 109
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 109
    functionName: PacketedWrite
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_clear_retry_flags
    - assert
    - BIO_next
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int PacketedWrite(BIO *bio, const char *in, int inl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:112,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:113,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:117,1
    - Dst: PacketedBio*::CanRead
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:121,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:122,1
    - Dst: ReadAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:128,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:128,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:130,1
    - Dst: PacketedBio*::HasTimeout
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:137,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:138,1
    - Dst: ReadAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:144,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:144,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:146,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:149,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:150,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:151,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:152,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:153,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:154,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:155,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:156,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:163,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:163,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:167,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:171,1
    - Dst: PacketedBioAdvanceClock
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:175,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:180,1
    - Dst: ReadAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:186,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:186,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:188,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:194,1
    - Dst: ReadAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:198,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:198,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:200,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:207,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:208,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts:
    - condition: (ret == 1)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    constantsTouched: []
    func_position:
      end: 211
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 211
    functionName: PacketedRead
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BIO_write
    - ReadAll
    - static_cast<uint64_t>
    - OPENSSL_free
    - GetData
    - PacketedBioAdvanceClock
    - memcpy
    - PacketedBio*::HasTimeout
    - fprintf
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_next
    - assert
    - PacketedBio*::CanRead
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int PacketedRead(BIO *bio, char *out, int outl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:215,1
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:215,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:219,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:222,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:223,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:223,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: PacketedCtrl
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - GetData
    - memcpy
    - BIO_ctrl
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_copy_next_retry
    linkageType: ''
    returnType: long
    signature: long PacketedCtrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: PacketedNew
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int PacketedNew(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:238,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 241
    functionName: PacketedFree
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - GetData
    linkageType: ''
    returnType: int
    signature: int PacketedFree(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:245,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:247,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: PacketedCallbackCtrl
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long PacketedCallbackCtrl(BIO *bio, int cmd, BIO_info_cb fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:255,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:257,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:258,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:259,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:260,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:261,1
    - Dst: BIO_meth_set_callback_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 267
    functionName: PacketedMethod
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_destroy
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_set_callback_ctrl
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *PacketedMethod(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:29,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:30,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - advance_clock_arg
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: PacketedBio
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void PacketedBio(bool advance_clock_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: HasTimeout
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasTimeout() const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: CanRead
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CanRead() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: GetData
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 4
    functionsReached:
    - BIO_get_data
    linkageType: ''
    returnType: PacketedBio
    signature: PacketedBio *GetData(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:60,1
    - Dst: const_cast<BIO*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: GetData
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 5
    functionsReached:
    - const_cast<BIO*>
    - GetData
    linkageType: ''
    returnType: PacketedBio
    signature: PacketedBio *GetData(const BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - bio
    - out
    - len
    argTypes:
    - BIO*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: ReadAll
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 1
    functionsReached:
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int ReadAll(BIO *bio, uint8_t *out, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:82,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:86,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:95,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:95,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:97,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:102,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:102,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:104,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts:
    - condition: (ret == inl)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    constantsTouched: []
    func_position:
      end: 109
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 109
    functionName: PacketedWrite
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_clear_retry_flags
    - assert
    - BIO_next
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int PacketedWrite(BIO *bio, const char *in, int inl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:112,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:113,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:117,1
    - Dst: PacketedBio*::CanRead
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:121,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:122,1
    - Dst: ReadAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:128,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:128,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:130,1
    - Dst: PacketedBio*::HasTimeout
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:137,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:138,1
    - Dst: ReadAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:144,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:144,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:146,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:149,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:150,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:151,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:152,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:153,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:154,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:155,1
    - Dst: static_cast<uint64_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:156,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:163,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:163,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:167,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:171,1
    - Dst: PacketedBioAdvanceClock
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:175,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:180,1
    - Dst: ReadAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:186,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:186,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:188,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:194,1
    - Dst: ReadAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:198,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:198,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:200,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:207,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:208,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts:
    - condition: (ret == 1)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    constantsTouched: []
    func_position:
      end: 211
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 211
    functionName: PacketedRead
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BIO_write
    - ReadAll
    - static_cast<uint64_t>
    - OPENSSL_free
    - GetData
    - PacketedBioAdvanceClock
    - memcpy
    - PacketedBio*::HasTimeout
    - fprintf
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_next
    - assert
    - PacketedBio*::CanRead
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int PacketedRead(BIO *bio, char *out, int outl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:215,1
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:215,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:219,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:222,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:223,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:223,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: PacketedCtrl
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - GetData
    - memcpy
    - BIO_ctrl
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_copy_next_retry
    linkageType: ''
    returnType: long
    signature: long PacketedCtrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: PacketedNew
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int PacketedNew(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:238,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 241
    functionName: PacketedFree
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - GetData
    linkageType: ''
    returnType: int
    signature: int PacketedFree(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:245,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:247,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: PacketedCallbackCtrl
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long PacketedCallbackCtrl(BIO *bio, int cmd, BIO_info_cb fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:255,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:257,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:258,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:259,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:260,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:261,1
    - Dst: BIO_meth_set_callback_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 267
    functionName: PacketedMethod
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_destroy
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_set_callback_ctrl
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *PacketedMethod(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:275,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:275,1
    - Dst: PacketedBio::PacketedBio
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - advance_clock
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: PacketedBioCreate
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - bssl::UniquePtr::get
    - BIO_set_data
    - PacketedBio::PacketedBio
    linkageType: ''
    returnType: bssl::UniquePtr<BIO>
    signature: bssl::UniquePtr<BIO> PacketedBioCreate(bool advance_clock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: PacketedBioGetClock
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 0
    functionsReached:
    - GetData
    linkageType: ''
    returnType: timeval
    signature: timeval PacketedBioGetClock(const BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:284,1
    - Dst: PacketedBio*::HasTimeout
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:289,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 299
    functionName: PacketedBioAdvanceClock
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/packeted_bio.cc
    functionUses: 2
    functionsReached:
    - PacketedBio*::HasTimeout
    - memset
    - GetData
    linkageType: ''
    returnType: bool
    signature: bool PacketedBioAdvanceClock(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - config
    - (flags)
    - flag
    argTypes:
    - TestConfig*
    - Flag<T>[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: FindField
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: T
    signature: T *FindField(TestConfig *config, const Flag<T> (&flags)[N], const char
      *flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - config
    - (flags)
    - flag
    argTypes:
    - TestConfig*
    - Flag<T>[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: FindField
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: T
    signature: T *FindField(TestConfig *config, const Flag<T> (&flags)[N], const char
      *flag)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FindField
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:128,1
    - Dst: FindField
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:134,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:140,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:149,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:150,1
    - Dst: std::string*::assign
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:155,1
    - Dst: FindField
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:159,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:163,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:166,1
    - Dst: uint8_t::uint8_t
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:166,1
    - Dst: EVP_DecodeBlock
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:167,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:167,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:168,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:169,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:171,1
    - Dst: std::string*::assign
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:174,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:174,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:174,1
    - Dst: FindField
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:178,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:182,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:185,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:189,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc:190,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - argc
    - argv
    - out_config
    argTypes:
    - int
    - char**
    - TestConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 195
    functionName: ParseConfig
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/test_config.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    - strcmp
    - EVP_DecodeBlock
    - atoi
    - reinterpret_cast<const uint8_t *>
    - FindField
    - uint8_t::uint8_t
    - std::unique_ptr::get
    - fprintf
    - exit
    - std::string*::assign
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool ParseConfig(int argc, char **argv, TestConfig *out_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: GetData
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 10
    functionsReached:
    - BIO_get_data
    linkageType: ''
    returnType: AsyncBio
    signature: AsyncBio *GetData(BIO *bio)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:33,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:34,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:39,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:39,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:42,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:45,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:53,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:53,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:55,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 60
    functionName: AsyncWrite
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_write
    - GetData
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int AsyncWrite(BIO *bio, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:63,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:64,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:68,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:71,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:79,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:79,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: AsyncRead
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - GetData
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_next
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int AsyncRead(BIO *bio, char *out, int outl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:89,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:92,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:93,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:93,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: AsyncCtrl
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_ctrl
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: long
    signature: long AsyncCtrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:99,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:103,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:105,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: AsyncNew
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BIO_set_init
    - memset
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int AsyncNew(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:115,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:115,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:116,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: AsyncFree
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - OPENSSL_free
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int AsyncFree(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:123,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:125,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: AsyncCallbackCtrl
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long AsyncCallbackCtrl(BIO *bio, int cmd, BIO_info_cb fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:133,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:135,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:136,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:137,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:138,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:139,1
    - Dst: BIO_meth_set_callback_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: AsyncMethod
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_destroy
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_set_callback_ctrl
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *AsyncMethod(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: GetData
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 12
    functionsReached:
    - BIO_get_data
    linkageType: ''
    returnType: AsyncBio
    signature: AsyncBio *GetData(BIO *bio)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:33,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:34,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:39,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:39,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:42,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:45,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:53,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:53,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:55,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 60
    functionName: AsyncWrite
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_write
    - GetData
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - BIO_next
    - BIO_copy_next_retry
    linkageType: ''
    returnType: int
    signature: int AsyncWrite(BIO *bio, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:63,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:64,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:68,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:71,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:79,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:79,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: AsyncRead
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - GetData
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_next
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int AsyncRead(BIO *bio, char *out, int outl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:89,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:92,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:93,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:93,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: AsyncCtrl
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_ctrl
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: long
    signature: long AsyncCtrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:99,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:103,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:105,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: AsyncNew
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BIO_set_init
    - memset
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int AsyncNew(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:115,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:115,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:116,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: AsyncFree
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - OPENSSL_free
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int AsyncFree(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:123,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:125,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: AsyncCallbackCtrl
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long AsyncCallbackCtrl(BIO *bio, int cmd, BIO_info_cb fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:133,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:135,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:136,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:137,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:138,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:139,1
    - Dst: BIO_meth_set_callback_ctrl
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: AsyncMethod
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_destroy
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_set_callback_ctrl
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *AsyncMethod(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bssl::UniquePtr<BIO>
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:149,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:149,1
    - Dst: AsyncMethod
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: AsyncBioCreate
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - AsyncMethod
    - bssl::UniquePtr<BIO>
    - BIO_new
    linkageType: ''
    returnType: bssl::UniquePtr<BIO>
    signature: bssl::UniquePtr<BIO> AsyncBioCreate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:157,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: AsyncBioCreateDatagram
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - bssl::UniquePtr::get
    - GetData
    linkageType: ''
    returnType: bssl::UniquePtr<BIO>
    signature: bssl::UniquePtr<BIO> AsyncBioCreateDatagram()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bio
    - count
    argTypes:
    - BIO*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: AsyncBioAllowRead
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - GetData
    linkageType: ''
    returnType: void
    signature: void AsyncBioAllowRead(BIO *bio, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bio
    - count
    argTypes:
    - BIO*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: AsyncBioAllowWrite
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - GetData
    linkageType: ''
    returnType: void
    signature: void AsyncBioAllowWrite(BIO *bio, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetData
      Src: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bio
    - enforce
    argTypes:
    - BIO*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: AsyncBioEnforceWriteQuota
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/async_bio.cc
    functionUses: 0
    functionsReached:
    - GetData
    linkageType: ''
    returnType: void
    signature: void AsyncBioEnforceWriteQuota(BIO *bio, bool enforce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: bssl::closesocket
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int closesocket(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: bssl::PrintSocketError
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - perror
    linkageType: ''
    returnType: void
    signature: void PrintSocketError(const char *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:71,1
    - Dst: WSAGetLastError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: bssl::PrintSocketError
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintSocketError(const char *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - program
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: bssl::Usage
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int Usage(const char *program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - index
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: bssl::TestStateExFree
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestStateExFree(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n
      \                           int index, long argl, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_ex_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - config
    argTypes:
    - SSL*
    - TestConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: bssl::SetTestConfig
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - SSL_set_ex_data
    linkageType: ''
    returnType: bool
    signature: bool SetTestConfig(SSL *ssl, const TestConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: bssl::GetTestConfig
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    linkageType: ''
    returnType: TestConfig
    signature: TestConfig *GetTestConfig(const SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_ex_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:113,1
    - Dst: std::unique_ptr<TestState>::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:113,1
    - Dst: std::unique_ptr<TestState>::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ssl
    - state
    argTypes:
    - SSL*
    - std::unique_ptr<TestState>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: bssl::SetTestState
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr<TestState>::get
    - std::unique_ptr<TestState>::release
    - SSL_set_ex_data
    linkageType: ''
    returnType: bool
    signature: bool SetTestState(SSL *ssl, std::unique_ptr<TestState> state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: bssl::GetTestState
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    linkageType: ''
    returnType: TestState
    signature: TestState *GetTestState(const SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:126,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:126,1
    - Dst: std::string::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:126,1
    - Dst: bssl::UniquePtr<X509>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:129,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:129,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: bssl::LoadCertificate
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - BIO_read_filename
    - bssl::UniquePtr::get
    - PEM_read_bio_X509
    - bssl::UniquePtr<X509>
    linkageType: ''
    returnType: bssl::UniquePtr<X509>
    signature: bssl::UniquePtr<X509> LoadCertificate(const std::string &file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:134,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:134,1
    - Dst: std::string::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:134,1
    - Dst: bssl::UniquePtr<EVP_PKEY>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:137,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:138,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: bssl::LoadPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - BIO_read_filename
    - bssl::UniquePtr::get
    - PEM_read_bio_PrivateKey
    - bssl::UniquePtr<EVP_PKEY>
    linkageType: ''
    returnType: bssl::UniquePtr<EVP_PKEY>
    signature: bssl::UniquePtr<EVP_PKEY> LoadPrivateKey(const std::string &file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: operator()(T *buf)
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void operator()(T *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:150,1
    - Dst: TestConfig*::key_file::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:152,1
    - Dst: bssl::LoadPrivateKey
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:153,1
    - Dst: TestConfig*::key_file::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:153,1
    - Dst: TestConfig*::cert_file::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:158,1
    - Dst: bssl::LoadCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:159,1
    - Dst: TestConfig*::cert_file::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ssl
    - out_x509
    - out_pkey
    argTypes:
    - SSL*
    - bssl::UniquePtr<X509>*
    - bssl::UniquePtr<EVP_PKEY>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: bssl::GetCertificate
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - TestConfig*::cert_file::empty
    - TestConfig*::cert_file::c_str
    - bssl::LoadCertificate
    - bssl::LoadPrivateKey
    - TestConfig*::key_file::c_str
    - TestConfig*::key_file::empty
    linkageType: ''
    returnType: bool
    signature: "bool GetCertificate(SSL *ssl, bssl::UniquePtr<X509> *out_x509,\n                           bssl::UniquePtr<EVP_PKEY>
      *out_pkey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:170,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:174,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:174,1
    - Dst: SSL_use_certificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:178,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 183
    functionName: bssl::InstallCertificate
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - SSL_use_certificate
    - bssl::UniquePtr::get
    - SSL_use_PrivateKey
    - bssl::GetCertificate
    linkageType: ''
    returnType: bool
    signature: bool InstallCertificate(SSL *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:186,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:186,1
    - Dst: bssl::GetCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:192,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:202,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ssl
    - out_x509
    - out_pkey
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 205
    functionName: bssl::ClientCertCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - bssl::GetTestState
    - bssl::UniquePtr::release
    - bssl::GetCertificate
    linkageType: ''
    returnType: int
    signature: int ClientCertCallback(SSL *ssl, X509 **out_x509, EVP_PKEY **out_pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - store_ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: bssl::VerifySucceed
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VerifySucceed(X509_STORE_CTX *store_ctx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_set_error
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - store_ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: bssl::VerifyFail
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_set_error
    linkageType: ''
    returnType: int
    signature: int VerifyFail(X509_STORE_CTX *store_ctx, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:218,1
    - Dst: TestConfig*::advertise_npn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:219,1
    - Dst: TestConfig*::advertise_npn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:223,1
    - Dst: TestConfig*::advertise_npn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ssl
    - out
    - out_len
    - arg
    argTypes:
    - SSL*
    - uint8_t**
    - unsigned int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: bssl::NextProtosAdvertisedCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - TestConfig*::advertise_npn::size
    - TestConfig*::advertise_npn::data
    - TestConfig*::advertise_npn::empty
    linkageType: ''
    returnType: int
    signature: "int NextProtosAdvertisedCallback(SSL *ssl, const uint8_t **out,\n
      \                                       unsigned int *out_len, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:230,1
    - Dst: TestConfig*::select_next_proto::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:231,1
    - Dst: TestConfig*::select_next_proto::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:235,1
    - Dst: TestConfig*::select_next_proto::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - uint8_t**
    - uint8_t*
    - uint8_t*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: bssl::NextProtoSelectCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - TestConfig*::select_next_proto::empty
    - TestConfig*::select_next_proto::data
    - TestConfig*::select_next_proto::size
    linkageType: ''
    returnType: int
    signature: "int NextProtoSelectCallback(SSL* ssl, uint8_t** out, uint8_t* outlen,\n
      \                                  const uint8_t* in, unsigned inlen, void*
      arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:242,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:243,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:244,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:247,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:249,1
    - Dst: TestConfig*::expected_advertised_alpn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:254,1
    - Dst: TestConfig*::expected_advertised_alpn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:255,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:256,1
    - Dst: TestConfig*::expected_advertised_alpn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:256,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:258,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:259,1
    - Dst: TestConfig*::select_alpn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:262,1
    - Dst: TestConfig*::select_alpn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - uint8_t**
    - uint8_t*
    - uint8_t*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 265
    functionName: bssl::AlpnSelectCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - memcmp
    - TestConfig*::select_alpn::size
    - TestConfig*::expected_advertised_alpn::empty
    - bssl::GetTestState
    - exit
    - TestConfig*::expected_advertised_alpn::data
    - TestConfig*::select_alpn::data
    - TestConfig*::expected_advertised_alpn::size
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int AlpnSelectCallback(SSL* ssl, const uint8_t** out, uint8_t* outlen,\n
      \                             const uint8_t* in, unsigned inlen, void* arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:271,1
    - Dst: TestConfig*::psk_identity::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:273,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:275,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:279,1
    - Dst: TestConfig*::psk_identity::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:279,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:280,1
    - Dst: TestConfig*::psk_identity::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:285,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:286,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:287,1
    - Dst: BUF_strlcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:291,1
    - Dst: TestConfig*::psk_identity::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:291,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:293,1
    - Dst: TestConfig*::psk::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:293,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:293,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - ssl
    - hint
    - out_identity
    - max_identity_len
    - out_psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 295
    functionName: bssl::PskClientCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - BUF_strlcpy
    - strcmp
    - TestConfig*::psk_identity::size
    - TestConfig*::psk::size
    - memcpy
    - TestConfig*::psk_identity::empty
    - TestConfig*::psk::data
    - TestConfig*::psk_identity::c_str
    - fprintf
    linkageType: ''
    returnType: unsigned
    signature: "unsigned PskClientCallback(SSL *ssl, const char *hint,\n                                  char
      *out_identity,\n                                  unsigned max_identity_len,\n
      \                                 uint8_t *out_psk, unsigned max_psk_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:299,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:301,1
    - Dst: TestConfig*::psk_identity::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:301,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:302,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:306,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:307,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:311,1
    - Dst: TestConfig*::psk::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:311,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:311,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ssl
    - identity
    - out_psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 313
    functionName: bssl::PskServerCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - strcmp
    - TestConfig*::psk::size
    - memcpy
    - TestConfig*::psk::data
    - TestConfig*::psk_identity::c_str
    - fprintf
    linkageType: ''
    returnType: unsigned
    signature: "unsigned PskServerCallback(SSL *ssl, const char *identity,\n                                  uint8_t
      *out_psk, unsigned max_psk_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:316,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:321,1
    - Dst: TestConfig*::expected_certificate_types::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:322,1
    - Dst: SSL_get0_certificate_types
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:325,1
    - Dst: TestConfig*::expected_certificate_types::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:326,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:327,1
    - Dst: TestConfig*::expected_certificate_types::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:328,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:330,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:341,1
    - Dst: bssl::InstallCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:344,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 348
    functionName: bssl::CertCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - TestConfig*::expected_certificate_types::data
    - TestConfig*::expected_certificate_types::size
    - SSL_is_server
    - memcmp
    - bssl::InstallCertificate
    - bssl::GetTestState
    - TestConfig*::expected_certificate_types::empty
    - SSL_get0_certificate_types
    - fprintf
    linkageType: ''
    returnType: int
    signature: int CertCallback(SSL *ssl, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:352,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:353,1
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:356,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:358,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:361,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ssl
    - type
    - val
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 364
    functionName: bssl::InfoCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - bssl::GetTestState
    - abort
    - fprintf
    linkageType: ''
    returnType: void
    signature: void InfoCallback(const SSL *ssl, int type, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:367,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:368,1
    - Dst: reset
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ssl
    - session
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: bssl::NewSessionCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestState
    - reset
    linkageType: ''
    returnType: int
    signature: int NewSessionCallback(SSL *ssl, SSL_SESSION *session)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:376,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:377,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:381,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:388,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:389,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:390,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:394,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:394,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:395,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:395,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - ssl
    - key_name
    - iv
    - ctx
    - hmac_ctx
    - encrypt
    argTypes:
    - SSL*
    - uint8_t*
    - uint8_t*
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 372
    functionDepth: 5
    functionLinenumber: 372
    functionLinenumberEnd: 403
    functionName: bssl::TicketKeyCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - EVP_aes_128_cbc
    - HMAC_Init_ex
    - memcmp
    - RAND_bytes
    - memcpy
    - bssl::GetTestState
    - EVP_sha256
    - EVP_CipherInit_ex
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int TicketKeyCallback(SSL *ssl, uint8_t *key_name, uint8_t *iv,\n
      \                            EVP_CIPHER_CTX *ctx, HMAC_CTX *hmac_ctx,\n                             int
      encrypt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:419,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:422,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:425,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - ssl
    - extension_value
    - out
    - out_len
    - out_alert_value
    - add_arg
    argTypes:
    - SSL*
    - unsigned
    - uint8_t**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 433
    functionName: bssl::CustomExtensionAddCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - reinterpret_cast<const uint8_t*>
    - abort
    linkageType: ''
    returnType: int
    signature: "int CustomExtensionAddCallback(SSL *ssl, unsigned extension_value,\n
      \                                     const uint8_t **out, size_t *out_len,\n
      \                                     int *out_alert_value, void *add_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:439,1
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - ssl
    - extension_value
    - out
    - add_arg
    argTypes:
    - SSL*
    - unsigned
    - uint8_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 442
    functionName: bssl::CustomExtensionFreeCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - abort
    - reinterpret_cast<const uint8_t *>
    linkageType: ''
    returnType: void
    signature: "void CustomExtensionFreeCallback(SSL *ssl, unsigned extension_value,\n
      \                                       const uint8_t *out, void *add_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:450,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 6
    argNames:
    - ssl
    - extension_value
    - contents
    - contents_len
    - out_alert_value
    - parse_arg
    argTypes:
    - SSL*
    - unsigned
    - uint8_t*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 460
    functionName: bssl::CustomExtensionParseCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - memcmp
    - abort
    linkageType: ''
    returnType: int
    signature: "int CustomExtensionParseCallback(SSL *ssl, unsigned extension_value,\n
      \                                       const uint8_t *contents,\n                                        size_t
      contents_len,\n                                        int *out_alert_value,
      void *parse_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:464,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:465,1
    - Dst: std::string
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:467,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:468,1
    - Dst: TestConfig*::expected_server_name::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ssl
    - out_alert
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 474
    functionName: bssl::ServerNameCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - std::string
    - TestConfig*::expected_server_name::c_str
    - SSL_get_servername
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ServerNameCallback(SSL *ssl, int *out_alert, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:479,1
    - Dst: bssl::PrintSocketError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:481,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:485,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:486,1
    - Dst: bssl::PrintSocketError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:487,1
    - Dst: bssl::closesocket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:488,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:492,1
    - Dst: htons
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:494,1
    - Dst: inet_pton
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:495,1
    - Dst: bssl::PrintSocketError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:496,1
    - Dst: bssl::closesocket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:497,1
    - Dst: connect
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:500,1
    - Dst: reinterpret_cast<const sockaddr*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:500,1
    - Dst: bssl::PrintSocketError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:502,1
    - Dst: bssl::closesocket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 507
    functionName: bssl::Connect
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - inet_pton
    - reinterpret_cast<const char*>
    - bssl::PrintSocketError
    - socket
    - memset
    - htons
    - setsockopt
    - bssl::closesocket
    - reinterpret_cast<const sockaddr*>
    - connect
    linkageType: ''
    returnType: int
    signature: int Connect(uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: bssl::SocketCloser::SocketCloser
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SocketCloser(int sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:517,1
    - Dst: shutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:519,1
    - Dst: recv
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:523,1
    - Dst: bssl::closesocket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 528
    functionName: ~SocketCloser()
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - shutdown
    - bssl::closesocket
    - recv
    linkageType: ''
    returnType: void
    signature: void ~SocketCloser()
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:536,1
    - Dst: DTLS_method
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:537,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:537,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:542,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:542,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:547,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:547,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:553,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:553,1
    - Dst: TestConfig*::cipher::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:559,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:561,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:561,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:563,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:563,1
    - Dst: std::string::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:563,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:571,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:572,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:573,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:575,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:576,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:577,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:583,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:590,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:591,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:592,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:593,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:596,1
    - Dst: DH_get_2048_256
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:598,1
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:603,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:603,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:603,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:607,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:607,1
    - Dst: SSL_CTX_set_client_cert_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:610,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:610,1
    - Dst: SSL_CTX_set_npn_advertised_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:613,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:614,1
    - Dst: TestConfig*::select_next_proto::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:615,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:616,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:616,1
    - Dst: TestConfig*::select_alpn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:620,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:621,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:621,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:624,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:624,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:625,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:625,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:628,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:628,1
    - Dst: SSL_CTX_add_client_custom_ext
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:632,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:633,1
    - Dst: SSL_CTX_add_server_custom_ext
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:640,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:641,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:648,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:648,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:650,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:650,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:654,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:654,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:657,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:657,1
    - Dst: TestConfig*::expected_server_name::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:662,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:663,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:663,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 1
    argNames:
    - config
    argTypes:
    - TestConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 534
    functionDepth: 5
    functionLinenumber: 534
    functionLinenumberEnd: 667
    functionName: bssl::SetupCtx
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - SSL_CTX_set_npn_advertised_cb
    - SSL_CTX_set_alpn_select_cb
    - SSL_CTX_set_info_callback
    - bssl::UniquePtr::get
    - TestConfig*::expected_server_name::empty
    - DH_free
    - BN_hex2bn
    - SSL_CTX_add_client_custom_ext
    - SSL_CTX_sess_set_new_cb
    - DH_get_2048_256
    - SSL_CTX_set_session_id_context
    - BN_free
    - DH_set0_pqg
    - SSL_CTX_add_server_custom_ext
    - TLS_method
    - SSL_CTX_set_client_cert_cb
    - TestConfig*::select_alpn::empty
    - TestConfig*::select_next_proto::empty
    - TestConfig*::cipher::empty
    - BN_new
    - SSL_CTX_set_max_proto_version
    - std::string::c_str
    - SSL_CTX_set_tlsext_ticket_key_cb
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_CTX_set_client_CA_list
    - DTLS_method
    - BN_set_word
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_set_tmp_dh
    - SSL_CTX_set_next_proto_select_cb
    - SSL_CTX_set_options
    - SSL_CTX_set_cert_verify_callback
    - DH_new
    - SSL_CTX_new
    - SSL_CTX_set_security_level
    linkageType: ''
    returnType: bssl::UniquePtr<SSL_CTX>
    signature: bssl::UniquePtr<SSL_CTX> SetupCtx(const TestConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:678,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:679,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:679,1
    - Dst: PacketedBioAdvanceClock
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:682,1
    - Dst: AsyncBioEnforceWriteQuota
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:685,1
    - Dst: DTLSv1_handle_timeout
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:686,1
    - Dst: AsyncBioEnforceWriteQuota
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:687,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:690,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:698,1
    - Dst: AsyncBioAllowRead
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:700,1
    - Dst: AsyncBioAllowWrite
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - ssl
    - ret
    argTypes:
    - SSL*
    - int
    assertStmts:
    - condition: (GetTestConfig(ssl)->async)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    constantsTouched: []
    func_position:
      end: 711
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 711
    functionName: bssl::RetryAsync
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - AsyncBioEnforceWriteQuota
    - SSL_get_error
    - AsyncBioAllowWrite
    - PacketedBioAdvanceClock
    - DTLSv1_handle_timeout
    - bssl::GetTestState
    - assert
    - AsyncBioAllowRead
    - fprintf
    linkageType: ''
    returnType: bool
    signature: bool RetryAsync(SSL *ssl, int ret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:716,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:717,1
    - Dst: AsyncBioEnforceWriteQuota
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:724,1
    - Dst: SSL_peek
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:726,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:727,1
    - Dst: AsyncBioEnforceWriteQuota
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:729,1
    - Dst: bssl::RetryAsync
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:731,1
    - Dst: static_cast<size_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:734,1
    - Dst: uint8_t::uint8_t
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:734,1
    - Dst: SSL_peek
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:737,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:737,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:739,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:739,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:740,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:745,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:745,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:747,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:747,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:748,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ssl
    - out
    - max_out
    argTypes:
    - SSL*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 754
    functionName: bssl::DoRead
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - AsyncBioEnforceWriteQuota
    - static_cast<size_t>
    - memcmp
    - SSL_read
    - bssl::GetTestState
    - uint8_t::uint8_t
    - std::unique_ptr::get
    - SSL_peek
    - bssl::RetryAsync
    - fprintf
    linkageType: ''
    returnType: int
    signature: int DoRead(SSL *ssl, uint8_t *out, size_t max_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:759,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:762,1
    - Dst: bssl::RetryAsync
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:767,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - in
    - in_len
    argTypes:
    - SSL*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 758
    functionDepth: 3
    functionLinenumber: 758
    functionLinenumberEnd: 769
    functionName: bssl::WriteAll
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - SSL_write
    - bssl::RetryAsync
    linkageType: ''
    returnType: int
    signature: int WriteAll(SSL *ssl, const uint8_t *in, size_t in_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:774,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:777,1
    - Dst: bssl::RetryAsync
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: bssl::DoShutdown
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - SSL_shutdown
    - bssl::RetryAsync
    linkageType: ''
    returnType: int
    signature: int DoShutdown(SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:783,1
    - Dst: SSL_is_dtls
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 788
    functionName: bssl::GetProtocolVersion
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - SSL_version
    - SSL_is_dtls
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t GetProtocolVersion(const SSL *ssl)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:794,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:796,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:797,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:802,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:803,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:804,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:808,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:809,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:816,1
    - Dst: bssl::GetProtocolVersion
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:818,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:819,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:820,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:822,1
    - Dst: TestConfig*::expected_server_name::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:827,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:829,1
    - Dst: std::string
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:831,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:832,1
    - Dst: TestConfig*::expected_server_name::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:833,1
    - Dst: TestConfig*::expected_next_proto::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:838,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:841,1
    - Dst: TestConfig*::expected_next_proto::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:842,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:843,1
    - Dst: TestConfig*::expected_next_proto::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:843,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:845,1
    - Dst: TestConfig*::expected_alpn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:850,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:853,1
    - Dst: TestConfig*::expected_alpn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:854,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:855,1
    - Dst: TestConfig*::expected_alpn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:855,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:857,1
    - Dst: SSL_get_extms_support
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:863,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:864,1
    - Dst: SSL_get_verify_result
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:874,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:875,1
    - Dst: TestConfig*::psk::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:880,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:881,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:882,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:886,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:887,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 2
    argNames:
    - ssl
    - is_resume
    argTypes:
    - SSL*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 893
    functionName: bssl::CheckHandshakeProperties
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - SSL_get_verify_result
    - SSL_get0_next_proto_negotiated
    - TestConfig*::expected_next_proto::data
    - TestConfig*::expected_server_name::empty
    - SSL_get0_alpn_selected
    - SSL_get_current_cipher
    - TestConfig*::expected_next_proto::empty
    - SSL_get_peer_cert_chain
    - fprintf
    - TestConfig*::psk::empty
    - memcmp
    - SSL_get_peer_certificate
    - bssl::GetTestState
    - SSL_get_servername
    - TestConfig*::expected_alpn::empty
    - TestConfig*::expected_server_name::c_str
    - TestConfig*::expected_alpn::size
    - SSL_session_reused
    - bssl::GetProtocolVersion
    - SSL_get_extms_support
    - std::string
    - TestConfig*::expected_next_proto::size
    - TestConfig*::expected_alpn::data
    linkageType: ''
    returnType: bool
    signature: bool CheckHandshakeProperties(SSL *ssl, bool is_resume)
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: bssl::SetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:907,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:907,1
    - Dst: bssl::SetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:908,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:908,1
    - Dst: std::unique_ptr<TestState>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:908,1
    - Dst: TestState::TestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:908,1
    - Dst: SSL_set_mode
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:913,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:913,1
    - Dst: bssl::InstallCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:919,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:919,1
    - Dst: SSL_set_cert_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:922,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:922,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:924,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:924,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:928,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:928,1
    - Dst: SSL_set_mode
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:931,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:931,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:934,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:934,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:937,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:937,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:940,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:940,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:943,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:943,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:946,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:946,1
    - Dst: TestConfig*::host_name::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:948,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:949,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:949,1
    - Dst: TestConfig*::host_name::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:949,1
    - Dst: TestConfig*::advertise_alpn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:952,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:953,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:953,1
    - Dst: TestConfig*::advertise_alpn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:954,1
    - Dst: TestConfig*::advertise_alpn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:955,1
    - Dst: TestConfig*::psk::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:958,1
    - Dst: SSL_set_psk_client_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:959,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:959,1
    - Dst: SSL_set_psk_server_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:960,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:960,1
    - Dst: TestConfig*::psk_identity::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:962,1
    - Dst: SSL_use_psk_identity_hint
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:963,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:963,1
    - Dst: TestConfig*::psk_identity::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:963,1
    - Dst: TestConfig*::srtp_profiles::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:966,1
    - Dst: SSL_set_tlsext_use_srtp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:967,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:967,1
    - Dst: TestConfig*::srtp_profiles::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:967,1
    - Dst: SSL_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:971,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:971,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:975,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:975,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:979,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:979,1
    - Dst: SSL_set_mtu
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:980,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:980,1
    - Dst: SSL_set_quiet_shutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:986,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:986,1
    - Dst: SSL_set1_curves
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:990,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:990,1
    - Dst: SSL_set1_curves
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:998,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:998,1
    - Dst: OPENSSL_ARRAY_SIZE
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:999,1
    - Dst: SSL_set_max_cert_list
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1004,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1004,1
    - Dst: SSL_set_mode
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1008,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1008,1
    - Dst: bssl::Connect
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1011,1
    - Dst: PacketedBioCreate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1022,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1026,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1026,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1026,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1027,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1027,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1027,1
    - Dst: std::move
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1028,1
    - Dst: AsyncBioCreateDatagram
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1032,1
    - Dst: AsyncBioCreate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1032,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1036,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1036,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1036,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1037,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1037,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1037,1
    - Dst: std::move
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1038,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1040,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1040,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1040,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1040,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1041,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1045,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1045,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1054,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1054,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1055,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1063,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1063,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1065,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1065,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1070,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1070,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1072,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1072,1
    - Dst: bssl::RetryAsync
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1074,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1074,1
    - Dst: bssl::CheckHandshakeProperties
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1076,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1076,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1082,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1082,1
    - Dst: static_cast<size_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1087,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1088,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1089,1
    - Dst: std::vector::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1089,1
    - Dst: std::vector::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1089,1
    - Dst: TestConfig*::export_label::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1090,1
    - Dst: TestConfig*::export_label::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1090,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1091,1
    - Dst: TestConfig*::export_context::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1091,1
    - Dst: TestConfig*::export_context::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1092,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1093,1
    - Dst: bssl::WriteAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1096,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1096,1
    - Dst: std::vector::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1096,1
    - Dst: std::vector::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1096,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1103,1
    - Dst: uint8_t::uint8_t
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1109,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1110,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1110,1
    - Dst: OPENSSL_ARRAY_SIZE
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1113,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1116,1
    - Dst: bssl::WriteAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1119,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1119,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1119,1
    - Dst: bssl::WriteAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1125,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1125,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1125,1
    - Dst: uint8_t::uint8_t
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1133,1
    - Dst: bssl::DoRead
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1137,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1137,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1137,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1138,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1138,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1142,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1149,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1156,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1162,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1162,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1163,1
    - Dst: bssl::WriteAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1170,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1170,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1170,1
    - Dst: bssl::GetProtocolVersion
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1180,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1180,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1181,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1181,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1182,1
    - Dst: bssl::GetProtocolVersion
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1186,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1186,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1189,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1189,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1190,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1192,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1192,1
    - Dst: std::move
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1198,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1198,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1198,1
    - Dst: bssl::DoShutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1201,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1201,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1208,1
    - Dst: bssl::DoShutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1211,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1211,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1215,1
    - Dst: SSL_total_renegotiations
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1219,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1219,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1221,1
    - Dst: SSL_total_renegotiations
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1223,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1223,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 232
    argCount: 5
    argNames:
    - out_session
    - ssl_ctx
    - config
    - is_resume
    - session
    argTypes:
    - bssl::UniquePtr<SSL_SESSION>*
    - SSL_CTX*
    - TestConfig*
    - bool
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 899
    functionDepth: 5
    functionLinenumber: 899
    functionLinenumberEnd: 1228
    functionName: bssl::DoExchange
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::DoShutdown
    - SSL_set_session
    - AsyncBioCreateDatagram
    - reinterpret_cast<const uint8_t*>
    - TestConfig*::export_label::data
    - SSL_export_keying_material
    - std::vector::data
    - TestConfig*::advertise_alpn::empty
    - bssl::UniquePtr::get
    - TestConfig*::srtp_profiles::c_str
    - TestConfig*::psk_identity::empty
    - SSL_set_connect_state
    - SSL_get_current_cipher
    - SSL_set_accept_state
    - TestConfig*::export_context::size
    - bssl::InstallCertificate
    - SSL_set_max_proto_version
    - fprintf
    - TestState::TestState
    - SSL_accept
    - SSL_set_cert_cb
    - SSL_set_tlsext_host_name
    - SSL_set_psk_server_callback
    - TestConfig*::psk::empty
    - SSL_set_quiet_shutdown
    - SSL_connect
    - std::vector::size
    - TestConfig*::export_context::data
    - bssl::SetTestState
    - bssl::GetTestState
    - uint8_t::uint8_t
    - TestConfig*::srtp_profiles::empty
    - bssl::Connect
    - bssl::CheckHandshakeProperties
    - BIO_push
    - bssl::RetryAsync
    - bssl::DoRead
    - AsyncBioCreate
    - TestConfig*::host_name::c_str
    - OPENSSL_ARRAY_SIZE
    - SSL_set_mtu
    - SSL_set_bio
    - std::move
    - SSL_set_min_proto_version
    - SSL_set_verify
    - SSL_set_mode
    - bssl::UniquePtr::release
    - std::unique_ptr::get
    - TestConfig*::advertise_alpn::size
    - SSL_set_alpn_protos
    - SSL_set_tlsext_use_srtp
    - SSL_total_renegotiations
    - bssl::GetProtocolVersion
    - TestConfig*::psk_identity::c_str
    - TestConfig*::host_name::empty
    - bssl::WriteAll
    - SSL_set1_curves
    - SSL_set_max_cert_list
    - std::unique_ptr<TestState>
    - static_cast<size_t>
    - SSL_set_psk_client_callback
    - SSL_get_error
    - SSL_set_options
    - PacketedBioCreate
    - reinterpret_cast<const uint8_t *>
    - TestConfig*::advertise_alpn::data
    - memset
    - bssl::SetTestConfig
    - SSL_use_psk_identity_hint
    - TestConfig*::export_label::size
    linkageType: ''
    returnType: bool
    signature: "bool DoExchange(bssl::UniquePtr<SSL_SESSION> *out_session,\n                       SSL_CTX
      *ssl_ctx, const TestConfig *config,\n                       bool is_resume,
      SSL_SESSION *session)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1232
    functionName: ~StderrDelimiter()
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ~StderrDelimiter()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1242,1
    - Dst: WSAStartup
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1244,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1246,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1250,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1254,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1257,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1258,1
    - Dst: SSL_get_ex_new_index
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1259,1
    - Dst: SSL_get_ex_new_index
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1260,1
    - Dst: ParseConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1266,1
    - Dst: bssl::Usage
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1267,1
    - Dst: bssl::SetupCtx
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1270,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1272,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1280,1
    - Dst: std::move
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1284,1
    - Dst: bssl::DoExchange
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1285,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1285,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1286,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1287,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1288,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1235
    functionDepth: 6
    functionLinenumber: 1235
    functionLinenumberEnd: 1294
    functionName: bssl::Main
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::DoExchange
    - signal
    - std::move
    - SSL_get_ex_new_index
    - bssl::Usage
    - OPENSSL_init_crypto
    - OPENSSL_init_ssl
    - bssl::SetupCtx
    - ERR_print_errors_fp
    - bssl::UniquePtr::get
    - WSAStartup
    - ParseConfig
    - MAKEWORD
    - fprintf
    linkageType: ''
    returnType: int
    signature: int Main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: bssl::closesocket
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int closesocket(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: bssl::PrintSocketError
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - perror
    linkageType: ''
    returnType: void
    signature: void PrintSocketError(const char *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:71,1
    - Dst: WSAGetLastError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: bssl::PrintSocketError
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - WSAGetLastError
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintSocketError(const char *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - program
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: bssl::Usage
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int Usage(const char *program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - index
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: bssl::TestStateExFree
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestStateExFree(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n
      \                           int index, long argl, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_ex_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - config
    argTypes:
    - SSL*
    - TestConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: bssl::SetTestConfig
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - SSL_set_ex_data
    linkageType: ''
    returnType: bool
    signature: bool SetTestConfig(SSL *ssl, const TestConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: bssl::GetTestConfig
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 17
    functionsReached:
    - SSL_get_ex_data
    linkageType: ''
    returnType: TestConfig
    signature: TestConfig *GetTestConfig(const SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_ex_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:113,1
    - Dst: std::unique_ptr<TestState>::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:113,1
    - Dst: std::unique_ptr<TestState>::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ssl
    - state
    argTypes:
    - SSL*
    - std::unique_ptr<TestState>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: bssl::SetTestState
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - std::unique_ptr<TestState>::get
    - std::unique_ptr<TestState>::release
    - SSL_set_ex_data
    linkageType: ''
    returnType: bool
    signature: bool SetTestState(SSL *ssl, std::unique_ptr<TestState> state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: bssl::GetTestState
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 10
    functionsReached:
    - SSL_get_ex_data
    linkageType: ''
    returnType: TestState
    signature: TestState *GetTestState(const SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:126,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:126,1
    - Dst: std::string::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:126,1
    - Dst: bssl::UniquePtr<X509>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:129,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:129,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: bssl::LoadCertificate
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - BIO_read_filename
    - bssl::UniquePtr::get
    - PEM_read_bio_X509
    - bssl::UniquePtr<X509>
    linkageType: ''
    returnType: bssl::UniquePtr<X509>
    signature: bssl::UniquePtr<X509> LoadCertificate(const std::string &file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:134,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:134,1
    - Dst: std::string::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:134,1
    - Dst: bssl::UniquePtr<EVP_PKEY>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:137,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:138,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: bssl::LoadPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - BIO_read_filename
    - bssl::UniquePtr::get
    - PEM_read_bio_PrivateKey
    - bssl::UniquePtr<EVP_PKEY>
    linkageType: ''
    returnType: bssl::UniquePtr<EVP_PKEY>
    signature: bssl::UniquePtr<EVP_PKEY> LoadPrivateKey(const std::string &file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: operator()(T *buf)
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void operator()(T *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:150,1
    - Dst: TestConfig*::key_file::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:152,1
    - Dst: bssl::LoadPrivateKey
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:153,1
    - Dst: TestConfig*::key_file::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:153,1
    - Dst: TestConfig*::cert_file::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:158,1
    - Dst: bssl::LoadCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:159,1
    - Dst: TestConfig*::cert_file::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ssl
    - out_x509
    - out_pkey
    argTypes:
    - SSL*
    - bssl::UniquePtr<X509>*
    - bssl::UniquePtr<EVP_PKEY>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: bssl::GetCertificate
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 2
    functionsReached:
    - bssl::GetTestConfig
    - TestConfig*::cert_file::empty
    - TestConfig*::cert_file::c_str
    - bssl::LoadCertificate
    - bssl::LoadPrivateKey
    - TestConfig*::key_file::c_str
    - TestConfig*::key_file::empty
    linkageType: ''
    returnType: bool
    signature: "bool GetCertificate(SSL *ssl, bssl::UniquePtr<X509> *out_x509,\n                           bssl::UniquePtr<EVP_PKEY>
      *out_pkey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:170,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:174,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:174,1
    - Dst: SSL_use_certificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:178,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 183
    functionName: bssl::InstallCertificate
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 2
    functionsReached:
    - SSL_use_certificate
    - bssl::UniquePtr::get
    - SSL_use_PrivateKey
    - bssl::GetCertificate
    linkageType: ''
    returnType: bool
    signature: bool InstallCertificate(SSL *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:186,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:186,1
    - Dst: bssl::GetCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:192,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:202,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ssl
    - out_x509
    - out_pkey
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 205
    functionName: bssl::ClientCertCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - bssl::GetTestState
    - bssl::UniquePtr::release
    - bssl::GetCertificate
    linkageType: ''
    returnType: int
    signature: int ClientCertCallback(SSL *ssl, X509 **out_x509, EVP_PKEY **out_pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - store_ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: bssl::VerifySucceed
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VerifySucceed(X509_STORE_CTX *store_ctx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_set_error
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - store_ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: bssl::VerifyFail
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_set_error
    linkageType: ''
    returnType: int
    signature: int VerifyFail(X509_STORE_CTX *store_ctx, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:218,1
    - Dst: TestConfig*::advertise_npn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:219,1
    - Dst: TestConfig*::advertise_npn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:223,1
    - Dst: TestConfig*::advertise_npn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ssl
    - out
    - out_len
    - arg
    argTypes:
    - SSL*
    - uint8_t**
    - unsigned int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: bssl::NextProtosAdvertisedCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - TestConfig*::advertise_npn::size
    - TestConfig*::advertise_npn::data
    - TestConfig*::advertise_npn::empty
    linkageType: ''
    returnType: int
    signature: "int NextProtosAdvertisedCallback(SSL *ssl, const uint8_t **out,\n
      \                                       unsigned int *out_len, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:230,1
    - Dst: TestConfig*::select_next_proto::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:231,1
    - Dst: TestConfig*::select_next_proto::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:235,1
    - Dst: TestConfig*::select_next_proto::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - uint8_t**
    - uint8_t*
    - uint8_t*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: bssl::NextProtoSelectCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - TestConfig*::select_next_proto::empty
    - TestConfig*::select_next_proto::data
    - TestConfig*::select_next_proto::size
    linkageType: ''
    returnType: int
    signature: "int NextProtoSelectCallback(SSL* ssl, uint8_t** out, uint8_t* outlen,\n
      \                                  const uint8_t* in, unsigned inlen, void*
      arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:242,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:243,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:244,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:247,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:249,1
    - Dst: TestConfig*::expected_advertised_alpn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:254,1
    - Dst: TestConfig*::expected_advertised_alpn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:255,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:256,1
    - Dst: TestConfig*::expected_advertised_alpn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:256,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:258,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:259,1
    - Dst: TestConfig*::select_alpn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:262,1
    - Dst: TestConfig*::select_alpn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - uint8_t**
    - uint8_t*
    - uint8_t*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 265
    functionName: bssl::AlpnSelectCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - memcmp
    - TestConfig*::select_alpn::size
    - TestConfig*::expected_advertised_alpn::empty
    - bssl::GetTestState
    - exit
    - TestConfig*::expected_advertised_alpn::data
    - TestConfig*::select_alpn::data
    - TestConfig*::expected_advertised_alpn::size
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int AlpnSelectCallback(SSL* ssl, const uint8_t** out, uint8_t* outlen,\n
      \                             const uint8_t* in, unsigned inlen, void* arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:271,1
    - Dst: TestConfig*::psk_identity::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:273,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:275,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:279,1
    - Dst: TestConfig*::psk_identity::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:279,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:280,1
    - Dst: TestConfig*::psk_identity::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:285,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:286,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:287,1
    - Dst: BUF_strlcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:291,1
    - Dst: TestConfig*::psk_identity::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:291,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:293,1
    - Dst: TestConfig*::psk::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:293,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:293,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - ssl
    - hint
    - out_identity
    - max_identity_len
    - out_psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 295
    functionName: bssl::PskClientCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - BUF_strlcpy
    - strcmp
    - TestConfig*::psk_identity::size
    - TestConfig*::psk::size
    - memcpy
    - TestConfig*::psk_identity::empty
    - TestConfig*::psk::data
    - TestConfig*::psk_identity::c_str
    - fprintf
    linkageType: ''
    returnType: unsigned
    signature: "unsigned PskClientCallback(SSL *ssl, const char *hint,\n                                  char
      *out_identity,\n                                  unsigned max_identity_len,\n
      \                                 uint8_t *out_psk, unsigned max_psk_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:299,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:301,1
    - Dst: TestConfig*::psk_identity::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:301,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:302,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:306,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:307,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:311,1
    - Dst: TestConfig*::psk::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:311,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:311,1
    - Dst: TestConfig*::psk::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ssl
    - identity
    - out_psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 313
    functionName: bssl::PskServerCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - strcmp
    - TestConfig*::psk::size
    - memcpy
    - TestConfig*::psk::data
    - TestConfig*::psk_identity::c_str
    - fprintf
    linkageType: ''
    returnType: unsigned
    signature: "unsigned PskServerCallback(SSL *ssl, const char *identity,\n                                  uint8_t
      *out_psk, unsigned max_psk_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:316,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:321,1
    - Dst: TestConfig*::expected_certificate_types::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:322,1
    - Dst: SSL_get0_certificate_types
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:325,1
    - Dst: TestConfig*::expected_certificate_types::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:326,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:327,1
    - Dst: TestConfig*::expected_certificate_types::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:328,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:330,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:341,1
    - Dst: bssl::InstallCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:344,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 348
    functionName: bssl::CertCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - TestConfig*::expected_certificate_types::data
    - TestConfig*::expected_certificate_types::size
    - SSL_is_server
    - memcmp
    - bssl::InstallCertificate
    - bssl::GetTestState
    - TestConfig*::expected_certificate_types::empty
    - SSL_get0_certificate_types
    - fprintf
    linkageType: ''
    returnType: int
    signature: int CertCallback(SSL *ssl, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:352,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:353,1
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:356,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:358,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:361,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ssl
    - type
    - val
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 364
    functionName: bssl::InfoCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - bssl::GetTestState
    - abort
    - fprintf
    linkageType: ''
    returnType: void
    signature: void InfoCallback(const SSL *ssl, int type, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:367,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:368,1
    - Dst: reset
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ssl
    - session
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: bssl::NewSessionCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestState
    - reset
    linkageType: ''
    returnType: int
    signature: int NewSessionCallback(SSL *ssl, SSL_SESSION *session)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:376,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:377,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:381,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:388,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:389,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:390,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:394,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:394,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:395,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:395,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - ssl
    - key_name
    - iv
    - ctx
    - hmac_ctx
    - encrypt
    argTypes:
    - SSL*
    - uint8_t*
    - uint8_t*
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 372
    functionDepth: 5
    functionLinenumber: 372
    functionLinenumberEnd: 403
    functionName: bssl::TicketKeyCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - EVP_aes_128_cbc
    - HMAC_Init_ex
    - memcmp
    - RAND_bytes
    - memcpy
    - bssl::GetTestState
    - EVP_sha256
    - EVP_CipherInit_ex
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int TicketKeyCallback(SSL *ssl, uint8_t *key_name, uint8_t *iv,\n
      \                            EVP_CIPHER_CTX *ctx, HMAC_CTX *hmac_ctx,\n                             int
      encrypt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:419,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:422,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:425,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - ssl
    - extension_value
    - out
    - out_len
    - out_alert_value
    - add_arg
    argTypes:
    - SSL*
    - unsigned
    - uint8_t**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 433
    functionName: bssl::CustomExtensionAddCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - reinterpret_cast<const uint8_t*>
    - abort
    linkageType: ''
    returnType: int
    signature: "int CustomExtensionAddCallback(SSL *ssl, unsigned extension_value,\n
      \                                     const uint8_t **out, size_t *out_len,\n
      \                                     int *out_alert_value, void *add_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:439,1
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - ssl
    - extension_value
    - out
    - add_arg
    argTypes:
    - SSL*
    - unsigned
    - uint8_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 442
    functionName: bssl::CustomExtensionFreeCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - abort
    - reinterpret_cast<const uint8_t *>
    linkageType: ''
    returnType: void
    signature: "void CustomExtensionFreeCallback(SSL *ssl, unsigned extension_value,\n
      \                                       const uint8_t *out, void *add_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:450,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 6
    argNames:
    - ssl
    - extension_value
    - contents
    - contents_len
    - out_alert_value
    - parse_arg
    argTypes:
    - SSL*
    - unsigned
    - uint8_t*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 460
    functionName: bssl::CustomExtensionParseCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - memcmp
    - abort
    linkageType: ''
    returnType: int
    signature: "int CustomExtensionParseCallback(SSL *ssl, unsigned extension_value,\n
      \                                       const uint8_t *contents,\n                                        size_t
      contents_len,\n                                        int *out_alert_value,
      void *parse_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:464,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:465,1
    - Dst: std::string
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:467,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:468,1
    - Dst: TestConfig*::expected_server_name::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ssl
    - out_alert
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 474
    functionName: bssl::ServerNameCallback
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::GetTestConfig
    - std::string
    - TestConfig*::expected_server_name::c_str
    - SSL_get_servername
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ServerNameCallback(SSL *ssl, int *out_alert, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:479,1
    - Dst: bssl::PrintSocketError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:481,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:485,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:486,1
    - Dst: bssl::PrintSocketError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:487,1
    - Dst: bssl::closesocket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:488,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:492,1
    - Dst: htons
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:494,1
    - Dst: inet_pton
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:495,1
    - Dst: bssl::PrintSocketError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:496,1
    - Dst: bssl::closesocket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:497,1
    - Dst: connect
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:500,1
    - Dst: reinterpret_cast<const sockaddr*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:500,1
    - Dst: bssl::PrintSocketError
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:502,1
    - Dst: bssl::closesocket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 507
    functionName: bssl::Connect
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - inet_pton
    - reinterpret_cast<const char*>
    - bssl::PrintSocketError
    - socket
    - memset
    - htons
    - setsockopt
    - bssl::closesocket
    - reinterpret_cast<const sockaddr*>
    - connect
    linkageType: ''
    returnType: int
    signature: int Connect(uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: bssl::SocketCloser::SocketCloser
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SocketCloser(int sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:517,1
    - Dst: shutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:519,1
    - Dst: recv
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:523,1
    - Dst: closesocket
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 528
    functionName: ~SocketCloser()
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - shutdown
    - recv
    - closesocket
    linkageType: ''
    returnType: void
    signature: void ~SocketCloser()
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:536,1
    - Dst: DTLS_method
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:537,1
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:537,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:542,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:542,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:547,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:547,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:553,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:553,1
    - Dst: TestConfig*::cipher::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:559,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:561,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:561,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:563,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:563,1
    - Dst: std::string::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:563,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:571,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:572,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:573,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:575,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:576,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:577,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:583,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:590,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:591,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:592,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:593,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:596,1
    - Dst: DH_get_2048_256
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:598,1
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:603,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:603,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:603,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:607,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:607,1
    - Dst: SSL_CTX_set_client_cert_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:610,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:610,1
    - Dst: SSL_CTX_set_npn_advertised_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:613,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:614,1
    - Dst: TestConfig*::select_next_proto::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:615,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:616,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:616,1
    - Dst: TestConfig*::select_alpn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:620,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:621,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:621,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:624,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:624,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:625,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:625,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:628,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:628,1
    - Dst: SSL_CTX_add_client_custom_ext
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:632,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:633,1
    - Dst: SSL_CTX_add_server_custom_ext
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:640,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:641,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:648,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:648,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:650,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:650,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:654,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:654,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:657,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:657,1
    - Dst: TestConfig*::expected_server_name::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:662,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:663,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:663,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 1
    argNames:
    - config
    argTypes:
    - TestConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 534
    functionDepth: 5
    functionLinenumber: 534
    functionLinenumberEnd: 667
    functionName: bssl::SetupCtx
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_cipher_list
    - SSL_CTX_set_npn_advertised_cb
    - SSL_CTX_set_alpn_select_cb
    - SSL_CTX_set_info_callback
    - bssl::UniquePtr::get
    - TestConfig*::expected_server_name::empty
    - DH_free
    - BN_hex2bn
    - SSL_CTX_add_client_custom_ext
    - SSL_CTX_sess_set_new_cb
    - DH_get_2048_256
    - SSL_CTX_set_session_id_context
    - BN_free
    - DH_set0_pqg
    - SSL_CTX_add_server_custom_ext
    - TLS_method
    - SSL_CTX_set_client_cert_cb
    - TestConfig*::select_alpn::empty
    - TestConfig*::select_next_proto::empty
    - TestConfig*::cipher::empty
    - BN_new
    - SSL_CTX_set_max_proto_version
    - std::string::c_str
    - SSL_CTX_set_tlsext_ticket_key_cb
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_CTX_set_client_CA_list
    - DTLS_method
    - BN_set_word
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_set_tmp_dh
    - SSL_CTX_set_next_proto_select_cb
    - SSL_CTX_set_options
    - SSL_CTX_set_cert_verify_callback
    - DH_new
    - SSL_CTX_new
    - SSL_CTX_set_security_level
    linkageType: ''
    returnType: bssl::UniquePtr<SSL_CTX>
    signature: bssl::UniquePtr<SSL_CTX> SetupCtx(const TestConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:678,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:679,1
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:679,1
    - Dst: PacketedBioAdvanceClock
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:682,1
    - Dst: AsyncBioEnforceWriteQuota
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:685,1
    - Dst: DTLSv1_handle_timeout
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:686,1
    - Dst: AsyncBioEnforceWriteQuota
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:687,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:690,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:698,1
    - Dst: AsyncBioAllowRead
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:700,1
    - Dst: AsyncBioAllowWrite
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - ssl
    - ret
    argTypes:
    - SSL*
    - int
    assertStmts:
    - condition: (GetTestConfig(ssl)->async)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    constantsTouched: []
    func_position:
      end: 711
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 711
    functionName: bssl::RetryAsync
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 4
    functionsReached:
    - bssl::GetTestConfig
    - AsyncBioEnforceWriteQuota
    - SSL_get_error
    - AsyncBioAllowWrite
    - PacketedBioAdvanceClock
    - DTLSv1_handle_timeout
    - bssl::GetTestState
    - assert
    - AsyncBioAllowRead
    - fprintf
    linkageType: ''
    returnType: bool
    signature: bool RetryAsync(SSL *ssl, int ret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:716,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:717,1
    - Dst: AsyncBioEnforceWriteQuota
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:724,1
    - Dst: SSL_peek
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:726,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:727,1
    - Dst: AsyncBioEnforceWriteQuota
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:729,1
    - Dst: bssl::RetryAsync
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:731,1
    - Dst: static_cast<size_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:734,1
    - Dst: uint8_t::uint8_t
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:734,1
    - Dst: SSL_peek
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:737,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:737,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:739,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:739,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:740,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:745,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:745,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:747,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:747,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:748,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ssl
    - out
    - max_out
    argTypes:
    - SSL*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 754
    functionName: bssl::DoRead
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - bssl::GetTestConfig
    - AsyncBioEnforceWriteQuota
    - static_cast<size_t>
    - memcmp
    - SSL_read
    - bssl::GetTestState
    - uint8_t::uint8_t
    - std::unique_ptr::get
    - SSL_peek
    - bssl::RetryAsync
    - fprintf
    linkageType: ''
    returnType: int
    signature: int DoRead(SSL *ssl, uint8_t *out, size_t max_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:759,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:762,1
    - Dst: bssl::RetryAsync
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:767,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - in
    - in_len
    argTypes:
    - SSL*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 758
    functionDepth: 3
    functionLinenumber: 758
    functionLinenumberEnd: 769
    functionName: bssl::WriteAll
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - bssl::GetTestConfig
    - SSL_write
    - bssl::RetryAsync
    linkageType: ''
    returnType: int
    signature: int WriteAll(SSL *ssl, const uint8_t *in, size_t in_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:774,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:777,1
    - Dst: bssl::RetryAsync
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: bssl::DoShutdown
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - bssl::GetTestConfig
    - SSL_shutdown
    - bssl::RetryAsync
    linkageType: ''
    returnType: int
    signature: int DoShutdown(SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:783,1
    - Dst: SSL_is_dtls
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 788
    functionName: bssl::GetProtocolVersion
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 2
    functionsReached:
    - SSL_version
    - SSL_is_dtls
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t GetProtocolVersion(const SSL *ssl)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: bssl::GetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:794,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:796,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:797,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:802,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:803,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:804,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:808,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:809,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:816,1
    - Dst: bssl::GetProtocolVersion
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:818,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:819,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:820,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:822,1
    - Dst: TestConfig*::expected_server_name::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:827,1
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:829,1
    - Dst: std::string
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:831,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:832,1
    - Dst: TestConfig*::expected_server_name::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:833,1
    - Dst: TestConfig*::expected_next_proto::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:838,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:841,1
    - Dst: TestConfig*::expected_next_proto::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:842,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:843,1
    - Dst: TestConfig*::expected_next_proto::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:843,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:845,1
    - Dst: TestConfig*::expected_alpn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:850,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:853,1
    - Dst: TestConfig*::expected_alpn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:854,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:855,1
    - Dst: TestConfig*::expected_alpn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:855,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:857,1
    - Dst: SSL_get_extms_support
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:863,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:864,1
    - Dst: SSL_get_verify_result
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:874,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:875,1
    - Dst: TestConfig*::psk::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:880,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:881,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:882,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:886,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:887,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 2
    argNames:
    - ssl
    - is_resume
    argTypes:
    - SSL*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 893
    functionName: bssl::CheckHandshakeProperties
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - bssl::GetTestConfig
    - SSL_get_verify_result
    - SSL_get0_next_proto_negotiated
    - TestConfig*::expected_next_proto::data
    - TestConfig*::expected_server_name::empty
    - SSL_get0_alpn_selected
    - SSL_get_current_cipher
    - TestConfig*::expected_next_proto::empty
    - SSL_get_peer_cert_chain
    - fprintf
    - TestConfig*::psk::empty
    - memcmp
    - SSL_get_peer_certificate
    - bssl::GetTestState
    - SSL_get_servername
    - TestConfig*::expected_alpn::empty
    - TestConfig*::expected_server_name::c_str
    - TestConfig*::expected_alpn::size
    - SSL_session_reused
    - bssl::GetProtocolVersion
    - SSL_get_extms_support
    - std::string
    - TestConfig*::expected_next_proto::size
    - TestConfig*::expected_alpn::data
    linkageType: ''
    returnType: bool
    signature: bool CheckHandshakeProperties(SSL *ssl, bool is_resume)
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: bssl::SetTestConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:907,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:907,1
    - Dst: bssl::SetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:908,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:908,1
    - Dst: std::unique_ptr<TestState>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:908,1
    - Dst: TestState::TestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:908,1
    - Dst: SSL_set_mode
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:913,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:913,1
    - Dst: bssl::InstallCertificate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:919,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:919,1
    - Dst: SSL_set_cert_cb
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:922,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:922,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:924,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:924,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:928,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:928,1
    - Dst: SSL_set_mode
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:931,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:931,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:934,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:934,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:937,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:937,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:940,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:940,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:943,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:943,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:946,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:946,1
    - Dst: TestConfig*::host_name::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:948,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:949,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:949,1
    - Dst: TestConfig*::host_name::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:949,1
    - Dst: TestConfig*::advertise_alpn::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:952,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:953,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:953,1
    - Dst: TestConfig*::advertise_alpn::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:954,1
    - Dst: TestConfig*::advertise_alpn::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:955,1
    - Dst: TestConfig*::psk::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:958,1
    - Dst: SSL_set_psk_client_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:959,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:959,1
    - Dst: SSL_set_psk_server_callback
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:960,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:960,1
    - Dst: TestConfig*::psk_identity::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:962,1
    - Dst: SSL_use_psk_identity_hint
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:963,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:963,1
    - Dst: TestConfig*::psk_identity::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:963,1
    - Dst: TestConfig*::srtp_profiles::empty
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:966,1
    - Dst: SSL_set_tlsext_use_srtp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:967,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:967,1
    - Dst: TestConfig*::srtp_profiles::c_str
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:967,1
    - Dst: SSL_set_min_proto_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:971,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:971,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:975,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:975,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:979,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:979,1
    - Dst: SSL_set_mtu
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:980,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:980,1
    - Dst: SSL_set_quiet_shutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:986,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:986,1
    - Dst: SSL_set1_curves
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:990,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:990,1
    - Dst: SSL_set1_curves
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:998,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:998,1
    - Dst: OPENSSL_ARRAY_SIZE
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:999,1
    - Dst: SSL_set_max_cert_list
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1004,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1004,1
    - Dst: SSL_set_mode
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1008,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1008,1
    - Dst: bssl::Connect
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1011,1
    - Dst: PacketedBioCreate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1022,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1026,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1026,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1026,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1027,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1027,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1027,1
    - Dst: std::move
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1028,1
    - Dst: AsyncBioCreateDatagram
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1032,1
    - Dst: AsyncBioCreate
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1032,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1036,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1036,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1036,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1037,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1037,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1037,1
    - Dst: std::move
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1038,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1040,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1040,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1040,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1040,1
    - Dst: bssl::UniquePtr::release
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1041,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1045,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1045,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1054,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1054,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1055,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1063,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1063,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1065,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1065,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1070,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1070,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1072,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1072,1
    - Dst: bssl::RetryAsync
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1074,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1074,1
    - Dst: bssl::CheckHandshakeProperties
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1076,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1076,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1082,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1082,1
    - Dst: static_cast<size_t>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1087,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1088,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1089,1
    - Dst: std::vector::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1089,1
    - Dst: std::vector::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1089,1
    - Dst: TestConfig*::export_label::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1090,1
    - Dst: TestConfig*::export_label::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1090,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1091,1
    - Dst: TestConfig*::export_context::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1091,1
    - Dst: TestConfig*::export_context::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1092,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1093,1
    - Dst: bssl::WriteAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1096,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1096,1
    - Dst: std::vector::data
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1096,1
    - Dst: std::vector::size
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1096,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1103,1
    - Dst: uint8_t::uint8_t
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1109,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1110,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1110,1
    - Dst: OPENSSL_ARRAY_SIZE
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1113,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1116,1
    - Dst: bssl::WriteAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1119,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1119,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1119,1
    - Dst: bssl::WriteAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1125,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1125,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1125,1
    - Dst: uint8_t::uint8_t
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1133,1
    - Dst: bssl::DoRead
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1137,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1137,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1137,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1138,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1138,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1142,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1149,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1156,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1162,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1162,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1163,1
    - Dst: bssl::WriteAll
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1170,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1170,1
    - Dst: std::unique_ptr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1170,1
    - Dst: bssl::GetProtocolVersion
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1180,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1180,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1181,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1181,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1182,1
    - Dst: bssl::GetProtocolVersion
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1186,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1186,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1189,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1189,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1190,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1192,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1192,1
    - Dst: std::move
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1198,1
    - Dst: bssl::GetTestState
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1198,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1198,1
    - Dst: bssl::DoShutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1201,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1201,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1208,1
    - Dst: bssl::DoShutdown
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1211,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1211,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1215,1
    - Dst: SSL_total_renegotiations
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1219,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1219,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1221,1
    - Dst: SSL_total_renegotiations
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1223,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1223,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 232
    argCount: 5
    argNames:
    - out_session
    - ssl_ctx
    - config
    - is_resume
    - session
    argTypes:
    - bssl::UniquePtr<SSL_SESSION>*
    - SSL_CTX*
    - TestConfig*
    - bool
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 899
    functionDepth: 5
    functionLinenumber: 899
    functionLinenumberEnd: 1228
    functionName: bssl::DoExchange
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 1
    functionsReached:
    - bssl::DoShutdown
    - SSL_set_session
    - AsyncBioCreateDatagram
    - reinterpret_cast<const uint8_t*>
    - TestConfig*::export_label::data
    - SSL_export_keying_material
    - std::vector::data
    - TestConfig*::advertise_alpn::empty
    - bssl::UniquePtr::get
    - TestConfig*::srtp_profiles::c_str
    - TestConfig*::psk_identity::empty
    - SSL_set_connect_state
    - SSL_get_current_cipher
    - SSL_set_accept_state
    - TestConfig*::export_context::size
    - bssl::InstallCertificate
    - SSL_set_max_proto_version
    - fprintf
    - TestState::TestState
    - SSL_accept
    - SSL_set_cert_cb
    - SSL_set_tlsext_host_name
    - SSL_set_psk_server_callback
    - TestConfig*::psk::empty
    - SSL_set_quiet_shutdown
    - SSL_connect
    - std::vector::size
    - TestConfig*::export_context::data
    - bssl::SetTestState
    - bssl::GetTestState
    - uint8_t::uint8_t
    - TestConfig*::srtp_profiles::empty
    - bssl::Connect
    - bssl::CheckHandshakeProperties
    - BIO_push
    - bssl::RetryAsync
    - bssl::DoRead
    - AsyncBioCreate
    - TestConfig*::host_name::c_str
    - OPENSSL_ARRAY_SIZE
    - SSL_set_mtu
    - SSL_set_bio
    - std::move
    - SSL_set_min_proto_version
    - SSL_set_verify
    - SSL_set_mode
    - bssl::UniquePtr::release
    - std::unique_ptr::get
    - TestConfig*::advertise_alpn::size
    - SSL_set_alpn_protos
    - SSL_set_tlsext_use_srtp
    - SSL_total_renegotiations
    - bssl::GetProtocolVersion
    - TestConfig*::psk_identity::c_str
    - TestConfig*::host_name::empty
    - bssl::WriteAll
    - SSL_set1_curves
    - SSL_set_max_cert_list
    - std::unique_ptr<TestState>
    - static_cast<size_t>
    - SSL_set_psk_client_callback
    - SSL_get_error
    - SSL_set_options
    - PacketedBioCreate
    - reinterpret_cast<const uint8_t *>
    - TestConfig*::advertise_alpn::data
    - memset
    - bssl::SetTestConfig
    - SSL_use_psk_identity_hint
    - TestConfig*::export_label::size
    linkageType: ''
    returnType: bool
    signature: "bool DoExchange(bssl::UniquePtr<SSL_SESSION> *out_session,\n                       SSL_CTX
      *ssl_ctx, const TestConfig *config,\n                       bool is_resume,
      SSL_SESSION *session)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1232
    functionName: ~StderrDelimiter()
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ~StderrDelimiter()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1242,1
    - Dst: WSAStartup
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1244,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1246,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1250,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1254,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1257,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1258,1
    - Dst: SSL_get_ex_new_index
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1259,1
    - Dst: SSL_get_ex_new_index
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1260,1
    - Dst: ParseConfig
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1266,1
    - Dst: bssl::Usage
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1267,1
    - Dst: bssl::SetupCtx
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1270,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1272,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1280,1
    - Dst: std::move
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1284,1
    - Dst: bssl::DoExchange
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1285,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1285,1
    - Dst: bssl::UniquePtr::get
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1286,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1287,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1288,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1235
    functionDepth: 6
    functionLinenumber: 1235
    functionLinenumberEnd: 1294
    functionName: bssl::Main
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::DoExchange
    - signal
    - std::move
    - SSL_get_ex_new_index
    - bssl::Usage
    - OPENSSL_init_crypto
    - OPENSSL_init_ssl
    - bssl::SetupCtx
    - ERR_print_errors_fp
    - bssl::UniquePtr::get
    - WSAStartup
    - ParseConfig
    - MAKEWORD
    - fprintf
    linkageType: ''
    returnType: int
    signature: int Main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bssl::Main
      Src: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc:1299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1298
    functionDepth: 7
    functionLinenumber: 1298
    functionLinenumberEnd: 1300
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/ossl_shim.cc
    functionUses: 0
    functionsReached:
    - bssl::Main
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - array
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: OPENSSL_ARRAY_SIZE
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_ARRAY_SIZE(array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PacketedFree
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: operator()(T *ptr)
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - PacketedFree
    linkageType: ''
    returnType: void
    signature: void operator()(T *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: bssl::internal::StackAllocated::StackAllocated
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void StackAllocated()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~StackAllocated()
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - cleanup
    linkageType: ''
    returnType: void
    signature: void ~StackAllocated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: bssl::internal::StackAllocated::StackAllocated
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StackAllocated(const StackAllocated<T, CleanupRet, init, cleanup>
      &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(const StackAllocated<T, CleanupRet, init, cleanup>
      &)'
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator=(const StackAllocated<T, CleanupRet, init, cleanup> &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: bssl::internal::StackAllocated::get
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: bssl::internal::StackAllocated::get
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:62,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: bssl::internal::StackAllocated::Reset
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - init
    - cleanup
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PacketedFree
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: operator()(T *ptr)
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - PacketedFree
    linkageType: ''
    returnType: void
    signature: void operator()(T *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: bssl::internal::StackAllocated::StackAllocated
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void StackAllocated()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~StackAllocated()
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - cleanup
    linkageType: ''
    returnType: void
    signature: void ~StackAllocated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: bssl::internal::StackAllocated::StackAllocated
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StackAllocated(const StackAllocated<T, CleanupRet, init, cleanup>
      &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(const StackAllocated<T, CleanupRet, init, cleanup>
      &)'
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator=(const StackAllocated<T, CleanupRet, init, cleanup> &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: bssl::internal::StackAllocated::get
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: bssl::internal::StackAllocated::get
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:62,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: bssl::internal::StackAllocated::Reset
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - init
    - cleanup
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - deleter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: BORINGSSL_MAKE_DELETER
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BORINGSSL_MAKE_DELETER(type, deleter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - deleter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: BORINGSSL_MAKE_STACK_DELETER
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BORINGSSL_MAKE_STACK_DELETER(type, deleter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PacketedFree
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: operator()(T *ptr)
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - PacketedFree
    linkageType: ''
    returnType: void
    signature: void operator()(T *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: bssl::internal::StackAllocated::StackAllocated
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void StackAllocated()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~StackAllocated()
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - cleanup
    linkageType: ''
    returnType: void
    signature: void ~StackAllocated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: bssl::internal::StackAllocated::StackAllocated
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StackAllocated(const StackAllocated<T, CleanupRet, init, cleanup>
      &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(const StackAllocated<T, CleanupRet, init, cleanup>
      &)'
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator=(const StackAllocated<T, CleanupRet, init, cleanup> &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: bssl::internal::StackAllocated::get
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: bssl::internal::StackAllocated::get
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:62,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: bssl::internal::StackAllocated::Reset
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - init
    - cleanup
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PacketedFree
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: operator()(T *ptr)
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - PacketedFree
    linkageType: ''
    returnType: void
    signature: void operator()(T *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: bssl::internal::StackAllocated::StackAllocated
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void StackAllocated()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~StackAllocated()
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - cleanup
    linkageType: ''
    returnType: void
    signature: void ~StackAllocated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: bssl::internal::StackAllocated::StackAllocated
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StackAllocated(const StackAllocated<T, CleanupRet, init, cleanup>
      &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(const StackAllocated<T, CleanupRet, init, cleanup>
      &)'
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator=(const StackAllocated<T, CleanupRet, init, cleanup> &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: bssl::internal::StackAllocated::get
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: bssl::internal::StackAllocated::get
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:62,1
    - Dst: init
      Src: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: bssl::internal::StackAllocated::Reset
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached:
    - init
    - cleanup
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - deleter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: BORINGSSL_MAKE_DELETER
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BORINGSSL_MAKE_DELETER(type, deleter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - deleter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: BORINGSSL_MAKE_STACK_DELETER
    functionSourceFile: /src/openssl-1.1.1g/test/ossl_shim/include/openssl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BORINGSSL_MAKE_STACK_DELETER(type, deleter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:28,1
    - Dst: BIO_meth_set_write_ex
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:30,1
    - Dst: BIO_meth_set_read_ex
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:31,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:32,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:33,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:34,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:35,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:36,1
    - Dst: BIO_meth_set_callback_ctrl
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: BIO_f_tap
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_write_ex
    - BIO_meth_set_create
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_callback_ctrl
    - BIO_meth_set_read_ex
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_tap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:45,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: tap_new
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int tap_new(BIO *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:54,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: tap_free
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int tap_free(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:61,1
    - Dst: BIO_read_ex
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:64,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:65,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - b
    - buf
    - size
    - out_size
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: tap_read_ex
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_read_ex
    linkageType: ''
    returnType: int
    signature: int tap_read_ex(BIO *b, char *buf, size_t size, size_t *out_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write_ex
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - b
    - buf
    - n
    argTypes:
    - BIO*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: write_string
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 2
    functionsReached:
    - BIO_write_ex
    linkageType: ''
    returnType: int
    signature: int write_string(BIO *b, const char *buf, size_t n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:96,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:101,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:102,1
    - Dst: subtest_level
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:103,1
    - Dst: write_string
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:104,1
    - Dst: write_string
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:106,1
    - Dst: write_string
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:109,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:112,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - b
    - buf
    - size
    - in_size
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 120
    functionName: tap_write_ex
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 0
    functionsReached:
    - write_string
    - subtest_level
    - BIO_next
    - BIO_get_data
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int tap_write_ex(BIO *b, const char *buf, size_t size, size_t *in_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:124,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:128,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 135
    functionName: tap_ctrl
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_ctrl
    - BIO_set_data
    linkageType: ''
    returnType: long
    signature: long tap_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:139,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: tap_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long tap_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:144,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: tap_gets
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int tap_gets(BIO *b, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tap_write_ex
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:151,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/testutil/tap_bio.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: tap_puts
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tap_bio.c
    functionUses: 0
    functionsReached:
    - tap_write_ex
    - strlen
    linkageType: ''
    returnType: int
    signature: int tap_puts(BIO *b, const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:31,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:33,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:36,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:38,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:41,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 7
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: test_fail_message_prefix
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: "void test_fail_message_prefix(const char *prefix, const char *file,\n
      \                             int line, const char *type,\n                              const
      char *left, const char *right,\n                              const char *op)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_fail_message_prefix
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:80,1
    - Dst: test_vprintf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:82,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:83,1
    - Dst: test_flush_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    - fmt
    - ap
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: test_fail_message_va
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - test_fail_message_prefix
    - test_vprintf_stderr
    - test_flush_stderr
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: "void test_fail_message_va(const char *prefix, const char *file,\n
      \                                int line, const char *type,\n                                 const
      char *left, const char *right,\n                                 const char
      *op, const char *fmt, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:95,1
    - Dst: test_fail_message_va
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:96,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    - fmt
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: test_fail_message
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - va_start
    - test_fail_message_va
    - va_end
    linkageType: ''
    returnType: void
    signature: "void test_fail_message(const char *prefix, const char *file,\n                              int
      line, const char *type,\n                              const char *left, const
      char *right,\n                              const char *op, const char *fmt,
      ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:104,1
    - Dst: test_fail_message_va
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:105,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - desc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: test_info_c90
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - va_start
    - test_fail_message_va
    - va_end
    linkageType: ''
    returnType: void
    signature: void test_info_c90(const char *desc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:113,1
    - Dst: test_fail_message_va
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:114,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - desc
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: test_info
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - va_start
    - test_fail_message_va
    - va_end
    linkageType: ''
    returnType: void
    signature: void test_info(const char *file, int line, const char *desc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:122,1
    - Dst: test_fail_message_va
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:123,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:124,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - desc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: test_error_c90
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - va_start
    - test_fail_message_va
    - va_end
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void test_error_c90(const char *desc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:132,1
    - Dst: test_fail_message_va
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:133,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:134,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - line
    - desc
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: test_error
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 1
    functionsReached:
    - va_start
    - test_fail_message_va
    - va_end
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void test_error(const char *file, int line, const char *desc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:144,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: test_perror
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - strerror
    linkageType: ''
    returnType: void
    signature: void test_perror(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:152,1
    - Dst: test_vprintf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:153,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:154,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:155,1
    - Dst: test_flush_stderr
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: test_note
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 1
    functionsReached:
    - va_start
    - test_flush_stderr
    - test_vprintf_stderr
    - va_end
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void test_note(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_print_errors_cb
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:162,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: test_openssl_errors
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors_cb
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: void test_openssl_errors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - opname
    - ','
    - op
    - ','
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: DEFINE_COMPARISON
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_COMPARISON(type, name, opname, op, fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: DEFINE_COMPARISONS
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_COMPARISONS(type, name, fmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:285,1
    - Dst: test_fail_string_message
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:286,1
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:287,1
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 7
    argNames:
    - file
    - line
    - st1
    - st2
    - s1
    - s2
    - len
    argTypes:
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 292
    functionName: test_strn_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strnlen
    - strncmp
    - test_fail_string_message
    linkageType: ''
    returnType: int
    signature: "int test_strn_eq(const char *file, int line, const char *st1, const
      char *st2,\n                 const char *s1, const char *s2, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:299,1
    - Dst: test_fail_string_message
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:300,1
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:301,1
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 7
    argNames:
    - file
    - line
    - st1
    - st2
    - s1
    - s2
    - len
    argTypes:
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: test_strn_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strnlen
    - strncmp
    - test_fail_string_message
    linkageType: ''
    returnType: int
    signature: "int test_strn_ne(const char *file, int line, const char *st1, const
      char *st2,\n                 const char *s1, const char *s2, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:313,1
    - Dst: test_fail_memory_message
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 8
    argNames:
    - file
    - line
    - st1
    - st2
    - s1
    - n1
    - s2
    - n2
    argTypes:
    - char*
    - int
    - char*
    - char*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: test_mem_eq
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - memcmp
    - test_fail_memory_message
    linkageType: ''
    returnType: int
    signature: "int test_mem_eq(const char *file, int line, const char *st1, const
      char *st2,\n                const void *s1, size_t n1, const void *s2, size_t
      n2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:328,1
    - Dst: test_fail_memory_message
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 8
    argNames:
    - file
    - line
    - st1
    - st2
    - s1
    - n1
    - s2
    - n2
    argTypes:
    - char*
    - int
    - char*
    - char*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 334
    functionName: test_mem_ne
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - memcmp
    - test_fail_memory_message
    linkageType: ''
    returnType: int
    signature: "int test_mem_ne(const char *file, int line, const char *st1, const
      char *st2,\n                const void *s1, size_t n1, const void *s2, size_t
      n2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - opname
    - ','
    - op
    - ','
    - zero_cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 356
    functionName: DEFINE_BN_COMPARISONS
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_BN_COMPARISONS(opname, op, zero_cond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_one
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:366,1
    - Dst: test_fail_bignum_mono_message
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - file
    - line
    - s
    - a
    argTypes:
    - char*
    - int
    - char*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: test_BN_eq_one
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - BN_is_one
    - test_fail_bignum_mono_message
    linkageType: ''
    returnType: int
    signature: int test_BN_eq_one(const char *file, int line, const char *s, const
      BIGNUM *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:374,1
    - Dst: test_fail_bignum_mono_message
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - file
    - line
    - s
    - a
    argTypes:
    - char*
    - int
    - char*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: test_BN_odd
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - test_fail_bignum_mono_message
    linkageType: ''
    returnType: int
    signature: int test_BN_odd(const char *file, int line, const char *s, const BIGNUM
      *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:382,1
    - Dst: test_fail_bignum_mono_message
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - file
    - line
    - s
    - a
    argTypes:
    - char*
    - int
    - char*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: test_BN_even
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - test_fail_bignum_mono_message
    linkageType: ''
    returnType: int
    signature: int test_BN_even(const char *file, int line, const char *s, const BIGNUM
      *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_word
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:394,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:396,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:397,1
    - Dst: test_fail_bignum_message
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:398,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - file
    - line
    - bns
    - ws
    - a
    - w
    argTypes:
    - char*
    - int
    - char*
    - char*
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 401
    functionName: test_BN_eq_word
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - test_fail_bignum_message
    - BN_new
    - BN_is_word
    - BN_free
    - BN_set_word
    linkageType: ''
    returnType: int
    signature: "int test_BN_eq_word(const char *file, int line, const char *bns, const
      char *ws,\n                    const BIGNUM *a, BN_ULONG w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_abs_is_word
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:408,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:410,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:411,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:412,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:413,1
    - Dst: test_fail_bignum_message
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:414,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:416,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - file
    - line
    - bns
    - ws
    - a
    - w
    argTypes:
    - char*
    - int
    - char*
    - char*
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 419
    functionName: test_BN_abs_eq_word
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - test_fail_bignum_message
    - BN_set_negative
    - BN_new
    - BN_free
    - BN_set_word
    - BN_abs_is_word
    - BN_dup
    linkageType: ''
    returnType: int
    signature: "int test_BN_abs_eq_word(const char *file, int line, const char *bns,\n
      \                       const char *ws, const BIGNUM *a, BN_ULONG w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/test/testutil/tests.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: print_time
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: char
    signature: char *print_time(const ASN1_TIME *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opname
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 443
    functionName: DEFINE_TIME_T_COMPARISON
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_TIME_T_COMPARISON(opname, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/cb.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - u
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: openssl_error_cb
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/cb.c
    functionUses: 0
    functionsReached:
    - test_printf_stderr
    linkageType: ''
    returnType: int
    signature: int openssl_error_cb(const char *str, size_t len, void *u)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: test_random
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_random
      Src: /src/openssl-1.1.1g/test/testutil/random.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sd
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: test_random_seed
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/random.c
    functionUses: 0
    functionsReached:
    - test_random
    linkageType: ''
    returnType: void
    signature: void test_random_seed(uint32_t sd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/testutil/main.c:23,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/testutil/main.c:24,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/main.c:28,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/main.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: check_arg_usage
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/main.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void check_arg_usage(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_open_streams
      Src: /src/openssl-1.1.1g/test/testutil/main.c:38,1
    - Dst: global_init
      Src: /src/openssl-1.1.1g/test/testutil/main.c:40,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/main.c:41,1
    - Dst: setup_test_framework
      Src: /src/openssl-1.1.1g/test/testutil/main.c:48,1
    - Dst: setup_tests
      Src: /src/openssl-1.1.1g/test/testutil/main.c:50,1
    - Dst: run_tests
      Src: /src/openssl-1.1.1g/test/testutil/main.c:51,1
    - Dst: cleanup_tests
      Src: /src/openssl-1.1.1g/test/testutil/main.c:52,1
    - Dst: check_arg_usage
      Src: /src/openssl-1.1.1g/test/testutil/main.c:53,1
    - Dst: pulldown_test_framework
      Src: /src/openssl-1.1.1g/test/testutil/main.c:55,1
    - Dst: test_close_streams
      Src: /src/openssl-1.1.1g/test/testutil/main.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/main.c
    functionUses: 0
    functionsReached:
    - setup_test_framework
    - pulldown_test_framework
    - test_close_streams
    - check_arg_usage
    - test_open_streams
    - setup_tests
    - global_init
    - cleanup_tests
    - run_tests
    - test_printf_stderr
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: test_get_program_name
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/main.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *test_get_program_name(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/testutil/main.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: test_get_argument
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/main.c
    functionUses: 26
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *test_get_argument(size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: test_get_argument_count
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/main.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t test_get_argument_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/testutil/main.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - option
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: test_has_option
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/main.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int test_has_option(const char *option)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/testutil/main.c:93,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/testutil/main.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - option
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: test_get_option_argument
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/main.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char *test_get_option_argument(const char *option)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:22,1
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:23,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:25,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:25,1
    - Dst: BIO_f_linebuffer
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:25,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:26,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:26,1
    - Dst: BIO_f_linebuffer
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:26,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:28,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:28,1
    - Dst: BIO_f_tap
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:28,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:30,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: test_open_streams
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/basic_output.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - BIO_new_fp
    - BIO_f_tap
    - BIO_f_linebuffer
    - BIO_push
    - BIO_new
    linkageType: ''
    returnType: void
    signature: void test_open_streams(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:36,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: test_close_streams
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/basic_output.c
    functionUses: 1
    functionsReached:
    - BIO_free_all
    linkageType: ''
    returnType: void
    signature: void test_close_streams(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_vprintf
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: test_vprintf_stdout
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/basic_output.c
    functionUses: 0
    functionsReached:
    - BIO_vprintf
    linkageType: ''
    returnType: int
    signature: int test_vprintf_stdout(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_vprintf
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: test_vprintf_stderr
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/basic_output.c
    functionUses: 2
    functionsReached:
    - BIO_vprintf
    linkageType: ''
    returnType: int
    signature: int test_vprintf_stderr(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: test_flush_stdout
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/basic_output.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int test_flush_stdout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/test/testutil/basic_output.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: test_flush_stderr
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/basic_output.c
    functionUses: 2
    functionsReached:
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int test_flush_stderr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/test_cleanup.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:26,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: test_diff_header
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void test_diff_header(const char *left, const char *right)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:34,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - m
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: test_string_null_empty
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void test_string_null_empty(const char *m, char c)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: subtest_level
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:45,1
    - Dst: test_fail_message_prefix
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:51,1
    - Dst: test_string_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:58,1
    - Dst: test_diff_header
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:60,1
    - Dst: test_string_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:61,1
    - Dst: test_string_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:62,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:67,1
    - Dst: test_diff_header
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:68,1
    - Dst: isprint
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:75,1
    - Dst: isprint
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:80,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:97,1
    - Dst: test_string_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:100,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:102,1
    - Dst: test_string_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:104,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:106,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:108,1
    - Dst: test_flush_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:117,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 66
    argCount: 11
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    - m1
    - l1
    - m2
    - l2
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 118
    functionName: test_fail_string_common
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - test_flush_stderr
    - test_fail_message_prefix
    - strcmp
    - subtest_level
    - test_string_null_empty
    - test_diff_header
    - isprint
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: "void test_fail_string_common(const char *prefix, const char *file,\n
      \                                   int line, const char *type,\n                                    const
      char *left, const char *right,\n                                    const char
      *op, const char *m1, size_t l1,\n                                    const char
      *m2, size_t l2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fail_string_common
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:131,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 11
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    - m1
    - l1
    - m2
    - l2
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: test_fail_string_message
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 2
    functionsReached:
    - test_fail_string_common
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: "void test_fail_string_message(const char *prefix, const char *file,\n
      \                             int line, const char *type,\n                              const
      char *left, const char *right,\n                              const char *op,
      const char *m1, size_t l1,\n                              const char *m2, size_t
      l2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fail_string_common
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - m
    - l
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: test_output_string
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 1
    functionsReached:
    - test_fail_string_common
    linkageType: ''
    returnType: void
    signature: void test_output_string(const char *name, const char *m, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - m
    - n
    - b
    - width
    argTypes:
    - unsigned char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: hex_convert_memory
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hex_convert_memory(const unsigned char *m, size_t n, char *b,\n
      \                              size_t width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: test_bignum_header_line
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void test_bignum_header_line(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: test_bignum_zero_null
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - BN_is_negative
    linkageType: ''
    returnType: char
    signature: char *test_bignum_zero_null(const BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bignum_zero_null
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:194,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - sep
    argTypes:
    - BIGNUM*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: test_bignum_zero_print
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - test_bignum_zero_null
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void test_bignum_zero_print(const BIGNUM *bn, char sep)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:210,1
    - Dst: hex_convert_memory
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:211,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:224,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:231,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:253,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:254,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:254,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 5
    argNames:
    - in
    - bytes
    - out
    - lz
    - bn
    argTypes:
    - unsigned char*
    - size_t
    - char*
    - int*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 256
    functionName: convert_bn_memory
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - strcpy
    - BN_is_negative
    - BN_is_zero
    - hex_convert_memory
    - strlen
    linkageType: ''
    returnType: int
    signature: "int convert_bn_memory(const unsigned char *in, size_t bytes,\n                             char
      *out, int *lz, const BIGNUM *bn)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: test_fail_message_prefix
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:277,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:278,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:278,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:279,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:279,1
    - Dst: test_bignum_header_line
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:282,1
    - Dst: test_bignum_zero_print
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:283,1
    - Dst: test_diff_header
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:285,1
    - Dst: test_bignum_header_line
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:286,1
    - Dst: test_bignum_zero_print
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:287,1
    - Dst: test_bignum_zero_print
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:288,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:293,1
    - Dst: test_diff_header
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:294,1
    - Dst: test_bignum_header_line
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:295,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:299,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:302,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:307,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:311,1
    - Dst: convert_bn_memory
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:316,1
    - Dst: convert_bn_memory
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:317,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:332,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:335,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:337,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:339,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:341,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:344,1
    - Dst: test_flush_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:353,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:355,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 9
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    - bn1
    - bn2
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 356
    functionName: test_fail_bignum_common
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - test_flush_stderr
    - test_fail_message_prefix
    - BN_cmp
    - BN_num_bytes
    - OPENSSL_free
    - test_bignum_header_line
    - BN_is_negative
    - convert_bn_memory
    - test_bignum_zero_print
    - BN_bn2binpad
    - test_diff_header
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: "void test_fail_bignum_common(const char *prefix, const char *file,\n
      \                                   int line, const char *type,\n                                    const
      char *left, const char *right,\n                                    const char
      *op,\n                                    const BIGNUM *bn1, const BIGNUM *bn2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fail_bignum_common
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:369,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    - bn1
    - bn2
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 363
    functionDepth: 4
    functionLinenumber: 363
    functionLinenumberEnd: 371
    functionName: test_fail_bignum_message
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 2
    functionsReached:
    - test_fail_bignum_common
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: "void test_fail_bignum_message(const char *prefix, const char *file,\n
      \                             int line, const char *type,\n                              const
      char *left, const char *right,\n                              const char *op,\n
      \                             const BIGNUM *bn1, const BIGNUM *bn2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fail_bignum_common
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:378,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    - bn
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: test_fail_bignum_mono_message
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 3
    functionsReached:
    - test_fail_bignum_common
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: "void test_fail_bignum_mono_message(const char *prefix, const char
      *file,\n                                   int line, const char *type,\n                                   const
      char *left, const char *right,\n                                   const char
      *op, const BIGNUM *bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:384,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:385,1
    - Dst: test_bignum_zero_null
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:386,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:387,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:391,1
    - Dst: hex_convert_memory
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:393,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:396,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:397,1
    - Dst: test_fail_bignum_common
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - name
    - bn
    argTypes:
    - char*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 402
    functionName: test_output_bignum
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 5
    functionsReached:
    - test_bignum_zero_null
    - test_fail_bignum_common
    - BN_num_bytes
    - BN_bn2bin
    - BN_is_negative
    - BN_is_zero
    - hex_convert_memory
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void test_output_bignum(const char *name, const BIGNUM *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:412,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - m
    - c
    argTypes:
    - unsigned char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: test_memory_null_empty
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: void test_memory_null_empty(const unsigned char *m, char c)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: test_fail_message_prefix
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:433,1
    - Dst: test_memory_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:440,1
    - Dst: test_diff_header
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:442,1
    - Dst: test_memory_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:443,1
    - Dst: test_memory_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:444,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:449,1
    - Dst: test_diff_header
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:450,1
    - Dst: hex_convert_memory
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:456,1
    - Dst: hex_convert_memory
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:460,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:485,1
    - Dst: test_memory_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:488,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:490,1
    - Dst: test_memory_null_empty
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:492,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:494,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:496,1
    - Dst: test_flush_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:505,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 70
    argCount: 11
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    - m1
    - l1
    - m2
    - l2
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 506
    functionName: test_fail_memory_common
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 0
    functionsReached:
    - test_flush_stderr
    - test_fail_message_prefix
    - memcmp
    - test_memory_null_empty
    - hex_convert_memory
    - test_diff_header
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: "void test_fail_memory_common(const char *prefix, const char *file,\n
      \                                   int line, const char *type,\n                                    const
      char *left, const char *right,\n                                    const char
      *op,\n                                    const unsigned char *m1, size_t l1,\n
      \                                   const unsigned char *m2, size_t l2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fail_memory_common
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:520,1
    - Dst: test_printf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 11
    argNames:
    - prefix
    - file
    - line
    - type
    - left
    - right
    - op
    - m1
    - l1
    - m2
    - l2
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 523
    functionName: test_fail_memory_message
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 2
    functionsReached:
    - test_fail_memory_common
    - test_printf_stderr
    linkageType: ''
    returnType: void
    signature: "void test_fail_memory_message(const char *prefix, const char *file,\n
      \                             int line, const char *type,\n                              const
      char *left, const char *right,\n                              const char *op,\n
      \                             const unsigned char *m1, size_t l1,\n                              const
      unsigned char *m2, size_t l2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fail_memory_common
      Src: /src/openssl-1.1.1g/test/testutil/format_output.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - m
    - l
    argTypes:
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 529
    functionName: test_output_memory
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/format_output.c
    functionUses: 5
    functionsReached:
    - test_fail_memory_common
    linkageType: ''
    returnType: void
    signature: void test_output_memory(const char *name, const unsigned char *m, size_t
      l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:49,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts:
    - condition: (num_tests != OSSL_NELEM(all_tests))
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/openssl-1.1.1g/test/testutil/driver.c
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: add_test
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - assert
    linkageType: ''
    returnType: void
    signature: void add_test(const char *test_case_name, int (*test_fn) (void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:60,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - test_case_name
    - num
    - subtest
    argTypes:
    - char*
    - int
    - int
    assertStmts:
    - condition: (num_tests != OSSL_NELEM(all_tests))
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/openssl-1.1.1g/test/testutil/driver.c
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: add_all_tests
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - assert
    linkageType: ''
    returnType: void
    signature: "void add_all_tests(const char *test_case_name, int(*test_fn)(int idx),\n
      \                  int num, int subtest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: subtest_level
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int subtest_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:85,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:88,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: should_report_leaks
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 0
    functionsReached:
    - strcmp
    - getenv
    linkageType: ''
    returnType: int
    signature: int should_report_leaks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: gcd
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gcd(int a, int b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:104,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:105,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:107,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:110,1
    - Dst: time
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:112,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:113,1
    - Dst: subtest_level
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:113,1
    - Dst: test_flush_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:114,1
    - Dst: test_random_seed
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:115,1
    - Dst: should_report_leaks
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:119,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:120,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: setup_test_framework
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 1
    functionsReached:
    - time
    - getenv
    - CRYPTO_mem_ctrl
    - atoi
    - subtest_level
    - test_random_seed
    - CRYPTO_set_mem_debug
    - test_flush_stdout
    - test_printf_stdout
    - should_report_leaks
    linkageType: ''
    returnType: void
    signature: void setup_test_framework()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_test_title
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:128,1
    - Dst: should_report_leaks
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:130,1
    - Dst: CRYPTO_mem_leaks_cb
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: pulldown_test_framework
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 1
    functionsReached:
    - set_test_title
    - CRYPTO_mem_leaks_cb
    - should_report_leaks
    linkageType: ''
    returnType: int
    signature: int pulldown_test_framework(int ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:141,1
    - Dst: ERR_print_errors_cb
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - success
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: finalize
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors_cb
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: void finalize(int success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:150,1
    - Dst: strdup
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - title
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: set_test_title
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 1
    functionsReached:
    - strdup
    - free
    linkageType: ''
    returnType: void
    signature: void set_test_title(const char *title)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_flush_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:158,1
    - Dst: test_flush_stderr
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:159,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:161,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:163,1
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:164,1
    - Dst: test_vprintf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:165,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:166,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:168,1
    - Dst: test_flush_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pass
    - extra
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 170
    functionName: test_verdict
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 0
    functionsReached:
    - va_start
    - test_flush_stderr
    - test_vprintf_stdout
    - test_flush_stdout
    - va_end
    - test_printf_stdout
    linkageType: ''
    returnType: void
    signature: void test_verdict(int pass, const char *extra, ...)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:177,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:180,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:184,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:185,1
    - Dst: test_flush_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:187,1
    - Dst: test_random
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:193,1
    - Dst: set_test_title
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:204,1
    - Dst: test_fn
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:205,1
    - Dst: test_verdict
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:212,1
    - Dst: finalize
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:213,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:219,1
    - Dst: test_printf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:221,1
    - Dst: test_flush_stdout
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:223,1
    - Dst: test_random
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:231,1
    - Dst: gcd
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:232,1
    - Dst: set_test_title
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:238,1
    - Dst: param_test_fn
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:239,1
    - Dst: finalize
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:244,1
    - Dst: test_verdict
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:253,1
    - Dst: test_verdict
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:255,1
    - Dst: test_verdict
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:266,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 1
    argNames:
    - test_prog_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 273
    functionName: run_tests
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - test_random
    - test_verdict
    - param_test_fn
    - test_flush_stdout
    - finalize
    - set_test_title
    - gcd
    - test_printf_stdout
    - test_fn
    linkageType: ''
    returnType: int
    signature: int run_tests(const char *test_prog_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:286,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:291,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:291,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:295,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - list
    - out_len
    argTypes:
    - char*[]
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 298
    functionName: glue_strings
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 2
    functionsReached:
    - TEST_ptr
    - OPENSSL_malloc
    - strcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *glue_strings(const char *list[], size_t *out_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:307,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:307,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:307,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:308,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:311,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:312,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/test/testutil/driver.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dir
    - file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: test_mk_file_path
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/driver.c
    functionUses: 4
    functionsReached:
    - OPENSSL_strlcpy
    - OPENSSL_strlcat
    - OPENSSL_zalloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char *test_mk_file_path(const char *dir, const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:21,1
    - Dst: set_test_title
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:22,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:23,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:24,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - testfile
    argTypes:
    - STANZA*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: test_start_file
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/stanza.c
    functionUses: 2
    functionsReached:
    - TEST_ptr
    - set_test_title
    - TEST_info
    - memset
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_start_file(STANZA *s, const char *testfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:32,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: test_end_file
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/stanza.c
    functionUses: 2
    functionsReached:
    - TEST_info
    - BIO_free
    linkageType: ''
    returnType: int
    signature: int test_end_file(STANZA *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:46,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:46,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:46,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:48,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:48,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:53,1
    - Dst: TEST_int_gt
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:55,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:55,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:57,1
    - Dst: TEST_error
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: read_key
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/stanza.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - BIO_s_mem
    - BIO_reset
    - BIO_puts
    - TEST_error
    - TEST_int_gt
    - BIO_gets
    - strncmp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int read_key(STANZA *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:73,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:78,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: strip_spaces
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/stanza.c
    functionUses: 0
    functionsReached:
    - isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strip_spaces(char *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:91,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:93,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:93,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:94,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:108,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:108,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:109,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:113,1
    - Dst: strip_spaces
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:113,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:114,1
    - Dst: strip_spaces
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:117,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:120,1
    - Dst: TEST_info
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:121,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:128,1
    - Dst: read_key
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:129,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:132,1
    - Dst: read_key
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:133,1
    - Dst: TEST_int_lt
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:137,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:138,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:138,1
    - Dst: TEST_ptr
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:139,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:139,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 146
    functionName: test_readstanza
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/stanza.c
    functionUses: 2
    functionsReached:
    - read_key
    - TEST_int_lt
    - strcmp
    - TEST_ptr
    - strchr
    - OPENSSL_strdup
    - TEST_info
    - strip_spaces
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int test_readstanza(STANZA *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/test/testutil/stanza.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: test_clearstanza
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/stanza.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void test_clearstanza(STANZA *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: global_init
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/testutil_init.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/testutil/output_helpers.c:17,1
    - Dst: test_vprintf_stdout
      Src: /src/openssl-1.1.1g/test/testutil/output_helpers.c:18,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/testutil/output_helpers.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: test_printf_stdout
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/output_helpers.c
    functionUses: 4
    functionsReached:
    - va_start
    - va_end
    - test_vprintf_stdout
    linkageType: ''
    returnType: int
    signature: int test_printf_stdout(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/test/testutil/output_helpers.c:29,1
    - Dst: test_vprintf_stderr
      Src: /src/openssl-1.1.1g/test/testutil/output_helpers.c:30,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/test/testutil/output_helpers.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: test_printf_stderr
    functionSourceFile: /src/openssl-1.1.1g/test/testutil/output_helpers.c
    functionUses: 21
    functionsReached:
    - va_start
    - va_end
    - test_vprintf_stderr
    linkageType: ''
    returnType: int
    signature: int test_printf_stderr(const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:25,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:26,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:28,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:29,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:30,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:31,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:32,1
    - Dst: PEM_read_X509
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:34,1
    - Dst: rewind
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:35,1
    - Dst: PEM_read_PrivateKey
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:36,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:37,1
    - Dst: PKCS12_create
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:38,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:40,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:41,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:42,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:44,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:45,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:46,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:47,1
    - Dst: i2d_PKCS12_fp
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:49,1
    - Dst: PKCS12_free
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:50,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 53
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/pkcs12/pkwrite.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - rewind
    - PKCS12_create
    - PEM_read_X509
    - fclose
    - PKCS12_free
    - ERR_print_errors_fp
    - exit
    - fopen
    - i2d_PKCS12_fp
    - ERR_load_crypto_strings
    - PEM_read_PrivateKey
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:20,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:24,1
    - Dst: PKCS12_unpack_authsafes
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:27,1
    - Dst: sk_PKCS7_num
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:30,1
    - Dst: sk_PKCS7_value
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:31,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:32,1
    - Dst: PKCS12_unpack_p7data
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:33,1
    - Dst: sk_PKCS12_SAFEBAG_num
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:36,1
    - Dst: sk_PKCS12_SAFEBAG_value
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:37,1
    - Dst: PKCS12_get_friendlyname
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:38,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:40,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:43,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - p12
    argTypes:
    - PKCS12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 46
    functionName: find_friendly_name
    functionSourceFile: /src/openssl-1.1.1g/demos/pkcs12/pkread.c
    functionUses: 0
    functionsReached:
    - sk_PKCS7_pop_free
    - sk_PKCS7_num
    - PKCS12_get_friendlyname
    - sk_PKCS12_SAFEBAG_pop_free
    - sk_PKCS12_SAFEBAG_num
    - STACK_OF
    - sk_PKCS12_SAFEBAG_value
    - PKCS12_unpack_authsafes
    - sk_PKCS7_value
    - OBJ_obj2nid
    - PKCS12_unpack_p7data
    linkageType: ''
    returnType: char
    signature: char *find_friendly_name(PKCS12 *p12)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:53,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:59,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:60,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:63,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:64,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:65,1
    - Dst: d2i_PKCS12_fp
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:67,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:68,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:70,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:71,1
    - Dst: PKCS12_parse
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:74,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:75,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:76,1
    - Dst: find_friendly_name
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:79,1
    - Dst: PKCS12_free
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:80,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:81,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:82,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:86,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:88,1
    - Dst: PEM_write_PrivateKey
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:89,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:92,1
    - Dst: PEM_write_X509_AUX
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:93,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:95,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:96,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:97,1
    - Dst: PEM_write_X509_AUX
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:98,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:98,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:100,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:105,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:106,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:107,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/demos/pkcs12/pkread.c:108,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 111
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/pkcs12/pkread.c
    functionUses: 0
    functionsReached:
    - X509_free
    - find_friendly_name
    - fclose
    - PKCS12_free
    - d2i_PKCS12_fp
    - PEM_write_PrivateKey
    - STACK_OF
    - OPENSSL_free
    - ERR_print_errors_fp
    - exit
    - sk_X509_num
    - PKCS12_parse
    - fopen
    - EVP_PKEY_free
    - sk_X509_pop_free
    - sk_X509_value
    - fprintf
    - PEM_write_X509_AUX
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:55,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:56,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:57,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:58,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:60,1
    - Dst: EVP_aes_192_ccm
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:60,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:62,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:65,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:67,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:69,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:71,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:73,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:75,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:76,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:78,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:80,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:82,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:83,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 85
    functionName: aes_ccm_encrypt
    functionSourceFile: /src/openssl-1.1.1g/demos/evp/aesccm.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - EVP_aes_192_ccm
    - EVP_EncryptFinal_ex
    - EVP_EncryptUpdate
    - BIO_dump_fp
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_free
    - printf
    linkageType: ''
    returnType: void
    signature: void aes_ccm_encrypt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:92,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:93,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:94,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:95,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:97,1
    - Dst: EVP_aes_192_ccm
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:97,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:99,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:102,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:105,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:107,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:109,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:111,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:114,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:115,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:117,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 119
    functionName: aes_ccm_decrypt
    functionSourceFile: /src/openssl-1.1.1g/demos/evp/aesccm.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - EVP_aes_192_ccm
    - EVP_DecryptUpdate
    - BIO_dump_fp
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - EVP_DecryptInit_ex
    - printf
    linkageType: ''
    returnType: void
    signature: void aes_ccm_decrypt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_ccm_encrypt
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:123,1
    - Dst: aes_ccm_decrypt
      Src: /src/openssl-1.1.1g/demos/evp/aesccm.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/evp/aesccm.c
    functionUses: 0
    functionsReached:
    - aes_ccm_encrypt
    - aes_ccm_decrypt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:55,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:56,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:57,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:58,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:60,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:60,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:62,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:64,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:66,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:68,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:70,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:71,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:73,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:75,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:77,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:78,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 80
    functionName: aes_gcm_encrypt
    functionSourceFile: /src/openssl-1.1.1g/demos/evp/aesgcm.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - EVP_EncryptFinal_ex
    - EVP_aes_256_gcm
    - EVP_EncryptUpdate
    - BIO_dump_fp
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_free
    - printf
    linkageType: ''
    returnType: void
    signature: void aes_gcm_encrypt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:87,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:88,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:89,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:90,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:92,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:92,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:94,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:96,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:98,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:100,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:102,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:103,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:105,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:108,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:113,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 115
    functionName: aes_gcm_decrypt
    functionSourceFile: /src/openssl-1.1.1g/demos/evp/aesgcm.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - EVP_aes_256_gcm
    - EVP_DecryptUpdate
    - BIO_dump_fp
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - EVP_DecryptInit_ex
    - EVP_DecryptFinal_ex
    - printf
    linkageType: ''
    returnType: void
    signature: void aes_gcm_decrypt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_gcm_encrypt
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:119,1
    - Dst: aes_gcm_decrypt
      Src: /src/openssl-1.1.1g/demos/evp/aesgcm.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/evp/aesgcm.c
    functionUses: 0
    functionsReached:
    - aes_gcm_decrypt
    - aes_gcm_encrypt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:23,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:24,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:26,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:31,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:33,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:35,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:37,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:39,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:44,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:46,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:48,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:53,1
    - Dst: CMS_sign
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:58,1
    - Dst: CMS_add1_signer
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:65,1
    - Dst: CMS_add1_signer
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:68,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:71,1
    - Dst: SMIME_write_CMS
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:77,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:85,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:86,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:89,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:90,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:91,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:92,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:93,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:94,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:95,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign2.c:96,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 15
    functionDepth: 6
    functionLinenumber: 15
    functionLinenumberEnd: 98
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/cms/cms_sign2.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - CMS_sign
    - CMS_add1_signer
    - BIO_reset
    - SMIME_write_CMS
    - PEM_read_bio_PrivateKey
    - ERR_print_errors_fp
    - PEM_read_bio_X509
    - BIO_new_file
    - BIO_free
    - EVP_PKEY_free
    - ERR_load_crypto_strings
    - fprintf
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:26,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:27,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:30,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:35,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:37,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:39,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:46,1
    - Dst: PEM_read_bio_CMS
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:52,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:58,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:63,1
    - Dst: CMS_decrypt
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:68,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:76,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:77,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:80,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:81,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:82,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:83,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:84,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:85,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ddec.c:86,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 18
    functionDepth: 9
    functionLinenumber: 18
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/cms/cms_ddec.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - BIO_reset
    - ERR_print_errors_fp
    - PEM_read_bio_PrivateKey
    - PEM_read_bio_CMS
    - PEM_read_bio_X509
    - BIO_new_file
    - CMS_decrypt
    - EVP_PKEY_free
    - BIO_free
    - ERR_load_crypto_strings
    - fprintf
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:19,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:29,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:30,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:33,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:38,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:44,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:46,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:57,1
    - Dst: CMS_encrypt
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:63,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:63,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:68,1
    - Dst: SMIME_write_CMS
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:73,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:81,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:82,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:85,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:86,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:87,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:88,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:89,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_enc.c:90,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 15
    functionDepth: 6
    functionLinenumber: 15
    functionLinenumberEnd: 92
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - sk_X509_push
    - sk_X509_new_null
    - EVP_des_ede3_cbc
    - CMS_encrypt
    - STACK_OF
    - SMIME_write_CMS
    - ERR_print_errors_fp
    - PEM_read_bio_X509
    - BIO_new_file
    - BIO_free
    - sk_X509_pop_free
    - ERR_load_crypto_strings
    - fprintf
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:24,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:25,1
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:29,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:32,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:37,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:42,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:47,1
    - Dst: SMIME_read_CMS
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:53,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:59,1
    - Dst: CMS_verify
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:63,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:64,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:68,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:75,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:76,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:79,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:80,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:81,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:82,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_ver.c:83,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 15
    functionDepth: 6
    functionLinenumber: 15
    functionLinenumberEnd: 85
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/cms/cms_ver.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - CMS_verify
    - X509_STORE_add_cert
    - X509_STORE_new
    - ERR_print_errors_fp
    - PEM_read_bio_X509
    - BIO_new_file
    - BIO_free
    - ERR_load_crypto_strings
    - SMIME_read_CMS
    - fprintf
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:22,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:28,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:29,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:32,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:37,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:43,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:45,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:56,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:58,1
    - Dst: CMS_encrypt
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:64,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:64,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:69,1
    - Dst: CMS_final
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:73,1
    - Dst: PEM_write_bio_CMS
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:77,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:85,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:86,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:89,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:90,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:91,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:92,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:93,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:94,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_denc.c:95,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 18
    functionDepth: 7
    functionLinenumber: 18
    functionLinenumberEnd: 97
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/cms/cms_denc.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - sk_X509_push
    - sk_X509_new_null
    - EVP_des_ede3_cbc
    - CMS_encrypt
    - CMS_final
    - PEM_write_bio_CMS
    - STACK_OF
    - ERR_print_errors_fp
    - PEM_read_bio_X509
    - BIO_new_file
    - BIO_free
    - sk_X509_pop_free
    - ERR_load_crypto_strings
    - fprintf
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:23,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:24,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:27,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:32,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:34,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:36,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:43,1
    - Dst: SMIME_read_CMS
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:49,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:54,1
    - Dst: CMS_decrypt
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:59,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:67,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:68,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:71,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:72,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:73,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:74,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:75,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_dec.c:76,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/cms/cms_dec.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - BIO_reset
    - ERR_print_errors_fp
    - PEM_read_bio_PrivateKey
    - PEM_read_bio_X509
    - BIO_new_file
    - CMS_decrypt
    - EVP_PKEY_free
    - BIO_free
    - ERR_load_crypto_strings
    - SMIME_read_CMS
    - fprintf
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:27,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:28,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:32,1
    - Dst: CMS_compress
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:38,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:43,1
    - Dst: SMIME_write_CMS
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:48,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:56,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:57,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:60,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:61,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_comp.c:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 15
    functionDepth: 8
    functionLinenumber: 15
    functionLinenumberEnd: 64
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/cms/cms_comp.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - CMS_compress
    - SMIME_write_CMS
    - ERR_print_errors_fp
    - BIO_new_file
    - BIO_free
    - ERR_load_crypto_strings
    - fprintf
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:21,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:22,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:26,1
    - Dst: SMIME_read_CMS
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:32,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:37,1
    - Dst: CMS_uncompress
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:42,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:50,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:51,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:54,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:55,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/cms/cms_uncomp.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - ERR_print_errors_fp
    - CMS_ContentInfo_free
    - BIO_new_file
    - BIO_free
    - ERR_load_crypto_strings
    - SMIME_read_CMS
    - fprintf
    - CMS_uncompress
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:30,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:31,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:34,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:39,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:41,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:43,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:50,1
    - Dst: CMS_sign
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:56,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:61,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:66,1
    - Dst: SMIME_write_CMS
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:69,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:77,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:78,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:81,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:82,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:83,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:84,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:85,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/cms/cms_sign.c:86,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 15
    functionDepth: 6
    functionLinenumber: 15
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/cms/cms_sign.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - CMS_sign
    - BIO_reset
    - SMIME_write_CMS
    - PEM_read_bio_PrivateKey
    - ERR_print_errors_fp
    - PEM_read_bio_X509
    - BIO_new_file
    - BIO_free
    - EVP_PKEY_free
    - ERR_load_crypto_strings
    - fprintf
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:30,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:31,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:34,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:39,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:41,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:43,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:50,1
    - Dst: PKCS7_sign
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:56,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:61,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:66,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:69,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:76,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:77,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:79,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:80,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:81,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:82,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:83,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign.c:84,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/smime/smsign.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - EVP_PKEY_free
    - PKCS7_free
    - BIO_reset
    - ERR_print_errors_fp
    - PEM_read_bio_PrivateKey
    - SMIME_write_PKCS7
    - PEM_read_bio_X509
    - BIO_new_file
    - BIO_free
    - PKCS7_sign
    - ERR_load_crypto_strings
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:23,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:24,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:27,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:32,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:34,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:36,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:43,1
    - Dst: SMIME_read_PKCS7
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:49,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:54,1
    - Dst: PKCS7_decrypt
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:59,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:66,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:67,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:69,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:70,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:71,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:72,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:73,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smdec.c:74,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/smime/smdec.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - PKCS7_free
    - BIO_reset
    - ERR_print_errors_fp
    - PEM_read_bio_PrivateKey
    - SMIME_read_PKCS7
    - PEM_read_bio_X509
    - BIO_new_file
    - BIO_free
    - EVP_PKEY_free
    - PKCS7_decrypt
    - ERR_load_crypto_strings
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:23,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:24,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:26,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:31,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:33,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:35,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:37,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:39,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:44,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:46,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:48,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:53,1
    - Dst: PKCS7_sign
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:58,1
    - Dst: PKCS7_sign_add_signer
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:65,1
    - Dst: PKCS7_sign_add_signer
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:68,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:71,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:77,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:84,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:85,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:87,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:88,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:89,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:90,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:91,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:92,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:93,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smsign2.c:94,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 96
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/smime/smsign2.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - EVP_PKEY_free
    - PKCS7_free
    - PKCS7_sign_add_signer
    - BIO_reset
    - ERR_print_errors_fp
    - PEM_read_bio_PrivateKey
    - SMIME_write_PKCS7
    - PEM_read_bio_X509
    - BIO_new_file
    - BIO_free
    - PKCS7_sign
    - ERR_load_crypto_strings
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:19,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:29,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:30,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:33,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:38,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:44,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:46,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:57,1
    - Dst: PKCS7_encrypt
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:63,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:63,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:68,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:73,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:80,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:81,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:83,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:84,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:85,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:86,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:87,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smenc.c:88,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 91
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/smime/smenc.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - sk_X509_push
    - sk_X509_new_null
    - EVP_des_ede3_cbc
    - PKCS7_free
    - STACK_OF
    - ERR_print_errors_fp
    - SMIME_write_PKCS7
    - PEM_read_bio_X509
    - BIO_new_file
    - PKCS7_encrypt
    - BIO_free
    - sk_X509_pop_free
    - ERR_load_crypto_strings
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:24,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:25,1
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:29,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:32,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:37,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:42,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:47,1
    - Dst: SMIME_read_PKCS7
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:53,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:59,1
    - Dst: PKCS7_verify
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:63,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:64,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:68,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:74,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:75,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:77,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:78,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:79,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:80,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/smime/smver.c:81,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 83
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/smime/smver.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_algorithms
    - X509_free
    - X509_STORE_add_cert
    - X509_STORE_new
    - PKCS7_verify
    - PKCS7_free
    - ERR_print_errors_fp
    - SMIME_read_PKCS7
    - PEM_read_bio_X509
    - BIO_new_file
    - BIO_free
    - ERR_load_crypto_strings
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:24,1
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:29,1
    - Dst: NCONF_load
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:31,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:33,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:35,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:39,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:42,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:46,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:46,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:47,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:48,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:49,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:50,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:51,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:52,1
    - Dst: SSL_CONF_cmd
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:53,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:57,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:59,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:62,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:65,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:70,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:71,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:72,1
    - Dst: BIO_new_ssl_connect
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:82,1
    - Dst: BIO_get_ssl
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:84,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:87,1
    - Dst: SSL_set_mode
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:92,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:96,1
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:98,1
    - Dst: BIO_do_connect
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:99,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:100,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:101,1
    - Dst: BIO_do_handshake
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:105,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:106,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:107,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:113,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:115,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:118,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:121,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:122,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:123,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/demos/bio/client-conf.c:124,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 82
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 15
    functionDepth: 6
    functionLinenumber: 15
    functionLinenumberEnd: 126
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/bio/client-conf.c
    functionUses: 0
    functionsReached:
    - BIO_do_handshake
    - NCONF_new
    - sk_CONF_VALUE_num
    - BIO_new_fp
    - STACK_OF
    - ERR_print_errors_fp
    - SSL_CONF_CTX_new
    - fprintf
    - NCONF_get_section
    - strcmp
    - NCONF_free
    - TLS_client_method
    - BIO_puts
    - BIO_free
    - BIO_do_connect
    - BIO_get_ssl
    - BIO_read
    - NCONF_load
    - SSL_CONF_cmd
    - SSL_CONF_CTX_free
    - BIO_new_ssl_connect
    - SSL_set_mode
    - sk_CONF_VALUE_value
    - BIO_free_all
    - SSL_CONF_CTX_finish
    - BIO_write
    - SSL_CONF_CTX_set_ssl_ctx
    - SSL_CONF_CTX_set_flags
    - SSL_CTX_new
    - BIO_set_conn_hostname
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:32,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:38,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:38,1
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:40,1
    - Dst: NCONF_load
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:42,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:44,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:46,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:50,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:53,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:57,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:58,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:59,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:60,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:61,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:62,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:64,1
    - Dst: SSL_CONF_cmd
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:65,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:69,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:71,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:74,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:77,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:82,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:83,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:84,1
    - Dst: BIO_new_ssl
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:89,1
    - Dst: BIO_new_accept
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:91,1
    - Dst: BIO_set_accept_bios
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:99,1
    - Dst: BIO_do_accept
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:108,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:112,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:119,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:120,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:121,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:125,1
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:129,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:130,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:136,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/bio/server-conf.c:137,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 139
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/bio/server-conf.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - NCONF_new
    - sk_CONF_VALUE_num
    - STACK_OF
    - ERR_print_errors_fp
    - SSL_CONF_CTX_new
    - BIO_should_retry
    - printf
    - fprintf
    - BIO_new_ssl
    - NCONF_get_section
    - strcmp
    - BIO_pop
    - BIO_set_accept_bios
    - BIO_free
    - BIO_read
    - NCONF_load
    - SSL_CONF_cmd
    - sk_CONF_VALUE_value
    - BIO_do_accept
    - BIO_free_all
    - SSL_CONF_CTX_finish
    - fflush
    - SSL_CONF_CTX_set_ssl_ctx
    - fwrite
    - SSL_CONF_CTX_set_flags
    - BIO_new_accept
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: interrupt
    functionSourceFile: /src/openssl-1.1.1g/demos/bio/saccept.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void interrupt(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:44,1
    - Dst: sigaction
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: sigsetup
    functionSourceFile: /src/openssl-1.1.1g/demos/bio/saccept.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - sigaction
    linkageType: ''
    returnType: void
    signature: void sigsetup(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:62,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:62,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:63,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:65,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:67,1
    - Dst: BIO_new_ssl
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:71,1
    - Dst: BIO_new_accept
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:73,1
    - Dst: BIO_set_accept_bios
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:81,1
    - Dst: sigsetup
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:84,1
    - Dst: BIO_do_accept
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:93,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:97,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:104,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:105,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:106,1
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:111,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:112,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:118,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/bio/saccept.c:119,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 121
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/bio/saccept.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - fflush
    - BIO_new_ssl
    - sigsetup
    - BIO_pop
    - SSL_CTX_use_certificate_chain_file
    - SSL_CTX_use_PrivateKey_file
    - BIO_set_accept_bios
    - fwrite
    - ERR_print_errors_fp
    - BIO_free
    - SSL_CTX_check_private_key
    - BIO_do_accept
    - BIO_new_accept
    - SSL_CTX_new
    - printf
    - BIO_free_all
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:35,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:35,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:37,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:38,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:39,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:40,1
    - Dst: SSL_CONF_cmd_argv
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:44,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:46,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:50,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:51,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:58,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:61,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:68,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:73,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:74,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:75,1
    - Dst: SSL_CTX_set_current_cert
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:85,1
    - Dst: SSL_CTX_get0_certificate
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:87,1
    - Dst: X509_NAME_print_ex_fp
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:88,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:88,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:90,1
    - Dst: SSL_CTX_set_current_cert
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:91,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:93,1
    - Dst: BIO_new_ssl
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:97,1
    - Dst: BIO_new_accept
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:99,1
    - Dst: BIO_set_accept_bios
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:107,1
    - Dst: BIO_do_accept
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:116,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:120,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:127,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:128,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:129,1
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:134,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:135,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:141,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/bio/server-arg.c:142,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 144
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/bio/server-arg.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_CTX_get0_certificate
    - SSL_CTX_set_current_cert
    - SSL_CONF_cmd_argv
    - ERR_print_errors_fp
    - SSL_CONF_CTX_new
    - X509_get_subject_name
    - X509_NAME_print_ex_fp
    - printf
    - fprintf
    - BIO_new_ssl
    - strcmp
    - BIO_pop
    - BIO_set_accept_bios
    - BIO_free
    - BIO_read
    - BIO_do_accept
    - BIO_free_all
    - SSL_CONF_CTX_finish
    - fflush
    - SSL_CONF_CTX_set_ssl_ctx
    - fwrite
    - SSL_CONF_CTX_set_flags
    - BIO_new_accept
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:26,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:26,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:27,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:28,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:29,1
    - Dst: SSL_CONF_cmd_argv
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:33,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:35,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:39,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:40,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:47,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:50,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:57,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:62,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:63,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:64,1
    - Dst: BIO_new_ssl_connect
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:74,1
    - Dst: BIO_get_ssl
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:76,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:79,1
    - Dst: SSL_set_mode
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:84,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:88,1
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:90,1
    - Dst: BIO_do_connect
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:91,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:92,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:93,1
    - Dst: BIO_do_handshake
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:97,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:98,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:99,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:105,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:107,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:110,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:113,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:114,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/bio/client-arg.c:115,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 14
    functionDepth: 6
    functionLinenumber: 14
    functionLinenumberEnd: 117
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/bio/client-arg.c
    functionUses: 0
    functionsReached:
    - BIO_do_handshake
    - BIO_new_fp
    - SSL_CONF_cmd_argv
    - ERR_print_errors_fp
    - SSL_CONF_CTX_new
    - fprintf
    - strcmp
    - TLS_client_method
    - BIO_puts
    - BIO_free
    - BIO_do_connect
    - BIO_get_ssl
    - BIO_read
    - SSL_CONF_CTX_free
    - BIO_new_ssl_connect
    - SSL_set_mode
    - BIO_free_all
    - SSL_CONF_CTX_finish
    - BIO_write
    - SSL_CONF_CTX_set_ssl_ctx
    - SSL_CONF_CTX_set_flags
    - SSL_CTX_new
    - BIO_set_conn_hostname
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:46,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:47,1
    - Dst: dbug_init
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:51,1
    - Dst: sock_init
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:52,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:55,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:55,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:58,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:59,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:62,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:63,1
    - Dst: SSL_set1_host
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:66,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:70,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:70,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:71,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:74,1
    - Dst: BIO_s_connect
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:74,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:75,1
    - Dst: BIO_set_nbio
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:76,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:77,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:80,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:84,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:86,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:87,1
    - Dst: sleep
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:88,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:101,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:105,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:106,1
    - Dst: sleep
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:107,1
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:112,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:119,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:120,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:121,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:123,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:126,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/demos/bio/sconnect.c:127,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 28
    functionDepth: 6
    functionLinenumber: 28
    functionLinenumberEnd: 129
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/bio/sconnect.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors_fp
    - sleep
    - SSL_CTX_load_verify_locations
    - SSL_set_connect_state
    - dbug_init
    - BIO_should_retry
    - perror
    - fprintf
    - ERR_peek_error
    - TLS_client_method
    - BIO_f_ssl
    - BIO_s_connect
    - BIO_set_ssl
    - BIO_push
    - SSL_new
    - BIO_set_nbio
    - SSL_set1_host
    - BIO_read
    - SSL_CTX_set_verify
    - strchr
    - OPENSSL_strdup
    - BIO_new
    - BIO_free_all
    - BIO_write
    - sock_init
    - fwrite
    - SSL_CTX_new
    - SSL_CTX_free
    - strlen
    - BIO_set_conn_hostname
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:31,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:31,1
    - Dst: CONF_modules_load_file
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:33,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:34,1
    - Dst: SSL_CTX_config
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:38,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:39,1
    - Dst: BIO_new_ssl
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:44,1
    - Dst: BIO_new_accept
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:46,1
    - Dst: BIO_set_accept_bios
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:54,1
    - Dst: BIO_do_accept
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:63,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:67,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:74,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:75,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:76,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:80,1
    - Dst: fwrite
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:84,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:85,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:91,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/demos/bio/server-cmod.c:92,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 94
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/demos/bio/server-cmod.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - BIO_should_retry
    - SSL_CTX_config
    - fflush
    - BIO_new_ssl
    - BIO_pop
    - BIO_free_all
    - BIO_set_accept_bios
    - fwrite
    - ERR_print_errors_fp
    - BIO_free
    - CONF_modules_load_file
    - BIO_do_accept
    - BIO_new_accept
    - SSL_CTX_new
    - printf
    - fprintf
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 72
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/ecparam.c:91,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/ecparam.c:92,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:97,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/ecparam.c:100,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/ecparam.c:104,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ecparam.c:104,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ecparam.c:108,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/ecparam.c:111,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ecparam.c:111,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ecparam.c:115,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ecparam.c:136,1
    - Dst: opt_pair
      Src: /src/openssl-1.1.1g/apps/ecparam.c:139,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ecparam.c:139,1
    - Dst: opt_pair
      Src: /src/openssl-1.1.1g/apps/ecparam.c:145,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ecparam.c:145,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/ecparam.c:153,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/ecparam.c:157,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ecparam.c:157,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/ecparam.c:161,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ecparam.c:167,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/ecparam.c:170,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-1.1.1g/apps/ecparam.c:176,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ecparam.c:179,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-1.1.1g/apps/ecparam.c:180,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:181,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/ecparam.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:195,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:196,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:199,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ecparam.c:212,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:213,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ecparam.c:216,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:217,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/apps/ecparam.c:221,1
    - Dst: EC_curve_nist2nid
      Src: /src/openssl-1.1.1g/apps/ecparam.c:225,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:228,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-1.1.1g/apps/ecparam.c:232,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:234,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-1.1.1g/apps/ecparam.c:237,1
    - Dst: EC_GROUP_set_point_conversion_form
      Src: /src/openssl-1.1.1g/apps/ecparam.c:238,1
    - Dst: d2i_ECPKParameters_bio
      Src: /src/openssl-1.1.1g/apps/ecparam.c:240,1
    - Dst: PEM_read_bio_ECPKParameters
      Src: /src/openssl-1.1.1g/apps/ecparam.c:242,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:245,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ecparam.c:246,1
    - Dst: EC_GROUP_set_point_conversion_form
      Src: /src/openssl-1.1.1g/apps/ecparam.c:251,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-1.1.1g/apps/ecparam.c:254,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-1.1.1g/apps/ecparam.c:257,1
    - Dst: ECPKParameters_print
      Src: /src/openssl-1.1.1g/apps/ecparam.c:261,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:266,1
    - Dst: EC_GROUP_check
      Src: /src/openssl-1.1.1g/apps/ecparam.c:267,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:268,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ecparam.c:269,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:272,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/apps/ecparam.c:280,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/ecparam.c:282,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/ecparam.c:283,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/ecparam.c:284,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/ecparam.c:285,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/ecparam.c:286,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/ecparam.c:287,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/ecparam.c:288,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/apps/ecparam.c:292,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:294,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-1.1.1g/apps/ecparam.c:298,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-1.1.1g/apps/ecparam.c:301,1
    - Dst: EC_POINT_point2bn
      Src: /src/openssl-1.1.1g/apps/ecparam.c:303,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openssl-1.1.1g/apps/ecparam.c:304,1
    - Dst: EC_GROUP_get_order
      Src: /src/openssl-1.1.1g/apps/ecparam.c:307,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-1.1.1g/apps/ecparam.c:309,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/apps/ecparam.c:315,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/apps/ecparam.c:317,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/apps/ecparam.c:319,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/apps/ecparam.c:321,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/apps/ecparam.c:323,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/apps/ecparam.c:325,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/apps/ecparam.c:327,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ecparam.c:330,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:332,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/ecparam.c:333,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/ecparam.c:334,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/ecparam.c:335,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/ecparam.c:336,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/ecparam.c:337,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/ecparam.c:338,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:339,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:347,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:349,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:351,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:353,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:356,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:357,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:359,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:360,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:362,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:364,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:366,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:370,1
    - Dst: i2d_ECPKParameters_bio
      Src: /src/openssl-1.1.1g/apps/ecparam.c:388,1
    - Dst: PEM_write_bio_ECPKParameters
      Src: /src/openssl-1.1.1g/apps/ecparam.c:390,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:392,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ecparam.c:394,1
    - Dst: EC_KEY_new
      Src: /src/openssl-1.1.1g/apps/ecparam.c:400,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-1.1.1g/apps/ecparam.c:405,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:406,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:407,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ecparam.c:408,1
    - Dst: EC_KEY_set_conv_form
      Src: /src/openssl-1.1.1g/apps/ecparam.c:413,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-1.1.1g/apps/ecparam.c:415,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ecparam.c:416,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:417,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ecparam.c:418,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/ecparam.c:421,1
    - Dst: i2d_ECPrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/ecparam.c:423,1
    - Dst: PEM_write_bio_ECPrivateKey
      Src: /src/openssl-1.1.1g/apps/ecparam.c:425,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:427,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:432,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:433,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:434,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:435,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:436,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:437,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:438,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:439,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/ecparam.c:440,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/ecparam.c:441,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ecparam.c:442,1
    CyclomaticComplexity: 111
    EdgeCount: 111
    ICount: 293
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/openssl-1.1.1g/apps/ecparam.c
    constantsTouched: []
    func_position:
      end: 444
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 444
    functionName: ecparam_main
    functionSourceFile: /src/openssl-1.1.1g/apps/ecparam.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_check
    - EC_GROUP_get_curve
    - EC_POINT_point2bn
    - EC_GROUP_get_cofactor
    - EC_KEY_generate_key
    - opt_pair
    - EC_KEY_set_group
    - opt_rand
    - PEM_write_bio_ECPrivateKey
    - i2d_ECPKParameters_bio
    - bio_open_default
    - PEM_read_bio_ECPKParameters
    - perror
    - EC_GROUP_get_point_conversion_form
    - EC_GROUP_get0_generator
    - strcmp
    - OPENSSL_free
    - bio_open_owner
    - EC_GROUP_new_by_curve_name
    - EC_METHOD_get_field_type
    - opt_arg
    - print_bignum_var
    - opt_next
    - BN_free
    - BIO_free
    - EC_GROUP_set_seed
    - d2i_ECPKParameters_bio
    - OBJ_nid2sn
    - app_malloc
    - EC_GROUP_get_order
    - OBJ_sn2nid
    - BN_new
    - release_engine
    - ERR_print_errors
    - EC_GROUP_free
    - EC_KEY_set_conv_form
    - assert
    - EC_GROUP_set_asn1_flag
    - EC_get_builtin_curves
    - opt_help
    - BIO_free_all
    - PEM_write_bio_ECPKParameters
    - EC_KEY_new
    - setup_engine
    - opt_num_rest
    - BN_num_bytes
    - i2d_ECPrivateKey_bio
    - ECPKParameters_print
    - EC_curve_nist2nid
    - EC_KEY_free
    - BIO_printf
    - BN_num_bits
    - opt_format
    - opt_init
    - EC_GROUP_set_point_conversion_form
    linkageType: ''
    returnType: int
    signature: int ecparam_main(int argc, char **argv)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/verify.c:66,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/verify.c:67,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/apps/verify.c:75,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/verify.c:78,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/verify.c:79,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/verify.c:83,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/verify.c:86,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/verify.c:87,1
    - Dst: X509_PURPOSE_get_count
      Src: /src/openssl-1.1.1g/apps/verify.c:88,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-1.1.1g/apps/verify.c:90,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/verify.c:91,1
    - Dst: X509_PURPOSE_get0_sname
      Src: /src/openssl-1.1.1g/apps/verify.c:92,1
    - Dst: X509_PURPOSE_get0_name
      Src: /src/openssl-1.1.1g/apps/verify.c:93,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/verify.c:96,1
    - Dst: X509_VERIFY_PARAM_get_count
      Src: /src/openssl-1.1.1g/apps/verify.c:97,1
    - Dst: X509_VERIFY_PARAM_get0
      Src: /src/openssl-1.1.1g/apps/verify.c:99,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/verify.c:100,1
    - Dst: X509_VERIFY_PARAM_get0_name
      Src: /src/openssl-1.1.1g/apps/verify.c:101,1
    - Dst: opt_verify
      Src: /src/openssl-1.1.1g/apps/verify.c:106,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/verify.c:111,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/verify.c:114,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/verify.c:124,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/verify.c:124,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/verify.c:132,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/verify.c:132,1
    - Dst: load_crls
      Src: /src/openssl-1.1.1g/apps/verify.c:138,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/verify.c:138,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/verify.c:146,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/verify.c:146,1
    - Dst: set_nameopt
      Src: /src/openssl-1.1.1g/apps/verify.c:155,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/verify.c:155,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/verify.c:163,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/verify.c:164,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/verify.c:166,1
    - Dst: setup_verify
      Src: /src/openssl-1.1.1g/apps/verify.c:172,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openssl-1.1.1g/apps/verify.c:174,1
    - Dst: X509_STORE_set1_param
      Src: /src/openssl-1.1.1g/apps/verify.c:177,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/verify.c:179,1
    - Dst: store_setup_crl_download
      Src: /src/openssl-1.1.1g/apps/verify.c:182,1
    - Dst: check
      Src: /src/openssl-1.1.1g/apps/verify.c:186,1
    - Dst: check
      Src: /src/openssl-1.1.1g/apps/verify.c:190,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/apps/verify.c:196,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/verify.c:197,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/verify.c:198,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/verify.c:199,1
    - Dst: sk_X509_CRL_pop_free
      Src: /src/openssl-1.1.1g/apps/verify.c:200,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/verify.c:201,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 120
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 203
    functionName: verify_main
    functionSourceFile: /src/openssl-1.1.1g/apps/verify.c
    functionUses: 0
    functionsReached:
    - X509_STORE_set1_param
    - load_certs
    - sk_X509_CRL_pop_free
    - STACK_OF
    - load_crls
    - X509_VERIFY_PARAM_free
    - X509_PURPOSE_get0
    - X509_VERIFY_PARAM_get0_name
    - X509_STORE_set_verify_cb
    - X509_STORE_free
    - X509_PURPOSE_get0_sname
    - opt_arg
    - opt_next
    - check
    - ERR_clear_error
    - store_setup_crl_download
    - X509_VERIFY_PARAM_new
    - set_nameopt
    - X509_PURPOSE_get_count
    - X509_VERIFY_PARAM_get0
    - X509_VERIFY_PARAM_get_count
    - release_engine
    - sk_X509_pop_free
    - opt_help
    - setup_engine
    - opt_num_rest
    - setup_verify
    - X509_PURPOSE_get0_name
    - opt_rest
    - opt_verify
    - BIO_printf
    - opt_init
    linkageType: ''
    returnType: int
    signature: int verify_main(int argc, char **argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/verify.c:212,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/verify.c:215,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-1.1.1g/apps/verify.c:219,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/verify.c:221,1
    - Dst: X509_STORE_set_flags
      Src: /src/openssl-1.1.1g/apps/verify.c:226,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/apps/verify.c:227,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/apps/verify.c:228,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/verify.c:229,1
    - Dst: X509_STORE_CTX_set0_trusted_stack
      Src: /src/openssl-1.1.1g/apps/verify.c:234,1
    - Dst: X509_STORE_CTX_set0_crls
      Src: /src/openssl-1.1.1g/apps/verify.c:236,1
    - Dst: X509_verify_cert
      Src: /src/openssl-1.1.1g/apps/verify.c:237,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/apps/verify.c:238,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/verify.c:239,1
    - Dst: X509_STORE_CTX_get1_chain
      Src: /src/openssl-1.1.1g/apps/verify.c:244,1
    - Dst: X509_STORE_CTX_get_num_untrusted
      Src: /src/openssl-1.1.1g/apps/verify.c:245,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/verify.c:246,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/verify.c:247,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/verify.c:248,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/verify.c:249,1
    - Dst: X509_NAME_print_ex_fp
      Src: /src/openssl-1.1.1g/apps/verify.c:250,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/verify.c:251,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/verify.c:252,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/verify.c:254,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/verify.c:255,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/verify.c:257,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/verify.c:260,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/apps/verify.c:262,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/verify.c:266,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/verify.c:267,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 6
    argNames:
    - ctx
    - file
    - uchain
    - tchain
    - crls
    - show_chain
    argTypes:
    - X509_STORE*
    - char*
    - STACK_OF*
    - STACK_OF*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 205
    functionDepth: 7
    functionLinenumber: 205
    functionLinenumberEnd: 270
    functionName: check
    functionSourceFile: /src/openssl-1.1.1g/apps/verify.c
    functionUses: 37
    functionsReached:
    - X509_STORE_CTX_get_error
    - STACK_OF
    - get_nameopt
    - X509_STORE_CTX_get_num_untrusted
    - X509_STORE_CTX_new
    - X509_get_subject_name
    - X509_NAME_print_ex_fp
    - printf
    - X509_free
    - X509_STORE_CTX_get1_chain
    - X509_STORE_CTX_free
    - X509_verify_cert
    - X509_STORE_CTX_set0_crls
    - X509_STORE_set_flags
    - sk_X509_pop_free
    - X509_STORE_CTX_init
    - sk_X509_num
    - ERR_print_errors
    - sk_X509_value
    - X509_STORE_CTX_set0_trusted_stack
    - load_cert
    linkageType: ''
    returnType: int
    signature: "int check(X509_STORE *ctx, const char *file,\n                 STACK_OF(X509)
      *uchain, STACK_OF(X509) *tchain,\n                 STACK_OF(X509_CRL) *crls,
      int show_chain)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/apps/verify.c:274,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openssl-1.1.1g/apps/verify.c:275,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/apps/verify.c:279,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/verify.c:280,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/verify.c:281,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/verify.c:282,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/verify.c:284,1
    - Dst: X509_STORE_CTX_get0_parent_ctx
      Src: /src/openssl-1.1.1g/apps/verify.c:285,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openssl-1.1.1g/apps/verify.c:287,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/apps/verify.c:288,1
    - Dst: policies_print
      Src: /src/openssl-1.1.1g/apps/verify.c:298,1
    - Dst: policies_print
      Src: /src/openssl-1.1.1g/apps/verify.c:318,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/verify.c:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 272
    functionDepth: 7
    functionLinenumber: 272
    functionLinenumberEnd: 322
    functionName: cb
    functionSourceFile: /src/openssl-1.1.1g/apps/verify.c
    functionUses: 68
    functionsReached:
    - X509_STORE_CTX_get_error
    - X509_NAME_print_ex
    - X509_STORE_CTX_get0_parent_ctx
    - X509_STORE_CTX_get_error_depth
    - policies_print
    - get_nameopt
    - X509_STORE_CTX_get_current_cert
    - BIO_printf
    - ERR_clear_error
    - X509_get_subject_name
    - X509_verify_cert_error_string
    linkageType: ''
    returnType: int
    signature: int cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/gendsa.c:56,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/gendsa.c:57,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/gendsa.c:62,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/gendsa.c:66,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/gendsa.c:69,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/gendsa.c:72,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/gendsa.c:75,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/gendsa.c:75,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/gendsa.c:78,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/gendsa.c:82,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/gendsa.c:82,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/gendsa.c:87,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/gendsa.c:88,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/gendsa.c:95,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/gendsa.c:96,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/gendsa.c:100,1
    - Dst: PEM_read_bio_DSAparams
      Src: /src/openssl-1.1.1g/apps/gendsa.c:104,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/gendsa.c:105,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/gendsa.c:108,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/gendsa.c:111,1
    - Dst: DSA_get0_pqg
      Src: /src/openssl-1.1.1g/apps/gendsa.c:115,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/apps/gendsa.c:117,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/gendsa.c:118,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/apps/gendsa.c:121,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/gendsa.c:123,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/apps/gendsa.c:123,1
    - Dst: DSA_generate_key
      Src: /src/openssl-1.1.1g/apps/gendsa.c:124,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/gendsa.c:127,1
    - Dst: PEM_write_bio_DSAPrivateKey
      Src: /src/openssl-1.1.1g/apps/gendsa.c:128,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/gendsa.c:133,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/gendsa.c:135,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/gendsa.c:136,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/apps/gendsa.c:137,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/gendsa.c:138,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/gendsa.c:139,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/openssl-1.1.1g/apps/gendsa.c
    constantsTouched: []
    func_position:
      end: 141
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 141
    functionName: gendsa_main
    functionSourceFile: /src/openssl-1.1.1g/apps/gendsa.c
    functionUses: 0
    functionsReached:
    - DSA_generate_key
    - opt_rand
    - app_passwd
    - bio_open_default
    - OPENSSL_free
    - opt_unknown
    - bio_open_owner
    - opt_arg
    - opt_next
    - BIO_free
    - PEM_write_bio_DSAPrivateKey
    - release_engine
    - assert
    - DSA_free
    - opt_help
    - BIO_free_all
    - setup_engine
    - opt_num_rest
    - opt_cipher
    - opt_rest
    - BIO_printf
    - BN_num_bits
    - DSA_get0_pqg
    - ERR_print_errors
    - opt_init
    - PEM_read_bio_DSAparams
    linkageType: ''
    returnType: int
    signature: int gendsa_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: app_tminterval
      Src: /src/openssl-1.1.1g/apps/s_time.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: tm_Time_F
    functionSourceFile: /src/openssl-1.1.1g/apps/s_time.c
    functionUses: 0
    functionsReached:
    - app_tminterval
    linkageType: ''
    returnType: double
    signature: double tm_Time_F(int s)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/apps/s_time.c:108,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/s_time.c:110,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/s_time.c:111,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:116,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/s_time.c:119,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:123,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/s_time.c:132,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:132,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:134,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:138,1
    - Dst: set_nameopt
      Src: /src/openssl-1.1.1g/apps/s_time.c:141,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:141,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:145,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:148,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:151,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:160,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:163,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/s_time.c:169,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:169,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_time.c:173,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_time.c:174,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:176,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/s_time.c:185,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/apps/s_time.c:190,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/apps/s_time.c:192,1
    - Dst: SSL_CTX_set_mode
      Src: /src/openssl-1.1.1g/apps/s_time.c:195,1
    - Dst: SSL_CTX_set_quiet_shutdown
      Src: /src/openssl-1.1.1g/apps/s_time.c:196,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/apps/s_time.c:197,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-1.1.1g/apps/s_time.c:201,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/apps/s_time.c:202,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/apps/s_time.c:204,1
    - Dst: set_cert_stuff
      Src: /src/openssl-1.1.1g/apps/s_time.c:206,1
    - Dst: ctx_set_verify_locations
      Src: /src/openssl-1.1.1g/apps/s_time.c:209,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_time.c:210,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:215,1
    - Dst: time
      Src: /src/openssl-1.1.1g/apps/s_time.c:220,1
    - Dst: tm_Time_F
      Src: /src/openssl-1.1.1g/apps/s_time.c:221,1
    - Dst: time
      Src: /src/openssl-1.1.1g/apps/s_time.c:223,1
    - Dst: doConnection
      Src: /src/openssl-1.1.1g/apps/s_time.c:226,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/s_time.c:230,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/apps/s_time.c:232,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/apps/s_time.c:234,1
    - Dst: SSL_set_shutdown
      Src: /src/openssl-1.1.1g/apps/s_time.c:237,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_time.c:238,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_time.c:238,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/apps/s_time.c:241,1
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/apps/s_time.c:244,1
    - Dst: fputc
      Src: /src/openssl-1.1.1g/apps/s_time.c:252,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/apps/s_time.c:253,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/apps/s_time.c:255,1
    - Dst: tm_Time_F
      Src: /src/openssl-1.1.1g/apps/s_time.c:258,1
    - Dst: time
      Src: /src/openssl-1.1.1g/apps/s_time.c:260,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:261,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:264,1
    - Dst: time
      Src: /src/openssl-1.1.1g/apps/s_time.c:266,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:275,1
    - Dst: doConnection
      Src: /src/openssl-1.1.1g/apps/s_time.c:278,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:279,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/s_time.c:284,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/apps/s_time.c:285,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/apps/s_time.c:287,1
    - Dst: SSL_set_shutdown
      Src: /src/openssl-1.1.1g/apps/s_time.c:290,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_time.c:291,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_time.c:291,1
    - Dst: time
      Src: /src/openssl-1.1.1g/apps/s_time.c:296,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:298,1
    - Dst: tm_Time_F
      Src: /src/openssl-1.1.1g/apps/s_time.c:300,1
    - Dst: time
      Src: /src/openssl-1.1.1g/apps/s_time.c:303,1
    - Dst: doConnection
      Src: /src/openssl-1.1.1g/apps/s_time.c:306,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/s_time.c:310,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/apps/s_time.c:312,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/apps/s_time.c:314,1
    - Dst: SSL_set_shutdown
      Src: /src/openssl-1.1.1g/apps/s_time.c:317,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_time.c:318,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_time.c:318,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/apps/s_time.c:321,1
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/apps/s_time.c:324,1
    - Dst: fputc
      Src: /src/openssl-1.1.1g/apps/s_time.c:332,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/apps/s_time.c:333,1
    - Dst: tm_Time_F
      Src: /src/openssl-1.1.1g/apps/s_time.c:335,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:337,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:340,1
    - Dst: time
      Src: /src/openssl-1.1.1g/apps/s_time.c:342,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/apps/s_time.c:347,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/apps/s_time.c:348,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 222
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 350
    functionName: s_time_main
    functionSourceFile: /src/openssl-1.1.1g/apps/s_time.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - SSL_write
    - SSL_CTX_set_cipher_list
    - ctx_set_verify_locations
    - SSL_CTX_new
    - BIO_closesocket
    - set_cert_stuff
    - printf
    - opt_arg
    - SSL_CTX_set_quiet_shutdown
    - TLS_client_method
    - opt_next
    - time
    - SSL_CTX_set_ciphersuites
    - SSL_get_fd
    - SSL_free
    - set_nameopt
    - SSL_CTX_free
    - getenv
    - SSL_version
    - fputc
    - SSL_read
    - SSL_CTX_set_max_proto_version
    - ERR_print_errors
    - SSL_set_shutdown
    - SSL_session_reused
    - doConnection
    - opt_help
    - opt_int
    - tm_Time_F
    - fflush
    - opt_num_rest
    - SSL_CTX_set_options
    - BIO_printf
    - SSL_CTX_set_mode
    - opt_init
    - strlen
    linkageType: ''
    returnType: int
    signature: int s_time_main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_time.c:361,1
    - Dst: BIO_s_connect
      Src: /src/openssl-1.1.1g/apps/s_time.c:361,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openssl-1.1.1g/apps/s_time.c:364,1
    - Dst: BIO_set_conn_mode
      Src: /src/openssl-1.1.1g/apps/s_time.c:365,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/apps/s_time.c:368,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/apps/s_time.c:371,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/apps/s_time.c:374,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/apps/s_time.c:377,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:379,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_time.c:381,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/apps/s_time.c:382,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_time.c:384,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/apps/s_time.c:386,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_time.c:397,1
    - Dst: setsockopt
      Src: /src/openssl-1.1.1g/apps/s_time.c:399,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - scon
    - host
    - ctx
    argTypes:
    - SSL*
    - char*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 355
    functionDepth: 5
    functionLinenumber: 355
    functionLinenumberEnd: 405
    functionName: doConnection
    functionSourceFile: /src/openssl-1.1.1g/apps/s_time.c
    functionUses: 1
    functionsReached:
    - SSL_get_fd
    - BIO_set_conn_mode
    - SSL_set_bio
    - SSL_connect
    - BIO_printf
    - BIO_s_connect
    - SSL_set_connect_state
    - BIO_new
    - setsockopt
    - SSL_new
    - ERR_print_errors
    - SSL_free
    - X509_verify_cert_error_string
    - BIO_set_conn_hostname
    linkageType: ''
    returnType: SSL
    signature: SSL *doConnection(SSL *scon, const char *host, SSL_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:32,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:33,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:34,1
    - Dst: BIO_meth_set_write_ex
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:35,1
    - Dst: BIO_meth_set_read_ex
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:36,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:37,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:38,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:39,1
    - Dst: BIO_meth_set_callback_ctrl
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:40,1
    - Dst: BIO_meth_free
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:41,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: apps_bf_prefix
    functionSourceFile: /src/openssl-1.1.1g/apps/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_write_ex
    - BIO_meth_set_create
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_free
    - BIO_meth_set_callback_ctrl
    - BIO_meth_set_read_ex
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *apps_bf_prefix(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:55,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:62,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: prefix_create
    functionSourceFile: /src/openssl-1.1.1g/apps/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - OPENSSL_zalloc
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int prefix_create(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:71,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: prefix_destroy
    functionSourceFile: /src/openssl-1.1.1g/apps/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int prefix_destroy(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read_ex
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:78,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b
    - in
    - size
    - numread
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: prefix_read
    functionSourceFile: /src/openssl-1.1.1g/apps/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_read_ex
    linkageType: ''
    returnType: int
    signature: int prefix_read(BIO *b, char *in, size_t size, size_t *numread)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:84,1
    - Dst: BIO_write_ex
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:94,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:94,1
    - Dst: BIO_write_ex
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:107,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:107,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:107,1
    - Dst: BIO_write_ex
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:123,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:123,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - b
    - out
    - outl
    - numwritten
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 137
    functionName: prefix_write
    functionSourceFile: /src/openssl-1.1.1g/apps/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_get_data
    - strlen
    - BIO_write_ex
    linkageType: ''
    returnType: int
    signature: "int prefix_write(BIO *b, const char *out, size_t outl,\n                        size_t
      *numwritten)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:151,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:152,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:157,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:158,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 162
    functionName: prefix_ctrl
    functionSourceFile: /src/openssl-1.1.1g/apps/bf_prefix.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - BIO_ctrl
    - BIO_next
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: long prefix_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:166,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: prefix_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/apps/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long prefix_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:171,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: prefix_gets
    functionSourceFile: /src/openssl-1.1.1g/apps/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int prefix_gets(BIO *b, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:176,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/bf_prefix.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: prefix_puts
    functionSourceFile: /src/openssl-1.1.1g/apps/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int prefix_puts(BIO *b, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-1.1.1g/apps/req.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - OPENSSL_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: ext_name_hash
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ext_name_hash(const OPENSSL_STRING *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/req.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OPENSSL_STRING*
    - OPENSSL_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: ext_name_cmp
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ext_name_cmp(const OPENSSL_STRING *a, const OPENSSL_STRING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/req.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OPENSSL_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: exts_cleanup
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void exts_cleanup(OPENSSL_STRING *x)
  - BBCount: 185
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/req.c:222,1
    - Dst: LHASH_OF
      Src: /src/openssl-1.1.1g/apps/req.c:223,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-1.1.1g/apps/req.c:247,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/req.c:250,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/req.c:251,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:256,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/req.c:259,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/req.c:263,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:263,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/req.c:267,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:267,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/req.c:271,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:271,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/apps/req.c:275,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:275,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:277,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:283,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/req.c:295,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:295,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:299,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:302,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:305,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:308,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:311,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/req.c:314,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:318,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/req.c:323,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/req.c:324,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:324,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/req.c:329,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/req.c:330,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:330,1
    - Dst: set_nameopt
      Src: /src/openssl-1.1.1g/apps/req.c:358,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:358,1
    - Dst: set_cert_ex
      Src: /src/openssl-1.1.1g/apps/req.c:362,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:362,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/req.c:372,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:372,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:376,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/req.c:379,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:379,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:387,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:393,1
    - Dst: lh_OPENSSL_STRING_new
      Src: /src/openssl-1.1.1g/apps/req.c:395,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/req.c:396,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/apps/req.c:396,1
    - Dst: duplicated
      Src: /src/openssl-1.1.1g/apps/req.c:400,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:403,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:403,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:407,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/req.c:410,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/req.c:416,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/req.c:416,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/req.c:422,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:427,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/req.c:434,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:435,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:440,1
    - Dst: app_load_config
      Src: /src/openssl-1.1.1g/apps/req.c:441,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:445,1
    - Dst: app_load_config_bio
      Src: /src/openssl-1.1.1g/apps/req.c:447,1
    - Dst: if
      Src: /src/openssl-1.1.1g/apps/req.c:453,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:454,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:456,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/req.c:460,1
    - Dst: OBJ_create_objects
      Src: /src/openssl-1.1.1g/apps/req.c:467,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/req.c:468,1
    - Dst: add_oid_section
      Src: /src/openssl-1.1.1g/apps/req.c:472,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:476,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:478,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/req.c:480,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:487,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:489,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openssl-1.1.1g/apps/req.c:494,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:495,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:496,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:497,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openssl-1.1.1g/apps/req.c:505,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:506,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:507,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:508,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:515,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:517,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:522,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:524,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:527,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:529,1
    - Dst: ASN1_STRING_set_default_mask_asc
      Src: /src/openssl-1.1.1g/apps/req.c:531,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:532,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:537,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:539,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/req.c:540,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:545,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:547,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openssl-1.1.1g/apps/req.c:552,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:553,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:554,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:555,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/req.c:563,1
    - Dst: app_RAND_load_conf
      Src: /src/openssl-1.1.1g/apps/req.c:568,1
    - Dst: app_RAND_load_conf
      Src: /src/openssl-1.1.1g/apps/req.c:573,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/apps/req.c:575,1
    - Dst: set_keygen_ctx
      Src: /src/openssl-1.1.1g/apps/req.c:580,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:588,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:589,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:595,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:602,1
    - Dst: set_keygen_ctx
      Src: /src/openssl-1.1.1g/apps/req.c:609,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/req.c:617,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/req.c:618,1
    - Dst: pkey_ctrl_string
      Src: /src/openssl-1.1.1g/apps/req.c:619,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:620,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:621,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:628,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:630,1
    - Dst: EVP_PKEY_CTX_set_cb
      Src: /src/openssl-1.1.1g/apps/req.c:633,1
    - Dst: EVP_PKEY_CTX_set_app_data
      Src: /src/openssl-1.1.1g/apps/req.c:634,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-1.1.1g/apps/req.c:636,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/req.c:637,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/req.c:641,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:645,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:647,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:651,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:653,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/req.c:654,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:658,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:660,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:661,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:663,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/req.c:665,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/req.c:672,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-1.1.1g/apps/req.c:673,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/apps/req.c:675,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/apps/req.c:675,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:677,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/req.c:683,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:685,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/req.c:689,1
    - Dst: d2i_X509_REQ_bio
      Src: /src/openssl-1.1.1g/apps/req.c:694,1
    - Dst: PEM_read_bio_X509_REQ
      Src: /src/openssl-1.1.1g/apps/req.c:696,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:698,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:705,1
    - Dst: X509_REQ_new
      Src: /src/openssl-1.1.1g/apps/req.c:710,1
    - Dst: make_REQ
      Src: /src/openssl-1.1.1g/apps/req.c:715,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:718,1
    - Dst: X509_new
      Src: /src/openssl-1.1.1g/apps/req.c:725,1
    - Dst: X509_set_version
      Src: /src/openssl-1.1.1g/apps/req.c:730,1
    - Dst: X509_set_serialNumber
      Src: /src/openssl-1.1.1g/apps/req.c:733,1
    - Dst: rand_serial
      Src: /src/openssl-1.1.1g/apps/req.c:736,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/apps/req.c:736,1
    - Dst: X509_set_issuer_name
      Src: /src/openssl-1.1.1g/apps/req.c:740,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/req.c:740,1
    - Dst: set_cert_times
      Src: /src/openssl-1.1.1g/apps/req.c:746,1
    - Dst: X509_set_subject_name
      Src: /src/openssl-1.1.1g/apps/req.c:748,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/req.c:749,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/req.c:751,1
    - Dst: X509_set_pubkey
      Src: /src/openssl-1.1.1g/apps/req.c:752,1
    - Dst: X509V3_set_ctx
      Src: /src/openssl-1.1.1g/apps/req.c:757,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:758,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:761,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:764,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:769,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:771,1
    - Dst: X509_add1_ext_i2d
      Src: /src/openssl-1.1.1g/apps/req.c:777,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:779,1
    - Dst: do_X509_sign
      Src: /src/openssl-1.1.1g/apps/req.c:784,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:786,1
    - Dst: X509V3_set_ctx
      Src: /src/openssl-1.1.1g/apps/req.c:794,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:795,1
    - Dst: X509V3_EXT_REQ_add_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:799,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:801,1
    - Dst: X509V3_EXT_REQ_add_nconf
      Src: /src/openssl-1.1.1g/apps/req.c:806,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:808,1
    - Dst: do_X509_REQ_sign
      Src: /src/openssl-1.1.1g/apps/req.c:811,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:813,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:820,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:826,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/req.c:827,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/req.c:828,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/req.c:828,1
    - Dst: build_subject
      Src: /src/openssl-1.1.1g/apps/req.c:831,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:832,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/req.c:838,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/req.c:839,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/req.c:839,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/req.c:847,1
    - Dst: X509_REQ_verify
      Src: /src/openssl-1.1.1g/apps/req.c:852,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:857,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:858,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:860,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/req.c:869,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/req.c:871,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/req.c:877,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:880,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:881,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openssl-1.1.1g/apps/req.c:884,1
    - Dst: X509_print_ex
      Src: /src/openssl-1.1.1g/apps/req.c:889,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/req.c:889,1
    - Dst: X509_REQ_print_ex
      Src: /src/openssl-1.1.1g/apps/req.c:891,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/req.c:891,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:895,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:897,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:899,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/req.c:906,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/req.c:906,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/req.c:907,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/req.c:909,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/req.c:909,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/req.c:910,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/req.c:917,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/req.c:919,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/req.c:921,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/req.c:924,1
    - Dst: EVP_PKEY_base_id
      Src: /src/openssl-1.1.1g/apps/req.c:926,1
    - Dst: RSA_get0_key
      Src: /src/openssl-1.1.1g/apps/req.c:928,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/apps/req.c:928,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/apps/req.c:929,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/req.c:932,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/req.c:933,1
    - Dst: i2d_X509_REQ_bio
      Src: /src/openssl-1.1.1g/apps/req.c:938,1
    - Dst: PEM_write_bio_X509_REQ_NEW
      Src: /src/openssl-1.1.1g/apps/req.c:940,1
    - Dst: PEM_write_bio_X509_REQ
      Src: /src/openssl-1.1.1g/apps/req.c:942,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:944,1
    - Dst: i2d_X509_bio
      Src: /src/openssl-1.1.1g/apps/req.c:950,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/req.c:952,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:954,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:961,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/req.c:963,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/req.c:964,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/req.c:965,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/req.c:966,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/req.c:967,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/req.c:968,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/req.c:969,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/req.c:970,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/req.c:971,1
    - Dst: lh_OPENSSL_STRING_doall
      Src: /src/openssl-1.1.1g/apps/req.c:972,1
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/req.c:973,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/apps/req.c:975,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/req.c:977,1
    - Dst: X509_REQ_free
      Src: /src/openssl-1.1.1g/apps/req.c:978,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/req.c:979,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/req.c:980,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/req.c:981,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/req.c:983,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/req.c:985,1
    CyclomaticComplexity: 287
    EdgeCount: 287
    ICount: 666
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/openssl-1.1.1g/apps/req.c
    constantsTouched: []
    func_position:
      end: 987
      start: 215
    functionDepth: 7
    functionLinenumber: 215
    functionLinenumberEnd: 987
    functionName: req_main
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - app_load_config
    - sk_OPENSSL_STRING_free
    - ERR_GET_REASON
    - bio_open_default
    - X509_new
    - EVP_des_ede3_cbc
    - OPENSSL_free
    - bio_open_owner
    - do_X509_sign
    - X509_set_version
    - d2i_X509_REQ_bio
    - set_cert_times
    - ASN1_STRING_set_default_mask_asc
    - print_name
    - X509V3_set_ctx
    - duplicated
    - BIO_free_all
    - lh_OPENSSL_STRING_new
    - sk_OPENSSL_STRING_push
    - EVP_PKEY_keygen
    - PEM_write_bio_X509
    - atoi
    - PEM_write_bio_PrivateKey
    - STACK_OF
    - BIO_s_mem
    - OBJ_create_objects
    - get_nameopt
    - rand_serial
    - opt_rand
    - app_load_config_bio
    - X509_get_subject_name
    - X509_get0_pubkey
    - sk_OPENSSL_STRING_new_null
    - EVP_PKEY_CTX_set_app_data
    - ERR_peek_error
    - add_oid_section
    - EVP_PKEY_base_id
    - NCONF_free
    - PEM_write_bio_PUBKEY
    - X509_set_serialNumber
    - BIO_puts
    - ERR_clear_error
    - BIO_free
    - X509_REQ_verify
    - EVP_PKEY_get0_RSA
    - set_cert_ex
    - pkey_ctrl_string
    - X509_REQ_new
    - assert
    - make_REQ
    - PEM_read_bio_X509_REQ
    - X509_REQ_print_ex
    - X509V3_set_ctx_test
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    - opt_format
    - X509_print_ex
    - PEM_write_bio_X509_REQ
    - X509_set_subject_name
    - X509_get_serialNumber
    - lh_OPENSSL_STRING_free
    - X509_REQ_get_subject_name
    - NCONF_get_string
    - X509V3_EXT_add_nconf
    - X509_free
    - strcmp
    - sk_OPENSSL_STRING_value
    - opt_next
    - RSA_get0_key
    - X509_set_issuer_name
    - release_engine
    - s2i_ASN1_INTEGER
    - i2d_X509_bio
    - opt_help
    - X509_REQ_get0_pubkey
    - opt_md
    - do_X509_REQ_sign
    - LHASH_OF
    - ENGINE_free
    - NCONF_get_number
    - if
    - X509_set_pubkey
    - set_keygen_ctx
    - opt_init
    - BIO_new
    - X509V3_EXT_REQ_add_nconf
    - X509V3_set_nconf
    - app_passwd
    - fprintf
    - opt_unknown
    - opt_arg
    - i2d_X509_REQ_bio
    - EVP_PKEY_CTX_free
    - set_nameopt
    - X509_add1_ext_i2d
    - X509_REQ_free
    - ENGINE_by_id
    - EVP_PKEY_CTX_set_cb
    - load_key
    - PEM_write_bio_X509_REQ_NEW
    - app_RAND_load_conf
    - sk_OPENSSL_STRING_num
    - BIO_new_file
    - BN_print
    - build_subject
    - setup_engine
    - opt_num_rest
    - lh_OPENSSL_STRING_doall
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: int req_main(int argc, char **argv)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/req.c:994,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:997,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:999,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/req.c:1000,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:1003,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1005,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/apps/req.c:1009,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1011,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/req.c:1015,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/req.c:1017,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/apps/req.c:1020,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1022,1
    - Dst: X509_REQ_set_version
      Src: /src/openssl-1.1.1g/apps/req.c:1028,1
    - Dst: build_subject
      Src: /src/openssl-1.1.1g/apps/req.c:1032,1
    - Dst: auto_info
      Src: /src/openssl-1.1.1g/apps/req.c:1034,1
    - Dst: prompt_info
      Src: /src/openssl-1.1.1g/apps/req.c:1036,1
    - Dst: X509_REQ_set_pubkey
      Src: /src/openssl-1.1.1g/apps/req.c:1041,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 6
    argNames:
    - req
    - pkey
    - subj
    - multirdn
    - attribs
    - chtype
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    - char*
    - int
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1047
    functionName: make_REQ
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - strcmp
    - NCONF_get_section
    - STACK_OF
    - auto_info
    - X509_REQ_set_pubkey
    - X509_REQ_set_version
    - prompt_info
    - ERR_clear_error
    - BIO_printf
    - build_subject
    linkageType: ''
    returnType: int
    signature: "int make_REQ(X509_REQ *req, EVP_PKEY *pkey, char *subj, int multirdn,\n
      \                   int attribs, unsigned long chtype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_name
      Src: /src/openssl-1.1.1g/apps/req.c:1058,1
    - Dst: X509_REQ_set_subject_name
      Src: /src/openssl-1.1.1g/apps/req.c:1061,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/req.c:1062,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/req.c:1065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - req
    - subject
    - chtype
    - multirdn
    argTypes:
    - X509_REQ*
    - char*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1067
    functionName: build_subject
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 2
    functionsReached:
    - parse_name
    - X509_NAME_free
    - X509_REQ_set_subject_name
    linkageType: ''
    returnType: int
    signature: "int build_subject(X509_REQ *req, const char *subject, unsigned long
      chtype,\n                         int multirdn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: build_data
      Src: /src/openssl-1.1.1g/apps/req.c:1313,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openssl-1.1.1g/apps/req.c:1319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 9
    argNames:
    - n
    - text
    - def
    - value
    - nid
    - n_min
    - n_max
    - chtype
    - mval
    argTypes:
    - X509_NAME*
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1324
    functionName: add_DN_object
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - build_data
    - X509_NAME_add_entry_by_NID
    linkageType: ''
    returnType: int
    signature: "int add_DN_object(X509_NAME *n, char *text, const char *def,\n                         char
      *value, int nid, int n_min, int n_max,\n                         unsigned long
      chtype, int mval)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: build_data
      Src: /src/openssl-1.1.1g/apps/req.c:1333,1
    - Dst: X509_REQ_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/apps/req.c:1339,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1341,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:1342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 8
    argNames:
    - req
    - text
    - def
    - value
    - nid
    - n_min
    - n_max
    - chtype
    argTypes:
    - X509_REQ*
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1326
    functionDepth: 5
    functionLinenumber: 1326
    functionLinenumberEnd: 1347
    functionName: add_attribute_object
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - build_data
    - ERR_print_errors
    - X509_REQ_add1_attr_by_NID
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int add_attribute_object(X509_REQ *req, char *text, const char *def,\n
      \                               char *value, int nid, int n_min,\n                                int
      n_max, unsigned long chtype)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1359,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/req.c:1360,1
    - Dst: join
      Src: /src/openssl-1.1.1g/apps/req.c:1362,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1364,1
    - Dst: fgets
      Src: /src/openssl-1.1.1g/apps/req.c:1368,1
    - Dst: join
      Src: /src/openssl-1.1.1g/apps/req.c:1381,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/req.c:1387,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1389,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/req.c:1394,1
    - Dst: req_check_len
      Src: /src/openssl-1.1.1g/apps/req.c:1396,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 9
    argNames:
    - text
    - def
    - value
    - n_min
    - n_max
    - buf
    - buf_size
    - desc1
    - desc2
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1350
    functionDepth: 2
    functionLinenumber: 1350
    functionLinenumberEnd: 1402
    functionName: build_data
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 2
    functionsReached:
    - fgets
    - join
    - ebcdic2ascii
    - req_check_len
    - BIO_printf
    - BIO_flush
    - strlen
    linkageType: ''
    returnType: int
    signature: "int build_data(char *text, const char *def,\n                         char
      *value, int n_min, int n_max,\n                         char *buf, const int
      buf_size,\n                         const char *desc1, const char *desc2\n                         )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1407,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - len
    - n_min
    - n_max
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1404
    functionDepth: 2
    functionLinenumber: 1404
    functionLinenumberEnd: 1419
    functionName: req_check_len
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int req_check_len(int len, int n_min, int n_max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/req.c:1427,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/req.c:1428,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/req.c:1432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1433
    functionName: check_end
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int check_end(const char *str, const char *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/req.c:1442,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/req.c:1442,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1445,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/req.c:1448,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/req.c:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - buf
    - buf_size
    - name
    - tail
    - desc
    argTypes:
    - char[]
    - size_t
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1451
    functionName: join
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 5
    functionsReached:
    - memcpy
    - strlen
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int join(char buf[], size_t buf_size, const char *name,\n                const
      char *tail, const char *desc)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/openssl-1.1.1g/apps/req.c:1468,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/req.c:1470,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/req.c:1473,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/req.c:1481,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/apps/req.c:1487,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1490,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/apps/req.c:1494,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/apps/req.c:1496,1
    - Dst: atol
      Src: /src/openssl-1.1.1g/apps/req.c:1500,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/req.c:1511,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1513,1
    - Dst: PEM_read_bio_Parameters
      Src: /src/openssl-1.1.1g/apps/req.c:1516,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/apps/req.c:1521,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/apps/req.c:1522,1
    - Dst: X509_get_pubkey
      Src: /src/openssl-1.1.1g/apps/req.c:1524,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/req.c:1525,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/req.c:1529,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1532,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/apps/req.c:1536,1
    - Dst: EVP_PKEY_base_id
      Src: /src/openssl-1.1.1g/apps/req.c:1537,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1538,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/req.c:1539,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-1.1.1g/apps/req.c:1549,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/req.c:1551,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/apps/req.c:1554,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/req.c:1555,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/apps/req.c:1557,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/apps/req.c:1562,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/apps/req.c:1563,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/req.c:1564,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/apps/req.c:1566,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/req.c:1570,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:1571,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-1.1.1g/apps/req.c:1575,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/req.c:1576,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:1577,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/req.c:1578,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/openssl-1.1.1g/apps/req.c:1583,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/req.c:1584,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:1585,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/req.c:1586,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 101
    argCount: 5
    argNames:
    - gstr
    - pkey_type
    - pkeylen
    - palgnam
    - keygen_engine
    argTypes:
    - char*
    - int*
    - long*
    - char**
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1453
    functionDepth: 6
    functionLinenumber: 1453
    functionLinenumberEnd: 1593
    functionName: set_keygen_ctx
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_new
    - BIO_reset
    - EVP_PKEY_id
    - EVP_PKEY_CTX_new_id
    - X509_free
    - X509_get_pubkey
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - EVP_PKEY_base_id
    - EVP_PKEY_bits
    - BIO_puts
    - EVP_PKEY_CTX_free
    - EVP_PKEY_asn1_find
    - PEM_read_bio_X509
    - BIO_free
    - EVP_PKEY_asn1_get0_info
    - PEM_read_bio_Parameters
    - atol
    - strchr
    - OPENSSL_strdup
    - BIO_new_file
    - ENGINE_finish
    - EVP_PKEY_keygen_init
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    - strncmp
    - EVP_PKEY_asn1_find_str
    - strlen
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: "EVP_PKEY_CTX *set_keygen_ctx(const char *gstr,\n                                    int
      *pkey_type, long *pkeylen,\n                                    char **palgnam,
      ENGINE *keygen_engine)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_app_data
      Src: /src/openssl-1.1.1g/apps/req.c:1598,1
    - Dst: EVP_PKEY_CTX_get_keygen_info
      Src: /src/openssl-1.1.1g/apps/req.c:1600,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/req.c:1609,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/req.c:1610,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1595
    functionDepth: 4
    functionLinenumber: 1595
    functionLinenumberEnd: 1612
    functionName: genpkey_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_get_keygen_info
    - BIO_flush
    - EVP_PKEY_CTX_get_app_data
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int genpkey_cb(EVP_PKEY_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-1.1.1g/apps/req.c:1626,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/apps/req.c:1631,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/req.c:1633,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/req.c:1634,1
    - Dst: pkey_ctrl_string
      Src: /src/openssl-1.1.1g/apps/req.c:1635,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/req.c:1636,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/req.c:1637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - pkey
    - md
    - sigopts
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1614
    functionDepth: 5
    functionLinenumber: 1614
    functionLinenumberEnd: 1642
    functionName: do_sign_init
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - pkey_ctrl_string
    - EVP_PKEY_get_default_digest_nid
    - EVP_DigestSignInit
    - sk_OPENSSL_STRING_value
    - sk_OPENSSL_STRING_num
    - BIO_printf
    - ERR_print_errors
    linkageType: ''
    returnType: int
    signature: "int do_sign_init(EVP_MD_CTX *ctx, EVP_PKEY *pkey,\n                        const
      EVP_MD *md, STACK_OF(OPENSSL_STRING) *sigopts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/apps/req.c:1648,1
    - Dst: do_sign_init
      Src: /src/openssl-1.1.1g/apps/req.c:1650,1
    - Dst: X509_sign_ctx
      Src: /src/openssl-1.1.1g/apps/req.c:1652,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/req.c:1653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - x
    - pkey
    - md
    - sigopts
    argTypes:
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1644
    functionDepth: 6
    functionLinenumber: 1644
    functionLinenumberEnd: 1655
    functionName: do_X509_sign
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 1
    functionsReached:
    - X509_sign_ctx
    - EVP_MD_CTX_free
    - EVP_MD_CTX_new
    - do_sign_init
    linkageType: ''
    returnType: int
    signature: "int do_X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md,\n                 STACK_OF(OPENSSL_STRING)
      *sigopts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/apps/req.c:1661,1
    - Dst: do_sign_init
      Src: /src/openssl-1.1.1g/apps/req.c:1662,1
    - Dst: X509_REQ_sign_ctx
      Src: /src/openssl-1.1.1g/apps/req.c:1664,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/req.c:1665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - x
    - pkey
    - md
    - sigopts
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1657
    functionDepth: 6
    functionLinenumber: 1657
    functionLinenumberEnd: 1667
    functionName: do_X509_REQ_sign
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 1
    functionsReached:
    - X509_REQ_sign_ctx
    - EVP_MD_CTX_new
    - do_sign_init
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int do_X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md,\n
      \                    STACK_OF(OPENSSL_STRING) *sigopts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/apps/req.c:1673,1
    - Dst: do_sign_init
      Src: /src/openssl-1.1.1g/apps/req.c:1674,1
    - Dst: X509_CRL_sign_ctx
      Src: /src/openssl-1.1.1g/apps/req.c:1676,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/req.c:1677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - x
    - pkey
    - md
    - sigopts
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1669
    functionDepth: 6
    functionLinenumber: 1669
    functionLinenumberEnd: 1679
    functionName: do_X509_CRL_sign
    functionSourceFile: /src/openssl-1.1.1g/apps/req.c
    functionUses: 0
    functionsReached:
    - X509_CRL_sign_ctx
    - EVP_MD_CTX_new
    - do_sign_init
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int do_X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md,\n
      \                    STACK_OF(OPENSSL_STRING) *sigopts)"
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/apps/crl.c:72,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/crl.c:85,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/crl.c:86,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:91,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/crl.c:94,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/crl.c:98,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:98,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:102,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/crl.c:105,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:105,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:109,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/crl.c:112,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:112,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:116,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:119,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:122,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:126,1
    - Dst: set_nameopt
      Src: /src/openssl-1.1.1g/apps/crl.c:171,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl.c:171,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/crl.c:175,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/crl.c:175,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/crl.c:179,1
    - Dst: load_crl
      Src: /src/openssl-1.1.1g/apps/crl.c:183,1
    - Dst: setup_verify
      Src: /src/openssl-1.1.1g/apps/crl.c:188,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/apps/crl.c:190,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-1.1.1g/apps/crl.c:190,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-1.1.1g/apps/crl.c:193,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/apps/crl.c:194,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:195,1
    - Dst: X509_STORE_CTX_get_obj_by_subject
      Src: /src/openssl-1.1.1g/apps/crl.c:199,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/apps/crl.c:200,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:202,1
    - Dst: X509_get_pubkey
      Src: /src/openssl-1.1.1g/apps/crl.c:205,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/openssl-1.1.1g/apps/crl.c:205,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-1.1.1g/apps/crl.c:206,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:208,1
    - Dst: X509_CRL_verify
      Src: /src/openssl-1.1.1g/apps/crl.c:211,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/crl.c:212,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:216,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:218,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/crl.c:224,1
    - Dst: load_crl
      Src: /src/openssl-1.1.1g/apps/crl.c:227,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/crl.c:230,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/apps/crl.c:232,1
    - Dst: X509_CRL_diff
      Src: /src/openssl-1.1.1g/apps/crl.c:235,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/apps/crl.c:236,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/crl.c:237,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/apps/crl.c:239,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/crl.c:242,1
    - Dst: X509_CRL_get0_signature
      Src: /src/openssl-1.1.1g/apps/crl.c:250,1
    - Dst: corrupt_signature
      Src: /src/openssl-1.1.1g/apps/crl.c:251,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/crl.c:257,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/apps/crl.c:257,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/crl.c:258,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openssl-1.1.1g/apps/crl.c:262,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:263,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/crl.c:265,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/crl.c:266,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/crl.c:268,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:269,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:272,1
    - Dst: X509_NAME_hash
      Src: /src/openssl-1.1.1g/apps/crl.c:273,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/apps/crl.c:273,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:277,1
    - Dst: X509_NAME_hash_old
      Src: /src/openssl-1.1.1g/apps/crl.c:278,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/apps/crl.c:278,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:282,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/apps/crl.c:283,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-1.1.1g/apps/crl.c:283,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:284,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:287,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-1.1.1g/apps/crl.c:288,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/apps/crl.c:289,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-1.1.1g/apps/crl.c:289,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:291,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:292,1
    - Dst: X509_CRL_digest
      Src: /src/openssl-1.1.1g/apps/crl.c:299,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:300,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:303,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/crl.c:304,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/apps/crl.c:304,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:306,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/crl.c:312,1
    - Dst: X509_CRL_print_ex
      Src: /src/openssl-1.1.1g/apps/crl.c:317,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/crl.c:317,1
    - Dst: i2d_X509_CRL_bio
      Src: /src/openssl-1.1.1g/apps/crl.c:325,1
    - Dst: PEM_write_bio_X509_CRL
      Src: /src/openssl-1.1.1g/apps/crl.c:327,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl.c:329,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/crl.c:336,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/crl.c:337,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/apps/crl.c:338,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/apps/crl.c:339,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/crl.c:340,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 252
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 342
    functionName: crl_main
    functionSourceFile: /src/openssl-1.1.1g/apps/crl.c
    functionUses: 0
    functionsReached:
    - i2d_X509_CRL_bio
    - X509_CRL_get0_nextUpdate
    - X509_CRL_get0_lastUpdate
    - X509_OBJECT_free
    - X509_CRL_diff
    - get_nameopt
    - X509_STORE_CTX_new
    - bio_open_default
    - X509_NAME_hash
    - PEM_write_bio_X509_CRL
    - X509_get_pubkey
    - X509_CRL_verify
    - EVP_MD_type
    - X509_STORE_free
    - opt_unknown
    - X509_CRL_free
    - opt_arg
    - X509_CRL_get0_signature
    - X509_CRL_get_issuer
    - BIO_puts
    - X509_CRL_get_ext_d2i
    - opt_next
    - X509_CRL_digest
    - ASN1_TIME_print
    - X509_CRL_print_ex
    - corrupt_signature
    - set_nameopt
    - OBJ_nid2sn
    - i2a_ASN1_INTEGER
    - X509_STORE_CTX_free
    - EVP_sha1
    - print_name
    - X509_STORE_add_lookup
    - load_key
    - ERR_print_errors
    - load_crl
    - X509_STORE_CTX_get_obj_by_subject
    - X509_OBJECT_get0_X509
    - X509_NAME_hash_old
    - opt_help
    - BIO_free_all
    - opt_num_rest
    - opt_md
    - setup_verify
    - X509_LOOKUP_file
    - X509_STORE_CTX_init
    - ASN1_INTEGER_free
    - BIO_printf
    - EVP_PKEY_free
    - opt_format
    - opt_init
    linkageType: ''
    returnType: int
    signature: int crl_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/openssl-1.1.1g/apps/speed.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: alarmed
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - signal
    linkageType: ''
    returnType: void
    signature: void alarmed(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: app_tminterval
      Src: /src/openssl-1.1.1g/apps/speed.c:222,1
    - Dst: alarm
      Src: /src/openssl-1.1.1g/apps/speed.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: Time_F
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 1
    functionsReached:
    - app_tminterval
    - alarm
    linkageType: ''
    returnType: double
    signature: double Time_F(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secs
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: alarm_win32
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alarm_win32(unsigned int secs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/openssl-1.1.1g/apps/speed.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - VOID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: sleepy
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - Sleep
    linkageType: ''
    returnType: DWORD
    signature: DWORD sleepy(VOID * arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CreateThread
      Src: /src/openssl-1.1.1g/apps/speed.c:256,1
    - Dst: GetLastError
      Src: /src/openssl-1.1.1g/apps/speed.c:258,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:259,1
    - Dst: ExitProcess
      Src: /src/openssl-1.1.1g/apps/speed.c:260,1
    - Dst: Sleep
      Src: /src/openssl-1.1.1g/apps/speed.c:263,1
    - Dst: app_tminterval
      Src: /src/openssl-1.1.1g/apps/speed.c:264,1
    - Dst: app_tminterval
      Src: /src/openssl-1.1.1g/apps/speed.c:266,1
    - Dst: TerminateThread
      Src: /src/openssl-1.1.1g/apps/speed.c:268,1
    - Dst: CloseHandle
      Src: /src/openssl-1.1.1g/apps/speed.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 273
    functionName: Time_F
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 1
    functionsReached:
    - CloseHandle
    - Sleep
    - app_tminterval
    - GetLastError
    - TerminateThread
    - ExitProcess
    - BIO_printf
    - CreateThread
    linkageType: ''
    returnType: double
    signature: double Time_F(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: app_tminterval
      Src: /src/openssl-1.1.1g/apps/speed.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: Time_F
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 1
    functionsReached:
    - app_tminterval
    linkageType: ''
    returnType: double
    signature: double Time_F(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - pairs
    - ','
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: found
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: found(value, pairs, result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/speed.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - name
    - result
    - pairs
    - nbelem
    argTypes:
    - char*
    - unsigned int*
    - OPT_PAIR[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 297
    functionName: opt_found
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int opt_found(const char *name, unsigned int *result,\n                     const
      OPT_PAIR pairs[], unsigned int nbelem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 597
    functionName: COND
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: COUNT
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - unused_cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 600
    functionName: COND
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND(unused_cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 601
    functionName: COUNT
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT(d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:647,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/apps/speed.c:648,1
    - Dst: EVP_md2
      Src: /src/openssl-1.1.1g/apps/speed.c:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 640
    functionDepth: 5
    functionLinenumber: 640
    functionLinenumberEnd: 653
    functionName: EVP_Digest_MD2_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - EVP_Digest
    - EVP_md2
    linkageType: ''
    returnType: int
    signature: int EVP_Digest_MD2_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:664,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/apps/speed.c:665,1
    - Dst: EVP_mdc2
      Src: /src/openssl-1.1.1g/apps/speed.c:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 657
    functionDepth: 5
    functionLinenumber: 657
    functionLinenumberEnd: 670
    functionName: EVP_Digest_MDC2_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - EVP_mdc2
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: int EVP_Digest_MDC2_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:681,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/apps/speed.c:682,1
    - Dst: EVP_md4
      Src: /src/openssl-1.1.1g/apps/speed.c:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 674
    functionDepth: 5
    functionLinenumber: 674
    functionLinenumberEnd: 687
    functionName: EVP_Digest_MD4_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_md4
    - COND
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: int EVP_Digest_MD4_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:697,1
    - Dst: MD5
      Src: /src/openssl-1.1.1g/apps/speed.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 700
    functionName: MD5_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - MD5
    linkageType: ''
    returnType: int
    signature: int MD5_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:710,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:711,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/apps/speed.c:712,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/apps/speed.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 702
    functionDepth: 5
    functionLinenumber: 702
    functionLinenumberEnd: 716
    functionName: HMAC_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - HMAC_Update
    - COND
    - HMAC_Init_ex
    - HMAC_Final
    linkageType: ''
    returnType: int
    signature: int HMAC_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:725,1
    - Dst: SHA1
      Src: /src/openssl-1.1.1g/apps/speed.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 728
    functionName: SHA1_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - SHA1
    - COND
    linkageType: ''
    returnType: int
    signature: int SHA1_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:736,1
    - Dst: SHA256
      Src: /src/openssl-1.1.1g/apps/speed.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 739
    functionName: SHA256_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - SHA256
    - COND
    linkageType: ''
    returnType: int
    signature: int SHA256_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:747,1
    - Dst: SHA512
      Src: /src/openssl-1.1.1g/apps/speed.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 750
    functionName: SHA512_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - SHA512
    linkageType: ''
    returnType: int
    signature: int SHA512_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:759,1
    - Dst: WHIRLPOOL
      Src: /src/openssl-1.1.1g/apps/speed.c:760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 762
    functionName: WHIRLPOOL_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - WHIRLPOOL
    - COND
    linkageType: ''
    returnType: int
    signature: int WHIRLPOOL_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:772,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/apps/speed.c:773,1
    - Dst: EVP_ripemd160
      Src: /src/openssl-1.1.1g/apps/speed.c:774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 766
    functionDepth: 5
    functionLinenumber: 766
    functionLinenumberEnd: 778
    functionName: EVP_Digest_RMD160_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - EVP_Digest
    - EVP_ripemd160
    linkageType: ''
    returnType: int
    signature: int EVP_Digest_RMD160_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:788,1
    - Dst: RC4
      Src: /src/openssl-1.1.1g/apps/speed.c:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 791
    functionName: RC4_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - RC4
    - COND
    linkageType: ''
    returnType: int
    signature: int RC4_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:804,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-1.1.1g/apps/speed.c:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 808
    functionName: DES_ncbc_encrypt_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - DES_ncbc_encrypt
    linkageType: ''
    returnType: int
    signature: int DES_ncbc_encrypt_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:815,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-1.1.1g/apps/speed.c:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 810
    functionDepth: 4
    functionLinenumber: 810
    functionLinenumberEnd: 819
    functionName: DES_ede3_cbc_encrypt_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - DES_ede3_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: int DES_ede3_cbc_encrypt_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:831,1
    - Dst: AES_cbc_encrypt
      Src: /src/openssl-1.1.1g/apps/speed.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 835
    functionName: AES_cbc_128_encrypt_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - AES_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: int AES_cbc_128_encrypt_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:842,1
    - Dst: AES_cbc_encrypt
      Src: /src/openssl-1.1.1g/apps/speed.c:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 846
    functionName: AES_cbc_192_encrypt_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - AES_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: int AES_cbc_192_encrypt_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:853,1
    - Dst: AES_cbc_encrypt
      Src: /src/openssl-1.1.1g/apps/speed.c:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 848
    functionDepth: 2
    functionLinenumber: 848
    functionLinenumberEnd: 857
    functionName: AES_cbc_256_encrypt_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - AES_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: int AES_cbc_256_encrypt_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:865,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/apps/speed.c:866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 869
    functionName: AES_ige_128_encrypt_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - AES_ige_encrypt
    linkageType: ''
    returnType: int
    signature: int AES_ige_128_encrypt_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:877,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/apps/speed.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 881
    functionName: AES_ige_192_encrypt_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - AES_ige_encrypt
    linkageType: ''
    returnType: int
    signature: int AES_ige_192_encrypt_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:889,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-1.1.1g/apps/speed.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 893
    functionName: AES_ige_256_encrypt_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - AES_ige_encrypt
    linkageType: ''
    returnType: int
    signature: int AES_ige_256_encrypt_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:901,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-1.1.1g/apps/speed.c:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 904
    functionName: CRYPTO_gcm128_aad_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - CRYPTO_gcm128_aad
    linkageType: ''
    returnType: int
    signature: int CRYPTO_gcm128_aad_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:912,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/apps/speed.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 906
    functionDepth: 3
    functionLinenumber: 906
    functionLinenumberEnd: 915
    functionName: RAND_bytes_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - RAND_bytes
    linkageType: ''
    returnType: int
    signature: int RAND_bytes_loop(void *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:929,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/apps/speed.c:930,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:933,1
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:937,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/apps/speed.c:938,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:941,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:946,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:948,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 919
    functionDepth: 3
    functionLinenumber: 919
    functionLinenumberEnd: 950
    functionName: EVP_Update_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptFinal_ex
    - COND
    - EVP_EncryptUpdate
    - EVP_DecryptUpdate
    - EVP_DecryptFinal_ex
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: int EVP_Update_loop(void *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:968,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/apps/speed.c:969,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:971,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/apps/speed.c:973,1
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:976,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/apps/speed.c:978,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/apps/speed.c:980,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:984,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 957
    functionDepth: 4
    functionLinenumber: 957
    functionLinenumberEnd: 988
    functionName: EVP_Update_loop_ccm
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - EVP_EncryptFinal_ex
    - COND
    - EVP_EncryptUpdate
    - EVP_DecryptUpdate
    - EVP_DecryptInit_ex
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_Update_loop_ccm(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1007,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:1008,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/apps/speed.c:1009,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/apps/speed.c:1011,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/apps/speed.c:1012,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:1013,1
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1016,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:1017,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/apps/speed.c:1018,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/apps/speed.c:1019,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 995
    functionDepth: 4
    functionLinenumber: 995
    functionLinenumberEnd: 1024
    functionName: EVP_Update_loop_aead
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - EVP_EncryptFinal_ex
    - COND
    - EVP_EncryptUpdate
    - EVP_DecryptUpdate
    - EVP_EncryptInit_ex
    - EVP_DecryptInit_ex
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_Update_loop_aead(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1037,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/apps/speed.c:1038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1027
    functionDepth: 5
    functionLinenumber: 1027
    functionLinenumberEnd: 1042
    functionName: EVP_Digest_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: int EVP_Digest_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1055,1
    - Dst: RSA_sign
      Src: /src/openssl-1.1.1g/apps/speed.c:1056,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1058,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1059,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1047
    functionDepth: 5
    functionLinenumber: 1047
    functionLinenumberEnd: 1065
    functionName: RSA_sign_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - RSA_sign
    - COND
    - ERR_print_errors
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int RSA_sign_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1075,1
    - Dst: RSA_verify
      Src: /src/openssl-1.1.1g/apps/speed.c:1077,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1079,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1067
    functionDepth: 5
    functionLinenumber: 1067
    functionLinenumberEnd: 1086
    functionName: RSA_verify_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - ERR_print_errors
    - RSA_verify
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int RSA_verify_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1099,1
    - Dst: DSA_sign
      Src: /src/openssl-1.1.1g/apps/speed.c:1100,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1102,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1091
    functionDepth: 9
    functionLinenumber: 1091
    functionLinenumberEnd: 1109
    functionName: DSA_sign_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - DSA_sign
    - COND
    - ERR_print_errors
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int DSA_sign_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1119,1
    - Dst: DSA_verify
      Src: /src/openssl-1.1.1g/apps/speed.c:1120,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1122,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1111
    functionDepth: 11
    functionLinenumber: 1111
    functionLinenumberEnd: 1129
    functionName: DSA_verify_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - ERR_print_errors
    - DSA_verify
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int DSA_verify_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1142,1
    - Dst: ECDSA_sign
      Src: /src/openssl-1.1.1g/apps/speed.c:1143,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1145,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1134
    functionDepth: 5
    functionLinenumber: 1134
    functionLinenumberEnd: 1152
    functionName: ECDSA_sign_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - ECDSA_sign
    - COND
    - ERR_print_errors
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ECDSA_sign_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1162,1
    - Dst: ECDSA_verify
      Src: /src/openssl-1.1.1g/apps/speed.c:1163,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1165,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1154
    functionDepth: 5
    functionLinenumber: 1154
    functionLinenumberEnd: 1172
    functionName: ECDSA_verify_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - ERR_print_errors
    - ECDSA_verify
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ECDSA_verify_loop(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1185,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/apps/speed.c:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1189
    functionName: ECDH_EVP_derive_key_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - COND
    linkageType: ''
    returnType: int
    signature: int ECDH_EVP_derive_key_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1201,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-1.1.1g/apps/speed.c:1202,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1204,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1192
    functionDepth: 5
    functionLinenumber: 1192
    functionLinenumberEnd: 1211
    functionName: EdDSA_sign_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - BIO_printf
    - ERR_print_errors
    - EVP_DigestSign
    linkageType: ''
    returnType: int
    signature: int EdDSA_sign_loop(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openssl-1.1.1g/apps/speed.c:1222,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/apps/speed.c:1223,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1225,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1213
    functionDepth: 5
    functionLinenumber: 1213
    functionLinenumberEnd: 1232
    functionName: EdDSA_verify_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - ERR_print_errors
    - EVP_DigestVerify
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int EdDSA_verify_loop(void *args)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: loop_function
      Src: /src/openssl-1.1.1g/apps/speed.c:1246,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/apps/speed.c:1253,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1269,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1270,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/speed.c:1284,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/apps/speed.c:1290,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1293,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1294,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/apps/speed.c:1298,1
    - Dst: FD_SET
      Src: /src/openssl-1.1.1g/apps/speed.c:1300,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1306,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1310,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/speed.c:1315,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1320,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1321,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/apps/speed.c:1334,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1337,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1338,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/apps/speed.c:1342,1
    - Dst: FD_ISSET
      Src: /src/openssl-1.1.1g/apps/speed.c:1346,1
    - Dst: PeekNamedPipe
      Src: /src/openssl-1.1.1g/apps/speed.c:1350,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/apps/speed.c:1355,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:1375,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/speed.c:1376,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 97
    argCount: 2
    argNames:
    - async_jobs
    - loopargs
    argTypes:
    - int
    - loopargs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1235
    functionDepth: 5
    functionLinenumber: 1235
    functionLinenumberEnd: 1384
    functionName: run_benchmark
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - FD_SET
    - PeekNamedPipe
    - FD_ISSET
    - loop_function
    - ASYNC_WAIT_CTX_get_all_fds
    - ASYNC_start_job
    - select
    - BIO_printf
    - ERR_print_errors
    - FD_ZERO
    linkageType: ''
    returnType: int
    signature: "int run_benchmark(int async_jobs,\n                         int (*loop_function)
      (void *), loopargs_t * loopargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3392,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/speed.c:3395,1
    - Dst: alarm
      Src: /src/openssl-1.1.1g/apps/speed.c:3397,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3399,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/speed.c:3402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - s
    - num
    - length
    - tm
    argTypes:
    - char*
    - long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3404
      start: 3389
    functionDepth: 2
    functionLinenumber: 3389
    functionLinenumberEnd: 3404
    functionName: print_message
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - alarm
    - BIO_flush
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void print_message(const char *s, long num, int length, int tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3410,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/speed.c:3413,1
    - Dst: alarm
      Src: /src/openssl-1.1.1g/apps/speed.c:3415,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3417,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/speed.c:3420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - str
    - str2
    - num
    - bits
    - tm
    argTypes:
    - char*
    - char*
    - long
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3406
    functionDepth: 2
    functionLinenumber: 3406
    functionLinenumberEnd: 3422
    functionName: pkey_print_message
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - alarm
    - BIO_flush
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void pkey_print_message(const char *str, const char *str2, long num,\n
      \                              unsigned int bits, int tm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/speed.c:3427,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/apps/speed.c:3428,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - alg
    - run_no
    - count
    - time_used
    argTypes:
    - int
    - int
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3434
      start: 3424
    functionDepth: 3
    functionLinenumber: 3424
    functionLinenumberEnd: 3434
    functionName: print_result
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - exit
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void print_result(int alg, int run_no, int count, double time_used)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/apps/speed.c:3445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - string
    - delim
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3437
    functionDepth: 0
    functionLinenumber: 3437
    functionLinenumberEnd: 3463
    functionName: sstrsep
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: char
    signature: char *sstrsep(char **string, const char *delim)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/speed.c:3472,1
    - Dst: pipe
      Src: /src/openssl-1.1.1g/apps/speed.c:3474,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3475,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/apps/speed.c:3476,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/apps/speed.c:3478,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/speed.c:3479,1
    - Dst: fork
      Src: /src/openssl-1.1.1g/apps/speed.c:3480,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/speed.c:3481,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/speed.c:3484,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/speed.c:3485,1
    - Dst: dup
      Src: /src/openssl-1.1.1g/apps/speed.c:3486,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3487,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/apps/speed.c:3488,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/speed.c:3490,1
    - Dst: free
      Src: /src/openssl-1.1.1g/apps/speed.c:3493,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3496,1
    - Dst: fdopen
      Src: /src/openssl-1.1.1g/apps/speed.c:3505,1
    - Dst: fgets
      Src: /src/openssl-1.1.1g/apps/speed.c:3506,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/speed.c:3507,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3511,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3516,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/speed.c:3517,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/speed.c:3522,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3522,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3523,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3525,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3525,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/speed.c:3526,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/speed.c:3531,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3531,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3532,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3534,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3534,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3537,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3537,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/speed.c:3541,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/speed.c:3546,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3546,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3547,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3549,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3549,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3552,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3552,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/speed.c:3557,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/speed.c:3562,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3562,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3563,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3565,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3565,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3568,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3568,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/speed.c:3570,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/speed.c:3575,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3575,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3576,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3578,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3578,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/speed.c:3580,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/speed.c:3585,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3585,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3586,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3587,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3589,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3589,1
    - Dst: atof
      Src: /src/openssl-1.1.1g/apps/speed.c:3592,1
    - Dst: sstrsep
      Src: /src/openssl-1.1.1g/apps/speed.c:3592,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/speed.c:3597,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/apps/speed.c:3604,1
    - Dst: free
      Src: /src/openssl-1.1.1g/apps/speed.c:3606,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 92
    argCount: 2
    argNames:
    - multi
    - size_num
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3465
    functionDepth: 2
    functionLinenumber: 3465
    functionLinenumberEnd: 3608
    functionName: do_multi
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - sstrsep
    - atoi
    - close
    - pipe
    - printf
    - fork
    - fclose
    - dup
    - fdopen
    - exit
    - app_malloc
    - atof
    - strchr
    - BIO_flush
    - fgets
    - free
    - fflush
    - BIO_printf
    - strncmp
    linkageType: ''
    returnType: int
    signature: int do_multi(int multi, int size_num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/apps/speed.c:3617,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/speed.c:3628,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/speed.c:3629,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/apps/speed.c:3630,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:3631,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openssl-1.1.1g/apps/speed.c:3633,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/speed.c:3634,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-1.1.1g/apps/speed.c:3635,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/apps/speed.c:3636,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/apps/speed.c:3637,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/apps/speed.c:3639,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/apps/speed.c:3640,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openssl-1.1.1g/apps/speed.c:3640,1
    - Dst: print_message
      Src: /src/openssl-1.1.1g/apps/speed.c:3643,1
    - Dst: Time_F
      Src: /src/openssl-1.1.1g/apps/speed.c:3644,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/apps/speed.c:3651,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/apps/speed.c:3662,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/apps/speed.c:3669,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/apps/speed.c:3674,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/apps/speed.c:3678,1
    - Dst: EVP_Cipher
      Src: /src/openssl-1.1.1g/apps/speed.c:3680,1
    - Dst: Time_F
      Src: /src/openssl-1.1.1g/apps/speed.c:3683,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/speed.c:3684,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3690,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3692,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3693,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3694,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3696,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3697,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3699,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3701,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3703,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3704,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3705,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3709,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3711,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/speed.c:3713,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/speed.c:3716,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/speed.c:3717,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/apps/speed.c:3718,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 75
    argCount: 3
    argNames:
    - evp_cipher
    - lengths_single
    - seconds
    argTypes:
    - EVP_CIPHER*
    - int
    - openssl_speed_sec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3719
      start: 3611
    functionDepth: 4
    functionLinenumber: 3611
    functionLinenumberEnd: 3719
    functionName: multiblock_speed
    functionSourceFile: /src/openssl-1.1.1g/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - fprintf
    - RAND_bytes
    - OPENSSL_free
    - EVP_CIPHER_CTX_key_length
    - print_message
    - Time_F
    - EVP_Cipher
    - OSSL_NELEM
    - app_malloc
    - EVP_CIPHER_nid
    - EVP_CIPHER_CTX_new
    - OPENSSL_clear_free
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_CTX_rand_key
    - OBJ_nid2ln
    - EVP_EncryptInit_ex
    - memset
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void multiblock_speed(const EVP_CIPHER *evp_cipher, int lengths_single,\n
      \                            const openssl_speed_sec_t *seconds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/app_rand.c:20,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/app_rand.c:23,1
    - Dst: RAND_load_file
      Src: /src/openssl-1.1.1g/apps/app_rand.c:26,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/app_rand.c:27,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/app_rand.c:28,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/app_rand.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - c
    - section
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: app_RAND_load_conf
    functionSourceFile: /src/openssl-1.1.1g/apps/app_rand.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - RAND_load_file
    - OPENSSL_strdup
    - ERR_clear_error
    - BIO_printf
    - ERR_print_errors
    linkageType: ''
    returnType: void
    signature: void app_RAND_load_conf(CONF *c, const char *section)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RAND_load_file
      Src: /src/openssl-1.1.1g/apps/app_rand.c:46,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/app_rand.c:47,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/app_rand.c:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 58
    functionName: loadfiles
    functionSourceFile: /src/openssl-1.1.1g/apps/app_rand.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors
    - BIO_printf
    - RAND_load_file
    linkageType: ''
    returnType: int
    signature: int loadfiles(char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_write_file
      Src: /src/openssl-1.1.1g/apps/app_rand.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/app_rand.c:65,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/app_rand.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/app_rand.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: app_RAND_write
    functionSourceFile: /src/openssl-1.1.1g/apps/app_rand.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ERR_print_errors
    - RAND_write_file
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void app_RAND_write(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: loadfiles
      Src: /src/openssl-1.1.1g/apps/app_rand.c:85,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/app_rand.c:85,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/app_rand.c:88,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/app_rand.c:89,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/app_rand.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - opt
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: opt_rand
    functionSourceFile: /src/openssl-1.1.1g/apps/app_rand.c
    functionUses: 3
    functionsReached:
    - OPENSSL_strdup
    - loadfiles
    - OPENSSL_free
    - opt_arg
    linkageType: ''
    returnType: int
    signature: int opt_rand(int opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: save_errno
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void save_errno(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: restore_errno
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int restore_errno(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/apps/s_client.c:100,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: do_ssl_shutdown
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - SSL_get_error
    - SSL_shutdown
    linkageType: ''
    returnType: void
    signature: void do_ssl_shutdown(SSL *ssl)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:129,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:133,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:136,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/s_client.c:142,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:146,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/apps/s_client.c:150,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:152,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:157,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:160,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/s_client.c:164,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:165,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:168,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:173,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 6
    argNames:
    - ssl
    - hint
    - identity
    - max_identity_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 175
    functionName: psk_client_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - OPENSSL_free
    - memcpy
    - OPENSSL_hexstr2buf
    - BIO_printf
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_client_cb(SSL *ssl, const char *hint, char *identity,\n
      \                                 unsigned int max_identity_len,\n                                  unsigned
      char *psk,\n                                  unsigned int max_psk_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/apps/s_client.c:189,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/apps/s_client.c:193,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:196,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/apps/s_client.c:202,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:204,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:205,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:209,1
    - Dst: SSL_SESSION_set1_master_key
      Src: /src/openssl-1.1.1g/apps/s_client.c:211,1
    - Dst: SSL_SESSION_set_cipher
      Src: /src/openssl-1.1.1g/apps/s_client.c:212,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-1.1.1g/apps/s_client.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:217,1
    - Dst: SSL_SESSION_get0_cipher
      Src: /src/openssl-1.1.1g/apps/s_client.c:220,1
    - Dst: SSL_CIPHER_get_handshake_digest
      Src: /src/openssl-1.1.1g/apps/s_client.c:224,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:229,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_client.c:233,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:239,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 5
    argNames:
    - s
    - md
    - id
    - idlen
    - sess
    argTypes:
    - SSL*
    - EVP_MD*
    - unsigned char**
    - size_t*
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 241
    functionName: psk_use_session_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_up_ref
    - SSL_SESSION_get0_cipher
    - SSL_CIPHER_get_handshake_digest
    - SSL_SESSION_free
    - OPENSSL_free
    - SSL_SESSION_set1_master_key
    - SSL_SESSION_new
    - OPENSSL_hexstr2buf
    - SSL_CIPHER_find
    - BIO_printf
    - SSL_SESSION_set_protocol_version
    - SSL_SESSION_set_cipher
    - strlen
    linkageType: ''
    returnType: int
    signature: "int psk_use_session_cb(SSL *s, const EVP_MD *md,\n                              const
      unsigned char **id, size_t *idlen,\n                              SSL_SESSION
      **sess)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/apps/s_client.c:252,1
    - Dst: SSL_get_servername_type
      Src: /src/openssl-1.1.1g/apps/s_client.c:253,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/apps/s_client.c:254,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: ssl_servername_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - SSL_get_servername
    - SSL_get_servername_type
    - SSL_session_reused
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ssl_servername_cb(SSL *s, int *ad, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:277,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:278,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:279,1
    - Dst: BN_is_odd
      Src: /src/openssl-1.1.1g/apps/s_client.c:281,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/apps/s_client.c:282,1
    - Dst: BN_rshift1
      Src: /src/openssl-1.1.1g/apps/s_client.c:283,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/apps/s_client.c:285,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/apps/s_client.c:288,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/apps/s_client.c:289,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/apps/s_client.c:289,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:291,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:292,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:293,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 5
    argCount: 2
    argNames:
    - N
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 275
    functionDepth: 5
    functionLinenumber: 275
    functionLinenumberEnd: 295
    functionName: srp_Verify_N_and_g
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - BN_add_word
    - BN_new
    - BN_cmp
    - BN_rshift1
    - BN_is_prime_ex
    - BN_CTX_free
    - BN_free
    - BN_mod_exp
    - BN_CTX_new
    - BN_is_odd
    linkageType: ''
    returnType: int
    signature: int srp_Verify_N_and_g(const BIGNUM *N, const BIGNUM *g)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_srp_N
      Src: /src/openssl-1.1.1g/apps/s_client.c:318,1
    - Dst: SSL_get_srp_g
      Src: /src/openssl-1.1.1g/apps/s_client.c:318,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:321,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:322,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/apps/s_client.c:323,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:324,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/apps/s_client.c:325,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:326,1
    - Dst: SRP_check_known_gN_param
      Src: /src/openssl-1.1.1g/apps/s_client.c:329,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:334,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/apps/s_client.c:342,1
    - Dst: srp_Verify_N_and_g
      Src: /src/openssl-1.1.1g/apps/s_client.c:342,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:345,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 313
    functionDepth: 6
    functionLinenumber: 313
    functionLinenumberEnd: 347
    functionName: ssl_srp_verify_param_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - SRP_check_known_gN_param
    - srp_Verify_N_and_g
    - SSL_get_srp_g
    - SSL_get_srp_N
    - BIO_printf
    - BN_num_bits
    - BN_print
    linkageType: ''
    returnType: int
    signature: int ssl_srp_verify_param_cb(SSL *s, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_client.c:354,1
    - Dst: password_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:360,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:361,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 368
    functionName: ssl_give_srp_client_pwd_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - app_malloc
    - BIO_printf
    - password_callback
    linkageType: ''
    returnType: char
    signature: char *ssl_give_srp_client_pwd_cb(SSL *s, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:391,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:394,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:395,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:398,1
    - Dst: SSL_select_next_proto
      Src: /src/openssl-1.1.1g/apps/s_client.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 404
    functionName: next_proto_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - SSL_select_next_proto
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int next_proto_cb(SSL *s, unsigned char **out, unsigned char *outlen,\n
      \                        const unsigned char *in, unsigned int inlen,\n                         void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/s_client.c:420,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/s_client.c:422,1
    - Dst: PEM_write_bio
      Src: /src/openssl-1.1.1g/apps/s_client.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 426
    functionName: serverinfo_cli_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - memcpy
    - PEM_write_bio
    linkageType: ''
    returnType: int
    signature: "int serverinfo_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char *in, size_t inlen,\n                                   int *al,
      void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_client.c:436,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_client.c:436,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/apps/s_client.c:447,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/apps/s_client.c:447,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/apps/s_client.c:449,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:451,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:463,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - inptr
    - result
    argTypes:
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 469
    functionName: hexdecode
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - app_malloc
    - isspace
    - OPENSSL_free
    - _UC
    - OPENSSL_hexchar2int
    - strlen
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t hexdecode(const char **inptr, void *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: save_errno
      Src: /src/openssl-1.1.1g/apps/s_client.c:483,1
    - Dst: strtol
      Src: /src/openssl-1.1.1g/apps/s_client.c:484,1
    - Dst: restore_errno
      Src: /src/openssl-1.1.1g/apps/s_client.c:485,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/apps/s_client.c:488,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/apps/s_client.c:488,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/apps/s_client.c:492,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/apps/s_client.c:492,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - inptr
    - out
    argTypes:
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 497
    functionName: checked_uint8
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - save_errno
    - isspace
    - strtol
    - _UC
    - restore_errno
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t checked_uint8(const char **inptr, void *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct tlsa_field*::parser
      Src: /src/openssl-1.1.1g/apps/s_client.c:526,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:527,1
    - Dst: SSL_dane_tlsa_add
      Src: /src/openssl-1.1.1g/apps/s_client.c:533,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:534,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:537,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:538,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:543,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - con
    - rrdata
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 505
    functionDepth: 5
    functionLinenumber: 505
    functionLinenumberEnd: 549
    functionName: tlsa_import_rr
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - struct tlsa_field*::parser
    - BIO_printf
    - ERR_print_errors
    - SSL_dane_tlsa_add
    linkageType: ''
    returnType: int
    signature: int tlsa_import_rr(SSL *con, const char *rrdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 835
    functionName: IS_INET_FLAG
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_INET_FLAG(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 836
    functionName: IS_UNIX_FLAG
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_UNIX_FLAG(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: IS_PROT_FLAG
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_PROT_FLAG(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:844,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/s_client.c:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 848
    functionName: freeandcopy
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void freeandcopy(char **dest, const char *source)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/s_client.c:854,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:857,1
    - Dst: PEM_write_bio_SSL_SESSION
      Src: /src/openssl-1.1.1g/apps/s_client.c:859,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:860,1
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/apps/s_client.c:868,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:869,1
    - Dst: SSL_SESSION_print
      Src: /src/openssl-1.1.1g/apps/s_client.c:871,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:872,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - s
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 850
    functionDepth: 4
    functionLinenumber: 850
    functionLinenumberEnd: 880
    functionName: new_session_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_SSL_SESSION
    - SSL_version
    - SSL_SESSION_print
    - BIO_free
    - BIO_printf
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int new_session_cb(SSL *s, SSL_SESSION *sess)
  - BBCount: 401
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/s_client.c:888,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/s_client.c:893,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/s_client.c:895,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/s_client.c:897,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/apps/s_client.c:898,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/s_client.c:904,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/s_client.c:986,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/s_client.c:987,1
    - Dst: __has_feature
      Src: /src/openssl-1.1.1g/apps/s_client.c:990,1
    - Dst: __msan_unpoison
      Src: /src/openssl-1.1.1g/apps/s_client.c:991,1
    - Dst: __msan_unpoison
      Src: /src/openssl-1.1.1g/apps/s_client.c:992,1
    - Dst: opt_progname
      Src: /src/openssl-1.1.1g/apps/s_client.c:996,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:1001,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:1002,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1005,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_client.c:1009,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_client.c:1010,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_client.c:1011,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/apps/s_client.c:1013,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/s_client.c:1015,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/s_client.c:1016,1
    - Dst: IS_INET_FLAG
      Src: /src/openssl-1.1.1g/apps/s_client.c:1018,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1019,1
    - Dst: IS_UNIX_FLAG
      Src: /src/openssl-1.1.1g/apps/s_client.c:1024,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1025,1
    - Dst: IS_PROT_FLAG
      Src: /src/openssl-1.1.1g/apps/s_client.c:1031,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1032,1
    - Dst: IS_NO_PROT_FLAG
      Src: /src/openssl-1.1.1g/apps/s_client.c:1035,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1038,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1047,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/s_client.c:1050,1
    - Dst: freeandcopy
      Src: /src/openssl-1.1.1g/apps/s_client.c:1067,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1067,1
    - Dst: freeandcopy
      Src: /src/openssl-1.1.1g/apps/s_client.c:1071,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1071,1
    - Dst: freeandcopy
      Src: /src/openssl-1.1.1g/apps/s_client.c:1075,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1075,1
    - Dst: freeandcopy
      Src: /src/openssl-1.1.1g/apps/s_client.c:1078,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1078,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1081,1
    - Dst: freeandcopy
      Src: /src/openssl-1.1.1g/apps/s_client.c:1088,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1088,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1094,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/s_client.c:1098,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1098,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1100,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1103,1
    - Dst: set_nameopt
      Src: /src/openssl-1.1.1g/apps/s_client.c:1106,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1106,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1110,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1116,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1119,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/s_client.c:1122,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1122,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/s_client.c:1126,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1126,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/s_client.c:1141,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:1143,1
    - Dst: opt_flag
      Src: /src/openssl-1.1.1g/apps/s_client.c:1143,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:1144,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1144,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1145,1
    - Dst: opt_verify
      Src: /src/openssl-1.1.1g/apps/s_client.c:1150,1
    - Dst: args_excert
      Src: /src/openssl-1.1.1g/apps/s_client.c:1155,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/s_client.c:1174,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1174,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/apps/s_client.c:1178,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1178,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1180,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/s_client.c:1186,1
    - Dst: dbug_init
      Src: /src/openssl-1.1.1g/apps/s_client.c:1208,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/s_client.c:1215,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1215,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1238,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1241,1
    - Dst: isxdigit
      Src: /src/openssl-1.1.1g/apps/s_client.c:1242,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/apps/s_client.c:1242,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1244,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1249,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1253,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1258,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/s_client.c:1263,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1263,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1264,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1281,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/apps/s_client.c:1305,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/apps/s_client.c:1312,1
    - Dst: DTLS_client_method
      Src: /src/openssl-1.1.1g/apps/s_client.c:1321,1
    - Dst: atol
      Src: /src/openssl-1.1.1g/apps/s_client.c:1345,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1345,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/s_client.c:1352,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1352,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1356,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1359,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1362,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1368,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1374,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1377,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1383,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1386,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1399,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1403,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1406,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1409,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/s_client.c:1413,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:1415,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1415,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1416,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1425,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1429,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1432,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_client.c:1433,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/s_client.c:1436,1
    - Dst: opt_pair
      Src: /src/openssl-1.1.1g/apps/s_client.c:1444,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1444,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1448,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1455,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1459,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/s_client.c:1462,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1462,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/s_client.c:1468,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1468,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1483,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/s_client.c:1490,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1490,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/s_client.c:1493,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1493,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/s_client.c:1496,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1496,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/s_client.c:1499,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1499,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1502,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1505,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1513,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1518,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1524,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/s_client.c:1530,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1537,1
    - Dst: freeandcopy
      Src: /src/openssl-1.1.1g/apps/s_client.c:1543,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/s_client.c:1543,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1550,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1558,1
    - Dst: BIO_parse_hostserv
      Src: /src/openssl-1.1.1g/apps/s_client.c:1561,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1563,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1565,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1567,1
    - Dst: BIO_parse_hostserv
      Src: /src/openssl-1.1.1g/apps/s_client.c:1575,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1578,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1580,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1582,1
    - Dst: BIO_parse_hostserv
      Src: /src/openssl-1.1.1g/apps/s_client.c:1591,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1594,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1603,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1612,1
    - Dst: next_protos_parse
      Src: /src/openssl-1.1.1g/apps/s_client.c:1624,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1626,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/s_client.c:1633,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1634,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/s_client.c:1642,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1645,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/s_client.c:1651,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1653,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/s_client.c:1659,1
    - Dst: load_crl
      Src: /src/openssl-1.1.1g/apps/s_client.c:1666,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:1668,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1669,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openssl-1.1.1g/apps/s_client.c:1672,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:1673,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:1674,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1675,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1676,1
    - Dst: load_excert
      Src: /src/openssl-1.1.1g/apps/s_client.c:1681,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:1686,1
    - Dst: BIO_s_null
      Src: /src/openssl-1.1.1g/apps/s_client.c:1686,1
    - Dst: dup_bio_out
      Src: /src/openssl-1.1.1g/apps/s_client.c:1688,1
    - Dst: dup_bio_out
      Src: /src/openssl-1.1.1g/apps/s_client.c:1690,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/s_client.c:1693,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1694,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:1699,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1701,1
    - Dst: SSL_CTX_clear_mode
      Src: /src/openssl-1.1.1g/apps/s_client.c:1705,1
    - Dst: ssl_ctx_security_debug
      Src: /src/openssl-1.1.1g/apps/s_client.c:1708,1
    - Dst: config_ctx
      Src: /src/openssl-1.1.1g/apps/s_client.c:1710,1
    - Dst: SSL_CTX_config
      Src: /src/openssl-1.1.1g/apps/s_client.c:1714,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1715,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1717,1
    - Dst: SSL_CTX_set_mode
      Src: /src/openssl-1.1.1g/apps/s_client.c:1724,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/apps/s_client.c:1728,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/apps/s_client.c:1731,1
    - Dst: SSL_CTX_set1_param
      Src: /src/openssl-1.1.1g/apps/s_client.c:1734,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1735,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1736,1
    - Dst: SSL_CTX_set_mode
      Src: /src/openssl-1.1.1g/apps/s_client.c:1741,1
    - Dst: SSL_CTX_set_max_send_fragment
      Src: /src/openssl-1.1.1g/apps/s_client.c:1745,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1746,1
    - Dst: SSL_CTX_set_split_send_fragment
      Src: /src/openssl-1.1.1g/apps/s_client.c:1752,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1753,1
    - Dst: SSL_CTX_set_max_pipelines
      Src: /src/openssl-1.1.1g/apps/s_client.c:1759,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1760,1
    - Dst: SSL_CTX_set_default_read_buffer_len
      Src: /src/openssl-1.1.1g/apps/s_client.c:1766,1
    - Dst: SSL_CTX_set_tlsext_max_fragment_length
      Src: /src/openssl-1.1.1g/apps/s_client.c:1770,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1771,1
    - Dst: ssl_load_stores
      Src: /src/openssl-1.1.1g/apps/s_client.c:1777,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1779,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1780,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/s_client.c:1784,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-1.1.1g/apps/s_client.c:1784,1
    - Dst: SSL_add_file_cert_subjects_to_stack
      Src: /src/openssl-1.1.1g/apps/s_client.c:1786,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1787,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1788,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1789,1
    - Dst: SSL_CTX_set0_CA_list
      Src: /src/openssl-1.1.1g/apps/s_client.c:1792,1
    - Dst: SSL_CTX_set_client_cert_engine
      Src: /src/openssl-1.1.1g/apps/s_client.c:1796,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:1797,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1798,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1799,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1802,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1809,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:1810,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/s_client.c:1814,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1817,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1818,1
    - Dst: PEM_read_bio_SSL_SESSION
      Src: /src/openssl-1.1.1g/apps/s_client.c:1821,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1822,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1824,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1825,1
    - Dst: SSL_CTX_set_psk_use_session_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:1830,1
    - Dst: SSL_CTX_set_tlsext_use_srtp
      Src: /src/openssl-1.1.1g/apps/s_client.c:1835,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1836,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1837,1
    - Dst: ssl_ctx_set_excert
      Src: /src/openssl-1.1.1g/apps/s_client.c:1844,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/openssl-1.1.1g/apps/s_client.c:1848,1
    - Dst: next_protos_parse
      Src: /src/openssl-1.1.1g/apps/s_client.c:1852,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1855,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-1.1.1g/apps/s_client.c:1859,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1860,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1863,1
    - Dst: SSL_CTX_add_client_custom_ext
      Src: /src/openssl-1.1.1g/apps/s_client.c:1867,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1871,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:1878,1
    - Dst: SSL_CTX_enable_ct
      Src: /src/openssl-1.1.1g/apps/s_client.c:1883,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1884,1
    - Dst: ctx_set_ctlog_list_file
      Src: /src/openssl-1.1.1g/apps/s_client.c:1888,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1890,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:1900,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openssl-1.1.1g/apps/s_client.c:1904,1
    - Dst: ctx_set_verify_locations
      Src: /src/openssl-1.1.1g/apps/s_client.c:1906,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1907,1
    - Dst: ssl_ctx_add_crls
      Src: /src/openssl-1.1.1g/apps/s_client.c:1911,1
    - Dst: set_cert_key_stuff
      Src: /src/openssl-1.1.1g/apps/s_client.c:1913,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:1918,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1919,1
    - Dst: SSL_CTX_set_srp_username
      Src: /src/openssl-1.1.1g/apps/s_client.c:1923,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1924,1
    - Dst: SSL_CTX_set_srp_cb_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:1929,1
    - Dst: SSL_CTX_set_srp_client_pwd_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:1930,1
    - Dst: SSL_CTX_set_srp_strength
      Src: /src/openssl-1.1.1g/apps/s_client.c:1931,1
    - Dst: SSL_CTX_set_srp_verify_param_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:1933,1
    - Dst: SSL_CTX_dane_enable
      Src: /src/openssl-1.1.1g/apps/s_client.c:1939,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1940,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1943,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/apps/s_client.c:1953,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-1.1.1g/apps/s_client.c:1955,1
    - Dst: set_keylog_file
      Src: /src/openssl-1.1.1g/apps/s_client.c:1957,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:1960,1
    - Dst: SSL_set_post_handshake_auth
      Src: /src/openssl-1.1.1g/apps/s_client.c:1965,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/s_client.c:1969,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1971,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1972,1
    - Dst: PEM_read_bio_SSL_SESSION
      Src: /src/openssl-1.1.1g/apps/s_client.c:1975,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1976,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1978,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1979,1
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/apps/s_client.c:1982,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:1983,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:1984,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:1988,1
    - Dst: SSL_set_mode
      Src: /src/openssl-1.1.1g/apps/s_client.c:1992,1
    - Dst: is_dNS_name
      Src: /src/openssl-1.1.1g/apps/s_client.c:1996,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/apps/s_client.c:1999,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2000,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:2001,1
    - Dst: SSL_dane_enable
      Src: /src/openssl-1.1.1g/apps/s_client.c:2007,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2008,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:2010,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2014,1
    - Dst: tlsa_import_rrset
      Src: /src/openssl-1.1.1g/apps/s_client.c:2018,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2019,1
    - Dst: SSL_dane_set_flags
      Src: /src/openssl-1.1.1g/apps/s_client.c:2024,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2026,1
    - Dst: init_client
      Src: /src/openssl-1.1.1g/apps/s_client.c:2032,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2034,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:2034,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_client.c:2035,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2038,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-1.1.1g/apps/s_client.c:2041,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:2042,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2045,1
    - Dst: BIO_new_dgram_sctp
      Src: /src/openssl-1.1.1g/apps/s_client.c:2053,1
    - Dst: BIO_new_dgram
      Src: /src/openssl-1.1.1g/apps/s_client.c:2056,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2058,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2059,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_client.c:2060,1
    - Dst: BIO_sock_info
      Src: /src/openssl-1.1.1g/apps/s_client.c:2063,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2064,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:2065,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2066,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_client.c:2067,1
    - Dst: BIO_ctrl_set_connected
      Src: /src/openssl-1.1.1g/apps/s_client.c:2071,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2072,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/apps/s_client.c:2078,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/apps/s_client.c:2082,1
    - Dst: DTLS_get_link_min_mtu
      Src: /src/openssl-1.1.1g/apps/s_client.c:2086,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2087,1
    - Dst: DTLS_get_link_min_mtu
      Src: /src/openssl-1.1.1g/apps/s_client.c:2088,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2089,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/apps/s_client.c:2092,1
    - Dst: DTLS_set_link_mtu
      Src: /src/openssl-1.1.1g/apps/s_client.c:2093,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2094,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2095,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/apps/s_client.c:2100,1
    - Dst: BIO_new_socket
      Src: /src/openssl-1.1.1g/apps/s_client.c:2104,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2109,1
    - Dst: BIO_f_nbio_test
      Src: /src/openssl-1.1.1g/apps/s_client.c:2109,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:2110,1
    - Dst: BIO_set_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:2114,1
    - Dst: BIO_set_callback_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:2115,1
    - Dst: SSL_set_msg_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:2120,1
    - Dst: SSL_set_msg_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:2123,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:2124,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openssl-1.1.1g/apps/s_client.c:2128,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:2129,1
    - Dst: SSL_set_tlsext_status_type
      Src: /src/openssl-1.1.1g/apps/s_client.c:2133,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openssl-1.1.1g/apps/s_client.c:2134,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openssl-1.1.1g/apps/s_client.c:2135,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/apps/s_client.c:2139,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/apps/s_client.c:2140,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/s_client.c:2143,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2143,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/s_client.c:2144,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2146,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2174,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/s_client.c:2174,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:2176,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2179,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2184,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2186,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2187,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2193,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/s_client.c:2194,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2197,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/apps/s_client.c:2198,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2199,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2201,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2204,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2205,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2210,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2211,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2212,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2214,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2222,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/s_client.c:2222,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:2224,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2225,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2227,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2228,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2231,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/s_client.c:2232,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2236,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/apps/s_client.c:2237,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2238,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2240,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2243,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2244,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2249,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/s_client.c:2249,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:2251,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2254,1
    - Dst: isdigit
      Src: /src/openssl-1.1.1g/apps/s_client.c:2256,1
    - Dst: isdigit
      Src: /src/openssl-1.1.1g/apps/s_client.c:2256,1
    - Dst: isdigit
      Src: /src/openssl-1.1.1g/apps/s_client.c:2256,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2257,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/apps/s_client.c:2258,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2259,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2260,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2261,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2268,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2273,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2275,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/s_client.c:2279,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/s_client.c:2281,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2284,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2291,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2293,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2295,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/s_client.c:2299,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2321,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/apps/s_client.c:2322,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:2325,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:2326,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2327,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2329,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/apps/s_client.c:2330,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2341,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/s_client.c:2341,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:2343,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2344,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2345,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2352,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_client.c:2353,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2354,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2357,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/apps/s_client.c:2358,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2359,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2363,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2368,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2376,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2379,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/apps/s_client.c:2380,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2381,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2390,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/s_client.c:2390,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:2392,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2393,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2394,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2395,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/s_client.c:2400,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_client.c:2401,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2401,1
    - Dst: BIO_get_buffer_num_lines
      Src: /src/openssl-1.1.1g/apps/s_client.c:2411,1
    - Dst: BIO_pending
      Src: /src/openssl-1.1.1g/apps/s_client.c:2412,1
    - Dst: BIO_pending
      Src: /src/openssl-1.1.1g/apps/s_client.c:2413,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/s_client.c:2414,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2416,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2422,1
    - Dst: sscanf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2423,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/s_client.c:2428,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2429,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2433,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:2434,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2439,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/apps/s_client.c:2440,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2441,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2443,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2473,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2475,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2479,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2484,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2488,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2497,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2506,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2513,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2520,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:2525,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2526,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:2538,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2539,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2542,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2550,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/s_client.c:2550,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:2552,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2553,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2555,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2556,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2559,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/s_client.c:2560,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2563,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/apps/s_client.c:2564,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2565,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2567,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2570,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2571,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2573,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/s_client.c:2577,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2578,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2586,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/s_client.c:2586,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_client.c:2588,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_client.c:2591,1
    - Dst: make_uppercase
      Src: /src/openssl-1.1.1g/apps/s_client.c:2597,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/s_client.c:2598,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2602,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/apps/s_client.c:2603,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2604,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2606,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2609,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2610,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2612,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2617,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/apps/s_client.c:2624,1
    - Dst: make_uppercase
      Src: /src/openssl-1.1.1g/apps/s_client.c:2625,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/s_client.c:2626,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2627,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2644,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/apps/s_client.c:2644,1
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:2645,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2648,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:2651,1
    - Dst: NCONF_load_bio
      Src: /src/openssl-1.1.1g/apps/s_client.c:2652,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2653,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2654,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2656,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2659,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2663,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/s_client.c:2664,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2666,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2667,1
    - Dst: ASN1_generate_nconf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2670,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2672,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2673,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2676,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:2679,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:2681,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2682,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2684,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2686,1
    - Dst: ldap_ExtendedResponse_parse
      Src: /src/openssl-1.1.1g/apps/s_client.c:2689,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2691,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2694,1
    - Dst: SSL_get0_session
      Src: /src/openssl-1.1.1g/apps/s_client.c:2704,1
    - Dst: SSL_SESSION_get_max_early_data
      Src: /src/openssl-1.1.1g/apps/s_client.c:2705,1
    - Dst: SSL_get0_session
      Src: /src/openssl-1.1.1g/apps/s_client.c:2705,1
    - Dst: SSL_SESSION_get_max_early_data
      Src: /src/openssl-1.1.1g/apps/s_client.c:2707,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/s_client.c:2708,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2713,1
    - Dst: BIO_read_ex
      Src: /src/openssl-1.1.1g/apps/s_client.c:2718,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-1.1.1g/apps/s_client.c:2721,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:2722,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2729,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2730,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:2731,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:2737,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/s_client.c:2741,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/s_client.c:2742,1
    - Dst: SSL_is_dtls
      Src: /src/openssl-1.1.1g/apps/s_client.c:2744,1
    - Dst: DTLSv1_get_timeout
      Src: /src/openssl-1.1.1g/apps/s_client.c:2744,1
    - Dst: SSL_is_init_finished
      Src: /src/openssl-1.1.1g/apps/s_client.c:2749,1
    - Dst: SSL_total_renegotiations
      Src: /src/openssl-1.1.1g/apps/s_client.c:2749,1
    - Dst: SSL_get_key_update_type
      Src: /src/openssl-1.1.1g/apps/s_client.c:2750,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:2759,1
    - Dst: print_ssl_summary
      Src: /src/openssl-1.1.1g/apps/s_client.c:2760,1
    - Dst: print_stuff
      Src: /src/openssl-1.1.1g/apps/s_client.c:2763,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:2768,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2776,1
    - Dst: do_ssl_shutdown
      Src: /src/openssl-1.1.1g/apps/s_client.c:2778,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/apps/s_client.c:2779,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_client.c:2780,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2780,1
    - Dst: SSL_has_pending
      Src: /src/openssl-1.1.1g/apps/s_client.c:2786,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_client.c:2797,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/s_client.c:2797,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_client.c:2800,1
    - Dst: fileno_stdout
      Src: /src/openssl-1.1.1g/apps/s_client.c:2800,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_client.c:2804,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2804,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_client.c:2806,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2806,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_client.c:2810,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2810,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_client.c:2812,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2812,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/s_client.c:2836,1
    - Dst: has_stdin_waiting
      Src: /src/openssl-1.1.1g/apps/s_client.c:2838,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/s_client.c:2841,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/s_client.c:2845,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2849,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:2850,1
    - Dst: SSL_is_dtls
      Src: /src/openssl-1.1.1g/apps/s_client.c:2855,1
    - Dst: DTLSv1_handle_timeout
      Src: /src/openssl-1.1.1g/apps/s_client.c:2855,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2856,1
    - Dst: FD_ISSET
      Src: /src/openssl-1.1.1g/apps/s_client.c:2858,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2858,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:2859,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:2860,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2877,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2882,1
    - Dst: wait_for_async
      Src: /src/openssl-1.1.1g/apps/s_client.c:2883,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2888,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2894,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2898,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2909,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:2910,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:2920,1
    - Dst: FD_ISSET
      Src: /src/openssl-1.1.1g/apps/s_client.c:2928,1
    - Dst: fileno_stdout
      Src: /src/openssl-1.1.1g/apps/s_client.c:2928,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-1.1.1g/apps/s_client.c:2932,1
    - Dst: raw_write_stdout
      Src: /src/openssl-1.1.1g/apps/s_client.c:2934,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2937,1
    - Dst: FD_ISSET
      Src: /src/openssl-1.1.1g/apps/s_client.c:2948,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:2948,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_client.c:2953,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:2958,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:2960,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2971,1
    - Dst: wait_for_async
      Src: /src/openssl-1.1.1g/apps/s_client.c:2972,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2979,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2984,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2991,1
    - Dst: get_last_socket_error
      Src: /src/openssl-1.1.1g/apps/s_client.c:2994,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:2996,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:2998,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3001,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_client.c:3007,1
    - Dst: has_stdin_waiting
      Src: /src/openssl-1.1.1g/apps/s_client.c:3013,1
    - Dst: FD_ISSET
      Src: /src/openssl-1.1.1g/apps/s_client.c:3015,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/s_client.c:3015,1
    - Dst: raw_read_stdin
      Src: /src/openssl-1.1.1g/apps/s_client.c:3021,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/s_client.c:3035,1
    - Dst: raw_read_stdin
      Src: /src/openssl-1.1.1g/apps/s_client.c:3037,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3044,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3050,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_client.c:3051,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3055,1
    - Dst: SSL_key_update
      Src: /src/openssl-1.1.1g/apps/s_client.c:3056,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3063,1
    - Dst: SSL_heartbeat
      Src: /src/openssl-1.1.1g/apps/s_client.c:3064,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/s_client.c:3072,1
    CyclomaticComplexity: 633
    EdgeCount: 633
    ICount: 1681
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (lf_num == 0)
      pos:
        line_end: 3034
        line_start: 3034
        source_file: /src/openssl-1.1.1g/apps/s_client.c
    constantsTouched: []
    func_position:
      end: 3079
      start: 882
    functionDepth: 7
    functionLinenumber: 882
    functionLinenumberEnd: 3079
    functionName: s_client_main
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - SSL_is_init_finished
    - next_protos_parse
    - BIO_ADDR_free
    - strncpy
    - has_stdin_waiting
    - BIO_closesocket
    - SSL_CONF_CTX_new
    - SSL_set_connect_state
    - select
    - IS_INET_FLAG
    - fileno_stdout
    - tlsa_import_rrset
    - SSL_set_tlsext_status_type
    - BIO_get_buffer_num_lines
    - BIO_set_callback_arg
    - OPENSSL_free
    - X509_VERIFY_PARAM_new
    - SSL_CTX_clear_mode
    - SSL_CTX_set_max_send_fragment
    - app_malloc
    - SSL_CTX_set_max_pipelines
    - SSL_read
    - SSL_CTX_set_tlsext_status_cb
    - SSL_CTX_set_session_cache_mode
    - __msan_unpoison
    - SSL_CTX_set_srp_cb_arg
    - DTLS_set_link_mtu
    - SSL_CTX_set_alpn_protos
    - sk_OPENSSL_STRING_push
    - SSL_key_update
    - sscanf
    - SSL_CTX_set_srp_verify_param_callback
    - SSL_dane_enable
    - SSL_set_tlsext_debug_arg
    - SSL_is_dtls
    - load_cert
    - SSL_write
    - sk_X509_CRL_push
    - BIO_sock_info
    - print_stuff
    - load_certs
    - SSL_CTX_set0_CA_list
    - atoi
    - ctx_set_verify_locations
    - STACK_OF
    - PEM_read_bio_SSL_SESSION
    - isdigit
    - SSL_CTX_set_info_callback
    - load_excert
    - BIO_pending
    - BIO_s_mem
    - DTLSv1_handle_timeout
    - BIO_new_dgram
    - opt_flag
    - opt_rand
    - SSL_CTX_set_default_read_buffer_len
    - SSL_CTX_enable_ct
    - sk_OPENSSL_STRING_new_null
    - SSL_set_tlsext_debug_callback
    - memcmp
    - NCONF_free
    - SSL_set_post_handshake_auth
    - X509_CRL_free
    - BIO_puts
    - BIO_free
    - ERR_clear_error
    - BIO_read
    - dup_bio_out
    - IS_UNIX_FLAG
    - SSL_CTX_set_verify
    - BIO_socket_nbio
    - SSL_set_bio
    - wait_for_async
    - SSL_CTX_set1_param
    - SSL_CTX_set_tlsext_servername_callback
    - load_crl
    - init_client
    - SSL_CTX_set_tlsext_use_srtp
    - SSL_set_msg_callback_arg
    - assert
    - _UC
    - IS_PROT_FLAG
    - IS_NO_PROT_FLAG
    - set_keylog_file
    - SSL_set_msg_callback
    - FD_ISSET
    - SSL_get_error
    - opt_rest
    - SSL_get0_session
    - ascii2ebcdic
    - BIO_printf
    - ERR_print_errors
    - opt_format
    - strlen
    - freeandcopy
    - FD_ZERO
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_set_srp_username
    - SSL_get_key_update_type
    - SSL_SESSION_free
    - opt_progname
    - BIO_new_dgram_sctp
    - BIO_ctrl_set_connected
    - BIO_read_ex
    - ssl_ctx_set_excert
    - get_last_socket_error
    - SSL_CTX_set_tlsext_status_arg
    - sk_X509_CRL_new_null
    - dbug_init
    - make_uppercase
    - ASN1_TYPE_free
    - SSL_CTX_sess_set_new_cb
    - NCONF_get_string
    - SSL_CTX_set_tlsext_max_fragment_length
    - SSL_heartbeat
    - ssl_ctx_security_debug
    - SSL_CTX_set_psk_client_callback
    - SSL_CTX_dane_enable
    - opt_next
    - BIO_ADDR_new
    - isxdigit
    - BIO_push
    - SSL_CTX_set_client_cert_engine
    - openssl_fdset
    - print_ssl_summary
    - strstr
    - ebcdic2ascii
    - atol
    - SSL_CTX_set_max_proto_version
    - SSL_dane_set_flags
    - SSL_total_renegotiations
    - set_cert_key_stuff
    - opt_help
    - DTLS_get_link_min_mtu
    - BIO_write
    - SSL_CTX_set_srp_client_pwd_callback
    - do_ssl_shutdown
    - ENGINE_free
    - SSL_set_options
    - BIO_f_buffer
    - SSL_has_pending
    - BIO_s_null
    - SSL_CTX_set_mode
    - SSL_CTX_new
    - sk_X509_NAME_pop_free
    - config_ctx
    - BIO_new
    - opt_init
    - ssl_load_stores
    - SSL_set_session
    - strncmp
    - ASN1_generate_nconf
    - opt_pair
    - NCONF_new
    - args_excert
    - BIO_ctrl
    - NCONF_load_bio
    - ssl_ctx_add_crls
    - SSL_SESSION_get_max_early_data
    - app_passwd
    - raw_read_stdin
    - SSL_CTX_add_client_custom_ext
    - BIO_new_socket
    - SSL_renegotiate
    - BIO_parse_hostserv
    - SSL_set_tlsext_host_name
    - BIO_pop
    - SSL_CTX_set_split_send_fragment
    - SSL_CTX_set_tlsext_servername_arg
    - opt_arg
    - TLS_client_method
    - raw_write_stdout
    - ctx_set_ctlog_list_file
    - SSL_get_fd
    - SSL_new
    - SSL_CTX_config
    - set_nameopt
    - BIO_set_callback
    - SSL_write_early_data
    - fileno_stdin
    - ldap_ExtendedResponse_parse
    - ENGINE_by_id
    - load_key
    - SSL_set_mode
    - OPENSSL_strdup
    - BIO_f_nbio_test
    - sk_X509_NAME_new_null
    - SSL_CTX_set_srp_strength
    - is_dNS_name
    - DTLSv1_get_timeout
    - BIO_new_file
    - BIO_flush
    - __has_feature
    - DTLS_client_method
    - setup_engine
    - opt_num_rest
    - SSL_CTX_set_psk_use_session_callback
    - SSL_CTX_set_next_proto_select_cb
    - SSL_CONF_CTX_set_flags
    - opt_verify
    - SSL_add_file_cert_subjects_to_stack
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int s_client_main(int argc, char **argv)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/s_client.c:3155,1
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/apps/s_client.c:3157,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openssl-1.1.1g/apps/s_client.c:3164,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/openssl-1.1.1g/apps/s_client.c:3170,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3174,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/s_client.c:3175,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3176,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/apps/s_client.c:3177,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/s_client.c:3177,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/s_client.c:3177,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/s_client.c:3177,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:3178,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3179,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/apps/s_client.c:3180,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/apps/s_client.c:3180,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/s_client.c:3180,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/s_client.c:3180,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:3181,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/s_client.c:3183,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/s_client.c:3183,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3187,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openssl-1.1.1g/apps/s_client.c:3188,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3190,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/s_client.c:3194,1
    - Dst: dump_cert_text
      Src: /src/openssl-1.1.1g/apps/s_client.c:3195,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3197,1
    - Dst: print_ca_names
      Src: /src/openssl-1.1.1g/apps/s_client.c:3199,1
    - Dst: ssl_print_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_client.c:3201,1
    - Dst: ssl_print_tmp_key
      Src: /src/openssl-1.1.1g/apps/s_client.c:3202,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/apps/s_client.c:3214,1
    - Dst: SSL_ct_is_enabled
      Src: /src/openssl-1.1.1g/apps/s_client.c:3214,1
    - Dst: SSL_get0_peer_scts
      Src: /src/openssl-1.1.1g/apps/s_client.c:3215,1
    - Dst: sk_SCT_num
      Src: /src/openssl-1.1.1g/apps/s_client.c:3216,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3218,1
    - Dst: SSL_CTX_get0_ctlog_store
      Src: /src/openssl-1.1.1g/apps/s_client.c:3220,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3222,1
    - Dst: sk_SCT_value
      Src: /src/openssl-1.1.1g/apps/s_client.c:3224,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3226,1
    - Dst: SCT_validation_status_string
      Src: /src/openssl-1.1.1g/apps/s_client.c:3227,1
    - Dst: SCT_print
      Src: /src/openssl-1.1.1g/apps/s_client.c:3228,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3230,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3232,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3237,1
    - Dst: BIO_number_read
      Src: /src/openssl-1.1.1g/apps/s_client.c:3240,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/apps/s_client.c:3240,1
    - Dst: BIO_number_written
      Src: /src/openssl-1.1.1g/apps/s_client.c:3241,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/apps/s_client.c:3241,1
    - Dst: print_verify_detail
      Src: /src/openssl-1.1.1g/apps/s_client.c:3243,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3244,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/apps/s_client.c:3244,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/apps/s_client.c:3245,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3246,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/openssl-1.1.1g/apps/s_client.c:3247,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/apps/s_client.c:3247,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/s_client.c:3251,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3252,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/apps/s_client.c:3253,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3255,1
    - Dst: SSL_get_secure_renegotiation_support
      Src: /src/openssl-1.1.1g/apps/s_client.c:3256,1
    - Dst: SSL_get_current_compression
      Src: /src/openssl-1.1.1g/apps/s_client.c:3258,1
    - Dst: SSL_get_current_expansion
      Src: /src/openssl-1.1.1g/apps/s_client.c:3259,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3260,1
    - Dst: SSL_COMP_get_name
      Src: /src/openssl-1.1.1g/apps/s_client.c:3261,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3262,1
    - Dst: SSL_COMP_get_name
      Src: /src/openssl-1.1.1g/apps/s_client.c:3263,1
    - Dst: SSL_get_fd
      Src: /src/openssl-1.1.1g/apps/s_client.c:3272,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-1.1.1g/apps/s_client.c:3273,1
    - Dst: BIO_sock_info
      Src: /src/openssl-1.1.1g/apps/s_client.c:3274,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3275,1
    - Dst: ntohs
      Src: /src/openssl-1.1.1g/apps/s_client.c:3276,1
    - Dst: BIO_ADDR_rawport
      Src: /src/openssl-1.1.1g/apps/s_client.c:3276,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:3278,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openssl-1.1.1g/apps/s_client.c:3286,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3287,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:3288,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:3289,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openssl-1.1.1g/apps/s_client.c:3295,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3297,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:3298,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_client.c:3299,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3301,1
    - Dst: SSL_get_selected_srtp_profile
      Src: /src/openssl-1.1.1g/apps/s_client.c:3307,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3310,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/apps/s_client.c:3316,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3318,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3322,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3326,1
    - Dst: SSL_get_verify_result
      Src: /src/openssl-1.1.1g/apps/s_client.c:3336,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3337,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/apps/s_client.c:3338,1
    - Dst: SSL_SESSION_print
      Src: /src/openssl-1.1.1g/apps/s_client.c:3341,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/apps/s_client.c:3341,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/apps/s_client.c:3344,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3345,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3346,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3347,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_client.c:3348,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/apps/s_client.c:3349,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_client.c:3352,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3354,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3356,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3358,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3359,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:3361,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3363,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:3364,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_client.c:3366,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 117
    argCount: 3
    argNames:
    - bio
    - s
    - full
    argTypes:
    - BIO*
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3367
      start: 3152
    functionDepth: 8
    functionLinenumber: 3152
    functionLinenumberEnd: 3367
    functionName: print_stuff
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 1
    functionsReached:
    - SSL_get_verify_result
    - BIO_sock_info
    - X509_NAME_print_ex
    - BIO_ADDR_free
    - SSL_get_session
    - sk_SCT_num
    - SSL_export_keying_material
    - ntohs
    - SSL_get_current_expansion
    - STACK_OF
    - SSL_get0_next_proto_negotiated
    - get_nameopt
    - SSL_get0_alpn_selected
    - X509_get_issuer_name
    - X509_get_subject_name
    - SSL_get_current_cipher
    - SSL_CIPHER_get_name
    - SSL_get_peer_cert_chain
    - X509_get0_pubkey
    - SSL_COMP_get_name
    - BIO_ADDR_rawport
    - X509_free
    - SSL_get_selected_srtp_profile
    - OPENSSL_free
    - SSL_get_peer_certificate
    - EVP_PKEY_bits
    - SSL_get_current_compression
    - BIO_puts
    - print_ca_names
    - BIO_ADDR_new
    - SSL_get_fd
    - BIO_number_read
    - SSL_get_early_data_status
    - X509_verify_cert_error_string
    - app_malloc
    - ssl_print_tmp_key
    - SSL_CIPHER_get_version
    - SSL_version
    - SCT_print
    - SSL_SESSION_print
    - SSL_session_reused
    - SSL_get_SSL_CTX
    - ssl_print_sigalgs
    - SSL_CTX_get0_ctlog_store
    - sk_SCT_value
    - BIO_flush
    - SCT_validation_status_string
    - dump_cert_text
    - BIO_write
    - SSL_get0_peer_scts
    - BIO_number_written
    - SSL_get_secure_renegotiation_support
    - SSL_ct_is_enabled
    - sk_X509_num
    - SSL_get_wbio
    - PEM_write_bio_X509
    - SSL_get_rbio
    - BIO_printf
    - print_verify_detail
    - sk_X509_value
    - strlen
    linkageType: ''
    returnType: void
    signature: void print_stuff(BIO *bio, SSL *s, int full)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_tlsext_status_ocsp_resp
      Src: /src/openssl-1.1.1g/apps/s_client.c:3375,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:3376,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:3378,1
    - Dst: d2i_OCSP_RESPONSE
      Src: /src/openssl-1.1.1g/apps/s_client.c:3381,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:3383,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/apps/s_client.c:3384,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:3387,1
    - Dst: OCSP_RESPONSE_print
      Src: /src/openssl-1.1.1g/apps/s_client.c:3388,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_client.c:3389,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openssl-1.1.1g/apps/s_client.c:3390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3370
    functionDepth: 4
    functionLinenumber: 3370
    functionLinenumberEnd: 3392
    functionName: ocsp_resp_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent
    - SSL_get_tlsext_status_ocsp_resp
    - BIO_puts
    - OCSP_RESPONSE_free
    - OCSP_RESPONSE_print
    - d2i_OCSP_RESPONSE
    linkageType: ''
    returnType: int
    signature: int ocsp_resp_cb(SSL *s, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/apps/s_client.c:3432,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3435,1
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/apps/s_client.c:3442,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3445,1
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/apps/s_client.c:3453,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3456,1
    - Dst: ASN1_get_object
      Src: /src/openssl-1.1.1g/apps/s_client.c:3462,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_client.c:3465,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 2
    argNames:
    - buf
    - rem
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3477
      start: 3395
    functionDepth: 2
    functionLinenumber: 3395
    functionLinenumberEnd: 3477
    functionName: ldap_ExtendedResponse_parse
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 1
    functionsReached:
    - ASN1_get_object
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ldap_ExtendedResponse_parse(const char *buf, long rem)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_client.c:3488,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 27
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3483
    functionDepth: 1
    functionLinenumber: 3483
    functionLinenumberEnd: 3543
    functionName: is_dNS_name
    functionSourceFile: /src/openssl-1.1.1g/apps/s_client.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int is_dNS_name(const char *host)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/passwd.c:100,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/passwd.c:101,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/passwd.c:106,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/passwd.c:109,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/passwd.c:115,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/passwd.c:166,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/passwd.c:175,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/passwd.c:180,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/passwd.c:181,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/passwd.c:201,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/passwd.c:210,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/passwd.c:224,1
    - Dst: EVP_read_pw_string
      Src: /src/openssl-1.1.1g/apps/passwd.c:240,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/passwd.c:248,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:254,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:255,1
    - Dst: do_passwd
      Src: /src/openssl-1.1.1g/apps/passwd.c:259,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:267,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/passwd.c:269,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/passwd.c:271,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/passwd.c:278,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/passwd.c:279,1
    - Dst: do_passwd
      Src: /src/openssl-1.1.1g/apps/passwd.c:282,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/passwd.c:294,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:296,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:297,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:298,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 171
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (passwd != NULL)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (passwds != NULL)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (*passwds != NULL)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    constantsTouched: []
    func_position:
      end: 300
      start: 83
    functionDepth: 7
    functionLinenumber: 83
    functionLinenumberEnd: 300
    functionName: passwd_main
    functionSourceFile: /src/openssl-1.1.1g/apps/passwd.c
    functionUses: 0
    functionsReached:
    - do_passwd
    - app_malloc
    - opt_num_rest
    - EVP_read_pw_string
    - opt_rand
    - BIO_gets
    - OPENSSL_free
    - opt_rest
    - strchr
    - opt_arg
    - ERR_print_errors
    - opt_next
    - BIO_free
    - BIO_printf
    - assert
    - bio_open_default
    - opt_init
    - opt_help
    linkageType: ''
    returnType: int
    signature: int passwd_main(int argc, char **argv)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:325,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:328,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/apps/passwd.c:329,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/passwd.c:332,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/apps/passwd.c:336,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:337,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/passwd.c:339,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/passwd.c:343,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/passwd.c:346,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:351,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:356,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:357,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:360,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:362,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/apps/passwd.c:372,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:374,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/apps/passwd.c:374,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:375,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:379,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:380,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:381,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:384,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/apps/passwd.c:387,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:389,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/apps/passwd.c:389,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:390,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:391,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:392,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:393,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:397,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:400,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:405,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:409,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:413,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/apps/passwd.c:413,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:415,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:420,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:424,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:427,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:431,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:434,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:435,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:453,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:457,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:457,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:469,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:473,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:473,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-1.1.1g/apps/passwd.c:475,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:475,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:482,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:483,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:484,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 121
    argCount: 3
    argNames:
    - passwd
    - magic
    - salt
    argTypes:
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (16 == sizeof(buf_perm))
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (i == 15)
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (output == out_buf + strlen(out_buf))
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (strlen(out_buf) < sizeof(out_buf))
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    constantsTouched: []
    func_position:
      end: 486
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 486
    functionName: md5crypt
    functionSourceFile: /src/openssl-1.1.1g/apps/passwd.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - OPENSSL_strlcat
    - ebcdic2ascii
    - OPENSSL_free
    - OPENSSL_strdup
    - OPENSSL_strlcpy
    - EVP_DigestInit_ex
    - EVP_md5
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - assert
    - ascii2ebcdic
    - strlen
    linkageType: ''
    returnType: char
    signature: char *md5crypt(const char *passwd, const char *magic, const char *salt)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:524,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:525,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/apps/passwd.c:533,1
    - Dst: EVP_sha512
      Src: /src/openssl-1.1.1g/apps/passwd.c:537,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/passwd.c:544,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/apps/passwd.c:547,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/apps/passwd.c:562,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/passwd.c:565,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/apps/passwd.c:569,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:570,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/passwd.c:572,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/passwd.c:576,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/passwd.c:579,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:584,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:585,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:586,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/apps/passwd.c:589,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/passwd.c:593,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:593,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:595,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:596,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/passwd.c:598,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:601,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/apps/passwd.c:604,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:606,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:607,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:608,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/apps/passwd.c:611,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:613,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:614,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:615,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:616,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:617,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:621,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:624,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:629,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:635,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:639,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:643,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:646,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/apps/passwd.c:649,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/passwd.c:652,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/passwd.c:653,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:656,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:660,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:663,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/apps/passwd.c:666,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/passwd.c:669,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/passwd.c:670,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:673,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:675,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:680,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:684,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/passwd.c:687,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/apps/passwd.c:691,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:694,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:695,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:698,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:699,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:703,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:719,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:720,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:721,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:722,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:723,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:724,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:725,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:726,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:727,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:728,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:729,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:732,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:733,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:734,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:735,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:736,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:737,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:738,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:739,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:740,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:741,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:742,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:743,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:744,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:745,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:746,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:747,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:748,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:749,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:750,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:751,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:752,1
    - Dst: b64_from_24bit
      Src: /src/openssl-1.1.1g/apps/passwd.c:753,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-1.1.1g/apps/passwd.c:760,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:760,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:766,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:767,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:768,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:769,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/passwd.c:770,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 198
    argCount: 3
    argNames:
    - passwd
    - magic
    - salt
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 493
    functionDepth: 4
    functionLinenumber: 493
    functionLinenumberEnd: 772
    functionName: shacrypt
    functionSourceFile: /src/openssl-1.1.1g/apps/passwd.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - strtoul
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - EVP_sha512
    - OPENSSL_free
    - memcpy
    - OPENSSL_zalloc
    - EVP_sha256
    - sprintf
    - EVP_MD_CTX_new
    - OPENSSL_strlcat
    - ebcdic2ascii
    - b64_from_24bit
    - OPENSSL_strdup
    - OPENSSL_strlcpy
    - EVP_DigestUpdate
    - ascii2ebcdic
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char *shacrypt(const char *passwd, const char *magic, const char *salt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - B2
    - ','
    - B1
    - ','
    - B0
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 716
    functionName: b64_from_24bit
    functionSourceFile: /src/openssl-1.1.1g/apps/passwd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: b64_from_24bit(B2, B1, B0, N)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:780,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:781,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:799,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/passwd.c:802,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/apps/passwd.c:803,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-1.1.1g/apps/passwd.c:811,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:815,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:818,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/passwd.c:823,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:828,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/passwd.c:828,1
    - Dst: DES_crypt
      Src: /src/openssl-1.1.1g/apps/passwd.c:833,1
    - Dst: md5crypt
      Src: /src/openssl-1.1.1g/apps/passwd.c:836,1
    - Dst: md5crypt
      Src: /src/openssl-1.1.1g/apps/passwd.c:838,1
    - Dst: shacrypt
      Src: /src/openssl-1.1.1g/apps/passwd.c:840,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/passwd.c:841,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/passwd.c:844,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/passwd.c:846,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/passwd.c:848,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 10
    argNames:
    - passed_salt
    - salt_p
    - salt_malloc_p
    - passwd
    - out
    - quiet
    - table
    - reverse
    - pw_maxlen
    - mode
    argTypes:
    - int
    - char**
    - char**
    - char*
    - BIO*
    - int
    - int
    - int
    - size_t
    - passwd_modes
    assertStmts:
    - condition: (*salt_p != NULL)
      pos:
        line_end: 814
        line_start: 814
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (hash != NULL)
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (salt_p != NULL)
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (saltlen != 0)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (strlen(passwd) <= pw_maxlen)
      pos:
        line_end: 827
        line_start: 827
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    - condition: (salt_malloc_p != NULL)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/openssl-1.1.1g/apps/passwd.c
    constantsTouched: []
    func_position:
      end: 853
      start: 774
    functionDepth: 5
    functionLinenumber: 774
    functionLinenumberEnd: 853
    functionName: do_passwd
    functionSourceFile: /src/openssl-1.1.1g/apps/passwd.c
    functionUses: 1
    functionsReached:
    - app_malloc
    - RAND_bytes
    - BIO_printf
    - md5crypt
    - ascii2ebcdic
    - assert
    - DES_crypt
    - shacrypt
    - strlen
    linkageType: ''
    returnType: int
    signature: "int do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p,\n
      \                    char *passwd, BIO *out, int quiet, int table,\n                     int
      reverse, size_t pw_maxlen, passwd_modes mode)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/sess_id.c:53,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/sess_id.c:54,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/sess_id.c:59,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/sess_id.c:62,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/sess_id.c:66,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/sess_id.c:66,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/sess_id.c:70,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/sess_id.c:70,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/sess_id.c:75,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/sess_id.c:78,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/sess_id.c:90,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/sess_id.c:94,1
    - Dst: load_sess_id
      Src: /src/openssl-1.1.1g/apps/sess_id.c:98,1
    - Dst: SSL_SESSION_get0_peer
      Src: /src/openssl-1.1.1g/apps/sess_id.c:102,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/sess_id.c:105,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/sess_id.c:107,1
    - Dst: SSL_SESSION_set1_id_context
      Src: /src/openssl-1.1.1g/apps/sess_id.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/sess_id.c:112,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/sess_id.c:118,1
    - Dst: SSL_SESSION_print
      Src: /src/openssl-1.1.1g/apps/sess_id.c:124,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/sess_id.c:128,1
    - Dst: X509_print
      Src: /src/openssl-1.1.1g/apps/sess_id.c:130,1
    - Dst: i2d_SSL_SESSION_bio
      Src: /src/openssl-1.1.1g/apps/sess_id.c:136,1
    - Dst: PEM_write_bio_SSL_SESSION
      Src: /src/openssl-1.1.1g/apps/sess_id.c:138,1
    - Dst: SSL_SESSION_print_keylog
      Src: /src/openssl-1.1.1g/apps/sess_id.c:140,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/sess_id.c:142,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/sess_id.c:146,1
    - Dst: i2d_X509_bio
      Src: /src/openssl-1.1.1g/apps/sess_id.c:151,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/sess_id.c:153,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/sess_id.c:155,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/sess_id.c:159,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/sess_id.c:165,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/apps/sess_id.c:166,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 125
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 168
    functionName: sess_id_main
    functionSourceFile: /src/openssl-1.1.1g/apps/sess_id.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    - SSL_SESSION_set1_id_context
    - bio_open_default
    - SSL_SESSION_print_keylog
    - opt_arg
    - BIO_puts
    - opt_next
    - PEM_write_bio_SSL_SESSION
    - load_sess_id
    - X509_print
    - SSL_SESSION_print
    - i2d_X509_bio
    - opt_help
    - BIO_free_all
    - opt_num_rest
    - SSL_SESSION_get0_peer
    - i2d_SSL_SESSION_bio
    - PEM_write_bio_X509
    - BIO_printf
    - opt_format
    - opt_init
    - strlen
    linkageType: ''
    returnType: int
    signature: int sess_id_main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/sess_id.c:175,1
    - Dst: d2i_SSL_SESSION_bio
      Src: /src/openssl-1.1.1g/apps/sess_id.c:179,1
    - Dst: PEM_read_bio_SSL_SESSION
      Src: /src/openssl-1.1.1g/apps/sess_id.c:181,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/sess_id.c:183,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/sess_id.c:184,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/sess_id.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - infile
    - format
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 191
    functionName: load_sess_id
    functionSourceFile: /src/openssl-1.1.1g/apps/sess_id.c
    functionUses: 1
    functionsReached:
    - bio_open_default
    - PEM_read_bio_SSL_SESSION
    - BIO_free
    - BIO_printf
    - ERR_print_errors
    - d2i_SSL_SESSION_bio
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *load_sess_id(char *infile, int format)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/pkey.c:63,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/pkey.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkey.c:69,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/pkey.c:72,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/pkey.c:76,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkey.c:76,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/pkey.c:80,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkey.c:80,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkey.c:84,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkey.c:87,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/pkey.c:90,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkey.c:90,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkey.c:93,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkey.c:96,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/pkey.c:123,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/pkey.c:123,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/pkey.c:127,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/pkey.c:135,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkey.c:136,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/pkey.c:140,1
    - Dst: load_pubkey
      Src: /src/openssl-1.1.1g/apps/pkey.c:145,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/pkey.c:147,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/apps/pkey.c:155,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkey.c:157,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-1.1.1g/apps/pkey.c:162,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-1.1.1g/apps/pkey.c:164,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkey.c:167,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkey.c:175,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/apps/pkey.c:177,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkey.c:178,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-1.1.1g/apps/pkey.c:179,1
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/apps/pkey.c:180,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/pkey.c:183,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openssl-1.1.1g/apps/pkey.c:189,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/pkey.c:192,1
    - Dst: PEM_write_bio_PrivateKey_traditional
      Src: /src/openssl-1.1.1g/apps/pkey.c:194,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-1.1.1g/apps/pkey.c:199,1
    - Dst: i2d_PUBKEY_bio
      Src: /src/openssl-1.1.1g/apps/pkey.c:206,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/pkey.c:209,1
    - Dst: i2d_PrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/pkey.c:210,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkey.c:214,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openssl-1.1.1g/apps/pkey.c:221,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/pkey.c:224,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openssl-1.1.1g/apps/pkey.c:225,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkey.c:234,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/pkey.c:235,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/pkey.c:236,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/pkey.c:237,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/pkey.c:238,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkey.c:239,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkey.c:240,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 174
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/openssl-1.1.1g/apps/pkey.c
    - condition: (private)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/openssl-1.1.1g/apps/pkey.c
    - condition: (private)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/openssl-1.1.1g/apps/pkey.c
    constantsTouched: []
    func_position:
      end: 243
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 243
    functionName: pkey_main
    functionSourceFile: /src/openssl-1.1.1g/apps/pkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - i2d_PUBKEY_bio
    - EVP_PKEY_check
    - PEM_write_bio_PrivateKey
    - PEM_write_bio_PrivateKey_traditional
    - EVP_PKEY_print_public
    - ERR_get_error
    - app_passwd
    - ERR_peek_error
    - OPENSSL_free
    - opt_unknown
    - bio_open_owner
    - opt_arg
    - opt_format
    - PEM_write_bio_PUBKEY
    - opt_next
    - EVP_PKEY_CTX_free
    - BIO_free
    - EVP_PKEY_public_check
    - i2d_PrivateKey_bio
    - load_key
    - release_engine
    - ERR_reason_error_string
    - load_pubkey
    - assert
    - opt_help
    - BIO_free_all
    - setup_engine
    - opt_num_rest
    - opt_cipher
    - EVP_PKEY_print_private
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    - opt_init
    linkageType: ''
    returnType: int
    signature: int pkey_main(int argc, char **argv)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/genpkey.c:63,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/genpkey.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genpkey.c:69,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/genpkey.c:73,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/genpkey.c:76,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genpkey.c:76,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genpkey.c:80,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genpkey.c:83,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/genpkey.c:86,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genpkey.c:86,1
    - Dst: init_keygen_file
      Src: /src/openssl-1.1.1g/apps/genpkey.c:91,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genpkey.c:91,1
    - Dst: init_gen_str
      Src: /src/openssl-1.1.1g/apps/genpkey.c:95,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genpkey.c:95,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genpkey.c:100,1
    - Dst: pkey_ctrl_string
      Src: /src/openssl-1.1.1g/apps/genpkey.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genpkey.c:103,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genpkey.c:104,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genpkey.c:106,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/genpkey.c:107,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/genpkey.c:120,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/genpkey.c:120,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/apps/genpkey.c:123,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/apps/genpkey.c:124,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/apps/genpkey.c:125,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/apps/genpkey.c:126,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genpkey.c:127,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/genpkey.c:132,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/genpkey.c:141,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/genpkey.c:142,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/genpkey.c:146,1
    - Dst: EVP_PKEY_CTX_set_cb
      Src: /src/openssl-1.1.1g/apps/genpkey.c:150,1
    - Dst: EVP_PKEY_CTX_set_app_data
      Src: /src/openssl-1.1.1g/apps/genpkey.c:151,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-1.1.1g/apps/genpkey.c:154,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/genpkey.c:155,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/genpkey.c:156,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-1.1.1g/apps/genpkey.c:160,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/genpkey.c:161,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/genpkey.c:162,1
    - Dst: PEM_write_bio_Parameters
      Src: /src/openssl-1.1.1g/apps/genpkey.c:168,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/genpkey.c:170,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-1.1.1g/apps/genpkey.c:171,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/genpkey.c:173,1
    - Dst: i2d_PrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/genpkey.c:174,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genpkey.c:176,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/genpkey.c:181,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/genpkey.c:182,1
    - Dst: EVP_PKEY_print_params
      Src: /src/openssl-1.1.1g/apps/genpkey.c:187,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openssl-1.1.1g/apps/genpkey.c:189,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/genpkey.c:192,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/genpkey.c:193,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/genpkey.c:200,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/genpkey.c:201,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/genpkey.c:202,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/genpkey.c:203,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/genpkey.c:204,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/genpkey.c:205,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 148
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/openssl-1.1.1g/apps/genpkey.c
    - condition: (private)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/openssl-1.1.1g/apps/genpkey.c
    constantsTouched: []
    func_position:
      end: 207
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 207
    functionName: genpkey_main
    functionSourceFile: /src/openssl-1.1.1g/apps/genpkey.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_PrivateKey
    - app_passwd
    - EVP_PKEY_CTX_set_app_data
    - EVP_PKEY_paramgen
    - init_gen_str
    - BIO_printf
    - opt_unknown
    - bio_open_owner
    - OPENSSL_free
    - opt_arg
    - init_keygen_file
    - opt_format
    - BIO_puts
    - EVP_PKEY_print_params
    - opt_next
    - PEM_write_bio_Parameters
    - EVP_PKEY_CTX_free
    - BIO_free
    - pkey_ctrl_string
    - i2d_PrivateKey_bio
    - EVP_PKEY_CTX_set_cb
    - release_engine
    - assert
    - opt_help
    - BIO_free_all
    - setup_engine
    - opt_num_rest
    - opt_cipher
    - EVP_PKEY_keygen
    - EVP_PKEY_print_private
    - EVP_CIPHER_mode
    - EVP_PKEY_free
    - ERR_print_errors
    - opt_init
    linkageType: ''
    returnType: int
    signature: int genpkey_main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/genpkey.c:215,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/genpkey.c:219,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genpkey.c:221,1
    - Dst: PEM_read_bio_Parameters
      Src: /src/openssl-1.1.1g/apps/genpkey.c:225,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/genpkey.c:226,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genpkey.c:229,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/apps/genpkey.c:233,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-1.1.1g/apps/genpkey.c:236,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/genpkey.c:238,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/genpkey.c:243,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/genpkey.c:244,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/genpkey.c:245,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/genpkey.c:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - pctx
    - file
    - e
    argTypes:
    - EVP_PKEY_CTX**
    - char*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 209
    functionDepth: 5
    functionLinenumber: 209
    functionLinenumberEnd: 249
    functionName: init_keygen_file
    functionSourceFile: /src/openssl-1.1.1g/apps/genpkey.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_new
    - PEM_read_bio_Parameters
    - ERR_print_errors
    - BIO_puts
    - EVP_PKEY_CTX_free
    - EVP_PKEY_keygen_init
    - BIO_free
    - BIO_printf
    - EVP_PKEY_free
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int init_keygen_file(EVP_PKEY_CTX **pctx, const char *file, ENGINE
      *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/genpkey.c:260,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/apps/genpkey.c:264,1
    - Dst: ENGINE_get_pkey_asn1_meth_str
      Src: /src/openssl-1.1.1g/apps/genpkey.c:268,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genpkey.c:272,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/genpkey.c:276,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/apps/genpkey.c:278,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/apps/genpkey.c:280,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/apps/genpkey.c:282,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-1.1.1g/apps/genpkey.c:287,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-1.1.1g/apps/genpkey.c:290,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genpkey.c:298,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/genpkey.c:299,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/genpkey.c:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - pctx
    - algname
    - e
    - do_param
    argTypes:
    - EVP_PKEY_CTX**
    - char*
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 251
    functionDepth: 6
    functionLinenumber: 251
    functionLinenumberEnd: 303
    functionName: init_gen_str
    functionSourceFile: /src/openssl-1.1.1g/apps/genpkey.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - ERR_print_errors
    - BIO_puts
    - EVP_PKEY_CTX_free
    - ENGINE_finish
    - ERR_clear_error
    - ENGINE_get_pkey_asn1_meth_str
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_keygen_init
    - EVP_PKEY_asn1_get0_info
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_asn1_find_str
    linkageType: ''
    returnType: int
    signature: "int init_gen_str(EVP_PKEY_CTX **pctx,\n                 const char
      *algname, ENGINE *e, int do_param)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_app_data
      Src: /src/openssl-1.1.1g/apps/genpkey.c:308,1
    - Dst: EVP_PKEY_CTX_get_keygen_info
      Src: /src/openssl-1.1.1g/apps/genpkey.c:310,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/genpkey.c:319,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/genpkey.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 322
    functionName: genpkey_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/genpkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_get_keygen_info
    - BIO_flush
    - EVP_PKEY_CTX_get_app_data
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int genpkey_cb(EVP_PKEY_CTX *ctx)
  - BBCount: 252
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/cms.c:196,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/cms.c:197,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/cms.c:198,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/apps/cms.c:221,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/cms.c:224,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/cms.c:225,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:230,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/cms.c:233,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/cms.c:237,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:237,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/cms.c:241,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:241,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:245,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:270,1
    - Dst: SMIME_read_CMS
      Src: /src/openssl-1.1.1g/apps/cms.c:365,1
    - Dst: PEM_read_bio_CMS
      Src: /src/openssl-1.1.1g/apps/cms.c:367,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/cms.c:369,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:369,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:374,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:377,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:380,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:389,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:392,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:396,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/cms.c:398,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:398,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:402,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/cms.c:404,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:404,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:411,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:412,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/apps/cms.c:415,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:415,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:417,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:417,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:424,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:425,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/apps/cms.c:428,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:428,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:430,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:430,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:436,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:440,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:441,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/apps/cms.c:444,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:444,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:446,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:446,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/cms.c:451,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:451,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:454,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:457,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:460,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:463,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:466,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/cms.c:469,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:469,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:476,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/cms.c:478,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:482,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/cms.c:484,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:487,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:493,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:497,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/cms.c:499,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:502,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/cms.c:504,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:506,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/cms.c:509,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:509,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:514,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/cms.c:516,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:516,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/cms.c:520,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:523,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/cms.c:527,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/cms.c:527,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/cms.c:534,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/cms.c:539,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:542,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/cms.c:547,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:549,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/cms.c:558,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/cms.c:558,1
    - Dst: opt_verify
      Src: /src/openssl-1.1.1g/apps/cms.c:561,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/cms.c:566,1
    - Dst: EVP_des_ede3_wrap
      Src: /src/openssl-1.1.1g/apps/cms.c:571,1
    - Dst: EVP_aes_128_wrap
      Src: /src/openssl-1.1.1g/apps/cms.c:575,1
    - Dst: EVP_aes_192_wrap
      Src: /src/openssl-1.1.1g/apps/cms.c:578,1
    - Dst: EVP_aes_256_wrap
      Src: /src/openssl-1.1.1g/apps/cms.c:581,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/cms.c:585,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/cms.c:586,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:589,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:594,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:598,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:604,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:610,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/cms.c:612,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:613,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/cms.c:617,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:620,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:628,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:635,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:639,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/cms.c:643,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:644,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-1.1.1g/apps/cms.c:664,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:666,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:672,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/apps/cms.c:677,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/cms.c:680,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/cms.c:683,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/cms.c:690,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/cms.c:692,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/cms.c:698,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/cms.c:700,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/cms.c:706,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/cms.c:708,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/cms.c:724,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/cms.c:729,1
    - Dst: SMIME_read_CMS
      Src: /src/openssl-1.1.1g/apps/cms.c:735,1
    - Dst: PEM_read_bio_CMS
      Src: /src/openssl-1.1.1g/apps/cms.c:737,1
    - Dst: d2i_CMS_bio
      Src: /src/openssl-1.1.1g/apps/cms.c:739,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:741,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:746,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/cms.c:750,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/cms.c:751,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:752,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/cms.c:757,1
    - Dst: CMS_get1_certs
      Src: /src/openssl-1.1.1g/apps/cms.c:758,1
    - Dst: save_certs
      Src: /src/openssl-1.1.1g/apps/cms.c:759,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:760,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/cms.c:765,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/cms.c:771,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:772,1
    - Dst: SMIME_read_CMS
      Src: /src/openssl-1.1.1g/apps/cms.c:777,1
    - Dst: PEM_read_bio_CMS
      Src: /src/openssl-1.1.1g/apps/cms.c:779,1
    - Dst: d2i_CMS_bio
      Src: /src/openssl-1.1.1g/apps/cms.c:781,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:783,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:788,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/cms.c:793,1
    - Dst: setup_verify
      Src: /src/openssl-1.1.1g/apps/cms.c:798,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openssl-1.1.1g/apps/cms.c:800,1
    - Dst: X509_STORE_set1_param
      Src: /src/openssl-1.1.1g/apps/cms.c:802,1
    - Dst: CMS_data_create
      Src: /src/openssl-1.1.1g/apps/cms.c:808,1
    - Dst: CMS_digest_create
      Src: /src/openssl-1.1.1g/apps/cms.c:810,1
    - Dst: CMS_compress
      Src: /src/openssl-1.1.1g/apps/cms.c:812,1
    - Dst: CMS_encrypt
      Src: /src/openssl-1.1.1g/apps/cms.c:816,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/cms.c:819,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/cms.c:823,1
    - Dst: CMS_add1_recipient_cert
      Src: /src/openssl-1.1.1g/apps/cms.c:830,1
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/apps/cms.c:835,1
    - Dst: cms_set_pkey_param
      Src: /src/openssl-1.1.1g/apps/cms.c:836,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openssl-1.1.1g/apps/cms.c:839,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openssl-1.1.1g/apps/cms.c:842,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/apps/cms.c:843,1
    - Dst: CMS_add0_recipient_key
      Src: /src/openssl-1.1.1g/apps/cms.c:848,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/cms.c:858,1
    - Dst: CMS_add0_recipient_password
      Src: /src/openssl-1.1.1g/apps/cms.c:861,1
    - Dst: CMS_final
      Src: /src/openssl-1.1.1g/apps/cms.c:868,1
    - Dst: CMS_EncryptedData_encrypt
      Src: /src/openssl-1.1.1g/apps/cms.c:872,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/cms.c:877,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-1.1.1g/apps/cms.c:879,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-1.1.1g/apps/cms.c:882,1
    - Dst: CMS_sign_receipt
      Src: /src/openssl-1.1.1g/apps/cms.c:883,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/apps/cms.c:886,1
    - Dst: CMS_sign
      Src: /src/openssl-1.1.1g/apps/cms.c:901,1
    - Dst: CMS_set1_eContentType
      Src: /src/openssl-1.1.1g/apps/cms.c:905,1
    - Dst: make_receipt_request
      Src: /src/openssl-1.1.1g/apps/cms.c:908,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:910,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/cms.c:918,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/cms.c:922,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/cms.c:923,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/cms.c:925,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/cms.c:930,1
    - Dst: CMS_add1_signer
      Src: /src/openssl-1.1.1g/apps/cms.c:941,1
    - Dst: CMS_SignerInfo_get0_pkey_ctx
      Src: /src/openssl-1.1.1g/apps/cms.c:946,1
    - Dst: cms_set_pkey_param
      Src: /src/openssl-1.1.1g/apps/cms.c:947,1
    - Dst: CMS_add1_ReceiptRequest
      Src: /src/openssl-1.1.1g/apps/cms.c:950,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/cms.c:952,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/cms.c:954,1
    - Dst: CMS_final
      Src: /src/openssl-1.1.1g/apps/cms.c:959,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:965,1
    - Dst: CMS_decrypt
      Src: /src/openssl-1.1.1g/apps/cms.c:972,1
    - Dst: CMS_decrypt_set1_key
      Src: /src/openssl-1.1.1g/apps/cms.c:975,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:978,1
    - Dst: CMS_decrypt_set1_pkey
      Src: /src/openssl-1.1.1g/apps/cms.c:984,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:985,1
    - Dst: CMS_decrypt_set1_password
      Src: /src/openssl-1.1.1g/apps/cms.c:991,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:992,1
    - Dst: CMS_decrypt
      Src: /src/openssl-1.1.1g/apps/cms.c:997,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:998,1
    - Dst: CMS_data
      Src: /src/openssl-1.1.1g/apps/cms.c:1002,1
    - Dst: CMS_uncompress
      Src: /src/openssl-1.1.1g/apps/cms.c:1005,1
    - Dst: CMS_digest_verify
      Src: /src/openssl-1.1.1g/apps/cms.c:1008,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1009,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1011,1
    - Dst: CMS_EncryptedData_decrypt
      Src: /src/openssl-1.1.1g/apps/cms.c:1015,1
    - Dst: CMS_verify
      Src: /src/openssl-1.1.1g/apps/cms.c:1019,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1020,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1022,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/cms.c:1028,1
    - Dst: CMS_get0_signers
      Src: /src/openssl-1.1.1g/apps/cms.c:1029,1
    - Dst: save_certs
      Src: /src/openssl-1.1.1g/apps/cms.c:1030,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1031,1
    - Dst: sk_X509_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1036,1
    - Dst: receipt_request_print
      Src: /src/openssl-1.1.1g/apps/cms.c:1039,1
    - Dst: CMS_verify_receipt
      Src: /src/openssl-1.1.1g/apps/cms.c:1042,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1043,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1045,1
    - Dst: CMS_ContentInfo_print_ctx
      Src: /src/openssl-1.1.1g/apps/cms.c:1051,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1054,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1056,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1058,1
    - Dst: SMIME_write_CMS
      Src: /src/openssl-1.1.1g/apps/cms.c:1060,1
    - Dst: SMIME_write_CMS
      Src: /src/openssl-1.1.1g/apps/cms.c:1062,1
    - Dst: PEM_write_bio_CMS_stream
      Src: /src/openssl-1.1.1g/apps/cms.c:1064,1
    - Dst: i2d_CMS_bio_stream
      Src: /src/openssl-1.1.1g/apps/cms.c:1066,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1068,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/cms.c:1079,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1080,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1081,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1082,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1083,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1084,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1085,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1086,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1087,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1088,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1089,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1090,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1091,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1094,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1096,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1099,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1100,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1101,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1102,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1103,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1104,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1105,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/cms.c:1106,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1107,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1108,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1109,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/cms.c:1110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1111,1
    CyclomaticComplexity: 377
    EdgeCount: 377
    ICount: 904
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 186
    functionDepth: 9
    functionLinenumber: 186
    functionLinenumberEnd: 1113
    functionName: cms_main
    functionSourceFile: /src/openssl-1.1.1g/apps/cms.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_free
    - EVP_des_ede3_wrap
    - CMS_add0_recipient_key
    - OPENSSL_hexstr2buf
    - CMS_RecipientInfo_get0_pkey_ctx
    - bio_open_default
    - EVP_des_ede3_cbc
    - OPENSSL_free
    - CMS_data_create
    - X509_VERIFY_PARAM_new
    - app_malloc
    - EVP_aes_256_wrap
    - CMS_verify
    - CMS_SignerInfo_get0_pkey_ctx
    - EVP_aes_128_wrap
    - CMS_add0_recipient_password
    - CMS_decrypt_set1_password
    - EVP_aes_192_wrap
    - SMIME_read_CMS
    - BIO_free_all
    - sk_OPENSSL_STRING_push
    - CMS_EncryptedData_decrypt
    - CMS_decrypt_set1_pkey
    - sk_X509_num
    - CMS_ReceiptRequest_free
    - PEM_write_bio_CMS_stream
    - CMS_RecipientInfo_type
    - load_cert
    - load_certs
    - STACK_OF
    - opt_rand
    - save_certs
    - sk_OPENSSL_STRING_new_null
    - BIO_puts
    - BIO_free
    - CMS_data
    - cms_set_pkey_param
    - CMS_add1_signer
    - SMIME_write_CMS
    - CMS_set1_eContentType
    - sk_X509_push
    - CMS_sign_receipt
    - receipt_request_print
    - opt_rest
    - CMS_digest_create
    - ASN1_OBJECT_free
    - EVP_EncryptInit_ex
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    - CMS_EncryptedData_encrypt
    - opt_format
    - CMS_add1_ReceiptRequest
    - CMS_get0_signers
    - CMS_final
    - CMS_get0_SignerInfos
    - X509_VERIFY_PARAM_free
    - X509_STORE_set_verify_cb
    - CMS_ContentInfo_print_ctx
    - CMS_ContentInfo_free
    - X509_free
    - CMS_verify_receipt
    - sk_OPENSSL_STRING_value
    - opt_next
    - release_engine
    - CMS_decrypt
    - CMS_RecipientInfo_kari_get0_ctx
    - opt_help
    - opt_md
    - sk_X509_new_null
    - CMS_sign
    - opt_cipher
    - OBJ_txt2obj
    - CMS_decrypt_set1_key
    - CMS_add1_recipient_cert
    - opt_init
    - X509_STORE_set1_param
    - sk_X509_free
    - app_passwd
    - sk_CMS_SignerInfo_value
    - CMS_uncompress
    - X509_STORE_free
    - opt_unknown
    - opt_arg
    - CMS_compress
    - CMS_encrypt
    - CMS_digest_verify
    - load_key
    - OPENSSL_strdup
    - sk_OPENSSL_STRING_num
    - i2d_CMS_bio_stream
    - sk_X509_pop_free
    - BIO_new_file
    - setup_engine
    - opt_num_rest
    - setup_verify
    - d2i_CMS_bio
    - make_receipt_request
    - PEM_read_bio_CMS
    - opt_verify
    - sk_X509_value
    - CMS_get1_certs
    linkageType: ''
    returnType: int
    signature: int cms_main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/cms.c:1121,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/cms.c:1124,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/cms.c:1125,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/cms.c:1125,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - signerfile
    - signers
    argTypes:
    - char*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1115
    functionDepth: 4
    functionLinenumber: 1115
    functionLinenumberEnd: 1128
    functionName: save_certs
    functionSourceFile: /src/openssl-1.1.1g/apps/cms.c
    functionUses: 1
    functionsReached:
    - sk_X509_num
    - PEM_write_bio_X509
    - BIO_free
    - BIO_new_file
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int save_certs(char *signerfile, STACK_OF(X509) *signers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/apps/cms.c:1136,1
    - Dst: policies_print
      Src: /src/openssl-1.1.1g/apps/cms.c:1144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1148
    functionName: cms_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/cms.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_error
    - policies_print
    linkageType: ''
    returnType: int
    signature: int cms_cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/cms.c:1170,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/cms.c:1174,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-1.1.1g/apps/cms.c:1177,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-1.1.1g/apps/cms.c:1178,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-1.1.1g/apps/cms.c:1179,1
    - Dst: CMS_get1_ReceiptRequest
      Src: /src/openssl-1.1.1g/apps/cms.c:1180,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1181,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:1183,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:1185,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/cms.c:1186,1
    - Dst: CMS_ReceiptRequest_get0_values
      Src: /src/openssl-1.1.1g/apps/cms.c:1190,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:1192,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/apps/cms.c:1193,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/apps/cms.c:1194,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/apps/cms.c:1195,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:1196,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:1198,1
    - Dst: gnames_stack_print
      Src: /src/openssl-1.1.1g/apps/cms.c:1199,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:1201,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:1203,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/cms.c:1205,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/cms.c:1207,1
    - Dst: gnames_stack_print
      Src: /src/openssl-1.1.1g/apps/cms.c:1208,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1168
    functionDepth: 5
    functionLinenumber: 1168
    functionLinenumberEnd: 1212
    functionName: receipt_request_print
    functionSourceFile: /src/openssl-1.1.1g/apps/cms.c
    functionUses: 1
    functionsReached:
    - BIO_dump_indent
    - gnames_stack_print
    - CMS_get0_SignerInfos
    - STACK_OF
    - ASN1_STRING_length
    - sk_CMS_SignerInfo_num
    - BIO_puts
    - CMS_get1_ReceiptRequest
    - CMS_ReceiptRequest_free
    - BIO_printf
    - ERR_print_errors
    - ASN1_STRING_get0_data
    - CMS_ReceiptRequest_get0_values
    - sk_CMS_SignerInfo_value
    linkageType: ''
    returnType: void
    signature: void receipt_request_print(CMS_ContentInfo *cms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/cms.c:1252,1
    - Dst: make_names_stack
      Src: /src/openssl-1.1.1g/apps/cms.c:1254,1
    - Dst: make_names_stack
      Src: /src/openssl-1.1.1g/apps/cms.c:1258,1
    - Dst: CMS_ReceiptRequest_create0
      Src: /src/openssl-1.1.1g/apps/cms.c:1264,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openssl-1.1.1g/apps/cms.c:1268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - rr_to
    - rr_allorfirst
    - rr_from
    argTypes:
    - STACK_OF*
    - int
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1270
    functionName: make_receipt_request
    functionSourceFile: /src/openssl-1.1.1g/apps/cms.c
    functionUses: 1
    functionsReached:
    - CMS_ReceiptRequest_create0
    - sk_GENERAL_NAMES_pop_free
    - STACK_OF
    - make_names_stack
    linkageType: ''
    returnType: CMS_ReceiptRequest
    signature: "CMS_ReceiptRequest *make_receipt_request(STACK_OF(OPENSSL_STRING)\n
      \                                               *rr_to, int rr_allorfirst, STACK_OF(OPENSSL_STRING)\n
      \                                               *rr_from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: lstat
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lstat(path, buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - target
    - linkpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: symlink
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int symlink(const char *target, const char *linkpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pathname
    - buf
    - bufsiz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: readlink
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t readlink(const char *pathname, char *buf, size_t bufsiz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - bit
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: bit_set
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bit_set(unsigned char *set, unsigned int bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - bit
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: bit_isset
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bit_isset(unsigned char *set, unsigned int bit)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/apps/rehash.c:132,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/rehash.c:138,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/apps/rehash.c:147,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:148,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/rehash.c:150,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/rehash.c:154,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:163,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/rehash.c:165,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/rehash.c:168,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/rehash.c:171,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/rehash.c:184,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 6
    argNames:
    - type
    - hash
    - filename
    - digest
    - need_symlink
    - old_id
    argTypes:
    - enum Type
    - unsigned int
    - char*
    - unsigned char*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 187
    functionName: add_entry
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 4
    functionsReached:
    - OSSL_NELEM
    - opt_getprog
    - app_malloc
    - memcmp
    - strcmp
    - memcpy
    - OPENSSL_strdup
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int add_entry(enum Type type, unsigned int hash, const char *filename,\n
      \                     const unsigned char *digest, int need_symlink,\n                      unsigned
      short old_id)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/openssl-1.1.1g/apps/rehash.c:203,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/apps/rehash.c:206,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/apps/rehash.c:210,1
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/apps/rehash.c:212,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/rehash.c:212,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/rehash.c:215,1
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/apps/rehash.c:217,1
    - Dst: readlink
      Src: /src/openssl-1.1.1g/apps/rehash.c:221,1
    - Dst: add_entry
      Src: /src/openssl-1.1.1g/apps/rehash.c:226,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - filename
    - fullpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 227
    functionName: handle_symlink
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - strtoul
    - readlink
    - isxdigit
    - OPENSSL_hexchar2int
    - add_entry
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int handle_symlink(const char *filename, const char *fullpath)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/rehash.c:234,1
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/apps/rehash.c:244,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/apps/rehash.c:246,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/rehash.c:247,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/apps/rehash.c:250,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/rehash.c:254,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:255,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/rehash.c:256,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/openssl-1.1.1g/apps/rehash.c:260,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:261,1
    - Dst: sk_X509_INFO_num
      Src: /src/openssl-1.1.1g/apps/rehash.c:265,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:266,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/rehash.c:269,1
    - Dst: sk_X509_INFO_value
      Src: /src/openssl-1.1.1g/apps/rehash.c:273,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/rehash.c:276,1
    - Dst: X509_digest
      Src: /src/openssl-1.1.1g/apps/rehash.c:277,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:278,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-1.1.1g/apps/rehash.c:284,1
    - Dst: X509_CRL_digest
      Src: /src/openssl-1.1.1g/apps/rehash.c:285,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:286,1
    - Dst: add_entry
      Src: /src/openssl-1.1.1g/apps/rehash.c:296,1
    - Dst: X509_NAME_hash
      Src: /src/openssl-1.1.1g/apps/rehash.c:296,1
    - Dst: add_entry
      Src: /src/openssl-1.1.1g/apps/rehash.c:298,1
    - Dst: X509_NAME_hash_old
      Src: /src/openssl-1.1.1g/apps/rehash.c:298,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:302,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 3
    argNames:
    - filename
    - fullpath
    - h
    argTypes:
    - char*
    - char*
    - enum Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 304
    functionName: do_file
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached:
    - sk_X509_INFO_value
    - STACK_OF
    - X509_get_subject_name
    - sk_X509_INFO_num
    - X509_NAME_hash
    - strrchr
    - PEM_X509_INFO_read_bio
    - X509_CRL_get_issuer
    - BIO_free
    - X509_CRL_digest
    - X509_digest
    - OSSL_NELEM
    - sk_X509_INFO_pop_free
    - X509_NAME_hash_old
    - strcasecmp
    - BIO_new_file
    - add_entry
    - opt_getprog
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int do_file(const char *filename, const char *fullpath, enum Hash h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: str_free
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void str_free(char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/rehash.c:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 323
    functionName: ends_with_dirsep
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int ends_with_dirsep(const char *path)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/rehash.c:340,1
    - Dst: app_access
      Src: /src/openssl-1.1.1g/apps/rehash.c:342,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:343,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/rehash.c:346,1
    - Dst: ends_with_dirsep
      Src: /src/openssl-1.1.1g/apps/rehash.c:347,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/rehash.c:349,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:352,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/rehash.c:354,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:355,1
    - Dst: OPENSSL_DIR_read
      Src: /src/openssl-1.1.1g/apps/rehash.c:359,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/rehash.c:360,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/rehash.c:361,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:362,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/rehash.c:363,1
    - Dst: OPENSSL_DIR_end
      Src: /src/openssl-1.1.1g/apps/rehash.c:368,1
    - Dst: sk_OPENSSL_STRING_sort
      Src: /src/openssl-1.1.1g/apps/rehash.c:369,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/rehash.c:371,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/rehash.c:373,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/rehash.c:374,1
    - Dst: lstat
      Src: /src/openssl-1.1.1g/apps/rehash.c:377,1
    - Dst: S_ISLNK
      Src: /src/openssl-1.1.1g/apps/rehash.c:379,1
    - Dst: handle_symlink
      Src: /src/openssl-1.1.1g/apps/rehash.c:379,1
    - Dst: do_file
      Src: /src/openssl-1.1.1g/apps/rehash.c:381,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/apps/rehash.c:384,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/apps/rehash.c:388,1
    - Dst: bit_set
      Src: /src/openssl-1.1.1g/apps/rehash.c:391,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/rehash.c:397,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:400,1
    - Dst: bit_isset
      Src: /src/openssl-1.1.1g/apps/rehash.c:404,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/rehash.c:407,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:411,1
    - Dst: unlink
      Src: /src/openssl-1.1.1g/apps/rehash.c:413,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:414,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/rehash.c:416,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/apps/rehash.c:416,1
    - Dst: symlink
      Src: /src/openssl-1.1.1g/apps/rehash.c:419,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:420,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/rehash.c:422,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/apps/rehash.c:423,1
    - Dst: bit_set
      Src: /src/openssl-1.1.1g/apps/rehash.c:426,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/rehash.c:429,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:433,1
    - Dst: unlink
      Src: /src/openssl-1.1.1g/apps/rehash.c:435,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:436,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/rehash.c:438,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/apps/rehash.c:438,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:442,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:443,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:445,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:451,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:452,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 92
    argCount: 2
    argNames:
    - dirname
    - h
    argTypes:
    - char*
    - enum Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 454
    functionName: do_dir
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - strerror
    - STACK_OF
    - symlink
    - sk_OPENSSL_STRING_new_null
    - ends_with_dirsep
    - OPENSSL_DIR_read
    - do_file
    - OPENSSL_free
    - bit_set
    - sk_OPENSSL_STRING_value
    - BIO_puts
    - unlink
    - app_access
    - OSSL_NELEM
    - app_malloc
    - handle_symlink
    - S_ISLNK
    - OPENSSL_strdup
    - sk_OPENSSL_STRING_num
    - sk_OPENSSL_STRING_push
    - opt_getprog
    - bit_isset
    - lstat
    - sk_OPENSSL_STRING_sort
    - sk_OPENSSL_STRING_pop_free
    - memset
    - OPENSSL_DIR_end
    - BIO_printf
    - strlen
    linkageType: ''
    returnType: int
    signature: int do_dir(const char *dirname, enum Hash h)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/rehash.c:482,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/rehash.c:483,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:487,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/rehash.c:490,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/rehash.c:506,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/rehash.c:507,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/apps/rehash.c:509,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/apps/rehash.c:510,1
    - Dst: do_dir
      Src: /src/openssl-1.1.1g/apps/rehash.c:514,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/apps/rehash.c:515,1
    - Dst: X509_get_default_cert_dir_env
      Src: /src/openssl-1.1.1g/apps/rehash.c:515,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/rehash.c:517,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/apps/rehash.c:518,1
    - Dst: strtok
      Src: /src/openssl-1.1.1g/apps/rehash.c:518,1
    - Dst: do_dir
      Src: /src/openssl-1.1.1g/apps/rehash.c:519,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rehash.c:520,1
    - Dst: do_dir
      Src: /src/openssl-1.1.1g/apps/rehash.c:522,1
    - Dst: X509_get_default_cert_dir
      Src: /src/openssl-1.1.1g/apps/rehash.c:522,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 474
    functionDepth: 8
    functionLinenumber: 474
    functionLinenumberEnd: 527
    functionName: rehash_main
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached:
    - strtok
    - X509_get_default_cert_dir
    - getenv
    - opt_num_rest
    - EVP_sha1
    - do_dir
    - X509_get_default_cert_dir_env
    - opt_rest
    - OPENSSL_free
    - OPENSSL_strdup
    - opt_next
    - BIO_printf
    - EVP_MD_size
    - opt_init
    - opt_help
    linkageType: ''
    returnType: int
    signature: int rehash_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rehash.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: rehash_main
    functionSourceFile: /src/openssl-1.1.1g/apps/rehash.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int rehash_main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/opt.c:48,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/opt.c:55,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:57,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:57,1
    - Dst: tolower
      Src: /src/openssl-1.1.1g/apps/opt.c:64,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 67
    functionName: opt_progname
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 1
    functionsReached:
    - strcmp
    - tolower
    - strlen
    linkageType: ''
    returnType: char
    signature: char *opt_progname(const char *argv0)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/opt.c:76,1
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/apps/opt.c:82,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/apps/opt.c:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: opt_progname
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 1
    functionsReached:
    - strrchr
    - strlen
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *opt_progname(const char *argv0)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/opt.c:97,1
    - Dst: strncpy
      Src: /src/openssl-1.1.1g/apps/opt.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: opt_progname
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 1
    functionsReached:
    - strlen
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *opt_progname(const char *argv0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: opt_getprog
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *opt_getprog(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: opt_progname
      Src: /src/openssl-1.1.1g/apps/opt.c:121,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:136,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:137,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:144,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:152,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:153,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:157,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 3
    argNames:
    - ac
    - av
    - o
    argTypes:
    - int
    - char**
    - OPTIONS*
    assertStmts:
    - condition: (o->name[0] != '-')
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/openssl-1.1.1g/apps/opt.c
    - condition: (o->retval > 0)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/openssl-1.1.1g/apps/opt.c
    - condition: (0)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/openssl-1.1.1g/apps/opt.c
    - condition: (!duplicated)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/openssl-1.1.1g/apps/opt.c
    - condition: (unknown == NULL)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/openssl-1.1.1g/apps/opt.c
    - condition: (unknown->valtype == 0 || unknown->valtype == '-')
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/openssl-1.1.1g/apps/opt.c
    constantsTouched: []
    func_position:
      end: 163
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 163
    functionName: opt_init
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 13
    functionsReached:
    - strcmp
    - opt_progname
    - assert
    linkageType: ''
    returnType: char
    signature: char *opt_init(int ac, char **av, const OPTIONS *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:184,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:187,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - flags
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 194
    functionName: opt_format_error
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int opt_format_error(const char *s, unsigned long flags)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:205,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:211,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:217,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:218,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:218,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:219,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:225,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:231,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:237,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:243,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:248,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:253,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:253,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:255,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:257,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:257,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:259,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:261,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:261,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:262,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:262,1
    - Dst: opt_format_error
      Src: /src/openssl-1.1.1g/apps/opt.c:264,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 75
    argCount: 3
    argNames:
    - s
    - flags
    - result
    argTypes:
    - char*
    - unsigned long
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 272
    functionName: opt_format
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 8
    functionsReached:
    - strcmp
    - opt_format_error
    linkageType: ''
    returnType: int
    signature: int opt_format(const char *s, unsigned long flags, int *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/apps/opt.c:277,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - cipherp
    argTypes:
    - char*
    - EVP_CIPHER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: opt_cipher
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 4
    functionsReached:
    - EVP_get_cipherbyname
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int opt_cipher(const char *name, const EVP_CIPHER **cipherp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/apps/opt.c:289,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - mdp
    argTypes:
    - char*
    - EVP_MD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: opt_md
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 3
    functionsReached:
    - EVP_get_digestbyname
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int opt_md(const char *name, const EVP_MD **mdp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:302,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:306,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - name
    - pairs
    - result
    argTypes:
    - char*
    - OPT_PAIR*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 310
    functionName: opt_pair
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 2
    functionsReached:
    - strcmp
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int opt_pair(const char *name, const OPT_PAIR* pairs, int *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opt_long
      Src: /src/openssl-1.1.1g/apps/opt.c:317,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: opt_int
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 1
    functionsReached:
    - opt_long
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int opt_int(const char *value, int *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/apps/opt.c:340,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/opt.c:341,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/opt.c:341,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:342,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: opt_number_error
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - strncmp
    - strlen
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void opt_number_error(const char *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/openssl-1.1.1g/apps/opt.c:360,1
    - Dst: opt_number_error
      Src: /src/openssl-1.1.1g/apps/opt.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 372
    functionName: opt_long
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 1
    functionsReached:
    - opt_number_error
    - strtol
    linkageType: ''
    returnType: int
    signature: int opt_long(const char *value, long *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoimax
      Src: /src/openssl-1.1.1g/apps/opt.c:385,1
    - Dst: opt_number_error
      Src: /src/openssl-1.1.1g/apps/opt.c:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - intmax_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 397
    functionName: opt_imax
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 0
    functionsReached:
    - strtoimax
    - opt_number_error
    linkageType: ''
    returnType: int
    signature: int opt_imax(const char *value, intmax_t *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoumax
      Src: /src/openssl-1.1.1g/apps/opt.c:407,1
    - Dst: opt_number_error
      Src: /src/openssl-1.1.1g/apps/opt.c:412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - uintmax_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 419
    functionName: opt_umax
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 0
    functionsReached:
    - strtoumax
    - opt_number_error
    linkageType: ''
    returnType: int
    signature: int opt_umax(const char *value, uintmax_t *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openssl-1.1.1g/apps/opt.c:432,1
    - Dst: opt_number_error
      Src: /src/openssl-1.1.1g/apps/opt.c:437,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 444
    functionName: opt_ulong
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 0
    functionsReached:
    - strtoul
    - opt_number_error
    linkageType: ''
    returnType: int
    signature: int opt_ulong(const char *value, unsigned long *result)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:461,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:462,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:463,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/apps/opt.c:470,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:470,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:472,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:472,1
    - Dst: X509_VERIFY_PARAM_add0_policy
      Src: /src/openssl-1.1.1g/apps/opt.c:475,1
    - Dst: X509_PURPOSE_get_by_sname
      Src: /src/openssl-1.1.1g/apps/opt.c:479,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:479,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:481,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:481,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-1.1.1g/apps/opt.c:486,1
    - Dst: X509_PURPOSE_get_id
      Src: /src/openssl-1.1.1g/apps/opt.c:489,1
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/openssl-1.1.1g/apps/opt.c:491,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:492,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:494,1
    - Dst: X509_VERIFY_PARAM_lookup
      Src: /src/openssl-1.1.1g/apps/opt.c:499,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:499,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:501,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:502,1
    - Dst: X509_VERIFY_PARAM_set1
      Src: /src/openssl-1.1.1g/apps/opt.c:505,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/opt.c:508,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:508,1
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openssl-1.1.1g/apps/opt.c:510,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/opt.c:513,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:513,1
    - Dst: X509_VERIFY_PARAM_set_auth_level
      Src: /src/openssl-1.1.1g/apps/opt.c:515,1
    - Dst: opt_imax
      Src: /src/openssl-1.1.1g/apps/opt.c:518,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:518,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:521,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:522,1
    - Dst: X509_VERIFY_PARAM_set_time
      Src: /src/openssl-1.1.1g/apps/opt.c:525,1
    - Dst: X509_VERIFY_PARAM_set1_host
      Src: /src/openssl-1.1.1g/apps/opt.c:528,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:528,1
    - Dst: X509_VERIFY_PARAM_set1_email
      Src: /src/openssl-1.1.1g/apps/opt.c:532,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:532,1
    - Dst: X509_VERIFY_PARAM_set1_ip_asc
      Src: /src/openssl-1.1.1g/apps/opt.c:536,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/opt.c:536,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:540,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:546,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:549,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:554,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:557,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:560,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:563,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:566,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:569,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:572,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:575,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:578,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:581,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:584,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:587,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:590,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:593,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:596,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:599,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-1.1.1g/apps/opt.c:602,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 132
    argCount: 2
    argNames:
    - opt
    - vpm
    argTypes:
    - int
    - X509_VERIFY_PARAM*
    assertStmts:
    - condition: (opt < OPT_V__LAST)
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/openssl-1.1.1g/apps/opt.c
    - condition: (opt > OPT_V__FIRST)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/openssl-1.1.1g/apps/opt.c
    - condition: (vpm != NULL)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/openssl-1.1.1g/apps/opt.c
    constantsTouched: []
    func_position:
      end: 607
      start: 453
    functionDepth: 7
    functionLinenumber: 453
    functionLinenumberEnd: 607
    functionName: opt_verify
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 3
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    - atoi
    - X509_VERIFY_PARAM_lookup
    - X509_PURPOSE_get0
    - X509_PURPOSE_get_id
    - X509_VERIFY_PARAM_set_auth_level
    - X509_VERIFY_PARAM_set1
    - X509_PURPOSE_get_by_sname
    - opt_arg
    - X509_VERIFY_PARAM_set1_host
    - X509_VERIFY_PARAM_add0_policy
    - opt_imax
    - X509_VERIFY_PARAM_set_time
    - X509_VERIFY_PARAM_set_purpose
    - assert
    - X509_VERIFY_PARAM_set1_email
    - X509_VERIFY_PARAM_set1_ip_asc
    - X509_VERIFY_PARAM_set_flags
    - OBJ_txt2obj
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int opt_verify(int opt, X509_VERIFY_PARAM *vpm)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:635,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/opt.c:644,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/opt.c:648,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:654,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:664,1
    - Dst: app_isdir
      Src: /src/openssl-1.1.1g/apps/opt.c:678,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:680,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/opt.c:690,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:692,1
    - Dst: opt_imax
      Src: /src/openssl-1.1.1g/apps/opt.c:699,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:700,1
    - Dst: opt_umax
      Src: /src/openssl-1.1.1g/apps/opt.c:707,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:708,1
    - Dst: opt_long
      Src: /src/openssl-1.1.1g/apps/opt.c:715,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:716,1
    - Dst: opt_ulong
      Src: /src/openssl-1.1.1g/apps/opt.c:723,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:724,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/opt.c:734,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:740,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:753,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 613
    functionDepth: 4
    functionLinenumber: 613
    functionLinenumberEnd: 755
    functionName: opt_next
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 13
    functionsReached:
    - opt_int
    - opt_umax
    - opt_long
    - opt_imax
    - app_isdir
    - strcmp
    - strchr
    - opt_ulong
    - BIO_printf
    - opt_format
    linkageType: ''
    returnType: int
    signature: int opt_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: opt_arg
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *opt_arg(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: opt_flag
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *opt_flag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: opt_unknown
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *opt_unknown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 779
    functionName: opt_rest
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **opt_rest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/opt.c:787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 790
    functionName: opt_num_rest
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 13
    functionsReached:
    - opt_rest
    linkageType: ''
    returnType: int
    signature: int opt_num_rest(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - o
    argTypes:
    - OPTIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 827
    functionName: valtype2param
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *valtype2param(const OPTIONS *o)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/opt.c:846,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/opt.c:848,1
    - Dst: valtype2param
      Src: /src/openssl-1.1.1g/apps/opt.c:848,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/opt.c:851,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:855,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:862,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/apps/opt.c:867,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:873,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/opt.c:882,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/apps/opt.c:882,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/opt.c:887,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/apps/opt.c:887,1
    - Dst: valtype2param
      Src: /src/openssl-1.1.1g/apps/opt.c:887,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:892,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/apps/opt.c:893,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/opt.c:896,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 1
    argNames:
    - list
    argTypes:
    - OPTIONS*
    assertStmts:
    - condition: (i < (int)sizeof(start))
      pos:
        line_end: 850
        line_start: 850
        source_file: /src/openssl-1.1.1g/apps/opt.c
    constantsTouched: []
    func_position:
      end: 898
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 898
    functionName: opt_help
    functionSourceFile: /src/openssl-1.1.1g/apps/opt.c
    functionUses: 13
    functionsReached:
    - strcpy
    - valtype2param
    - memset
    - BIO_printf
    - assert
    - strlen
    linkageType: ''
    returnType: void
    signature: void opt_help(const OPTIONS *list)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/rsa.c:79,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/rsa.c:80,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:85,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/rsa.c:88,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/rsa.c:92,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsa.c:92,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsa.c:96,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/rsa.c:99,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsa.c:99,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsa.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsa.c:106,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsa.c:109,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/rsa.c:112,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsa.c:112,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/rsa.c:146,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/rsa.c:146,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/rsa.c:151,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/rsa.c:157,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:158,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:162,1
    - Dst: load_pubkey
      Src: /src/openssl-1.1.1g/apps/rsa.c:180,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/rsa.c:182,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openssl-1.1.1g/apps/rsa.c:186,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/rsa.c:187,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/rsa.c:191,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/rsa.c:195,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/rsa.c:200,1
    - Dst: RSA_print
      Src: /src/openssl-1.1.1g/apps/rsa.c:201,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/rsa.c:202,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/rsa.c:203,1
    - Dst: RSA_get0_key
      Src: /src/openssl-1.1.1g/apps/rsa.c:210,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:211,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/apps/rsa.c:212,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:213,1
    - Dst: RSA_check_key_ex
      Src: /src/openssl-1.1.1g/apps/rsa.c:217,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:220,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/apps/rsa.c:224,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/apps/rsa.c:225,1
    - Dst: ERR_GET_FUNC
      Src: /src/openssl-1.1.1g/apps/rsa.c:226,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/apps/rsa.c:227,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:228,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-1.1.1g/apps/rsa.c:229,1
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/apps/rsa.c:230,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/rsa.c:233,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:242,1
    - Dst: i2d_RSAPublicKey_bio
      Src: /src/openssl-1.1.1g/apps/rsa.c:246,1
    - Dst: i2d_RSA_PUBKEY_bio
      Src: /src/openssl-1.1.1g/apps/rsa.c:248,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/rsa.c:250,1
    - Dst: i2d_RSAPrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/rsa.c:251,1
    - Dst: PEM_write_bio_RSAPublicKey
      Src: /src/openssl-1.1.1g/apps/rsa.c:256,1
    - Dst: PEM_write_bio_RSA_PUBKEY
      Src: /src/openssl-1.1.1g/apps/rsa.c:258,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/rsa.c:260,1
    - Dst: PEM_write_bio_RSAPrivateKey
      Src: /src/openssl-1.1.1g/apps/rsa.c:261,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/apps/rsa.c:267,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openssl-1.1.1g/apps/rsa.c:271,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:274,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/rsa.c:275,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/rsa.c:278,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:280,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/rsa.c:281,1
    - Dst: i2b_PVK_bio
      Src: /src/openssl-1.1.1g/apps/rsa.c:284,1
    - Dst: i2b_PublicKey_bio
      Src: /src/openssl-1.1.1g/apps/rsa.c:287,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/rsa.c:289,1
    - Dst: i2b_PrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/rsa.c:290,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/rsa.c:292,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:295,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsa.c:299,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/rsa.c:300,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/rsa.c:305,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/rsa.c:306,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/apps/rsa.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rsa.c:308,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rsa.c:309,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 221
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/openssl-1.1.1g/apps/rsa.c
    - condition: (private)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/openssl-1.1.1g/apps/rsa.c
    - condition: (pubin || private)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/openssl-1.1.1g/apps/rsa.c
    - condition: (private)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/openssl-1.1.1g/apps/rsa.c
    - condition: (private)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/openssl-1.1.1g/apps/rsa.c
    constantsTouched: []
    func_position:
      end: 311
      start: 63
    functionDepth: 7
    functionLinenumber: 63
    functionLinenumberEnd: 311
    functionName: rsa_main
    functionSourceFile: /src/openssl-1.1.1g/apps/rsa.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_RSAPrivateKey
    - EVP_PKEY_get1_RSA
    - i2d_RSAPublicKey_bio
    - ERR_GET_REASON
    - ERR_get_error
    - EVP_PKEY_new
    - app_passwd
    - ERR_GET_LIB
    - perror
    - RSA_free
    - ERR_peek_error
    - OPENSSL_free
    - opt_unknown
    - bio_open_owner
    - opt_arg
    - opt_format
    - opt_next
    - EVP_PKEY_set1_RSA
    - RSA_print
    - RSA_get0_key
    - i2b_PublicKey_bio
    - load_key
    - release_engine
    - RSA_check_key_ex
    - ERR_reason_error_string
    - i2d_RSA_PUBKEY_bio
    - load_pubkey
    - assert
    - i2b_PrivateKey_bio
    - BN_print
    - opt_help
    - BIO_free_all
    - setup_engine
    - opt_num_rest
    - PEM_write_bio_RSAPublicKey
    - i2b_PVK_bio
    - opt_cipher
    - PEM_write_bio_RSA_PUBKEY
    - ERR_GET_FUNC
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    - opt_init
    - i2d_RSAPrivateKey_bio
    linkageType: ''
    returnType: int
    signature: int rsa_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleOutputCP
      Src: /src/openssl-1.1.1g/apps/win32_init.c:25,1
    - Dst: free
      Src: /src/openssl-1.1.1g/apps/win32_init.c:28,1
    - Dst: free
      Src: /src/openssl-1.1.1g/apps/win32_init.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: cleanup
    functionSourceFile: /src/openssl-1.1.1g/apps/win32_init.c
    functionUses: 64
    functionsReached:
    - SetConsoleOutputCP
    - free
    linkageType: ''
    returnType: void
    signature: void cleanup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/openssl-1.1.1g/apps/win32_init.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - argc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: validate_argv
    functionSourceFile: /src/openssl-1.1.1g/apps/win32_init.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: int validate_argv(int argc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FindFirstFileW
      Src: /src/openssl-1.1.1g/apps/win32_init.c:88,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/apps/win32_init.c:94,1
    - Dst: validate_argv
      Src: /src/openssl-1.1.1g/apps/win32_init.c:112,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/apps/win32_init.c:119,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/apps/win32_init.c:122,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/apps/win32_init.c:127,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/apps/win32_init.c:130,1
    - Dst: FindNextFileW
      Src: /src/openssl-1.1.1g/apps/win32_init.c:134,1
    - Dst: CloseHandle
      Src: /src/openssl-1.1.1g/apps/win32_init.c:136,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 2
    argNames:
    - wstr
    - wlen
    argTypes:
    - WCHAR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 139
    functionName: process_glob
    functionSourceFile: /src/openssl-1.1.1g/apps/win32_init.c
    functionUses: 0
    functionsReached:
    - FindFirstFileW
    - FindNextFileW
    - CloseHandle
    - WideCharToMultiByte
    - malloc
    - validate_argv
    linkageType: ''
    returnType: int
    signature: int process_glob(WCHAR *wstr, int wlen)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-1.1.1g/apps/win32_init.c:148,1
    - Dst: validate_argv
      Src: /src/openssl-1.1.1g/apps/win32_init.c:153,1
    - Dst: GetCommandLineW
      Src: /src/openssl-1.1.1g/apps/win32_init.c:156,1
    - Dst: wcslen
      Src: /src/openssl-1.1.1g/apps/win32_init.c:162,1
    - Dst: _alloca
      Src: /src/openssl-1.1.1g/apps/win32_init.c:163,1
    - Dst: wcscpy
      Src: /src/openssl-1.1.1g/apps/win32_init.c:164,1
    - Dst: process_glob
      Src: /src/openssl-1.1.1g/apps/win32_init.c:253,1
    - Dst: validate_argv
      Src: /src/openssl-1.1.1g/apps/win32_init.c:254,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/apps/win32_init.c:261,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/apps/win32_init.c:267,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-1.1.1g/apps/win32_init.c:274,1
    - Dst: GetConsoleOutputCP
      Src: /src/openssl-1.1.1g/apps/win32_init.c:283,1
    - Dst: SetConsoleOutputCP
      Src: /src/openssl-1.1.1g/apps/win32_init.c:284,1
    - Dst: atexit
      Src: /src/openssl-1.1.1g/apps/win32_init.c:289,1
    - Dst: free
      Src: /src/openssl-1.1.1g/apps/win32_init.c:294,1
    - Dst: free
      Src: /src/openssl-1.1.1g/apps/win32_init.c:296,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 83
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char**[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 303
    functionName: win32_utf8argv
    functionSourceFile: /src/openssl-1.1.1g/apps/win32_init.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - wcscpy
    - GetEnvironmentVariableW
    - _alloca
    - GetCommandLineW
    - WideCharToMultiByte
    - SetConsoleOutputCP
    - atexit
    - wcslen
    - GetConsoleOutputCP
    - process_glob
    - validate_argv
    linkageType: ''
    returnType: void
    signature: void win32_utf8argv(int *argc, char **argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char**[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: win32_utf8argv
    functionSourceFile: /src/openssl-1.1.1g/apps/win32_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void win32_utf8argv(int *argc, char **argv[])
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/spkac.c:65,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/spkac.c:66,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/spkac.c:71,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/spkac.c:74,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/spkac.c:78,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/spkac.c:81,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/spkac.c:93,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/spkac.c:96,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/spkac.c:99,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/spkac.c:99,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/spkac.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/spkac.c:106,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/spkac.c:109,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/spkac.c:112,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/spkac.c:112,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/spkac.c:116,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/spkac.c:120,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/spkac.c:121,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/spkac.c:126,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/spkac.c:126,1
    - Dst: NETSCAPE_SPKI_new
      Src: /src/openssl-1.1.1g/apps/spkac.c:130,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-1.1.1g/apps/spkac.c:134,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/spkac.c:135,1
    - Dst: NETSCAPE_SPKI_set_pubkey
      Src: /src/openssl-1.1.1g/apps/spkac.c:136,1
    - Dst: NETSCAPE_SPKI_sign
      Src: /src/openssl-1.1.1g/apps/spkac.c:137,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/apps/spkac.c:137,1
    - Dst: NETSCAPE_SPKI_b64_encode
      Src: /src/openssl-1.1.1g/apps/spkac.c:138,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/spkac.c:142,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/spkac.c:144,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/spkac.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/spkac.c:148,1
    - Dst: app_load_config
      Src: /src/openssl-1.1.1g/apps/spkac.c:153,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/spkac.c:156,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/spkac.c:159,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/spkac.c:160,1
    - Dst: NETSCAPE_SPKI_b64_decode
      Src: /src/openssl-1.1.1g/apps/spkac.c:164,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/spkac.c:167,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/spkac.c:168,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/spkac.c:172,1
    - Dst: NETSCAPE_SPKI_print
      Src: /src/openssl-1.1.1g/apps/spkac.c:177,1
    - Dst: NETSCAPE_SPKI_get_pubkey
      Src: /src/openssl-1.1.1g/apps/spkac.c:178,1
    - Dst: NETSCAPE_SPKI_verify
      Src: /src/openssl-1.1.1g/apps/spkac.c:180,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/spkac.c:182,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/spkac.c:184,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/spkac.c:185,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openssl-1.1.1g/apps/spkac.c:190,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/spkac.c:195,1
    - Dst: NETSCAPE_SPKI_free
      Src: /src/openssl-1.1.1g/apps/spkac.c:196,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/spkac.c:197,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/spkac.c:198,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/spkac.c:199,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/spkac.c:200,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 141
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 50
    functionDepth: 7
    functionLinenumber: 50
    functionLinenumberEnd: 202
    functionName: spkac_main
    functionSourceFile: /src/openssl-1.1.1g/apps/spkac.c
    functionUses: 0
    functionsReached:
    - NETSCAPE_SPKI_free
    - app_load_config
    - NETSCAPE_SPKI_new
    - app_passwd
    - bio_open_default
    - NETSCAPE_SPKI_set_pubkey
    - NETSCAPE_SPKI_sign
    - NCONF_get_string
    - strcmp
    - NCONF_free
    - OPENSSL_free
    - opt_arg
    - PEM_write_bio_PUBKEY
    - opt_next
    - NETSCAPE_SPKI_b64_encode
    - NETSCAPE_SPKI_b64_decode
    - ASN1_STRING_set
    - NETSCAPE_SPKI_get_pubkey
    - load_key
    - release_engine
    - ERR_print_errors
    - NETSCAPE_SPKI_verify
    - NETSCAPE_SPKI_print
    - opt_help
    - BIO_free_all
    - setup_engine
    - opt_num_rest
    - EVP_md5
    - BIO_printf
    - EVP_PKEY_free
    - opt_format
    - opt_init
    - strlen
    linkageType: ''
    returnType: int
    signature: int spkac_main(int argc, char **argv)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/prime.c:42,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/prime.c:43,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:48,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/prime.c:51,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/prime.c:61,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/prime.c:61,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/prime.c:67,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/prime.c:67,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/prime.c:71,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/prime.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:80,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:88,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/prime.c:91,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:93,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-1.1.1g/apps/prime.c:96,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:97,1
    - Dst: BN_bn2hex
      Src: /src/openssl-1.1.1g/apps/prime.c:100,1
    - Dst: BN_bn2dec
      Src: /src/openssl-1.1.1g/apps/prime.c:100,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:102,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/prime.c:106,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/apps/prime.c:112,1
    - Dst: BN_dec2bn
      Src: /src/openssl-1.1.1g/apps/prime.c:114,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:117,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/apps/prime.c:121,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/prime.c:122,1
    - Dst: BN_is_prime_ex
      Src: /src/openssl-1.1.1g/apps/prime.c:124,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/prime.c:131,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 91
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 133
    functionName: prime_main
    functionSourceFile: /src/openssl-1.1.1g/apps/prime.c
    functionUses: 0
    functionsReached:
    - opt_num_rest
    - BN_bn2hex
    - atoi
    - BN_new
    - opt_rest
    - BN_bn2dec
    - opt_arg
    - OPENSSL_free
    - BN_is_prime_ex
    - opt_next
    - BN_free
    - BN_print
    - BIO_printf
    - BN_dec2bn
    - BN_hex2bn
    - opt_init
    - opt_help
    - BN_generate_prime_ex
    linkageType: ''
    returnType: int
    signature: int prime_main(int argc, char **argv)
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/dgst.c:90,1
    - Dst: opt_progname
      Src: /src/openssl-1.1.1g/apps/dgst.c:104,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/dgst.c:105,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/apps/dgst.c:106,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/dgst.c:108,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/dgst.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:114,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/dgst.c:117,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:121,1
    - Dst: OBJ_NAME_do_all_sorted
      Src: /src/openssl-1.1.1g/apps/dgst.c:124,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:126,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/dgst.c:136,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:140,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:143,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:146,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:149,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:153,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:157,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/dgst.c:160,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:160,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/dgst.c:164,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:164,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:182,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:185,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/dgst.c:189,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/dgst.c:190,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:190,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/dgst.c:195,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/dgst.c:196,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:196,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/dgst.c:200,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/dgst.c:200,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/dgst.c:206,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/dgst.c:207,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:209,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:214,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/dgst.c:221,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/apps/dgst.c:221,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/dgst.c:222,1
    - Dst: BIO_f_md
      Src: /src/openssl-1.1.1g/apps/dgst.c:222,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:224,1
    - Dst: BIO_set_callback
      Src: /src/openssl-1.1.1g/apps/dgst.c:229,1
    - Dst: BIO_set_callback_arg
      Src: /src/openssl-1.1.1g/apps/dgst.c:231,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/dgst.c:234,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:235,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/dgst.c:246,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:251,1
    - Dst: load_pubkey
      Src: /src/openssl-1.1.1g/apps/dgst.c:259,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/dgst.c:261,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/apps/dgst.c:268,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:274,1
    - Dst: init_gen_str
      Src: /src/openssl-1.1.1g/apps/dgst.c:282,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/dgst.c:286,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/dgst.c:287,1
    - Dst: pkey_ctrl_string
      Src: /src/openssl-1.1.1g/apps/dgst.c:288,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:289,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:291,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-1.1.1g/apps/dgst.c:296,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/dgst.c:297,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:298,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:303,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/apps/dgst.c:309,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-1.1.1g/apps/dgst.c:319,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:320,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:321,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/apps/dgst.c:325,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/apps/dgst.c:327,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:329,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:330,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/dgst.c:335,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/dgst.c:336,1
    - Dst: pkey_ctrl_string
      Src: /src/openssl-1.1.1g/apps/dgst.c:337,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:338,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:339,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-1.1.1g/apps/dgst.c:348,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:349,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:350,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/apps/dgst.c:354,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/apps/dgst.c:355,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:356,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:357,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/dgst.c:363,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:365,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:366,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/apps/dgst.c:369,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/dgst.c:370,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/dgst.c:371,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:372,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:374,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:375,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/dgst.c:379,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-1.1.1g/apps/dgst.c:383,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/apps/dgst.c:384,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/apps/dgst.c:388,1
    - Dst: do_fp
      Src: /src/openssl-1.1.1g/apps/dgst.c:389,1
    - Dst: EVP_PKEY_get0_asn1
      Src: /src/openssl-1.1.1g/apps/dgst.c:396,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/apps/dgst.c:398,1
    - Dst: EVP_MD_name
      Src: /src/openssl-1.1.1g/apps/dgst.c:402,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/apps/dgst.c:407,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/dgst.c:408,1
    - Dst: do_fp
      Src: /src/openssl-1.1.1g/apps/dgst.c:412,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/apps/dgst.c:417,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:421,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:422,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:423,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/dgst.c:424,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:425,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:426,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:427,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:428,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:429,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/dgst.c:430,1
    CyclomaticComplexity: 111
    EdgeCount: 111
    ICount: 311
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 85
    functionDepth: 7
    functionLinenumber: 85
    functionLinenumberEnd: 432
    functionName: dgst_main
    functionSourceFile: /src/openssl-1.1.1g/apps/dgst.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md
    - sk_OPENSSL_STRING_free
    - opt_progname
    - STACK_OF
    - EVP_PKEY_id
    - BIO_reset
    - EVP_DigestInit_ex
    - opt_rand
    - app_passwd
    - bio_open_default
    - EVP_DigestVerifyInit
    - BIO_set_fp
    - perror
    - sk_OPENSSL_STRING_new_null
    - EVP_get_digestbyname
    - BIO_set_callback_arg
    - init_gen_str
    - OPENSSL_free
    - opt_unknown
    - opt_arg
    - sk_OPENSSL_STRING_value
    - BIO_get_md_ctx
    - BIO_puts
    - EVP_DigestSignInit
    - opt_next
    - EVP_PKEY_CTX_free
    - OBJ_NAME_do_all_sorted
    - EVP_sha256
    - BIO_free
    - EVP_PKEY_size
    - BIO_push
    - EVP_PKEY_asn1_get0_info
    - BIO_set_callback
    - BIO_read
    - do_fp
    - EVP_PKEY_get0_asn1
    - app_malloc
    - pkey_ctrl_string
    - load_key
    - release_engine
    - ERR_print_errors
    - load_pubkey
    - sk_OPENSSL_STRING_num
    - EVP_PKEY_new_raw_private_key
    - BIO_new_file
    - OPENSSL_clear_free
    - opt_help
    - BIO_free_all
    - sk_OPENSSL_STRING_push
    - EVP_MD_name
    - BIO_f_md
    - setup_engine
    - opt_md
    - opt_num_rest
    - opt_rest
    - EVP_PKEY_keygen
    - BIO_s_file
    - BIO_read_filename
    - BIO_printf
    - EVP_PKEY_free
    - opt_format
    - opt_init
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int dgst_main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/dgst.c:440,1
    - Dst: strstr
      Src: /src/openssl-1.1.1g/apps/dgst.c:440,1
    - Dst: islower
      Src: /src/openssl-1.1.1g/apps/dgst.c:443,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/apps/dgst.c:447,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:451,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:453,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:456,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - name
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 458
    functionName: show_digests
    functionSourceFile: /src/openssl-1.1.1g/apps/dgst.c
    functionUses: 0
    functionsReached:
    - strstr
    - EVP_get_digestbyname
    - islower
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void show_digests(const OBJ_NAME *name, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/dgst.c:472,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/dgst.c:480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - file
    - backslash
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 496
    functionName: newline_escape_filename
    functionSourceFile: /src/openssl-1.1.1g/apps/dgst.c
    functionUses: 0
    functionsReached:
    - app_malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char *newline_escape_filename(const char *file, int * backslash)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_pending
      Src: /src/openssl-1.1.1g/apps/dgst.c:508,1
    - Dst: BIO_eof
      Src: /src/openssl-1.1.1g/apps/dgst.c:508,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/dgst.c:509,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:511,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:512,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-1.1.1g/apps/dgst.c:520,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/apps/dgst.c:521,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:523,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:525,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:528,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:529,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-1.1.1g/apps/dgst.c:538,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/apps/dgst.c:539,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/dgst.c:542,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/apps/dgst.c:545,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:546,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:547,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/dgst.c:551,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dgst.c:553,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/dgst.c:559,1
    - Dst: newline_escape_filename
      Src: /src/openssl-1.1.1g/apps/dgst.c:561,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/dgst.c:564,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:567,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:569,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:570,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/dgst.c:573,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:575,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:576,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:578,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:580,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:584,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:585,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dgst.c:587,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/apps/dgst.c:593,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 11
    argNames:
    - out
    - buf
    - bp
    - sep
    - binout
    - key
    - sigin
    - siglen
    - sig_name
    - md_name
    - file
    argTypes:
    - BIO*
    - unsigned char*
    - BIO*
    - int
    - int
    - EVP_PKEY*
    - unsigned char*
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 499
    functionDepth: 5
    functionLinenumber: 499
    functionLinenumberEnd: 596
    functionName: do_fp
    functionSourceFile: /src/openssl-1.1.1g/apps/dgst.c
    functionUses: 1
    functionsReached:
    - app_malloc
    - BIO_write
    - EVP_DigestVerifyFinal
    - BIO_gets
    - OPENSSL_free
    - OPENSSL_clear_free
    - BIO_pending
    - BIO_get_md_ctx
    - BIO_puts
    - BIO_printf
    - newline_escape_filename
    - EVP_PKEY_size
    - EVP_DigestSignFinal
    - ERR_print_errors
    - BIO_eof
    - BIO_read
    linkageType: ''
    returnType: int
    signature: "int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,\n
      \         EVP_PKEY *key, unsigned char *sigin, int siglen,\n          const
      char *sig_name, const char *md_name,\n          const char *file)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:56,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:57,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:62,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:65,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:69,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:69,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:73,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:73,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:77,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:80,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:95,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:95,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:99,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:103,1
    - Dst: d2i_PKCS7_bio
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:108,1
    - Dst: PEM_read_bio_PKCS7
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:112,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:113,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:117,1
    - Dst: PKCS7_print_ctx
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:122,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:125,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:126,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:128,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:149,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:150,1
    - Dst: X509_print
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:152,1
    - Dst: dump_cert_text
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:154,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:157,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:158,1
    - Dst: sk_X509_CRL_num
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:164,1
    - Dst: sk_X509_CRL_value
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:165,1
    - Dst: X509_CRL_print_ex
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:167,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:167,1
    - Dst: PEM_write_bio_X509_CRL
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:170,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:171,1
    - Dst: i2d_PKCS7_bio
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:181,1
    - Dst: PEM_write_bio_PKCS7
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:183,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:186,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:187,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:193,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:194,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:195,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/pkcs7.c:196,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 135
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 198
    functionName: pkcs7_main
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs7.c
    functionUses: 0
    functionsReached:
    - PKCS7_free
    - STACK_OF
    - get_nameopt
    - opt_init
    - bio_open_default
    - PEM_write_bio_PKCS7
    - PEM_read_bio_PKCS7
    - opt_arg
    - opt_format
    - BIO_puts
    - opt_next
    - BIO_free
    - X509_CRL_print_ex
    - X509_print
    - PKCS7_print_ctx
    - release_engine
    - i2d_PKCS7_bio
    - OBJ_obj2nid
    - d2i_PKCS7_bio
    - opt_help
    - BIO_free_all
    - dump_cert_text
    - sk_X509_CRL_num
    - setup_engine
    - opt_num_rest
    - sk_X509_num
    - sk_X509_CRL_value
    - PEM_write_bio_X509
    - BIO_printf
    - PEM_write_bio_X509_CRL
    - ERR_print_errors
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int pkcs7_main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: islower
      Src: /src/openssl-1.1.1g/apps/enc.c:630,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/apps/enc.c:634,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/apps/enc.c:636,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/apps/enc.c:637,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/enc.c:640,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/enc.c:642,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/enc.c:645,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - name
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 646
    functionName: show_ciphers
    functionSourceFile: /src/openssl-1.1.1g/apps/enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_flags
    - EVP_get_cipherbyname
    - islower
    - EVP_CIPHER_mode
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void show_ciphers(const OBJ_NAME *name, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/enc.c:654,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/enc.c:656,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/enc.c:659,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/apps/enc.c:662,1
    - Dst: isxdigit
      Src: /src/openssl-1.1.1g/apps/enc.c:665,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/enc.c:666,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/apps/enc.c:669,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - in
    - out
    - size
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 676
    functionName: set_hex
    functionSourceFile: /src/openssl-1.1.1g/apps/enc.c
    functionUses: 0
    functionsReached:
    - memset
    - isxdigit
    - BIO_printf
    - OPENSSL_hexchar2int
    - strlen
    linkageType: ''
    returnType: int
    signature: int set_hex(const char *in, unsigned char *out, int size)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:96,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:98,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:99,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:104,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:107,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:111,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:114,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:117,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:123,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:126,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:129,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:132,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:132,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:136,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:136,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:140,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:144,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:144,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:179,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:182,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:182,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:189,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:190,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:190,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:191,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:197,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:203,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:208,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:212,1
    - Dst: init_ctx
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:216,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:219,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:220,1
    - Dst: setup_peer
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:223,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:224,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:225,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:229,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:233,1
    - Dst: pkey_ctrl_string
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:235,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:236,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:238,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:245,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:251,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:257,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:261,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:266,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:269,1
    - Dst: bio_to_mem
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:272,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:273,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:275,1
    - Dst: bio_to_mem
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:282,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:284,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:303,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:309,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:312,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:315,1
    - Dst: do_keyop
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:323,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:327,1
    - Dst: do_keyop
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:328,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:334,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:336,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:338,1
    - Dst: ASN1_parse_dump
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:344,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:345,1
    - Dst: BIO_dump
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:347,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:349,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:353,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:354,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:355,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:356,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:357,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:358,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:359,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:360,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 256
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 78
    functionDepth: 7
    functionLinenumber: 78
    functionLinenumberEnd: 362
    functionName: pkeyutl_main
    functionSourceFile: /src/openssl-1.1.1g/apps/pkeyutl.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_free
    - atoi
    - STACK_OF
    - bio_to_mem
    - opt_rand
    - opt_init
    - bio_open_default
    - sk_OPENSSL_STRING_new_null
    - OPENSSL_free
    - opt_arg
    - sk_OPENSSL_STRING_value
    - opt_format
    - BIO_puts
    - opt_next
    - EVP_PKEY_CTX_free
    - BIO_free
    - BIO_dump
    - pkey_ctrl_string
    - app_malloc
    - EVP_PKEY_verify
    - release_engine
    - sk_OPENSSL_STRING_num
    - BIO_new_file
    - opt_help
    - BIO_free_all
    - setup_peer
    - sk_OPENSSL_STRING_push
    - BIO_write
    - setup_engine
    - opt_num_rest
    - ASN1_parse_dump
    - do_keyop
    - BIO_printf
    - ERR_print_errors
    - init_ctx
    linkageType: ''
    returnType: int
    signature: int pkeyutl_main(int argc, char **argv)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:378,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:381,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:382,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:387,1
    - Dst: load_pubkey
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:391,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:395,1
    - Dst: X509_get_pubkey
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:397,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:398,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:413,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:416,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:418,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:423,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:427,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:428,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:429,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:437,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:441,1
    - Dst: EVP_PKEY_verify_recover_init
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:445,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:449,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:453,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:457,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:462,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:467,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 79
    argCount: 9
    argNames:
    - kdfalg
    - pkeysize
    - keyfile
    - keyform
    - key_type
    - passinarg
    - pkey_op
    - e
    - engine_impl
    argTypes:
    - char*
    - int*
    - char*
    - int
    - int
    - char*
    - int
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 470
    functionName: init_ctx
    functionSourceFile: /src/openssl-1.1.1g/apps/pkeyutl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_decrypt_init
    - app_passwd
    - EVP_PKEY_sign_init
    - EVP_PKEY_CTX_new_id
    - X509_free
    - X509_get_pubkey
    - OPENSSL_free
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_size
    - EVP_PKEY_verify_init
    - OBJ_sn2nid
    - load_key
    - OBJ_ln2nid
    - load_pubkey
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_verify_recover_init
    - BIO_printf
    - EVP_PKEY_free
    - load_cert
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: "EVP_PKEY_CTX *init_ctx(const char *kdfalg, int *pkeysize,\n                              const
      char *keyfile, int keyform, int key_type,\n                              char
      *passinarg, int pkey_op, ENGINE *e,\n                              const int
      engine_impl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: load_pubkey
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:481,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:483,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:484,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:488,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:490,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - peerform
    - file
    - e
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 472
    functionDepth: 5
    functionLinenumber: 472
    functionLinenumberEnd: 494
    functionName: setup_peer
    functionSourceFile: /src/openssl-1.1.1g/apps/pkeyutl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_derive_set_peer
    - load_pubkey
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    linkageType: ''
    returnType: int
    signature: "int setup_peer(EVP_PKEY_CTX *ctx, int peerform, const char *file,\n
      \                     ENGINE *e)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_verify_recover
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:503,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:507,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:511,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:515,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/apps/pkeyutl.c:519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - ctx
    - pkey_op
    - out
    - poutlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 524
    functionName: do_keyop
    functionSourceFile: /src/openssl-1.1.1g/apps/pkeyutl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_encrypt
    - EVP_PKEY_decrypt
    - EVP_PKEY_verify_recover
    - EVP_PKEY_derive
    - EVP_PKEY_sign
    linkageType: ''
    returnType: int
    signature: "int do_keyop(EVP_PKEY_CTX *ctx, int pkey_op,\n                    unsigned
      char *out, size_t *poutlen,\n                    const unsigned char *in, size_t
      inlen)"
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/dhparam.c:78,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/dhparam.c:79,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:84,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/dhparam.c:87,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/dhparam.c:91,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dhparam.c:91,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/dhparam.c:95,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dhparam.c:95,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dhparam.c:99,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dhparam.c:102,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/dhparam.c:105,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dhparam.c:105,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/dhparam.c:131,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/dhparam.c:136,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/dhparam.c:137,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/dhparam.c:139,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:147,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/dhparam.c:153,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/apps/dhparam.c:164,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dhparam.c:166,1
    - Dst: BN_GENCB_set
      Src: /src/openssl-1.1.1g/apps/dhparam.c:170,1
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/apps/dhparam.c:174,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:176,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openssl-1.1.1g/apps/dhparam.c:179,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:181,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:182,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dhparam.c:183,1
    - Dst: DSA_dup_DH
      Src: /src/openssl-1.1.1g/apps/dhparam.c:187,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:188,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:190,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dhparam.c:191,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/apps/dhparam.c:197,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:198,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:201,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openssl-1.1.1g/apps/dhparam.c:202,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:203,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dhparam.c:204,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:209,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/dhparam.c:212,1
    - Dst: d2i_DSAparams_bio
      Src: /src/openssl-1.1.1g/apps/dhparam.c:221,1
    - Dst: PEM_read_bio_DSAparams
      Src: /src/openssl-1.1.1g/apps/dhparam.c:223,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:226,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dhparam.c:227,1
    - Dst: DSA_dup_DH
      Src: /src/openssl-1.1.1g/apps/dhparam.c:231,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:232,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dhparam.c:234,1
    - Dst: d2i_DHparams_bio
      Src: /src/openssl-1.1.1g/apps/dhparam.c:245,1
    - Dst: BIO_reset
      Src: /src/openssl-1.1.1g/apps/dhparam.c:247,1
    - Dst: d2i_DHxparams_bio
      Src: /src/openssl-1.1.1g/apps/dhparam.c:248,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/openssl-1.1.1g/apps/dhparam.c:251,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:255,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dhparam.c:256,1
    - Dst: DHparams_print
      Src: /src/openssl-1.1.1g/apps/dhparam.c:265,1
    - Dst: DH_check
      Src: /src/openssl-1.1.1g/apps/dhparam.c:269,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dhparam.c:270,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:274,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:276,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:278,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:280,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:282,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:284,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:287,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:289,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:295,1
    - Dst: DH_size
      Src: /src/openssl-1.1.1g/apps/dhparam.c:304,1
    - Dst: DH_bits
      Src: /src/openssl-1.1.1g/apps/dhparam.c:305,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-1.1.1g/apps/dhparam.c:306,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/dhparam.c:307,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:309,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/dhparam.c:310,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/dhparam.c:311,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:312,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:317,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:319,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:321,1
    - Dst: DH_get_length
      Src: /src/openssl-1.1.1g/apps/dhparam.c:328,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:329,1
    - Dst: DH_get_length
      Src: /src/openssl-1.1.1g/apps/dhparam.c:333,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:334,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:335,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-1.1.1g/apps/dhparam.c:340,1
    - Dst: i2d_DHxparams_bio
      Src: /src/openssl-1.1.1g/apps/dhparam.c:343,1
    - Dst: i2d_DHparams_bio
      Src: /src/openssl-1.1.1g/apps/dhparam.c:345,1
    - Dst: PEM_write_bio_DHxparams
      Src: /src/openssl-1.1.1g/apps/dhparam.c:347,1
    - Dst: PEM_write_bio_DHparams
      Src: /src/openssl-1.1.1g/apps/dhparam.c:349,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dhparam.c:352,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dhparam.c:353,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:359,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/dhparam.c:360,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/apps/dhparam.c:361,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/dhparam.c:362,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 231
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 364
    functionName: dhparam_main
    functionSourceFile: /src/openssl-1.1.1g/apps/dhparam.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - DH_bits
    - DH_get_length
    - BIO_reset
    - DH_free
    - opt_rand
    - bio_open_default
    - DSA_dup_DH
    - DH_check
    - PEM_read_bio_DHparams
    - OPENSSL_free
    - print_bignum_var
    - opt_arg
    - opt_format
    - i2d_DHparams_bio
    - opt_next
    - BIO_free
    - DH_get0_pqg
    - d2i_DHparams_bio
    - PEM_write_bio_DHxparams
    - app_malloc
    - DSA_new
    - release_engine
    - i2d_DHxparams_bio
    - BN_GENCB_free
    - DHparams_print
    - DSA_free
    - opt_help
    - BIO_free_all
    - opt_int
    - DH_generate_parameters_ex
    - setup_engine
    - opt_num_rest
    - DH_size
    - PEM_write_bio_DHparams
    - opt_rest
    - DSA_generate_parameters_ex
    - BN_GENCB_set
    - d2i_DHxparams_bio
    - d2i_DSAparams_bio
    - BIO_printf
    - DH_new
    - ERR_print_errors
    - opt_init
    - PEM_read_bio_DSAparams
    linkageType: ''
    returnType: int
    signature: int dhparam_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/dhparam.c:371,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openssl-1.1.1g/apps/dhparam.c:371,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/dhparam.c:372,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openssl-1.1.1g/apps/dhparam.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - n
    - cb
    argTypes:
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: dh_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/dhparam.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_get_arg
    - BIO_write
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int dh_cb(int p, int n, BN_GENCB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: __struct
    functionSourceFile: /src/openssl-1.1.1g/apps/vms_term_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __union
    signature: __union __struct
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:134,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:135,1
    - Dst: TerminalSocket
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:139,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:141,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:146,1
    - Dst: recv
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:147,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:149,1
    - Dst: TerminalSocket
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:154,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - argc
    - argv
    - envp
    argTypes:
    - int
    - char*[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 161
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/apps/vms_term_sock.c
    functionUses: 0
    functionsReached:
    - TerminalSocket
    - LogMessage
    - exit
    - strcasecmp
    - recv
    linkageType: ''
    returnType: int
    signature: int main (int argc, char *argv[], char *envp[])
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: $DESCRIPTOR
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:170,1
    - Dst: CreateSocketPair
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:180,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:182,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:184,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:186,1
    - Dst: sys$assign
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:193,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:197,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:198,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:199,1
    - Dst: sys$qio
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:206,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:216,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:217,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:218,1
    - Dst: sys$cancel
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:232,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:234,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:235,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:236,1
    - Dst: sys$dassgn
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:243,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:245,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:246,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:247,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:254,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:255,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:267,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - FunctionCode
    - ReturnSocket
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 277
    functionName: TerminalSocket
    functionSourceFile: /src/openssl-1.1.1g/apps/vms_term_sock.c
    functionUses: 1
    functionsReached:
    - sys$assign
    - sys$cancel
    - sys$qio
    - close
    - CreateSocketPair
    - $DESCRIPTOR
    - LogMessage
    - sys$dassgn
    linkageType: ''
    returnType: int
    signature: int TerminalSocket (int FunctionCode, int *ReturnSocket)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: $DESCRIPTOR
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:307,1
    - Dst: socket
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:312,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:314,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:322,1
    - Dst: inet_addr
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:324,1
    - Dst: bind
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:330,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:332,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:333,1
    - Dst: getsockname
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:340,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:342,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:343,1
    - Dst: listen
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:351,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:356,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:357,1
    - Dst: sys$bintim
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:359,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:361,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:362,1
    - Dst: sys$assign
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:370,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:372,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:373,1
    - Dst: decc$get_sdc
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:380,1
    - Dst: sys$qio
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:385,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:393,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:394,1
    - Dst: sys$dassgn
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:395,1
    - Dst: socket
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:402,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:404,1
    - Dst: sys$cancel
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:405,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:406,1
    - Dst: sys$dassgn
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:407,1
    - Dst: decc$get_sdc
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:415,1
    - Dst: sys$setimr
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:421,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:427,1
    - Dst: sys$cancel
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:428,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:429,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:430,1
    - Dst: sys$dassgn
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:431,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:438,1
    - Dst: inet_addr
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:440,1
    - Dst: connect
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:443,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:445,1
    - Dst: sys$cantim
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:446,1
    - Dst: sys$cancel
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:447,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:448,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:449,1
    - Dst: sys$dassgn
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:450,1
    - Dst: sys$synch
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:459,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:462,1
    - Dst: LogMessage
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:464,1
    - Dst: sys$cantim
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:466,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:468,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:469,1
    - Dst: sys$dassgn
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:470,1
    - Dst: sys$cantim
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:479,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:481,1
    - Dst: socket_fd
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:483,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 99
    argCount: 4
    argNames:
    - SocketFamily
    - SocketType
    - SocketProtocol
    - SocketPair
    argTypes:
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 487
    functionName: CreateSocketPair
    functionSourceFile: /src/openssl-1.1.1g/apps/vms_term_sock.c
    functionUses: 1
    functionsReached:
    - sys$assign
    - sys$qio
    - close
    - sys$cantim
    - getsockname
    - socket_fd
    - listen
    - LogMessage
    - $DESCRIPTOR
    - socket
    - bind
    - sys$dassgn
    - sprintf
    - inet_addr
    - connect
    - decc$get_sdc
    - sys$cancel
    - sys$bintim
    - sys$synch
    - sys$setimr
    - memset
    - strlen
    linkageType: ''
    returnType: int
    signature: "int CreateSocketPair (int SocketFamily,\n                             int
      SocketType,\n                             int SocketProtocol,\n                             int
      *SocketPair)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys$cancel
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:496,1
    - Dst: sys$cancel
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - astparm
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 501
    functionName: SocketPairTimeoutAst
    functionSourceFile: /src/openssl-1.1.1g/apps/vms_term_sock.c
    functionUses: 0
    functionsReached:
    - sys$cancel
    linkageType: ''
    returnType: void
    signature: void SocketPairTimeoutAst (int astparm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:514,1
    - Dst: send
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:519,1
    - Dst: sys$qio
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - astparm
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 540
    functionName: TerminalDeviceAst
    functionSourceFile: /src/openssl-1.1.1g/apps/vms_term_sock.c
    functionUses: 0
    functionsReached:
    - strcat
    - sys$qio
    - send
    linkageType: ''
    returnType: int
    signature: int TerminalDeviceAst (int astparm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:559,1
    - Dst: time
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:564,1
    - Dst: localtime
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:565,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:570,1
    - Dst: va_start
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:579,1
    - Dst: vfprintf
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:580,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:581,1
    - Dst: fsync
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:586,1
    - Dst: fileno
      Src: /src/openssl-1.1.1g/apps/vms_term_sock.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 590
    functionName: LogMessage
    functionSourceFile: /src/openssl-1.1.1g/apps/vms_term_sock.c
    functionUses: 13
    functionsReached:
    - va_start
    - time
    - getpid
    - vfprintf
    - va_end
    - fileno
    - sprintf
    - localtime
    - fsync
    linkageType: ''
    returnType: void
    signature: void LogMessage (char *msg, ...)
  - BBCount: 235
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ca.c:235,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ca.c:236,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ca.c:237,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/ca.c:266,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/ca.c:267,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:272,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/ca.c:275,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:280,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:283,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:289,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:292,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:295,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:311,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:314,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/ca.c:317,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:317,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:320,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:323,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:326,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/ca.c:329,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:329,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:333,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/ca.c:336,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:340,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:343,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:349,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/ca.c:353,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/ca.c:354,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:354,1
    - Dst: atol
      Src: /src/openssl-1.1.1g/apps/ca.c:376,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:376,1
    - Dst: atol
      Src: /src/openssl-1.1.1g/apps/ca.c:379,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:379,1
    - Dst: atol
      Src: /src/openssl-1.1.1g/apps/ca.c:382,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:382,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:388,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:392,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:396,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:400,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:404,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:407,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:410,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:416,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:422,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/ca.c:426,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ca.c:426,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/ca.c:431,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/ca.c:432,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:434,1
    - Dst: app_load_config
      Src: /src/openssl-1.1.1g/apps/ca.c:436,1
    - Dst: app_load_modules
      Src: /src/openssl-1.1.1g/apps/ca.c:438,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/ca.c:443,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:446,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:448,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ca.c:450,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:453,1
    - Dst: OBJ_create_objects
      Src: /src/openssl-1.1.1g/apps/ca.c:455,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/ca.c:456,1
    - Dst: add_oid_section
      Src: /src/openssl-1.1.1g/apps/ca.c:459,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:460,1
    - Dst: app_RAND_load_conf
      Src: /src/openssl-1.1.1g/apps/ca.c:464,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:466,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:468,1
    - Dst: ASN1_STRING_set_default_mask_asc
      Src: /src/openssl-1.1.1g/apps/ca.c:470,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:471,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:476,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:478,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ca.c:479,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:484,1
    - Dst: parse_yesno
      Src: /src/openssl-1.1.1g/apps/ca.c:486,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:488,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/ca.c:493,1
    - Dst: load_index
      Src: /src/openssl-1.1.1g/apps/ca.c:497,1
    - Dst: index_index
      Src: /src/openssl-1.1.1g/apps/ca.c:501,1
    - Dst: get_certificate_status
      Src: /src/openssl-1.1.1g/apps/ca.c:504,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:505,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/ca.c:513,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/ca.c:518,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:519,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/ca.c:523,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/apps/ca.c:525,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/ca.c:525,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/ca.c:534,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/ca.c:537,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/apps/ca.c:541,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:542,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:550,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:552,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:555,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:557,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:561,1
    - Dst: set_nameopt
      Src: /src/openssl-1.1.1g/apps/ca.c:564,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:565,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:571,1
    - Dst: set_cert_ex
      Src: /src/openssl-1.1.1g/apps/ca.c:574,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:575,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:580,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:583,1
    - Dst: set_ext_copy
      Src: /src/openssl-1.1.1g/apps/ca.c:586,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:587,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:591,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:598,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:600,1
    - Dst: app_isdir
      Src: /src/openssl-1.1.1g/apps/ca.c:612,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:613,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/ca.c:614,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/ca.c:622,1
    - Dst: load_index
      Src: /src/openssl-1.1.1g/apps/ca.c:626,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/apps/ca.c:631,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/ca.c:632,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:634,1
    - Dst: make_revoked
      Src: /src/openssl-1.1.1g/apps/ca.c:640,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:641,1
    - Dst: check_time_format
      Src: /src/openssl-1.1.1g/apps/ca.c:644,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:645,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/ca.c:649,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:655,1
    - Dst: isxdigit
      Src: /src/openssl-1.1.1g/apps/ca.c:660,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/apps/ca.c:660,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:661,1
    - Dst: TXT_DB_write
      Src: /src/openssl-1.1.1g/apps/ca.c:669,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:670,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/apps/ca.c:671,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:672,1
    - Dst: index_index
      Src: /src/openssl-1.1.1g/apps/ca.c:675,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:682,1
    - Dst: do_updatedb
      Src: /src/openssl-1.1.1g/apps/ca.c:684,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:686,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:690,1
    - Dst: save_index
      Src: /src/openssl-1.1.1g/apps/ca.c:692,1
    - Dst: rotate_index
      Src: /src/openssl-1.1.1g/apps/ca.c:695,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:699,1
    - Dst: app_load_config
      Src: /src/openssl-1.1.1g/apps/ca.c:706,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:712,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:717,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-1.1.1g/apps/ca.c:731,1
    - Dst: EVP_md_null
      Src: /src/openssl-1.1.1g/apps/ca.c:738,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/ca.c:740,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ca.c:743,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ca.c:745,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/ca.c:748,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/ca.c:751,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:759,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ca.c:760,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:764,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/apps/ca.c:765,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/apps/ca.c:765,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/ca.c:767,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:771,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:773,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/ca.c:776,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:787,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:789,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openssl-1.1.1g/apps/ca.c:794,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:795,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:796,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:797,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:807,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:809,1
    - Dst: ASN1_TIME_set_string_X509
      Src: /src/openssl-1.1.1g/apps/ca.c:811,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:812,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:820,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:822,1
    - Dst: ASN1_TIME_set_string_X509
      Src: /src/openssl-1.1.1g/apps/ca.c:824,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:825,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/apps/ca.c:831,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:835,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/ca.c:840,1
    - Dst: rand_serial
      Src: /src/openssl-1.1.1g/apps/ca.c:840,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:841,1
    - Dst: load_serial
      Src: /src/openssl-1.1.1g/apps/ca.c:845,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:846,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/apps/ca.c:850,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:851,1
    - Dst: BN_bn2hex
      Src: /src/openssl-1.1.1g/apps/ca.c:853,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:855,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:856,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/apps/ca.c:861,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:862,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/apps/ca.c:866,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:867,1
    - Dst: certify_spkac
      Src: /src/openssl-1.1.1g/apps/ca.c:872,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/ca.c:875,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:881,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/apps/ca.c:882,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/ca.c:884,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:885,1
    - Dst: certify_cert
      Src: /src/openssl-1.1.1g/apps/ca.c:892,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/ca.c:896,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:902,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/apps/ca.c:903,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/ca.c:905,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:906,1
    - Dst: certify
      Src: /src/openssl-1.1.1g/apps/ca.c:913,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/ca.c:916,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:921,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/apps/ca.c:922,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/ca.c:924,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:925,1
    - Dst: certify
      Src: /src/openssl-1.1.1g/apps/ca.c:932,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/ca.c:935,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:940,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/apps/ca.c:941,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ca.c:942,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/ca.c:945,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:946,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ca.c:947,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/ca.c:957,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:959,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/ca.c:962,1
    - Dst: fgets
      Src: /src/openssl-1.1.1g/apps/ca.c:964,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:965,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:970,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:976,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/ca.c:977,1
    - Dst: save_serial
      Src: /src/openssl-1.1.1g/apps/ca.c:980,1
    - Dst: save_index
      Src: /src/openssl-1.1.1g/apps/ca.c:983,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/apps/ca.c:987,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/ca.c:989,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:993,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/ca.c:995,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/ca.c:997,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/apps/ca.c:998,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/apps/ca.c:999,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/apps/ca.c:1000,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1005,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1026,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ca.c:1028,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ca.c:1033,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/ca.c:1035,1
    - Dst: write_new_certificate
      Src: /src/openssl-1.1.1g/apps/ca.c:1038,1
    - Dst: write_new_certificate
      Src: /src/openssl-1.1.1g/apps/ca.c:1039,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ca.c:1040,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ca.c:1041,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/ca.c:1045,1
    - Dst: rotate_serial
      Src: /src/openssl-1.1.1g/apps/ca.c:1048,1
    - Dst: rotate_index
      Src: /src/openssl-1.1.1g/apps/ca.c:1051,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1054,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:1062,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:1064,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openssl-1.1.1g/apps/ca.c:1069,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:1070,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:1071,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1072,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:1079,1
    - Dst: load_serial
      Src: /src/openssl-1.1.1g/apps/ca.c:1081,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1082,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/apps/ca.c:1087,1
    - Dst: NCONF_get_number
      Src: /src/openssl-1.1.1g/apps/ca.c:1090,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ca.c:1093,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1096,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1102,1
    - Dst: X509_CRL_new
      Src: /src/openssl-1.1.1g/apps/ca.c:1103,1
    - Dst: X509_CRL_set_issuer_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1105,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1105,1
    - Dst: ASN1_TIME_new
      Src: /src/openssl-1.1.1g/apps/ca.c:1108,1
    - Dst: X509_gmtime_adj
      Src: /src/openssl-1.1.1g/apps/ca.c:1110,1
    - Dst: X509_CRL_set1_lastUpdate
      Src: /src/openssl-1.1.1g/apps/ca.c:1111,1
    - Dst: X509_time_adj_ex
      Src: /src/openssl-1.1.1g/apps/ca.c:1112,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ca.c:1114,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1115,1
    - Dst: X509_CRL_set1_nextUpdate
      Src: /src/openssl-1.1.1g/apps/ca.c:1118,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1120,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/apps/ca.c:1122,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/ca.c:1123,1
    - Dst: X509_REVOKED_new
      Src: /src/openssl-1.1.1g/apps/ca.c:1125,1
    - Dst: make_revoked
      Src: /src/openssl-1.1.1g/apps/ca.c:1127,1
    - Dst: BN_hex2bn
      Src: /src/openssl-1.1.1g/apps/ca.c:1132,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/ca.c:1134,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1135,1
    - Dst: X509_REVOKED_set_serialNumber
      Src: /src/openssl-1.1.1g/apps/ca.c:1139,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1140,1
    - Dst: X509_CRL_add0_revoked
      Src: /src/openssl-1.1.1g/apps/ca.c:1141,1
    - Dst: X509_CRL_sort
      Src: /src/openssl-1.1.1g/apps/ca.c:1148,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1152,1
    - Dst: X509V3_set_ctx
      Src: /src/openssl-1.1.1g/apps/ca.c:1158,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:1159,1
    - Dst: X509V3_EXT_CRL_add_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:1162,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/ca.c:1165,1
    - Dst: X509_CRL_add1_ext_i2d
      Src: /src/openssl-1.1.1g/apps/ca.c:1168,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1169,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/apps/ca.c:1171,1
    - Dst: X509_CRL_set_version
      Src: /src/openssl-1.1.1g/apps/ca.c:1176,1
    - Dst: save_serial
      Src: /src/openssl-1.1.1g/apps/ca.c:1182,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1185,1
    - Dst: do_X509_CRL_sign
      Src: /src/openssl-1.1.1g/apps/ca.c:1188,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ca.c:1191,1
    - Dst: PEM_write_bio_X509_CRL
      Src: /src/openssl-1.1.1g/apps/ca.c:1196,1
    - Dst: rotate_serial
      Src: /src/openssl-1.1.1g/apps/ca.c:1200,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1207,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/ca.c:1211,1
    - Dst: do_revoke
      Src: /src/openssl-1.1.1g/apps/ca.c:1216,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1219,1
    - Dst: save_index
      Src: /src/openssl-1.1.1g/apps/ca.c:1221,1
    - Dst: rotate_index
      Src: /src/openssl-1.1.1g/apps/ca.c:1224,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1227,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1234,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ca.c:1235,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ca.c:1236,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ca.c:1237,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1238,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1241,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1242,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1243,1
    - Dst: free_index
      Src: /src/openssl-1.1.1g/apps/ca.c:1244,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1245,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1246,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1247,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1248,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1249,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1250,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/ca.c:1251,1
    CyclomaticComplexity: 372
    EdgeCount: 372
    ICount: 874
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 224
    functionDepth: 7
    functionLinenumber: 224
    functionLinenumberEnd: 1253
    functionName: ca_main
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 0
    functionsReached:
    - app_load_config
    - sk_OPENSSL_STRING_free
    - save_index
    - bio_open_default
    - free_index
    - NCONF_get_section
    - OPENSSL_free
    - check_time_format
    - do_updatedb
    - X509V3_EXT_CRL_add_nconf
    - OBJ_nid2sn
    - do_X509_CRL_sign
    - write_new_certificate
    - ASN1_STRING_set_default_mask_asc
    - OPENSSL_strlcat
    - BN_to_ASN1_INTEGER
    - X509_CRL_set_issuer_name
    - OPENSSL_strlcpy
    - certify
    - X509V3_set_ctx
    - BN_bn2hex
    - ASN1_TIME_new
    - make_revoked
    - sk_OPENSSL_STRING_push
    - X509_check_private_key
    - BIO_free_all
    - fgets
    - X509_gmtime_adj
    - save_serial
    - sk_X509_num
    - certify_spkac
    - EVP_md_null
    - PEM_write_bio_X509_CRL
    - load_cert
    - lookup_conf
    - atoi
    - STACK_OF
    - OBJ_create_objects
    - get_nameopt
    - rand_serial
    - opt_rand
    - rotate_index
    - X509_get_subject_name
    - perror
    - sk_OPENSSL_STRING_new_null
    - add_oid_section
    - EVP_MD_type
    - app_isdir
    - NCONF_free
    - X509_CRL_sort
    - X509_CRL_add0_revoked
    - X509_CRL_free
    - load_serial
    - BIO_puts
    - ERR_clear_error
    - BIO_free
    - set_cert_ex
    - X509_REVOKED_new
    - ASN1_STRING_get0_data
    - ASN1_TIME_free
    - _UC
    - rotate_serial
    - sk_X509_push
    - opt_rest
    - X509V3_set_ctx_test
    - BIO_printf
    - EVP_PKEY_free
    - sk_OPENSSL_PSTRING_num
    - ERR_print_errors
    - opt_format
    - strlen
    - BN_add_word
    - X509_CRL_set_version
    - X509_get_serialNumber
    - EVP_PKEY_get_default_digest_nid
    - OPENSSL_cleanse
    - NCONF_get_string
    - X509V3_EXT_add_nconf
    - X509_free
    - sk_OPENSSL_PSTRING_value
    - strcmp
    - X509_REVOKED_set_serialNumber
    - opt_next
    - BN_free
    - isxdigit
    - get_certificate_status
    - BN_new
    - atol
    - release_engine
    - BN_is_zero
    - opt_help
    - OBJ_nid2ln
    - load_index
    - index_index
    - opt_md
    - sk_X509_new_null
    - NCONF_get_number
    - TXT_DB_write
    - opt_init
    - app_load_modules
    - X509_CRL_set1_nextUpdate
    - X509_CRL_set1_lastUpdate
    - X509_CRL_add1_ext_i2d
    - X509V3_set_nconf
    - X509_CRL_new
    - X509_time_adj_ex
    - app_passwd
    - certify_cert
    - BN_hex2bn
    - set_ext_copy
    - ASN1_STRING_length
    - opt_arg
    - set_nameopt
    - load_key
    - app_RAND_load_conf
    - parse_yesno
    - sk_X509_pop_free
    - BIO_new_file
    - BIO_flush
    - setup_engine
    - opt_num_rest
    - ASN1_INTEGER_free
    - do_revoke
    - ASN1_TIME_set_string_X509
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int ca_main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ca.c:1257,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conf
    - section
    - tag
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1255
    functionDepth: 2
    functionLinenumber: 1255
    functionLinenumberEnd: 1261
    functionName: lookup_conf
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - BIO_printf
    linkageType: ''
    returnType: char
    signature: char *lookup_conf(const CONF *conf, const char *section, const char
      *tag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ca.c:1278,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1280,1
    - Dst: PEM_read_bio_X509_REQ
      Src: /src/openssl-1.1.1g/apps/ca.c:1283,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1284,1
    - Dst: X509_REQ_print_ex
      Src: /src/openssl-1.1.1g/apps/ca.c:1289,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1291,1
    - Dst: X509_REQ_check_private_key
      Src: /src/openssl-1.1.1g/apps/ca.c:1293,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1294,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/ca.c:1299,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1300,1
    - Dst: X509_REQ_verify
      Src: /src/openssl-1.1.1g/apps/ca.c:1303,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1307,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1308,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1313,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1315,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1318,1
    - Dst: do_body
      Src: /src/openssl-1.1.1g/apps/ca.c:1321,1
    - Dst: X509_REQ_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1327,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1328,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 25
    argNames:
    - xret
    - infile
    - pkey
    - x509
    - dgst
    - sigopts
    - policy
    - db
    - serial
    - subj
    - chtype
    - multirdn
    - email_dn
    - startdate
    - enddate
    - days
    - batch
    - ext_sect
    - lconf
    - verbose
    - certopt
    - nameopt
    - default_op
    - ext_copy
    - selfsign
    argTypes:
    - X509**
    - char*
    - EVP_PKEY*
    - X509*
    - EVP_MD*
    - STACK_OF*
    - STACK_OF*
    - CA_DB*
    - BIGNUM*
    - char*
    - unsigned long
    - int
    - int
    - char*
    - char*
    - long
    - int
    - char*
    - CONF*
    - int
    - unsigned long
    - unsigned long
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1263
    functionDepth: 8
    functionLinenumber: 1263
    functionLinenumberEnd: 1330
    functionName: certify
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - X509_REQ_get0_pubkey
    - X509_REQ_free
    - PEM_read_bio_X509_REQ
    - X509_REQ_check_private_key
    - X509_REQ_verify
    - X509_REQ_print_ex
    - ERR_print_errors
    - BIO_free
    - BIO_printf
    - do_body
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: "int certify(X509 **xret, const char *infile, EVP_PKEY *pkey, X509
      *x509,\n                   const EVP_MD *dgst, STACK_OF(OPENSSL_STRING) *sigopts,\n
      \                  STACK_OF(CONF_VALUE) *policy, CA_DB *db,\n                   BIGNUM
      *serial, const char *subj, unsigned long chtype,\n                   int multirdn,
      int email_dn, const char *startdate,\n                   const char *enddate,\n
      \                  long days, int batch, const char *ext_sect, CONF *lconf,\n
      \                  int verbose, unsigned long certopt, unsigned long nameopt,\n
      \                  int default_op, int ext_copy, int selfsign)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/ca.c:1346,1
    - Dst: X509_print
      Src: /src/openssl-1.1.1g/apps/ca.c:1349,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1351,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/ca.c:1353,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1354,1
    - Dst: X509_verify
      Src: /src/openssl-1.1.1g/apps/ca.c:1357,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1360,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1365,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1368,1
    - Dst: X509_to_X509_REQ
      Src: /src/openssl-1.1.1g/apps/ca.c:1371,1
    - Dst: do_body
      Src: /src/openssl-1.1.1g/apps/ca.c:1374,1
    - Dst: X509_REQ_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1380,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 24
    argNames:
    - xret
    - infile
    - pkey
    - x509
    - dgst
    - sigopts
    - policy
    - db
    - serial
    - subj
    - chtype
    - multirdn
    - email_dn
    - startdate
    - enddate
    - days
    - batch
    - ext_sect
    - lconf
    - verbose
    - certopt
    - nameopt
    - default_op
    - ext_copy
    argTypes:
    - X509**
    - char*
    - EVP_PKEY*
    - X509*
    - EVP_MD*
    - STACK_OF*
    - STACK_OF*
    - CA_DB*
    - BIGNUM*
    - char*
    - unsigned long
    - int
    - int
    - char*
    - char*
    - long
    - int
    - char*
    - CONF*
    - int
    - unsigned long
    - unsigned long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1383
    functionName: certify_cert
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - X509_free
    - X509_REQ_free
    - X509_print
    - do_body
    - X509_verify
    - X509_to_X509_REQ
    - BIO_printf
    - X509_get0_pubkey
    - load_cert
    linkageType: ''
    returnType: int
    signature: "int certify_cert(X509 **xret, const char *infile, EVP_PKEY *pkey,
      X509 *x509,\n                        const EVP_MD *dgst, STACK_OF(OPENSSL_STRING)
      *sigopts,\n                        STACK_OF(CONF_VALUE) *policy, CA_DB *db,\n
      \                       BIGNUM *serial, const char *subj, unsigned long chtype,\n
      \                       int multirdn, int email_dn, const char *startdate,\n
      \                       const char *enddate, long days, int batch, const char
      *ext_sect,\n                        CONF *lconf, int verbose, unsigned long
      certopt,\n                        unsigned long nameopt, int default_op, int
      ext_copy)"
  - BBCount: 92
    BranchProfiles: []
    Callsites:
    - Dst: parse_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1413,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1416,1
    - Dst: X509_REQ_set_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1419,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1420,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1424,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1426,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-1.1.1g/apps/ca.c:1427,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/apps/ca.c:1428,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/apps/ca.c:1429,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/openssl-1.1.1g/apps/ca.c:1430,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/apps/ca.c:1431,1
    - Dst: ASN1_UNIVERSALSTRING_to_string
      Src: /src/openssl-1.1.1g/apps/ca.c:1437,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1453,1
    - Dst: ASN1_PRINTABLE_type
      Src: /src/openssl-1.1.1g/apps/ca.c:1458,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1462,1
    - Dst: old_entry_print
      Src: /src/openssl-1.1.1g/apps/ca.c:1469,1
    - Dst: X509_NAME_new
      Src: /src/openssl-1.1.1g/apps/ca.c:1473,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1474,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/apps/ca.c:1480,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/apps/ca.c:1482,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1482,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/apps/ca.c:1487,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/apps/ca.c:1488,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-1.1.1g/apps/ca.c:1489,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1490,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/apps/ca.c:1495,1
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openssl-1.1.1g/apps/ca.c:1502,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/apps/ca.c:1508,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ca.c:1513,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ca.c:1516,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1518,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ca.c:1525,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1529,1
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openssl-1.1.1g/apps/ca.c:1538,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1540,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-1.1.1g/apps/ca.c:1546,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/apps/ca.c:1547,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-1.1.1g/apps/ca.c:1548,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-1.1.1g/apps/ca.c:1550,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1554,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1563,1
    - Dst: X509_NAME_add_entry
      Src: /src/openssl-1.1.1g/apps/ca.c:1570,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1571,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1581,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/apps/ca.c:1583,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1590,1
    - Dst: X509_new
      Src: /src/openssl-1.1.1g/apps/ca.c:1593,1
    - Dst: X509_set_version
      Src: /src/openssl-1.1.1g/apps/ca.c:1598,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/ca.c:1602,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/apps/ca.c:1602,1
    - Dst: X509_set_issuer_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1605,1
    - Dst: X509_set_issuer_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1608,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1608,1
    - Dst: set_cert_times
      Src: /src/openssl-1.1.1g/apps/ca.c:1612,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-1.1.1g/apps/ca.c:1618,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-1.1.1g/apps/ca.c:1618,1
    - Dst: X509_set_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1623,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/ca.c:1626,1
    - Dst: X509_set_pubkey
      Src: /src/openssl-1.1.1g/apps/ca.c:1627,1
    - Dst: X509V3_set_ctx
      Src: /src/openssl-1.1.1g/apps/ca.c:1637,1
    - Dst: X509V3_set_ctx
      Src: /src/openssl-1.1.1g/apps/ca.c:1639,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1643,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:1646,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:1652,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1653,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1656,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1660,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:1664,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/ca.c:1666,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1667,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1670,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1675,1
    - Dst: copy_extensions
      Src: /src/openssl-1.1.1g/apps/ca.c:1682,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1683,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1684,1
    - Dst: X509_get0_extensions
      Src: /src/openssl-1.1.1g/apps/ca.c:1689,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/apps/ca.c:1691,1
    - Dst: X509_set_version
      Src: /src/openssl-1.1.1g/apps/ca.c:1693,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1698,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-1.1.1g/apps/ca.c:1710,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1711,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-1.1.1g/apps/ca.c:1715,1
    - Dst: X509_NAME_delete_entry
      Src: /src/openssl-1.1.1g/apps/ca.c:1718,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1719,1
    - Dst: X509_set_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1722,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1723,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1726,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-1.1.1g/apps/ca.c:1729,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1729,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1731,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/apps/ca.c:1735,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ca.c:1736,1
    - Dst: BN_bn2hex
      Src: /src/openssl-1.1.1g/apps/ca.c:1738,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1740,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1750,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ca.c:1751,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1753,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openssl-1.1.1g/apps/ca.c:1761,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1763,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openssl-1.1.1g/apps/ca.c:1769,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1771,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1774,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1780,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1789,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1794,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1799,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1803,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1807,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1811,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1817,1
    - Dst: X509_print_ex
      Src: /src/openssl-1.1.1g/apps/ca.c:1822,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1825,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/apps/ca.c:1826,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-1.1.1g/apps/ca.c:1826,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1828,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1829,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1833,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/ca.c:1834,1
    - Dst: fgets
      Src: /src/openssl-1.1.1g/apps/ca.c:1836,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1837,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1843,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/ca.c:1849,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-1.1.1g/apps/ca.c:1850,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-1.1.1g/apps/ca.c:1851,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/apps/ca.c:1852,1
    - Dst: do_X509_sign
      Src: /src/openssl-1.1.1g/apps/ca.c:1854,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ca.c:1858,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-1.1.1g/apps/ca.c:1859,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ca.c:1860,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/ca.c:1861,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ca.c:1864,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1867,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ca.c:1871,1
    - Dst: TXT_DB_insert
      Src: /src/openssl-1.1.1g/apps/ca.c:1876,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1877,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1878,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1886,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1888,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1890,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1891,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ca.c:1893,1
    CyclomaticComplexity: 154
    EdgeCount: 154
    ICount: 383
    argCount: 25
    argNames:
    - xret
    - pkey
    - x509
    - dgst
    - sigopts
    - policy
    - db
    - serial
    - subj
    - chtype
    - multirdn
    - email_dn
    - startdate
    - enddate
    - days
    - batch
    - verbose
    - req
    - ext_sect
    - lconf
    - certopt
    - nameopt
    - default_op
    - ext_copy
    - selfsign
    argTypes:
    - X509**
    - EVP_PKEY*
    - X509*
    - EVP_MD*
    - STACK_OF*
    - STACK_OF*
    - CA_DB*
    - BIGNUM*
    - char*
    - unsigned long
    - int
    - int
    - char*
    - char*
    - long
    - int
    - int
    - X509_REQ*
    - char*
    - CONF*
    - unsigned long
    - unsigned long
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1385
    functionDepth: 8
    functionLinenumber: 1385
    functionLinenumberEnd: 1897
    functionName: do_body
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 2
    functionsReached:
    - X509_set_subject_name
    - ASN1_UNIVERSALSTRING_to_string
    - X509_NAME_oneline
    - old_entry_print
    - sk_CONF_VALUE_num
    - X509_get_serialNumber
    - ASN1_PRINTABLE_type
    - X509_NAME_dup
    - X509_NAME_get_index_by_OBJ
    - X509V3_set_nconf
    - X509_get0_extensions
    - X509_get_subject_name
    - X509_get0_pubkey
    - X509_NAME_ENTRY_get_data
    - X509_REQ_set_subject_name
    - X509_REQ_get_subject_name
    - copy_extensions
    - X509_new
    - X509V3_EXT_add_nconf
    - X509_NAME_delete_entry
    - X509_get0_notAfter
    - X509_free
    - X509_NAME_ENTRY_free
    - strcmp
    - OPENSSL_free
    - do_X509_sign
    - memcpy
    - X509_set_version
    - ASN1_TIME_diff
    - ASN1_TIME_print
    - EVP_PKEY_copy_parameters
    - OBJ_nid2obj
    - EVP_PKEY_missing_parameters
    - app_malloc
    - set_cert_times
    - X509_print_ex
    - X509_set_issuer_name
    - BN_to_ASN1_INTEGER
    - X509_NAME_entry_count
    - OBJ_txt2nid
    - X509_set_pubkey
    - OPENSSL_strdup
    - sk_CONF_VALUE_value
    - X509V3_set_ctx
    - X509_NAME_get_index_by_NID
    - BN_is_zero
    - OBJ_obj2nid
    - BN_bn2hex
    - BIO_flush
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_object
    - fgets
    - X509_REQ_get0_pubkey
    - TXT_DB_insert
    - X509_NAME_new
    - ASN1_STRING_cmp
    - X509_NAME_add_entry
    - X509_NAME_free
    - BIO_printf
    - parse_name
    - ERR_print_errors
    - TXT_DB_get_by_index
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: "int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,\n                   const
      EVP_MD *dgst, STACK_OF(OPENSSL_STRING) *sigopts,\n                   STACK_OF(CONF_VALUE)
      *policy, CA_DB *db, BIGNUM *serial,\n                   const char *subj, unsigned
      long chtype, int multirdn,\n                   int email_dn, const char *startdate,
      const char *enddate, long days,\n                   int batch, int verbose,
      X509_REQ *req, const char *ext_sect,\n                   CONF *lconf, unsigned
      long certopt, unsigned long nameopt,\n                   int default_op, int
      ext_copy, int selfsign)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_bio
      Src: /src/openssl-1.1.1g/apps/ca.c:1903,1
    - Dst: X509_print
      Src: /src/openssl-1.1.1g/apps/ca.c:1907,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/ca.c:1908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - bp
    - x
    - output_der
    - notext
    argTypes:
    - BIO*
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1899
    functionDepth: 2
    functionLinenumber: 1899
    functionLinenumberEnd: 1909
    functionName: write_new_certificate
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - X509_print
    - i2d_X509_bio
    - PEM_write_bio_X509
    linkageType: ''
    returnType: void
    signature: void write_new_certificate(BIO *bp, X509 *x, int output_der, int notext)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ca.c:1921,1
    - Dst: LHASH_OF
      Src: /src/openssl-1.1.1g/apps/ca.c:1922,1
    - Dst: CONF_load
      Src: /src/openssl-1.1.1g/apps/ca.c:1939,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1941,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1942,1
    - Dst: CONF_get_section
      Src: /src/openssl-1.1.1g/apps/ca.c:1946,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/apps/ca.c:1947,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1948,1
    - Dst: X509_REQ_new
      Src: /src/openssl-1.1.1g/apps/ca.c:1959,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1961,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:1968,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/apps/ca.c:1971,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/apps/ca.c:1974,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-1.1.1g/apps/ca.c:1988,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ca.c:1989,1
    - Dst: NETSCAPE_SPKI_b64_decode
      Src: /src/openssl-1.1.1g/apps/ca.c:1990,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:1992,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ca.c:1994,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openssl-1.1.1g/apps/ca.c:2001,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2006,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2015,1
    - Dst: NETSCAPE_SPKI_get_pubkey
      Src: /src/openssl-1.1.1g/apps/ca.c:2017,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2018,1
    - Dst: NETSCAPE_SPKI_verify
      Src: /src/openssl-1.1.1g/apps/ca.c:2022,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2024,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2025,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2029,1
    - Dst: X509_REQ_set_pubkey
      Src: /src/openssl-1.1.1g/apps/ca.c:2031,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2032,1
    - Dst: do_body
      Src: /src/openssl-1.1.1g/apps/ca.c:2033,1
    - Dst: X509_REQ_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2038,1
    - Dst: CONF_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2039,1
    - Dst: NETSCAPE_SPKI_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2040,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2041,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 23
    argNames:
    - xret
    - infile
    - pkey
    - x509
    - dgst
    - sigopts
    - policy
    - db
    - serial
    - subj
    - chtype
    - multirdn
    - email_dn
    - startdate
    - enddate
    - days
    - ext_sect
    - lconf
    - verbose
    - certopt
    - nameopt
    - default_op
    - ext_copy
    argTypes:
    - X509**
    - char*
    - EVP_PKEY*
    - X509*
    - EVP_MD*
    - STACK_OF*
    - STACK_OF*
    - CA_DB*
    - BIGNUM*
    - char*
    - unsigned long
    - int
    - int
    - char*
    - char*
    - long
    - char*
    - CONF*
    - int
    - unsigned long
    - unsigned long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 1911
    functionDepth: 9
    functionLinenumber: 1911
    functionLinenumberEnd: 2044
    functionName: certify_spkac
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - X509_NAME_add_entry_by_NID
    - NETSCAPE_SPKI_free
    - sk_CONF_VALUE_num
    - STACK_OF
    - CONF_get_section
    - CONF_free
    - X509_REQ_get_subject_name
    - X509_NAME_ENTRY_free
    - strcmp
    - CONF_load
    - NETSCAPE_SPKI_b64_decode
    - X509_REQ_free
    - NETSCAPE_SPKI_get_pubkey
    - X509_REQ_new
    - OBJ_txt2nid
    - NETSCAPE_SPKI_verify
    - sk_CONF_VALUE_value
    - do_body
    - LHASH_OF
    - X509_REQ_set_pubkey
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    linkageType: ''
    returnType: int
    signature: "int certify_spkac(X509 **xret, const char *infile, EVP_PKEY *pkey,\n
      \                        X509 *x509, const EVP_MD *dgst,\n                         STACK_OF(OPENSSL_STRING)
      *sigopts,\n                         STACK_OF(CONF_VALUE) *policy, CA_DB *db,\n
      \                        BIGNUM *serial, const char *subj, unsigned long chtype,\n
      \                        int multirdn, int email_dn, const char *startdate,\n
      \                        const char *enddate, long days, const char *ext_sect,\n
      \                        CONF *lconf, int verbose, unsigned long certopt,\n
      \                        unsigned long nameopt, int default_op, int ext_copy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_set_string
      Src: /src/openssl-1.1.1g/apps/ca.c:2048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2046
    functionDepth: 2
    functionLinenumber: 2046
    functionLinenumberEnd: 2049
    functionName: check_time_format
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - ASN1_TIME_set_string
    linkageType: ''
    returnType: int
    signature: int check_time_format(const char *str)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/openssl-1.1.1g/apps/ca.c:2062,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/ca.c:2062,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/apps/ca.c:2063,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/apps/ca.c:2063,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/apps/ca.c:2066,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ca.c:2067,1
    - Dst: BN_bn2hex
      Src: /src/openssl-1.1.1g/apps/ca.c:2069,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2070,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2073,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ca.c:2074,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2077,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openssl-1.1.1g/apps/ca.c:2084,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2086,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ca.c:2091,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-1.1.1g/apps/ca.c:2092,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ca.c:2093,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/ca.c:2094,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ca.c:2097,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2100,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ca.c:2104,1
    - Dst: TXT_DB_insert
      Src: /src/openssl-1.1.1g/apps/ca.c:2109,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2110,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2112,1
    - Dst: do_revoke
      Src: /src/openssl-1.1.1g/apps/ca.c:2124,1
    - Dst: index_name_cmp_noconst
      Src: /src/openssl-1.1.1g/apps/ca.c:2128,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2129,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2132,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2136,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2140,1
    - Dst: make_revocation_str
      Src: /src/openssl-1.1.1g/apps/ca.c:2141,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2143,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2153,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 4
    argNames:
    - x509
    - db
    - rev_type
    - value
    argTypes:
    - X509*
    - CA_DB*
    - REVINFO_TYPE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2051
    functionDepth: 6
    functionLinenumber: 2051
    functionLinenumberEnd: 2155
    functionName: do_revoke
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 2
    functionsReached:
    - make_revocation_str
    - X509_get0_notAfter
    - app_malloc
    - TXT_DB_insert
    - BN_bn2hex
    - X509_NAME_oneline
    - OPENSSL_free
    - BIO_printf
    - index_name_cmp_noconst
    - X509_get_serialNumber
    - memcpy
    - OPENSSL_strdup
    - BN_free
    - do_revoke
    - BN_is_zero
    - X509_get_subject_name
    - TXT_DB_get_by_index
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: int
    signature: "int do_revoke(X509 *x509, CA_DB *db, REVINFO_TYPE rev_type,\n                     const
      char *value)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/ca.c:2161,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ca.c:2168,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/ca.c:2177,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/ca.c:2181,1
    - Dst: make_uppercase
      Src: /src/openssl-1.1.1g/apps/ca.c:2186,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openssl-1.1.1g/apps/ca.c:2191,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2193,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2197,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2201,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2205,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2209,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2219,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - serial
    - db
    argTypes:
    - char*
    - CA_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2157
    functionDepth: 2
    functionLinenumber: 2157
    functionLinenumberEnd: 2222
    functionName: get_certificate_status
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - app_malloc
    - OPENSSL_free
    - memcpy
    - BIO_printf
    - make_uppercase
    - TXT_DB_get_by_index
    - strlen
    linkageType: ''
    returnType: int
    signature: int get_certificate_status(const char *serial, CA_DB *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTCTIME_new
      Src: /src/openssl-1.1.1g/apps/ca.c:2231,1
    - Dst: X509_gmtime_adj
      Src: /src/openssl-1.1.1g/apps/ca.c:2236,1
    - Dst: ASN1_UTCTIME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2237,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ca.c:2240,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/ca.c:2242,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/ca.c:2245,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/apps/ca.c:2250,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/ca.c:2251,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/ca.c:2255,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/ca.c:2262,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2267,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2274,1
    - Dst: ASN1_UTCTIME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2280,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2281,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 1
    argNames:
    - db
    argTypes:
    - CA_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2224
    functionDepth: 2
    functionLinenumber: 2224
    functionLinenumberEnd: 2283
    functionName: do_updatedb
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - app_malloc
    - sk_OPENSSL_PSTRING_value
    - strcmp
    - OPENSSL_free
    - X509_gmtime_adj
    - memcpy
    - BIO_printf
    - ASN1_UTCTIME_new
    - sk_OPENSSL_PSTRING_num
    - strncmp
    - ASN1_UTCTIME_free
    linkageType: ''
    returnType: int
    signature: int do_updatedb(CA_DB *db)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/ca.c:2325,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2331,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/apps/ca.c:2338,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2339,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2342,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-1.1.1g/apps/ca.c:2353,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2354,1
    - Dst: X509_gmtime_adj
      Src: /src/openssl-1.1.1g/apps/ca.c:2368,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/ca.c:2376,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/ca.c:2378,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ca.c:2380,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/apps/ca.c:2381,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/ca.c:2383,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/ca.c:2384,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/ca.c:2387,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-1.1.1g/apps/ca.c:2388,1
    - Dst: ASN1_UTCTIME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2390,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 2
    argNames:
    - rev_type
    - rev_arg
    argTypes:
    - REVINFO_TYPE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2310
    functionDepth: 7
    functionLinenumber: 2310
    functionLinenumberEnd: 2392
    functionName: make_revocation_str
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - app_malloc
    - OPENSSL_strlcat
    - ASN1_OBJECT_free
    - X509_gmtime_adj
    - OBJ_txt2obj
    - OPENSSL_strlcpy
    - ASN1_GENERALIZEDTIME_set_string
    - BIO_printf
    - strcasecmp
    - strlen
    - ASN1_UTCTIME_free
    linkageType: ''
    returnType: char
    signature: char *make_revocation_str(REVINFO_TYPE rev_type, const char *rev_arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unpack_revinfo
      Src: /src/openssl-1.1.1g/apps/ca.c:2413,1
    - Dst: X509_REVOKED_set_revocationDate
      Src: /src/openssl-1.1.1g/apps/ca.c:2418,1
    - Dst: ASN1_ENUMERATED_new
      Src: /src/openssl-1.1.1g/apps/ca.c:2422,1
    - Dst: ASN1_ENUMERATED_set
      Src: /src/openssl-1.1.1g/apps/ca.c:2423,1
    - Dst: X509_REVOKED_add1_ext_i2d
      Src: /src/openssl-1.1.1g/apps/ca.c:2425,1
    - Dst: X509_REVOKED_add1_ext_i2d
      Src: /src/openssl-1.1.1g/apps/ca.c:2430,1
    - Dst: X509_REVOKED_add1_ext_i2d
      Src: /src/openssl-1.1.1g/apps/ca.c:2435,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2447,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2448,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2449,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2450,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2451,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 2
    argNames:
    - rev
    - str
    argTypes:
    - X509_REVOKED*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2402
    functionDepth: 5
    functionLinenumber: 2402
    functionLinenumberEnd: 2454
    functionName: make_revoked
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - ASN1_ENUMERATED_set
    - X509_REVOKED_set_revocationDate
    - ASN1_GENERALIZEDTIME_free
    - ASN1_ENUMERATED_free
    - OPENSSL_free
    - ASN1_OBJECT_free
    - unpack_revinfo
    - ASN1_TIME_free
    - X509_REVOKED_add1_ext_i2d
    - ASN1_ENUMERATED_new
    linkageType: ''
    returnType: int
    signature: int make_revoked(X509_REVOKED *rev, const char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/apps/ca.c:2462,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ca.c:2468,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2471,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2473,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2475,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2477,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2479,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2484,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2486,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2488,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2490,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2493,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - obj
    - str
    argTypes:
    - ASN1_OBJECT*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2456
    functionDepth: 5
    functionLinenumber: 2456
    functionLinenumberEnd: 2495
    functionName: old_entry_print
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    - i2a_ASN1_OBJECT
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int old_entry_print(const ASN1_OBJECT *obj, const ASN1_STRING *str)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ca.c:2508,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2510,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/ca.c:2514,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/ca.c:2522,1
    - Dst: ASN1_UTCTIME_new
      Src: /src/openssl-1.1.1g/apps/ca.c:2530,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2532,1
    - Dst: ASN1_UTCTIME_set_string
      Src: /src/openssl-1.1.1g/apps/ca.c:2535,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2536,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/ca.c:2542,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2548,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2556,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/apps/ca.c:2560,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2563,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2569,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2572,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-1.1.1g/apps/ca.c:2575,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2577,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-1.1.1g/apps/ca.c:2580,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ca.c:2581,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2602,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-1.1.1g/apps/ca.c:2603,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 98
    argCount: 5
    argNames:
    - prevtm
    - preason
    - phold
    - pinvtm
    - str
    argTypes:
    - ASN1_TIME**
    - int*
    - ASN1_OBJECT**
    - ASN1_GENERALIZEDTIME**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2497
    functionDepth: 7
    functionLinenumber: 2497
    functionLinenumberEnd: 2606
    functionName: unpack_revinfo
    functionSourceFile: /src/openssl-1.1.1g/apps/ca.c
    functionUses: 1
    functionsReached:
    - ASN1_GENERALIZEDTIME_free
    - OPENSSL_free
    - strchr
    - ASN1_OBJECT_free
    - ASN1_UTCTIME_set_string
    - OPENSSL_strdup
    - OBJ_txt2obj
    - ASN1_GENERALIZEDTIME_new
    - ASN1_GENERALIZEDTIME_set_string
    - BIO_printf
    - ASN1_UTCTIME_new
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: "int unpack_revinfo(ASN1_TIME **prevtm, int *preason, ASN1_OBJECT **phold,\n
      \                  ASN1_GENERALIZEDTIME **pinvtm, const char *str)"
  - BBCount: 166
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/x509.c:161,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/x509.c:162,1
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/apps/x509.c:191,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openssl-1.1.1g/apps/x509.c:194,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/x509.c:196,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/x509.c:197,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:202,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/x509.c:205,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/x509.c:209,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:209,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:213,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/x509.c:216,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:216,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/x509.c:220,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:220,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/x509.c:224,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:224,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/x509.c:228,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:228,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:232,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/x509.c:240,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/x509.c:241,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:241,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/x509.c:247,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:247,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:250,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:253,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/x509.c:256,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:260,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:263,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:267,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:271,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:274,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:278,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/x509.c:281,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:281,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:285,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/apps/x509.c:288,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:288,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:289,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:291,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-1.1.1g/apps/x509.c:294,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-1.1.1g/apps/x509.c:296,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/apps/x509.c:301,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:301,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:302,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:304,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-1.1.1g/apps/x509.c:308,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-1.1.1g/apps/x509.c:310,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:315,1
    - Dst: set_cert_ex
      Src: /src/openssl-1.1.1g/apps/x509.c:319,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:319,1
    - Dst: set_nameopt
      Src: /src/openssl-1.1.1g/apps/x509.c:323,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:323,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/x509.c:327,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:327,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:385,1
    - Dst: opt_imax
      Src: /src/openssl-1.1.1g/apps/x509.c:434,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:434,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:438,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:439,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:445,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:448,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/x509.c:451,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/x509.c:459,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/x509.c:459,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/x509.c:463,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/x509.c:464,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:466,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/x509.c:470,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:471,1
    - Dst: X509_STORE_set_default_paths
      Src: /src/openssl-1.1.1g/apps/x509.c:475,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:476,1
    - Dst: load_pubkey
      Src: /src/openssl-1.1.1g/apps/x509.c:481,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:489,1
    - Dst: app_load_config
      Src: /src/openssl-1.1.1g/apps/x509.c:496,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/x509.c:499,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/x509.c:501,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openssl-1.1.1g/apps/x509.c:505,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/x509.c:506,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/x509.c:507,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:508,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:510,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:520,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/x509.c:523,1
    - Dst: PEM_read_bio_X509_REQ
      Src: /src/openssl-1.1.1g/apps/x509.c:526,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/x509.c:527,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:530,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/x509.c:534,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:535,1
    - Dst: X509_REQ_verify
      Src: /src/openssl-1.1.1g/apps/x509.c:538,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:540,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:541,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:545,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:549,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/x509.c:552,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:552,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/x509.c:553,1
    - Dst: X509_new
      Src: /src/openssl-1.1.1g/apps/x509.c:555,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/apps/x509.c:559,1
    - Dst: rand_serial
      Src: /src/openssl-1.1.1g/apps/x509.c:560,1
    - Dst: X509_set_serialNumber
      Src: /src/openssl-1.1.1g/apps/x509.c:562,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/x509.c:564,1
    - Dst: X509_set_serialNumber
      Src: /src/openssl-1.1.1g/apps/x509.c:566,1
    - Dst: X509_set_issuer_name
      Src: /src/openssl-1.1.1g/apps/x509.c:570,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:570,1
    - Dst: X509_set_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:572,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:572,1
    - Dst: set_cert_times
      Src: /src/openssl-1.1.1g/apps/x509.c:574,1
    - Dst: X509_set_pubkey
      Src: /src/openssl-1.1.1g/apps/x509.c:578,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/x509.c:580,1
    - Dst: X509_set_pubkey
      Src: /src/openssl-1.1.1g/apps/x509.c:581,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/x509.c:584,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/x509.c:590,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/x509.c:595,1
    - Dst: OBJ_create
      Src: /src/openssl-1.1.1g/apps/x509.c:600,1
    - Dst: X509_alias_set1
      Src: /src/openssl-1.1.1g/apps/x509.c:603,1
    - Dst: X509_trust_clear
      Src: /src/openssl-1.1.1g/apps/x509.c:606,1
    - Dst: X509_reject_clear
      Src: /src/openssl-1.1.1g/apps/x509.c:608,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/apps/x509.c:611,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/apps/x509.c:612,1
    - Dst: X509_add1_trust_object
      Src: /src/openssl-1.1.1g/apps/x509.c:613,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-1.1.1g/apps/x509.c:619,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-1.1.1g/apps/x509.c:620,1
    - Dst: X509_add1_reject_object
      Src: /src/openssl-1.1.1g/apps/x509.c:621,1
    - Dst: X509_get0_signature
      Src: /src/openssl-1.1.1g/apps/x509.c:629,1
    - Dst: corrupt_signature
      Src: /src/openssl-1.1.1g/apps/x509.c:630,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/x509.c:636,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/apps/x509.c:636,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/x509.c:636,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/x509.c:638,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:639,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/x509.c:639,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:641,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/x509.c:642,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/apps/x509.c:642,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:643,1
    - Dst: X509_get_serialNumber
      Src: /src/openssl-1.1.1g/apps/x509.c:645,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/apps/x509.c:646,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/apps/x509.c:650,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/x509.c:652,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/x509.c:655,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/x509.c:656,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/x509.c:657,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/x509.c:658,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/x509.c:661,1
    - Dst: X509_get1_email
      Src: /src/openssl-1.1.1g/apps/x509.c:663,1
    - Dst: X509_get1_ocsp
      Src: /src/openssl-1.1.1g/apps/x509.c:665,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/x509.c:666,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:667,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/x509.c:668,1
    - Dst: X509_email_free
      Src: /src/openssl-1.1.1g/apps/x509.c:669,1
    - Dst: X509_alias_get0
      Src: /src/openssl-1.1.1g/apps/x509.c:672,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:674,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/x509.c:676,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:678,1
    - Dst: X509_subject_name_hash
      Src: /src/openssl-1.1.1g/apps/x509.c:678,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:682,1
    - Dst: X509_subject_name_hash_old
      Src: /src/openssl-1.1.1g/apps/x509.c:682,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:686,1
    - Dst: X509_issuer_name_hash
      Src: /src/openssl-1.1.1g/apps/x509.c:686,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:690,1
    - Dst: X509_issuer_name_hash_old
      Src: /src/openssl-1.1.1g/apps/x509.c:690,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:696,1
    - Dst: X509_PURPOSE_get_count
      Src: /src/openssl-1.1.1g/apps/x509.c:697,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-1.1.1g/apps/x509.c:698,1
    - Dst: purpose_print
      Src: /src/openssl-1.1.1g/apps/x509.c:699,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/x509.c:704,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:706,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:707,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:710,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/apps/x509.c:712,1
    - Dst: RSA_get0_key
      Src: /src/openssl-1.1.1g/apps/x509.c:714,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/apps/x509.c:714,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/apps/x509.c:715,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/apps/x509.c:719,1
    - Dst: DSA_get0_key
      Src: /src/openssl-1.1.1g/apps/x509.c:721,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-1.1.1g/apps/x509.c:721,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/apps/x509.c:722,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:726,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:728,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/x509.c:732,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:734,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:735,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openssl-1.1.1g/apps/x509.c:738,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/x509.c:744,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:745,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/x509.c:745,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/x509.c:746,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/apps/x509.c:746,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/x509.c:746,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/x509.c:747,1
    - Dst: i2d_X509
      Src: /src/openssl-1.1.1g/apps/x509.c:749,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/x509.c:750,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/apps/x509.c:752,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:752,1
    - Dst: print_array
      Src: /src/openssl-1.1.1g/apps/x509.c:753,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openssl-1.1.1g/apps/x509.c:755,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-1.1.1g/apps/x509.c:755,1
    - Dst: print_array
      Src: /src/openssl-1.1.1g/apps/x509.c:756,1
    - Dst: i2d_X509
      Src: /src/openssl-1.1.1g/apps/x509.c:758,1
    - Dst: print_array
      Src: /src/openssl-1.1.1g/apps/x509.c:759,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/x509.c:760,1
    - Dst: X509_print_ex
      Src: /src/openssl-1.1.1g/apps/x509.c:762,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/x509.c:762,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/x509.c:764,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/apps/x509.c:765,1
    - Dst: X509_get0_notBefore
      Src: /src/openssl-1.1.1g/apps/x509.c:765,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/x509.c:766,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/x509.c:768,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/apps/x509.c:769,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-1.1.1g/apps/x509.c:769,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/x509.c:770,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/apps/x509.c:778,1
    - Dst: X509_digest
      Src: /src/openssl-1.1.1g/apps/x509.c:780,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:781,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:784,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/x509.c:785,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/apps/x509.c:785,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:787,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:794,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/x509.c:796,1
    - Dst: sign
      Src: /src/openssl-1.1.1g/apps/x509.c:802,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:805,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/x509.c:807,1
    - Dst: x509_certify
      Src: /src/openssl-1.1.1g/apps/x509.c:813,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:821,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:823,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/x509.c:826,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:832,1
    - Dst: X509_to_X509_REQ
      Src: /src/openssl-1.1.1g/apps/x509.c:834,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/x509.c:835,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:837,1
    - Dst: X509_REQ_print_ex
      Src: /src/openssl-1.1.1g/apps/x509.c:841,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/x509.c:841,1
    - Dst: PEM_write_bio_X509_REQ
      Src: /src/openssl-1.1.1g/apps/x509.c:842,1
    - Dst: X509_ocspid_print
      Src: /src/openssl-1.1.1g/apps/x509.c:846,1
    - Dst: print_x509v3_exts
      Src: /src/openssl-1.1.1g/apps/x509.c:848,1
    - Dst: time
      Src: /src/openssl-1.1.1g/apps/x509.c:854,1
    - Dst: X509_cmp_time
      Src: /src/openssl-1.1.1g/apps/x509.c:856,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-1.1.1g/apps/x509.c:856,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:857,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:860,1
    - Dst: print_cert_checks
      Src: /src/openssl-1.1.1g/apps/x509.c:866,1
    - Dst: i2d_X509_bio
      Src: /src/openssl-1.1.1g/apps/x509.c:874,1
    - Dst: PEM_write_bio_X509_AUX
      Src: /src/openssl-1.1.1g/apps/x509.c:877,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/x509.c:879,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:881,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:885,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:886,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/x509.c:891,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/x509.c:892,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/x509.c:893,1
    - Dst: X509_REQ_free
      Src: /src/openssl-1.1.1g/apps/x509.c:894,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/x509.c:895,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/x509.c:896,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/x509.c:897,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/x509.c:898,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/x509.c:899,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/x509.c:900,1
    - Dst: X509_REQ_free
      Src: /src/openssl-1.1.1g/apps/x509.c:901,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/x509.c:902,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/apps/x509.c:903,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-1.1.1g/apps/x509.c:904,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/apps/x509.c:905,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/x509.c:906,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/x509.c:907,1
    CyclomaticComplexity: 244
    EdgeCount: 244
    ICount: 684
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 154
    functionDepth: 8
    functionLinenumber: 154
    functionLinenumberEnd: 909
    functionName: x509_main
    functionSourceFile: /src/openssl-1.1.1g/apps/x509.c
    functionUses: 0
    functionsReached:
    - app_load_config
    - sk_OPENSSL_STRING_free
    - EVP_PKEY_get0_DSA
    - X509_PURPOSE_get0
    - bio_open_default
    - X509_new
    - i2d_X509_PUBKEY
    - print_cert_checks
    - OPENSSL_free
    - x509_certify
    - X509_issuer_name_hash_old
    - X509_issuer_name_hash
    - ASN1_INTEGER_to_BN
    - OBJ_nid2sn
    - app_malloc
    - set_cert_times
    - print_name
    - BN_to_ASN1_INTEGER
    - i2d_X509
    - BIO_free_all
    - sk_OPENSSL_STRING_push
    - PEM_write_bio_X509_AUX
    - print_array
    - PEM_write_bio_X509
    - X509_trust_clear
    - load_cert
    - ASN1_INTEGER_new
    - sign
    - X509_STORE_set_default_paths
    - atoi
    - STACK_OF
    - get_nameopt
    - rand_serial
    - opt_rand
    - X509_get_issuer_name
    - X509_get_subject_name
    - X509_get0_pubkey
    - sk_OPENSSL_STRING_new_null
    - X509_get0_notAfter
    - EVP_MD_type
    - print_x509v3_exts
    - X509_get0_signature
    - NCONF_free
    - X509_subject_name_hash
    - PEM_write_bio_PUBKEY
    - X509_set_serialNumber
    - BIO_puts
    - X509_get0_notBefore
    - ERR_clear_error
    - BIO_free
    - X509_REQ_verify
    - EVP_PKEY_get0_RSA
    - set_cert_ex
    - X509_get1_email
    - X509_PURPOSE_get_count
    - opt_imax
    - i2a_ASN1_INTEGER
    - EVP_sha1
    - load_pubkey
    - PEM_read_bio_X509_REQ
    - X509_REQ_print_ex
    - opt_rest
    - ASN1_OBJECT_free
    - X509V3_set_ctx_test
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    - opt_format
    - X509_print_ex
    - PEM_write_bio_X509_REQ
    - X509_set_subject_name
    - sk_ASN1_OBJECT_new_null
    - BN_add_word
    - X509_get_serialNumber
    - X509_cmp_time
    - DSA_get0_key
    - X509_STORE_new
    - X509_STORE_set_verify_cb
    - X509_REQ_get_subject_name
    - NCONF_get_string
    - X509V3_EXT_add_nconf
    - X509_subject_name_hash_old
    - X509_free
    - sk_OPENSSL_STRING_value
    - opt_next
    - BN_free
    - RSA_get0_key
    - ASN1_TIME_print
    - corrupt_signature
    - X509_digest
    - sk_ASN1_OBJECT_value
    - X509_set_issuer_name
    - X509_email_free
    - X509_get1_ocsp
    - release_engine
    - s2i_ASN1_INTEGER
    - i2d_X509_bio
    - opt_help
    - X509_to_X509_REQ
    - OBJ_create
    - X509_REQ_get0_pubkey
    - opt_md
    - sk_ASN1_OBJECT_num
    - X509_add1_reject_object
    - OBJ_txt2obj
    - X509_set_pubkey
    - X509_get_X509_PUBKEY
    - X509_add1_trust_object
    - opt_init
    - X509_ocspid_print
    - X509V3_set_nconf
    - EVP_PKEY_id
    - i2d_X509_NAME
    - app_passwd
    - X509_reject_clear
    - X509_alias_set1
    - X509_STORE_free
    - sk_ASN1_OBJECT_push
    - opt_unknown
    - opt_arg
    - time
    - set_nameopt
    - sk_ASN1_OBJECT_pop_free
    - X509_REQ_free
    - X509_alias_get0
    - load_key
    - sk_OPENSSL_STRING_num
    - BN_print
    - setup_engine
    - opt_num_rest
    - ASN1_INTEGER_free
    - purpose_print
    linkageType: ''
    returnType: int
    signature: int x509_main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/openssl-1.1.1g/apps/x509.c:919,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/x509.c:920,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/x509.c:922,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/x509.c:923,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/x509.c:924,1
    - Dst: load_serial
      Src: /src/openssl-1.1.1g/apps/x509.c:928,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/apps/x509.c:932,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:933,1
    - Dst: save_serial
      Src: /src/openssl-1.1.1g/apps/x509.c:937,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/x509.c:941,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/x509.c:942,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - CAfile
    - serialfile
    - create
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 911
    functionDepth: 5
    functionLinenumber: 911
    functionLinenumberEnd: 944
    functionName: x509_load_serial
    functionSourceFile: /src/openssl-1.1.1g/apps/x509.c
    functionUses: 0
    functionsReached:
    - strrchr
    - app_malloc
    - BN_add_word
    - OPENSSL_free
    - memcpy
    - save_serial
    - load_serial
    - BN_free
    - BIO_printf
    - strlen
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "ASN1_INTEGER *x509_load_serial(const char *CAfile,\n                                      const
      char *serialfile, int create)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/x509.c:958,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:960,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/apps/x509.c:963,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-1.1.1g/apps/x509.c:965,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/apps/x509.c:966,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:967,1
    - Dst: x509_load_serial
      Src: /src/openssl-1.1.1g/apps/x509.c:972,1
    - Dst: X509_STORE_CTX_set_cert
      Src: /src/openssl-1.1.1g/apps/x509.c:979,1
    - Dst: X509_STORE_CTX_set_flags
      Src: /src/openssl-1.1.1g/apps/x509.c:980,1
    - Dst: X509_verify_cert
      Src: /src/openssl-1.1.1g/apps/x509.c:981,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/apps/x509.c:984,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:985,1
    - Dst: X509_set_issuer_name
      Src: /src/openssl-1.1.1g/apps/x509.c:990,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:990,1
    - Dst: X509_set_serialNumber
      Src: /src/openssl-1.1.1g/apps/x509.c:992,1
    - Dst: set_cert_times
      Src: /src/openssl-1.1.1g/apps/x509.c:995,1
    - Dst: X509_get_ext_count
      Src: /src/openssl-1.1.1g/apps/x509.c:999,1
    - Dst: X509_delete_ext
      Src: /src/openssl-1.1.1g/apps/x509.c:1000,1
    - Dst: X509_set_version
      Src: /src/openssl-1.1.1g/apps/x509.c:1005,1
    - Dst: X509V3_set_ctx
      Src: /src/openssl-1.1.1g/apps/x509.c:1006,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/x509.c:1007,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/x509.c:1008,1
    - Dst: do_X509_sign
      Src: /src/openssl-1.1.1g/apps/x509.c:1012,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/apps/x509.c:1016,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:1018,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/x509.c:1020,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 16
    argNames:
    - ctx
    - CAfile
    - digest
    - x
    - xca
    - pkey
    - sigopts
    - serialfile
    - create
    - days
    - clrext
    - conf
    - section
    - sno
    - reqfile
    - preserve_dates
    argTypes:
    - X509_STORE*
    - char*
    - EVP_MD*
    - X509*
    - X509*
    - EVP_PKEY*
    - STACK_OF*
    - char*
    - int
    - int
    - int
    - CONF*
    - char*
    - ASN1_INTEGER*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 946
    functionDepth: 7
    functionLinenumber: 946
    functionLinenumberEnd: 1022
    functionName: x509_certify
    functionSourceFile: /src/openssl-1.1.1g/apps/x509.c
    functionUses: 1
    functionsReached:
    - X509_STORE_CTX_set_cert
    - x509_load_serial
    - X509V3_set_nconf
    - X509_STORE_CTX_set_flags
    - X509_STORE_CTX_new
    - X509_get_subject_name
    - X509_get0_pubkey
    - X509V3_EXT_add_nconf
    - X509_delete_ext
    - X509_get_ext_count
    - do_X509_sign
    - X509_set_serialNumber
    - X509_set_version
    - EVP_PKEY_copy_parameters
    - set_cert_times
    - X509_STORE_CTX_free
    - X509_verify_cert
    - X509_set_issuer_name
    - X509V3_set_ctx
    - X509_check_private_key
    - X509_STORE_CTX_init
    - ASN1_INTEGER_free
    - BIO_printf
    - ERR_print_errors
    linkageType: ''
    returnType: int
    signature: "int x509_certify(X509_STORE *ctx, const char *CAfile, const EVP_MD
      *digest,\n                        X509 *x, X509 *xca, EVP_PKEY *pkey,\n                        STACK_OF(OPENSSL_STRING)
      *sigopts,\n                        const char *serialfile, int create,\n                        int
      days, int clrext, CONF *conf, const char *section,\n                        ASN1_INTEGER
      *sno, int reqfile, int preserve_dates)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/apps/x509.c:1033,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:1043,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openssl-1.1.1g/apps/x509.c:1047,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/x509.c:1048,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:1048,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:1049,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openssl-1.1.1g/apps/x509.c:1051,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/apps/x509.c:1052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1024
    functionDepth: 2
    functionLinenumber: 1024
    functionLinenumberEnd: 1055
    functionName: callb
    functionSourceFile: /src/openssl-1.1.1g/apps/x509.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_error
    - X509_STORE_CTX_get_error_depth
    - print_name
    - X509_STORE_CTX_get_current_cert
    - BIO_printf
    - X509_get_subject_name
    - X509_verify_cert_error_string
    linkageType: ''
    returnType: int
    signature: int callb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_set_issuer_name
      Src: /src/openssl-1.1.1g/apps/x509.c:1063,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/x509.c:1063,1
    - Dst: set_cert_times
      Src: /src/openssl-1.1.1g/apps/x509.c:1065,1
    - Dst: X509_set_pubkey
      Src: /src/openssl-1.1.1g/apps/x509.c:1067,1
    - Dst: X509_get_ext_count
      Src: /src/openssl-1.1.1g/apps/x509.c:1070,1
    - Dst: X509_delete_ext
      Src: /src/openssl-1.1.1g/apps/x509.c:1071,1
    - Dst: X509_set_version
      Src: /src/openssl-1.1.1g/apps/x509.c:1075,1
    - Dst: X509V3_set_ctx
      Src: /src/openssl-1.1.1g/apps/x509.c:1076,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-1.1.1g/apps/x509.c:1077,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-1.1.1g/apps/x509.c:1078,1
    - Dst: X509_sign
      Src: /src/openssl-1.1.1g/apps/x509.c:1081,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/x509.c:1085,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 8
    argNames:
    - x
    - pkey
    - days
    - clrext
    - digest
    - conf
    - section
    - preserve_dates
    argTypes:
    - X509*
    - EVP_PKEY*
    - int
    - int
    - EVP_MD*
    - CONF*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1058
    functionDepth: 5
    functionLinenumber: 1058
    functionLinenumberEnd: 1087
    functionName: sign
    functionSourceFile: /src/openssl-1.1.1g/apps/x509.c
    functionUses: 120
    functionsReached:
    - X509V3_EXT_add_nconf
    - X509_sign
    - set_cert_times
    - X509_delete_ext
    - X509_set_issuer_name
    - X509_get_ext_count
    - X509V3_set_nconf
    - X509_set_version
    - X509V3_set_ctx
    - X509_set_pubkey
    - X509_get_subject_name
    - ERR_print_errors
    linkageType: ''
    returnType: int
    signature: "int sign(X509 *x, EVP_PKEY *pkey, int days, int clrext,\n                const
      EVP_MD *digest, CONF *conf, const char *section,\n                int preserve_dates)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_id
      Src: /src/openssl-1.1.1g/apps/x509.c:1093,1
    - Dst: X509_PURPOSE_get0_name
      Src: /src/openssl-1.1.1g/apps/x509.c:1094,1
    - Dst: X509_check_purpose
      Src: /src/openssl-1.1.1g/apps/x509.c:1096,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:1097,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:1099,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:1101,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:1103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - bio
    - cert
    - pt
    argTypes:
    - BIO*
    - X509*
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1089
    functionDepth: 4
    functionLinenumber: 1089
    functionLinenumberEnd: 1106
    functionName: purpose_print
    functionSourceFile: /src/openssl-1.1.1g/apps/x509.c
    functionUses: 1
    functionsReached:
    - X509_PURPOSE_get_id
    - X509_PURPOSE_get0_name
    - X509_check_purpose
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int purpose_print(BIO *bio, X509 *cert, X509_PURPOSE *pt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/x509.c:1114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - names
    - result
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1133
    functionName: parse_ext_names
    functionSourceFile: /src/openssl-1.1.1g/apps/x509.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_ext_names(char *names, const char **result)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/x509.c:1138,1
    - Dst: X509_get0_extensions
      Src: /src/openssl-1.1.1g/apps/x509.c:1145,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/apps/x509.c:1146,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:1147,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/x509.c:1153,1
    - Dst: parse_ext_names
      Src: /src/openssl-1.1.1g/apps/x509.c:1155,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:1156,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/apps/x509.c:1159,1
    - Dst: parse_ext_names
      Src: /src/openssl-1.1.1g/apps/x509.c:1161,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/apps/x509.c:1164,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/apps/x509.c:1167,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/x509.c:1168,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/apps/x509.c:1168,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/x509.c:1169,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/x509.c:1173,1
    - Dst: sk_X509_EXTENSION_new_null
      Src: /src/openssl-1.1.1g/apps/x509.c:1176,1
    - Dst: sk_X509_EXTENSION_push
      Src: /src/openssl-1.1.1g/apps/x509.c:1178,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/apps/x509.c:1184,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/x509.c:1185,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-1.1.1g/apps/x509.c:1190,1
    - Dst: sk_X509_EXTENSION_free
      Src: /src/openssl-1.1.1g/apps/x509.c:1192,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/x509.c:1193,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/x509.c:1194,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 3
    argNames:
    - bio
    - x
    - ext_names
    argTypes:
    - BIO*
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1135
    functionDepth: 6
    functionLinenumber: 1135
    functionLinenumberEnd: 1196
    functionName: print_x509v3_exts
    functionSourceFile: /src/openssl-1.1.1g/apps/x509.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OBJ_nid2sn
    - X509_EXTENSION_get_object
    - strcmp
    - sk_X509_EXTENSION_free
    - sk_X509_EXTENSION_new_null
    - OPENSSL_free
    - STACK_OF
    - X509_get0_extensions
    - parse_ext_names
    - OPENSSL_strdup
    - sk_X509_EXTENSION_push
    - X509V3_extensions_print
    - BIO_printf
    - OBJ_obj2nid
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: int print_x509v3_exts(BIO *bio, X509 *x, const char *ext_names)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/rand.c:49,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/rand.c:50,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rand.c:55,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/rand.c:58,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rand.c:62,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/rand.c:65,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rand.c:65,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/rand.c:68,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/rand.c:79,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/rand.c:80,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/rand.c:82,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rand.c:85,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/rand.c:89,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/rand.c:94,1
    - Dst: BIO_f_base64
      Src: /src/openssl-1.1.1g/apps/rand.c:94,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/rand.c:97,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/apps/rand.c:107,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/rand.c:111,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rand.c:115,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/rand.c:121,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/rand.c:122,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/rand.c:129,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/rand.c:130,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/rand.c:131,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 90
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 133
    functionName: rand_main
    functionSourceFile: /src/openssl-1.1.1g/apps/rand.c
    functionUses: 0
    functionsReached:
    - opt_rand
    - bio_open_default
    - RAND_bytes
    - opt_arg
    - BIO_puts
    - opt_next
    - BIO_push
    - release_engine
    - BIO_flush
    - opt_help
    - BIO_free_all
    - opt_int
    - BIO_write
    - setup_engine
    - opt_num_rest
    - opt_rest
    - BIO_f_base64
    - BIO_printf
    - ERR_print_errors
    - opt_init
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int rand_main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/engine.c:49,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/engine.c:54,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/engine.c:56,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/apps/engine.c:63,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/engine.c:65,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/apps/engine.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - buf
    - size
    - s
    argTypes:
    - char**
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: append_buf
    functionSourceFile: /src/openssl-1.1.1g/apps/engine.c
    functionUses: 0
    functionsReached:
    - strcpy
    - app_malloc
    - OPENSSL_realloc
    - OPENSSL_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int append_buf(char **buf, int *size, const char *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:87,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:89,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:97,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:101,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:112,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:115,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:120,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:123,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:132,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:133,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:136,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - out
    - flags
    - indent
    argTypes:
    - BIO*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 139
    functionName: util_flags
    functionSourceFile: /src/openssl-1.1.1g/apps/engine.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int util_flags(BIO *out, unsigned int flags, const char *indent)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/engine.c:150,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/apps/engine.c:151,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/apps/engine.c:152,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/engine.c:157,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/apps/engine.c:164,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/apps/engine.c:169,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/engine.c:172,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/apps/engine.c:173,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/apps/engine.c:177,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/engine.c:181,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/apps/engine.c:182,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/engine.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:192,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/engine.c:197,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/engine.c:198,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:199,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/engine.c:200,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:202,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:205,1
    - Dst: util_flags
      Src: /src/openssl-1.1.1g/apps/engine.c:208,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/engine.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/engine.c:215,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/apps/engine.c:218,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:221,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/engine.c:224,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/engine.c:225,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/engine.c:226,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 4
    argNames:
    - e
    - verbose
    - out
    - indent
    argTypes:
    - ENGINE*
    - int
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 228
    functionName: util_verbose
    functionSourceFile: /src/openssl-1.1.1g/apps/engine.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_new_null
    - ENGINE_ctrl
    - app_malloc
    - util_flags
    - sk_OPENSSL_STRING_free
    - OPENSSL_free
    - STACK_OF
    - BIO_puts
    - BIO_printf
    - strlen
    linkageType: ''
    returnType: int
    signature: int util_verbose(ENGINE *e, int verbose, BIO *out, const char *indent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_get0_engine
      Src: /src/openssl-1.1.1g/apps/engine.c:279,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/engine.c:281,1
    - Dst: OSSL_STORE_LOADER_get0_scheme
      Src: /src/openssl-1.1.1g/apps/engine.c:282,1
    - Dst: append_buf
      Src: /src/openssl-1.1.1g/apps/engine.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - loader
    - arg
    argTypes:
    - OSSL_STORE_LOADER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 286
    functionName: util_store_cap
    functionSourceFile: /src/openssl-1.1.1g/apps/engine.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_get0_scheme
    - BIO_snprintf
    - append_buf
    - OSSL_STORE_LOADER_get0_engine
    linkageType: ''
    returnType: void
    signature: void util_store_cap(const OSSL_STORE_LOADER *loader, void *arg)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/engine.c:293,1
    - Dst: sk_OPENSSL_CSTRING_new_null
      Src: /src/openssl-1.1.1g/apps/engine.c:293,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/engine.c:294,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/engine.c:294,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/engine.c:295,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/engine.c:295,1
    - Dst: dup_bio_out
      Src: /src/openssl-1.1.1g/apps/engine.c:302,1
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openssl-1.1.1g/apps/engine.c:310,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/engine.c:315,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/engine.c:317,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:321,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/engine.c:324,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/engine.c:346,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/engine.c:346,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/engine.c:349,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/engine.c:349,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/engine.c:355,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/engine.c:356,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:359,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:361,1
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openssl-1.1.1g/apps/engine.c:364,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openssl-1.1.1g/apps/engine.c:367,1
    - Dst: ENGINE_get_first
      Src: /src/openssl-1.1.1g/apps/engine.c:368,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-1.1.1g/apps/engine.c:368,1
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openssl-1.1.1g/apps/engine.c:369,1
    - Dst: ENGINE_get_id
      Src: /src/openssl-1.1.1g/apps/engine.c:369,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openssl-1.1.1g/apps/engine.c:374,1
    - Dst: sk_OPENSSL_CSTRING_value
      Src: /src/openssl-1.1.1g/apps/engine.c:375,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/apps/engine.c:376,1
    - Dst: ENGINE_get_name
      Src: /src/openssl-1.1.1g/apps/engine.c:377,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:381,1
    - Dst: util_do_cmds
      Src: /src/openssl-1.1.1g/apps/engine.c:382,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/engine.c:383,1
    - Dst: ENGINE_get_id
      Src: /src/openssl-1.1.1g/apps/engine.c:383,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:384,1
    - Dst: ENGINE_get_id
      Src: /src/openssl-1.1.1g/apps/engine.c:385,1
    - Dst: ENGINE_get_name
      Src: /src/openssl-1.1.1g/apps/engine.c:385,1
    - Dst: ENGINE_get_RSA
      Src: /src/openssl-1.1.1g/apps/engine.c:396,1
    - Dst: append_buf
      Src: /src/openssl-1.1.1g/apps/engine.c:397,1
    - Dst: ENGINE_get_DSA
      Src: /src/openssl-1.1.1g/apps/engine.c:399,1
    - Dst: append_buf
      Src: /src/openssl-1.1.1g/apps/engine.c:400,1
    - Dst: ENGINE_get_DH
      Src: /src/openssl-1.1.1g/apps/engine.c:402,1
    - Dst: append_buf
      Src: /src/openssl-1.1.1g/apps/engine.c:403,1
    - Dst: ENGINE_get_RAND
      Src: /src/openssl-1.1.1g/apps/engine.c:405,1
    - Dst: append_buf
      Src: /src/openssl-1.1.1g/apps/engine.c:406,1
    - Dst: ENGINE_get_ciphers
      Src: /src/openssl-1.1.1g/apps/engine.c:409,1
    - Dst: fn_c
      Src: /src/openssl-1.1.1g/apps/engine.c:412,1
    - Dst: append_buf
      Src: /src/openssl-1.1.1g/apps/engine.c:414,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/engine.c:414,1
    - Dst: ENGINE_get_digests
      Src: /src/openssl-1.1.1g/apps/engine.c:418,1
    - Dst: fn_d
      Src: /src/openssl-1.1.1g/apps/engine.c:421,1
    - Dst: append_buf
      Src: /src/openssl-1.1.1g/apps/engine.c:423,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/engine.c:423,1
    - Dst: ENGINE_get_pkey_meths
      Src: /src/openssl-1.1.1g/apps/engine.c:427,1
    - Dst: fn_pk
      Src: /src/openssl-1.1.1g/apps/engine.c:430,1
    - Dst: append_buf
      Src: /src/openssl-1.1.1g/apps/engine.c:432,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/engine.c:432,1
    - Dst: OSSL_STORE_do_all_loaders
      Src: /src/openssl-1.1.1g/apps/engine.c:443,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:448,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/engine.c:450,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:453,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/apps/engine.c:454,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:455,1
    - Dst: util_do_cmds
      Src: /src/openssl-1.1.1g/apps/engine.c:456,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/apps/engine.c:457,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/engine.c:459,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/apps/engine.c:461,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/engine.c:462,1
    - Dst: util_verbose
      Src: /src/openssl-1.1.1g/apps/engine.c:465,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/apps/engine.c:467,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/engine.c:469,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/engine.c:478,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/openssl-1.1.1g/apps/engine.c:479,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/engine.c:480,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/engine.c:481,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/engine.c:482,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 166
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 288
    functionDepth: 7
    functionLinenumber: 288
    functionLinenumberEnd: 484
    functionName: engine_main
    functionSourceFile: /src/openssl-1.1.1g/apps/engine.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_name
    - sk_OPENSSL_STRING_free
    - OSSL_STORE_do_all_loaders
    - STACK_OF
    - ERR_print_errors_fp
    - ENGINE_get_DH
    - sk_OPENSSL_CSTRING_new_null
    - ENGINE_get_ciphers
    - sk_OPENSSL_STRING_new_null
    - strcmp
    - fn_d
    - fn_c
    - OPENSSL_free
    - ENGINE_get_first
    - opt_arg
    - opt_next
    - ERR_clear_error
    - ENGINE_get_DSA
    - util_verbose
    - ENGINE_init
    - sk_OPENSSL_CSTRING_num
    - dup_bio_out
    - sk_OPENSSL_CSTRING_value
    - OBJ_nid2sn
    - ENGINE_by_id
    - ERR_print_errors
    - sk_OPENSSL_CSTRING_free
    - opt_help
    - fn_pk
    - sk_OPENSSL_STRING_push
    - BIO_free_all
    - sk_OPENSSL_CSTRING_push
    - ENGINE_get_RAND
    - ENGINE_get_next
    - opt_num_rest
    - util_do_cmds
    - ENGINE_get_pkey_meths
    - ENGINE_free
    - opt_rest
    - ENGINE_get_RSA
    - append_buf
    - ENGINE_finish
    - BIO_printf
    - ENGINE_get_id
    - ENGINE_get_digests
    - opt_init
    linkageType: ''
    returnType: int
    signature: int engine_main(int argc, char **argv)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:61,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:62,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:67,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:70,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:74,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:74,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:78,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:81,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:81,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:85,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:88,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:88,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:100,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:108,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:109,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:112,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:119,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:122,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:128,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:133,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:135,1
    - Dst: BN_GENCB_set
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:138,1
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:139,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:141,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:144,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:146,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:147,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:148,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:149,1
    - Dst: d2i_DSAparams_bio
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:153,1
    - Dst: PEM_read_bio_DSAparams
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:155,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:158,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:159,1
    - Dst: DSAparams_print
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:164,1
    - Dst: DSA_get0_pqg
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:172,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:173,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:174,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:176,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:178,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:179,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:180,1
    - Dst: print_bignum_var
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:181,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:182,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:185,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:187,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:191,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:193,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:200,1
    - Dst: i2d_DSAparams_bio
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:208,1
    - Dst: PEM_write_bio_DSAparams
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:210,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:212,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:213,1
    - Dst: DSAparams_dup
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:220,1
    - Dst: DSA_generate_key
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:222,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:223,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:224,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:227,1
    - Dst: i2d_DSAPrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:229,1
    - Dst: PEM_write_bio_DSAPrivateKey
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:231,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:233,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:237,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:238,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:239,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:240,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:241,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 165
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/openssl-1.1.1g/apps/dsaparam.c
    constantsTouched: []
    func_position:
      end: 243
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 243
    functionName: dsaparam_main
    functionSourceFile: /src/openssl-1.1.1g/apps/dsaparam.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - i2d_DSAPrivateKey_bio
    - DSA_generate_key
    - opt_rand
    - bio_open_default
    - OPENSSL_free
    - bio_open_owner
    - print_bignum_var
    - opt_arg
    - opt_format
    - PEM_write_bio_DSAparams
    - opt_next
    - BIO_free
    - PEM_write_bio_DSAPrivateKey
    - app_malloc
    - DSA_new
    - release_engine
    - BN_GENCB_free
    - assert
    - i2d_DSAparams_bio
    - DSA_free
    - opt_help
    - BIO_free_all
    - opt_int
    - setup_engine
    - opt_num_rest
    - DSAparams_dup
    - BN_num_bytes
    - opt_rest
    - DSA_generate_parameters_ex
    - BN_GENCB_set
    - d2i_DSAparams_bio
    - BIO_printf
    - BN_num_bits
    - DSA_get0_pqg
    - DSAparams_print
    - ERR_print_errors
    - opt_init
    - PEM_read_bio_DSAparams
    linkageType: ''
    returnType: int
    signature: int dsaparam_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:250,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:250,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:251,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openssl-1.1.1g/apps/dsaparam.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - n
    - cb
    argTypes:
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 4
    functionLinenumber: 245
    functionLinenumberEnd: 253
    functionName: dsa_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/dsaparam.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_get_arg
    - BIO_write
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int dsa_cb(int p, int n, BN_GENCB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ssl
    - hint
    - identity
    - max_identity_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: dummy_psk
    functionSourceFile: /src/openssl-1.1.1g/apps/ciphers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int dummy_psk(SSL *ssl, const char *hint, char *identity,\n
      \                             unsigned int max_identity_len,\n                              unsigned
      char *psk,\n                              unsigned int max_psk_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: dummy_srp
    functionSourceFile: /src/openssl-1.1.1g/apps/ciphers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *dummy_srp(SSL *ssl, void *arg)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ciphers.c:86,1
    - Dst: TLS_server_method
      Src: /src/openssl-1.1.1g/apps/ciphers.c:87,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/ciphers.c:102,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/ciphers.c:103,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:108,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/ciphers.c:111,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ciphers.c:127,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ciphers.c:160,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/ciphers.c:164,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/ciphers.c:165,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:173,1
    - Dst: OPENSSL_cipher_name
      Src: /src/openssl-1.1.1g/apps/ciphers.c:174,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/apps/ciphers.c:178,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/apps/ciphers.c:181,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-1.1.1g/apps/ciphers.c:183,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/openssl-1.1.1g/apps/ciphers.c:188,1
    - Dst: SSL_CTX_set_srp_client_pwd_callback
      Src: /src/openssl-1.1.1g/apps/ciphers.c:192,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/apps/ciphers.c:195,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:196,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/apps/ciphers.c:201,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:202,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/apps/ciphers.c:206,1
    - Dst: SSL_get1_supported_ciphers
      Src: /src/openssl-1.1.1g/apps/ciphers.c:211,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/apps/ciphers.c:213,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/apps/ciphers.c:216,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/apps/ciphers.c:217,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/apps/ciphers.c:218,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:222,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:223,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:225,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/apps/ciphers.c:228,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/apps/ciphers.c:231,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-1.1.1g/apps/ciphers.c:234,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:241,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:244,1
    - Dst: SSL_CIPHER_standard_name
      Src: /src/openssl-1.1.1g/apps/ciphers.c:247,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ciphers.c:250,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ciphers.c:252,1
    - Dst: SSL_CIPHER_description
      Src: /src/openssl-1.1.1g/apps/ciphers.c:252,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ciphers.c:259,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/apps/ciphers.c:262,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/apps/ciphers.c:263,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/apps/ciphers.c:264,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 147
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 266
    functionName: ciphers_main
    functionSourceFile: /src/openssl-1.1.1g/apps/ciphers.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - sk_SSL_CIPHER_free
    - TLS_server_method
    - SSL_CTX_set_cipher_list
    - sk_SSL_CIPHER_value
    - STACK_OF
    - SSL_get1_supported_ciphers
    - SSL_CIPHER_get_name
    - OPENSSL_cipher_name
    - opt_arg
    - SSL_CTX_set_psk_client_callback
    - SSL_CIPHER_standard_name
    - BIO_puts
    - opt_next
    - SSL_get_ciphers
    - SSL_CTX_set_ciphersuites
    - SSL_new
    - SSL_free
    - SSL_CTX_free
    - sk_SSL_CIPHER_num
    - SSL_CTX_set_max_proto_version
    - ERR_print_errors
    - SSL_CIPHER_description
    - opt_help
    - SSL_CIPHER_get_id
    - SSL_CTX_set_srp_client_pwd_callback
    - opt_num_rest
    - opt_rest
    - BIO_printf
    - SSL_CTX_new
    - opt_init
    linkageType: ''
    returnType: int
    signature: int ciphers_main(int argc, char **argv)
  - BBCount: 103
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:141,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:142,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:145,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:146,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:151,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:154,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:197,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:197,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:213,1
    - Dst: set_pbe
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:219,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:219,1
    - Dst: set_pbe
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:223,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:223,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:227,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:231,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:234,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:237,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:243,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:247,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:249,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:249,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:252,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:255,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:258,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:261,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:264,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:267,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:270,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:279,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:279,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:283,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:296,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:297,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:313,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:315,1
    - Dst: EVP_read_pw_string
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:327,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:329,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:334,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:342,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:348,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:356,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:364,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:370,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:371,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:372,1
    - Dst: X509_keyid_set1
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:375,1
    - Dst: X509_alias_set1
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:376,1
    - Dst: sk_X509_delete
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:378,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:383,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:393,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:401,1
    - Dst: setup_verify
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:403,1
    - Dst: get_cert_chain
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:407,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:408,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:412,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:413,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:413,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:415,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:415,1
    - Dst: sk_X509_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:416,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:419,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:420,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:422,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:429,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:430,1
    - Dst: X509_alias_set1
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:431,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:431,1
    - Dst: EVP_PKEY_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:435,1
    - Dst: EVP_PKEY_add1_attr_by_NID
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:440,1
    - Dst: EVP_read_pw_string
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:446,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:448,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:453,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:459,1
    - Dst: PKCS12_create
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:461,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:465,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:470,1
    - Dst: PKCS12_set_mac
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:475,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:477,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:479,1
    - Dst: i2d_PKCS12_bio
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:483,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:489,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:490,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:491,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:497,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:500,1
    - Dst: d2i_PKCS12_bio
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:504,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:505,1
    - Dst: EVP_read_pw_string
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:512,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:514,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:519,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:525,1
    - Dst: PKCS12_mac_present
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:527,1
    - Dst: PKCS12_get0_mac
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:534,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:537,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:538,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:539,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:540,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:541,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:542,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:543,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:544,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:548,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:552,1
    - Dst: OPENSSL_asc2uni
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:560,1
    - Dst: OPENSSL_uni2utf8
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:563,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:564,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:565,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:566,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:567,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:570,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:577,1
    - Dst: dump_certs_keys_p12
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:578,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:579,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:580,1
    - Dst: PKCS12_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:585,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:586,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:587,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:588,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:589,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:590,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:591,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:592,1
    CyclomaticComplexity: 143
    EdgeCount: 143
    ICount: 386
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/openssl-1.1.1g/apps/pkcs12.c
    - condition: (private)
      pos:
        line_end: 576
        line_start: 576
        source_file: /src/openssl-1.1.1g/apps/pkcs12.c
    constantsTouched: []
    func_position:
      end: 594
      start: 118
    functionDepth: 7
    functionLinenumber: 118
    functionLinenumberEnd: 594
    functionName: pkcs12_main
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs12.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    - sk_OPENSSL_STRING_free
    - load_certs
    - d2i_PKCS12_bio
    - STACK_OF
    - opt_rand
    - sk_X509_free
    - app_passwd
    - bio_open_default
    - sk_X509_value
    - sk_OPENSSL_STRING_new_null
    - X509_free
    - X509_alias_set1
    - X509_STORE_free
    - PKCS12_set_mac
    - OPENSSL_uni2utf8
    - EVP_des_ede3_cbc
    - OPENSSL_free
    - opt_unknown
    - bio_open_owner
    - ASN1_STRING_length
    - opt_arg
    - sk_OPENSSL_STRING_value
    - BIO_puts
    - sk_X509_delete
    - opt_next
    - BIO_free
    - PKCS12_get0_mac
    - X509_verify_cert_error_string
    - PKCS12_create
    - EVP_read_pw_string
    - load_key
    - set_pbe
    - release_engine
    - OPENSSL_strlcpy
    - get_cert_chain
    - sk_OPENSSL_STRING_num
    - assert
    - sk_X509_pop_free
    - i2d_PKCS12_bio
    - opt_help
    - PKCS12_verify_mac
    - sk_OPENSSL_STRING_push
    - X509_check_private_key
    - OPENSSL_asc2uni
    - BIO_free_all
    - sk_X509_push
    - dump_certs_keys_p12
    - setup_engine
    - opt_num_rest
    - setup_verify
    - opt_md
    - ASN1_INTEGER_get
    - opt_cipher
    - EVP_PKEY_add1_attr_by_NID
    - X509_keyid_set1
    - PKCS12_mac_present
    - PKCS12_free
    - sk_X509_num
    - X509_ALGOR_get0
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    - opt_init
    linkageType: ''
    returnType: int
    signature: int pkcs12_main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:600,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:601,1
    - Dst: PKCS12_unpack_authsafes
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:606,1
    - Dst: sk_PKCS7_num
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:608,1
    - Dst: sk_PKCS7_value
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:609,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:610,1
    - Dst: PKCS12_unpack_p7data
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:612,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:614,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:617,1
    - Dst: alg_print
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:618,1
    - Dst: PKCS12_unpack_p7encdata
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:620,1
    - Dst: dump_certs_pkeys_bags
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:626,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:628,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:631,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 7
    argNames:
    - out
    - p12
    - pass
    - passlen
    - options
    - pempass
    - enc
    argTypes:
    - BIO*
    - PKCS12*
    - char*
    - int
    - int
    - char*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 639
    functionName: dump_certs_keys_p12
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - sk_PKCS7_pop_free
    - sk_PKCS7_num
    - sk_PKCS12_SAFEBAG_pop_free
    - BIO_printf
    - alg_print
    - STACK_OF
    - PKCS12_unpack_p7encdata
    - PKCS12_unpack_authsafes
    - sk_PKCS7_value
    - OBJ_obj2nid
    - dump_certs_pkeys_bags
    - PKCS12_unpack_p7data
    linkageType: ''
    returnType: int
    signature: "int dump_certs_keys_p12(BIO *out, const PKCS12 *p12, const char *pass,\n
      \                       int passlen, int options, char *pempass,\n                        const
      EVP_CIPHER *enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_PKCS12_SAFEBAG_num
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:646,1
    - Dst: dump_certs_pkeys_bag
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:647,1
    - Dst: sk_PKCS12_SAFEBAG_value
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - out
    - bags
    - pass
    - passlen
    - options
    - pempass
    - enc
    argTypes:
    - BIO*
    - STACK_OF*
    - char*
    - int
    - int
    - char*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 653
    functionName: dump_certs_pkeys_bags
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - sk_PKCS12_SAFEBAG_value
    - sk_PKCS12_SAFEBAG_num
    - dump_certs_pkeys_bag
    linkageType: ''
    returnType: int
    signature: "int dump_certs_pkeys_bags(BIO *out, const STACK_OF(PKCS12_SAFEBAG)
      *bags,\n                          const char *pass, int passlen, int options,\n
      \                         char *pempass, const EVP_CIPHER *enc)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get0_attrs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:666,1
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:668,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:671,1
    - Dst: print_attribs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:674,1
    - Dst: PKCS12_SAFEBAG_get0_p8inf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:675,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:676,1
    - Dst: print_attribs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:678,1
    - Dst: PKCS8_pkey_get0_attrs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:678,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:679,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:680,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:688,1
    - Dst: PKCS12_SAFEBAG_get0_pkcs8
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:689,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:690,1
    - Dst: alg_print
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:691,1
    - Dst: print_attribs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:695,1
    - Dst: PKCS12_decrypt_skey
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:696,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:698,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:699,1
    - Dst: print_attribs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:702,1
    - Dst: PKCS8_pkey_get0_attrs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:702,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:703,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:704,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:705,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:710,1
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:713,1
    - Dst: print_attribs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:718,1
    - Dst: PKCS12_SAFEBAG_get_bag_nid
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:719,1
    - Dst: PKCS12_SAFEBAG_get1_cert
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:721,1
    - Dst: dump_cert_text
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:723,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:724,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:725,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:730,1
    - Dst: print_attribs
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:731,1
    - Dst: dump_certs_pkeys_bags
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:732,1
    - Dst: PKCS12_SAFEBAG_get0_safes
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:732,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:736,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:737,1
    - Dst: PKCS12_SAFEBAG_get0_type
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:737,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:738,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 7
    argNames:
    - out
    - bag
    - pass
    - passlen
    - options
    - pempass
    - enc
    argTypes:
    - BIO*
    - PKCS12_SAFEBAG*
    - char*
    - int
    - int
    - char*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 655
    functionDepth: 5
    functionLinenumber: 655
    functionLinenumberEnd: 742
    functionName: dump_certs_pkeys_bag
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - i2a_ASN1_OBJECT
    - PEM_write_bio_PrivateKey
    - alg_print
    - PKCS12_SAFEBAG_get0_safes
    - X509_SIG_get0
    - PKCS12_SAFEBAG_get1_cert
    - PKCS12_SAFEBAG_get0_pkcs8
    - PKCS12_SAFEBAG_get0_attrs
    - EVP_PKCS82PKEY
    - X509_free
    - print_attribs
    - dump_certs_pkeys_bags
    - PKCS12_SAFEBAG_get0_attr
    - PKCS8_PRIV_KEY_INFO_free
    - PKCS8_pkey_get0_attrs
    - PKCS12_SAFEBAG_get_nid
    - dump_cert_text
    - PKCS12_SAFEBAG_get0_type
    - PEM_write_bio_X509
    - PKCS12_decrypt_skey
    - BIO_printf
    - EVP_PKEY_free
    - PKCS12_SAFEBAG_get0_p8inf
    - PKCS12_SAFEBAG_get_bag_nid
    linkageType: ''
    returnType: int
    signature: "int dump_certs_pkeys_bag(BIO *out, const PKCS12_SAFEBAG *bag,\n                         const
      char *pass, int passlen, int options,\n                         char *pempass,
      const EVP_CIPHER *enc)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:782,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:784,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:786,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:786,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:796,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:796,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:798,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:801,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:802,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:803,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:804,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:805,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:805,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:806,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:812,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:812,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:814,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:821,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:822,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:824,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:825,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:825,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:826,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:832,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:832,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:834,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:837,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:839,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:840,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:841,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:842,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:843,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:846,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:849,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:849,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:851,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:854,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:854,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:855,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:858,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 775
    functionDepth: 6
    functionLinenumber: 775
    functionLinenumberEnd: 860
    functionName: alg_print
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs12.c
    functionUses: 2
    functionsReached:
    - OBJ_nid2ln
    - OBJ_nid2sn
    - PBKDF2PARAM_free
    - PBE2PARAM_free
    - ASN1_INTEGER_get
    - PBEPARAM_free
    - ASN1_STRING_length
    - BIO_puts
    - X509_ALGOR_get0
    - SCRYPT_PARAMS_free
    - BIO_printf
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    - ASN1_item_unpack
    linkageType: ''
    returnType: int
    signature: int alg_print(const X509_ALGOR *alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_uni2asc
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:886,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:888,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:889,1
    - Dst: hex_prin
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:893,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:895,1
    - Dst: hex_prin
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:899,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:901,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:905,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - out
    - av
    argTypes:
    - BIO*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 908
    functionName: print_attribute
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs12.c
    functionUses: 0
    functionsReached:
    - hex_prin
    - OPENSSL_free
    - OPENSSL_uni2asc
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void print_attribute(BIO *out, const ASN1_TYPE *av)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:919,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:922,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:923,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:926,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:927,1
    - Dst: sk_X509_ATTRIBUTE_value
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:929,1
    - Dst: X509_ATTRIBUTE_get0_object
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:930,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:931,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:932,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:934,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:935,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:937,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:937,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:940,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:941,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:943,1
    - Dst: print_attribute
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:944,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:947,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - out
    - attrlst
    - name
    argTypes:
    - BIO*
    - STACK_OF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 912
    functionDepth: 5
    functionLinenumber: 912
    functionLinenumberEnd: 951
    functionName: print_attribs
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2ln
    - X509_ATTRIBUTE_get0_object
    - print_attribute
    - i2a_ASN1_OBJECT
    - X509_ATTRIBUTE_get0_type
    - sk_X509_ATTRIBUTE_num
    - X509_ATTRIBUTE_count
    - BIO_printf
    - OBJ_obj2nid
    - sk_X509_ATTRIBUTE_value
    linkageType: ''
    returnType: int
    signature: "int print_attribs(BIO *out, const STACK_OF(X509_ATTRIBUTE) *attrlst,\n
      \                 const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - buf
    - len
    argTypes:
    - BIO*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 958
    functionName: hex_prin
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void hex_prin(BIO *out, unsigned char *buf, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:964,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:968,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs12.c:970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ppbe
    - str
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 960
    functionDepth: 8
    functionLinenumber: 960
    functionLinenumberEnd: 974
    functionName: set_pbe
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - strcmp
    - BIO_printf
    - OBJ_txt2nid
    linkageType: ''
    returnType: int
    signature: int set_pbe(int *ppbe, const char *str)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_new
      Src: /src/openssl-1.1.1g/apps/genrsa.c:56,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/genrsa.c:59,1
    - Dst: BN_GENCB_set
      Src: /src/openssl-1.1.1g/apps/genrsa.c:73,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/genrsa.c:75,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/genrsa.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genrsa.c:81,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/genrsa.c:85,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genrsa.c:94,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/genrsa.c:97,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genrsa.c:97,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/genrsa.c:100,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genrsa.c:104,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/genrsa.c:107,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/genrsa.c:107,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/genrsa.c:111,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/genrsa.c:111,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/genrsa.c:116,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/genrsa.c:117,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/genrsa.c:120,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genrsa.c:123,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genrsa.c:128,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/genrsa.c:133,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genrsa.c:134,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/genrsa.c:138,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genrsa.c:142,1
    - Dst: RSA_new_method
      Src: /src/openssl-1.1.1g/apps/genrsa.c:144,1
    - Dst: RSA_new
      Src: /src/openssl-1.1.1g/apps/genrsa.c:144,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/apps/genrsa.c:148,1
    - Dst: RSA_generate_multi_prime_key
      Src: /src/openssl-1.1.1g/apps/genrsa.c:149,1
    - Dst: RSA_get0_key
      Src: /src/openssl-1.1.1g/apps/genrsa.c:152,1
    - Dst: BN_bn2hex
      Src: /src/openssl-1.1.1g/apps/genrsa.c:153,1
    - Dst: BN_bn2dec
      Src: /src/openssl-1.1.1g/apps/genrsa.c:154,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/genrsa.c:156,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/genrsa.c:158,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/genrsa.c:159,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/genrsa.c:162,1
    - Dst: PEM_write_bio_RSAPrivateKey
      Src: /src/openssl-1.1.1g/apps/genrsa.c:163,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/genrsa.c:170,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-1.1.1g/apps/genrsa.c:171,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/apps/genrsa.c:172,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/genrsa.c:173,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/genrsa.c:174,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/genrsa.c:175,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/genrsa.c:177,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 110
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/openssl-1.1.1g/apps/genrsa.c
    constantsTouched: []
    func_position:
      end: 179
      start: 54
    functionDepth: 7
    functionLinenumber: 54
    functionLinenumberEnd: 179
    functionName: genrsa_main
    functionSourceFile: /src/openssl-1.1.1g/apps/genrsa.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_new
    - PEM_write_bio_RSAPrivateKey
    - opt_rand
    - RSA_new_method
    - app_passwd
    - RSA_free
    - OPENSSL_free
    - opt_unknown
    - bio_open_owner
    - opt_arg
    - opt_next
    - BN_free
    - RSA_new
    - RSA_get0_key
    - BN_new
    - release_engine
    - BN_GENCB_free
    - BN_set_word
    - BN_bn2hex
    - assert
    - RSA_generate_multi_prime_key
    - opt_help
    - BIO_free_all
    - opt_int
    - setup_engine
    - opt_num_rest
    - opt_cipher
    - opt_rest
    - BN_bn2dec
    - BN_GENCB_set
    - BIO_printf
    - ERR_print_errors
    - opt_init
    linkageType: ''
    returnType: int
    signature: int genrsa_main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/genrsa.c:193,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openssl-1.1.1g/apps/genrsa.c:193,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/genrsa.c:194,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openssl-1.1.1g/apps/genrsa.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - p
    - n
    - cb
    argTypes:
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 196
    functionName: genrsa_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/genrsa.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_get_arg
    - BIO_write
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int genrsa_cb(int p, int n, BN_GENCB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: rename
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rename(from,to)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/apps.c:82,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/apps/apps.c:87,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/apps/apps.c:87,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/apps/apps.c:96,1
    - Dst: isspace
      Src: /src/openssl-1.1.1g/apps/apps.c:112,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/apps/apps.c:112,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 2
    argNames:
    - arg
    - buf
    argTypes:
    - ARGS*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 120
    functionName: chopup_args
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - _UC
    - isspace
    - app_malloc
    - OPENSSL_realloc
    linkageType: ''
    returnType: int
    signature: int chopup_args(ARGS *arg, char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mesgwin
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: app_init
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int app_init(long mesgwin)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_default_verify_file
      Src: /src/openssl-1.1.1g/apps/apps.c:133,1
    - Dst: SSL_CTX_set_default_verify_dir
      Src: /src/openssl-1.1.1g/apps/apps.c:135,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/openssl-1.1.1g/apps/apps.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - CAfile
    - CApath
    - noCAfile
    - noCApath
    argTypes:
    - SSL_CTX*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 141
    functionName: ctx_set_verify_locations
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_set_default_verify_dir
    - SSL_CTX_set_default_verify_file
    - SSL_CTX_load_verify_locations
    linkageType: ''
    returnType: int
    signature: "int ctx_set_verify_locations(SSL_CTX *ctx, const char *CAfile,\n                             const
      char *CApath, int noCAfile, int noCApath)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_default_ctlog_list_file
      Src: /src/openssl-1.1.1g/apps/apps.c:148,1
    - Dst: SSL_CTX_set_ctlog_list_file
      Src: /src/openssl-1.1.1g/apps/apps.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: ctx_set_ctlog_list_file
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_ctlog_list_file
    - SSL_CTX_set_default_ctlog_list_file
    linkageType: ''
    returnType: int
    signature: int ctx_set_ctlog_list_file(SSL_CTX *ctx, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_name_ex
      Src: /src/openssl-1.1.1g/apps/apps.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: set_nameopt
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 7
    functionsReached:
    - set_name_ex
    linkageType: ''
    returnType: int
    signature: int set_nameopt(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: get_nameopt
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_nameopt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/apps.c:175,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/apps.c:175,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/apps.c:175,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:176,1
    - Dst: print_name
      Src: /src/openssl-1.1.1g/apps/apps.c:177,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/apps/apps.c:177,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/apps.c:177,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - BIO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: dump_cert_text
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 3
    functionsReached:
    - print_name
    - get_nameopt
    - BIO_puts
    - X509_get_issuer_name
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int dump_cert_text(BIO *out, X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UI_method_get_opener
      Src: /src/openssl-1.1.1g/apps/apps.c:185,1
    - Dst: opener
      Src: /src/openssl-1.1.1g/apps/apps.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: ui_open
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - UI_method_get_opener
    - opener
    linkageType: ''
    returnType: int
    signature: int ui_open(UI *ui)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_input_flags
      Src: /src/openssl-1.1.1g/apps/apps.c:196,1
    - Dst: UI_get0_user_data
      Src: /src/openssl-1.1.1g/apps/apps.c:197,1
    - Dst: UI_get_string_type
      Src: /src/openssl-1.1.1g/apps/apps.c:198,1
    - Dst: UI_get0_user_data
      Src: /src/openssl-1.1.1g/apps/apps.c:203,1
    - Dst: UI_set_result
      Src: /src/openssl-1.1.1g/apps/apps.c:205,1
    - Dst: UI_method_get_reader
      Src: /src/openssl-1.1.1g/apps/apps.c:218,1
    - Dst: reader
      Src: /src/openssl-1.1.1g/apps/apps.c:220,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 222
    functionName: ui_read
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - UI_get_input_flags
    - UI_set_result
    - UI_get_string_type
    - reader
    - UI_method_get_reader
    - UI_get0_user_data
    linkageType: ''
    returnType: int
    signature: int ui_read(UI *ui, UI_STRING *uis)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_input_flags
      Src: /src/openssl-1.1.1g/apps/apps.c:228,1
    - Dst: UI_get0_user_data
      Src: /src/openssl-1.1.1g/apps/apps.c:229,1
    - Dst: UI_get_string_type
      Src: /src/openssl-1.1.1g/apps/apps.c:230,1
    - Dst: UI_get0_user_data
      Src: /src/openssl-1.1.1g/apps/apps.c:235,1
    - Dst: UI_method_get_writer
      Src: /src/openssl-1.1.1g/apps/apps.c:248,1
    - Dst: writer
      Src: /src/openssl-1.1.1g/apps/apps.c:250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 252
    functionName: ui_write
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - UI_get_input_flags
    - UI_get_string_type
    - UI_method_get_writer
    - UI_get0_user_data
    - writer
    linkageType: ''
    returnType: int
    signature: int ui_write(UI *ui, UI_STRING *uis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UI_method_get_closer
      Src: /src/openssl-1.1.1g/apps/apps.c:256,1
    - Dst: closer
      Src: /src/openssl-1.1.1g/apps/apps.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: ui_close
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - closer
    - UI_method_get_closer
    linkageType: ''
    returnType: int
    signature: int ui_close(UI *ui)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UI_null
      Src: /src/openssl-1.1.1g/apps/apps.c:265,1
    - Dst: UI_OpenSSL
      Src: /src/openssl-1.1.1g/apps/apps.c:267,1
    - Dst: UI_create_method
      Src: /src/openssl-1.1.1g/apps/apps.c:269,1
    - Dst: UI_method_set_opener
      Src: /src/openssl-1.1.1g/apps/apps.c:270,1
    - Dst: UI_method_set_reader
      Src: /src/openssl-1.1.1g/apps/apps.c:271,1
    - Dst: UI_method_set_writer
      Src: /src/openssl-1.1.1g/apps/apps.c:272,1
    - Dst: UI_method_set_closer
      Src: /src/openssl-1.1.1g/apps/apps.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 275
    functionName: setup_ui_method
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - UI_OpenSSL
    - UI_method_set_closer
    - UI_create_method
    - UI_method_set_writer
    - UI_null
    - UI_method_set_opener
    - UI_method_set_reader
    linkageType: ''
    returnType: int
    signature: int setup_ui_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UI_destroy_method
      Src: /src/openssl-1.1.1g/apps/apps.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 4
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: destroy_ui_method
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - UI_destroy_method
    linkageType: ''
    returnType: void
    signature: void destroy_ui_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: get_ui_method
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *get_ui_method(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UI_new_method
      Src: /src/openssl-1.1.1g/apps/apps.c:296,1
    - Dst: UI_construct_prompt
      Src: /src/openssl-1.1.1g/apps/apps.c:306,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:308,1
    - Dst: UI_free
      Src: /src/openssl-1.1.1g/apps/apps.c:309,1
    - Dst: UI_ctrl
      Src: /src/openssl-1.1.1g/apps/apps.c:314,1
    - Dst: UI_add_user_data
      Src: /src/openssl-1.1.1g/apps/apps.c:317,1
    - Dst: UI_add_input_string
      Src: /src/openssl-1.1.1g/apps/apps.c:319,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/apps.c:323,1
    - Dst: UI_add_verify_string
      Src: /src/openssl-1.1.1g/apps/apps.c:324,1
    - Dst: UI_process
      Src: /src/openssl-1.1.1g/apps/apps.c:329,1
    - Dst: UI_ctrl
      Src: /src/openssl-1.1.1g/apps/apps.c:330,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/apps/apps.c:332,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:335,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:337,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:338,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/apps/apps.c:339,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:343,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/apps/apps.c:344,1
    - Dst: UI_free
      Src: /src/openssl-1.1.1g/apps/apps.c:347,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:348,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - buf
    - bufsiz
    - verify
    - cb_tmp
    argTypes:
    - char*
    - int
    - int
    - PW_CB_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 351
    functionName: password_callback
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - UI_add_user_data
    - app_malloc
    - OPENSSL_free
    - OPENSSL_clear_free
    - UI_process
    - ERR_print_errors
    - UI_new_method
    - UI_construct_prompt
    - UI_ctrl
    - BIO_printf
    - UI_add_input_string
    - UI_add_verify_string
    - UI_free
    - strlen
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int password_callback(char *buf, int bufsiz, int verify, PW_CB_DATA
      *cb_tmp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/apps.c:358,1
    - Dst: app_get_pass
      Src: /src/openssl-1.1.1g/apps/apps.c:363,1
    - Dst: app_get_pass
      Src: /src/openssl-1.1.1g/apps/apps.c:370,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - arg1
    - arg2
    - pass1
    - pass2
    argTypes:
    - char*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 377
    functionName: app_passwd
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 14
    functionsReached:
    - strcmp
    - app_get_pass
    linkageType: ''
    returnType: int
    signature: int app_passwd(const char *arg1, const char *arg2, char **pass1, char
      **pass2)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/apps.c:385,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/apps.c:386,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/apps.c:387,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/apps/apps.c:388,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:390,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/apps.c:393,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/apps.c:396,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/apps.c:397,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:399,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/apps.c:411,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/apps.c:413,1
    - Dst: BIO_new_fd
      Src: /src/openssl-1.1.1g/apps/apps.c:415,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:417,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/apps.c:423,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/apps.c:423,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/apps.c:424,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/apps.c:426,1
    - Dst: dup_bio_in
      Src: /src/openssl-1.1.1g/apps/apps.c:427,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:429,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:433,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/apps.c:437,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/apps.c:439,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:443,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/apps.c:446,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/apps.c:449,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 2
    argNames:
    - arg
    - keepbio
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 379
    functionDepth: 5
    functionLinenumber: 379
    functionLinenumberEnd: 450
    functionName: app_get_pass
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - getenv
    - BIO_gets
    - strcmp
    - BIO_new
    - atoi
    - BIO_push
    - strchr
    - BIO_f_buffer
    - OPENSSL_strdup
    - BIO_printf
    - dup_bio_in
    - BIO_new_file
    - strncmp
    - BIO_free_all
    - BIO_new_fd
    linkageType: ''
    returnType: char
    signature: char *app_get_pass(const char *arg, int keepbio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/apps/apps.c:458,1
    - Dst: NCONF_load_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:459,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:464,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/apps.c:464,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:466,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/apps.c:466,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:470,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:472,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/apps.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - in
    - filename
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 476
    functionName: app_load_config_bio
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - opt_getprog
    - NCONF_new
    - NCONF_free
    - NCONF_load_bio
    - BIO_printf
    linkageType: ''
    returnType: CONF
    signature: CONF *app_load_config_bio(BIO *in, const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/apps.c:483,1
    - Dst: app_load_config_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:487,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 478
    functionDepth: 4
    functionLinenumber: 478
    functionLinenumberEnd: 490
    functionName: app_load_config
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 4
    functionsReached:
    - app_load_config_bio
    - bio_open_default
    - BIO_free
    linkageType: ''
    returnType: CONF
    signature: CONF *app_load_config(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default_quiet
      Src: /src/openssl-1.1.1g/apps/apps.c:497,1
    - Dst: app_load_config_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:501,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 492
    functionDepth: 4
    functionLinenumber: 492
    functionLinenumberEnd: 504
    functionName: app_load_config_quiet
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - bio_open_default_quiet
    - app_load_config_bio
    - BIO_free
    linkageType: ''
    returnType: CONF
    signature: CONF *app_load_config_quiet(const char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: app_load_config_quiet
      Src: /src/openssl-1.1.1g/apps/apps.c:511,1
    - Dst: CONF_modules_load
      Src: /src/openssl-1.1.1g/apps/apps.c:515,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:516,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:517,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/apps.c:518,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/apps.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 506
    functionDepth: 5
    functionLinenumber: 506
    functionLinenumberEnd: 523
    functionName: app_load_modules
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - CONF_modules_load
    - app_load_config_quiet
    - NCONF_free
    - BIO_printf
    - ERR_print_errors
    linkageType: ''
    returnType: int
    signature: int app_load_modules(const CONF *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/apps.c:528,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/apps.c:532,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/apps.c:533,1
    - Dst: NCONF_get_section
      Src: /src/openssl-1.1.1g/apps/apps.c:536,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:537,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/apps/apps.c:540,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/apps/apps.c:541,1
    - Dst: OBJ_create
      Src: /src/openssl-1.1.1g/apps/apps.c:542,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 525
    functionDepth: 8
    functionLinenumber: 525
    functionLinenumberEnd: 549
    functionName: add_oid_section
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - NCONF_get_string
    - OBJ_create
    - NCONF_get_section
    - sk_CONF_VALUE_num
    - STACK_OF
    - sk_CONF_VALUE_value
    - ERR_clear_error
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int add_oid_section(CONF *conf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PKCS12_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:559,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:561,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/apps/apps.c:565,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/apps/apps.c:565,1
    - Dst: pem_cb
      Src: /src/openssl-1.1.1g/apps/apps.c:570,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:572,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-1.1.1g/apps/apps.c:577,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:578,1
    - Dst: PKCS12_parse
      Src: /src/openssl-1.1.1g/apps/apps.c:585,1
    - Dst: PKCS12_free
      Src: /src/openssl-1.1.1g/apps/apps.c:587,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 7
    argNames:
    - in
    - desc
    - pem_cb
    - cb_data
    - pkey
    - cert
    - ca
    argTypes:
    - BIO*
    - char*
    - pem_password_cb*
    - void*
    - EVP_PKEY**
    - X509**
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 551
    functionDepth: 4
    functionLinenumber: 551
    functionLinenumberEnd: 589
    functionName: load_pkcs12
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - PKCS12_free
    - d2i_PKCS12_bio
    - PKCS12_parse
    - pem_cb
    - BIO_printf
    - PKCS12_verify_mac
    linkageType: ''
    returnType: int
    signature: "int load_pkcs12(BIO *in, const char *desc,\n                       pem_password_cb
      *pem_cb, void *cb_data,\n                       EVP_PKEY **pkey, X509 **cert,
      STACK_OF(X509) **ca)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_parse_url
      Src: /src/openssl-1.1.1g/apps/apps.c:598,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:601,1
    - Dst: BIO_new_connect
      Src: /src/openssl-1.1.1g/apps/apps.c:604,1
    - Dst: BIO_set_conn_port
      Src: /src/openssl-1.1.1g/apps/apps.c:605,1
    - Dst: OCSP_REQ_CTX_new
      Src: /src/openssl-1.1.1g/apps/apps.c:607,1
    - Dst: OCSP_REQ_CTX_http
      Src: /src/openssl-1.1.1g/apps/apps.c:610,1
    - Dst: OCSP_REQ_CTX_add1_header
      Src: /src/openssl-1.1.1g/apps/apps.c:612,1
    - Dst: X509_http_nbio
      Src: /src/openssl-1.1.1g/apps/apps.c:616,1
    - Dst: X509_CRL_http_nbio
      Src: /src/openssl-1.1.1g/apps/apps.c:620,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:625,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:626,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:627,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/apps.c:628,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openssl-1.1.1g/apps/apps.c:629,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:631,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:633,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - url
    - pcert
    - pcrl
    argTypes:
    - char*
    - X509**
    - X509_CRL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 592
    functionDepth: 5
    functionLinenumber: 592
    functionLinenumberEnd: 636
    functionName: load_cert_crl_http
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - OCSP_REQ_CTX_new
    - BIO_new_connect
    - OCSP_REQ_CTX_http
    - BIO_set_conn_port
    - OPENSSL_free
    - X509_CRL_http_nbio
    - OCSP_REQ_CTX_free
    - OCSP_REQ_CTX_add1_header
    - BIO_puts
    - X509_http_nbio
    - OCSP_parse_url
    - BIO_printf
    - ERR_print_errors
    - BIO_free_all
    linkageType: ''
    returnType: int
    signature: int load_cert_crl_http(const char *url, X509 **pcert, X509_CRL **pcrl)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_crl_http
      Src: /src/openssl-1.1.1g/apps/apps.c:646,1
    - Dst: unbuffer
      Src: /src/openssl-1.1.1g/apps/apps.c:652,1
    - Dst: dup_bio_in
      Src: /src/openssl-1.1.1g/apps/apps.c:653,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/apps.c:655,1
    - Dst: d2i_X509_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:661,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openssl-1.1.1g/apps/apps.c:663,1
    - Dst: load_pkcs12
      Src: /src/openssl-1.1.1g/apps/apps.c:666,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:669,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:674,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:675,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:677,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - file
    - format
    - cert_descrip
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 639
    functionDepth: 6
    functionLinenumber: 639
    functionLinenumberEnd: 679
    functionName: load_cert
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 8
    functionsReached:
    - load_pkcs12
    - load_cert_crl_http
    - unbuffer
    - ERR_print_errors
    - BIO_free
    - BIO_printf
    - PEM_read_bio_X509_AUX
    - d2i_X509_bio
    - bio_open_default
    - dup_bio_in
    linkageType: ''
    returnType: X509
    signature: X509 *load_cert(const char *file, int format, const char *cert_descrip)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_crl_http
      Src: /src/openssl-1.1.1g/apps/apps.c:688,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/apps.c:693,1
    - Dst: d2i_X509_CRL_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:697,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openssl-1.1.1g/apps/apps.c:699,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:701,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:705,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:706,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:711,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - infile
    - format
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 681
    functionDepth: 6
    functionLinenumber: 681
    functionLinenumberEnd: 713
    functionName: load_crl
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - load_cert_crl_http
    - d2i_X509_CRL_bio
    - ERR_print_errors
    - BIO_free
    - BIO_printf
    - PEM_read_bio_X509_CRL
    - bio_open_default
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *load_crl(const char *infile, int format)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:726,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:731,1
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/apps/apps.c:734,1
    - Dst: ENGINE_load_private_key
      Src: /src/openssl-1.1.1g/apps/apps.c:735,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/apps/apps.c:736,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:739,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:740,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:743,1
    - Dst: unbuffer
      Src: /src/openssl-1.1.1g/apps/apps.c:749,1
    - Dst: dup_bio_in
      Src: /src/openssl-1.1.1g/apps/apps.c:750,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/apps.c:752,1
    - Dst: d2i_PrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:757,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/apps/apps.c:759,1
    - Dst: load_pkcs12
      Src: /src/openssl-1.1.1g/apps/apps.c:763,1
    - Dst: b2i_PrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:769,1
    - Dst: b2i_PVK_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:771,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:775,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:779,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:781,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:782,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 6
    argNames:
    - file
    - format
    - maybe_stdin
    - pass
    - e
    - key_descrip
    argTypes:
    - char*
    - int
    - int
    - char*
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 715
    functionDepth: 6
    functionLinenumber: 715
    functionLinenumberEnd: 785
    functionName: load_key
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 16
    functionsReached:
    - load_pkcs12
    - b2i_PVK_bio
    - b2i_PrivateKey_bio
    - bio_open_default
    - unbuffer
    - ENGINE_load_private_key
    - PEM_read_bio_PrivateKey
    - ENGINE_finish
    - BIO_free
    - BIO_printf
    - d2i_PrivateKey_bio
    - ERR_print_errors
    - ENGINE_init
    - dup_bio_in
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *load_key(const char *file, int format, int maybe_stdin,\n
      \                  const char *pass, ENGINE *e, const char *key_descrip)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:798,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:803,1
    - Dst: ENGINE_load_public_key
      Src: /src/openssl-1.1.1g/apps/apps.c:806,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:808,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:809,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:812,1
    - Dst: unbuffer
      Src: /src/openssl-1.1.1g/apps/apps.c:818,1
    - Dst: dup_bio_in
      Src: /src/openssl-1.1.1g/apps/apps.c:819,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/apps.c:821,1
    - Dst: d2i_PUBKEY_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:826,1
    - Dst: d2i_RSAPublicKey_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:830,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/apps/apps.c:832,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openssl-1.1.1g/apps/apps.c:834,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/apps/apps.c:835,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:838,1
    - Dst: PEM_read_bio_RSAPublicKey
      Src: /src/openssl-1.1.1g/apps/apps.c:844,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/apps/apps.c:848,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openssl-1.1.1g/apps/apps.c:850,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/apps/apps.c:851,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:854,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/openssl-1.1.1g/apps/apps.c:858,1
    - Dst: b2i_PublicKey_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:863,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:867,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:869,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 6
    argNames:
    - file
    - format
    - maybe_stdin
    - pass
    - e
    - key_descrip
    argTypes:
    - char*
    - int
    - int
    - char*
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 787
    functionDepth: 7
    functionLinenumber: 787
    functionLinenumberEnd: 871
    functionName: load_pubkey
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 7
    functionsReached:
    - d2i_PUBKEY_bio
    - ENGINE_load_public_key
    - b2i_PublicKey_bio
    - bio_open_default
    - PEM_read_bio_PUBKEY
    - unbuffer
    - PEM_read_bio_RSAPublicKey
    - EVP_PKEY_set1_RSA
    - BIO_printf
    - EVP_PKEY_new
    - BIO_free
    - ERR_print_errors
    - RSA_free
    - d2i_RSAPublicKey_bio
    - dup_bio_in
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *load_pubkey(const char *file, int format, int maybe_stdin,\n
      \                     const char *pass, ENGINE *e, const char *key_descrip)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/apps.c:880,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:889,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/apps.c:893,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/openssl-1.1.1g/apps/apps.c:897,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:901,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/apps/apps.c:904,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openssl-1.1.1g/apps/apps.c:910,1
    - Dst: sk_X509_INFO_num
      Src: /src/openssl-1.1.1g/apps/apps.c:915,1
    - Dst: sk_X509_INFO_value
      Src: /src/openssl-1.1.1g/apps/apps.c:916,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/apps.c:918,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-1.1.1g/apps/apps.c:923,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/apps.c:929,1
    - Dst: sk_X509_CRL_num
      Src: /src/openssl-1.1.1g/apps/apps.c:932,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/openssl-1.1.1g/apps/apps.c:937,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/apps.c:941,1
    - Dst: sk_X509_CRL_pop_free
      Src: /src/openssl-1.1.1g/apps/apps.c:945,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:948,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:950,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 6
    argNames:
    - file
    - format
    - pass
    - desc
    - pcerts
    - pcrls
    argTypes:
    - char*
    - int
    - char*
    - char*
    - STACK_OF**
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 873
    functionDepth: 5
    functionLinenumber: 873
    functionLinenumberEnd: 953
    functionName: load_certs_crls
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - sk_X509_INFO_value
    - sk_X509_push
    - sk_X509_CRL_push
    - sk_X509_CRL_num
    - PEM_X509_INFO_read_bio
    - sk_X509_new_null
    - sk_X509_CRL_pop_free
    - STACK_OF
    - ERR_print_errors
    - sk_X509_INFO_pop_free
    - sk_X509_num
    - sk_X509_pop_free
    - BIO_free
    - BIO_printf
    - sk_X509_CRL_new_null
    - bio_open_default
    - sk_X509_INFO_num
    linkageType: ''
    returnType: int
    signature: "int load_certs_crls(const char *file, int format,\n                           const
      char *pass, const char *desc,\n                           STACK_OF(X509) **pcerts,\n
      \                          STACK_OF(X509_CRL) **pcrls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/apps/apps.c:957,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:960,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/apps.c:961,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:962,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/apps/apps.c:963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sz
    - what
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 955
    functionDepth: 5
    functionLinenumber: 955
    functionLinenumberEnd: 966
    functionName: app_malloc
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 29
    functionsReached:
    - OPENSSL_malloc
    - opt_getprog
    - exit
    - BIO_printf
    - ERR_print_errors
    linkageType: ''
    returnType: void
    signature: void * app_malloc(int sz, const char *what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_certs_crls
      Src: /src/openssl-1.1.1g/apps/apps.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - file
    - certs
    - format
    - pass
    - desc
    argTypes:
    - char*
    - STACK_OF**
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 6
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: load_certs
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 5
    functionsReached:
    - load_certs_crls
    linkageType: ''
    returnType: int
    signature: "int load_certs(const char *file, STACK_OF(X509) **certs, int format,\n
      \              const char *pass, const char *desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_certs_crls
      Src: /src/openssl-1.1.1g/apps/apps.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - file
    - crls
    - format
    - pass
    - desc
    argTypes:
    - char*
    - STACK_OF**
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 980
    functionDepth: 6
    functionLinenumber: 980
    functionLinenumberEnd: 984
    functionName: load_crls
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - load_certs_crls
    linkageType: ''
    returnType: int
    signature: "int load_crls(const char *file, STACK_OF(X509_CRL) **crls, int format,\n
      \             const char *pass, const char *desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_multi_opts
      Src: /src/openssl-1.1.1g/apps/apps.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - flags
    - arg
    argTypes:
    - unsigned long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1023
    functionName: set_cert_ex
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 3
    functionsReached:
    - set_multi_opts
    linkageType: ''
    returnType: int
    signature: int set_cert_ex(unsigned long *flags, const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_multi_opts
      Src: /src/openssl-1.1.1g/apps/apps.c:1058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - flags
    - arg
    argTypes:
    - unsigned long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1064
    functionName: set_name_ex
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - set_multi_opts
    linkageType: ''
    returnType: int
    signature: int set_name_ex(unsigned long *flags, const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/apps.c:1068,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/apps.c:1070,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/apps.c:1072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - copy_type
    - arg
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1077
    functionName: set_ext_copy
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int set_ext_copy(int *copy_type, const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/apps.c:1081,1
    - Dst: X509_REQ_get_extensions
      Src: /src/openssl-1.1.1g/apps/apps.c:1087,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/apps/apps.c:1089,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/apps/apps.c:1090,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-1.1.1g/apps/apps.c:1091,1
    - Dst: X509_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/apps/apps.c:1092,1
    - Dst: X509_get_ext
      Src: /src/openssl-1.1.1g/apps/apps.c:1100,1
    - Dst: X509_delete_ext
      Src: /src/openssl-1.1.1g/apps/apps.c:1101,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1102,1
    - Dst: X509_get_ext_by_OBJ
      Src: /src/openssl-1.1.1g/apps/apps.c:1103,1
    - Dst: X509_add_ext
      Src: /src/openssl-1.1.1g/apps/apps.c:1106,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - x
    - req
    - copy_type
    argTypes:
    - X509*
    - X509_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1117
    functionName: copy_extensions
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - X509_get_ext
    - X509_get_ext_by_OBJ
    - X509_EXTENSION_get_object
    - X509_delete_ext
    - STACK_OF
    - X509_REQ_get_extensions
    - sk_X509_EXTENSION_pop_free
    - X509_add_ext
    - X509_EXTENSION_free
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: int copy_extensions(X509 *x, X509_REQ *req, int copy_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/apps.c:1122,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-1.1.1g/apps/apps.c:1127,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/apps/apps.c:1128,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/apps/apps.c:1129,1
    - Dst: set_table_opts
      Src: /src/openssl-1.1.1g/apps/apps.c:1130,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - flags
    - arg
    - in_tbl
    argTypes:
    - unsigned long*
    - char*
    - NAME_EX_TBL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1135
    functionName: set_multi_opts
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - sk_CONF_VALUE_num
    - X509V3_parse_list
    - STACK_OF
    - sk_CONF_VALUE_pop_free
    - sk_CONF_VALUE_value
    - set_table_opts
    linkageType: ''
    returnType: int
    signature: "int set_multi_opts(unsigned long *flags, const char *arg,\n                          const
      NAME_EX_TBL * in_tbl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/apps.c:1155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - flags
    - arg
    - in_tbl
    argTypes:
    - unsigned long*
    - char*
    - NAME_EX_TBL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1165
    functionName: set_table_opts
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: "int set_table_opts(unsigned long *flags, const char *arg,\n                          const
      NAME_EX_TBL * in_tbl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:1175,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-1.1.1g/apps/apps.c:1181,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:1182,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:1183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1184,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:1187,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/apps/apps.c:1188,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:1189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - out
    - title
    - nm
    - lflags
    argTypes:
    - BIO*
    - char*
    - X509_NAME*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1167
    functionDepth: 7
    functionLinenumber: 1167
    functionLinenumberEnd: 1191
    functionName: print_name
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 5
    functionsReached:
    - BIO_puts
    - OPENSSL_free
    - X509_NAME_print_ex
    - X509_NAME_oneline
    linkageType: ''
    returnType: void
    signature: "void print_name(BIO *out, const char *title, X509_NAME *nm,\n                unsigned
      long lflags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1196,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/apps/apps.c:1197,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1198,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/apps/apps.c:1202,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1204,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1206,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1208,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - out
    - in
    - var
    - len
    - buffer
    argTypes:
    - BIO*
    - BIGNUM*
    - char*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1193
    functionDepth: 3
    functionLinenumber: 1193
    functionLinenumberEnd: 1212
    functionName: print_bignum_var
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 3
    functionsReached:
    - BN_bn2bin
    - BN_is_zero
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void print_bignum_var(BIO *out, const BIGNUM *in, const char *var,\n
      \                     int len, unsigned char *buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1218,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1221,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1223,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1225,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - out
    - title
    - len
    - d
    argTypes:
    - BIO*
    - char*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1214
    functionDepth: 2
    functionLinenumber: 1214
    functionLinenumberEnd: 1228
    functionName: print_array
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void print_array(BIO *out, const char* title, int len, const unsigned
      char* d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/apps/apps.c:1232,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/apps/apps.c:1239,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-1.1.1g/apps/apps.c:1239,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openssl-1.1.1g/apps/apps.c:1243,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1244,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openssl-1.1.1g/apps/apps.c:1248,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/apps/apps.c:1253,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openssl-1.1.1g/apps/apps.c:1253,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openssl-1.1.1g/apps/apps.c:1257,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1258,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openssl-1.1.1g/apps/apps.c:1262,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/apps.c:1266,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1269,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 4
    argNames:
    - CAfile
    - CApath
    - noCAfile
    - noCApath
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1230
    functionDepth: 4
    functionLinenumber: 1230
    functionLinenumberEnd: 1271
    functionName: setup_verify
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 4
    functionsReached:
    - X509_STORE_free
    - X509_LOOKUP_hash_dir
    - X509_LOOKUP_file
    - X509_LOOKUP_add_dir
    - X509_STORE_add_lookup
    - X509_STORE_new
    - ERR_clear_error
    - BIO_printf
    - X509_LOOKUP_load_file
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *setup_verify(const char *CAfile, const char *CApath, int
      noCAfile, int noCApath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/apps/apps.c:1277,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/apps/apps.c:1279,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-1.1.1g/apps/apps.c:1280,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - engine
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1275
    functionDepth: 7
    functionLinenumber: 1275
    functionLinenumberEnd: 1286
    functionName: try_load_engine
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - ENGINE_by_id
    - ENGINE_free
    - ENGINE_ctrl_cmd_string
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *try_load_engine(const char *engine)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/apps.c:1295,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1296,1
    - Dst: ENGINE_register_all_complete
      Src: /src/openssl-1.1.1g/apps/apps.c:1297,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/apps/apps.c:1300,1
    - Dst: try_load_engine
      Src: /src/openssl-1.1.1g/apps/apps.c:1301,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1302,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:1303,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-1.1.1g/apps/apps.c:1307,1
    - Dst: ENGINE_ctrl_cmd
      Src: /src/openssl-1.1.1g/apps/apps.c:1309,1
    - Dst: ENGINE_set_default
      Src: /src/openssl-1.1.1g/apps/apps.c:1310,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1311,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:1312,1
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1313,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1317,1
    - Dst: ENGINE_get_id
      Src: /src/openssl-1.1.1g/apps/apps.c:1317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - engine
    - debug
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1289
    functionDepth: 8
    functionLinenumber: 1289
    functionLinenumberEnd: 1321
    functionName: setup_engine
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 20
    functionsReached:
    - ENGINE_set_default
    - ENGINE_ctrl
    - ENGINE_get_id
    - strcmp
    - ENGINE_by_id
    - ENGINE_free
    - ENGINE_register_all_complete
    - BIO_printf
    - try_load_engine
    - ERR_print_errors
    - ENGINE_ctrl_cmd
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *setup_engine(const char *engine, int debug)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1323
    functionDepth: 5
    functionLinenumber: 1323
    functionLinenumberEnd: 1330
    functionName: release_engine
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 19
    functionsReached:
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: void release_engine(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-1.1.1g/apps/apps.c:1339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - OPENSSL_CSTRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1340
    functionName: index_serial_hash
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long index_serial_hash(const OPENSSL_CSTRING *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/apps.c:1349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OPENSSL_CSTRING*
    - OPENSSL_CSTRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1350
    functionName: index_serial_cmp
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int index_serial_cmp(const OPENSSL_CSTRING *a,\n                            const
      OPENSSL_CSTRING *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1355
    functionName: index_name_qual
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int index_name_qual(char **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-1.1.1g/apps/apps.c:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - OPENSSL_CSTRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1360
    functionName: index_name_hash
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long index_name_hash(const OPENSSL_CSTRING *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/apps.c:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OPENSSL_CSTRING*
    - OPENSSL_CSTRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1365
    functionName: index_name_cmp
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int index_name_cmp(const OPENSSL_CSTRING *a, const OPENSSL_CSTRING
      *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/apps.c:1387,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/apps.c:1390,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/apps.c:1391,1
    - Dst: rand_serial
      Src: /src/openssl-1.1.1g/apps/apps.c:1392,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1367
    functionDepth: 2
    functionLinenumber: 1367
    functionLinenumberEnd: 1394
    functionName: BIO_new_file
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 60
    functionsReached:
    - BN_new
    - rand_serial
    - ERR_clear_error
    - BIO_printf
    - perror
    linkageType: ''
    returnType: void
    signature: "void BIO_new_file(serialfile, \"r\");\n    if (in == NULL)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1428,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1430,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1430,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1432,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-1.1.1g/apps/apps.c:1437,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1440,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1442,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/apps.c:1445,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:1447,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/apps.c:1451,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1452,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/apps.c:1455,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:1456,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/apps.c:1463,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1464,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - serialfile
    - suffix
    - serial
    - retai
    argTypes:
    - char*
    - char*
    - BIGNUM*
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1418
    functionDepth: 5
    functionLinenumber: 1418
    functionLinenumberEnd: 1466
    functionName: save_serial
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - BIO_snprintf
    - i2a_ASN1_INTEGER
    - BIO_free_all
    - ASN1_INTEGER_free
    - BN_to_ASN1_INTEGER
    - ERR_print_errors
    - OPENSSL_strlcpy
    - BIO_puts
    - BIO_printf
    - BIO_new_file
    - strlen
    linkageType: ''
    returnType: int
    signature: "int save_serial(const char *serialfile, const char *suffix, const
      BIGNUM *serial,\n                ASN1_INTEGER **retai)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1474,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1474,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1475,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1475,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1479,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1483,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1484,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1486,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1487,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1489,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1494,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/apps.c:1496,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1499,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1500,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/apps.c:1502,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1503,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - serialfile
    - new_suffix
    - old_suffix
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1468
    functionDepth: 2
    functionLinenumber: 1468
    functionLinenumberEnd: 1509
    functionName: rotate_serial
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - rename
    - BIO_printf
    - perror
    - strlen
    linkageType: ''
    returnType: int
    signature: "int rotate_serial(const char *serialfile, const char *new_suffix,\n
      \                 const char *old_suffix)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/apps/apps.c:1516,1
    - Dst: BN_rand
      Src: /src/openssl-1.1.1g/apps/apps.c:1520,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/apps.c:1522,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - b
    - ai
    argTypes:
    - BIGNUM*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1511
    functionDepth: 6
    functionLinenumber: 1511
    functionLinenumberEnd: 1533
    functionName: rand_serial
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 4
    functionsReached:
    - BN_rand
    - BN_new
    - BN_to_ASN1_INTEGER
    - BN_free
    linkageType: ''
    returnType: int
    signature: int rand_serial(BIGNUM *b, ASN1_INTEGER *ai)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/apps.c:1547,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:1549,1
    - Dst: BIO_get_fp
      Src: /src/openssl-1.1.1g/apps/apps.c:1554,1
    - Dst: fstat
      Src: /src/openssl-1.1.1g/apps/apps.c:1555,1
    - Dst: fileno
      Src: /src/openssl-1.1.1g/apps/apps.c:1555,1
    - Dst: SYSerr
      Src: /src/openssl-1.1.1g/apps/apps.c:1556,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/apps/apps.c:1557,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:1558,1
    - Dst: TXT_DB_read
      Src: /src/openssl-1.1.1g/apps/apps.c:1563,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1567,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1569,1
    - Dst: app_load_config_quiet
      Src: /src/openssl-1.1.1g/apps/apps.c:1571,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/apps.c:1573,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/apps.c:1583,1
    - Dst: parse_yesno
      Src: /src/openssl-1.1.1g/apps/apps.c:1585,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/apps.c:1589,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1595,1
    - Dst: TXT_DB_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1596,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/apps.c:1597,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - dbfile
    - db_attr
    argTypes:
    - char*
    - DB_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1535
    functionDepth: 6
    functionLinenumber: 1535
    functionLinenumberEnd: 1599
    functionName: load_index
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - BIO_snprintf
    - TXT_DB_read
    - app_malloc
    - BIO_free_all
    - NCONF_free
    - ERR_add_error_data
    - ERR_print_errors
    - OPENSSL_strdup
    - parse_yesno
    - BIO_new_file
    - app_load_config_quiet
    - TXT_DB_free
    - BIO_get_fp
    - SYSerr
    - fileno
    - fstat
    linkageType: ''
    returnType: CA_DB
    signature: CA_DB *load_index(const char *dbfile, DB_ATTR *db_attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TXT_DB_create_index
      Src: /src/openssl-1.1.1g/apps/apps.c:1606,1
    - Dst: LHASH_HASH_FN
      Src: /src/openssl-1.1.1g/apps/apps.c:1607,1
    - Dst: LHASH_COMP_FN
      Src: /src/openssl-1.1.1g/apps/apps.c:1608,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1609,1
    - Dst: TXT_DB_create_index
      Src: /src/openssl-1.1.1g/apps/apps.c:1616,1
    - Dst: LHASH_HASH_FN
      Src: /src/openssl-1.1.1g/apps/apps.c:1617,1
    - Dst: LHASH_COMP_FN
      Src: /src/openssl-1.1.1g/apps/apps.c:1618,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - db
    argTypes:
    - CA_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1604
    functionDepth: 2
    functionLinenumber: 1604
    functionLinenumberEnd: 1624
    functionName: index_index
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - LHASH_COMP_FN
    - LHASH_HASH_FN
    - TXT_DB_create_index
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int index_index(CA_DB *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1632,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1632,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1634,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1638,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1639,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1640,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1642,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1643,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1644,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/apps.c:1646,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/apps.c:1648,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1649,1
    - Dst: TXT_DB_write
      Src: /src/openssl-1.1.1g/apps/apps.c:1652,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1653,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/apps.c:1657,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/apps.c:1659,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1660,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1663,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1665,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - dbfile
    - suffix
    - db
    argTypes:
    - char*
    - char*
    - CA_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1626
    functionDepth: 4
    functionLinenumber: 1626
    functionLinenumberEnd: 1670
    functionName: save_index
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - TXT_DB_write
    - BIO_free
    - BIO_printf
    - BIO_new_file
    - perror
    - strlen
    linkageType: ''
    returnType: int
    signature: int save_index(const char *dbfile, const char *suffix, CA_DB *db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1678,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1678,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1679,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1679,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1683,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1687,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1688,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1689,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1690,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1691,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1693,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1694,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1695,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1696,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/apps/apps.c:1697,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1699,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1704,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/apps.c:1705,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1708,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1709,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/apps.c:1710,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1711,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1714,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1719,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/apps.c:1720,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1721,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1722,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1725,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1726,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/apps.c:1727,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1728,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1729,1
    - Dst: rename
      Src: /src/openssl-1.1.1g/apps/apps.c:1730,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - dbfile
    - new_suffix
    - old_suffix
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1672
    functionDepth: 2
    functionLinenumber: 1672
    functionLinenumberEnd: 1736
    functionName: rotate_index
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - rename
    - BIO_printf
    - perror
    - strlen
    linkageType: ''
    returnType: int
    signature: "int rotate_index(const char *dbfile, const char *new_suffix,\n                 const
      char *old_suffix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TXT_DB_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1741,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1742,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - CA_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1738
    functionDepth: 2
    functionLinenumber: 1738
    functionLinenumberEnd: 1745
    functionName: free_index
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - TXT_DB_free
    linkageType: ''
    returnType: void
    signature: void free_index(CA_DB *db)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - str
    - def
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1747
    functionDepth: 0
    functionLinenumber: 1747
    functionLinenumberEnd: 1766
    functionName: parse_yesno
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_yesno(const char *str, int def)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1779,1
    - Dst: X509_NAME_new
      Src: /src/openssl-1.1.1g/apps/apps.c:1787,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/apps.c:1790,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1806,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/apps.c:1808,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1822,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/apps.c:1824,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-1.1.1g/apps/apps.c:1835,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1837,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/apps.c:1838,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1842,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/apps.c:1844,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openssl-1.1.1g/apps/apps.c:1847,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1848,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1853,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1857,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1858,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 3
    argNames:
    - cp
    - chtype
    - canmulti
    argTypes:
    - char*
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1772
    functionDepth: 8
    functionLinenumber: 1772
    functionLinenumberEnd: 1860
    functionName: parse_name
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - X509_NAME_add_entry_by_NID
    - opt_getprog
    - X509_NAME_new
    - OPENSSL_free
    - OBJ_txt2nid
    - OPENSSL_strdup
    - X509_NAME_free
    - BIO_printf
    - strlen
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *parse_name(const char *cp, long chtype, int canmulti)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/apps.c:1873,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/apps/apps.c:1873,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/apps.c:1881,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1883,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/apps.c:1888,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1889,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/apps/apps.c:1897,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/apps/apps.c:1898,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1899,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - out
    - maxlen
    - in
    argTypes:
    - unsigned char**
    - int
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1867
    functionDepth: 4
    functionLinenumber: 1867
    functionLinenumberEnd: 1901
    functionName: bio_to_mem
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_get_mem_data
    - BIO_write
    - BIO_set_flags
    - BIO_s_mem
    - BIO_free
    - BIO_new
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int bio_to_mem(unsigned char **out, int maxlen, BIO *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/apps.c:1907,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/apps.c:1910,1
    - Dst: EVP_PKEY_CTX_ctrl_str
      Src: /src/openssl-1.1.1g/apps/apps.c:1915,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1903
    functionDepth: 2
    functionLinenumber: 1903
    functionLinenumberEnd: 1918
    functionName: pkey_ctrl_string
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 5
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - strchr
    - EVP_PKEY_CTX_ctrl_str
    linkageType: ''
    returnType: int
    signature: int pkey_ctrl_string(EVP_PKEY_CTX *ctx, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1925,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:1927,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-1.1.1g/apps/apps.c:1928,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-1.1.1g/apps/apps.c:1929,1
    - Dst: X509_POLICY_NODE_print
      Src: /src/openssl-1.1.1g/apps/apps.c:1930,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/apps.c:1933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - name
    - nodes
    argTypes:
    - char*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1920
    functionDepth: 6
    functionLinenumber: 1920
    functionLinenumberEnd: 1935
    functionName: nodes_print
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - X509_POLICY_NODE_print
    - sk_X509_POLICY_NODE_value
    - BIO_puts
    - BIO_printf
    - sk_X509_POLICY_NODE_num
    linkageType: ''
    returnType: void
    signature: void nodes_print(const char *name, STACK_OF(X509_POLICY_NODE) *nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get0_policy_tree
      Src: /src/openssl-1.1.1g/apps/apps.c:1941,1
    - Dst: X509_STORE_CTX_get_explicit_policy
      Src: /src/openssl-1.1.1g/apps/apps.c:1942,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:1944,1
    - Dst: nodes_print
      Src: /src/openssl-1.1.1g/apps/apps.c:1947,1
    - Dst: X509_policy_tree_get0_policies
      Src: /src/openssl-1.1.1g/apps/apps.c:1947,1
    - Dst: nodes_print
      Src: /src/openssl-1.1.1g/apps/apps.c:1948,1
    - Dst: X509_policy_tree_get0_user_policies
      Src: /src/openssl-1.1.1g/apps/apps.c:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1937
    functionDepth: 7
    functionLinenumber: 1937
    functionLinenumberEnd: 1949
    functionName: policies_print
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - X509_STORE_CTX_get0_policy_tree
    - X509_STORE_CTX_get_explicit_policy
    - nodes_print
    - X509_policy_tree_get0_policies
    - BIO_printf
    - X509_policy_tree_get0_user_policies
    linkageType: ''
    returnType: void
    signature: void policies_print(X509_STORE_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:1967,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/apps.c:1971,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:1989,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:2000,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - outlen
    - in
    argTypes:
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1960
    functionDepth: 6
    functionLinenumber: 1960
    functionLinenumberEnd: 2006
    functionName: next_protos_parse
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - app_malloc
    - strlen
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *next_protos_parse(size_t *outlen, const char *in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:2015,1
    - Dst: X509_check_host
      Src: /src/openssl-1.1.1g/apps/apps.c:2017,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:2022,1
    - Dst: X509_check_email
      Src: /src/openssl-1.1.1g/apps/apps.c:2023,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:2028,1
    - Dst: X509_check_ip_asc
      Src: /src/openssl-1.1.1g/apps/apps.c:2029,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - bio
    - x
    - checkhost
    - checkemail
    - checkip
    argTypes:
    - BIO*
    - X509*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2008
    functionDepth: 5
    functionLinenumber: 2008
    functionLinenumberEnd: 2031
    functionName: print_cert_checks
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - X509_check_email
    - X509_check_ip_asc
    - X509_check_host
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void print_cert_checks(BIO *bio, X509 *x,\n                       const
      char *checkhost,\n                       const char *checkemail, const char
      *checkip)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-1.1.1g/apps/apps.c:2044,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-1.1.1g/apps/apps.c:2045,1
    - Dst: GENERAL_NAME_get0_value
      Src: /src/openssl-1.1.1g/apps/apps.c:2046,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-1.1.1g/apps/apps.c:2047,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-1.1.1g/apps/apps.c:2048,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/apps.c:2049,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - dp
    argTypes:
    - DIST_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2054
    functionName: get_dp_url
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - ASN1_STRING_length
    - strncmp
    - GENERAL_NAME_get0_value
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: char
    signature: char *get_dp_url(DIST_POINT *dp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_DIST_POINT_num
      Src: /src/openssl-1.1.1g/apps/apps.c:2065,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openssl-1.1.1g/apps/apps.c:2066,1
    - Dst: get_dp_url
      Src: /src/openssl-1.1.1g/apps/apps.c:2067,1
    - Dst: load_crl
      Src: /src/openssl-1.1.1g/apps/apps.c:2069,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - crldp
    argTypes:
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2061
    functionDepth: 7
    functionLinenumber: 2061
    functionLinenumberEnd: 2072
    functionName: load_crl_crldp
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - load_crl
    - sk_DIST_POINT_value
    - get_dp_url
    - sk_DIST_POINT_num
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *load_crl_crldp(STACK_OF(DIST_POINT) *crldp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/apps.c:2083,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/apps.c:2085,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openssl-1.1.1g/apps/apps.c:2087,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openssl-1.1.1g/apps/apps.c:2090,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/apps/apps.c:2091,1
    - Dst: load_crl_crldp
      Src: /src/openssl-1.1.1g/apps/apps.c:2092,1
    - Dst: sk_DIST_POINT_pop_free
      Src: /src/openssl-1.1.1g/apps/apps.c:2093,1
    - Dst: sk_X509_CRL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:2095,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-1.1.1g/apps/apps.c:2098,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/apps/apps.c:2100,1
    - Dst: load_crl_crldp
      Src: /src/openssl-1.1.1g/apps/apps.c:2101,1
    - Dst: sk_DIST_POINT_pop_free
      Src: /src/openssl-1.1.1g/apps/apps.c:2102,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-1.1.1g/apps/apps.c:2104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - nm
    argTypes:
    - X509_STORE_CTX*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2080
    functionDepth: 8
    functionLinenumber: 2080
    functionLinenumberEnd: 2106
    functionName: crls_http_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - sk_X509_CRL_push
    - X509_get_ext_d2i
    - sk_DIST_POINT_pop_free
    - STACK_OF
    - X509_STORE_CTX_get_current_cert
    - sk_X509_CRL_free
    - load_crl_crldp
    - sk_X509_CRL_new_null
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *crls_http_cb(X509_STORE_CTX *ctx, X509_NAME *nm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_set_lookup_crls_cb
      Src: /src/openssl-1.1.1g/apps/apps.c:2110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2111
    functionName: store_setup_crl_download
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - X509_STORE_set_lookup_crls_cb
    linkageType: ''
    returnType: void
    signature: void store_setup_crl_download(X509_STORE *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2120
    functionName: fileno
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fileno(a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_winnt
      Src: /src/openssl-1.1.1g/apps/apps.c:2188,1
    - Dst: OpenProcess
      Src: /src/openssl-1.1.1g/apps/apps.c:2189,1
    - Dst: GetCurrentProcessId
      Src: /src/openssl-1.1.1g/apps/apps.c:2190,1
    - Dst: GetProcessTimes
      Src: /src/openssl-1.1.1g/apps/apps.c:2197,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:2204,1
    - Dst: GetSystemTime
      Src: /src/openssl-1.1.1g/apps/apps.c:2208,1
    - Dst: SystemTimeToFileTime
      Src: /src/openssl-1.1.1g/apps/apps.c:2209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2178
    functionDepth: 2
    functionLinenumber: 2178
    functionLinenumberEnd: 2225
    functionName: app_tminterval
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 4
    functionsReached:
    - GetSystemTime
    - check_winnt
    - GetCurrentProcessId
    - OpenProcess
    - BIO_printf
    - GetProcessTimes
    - SystemTimeToFileTime
    linkageType: ''
    returnType: double
    signature: double app_tminterval(int stop, int usertime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:2242,1
    - Dst: clock_gettime
      Src: /src/openssl-1.1.1g/apps/apps.c:2247,1
    - Dst: tickGet
      Src: /src/openssl-1.1.1g/apps/apps.c:2254,1
    - Dst: sysClkRateGet
      Src: /src/openssl-1.1.1g/apps/apps.c:2258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2229
    functionDepth: 2
    functionLinenumber: 2229
    functionLinenumberEnd: 2261
    functionName: app_tminterval
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 4
    functionsReached:
    - tickGet
    - sysClkRateGet
    - clock_gettime
    - BIO_printf
    linkageType: ''
    returnType: double
    signature: double app_tminterval(int stop, int usertime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: times
      Src: /src/openssl-1.1.1g/apps/apps.c:2275,1
    - Dst: clock
      Src: /src/openssl-1.1.1g/apps/apps.c:2280,1
    - Dst: gettimeofday
      Src: /src/openssl-1.1.1g/apps/apps.c:2283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2267
    functionDepth: 0
    functionLinenumber: 2267
    functionLinenumberEnd: 2295
    functionName: app_tminterval
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 4
    functionsReached:
    - clock
    - times
    - gettimeofday
    linkageType: ''
    returnType: double
    signature: double app_tminterval(int stop, int usertime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: times
      Src: /src/openssl-1.1.1g/apps/apps.c:2304,1
    - Dst: sysconf
      Src: /src/openssl-1.1.1g/apps/apps.c:2313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2318
    functionName: app_tminterval
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 4
    functionsReached:
    - times
    - sysconf
    linkageType: ''
    returnType: double
    signature: double app_tminterval(int stop, int usertime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrusage
      Src: /src/openssl-1.1.1g/apps/apps.c:2332,1
    - Dst: gettimeofday
      Src: /src/openssl-1.1.1g/apps/apps.c:2334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2324
    functionDepth: 0
    functionLinenumber: 2324
    functionLinenumberEnd: 2343
    functionName: app_tminterval
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 4
    functionsReached:
    - getrusage
    - gettimeofday
    linkageType: ''
    returnType: double
    signature: double app_tminterval(int stop, int usertime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _access
      Src: /src/openssl-1.1.1g/apps/apps.c:2349,1
    - Dst: access
      Src: /src/openssl-1.1.1g/apps/apps.c:2351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - flag
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2353
      start: 2346
    functionDepth: 0
    functionLinenumber: 2346
    functionLinenumberEnd: 2353
    functionName: app_access
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - access
    - _access
    linkageType: ''
    returnType: int
    signature: int app_access(const char* name, int flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/apps.c:2361,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-1.1.1g/apps/apps.c:2368,1
    - Dst: GetFileAttributes
      Src: /src/openssl-1.1.1g/apps/apps.c:2373,1
    - Dst: GetFileAttributes
      Src: /src/openssl-1.1.1g/apps/apps.c:2375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2357
    functionDepth: 1
    functionLinenumber: 2357
    functionLinenumberEnd: 2380
    functionName: app_isdir
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - GetFileAttributes
    - MultiByteToWideChar
    - strlen
    linkageType: ''
    returnType: int
    signature: int app_isdir(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2385
    functionDepth: 0
    functionLinenumber: 2385
    functionLinenumberEnd: 2386
    functionName: S_ISDIR
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2387
    functionDepth: 0
    functionLinenumber: 2387
    functionLinenumberEnd: 2388
    functionName: S_ISDIR
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openssl-1.1.1g/apps/apps.c:2396,1
    - Dst: S_ISDIR
      Src: /src/openssl-1.1.1g/apps/apps.c:2397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2391
    functionDepth: 0
    functionLinenumber: 2391
    functionLinenumberEnd: 2403
    functionName: app_isdir
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - stat
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int app_isdir(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TerminalSocket
      Src: /src/openssl-1.1.1g/apps/apps.c:2413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2411
    functionDepth: 2
    functionLinenumber: 2411
    functionLinenumberEnd: 2414
    functionName: close_stdin_sock
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - TerminalSocket
    linkageType: ''
    returnType: void
    signature: void close_stdin_sock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TerminalSocket
      Src: /src/openssl-1.1.1g/apps/apps.c:2419,1
    - Dst: atexit
      Src: /src/openssl-1.1.1g/apps/apps.c:2420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2416
    functionDepth: 2
    functionLinenumber: 2416
    functionLinenumberEnd: 2424
    functionName: fileno_stdin
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - atexit
    - TerminalSocket
    linkageType: ''
    returnType: int
    signature: int fileno_stdin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/openssl-1.1.1g/apps/apps.c:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2426
    functionDepth: 1
    functionLinenumber: 2426
    functionLinenumberEnd: 2429
    functionName: fileno_stdin
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - fileno
    linkageType: ''
    returnType: int
    signature: int fileno_stdin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/openssl-1.1.1g/apps/apps.c:2434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2432
    functionDepth: 1
    functionLinenumber: 2432
    functionLinenumberEnd: 2435
    functionName: fileno_stdout
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - fileno
    linkageType: ''
    returnType: int
    signature: int fileno_stdout(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/openssl-1.1.1g/apps/apps.c:2441,1
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/apps/apps.c:2441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2438
    functionDepth: 0
    functionLinenumber: 2438
    functionLinenumberEnd: 2445
    functionName: raw_read_stdin
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - ReadFile
    - GetStdHandle
    linkageType: ''
    returnType: int
    signature: int raw_read_stdin(void *buf, int siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/openssl-1.1.1g/apps/apps.c:2451,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/apps.c:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2449
    functionDepth: 3
    functionLinenumber: 2449
    functionLinenumberEnd: 2452
    functionName: raw_read_stdin
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - recv
    - fileno_stdin
    linkageType: ''
    returnType: int
    signature: int raw_read_stdin(void *buf, int siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/openssl-1.1.1g/apps/apps.c:2456,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/apps.c:2456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2454
    functionDepth: 3
    functionLinenumber: 2454
    functionLinenumberEnd: 2457
    functionName: raw_read_stdin
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - read
    - fileno_stdin
    linkageType: ''
    returnType: int
    signature: int raw_read_stdin(void *buf, int siz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/openssl-1.1.1g/apps/apps.c:2464,1
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/apps/apps.c:2464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2461
    functionDepth: 0
    functionLinenumber: 2461
    functionLinenumberEnd: 2468
    functionName: raw_write_stdout
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - WriteFile
    - GetStdHandle
    linkageType: ''
    returnType: int
    signature: int raw_write_stdout(const void *buf, int siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/openssl-1.1.1g/apps/apps.c:2472,1
    - Dst: fileno_stdout
      Src: /src/openssl-1.1.1g/apps/apps.c:2472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2470
    functionDepth: 2
    functionLinenumber: 2470
    functionLinenumberEnd: 2473
    functionName: raw_write_stdout
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - write
    - fileno_stdout
    linkageType: ''
    returnType: int
    signature: int raw_write_stdout(const void *buf, int siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2486
    functionName: istext
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int istext(int format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/apps/apps.c:2490,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2488
    functionDepth: 5
    functionLinenumber: 2488
    functionLinenumberEnd: 2492
    functionName: dup_bio_in
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 4
    functionsReached:
    - BIO_new_fp
    - istext
    linkageType: ''
    returnType: BIO
    signature: BIO *dup_bio_in(int format)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/apps/apps.c:2498,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2499,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2503,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/apps.c:2504,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/apps.c:2504,1
    - Dst: BIO_f_linebuffer
      Src: /src/openssl-1.1.1g/apps/apps.c:2504,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2507,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/apps/apps.c:2507,1
    - Dst: apps_bf_prefix
      Src: /src/openssl-1.1.1g/apps/apps.c:2509,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/apps.c:2510,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/apps.c:2510,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/apps/apps.c:2511,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - format
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2496
    functionDepth: 5
    functionLinenumber: 2496
    functionLinenumberEnd: 2515
    functionName: dup_bio_out
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - istext
    - getenv
    - apps_bf_prefix
    - BIO_new_fp
    - BIO_f_linebuffer
    - BIO_ctrl
    - BIO_push
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *dup_bio_out(int format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/apps/apps.c:2519,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2520,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2522,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/apps.c:2523,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/apps.c:2523,1
    - Dst: BIO_f_linebuffer
      Src: /src/openssl-1.1.1g/apps/apps.c:2523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2517
    functionDepth: 5
    functionLinenumber: 2517
    functionLinenumberEnd: 2526
    functionName: dup_bio_err
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - istext
    - BIO_new_fp
    - BIO_f_linebuffer
    - BIO_push
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *dup_bio_err(int format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openssl-1.1.1g/apps/apps.c:2530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2528
    functionDepth: 2
    functionLinenumber: 2528
    functionLinenumberEnd: 2532
    functionName: destroy_prefix_method
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_prefix_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/openssl-1.1.1g/apps/apps.c:2547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2534
    functionDepth: 0
    functionLinenumber: 2534
    functionLinenumberEnd: 2551
    functionName: unbuffer
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 3
    functionsReached:
    - setbuf
    linkageType: ''
    returnType: void
    signature: void unbuffer(FILE *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/apps/apps.c:2555,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2559,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2561,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mode
    - format
    argTypes:
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2553
    functionDepth: 1
    functionLinenumber: 2553
    functionLinenumberEnd: 2567
    functionName: modestr
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - istext
    linkageType: ''
    returnType: char
    signature: char *modestr(char mode, int format)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2580
    functionName: modeverb
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *modeverb(char mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/apps.c:2591,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/apps.c:2592,1
    - Dst: istext
      Src: /src/openssl-1.1.1g/apps/apps.c:2601,1
    - Dst: open
      Src: /src/openssl-1.1.1g/apps/apps.c:2617,1
    - Dst: open
      Src: /src/openssl-1.1.1g/apps/apps.c:2620,1
    - Dst: fdopen
      Src: /src/openssl-1.1.1g/apps/apps.c:2623,1
    - Dst: modestr
      Src: /src/openssl-1.1.1g/apps/apps.c:2623,1
    - Dst: BIO_new_fp
      Src: /src/openssl-1.1.1g/apps/apps.c:2629,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:2634,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/apps.c:2635,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/apps/apps.c:2635,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:2636,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/apps/apps.c:2639,1
    - Dst: close
      Src: /src/openssl-1.1.1g/apps/apps.c:2641,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - filename
    - format
    - private
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2585
    functionDepth: 5
    functionLinenumber: 2585
    functionLinenumberEnd: 2643
    functionName: bio_open_owner
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 9
    functionsReached:
    - istext
    - opt_getprog
    - strerror
    - fclose
    - strcmp
    - BIO_new_fp
    - open
    - ERR_print_errors
    - fdopen
    - close
    - BIO_printf
    - bio_open_default
    - modestr
    linkageType: ''
    returnType: BIO
    signature: BIO *bio_open_owner(const char *filename, int format, int private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/apps.c:2650,1
    - Dst: dup_bio_in
      Src: /src/openssl-1.1.1g/apps/apps.c:2651,1
    - Dst: dup_bio_out
      Src: /src/openssl-1.1.1g/apps/apps.c:2651,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/apps.c:2653,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:2658,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/apps/apps.c:2660,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/apps.c:2662,1
    - Dst: modestr
      Src: /src/openssl-1.1.1g/apps/apps.c:2662,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/apps.c:2664,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/apps.c:2669,1
    - Dst: modeverb
      Src: /src/openssl-1.1.1g/apps/apps.c:2671,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/apps/apps.c:2671,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/apps.c:2673,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - filename
    - mode
    - format
    - quiet
    argTypes:
    - char*
    - char
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2645
    functionDepth: 6
    functionLinenumber: 2645
    functionLinenumberEnd: 2675
    functionName: bio_open_default_
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 0
    functionsReached:
    - dup_bio_out
    - strerror
    - strcmp
    - ERR_print_errors
    - ERR_clear_error
    - BIO_printf
    - modeverb
    - BIO_new_file
    - modestr
    - dup_bio_in
    linkageType: ''
    returnType: BIO
    signature: "BIO *bio_open_default_(const char *filename, char mode, int format,\n
      \                             int quiet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default_
      Src: /src/openssl-1.1.1g/apps/apps.c:2679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - mode
    - format
    argTypes:
    - char*
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2680
      start: 2677
    functionDepth: 7
    functionLinenumber: 2677
    functionLinenumberEnd: 2680
    functionName: bio_open_default
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 25
    functionsReached:
    - bio_open_default_
    linkageType: ''
    returnType: BIO
    signature: BIO *bio_open_default(const char *filename, char mode, int format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default_
      Src: /src/openssl-1.1.1g/apps/apps.c:2684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - mode
    - format
    argTypes:
    - char*
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2682
    functionDepth: 7
    functionLinenumber: 2682
    functionLinenumberEnd: 2685
    functionName: bio_open_default_quiet
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - bio_open_default_
    linkageType: ''
    returnType: BIO
    signature: BIO *bio_open_default_quiet(const char *filename, char mode, int format)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_all_async_fds
      Src: /src/openssl-1.1.1g/apps/apps.c:2697,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/apps.c:2701,1
    - Dst: SSL_get_all_async_fds
      Src: /src/openssl-1.1.1g/apps/apps.c:2702,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:2703,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/apps.c:2707,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/apps.c:2711,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/apps.c:2713,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/apps.c:2714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2687
    functionDepth: 6
    functionLinenumber: 2687
    functionLinenumberEnd: 2716
    functionName: wait_for_async
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - app_malloc
    - OPENSSL_free
    - SSL_get_all_async_fds
    - select
    - openssl_fdset
    - FD_ZERO
    linkageType: ''
    returnType: void
    signature: void wait_for_async(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/openssl-1.1.1g/apps/apps.c:2723,1
    - Dst: PeekConsoleInput
      Src: /src/openssl-1.1.1g/apps/apps.c:2733,1
    - Dst: feof
      Src: /src/openssl-1.1.1g/apps/apps.c:2736,1
    - Dst: _kbhit
      Src: /src/openssl-1.1.1g/apps/apps.c:2742,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2720
    functionDepth: 0
    functionLinenumber: 2720
    functionLinenumberEnd: 2743
    functionName: has_stdin_waiting
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 1
    functionsReached:
    - PeekConsoleInput
    - _kbhit
    - feof
    - GetStdHandle
    linkageType: ''
    returnType: int
    signature: int has_stdin_waiting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signature
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2747
    functionDepth: 0
    functionLinenumber: 2747
    functionLinenumberEnd: 2751
    functionName: corrupt_signature
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void corrupt_signature(const ASN1_STRING *signature)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/apps.c:2756,1
    - Dst: X509_gmtime_adj
      Src: /src/openssl-1.1.1g/apps/apps.c:2757,1
    - Dst: X509_getm_notBefore
      Src: /src/openssl-1.1.1g/apps/apps.c:2757,1
    - Dst: ASN1_TIME_set_string_X509
      Src: /src/openssl-1.1.1g/apps/apps.c:2760,1
    - Dst: X509_getm_notBefore
      Src: /src/openssl-1.1.1g/apps/apps.c:2760,1
    - Dst: X509_time_adj_ex
      Src: /src/openssl-1.1.1g/apps/apps.c:2764,1
    - Dst: X509_getm_notAfter
      Src: /src/openssl-1.1.1g/apps/apps.c:2764,1
    - Dst: ASN1_TIME_set_string_X509
      Src: /src/openssl-1.1.1g/apps/apps.c:2767,1
    - Dst: X509_getm_notAfter
      Src: /src/openssl-1.1.1g/apps/apps.c:2767,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - x
    - startdate
    - enddate
    - days
    argTypes:
    - X509*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2753
    functionDepth: 4
    functionLinenumber: 2753
    functionLinenumberEnd: 2771
    functionName: set_cert_times
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 5
    functionsReached:
    - X509_getm_notAfter
    - strcmp
    - X509_gmtime_adj
    - X509_time_adj_ex
    - X509_getm_notBefore
    - ASN1_TIME_set_string_X509
    linkageType: ''
    returnType: int
    signature: "int set_cert_times(X509 *x, const char *startdate, const char *enddate,\n
      \                  int days)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/openssl-1.1.1g/apps/apps.c:2778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2773
    functionDepth: 0
    functionLinenumber: 2773
    functionLinenumberEnd: 2779
    functionName: make_uppercase
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.c
    functionUses: 2
    functionsReached:
    - toupper
    linkageType: ''
    returnType: void
    signature: void make_uppercase(char *string)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:46,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:47,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:52,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:55,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:59,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:62,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:65,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:65,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:78,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:82,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:85,1
    - Dst: PEM_read_bio_Parameters
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:88,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:90,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:91,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:99,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:101,1
    - Dst: EVP_PKEY_param_check
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:105,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:108,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:116,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:118,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:119,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:120,1
    - Dst: ERR_get_error
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:121,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:124,1
    - Dst: PEM_write_bio_Parameters
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:128,1
    - Dst: EVP_PKEY_print_params
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:131,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:136,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:137,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:138,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/pkeyparam.c:139,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 86
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 37
    functionDepth: 9
    functionLinenumber: 37
    functionLinenumberEnd: 142
    functionName: pkeyparam_main
    functionSourceFile: /src/openssl-1.1.1g/apps/pkeyparam.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - ERR_get_error
    - bio_open_default
    - ERR_peek_error
    - opt_arg
    - EVP_PKEY_print_params
    - opt_next
    - EVP_PKEY_CTX_free
    - PEM_write_bio_Parameters
    - BIO_free
    - PEM_read_bio_Parameters
    - release_engine
    - ERR_reason_error_string
    - EVP_PKEY_param_check
    - opt_help
    - BIO_free_all
    - setup_engine
    - opt_num_rest
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    - opt_init
    linkageType: ''
    returnType: int
    signature: int pkeyparam_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 213
    functionName: set_dsa_ptr
    functionSourceFile: /src/openssl-1.1.1g/apps/testdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_dsa_ptr(st, bits)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: set_dsa_ptr
      Src: /src/openssl-1.1.1g/apps/testdsa.h:222,1
    - Dst: set_dsa_ptr
      Src: /src/openssl-1.1.1g/apps/testdsa.h:225,1
    - Dst: set_dsa_ptr
      Src: /src/openssl-1.1.1g/apps/testdsa.h:228,1
    - Dst: DSA_new
      Src: /src/openssl-1.1.1g/apps/testdsa.h:234,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/apps/testdsa.h:236,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/apps/testdsa.h:237,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/apps/testdsa.h:238,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/apps/testdsa.h:239,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/apps/testdsa.h:240,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-1.1.1g/apps/testdsa.h:245,1
    - Dst: DSA_set0_key
      Src: /src/openssl-1.1.1g/apps/testdsa.h:248,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/apps/testdsa.h:253,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/testdsa.h:254,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/testdsa.h:255,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/testdsa.h:256,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/testdsa.h:257,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/testdsa.h:258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 1
    argNames:
    - dsa_bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 260
    functionName: get_dsa
    functionSourceFile: /src/openssl-1.1.1g/apps/testdsa.h
    functionUses: 2
    functionsReached:
    - DSA_set0_pqg
    - DSA_new
    - BN_bin2bn
    - DSA_set0_key
    - BN_free
    - set_dsa_ptr
    - DSA_free
    linkageType: ''
    returnType: DSA
    signature: DSA *get_dsa(int dsa_bits)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/storeutl.c:63,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/storeutl.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:80,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/storeutl.c:83,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/storeutl.c:87,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/storeutl.c:90,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:105,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/apps/storeutl.c:120,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/apps/storeutl.c:130,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:135,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:141,1
    - Dst: parse_name
      Src: /src/openssl-1.1.1g/apps/storeutl.c:145,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/storeutl.c:145,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:146,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:155,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:161,1
    - Dst: parse_name
      Src: /src/openssl-1.1.1g/apps/storeutl.c:165,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/storeutl.c:165,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:166,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:175,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:181,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/storeutl.c:185,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/storeutl.c:185,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:186,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:195,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:201,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:208,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/storeutl.c:208,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:210,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:220,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:226,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/storeutl.c:230,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/storeutl.c:230,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:231,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/storeutl.c:237,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/storeutl.c:237,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/storeutl.c:240,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/storeutl.c:240,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/storeutl.c:244,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/storeutl.c:245,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:248,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:252,1
    - Dst: OSSL_STORE_SEARCH_by_name
      Src: /src/openssl-1.1.1g/apps/storeutl.c:259,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:260,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:266,1
    - Dst: OSSL_STORE_SEARCH_by_issuer_serial
      Src: /src/openssl-1.1.1g/apps/storeutl.c:271,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:273,1
    - Dst: OSSL_STORE_SEARCH_by_key_fingerprint
      Src: /src/openssl-1.1.1g/apps/storeutl.c:278,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:282,1
    - Dst: OSSL_STORE_SEARCH_by_alias
      Src: /src/openssl-1.1.1g/apps/storeutl.c:287,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:288,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/storeutl.c:295,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:296,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/storeutl.c:302,1
    - Dst: process
      Src: /src/openssl-1.1.1g/apps/storeutl.c:306,1
    - Dst: get_ui_method
      Src: /src/openssl-1.1.1g/apps/storeutl.c:306,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/storeutl.c:311,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/storeutl.c:312,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/storeutl.c:313,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/storeutl.c:314,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/apps/storeutl.c:315,1
    - Dst: OSSL_STORE_SEARCH_free
      Src: /src/openssl-1.1.1g/apps/storeutl.c:316,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/storeutl.c:317,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/storeutl.c:318,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/storeutl.c:319,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 221
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 56
    functionDepth: 9
    functionLinenumber: 56
    functionLinenumberEnd: 321
    functionName: storeutl_main
    functionSourceFile: /src/openssl-1.1.1g/apps/storeutl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - get_ui_method
    - process
    - OPENSSL_hexstr2buf
    - app_passwd
    - bio_open_default
    - OSSL_STORE_SEARCH_by_key_fingerprint
    - OPENSSL_free
    - opt_unknown
    - opt_arg
    - opt_next
    - OSSL_STORE_SEARCH_by_name
    - OSSL_STORE_SEARCH_by_alias
    - OSSL_NELEM
    - release_engine
    - s2i_ASN1_INTEGER
    - OPENSSL_strdup
    - OSSL_STORE_SEARCH_by_issuer_serial
    - opt_help
    - BIO_free_all
    - setup_engine
    - opt_md
    - opt_num_rest
    - ASN1_INTEGER_free
    - opt_rest
    - X509_NAME_free
    - OSSL_STORE_SEARCH_free
    - BIO_printf
    - parse_name
    - ERR_print_errors
    - opt_init
    linkageType: ''
    returnType: int
    signature: int storeutl_main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/apps/storeutl.c:328,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:330,1
    - Dst: BIO_vprintf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:330,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/apps/storeutl.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - indent
    - bio
    - format
    argTypes:
    - int
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 334
    functionName: indent_printf
    functionSourceFile: /src/openssl-1.1.1g/apps/storeutl.c
    functionUses: 0
    functionsReached:
    - va_start
    - BIO_vprintf
    - va_end
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int indent_printf(int indent, BIO *bio, const char *format, ...)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_open
      Src: /src/openssl-1.1.1g/apps/storeutl.c:344,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:346,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:347,1
    - Dst: OSSL_STORE_expect
      Src: /src/openssl-1.1.1g/apps/storeutl.c:352,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:353,1
    - Dst: OSSL_STORE_supports_search
      Src: /src/openssl-1.1.1g/apps/storeutl.c:359,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:360,1
    - Dst: OSSL_STORE_find
      Src: /src/openssl-1.1.1g/apps/storeutl.c:366,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:367,1
    - Dst: OSSL_STORE_load
      Src: /src/openssl-1.1.1g/apps/storeutl.c:376,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-1.1.1g/apps/storeutl.c:377,1
    - Dst: OSSL_STORE_INFO_type_string
      Src: /src/openssl-1.1.1g/apps/storeutl.c:379,1
    - Dst: OSSL_STORE_eof
      Src: /src/openssl-1.1.1g/apps/storeutl.c:382,1
    - Dst: OSSL_STORE_error
      Src: /src/openssl-1.1.1g/apps/storeutl.c:385,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/storeutl.c:387,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:389,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:394,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:397,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:398,1
    - Dst: OSSL_STORE_INFO_get0_NAME
      Src: /src/openssl-1.1.1g/apps/storeutl.c:404,1
    - Dst: OSSL_STORE_INFO_get0_NAME_description
      Src: /src/openssl-1.1.1g/apps/storeutl.c:405,1
    - Dst: indent_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:406,1
    - Dst: indent_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:409,1
    - Dst: indent_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:411,1
    - Dst: OSSL_STORE_INFO_get0_NAME
      Src: /src/openssl-1.1.1g/apps/storeutl.c:422,1
    - Dst: process
      Src: /src/openssl-1.1.1g/apps/storeutl.c:423,1
    - Dst: EVP_PKEY_print_params
      Src: /src/openssl-1.1.1g/apps/storeutl.c:430,1
    - Dst: OSSL_STORE_INFO_get0_PARAMS
      Src: /src/openssl-1.1.1g/apps/storeutl.c:430,1
    - Dst: PEM_write_bio_Parameters
      Src: /src/openssl-1.1.1g/apps/storeutl.c:433,1
    - Dst: OSSL_STORE_INFO_get0_PARAMS
      Src: /src/openssl-1.1.1g/apps/storeutl.c:434,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openssl-1.1.1g/apps/storeutl.c:438,1
    - Dst: OSSL_STORE_INFO_get0_PKEY
      Src: /src/openssl-1.1.1g/apps/storeutl.c:438,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-1.1.1g/apps/storeutl.c:441,1
    - Dst: OSSL_STORE_INFO_get0_PKEY
      Src: /src/openssl-1.1.1g/apps/storeutl.c:441,1
    - Dst: X509_print
      Src: /src/openssl-1.1.1g/apps/storeutl.c:446,1
    - Dst: OSSL_STORE_INFO_get0_CERT
      Src: /src/openssl-1.1.1g/apps/storeutl.c:446,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/storeutl.c:448,1
    - Dst: OSSL_STORE_INFO_get0_CERT
      Src: /src/openssl-1.1.1g/apps/storeutl.c:448,1
    - Dst: X509_CRL_print
      Src: /src/openssl-1.1.1g/apps/storeutl.c:452,1
    - Dst: OSSL_STORE_INFO_get0_CRL
      Src: /src/openssl-1.1.1g/apps/storeutl.c:452,1
    - Dst: PEM_write_bio_X509_CRL
      Src: /src/openssl-1.1.1g/apps/storeutl.c:454,1
    - Dst: OSSL_STORE_INFO_get0_CRL
      Src: /src/openssl-1.1.1g/apps/storeutl.c:454,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:457,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-1.1.1g/apps/storeutl.c:462,1
    - Dst: indent_printf
      Src: /src/openssl-1.1.1g/apps/storeutl.c:464,1
    - Dst: OSSL_STORE_close
      Src: /src/openssl-1.1.1g/apps/storeutl.c:467,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/storeutl.c:468,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 96
    argCount: 12
    argNames:
    - uri
    - uimeth
    - uidata
    - expected
    - criterion
    - search
    - text
    - noout
    - recursive
    - indent
    - out
    - prog
    argTypes:
    - char*
    - UI_METHOD*
    - PW_CB_DATA*
    - int
    - int
    - OSSL_STORE_SEARCH*
    - int
    - int
    - int
    - int
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 473
    functionName: process
    functionSourceFile: /src/openssl-1.1.1g/apps/storeutl.c
    functionUses: 8
    functionsReached:
    - PEM_write_bio_PrivateKey
    - process
    - X509_CRL_print
    - OSSL_STORE_INFO_type_string
    - OSSL_STORE_open
    - OSSL_STORE_load
    - OSSL_STORE_expect
    - OSSL_STORE_INFO_get0_CRL
    - PEM_write_bio_X509_CRL
    - OSSL_STORE_INFO_get0_PKEY
    - OSSL_STORE_find
    - OSSL_STORE_close
    - EVP_PKEY_print_params
    - PEM_write_bio_Parameters
    - ERR_clear_error
    - OSSL_STORE_error
    - OSSL_STORE_eof
    - X509_print
    - OSSL_STORE_supports_search
    - OSSL_STORE_INFO_get0_PARAMS
    - indent_printf
    - OSSL_STORE_INFO_get_type
    - OSSL_STORE_INFO_get0_NAME
    - OSSL_STORE_INFO_get0_CERT
    - OSSL_STORE_INFO_free
    - PEM_write_bio_X509
    - EVP_PKEY_print_private
    - BIO_printf
    - OSSL_STORE_INFO_get0_NAME_description
    - ERR_print_errors
    linkageType: ''
    returnType: int
    signature: "int process(const char *uri, const UI_METHOD *uimeth, PW_CB_DATA *uidata,\n
      \                  int expected, int criterion, OSSL_STORE_SEARCH *search,\n
      \                  int text, int noout, int recursive, int indent, BIO *out,\n
      \                  const char *prog)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/rsautl.c:80,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/rsautl.c:81,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsautl.c:86,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/rsautl.c:89,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/rsautl.c:93,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsautl.c:93,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsautl.c:97,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsautl.c:100,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/rsautl.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsautl.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsautl.c:150,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/rsautl.c:153,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/rsautl.c:156,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/rsautl.c:161,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsautl.c:166,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/rsautl.c:170,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsautl.c:171,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/rsautl.c:177,1
    - Dst: load_pubkey
      Src: /src/openssl-1.1.1g/apps/rsautl.c:181,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/rsautl.c:185,1
    - Dst: X509_get_pubkey
      Src: /src/openssl-1.1.1g/apps/rsautl.c:187,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/rsautl.c:188,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openssl-1.1.1g/apps/rsautl.c:196,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/rsautl.c:197,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsautl.c:200,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/rsautl.c:201,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/rsautl.c:205,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/rsautl.c:208,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/apps/rsautl.c:212,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/rsautl.c:214,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/rsautl.c:215,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/rsautl.c:218,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsautl.c:220,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-1.1.1g/apps/rsautl.c:235,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-1.1.1g/apps/rsautl.c:240,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-1.1.1g/apps/rsautl.c:244,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/apps/rsautl.c:249,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/rsautl.c:254,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/rsautl.c:255,1
    - Dst: ASN1_parse_dump
      Src: /src/openssl-1.1.1g/apps/rsautl.c:260,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/rsautl.c:261,1
    - Dst: BIO_dump
      Src: /src/openssl-1.1.1g/apps/rsautl.c:264,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/rsautl.c:266,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/apps/rsautl.c:269,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/rsautl.c:270,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/rsautl.c:271,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/rsautl.c:272,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rsautl.c:273,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rsautl.c:274,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/rsautl.c:275,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 191
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 65
    functionDepth: 9
    functionLinenumber: 65
    functionLinenumberEnd: 277
    functionName: rsautl_main
    functionSourceFile: /src/openssl-1.1.1g/apps/rsautl.c
    functionUses: 0
    functionsReached:
    - RSA_public_encrypt
    - EVP_PKEY_get1_RSA
    - RSA_private_decrypt
    - opt_rand
    - RSA_public_decrypt
    - app_passwd
    - bio_open_default
    - RSA_free
    - X509_free
    - X509_get_pubkey
    - OPENSSL_free
    - opt_arg
    - opt_format
    - opt_next
    - BIO_free
    - BIO_dump
    - BIO_read
    - app_malloc
    - RSA_size
    - load_key
    - release_engine
    - load_pubkey
    - opt_help
    - BIO_free_all
    - BIO_write
    - setup_engine
    - opt_num_rest
    - ASN1_parse_dump
    - BIO_printf
    - EVP_PKEY_free
    - RSA_private_encrypt
    - ERR_print_errors
    - opt_init
    - load_cert
    linkageType: ''
    returnType: int
    signature: int rsautl_main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/apps/srp.c:41,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:42,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/srp.c:44,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/apps/srp.c:48,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:49,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/srp.c:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - db
    - id
    - type
    argTypes:
    - CA_DB*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 58
    functionName: get_index
    functionSourceFile: /src/openssl-1.1.1g/apps/srp.c
    functionUses: 0
    functionsReached:
    - strcmp
    - sk_OPENSSL_PSTRING_num
    - sk_OPENSSL_PSTRING_value
    linkageType: ''
    returnType: int
    signature: int get_index(CA_DB *db, char *id, char type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:65,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - db
    - indx
    - verbose
    - s
    argTypes:
    - CA_DB*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: print_entry
    functionSourceFile: /src/openssl-1.1.1g/apps/srp.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_value
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void print_entry(CA_DB *db, int indx, int verbose, char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_entry
      Src: /src/openssl-1.1.1g/apps/srp.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - indexindex
    - verbose
    argTypes:
    - CA_DB*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: print_index
    functionSourceFile: /src/openssl-1.1.1g/apps/srp.c
    functionUses: 0
    functionsReached:
    - print_entry
    linkageType: ''
    returnType: void
    signature: void print_index(CA_DB *db, int indexindex, int verbose)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:80,1
    - Dst: print_entry
      Src: /src/openssl-1.1.1g/apps/srp.c:83,1
    - Dst: print_entry
      Src: /src/openssl-1.1.1g/apps/srp.c:84,1
    - Dst: get_index
      Src: /src/openssl-1.1.1g/apps/srp.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - db
    - userindex
    - verbose
    argTypes:
    - CA_DB*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: print_user
    functionSourceFile: /src/openssl-1.1.1g/apps/srp.c
    functionUses: 0
    functionsReached:
    - get_index
    - sk_OPENSSL_PSTRING_value
    - print_entry
    linkageType: ''
    returnType: void
    signature: void print_user(CA_DB *db, int userindex, int verbose)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/srp.c:96,1
    - Dst: TXT_DB_insert
      Src: /src/openssl-1.1.1g/apps/srp.c:101,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:102,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - db
    - row
    argTypes:
    - CA_DB*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: update_index
    functionSourceFile: /src/openssl-1.1.1g/apps/srp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - app_malloc
    - TXT_DB_insert
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int update_index(CA_DB *db, char **row)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/srp.c:112,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conf
    - section
    - tag
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: lookup_conf
    functionSourceFile: /src/openssl-1.1.1g/apps/srp.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - BIO_printf
    linkageType: ''
    returnType: char
    signature: char *lookup_conf(const CONF *conf, const char *section, const char
      *tag)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: password_callback
      Src: /src/openssl-1.1.1g/apps/srp.c:131,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:135,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:139,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/apps/srp.c:141,1
    - Dst: SRP_create_verifier
      Src: /src/openssl-1.1.1g/apps/srp.c:142,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:144,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/srp.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:148,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/apps/srp.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 7
    argNames:
    - user
    - srp_verifier
    - srp_usersalt
    - g
    - N
    - passin
    - verbose
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 118
    functionDepth: 6
    functionLinenumber: 118
    functionLinenumberEnd: 153
    functionName: srp_verify_user
    functionSourceFile: /src/openssl-1.1.1g/apps/srp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - SRP_create_verifier
    - strcmp
    - password_callback
    - OPENSSL_free
    - BIO_printf
    - OPENSSL_cleanse
    linkageType: ''
    returnType: char
    signature: "char *srp_verify_user(const char *user, const char *srp_verifier,\n
      \                            char *srp_usersalt, const char *g, const char *N,\n
      \                            const char *passin, int verbose)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: password_callback
      Src: /src/openssl-1.1.1g/apps/srp.c:167,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:171,1
    - Dst: SRP_create_verifier
      Src: /src/openssl-1.1.1g/apps/srp.c:173,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:175,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/apps/srp.c:179,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - user
    - srp_verifier
    - srp_usersalt
    - g
    - N
    - passout
    - verbose
    argTypes:
    - char*
    - char**
    - char**
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 186
    functionName: srp_create_user
    functionSourceFile: /src/openssl-1.1.1g/apps/srp.c
    functionUses: 0
    functionsReached:
    - password_callback
    - SRP_create_verifier
    - OPENSSL_cleanse
    - BIO_printf
    linkageType: ''
    returnType: char
    signature: "char *srp_create_user(char *user, char **srp_verifier,\n                             char
      **srp_usersalt, char *g, char *N,\n                             char *passout,
      int verbose)"
  - BBCount: 79
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/srp.c:231,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/srp.c:232,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:237,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/srp.c:240,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/srp.c:247,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/srp.c:250,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/srp.c:253,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:260,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/srp.c:268,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/srp.c:271,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/srp.c:274,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/srp.c:277,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/srp.c:280,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/srp.c:280,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/srp.c:283,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/srp.c:288,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/srp.c:289,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:292,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:297,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:303,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:309,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/srp.c:314,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:315,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:324,1
    - Dst: app_load_config
      Src: /src/openssl-1.1.1g/apps/srp.c:326,1
    - Dst: app_load_modules
      Src: /src/openssl-1.1.1g/apps/srp.c:329,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:335,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/srp.c:339,1
    - Dst: app_RAND_load_conf
      Src: /src/openssl-1.1.1g/apps/srp.c:344,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:347,1
    - Dst: lookup_conf
      Src: /src/openssl-1.1.1g/apps/srp.c:351,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:357,1
    - Dst: load_index
      Src: /src/openssl-1.1.1g/apps/srp.c:360,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/apps/srp.c:365,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:366,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/srp.c:370,1
    - Dst: print_index
      Src: /src/openssl-1.1.1g/apps/srp.c:373,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:378,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:381,1
    - Dst: print_entry
      Src: /src/openssl-1.1.1g/apps/srp.c:382,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-1.1.1g/apps/srp.c:383,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:384,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:388,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:393,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:399,1
    - Dst: get_index
      Src: /src/openssl-1.1.1g/apps/srp.c:400,1
    - Dst: print_user
      Src: /src/openssl-1.1.1g/apps/srp.c:401,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:405,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/apps/srp.c:407,1
    - Dst: print_user
      Src: /src/openssl-1.1.1g/apps/srp.c:408,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:410,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:418,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:419,1
    - Dst: srp_create_user
      Src: /src/openssl-1.1.1g/apps/srp.c:431,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:436,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/srp.c:442,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/srp.c:443,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/srp.c:444,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/srp.c:452,1
    - Dst: update_index
      Src: /src/openssl-1.1.1g/apps/srp.c:453,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:454,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:455,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:456,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:457,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:458,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:459,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:466,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:473,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:476,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:487,1
    - Dst: get_index
      Src: /src/openssl-1.1.1g/apps/srp.c:491,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:493,1
    - Dst: srp_verify_user
      Src: /src/openssl-1.1.1g/apps/srp.c:496,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:501,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:509,1
    - Dst: srp_create_user
      Src: /src/openssl-1.1.1g/apps/srp.c:514,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:519,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/srp.c:527,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/srp.c:535,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:544,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:549,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:551,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:564,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-1.1.1g/apps/srp.c:568,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-1.1.1g/apps/srp.c:569,1
    - Dst: print_user
      Src: /src/openssl-1.1.1g/apps/srp.c:573,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:578,1
    - Dst: save_index
      Src: /src/openssl-1.1.1g/apps/srp.c:579,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:583,1
    - Dst: rotate_index
      Src: /src/openssl-1.1.1g/apps/srp.c:584,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:588,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:595,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/srp.c:598,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:600,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/srp.c:601,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/srp.c:603,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/srp.c:604,1
    - Dst: free_index
      Src: /src/openssl-1.1.1g/apps/srp.c:605,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/srp.c:606,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 290
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 217
    functionDepth: 9
    functionLinenumber: 217
    functionLinenumberEnd: 608
    functionName: srp_main
    functionSourceFile: /src/openssl-1.1.1g/apps/srp.c
    functionUses: 0
    functionsReached:
    - lookup_conf
    - app_load_config
    - print_index
    - save_index
    - opt_rand
    - app_passwd
    - rotate_index
    - get_index
    - free_index
    - sk_OPENSSL_PSTRING_value
    - strcmp
    - NCONF_free
    - OPENSSL_free
    - opt_arg
    - opt_next
    - print_entry
    - update_index
    - print_user
    - release_engine
    - ERR_print_errors
    - OPENSSL_strdup
    - SRP_get_default_gN
    - app_RAND_load_conf
    - opt_help
    - load_index
    - srp_verify_user
    - setup_engine
    - opt_num_rest
    - opt_rest
    - BIO_printf
    - srp_create_user
    - sk_OPENSSL_PSTRING_num
    - opt_init
    - app_load_modules
    linkageType: ''
    returnType: int
    signature: int srp_main(int argc, char **argv)
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:83,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:84,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:89,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:92,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:96,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:96,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:100,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:107,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:119,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:126,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:126,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:130,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:130,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:132,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:133,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:138,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:138,1
    - Dst: EVP_PBE_find
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:139,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:140,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:141,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:145,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:148,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:148,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:152,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:155,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:158,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:158,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:166,1
    - Dst: opt_long
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:169,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:169,1
    - Dst: opt_long
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:173,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:173,1
    - Dst: opt_long
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:177,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:177,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:183,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:190,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:195,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:197,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:200,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:205,1
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:208,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:209,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:210,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:214,1
    - Dst: PEM_write_bio_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:216,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:218,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:220,1
    - Dst: PKCS5_pbe2_set_scrypt
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:228,1
    - Dst: PKCS5_pbe2_set_iv
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:232,1
    - Dst: PKCS5_pbe_set
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:235,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:238,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:239,1
    - Dst: EVP_read_pw_string
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:248,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:250,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:255,1
    - Dst: PKCS8_set0_pbe
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:258,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:258,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:260,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:261,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:262,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:265,1
    - Dst: PEM_write_bio_PKCS8
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:267,1
    - Dst: i2d_PKCS8_bio
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:269,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:271,1
    - Dst: PEM_read_bio_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:282,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:284,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:286,1
    - Dst: PEM_read_bio_PKCS8
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:291,1
    - Dst: d2i_PKCS8_bio
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:293,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:295,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:300,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:301,1
    - Dst: EVP_read_pw_string
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:309,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:310,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:315,1
    - Dst: PKCS8_decrypt
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:318,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:318,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:322,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:323,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:327,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:328,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:329,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:333,1
    - Dst: PEM_write_bio_PrivateKey_traditional
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:336,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:339,1
    - Dst: i2d_PrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:341,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:343,1
    - Dst: X509_SIG_free
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:349,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:350,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:351,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:352,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:353,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:354,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:355,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/pkcs8.c:356,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 286
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/openssl-1.1.1g/apps/pkcs8.c
    - condition: (private)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/openssl-1.1.1g/apps/pkcs8.c
    - condition: (private)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/openssl-1.1.1g/apps/pkcs8.c
    constantsTouched: []
    func_position:
      end: 359
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 359
    functionName: pkcs8_main
    functionSourceFile: /src/openssl-1.1.1g/apps/pkcs8.c
    functionUses: 0
    functionsReached:
    - opt_long
    - PEM_write_bio_PrivateKey
    - i2d_PKCS8_bio
    - PKCS5_pbe2_set_scrypt
    - PEM_write_bio_PrivateKey_traditional
    - opt_rand
    - app_passwd
    - bio_open_default
    - EVP_PKCS82PKEY
    - OPENSSL_free
    - bio_open_owner
    - opt_arg
    - opt_next
    - BIO_free
    - PKCS8_decrypt
    - EVP_PKEY_free
    - EVP_read_pw_string
    - PEM_write_bio_PKCS8
    - i2d_PrivateKey_bio
    - load_key
    - release_engine
    - OBJ_txt2nid
    - ERR_print_errors
    - X509_ALGOR_free
    - PKCS5_pbe_set
    - d2i_PKCS8_PRIV_KEY_INFO_bio
    - PKCS8_PRIV_KEY_INFO_free
    - assert
    - EVP_aes_256_cbc
    - opt_help
    - BIO_free_all
    - EVP_PBE_find
    - opt_int
    - PKCS5_pbe2_set_iv
    - setup_engine
    - opt_num_rest
    - EVP_PKEY2PKCS8
    - opt_cipher
    - X509_SIG_free
    - PKCS8_set0_pbe
    - i2d_PKCS8_PRIV_KEY_INFO_bio
    - PEM_read_bio_PKCS8
    - PEM_write_bio_PKCS8_PRIV_KEY_INFO
    - BIO_printf
    - PEM_read_bio_PKCS8_PRIV_KEY_INFO
    - d2i_PKCS8_bio
    - opt_format
    - opt_init
    - strlen
    linkageType: ''
    returnType: int
    signature: int pkcs8_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 100
    functionName: copy_argv
    functionSourceFile: /src/openssl-1.1.1g/apps/vms_decc_init.c
    functionUses: 0
    functionsReached:
    - app_malloc
    linkageType: ''
    returnType: char
    signature: char **copy_argv(int *argc, char *argv[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:116,1
    - Dst: strtol
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:118,1
    - Dst: decc$feature_get_index
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:131,1
    - Dst: decc$feature_get_value
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:134,1
    - Dst: decc$feature_get_value
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:135,1
    - Dst: decc$feature_get_value
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:136,1
    - Dst: decc$feature_set_value
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:143,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:147,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:154,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:162,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/apps/vms_decc_init.c:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 170
    functionName: decc_init
    functionSourceFile: /src/openssl-1.1.1g/apps/vms_decc_init.c
    functionUses: 0
    functionsReached:
    - getenv
    - decc$feature_get_index
    - decc$feature_get_value
    - strtol
    - decc$feature_set_value
    - fprintf
    linkageType: ''
    returnType: void
    signature: void decc_init(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:135,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:137,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:141,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:142,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:145,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:146,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:150,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/apps/s_server.c:154,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:156,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:161,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:164,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/s_server.c:168,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:169,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:172,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:176,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:177,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:178,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - ssl
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 180
    functionName: psk_server_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OPENSSL_free
    - memcpy
    - OPENSSL_hexstr2buf
    - BIO_printf
    - BIO_flush
    - strlen
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_server_cb(SSL *ssl, const char *identity,\n                                  unsigned
      char *psk,\n                                  unsigned int max_psk_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:191,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:192,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/apps/s_server.c:198,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/apps/s_server.c:203,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:205,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/apps/s_server.c:211,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:214,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:218,1
    - Dst: SSL_SESSION_set1_master_key
      Src: /src/openssl-1.1.1g/apps/s_server.c:220,1
    - Dst: SSL_SESSION_set_cipher
      Src: /src/openssl-1.1.1g/apps/s_server.c:221,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-1.1.1g/apps/s_server.c:222,1
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/apps/s_server.c:222,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:226,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - ssl
    - identity
    - identity_len
    - sess
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 230
    functionName: psk_find_session_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_up_ref
    - memcmp
    - SSL_version
    - OPENSSL_free
    - SSL_SESSION_set1_master_key
    - SSL_SESSION_new
    - OPENSSL_hexstr2buf
    - SSL_CIPHER_find
    - BIO_printf
    - SSL_SESSION_set_protocol_version
    - SSL_SESSION_set_cipher
    - strlen
    linkageType: ''
    returnType: int
    signature: "int psk_find_session_cb(SSL *ssl, const unsigned char *identity,\n
      \                              size_t identity_len, SSL_SESSION **sess)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_srp_username
      Src: /src/openssl-1.1.1g/apps/s_server.c:255,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:256,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:261,1
    - Dst: SSL_set_srp_server_param
      Src: /src/openssl-1.1.1g/apps/s_server.c:265,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:271,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 281
    functionName: ssl_srp_server_param_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_set_srp_server_param
    - SSL_get_srp_username
    - SRP_user_pwd_free
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ssl_srp_server_param_cb(SSL *s, int *ad, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:309,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:312,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-1.1.1g/apps/s_server.c:313,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:314,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-1.1.1g/apps/s_server.c:315,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-1.1.1g/apps/s_server.c:316,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-1.1.1g/apps/s_server.c:317,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-1.1.1g/apps/s_server.c:318,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 322
    functionName: BIO_f_ebcdic_filter
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_read
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_ebcdic_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_server.c:328,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/apps/s_server.c:332,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/apps/s_server.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 324
    functionDepth: 6
    functionLinenumber: 324
    functionLinenumberEnd: 335
    functionName: ebcdic_new
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - app_malloc
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int ebcdic_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/apps/s_server.c:343,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:344,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/apps/s_server.c:345,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/apps/s_server.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: ebcdic_free
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - OPENSSL_free
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int ebcdic_free(BIO *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/s_server.c:354,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_server.c:361,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-1.1.1g/apps/s_server.c:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: ebcdic_read
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - ascii2ebcdic
    - BIO_read
    linkageType: ''
    returnType: int
    signature: int ebcdic_read(BIO *b, char *out, int outl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/s_server.c:370,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/apps/s_server.c:379,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:385,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_server.c:386,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/apps/s_server.c:391,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/s_server.c:394,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 367
    functionDepth: 6
    functionLinenumber: 367
    functionLinenumberEnd: 399
    functionName: ebcdic_write
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - app_malloc
    - BIO_write
    - OPENSSL_free
    - ebcdic2ascii
    - BIO_next
    - BIO_get_data
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int ebcdic_write(BIO *b, const char *in, int inl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/s_server.c:404,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/apps/s_server.c:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 417
    functionName: ebcdic_ctrl
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long ebcdic_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/s_server.c:422,1
    - Dst: ebcdic_read
      Src: /src/openssl-1.1.1g/apps/s_server.c:428,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 419
    functionDepth: 5
    functionLinenumber: 419
    functionLinenumberEnd: 439
    functionName: ebcdic_gets
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - ebcdic_read
    linkageType: ''
    returnType: int
    signature: int ebcdic_gets(BIO *bp, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/apps/s_server.c:443,1
    - Dst: ebcdic_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:445,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: ebcdic_puts
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - strlen
    - ebcdic_write
    linkageType: ''
    returnType: int
    signature: int ebcdic_puts(BIO *bp, const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/apps/s_server.c:459,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:465,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:467,1
    - Dst: isascii
      Src: /src/openssl-1.1.1g/apps/s_server.c:468,1
    - Dst: isprint
      Src: /src/openssl-1.1.1g/apps/s_server.c:468,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:469,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:476,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:479,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/openssl-1.1.1g/apps/s_server.c:480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 484
    functionName: ssl_servername_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_get_servername
    - isascii
    - SSL_set_SSL_CTX
    - BIO_printf
    - strcasecmp
    - isprint
    linkageType: ''
    returnType: int
    signature: int ssl_servername_cb(SSL *s, int *ad, void *arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/s_server.c:513,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/s_server.c:519,1
    - Dst: SSL_get_certificate
      Src: /src/openssl-1.1.1g/apps/s_server.c:524,1
    - Dst: X509_get1_ocsp
      Src: /src/openssl-1.1.1g/apps/s_server.c:525,1
    - Dst: OCSP_parse_url
      Src: /src/openssl-1.1.1g/apps/s_server.c:527,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/s_server.c:527,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:529,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:533,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/s_server.c:534,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:537,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:547,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/apps/s_server.c:550,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/openssl-1.1.1g/apps/s_server.c:551,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openssl-1.1.1g/apps/s_server.c:551,1
    - Dst: X509_STORE_CTX_get_obj_by_subject
      Src: /src/openssl-1.1.1g/apps/s_server.c:554,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/apps/s_server.c:555,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:557,1
    - Dst: OCSP_cert_to_id
      Src: /src/openssl-1.1.1g/apps/s_server.c:560,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/openssl-1.1.1g/apps/s_server.c:560,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:561,1
    - Dst: OCSP_REQUEST_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:564,1
    - Dst: OCSP_request_add0_id
      Src: /src/openssl-1.1.1g/apps/s_server.c:567,1
    - Dst: SSL_get_tlsext_status_exts
      Src: /src/openssl-1.1.1g/apps/s_server.c:571,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-1.1.1g/apps/s_server.c:572,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-1.1.1g/apps/s_server.c:573,1
    - Dst: OCSP_REQUEST_add_ext
      Src: /src/openssl-1.1.1g/apps/s_server.c:574,1
    - Dst: process_responder
      Src: /src/openssl-1.1.1g/apps/s_server.c:577,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:580,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:595,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:596,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:597,1
    - Dst: X509_email_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:598,1
    - Dst: OCSP_CERTID_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:600,1
    - Dst: OCSP_REQUEST_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:601,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:602,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 3
    argNames:
    - s
    - srctx
    - resp
    argTypes:
    - SSL*
    - tlsextstatusctx*
    - OCSP_RESPONSE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 604
    functionName: get_ocsp_resp_from_responder
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - OCSP_REQUEST_free
    - STACK_OF
    - X509_OBJECT_free
    - X509_STORE_CTX_new
    - X509_get_issuer_name
    - OCSP_CERTID_free
    - OPENSSL_free
    - sk_OPENSSL_STRING_value
    - BIO_puts
    - SSL_CTX_get_cert_store
    - sk_X509_EXTENSION_value
    - OCSP_REQUEST_add_ext
    - X509_STORE_CTX_free
    - X509_email_free
    - X509_get1_ocsp
    - OCSP_cert_to_id
    - SSL_get_SSL_CTX
    - X509_STORE_CTX_get_obj_by_subject
    - OCSP_parse_url
    - X509_OBJECT_get0_X509
    - SSL_get_certificate
    - OCSP_request_add0_id
    - X509_STORE_CTX_init
    - SSL_get_tlsext_status_exts
    - process_responder
    - BIO_printf
    - OCSP_REQUEST_new
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: "int get_ocsp_resp_from_responder(SSL *s, tlsextstatusctx *srctx,\n
      \                                       OCSP_RESPONSE **resp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:620,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/s_server.c:623,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:625,1
    - Dst: d2i_OCSP_RESPONSE_bio
      Src: /src/openssl-1.1.1g/apps/s_server.c:628,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:629,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:631,1
    - Dst: get_ocsp_resp_from_responder
      Src: /src/openssl-1.1.1g/apps/s_server.c:635,1
    - Dst: i2d_OCSP_RESPONSE
      Src: /src/openssl-1.1.1g/apps/s_server.c:640,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/openssl-1.1.1g/apps/s_server.c:644,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:646,1
    - Dst: OCSP_RESPONSE_print
      Src: /src/openssl-1.1.1g/apps/s_server.c:647,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:654,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:656,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 611
    functionDepth: 8
    functionLinenumber: 611
    functionLinenumberEnd: 659
    functionName: cert_status_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_set_tlsext_status_ocsp_resp
    - d2i_OCSP_RESPONSE_bio
    - ERR_print_errors
    - BIO_puts
    - get_ocsp_resp_from_responder
    - BIO_free
    - OCSP_RESPONSE_free
    - bio_open_default
    - i2d_OCSP_RESPONSE
    - OCSP_RESPONSE_print
    linkageType: ''
    returnType: int
    signature: int cert_status_cb(SSL *s, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: next_proto_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int next_proto_cb(SSL *s, const unsigned char **data,\n                         unsigned
      int *len, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:695,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:698,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:699,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:702,1
    - Dst: SSL_select_next_proto
      Src: /src/openssl-1.1.1g/apps/s_server.c:705,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:712,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:713,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 687
    functionDepth: 4
    functionLinenumber: 687
    functionLinenumberEnd: 718
    functionName: alpn_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - SSL_select_next_proto
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int alpn_cb(SSL *s, const unsigned char **out, unsigned char *outlen,\n
      \                  const unsigned char *in, unsigned int inlen, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - is_forward_secure
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: not_resumable_sess_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int not_resumable_sess_cb(SSL *s, int is_forward_secure)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: IS_PROT_FLAG
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_PROT_FLAG(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2202,1
    - Dst: SSL_CTX_sess_number
      Src: /src/openssl-1.1.1g/apps/s_server.c:2203,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2204,1
    - Dst: SSL_CTX_sess_connect
      Src: /src/openssl-1.1.1g/apps/s_server.c:2205,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2206,1
    - Dst: SSL_CTX_sess_connect_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_server.c:2207,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2208,1
    - Dst: SSL_CTX_sess_connect_good
      Src: /src/openssl-1.1.1g/apps/s_server.c:2209,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2210,1
    - Dst: SSL_CTX_sess_accept
      Src: /src/openssl-1.1.1g/apps/s_server.c:2211,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2212,1
    - Dst: SSL_CTX_sess_accept_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_server.c:2213,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2214,1
    - Dst: SSL_CTX_sess_accept_good
      Src: /src/openssl-1.1.1g/apps/s_server.c:2215,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2216,1
    - Dst: SSL_CTX_sess_hits
      Src: /src/openssl-1.1.1g/apps/s_server.c:2216,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2217,1
    - Dst: SSL_CTX_sess_misses
      Src: /src/openssl-1.1.1g/apps/s_server.c:2218,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2219,1
    - Dst: SSL_CTX_sess_timeouts
      Src: /src/openssl-1.1.1g/apps/s_server.c:2220,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2221,1
    - Dst: SSL_CTX_sess_cb_hits
      Src: /src/openssl-1.1.1g/apps/s_server.c:2222,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2223,1
    - Dst: SSL_CTX_sess_cache_full
      Src: /src/openssl-1.1.1g/apps/s_server.c:2224,1
    - Dst: SSL_CTX_sess_get_cache_size
      Src: /src/openssl-1.1.1g/apps/s_server.c:2225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - bio
    - ssl_ctx
    argTypes:
    - BIO*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2200
    functionDepth: 2
    functionLinenumber: 2200
    functionLinenumberEnd: 2226
    functionName: print_stats
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_sess_get_cache_size
    - SSL_CTX_sess_timeouts
    - SSL_CTX_sess_accept
    - SSL_CTX_sess_accept_good
    - SSL_CTX_sess_connect_good
    - SSL_CTX_sess_accept_renegotiate
    - SSL_CTX_sess_hits
    - SSL_CTX_sess_number
    - SSL_CTX_sess_cb_hits
    - SSL_CTX_sess_cache_full
    - BIO_printf
    - SSL_CTX_sess_connect
    - SSL_CTX_sess_connect_renegotiate
    - SSL_CTX_sess_misses
    linkageType: ''
    returnType: void
    signature: void print_stats(BIO *bio, SSL_CTX *ssl_ctx)
  - BBCount: 85
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_server.c:2249,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:2251,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:2252,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2254,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:2257,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:2264,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:2265,1
    - Dst: SSL_set_session_id_context
      Src: /src/openssl-1.1.1g/apps/s_server.c:2269,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:2270,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2271,1
    - Dst: SSL_clear
      Src: /src/openssl-1.1.1g/apps/s_server.c:2276,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2277,1
    - Dst: BIO_new_dgram_sctp
      Src: /src/openssl-1.1.1g/apps/s_server.c:2285,1
    - Dst: BIO_new_dgram
      Src: /src/openssl-1.1.1g/apps/s_server.c:2288,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/apps/s_server.c:2293,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/apps/s_server.c:2297,1
    - Dst: DTLS_get_link_min_mtu
      Src: /src/openssl-1.1.1g/apps/s_server.c:2301,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2302,1
    - Dst: DTLS_get_link_min_mtu
      Src: /src/openssl-1.1.1g/apps/s_server.c:2303,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2305,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/apps/s_server.c:2308,1
    - Dst: DTLS_set_link_mtu
      Src: /src/openssl-1.1.1g/apps/s_server.c:2309,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2310,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2312,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/apps/s_server.c:2317,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/apps/s_server.c:2323,1
    - Dst: BIO_new_socket
      Src: /src/openssl-1.1.1g/apps/s_server.c:2326,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2329,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:2330,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:2337,1
    - Dst: BIO_f_nbio_test
      Src: /src/openssl-1.1.1g/apps/s_server.c:2337,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_server.c:2338,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/apps/s_server.c:2341,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/apps/s_server.c:2342,1
    - Dst: BIO_set_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:2346,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:2346,1
    - Dst: BIO_set_callback_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:2347,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:2347,1
    - Dst: SSL_set_msg_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:2352,1
    - Dst: SSL_set_msg_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:2355,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:2356,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:2360,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:2361,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/apps/s_server.c:2370,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_server.c:2374,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2381,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:2382,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2388,1
    - Dst: raw_write_stdout
      Src: /src/openssl-1.1.1g/apps/s_server.c:2391,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2392,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-1.1.1g/apps/s_server.c:2396,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2397,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2399,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2401,1
    - Dst: SSL_is_init_finished
      Src: /src/openssl-1.1.1g/apps/s_server.c:2403,1
    - Dst: print_connection_info
      Src: /src/openssl-1.1.1g/apps/s_server.c:2404,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/s_server.c:2407,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/s_server.c:2408,1
    - Dst: SSL_has_pending
      Src: /src/openssl-1.1.1g/apps/s_server.c:2416,1
    - Dst: SSL_waiting_for_async
      Src: /src/openssl-1.1.1g/apps/s_server.c:2417,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/s_server.c:2420,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_server.c:2422,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/s_server.c:2422,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_server.c:2424,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/s_server.c:2441,1
    - Dst: has_stdin_waiting
      Src: /src/openssl-1.1.1g/apps/s_server.c:2442,1
    - Dst: SSL_is_dtls
      Src: /src/openssl-1.1.1g/apps/s_server.c:2447,1
    - Dst: DTLSv1_get_timeout
      Src: /src/openssl-1.1.1g/apps/s_server.c:2447,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/s_server.c:2452,1
    - Dst: DTLSv1_handle_timeout
      Src: /src/openssl-1.1.1g/apps/s_server.c:2454,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2455,1
    - Dst: FD_ISSET
      Src: /src/openssl-1.1.1g/apps/s_server.c:2459,1
    - Dst: fileno_stdin
      Src: /src/openssl-1.1.1g/apps/s_server.c:2459,1
    - Dst: FD_ISSET
      Src: /src/openssl-1.1.1g/apps/s_server.c:2462,1
    - Dst: raw_read_stdin
      Src: /src/openssl-1.1.1g/apps/s_server.c:2469,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/s_server.c:2483,1
    - Dst: raw_read_stdin
      Src: /src/openssl-1.1.1g/apps/s_server.c:2485,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2490,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2491,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_server.c:2492,1
    - Dst: close_accept_socket
      Src: /src/openssl-1.1.1g/apps/s_server.c:2493,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2498,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2499,1
    - Dst: SSL_version
      Src: /src/openssl-1.1.1g/apps/s_server.c:2500,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_server.c:2501,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2509,1
    - Dst: SSL_heartbeat
      Src: /src/openssl-1.1.1g/apps/s_server.c:2510,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_server.c:2516,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/apps/s_server.c:2517,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2518,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/apps/s_server.c:2523,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_server.c:2526,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/apps/s_server.c:2527,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2528,1
    - Dst: SSL_key_update
      Src: /src/openssl-1.1.1g/apps/s_server.c:2534,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/apps/s_server.c:2537,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2538,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/apps/s_server.c:2543,1
    - Dst: SSL_verify_client_post_handshake
      Src: /src/openssl-1.1.1g/apps/s_server.c:2544,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2546,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:2547,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/apps/s_server.c:2549,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2550,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:2557,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:2557,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:2557,1
    - Dst: print_stats
      Src: /src/openssl-1.1.1g/apps/s_server.c:2560,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openssl-1.1.1g/apps/s_server.c:2560,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-1.1.1g/apps/s_server.c:2564,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_server.c:2573,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:2576,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_server.c:2578,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2579,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2580,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openssl-1.1.1g/apps/s_server.c:2582,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2585,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2588,1
    - Dst: SSL_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:2589,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_server.c:2592,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2596,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2597,1
    - Dst: wait_for_async
      Src: /src/openssl-1.1.1g/apps/s_server.c:2598,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2603,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2604,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2612,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2613,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:2614,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2619,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2620,1
    - Dst: SSL_waiting_for_async
      Src: /src/openssl-1.1.1g/apps/s_server.c:2638,1
    - Dst: SSL_is_init_finished
      Src: /src/openssl-1.1.1g/apps/s_server.c:2639,1
    - Dst: init_ssl_connection
      Src: /src/openssl-1.1.1g/apps/s_server.c:2640,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/apps/s_server.c:2651,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_server.c:2653,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2654,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2655,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openssl-1.1.1g/apps/s_server.c:2657,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2660,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2663,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/apps/s_server.c:2664,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_server.c:2667,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-1.1.1g/apps/s_server.c:2670,1
    - Dst: raw_write_stdout
      Src: /src/openssl-1.1.1g/apps/s_server.c:2672,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2673,1
    - Dst: SSL_has_pending
      Src: /src/openssl-1.1.1g/apps/s_server.c:2674,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2678,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2679,1
    - Dst: wait_for_async
      Src: /src/openssl-1.1.1g/apps/s_server.c:2680,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2684,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2685,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2693,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2694,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:2695,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2699,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2700,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2709,1
    - Dst: SSL_set_shutdown
      Src: /src/openssl-1.1.1g/apps/s_server.c:2710,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2711,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2713,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2714,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 372
    argCount: 4
    argNames:
    - s
    - stype
    - prot
    - context
    argTypes:
    - int
    - int
    - int
    - unsigned char*
    assertStmts:
    - condition: (lf_num == 0)
      pos:
        line_end: 2482
        line_start: 2482
        source_file: /src/openssl-1.1.1g/apps/s_server.c
    constantsTouched: []
    func_position:
      end: 2716
      start: 2228
    functionDepth: 7
    functionLinenumber: 2228
    functionLinenumberEnd: 2716
    functionName: sv_body
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_is_init_finished
    - SSL_write
    - SSL_verify_client_post_handshake
    - BIO_new_dgram_sctp
    - has_stdin_waiting
    - DTLSv1_handle_timeout
    - BIO_ctrl
    - BIO_new_dgram
    - select
    - BIO_closesocket
    - raw_read_stdin
    - close_accept_socket
    - SSL_set_accept_state
    - BIO_new_socket
    - SSL_renegotiate
    - printf
    - SSL_set_session_id_context
    - SSL_set_tlsext_debug_callback
    - BIO_set_callback_arg
    - SSL_heartbeat
    - print_stats
    - SRP_VBASE_get1_by_user
    - init_ssl_connection
    - raw_write_stdout
    - BIO_free
    - BIO_push
    - SSL_clear
    - SSL_new
    - SSL_get_early_data_status
    - SSL_free
    - openssl_fdset
    - BIO_set_callback
    - SSL_read_early_data
    - BIO_socket_nbio
    - app_malloc
    - fileno_stdin
    - FD_ZERO
    - SRP_user_pwd_free
    - SSL_set_bio
    - SSL_version
    - wait_for_async
    - SSL_set_verify
    - ebcdic2ascii
    - SSL_read
    - SSL_set_shutdown
    - SSL_get_SSL_CTX
    - BIO_f_nbio_test
    - SSL_set_msg_callback_arg
    - DTLSv1_get_timeout
    - assert
    - OPENSSL_clear_free
    - DTLS_set_link_mtu
    - BIO_flush
    - print_connection_info
    - SSL_key_update
    - DTLS_get_link_min_mtu
    - SSL_set_msg_callback
    - SSL_waiting_for_async
    - BIO_write
    - SSL_set_tlsext_debug_arg
    - SSL_get_error
    - FD_ISSET
    - SSL_set_options
    - ascii2ebcdic
    - SSL_has_pending
    - SSL_get_wbio
    - SSL_get_rbio
    - SSL_is_dtls
    - BIO_printf
    - SSL_do_handshake
    - ERR_print_errors
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int sv_body(int s, int stype, int prot, unsigned char *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2720,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_server.c:2722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2718
    functionDepth: 2
    functionLinenumber: 2718
    functionLinenumberEnd: 2724
    functionName: close_accept_socket
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 1
    functionsReached:
    - BIO_closesocket
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void close_accept_socket(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_server.c:2728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - con
    - i
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2726
    functionDepth: 1
    functionLinenumber: 2726
    functionLinenumberEnd: 2734
    functionName: is_retryable
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_get_error
    linkageType: ''
    returnType: int
    signature: int is_retryable(SSL *con, int i)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ADDR_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:2746,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2747,1
    - Dst: DTLSv1_listen
      Src: /src/openssl-1.1.1g/apps/s_server.c:2750,1
    - Dst: SSL_stateless
      Src: /src/openssl-1.1.1g/apps/s_server.c:2752,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:2759,1
    - Dst: BIO_get_fd
      Src: /src/openssl-1.1.1g/apps/s_server.c:2761,1
    - Dst: BIO_connect
      Src: /src/openssl-1.1.1g/apps/s_server.c:2764,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2765,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2766,1
    - Dst: BIO_ctrl_set_connected
      Src: /src/openssl-1.1.1g/apps/s_server.c:2770,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2771,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/apps/s_server.c:2776,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2778,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/apps/s_server.c:2782,1
    - Dst: is_retryable
      Src: /src/openssl-1.1.1g/apps/s_server.c:2785,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_server.c:2789,1
    - Dst: SSL_get_state
      Src: /src/openssl-1.1.1g/apps/s_server.c:2790,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2791,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/apps/s_server.c:2793,1
    - Dst: is_retryable
      Src: /src/openssl-1.1.1g/apps/s_server.c:2795,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_server.c:2802,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2803,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2805,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openssl-1.1.1g/apps/s_server.c:2807,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2810,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2813,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/apps/s_server.c:2814,1
    - Dst: is_retryable
      Src: /src/openssl-1.1.1g/apps/s_server.c:2816,1
    - Dst: SSL_waiting_for_async
      Src: /src/openssl-1.1.1g/apps/s_server.c:2819,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2825,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2829,1
    - Dst: SSL_get_verify_result
      Src: /src/openssl-1.1.1g/apps/s_server.c:2831,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2833,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/apps/s_server.c:2834,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:2837,1
    - Dst: print_connection_info
      Src: /src/openssl-1.1.1g/apps/s_server.c:2841,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 1
    argNames:
    - con
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2736
    functionDepth: 6
    functionLinenumber: 2736
    functionLinenumberEnd: 2843
    functionName: init_ssl_connection
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 1
    functionsReached:
    - SSL_get_verify_result
    - BIO_ADDR_free
    - is_retryable
    - BIO_connect
    - BIO_ctrl_set_connected
    - SSL_accept
    - SRP_VBASE_get1_by_user
    - BIO_get_fd
    - BIO_ADDR_new
    - X509_verify_cert_error_string
    - SRP_user_pwd_free
    - SSL_stateless
    - print_connection_info
    - SSL_waiting_for_async
    - SSL_get_error
    - DTLSv1_listen
    - SSL_get_wbio
    - BIO_printf
    - ERR_print_errors
    - SSL_get_state
    linkageType: ''
    returnType: int
    signature: int init_ssl_connection(SSL *con)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: print_ssl_summary
      Src: /src/openssl-1.1.1g/apps/s_server.c:2858,1
    - Dst: PEM_write_bio_SSL_SESSION
      Src: /src/openssl-1.1.1g/apps/s_server.c:2860,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/apps/s_server.c:2860,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openssl-1.1.1g/apps/s_server.c:2862,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2864,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/s_server.c:2865,1
    - Dst: dump_cert_text
      Src: /src/openssl-1.1.1g/apps/s_server.c:2866,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2867,1
    - Dst: SSL_get_shared_ciphers
      Src: /src/openssl-1.1.1g/apps/s_server.c:2871,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2872,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/apps/s_server.c:2873,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/apps/s_server.c:2873,1
    - Dst: ssl_print_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_server.c:2874,1
    - Dst: ssl_print_point_formats
      Src: /src/openssl-1.1.1g/apps/s_server.c:2876,1
    - Dst: ssl_print_groups
      Src: /src/openssl-1.1.1g/apps/s_server.c:2877,1
    - Dst: print_ca_names
      Src: /src/openssl-1.1.1g/apps/s_server.c:2879,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2880,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openssl-1.1.1g/apps/s_server.c:2883,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2885,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:2886,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2887,1
    - Dst: SSL_get_selected_srtp_profile
      Src: /src/openssl-1.1.1g/apps/s_server.c:2893,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2896,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/apps/s_server.c:2900,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2901,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2902,1
    - Dst: SSL_get_secure_renegotiation_support
      Src: /src/openssl-1.1.1g/apps/s_server.c:2903,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/apps/s_server.c:2904,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2905,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2908,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2909,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2910,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_server.c:2911,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/apps/s_server.c:2912,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:2915,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2917,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2919,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2921,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2922,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2924,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:2927,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - con
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2845
    functionDepth: 6
    functionLinenumber: 2845
    functionLinenumberEnd: 2928
    functionName: print_connection_info
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 2
    functionsReached:
    - ssl_print_groups
    - SSL_get_session
    - ssl_print_point_formats
    - SSL_get_shared_ciphers
    - SSL_export_keying_material
    - SSL_get0_next_proto_negotiated
    - SSL_CIPHER_get_name
    - SSL_get_current_cipher
    - SSL_get_options
    - X509_free
    - SSL_get_selected_srtp_profile
    - OPENSSL_free
    - SSL_get_peer_certificate
    - print_ca_names
    - print_ssl_summary
    - PEM_write_bio_SSL_SESSION
    - app_malloc
    - SSL_session_reused
    - ssl_print_sigalgs
    - BIO_flush
    - dump_cert_text
    - BIO_write
    - SSL_get_secure_renegotiation_support
    - PEM_write_bio_X509
    - BIO_printf
    - strlen
    linkageType: ''
    returnType: void
    signature: void print_connection_info(SSL *con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/s_server.c:2936,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/openssl-1.1.1g/apps/s_server.c:2938,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dhfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2942
      start: 2931
    functionDepth: 4
    functionLinenumber: 2931
    functionLinenumberEnd: 2942
    functionName: load_dh_param
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_new_file
    - PEM_read_bio_DHparams
    - BIO_free
    linkageType: ''
    returnType: DH
    signature: DH *load_dh_param(const char *dhfile)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_server.c:2962,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:2963,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/s_server.c:2963,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:2964,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/apps/s_server.c:2964,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:2969,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:2970,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:2972,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openssl-1.1.1g/apps/s_server.c:2976,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:2979,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:2983,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:2984,1
    - Dst: SSL_set_session_id_context
      Src: /src/openssl-1.1.1g/apps/s_server.c:2988,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:2989,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:2990,1
    - Dst: BIO_new_socket
      Src: /src/openssl-1.1.1g/apps/s_server.c:2994,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:2998,1
    - Dst: BIO_f_nbio_test
      Src: /src/openssl-1.1.1g/apps/s_server.c:2998,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_server.c:2999,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/apps/s_server.c:3001,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/apps/s_server.c:3002,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/apps/s_server.c:3005,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_server.c:3006,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_server.c:3008,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:3008,1
    - Dst: BIO_f_ebcdic_filter
      Src: /src/openssl-1.1.1g/apps/s_server.c:3008,1
    - Dst: BIO_set_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:3012,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:3012,1
    - Dst: BIO_set_callback_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:3013,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:3013,1
    - Dst: SSL_set_msg_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:3018,1
    - Dst: SSL_set_msg_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:3021,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:3022,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_server.c:3026,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/apps/s_server.c:3028,1
    - Dst: SSL_waiting_for_async
      Src: /src/openssl-1.1.1g/apps/s_server.c:3028,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:3030,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3033,1
    - Dst: BIO_should_io_special
      Src: /src/openssl-1.1.1g/apps/s_server.c:3035,1
    - Dst: BIO_get_retry_reason
      Src: /src/openssl-1.1.1g/apps/s_server.c:3036,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3037,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3038,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openssl-1.1.1g/apps/s_server.c:3040,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3043,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3046,1
    - Dst: sleep
      Src: /src/openssl-1.1.1g/apps/s_server.c:3051,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3061,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3062,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/s_server.c:3065,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3068,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3069,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/apps/s_server.c:3070,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_server.c:3073,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3074,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/apps/s_server.c:3076,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3078,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/apps/s_server.c:3079,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:3080,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/s_server.c:3084,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_server.c:3085,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/s_server.c:3086,1
    - Dst: FD_ISSET
      Src: /src/openssl-1.1.1g/apps/s_server.c:3087,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3088,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:3090,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_server.c:3099,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3102,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3104,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3105,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3107,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3113,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3116,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3119,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:3122,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:3125,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3127,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3129,1
    - Dst: SSL_get_secure_renegotiation_support
      Src: /src/openssl-1.1.1g/apps/s_server.c:3131,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3137,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/apps/s_server.c:3138,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/apps/s_server.c:3139,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/apps/s_server.c:3141,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3142,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/openssl-1.1.1g/apps/s_server.c:3143,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/apps/s_server.c:3143,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3145,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3147,1
    - Dst: SSL_get_shared_ciphers
      Src: /src/openssl-1.1.1g/apps/s_server.c:3148,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3150,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:3155,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:3158,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:3160,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3165,1
    - Dst: ssl_print_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_server.c:3167,1
    - Dst: ssl_print_groups
      Src: /src/openssl-1.1.1g/apps/s_server.c:3169,1
    - Dst: print_ca_names
      Src: /src/openssl-1.1.1g/apps/s_server.c:3171,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3172,1
    - Dst: SSL_session_reused
      Src: /src/openssl-1.1.1g/apps/s_server.c:3172,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/apps/s_server.c:3174,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3175,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/openssl-1.1.1g/apps/s_server.c:3176,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/apps/s_server.c:3176,1
    - Dst: SSL_SESSION_print
      Src: /src/openssl-1.1.1g/apps/s_server.c:3177,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/apps/s_server.c:3177,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3178,1
    - Dst: print_stats
      Src: /src/openssl-1.1.1g/apps/s_server.c:3179,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openssl-1.1.1g/apps/s_server.c:3179,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3180,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openssl-1.1.1g/apps/s_server.c:3181,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3183,1
    - Dst: X509_print
      Src: /src/openssl-1.1.1g/apps/s_server.c:3184,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/s_server.c:3185,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3186,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3189,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3191,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3194,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3232,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3233,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3239,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3240,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3245,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3246,1
    - Dst: app_isdir
      Src: /src/openssl-1.1.1g/apps/s_server.c:3251,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3252,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3253,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/s_server.c:3257,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3258,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3259,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:3260,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3265,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:3268,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3269,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3270,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3271,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3272,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3275,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/s_server.c:3280,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3286,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3289,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_server.c:3290,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/apps/s_server.c:3298,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:3301,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/apps/s_server.c:3303,1
    - Dst: SSL_waiting_for_async
      Src: /src/openssl-1.1.1g/apps/s_server.c:3304,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3307,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3315,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:3321,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/apps/s_server.c:3323,1
    - Dst: SSL_set_shutdown
      Src: /src/openssl-1.1.1g/apps/s_server.c:3330,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3333,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/s_server.c:3334,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 286
    argCount: 4
    argNames:
    - s
    - stype
    - prot
    - context
    argTypes:
    - int
    - int
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 2945
    functionDepth: 6
    functionLinenumber: 2945
    functionLinenumberEnd: 3336
    functionName: www_body
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - ssl_print_groups
    - SSL_get_session
    - sk_SSL_CIPHER_value
    - SSL_get_shared_ciphers
    - STACK_OF
    - sleep
    - select
    - SSL_CIPHER_get_name
    - SSL_get_current_cipher
    - SSL_set_accept_state
    - BIO_should_retry
    - BIO_new_socket
    - SSL_renegotiate
    - X509_free
    - SSL_set_session_id_context
    - SSL_set_tlsext_debug_callback
    - BIO_set_callback_arg
    - SRP_VBASE_get1_by_user
    - print_stats
    - BIO_should_io_special
    - BIO_f_ebcdic_filter
    - app_isdir
    - SSL_get_peer_certificate
    - strcmp
    - OPENSSL_free
    - BIO_f_ssl
    - BIO_puts
    - BIO_set_ssl
    - SSL_get_ciphers
    - BIO_push
    - print_ca_names
    - BIO_free
    - SSL_new
    - SSL_free
    - openssl_fdset
    - BIO_set_callback
    - BIO_get_retry_reason
    - BIO_socket_nbio
    - BIO_read
    - app_malloc
    - FD_ZERO
    - sk_SSL_CIPHER_num
    - SRP_user_pwd_free
    - SSL_set_bio
    - SSL_CIPHER_get_version
    - X509_print
    - SSL_set_verify
    - SSL_set_shutdown
    - SSL_SESSION_print
    - SSL_session_reused
    - SSL_get_SSL_CTX
    - BIO_f_nbio_test
    - SSL_set_msg_callback_arg
    - ssl_print_sigalgs
    - BIO_new_file
    - BIO_flush
    - BIO_free_all
    - BIO_write
    - BIO_set_write_buffer_size
    - SSL_set_msg_callback
    - SSL_waiting_for_async
    - BIO_gets
    - SSL_set_tlsext_debug_arg
    - SSL_get_error
    - FD_ISSET
    - SSL_get_secure_renegotiation_support
    - BIO_f_buffer
    - PEM_write_bio_X509
    - SSL_get_rbio
    - BIO_printf
    - SSL_do_handshake
    - ERR_print_errors
    - strncmp
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int www_body(int s, int stype, int prot, unsigned char *context)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_server.c:3346,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:3347,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/s_server.c:3347,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:3348,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/apps/s_server.c:3348,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openssl-1.1.1g/apps/s_server.c:3353,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:3356,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:3360,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:3361,1
    - Dst: SSL_set_session_id_context
      Src: /src/openssl-1.1.1g/apps/s_server.c:3364,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:3365,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3366,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:3367,1
    - Dst: BIO_new_socket
      Src: /src/openssl-1.1.1g/apps/s_server.c:3371,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/apps/s_server.c:3372,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/apps/s_server.c:3373,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/apps/s_server.c:3376,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_server.c:3377,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/s_server.c:3379,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/s_server.c:3379,1
    - Dst: BIO_f_ebcdic_filter
      Src: /src/openssl-1.1.1g/apps/s_server.c:3379,1
    - Dst: BIO_set_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:3383,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:3383,1
    - Dst: BIO_set_callback_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:3384,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/apps/s_server.c:3384,1
    - Dst: SSL_set_msg_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:3389,1
    - Dst: SSL_set_msg_callback
      Src: /src/openssl-1.1.1g/apps/s_server.c:3392,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/openssl-1.1.1g/apps/s_server.c:3393,1
    - Dst: BIO_do_handshake
      Src: /src/openssl-1.1.1g/apps/s_server.c:3397,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/apps/s_server.c:3400,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_server.c:3401,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:3402,1
    - Dst: BIO_should_io_special
      Src: /src/openssl-1.1.1g/apps/s_server.c:3406,1
    - Dst: BIO_get_retry_reason
      Src: /src/openssl-1.1.1g/apps/s_server.c:3407,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3408,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3409,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openssl-1.1.1g/apps/s_server.c:3411,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3414,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3417,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3422,1
    - Dst: print_ssl_summary
      Src: /src/openssl-1.1.1g/apps/s_server.c:3423,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/s_server.c:3426,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/apps/s_server.c:3428,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_server.c:3430,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3433,1
    - Dst: BIO_should_io_special
      Src: /src/openssl-1.1.1g/apps/s_server.c:3435,1
    - Dst: BIO_get_retry_reason
      Src: /src/openssl-1.1.1g/apps/s_server.c:3436,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3437,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3438,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openssl-1.1.1g/apps/s_server.c:3440,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3443,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3446,1
    - Dst: sleep
      Src: /src/openssl-1.1.1g/apps/s_server.c:3451,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3457,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3465,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3467,1
    - Dst: BUF_reverse
      Src: /src/openssl-1.1.1g/apps/s_server.c:3470,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_server.c:3472,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_server.c:3474,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/apps/s_server.c:3477,1
    - Dst: SSL_set_shutdown
      Src: /src/openssl-1.1.1g/apps/s_server.c:3484,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3488,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/s_server.c:3489,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 121
    argCount: 4
    argNames:
    - s
    - stype
    - prot
    - context
    argTypes:
    - int
    - int
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3491
      start: 3338
    functionDepth: 6
    functionLinenumber: 3338
    functionLinenumberEnd: 3491
    functionName: rev_body
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_do_handshake
    - sleep
    - SSL_set_accept_state
    - BIO_should_retry
    - BIO_new_socket
    - SSL_set_session_id_context
    - SSL_set_tlsext_debug_callback
    - BIO_set_callback_arg
    - SRP_VBASE_get1_by_user
    - BIO_should_io_special
    - BIO_f_ebcdic_filter
    - OPENSSL_free
    - BIO_f_ssl
    - BIO_puts
    - BIO_set_ssl
    - BIO_push
    - SSL_new
    - SSL_free
    - BIO_set_callback
    - BIO_get_retry_reason
    - print_ssl_summary
    - app_malloc
    - SRP_user_pwd_free
    - SSL_set_bio
    - SSL_set_shutdown
    - SSL_set_msg_callback_arg
    - BIO_flush
    - BIO_free_all
    - BIO_write
    - BIO_set_write_buffer_size
    - SSL_set_msg_callback
    - BIO_gets
    - SSL_set_tlsext_debug_arg
    - BIO_f_buffer
    - BUF_reverse
    - SSL_get_rbio
    - BIO_printf
    - ERR_print_errors
    - strncmp
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int rev_body(int s, int stype, int prot, unsigned char *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/apps/s_server.c:3499,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/s_server.c:3508,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:3509,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/s_server.c:3510,1
    - Dst: SSL_has_matching_session_id
      Src: /src/openssl-1.1.1g/apps/s_server.c:3512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - id
    - id_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3517
      start: 3494
    functionDepth: 3
    functionLinenumber: 3494
    functionLinenumberEnd: 3517
    functionName: generate_session_id
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_has_matching_session_id
    - RAND_bytes
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int generate_session_id(SSL *ssl, unsigned char *id,\n                               unsigned
      int *id_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_server.c:3538,1
    - Dst: SSL_SESSION_get_id
      Src: /src/openssl-1.1.1g/apps/s_server.c:3541,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openssl-1.1.1g/apps/s_server.c:3542,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3544,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3545,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/apps/s_server.c:3549,1
    - Dst: SSL_SESSION_get_id
      Src: /src/openssl-1.1.1g/apps/s_server.c:3549,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_server.c:3550,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3552,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3553,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3554,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3555,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openssl-1.1.1g/apps/s_server.c:3561,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3562,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3563,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3564,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3565,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - ssl
    - session
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3573
      start: 3536
    functionDepth: 6
    functionLinenumber: 3536
    functionLinenumberEnd: 3573
    functionName: add_session
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 2
    functionsReached:
    - app_malloc
    - SSL_SESSION_get_id
    - OPENSSL_free
    - BIO_printf
    - i2d_SSL_SESSION
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int add_session(SSL *ssl, SSL_SESSION *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3581,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3583,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openssl-1.1.1g/apps/s_server.c:3584,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_server.c:3587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ssl
    - id
    - idlen
    - do_copy
    argTypes:
    - SSL*
    - unsigned char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3575
    functionDepth: 2
    functionLinenumber: 3575
    functionLinenumberEnd: 3589
    functionName: get_session
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 10
    functionsReached:
    - memcmp
    - d2i_SSL_SESSION
    - BIO_printf
    linkageType: ''
    returnType: SSL_SESSION
    signature: "SSL_SESSION *get_session(SSL *ssl, const unsigned char *id, int idlen,\n
      \                               int *do_copy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_id
      Src: /src/openssl-1.1.1g/apps/s_server.c:3596,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/apps/s_server.c:3598,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3603,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3604,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - sctx
    - session
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3591
    functionDepth: 1
    functionLinenumber: 3591
    functionLinenumberEnd: 3610
    functionName: del_session
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - memcmp
    - OPENSSL_free
    - SSL_SESSION_get_id
    linkageType: ''
    returnType: void
    signature: void del_session(SSL_CTX *sctx, SSL_SESSION *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-1.1.1g/apps/s_server.c:3614,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-1.1.1g/apps/s_server.c:3617,1
    - Dst: SSL_CTX_sess_set_get_cb
      Src: /src/openssl-1.1.1g/apps/s_server.c:3618,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/openssl-1.1.1g/apps/s_server.c:3619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3620
      start: 3612
    functionDepth: 1
    functionLinenumber: 3612
    functionLinenumberEnd: 3620
    functionName: init_session_cache_ctx
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_sess_set_remove_cb
    - SSL_CTX_sess_set_new_cb
    - SSL_CTX_sess_set_get_cb
    linkageType: ''
    returnType: void
    signature: void init_session_cache_ctx(SSL_CTX *sctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3626,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3627,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_server.c:3630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3633
      start: 3622
    functionDepth: 1
    functionLinenumber: 3622
    functionLinenumberEnd: 3633
    functionName: free_sessions
    functionSourceFile: /src/openssl-1.1.1g/apps/s_server.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void free_sessions(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openssl-1.1.1g/apps/s_socket.c:73,1
    - Dst: BIO_lookup_ex
      Src: /src/openssl-1.1.1g/apps/s_socket.c:76,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:79,1
    - Dst: BIO_lookup_ex
      Src: /src/openssl-1.1.1g/apps/s_socket.c:84,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:87,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openssl-1.1.1g/apps/s_socket.c:93,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/apps/s_socket.c:97,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:98,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-1.1.1g/apps/s_socket.c:99,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-1.1.1g/apps/s_socket.c:101,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openssl-1.1.1g/apps/s_socket.c:104,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:105,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:105,1
    - Dst: BIO_socket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:113,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:113,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-1.1.1g/apps/s_socket.c:113,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-1.1.1g/apps/s_socket.c:114,1
    - Dst: BIO_bind
      Src: /src/openssl-1.1.1g/apps/s_socket.c:123,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/apps/s_socket.c:123,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:125,1
    - Dst: BIO_new_dgram_sctp
      Src: /src/openssl-1.1.1g/apps/s_socket.c:139,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:142,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:145,1
    - Dst: BIO_connect
      Src: /src/openssl-1.1.1g/apps/s_socket.c:149,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/apps/s_socket.c:149,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:151,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_socket.c:162,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:163,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:164,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:165,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/s_socket.c:169,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:172,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/s_socket.c:175,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:180,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:182,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 71
    argCount: 8
    argNames:
    - sock
    - host
    - port
    - bindhost
    - bindport
    - family
    - type
    - protocol
    argTypes:
    - int*
    - char*
    - char*
    - char*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 184
    functionName: init_client
    functionSourceFile: /src/openssl-1.1.1g/apps/s_socket.c
    functionUses: 1
    functionsReached:
    - BIO_ADDRINFO_next
    - OPENSSL_assert
    - BIO_bind
    - BIO_ADDRINFO_free
    - BIO_socket
    - BIO_connect
    - BIO_new_dgram_sctp
    - BIO_ADDRINFO_address
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_socktype
    - BIO_closesocket
    - BIO_free
    - BIO_printf
    - BIO_lookup_ex
    - ERR_clear_error
    - BIO_sock_init
    - ERR_print_errors
    - BIO_ADDRINFO_protocol
    linkageType: ''
    returnType: int
    signature: "int init_client(int *sock, const char *host, const char *port,\n                const
      char *bindhost, const char *bindport,\n                int family, int type,
      int protocol)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openssl-1.1.1g/apps/s_socket.c:220,1
    - Dst: BIO_lookup_ex
      Src: /src/openssl-1.1.1g/apps/s_socket.c:223,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:225,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/apps/s_socket.c:231,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:231,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-1.1.1g/apps/s_socket.c:232,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-1.1.1g/apps/s_socket.c:233,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:235,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-1.1.1g/apps/s_socket.c:236,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-1.1.1g/apps/s_socket.c:237,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/apps/s_socket.c:238,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openssl-1.1.1g/apps/s_socket.c:239,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-1.1.1g/apps/s_socket.c:243,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-1.1.1g/apps/s_socket.c:244,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:246,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-1.1.1g/apps/s_socket.c:248,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-1.1.1g/apps/s_socket.c:250,1
    - Dst: BIO_socket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:255,1
    - Dst: BIO_listen
      Src: /src/openssl-1.1.1g/apps/s_socket.c:257,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:258,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:259,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:261,1
    - Dst: BIO_new_dgram_sctp
      Src: /src/openssl-1.1.1g/apps/s_socket.c:273,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:276,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:277,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:280,1
    - Dst: BIO_ADDR_rawport
      Src: /src/openssl-1.1.1g/apps/s_socket.c:284,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:286,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-1.1.1g/apps/s_socket.c:296,1
    - Dst: BIO_sock_info
      Src: /src/openssl-1.1.1g/apps/s_socket.c:297,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openssl-1.1.1g/apps/s_socket.c:298,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openssl-1.1.1g/apps/s_socket.c:299,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_socket.c:300,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/s_socket.c:301,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_socket.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:308,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:309,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:310,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:312,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:313,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_socket.c:317,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_socket.c:318,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:329,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-1.1.1g/apps/s_socket.c:330,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:332,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:333,1
    - Dst: BIO_accept_ex
      Src: /src/openssl-1.1.1g/apps/s_socket.c:337,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-1.1.1g/apps/s_socket.c:338,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_socket.c:340,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:341,1
    - Dst: BIO_set_tcp_ndelay
      Src: /src/openssl-1.1.1g/apps/s_socket.c:344,1
    - Dst: shutdown
      Src: /src/openssl-1.1.1g/apps/s_socket.c:357,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/s_socket.c:367,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/s_socket.c:368,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/s_socket.c:369,1
    - Dst: readsocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:370,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:372,1
    - Dst: BIO_closesocket
      Src: /src/openssl-1.1.1g/apps/s_socket.c:380,1
    - Dst: unlink
      Src: /src/openssl-1.1.1g/apps/s_socket.c:388,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_socket.c:390,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 111
    argCount: 10
    argNames:
    - accept_sock
    - host
    - port
    - family
    - type
    - protocol
    - cb
    - context
    - naccept
    - bio_s_out
    argTypes:
    - int*
    - char*
    - char*
    - int
    - int
    - int
    - do_server_cb
    - unsigned char*
    - int
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 393
    functionName: do_server
    functionSourceFile: /src/openssl-1.1.1g/apps/s_socket.c
    functionUses: 0
    functionsReached:
    - shutdown
    - OPENSSL_assert
    - BIO_listen
    - BIO_sock_info
    - BIO_ADDR_free
    - BIO_new_dgram_sctp
    - readsocket
    - BIO_closesocket
    - select
    - BIO_lookup_ex
    - BIO_ADDR_rawport
    - BIO_ADDRINFO_protocol
    - BIO_socket
    - BIO_ADDR_service_string
    - OPENSSL_free
    - BIO_ADDRINFO_socktype
    - BIO_ADDR_new
    - BIO_free
    - BIO_accept_ex
    - unlink
    - openssl_fdset
    - BIO_ADDRINFO_next
    - BIO_ADDRINFO_address
    - BIO_ADDRINFO_family
    - strchr
    - BIO_flush
    - BIO_ADDR_hostname_string
    - BIO_ADDRINFO_free
    - BIO_sock_should_retry
    - BIO_printf
    - BIO_sock_init
    - ERR_print_errors
    - BIO_set_tcp_ndelay
    - FD_ZERO
    linkageType: ''
    returnType: int
    signature: "int do_server(int *accept_sock, const char *host, const char *port,\n
      \             int family, int type, int protocol, do_server_cb cb,\n              unsigned
      char *context, int naccept, BIO *bio_s_out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/errstr.c:37,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/errstr.c:38,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/errstr.c:42,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/errstr.c:45,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/errstr.c:52,1
    - Dst: sscanf
      Src: /src/openssl-1.1.1g/apps/errstr.c:53,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/apps/errstr.c:59,1
    - Dst: ERR_error_string_n
      Src: /src/openssl-1.1.1g/apps/errstr.c:61,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/errstr.c:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 67
    functionName: errstr_main
    functionSourceFile: /src/openssl-1.1.1g/apps/errstr.c
    functionUses: 0
    functionsReached:
    - sscanf
    - opt_rest
    - ERR_error_string_n
    - OPENSSL_init_ssl
    - opt_next
    - BIO_printf
    - opt_init
    - opt_help
    linkageType: ''
    returnType: int
    signature: int errstr_main(int argc, char **argv)
  - BBCount: 138
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/smime.c:117,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/smime.c:118,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/apps/smime.c:137,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/smime.c:140,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/smime.c:141,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:146,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/smime.c:149,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/smime.c:153,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:153,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:157,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/smime.c:160,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:160,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:164,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/smime.c:226,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/smime.c:230,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:230,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:233,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:236,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:239,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:242,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/smime.c:248,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/smime.c:250,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/smime.c:254,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/smime.c:256,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:259,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:262,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/smime.c:265,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:265,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/smime.c:269,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/smime.c:269,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:276,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/smime.c:281,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/smime.c:283,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/smime.c:286,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/smime.c:288,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:290,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/smime.c:293,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:293,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:297,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:300,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:303,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/smime.c:312,1
    - Dst: opt_verify
      Src: /src/openssl-1.1.1g/apps/smime.c:315,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/smime.c:321,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/smime.c:322,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/smime.c:325,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/smime.c:332,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/smime.c:337,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/smime.c:339,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/smime.c:340,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/smime.c:344,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:347,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:354,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:360,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/smime.c:367,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:368,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-1.1.1g/apps/smime.c:390,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:392,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/apps/smime.c:396,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/smime.c:400,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/smime.c:404,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/smime.c:411,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/smime.c:413,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/smime.c:419,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/smime.c:421,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/smime.c:437,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/smime.c:442,1
    - Dst: SMIME_read_PKCS7
      Src: /src/openssl-1.1.1g/apps/smime.c:448,1
    - Dst: PEM_read_bio_PKCS7
      Src: /src/openssl-1.1.1g/apps/smime.c:450,1
    - Dst: d2i_PKCS7_bio
      Src: /src/openssl-1.1.1g/apps/smime.c:452,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:454,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:459,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/smime.c:463,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/smime.c:464,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:465,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/smime.c:471,1
    - Dst: setup_verify
      Src: /src/openssl-1.1.1g/apps/smime.c:476,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openssl-1.1.1g/apps/smime.c:478,1
    - Dst: X509_STORE_set1_param
      Src: /src/openssl-1.1.1g/apps/smime.c:480,1
    - Dst: PKCS7_encrypt
      Src: /src/openssl-1.1.1g/apps/smime.c:488,1
    - Dst: PKCS7_sign
      Src: /src/openssl-1.1.1g/apps/smime.c:503,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/smime.c:507,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/smime.c:508,1
    - Dst: PKCS7_add_certificate
      Src: /src/openssl-1.1.1g/apps/smime.c:509,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/smime.c:515,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/smime.c:516,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/smime.c:517,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/smime.c:518,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/smime.c:522,1
    - Dst: PKCS7_sign_add_signer
      Src: /src/openssl-1.1.1g/apps/smime.c:525,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/smime.c:527,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/smime.c:529,1
    - Dst: PKCS7_final
      Src: /src/openssl-1.1.1g/apps/smime.c:534,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:540,1
    - Dst: PKCS7_decrypt
      Src: /src/openssl-1.1.1g/apps/smime.c:546,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:547,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/smime.c:551,1
    - Dst: PKCS7_verify
      Src: /src/openssl-1.1.1g/apps/smime.c:552,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:553,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:555,1
    - Dst: PKCS7_get0_signers
      Src: /src/openssl-1.1.1g/apps/smime.c:558,1
    - Dst: save_certs
      Src: /src/openssl-1.1.1g/apps/smime.c:559,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:560,1
    - Dst: sk_X509_free
      Src: /src/openssl-1.1.1g/apps/smime.c:564,1
    - Dst: PEM_write_bio_PKCS7
      Src: /src/openssl-1.1.1g/apps/smime.c:566,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:569,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:571,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:573,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openssl-1.1.1g/apps/smime.c:576,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openssl-1.1.1g/apps/smime.c:578,1
    - Dst: PEM_write_bio_PKCS7_stream
      Src: /src/openssl-1.1.1g/apps/smime.c:580,1
    - Dst: i2d_PKCS7_bio_stream
      Src: /src/openssl-1.1.1g/apps/smime.c:582,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:584,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/smime.c:588,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/smime.c:596,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/smime.c:597,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/smime.c:598,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/apps/smime.c:599,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/smime.c:600,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/smime.c:601,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/smime.c:602,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/smime.c:603,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/smime.c:604,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/smime.c:605,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/smime.c:606,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/apps/smime.c:607,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/smime.c:608,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/smime.c:609,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/smime.c:610,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/smime.c:611,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/smime.c:612,1
    CyclomaticComplexity: 196
    EdgeCount: 196
    ICount: 492
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 112
    functionDepth: 9
    functionLinenumber: 112
    functionLinenumberEnd: 614
    functionName: smime_main
    functionSourceFile: /src/openssl-1.1.1g/apps/smime.c
    functionUses: 0
    functionsReached:
    - X509_STORE_set1_param
    - sk_OPENSSL_STRING_free
    - load_certs
    - PKCS7_free
    - STACK_OF
    - X509_VERIFY_PARAM_free
    - opt_rand
    - sk_X509_free
    - app_passwd
    - X509_STORE_set_verify_cb
    - bio_open_default
    - PKCS7_decrypt
    - sk_X509_value
    - save_certs
    - sk_OPENSSL_STRING_new_null
    - X509_free
    - X509_STORE_free
    - PEM_write_bio_PKCS7
    - PKCS7_add_certificate
    - EVP_des_ede3_cbc
    - PEM_read_bio_PKCS7
    - OPENSSL_free
    - opt_unknown
    - opt_arg
    - sk_OPENSSL_STRING_value
    - BIO_puts
    - opt_next
    - SMIME_read_PKCS7
    - BIO_free
    - PKCS7_encrypt
    - X509_VERIFY_PARAM_new
    - PKCS7_get0_signers
    - PKCS7_final
    - load_key
    - release_engine
    - ERR_print_errors
    - PKCS7_sign_add_signer
    - SMIME_write_PKCS7
    - sk_OPENSSL_STRING_num
    - i2d_PKCS7_bio_stream
    - PKCS7_sign
    - sk_X509_pop_free
    - d2i_PKCS7_bio
    - BIO_new_file
    - opt_help
    - BIO_free_all
    - sk_OPENSSL_STRING_push
    - sk_X509_push
    - PEM_write_bio_PKCS7_stream
    - setup_engine
    - opt_md
    - opt_num_rest
    - sk_X509_new_null
    - setup_verify
    - opt_cipher
    - PKCS7_verify
    - opt_rest
    - sk_X509_num
    - opt_verify
    - BIO_printf
    - EVP_PKEY_free
    - opt_format
    - opt_init
    - load_cert
    linkageType: ''
    returnType: int
    signature: int smime_main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/smime.c:623,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/smime.c:626,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/smime.c:627,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/smime.c:627,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/smime.c:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - signerfile
    - signers
    argTypes:
    - char*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 630
    functionName: save_certs
    functionSourceFile: /src/openssl-1.1.1g/apps/smime.c
    functionUses: 2
    functionsReached:
    - sk_X509_num
    - PEM_write_bio_X509
    - BIO_free
    - BIO_new_file
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int save_certs(char *signerfile, STACK_OF(X509) *signers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/apps/smime.c:638,1
    - Dst: policies_print
      Src: /src/openssl-1.1.1g/apps/smime.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 634
    functionDepth: 8
    functionLinenumber: 634
    functionLinenumberEnd: 647
    functionName: smime_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/smime.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_error
    - policies_print
    linkageType: ''
    returnType: int
    signature: int smime_cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: EXACTLY_ONE
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXACTLY_ONE(a, b, c)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/apps/ts.c:171,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/ts.c:174,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/ts.c:175,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:180,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/ts.c:183,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:185,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:189,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:192,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:202,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:205,1
    - Dst: opt_rand
      Src: /src/openssl-1.1.1g/apps/ts.c:208,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:212,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:221,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:227,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:236,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:239,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:242,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:245,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:248,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:251,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:254,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:257,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ts.c:260,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/ts.c:263,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/ts.c:263,1
    - Dst: opt_verify
      Src: /src/openssl-1.1.1g/apps/ts.c:267,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/ts.c:273,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/ts.c:277,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:278,1
    - Dst: load_config_file
      Src: /src/openssl-1.1.1g/apps/ts.c:282,1
    - Dst: app_load_modules
      Src: /src/openssl-1.1.1g/apps/ts.c:284,1
    - Dst: query_command
      Src: /src/openssl-1.1.1g/apps/ts.c:293,1
    - Dst: reply_command
      Src: /src/openssl-1.1.1g/apps/ts.c:304,1
    - Dst: EXACTLY_ONE
      Src: /src/openssl-1.1.1g/apps/ts.c:309,1
    - Dst: verify_command
      Src: /src/openssl-1.1.1g/apps/ts.c:311,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/apps/ts.c:319,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/ts.c:320,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ts.c:321,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 162
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 150
    functionDepth: 8
    functionLinenumber: 150
    functionLinenumberEnd: 323
    functionName: ts_main
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 0
    functionsReached:
    - verify_command
    - X509_VERIFY_PARAM_free
    - opt_rand
    - app_passwd
    - NCONF_free
    - OPENSSL_free
    - opt_unknown
    - opt_arg
    - opt_next
    - reply_command
    - X509_VERIFY_PARAM_new
    - query_command
    - opt_help
    - load_config_file
    - opt_num_rest
    - opt_md
    - opt_verify
    - BIO_printf
    - EXACTLY_ONE
    - opt_init
    - app_load_modules
    linkageType: ''
    returnType: int
    signature: int ts_main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-1.1.1g/apps/ts.c:333,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oid
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 7
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: txt2obj
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 22
    functionsReached:
    - OBJ_txt2obj
    - BIO_printf
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *txt2obj(const char *oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: app_load_config
      Src: /src/openssl-1.1.1g/apps/ts.c:341,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:346,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/ts.c:347,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ts.c:349,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ts.c:351,1
    - Dst: OBJ_create_objects
      Src: /src/openssl-1.1.1g/apps/ts.c:353,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:354,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ts.c:357,1
    - Dst: add_oid_section
      Src: /src/openssl-1.1.1g/apps/ts.c:358,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ts.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - configfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 339
    functionDepth: 9
    functionLinenumber: 339
    functionLinenumberEnd: 362
    functionName: load_config_file
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - add_oid_section
    - app_load_config
    - OBJ_create_objects
    - BIO_new_file
    - BIO_printf
    - ERR_clear_error
    - ERR_print_errors
    - BIO_free_all
    linkageType: ''
    returnType: CONF
    signature: CONF *load_config_file(const char *configfile)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ts.c:379,1
    - Dst: d2i_TS_REQ_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:381,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ts.c:384,1
    - Dst: create_query
      Src: /src/openssl-1.1.1g/apps/ts.c:386,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ts.c:392,1
    - Dst: TS_REQ_print_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:394,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ts.c:397,1
    - Dst: i2d_TS_REQ_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:399,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ts.c:406,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:407,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:408,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:409,1
    - Dst: TS_REQ_free
      Src: /src/openssl-1.1.1g/apps/ts.c:410,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 9
    argNames:
    - data
    - digest
    - md
    - policy
    - no_nonce
    - cert
    - in
    - out
    - text
    argTypes:
    - char*
    - char*
    - EVP_MD*
    - char*
    - int
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 367
    functionDepth: 8
    functionLinenumber: 367
    functionLinenumberEnd: 412
    functionName: query_command
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - i2d_TS_REQ_bio
    - TS_REQ_free
    - d2i_TS_REQ_bio
    - create_query
    - ERR_print_errors
    - bio_open_default
    - BIO_free_all
    - TS_REQ_print_bio
    linkageType: ''
    returnType: int
    signature: "int query_command(const char *data, const char *digest, const EVP_MD
      *md,\n                         const char *policy, int no_nonce,\n                         int
      cert, const char *in, const char *out, int text)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/apps/ts.c:426,1
    - Dst: TS_REQ_new
      Src: /src/openssl-1.1.1g/apps/ts.c:428,1
    - Dst: TS_REQ_set_version
      Src: /src/openssl-1.1.1g/apps/ts.c:430,1
    - Dst: TS_MSG_IMPRINT_new
      Src: /src/openssl-1.1.1g/apps/ts.c:432,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-1.1.1g/apps/ts.c:434,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/apps/ts.c:436,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/apps/ts.c:436,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-1.1.1g/apps/ts.c:438,1
    - Dst: TS_MSG_IMPRINT_set_algo
      Src: /src/openssl-1.1.1g/apps/ts.c:441,1
    - Dst: create_digest
      Src: /src/openssl-1.1.1g/apps/ts.c:443,1
    - Dst: TS_MSG_IMPRINT_set_msg
      Src: /src/openssl-1.1.1g/apps/ts.c:445,1
    - Dst: TS_REQ_set_msg_imprint
      Src: /src/openssl-1.1.1g/apps/ts.c:447,1
    - Dst: txt2obj
      Src: /src/openssl-1.1.1g/apps/ts.c:449,1
    - Dst: TS_REQ_set_policy_id
      Src: /src/openssl-1.1.1g/apps/ts.c:451,1
    - Dst: create_nonce
      Src: /src/openssl-1.1.1g/apps/ts.c:455,1
    - Dst: TS_REQ_set_nonce
      Src: /src/openssl-1.1.1g/apps/ts.c:457,1
    - Dst: TS_REQ_set_cert_req
      Src: /src/openssl-1.1.1g/apps/ts.c:459,1
    - Dst: TS_REQ_free
      Src: /src/openssl-1.1.1g/apps/ts.c:465,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:467,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ts.c:468,1
    - Dst: TS_MSG_IMPRINT_free
      Src: /src/openssl-1.1.1g/apps/ts.c:470,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-1.1.1g/apps/ts.c:471,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ts.c:472,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-1.1.1g/apps/ts.c:473,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/ts.c:474,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 65
    argCount: 6
    argNames:
    - data_bio
    - digest
    - md
    - policy
    - no_nonce
    - cert
    argTypes:
    - BIO*
    - char*
    - EVP_MD*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 414
    functionDepth: 8
    functionLinenumber: 414
    functionLinenumberEnd: 476
    functionName: create_query
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - create_digest
    - TS_MSG_IMPRINT_free
    - TS_REQ_set_nonce
    - EVP_get_digestbyname
    - EVP_MD_type
    - TS_REQ_new
    - txt2obj
    - X509_ALGOR_new
    - TS_REQ_free
    - OPENSSL_free
    - create_nonce
    - TS_REQ_set_cert_req
    - TS_REQ_set_version
    - OBJ_nid2obj
    - X509_ALGOR_free
    - TS_MSG_IMPRINT_set_msg
    - TS_REQ_set_msg_imprint
    - TS_REQ_set_policy_id
    - ASN1_INTEGER_free
    - ASN1_OBJECT_free
    - TS_MSG_IMPRINT_new
    - TS_MSG_IMPRINT_set_algo
    - BIO_printf
    - ERR_print_errors
    linkageType: ''
    returnType: TS_REQ
    signature: "TS_REQ *create_query(BIO *data_bio, const char *digest, const EVP_MD
      *md,\n                            const char *policy, int no_nonce, int cert)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/apps/ts.c:485,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/apps/ts.c:493,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ts.c:496,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-1.1.1g/apps/ts.c:497,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/ts.c:499,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/apps/ts.c:500,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/apps/ts.c:503,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/apps/ts.c:505,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/apps/ts.c:508,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ts.c:510,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:512,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/apps/ts.c:519,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - input
    - digest
    - md
    - md_value
    argTypes:
    - BIO*
    - char*
    - EVP_MD*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 478
    functionDepth: 6
    functionLinenumber: 478
    functionLinenumberEnd: 521
    functionName: create_digest
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal
    - app_malloc
    - EVP_MD_CTX_new
    - EVP_DigestInit
    - OPENSSL_free
    - EVP_DigestUpdate
    - OPENSSL_hexstr2buf
    - EVP_MD_CTX_free
    - BIO_printf
    - EVP_MD_size
    - BIO_read
    linkageType: ''
    returnType: int
    signature: "int create_digest(BIO *input, const char *digest, const EVP_MD *md,\n
      \                        unsigned char **md_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/apps/ts.c:532,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/apps/ts.c:538,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ts.c:540,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ts.c:542,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/ts.c:543,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:547,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/ts.c:548,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 523
    functionDepth: 6
    functionLinenumber: 523
    functionLinenumberEnd: 550
    functionName: create_nonce
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_new
    - app_malloc
    - RAND_bytes
    - OPENSSL_free
    - ASN1_INTEGER_free
    - memcpy
    - BIO_printf
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *create_nonce(int bits)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ts.c:571,1
    - Dst: read_PKCS7
      Src: /src/openssl-1.1.1g/apps/ts.c:574,1
    - Dst: d2i_TS_RESP_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:576,1
    - Dst: create_response
      Src: /src/openssl-1.1.1g/apps/ts.c:579,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:582,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:584,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ts.c:591,1
    - Dst: TS_RESP_get_tst_info
      Src: /src/openssl-1.1.1g/apps/ts.c:594,1
    - Dst: TS_TST_INFO_print_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:595,1
    - Dst: TS_RESP_print_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:598,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ts.c:602,1
    - Dst: TS_RESP_get_token
      Src: /src/openssl-1.1.1g/apps/ts.c:605,1
    - Dst: i2d_PKCS7_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:606,1
    - Dst: i2d_TS_RESP_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:609,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ts.c:617,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:618,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:619,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:620,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:621,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:622,1
    - Dst: TS_RESP_free
      Src: /src/openssl-1.1.1g/apps/ts.c:623,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 15
    argNames:
    - conf
    - section
    - engine
    - queryfile
    - passin
    - inkey
    - md
    - signer
    - chain
    - policy
    - in
    - token_in
    - out
    - token_out
    - text
    argTypes:
    - CONF*
    - char*
    - char*
    - char*
    - char*
    - char*
    - EVP_MD*
    - char*
    - char*
    - char*
    - char*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 556
    functionDepth: 8
    functionLinenumber: 556
    functionLinenumberEnd: 625
    functionName: reply_command
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - d2i_TS_RESP_bio
    - i2d_TS_RESP_bio
    - TS_RESP_free
    - TS_RESP_get_tst_info
    - bio_open_default
    - TS_TST_INFO_print_bio
    - read_PKCS7
    - BIO_free_all
    - TS_RESP_get_token
    - ERR_print_errors
    - i2d_PKCS7_bio
    - BIO_printf
    - BIO_new_file
    - TS_RESP_print_bio
    - create_response
    linkageType: ''
    returnType: int
    signature: "int reply_command(CONF *conf, const char *section, const char *engine,\n
      \                        const char *queryfile, const char *passin, const char
      *inkey,\n                         const EVP_MD *md, const char *signer, const
      char *chain,\n                         const char *policy, const char *in, int
      token_in,\n                         const char *out, int token_out, int text)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PKCS7_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:636,1
    - Dst: PKCS7_to_TS_TST_INFO
      Src: /src/openssl-1.1.1g/apps/ts.c:638,1
    - Dst: TS_RESP_new
      Src: /src/openssl-1.1.1g/apps/ts.c:640,1
    - Dst: TS_STATUS_INFO_new
      Src: /src/openssl-1.1.1g/apps/ts.c:642,1
    - Dst: TS_STATUS_INFO_set_status
      Src: /src/openssl-1.1.1g/apps/ts.c:644,1
    - Dst: TS_RESP_set_status_info
      Src: /src/openssl-1.1.1g/apps/ts.c:646,1
    - Dst: TS_RESP_set_tst_info
      Src: /src/openssl-1.1.1g/apps/ts.c:648,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/apps/ts.c:654,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-1.1.1g/apps/ts.c:655,1
    - Dst: TS_RESP_free
      Src: /src/openssl-1.1.1g/apps/ts.c:657,1
    - Dst: TS_STATUS_INFO_free
      Src: /src/openssl-1.1.1g/apps/ts.c:660,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - in_bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 628
    functionDepth: 6
    functionLinenumber: 628
    functionLinenumberEnd: 662
    functionName: read_PKCS7
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 4
    functionsReached:
    - TS_STATUS_INFO_free
    - TS_TST_INFO_free
    - PKCS7_free
    - TS_RESP_new
    - TS_RESP_set_tst_info
    - TS_STATUS_INFO_new
    - TS_RESP_set_status_info
    - TS_STATUS_INFO_set_status
    - d2i_PKCS7_bio
    - PKCS7_to_TS_TST_INFO
    - TS_RESP_free
    linkageType: ''
    returnType: TS_RESP
    signature: TS_RESP *read_PKCS7(BIO *in_bio)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ts.c:674,1
    - Dst: TS_CONF_get_tsa_section
      Src: /src/openssl-1.1.1g/apps/ts.c:676,1
    - Dst: TS_RESP_CTX_new
      Src: /src/openssl-1.1.1g/apps/ts.c:678,1
    - Dst: TS_CONF_set_serial
      Src: /src/openssl-1.1.1g/apps/ts.c:680,1
    - Dst: TS_CONF_set_crypto_device
      Src: /src/openssl-1.1.1g/apps/ts.c:683,1
    - Dst: TS_CONF_set_signer_cert
      Src: /src/openssl-1.1.1g/apps/ts.c:686,1
    - Dst: TS_CONF_set_certs
      Src: /src/openssl-1.1.1g/apps/ts.c:688,1
    - Dst: TS_CONF_set_signer_key
      Src: /src/openssl-1.1.1g/apps/ts.c:690,1
    - Dst: TS_RESP_CTX_set_signer_digest
      Src: /src/openssl-1.1.1g/apps/ts.c:694,1
    - Dst: TS_CONF_set_signer_digest
      Src: /src/openssl-1.1.1g/apps/ts.c:696,1
    - Dst: TS_CONF_set_ess_cert_id_digest
      Src: /src/openssl-1.1.1g/apps/ts.c:700,1
    - Dst: TS_CONF_set_def_policy
      Src: /src/openssl-1.1.1g/apps/ts.c:702,1
    - Dst: TS_CONF_set_policies
      Src: /src/openssl-1.1.1g/apps/ts.c:704,1
    - Dst: TS_CONF_set_digests
      Src: /src/openssl-1.1.1g/apps/ts.c:706,1
    - Dst: TS_CONF_set_accuracy
      Src: /src/openssl-1.1.1g/apps/ts.c:708,1
    - Dst: TS_CONF_set_clock_precision_digits
      Src: /src/openssl-1.1.1g/apps/ts.c:710,1
    - Dst: TS_CONF_set_ordering
      Src: /src/openssl-1.1.1g/apps/ts.c:712,1
    - Dst: TS_CONF_set_tsa_name
      Src: /src/openssl-1.1.1g/apps/ts.c:714,1
    - Dst: TS_CONF_set_ess_cert_id_chain
      Src: /src/openssl-1.1.1g/apps/ts.c:716,1
    - Dst: TS_RESP_create_response
      Src: /src/openssl-1.1.1g/apps/ts.c:718,1
    - Dst: TS_RESP_free
      Src: /src/openssl-1.1.1g/apps/ts.c:724,1
    - Dst: TS_RESP_CTX_free
      Src: /src/openssl-1.1.1g/apps/ts.c:727,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:728,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 74
    argCount: 10
    argNames:
    - conf
    - section
    - engine
    - queryfile
    - passin
    - inkey
    - md
    - signer
    - chain
    - policy
    argTypes:
    - CONF*
    - char*
    - char*
    - char*
    - char*
    - char*
    - EVP_MD*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 664
    functionDepth: 8
    functionLinenumber: 664
    functionLinenumberEnd: 730
    functionName: create_response
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 2
    functionsReached:
    - TS_CONF_set_ordering
    - TS_CONF_set_clock_precision_digits
    - TS_CONF_set_accuracy
    - TS_RESP_create_response
    - TS_RESP_CTX_new
    - TS_CONF_set_certs
    - TS_CONF_set_digests
    - TS_RESP_CTX_free
    - TS_CONF_set_signer_digest
    - TS_CONF_set_def_policy
    - TS_CONF_set_serial
    - TS_CONF_set_signer_cert
    - TS_CONF_set_policies
    - TS_RESP_free
    - BIO_new_file
    - BIO_free_all
    - TS_CONF_set_crypto_device
    - TS_CONF_set_ess_cert_id_chain
    - TS_CONF_set_ess_cert_id_digest
    - TS_CONF_get_tsa_section
    - TS_RESP_CTX_set_signer_digest
    - TS_CONF_set_signer_key
    - TS_CONF_set_tsa_name
    linkageType: ''
    returnType: TS_RESP
    signature: "TS_RESP *create_response(CONF *conf, const char *section, const char
      *engine,\n                                const char *queryfile, const char
      *passin,\n                                const char *inkey, const EVP_MD *md,
      const char *signer,\n                                const char *chain, const
      char *policy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_serial
      Src: /src/openssl-1.1.1g/apps/ts.c:735,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-1.1.1g/apps/ts.c:738,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-1.1.1g/apps/ts.c:741,1
    - Dst: save_ts_serial
      Src: /src/openssl-1.1.1g/apps/ts.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - TS_RESP_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 732
    functionDepth: 6
    functionLinenumber: 732
    functionLinenumberEnd: 747
    functionName: serial_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 2
    functionsReached:
    - next_serial
    - TS_RESP_CTX_add_failure_info
    - save_ts_serial
    - TS_RESP_CTX_set_status_info
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *serial_cb(TS_RESP_CTX *ctx, void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-1.1.1g/apps/ts.c:756,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ts.c:759,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ts.c:760,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:761,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/apps/ts.c:763,1
    - Dst: a2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/ts.c:767,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:768,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/apps/ts.c:772,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/ts.c:774,1
    - Dst: BN_add_word
      Src: /src/openssl-1.1.1g/apps/ts.c:776,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/ts.c:778,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/ts.c:785,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:788,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ts.c:789,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - serialfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 749
    functionDepth: 6
    functionLinenumber: 749
    functionLinenumberEnd: 791
    functionName: next_serial
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_new
    - BN_add_word
    - ASN1_INTEGER_free
    - a2i_ASN1_INTEGER
    - BN_to_ASN1_INTEGER
    - BN_free
    - ERR_clear_error
    - BIO_printf
    - BIO_new_file
    - ASN1_INTEGER_set
    - BIO_free_all
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *next_serial(const char *serialfile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ts.c:798,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/ts.c:800,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ts.c:802,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:807,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:809,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - serialfile
    - serial
    argTypes:
    - char*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 793
    functionDepth: 5
    functionLinenumber: 793
    functionLinenumberEnd: 811
    functionName: save_ts_serial
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - i2a_ASN1_INTEGER
    - BIO_puts
    - BIO_printf
    - BIO_new_file
    - BIO_free_all
    linkageType: ''
    returnType: int
    signature: int save_ts_serial(const char *serialfile, ASN1_INTEGER *serial)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ts.c:829,1
    - Dst: d2i_PKCS7_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:832,1
    - Dst: d2i_TS_RESP_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:835,1
    - Dst: create_verify_ctx
      Src: /src/openssl-1.1.1g/apps/ts.c:839,1
    - Dst: TS_RESP_verify_token
      Src: /src/openssl-1.1.1g/apps/ts.c:845,1
    - Dst: TS_RESP_verify_response
      Src: /src/openssl-1.1.1g/apps/ts.c:846,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/ts.c:849,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/ts.c:851,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/ts.c:853,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ts.c:854,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:857,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/apps/ts.c:858,1
    - Dst: TS_RESP_free
      Src: /src/openssl-1.1.1g/apps/ts.c:859,1
    - Dst: TS_VERIFY_CTX_free
      Src: /src/openssl-1.1.1g/apps/ts.c:860,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 9
    argNames:
    - data
    - digest
    - queryfile
    - in
    - token_in
    - CApath
    - CAfile
    - untrusted
    - vpm
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 818
    functionDepth: 5
    functionLinenumber: 818
    functionLinenumberEnd: 862
    functionName: verify_command
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - TS_RESP_verify_token
    - d2i_TS_RESP_bio
    - TS_RESP_free
    - TS_RESP_verify_response
    - PKCS7_free
    - ERR_print_errors
    - TS_VERIFY_CTX_free
    - BIO_new_file
    - create_verify_ctx
    - d2i_PKCS7_bio
    - printf
    - BIO_free_all
    linkageType: ''
    returnType: int
    signature: "int verify_command(const char *data, const char *digest, const char
      *queryfile,\n                          const char *in, int token_in,\n                          const
      char *CApath, const char *CAfile, const char *untrusted,\n                          X509_VERIFY_PARAM
      *vpm)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TS_VERIFY_CTX_new
      Src: /src/openssl-1.1.1g/apps/ts.c:877,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ts.c:884,1
    - Dst: TS_VERIFY_CTX_set_data
      Src: /src/openssl-1.1.1g/apps/ts.c:886,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:887,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-1.1.1g/apps/ts.c:892,1
    - Dst: TS_VERIFY_CTX_set_imprint
      Src: /src/openssl-1.1.1g/apps/ts.c:894,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:895,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/ts.c:901,1
    - Dst: d2i_TS_REQ_bio
      Src: /src/openssl-1.1.1g/apps/ts.c:903,1
    - Dst: TS_REQ_to_TS_VERIFY_CTX
      Src: /src/openssl-1.1.1g/apps/ts.c:905,1
    - Dst: TS_VERIFY_CTX_add_flags
      Src: /src/openssl-1.1.1g/apps/ts.c:912,1
    - Dst: TS_VERIFY_CTX_set_store
      Src: /src/openssl-1.1.1g/apps/ts.c:915,1
    - Dst: create_cert_store
      Src: /src/openssl-1.1.1g/apps/ts.c:915,1
    - Dst: TS_VERIFY_CTS_set_certs
      Src: /src/openssl-1.1.1g/apps/ts.c:921,1
    - Dst: TS_CONF_load_certs
      Src: /src/openssl-1.1.1g/apps/ts.c:921,1
    - Dst: TS_VERIFY_CTX_free
      Src: /src/openssl-1.1.1g/apps/ts.c:927,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ts.c:930,1
    - Dst: TS_REQ_free
      Src: /src/openssl-1.1.1g/apps/ts.c:931,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 7
    argNames:
    - data
    - digest
    - queryfile
    - CApath
    - CAfile
    - untrusted
    - vpm
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 864
    functionDepth: 7
    functionLinenumber: 864
    functionLinenumberEnd: 933
    functionName: create_verify_ctx
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - TS_VERIFY_CTX_set_data
    - TS_VERIFY_CTS_set_certs
    - TS_REQ_free
    - TS_VERIFY_CTX_add_flags
    - d2i_TS_REQ_bio
    - TS_VERIFY_CTX_free
    - TS_CONF_load_certs
    - OPENSSL_hexstr2buf
    - create_cert_store
    - BIO_printf
    - TS_VERIFY_CTX_set_imprint
    - TS_REQ_to_TS_VERIFY_CTX
    - TS_VERIFY_CTX_set_store
    - BIO_new_file
    - BIO_free_all
    - TS_VERIFY_CTX_new
    linkageType: ''
    returnType: TS_VERIFY_CTX
    signature: "TS_VERIFY_CTX *create_verify_ctx(const char *data, const char *digest,\n
      \                                       const char *queryfile,\n                                        const
      char *CApath, const char *CAfile,\n                                        const
      char *untrusted,\n                                        X509_VERIFY_PARAM
      *vpm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/apps/ts.c:942,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openssl-1.1.1g/apps/ts.c:943,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/apps/ts.c:945,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openssl-1.1.1g/apps/ts.c:945,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:947,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openssl-1.1.1g/apps/ts.c:950,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:952,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/apps/ts.c:958,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-1.1.1g/apps/ts.c:958,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:960,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openssl-1.1.1g/apps/ts.c:963,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ts.c:965,1
    - Dst: X509_STORE_set1_param
      Src: /src/openssl-1.1.1g/apps/ts.c:971,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/ts.c:976,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - CApath
    - CAfile
    - vpm
    argTypes:
    - char*
    - char*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 935
    functionDepth: 4
    functionLinenumber: 935
    functionLinenumberEnd: 978
    functionName: create_cert_store
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 1
    functionsReached:
    - X509_STORE_free
    - X509_STORE_set1_param
    - X509_LOOKUP_hash_dir
    - X509_LOOKUP_file
    - X509_LOOKUP_add_dir
    - X509_STORE_add_lookup
    - X509_STORE_new
    - BIO_printf
    - X509_STORE_set_verify_cb
    - X509_LOOKUP_load_file
    linkageType: ''
    returnType: X509_STORE
    signature: "X509_STORE *create_cert_store(const char *CApath, const char *CAfile,\n
      \                                    X509_VERIFY_PARAM *vpm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 983
    functionName: verify_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/ts.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int verify_cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:46,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:47,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:48,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:55,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:56,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:61,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:64,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:68,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:68,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:72,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:72,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:76,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:79,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:86,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:88,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:88,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:93,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:98,1
    - Dst: d2i_X509_CRL_bio
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:103,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:105,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:107,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:108,1
    - Dst: PKCS7_new
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:113,1
    - Dst: PKCS7_SIGNED_new
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:115,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:117,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:119,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:121,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:123,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:127,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:131,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:136,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:137,1
    - Dst: add_certs_from_file
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:138,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:139,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:140,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:145,1
    - Dst: i2d_PKCS7_bio
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:150,1
    - Dst: PEM_write_bio_PKCS7
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:152,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:154,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:155,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:160,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:161,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:162,1
    - Dst: PKCS7_free
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:163,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/apps/crl2p7.c:164,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 125
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 41
    functionDepth: 8
    functionLinenumber: 41
    functionLinenumberEnd: 167
    functionName: crl2pkcs7_main
    functionSourceFile: /src/openssl-1.1.1g/apps/crl2p7.c
    functionUses: 0
    functionsReached:
    - sk_X509_CRL_push
    - sk_OPENSSL_STRING_free
    - PKCS7_free
    - STACK_OF
    - sk_X509_CRL_new_null
    - bio_open_default
    - PEM_read_bio_X509_CRL
    - sk_OPENSSL_STRING_new_null
    - PEM_write_bio_PKCS7
    - X509_CRL_free
    - opt_arg
    - opt_format
    - sk_OPENSSL_STRING_value
    - opt_next
    - BIO_free
    - PKCS7_new
    - OBJ_nid2obj
    - sk_OPENSSL_STRING_num
    - d2i_X509_CRL_bio
    - i2d_PKCS7_bio
    - ASN1_INTEGER_set
    - opt_help
    - BIO_free_all
    - sk_OPENSSL_STRING_push
    - add_certs_from_file
    - opt_num_rest
    - sk_X509_new_null
    - PKCS7_SIGNED_new
    - BIO_printf
    - ERR_print_errors
    - opt_init
    linkageType: ''
    returnType: int
    signature: int crl2pkcs7_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: openssl_fdset
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: openssl_fdset(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: openssl_fdset
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: openssl_fdset(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: _UC
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _UC(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: IS_NO_PROT_FLAG
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NO_PROT_FLAG(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: index_name_cmp_noconst
    functionSourceFile: /src/openssl-1.1.1g/apps/apps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: index_name_cmp_noconst(a, b)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/nseq.c:39,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/nseq.c:40,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/nseq.c:45,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/nseq.c:49,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/nseq.c:55,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/nseq.c:58,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/nseq.c:62,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/nseq.c:66,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/nseq.c:69,1
    - Dst: NETSCAPE_CERT_SEQUENCE_new
      Src: /src/openssl-1.1.1g/apps/nseq.c:74,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/apps/nseq.c:77,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/apps/nseq.c:80,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/nseq.c:81,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/nseq.c:83,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/nseq.c:84,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/nseq.c:86,1
    - Dst: PEM_write_bio_NETSCAPE_CERT_SEQUENCE
      Src: /src/openssl-1.1.1g/apps/nseq.c:89,1
    - Dst: PEM_read_bio_NETSCAPE_CERT_SEQUENCE
      Src: /src/openssl-1.1.1g/apps/nseq.c:94,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/nseq.c:96,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/nseq.c:98,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/apps/nseq.c:102,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/apps/nseq.c:103,1
    - Dst: dump_cert_text
      Src: /src/openssl-1.1.1g/apps/nseq.c:104,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/apps/nseq.c:105,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/nseq.c:109,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/nseq.c:110,1
    - Dst: NETSCAPE_CERT_SEQUENCE_free
      Src: /src/openssl-1.1.1g/apps/nseq.c:111,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 30
    functionDepth: 8
    functionLinenumber: 30
    functionLinenumberEnd: 114
    functionName: nseq_main
    functionSourceFile: /src/openssl-1.1.1g/apps/nseq.c
    functionUses: 0
    functionsReached:
    - NETSCAPE_CERT_SEQUENCE_free
    - opt_init
    - bio_open_default
    - PEM_read_bio_NETSCAPE_CERT_SEQUENCE
    - opt_arg
    - opt_next
    - PEM_read_bio_X509
    - BIO_free
    - NETSCAPE_CERT_SEQUENCE_new
    - opt_help
    - BIO_free_all
    - sk_X509_push
    - dump_cert_text
    - opt_num_rest
    - sk_X509_new_null
    - sk_X509_num
    - PEM_write_bio_NETSCAPE_CERT_SEQUENCE
    - PEM_write_bio_X509
    - BIO_printf
    - ERR_print_errors
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int nseq_main(int argc, char **argv)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/ec.c:83,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/ec.c:84,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ec.c:89,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/ec.c:92,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/ec.c:96,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ec.c:96,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ec.c:100,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/ec.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ec.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ec.c:107,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ec.c:125,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ec.c:128,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/ec.c:131,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ec.c:131,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/ec.c:134,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/ec.c:134,1
    - Dst: opt_pair
      Src: /src/openssl-1.1.1g/apps/ec.c:138,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ec.c:138,1
    - Dst: opt_pair
      Src: /src/openssl-1.1.1g/apps/ec.c:144,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ec.c:144,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/ec.c:157,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/ec.c:165,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ec.c:166,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ec.c:171,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ec.c:176,1
    - Dst: d2i_EC_PUBKEY_bio
      Src: /src/openssl-1.1.1g/apps/ec.c:179,1
    - Dst: d2i_ECPrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/ec.c:181,1
    - Dst: load_pubkey
      Src: /src/openssl-1.1.1g/apps/ec.c:185,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/ec.c:187,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openssl-1.1.1g/apps/ec.c:189,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/ec.c:190,1
    - Dst: PEM_read_bio_EC_PUBKEY
      Src: /src/openssl-1.1.1g/apps/ec.c:194,1
    - Dst: PEM_read_bio_ECPrivateKey
      Src: /src/openssl-1.1.1g/apps/ec.c:196,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ec.c:199,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ec.c:200,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/ec.c:204,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/apps/ec.c:208,1
    - Dst: EC_KEY_set_conv_form
      Src: /src/openssl-1.1.1g/apps/ec.c:211,1
    - Dst: EC_KEY_set_asn1_flag
      Src: /src/openssl-1.1.1g/apps/ec.c:214,1
    - Dst: EC_KEY_set_enc_flags
      Src: /src/openssl-1.1.1g/apps/ec.c:217,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/ec.c:220,1
    - Dst: EC_KEY_print
      Src: /src/openssl-1.1.1g/apps/ec.c:221,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/ec.c:222,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ec.c:223,1
    - Dst: EC_KEY_check_key
      Src: /src/openssl-1.1.1g/apps/ec.c:229,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ec.c:230,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ec.c:232,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ec.c:233,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ec.c:242,1
    - Dst: i2d_ECPKParameters_bio
      Src: /src/openssl-1.1.1g/apps/ec.c:245,1
    - Dst: i2d_EC_PUBKEY_bio
      Src: /src/openssl-1.1.1g/apps/ec.c:247,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/ec.c:249,1
    - Dst: i2d_ECPrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/ec.c:250,1
    - Dst: PEM_write_bio_ECPKParameters
      Src: /src/openssl-1.1.1g/apps/ec.c:254,1
    - Dst: PEM_write_bio_EC_PUBKEY
      Src: /src/openssl-1.1.1g/apps/ec.c:256,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/ec.c:258,1
    - Dst: PEM_write_bio_ECPrivateKey
      Src: /src/openssl-1.1.1g/apps/ec.c:259,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ec.c:265,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ec.c:266,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/ec.c:271,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ec.c:272,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/apps/ec.c:273,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/ec.c:274,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ec.c:275,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ec.c:276,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 196
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/openssl-1.1.1g/apps/ec.c
    - condition: (pubin || private)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/openssl-1.1.1g/apps/ec.c
    - condition: (private)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/openssl-1.1.1g/apps/ec.c
    constantsTouched: []
    func_position:
      end: 278
      start: 67
    functionDepth: 9
    functionLinenumber: 67
    functionLinenumberEnd: 278
    functionName: ec_main
    functionSourceFile: /src/openssl-1.1.1g/apps/ec.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_ECPrivateKey
    - EC_KEY_print
    - opt_pair
    - PEM_write_bio_EC_PUBKEY
    - EVP_PKEY_get1_EC_KEY
    - PEM_write_bio_ECPrivateKey
    - app_passwd
    - EC_KEY_check_key
    - bio_open_default
    - perror
    - i2d_ECPKParameters_bio
    - i2d_EC_PUBKEY_bio
    - OPENSSL_free
    - opt_unknown
    - bio_open_owner
    - opt_arg
    - opt_next
    - BIO_free
    - PEM_read_bio_EC_PUBKEY
    - EC_KEY_set_enc_flags
    - load_key
    - release_engine
    - ERR_print_errors
    - d2i_ECPrivateKey_bio
    - load_pubkey
    - EC_KEY_set_conv_form
    - assert
    - EC_KEY_get0_group
    - opt_help
    - BIO_free_all
    - PEM_write_bio_ECPKParameters
    - setup_engine
    - opt_num_rest
    - opt_cipher
    - i2d_ECPrivateKey_bio
    - d2i_EC_PUBKEY_bio
    - EC_KEY_free
    - BIO_printf
    - EVP_PKEY_free
    - opt_format
    - opt_init
    - EC_KEY_set_asn1_flag
    linkageType: ''
    returnType: int
    signature: int ec_main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/openssl.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - dc
    argTypes:
    - DISPLAY_COLUMNS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: calculate_columns
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void calculate_columns(DISPLAY_COLUMNS *dc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/openssl-1.1.1g/apps/openssl.c:79,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/apps/openssl.c:83,1
    - Dst: setup_ui_method
      Src: /src/openssl-1.1.1g/apps/openssl.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: apps_startup
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - signal
    - setup_ui_method
    - OPENSSL_init_ssl
    linkageType: ''
    returnType: int
    signature: int apps_startup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_ui_method
      Src: /src/openssl-1.1.1g/apps/openssl.c:94,1
    - Dst: destroy_prefix_method
      Src: /src/openssl-1.1.1g/apps/openssl.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: apps_shutdown
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - destroy_ui_method
    - destroy_prefix_method
    linkageType: ''
    returnType: void
    signature: void apps_shutdown(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-1.1.1g/apps/openssl.c:104,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/openssl.c:105,1
    - Dst: X509_get_default_cert_area
      Src: /src/openssl-1.1.1g/apps/openssl.c:107,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/openssl.c:108,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/openssl.c:108,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/openssl.c:109,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/apps/openssl.c:110,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/apps/openssl.c:112,1
    - Dst: strcat
      Src: /src/openssl-1.1.1g/apps/openssl.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 6
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: make_config_name
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - app_malloc
    - getenv
    - strcpy
    - OPENSSL_strdup
    - X509_get_default_cert_area
    - strcat
    - strlen
    linkageType: ''
    returnType: char
    signature: char *make_config_name(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-1.1.1g/apps/openssl.c:122,1
    - Dst: make_config_name
      Src: /src/openssl-1.1.1g/apps/openssl.c:134,1
    - Dst: dup_bio_in
      Src: /src/openssl-1.1.1g/apps/openssl.c:135,1
    - Dst: dup_bio_out
      Src: /src/openssl-1.1.1g/apps/openssl.c:136,1
    - Dst: dup_bio_err
      Src: /src/openssl-1.1.1g/apps/openssl.c:137,1
    - Dst: copy_argv
      Src: /src/openssl-1.1.1g/apps/openssl.c:140,1
    - Dst: win32_utf8argv
      Src: /src/openssl-1.1.1g/apps/openssl.c:145,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/apps/openssl.c:148,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/openssl.c:149,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openssl-1.1.1g/apps/openssl.c:150,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/apps/openssl.c:151,1
    - Dst: getenv
      Src: /src/openssl-1.1.1g/apps/openssl.c:153,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:154,1
    - Dst: apps_startup
      Src: /src/openssl-1.1.1g/apps/openssl.c:158,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:159,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/openssl.c:161,1
    - Dst: prog_init
      Src: /src/openssl-1.1.1g/apps/openssl.c:166,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:168,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/openssl.c:170,1
    - Dst: opt_progname
      Src: /src/openssl-1.1.1g/apps/openssl.c:174,1
    - Dst: lh_FUNCTION_retrieve
      Src: /src/openssl-1.1.1g/apps/openssl.c:178,1
    - Dst: func
      Src: /src/openssl-1.1.1g/apps/openssl.c:181,1
    - Dst: do_cmd
      Src: /src/openssl-1.1.1g/apps/openssl.c:189,1
    - Dst: fputs
      Src: /src/openssl-1.1.1g/apps/openssl.c:203,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/apps/openssl.c:204,1
    - Dst: fgets
      Src: /src/openssl-1.1.1g/apps/openssl.c:205,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/openssl.c:209,1
    - Dst: readline
      Src: /src/openssl-1.1.1g/apps/openssl.c:223,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/openssl.c:226,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/openssl.c:230,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/apps/openssl.c:230,1
    - Dst: free
      Src: /src/openssl-1.1.1g/apps/openssl.c:231,1
    - Dst: add_history
      Src: /src/openssl-1.1.1g/apps/openssl.c:232,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/apps/openssl.c:237,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/apps/openssl.c:237,1
    - Dst: free
      Src: /src/openssl-1.1.1g/apps/openssl.c:238,1
    - Dst: chopup_args
      Src: /src/openssl-1.1.1g/apps/openssl.c:244,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:245,1
    - Dst: do_cmd
      Src: /src/openssl-1.1.1g/apps/openssl.c:249,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:255,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/openssl.c:256,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/openssl.c:257,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/openssl.c:261,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/openssl.c:262,1
    - Dst: lh_FUNCTION_free
      Src: /src/openssl-1.1.1g/apps/openssl.c:263,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/openssl.c:264,1
    - Dst: app_RAND_write
      Src: /src/openssl-1.1.1g/apps/openssl.c:265,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/openssl.c:267,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/openssl.c:268,1
    - Dst: apps_shutdown
      Src: /src/openssl-1.1.1g/apps/openssl.c:269,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openssl-1.1.1g/apps/openssl.c:271,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/openssl.c:274,1
    - Dst: EXIT
      Src: /src/openssl-1.1.1g/apps/openssl.c:275,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 121
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 119
    functionDepth: 7
    functionLinenumber: 119
    functionLinenumberEnd: 276
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - fputs
    - opt_progname
    - lh_FUNCTION_free
    - apps_startup
    - dup_bio_in
    - strcpy
    - strcmp
    - OPENSSL_free
    - dup_bio_err
    - CRYPTO_set_mem_debug
    - prog_init
    - BIO_free
    - add_history
    - dup_bio_out
    - readline
    - app_RAND_write
    - getenv
    - func
    - copy_argv
    - CRYPTO_mem_leaks
    - chopup_args
    - win32_utf8argv
    - lh_FUNCTION_retrieve
    - BIO_flush
    - EXIT
    - BIO_free_all
    - fgets
    - free
    - fflush
    - CRYPTO_mem_ctrl
    - LHASH_OF
    - apps_shutdown
    - BIO_printf
    - make_config_name
    - do_cmd
    - ERR_print_errors
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:282,1
    - Dst: EVP_CIPHER_name
      Src: /src/openssl-1.1.1g/apps/openssl.c:282,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - c
    - from
    - to
    - arg
    argTypes:
    - EVP_CIPHER*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 290
    functionName: list_cipher_fn
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_name
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void list_cipher_fn(const EVP_CIPHER *c,\n                           const
      char *from, const char *to, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:296,1
    - Dst: EVP_MD_name
      Src: /src/openssl-1.1.1g/apps/openssl.c:296,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - m
    - from
    - to
    - arg
    argTypes:
    - EVP_MD*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 304
    functionName: list_md_fn
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_name
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void list_md_fn(const EVP_MD *m,\n                       const char
      *from, const char *to, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:316,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 323
    functionName: list_missing_help
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void list_missing_help(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/openssl.c:331,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:334,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:347,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 349
    functionName: list_options_for_command
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void list_options_for_command(const char *command)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/openssl.c:390,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/openssl.c:391,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:396,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/openssl.c:399,1
    - Dst: list_type
      Src: /src/openssl-1.1.1g/apps/openssl.c:405,1
    - Dst: list_type
      Src: /src/openssl-1.1.1g/apps/openssl.c:408,1
    - Dst: EVP_MD_do_all_sorted
      Src: /src/openssl-1.1.1g/apps/openssl.c:411,1
    - Dst: list_type
      Src: /src/openssl-1.1.1g/apps/openssl.c:414,1
    - Dst: EVP_CIPHER_do_all_sorted
      Src: /src/openssl-1.1.1g/apps/openssl.c:417,1
    - Dst: list_pkey
      Src: /src/openssl-1.1.1g/apps/openssl.c:420,1
    - Dst: list_pkey_meth
      Src: /src/openssl-1.1.1g/apps/openssl.c:423,1
    - Dst: list_disabled
      Src: /src/openssl-1.1.1g/apps/openssl.c:426,1
    - Dst: list_missing_help
      Src: /src/openssl-1.1.1g/apps/openssl.c:429,1
    - Dst: list_options_for_command
      Src: /src/openssl-1.1.1g/apps/openssl.c:432,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/openssl.c:432,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/openssl.c:437,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:438,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 446
    functionName: list_main
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - opt_num_rest
    - EVP_CIPHER_do_all_sorted
    - EVP_MD_do_all_sorted
    - list_pkey
    - opt_arg
    - list_disabled
    - list_options_for_command
    - opt_next
    - BIO_printf
    - list_type
    - list_pkey_meth
    - opt_init
    - opt_help
    - list_missing_help
    linkageType: ''
    returnType: int
    signature: int list_main(int argc, char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/openssl.c:469,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/openssl.c:470,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:474,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/openssl.c:477,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/openssl.c:482,1
    - Dst: opt_rest
      Src: /src/openssl-1.1.1g/apps/openssl.c:485,1
    - Dst: do_cmd
      Src: /src/openssl-1.1.1g/apps/openssl.c:488,1
    - Dst: prog_init
      Src: /src/openssl-1.1.1g/apps/openssl.c:488,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/openssl.c:490,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:491,1
    - Dst: calculate_columns
      Src: /src/openssl-1.1.1g/apps/openssl.c:495,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:496,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:502,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:508,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:511,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:515,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:519,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:521,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 460
    functionDepth: 5
    functionLinenumber: 460
    functionLinenumberEnd: 523
    functionName: help_main
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - calculate_columns
    - opt_num_rest
    - opt_rest
    - opt_next
    - prog_init
    - BIO_printf
    - do_cmd
    - opt_init
    - opt_help
    linkageType: ''
    returnType: int
    signature: int help_main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calculate_columns
      Src: /src/openssl-1.1.1g/apps/openssl.c:532,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:538,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:541,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:542,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:547,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ft
    - one
    argTypes:
    - FUNC_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 548
    functionName: list_type
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 1
    functionsReached:
    - calculate_columns
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void list_type(FUNC_TYPE ft, int one)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-1.1.1g/apps/openssl.c:599,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-1.1.1g/apps/openssl.c:603,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/apps/openssl.c:604,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:607,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/apps/openssl.c:607,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:608,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/apps/openssl.c:609,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:611,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:612,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:615,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/apps/openssl.c:615,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 622
    functionName: list_pkey
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2ln
    - EVP_PKEY_asn1_get0
    - EVP_PKEY_asn1_get_count
    - BIO_printf
    - EVP_PKEY_asn1_get0_info
    linkageType: ''
    returnType: void
    signature: void list_pkey(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_count
      Src: /src/openssl-1.1.1g/apps/openssl.c:627,1
    - Dst: EVP_PKEY_meth_get0
      Src: /src/openssl-1.1.1g/apps/openssl.c:630,1
    - Dst: EVP_PKEY_meth_get0_info
      Src: /src/openssl-1.1.1g/apps/openssl.c:633,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:634,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-1.1.1g/apps/openssl.c:634,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/openssl.c:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: list_pkey_meth
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2ln
    - BIO_printf
    - EVP_PKEY_meth_get0_info
    - EVP_PKEY_meth_get_count
    - EVP_PKEY_meth_get0
    linkageType: ''
    returnType: void
    signature: void list_pkey_meth(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/openssl.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FUNCTION*
    - FUNCTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: function_cmp
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int function_cmp(const FUNCTION * a, const FUNCTION * b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-1.1.1g/apps/openssl.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - FUNCTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 648
    functionName: function_hash
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long function_hash(const FUNCTION * a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/apps/openssl.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _f1
    - _f2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 658
    functionName: SortFnByName
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int SortFnByName(const void *_f1, const void *_f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:662,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:664,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:667,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:670,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:673,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:676,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:679,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:682,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:685,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:688,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:691,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:694,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:697,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:700,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:703,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:706,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:709,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:712,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:715,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:718,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:721,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:724,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:727,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:730,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:733,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:736,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:739,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:742,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:745,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:748,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:751,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:754,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:757,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:760,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:763,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:766,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:769,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:772,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:775,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:778,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:781,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:784,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:787,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:790,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:793,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:796,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:799,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:802,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/openssl.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 660
    functionDepth: 3
    functionLinenumber: 660
    functionLinenumberEnd: 807
    functionName: list_disabled
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: void
    signature: void list_disabled(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/openssl-1.1.1g/apps/openssl.c:824,1
    - Dst: lh_FUNCTION_new
      Src: /src/openssl-1.1.1g/apps/openssl.c:826,1
    - Dst: lh_FUNCTION_insert
      Src: /src/openssl-1.1.1g/apps/openssl.c:830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 832
    functionName: prog_init
    functionSourceFile: /src/openssl-1.1.1g/apps/openssl.c
    functionUses: 2
    functionsReached:
    - qsort
    - lh_FUNCTION_insert
    - lh_FUNCTION_new
    linkageType: ''
    returnType: LHASH_OF
    signature: LHASH_OF *prog_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - val
    - list
    - def
    argTypes:
    - int
    - STRINT_PAIR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: lookup
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lookup(int val, const STRINT_PAIR* list, const char* def)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openssl-1.1.1g/apps/s_cb.c:48,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/apps/s_cb.c:49,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openssl-1.1.1g/apps/s_cb.c:50,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:53,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/apps/s_cb.c:55,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/s_cb.c:56,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/s_cb.c:57,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:58,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:60,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:64,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/apps/s_cb.c:65,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:77,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/apps/s_cb.c:78,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-1.1.1g/apps/s_cb.c:78,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/s_cb.c:79,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:80,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:84,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/apps/s_cb.c:85,1
    - Dst: X509_get0_notBefore
      Src: /src/openssl-1.1.1g/apps/s_cb.c:85,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:86,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:90,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-1.1.1g/apps/s_cb.c:91,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-1.1.1g/apps/s_cb.c:91,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:92,1
    - Dst: policies_print
      Src: /src/openssl-1.1.1g/apps/s_cb.c:96,1
    - Dst: policies_print
      Src: /src/openssl-1.1.1g/apps/s_cb.c:100,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:102,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 43
    functionDepth: 8
    functionLinenumber: 43
    functionLinenumberEnd: 104
    functionName: verify_callback
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 3
    functionsReached:
    - X509_get0_notAfter
    - X509_NAME_print_ex
    - X509_STORE_CTX_get_error
    - X509_STORE_CTX_get_error_depth
    - policies_print
    - get_nameopt
    - ASN1_TIME_print
    - BIO_puts
    - X509_get0_notBefore
    - X509_STORE_CTX_get_current_cert
    - BIO_printf
    - X509_get_issuer_name
    - X509_get_subject_name
    - X509_verify_cert_error_string
    linkageType: ''
    returnType: int
    signature: int verify_callback(int ok, X509_STORE_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_use_certificate_file
      Src: /src/openssl-1.1.1g/apps/s_cb.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:111,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_cb.c:113,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openssl-1.1.1g/apps/s_cb.c:118,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:119,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_cb.c:121,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openssl-1.1.1g/apps/s_cb.c:134,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - cert_file
    - key_file
    argTypes:
    - SSL_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 141
    functionName: set_cert_stuff
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_use_certificate_file
    - SSL_CTX_use_PrivateKey_file
    - BIO_printf
    - SSL_CTX_check_private_key
    - ERR_print_errors
    linkageType: ''
    returnType: int
    signature: int set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_certificate_types
      Src: /src/openssl-1.1.1g/apps/s_cb.c:199,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:202,1
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:205,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:208,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:210,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:212,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bio
    - s
    argTypes:
    - BIO*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 215
    functionName: ssl_print_client_cert_types
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - SSL_get0_certificate_types
    - lookup
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void ssl_print_client_cert_types(BIO *bio, SSL *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 250
    functionName: get_sigtype
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_sigtype(int nid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/apps/s_cb.c:255,1
    - Dst: SSL_get_shared_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_cb.c:257,1
    - Dst: SSL_get_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_cb.c:259,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:264,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:267,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:268,1
    - Dst: SSL_get_shared_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_cb.c:274,1
    - Dst: SSL_get_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_cb.c:277,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:279,1
    - Dst: get_sigtype
      Src: /src/openssl-1.1.1g/apps/s_cb.c:280,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:282,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:284,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:286,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/s_cb.c:286,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:288,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:290,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - out
    - s
    - shared
    argTypes:
    - BIO*
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 292
    functionName: do_print_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - SSL_is_server
    - SSL_get_shared_sigalgs
    - BIO_puts
    - BIO_printf
    - SSL_get_sigalgs
    - get_sigtype
    linkageType: ''
    returnType: int
    signature: int do_print_sigalgs(BIO *out, SSL *s, int shared)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/apps/s_cb.c:297,1
    - Dst: ssl_print_client_cert_types
      Src: /src/openssl-1.1.1g/apps/s_cb.c:298,1
    - Dst: do_print_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_cb.c:299,1
    - Dst: do_print_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_cb.c:300,1
    - Dst: SSL_get_peer_signature_nid
      Src: /src/openssl-1.1.1g/apps/s_cb.c:301,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:302,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/s_cb.c:302,1
    - Dst: SSL_get_peer_signature_type_nid
      Src: /src/openssl-1.1.1g/apps/s_cb.c:303,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:304,1
    - Dst: get_sigtype
      Src: /src/openssl-1.1.1g/apps/s_cb.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - out
    - s
    argTypes:
    - BIO*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: ssl_print_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 3
    functionsReached:
    - OBJ_nid2sn
    - SSL_is_server
    - ssl_print_client_cert_types
    - do_print_sigalgs
    - SSL_get_peer_signature_nid
    - BIO_printf
    - get_sigtype
    - SSL_get_peer_signature_type_nid
    linkageType: ''
    returnType: int
    signature: int ssl_print_sigalgs(BIO *out, SSL *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_ec_point_formats
      Src: /src/openssl-1.1.1g/apps/s_cb.c:313,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:316,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:319,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:322,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:326,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:330,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:334,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:339,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - out
    - s
    argTypes:
    - BIO*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 341
    functionName: ssl_print_point_formats
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    - SSL_get0_ec_point_formats
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ssl_print_point_formats(BIO *out, SSL *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get1_groups
      Src: /src/openssl-1.1.1g/apps/s_cb.c:348,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_cb.c:351,1
    - Dst: SSL_get1_groups
      Src: /src/openssl-1.1.1g/apps/s_cb.c:352,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:354,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:357,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:361,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-1.1.1g/apps/s_cb.c:365,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/s_cb.c:367,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:368,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:371,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:373,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:376,1
    - Dst: SSL_get_shared_group
      Src: /src/openssl-1.1.1g/apps/s_cb.c:377,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:380,1
    - Dst: SSL_get_shared_group
      Src: /src/openssl-1.1.1g/apps/s_cb.c:381,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-1.1.1g/apps/s_cb.c:383,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/s_cb.c:385,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:386,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:389,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:390,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - out
    - s
    - noshared
    argTypes:
    - BIO*
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 343
    functionDepth: 6
    functionLinenumber: 343
    functionLinenumberEnd: 392
    functionName: ssl_print_groups
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 2
    functionsReached:
    - OBJ_nid2sn
    - app_malloc
    - SSL_get1_groups
    - OPENSSL_free
    - BIO_puts
    - BIO_printf
    - EC_curve_nid2nist
    - SSL_get_shared_group
    linkageType: ''
    returnType: int
    signature: int ssl_print_groups(BIO *out, SSL *s, int noshared)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_peer_tmp_key
      Src: /src/openssl-1.1.1g/apps/s_cb.c:399,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:401,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/apps/s_cb.c:402,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:404,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/apps/s_cb.c:404,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:408,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/apps/s_cb.c:408,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openssl-1.1.1g/apps/s_cb.c:413,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/apps/s_cb.c:416,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/apps/s_cb.c:416,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:417,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-1.1.1g/apps/s_cb.c:418,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/s_cb.c:420,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:421,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/apps/s_cb.c:421,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:426,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/s_cb.c:426,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/apps/s_cb.c:426,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/apps/s_cb.c:427,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - out
    - s
    argTypes:
    - BIO*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 431
    functionName: ssl_print_tmp_key
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2sn
    - EC_GROUP_get_curve_name
    - SSL_get_peer_tmp_key
    - EVP_PKEY_bits
    - EVP_PKEY_id
    - EVP_PKEY_get1_EC_KEY
    - BIO_puts
    - EC_curve_nid2nist
    - EC_KEY_free
    - BIO_printf
    - EVP_PKEY_free
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int ssl_print_tmp_key(BIO *out, SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_callback_arg
      Src: /src/openssl-1.1.1g/apps/s_cb.c:438,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:443,1
    - Dst: BIO_dump
      Src: /src/openssl-1.1.1g/apps/s_cb.c:445,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:448,1
    - Dst: BIO_dump
      Src: /src/openssl-1.1.1g/apps/s_cb.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - bio
    - cmd
    - argp
    - argi
    - argl
    - ret
    argTypes:
    - BIO*
    - int
    - char*
    - int
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 453
    functionName: bio_dump_callback
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_get_callback_arg
    - BIO_dump
    - BIO_printf
    linkageType: ''
    returnType: long
    signature: "long bio_dump_callback(BIO *bio, int cmd, const char *argp,\n                       int
      argi, long argl, long ret)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:470,1
    - Dst: SSL_state_string_long
      Src: /src/openssl-1.1.1g/apps/s_cb.c:470,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:473,1
    - Dst: SSL_alert_type_string_long
      Src: /src/openssl-1.1.1g/apps/s_cb.c:475,1
    - Dst: SSL_alert_desc_string_long
      Src: /src/openssl-1.1.1g/apps/s_cb.c:476,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:479,1
    - Dst: SSL_state_string_long
      Src: /src/openssl-1.1.1g/apps/s_cb.c:480,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:482,1
    - Dst: SSL_state_string_long
      Src: /src/openssl-1.1.1g/apps/s_cb.c:483,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - s
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 485
    functionName: apps_ssl_info_callback
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - SSL_alert_type_string_long
    - SSL_alert_desc_string_long
    - SSL_state_string_long
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void apps_ssl_info_callback(const SSL *s, int where, int ret)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:566,1
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:592,1
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:599,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:623,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:630,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:634,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:635,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:638,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:639,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_cb.c:641,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 59
    argCount: 7
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 642
    functionName: msg_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - lookup
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void msg_cb(int write_p, int version, int content_type, const void
      *buf,\n            size_t len, SSL *ssl, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:738,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:740,1
    - Dst: BIO_dump
      Src: /src/openssl-1.1.1g/apps/s_cb.c:742,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_cb.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - client_server
    - type
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - int
    - int
    - unsigned char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 744
    functionName: tlsext_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - BIO_dump
    - lookup
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void tlsext_cb(SSL *s, int client_server, int type,\n               const
      unsigned char *data, int len, void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/apps/s_cb.c:757,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:758,1
    - Dst: SSL_is_dtls
      Src: /src/openssl-1.1.1g/apps/s_cb.c:764,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-1.1.1g/apps/s_cb.c:765,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:767,1
    - Dst: BIO_dgram_get_peer
      Src: /src/openssl-1.1.1g/apps/s_cb.c:772,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/apps/s_cb.c:772,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-1.1.1g/apps/s_cb.c:778,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:779,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/apps/s_cb.c:782,1
    - Dst: BIO_ADDR_rawport
      Src: /src/openssl-1.1.1g/apps/s_cb.c:783,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_cb.c:785,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/apps/s_cb.c:787,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-1.1.1g/apps/s_cb.c:788,1
    - Dst: HMAC
      Src: /src/openssl-1.1.1g/apps/s_cb.c:791,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/apps/s_cb.c:791,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:794,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:795,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 747
    functionDepth: 6
    functionLinenumber: 747
    functionLinenumberEnd: 798
    functionName: generate_cookie_callback
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - app_malloc
    - BIO_ADDR_free
    - BIO_dgram_get_peer
    - RAND_bytes
    - EVP_sha1
    - OPENSSL_free
    - memcpy
    - SSL_is_dtls
    - BIO_ADDR_new
    - SSL_get_rbio
    - BIO_printf
    - BIO_ADDR_rawport
    - HMAC
    - BIO_ADDR_rawaddress
    linkageType: ''
    returnType: int
    signature: "int generate_cookie_callback(SSL *ssl, unsigned char *cookie,\n                             unsigned
      int *cookie_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_cookie_callback
      Src: /src/openssl-1.1.1g/apps/s_cb.c:809,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/apps/s_cb.c:811,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 815
    functionName: verify_cookie_callback
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - memcmp
    - generate_cookie_callback
    linkageType: ''
    returnType: int
    signature: "int verify_cookie_callback(SSL *ssl, const unsigned char *cookie,\n
      \                          unsigned int cookie_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_cookie_callback
      Src: /src/openssl-1.1.1g/apps/s_cb.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 824
    functionName: generate_stateless_cookie_callback
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - generate_cookie_callback
    linkageType: ''
    returnType: int
    signature: "int generate_stateless_cookie_callback(SSL *ssl, unsigned char *cookie,\n
      \                                      size_t *cookie_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_cookie_callback
      Src: /src/openssl-1.1.1g/apps/s_cb.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 830
    functionName: verify_stateless_cookie_callback
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - verify_cookie_callback
    linkageType: ''
    returnType: int
    signature: "int verify_stateless_cookie_callback(SSL *ssl, const unsigned char
      *cookie,\n                                     size_t cookie_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:873,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:876,1
    - Dst: SSL_set_cert_flags
      Src: /src/openssl-1.1.1g/apps/s_cb.c:877,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:878,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - flags
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 881
    functionName: print_chain_flags
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - SSL_set_cert_flags
    - BIO_puts
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void print_chain_flags(SSL *s, int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:895,1
    - Dst: SSL_certs_clear
      Src: /src/openssl-1.1.1g/apps/s_cb.c:901,1
    - Dst: SSL_check_chain
      Src: /src/openssl-1.1.1g/apps/s_cb.c:917,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:918,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/apps/s_cb.c:919,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/s_cb.c:919,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/s_cb.c:920,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:921,1
    - Dst: print_chain_flags
      Src: /src/openssl-1.1.1g/apps/s_cb.c:922,1
    - Dst: SSL_use_certificate
      Src: /src/openssl-1.1.1g/apps/s_cb.c:924,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openssl-1.1.1g/apps/s_cb.c:925,1
    - Dst: SSL_build_cert_chain
      Src: /src/openssl-1.1.1g/apps/s_cb.c:934,1
    - Dst: SSL_set1_chain
      Src: /src/openssl-1.1.1g/apps/s_cb.c:937,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 887
    functionDepth: 7
    functionLinenumber: 887
    functionLinenumberEnd: 943
    functionName: set_cert_cb
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 3
    functionsReached:
    - X509_NAME_print_ex
    - SSL_set1_chain
    - SSL_use_certificate
    - SSL_use_PrivateKey
    - get_nameopt
    - print_chain_flags
    - BIO_puts
    - SSL_certs_clear
    - BIO_printf
    - SSL_build_cert_chain
    - X509_get_subject_name
    - SSL_check_chain
    linkageType: ''
    returnType: int
    signature: int set_cert_cb(SSL *ssl, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_cert_cb
      Src: /src/openssl-1.1.1g/apps/s_cb.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - exc
    argTypes:
    - SSL_CTX*
    - SSL_EXCERT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 948
    functionName: ssl_ctx_set_excert
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_cert_cb
    linkageType: ''
    returnType: void
    signature: void ssl_ctx_set_excert(SSL_CTX *ctx, SSL_EXCERT *exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_cb.c:952,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/apps/s_cb.c:954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pexc
    argTypes:
    - SSL_EXCERT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 950
    functionDepth: 6
    functionLinenumber: 950
    functionLinenumberEnd: 969
    functionName: ssl_excert_prepend
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - app_malloc
    - memset
    linkageType: ''
    returnType: int
    signature: int ssl_excert_prepend(SSL_EXCERT **pexc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:978,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:979,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:980,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - exc
    argTypes:
    - SSL_EXCERT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 971
    functionDepth: 2
    functionLinenumber: 971
    functionLinenumberEnd: 985
    functionName: ssl_excert_free
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - X509_free
    - EVP_PKEY_free
    - sk_X509_pop_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ssl_excert_free(SSL_EXCERT *exc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl_excert_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:994,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1000,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1003,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1008,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1011,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1017,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - pexc
    argTypes:
    - SSL_EXCERT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 987
    functionDepth: 7
    functionLinenumber: 987
    functionLinenumberEnd: 1023
    functionName: load_excert
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - ssl_excert_free
    - load_certs
    - load_key
    - BIO_printf
    - load_cert
    linkageType: ''
    returnType: int
    signature: int load_excert(SSL_EXCERT **pexc)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1031,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1032,1
    - Dst: ssl_excert_prepend
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1035,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1036,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1037,1
    - Dst: ssl_excert_prepend
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1048,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1049,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1049,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1053,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1057,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1057,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1060,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1064,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1065,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1068,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1074,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1074,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1078,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1078,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1085,1
    - Dst: ssl_excert_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1086,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 2
    argNames:
    - opt
    - pexc
    argTypes:
    - int
    - SSL_EXCERT**
    assertStmts:
    - condition: (opt > OPT_X__FIRST)
      pos:
        line_end: 1030
        line_start: 1030
        source_file: /src/openssl-1.1.1g/apps/s_cb.c
    - condition: (opt < OPT_X__LAST)
      pos:
        line_end: 1031
        line_start: 1031
        source_file: /src/openssl-1.1.1g/apps/s_cb.c
    constantsTouched: []
    func_position:
      end: 1089
      start: 1027
    functionDepth: 7
    functionLinenumber: 1027
    functionLinenumberEnd: 1089
    functionName: args_excert
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - opt_getprog
    - ssl_excert_free
    - opt_arg
    - ERR_print_errors
    - BIO_printf
    - ssl_excert_prepend
    - assert
    - opt_format
    linkageType: ''
    returnType: int
    signature: int args_excert(int opt, SSL_EXCERT **pexc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1096,1
    - Dst: SSL_get0_raw_cipherlist
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1098,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1099,1
    - Dst: SSL_get0_raw_cipherlist
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1100,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1101,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1103,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1105,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1107,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1107,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1108,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1109,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1112,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1114,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1118
    functionName: print_raw_cipherlist
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - SSL_get0_raw_cipherlist
    - OPENSSL_assert
    - SSL_is_server
    - memcmp
    - BIO_puts
    - SSL_CIPHER_find
    - BIO_printf
    - SSL_CIPHER_get_name
    linkageType: ''
    returnType: void
    signature: void print_raw_cipherlist(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1132,1
    - Dst: opt_getprog
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1133,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1134,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1123
    functionDepth: 6
    functionLinenumber: 1123
    functionLinenumberEnd: 1144
    functionName: hexencode
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - exit
    - opt_getprog
    - app_malloc
    - BIO_printf
    linkageType: ''
    returnType: char
    signature: char *hexencode(const unsigned char *data, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_verify_result
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1150,1
    - Dst: SSL_get0_peername
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1153,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1155,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1157,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1159,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1161,1
    - Dst: SSL_get0_dane_authority
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1164,1
    - Dst: SSL_get0_dane_tlsa
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1170,1
    - Dst: hexencode
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1181,1
    - Dst: hexencode
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1183,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1184,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - bio
    argTypes:
    - SSL*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1146
    functionDepth: 7
    functionLinenumber: 1146
    functionLinenumberEnd: 1192
    functionName: print_verify_detail
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_get_verify_result
    - SSL_get0_dane_tlsa
    - OPENSSL_free
    - SSL_get0_peername
    - hexencode
    - BIO_printf
    - SSL_get0_dane_authority
    - X509_verify_cert_error_string
    linkageType: ''
    returnType: void
    signature: void print_verify_detail(SSL *s, BIO *bio)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1199,1
    - Dst: SSL_get_version
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1199,1
    - Dst: print_raw_cipherlist
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1200,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1201,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1202,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1202,1
    - Dst: do_print_sigalgs
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1203,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1204,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1208,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1209,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1209,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1210,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1211,1
    - Dst: SSL_get_peer_signature_nid
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1212,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1213,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1213,1
    - Dst: SSL_get_peer_signature_type_nid
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1214,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1215,1
    - Dst: get_sigtype
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1215,1
    - Dst: print_verify_detail
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1216,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1218,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1220,1
    - Dst: ssl_print_point_formats
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1222,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1223,1
    - Dst: ssl_print_groups
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1224,1
    - Dst: ssl_print_tmp_key
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1226,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1228,1
    - Dst: ssl_print_tmp_key
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1194
    functionDepth: 8
    functionLinenumber: 1194
    functionLinenumberEnd: 1231
    functionName: print_ssl_summary
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 3
    functionsReached:
    - X509_NAME_print_ex
    - ssl_print_groups
    - ssl_print_point_formats
    - do_print_sigalgs
    - SSL_is_server
    - SSL_get_peer_signature_nid
    - get_nameopt
    - SSL_get_version
    - X509_get_subject_name
    - SSL_CIPHER_get_name
    - SSL_get_current_cipher
    - X509_free
    - SSL_get_peer_certificate
    - BIO_puts
    - OBJ_nid2sn
    - ssl_print_tmp_key
    - print_raw_cipherlist
    - SSL_get_peer_signature_type_nid
    - BIO_printf
    - print_verify_detail
    - get_sigtype
    linkageType: ''
    returnType: void
    signature: void print_ssl_summary(SSL *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1289,1
    - Dst: X509_STORE_load_locations
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1292,1
    - Dst: add_crls_store
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1294,1
    - Dst: SSL_CTX_set1_verify_cert_store
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1295,1
    - Dst: store_setup_crl_download
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1297,1
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1300,1
    - Dst: X509_STORE_load_locations
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1303,1
    - Dst: SSL_CTX_set1_chain_cert_store
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1305,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1309,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1310,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 7
    argNames:
    - ctx
    - vfyCApath
    - vfyCAfile
    - chCApath
    - chCAfile
    - crls
    - crl_download
    argTypes:
    - SSL_CTX*
    - char*
    - char*
    - char*
    - char*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1281
    functionDepth: 4
    functionLinenumber: 1281
    functionLinenumberEnd: 1312
    functionName: ssl_load_stores
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set1_chain_cert_store
    - X509_STORE_free
    - add_crls_store
    - X509_STORE_new
    - X509_STORE_load_locations
    - SSL_CTX_set1_verify_cert_store
    - store_setup_crl_download
    linkageType: ''
    returnType: int
    signature: "int ssl_load_stores(SSL_CTX *ctx,\n                    const char
      *vfyCApath, const char *vfyCAfile,\n                    const char *chCApath,
      const char *chCAfile,\n                    STACK_OF(X509_CRL) *crls, int crl_download)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: security_debug_ex*::old_cb
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1356,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1359,1
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1361,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1370,1
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1370,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1386,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1391,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1391,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1398,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1400,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1401,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1409,1
    - Dst: DH_bits
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1409,1
    - Dst: X509_get_signature_nid
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1416,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1417,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1417,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1419,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1421,1
    - Dst: EVP_PKEY_get0_asn1
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1422,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1423,1
    - Dst: EVP_PKEY_bits
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1424,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1436,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1438,1
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1440,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1442,1
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1446,1
    - Dst: lookup
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1447,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1450,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1452,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1459,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1460,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 7
    argNames:
    - s
    - ctx
    - op
    - bits
    - nid
    - other
    - ex
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1348
    functionDepth: 4
    functionLinenumber: 1348
    functionLinenumberEnd: 1462
    functionName: security_callback_debug
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - DH_bits
    - OBJ_nid2sn
    - X509_get_signature_nid
    - security_debug_ex*::old_cb
    - EVP_PKEY_bits
    - BIO_puts
    - lookup
    - BIO_printf
    - SSL_CIPHER_get_name
    - X509_get0_pubkey
    - EVP_PKEY_asn1_get0_info
    - EC_curve_nid2nist
    - EVP_PKEY_get0_asn1
    linkageType: ''
    returnType: int
    signature: "int security_callback_debug(const SSL *s, const SSL_CTX *ctx,\n                                   int
      op, int bits, int nid,\n                                   void *other, void
      *ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_security_callback
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1470,1
    - Dst: SSL_CTX_set_security_callback
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1471,1
    - Dst: SSL_CTX_set0_security_ex_data
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - verbose
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1473
    functionName: ssl_ctx_security_debug
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_security_callback
    - SSL_CTX_set0_security_ex_data
    - SSL_CTX_get_security_callback
    linkageType: ''
    returnType: void
    signature: void ssl_ctx_security_debug(SSL_CTX *ctx, int verbose)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1478,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1486,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1475
    functionDepth: 2
    functionLinenumber: 1475
    functionLinenumberEnd: 1488
    functionName: keylog_callback
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 2
    functionsReached:
    - BIO_flush
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void keylog_callback(const SSL *ssl, const char *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1493,1
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1506,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1508,1
    - Dst: BIO_tell
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1513,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1514,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1516,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - keylog_file
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1490
    functionDepth: 5
    functionLinenumber: 1490
    functionLinenumberEnd: 1520
    functionName: set_keylog_file
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_keylog_callback
    - BIO_puts
    - BIO_printf
    - BIO_tell
    - BIO_new_file
    - BIO_flush
    - BIO_free_all
    linkageType: ''
    returnType: int
    signature: int set_keylog_file(SSL_CTX *ctx, const char *keylog_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1524,1
    - Dst: SSL_get0_peer_CA_list
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1525,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1528,1
    - Dst: SSL_is_server
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1529,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1530,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1534,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1535,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1536,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1536,1
    - Dst: get_nameopt
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1536,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/s_cb.c:1537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bio
    - s
    argTypes:
    - BIO*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1522
    functionDepth: 7
    functionLinenumber: 1522
    functionLinenumberEnd: 1539
    functionName: print_ca_names
    functionSourceFile: /src/openssl-1.1.1g/apps/s_cb.c
    functionUses: 4
    functionsReached:
    - BIO_write
    - X509_NAME_print_ex
    - SSL_is_server
    - SSL_get0_peer_CA_list
    - get_nameopt
    - sk_X509_NAME_num
    - BIO_printf
    - sk_X509_NAME_value
    linkageType: ''
    returnType: void
    signature: void print_ca_names(BIO *bio, SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pid
    - pgid
    argTypes:
    - pid_t
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: setpgid
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int setpgid(pid_t pid, pid_t pgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: fork
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pid_t
    signature: pid_t fork(void)
  - BBCount: 151
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ocsp.c:229,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ocsp.c:236,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ocsp.c:237,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ocsp.c:238,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ocsp.c:239,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ocsp.c:240,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/ocsp.c:242,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/ocsp.c:264,1
    - Dst: sk_OCSP_CERTID_new_null
      Src: /src/openssl-1.1.1g/apps/ocsp.c:267,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/apps/ocsp.c:270,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/ocsp.c:273,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/ocsp.c:274,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:279,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/ocsp.c:283,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:286,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/ocsp.c:290,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:290,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:294,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:295,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:296,1
    - Dst: OCSP_parse_url
      Src: /src/openssl-1.1.1g/apps/ocsp.c:298,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:298,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:299,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:307,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:310,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:367,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:370,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:373,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:376,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:380,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:383,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:386,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:389,1
    - Dst: opt_verify
      Src: /src/openssl-1.1.1g/apps/ocsp.c:398,1
    - Dst: opt_long
      Src: /src/openssl-1.1.1g/apps/ocsp.c:403,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:403,1
    - Dst: opt_long
      Src: /src/openssl-1.1.1g/apps/ocsp.c:406,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:406,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:409,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:412,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:415,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:418,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/ocsp.c:421,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:421,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/apps/ocsp.c:425,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/apps/ocsp.c:428,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:431,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/ocsp.c:432,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:432,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/apps/ocsp.c:436,1
    - Dst: add_ocsp_cert
      Src: /src/openssl-1.1.1g/apps/ocsp.c:437,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/ocsp.c:439,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:439,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/apps/ocsp.c:445,1
    - Dst: add_ocsp_serial
      Src: /src/openssl-1.1.1g/apps/ocsp.c:446,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:446,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/ocsp.c:448,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:448,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:453,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:456,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/ocsp.c:459,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:459,1
    - Dst: opt_int
      Src: /src/openssl-1.1.1g/apps/ocsp.c:464,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:464,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/ocsp.c:467,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:467,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:470,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:473,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:476,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/ocsp.c:479,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:479,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/ocsp.c:484,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/ocsp.c:485,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:485,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:489,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/apps/ocsp.c:490,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:492,1
    - Dst: X509V3_add_value
      Src: /src/openssl-1.1.1g/apps/ocsp.c:496,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:501,1
    - Dst: opt_md
      Src: /src/openssl-1.1.1g/apps/ocsp.c:506,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/ocsp.c:506,1
    - Dst: atoi
      Src: /src/openssl-1.1.1g/apps/ocsp.c:512,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/ocsp.c:512,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:518,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/ocsp.c:522,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ocsp.c:531,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ocsp.c:539,1
    - Dst: d2i_OCSP_REQUEST_bio
      Src: /src/openssl-1.1.1g/apps/ocsp.c:542,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:543,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:545,1
    - Dst: init_responder
      Src: /src/openssl-1.1.1g/apps/ocsp.c:551,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/ocsp.c:559,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:561,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/ocsp.c:564,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/ocsp.c:568,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/ocsp.c:572,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:580,1
    - Dst: load_index
      Src: /src/openssl-1.1.1g/apps/ocsp.c:586,1
    - Dst: index_index
      Src: /src/openssl-1.1.1g/apps/ocsp.c:587,1
    - Dst: spawn_loop
      Src: /src/openssl-1.1.1g/apps/ocsp.c:595,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/apps/ocsp.c:597,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:601,1
    - Dst: index_changed
      Src: /src/openssl-1.1.1g/apps/ocsp.c:607,1
    - Dst: load_index
      Src: /src/openssl-1.1.1g/apps/ocsp.c:608,1
    - Dst: index_index
      Src: /src/openssl-1.1.1g/apps/ocsp.c:610,1
    - Dst: free_index
      Src: /src/openssl-1.1.1g/apps/ocsp.c:611,1
    - Dst: free_index
      Src: /src/openssl-1.1.1g/apps/ocsp.c:614,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:615,1
    - Dst: do_responder
      Src: /src/openssl-1.1.1g/apps/ocsp.c:622,1
    - Dst: OCSP_response_create
      Src: /src/openssl-1.1.1g/apps/ocsp.c:627,1
    - Dst: send_ocsp_response
      Src: /src/openssl-1.1.1g/apps/ocsp.c:629,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:637,1
    - Dst: OCSP_request_add1_nonce
      Src: /src/openssl-1.1.1g/apps/ocsp.c:642,1
    - Dst: load_cert
      Src: /src/openssl-1.1.1g/apps/ocsp.c:649,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:651,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/ocsp.c:655,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/ocsp.c:659,1
    - Dst: OCSP_request_sign
      Src: /src/openssl-1.1.1g/apps/ocsp.c:664,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:666,1
    - Dst: OCSP_REQUEST_print
      Src: /src/openssl-1.1.1g/apps/ocsp.c:672,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ocsp.c:675,1
    - Dst: i2d_OCSP_REQUEST_bio
      Src: /src/openssl-1.1.1g/apps/ocsp.c:678,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:679,1
    - Dst: make_ocsp_response
      Src: /src/openssl-1.1.1g/apps/ocsp.c:683,1
    - Dst: send_ocsp_response
      Src: /src/openssl-1.1.1g/apps/ocsp.c:686,1
    - Dst: process_responder
      Src: /src/openssl-1.1.1g/apps/ocsp.c:689,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:694,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ocsp.c:699,1
    - Dst: d2i_OCSP_RESPONSE_bio
      Src: /src/openssl-1.1.1g/apps/ocsp.c:702,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:703,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:705,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/ocsp.c:716,1
    - Dst: i2d_OCSP_RESPONSE_bio
      Src: /src/openssl-1.1.1g/apps/ocsp.c:719,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:720,1
    - Dst: OCSP_response_status
      Src: /src/openssl-1.1.1g/apps/ocsp.c:723,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:725,1
    - Dst: OCSP_response_status_str
      Src: /src/openssl-1.1.1g/apps/ocsp.c:726,1
    - Dst: OCSP_RESPONSE_print
      Src: /src/openssl-1.1.1g/apps/ocsp.c:732,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ocsp.c:741,1
    - Dst: OCSP_REQUEST_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:743,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:745,1
    - Dst: setup_verify
      Src: /src/openssl-1.1.1g/apps/ocsp.c:755,1
    - Dst: X509_STORE_set1_param
      Src: /src/openssl-1.1.1g/apps/ocsp.c:760,1
    - Dst: load_certs
      Src: /src/openssl-1.1.1g/apps/ocsp.c:762,1
    - Dst: OCSP_response_get1_basic
      Src: /src/openssl-1.1.1g/apps/ocsp.c:767,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:769,1
    - Dst: OCSP_check_nonce
      Src: /src/openssl-1.1.1g/apps/ocsp.c:776,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:778,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:780,1
    - Dst: OCSP_basic_verify
      Src: /src/openssl-1.1.1g/apps/ocsp.c:786,1
    - Dst: OCSP_basic_verify
      Src: /src/openssl-1.1.1g/apps/ocsp.c:788,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/apps/ocsp.c:790,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:793,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ocsp.c:794,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:797,1
    - Dst: print_ocsp_summary
      Src: /src/openssl-1.1.1g/apps/ocsp.c:801,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/ocsp.c:804,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:805,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:806,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:807,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:808,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:809,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:810,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:811,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:812,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:813,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:814,1
    - Dst: free_index
      Src: /src/openssl-1.1.1g/apps/ocsp.c:815,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ocsp.c:816,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ocsp.c:817,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ocsp.c:818,1
    - Dst: OCSP_REQUEST_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:819,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:820,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:821,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:822,1
    - Dst: sk_OCSP_CERTID_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:823,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:824,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:825,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:826,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:827,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:828,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:829,1
    CyclomaticComplexity: 229
    EdgeCount: 229
    ICount: 563
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 225
    functionDepth: 8
    functionLinenumber: 225
    functionLinenumberEnd: 832
    functionName: ocsp_main
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - opt_long
    - send_ocsp_response
    - OCSP_REQUEST_free
    - X509_STORE_set1_param
    - sk_OPENSSL_STRING_free
    - load_certs
    - spawn_loop
    - OCSP_response_create
    - atoi
    - OCSP_response_status
    - STACK_OF
    - X509_VERIFY_PARAM_free
    - print_ocsp_summary
    - i2d_OCSP_REQUEST_bio
    - bio_open_default
    - OCSP_response_status_str
    - free_index
    - init_responder
    - sk_OPENSSL_STRING_new_null
    - X509_free
    - add_ocsp_serial
    - log_message
    - X509_STORE_free
    - X509V3_add_value
    - OPENSSL_free
    - opt_unknown
    - opt_arg
    - OCSP_REQUEST_print
    - opt_next
    - OCSP_BASICRESP_free
    - BIO_free
    - ERR_clear_error
    - sk_CONF_VALUE_pop_free
    - do_responder
    - sk_OCSP_CERTID_free
    - X509_VERIFY_PARAM_new
    - d2i_OCSP_REQUEST_bio
    - d2i_OCSP_RESPONSE_bio
    - OCSP_basic_verify
    - signal
    - EVP_sha1
    - load_key
    - strchr
    - make_ocsp_response
    - ERR_print_errors
    - OCSP_parse_url
    - OCSP_RESPONSE_free
    - sk_OCSP_CERTID_new_null
    - sk_X509_pop_free
    - opt_help
    - BIO_free_all
    - sk_OPENSSL_STRING_push
    - opt_int
    - load_index
    - sk_X509_push
    - OCSP_request_sign
    - index_index
    - opt_num_rest
    - sk_X509_new_null
    - opt_md
    - process_responder
    - OCSP_RESPONSE_print
    - i2d_OCSP_RESPONSE_bio
    - setup_verify
    - OCSP_check_nonce
    - OCSP_request_add1_nonce
    - opt_verify
    - BIO_printf
    - EVP_PKEY_free
    - OCSP_response_get1_basic
    - opt_init
    - add_ocsp_cert
    - index_changed
    - load_cert
    linkageType: ''
    returnType: int
    signature: int ocsp_main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-1.1.1g/apps/ocsp.c:839,1
    - Dst: vsnprintf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:843,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:844,1
    - Dst: ERR_print_errors_cb
      Src: /src/openssl-1.1.1g/apps/ocsp.c:847,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:851,1
    - Dst: BIO_vprintf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:852,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:853,1
    - Dst: va_end
      Src: /src/openssl-1.1.1g/apps/ocsp.c:855,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - level
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 834
    functionDepth: 5
    functionLinenumber: 834
    functionLinenumberEnd: 856
    functionName: log_message
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - va_start
    - ERR_print_errors_cb
    - vsnprintf
    - syslog
    - va_end
    - BIO_vprintf
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void log_message(int level, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - str
    - len
    - levPtr
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 868
    functionName: print_syslog
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - syslog
    linkageType: ''
    returnType: int
    signature: int print_syslog(const char *str, size_t len, void *levPtr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openssl-1.1.1g/apps/ocsp.c:874,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:879,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - rdb
    argTypes:
    - CA_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 884
    functionName: index_changed
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - stat
    - syslog
    linkageType: ''
    returnType: int
    signature: int index_changed(CA_DB *rdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/openssl-1.1.1g/apps/ocsp.c:892,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:893,1
    - Dst: sleep
      Src: /src/openssl-1.1.1g/apps/ocsp.c:894,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/apps/ocsp.c:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ret
    - kidpids
    argTypes:
    - int
    - pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 896
    functionName: killall
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - exit
    - OPENSSL_free
    - sleep
    - kill
    linkageType: ''
    returnType: void
    signature: void killall(int ret, pid_t *kidpids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 903
    functionName: noteterm
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noteterm (int sig)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: openlog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:917,1
    - Dst: setpgid
      Src: /src/openssl-1.1.1g/apps/ocsp.c:919,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:920,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/apps/ocsp.c:921,1
    - Dst: exit
      Src: /src/openssl-1.1.1g/apps/ocsp.c:922,1
    - Dst: app_malloc
      Src: /src/openssl-1.1.1g/apps/ocsp.c:924,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/apps/ocsp.c:928,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/apps/ocsp.c:929,1
    - Dst: waitpid
      Src: /src/openssl-1.1.1g/apps/ocsp.c:939,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:948,1
    - Dst: killall
      Src: /src/openssl-1.1.1g/apps/ocsp.c:951,1
    - Dst: WIFEXITED
      Src: /src/openssl-1.1.1g/apps/ocsp.c:954,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:955,1
    - Dst: WEXITSTATUS
      Src: /src/openssl-1.1.1g/apps/ocsp.c:956,1
    - Dst: WIFSIGNALED
      Src: /src/openssl-1.1.1g/apps/ocsp.c:957,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:958,1
    - Dst: WTERMSIG
      Src: /src/openssl-1.1.1g/apps/ocsp.c:959,1
    - Dst: WCOREDUMP
      Src: /src/openssl-1.1.1g/apps/ocsp.c:961,1
    - Dst: sleep
      Src: /src/openssl-1.1.1g/apps/ocsp.c:964,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:968,1
    - Dst: strerror
      Src: /src/openssl-1.1.1g/apps/ocsp.c:968,1
    - Dst: killall
      Src: /src/openssl-1.1.1g/apps/ocsp.c:969,1
    - Dst: fork
      Src: /src/openssl-1.1.1g/apps/ocsp.c:975,1
    - Dst: sleep
      Src: /src/openssl-1.1.1g/apps/ocsp.c:978,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:981,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/apps/ocsp.c:982,1
    - Dst: signal
      Src: /src/openssl-1.1.1g/apps/ocsp.c:983,1
    - Dst: _exit
      Src: /src/openssl-1.1.1g/apps/ocsp.c:985,1
    - Dst: RAND_poll
      Src: /src/openssl-1.1.1g/apps/ocsp.c:986,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:987,1
    - Dst: _exit
      Src: /src/openssl-1.1.1g/apps/ocsp.c:988,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1000,1
    - Dst: killall
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1001,1
    - Dst: syslog
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1008,1
    - Dst: killall
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1009,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 910
    functionDepth: 6
    functionLinenumber: 910
    functionLinenumberEnd: 1010
    functionName: spawn_loop
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - _exit
    - strerror
    - WEXITSTATUS
    - syslog
    - sleep
    - WIFEXITED
    - fork
    - OPENSSL_free
    - exit
    - RAND_poll
    - WIFSIGNALED
    - app_malloc
    - signal
    - openlog
    - killall
    - WTERMSIG
    - setpgid
    - waitpid
    - WCOREDUMP
    linkageType: ''
    returnType: void
    signature: void spawn_loop(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1020,1
    - Dst: OCSP_REQUEST_new
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1024,1
    - Dst: OCSP_cert_to_id
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1027,1
    - Dst: sk_OCSP_CERTID_push
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1028,1
    - Dst: OCSP_request_add0_id
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1030,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1035,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - req
    - cert
    - cert_id_md
    - issuer
    - ids
    argTypes:
    - OCSP_REQUEST**
    - X509*
    - EVP_MD*
    - X509*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1037
    functionName: add_ocsp_cert
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - sk_OCSP_CERTID_push
    - OCSP_request_add0_id
    - OCSP_cert_to_id
    - BIO_printf
    - OCSP_REQUEST_new
    linkageType: ''
    returnType: int
    signature: "int add_ocsp_cert(OCSP_REQUEST **req, X509 *cert,\n                         const
      EVP_MD *cert_id_md, X509 *issuer,\n                         STACK_OF(OCSP_CERTID)
      *ids)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1049,1
    - Dst: OCSP_REQUEST_new
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1053,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1056,1
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1057,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1058,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1060,1
    - Dst: OCSP_cert_id_new
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1063,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1064,1
    - Dst: sk_OCSP_CERTID_push
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1065,1
    - Dst: OCSP_request_add0_id
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1067,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1072,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - req
    - serial
    - cert_id_md
    - issuer
    - ids
    argTypes:
    - OCSP_REQUEST**
    - char*
    - EVP_MD*
    - X509*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1039
    functionDepth: 7
    functionLinenumber: 1039
    functionLinenumberEnd: 1074
    functionName: add_ocsp_serial
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - sk_OCSP_CERTID_push
    - X509_get0_pubkey_bitstr
    - OCSP_request_add0_id
    - OCSP_cert_id_new
    - ASN1_INTEGER_free
    - s2i_ASN1_INTEGER
    - BIO_printf
    - X509_get_subject_name
    - OCSP_REQUEST_new
    linkageType: ''
    returnType: int
    signature: "int add_ocsp_serial(OCSP_REQUEST **req, char *serial,\n                           const
      EVP_MD *cert_id_md, X509 *issuer,\n                           STACK_OF(OCSP_CERTID)
      *ids)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1273,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1274,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1276,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1277,1
    - Dst: BN_bn2hex
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1279,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1281,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1282,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1266
    functionDepth: 6
    functionLinenumber: 1266
    functionLinenumberEnd: 1285
    functionName: lookup_serial
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - OPENSSL_free
    - OPENSSL_strdup
    - BN_free
    - BN_bn2hex
    - TXT_DB_get_by_index
    - BN_is_zero
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: char
    signature: char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1292,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1298,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1298,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1301,1
    - Dst: BIO_s_accept
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1301,1
    - Dst: BIO_set_bind_mode
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1303,1
    - Dst: BIO_set_accept_port
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1304,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1305,1
    - Dst: BIO_set_accept_bios
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1309,1
    - Dst: BIO_do_accept
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1311,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1312,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1319,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1320,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - port
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1289
    functionDepth: 6
    functionLinenumber: 1289
    functionLinenumberEnd: 1323
    functionName: init_responder
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - log_message
    - BIO_set_bind_mode
    - BIO_set_accept_bios
    - BIO_f_buffer
    - BIO_set_accept_port
    - BIO_s_accept
    - BIO_free
    - BIO_printf
    - BIO_do_accept
    - BIO_free_all
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *init_responder(const char *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1337,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1337,1
    - Dst: isxdigit
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1337,1
    - Dst: _UC
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1337,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1339,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1348
    functionName: urldecode
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - _UC
    - OPENSSL_hexchar2int
    - isxdigit
    linkageType: ''
    returnType: int
    signature: int urldecode(char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1356
    functionName: socket_timeout
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - shutdown
    linkageType: ''
    returnType: void
    signature: void socket_timeout(int signum)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BIO_do_accept
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1375,1
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1378,1
    - Dst: BIO_get_peer_name
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1380,1
    - Dst: BIO_get_fd
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1384,1
    - Dst: alarm
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1385,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1390,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1394,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1399,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1408,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1409,1
    - Dst: urldecode
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1423,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1425,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1429,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1430,1
    - Dst: BIO_f_base64
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1430,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1431,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1434,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1435,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1436,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1437,1
    - Dst: BIO_gets
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1443,1
    - Dst: alarm
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1452,1
    - Dst: d2i_OCSP_REQUEST_bio
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1458,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1459,1
    - Dst: d2i_OCSP_REQUEST_bio
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1461,1
    - Dst: log_message
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1465,1
    - Dst: alarm
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1472,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 82
    argCount: 4
    argNames:
    - preq
    - pcbio
    - acbio
    - timeout
    argTypes:
    - OCSP_REQUEST**
    - BIO**
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1359
    functionDepth: 6
    functionLinenumber: 1359
    functionLinenumberEnd: 1477
    functionName: do_responder
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - alarm
    - log_message
    - d2i_OCSP_REQUEST_bio
    - BIO_pop
    - BIO_set_flags
    - BIO_push
    - BIO_f_base64
    - BIO_get_fd
    - BIO_new_mem_buf
    - BIO_new
    - BIO_do_accept
    - BIO_get_peer_name
    - BIO_gets
    - strncmp
    - BIO_free_all
    - urldecode
    linkageType: ''
    returnType: int
    signature: "int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio,\n                        int
      timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1486,1
    - Dst: i2d_OCSP_RESPONSE
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1486,1
    - Dst: i2d_OCSP_RESPONSE_bio
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1487,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cbio
    - resp
    argTypes:
    - BIO*
    - OCSP_RESPONSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1479
    functionDepth: 2
    functionLinenumber: 1479
    functionLinenumberEnd: 1490
    functionName: send_ocsp_response
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - i2d_OCSP_RESPONSE_bio
    - BIO_flush
    - i2d_OCSP_RESPONSE
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_nbio
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1508,1
    - Dst: BIO_do_connect
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1510,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1512,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1513,1
    - Dst: BIO_get_fd
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1517,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1518,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1523,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1524,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1527,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1529,1
    - Dst: OCSP_sendreq_new
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1534,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1538,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1539,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1540,1
    - Dst: OCSP_REQ_CTX_add1_header
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1542,1
    - Dst: OCSP_REQ_CTX_add1_header
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1546,1
    - Dst: OCSP_REQ_CTX_set1_req
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1549,1
    - Dst: OCSP_sendreq_nbio
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1553,1
    - Dst: FD_ZERO
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1558,1
    - Dst: openssl_fdset
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1559,1
    - Dst: BIO_should_read
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1562,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1563,1
    - Dst: BIO_should_write
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1564,1
    - Dst: select
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1565,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1567,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1571,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1575,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1581,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 73
    argCount: 6
    argNames:
    - cbio
    - host
    - path
    - headers
    - req
    - req_timeout
    argTypes:
    - BIO*
    - char*
    - char*
    - STACK_OF*
    - OCSP_REQUEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1493
    functionDepth: 4
    functionLinenumber: 1493
    functionLinenumberEnd: 1584
    functionName: query_responder
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - OCSP_REQ_CTX_set1_req
    - sk_CONF_VALUE_num
    - openssl_fdset
    - OCSP_sendreq_nbio
    - BIO_should_write
    - BIO_should_read
    - OCSP_REQ_CTX_add1_header
    - BIO_puts
    - BIO_get_fd
    - OCSP_REQ_CTX_free
    - select
    - sk_CONF_VALUE_value
    - strcasecmp
    - OCSP_sendreq_new
    - BIO_should_retry
    - BIO_do_connect
    - BIO_set_nbio
    - FD_ZERO
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: "OCSP_RESPONSE *query_responder(BIO *cbio, const char *host,\n                                      const
      char *path,\n                                      const STACK_OF(CONF_VALUE)
      *headers,\n                                      OCSP_REQUEST *req, int req_timeout)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_connect
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1596,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1598,1
    - Dst: BIO_set_conn_port
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1602,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1605,1
    - Dst: TLS_client_method
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1605,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1607,1
    - Dst: SSL_CTX_set_mode
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1610,1
    - Dst: BIO_new_ssl
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1611,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1612,1
    - Dst: query_responder
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1615,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1617,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1619,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/apps/ocsp.c:1620,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 7
    argNames:
    - req
    - host
    - path
    - port
    - use_ssl
    - headers
    - req_timeout
    argTypes:
    - OCSP_REQUEST*
    - char*
    - char*
    - char*
    - int
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1586
    functionDepth: 5
    functionLinenumber: 1586
    functionLinenumberEnd: 1622
    functionName: process_responder
    functionSourceFile: /src/openssl-1.1.1g/apps/ocsp.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_set_mode
    - BIO_new_ssl
    - BIO_new_connect
    - BIO_set_conn_port
    - BIO_push
    - TLS_client_method
    - query_responder
    - BIO_printf
    - SSL_CTX_new
    - SSL_CTX_free
    - BIO_free_all
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: "OCSP_RESPONSE *process_responder(OCSP_REQUEST *req,\n                                 const
      char *host, const char *path,\n                                 const char *port,
      int use_ssl,\n                                 STACK_OF(CONF_VALUE) *headers,\n
      \                                int req_timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:56,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:58,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - prefix
    - dev
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: printlist
    functionSourceFile: /src/openssl-1.1.1g/apps/version.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printlist(const char *prefix, const char **dev)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/version.c:71,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/version.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/version.c:77,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/version.c:80,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/version.c:113,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/version.c:114,1
    - Dst: OpenSSL_version_num
      Src: /src/openssl-1.1.1g/apps/version.c:121,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:122,1
    - Dst: OpenSSL_version
      Src: /src/openssl-1.1.1g/apps/version.c:122,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:124,1
    - Dst: OpenSSL_version
      Src: /src/openssl-1.1.1g/apps/version.c:125,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:128,1
    - Dst: OpenSSL_version
      Src: /src/openssl-1.1.1g/apps/version.c:128,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:130,1
    - Dst: OpenSSL_version
      Src: /src/openssl-1.1.1g/apps/version.c:130,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:132,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:133,1
    - Dst: BN_options
      Src: /src/openssl-1.1.1g/apps/version.c:133,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:135,1
    - Dst: MD2_options
      Src: /src/openssl-1.1.1g/apps/version.c:135,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:138,1
    - Dst: RC4_options
      Src: /src/openssl-1.1.1g/apps/version.c:138,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:141,1
    - Dst: DES_options
      Src: /src/openssl-1.1.1g/apps/version.c:141,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:144,1
    - Dst: IDEA_options
      Src: /src/openssl-1.1.1g/apps/version.c:144,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:147,1
    - Dst: BF_options
      Src: /src/openssl-1.1.1g/apps/version.c:147,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:149,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:152,1
    - Dst: OpenSSL_version
      Src: /src/openssl-1.1.1g/apps/version.c:152,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:154,1
    - Dst: OpenSSL_version
      Src: /src/openssl-1.1.1g/apps/version.c:154,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:156,1
    - Dst: OpenSSL_version
      Src: /src/openssl-1.1.1g/apps/version.c:156,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:158,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:160,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:163,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:166,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:169,1
    - Dst: printlist
      Src: /src/openssl-1.1.1g/apps/version.c:174,1
    - Dst: printlist
      Src: /src/openssl-1.1.1g/apps/version.c:180,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:184,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:187,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/apps/version.c:189,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 194
    functionName: version_main
    functionSourceFile: /src/openssl-1.1.1g/apps/version.c
    functionUses: 0
    functionsReached:
    - OpenSSL_version
    - MD2_options
    - opt_num_rest
    - BN_options
    - OpenSSL_version_num
    - BF_options
    - DES_options
    - RC4_options
    - opt_next
    - printf
    - BIO_printf
    - IDEA_options
    - opt_init
    - opt_help
    - printlist
    linkageType: ''
    returnType: int
    signature: int version_main(int argc, char **argv)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/dsa.c:75,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/dsa.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:82,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/dsa.c:85,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/dsa.c:89,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsa.c:89,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsa.c:93,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/dsa.c:96,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsa.c:96,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsa.c:100,1
    - Dst: setup_engine
      Src: /src/openssl-1.1.1g/apps/dsa.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsa.c:103,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsa.c:106,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/dsa.c:109,1
    - Dst: opt_cipher
      Src: /src/openssl-1.1.1g/apps/dsa.c:134,1
    - Dst: opt_unknown
      Src: /src/openssl-1.1.1g/apps/dsa.c:134,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/dsa.c:139,1
    - Dst: app_passwd
      Src: /src/openssl-1.1.1g/apps/dsa.c:147,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:148,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:152,1
    - Dst: load_pubkey
      Src: /src/openssl-1.1.1g/apps/dsa.c:157,1
    - Dst: load_key
      Src: /src/openssl-1.1.1g/apps/dsa.c:159,1
    - Dst: EVP_PKEY_get1_DSA
      Src: /src/openssl-1.1.1g/apps/dsa.c:162,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/dsa.c:163,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:167,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dsa.c:168,1
    - Dst: bio_open_owner
      Src: /src/openssl-1.1.1g/apps/dsa.c:172,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/dsa.c:177,1
    - Dst: DSA_print
      Src: /src/openssl-1.1.1g/apps/dsa.c:178,1
    - Dst: perror
      Src: /src/openssl-1.1.1g/apps/dsa.c:179,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dsa.c:180,1
    - Dst: DSA_get0_key
      Src: /src/openssl-1.1.1g/apps/dsa.c:187,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:188,1
    - Dst: BN_print
      Src: /src/openssl-1.1.1g/apps/dsa.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:190,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:197,1
    - Dst: i2d_DSA_PUBKEY_bio
      Src: /src/openssl-1.1.1g/apps/dsa.c:200,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/dsa.c:202,1
    - Dst: i2d_DSAPrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/dsa.c:203,1
    - Dst: PEM_write_bio_DSA_PUBKEY
      Src: /src/openssl-1.1.1g/apps/dsa.c:207,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/dsa.c:209,1
    - Dst: PEM_write_bio_DSAPrivateKey
      Src: /src/openssl-1.1.1g/apps/dsa.c:210,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/apps/dsa.c:216,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-1.1.1g/apps/dsa.c:220,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:223,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/dsa.c:224,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/dsa.c:227,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:229,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/dsa.c:230,1
    - Dst: i2b_PVK_bio
      Src: /src/openssl-1.1.1g/apps/dsa.c:233,1
    - Dst: i2b_PublicKey_bio
      Src: /src/openssl-1.1.1g/apps/dsa.c:236,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/apps/dsa.c:238,1
    - Dst: i2b_PrivateKey_bio
      Src: /src/openssl-1.1.1g/apps/dsa.c:239,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/apps/dsa.c:241,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:244,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/dsa.c:248,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/dsa.c:249,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/apps/dsa.c:254,1
    - Dst: DSA_free
      Src: /src/openssl-1.1.1g/apps/dsa.c:255,1
    - Dst: release_engine
      Src: /src/openssl-1.1.1g/apps/dsa.c:256,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/dsa.c:257,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/dsa.c:258,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 184
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (private)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/openssl-1.1.1g/apps/dsa.c
    - condition: (private)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/openssl-1.1.1g/apps/dsa.c
    - condition: (pubin || private)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/openssl-1.1.1g/apps/dsa.c
    - condition: (private)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/openssl-1.1.1g/apps/dsa.c
    - condition: (private)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/openssl-1.1.1g/apps/dsa.c
    constantsTouched: []
    func_position:
      end: 260
      start: 59
    functionDepth: 9
    functionLinenumber: 59
    functionLinenumberEnd: 260
    functionName: dsa_main
    functionSourceFile: /src/openssl-1.1.1g/apps/dsa.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_DSA_PUBKEY
    - i2d_DSAPrivateKey_bio
    - DSA_get0_key
    - EVP_PKEY_new
    - app_passwd
    - perror
    - OPENSSL_free
    - opt_unknown
    - bio_open_owner
    - opt_arg
    - opt_format
    - DSA_print
    - opt_next
    - PEM_write_bio_DSAPrivateKey
    - i2b_PublicKey_bio
    - load_key
    - release_engine
    - EVP_PKEY_set1_DSA
    - load_pubkey
    - assert
    - i2d_DSA_PUBKEY_bio
    - i2b_PrivateKey_bio
    - BN_print
    - DSA_free
    - opt_help
    - BIO_free_all
    - setup_engine
    - opt_num_rest
    - i2b_PVK_bio
    - opt_cipher
    - EVP_PKEY_get1_DSA
    - BIO_printf
    - EVP_PKEY_free
    - ERR_print_errors
    - opt_init
    linkageType: ''
    returnType: int
    signature: int dsa_main(int argc, char **argv)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:61,1
    - Dst: opt_init
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:75,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:77,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:78,1
    - Dst: opt_next
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:82,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:87,1
    - Dst: opt_help
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:90,1
    - Dst: opt_format
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:94,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:94,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:98,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:101,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:110,1
    - Dst: strtol
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:113,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:113,1
    - Dst: strtol
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:116,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:116,1
    - Dst: strtol
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:122,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:122,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:125,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:125,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:128,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:131,1
    - Dst: ASN1_ITEM_lookup
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:138,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:138,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:142,1
    - Dst: opt_arg
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:142,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:143,1
    - Dst: ASN1_ITEM_get
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:145,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:148,1
    - Dst: opt_num_rest
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:155,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:160,1
    - Dst: OBJ_create_objects
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:163,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:164,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:167,1
    - Dst: bio_open_default
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:170,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:173,1
    - Dst: PEM_read_bio
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:176,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:177,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:178,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:184,1
    - Dst: do_generate
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:188,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:190,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:198,1
    - Dst: BIO_f_base64
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:198,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:200,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:208,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:210,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:222,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:225,1
    - Dst: strtol
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:228,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:228,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:230,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:231,1
    - Dst: d2i_ASN1_TYPE
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:238,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:239,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:241,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:242,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:245,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:249,1
    - Dst: ASN1_tag2str
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:249,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:250,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:262,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:271,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:272,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:273,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:281,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:283,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:284,1
    - Dst: ASN1_item_print
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:287,1
    - Dst: ASN1_item_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:288,1
    - Dst: ASN1_parse_dump
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:290,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:291,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:298,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:299,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:300,1
    - Dst: ERR_print_errors
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:302,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:303,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:304,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:305,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:306,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:307,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 230
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 56
    functionDepth: 8
    functionLinenumber: 56
    functionLinenumberEnd: 309
    functionName: asn1parse_main
    functionSourceFile: /src/openssl-1.1.1g/apps/asn1pars.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_get
    - sk_OPENSSL_STRING_free
    - PEM_read_bio
    - STACK_OF
    - OBJ_create_objects
    - ASN1_tag2str
    - do_generate
    - BUF_MEM_new
    - ASN1_item_print
    - ASN1_item_free
    - d2i_ASN1_TYPE
    - bio_open_default
    - ASN1_TYPE_free
    - ASN1_ITEM_get
    - sk_OPENSSL_STRING_new_null
    - OPENSSL_free
    - opt_arg
    - sk_OPENSSL_STRING_value
    - BIO_puts
    - opt_next
    - BIO_free
    - BIO_push
    - ASN1_ITEM_lookup
    - BIO_read
    - ERR_print_errors
    - BUF_MEM_free
    - sk_OPENSSL_STRING_num
    - opt_help
    - sk_OPENSSL_STRING_push
    - ASN1_item_d2i
    - BIO_write
    - opt_num_rest
    - strtol
    - BIO_f_base64
    - ASN1_parse_dump
    - BIO_printf
    - opt_format
    - opt_init
    - BUF_MEM_grow
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int asn1parse_main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: app_load_config
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:319,1
    - Dst: NCONF_get_string
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:322,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:324,1
    - Dst: ASN1_generate_nconf
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:329,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:330,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:336,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:341,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:346,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:348,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:352,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-1.1.1g/apps/asn1pars.c:353,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - genstr
    - genconf
    - buf
    argTypes:
    - char*
    - char*
    - BUF_MEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 311
    functionDepth: 5
    functionLinenumber: 311
    functionLinenumberEnd: 355
    functionName: do_generate
    functionSourceFile: /src/openssl-1.1.1g/apps/asn1pars.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - app_load_config
    - NCONF_free
    - i2d_ASN1_TYPE
    - BIO_printf
    - ASN1_TYPE_free
    - BUF_MEM_grow
    - ASN1_generate_nconf
    linkageType: ''
    returnType: int
    signature: int do_generate(char *genstr, const char *genconf, BUF_MEM *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - kstruct
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: EVP_C_DATA
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 77
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_C_DATA(kstruct, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: BLOCK_CIPHER_ecb_loop
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_ecb_loop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - cname
    - ','
    - cprefix
    - ','
    - kstruct
    - ','
    - ksched
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: BLOCK_CIPHER_func_ecb
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_func_ecb(cname, cprefix, kstruct, ksched)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - cname
    - ','
    - cprefix
    - ','
    - cbits
    - ','
    - kstruct
    - ','
    - ksched
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: BLOCK_CIPHER_func_ofb
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_func_ofb(cname, cprefix, cbits, kstruct, ksched)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - cname
    - ','
    - cprefix
    - ','
    - kstruct
    - ','
    - ksched
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 216
    functionName: BLOCK_CIPHER_func_cbc
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_func_cbc(cname, cprefix, kstruct, ksched)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - cname
    - ','
    - cprefix
    - ','
    - cbits
    - ','
    - kstruct
    - ','
    - ksched
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 240
    functionName: BLOCK_CIPHER_func_cfb
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_func_cfb(cname, cprefix, cbits, kstruct, ksched)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - cname
    - ','
    - cprefix
    - ','
    - cbits
    - ','
    - kstruct
    - ','
    - ksched
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: BLOCK_CIPHER_all_funcs
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_all_funcs(cname, cprefix, cbits, kstruct, ksched)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 31
    argNames:
    - (
    - cname
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - kstruct
    - ','
    - nid
    - ','
    - block_size
    - ','
    - key_len
    - ','
    - iv_len
    - ','
    - flags
    - ','
    - init_key
    - ','
    - cleanup
    - ','
    - set_asn1
    - ','
    - get_asn1
    - ','
    - ctrl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 262
    functionName: BLOCK_CIPHER_def1
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "BLOCK_CIPHER_def1(cname, nmode, mode, MODE, kstruct, nid, block_size,
      \\\n                          key_len, iv_len, flags, init_key, cleanup, \\\n
      \                         set_asn1, get_asn1, ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - cname
    - ','
    - kstruct
    - ','
    - nid
    - ','
    - block_size
    - ','
    - key_len
    - ','
    - iv_len
    - ','
    - flags
    - ','
    - init_key
    - ','
    - cleanup
    - ','
    - set_asn1
    - ','
    - get_asn1
    - ','
    - ctrl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: BLOCK_CIPHER_def_cbc
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "BLOCK_CIPHER_def_cbc(cname, kstruct, nid, block_size, key_len, \\\n
      \                            iv_len, flags, init_key, cleanup, set_asn1, \\\n
      \                            get_asn1, ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - cname
    - ','
    - kstruct
    - ','
    - nid
    - ','
    - key_len
    - ','
    - iv_len
    - ','
    - cbits
    - ','
    - flags
    - ','
    - init_key
    - ','
    - cleanup
    - ','
    - set_asn1
    - ','
    - get_asn1
    - ','
    - ctrl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: BLOCK_CIPHER_def_cfb
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "BLOCK_CIPHER_def_cfb(cname, kstruct, nid, key_len, \\\n                             iv_len,
      cbits, flags, init_key, cleanup, \\\n                             set_asn1,
      get_asn1, ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - cname
    - ','
    - kstruct
    - ','
    - nid
    - ','
    - key_len
    - ','
    - iv_len
    - ','
    - cbits
    - ','
    - flags
    - ','
    - init_key
    - ','
    - cleanup
    - ','
    - set_asn1
    - ','
    - get_asn1
    - ','
    - ctrl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: BLOCK_CIPHER_def_ofb
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "BLOCK_CIPHER_def_ofb(cname, kstruct, nid, key_len, \\\n                             iv_len,
      cbits, flags, init_key, cleanup, \\\n                             set_asn1,
      get_asn1, ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - cname
    - ','
    - kstruct
    - ','
    - nid
    - ','
    - block_size
    - ','
    - key_len
    - ','
    - flags
    - ','
    - init_key
    - ','
    - cleanup
    - ','
    - set_asn1
    - ','
    - get_asn1
    - ','
    - ctrl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: BLOCK_CIPHER_def_ecb
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "BLOCK_CIPHER_def_ecb(cname, kstruct, nid, block_size, key_len, \\\n
      \                            flags, init_key, cleanup, set_asn1, \\\n                             get_asn1,
      ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - cname
    - ','
    - kstruct
    - ','
    - nid
    - ','
    - block_size
    - ','
    - key_len
    - ','
    - iv_len
    - ','
    - cbits
    - ','
    - flags
    - ','
    - init_key
    - ','
    - cleanup
    - ','
    - set_asn1
    - ','
    - get_asn1
    - ','
    - ctrl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: BLOCK_CIPHER_defs
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "BLOCK_CIPHER_defs(cname, kstruct, \\\n                          nid,
      block_size, key_len, iv_len, cbits, flags, \\\n                          init_key,
      cleanup, set_asn1, get_asn1, ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 31
    argNames:
    - (
    - cname
    - ','
    - ksched
    - ','
    - cprefix
    - ','
    - kstruct
    - ','
    - nid
    - ','
    - block_size
    - ','
    - key_len
    - ','
    - iv_len
    - ','
    - cbits
    - ','
    - flags
    - ','
    - init_key
    - ','
    - cleanup
    - ','
    - set_asn1
    - ','
    - get_asn1
    - ','
    - ctrl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 367
    functionName: IMPLEMENT_BLOCK_CIPHER
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "IMPLEMENT_BLOCK_CIPHER(cname, ksched, cprefix, kstruct, nid, \\\n
      \                              block_size, key_len, iv_len, cbits, \\\n                               flags,
      init_key, \\\n                               cleanup, set_asn1, get_asn1, ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - cipher
    - ','
    - cprefix
    - ','
    - kstruct
    - ','
    - ksched
    - ','
    - keysize
    - ','
    - cbits
    - ','
    - iv_len
    - ','
    - fl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: IMPLEMENT_CFBR
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_CFBR(cipher,cprefix,kstruct,ksched,keysize,cbits,iv_len,fl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: declare_dh_bn
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/bn_dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_dh_bn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: ROTATE
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/md32_common.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: HOST_c2l
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/md32_common.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HOST_c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: HOST_l2c
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/md32_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HOST_l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: HOST_c2l
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/md32_common.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HOST_c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: HOST_l2c
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/md32_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HOST_l2c(l,c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:150,1
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:151,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:162,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:164,1
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:172,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 3
    argNames:
    - c
    - data_
    - len
    argTypes:
    - HASH_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 184
    functionName: HASH_UPDATE
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/md32_common.h
    functionUses: 0
    functionsReached:
    - memset
    - HASH_BLOCK_DATA_ORDER
    - memcpy
    linkageType: ''
    returnType: int
    signature: int HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - HASH_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: HASH_TRANSFORM
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/md32_common.h
    functionUses: 0
    functionsReached:
    - HASH_BLOCK_DATA_ORDER
    linkageType: ''
    returnType: void
    signature: void HASH_TRANSFORM(HASH_CTX *c, const unsigned char *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:200,1
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:202,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:204,1
    - Dst: HOST_l2c
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:208,1
    - Dst: HOST_l2c
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:209,1
    - Dst: HOST_l2c
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:211,1
    - Dst: HOST_l2c
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:212,1
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:215,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:217,1
    - Dst: HASH_MAKE_STRING
      Src: /src/openssl-1.1.1g/include/crypto/md32_common.h:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - HASH_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 226
    functionName: HASH_FINAL
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/md32_common.h
    functionUses: 0
    functionsReached:
    - HASH_MAKE_STRING
    - HOST_l2c
    - memset
    - HASH_BLOCK_DATA_ORDER
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int HASH_FINAL(unsigned char *md, HASH_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: ossl_toascii
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_toascii(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: ossl_fromascii
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_fromascii(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: ossl_isalnum
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isalnum(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: ossl_isalpha
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isalpha(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ossl_isascii
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isascii(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: ossl_isascii
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isascii(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: ossl_isblank
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isblank(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: ossl_iscntrl
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_iscntrl(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: ossl_isdigit
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isdigit(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ossl_isgraph
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isgraph(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: ossl_islower
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_islower(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: ossl_isprint
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isprint(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: ossl_ispunct
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_ispunct(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: ossl_isspace
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isspace(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: ossl_isupper
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isupper(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: ossl_isxdigit
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isxdigit(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: ossl_isbase64
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isbase64(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: ossl_isasn1print
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/ctype.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_isasn1print(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: CHACHA_U8TOU32
    functionSourceFile: /src/openssl-1.1.1g/include/crypto/chacha.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHACHA_U8TOU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: OSSL_NELEM
    functionSourceFile: /src/openssl-1.1.1g/include/internal/nelem.h
    functionUses: 158
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_NELEM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - init
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: DEFINE_RUN_ONCE
    functionSourceFile: /src/openssl-1.1.1g/include/internal/thread_once.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_RUN_ONCE(init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - init
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: DECLARE_RUN_ONCE
    functionSourceFile: /src/openssl-1.1.1g/include/internal/thread_once.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_RUN_ONCE(init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - init
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/include/internal/thread_once.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_RUN_ONCE_STATIC(init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - initalt
    - ','
    - init
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-1.1.1g/include/internal/thread_once.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_RUN_ONCE_STATIC_ALT(initalt, init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - once
    - ','
    - init
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: RUN_ONCE
    functionSourceFile: /src/openssl-1.1.1g/include/internal/thread_once.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUN_ONCE(once, init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - once
    - ','
    - initalt
    - ','
    - init
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: RUN_ONCE_ALT
    functionSourceFile: /src/openssl-1.1.1g/include/internal/thread_once.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUN_ONCE_ALT(once, initalt, init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: tsan_load
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_load(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: tsan_store
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_store(ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: tsan_counter
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_counter(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: tsan_decr
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_decr(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: tsan_ld_acq
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_ld_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: tsan_st_rel
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_st_rel(ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: tsan_load
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_load(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: tsan_store
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_store(ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: tsan_counter
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_counter(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: tsan_decr
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_decr(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: tsan_ld_acq
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_ld_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: tsan_st_rel
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_st_rel(ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: tsan_load
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_load(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: tsan_store
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_store(ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: tsan_load
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_load(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: tsan_store
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_store(ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: tsan_load
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_load(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: tsan_store
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_store(ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: tsan_counter
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_counter(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: tsan_decr
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_decr(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: tsan_counter
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_counter(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: tsan_decr
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_decr(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: tsan_ld_acq
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_ld_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: tsan_st_rel
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_st_rel(ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: tsan_load
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_load(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: tsan_store
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_store(ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: tsan_counter
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_counter(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: tsan_decr
    functionSourceFile: /src/openssl-1.1.1g/include/internal/tsan_assist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsan_decr(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - t
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: socket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: socket(d,t,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - f
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: accept
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: accept(s,f,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: get_last_socket_error
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_last_socket_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: clear_socket_error
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_socket_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: get_last_socket_error
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_last_socket_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: clear_socket_error
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_socket_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: readsocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readsocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: writesocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writesocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: closesocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: closesocket(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: readsocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readsocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: writesocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writesocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: ioctlsocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioctlsocket(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: closesocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: closesocket(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: readsocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readsocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: writesocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writesocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: ioctlsocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioctlsocket(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: closesocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: closesocket(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: readsocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readsocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: writesocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writesocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: ioctlsocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioctlsocket(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: closesocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: closesocket(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: readsocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readsocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: writesocket
    functionSourceFile: /src/openssl-1.1.1g/include/internal/sockets.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writesocket(s,b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: ossl_assert
    functionSourceFile: /src/openssl-1.1.1g/include/internal/cryptlib.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_assert(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_die
      Src: /src/openssl-1.1.1g/include/internal/cryptlib.h:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - expr
    - exprstr
    - file
    - line
    argTypes:
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: ossl_assert_int
    functionSourceFile: /src/openssl-1.1.1g/include/internal/cryptlib.h
    functionUses: 0
    functionsReached:
    - OPENSSL_die
    linkageType: ''
    returnType: __owur
    signature: "__owur ossl_assert_int(int expr, const char *exprstr,\n                                              const
      char *file, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: ossl_assert
    functionSourceFile: /src/openssl-1.1.1g/include/internal/cryptlib.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_assert(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: DECIMAL_SIZE
    functionSourceFile: /src/openssl-1.1.1g/include/internal/cryptlib.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECIMAL_SIZE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: HEX_SIZE
    functionSourceFile: /src/openssl-1.1.1g/include/internal/cryptlib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEX_SIZE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add_explicit
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - int*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: CRYPTO_UP_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 18
    functionsReached:
    - atomic_fetch_add_explicit
    linkageType: ''
    returnType: int
    signature: int CRYPTO_UP_REF(_Atomic int *val, int *ret, void *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_sub_explicit
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:50,1
    - Dst: atomic_thread_fence
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - int*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: CRYPTO_DOWN_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 15
    functionsReached:
    - atomic_fetch_sub_explicit
    - atomic_thread_fence
    linkageType: ''
    returnType: int
    signature: int CRYPTO_DOWN_REF(_Atomic int *val, int *ret, void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - int*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: CRYPTO_UP_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 18
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: int
    signature: int CRYPTO_UP_REF(int *val, int *ret, void *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_sub
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:70,1
    - Dst: __atomic_thread_fence
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - int*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: CRYPTO_DOWN_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 15
    functionsReached:
    - __atomic_fetch_sub
    - __atomic_thread_fence
    linkageType: ''
    returnType: int
    signature: int CRYPTO_DOWN_REF(int *val, int *ret, void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedExchangeAdd_nf
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - int*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: CRYPTO_UP_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 18
    functionsReached:
    - _InterlockedExchangeAdd_nf
    linkageType: ''
    returnType: int
    signature: int CRYPTO_UP_REF(volatile int *val, int *ret, void *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedExchangeAdd_nf
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:96,1
    - Dst: __dmb
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - int*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: CRYPTO_DOWN_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 15
    functionsReached:
    - __dmb
    - _InterlockedExchangeAdd_nf
    linkageType: ''
    returnType: int
    signature: int CRYPTO_DOWN_REF(volatile int *val, int *ret, void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedExchangeAdd
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - int*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: CRYPTO_UP_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 18
    functionsReached:
    - _InterlockedExchangeAdd
    linkageType: ''
    returnType: int
    signature: int CRYPTO_UP_REF(volatile int *val, int *ret, void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedExchangeAdd
      Src: /src/openssl-1.1.1g/include/internal/refcount.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - int*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: CRYPTO_DOWN_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 15
    functionsReached:
    - _InterlockedExchangeAdd
    linkageType: ''
    returnType: int
    signature: int CRYPTO_DOWN_REF(volatile int *val, int *ret, void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - ret
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: CRYPTO_UP_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_UP_REF(val, ret, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - ret
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: CRYPTO_DOWN_REF
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_DOWN_REF(val, ret, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - test
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: REF_ASSERT_ISNT
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REF_ASSERT_ISNT(test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: REF_PRINT_COUNT
    functionSourceFile: /src/openssl-1.1.1g/include/internal/refcount.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REF_PRINT_COUNT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: constant_time_msb
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: ossl_inline unsigned constant_time_msb(unsigned int a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: constant_time_msb_32
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_msb_32(uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: constant_time_msb_64
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_msb_64(uint64_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: constant_time_msb_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_msb_s(size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_msb
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: constant_time_lt
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 3
    functionsReached:
    - constant_time_msb
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "ossl_inline unsigned constant_time_lt(unsigned int a,\n                                                 unsigned
      int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_msb_s
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: constant_time_lt_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_msb_s
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_lt_s(size_t a, size_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_lt
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: constant_time_lt_8
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_lt
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "ossl_inline unsigned constant_time_lt_8(unsigned int a,\n                                                    unsigned
      int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_msb_64
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: constant_time_lt_64
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_msb_64
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_lt_64(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_lt
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: constant_time_ge
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 5
    functionsReached:
    - constant_time_lt
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "ossl_inline unsigned constant_time_ge(unsigned int a,\n                                                 unsigned
      int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_lt_s
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: constant_time_ge_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_lt_s
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_ge_s(size_t a, size_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_ge
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: constant_time_ge_8
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_ge
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "ossl_inline unsigned constant_time_ge_8(unsigned int a,\n                                                    unsigned
      int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_ge_s
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: constant_time_ge_8_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_ge_s
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: ossl_inline unsigned constant_time_ge_8_s(size_t a, size_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_msb
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: constant_time_is_zero
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 4
    functionsReached:
    - constant_time_msb
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: ossl_inline unsigned constant_time_is_zero(unsigned int a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_msb_s
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: constant_time_is_zero_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 1
    functionsReached:
    - constant_time_msb_s
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_is_zero_s(size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: constant_time_is_zero_8
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 1
    functionsReached:
    - constant_time_is_zero
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: ossl_inline unsigned constant_time_is_zero_8(unsigned int a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_msb_32
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: constant_time_is_zero_32
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 1
    functionsReached:
    - constant_time_msb_32
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_is_zero_32(uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_is_zero
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: constant_time_eq
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 3
    functionsReached:
    - constant_time_is_zero
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "ossl_inline unsigned constant_time_eq(unsigned int a,\n                                                 unsigned
      int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_is_zero_s
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: constant_time_eq_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 1
    functionsReached:
    - constant_time_is_zero_s
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_eq_s(size_t a, size_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_eq
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: constant_time_eq_8
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_eq
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "ossl_inline unsigned constant_time_eq_8(unsigned int a,\n                                                    unsigned
      int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_eq_s
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: constant_time_eq_8_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_eq_s
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: ossl_inline unsigned constant_time_eq_8_s(size_t a, size_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_eq
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: constant_time_eq_int
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 4
    functionsReached:
    - constant_time_eq
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: ossl_inline unsigned constant_time_eq_int(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_eq_8
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: constant_time_eq_int_8
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 1
    functionsReached:
    - constant_time_eq_8
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: ossl_inline unsigned constant_time_eq_int_8(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: value_barrier
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: ossl_inline unsigned value_barrier(unsigned int a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: value_barrier_32
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline value_barrier_32(uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: value_barrier_64
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline value_barrier_64(uint64_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 268
    functionName: value_barrier_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline value_barrier_s(size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_barrier
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:274,1
    - Dst: value_barrier
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: constant_time_select
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 3
    functionsReached:
    - value_barrier
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "ossl_inline unsigned constant_time_select(unsigned int mask,\n                                                     unsigned
      int a,\n                                                     unsigned int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_barrier_s
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:281,1
    - Dst: value_barrier_s
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: constant_time_select_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 2
    functionsReached:
    - value_barrier_s
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline constant_time_select_s(size_t mask,\n                                                 size_t
      a,\n                                                 size_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: constant_time_select_8
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 4
    functionsReached:
    - constant_time_select
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "ossl_inline unsigned constant_time_select_8(unsigned char mask,\n
      \                                                       unsigned char a,\n                                                        unsigned
      char b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - unsigned int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: constant_time_select_int
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 6
    functionsReached:
    - constant_time_select
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline constant_time_select_int(unsigned int mask, int a,\n                                                int
      b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: constant_time_select_int_s
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_select
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline constant_time_select_int_s(size_t mask, int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_barrier_32
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:306,1
    - Dst: value_barrier_32
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: constant_time_select_32
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 2
    functionsReached:
    - value_barrier_32
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline constant_time_select_32(uint32_t mask, uint32_t a,\n                                                    uint32_t
      b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_barrier_64
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:312,1
    - Dst: value_barrier_64
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: constant_time_select_64
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 2
    functionsReached:
    - value_barrier_64
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline constant_time_select_64(uint64_t mask, uint64_t a,\n                                                    uint64_t
      b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: constant_time_cond_swap_32
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline constant_time_cond_swap_32(uint32_t mask, uint32_t *a,\n
      \                                                  uint32_t *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 353
    functionName: constant_time_cond_swap_64
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline constant_time_cond_swap_64(uint64_t mask, uint64_t *a,\n
      \                                                  uint64_t *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:371,1
    - Dst: constant_time_is_zero_s
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:375,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/include/internal/constant_time.h:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - out
    - table
    - rowsize
    - numrows
    - idx
    argTypes:
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 379
    functionName: constant_time_lookup
    functionSourceFile: /src/openssl-1.1.1g/include/internal/constant_time.h
    functionUses: 0
    functionsReached:
    - constant_time_select_8
    - constant_time_is_zero_s
    - memset
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline constant_time_lookup(void *out,\n                                             const
      void *table,\n                                             size_t rowsize,\n
      \                                            size_t numrows,\n                                             size_t
      idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dane
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: DANETLS_ENABLED
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_ENABLED(dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: DANETLS_USAGE_BIT
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_USAGE_BIT(u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dane
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: DANETLS_HAS_PKIX
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_HAS_PKIX(dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dane
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: DANETLS_HAS_DANE
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_HAS_DANE(dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dane
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: DANETLS_HAS_TA
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_HAS_TA(dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dane
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: DANETLS_HAS_EE
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_HAS_EE(dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dane
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: DANETLS_HAS_PKIX_TA
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_HAS_PKIX_TA(dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dane
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: DANETLS_HAS_PKIX_EE
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_HAS_PKIX_EE(dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dane
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: DANETLS_HAS_DANE_TA
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_HAS_DANE_TA(dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dane
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: DANETLS_HAS_DANE_EE
    functionSourceFile: /src/openssl-1.1.1g/include/internal/dane.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DANETLS_HAS_DANE_EE(dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: __MAXUINT__
    functionSourceFile: /src/openssl-1.1.1g/include/internal/numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MAXUINT__(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: __MAXINT__
    functionSourceFile: /src/openssl-1.1.1g/include/internal/numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MAXINT__(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: __MININT__
    functionSourceFile: /src/openssl-1.1.1g/include/internal/numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MININT__(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: __MAXUINT__
    functionSourceFile: /src/openssl-1.1.1g/include/internal/numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MAXUINT__(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: __MAXINT__
    functionSourceFile: /src/openssl-1.1.1g/include/internal/numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MAXINT__(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: __MININT__
    functionSourceFile: /src/openssl-1.1.1g/include/internal/numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MININT__(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: __MAXINT__
    functionSourceFile: /src/openssl-1.1.1g/include/internal/numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MAXINT__(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: __MAXUINT__
    functionSourceFile: /src/openssl-1.1.1g/include/internal/numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MAXUINT__(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: __MININT__
    functionSourceFile: /src/openssl-1.1.1g/include/internal/numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MININT__(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: BN_num_bytes
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bn.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_num_bytes(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: BN_one
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bn.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_one(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: BN_zero
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bn.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: BN_zero
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bn.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rem
    - ','
    - m
    - ','
    - d
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: BN_mod
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bn.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_mod(rem,m,d,ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 430
    functionName: BN_GF2m_sub
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_GF2m_sub(r, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: BN_GF2m_cmp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bn.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_GF2m_cmp(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - si
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: PKCS7_get_signed_attributes
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_get_signed_attributes(si)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - si
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: PKCS7_get_attributes
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_get_attributes(si)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: PKCS7_type_is_signed
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_type_is_signed(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: PKCS7_type_is_encrypted
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_type_is_encrypted(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: PKCS7_type_is_enveloped
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_type_is_enveloped(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: PKCS7_type_is_signedAndEnveloped
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_type_is_signedAndEnveloped(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: PKCS7_type_is_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_type_is_data(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: PKCS7_type_is_digest
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_type_is_digest(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: PKCS7_set_detached
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_set_detached(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: PKCS7_get_detached
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_get_detached(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p7
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: PKCS7_is_detached
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pkcs7.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7_is_detached(p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: OPENSSL_IMPLEMENT_GLOBAL
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/e_os2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_IMPLEMENT_GLOBAL(type,name,value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: OPENSSL_DECLARE_GLOBAL
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/e_os2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_DECLARE_GLOBAL(type,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: OPENSSL_GLOBAL_REF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/e_os2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_GLOBAL_REF(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: OPENSSL_IMPLEMENT_GLOBAL
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/e_os2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_IMPLEMENT_GLOBAL(type,name,value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: OPENSSL_DECLARE_GLOBAL
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/e_os2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_DECLARE_GLOBAL(type,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: OPENSSL_GLOBAL_REF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/e_os2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_GLOBAL_REF(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - pad
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: EVP_PKEY_CTX_set_rsa_padding
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_padding(ctx, pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - ppad
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: EVP_PKEY_CTX_get_rsa_padding
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_rsa_padding(ctx, ppad)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: EVP_PKEY_CTX_set_rsa_pss_saltlen
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(ctx, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - plen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: EVP_PKEY_CTX_get_rsa_pss_saltlen
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: EVP_PKEY_CTX_set_rsa_keygen_bits
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - pubexp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: EVP_PKEY_CTX_set_rsa_keygen_pubexp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - primes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: EVP_PKEY_CTX_set_rsa_keygen_primes
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_keygen_primes(ctx, primes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: EVP_PKEY_CTX_set_rsa_mgf1_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: EVP_PKEY_CTX_set_rsa_oaep_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - pmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: EVP_PKEY_CTX_get_rsa_mgf1_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - pmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: EVP_PKEY_CTX_get_rsa_oaep_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_rsa_oaep_md(ctx, pmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - l
    - ','
    - llen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: EVP_PKEY_CTX_set0_rsa_oaep_label
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, l, llen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: EVP_PKEY_CTX_get0_rsa_oaep_label
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: EVP_PKEY_CTX_set_rsa_pss_keygen_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_rsa_pss_keygen_md(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: RSA_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSA_set_app_data(s,arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: RSA_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSA_get_app_data(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: RSA_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSA_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - o
    - ','
    - k1
    - ','
    - k2
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: DES_ecb2_encrypt
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/des.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DES_ecb2_encrypt(i,o,k1,k2,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - i
    - ','
    - o
    - ','
    - l
    - ','
    - k1
    - ','
    - k2
    - ','
    - iv
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: DES_ede2_cbc_encrypt
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/des.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - i
    - ','
    - o
    - ','
    - l
    - ','
    - k1
    - ','
    - k2
    - ','
    - iv
    - ','
    - n
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: DES_ede2_cfb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/des.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - i
    - ','
    - o
    - ','
    - l
    - ','
    - k1
    - ','
    - k2
    - ','
    - iv
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: DES_ede2_ofb64_encrypt
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/des.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: RAND_cleanup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAND_cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: COMP_zlib_cleanup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/comp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMP_zlib_cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: d2i_DHparams_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_DHparams_fp(fp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: i2d_DHparams_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_DHparams_fp(fp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: d2i_DHparams_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_DHparams_bio(bp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: i2d_DHparams_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_DHparams_bio(bp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: d2i_DHxparams_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_DHxparams_fp(fp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: i2d_DHxparams_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_DHxparams_fp(fp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: d2i_DHxparams_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_DHxparams_bio(bp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: i2d_DHxparams_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_DHxparams_bio(bp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: DH_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DH_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: EVP_PKEY_CTX_set_dh_paramgen_prime_len
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: EVP_PKEY_CTX_set_dh_paramgen_subprime_len
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: EVP_PKEY_CTX_set_dh_paramgen_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - gen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: EVP_PKEY_CTX_set_dh_paramgen_generator
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - gen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: EVP_PKEY_CTX_set_dh_rfc5114
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_rfc5114(ctx, gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - gen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: EVP_PKEY_CTX_set_dhx_rfc5114
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dhx_rfc5114(ctx, gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: EVP_PKEY_CTX_set_dh_nid
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_nid(ctx, nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - pad
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: EVP_PKEY_CTX_set_dh_pad
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_pad(ctx, pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - kdf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: EVP_PKEY_CTX_set_dh_kdf_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_kdf_type(ctx, kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: EVP_PKEY_CTX_get_dh_kdf_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_dh_kdf_type(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - oid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: EVP_PKEY_CTX_set0_dh_kdf_oid
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set0_dh_kdf_oid(ctx, oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - poid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: EVP_PKEY_CTX_get0_dh_kdf_oid
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get0_dh_kdf_oid(ctx, poid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: EVP_PKEY_CTX_set_dh_kdf_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_kdf_md(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - pmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: EVP_PKEY_CTX_get_dh_kdf_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_dh_kdf_md(ctx, pmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: EVP_PKEY_CTX_set_dh_kdf_outlen
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - plen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: EVP_PKEY_CTX_get_dh_kdf_outlen
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_dh_kdf_outlen(ctx, plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - p
    - ','
    - plen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: EVP_PKEY_CTX_set0_dh_kdf_ukm
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set0_dh_kdf_ukm(ctx, p, plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: EVP_PKEY_CTX_get0_dh_kdf_ukm
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get0_dh_kdf_ukm(ctx, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: IMPLEMENT_PEM_read_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_read_fp(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: IMPLEMENT_PEM_write_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_fp(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: IMPLEMENT_PEM_write_fp_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_fp_const(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: IMPLEMENT_PEM_write_cb_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: IMPLEMENT_PEM_write_cb_fp_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: IMPLEMENT_PEM_read_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_read_bio(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: IMPLEMENT_PEM_write_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_bio(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: IMPLEMENT_PEM_write_bio_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_bio_const(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: IMPLEMENT_PEM_write_cb_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: IMPLEMENT_PEM_write_cb_bio_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: IMPLEMENT_PEM_write
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: IMPLEMENT_PEM_write_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_const(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: IMPLEMENT_PEM_write_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_cb(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: IMPLEMENT_PEM_write_cb_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_write_cb_const(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: IMPLEMENT_PEM_read
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_read(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: IMPLEMENT_PEM_rw
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_rw(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: IMPLEMENT_PEM_rw_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_rw_const(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: IMPLEMENT_PEM_rw_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_rw_cb(name, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: DECLARE_PEM_read_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_read_fp(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: DECLARE_PEM_write_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_write_fp(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: DECLARE_PEM_write_fp_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_write_fp_const(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: DECLARE_PEM_write_cb_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_write_cb_fp(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: DECLARE_PEM_read_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_read_bio(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: DECLARE_PEM_write_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_write_bio(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: DECLARE_PEM_write_bio_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_write_bio_const(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: DECLARE_PEM_write_cb_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_write_cb_bio(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: DECLARE_PEM_write
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_write(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: DECLARE_PEM_write_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_write_const(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: DECLARE_PEM_write_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_write_cb(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: DECLARE_PEM_read
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_read(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: DECLARE_PEM_rw
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_rw(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: DECLARE_PEM_rw_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_rw_const(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: DECLARE_PEM_rw_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/pem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PEM_rw_cb(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: STACK_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/safestack.h
    functionUses: 184
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_OF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t1
    - ','
    - t2
    - ','
    - t3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 128
    functionName: SKM_DEFINE_STACK_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/safestack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKM_DEFINE_STACK_OF(t1, t2, t3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t1
    - ','
    - t2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: DEFINE_SPECIAL_STACK_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/safestack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SPECIAL_STACK_OF(t1, t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: DEFINE_STACK_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/safestack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_STACK_OF(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t1
    - ','
    - t2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: DEFINE_SPECIAL_STACK_OF_CONST
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/safestack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SPECIAL_STACK_OF_CONST(t1, t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: DEFINE_STACK_OF_CONST
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/safestack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_STACK_OF_CONST(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkey
    - ','
    - rsa
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: EVP_PKEY_assign_RSA
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_assign_RSA(pkey,rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkey
    - ','
    - dsa
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 416
    functionName: EVP_PKEY_assign_DSA
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_assign_DSA(pkey,dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkey
    - ','
    - dh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: EVP_PKEY_assign_DH
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_assign_DH(pkey,dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkey
    - ','
    - eckey
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 426
    functionName: EVP_PKEY_assign_EC_KEY
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_assign_EC_KEY(pkey,eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkey
    - ','
    - shkey
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: EVP_PKEY_assign_SIPHASH
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_assign_SIPHASH(pkey,shkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkey
    - ','
    - polykey
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: EVP_PKEY_assign_POLY1305
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_assign_POLY1305(pkey,polykey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 439
    functionName: EVP_get_digestbynid
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_get_digestbynid(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: EVP_get_digestbyobj
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_get_digestbyobj(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: EVP_get_cipherbynid
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_get_cipherbynid(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: EVP_get_cipherbyobj
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_get_cipherbyobj(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: EVP_MD_nid
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_nid(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: EVP_MD_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_name(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: EVP_MD_CTX_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_CTX_size(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 459
    functionName: EVP_MD_CTX_block_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_CTX_block_size(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: EVP_MD_CTX_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_CTX_type(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: EVP_CIPHER_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_CIPHER_name(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 472
    functionName: EVP_CIPHER_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_CIPHER_mode(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: EVP_CIPHER_CTX_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_CIPHER_CTX_type(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 493
    functionName: EVP_CIPHER_CTX_flags
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_CIPHER_CTX_flags(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 495
    functionName: EVP_CIPHER_CTX_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_CIPHER_CTX_mode(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: EVP_ENCODE_LENGTH
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_ENCODE_LENGTH(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: EVP_DECODE_LENGTH
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_DECODE_LENGTH(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: EVP_SignInit_ex
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_SignInit_ex(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    functionName: EVP_SignInit
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_SignInit(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: EVP_SignUpdate
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_SignUpdate(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: EVP_VerifyInit_ex
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_VerifyInit_ex(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: EVP_VerifyInit
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_VerifyInit(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: EVP_VerifyUpdate
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_VerifyUpdate(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 506
    functionName: EVP_OpenUpdate
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_OpenUpdate(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: EVP_SealUpdate
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_SealUpdate(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: EVP_DigestSignUpdate
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_DigestSignUpdate(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: EVP_DigestVerifyUpdate
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_DigestVerifyUpdate(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: BIO_set_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_md(b,md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - mdp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: BIO_get_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_md(b,mdp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - mdcp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 518
    functionName: BIO_get_md_ctx
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_md_ctx(b,mdcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - mdcp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: BIO_set_md_ctx
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_md_ctx(b,mdcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: BIO_get_cipher_status
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_cipher_status(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - c_pp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: BIO_get_cipher_ctx
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_cipher_ctx(b,c_pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - alias
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 530
    functionName: EVP_add_cipher_alias
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_add_cipher_alias(n,alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - alias
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: EVP_add_digest_alias
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_add_digest_alias(n,alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - alias
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 534
    functionName: EVP_delete_cipher_alias
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_delete_cipher_alias(alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - alias
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 536
    functionName: EVP_delete_digest_alias
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_delete_digest_alias(alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 542
    functionName: EVP_MD_CTX_create
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_CTX_create()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 543
    functionName: EVP_MD_CTX_init
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_CTX_init(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 544
    functionName: EVP_MD_CTX_destroy
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_CTX_destroy(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 677
    functionName: EVP_CIPHER_CTX_init
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_CIPHER_CTX_init(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 678
    functionName: EVP_CIPHER_CTX_cleanup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_CIPHER_CTX_cleanup(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 947
    functionName: OPENSSL_add_all_algorithms_conf
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_add_all_algorithms_conf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 950
    functionName: OPENSSL_add_all_algorithms_noconf
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_add_all_algorithms_noconf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 953
    functionName: OpenSSL_add_all_algorithms
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenSSL_add_all_algorithms()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 955
    functionName: OpenSSL_add_all_algorithms
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenSSL_add_all_algorithms()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 959
    functionName: OpenSSL_add_all_ciphers
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenSSL_add_all_ciphers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 961
    functionName: OpenSSL_add_all_digests
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenSSL_add_all_digests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 963
    functionName: EVP_cleanup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1285
    functionName: EVP_PKEY_CTX_set_signature_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_signature_md(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - pmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1289
    functionName: EVP_PKEY_CTX_get_signature_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_signature_md(ctx, pmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - key
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1293
    functionName: EVP_PKEY_CTX_set_mac_key
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/evp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_mac_key(ctx, key, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: d2i_DSAparams_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_DSAparams_fp(fp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: i2d_DSAparams_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_DSAparams_fp(fp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: d2i_DSAparams_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dsa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_DSAparams_bio(bp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: i2d_DSAparams_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_DSAparams_bio(bp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: DSA_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DSA_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n
    - ','
    - callback
    - ','
    - cb_arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: DSA_is_prime
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DSA_is_prime(n, callback, cb_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - nbits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_bits
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - qbits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_q_bits
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dsa_paramgen_q_bits(ctx, qbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/dsa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_dsa_paramgen_md(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: DECLARE_ASN1_FUNCTIONS
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_FUNCTIONS(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: DECLARE_ASN1_ALLOC_FUNCTIONS
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_ALLOC_FUNCTIONS(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: DECLARE_ASN1_FUNCTIONS_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_FUNCTIONS_name(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - itname
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: DECLARE_ASN1_FUNCTIONS_fname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_FUNCTIONS_fname(type, itname, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - itname
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: DECLARE_ASN1_ENCODE_FUNCTIONS
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: DECLARE_ASN1_ENCODE_FUNCTIONS_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: DECLARE_ASN1_NDEF_FUNCTION
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_NDEF_FUNCTION(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: DECLARE_ASN1_FUNCTIONS_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_FUNCTIONS_const(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: DECLARE_ASN1_ALLOC_FUNCTIONS_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: DECLARE_ASN1_PRINT_FUNCTION
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_PRINT_FUNCTION(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: DECLARE_ASN1_PRINT_FUNCTION_fname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: D2I_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D2I_OF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: I2D_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I2D_OF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: I2D_OF_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I2D_OF_const(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - d2i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: CHECKED_D2I_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_D2I_OF(type, d2i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - i2d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: CHECKED_I2D_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_I2D_OF(type, i2d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - xnew
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: CHECKED_NEW_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_NEW_OF(type, xnew)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: CHECKED_PTR_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_PTR_OF(type, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: CHECKED_PPTR_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_PPTR_OF(type, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    functionName: TYPEDEF_D2I_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPEDEF_D2I_OF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: TYPEDEF_I2D_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPEDEF_I2D_OF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: TYPEDEF_D2I2D_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPEDEF_D2I2D_OF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: ASN1_ITEM_ptr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_ptr(iptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: ASN1_ITEM_ref
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_ref(iptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ref
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: ASN1_ITEM_rptr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_rptr(ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: DECLARE_ASN1_ITEM
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_ITEM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: ASN1_ITEM_ptr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_ptr(iptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: ASN1_ITEM_ref
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_ref(iptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ref
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: ASN1_ITEM_rptr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_rptr(ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: DECLARE_ASN1_ITEM
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ASN1_ITEM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - i2d
    - ','
    - d2i
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: ASN1_dup_of
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_dup_of(type,i2d,d2i,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - i2d
    - ','
    - d2i
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 699
    functionName: ASN1_dup_of_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_dup_of_const(type,i2d,d2i,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 705
    functionName: M_ASN1_new_of
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M_ASN1_new_of(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 707
    functionName: M_ASN1_free_of
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M_ASN1_free_of(x, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - xnew
    - ','
    - d2i
    - ','
    - in
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 716
    functionName: ASN1_d2i_fp_of
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_d2i_fp_of(type,xnew,d2i,in,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - i2d
    - ','
    - out
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: ASN1_i2d_fp_of
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_i2d_fp_of(type,i2d,out,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - i2d
    - ','
    - out
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: ASN1_i2d_fp_of_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_i2d_fp_of_const(type,i2d,out,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - xnew
    - ','
    - d2i
    - ','
    - in
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 743
    functionName: ASN1_d2i_bio_of
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_d2i_bio_of(type,xnew,d2i,in,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - i2d
    - ','
    - out
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 751
    functionName: ASN1_i2d_bio_of
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_i2d_bio_of(type,i2d,out,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - i2d
    - ','
    - out
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 756
    functionName: ASN1_i2d_bio_of_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_i2d_bio_of_const(type,i2d,out,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: X509V3_conf_err
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509v3.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509V3_conf_err(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: X509V3_set_ctx_test
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509v3.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509V3_set_ctx_test(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: X509V3_set_ctx_nodb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509v3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509V3_set_ctx_nodb(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nid
    - ','
    - table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: EXT_BITSTRING
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509v3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT_BITSTRING(nid, table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: EXT_IA5STRING
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509v3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT_IA5STRING(nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: d2i_OCSP_REQUEST_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_OCSP_REQUEST_bio(bp,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: d2i_OCSP_RESPONSE_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_OCSP_RESPONSE_bio(bp,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - bp
    - ','
    - x
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: PEM_read_bio_OCSP_REQUEST
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEM_read_bio_OCSP_REQUEST(bp,x,cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - bp
    - ','
    - x
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: PEM_read_bio_OCSP_RESPONSE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEM_read_bio_OCSP_RESPONSE(bp,x,cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: PEM_write_bio_OCSP_REQUEST
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEM_write_bio_OCSP_REQUEST(bp,o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: PEM_write_bio_OCSP_RESPONSE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEM_write_bio_OCSP_RESPONSE(bp,o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: i2d_OCSP_RESPONSE_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_OCSP_RESPONSE_bio(bp,o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: i2d_OCSP_REQUEST_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_OCSP_REQUEST_bio(bp,o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - data
    - ','
    - type
    - ','
    - md
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: ASN1_BIT_STRING_digest
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_BIT_STRING_digest(data,type,md,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: OCSP_CERTSTATUS_dup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ocsp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_CERTSTATUS_dup(cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: OPENSSL_malloc_init
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_malloc_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: OPENSSL_malloc
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 304
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_malloc(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: OPENSSL_zalloc
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 182
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_zalloc(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: OPENSSL_realloc
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_realloc(addr, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - addr
    - ','
    - old_num
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: OPENSSL_clear_realloc
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_clear_realloc(addr, old_num, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: OPENSSL_clear_free
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 78
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_clear_free(addr, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: OPENSSL_free
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 760
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_free(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: OPENSSL_memdup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_memdup(str, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: OPENSSL_strdup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 96
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_strdup(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: OPENSSL_strndup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_strndup(str, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: OPENSSL_secure_malloc
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_secure_malloc(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: OPENSSL_secure_zalloc
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_secure_zalloc(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: OPENSSL_secure_free
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_secure_free(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: OPENSSL_secure_clear_free
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_secure_clear_free(addr, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: OPENSSL_secure_actual_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_secure_actual_size(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: OPENSSL_MALLOC_MAX_NELEMS
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_MALLOC_MAX_NELEMS(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: CRYPTO_cleanup_all_ex_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_cleanup_all_ex_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: CRYPTO_num_locks
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_num_locks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: CRYPTO_get_locking_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_get_locking_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: CRYPTO_get_add_lock_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_get_add_lock_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - threadid_func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: CRYPTO_THREADID_set_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_THREADID_set_callback(threadid_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: CRYPTO_THREADID_get_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_THREADID_get_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: CRYPTO_THREADID_cmp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_THREADID_cmp(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: CRYPTO_THREADID_hash
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_THREADID_hash(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: CRYPTO_get_id_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_get_id_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: CRYPTO_thread_id
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_thread_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: CRYPTO_get_dynlock_create_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_get_dynlock_create_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: CRYPTO_get_dynlock_lock_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_get_dynlock_lock_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: CRYPTO_get_dynlock_destroy_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTO_get_dynlock_destroy_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: OPENSSL_mem_debug_push
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_mem_debug_push(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: OPENSSL_mem_debug_pop
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_mem_debug_pop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - l
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: OpenSSLDie
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenSSLDie(f,l,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: OPENSSL_assert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/crypto.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_assert(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: EVP_PKEY_CTX_set_tls1_prf_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_tls1_prf_md(pctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pctx
    - ','
    - sec
    - ','
    - seclen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: EVP_PKEY_CTX_set1_tls1_prf_secret
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set1_tls1_prf_secret(pctx, sec, seclen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pctx
    - ','
    - seed
    - ','
    - seedlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: EVP_PKEY_CTX_add1_tls1_prf_seed
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, seed, seedlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: EVP_PKEY_CTX_set_hkdf_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_hkdf_md(pctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pctx
    - ','
    - salt
    - ','
    - saltlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: EVP_PKEY_CTX_set1_hkdf_salt
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set1_hkdf_salt(pctx, salt, saltlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pctx
    - ','
    - key
    - ','
    - keylen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: EVP_PKEY_CTX_set1_hkdf_key
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set1_hkdf_key(pctx, key, keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pctx
    - ','
    - info
    - ','
    - infolen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: EVP_PKEY_CTX_add1_hkdf_info
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_add1_hkdf_info(pctx, info, infolen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pctx
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: EVP_PKEY_CTX_hkdf_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_hkdf_mode(pctx, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pctx
    - ','
    - pass
    - ','
    - passlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: EVP_PKEY_CTX_set1_pbe_pass
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set1_pbe_pass(pctx, pass, passlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pctx
    - ','
    - salt
    - ','
    - saltlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: EVP_PKEY_CTX_set1_scrypt_salt
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set1_scrypt_salt(pctx, salt, saltlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pctx
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: EVP_PKEY_CTX_set_scrypt_N
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_scrypt_N(pctx, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pctx
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: EVP_PKEY_CTX_set_scrypt_r
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_scrypt_r(pctx, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pctx
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: EVP_PKEY_CTX_set_scrypt_p
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_scrypt_p(pctx, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pctx
    - ','
    - maxmem_bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: EVP_PKEY_CTX_set_scrypt_maxmem_bytes
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/kdf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_scrypt_maxmem_bytes(pctx, maxmem_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: TLS1_get_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS1_get_version(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: TLS1_get_client_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS1_get_client_version(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: SSL_set_tlsext_host_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tlsext_host_name(s,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: SSL_set_tlsext_debug_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tlsext_debug_callback(ssl, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: SSL_set_tlsext_debug_arg
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tlsext_debug_arg(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: SSL_get_tlsext_status_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_tlsext_status_type(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: SSL_set_tlsext_status_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tlsext_status_type(ssl, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: SSL_get_tlsext_status_exts
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_tlsext_status_exts(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: SSL_set_tlsext_status_exts
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tlsext_status_exts(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: SSL_get_tlsext_status_ids
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_tlsext_status_ids(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: SSL_set_tlsext_status_ids
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tlsext_status_ids(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: SSL_get_tlsext_status_ocsp_resp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_tlsext_status_ocsp_resp(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ssl
    - ','
    - arg
    - ','
    - arglen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: SSL_set_tlsext_status_ocsp_resp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: SSL_CTX_set_tlsext_servername_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tlsext_servername_callback(ctx, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: SSL_CTX_set_tlsext_servername_arg
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tlsext_servername_arg(ctx, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - keys
    - ','
    - keylen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: SSL_CTX_get_tlsext_ticket_keys
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - keys
    - ','
    - keylen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: SSL_CTX_set_tlsext_ticket_keys
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: SSL_CTX_get_tlsext_status_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_tlsext_status_cb(ssl, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: SSL_CTX_set_tlsext_status_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tlsext_status_cb(ssl, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: SSL_CTX_get_tlsext_status_arg
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_tlsext_status_arg(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: SSL_CTX_set_tlsext_status_arg
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tlsext_status_arg(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: SSL_CTX_set_tlsext_status_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tlsext_status_type(ssl, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: SSL_CTX_get_tlsext_status_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_tlsext_status_type(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: SSL_CTX_set_tlsext_ticket_key_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: SSL_get_dtlsext_heartbeat_pending
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_dtlsext_heartbeat_pending(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: SSL_set_dtlsext_heartbeat_no_requests
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_dtlsext_heartbeat_no_requests(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: SSL_get_tlsext_heartbeat_pending
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_tlsext_heartbeat_pending(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: SSL_set_tlsext_heartbeat_no_requests
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/tls1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tlsext_heartbeat_no_requests(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: DECLARE_DEPRECATED
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/opensslconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_DEPRECATED(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: DECLARE_DEPRECATED
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/opensslconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_DEPRECATED(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: DEPRECATEDIN_1_2_0
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/opensslconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATEDIN_1_2_0(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: DEPRECATEDIN_1_2_0
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/opensslconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATEDIN_1_2_0(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: DEPRECATEDIN_1_1_0
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/opensslconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATEDIN_1_1_0(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: DEPRECATEDIN_1_0_0
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/opensslconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATEDIN_1_0_0(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: DEPRECATEDIN_0_9_8
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/opensslconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATEDIN_0_9_8(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - o_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: DECLARE_LHASH_HASH_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_LHASH_HASH_FN(name, o_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - o_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: IMPLEMENT_LHASH_HASH_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LHASH_HASH_FN(name, o_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: LHASH_HASH_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LHASH_HASH_FN(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - o_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: DECLARE_LHASH_COMP_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_LHASH_COMP_FN(name, o_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - o_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: IMPLEMENT_LHASH_COMP_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LHASH_COMP_FN(name, o_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: LHASH_COMP_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LHASH_COMP_FN(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - o_type
    - ','
    - a_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: DECLARE_LHASH_DOALL_ARG_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - o_type
    - ','
    - a_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: IMPLEMENT_LHASH_DOALL_ARG_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: LHASH_DOALL_ARG_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LHASH_DOALL_ARG_FN(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: LHASH_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LHASH_OF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 179
    functionName: DEFINE_LHASH_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_LHASH_OF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - argtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: IMPLEMENT_LHASH_DOALL_ARG_CONST
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - argtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: IMPLEMENT_LHASH_DOALL_ARG
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LHASH_DOALL_ARG(type, argtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - argtype
    - ','
    - cbargtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: int_implement_lhash_doall
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/lhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: int_implement_lhash_doall(type, argtype, cbargtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 592
    functionName: SSL_CTX_set_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_mode(ctx,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 594
    functionName: SSL_CTX_clear_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_clear_mode(ctx,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 596
    functionName: SSL_CTX_get_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_mode(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 598
    functionName: SSL_clear_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_clear_mode(ssl,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 600
    functionName: SSL_set_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_mode(ssl,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: SSL_get_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_mode(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - mtu
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 604
    functionName: SSL_set_mtu
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_mtu(ssl, mtu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - mtu
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: DTLS_set_link_mtu
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_set_link_mtu(ssl, mtu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: DTLS_get_link_min_mtu
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_get_link_min_mtu(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: SSL_get_secure_renegotiation_support
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_secure_renegotiation_support(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 615
    functionName: SSL_heartbeat
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_heartbeat(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: SSL_CTX_set_cert_flags
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_cert_flags(ctx,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: SSL_set_cert_flags
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_cert_flags(s,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: SSL_CTX_clear_cert_flags
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_clear_cert_flags(ctx,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 625
    functionName: SSL_clear_cert_flags
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_clear_cert_flags(s,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 635
    functionName: SSL_CTX_set_msg_callback_arg
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_msg_callback_arg(ctx, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 636
    functionName: SSL_set_msg_callback_arg
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_msg_callback_arg(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 639
    functionName: SSL_get_extms_support
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_extms_support(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 686
    functionName: SSL_CTX_sess_number
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_number(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 688
    functionName: SSL_CTX_sess_connect
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_connect(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 690
    functionName: SSL_CTX_sess_connect_good
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_connect_good(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 692
    functionName: SSL_CTX_sess_connect_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_connect_renegotiate(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 694
    functionName: SSL_CTX_sess_accept
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_accept(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 696
    functionName: SSL_CTX_sess_accept_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_accept_renegotiate(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 698
    functionName: SSL_CTX_sess_accept_good
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_accept_good(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: SSL_CTX_sess_hits
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_hits(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    functionName: SSL_CTX_sess_cb_hits
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_cb_hits(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: SSL_CTX_sess_misses
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_misses(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: SSL_CTX_sess_timeouts
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_timeouts(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 708
    functionName: SSL_CTX_sess_cache_full
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_cache_full(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 902
    functionName: SSL_want_nothing
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_want_nothing(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 903
    functionName: SSL_want_read
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_want_read(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 904
    functionName: SSL_want_write
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_want_write(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 905
    functionName: SSL_want_x509_lookup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_want_x509_lookup(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 906
    functionName: SSL_want_async
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_want_async(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 907
    functionName: SSL_want_async_job
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_want_async_job(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 908
    functionName: SSL_want_client_hello_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_want_client_hello_cb(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 963
    functionName: SSL_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_app_data(s,arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 964
    functionName: SSL_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_app_data(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 966
    functionName: SSL_SESSION_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SESSION_set_app_data(s,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 967
    functionName: SSL_SESSION_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SESSION_get_app_data(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 968
    functionName: SSL_CTX_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_app_data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 970
    functionName: SSL_CTX_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_app_data(ctx,arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1073
    functionName: SSL_in_connect_init
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_in_connect_init(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1074
    functionName: SSL_in_accept_init
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_in_accept_init(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1107
    functionName: OpenSSL_add_ssl_algorithms
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenSSL_add_ssl_algorithms()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1108
    functionName: SSLeay_add_ssl_algorithms
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSLeay_add_ssl_algorithms()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1113
    functionName: SSL_get_cipher
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_cipher(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - np
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1115
    functionName: SSL_get_cipher_bits
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_cipher_bits(s,np)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1117
    functionName: SSL_get_cipher_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_cipher_version(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1119
    functionName: SSL_get_cipher_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_cipher_name(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1120
    functionName: SSL_get_time
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_time(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1121
    functionName: SSL_set_time
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_time(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1122
    functionName: SSL_get_timeout
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_timeout(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1123
    functionName: SSL_set_timeout
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_timeout(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - s_id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1125
    functionName: d2i_SSL_SESSION_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_SSL_SESSION_bio(bp,s_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - s_id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1126
    functionName: i2d_SSL_SESSION_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_SSL_SESSION_bio(bp,s_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1313
    functionName: DTLSv1_get_timeout
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLSv1_get_timeout(ssl, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1315
    functionName: DTLSv1_handle_timeout
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLSv1_handle_timeout(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1317
    functionName: SSL_num_renegotiations
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_num_renegotiations(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1319
    functionName: SSL_clear_num_renegotiations
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_clear_num_renegotiations(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1319
    functionDepth: 0
    functionLinenumber: 1319
    functionLinenumberEnd: 1321
    functionName: SSL_total_renegotiations
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_total_renegotiations(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - dh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1323
    functionName: SSL_CTX_set_tmp_dh
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tmp_dh(ctx,dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - ecdh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1325
    functionName: SSL_CTX_set_tmp_ecdh
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tmp_ecdh(ctx,ecdh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - onoff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1327
    functionName: SSL_CTX_set_dh_auto
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_dh_auto(ctx, onoff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - onoff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1329
    functionName: SSL_set_dh_auto
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_dh_auto(s, onoff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - dh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1331
    functionName: SSL_set_tmp_dh
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tmp_dh(ssl,dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - ecdh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1333
    functionName: SSL_set_tmp_ecdh
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tmp_ecdh(ssl,ecdh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - x509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1335
    functionName: SSL_CTX_add_extra_chain_cert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_add_extra_chain_cert(ctx,x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - px509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1337
    functionName: SSL_CTX_get_extra_chain_certs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_extra_chain_certs(ctx,px509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - px509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1339
    functionName: SSL_CTX_get_extra_chain_certs_only
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_extra_chain_certs_only(ctx,px509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1341
    functionName: SSL_CTX_clear_extra_chain_certs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_clear_extra_chain_certs(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - sk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1343
    functionName: SSL_CTX_set0_chain
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set0_chain(ctx,sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - sk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1345
    functionName: SSL_CTX_set1_chain
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_chain(ctx,sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - x509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1347
    functionName: SSL_CTX_add0_chain_cert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_add0_chain_cert(ctx,x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - x509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1349
    functionName: SSL_CTX_add1_chain_cert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_add1_chain_cert(ctx,x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - px509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1351
    functionName: SSL_CTX_get0_chain_certs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get0_chain_certs(ctx,px509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1353
    functionName: SSL_CTX_clear_chain_certs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_clear_chain_certs(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1355
    functionName: SSL_CTX_build_cert_chain
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_build_cert_chain(ctx, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - x509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1355
    functionDepth: 0
    functionLinenumber: 1355
    functionLinenumberEnd: 1357
    functionName: SSL_CTX_select_current_cert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_select_current_cert(ctx,x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1359
    functionName: SSL_CTX_set_current_cert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_current_cert(ctx, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1361
    functionName: SSL_CTX_set0_verify_cert_store
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set0_verify_cert_store(ctx,st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1363
    functionName: SSL_CTX_set1_verify_cert_store
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_verify_cert_store(ctx,st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1365
    functionName: SSL_CTX_set0_chain_cert_store
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set0_chain_cert_store(ctx,st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1367
    functionName: SSL_CTX_set1_chain_cert_store
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_chain_cert_store(ctx,st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - sk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1369
    functionName: SSL_set0_chain
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set0_chain(s,sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - sk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1371
    functionName: SSL_set1_chain
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_chain(s,sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - x509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1373
    functionName: SSL_add0_chain_cert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_add0_chain_cert(s,x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - x509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1375
    functionName: SSL_add1_chain_cert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_add1_chain_cert(s,x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - px509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1375
    functionDepth: 0
    functionLinenumber: 1375
    functionLinenumberEnd: 1377
    functionName: SSL_get0_chain_certs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get0_chain_certs(s,px509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1379
    functionName: SSL_clear_chain_certs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_clear_chain_certs(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1381
    functionName: SSL_build_cert_chain
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_build_cert_chain(s, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - x509
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1383
    functionName: SSL_select_current_cert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_select_current_cert(s,x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1385
    functionName: SSL_set_current_cert
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_current_cert(s,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1385
    functionDepth: 0
    functionLinenumber: 1385
    functionLinenumberEnd: 1387
    functionName: SSL_set0_verify_cert_store
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set0_verify_cert_store(s,st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1389
    functionName: SSL_set1_verify_cert_store
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_verify_cert_store(s,st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1391
    functionName: SSL_set0_chain_cert_store
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set0_chain_cert_store(s,st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1393
    functionName: SSL_set1_chain_cert_store
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_chain_cert_store(s,st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - glist
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1395
    functionName: SSL_get1_groups
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get1_groups(s, glist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - glist
    - ','
    - glistlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1395
    functionDepth: 0
    functionLinenumber: 1395
    functionLinenumberEnd: 1397
    functionName: SSL_CTX_set1_groups
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_groups(ctx, glist, glistlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1399
    functionName: SSL_CTX_set1_groups_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_groups_list(ctx, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - glist
    - ','
    - glistlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1401
    functionName: SSL_set1_groups
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_groups(s, glist, glistlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1403
    functionName: SSL_set1_groups_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_groups_list(s, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1403
    functionDepth: 0
    functionLinenumber: 1403
    functionLinenumberEnd: 1405
    functionName: SSL_get_shared_group
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_shared_group(s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - slist
    - ','
    - slistlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1407
    functionName: SSL_CTX_set1_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_sigalgs(ctx, slist, slistlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1409
    functionName: SSL_CTX_set1_sigalgs_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_sigalgs_list(ctx, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - slist
    - ','
    - slistlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1411
    functionName: SSL_set1_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_sigalgs(s, slist, slistlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1413
    functionName: SSL_set1_sigalgs_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_sigalgs_list(s, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - slist
    - ','
    - slistlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1415
    functionName: SSL_CTX_set1_client_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1417
    functionName: SSL_CTX_set1_client_sigalgs_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_client_sigalgs_list(ctx, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - slist
    - ','
    - slistlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1419
    functionName: SSL_set1_client_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_client_sigalgs(s, slist, slistlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1421
    functionName: SSL_set1_client_sigalgs_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_client_sigalgs_list(s, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - clist
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1423
    functionName: SSL_get0_certificate_types
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get0_certificate_types(s, clist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - clist
    - ','
    - clistlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1426
    functionName: SSL_CTX_set1_client_certificate_types
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - clist
    - ','
    - clistlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1428
    functionName: SSL_set1_client_certificate_types
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set1_client_certificate_types(s, clist, clistlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - pn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1430
    functionName: SSL_get_signature_nid
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_signature_nid(s, pn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - pn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1430
    functionDepth: 0
    functionLinenumber: 1430
    functionLinenumberEnd: 1432
    functionName: SSL_get_peer_signature_nid
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_peer_signature_nid(s, pn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - pk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1434
    functionName: SSL_get_peer_tmp_key
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_peer_tmp_key(s, pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - pk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1436
    functionName: SSL_get_tmp_key
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_tmp_key(s, pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - plst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1438
    functionName: SSL_get0_raw_cipherlist
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get0_raw_cipherlist(s, plst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - plst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: SSL_get0_ec_point_formats
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get0_ec_point_formats(s, plst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1442
    functionName: SSL_CTX_set_min_proto_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_min_proto_version(ctx, version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1444
    functionName: SSL_CTX_set_max_proto_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_max_proto_version(ctx, version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1446
    functionName: SSL_CTX_get_min_proto_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_min_proto_version(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1448
    functionName: SSL_CTX_get_max_proto_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_max_proto_version(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1450
    functionName: SSL_set_min_proto_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_min_proto_version(s, version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1450
    functionDepth: 0
    functionLinenumber: 1450
    functionLinenumberEnd: 1452
    functionName: SSL_set_max_proto_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_max_proto_version(s, version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1454
    functionName: SSL_get_min_proto_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_min_proto_version(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1456
    functionName: SSL_get_max_proto_version
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_max_proto_version(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - pk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1462
    functionName: SSL_get_server_tmp_key
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_server_tmp_key(s, pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1483
    functionName: SSL_CTX_need_tmp_RSA
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_need_tmp_RSA(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - rsa
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1484
    functionName: SSL_CTX_set_tmp_rsa
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tmp_rsa(ctx,rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1484
    functionDepth: 0
    functionLinenumber: 1484
    functionLinenumberEnd: 1485
    functionName: SSL_need_tmp_RSA
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_need_tmp_RSA(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - rsa
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1486
    functionName: SSL_set_tmp_rsa
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tmp_rsa(ssl,rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dummy
    - ','
    - onoff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1487
    functionName: SSL_CTX_set_ecdh_auto
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_ecdh_auto(dummy, onoff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dummy
    - ','
    - onoff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1488
    functionName: SSL_set_ecdh_auto
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_ecdh_auto(dummy, onoff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1493
    functionName: SSL_CTX_set_tmp_rsa_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_tmp_rsa_callback(ctx, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1494
    functionName: SSL_set_tmp_rsa_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_tmp_rsa_callback(ssl, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1612
    functionName: SSL_load_error_strings
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_load_error_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1958
    functionDepth: 0
    functionLinenumber: 1958
    functionLinenumberEnd: 1959
    functionName: SSL_library_init
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_library_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 2013
    functionDepth: 0
    functionLinenumber: 2013
    functionLinenumberEnd: 2015
    functionName: SSL_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2017
    functionDepth: 0
    functionLinenumber: 2017
    functionLinenumberEnd: 2019
    functionName: SSL_SESSION_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2023
    functionName: SSL_CTX_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2030
    functionName: SSL_CTX_sess_set_cache_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_set_cache_size(ctx,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2032
    functionName: SSL_CTX_sess_get_cache_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_sess_get_cache_size(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2034
    functionName: SSL_CTX_set_session_cache_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_session_cache_mode(ctx,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2034
    functionDepth: 0
    functionLinenumber: 2034
    functionLinenumberEnd: 2036
    functionName: SSL_CTX_get_session_cache_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_session_cache_mode(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2038
    functionName: SSL_CTX_get_default_read_ahead
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_default_read_ahead(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2039
    functionName: SSL_CTX_set_default_read_ahead
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_default_read_ahead(ctx,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2039
    functionDepth: 0
    functionLinenumber: 2039
    functionLinenumberEnd: 2041
    functionName: SSL_CTX_get_read_ahead
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_read_ahead(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2041
    functionDepth: 0
    functionLinenumber: 2041
    functionLinenumberEnd: 2043
    functionName: SSL_CTX_set_read_ahead
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_read_ahead(ctx,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2043
    functionDepth: 0
    functionLinenumber: 2043
    functionLinenumberEnd: 2045
    functionName: SSL_CTX_get_max_cert_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_max_cert_list(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2047
    functionName: SSL_CTX_set_max_cert_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_max_cert_list(ctx,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2047
    functionDepth: 0
    functionLinenumber: 2047
    functionLinenumberEnd: 2049
    functionName: SSL_get_max_cert_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_get_max_cert_list(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2051
    functionName: SSL_set_max_cert_list
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_max_cert_list(ssl,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2054
    functionName: SSL_CTX_set_max_send_fragment
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_max_send_fragment(ctx,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2054
    functionDepth: 0
    functionLinenumber: 2054
    functionLinenumberEnd: 2056
    functionName: SSL_set_max_send_fragment
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_max_send_fragment(ssl,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2058
    functionName: SSL_CTX_set_split_send_fragment
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_split_send_fragment(ctx,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2058
    functionDepth: 0
    functionLinenumber: 2058
    functionLinenumberEnd: 2060
    functionName: SSL_set_split_send_fragment
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_split_send_fragment(ssl,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2060
    functionDepth: 0
    functionLinenumber: 2060
    functionLinenumberEnd: 2062
    functionName: SSL_CTX_set_max_pipelines
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_max_pipelines(ctx,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ssl
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2062
    functionDepth: 0
    functionLinenumber: 2062
    functionLinenumberEnd: 2064
    functionName: SSL_set_max_pipelines
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_set_max_pipelines(ssl,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2087
    functionDepth: 0
    functionLinenumber: 2087
    functionLinenumberEnd: 2088
    functionName: SSL_COMP_free_compression_methods
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_COMP_free_compression_methods()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2139
    functionDepth: 0
    functionLinenumber: 2139
    functionLinenumberEnd: 2140
    functionName: SSL_cache_hit
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_cache_hit(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2203
    functionName: SSL_disable_ct
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_disable_ct(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2205
    functionName: SSL_CTX_disable_ct
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_disable_ct(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: BIO_get_flags
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_flags(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: BIO_set_retry_special
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_retry_special(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: BIO_set_retry_read
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_retry_read(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: BIO_set_retry_write
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_retry_write(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: BIO_clear_retry_flags
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 75
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_clear_retry_flags(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: BIO_get_retry_flags
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_retry_flags(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: BIO_should_read
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_should_read(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: BIO_should_write
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_should_write(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: BIO_should_io_special
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_should_io_special(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: BIO_retry_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_retry_type(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: BIO_should_retry
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_should_retry(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: BIO_CB_return
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_CB_return(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: BIO_cb_pre
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_cb_pre(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: BIO_cb_post
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_cb_post(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: BIO_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_app_data(s,arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: BIO_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_app_data(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: BIO_set_nbio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_nbio(b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: BIO_set_conn_hostname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_conn_hostname(b,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - port
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: BIO_set_conn_port
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_conn_port(b,port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: BIO_set_conn_address
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_conn_address(b,addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: BIO_set_conn_ip_family
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_conn_ip_family(b,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: BIO_get_conn_hostname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_conn_hostname(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: BIO_get_conn_port
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_conn_port(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: BIO_get_conn_address
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_conn_address(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: BIO_get_conn_ip_family
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_conn_ip_family(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: BIO_set_conn_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_conn_mode(b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: BIO_set_accept_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_accept_name(b,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - port
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: BIO_set_accept_port
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_accept_port(b,port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: BIO_get_accept_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_accept_name(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 388
    functionName: BIO_get_accept_port
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_accept_port(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: BIO_get_peer_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_peer_name(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: BIO_get_peer_port
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_peer_port(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: BIO_set_nbio_accept
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_nbio_accept(b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - bio
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: BIO_set_accept_bios
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_accept_bios(b,bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 395
    functionName: BIO_set_accept_ip_family
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_accept_ip_family(b,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 396
    functionName: BIO_get_accept_ip_family
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_accept_ip_family(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 402
    functionName: BIO_set_bind_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_bind_mode(b,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 403
    functionName: BIO_get_bind_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_bind_mode(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 406
    functionName: BIO_do_connect
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_do_connect(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: BIO_do_accept
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_do_accept(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: BIO_do_handshake
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_do_handshake(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - fd
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 413
    functionName: BIO_set_fd
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_fd(b,fd,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: BIO_get_fd
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_fd(b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - fp
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 417
    functionName: BIO_set_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_fp(b,fp,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - fpp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 418
    functionName: BIO_get_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_fp(b,fpp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - ofs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 421
    functionName: BIO_seek
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_seek(b,ofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: BIO_tell
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_tell(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: BIO_read_filename
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_read_filename(b,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 439
    functionName: BIO_write_filename
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_write_filename(b,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: BIO_append_filename
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_append_filename(b,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 443
    functionName: BIO_rw_filename
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_rw_filename(b,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - ssl
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: BIO_set_ssl
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_ssl(b,ssl,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - sslp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: BIO_get_ssl
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_ssl(b,sslp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - client
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: BIO_set_ssl_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_ssl_mode(b,client)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: BIO_set_ssl_renegotiate_bytes
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_ssl_renegotiate_bytes(b,num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 457
    functionName: BIO_get_num_renegotiates
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_num_renegotiates(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - seconds
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    functionName: BIO_set_ssl_renegotiate_timeout
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_ssl_renegotiate_timeout(b,seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - pp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 464
    functionName: BIO_get_mem_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_mem_data(b,pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - bm
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    functionName: BIO_set_mem_buf
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_mem_buf(b,bm,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - pp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 467
    functionName: BIO_get_mem_ptr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_mem_ptr(b,pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 469
    functionName: BIO_set_mem_eof_return
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_mem_eof_return(b,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 472
    functionName: BIO_get_buffer_num_lines
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_buffer_num_lines(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 473
    functionName: BIO_set_buffer_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_buffer_size(b,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 474
    functionName: BIO_set_read_buffer_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_read_buffer_size(b,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 475
    functionName: BIO_set_write_buffer_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_write_buffer_size(b,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - buf
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: BIO_set_buffer_read_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_buffer_read_data(b,buf,num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: BIO_dup_state
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_dup_state(b,ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: BIO_reset
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_reset(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 482
    functionName: BIO_eof
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_eof(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: BIO_set_close
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_close(b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: BIO_get_close
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_close(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 485
    functionName: BIO_pending
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_pending(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: BIO_wpending
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_wpending(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: BIO_flush
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_flush(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - cbp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 492
    functionName: BIO_get_info_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_info_callback(b,cbp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 493
    functionName: BIO_set_info_callback
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_info_callback(b,cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 496
    functionName: BIO_buffer_get_num_lines
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_buffer_get_num_lines(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: BIO_buffer_peek
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_buffer_peek(b,s,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: BIO_set_write_buf_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_write_buf_size(b,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    functionName: BIO_get_write_buf_size
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_write_buf_size(b,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b1
    - ','
    - b2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: BIO_make_bio_pair
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_make_bio_pair(b1,b2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: BIO_destroy_bio_pair
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_destroy_bio_pair(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: BIO_shutdown_wr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_shutdown_wr(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 506
    functionName: BIO_get_write_guarantee
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_write_guarantee(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: BIO_get_read_request
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_read_request(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - peer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 514
    functionName: BIO_ctrl_dgram_connect
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_ctrl_dgram_connect(b,peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - peer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 516
    functionName: BIO_ctrl_set_connected
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_ctrl_set_connected(b,peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 518
    functionName: BIO_dgram_recv_timedout
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_dgram_recv_timedout(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: BIO_dgram_send_timedout
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_dgram_send_timedout(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - peer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: BIO_dgram_get_peer
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_dgram_get_peer(b,peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - peer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 524
    functionName: BIO_dgram_set_peer
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_dgram_set_peer(b,peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: BIO_dgram_get_mtu_overhead
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_dgram_get_mtu_overhead(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: BIO_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 683
    functionName: BIO_sock_cleanup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/bio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_sock_cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 797
    functionName: d2i_ECPKParameters_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_ECPKParameters_bio(bp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 798
    functionName: i2d_ECPKParameters_bio
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_ECPKParameters_bio(bp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 800
    functionName: d2i_ECPKParameters_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2i_ECPKParameters_fp(fp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: i2d_ECPKParameters_fp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i2d_ECPKParameters_fp(fp,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 918
    functionName: EC_KEY_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EC_KEY_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1368
    functionName: ECParameters_dup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECParameters_dup(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1381
    functionName: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1386
    functionName: EVP_PKEY_CTX_set_ec_param_enc
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_ec_param_enc(ctx, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1391
    functionName: EVP_PKEY_CTX_set_ecdh_cofactor_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1396
    functionName: EVP_PKEY_CTX_get_ecdh_cofactor_mode
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - kdf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1401
    functionName: EVP_PKEY_CTX_set_ecdh_kdf_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_ecdh_kdf_type(ctx, kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1406
    functionName: EVP_PKEY_CTX_get_ecdh_kdf_type
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_ecdh_kdf_type(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1411
    functionName: EVP_PKEY_CTX_set_ecdh_kdf_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_ecdh_kdf_md(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - pmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1416
    functionName: EVP_PKEY_CTX_get_ecdh_kdf_md
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_ecdh_kdf_md(ctx, pmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1421
    functionName: EVP_PKEY_CTX_set_ecdh_kdf_outlen
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - plen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1427
    functionName: EVP_PKEY_CTX_get_ecdh_kdf_outlen
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get_ecdh_kdf_outlen(ctx, plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - p
    - ','
    - plen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1432
    functionName: EVP_PKEY_CTX_set0_ecdh_kdf_ukm
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set0_ecdh_kdf_ukm(ctx, p, plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1437
    functionName: EVP_PKEY_CTX_get0_ecdh_kdf_ukm
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get0_ecdh_kdf_ukm(ctx, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - id
    - ','
    - id_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1442
    functionName: EVP_PKEY_CTX_set1_id
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_set1_id(ctx, id, id_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1443
    functionDepth: 0
    functionLinenumber: 1443
    functionLinenumberEnd: 1446
    functionName: EVP_PKEY_CTX_get1_id
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get1_id(ctx, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - id_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1450
    functionName: EVP_PKEY_CTX_get1_id_len
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_CTX_get1_id_len(ctx, id_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: ERR_PUT_error
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_PUT_error(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ERR_PUT_error
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_PUT_error(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: SYSerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: BNerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BNerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: RSAerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSAerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: DHerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DHerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: EVPerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 99
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVPerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: BUFerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUFerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: OBJerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OBJerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: PEMerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEMerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: DSAerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DSAerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: X509err
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509err(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: ASN1err
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 111
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1err(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: CONFerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: CRYPTOerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPTOerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: ECerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 161
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: SSLerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSLerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: BIOerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIOerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: PKCS7err
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS7err(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: X509V3err
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 57
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509V3err(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: PKCS12err
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS12err(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: RANDerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANDerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: DSOerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DSOerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: ENGINEerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINEerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: OCSPerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSPerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: UIerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UIerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: COMPerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: ECDSAerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECDSAerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: ECDHerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECDHerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: OSSL_STOREerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_STOREerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: FIPSerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIPSerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: CMSerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 78
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMSerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: TSerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: HMACerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HMACerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: CTerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: ASYNCerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASYNCerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: KDFerr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KDFerr(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: SM2err
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SM2err(f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: ERR_PACK
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_PACK(l,f,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: ERR_GET_LIB
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_GET_LIB(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: ERR_GET_FUNC
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_GET_FUNC(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: ERR_GET_REASON
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_GET_REASON(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: ERR_FATAL_ERROR
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_FATAL_ERROR(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: ERR_load_crypto_strings
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_load_crypto_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: ERR_free_strings
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_free_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: X509_STORE_CTX_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509_vfy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_CTX_set_app_data(ctx,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: X509_STORE_CTX_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509_vfy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_CTX_get_app_data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: X509_LOOKUP_load_file
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509_vfy.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_LOOKUP_load_file(x,name,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: X509_LOOKUP_add_dir
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509_vfy.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_LOOKUP_add_dir(x,name,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: X509_STORE_set_verify_func
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509_vfy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_set_verify_func(ctx, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: X509_STORE_set_verify_cb_func
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509_vfy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_set_verify_cb_func(ctx,func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: X509_STORE_set_lookup_crls_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509_vfy.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_set_lookup_crls_cb(ctx, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: X509_STORE_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509_vfy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: X509_STORE_CTX_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509_vfy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: UI_set_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ui.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UI_set_app_data(s,arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: UI_get_app_data
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ui.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UI_get_app_data(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: UI_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/ui.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UI_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: ENGINE_load_openssl
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_load_openssl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: ENGINE_load_dynamic
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_load_dynamic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: ENGINE_load_padlock
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_load_padlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: ENGINE_load_capi
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_load_capi()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: ENGINE_load_afalg
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_load_afalg()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: ENGINE_load_cryptodev
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_load_cryptodev()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: ENGINE_load_rdrand
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_load_rdrand()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: ENGINE_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: ENGINE_cleanup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: IMPLEMENT_DYNAMIC_CHECK_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_DYNAMIC_CHECK_FN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 728
    functionName: IMPLEMENT_DYNAMIC_BIND_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/engine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_DYNAMIC_BIND_FN(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: OBJ_create_and_add_object
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OBJ_create_and_add_object(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - scope
    - ','
    - type1
    - ','
    - type2
    - ','
    - nm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: _DECLARE_OBJ_BSEARCH_CMP_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type1
    - ','
    - type2
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: DECLARE_OBJ_BSEARCH_CMP_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type1
    - ','
    - type2
    - ','
    - nm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type1
    - ','
    - type2
    - ','
    - nm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: IMPLEMENT_OBJ_BSEARCH_CMP_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type1
    - ','
    - type2
    - ','
    - nm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - type1
    - ','
    - key
    - ','
    - type2
    - ','
    - base
    - ','
    - num
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: OBJ_bsearch
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OBJ_bsearch(type1,key,type2,base,num,cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - type1
    - ','
    - key
    - ','
    - type2
    - ','
    - base
    - ','
    - num
    - ','
    - cmp
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: OBJ_bsearch_ex
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: OBJ_cleanup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OBJ_cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: RAND_DRBG_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/rand_drbg.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAND_DRBG_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ASN1_ADB_ptr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB_ptr(iptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - itname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: ASN1_ITEM_start
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_start(itname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - itname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: static_ASN1_ITEM_start
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_ITEM_start(itname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - itname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ASN1_ITEM_end
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_end(itname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: ASN1_ADB_ptr
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB_ptr(iptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - itname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: ASN1_ITEM_start
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_start(itname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - itname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: static_ASN1_ITEM_start
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_ITEM_start(itname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - itname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: ASN1_ITEM_end
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_end(itname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: ASN1_ITEM_TEMPLATE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_TEMPLATE(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: ASN1_ITEM_TEMPLATE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ITEM_TEMPLATE_END(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: static_ASN1_ITEM_TEMPLATE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_ITEM_TEMPLATE_END(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: ASN1_SEQUENCE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: ASN1_SEQUENCE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_END(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: static_ASN1_SEQUENCE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_SEQUENCE_END(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: ASN1_SEQUENCE_END_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_END_name(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: static_ASN1_SEQUENCE_END_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_SEQUENCE_END_name(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: ASN1_NDEF_SEQUENCE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_NDEF_SEQUENCE(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tname
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: ASN1_NDEF_SEQUENCE_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_NDEF_SEQUENCE_cb(tname, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tname
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: ASN1_SEQUENCE_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_cb(tname, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: ASN1_BROKEN_SEQUENCE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_BROKEN_SEQUENCE(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tname
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: ASN1_SEQUENCE_ref
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_ref(tname, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tname
    - ','
    - enc
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: ASN1_SEQUENCE_enc
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_enc(tname, enc, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: ASN1_NDEF_SEQUENCE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_NDEF_SEQUENCE_END(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: static_ASN1_NDEF_SEQUENCE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_NDEF_SEQUENCE_END(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: ASN1_BROKEN_SEQUENCE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_BROKEN_SEQUENCE_END(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: static_ASN1_BROKEN_SEQUENCE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_BROKEN_SEQUENCE_END(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: ASN1_SEQUENCE_END_enc
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_END_enc(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: ASN1_SEQUENCE_END_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_END_cb(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: static_ASN1_SEQUENCE_END_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_SEQUENCE_END_cb(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: ASN1_SEQUENCE_END_ref
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_END_ref(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: static_ASN1_SEQUENCE_END_ref
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_SEQUENCE_END_ref(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: ASN1_NDEF_SEQUENCE_END_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_NDEF_SEQUENCE_END_cb(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: ASN1_CHOICE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_CHOICE(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tname
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: ASN1_CHOICE_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_CHOICE_cb(tname, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: ASN1_CHOICE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_CHOICE_END(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: static_ASN1_CHOICE_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_CHOICE_END(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: ASN1_CHOICE_END_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_CHOICE_END_name(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    functionName: static_ASN1_CHOICE_END_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_CHOICE_END_name(stname, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - tname
    - ','
    - selname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 286
    functionName: ASN1_CHOICE_END_selector
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_CHOICE_END_selector(stname, tname, selname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - tname
    - ','
    - selname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 298
    functionName: static_ASN1_CHOICE_END_selector
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_CHOICE_END_selector(stname, tname, selname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - tname
    - ','
    - selname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 310
    functionName: ASN1_CHOICE_END_cb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_CHOICE_END_cb(stname, tname, selname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - flags
    - ','
    - tag
    - ','
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: ASN1_EX_TEMPLATE_TYPE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - flags
    - ','
    - tag
    - ','
    - stname
    - ','
    - field
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: ASN1_EX_TYPE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EX_TYPE(flags, tag, stname, field, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - ','
    - ex
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: ASN1_IMP_EX
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_IMP_EX(stname, field, type, tag, ex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - ','
    - ex
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: ASN1_EXP_EX
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EXP_EX(stname, field, type, tag, ex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tblname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: ASN1_ADB_OBJECT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB_OBJECT(tblname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tblname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: ASN1_ADB_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB_INTEGER(tblname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tblname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 340
    functionName: ASN1_ADB_OBJECT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB_OBJECT(tblname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tblname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: ASN1_ADB_INTEGER
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB_INTEGER(tblname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: ASN1_SIMPLE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SIMPLE(stname, field, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: ASN1_EMBED
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EMBED(stname, field, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: ASN1_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_OPT(stname, field, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: ASN1_OPT_EMBED
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_OPT_EMBED(stname, field, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: ASN1_IMP
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_IMP(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: ASN1_IMP_EMBED
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_IMP_EMBED(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: ASN1_IMP_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_IMP_OPT(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: ASN1_IMP_OPT_EMBED
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_IMP_OPT_EMBED(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: ASN1_EXP
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EXP(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: ASN1_EXP_EMBED
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EXP_EMBED(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: ASN1_EXP_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EXP_OPT(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: ASN1_EXP_OPT_EMBED
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EXP_OPT_EMBED(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: ASN1_SEQUENCE_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_OF(stname, field, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: ASN1_SEQUENCE_OF_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SEQUENCE_OF_OPT(stname, field, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: ASN1_SET_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SET_OF(stname, field, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: ASN1_SET_OF_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_SET_OF_OPT(stname, field, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: ASN1_IMP_SET_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_IMP_SET_OF(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: ASN1_EXP_SET_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EXP_SET_OF(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: ASN1_IMP_SET_OF_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_IMP_SET_OF_OPT(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: ASN1_EXP_SET_OF_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EXP_SET_OF_OPT(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: ASN1_IMP_SEQUENCE_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_IMP_SEQUENCE_OF(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: ASN1_IMP_SEQUENCE_OF_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: ASN1_EXP_SEQUENCE_OF
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EXP_SEQUENCE_OF(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: ASN1_EXP_SEQUENCE_OF_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: ASN1_NDEF_EXP
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_NDEF_EXP(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stname
    - ','
    - field
    - ','
    - type
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: ASN1_NDEF_EXP_OPT
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_NDEF_EXP_OPT(stname, field, type, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: ASN1_ADB
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - name
    - ','
    - flags
    - ','
    - field
    - ','
    - adb_cb
    - ','
    - def
    - ','
    - none
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 434
    functionName: ASN1_ADB_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB_END(name, flags, field, adb_cb, def, none)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - name
    - ','
    - flags
    - ','
    - field
    - ','
    - adb_cb
    - ','
    - def
    - ','
    - none
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 454
    functionName: ASN1_ADB_END
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB_END(name, flags, field, adb_cb, def, none)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - template
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: ADB_ENTRY
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADB_ENTRY(val, template)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 461
    functionName: ASN1_ADB_TEMPLATE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_ADB_TEMPLATE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: ASN1_TEMPLATE_item
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_TEMPLATE_item(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 480
    functionName: ASN1_TEMPLATE_adb
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_TEMPLATE_adb(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 773
    functionName: IMPLEMENT_ASN1_TYPE
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_TYPE(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - itname
    - ','
    - vname
    - ','
    - ex
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: IMPLEMENT_ASN1_TYPE_ex
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - itname
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 783
    functionName: IMPLEMENT_ASN1_MSTRING
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_MSTRING(itname, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sname
    - ','
    - tag
    - ','
    - fptrs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 794
    functionName: IMPLEMENT_EXTERN_ASN1
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 798
    functionName: IMPLEMENT_ASN1_FUNCTIONS
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_FUNCTIONS(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - itname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 800
    functionName: IMPLEMENT_ASN1_FUNCTIONS_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stname
    - ','
    - itname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 803
    functionName: IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 806
    functionName: IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 809
    functionName: IMPLEMENT_ASN1_ALLOC_FUNCTIONS
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pre
    - ','
    - stname
    - ','
    - itname
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 819
    functionName: IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - itname
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 829
    functionName: IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - itname
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 833
    functionName: IMPLEMENT_ASN1_FUNCTIONS_fname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - itname
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 843
    functionName: IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 849
    functionName: IMPLEMENT_ASN1_NDEF_FUNCTION
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_NDEF_FUNCTION(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 862
    functionName: IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - itname
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 876
    functionName: IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 882
    functionName: IMPLEMENT_ASN1_DUP_FUNCTION
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_DUP_FUNCTION(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 885
    functionName: IMPLEMENT_ASN1_PRINT_FUNCTION
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_PRINT_FUNCTION(stname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - itname
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 893
    functionName: IMPLEMENT_ASN1_PRINT_FUNCTION_fname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 896
    functionName: IMPLEMENT_ASN1_FUNCTIONS_const
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_FUNCTIONS_const(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stname
    - ','
    - itname
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 900
    functionName: IMPLEMENT_ASN1_FUNCTIONS_const_fname
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/asn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_FUNCTIONS_const_fname(stname, itname, fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: X509_extract_key
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_extract_key(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: X509_REQ_extract_key
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_REQ_extract_key(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: X509_name_cmp
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_name_cmp(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - newf
    - ','
    - dupf
    - ','
    - freef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: X509_get_ex_new_index
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/x509.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_get_ex_new_index(l, p, newf, dupf, freef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: OPENSSL_no_config
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/conf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_no_config()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - g
    - ','
    - n
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: NCONF_get_number
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/conf.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCONF_get_number(c,g,n,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: CONF_modules_free
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/conf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONF_modules_free()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: U64
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/sha.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: U64
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/sha.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: U64
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/sha.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: BUF_strdup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/buffer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUF_strdup(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: BUF_strndup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUF_strndup(s, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: BUF_memdup
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/buffer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUF_memdup(data, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: BUF_strlcpy
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/buffer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUF_strlcpy(dst, src, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: BUF_strlcat
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUF_strlcat(dst, src, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - maxlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: BUF_strnlen
    functionSourceFile: /src/openssl-1.1.1g/include/openssl/buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUF_strnlen(str, maxlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-1.1.1g/fuzz/asn1parse.c:26,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/asn1parse.c:27,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/asn1parse.c:28,1
    - Dst: CRYPTO_free_ex_index
      Src: /src/openssl-1.1.1g/fuzz/asn1parse.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/asn1parse.c
    functionUses: 1
    functionsReached:
    - OPENSSL_init_crypto
    - ERR_get_state
    - CRYPTO_free_ex_index
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_parse_dump
      Src: /src/openssl-1.1.1g/fuzz/asn1parse.c:35,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/asn1parse.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/asn1parse.c
    functionUses: 0
    functionsReached:
    - ASN1_parse_dump
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/asn1parse.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/asn1parse.c
    functionUses: 0
    functionsReached:
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: S_ISREG
    functionSourceFile: /src/openssl-1.1.1g/fuzz/test-corpus.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:44,1
    - Dst: S_ISREG
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:44,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:46,1
    - Dst: fflush
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:47,1
    - Dst: fopen
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:48,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:51,1
    - Dst: fread
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:53,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:54,1
    - Dst: FuzzerTestOneInput
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:55,1
    - Dst: free
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:56,1
    - Dst: fclose
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pathname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 59
    functionName: testfile
    functionSourceFile: /src/openssl-1.1.1g/fuzz/test-corpus.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - free
    - fflush
    - fclose
    - stat
    - FuzzerTestOneInput
    - S_ISREG
    - fopen
    - fread
    - printf
    - malloc
    linkageType: ''
    returnType: void
    signature: void testfile(const char *pathname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FuzzerInitialize
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:64,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:67,1
    - Dst: OPENSSL_DIR_read
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:76,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:79,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:82,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:84,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:89,1
    - Dst: testfile
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:90,1
    - Dst: OPENSSL_DIR_end
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:92,1
    - Dst: testfile
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:96,1
    - Dst: free
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:98,1
    - Dst: FuzzerCleanup
      Src: /src/openssl-1.1.1g/fuzz/test-corpus.c:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/fuzz/test-corpus.c
    functionUses: 0
    functionsReached:
    - strcpy
    - OPENSSL_DIR_read
    - free
    - FuzzerInitialize
    - strchr
    - testfile
    - OPENSSL_DIR_end
    - FuzzerCleanup
    - strlen
    - malloc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/crl.c:18,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/crl.c:19,1
    - Dst: CRYPTO_free_ex_index
      Src: /src/openssl-1.1.1g/fuzz/crl.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/crl.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - ERR_get_state
    - CRYPTO_free_ex_index
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509_CRL
      Src: /src/openssl-1.1.1g/fuzz/crl.c:29,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/crl.c:31,1
    - Dst: BIO_s_null
      Src: /src/openssl-1.1.1g/fuzz/crl.c:31,1
    - Dst: X509_CRL_print
      Src: /src/openssl-1.1.1g/fuzz/crl.c:32,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/crl.c:33,1
    - Dst: i2d_X509_CRL
      Src: /src/openssl-1.1.1g/fuzz/crl.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/fuzz/crl.c:36,1
    - Dst: X509_CRL_free
      Src: /src/openssl-1.1.1g/fuzz/crl.c:38,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/crl.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/crl.c
    functionUses: 1
    functionsReached:
    - d2i_X509_CRL
    - OPENSSL_free
    - X509_CRL_free
    - X509_CRL_print
    - i2d_X509_CRL
    - BIO_free
    - ERR_clear_error
    - BIO_s_null
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/crl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/cms.c:22,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/cms.c:23,1
    - Dst: CRYPTO_free_ex_index
      Src: /src/openssl-1.1.1g/fuzz/cms.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/cms.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - ERR_get_state
    - CRYPTO_free_ex_index
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/cms.c:36,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/cms.c:36,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/cms.c:37,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/fuzz/cms.c:37,1
    - Dst: d2i_CMS_bio
      Src: /src/openssl-1.1.1g/fuzz/cms.c:38,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/cms.c:40,1
    - Dst: BIO_s_null
      Src: /src/openssl-1.1.1g/fuzz/cms.c:40,1
    - Dst: i2d_CMS_bio
      Src: /src/openssl-1.1.1g/fuzz/cms.c:42,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/cms.c:43,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-1.1.1g/fuzz/cms.c:44,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/cms.c:47,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/cms.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 51
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/cms.c
    functionUses: 1
    functionsReached:
    - i2d_CMS_bio
    - OPENSSL_assert
    - BIO_write
    - d2i_CMS_bio
    - BIO_s_mem
    - CMS_ContentInfo_free
    - BIO_free
    - ERR_clear_error
    - BIO_s_null
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/cms.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:33,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:34,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:35,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:36,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:37,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:38,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:40,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/bndiv.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - BN_CTX_new
    - BN_new
    - ERR_get_state
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:72,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:72,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:73,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:74,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:74,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:75,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:78,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:83,1
    - Dst: BN_div
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:83,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:84,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:85,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:85,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:86,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:87,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:87,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:87,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:88,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:88,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:90,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:90,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:90,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:91,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:91,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:92,1
    - Dst: BN_mul
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:92,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:93,1
    - Dst: BN_add
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:93,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:95,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:97,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:98,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:99,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:100,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:101,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:102,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:103,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:104,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:105,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:106,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:107,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:107,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:108,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:109,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:109,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:109,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:110,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:110,1
    - Dst: BN_is_negative
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:111,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:111,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:112,1
    - Dst: puts
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:113,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:117,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:118,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 121
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/bndiv.c
    functionUses: 1
    functionsReached:
    - BN_add
    - OPENSSL_assert
    - putchar
    - BN_set_negative
    - BN_print_fp
    - BN_cmp
    - BN_mul
    - BN_is_negative
    - BN_bin2bn
    - BN_div
    - ERR_clear_error
    - BN_is_zero
    - printf
    - puts
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:125,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:126,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:127,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:128,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:129,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/fuzz/bndiv.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/bndiv.c
    functionUses: 1
    functionsReached:
    - BN_CTX_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/ct.c:22,1
    - Dst: CRYPTO_free_ex_index
      Src: /src/openssl-1.1.1g/fuzz/ct.c:23,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/ct.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/ct.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - CRYPTO_free_ex_index
    - ERR_get_state
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/fuzz/ct.c:32,1
    - Dst: d2i_SCT_LIST
      Src: /src/openssl-1.1.1g/fuzz/ct.c:32,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/ct.c:34,1
    - Dst: BIO_s_null
      Src: /src/openssl-1.1.1g/fuzz/ct.c:34,1
    - Dst: SCT_LIST_print
      Src: /src/openssl-1.1.1g/fuzz/ct.c:35,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/ct.c:36,1
    - Dst: i2d_SCT_LIST
      Src: /src/openssl-1.1.1g/fuzz/ct.c:38,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/fuzz/ct.c:41,1
    - Dst: SCT_LIST_free
      Src: /src/openssl-1.1.1g/fuzz/ct.c:43,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/ct.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 9
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/ct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - STACK_OF
    - d2i_SCT_LIST
    - i2d_SCT_LIST
    - SCT_LIST_print
    - BIO_free
    - SCT_LIST_free
    - ERR_clear_error
    - BIO_s_null
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/ct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: TIME_IMPL
    functionSourceFile: /src/openssl-1.1.1g/fuzz/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_IMPL(t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/fuzz/server.c:490,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/server.c:492,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/fuzz/server.c:493,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/server.c:494,1
    - Dst: CRYPTO_free_ex_index
      Src: /src/openssl-1.1.1g/fuzz/server.c:495,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/openssl-1.1.1g/fuzz/server.c:496,1
    - Dst: FuzzerSetRand
      Src: /src/openssl-1.1.1g/fuzz/server.c:497,1
    - Dst: SSL_COMP_get_compression_methods
      Src: /src/openssl-1.1.1g/fuzz/server.c:498,1
    - Dst: sk_SSL_COMP_sort
      Src: /src/openssl-1.1.1g/fuzz/server.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 503
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/server.c
    functionUses: 2
    functionsReached:
    - ERR_get_state
    - STACK_OF
    - OPENSSL_init_crypto
    - OPENSSL_init_ssl
    - sk_SSL_COMP_sort
    - SSL_COMP_get_compression_methods
    - CRYPTO_free_ex_index
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - FuzzerSetRand
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:535,1
    - Dst: SSLv23_method
      Src: /src/openssl-1.1.1g/fuzz/server.c:535,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-1.1.1g/fuzz/server.c:537,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:538,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/fuzz/server.c:539,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:540,1
    - Dst: d2i_RSAPrivateKey
      Src: /src/openssl-1.1.1g/fuzz/server.c:544,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:545,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:546,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-1.1.1g/fuzz/server.c:547,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/openssl-1.1.1g/fuzz/server.c:548,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:549,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:550,1
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/fuzz/server.c:553,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:554,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openssl-1.1.1g/fuzz/server.c:555,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:556,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:557,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:561,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/server.c:561,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:562,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/fuzz/server.c:562,1
    - Dst: PEM_read_bio_ECPrivateKey
      Src: /src/openssl-1.1.1g/fuzz/server.c:563,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/fuzz/server.c:564,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:565,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:566,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:567,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-1.1.1g/fuzz/server.c:568,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/openssl-1.1.1g/fuzz/server.c:569,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:570,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:571,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:573,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/server.c:573,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:574,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/fuzz/server.c:574,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/fuzz/server.c:575,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:576,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:577,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openssl-1.1.1g/fuzz/server.c:578,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:579,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:580,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:585,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/server.c:585,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:586,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/fuzz/server.c:586,1
    - Dst: PEM_read_bio_DSAPrivateKey
      Src: /src/openssl-1.1.1g/fuzz/server.c:587,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-1.1.1g/fuzz/server.c:588,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:589,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:590,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:591,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-1.1.1g/fuzz/server.c:592,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/openssl-1.1.1g/fuzz/server.c:593,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:594,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:595,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:597,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/server.c:597,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:598,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/fuzz/server.c:598,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/fuzz/server.c:599,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:600,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:601,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openssl-1.1.1g/fuzz/server.c:602,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:603,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:604,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:609,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:610,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/server.c:610,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/server.c:611,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/server.c:611,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/fuzz/server.c:612,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/fuzz/server.c:613,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/server.c:618,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/fuzz/server.c:618,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-1.1.1g/fuzz/server.c:625,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/fuzz/server.c:632,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/fuzz/server.c:636,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:641,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/server.c:642,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/fuzz/server.c:643,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 86
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 505
    functionDepth: 6
    functionLinenumber: 505
    functionLinenumberEnd: 646
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/server.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - OPENSSL_assert
    - SSL_CTX_set_cipher_list
    - PEM_read_bio_ECPrivateKey
    - d2i_RSAPrivateKey
    - BIO_s_mem
    - ERR_print_errors_fp
    - SSL_CTX_use_certificate
    - EVP_PKEY_new
    - SSL_set_accept_state
    - X509_free
    - EVP_PKEY_assign_DSA
    - SSLv23_method
    - BIO_free
    - PEM_read_bio_X509
    - ERR_clear_error
    - SSL_new
    - SSL_free
    - SSL_read_early_data
    - SSL_set_bio
    - SSL_read
    - d2i_X509
    - BIO_write
    - PEM_read_bio_DSAPrivateKey
    - EVP_PKEY_assign_EC_KEY
    - EVP_PKEY_assign_RSA
    - SSL_CTX_use_PrivateKey
    - SSL_do_handshake
    - EVP_PKEY_free
    - SSL_CTX_new
    - SSL_CTX_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 650
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/server.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: TIME_IMPL
    functionSourceFile: /src/openssl-1.1.1g/fuzz/client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_IMPL(t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/fuzz/client.c:43,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/client.c:45,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/fuzz/client.c:46,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/client.c:47,1
    - Dst: CRYPTO_free_ex_index
      Src: /src/openssl-1.1.1g/fuzz/client.c:48,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/openssl-1.1.1g/fuzz/client.c:49,1
    - Dst: FuzzerSetRand
      Src: /src/openssl-1.1.1g/fuzz/client.c:50,1
    - Dst: SSL_COMP_get_compression_methods
      Src: /src/openssl-1.1.1g/fuzz/client.c:51,1
    - Dst: sk_SSL_COMP_sort
      Src: /src/openssl-1.1.1g/fuzz/client.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/client.c
    functionUses: 2
    functionsReached:
    - ERR_get_state
    - STACK_OF
    - OPENSSL_init_crypto
    - OPENSSL_init_ssl
    - sk_SSL_COMP_sort
    - SSL_COMP_get_compression_methods
    - CRYPTO_free_ex_index
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - FuzzerSetRand
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openssl-1.1.1g/fuzz/client.c:73,1
    - Dst: SSLv23_method
      Src: /src/openssl-1.1.1g/fuzz/client.c:73,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/fuzz/client.c:75,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/client.c:76,1
    - Dst: SSL_set_min_proto_version
      Src: /src/openssl-1.1.1g/fuzz/client.c:76,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/client.c:77,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/fuzz/client.c:77,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/fuzz/client.c:78,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/client.c:79,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/client.c:79,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/client.c:80,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/client.c:80,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/fuzz/client.c:81,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/fuzz/client.c:82,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/client.c:83,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/fuzz/client.c:83,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/fuzz/client.c:84,1
    - Dst: SSL_read
      Src: /src/openssl-1.1.1g/fuzz/client.c:88,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/fuzz/client.c:93,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/client.c:94,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/fuzz/client.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 98
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/client.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - SSL_set_cipher_list
    - SSLv23_method
    - SSL_set_tlsext_host_name
    - BIO_write
    - SSL_set_bio
    - SSL_set_min_proto_version
    - SSL_read
    - BIO_s_mem
    - SSL_set_connect_state
    - ERR_clear_error
    - SSL_do_handshake
    - SSL_new
    - SSL_CTX_new
    - SSL_CTX_free
    - SSL_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/x509.c:21,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/x509.c:22,1
    - Dst: CRYPTO_free_ex_index
      Src: /src/openssl-1.1.1g/fuzz/x509.c:23,1
    - Dst: FuzzerSetRand
      Src: /src/openssl-1.1.1g/fuzz/x509.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/x509.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - ERR_get_state
    - CRYPTO_free_ex_index
    - FuzzerSetRand
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/fuzz/x509.c:33,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/x509.c:35,1
    - Dst: BIO_s_null
      Src: /src/openssl-1.1.1g/fuzz/x509.c:35,1
    - Dst: X509_print
      Src: /src/openssl-1.1.1g/fuzz/x509.c:37,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/x509.c:38,1
    - Dst: i2d_X509
      Src: /src/openssl-1.1.1g/fuzz/x509.c:40,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/fuzz/x509.c:41,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/fuzz/x509.c:43,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/x509.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/x509.c
    functionUses: 1
    functionsReached:
    - X509_free
    - X509_print
    - OPENSSL_free
    - BIO_free
    - i2d_X509
    - ERR_clear_error
    - BIO_s_null
    - d2i_X509
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/x509.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/conf.c:21,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/conf.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/conf.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - ERR_get_state
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new
      Src: /src/openssl-1.1.1g/fuzz/conf.c:35,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/fuzz/conf.c:36,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/fuzz/conf.c:36,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/conf.c:37,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/fuzz/conf.c:37,1
    - Dst: NCONF_load_bio
      Src: /src/openssl-1.1.1g/fuzz/conf.c:38,1
    - Dst: NCONF_free
      Src: /src/openssl-1.1.1g/fuzz/conf.c:39,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/fuzz/conf.c:40,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/conf.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/conf.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - BIO_write
    - NCONF_new
    - NCONF_free
    - BIO_s_mem
    - NCONF_load_bio
    - BIO_free
    - ERR_clear_error
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/conf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:24,1
    - Dst: ERR_get_state
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: FuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/bignum.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - ERR_get_state
    linkageType: ''
    returnType: int
    signature: int FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:42,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:43,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:44,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:45,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:46,1
    - Dst: BN_CTX_new
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:47,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:65,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:65,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:66,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:67,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:67,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:68,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:68,1
    - Dst: BN_set_negative
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:69,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:72,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:77,1
    - Dst: BN_mod_exp
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:77,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:78,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:78,1
    - Dst: BN_cmp
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:80,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:82,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:83,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:84,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:85,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:86,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:87,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:88,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:89,1
    - Dst: BN_print_fp
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:90,1
    - Dst: putchar
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:91,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:95,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:96,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:97,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:98,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:99,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:100,1
    - Dst: BN_CTX_free
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:101,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/fuzz/bignum.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 54
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 105
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/bignum.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - putchar
    - BN_set_negative
    - BN_print_fp
    - BN_cmp
    - BN_new
    - BN_bin2bn
    - BN_free
    - BN_mod_exp
    - BN_is_zero
    - BN_CTX_free
    - BN_CTX_new
    - ERR_clear_error
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: int FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: FuzzerCleanup
    functionSourceFile: /src/openssl-1.1.1g/fuzz/bignum.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzerCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzerInitialize
      Src: /src/openssl-1.1.1g/fuzz/driver.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/openssl-1.1.1g/fuzz/driver.c
    functionUses: 0
    functionsReached:
    - FuzzerInitialize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzerTestOneInput
      Src: /src/openssl-1.1.1g/fuzz/driver.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/openssl-1.1.1g/fuzz/driver.c
    functionUses: 0
    functionsReached:
    - FuzzerTestOneInput
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzerInitialize
      Src: /src/openssl-1.1.1g/fuzz/driver.c:37,1
    - Dst: __AFL_LOOP
      Src: /src/openssl-1.1.1g/fuzz/driver.c:39,1
    - Dst: malloc
      Src: /src/openssl-1.1.1g/fuzz/driver.c:40,1
    - Dst: read
      Src: /src/openssl-1.1.1g/fuzz/driver.c:41,1
    - Dst: FuzzerTestOneInput
      Src: /src/openssl-1.1.1g/fuzz/driver.c:43,1
    - Dst: free
      Src: /src/openssl-1.1.1g/fuzz/driver.c:44,1
    - Dst: FuzzerCleanup
      Src: /src/openssl-1.1.1g/fuzz/driver.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: main
    functionSourceFile: /src/openssl-1.1.1g/fuzz/driver.c
    functionUses: 0
    functionsReached:
    - free
    - __AFL_LOOP
    - FuzzerInitialize
    - FuzzerTestOneInput
    - read
    - FuzzerCleanup
    - malloc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: SSL_FLAG_TBL
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_FLAG_TBL(str, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: SSL_FLAG_TBL_SRV
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_FLAG_TBL_SRV(str, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: SSL_FLAG_TBL_CLI
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_FLAG_TBL_CLI(str, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: SSL_FLAG_TBL_INV
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_FLAG_TBL_INV(str, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: SSL_FLAG_TBL_SRV_INV
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_FLAG_TBL_SRV_INV(str, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: SSL_FLAG_TBL_CERT
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_FLAG_TBL_CERT(str, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: SSL_FLAG_VFY_CLI
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_FLAG_VFY_CLI(str, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: SSL_FLAG_VFY_SRV
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_FLAG_VFY_SRV(str, flag)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - cctx
    - name_flags
    - option_value
    - onoff
    argTypes:
    - SSL_CONF_CTX*
    - unsigned int
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 135
    functionName: ssl_set_option
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ssl_set_option(SSL_CONF_CTX *cctx, unsigned int name_flags,\n
      \                          unsigned long option_value, int onoff)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:144,1
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:146,1
    - Dst: ssl_set_option
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - cctx
    - tbl
    - name
    - namelen
    - onoff
    argTypes:
    - SSL_CONF_CTX*
    - ssl_flag_tbl*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: ssl_match_option
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ssl_set_option
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: "int ssl_match_option(SSL_CONF_CTX *cctx, const ssl_flag_tbl *tbl,\n
      \                           const char *name, int namelen, int onoff)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_match_option
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - elem
    - len
    - usr
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 180
    functionName: ssl_set_option_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - ssl_match_option
    linkageType: ''
    returnType: int
    signature: int ssl_set_option_list(const char *elem, int len, void *usr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set1_sigalgs_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:187,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: cmd_SignatureAlgorithms
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_set1_sigalgs_list
    - SSL_CTX_set1_sigalgs_list
    linkageType: ''
    returnType: int
    signature: int cmd_SignatureAlgorithms(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set1_client_sigalgs_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:199,1
    - Dst: SSL_CTX_set1_client_sigalgs_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: cmd_ClientSignatureAlgorithms
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set1_client_sigalgs_list
    - SSL_set1_client_sigalgs_list
    linkageType: ''
    returnType: int
    signature: int cmd_ClientSignatureAlgorithms(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set1_groups_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:210,1
    - Dst: SSL_CTX_set1_groups_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: cmd_Groups
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_set1_groups_list
    - SSL_CTX_set1_groups_list
    linkageType: ''
    returnType: int
    signature: int cmd_Groups(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_Groups
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: cmd_Curves
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - cmd_Groups
    linkageType: ''
    returnType: int
    signature: int cmd_Curves(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:233,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:234,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:237,1
    - Dst: EC_curve_nist2nid
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:240,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:242,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:245,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:249,1
    - Dst: SSL_set_tmp_ecdh
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:251,1
    - Dst: EC_KEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:252,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 255
    functionName: cmd_ECDHParameters
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_set_tmp_ecdh
    - EC_KEY_new_by_curve_name
    - strcmp
    - OBJ_sn2nid
    - SSL_CTX_set_tmp_ecdh
    - EC_curve_nist2nid
    - EC_KEY_free
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int cmd_ECDHParameters(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:262,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: cmd_CipherString
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - SSL_set_cipher_list
    linkageType: ''
    returnType: int
    signature: int cmd_CipherString(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:273,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: cmd_Ciphersuites
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ciphersuites
    - SSL_set_ciphersuites
    linkageType: ''
    returnType: int
    signature: int cmd_Ciphersuites(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:282,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:283,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:284,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:285,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:286,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:287,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:288,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:289,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:290,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:293,1
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 295
    functionName: cmd_Protocol
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - SSL_FLAG_TBL_INV
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: int cmd_Protocol(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:319,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 325
    functionName: protocol_from_string
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 1
    functionsReached:
    - strcmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int protocol_from_string(const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: protocol_from_string
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:338,1
    - Dst: ssl_set_version_bound
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cctx
    - value
    - bound
    argTypes:
    - SSL_CONF_CTX*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: min_max_proto
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - ssl_set_version_bound
    - protocol_from_string
    linkageType: ''
    returnType: int
    signature: int min_max_proto(SSL_CONF_CTX *cctx, const char *value, int *bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_max_proto
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: cmd_MinProtocol
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - min_max_proto
    linkageType: ''
    returnType: int
    signature: int cmd_MinProtocol(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_max_proto
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: cmd_MaxProtocol
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - min_max_proto
    linkageType: ''
    returnType: int
    signature: int cmd_MaxProtocol(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:370,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:371,1
    - Dst: SSL_FLAG_TBL
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:373,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:374,1
    - Dst: SSL_FLAG_TBL_SRV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:375,1
    - Dst: SSL_FLAG_TBL_SRV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:376,1
    - Dst: SSL_FLAG_TBL_SRV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:378,1
    - Dst: SSL_FLAG_TBL_SRV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:379,1
    - Dst: SSL_FLAG_TBL
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:380,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:382,1
    - Dst: SSL_FLAG_TBL
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:383,1
    - Dst: SSL_FLAG_TBL
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:384,1
    - Dst: SSL_FLAG_TBL
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:385,1
    - Dst: SSL_FLAG_TBL
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:386,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:387,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:392,1
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 394
    functionName: cmd_Options
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - SSL_FLAG_TBL_INV
    - CONF_parse_list
    - SSL_FLAG_TBL_SRV
    - SSL_FLAG_TBL
    linkageType: ''
    returnType: int
    signature: int cmd_Options(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_FLAG_VFY_CLI
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:399,1
    - Dst: SSL_FLAG_VFY_SRV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:400,1
    - Dst: SSL_FLAG_VFY_SRV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:401,1
    - Dst: SSL_FLAG_VFY_SRV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:403,1
    - Dst: SSL_FLAG_VFY_SRV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:404,1
    - Dst: SSL_FLAG_VFY_SRV
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:406,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:413,1
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 415
    functionName: cmd_VerifyMode
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - SSL_FLAG_VFY_CLI
    - SSL_FLAG_VFY_SRV
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: int cmd_VerifyMode(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:422,1
    - Dst: SSL_use_certificate_chain_file
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:426,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:431,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 438
    functionName: cmd_Certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_use_certificate_chain_file
    - OPENSSL_strdup
    - SSL_CTX_use_certificate_chain_file
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int cmd_Certificate(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:446,1
    - Dst: SSL_use_PrivateKey_file
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 450
    functionName: cmd_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_use_PrivateKey_file
    - SSL_use_PrivateKey_file
    linkageType: ''
    returnType: int
    signature: int cmd_PrivateKey(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_use_serverinfo_file
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: cmd_ServerInfoFile
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_use_serverinfo_file
    linkageType: ''
    returnType: int
    signature: int cmd_ServerInfoFile(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:473,1
    - Dst: X509_STORE_load_locations
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - cctx
    - CAfile
    - CApath
    - verify_store
    argTypes:
    - SSL_CONF_CTX*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 478
    functionName: do_store
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - X509_STORE_load_locations
    - X509_STORE_new
    linkageType: ''
    returnType: int
    signature: "int do_store(SSL_CONF_CTX *cctx,\n                    const char *CAfile,
      const char *CApath, int verify_store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_store
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 5
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: cmd_ChainCAPath
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - do_store
    linkageType: ''
    returnType: int
    signature: int cmd_ChainCAPath(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_store
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: cmd_ChainCAFile
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - do_store
    linkageType: ''
    returnType: int
    signature: int cmd_ChainCAFile(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_store
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 5
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: cmd_VerifyCAPath
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - do_store
    linkageType: ''
    returnType: int
    signature: int cmd_VerifyCAPath(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_store
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 5
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: cmd_VerifyCAFile
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - do_store
    linkageType: ''
    returnType: int
    signature: int cmd_VerifyCAFile(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:503,1
    - Dst: SSL_add_file_cert_subjects_to_stack
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 507
    functionName: cmd_RequestCAFile
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_add_file_cert_subjects_to_stack
    - sk_X509_NAME_new_null
    linkageType: ''
    returnType: int
    signature: int cmd_RequestCAFile(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_RequestCAFile
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: cmd_ClientCAFile
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - cmd_RequestCAFile
    linkageType: ''
    returnType: int
    signature: int cmd_ClientCAFile(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:517,1
    - Dst: SSL_add_dir_cert_subjects_to_stack
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 521
    functionName: cmd_RequestCAPath
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_add_dir_cert_subjects_to_stack
    - sk_X509_NAME_new_null
    linkageType: ''
    returnType: int
    signature: int cmd_RequestCAPath(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_RequestCAPath
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: cmd_ClientCAPath
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - cmd_RequestCAPath
    linkageType: ''
    returnType: int
    signature: int cmd_ClientCAPath(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:535,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:535,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:538,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:540,1
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:546,1
    - Dst: SSL_set_tmp_dh
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:548,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:550,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:551,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 529
    functionDepth: 4
    functionLinenumber: 529
    functionLinenumberEnd: 553
    functionName: cmd_DHParameters
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_DHparams
    - SSL_CTX_set_tmp_dh
    - BIO_s_file
    - BIO_read_filename
    - DH_free
    - BIO_free
    - SSL_set_tmp_dh
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int cmd_DHParameters(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:559,1
    - Dst: SSL_CTX_set_block_padding
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:567,1
    - Dst: SSL_set_block_padding
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 572
    functionName: cmd_RecordPadding
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - atoi
    - SSL_CTX_set_block_padding
    - SSL_set_block_padding
    linkageType: ''
    returnType: int
    signature: int cmd_RecordPadding(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:578,1
    - Dst: SSL_CTX_set_num_tickets
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:582,1
    - Dst: SSL_set_num_tickets
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 587
    functionName: cmd_NumTickets
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - atoi
    - SSL_set_num_tickets
    - SSL_CTX_set_num_tickets
    linkageType: ''
    returnType: int
    signature: int cmd_NumTickets(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - cmdopt
    - ','
    - flags
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 601
    functionName: SSL_CONF_CMD
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CONF_CMD(name, cmdopt, flags, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - cmdopt
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 604
    functionName: SSL_CONF_CMD_STRING
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CONF_CMD_STRING(name, cmdopt, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: SSL_CONF_CMD_SWITCH
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CONF_CMD_SWITCH(name, flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:722,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:725,1
    - Dst: strncasecmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:728,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - cctx
    - pcmd
    argTypes:
    - SSL_CONF_CTX*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 737
    functionName: ssl_conf_cmd_skip_prefix
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int ssl_conf_cmd_skip_prefix(SSL_CONF_CTX *cctx, const char **pcmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - cctx
    - t
    argTypes:
    - SSL_CONF_CTX*
    - ssl_conf_cmd_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 752
    functionName: ssl_conf_cmd_allowed
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_conf_cmd_allowed(SSL_CONF_CTX *cctx, const ssl_conf_cmd_tbl
      * t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:763,1
    - Dst: ssl_conf_cmd_allowed
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:764,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:766,1
    - Dst: strcasecmp
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:770,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - cctx
    - cmd
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 776
    functionName: ssl_conf_cmd_lookup
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - ssl_conf_cmd_allowed
    - OSSL_NELEM
    - strcmp
    - strcasecmp
    linkageType: ''
    returnType: ssl_conf_cmd_tbl
    signature: "ssl_conf_cmd_tbl *ssl_conf_cmd_lookup(SSL_CONF_CTX *cctx,\n                                                   const
      char *cmd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:784,1
    - Dst: ssl_set_option
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - cmd
    argTypes:
    - SSL_CONF_CTX*
    - ssl_conf_cmd_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 790
    functionName: ctrl_switch_option
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ssl_set_option
    linkageType: ''
    returnType: int
    signature: int ctrl_switch_option(SSL_CONF_CTX *cctx, const ssl_conf_cmd_tbl *
      cmd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:796,1
    - Dst: ssl_conf_cmd_skip_prefix
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:800,1
    - Dst: ssl_conf_cmd_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:803,1
    - Dst: ctrl_switch_option
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:808,1
    - Dst: ssl_conf_cmd_tbl*::cmd
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:812,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:818,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:819,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:825,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:826,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - cctx
    - cmd
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 830
    functionName: SSL_CONF_cmd
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 3
    functionsReached:
    - ctrl_switch_option
    - ERR_add_error_data
    - ssl_conf_cmd_skip_prefix
    - SSLerr
    - ssl_conf_cmd_tbl*::cmd
    - ssl_conf_cmd_lookup
    linkageType: ''
    returnType: int
    signature: int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CONF_cmd
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:848,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - cctx
    - pargc
    - pargv
    argTypes:
    - SSL_CONF_CTX*
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 863
    functionName: SSL_CONF_cmd_argv
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 3
    functionsReached:
    - SSL_CONF_cmd
    linkageType: ''
    returnType: int
    signature: int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_conf_cmd_skip_prefix
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:867,1
    - Dst: ssl_conf_cmd_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cctx
    - cmd
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 874
    functionName: SSL_CONF_cmd_value_type
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - ssl_conf_cmd_skip_prefix
    - ssl_conf_cmd_lookup
    linkageType: ''
    returnType: int
    signature: int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 881
    functionName: SSL_CONF_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 7
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SSL_CONF_CTX
    signature: SSL_CONF_CTX *SSL_CONF_CTX_new(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cmd_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:899,1
    - Dst: SSL_set0_CA_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:906,1
    - Dst: SSL_CTX_set0_CA_list
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:908,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:910,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - SSL_CONF_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 914
    functionName: SSL_CONF_CTX_finish
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 4
    functionsReached:
    - SSL_CTX_set0_CA_list
    - SSL_set0_CA_list
    - sk_X509_NAME_pop_free
    - cmd_PrivateKey
    linkageType: ''
    returnType: int
    signature: int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:921,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:922,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:923,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - SSL_CONF_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 926
    functionName: SSL_CONF_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: void
    signature: void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cctx
    - flags
    argTypes:
    - SSL_CONF_CTX*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 932
    functionName: SSL_CONF_CTX_set_flags
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cctx
    - flags
    argTypes:
    - SSL_CONF_CTX*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 938
    functionName: SSL_CONF_CTX_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned
      int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:944,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:948,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_conf.c:951,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cctx
    - pre
    argTypes:
    - SSL_CONF_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 955
    functionName: SSL_CONF_CTX_set1_prefix
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - cctx
    - ssl
    argTypes:
    - SSL_CONF_CTX*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 974
    functionName: SSL_CONF_CTX_set_ssl
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - cctx
    - ctx
    argTypes:
    - SSL_CONF_CTX*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 993
    functionName: SSL_CONF_CTX_set_ssl_ctx
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_conf.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: u32toLE
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_cbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: u32toLE(n, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u32toLE
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:48,1
    - Dst: u32toLE
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:49,1
    - Dst: u32toLE
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:50,1
    - Dst: u32toLE
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - md_out
    argTypes:
    - void*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: tls1_md5_final_raw
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - u32toLE
    linkageType: ''
    returnType: void
    signature: void tls1_md5_final_raw(void *ctx, unsigned char *md_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2n
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:57,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:58,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:59,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:60,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md_out
    argTypes:
    - void*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: tls1_sha1_final_raw
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - l2n
    linkageType: ''
    returnType: void
    signature: void tls1_sha1_final_raw(void *ctx, unsigned char *md_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2n
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - md_out
    argTypes:
    - void*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: tls1_sha256_final_raw
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - l2n
    linkageType: ''
    returnType: void
    signature: void tls1_sha256_final_raw(void *ctx, unsigned char *md_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2n8
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - md_out
    argTypes:
    - void*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: tls1_sha512_final_raw
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - l2n8
    linkageType: ''
    returnType: void
    signature: void tls1_sha512_final_raw(void *ctx, unsigned char *md_out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_type
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: ssl3_cbc_record_digest_supported
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_type
    linkageType: ''
    returnType: char
    signature: char ssl3_cbc_record_digest_supported(const EVP_MD_CTX *ctx)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:169,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:172,1
    - Dst: MD5_Init
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:174,1
    - Dst: SHA1_Init
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:184,1
    - Dst: SHA224_Init
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:192,1
    - Dst: SHA256_Init
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:200,1
    - Dst: SHA384_Init
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:208,1
    - Dst: SHA512_Init
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:218,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:234,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:237,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:238,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:239,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:336,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:337,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:339,1
    - Dst: md_transform
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:343,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:347,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:353,1
    - Dst: md_transform
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:378,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:379,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:380,1
    - Dst: md_transform
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:381,1
    - Dst: md_transform
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:383,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:386,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:387,1
    - Dst: md_transform
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:388,1
    - Dst: md_transform
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:390,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:394,1
    - Dst: constant_time_eq_8_s
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:405,1
    - Dst: constant_time_eq_8_s
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:406,1
    - Dst: constant_time_ge_8_s
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:415,1
    - Dst: constant_time_ge_8_s
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:416,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:422,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:440,1
    - Dst: md_transform
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:448,1
    - Dst: md_final_raw
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:449,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:455,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:458,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:458,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:462,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:464,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:465,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:466,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:473,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:474,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:478,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:481,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_cbc.c:485,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 172
    argCount: 10
    argNames:
    - ctx
    - md_out
    - md_out_size
    - header
    - data
    - data_plus_mac_size
    - data_plus_mac_plus_padding_size
    - mac_secret
    - mac_secret_length
    - is_sslv3
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char[]
    - unsigned char*
    - size_t
    - size_t
    - unsigned char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 487
    functionName: ssl3_cbc_digest_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - SHA384_Init
    - EVP_MD_CTX_md
    - SHA224_Init
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - md_final_raw
    - memcpy
    - constant_time_ge_8_s
    - SHA1_Init
    - SHA256_Init
    - ossl_assert
    - EVP_MD_CTX_new
    - constant_time_select_8
    - EVP_DigestFinal
    - constant_time_eq_8_s
    - MD5_Init
    - EVP_MD_CTX_type
    - EVP_DigestUpdate
    - memset
    - md_transform
    linkageType: ''
    returnType: int
    signature: "int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx,\n                           unsigned
      char *md_out,\n                           size_t *md_out_size,\n                           const
      unsigned char header[13],\n                           const unsigned char *data,\n
      \                          size_t data_plus_mac_size,\n                           size_t
      data_plus_mac_plus_padding_size,\n                           const unsigned
      char *mac_secret,\n                           size_t mac_secret_length, char
      is_sslv3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:27,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:31,1
    - Dst: EVP_des_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:31,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:32,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:32,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:35,1
    - Dst: EVP_idea_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:35,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:38,1
    - Dst: EVP_rc4
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:38,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:40,1
    - Dst: EVP_rc4_hmac_md5
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:40,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:44,1
    - Dst: EVP_rc2_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:44,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:49,1
    - Dst: EVP_rc2_40_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:49,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:51,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:51,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:52,1
    - Dst: EVP_aes_192_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:52,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:53,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:53,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:54,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:54,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:55,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:55,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:56,1
    - Dst: EVP_aes_128_ccm
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:56,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:57,1
    - Dst: EVP_aes_256_ccm
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:57,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:58,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:58,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:59,1
    - Dst: EVP_aes_256_cbc_hmac_sha1
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:59,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:60,1
    - Dst: EVP_aes_128_cbc_hmac_sha256
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:60,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:61,1
    - Dst: EVP_aes_256_cbc_hmac_sha256
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:61,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:63,1
    - Dst: EVP_aria_128_gcm
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:63,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:64,1
    - Dst: EVP_aria_256_gcm
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:64,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:67,1
    - Dst: EVP_camellia_128_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:67,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:68,1
    - Dst: EVP_camellia_256_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:68,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:71,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:71,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:75,1
    - Dst: EVP_seed_cbc
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:75,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:79,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:79,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:80,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:81,1
    - Dst: EVP_md5_sha1
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:81,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:83,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:83,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:84,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:85,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:86,1
    - Dst: EVP_sha224
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:86,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:87,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:87,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:88,1
    - Dst: EVP_sha384
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:88,1
    - Dst: EVP_add_digest
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:89,1
    - Dst: EVP_sha512
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:89,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:92,1
    - Dst: SSL_COMP_get_compression_methods
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:99,1
    - Dst: ssl_load_ciphers
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:102,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:106,1
    - Dst: OPENSSL_atexit
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 116
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_init.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - EVP_aes_192_cbc
    - EVP_camellia_256_cbc
    - EVP_add_digest
    - EVP_sha384
    - ssl_load_ciphers
    - OPENSSL_atexit
    - fprintf
    - EVP_add_cipher
    - EVP_aes_128_ccm
    - EVP_idea_cbc
    - EVP_des_ede3_cbc
    - EVP_sha512
    - EVP_aria_256_gcm
    - EVP_aes_128_cbc_hmac_sha1
    - EVP_sha256
    - EVP_camellia_128_cbc
    - SSL_COMP_get_compression_methods
    - EVP_des_cbc
    - EVP_aes_256_ccm
    - EVP_sha1
    - EVP_aes_256_cbc_hmac_sha256
    - EVP_rc2_40_cbc
    - EVP_sha224
    - EVP_aes_256_cbc
    - EVP_aria_128_gcm
    - EVP_chacha20_poly1305
    - EVP_aes_256_cbc_hmac_sha1
    - EVP_md5_sha1
    - EVP_aes_128_gcm
    - EVP_rc4
    - EVP_aes_128_cbc_hmac_sha256
    - EVP_aes_256_gcm
    - EVP_seed_cbc
    - EVP_md5
    - EVP_add_digest_alias
    - EVP_rc2_cbc
    - EVP_rc4_hmac_md5
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_ssl_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:128,1
    - Dst: ERR_load_SSL_strings
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_init.c
    functionUses: 0
    functionsReached:
    - ERR_load_SSL_strings
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_load_ssl_strings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_load_ssl_strings,\n                           ossl_init_load_ssl_strings)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:154,1
    - Dst: ssl_comp_free_compression_methods_int
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:157,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:163,1
    - Dst: err_free_strings_int
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 174
    functionName: ssl_library_stop
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_init.c
    functionUses: 0
    functionsReached:
    - ssl_comp_free_compression_methods_int
    - err_free_strings_int
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ssl_library_stop(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:193,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:205,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:208,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:212,1
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/ssl/ssl_init.c:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - opts
    - settings
    argTypes:
    - uint64_t
    - OPENSSL_INIT_SETTINGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 221
    functionName: OPENSSL_init_ssl
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_init.c
    functionUses: 8
    functionsReached:
    - OPENSSL_init_crypto
    - SSLerr
    - RUN_ONCE_ALT
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS * settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dest
    - os
    - data
    - len
    argTypes:
    - ASN1_OCTET_STRING**
    - ASN1_OCTET_STRING*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: ssl_session_oinit
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ssl_session_oinit(ASN1_OCTET_STRING **dest, ASN1_OCTET_STRING
      *os,\n                              unsigned char *data, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_session_oinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:99,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - os
    - data
    argTypes:
    - ASN1_OCTET_STRING**
    - ASN1_OCTET_STRING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: ssl_session_sinit
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_asn1.c
    functionUses: 0
    functionsReached:
    - strlen
    - ssl_session_oinit
    linkageType: ''
    returnType: void
    signature: "void ssl_session_sinit(ASN1_OCTET_STRING **dest, ASN1_OCTET_STRING
      *os,\n                              char *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:132,1
    - Dst: ssl_session_oinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:144,1
    - Dst: ssl_session_oinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:149,1
    - Dst: ssl_session_oinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:153,1
    - Dst: ssl_session_oinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:156,1
    - Dst: ssl_session_oinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:159,1
    - Dst: ssl_session_sinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:168,1
    - Dst: ssl_session_oinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:171,1
    - Dst: ssl_session_sinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:178,1
    - Dst: ssl_session_sinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:180,1
    - Dst: ssl_session_sinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:183,1
    - Dst: ssl_session_oinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:192,1
    - Dst: ssl_session_oinit
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:200,1
    - Dst: i2d_SSL_SESSION_ASN1
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:203,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - in
    - pp
    argTypes:
    - SSL_SESSION*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 205
    functionName: i2d_SSL_SESSION
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_asn1.c
    functionUses: 1
    functionsReached:
    - i2d_SSL_SESSION_ASN1
    - ssl_session_sinit
    - memset
    - ssl_session_oinit
    linkageType: ''
    returnType: int
    signature: int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:213,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pdst
    - src
    argTypes:
    - char**
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: ssl_session_strndup
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_asn1.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strndup
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int ssl_session_strndup(char **pdst, ASN1_OCTET_STRING *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - dst
    - pdstlen
    - src
    - maxlen
    argTypes:
    - unsigned char*
    - size_t*
    - ASN1_OCTET_STRING*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: ssl_session_memcpy
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_asn1.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ssl_session_memcpy(unsigned char *dst, size_t *pdstlen,\n                              ASN1_OCTET_STRING
      *src, size_t maxlen)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: d2i_SSL_SESSION_ASN1
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:248,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:254,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:262,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:269,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:276,1
    - Dst: ssl3_get_cipher_by_id
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:284,1
    - Dst: ssl_session_memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:288,1
    - Dst: ssl_session_memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:292,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:301,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:308,1
    - Dst: ssl_session_memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:312,1
    - Dst: ssl_session_strndup
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:319,1
    - Dst: ssl_session_strndup
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:323,1
    - Dst: ssl_session_strndup
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:325,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:331,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:342,1
    - Dst: ssl_session_strndup
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:352,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:359,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:371,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:381,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:389,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_asn1.c:391,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 119
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - SSL_SESSION**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 393
    functionName: d2i_SSL_SESSION
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_asn1.c
    functionUses: 2
    functionsReached:
    - X509_free
    - ssl3_get_cipher_by_id
    - ssl_session_strndup
    - SSL_SESSION_free
    - OPENSSL_free
    - M_ASN1_free_of
    - d2i_SSL_SESSION_ASN1
    - SSL_SESSION_new
    - ssl_session_memcpy
    - SSLerr
    - time
    linkageType: ''
    returnType: SSL_SESSION
    signature: "SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char
      **pp,\n                             long length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: SSL_test_functions
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_utst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct openssl_ssl_test_functions
    signature: struct openssl_ssl_test_functions *SSL_test_functions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: BIO_f_ssl
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_ssl(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:58,1
    - Dst: BIOerr
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:61,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:64,1
    - Dst: BIO_set_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:65,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: ssl_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_clear_flags
    - BIOerr
    - BIO_set_init
    - OPENSSL_zalloc
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int ssl_new(BIO *bi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:78,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:80,1
    - Dst: BIO_get_shutdown
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:81,1
    - Dst: BIO_get_init
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:82,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:83,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:85,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:86,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: ssl_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_init
    - BIO_clear_flags
    - OPENSSL_free
    - SSL_shutdown
    - BIO_get_shutdown
    - BIO_set_init
    - BIO_get_data
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int ssl_free(BIO *a)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:102,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:105,1
    - Dst: ssl_read_internal
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:107,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:109,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:116,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:123,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:127,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:133,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:136,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:139,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:143,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:147,1
    - Dst: BIO_set_retry_reason
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:157,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 4
    argNames:
    - b
    - buf
    - size
    - readbytes
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 160
    functionName: ssl_read
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_special
    - BIO_set_retry_reason
    - ssl_read_internal
    - SSL_get_error
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - time
    - BIO_get_data
    - SSL_renegotiate
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int ssl_read(BIO *b, char *buf, size_t size, size_t *readbytes)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:171,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:174,1
    - Dst: ssl_write_internal
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:176,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:178,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:185,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:192,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:196,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:201,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:204,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:207,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:211,1
    - Dst: BIO_set_retry_reason
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:219,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - b
    - buf
    - size
    - written
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 222
    functionName: ssl_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_special
    - BIO_set_retry_reason
    - SSL_get_error
    - ssl_write_internal
    - BIO_set_retry_write
    - BIO_clear_retry_flags
    - time
    - BIO_get_data
    - SSL_renegotiate
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int ssl_write(BIO *b, const char *buf, size_t size, size_t *written)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:232,1
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:233,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:239,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:242,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:244,1
    - Dst: SSL_clear
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:246,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:252,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:254,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:263,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:265,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:272,1
    - Dst: ssl_free
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:284,1
    - Dst: ssl_new
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:285,1
    - Dst: BIO_set_shutdown
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:288,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:291,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:294,1
    - Dst: BIO_set_next
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:295,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:296,1
    - Dst: BIO_set_init
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:298,1
    - Dst: BIO_get_shutdown
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:308,1
    - Dst: BIO_set_shutdown
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:311,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:314,1
    - Dst: SSL_pending
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:317,1
    - Dst: BIO_pending
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:319,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:322,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:323,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:324,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:332,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:333,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:340,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:344,1
    - Dst: BIO_set_retry_reason
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:346,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:347,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:349,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:351,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:354,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:357,1
    - Dst: BIO_set_retry_reason
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:358,1
    - Dst: BIO_get_retry_reason
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:358,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:361,1
    - Dst: BIO_set_retry_reason
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:362,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:370,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:371,1
    - Dst: SSL_dup
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:372,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:381,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:387,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 147
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 391
    functionName: ssl_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_pending
    - BIO_get_shutdown
    - BIO_ctrl
    - SSL_set_connect_state
    - SSL_set_accept_state
    - BIO_copy_next_retry
    - SSL_do_handshake
    - BIO_push
    - time
    - SSL_clear
    - SSL_free
    - BIO_set_retry_reason
    - BIO_get_retry_reason
    - BIO_set_retry_special
    - SSL_dup
    - SSL_set_bio
    - BIO_set_flags
    - SSL_pending
    - BIO_set_init
    - BIO_clear_retry_flags
    - ssl_new
    - ssl_free
    - BIO_set_shutdown
    - SSL_get_error
    - SSL_shutdown
    - SSL_get_rbio
    - BIO_up_ref
    - BIO_next
    - BIO_get_data
    - BIO_set_next
    linkageType: ''
    returnType: long
    signature: long ssl_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:399,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 410
    functionName: ssl_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: long ssl_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:416,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 412
    functionDepth: 4
    functionLinenumber: 412
    functionLinenumberEnd: 419
    functionName: ssl_puts
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int ssl_puts(BIO *bp, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:426,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:426,1
    - Dst: BIO_new_ssl_connect
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:428,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:430,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:434,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 438
    functionName: BIO_new_buffer_ssl_connect
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_new_ssl_connect
    - BIO_f_buffer
    - BIO_free
    - BIO_push
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:445,1
    - Dst: BIO_s_connect
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:445,1
    - Dst: BIO_new_ssl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:447,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:449,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:453,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 456
    functionName: BIO_new_ssl_connect
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 3
    functionsReached:
    - BIO_new_ssl
    - BIO_s_connect
    - BIO_free
    - BIO_push
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_ssl_connect(SSL_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:463,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:463,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:465,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:466,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:470,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:472,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - client
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 476
    functionName: BIO_new_ssl
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 6
    functionsReached:
    - BIO_f_ssl
    - BIO_set_ssl
    - SSL_set_connect_state
    - BIO_free
    - SSL_new
    - SSL_set_accept_state
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_ssl(SSL_CTX *ctx, int client)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_find_type
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:481,1
    - Dst: BIO_find_type
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:482,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:485,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:486,1
    - Dst: SSL_copy_session_id
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - t
    - f
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 492
    functionName: BIO_ssl_copy_session_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_find_type
    - SSL_copy_session_id
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int BIO_ssl_copy_session_id(BIO *t, BIO *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:498,1
    - Dst: BIO_method_type
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:499,1
    - Dst: BIO_get_data
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:501,1
    - Dst: SSL_shutdown
      Src: /src/openssl-1.1.1g/ssl/bio_ssl.c:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 505
    functionName: BIO_ssl_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_next
    - BIO_get_data
    - SSL_shutdown
    - BIO_method_type
    linkageType: ''
    returnType: void
    signature: void BIO_ssl_shutdown(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_2_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: TLSv1_2_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_2_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *TLSv1_2_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_2_server_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: TLSv1_2_server_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_2_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *TLSv1_2_server_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_2_client_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: TLSv1_2_client_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_2_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *TLSv1_2_client_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_1_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: TLSv1_1_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_1_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *TLSv1_1_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_1_server_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: TLSv1_1_server_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_1_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *TLSv1_1_server_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_1_client_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: TLSv1_1_client_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_1_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *TLSv1_1_client_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: TLSv1_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *TLSv1_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_server_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: TLSv1_server_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *TLSv1_server_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_client_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: TLSv1_client_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *TLSv1_client_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslv3_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: SSLv3_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - sslv3_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *SSLv3_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslv3_server_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: SSLv3_server_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - sslv3_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *SSLv3_server_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslv3_client_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: SSLv3_client_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - sslv3_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *SSLv3_client_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_2_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: DTLSv1_2_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_2_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *DTLSv1_2_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_2_server_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: DTLSv1_2_server_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_2_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *DTLSv1_2_server_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_2_client_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: DTLSv1_2_client_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_2_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *DTLSv1_2_client_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: DTLSv1_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *DTLSv1_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_server_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: DTLSv1_server_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *DTLSv1_server_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_client_method
      Src: /src/openssl-1.1.1g/ssl/methods.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: DTLSv1_client_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *DTLSv1_client_method(void)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/ssl_stat.c:16,1
    - Dst: SSL_get_state
      Src: /src/openssl-1.1.1g/ssl/ssl_stat.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 103
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 119
    functionName: SSL_state_string_long
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_stat.c
    functionUses: 4
    functionsReached:
    - SSL_get_state
    - ossl_statem_in_error
    linkageType: ''
    returnType: char
    signature: char *SSL_state_string_long(const SSL *s)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/ssl_stat.c:123,1
    - Dst: SSL_get_state
      Src: /src/openssl-1.1.1g/ssl/ssl_stat.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 103
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 226
    functionName: SSL_state_string
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_stat.c
    functionUses: 1
    functionsReached:
    - SSL_get_state
    - ossl_statem_in_error
    linkageType: ''
    returnType: char
    signature: char *SSL_state_string(const SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: SSL_alert_type_string_long
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_alert_type_string_long(int value)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: SSL_alert_type_string
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_alert_type_string(int value)
  - BBCount: 32
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 65
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 318
    functionName: SSL_alert_desc_string
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_alert_desc_string(int value)
  - BBCount: 33
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 67
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 388
    functionName: SSL_alert_desc_string_long
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_stat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_alert_desc_string_long(int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/packet.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkt
    - len
    - allocbytes
    argTypes:
    - WPACKET*
    - size_t
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: WPACKET_allocate_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - WPACKET_reserve_bytes
    linkageType: ''
    returnType: int
    signature: int WPACKET_allocate_bytes(WPACKET *pkt, size_t len, unsigned char
      **allocbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_start_sub_packet_len__
      Src: /src/openssl-1.1.1g/ssl/packet.c:29,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/packet.c:30,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/packet.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - pkt
    - len
    - allocbytes
    - lenbytes
    argTypes:
    - WPACKET*
    - size_t
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: WPACKET_sub_allocate_bytes__
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_allocate_bytes
    - WPACKET_close
    - WPACKET_start_sub_packet_len__
    linkageType: ''
    returnType: int
    signature: "int WPACKET_sub_allocate_bytes__(WPACKET *pkt, size_t len,\n                                 unsigned
      char **allocbytes, size_t lenbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: GETBUF
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETBUF(p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:43,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/ssl/packet.c:62,1
    - Dst: WPACKET_get_curr
      Src: /src/openssl-1.1.1g/ssl/packet.c:66,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - pkt
    - len
    - allocbytes
    argTypes:
    - WPACKET*
    - size_t
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 69
    functionName: WPACKET_reserve_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - WPACKET_get_curr
    - ossl_assert
    - BUF_MEM_grow
    linkageType: ''
    returnType: int
    signature: int WPACKET_reserve_bytes(WPACKET *pkt, size_t len, unsigned char **allocbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/packet.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pkt
    - len
    - allocbytes
    - lenbytes
    argTypes:
    - WPACKET*
    - size_t
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: WPACKET_sub_reserve_bytes__
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_reserve_bytes
    linkageType: ''
    returnType: int
    signature: "int WPACKET_sub_reserve_bytes__(WPACKET *pkt, size_t len,\n                                unsigned
      char **allocbytes, size_t lenbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - lenbytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: maxmaxsize
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t maxmaxsize(size_t lenbytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/packet.c:97,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/packet.c:98,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/packet.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/packet.c:109,1
    - Dst: GETBUF
      Src: /src/openssl-1.1.1g/ssl/packet.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - pkt
    - lenbytes
    argTypes:
    - WPACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 116
    functionName: wpacket_intern_init_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_allocate_bytes
    - OPENSSL_free
    - OPENSSL_zalloc
    - SSLerr
    - GETBUF
    linkageType: ''
    returnType: int
    signature: int wpacket_intern_init_len(WPACKET *pkt, size_t lenbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: maxmaxsize
      Src: /src/openssl-1.1.1g/ssl/packet.c:121,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:124,1
    - Dst: wpacket_intern_init_len
      Src: /src/openssl-1.1.1g/ssl/packet.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pkt
    - buf
    - len
    - lenbytes
    argTypes:
    - WPACKET*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: WPACKET_init_static_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - wpacket_intern_init_len
    - maxmaxsize
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int WPACKET_init_static_len(WPACKET *pkt, unsigned char *buf, size_t
      len,\n                            size_t lenbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:137,1
    - Dst: maxmaxsize
      Src: /src/openssl-1.1.1g/ssl/packet.c:142,1
    - Dst: wpacket_intern_init_len
      Src: /src/openssl-1.1.1g/ssl/packet.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkt
    - buf
    - lenbytes
    argTypes:
    - WPACKET*
    - BUF_MEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: WPACKET_init_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 5
    functionsReached:
    - wpacket_intern_init_len
    - maxmaxsize
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_init_len(WPACKET *pkt, BUF_MEM *buf, size_t lenbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_init_len
      Src: /src/openssl-1.1.1g/ssl/packet.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkt
    - buf
    argTypes:
    - WPACKET*
    - BUF_MEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: WPACKET_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 4
    functionsReached:
    - WPACKET_init_len
    linkageType: ''
    returnType: int
    signature: int WPACKET_init(WPACKET *pkt, BUF_MEM *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - flags
    argTypes:
    - WPACKET*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: WPACKET_set_flags
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_set_flags(WPACKET *pkt, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - value
    - len
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 177
    functionName: put_value
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int put_value(unsigned char *data, size_t value, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: put_value
      Src: /src/openssl-1.1.1g/ssl/packet.c:213,1
    - Dst: GETBUF
      Src: /src/openssl-1.1.1g/ssl/packet.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/packet.c:219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - pkt
    - sub
    - doclose
    argTypes:
    - WPACKET*
    - WPACKET_SUB*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 223
    functionName: wpacket_intern_close
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - GETBUF
    - put_value
    linkageType: ''
    returnType: int
    signature: int wpacket_intern_close(WPACKET *pkt, WPACKET_SUB *sub, int doclose)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:229,1
    - Dst: wpacket_intern_close
      Src: /src/openssl-1.1.1g/ssl/packet.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 238
    functionName: WPACKET_fill_lengths
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - wpacket_intern_close
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_fill_lengths(WPACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wpacket_intern_close
      Src: /src/openssl-1.1.1g/ssl/packet.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: WPACKET_close
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 4
    functionsReached:
    - wpacket_intern_close
    linkageType: ''
    returnType: int
    signature: int WPACKET_close(WPACKET *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wpacket_intern_close
      Src: /src/openssl-1.1.1g/ssl/packet.c:263,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/packet.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 270
    functionName: WPACKET_finish
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 6
    functionsReached:
    - wpacket_intern_close
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int WPACKET_finish(WPACKET *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:278,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/packet.c:281,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/packet.c:282,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/packet.c:296,1
    - Dst: GETBUF
      Src: /src/openssl-1.1.1g/ssl/packet.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pkt
    - lenbytes
    argTypes:
    - WPACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 302
    functionName: WPACKET_start_sub_packet_len__
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - WPACKET_allocate_bytes
    - OPENSSL_zalloc
    - SSLerr
    - ossl_assert
    - GETBUF
    linkageType: ''
    returnType: int
    signature: int WPACKET_start_sub_packet_len__(WPACKET *pkt, size_t lenbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_start_sub_packet_len__
      Src: /src/openssl-1.1.1g/ssl/packet.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: WPACKET_start_sub_packet
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 2
    functionsReached:
    - WPACKET_start_sub_packet_len__
    linkageType: ''
    returnType: int
    signature: int WPACKET_start_sub_packet(WPACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:314,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/packet.c:315,1
    - Dst: put_value
      Src: /src/openssl-1.1.1g/ssl/packet.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - pkt
    - val
    - size
    argTypes:
    - WPACKET*
    - unsigned int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 320
    functionName: WPACKET_put_bytes__
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_allocate_bytes
    - ossl_assert
    - put_value
    linkageType: ''
    returnType: int
    signature: int WPACKET_put_bytes__(WPACKET *pkt, unsigned int val, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:328,1
    - Dst: maxmaxsize
      Src: /src/openssl-1.1.1g/ssl/packet.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - pkt
    - maxsize
    argTypes:
    - WPACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 345
    functionName: WPACKET_set_max_size
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - maxmaxsize
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_set_max_size(WPACKET *pkt, size_t maxsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/packet.c:354,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/packet.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pkt
    - ch
    - len
    argTypes:
    - WPACKET*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 360
    functionName: WPACKET_memset
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_allocate_bytes
    - memset
    linkageType: ''
    returnType: int
    signature: int WPACKET_memset(WPACKET *pkt, int ch, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/packet.c:369,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/packet.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pkt
    - src
    - len
    argTypes:
    - WPACKET*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 375
    functionName: WPACKET_memcpy
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - WPACKET_allocate_bytes
    - memcpy
    linkageType: ''
    returnType: int
    signature: int WPACKET_memcpy(WPACKET *pkt, const void *src, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_start_sub_packet_len__
      Src: /src/openssl-1.1.1g/ssl/packet.c:380,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/packet.c:381,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/packet.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - pkt
    - src
    - len
    - lenbytes
    argTypes:
    - WPACKET*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: WPACKET_sub_memcpy__
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_close
    - WPACKET_memcpy
    - WPACKET_start_sub_packet_len__
    linkageType: ''
    returnType: int
    signature: "int WPACKET_sub_memcpy__(WPACKET *pkt, const void *src, size_t len,\n
      \                        size_t lenbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - written
    argTypes:
    - WPACKET*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: WPACKET_get_total_written
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 6
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_get_total_written(WPACKET *pkt, size_t *written)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/packet.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - len
    argTypes:
    - WPACKET*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: WPACKET_get_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_get_length(WPACKET *pkt, size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GETBUF
      Src: /src/openssl-1.1.1g/ssl/packet.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: WPACKET_get_curr
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - GETBUF
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *WPACKET_get_curr(WPACKET *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/packet.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: WPACKET_cleanup
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void WPACKET_cleanup(WPACKET *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: SSL_add_ssl_module
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_mcnf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_add_ssl_module(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:33,1
    - Dst: conf_ssl_name_find
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:39,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:41,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:42,1
    - Dst: conf_ssl_get
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:46,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:47,1
    - Dst: SSL_CONF_CTX_set_ssl
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:55,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:58,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:64,1
    - Dst: conf_ssl_get_cmd
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:68,1
    - Dst: SSL_CONF_cmd
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:69,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:72,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:74,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:75,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:80,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:82,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 4
    argNames:
    - s
    - ctx
    - name
    - system
    argTypes:
    - SSL*
    - SSL_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 84
    functionName: ssl_do_config
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_mcnf.c
    functionUses: 0
    functionsReached:
    - SSL_CONF_CTX_finish
    - SSL_CONF_cmd
    - conf_ssl_get
    - SSL_CONF_CTX_set_ssl_ctx
    - SSL_CONF_CTX_free
    - ERR_add_error_data
    - SSL_CONF_CTX_set_ssl
    - SSL_CONF_CTX_set_flags
    - SSLerr
    - SSL_CONF_CTX_new
    - conf_ssl_get_cmd
    - conf_ssl_name_find
    linkageType: ''
    returnType: int
    signature: int ssl_do_config(SSL *s, SSL_CTX *ctx, const char *name, int system)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_do_config
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - name
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: SSL_config
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_mcnf.c
    functionUses: 0
    functionsReached:
    - ssl_do_config
    linkageType: ''
    returnType: int
    signature: int SSL_config(SSL *s, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_do_config
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: SSL_CTX_config
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_mcnf.c
    functionUses: 3
    functionsReached:
    - ssl_do_config
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_config(SSL_CTX *ctx, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_do_config
      Src: /src/openssl-1.1.1g/ssl/ssl_mcnf.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: ssl_ctx_system_config
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_mcnf.c
    functionUses: 0
    functionsReached:
    - ssl_do_config
    linkageType: ''
    returnType: void
    signature: void ssl_ctx_system_config(SSL_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:17,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:17,1
    - Dst: SSL*::handshake_func
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:18,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:22,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:29,1
    - Dst: dtls1_write_bytes
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - s
    - type
    - buf_
    - len
    - written
    argTypes:
    - SSL*
    - int
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 34
    functionName: dtls1_write_app_data_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_msg.c
    functionUses: 0
    functionsReached:
    - dtls1_write_bytes
    - ossl_statem_get_in_handshake
    - SSLerr
    - SSL_in_init
    - SSL*::handshake_func
    linkageType: ''
    returnType: int
    signature: "int dtls1_write_app_data_bytes(SSL *s, int type, const void *buf_,
      size_t len,\n                               size_t *written)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:46,1
    - Dst: do_dtls1_write
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:50,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:55,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:58,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/d1_msg.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 72
    functionName: dtls1_dispatch_alert
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_msg.c
    functionUses: 0
    functionsReached:
    - cb
    - do_dtls1_write
    - SSL*::msg_callback
    - memset
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int dtls1_dispatch_alert(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3201
    functionDepth: 0
    functionLinenumber: 3201
    functionLinenumberEnd: 3209
    functionName: cipher_compare
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cipher_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3213,1
    - Dst: qsort
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3215,1
    - Dst: qsort
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3211
    functionDepth: 0
    functionLinenumber: 3211
    functionLinenumberEnd: 3218
    functionName: ssl_sort_cipher_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void ssl_sort_cipher_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_undefined_function
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ssl
    - r
    - s
    - t
    - u
    - v
    - w
    - x
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3220
    functionDepth: 1
    functionLinenumber: 3220
    functionLinenumberEnd: 3232
    functionName: ssl_undefined_function_1
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl_undefined_function
    linkageType: ''
    returnType: int
    signature: "int ssl_undefined_function_1(SSL *ssl, unsigned char *r, size_t s,\n
      \                                   const char * t, size_t u,\n                                    const
      unsigned char * v, size_t w, int x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3251
    functionDepth: 0
    functionLinenumber: 3251
    functionLinenumberEnd: 3258
    functionName: ssl3_default_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long ssl3_default_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3260
    functionDepth: 0
    functionLinenumber: 3260
    functionLinenumberEnd: 3263
    functionName: ssl3_num_ciphers
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl3_num_ciphers(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - u
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3271
      start: 3265
    functionDepth: 0
    functionLinenumber: 3265
    functionLinenumberEnd: 3271
    functionName: ssl3_get_cipher
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SSL_CIPHER
    signature: SSL_CIPHER *ssl3_get_cipher(unsigned int u)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3280,1
    - Dst: WPACKET_start_sub_packet_u24
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - s
    - pkt
    - htype
    argTypes:
    - SSL*
    - WPACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3285
      start: 3273
    functionDepth: 1
    functionLinenumber: 3273
    functionLinenumberEnd: 3285
    functionName: ssl3_set_handshake_header
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - WPACKET_start_sub_packet_u24
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: int
    signature: int ssl3_set_handshake_header(SSL *s, WPACKET *pkt, int htype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_do_write
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3287
    functionDepth: 1
    functionLinenumber: 3287
    functionLinenumberEnd: 3290
    functionName: ssl3_handshake_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_do_write
    linkageType: ''
    returnType: int
    signature: int ssl3_handshake_write(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3296,1
    - Dst: SSL_SRP_CTX_init
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3301,1
    - Dst: SSL*::method::ssl_clear
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3292
    functionDepth: 1
    functionLinenumber: 3292
    functionLinenumberEnd: 3311
    functionName: ssl3_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - SSL_SRP_CTX_init
    - OPENSSL_zalloc
    - SSL*::method::ssl_clear
    linkageType: ''
    returnType: int
    signature: int ssl3_new(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_cleanup_key_block
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3318,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3321,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3323,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3327,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3328,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3329,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3330,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3331,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3332,1
    - Dst: ssl3_free_digest_list
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3333,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3334,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3335,1
    - Dst: SSL_SRP_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3338,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3313
    functionDepth: 2
    functionLinenumber: 3313
    functionLinenumberEnd: 3342
    functionName: ssl3_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_cleanup_key_block
    - OPENSSL_free
    - SSL_SRP_CTX_free
    - EVP_PKEY_free
    - ssl3_free_digest_list
    - OPENSSL_clear_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: void
    signature: void ssl3_free(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_cleanup_key_block
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3346,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3347,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3348,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3349,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3350,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3351,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3352,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3355,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3356,1
    - Dst: ssl3_free_digest_list
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3359,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3361,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3362,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3365,1
    - Dst: ssl_free_wbio_buffer
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3367,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3379
      start: 3344
    functionDepth: 2
    functionLinenumber: 3344
    functionLinenumberEnd: 3379
    functionName: ssl3_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_cleanup_key_block
    - OPENSSL_free
    - memset
    - ssl_free_wbio_buffer
    - EVP_PKEY_free
    - ssl3_free_digest_list
    - OPENSSL_clear_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: int
    signature: int ssl3_clear(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3382
    functionDepth: 1
    functionLinenumber: 3382
    functionLinenumberEnd: 3385
    functionName: srp_password_from_info_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *srp_password_from_info_cb(SSL *s, void *arg)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3416,1
    - Dst: ssl_dh_to_pkey
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3419,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3421,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3424,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3425,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3426,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3427,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3430,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3437,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3451,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3454,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3456,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3459,1
    - Dst: tls1_set_groups
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3462,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3481,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3487,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3489,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3492,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3493,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3497,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3516,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3526,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3543,1
    - Dst: ssl_cert_set1_chain
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3558,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3558,1
    - Dst: ssl_cert_set0_chain
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3560,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3560,1
    - Dst: ssl_cert_add1_chain_cert
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3564,1
    - Dst: ssl_cert_add0_chain_cert
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3566,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3569,1
    - Dst: ssl_cert_select_current
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3574,1
    - Dst: ssl_cert_set_current
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3595,1
    - Dst: tls1_group_id_lookup
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3612,1
    - Dst: tls1_set_groups
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3624,1
    - Dst: tls1_set_groups_list
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3628,1
    - Dst: tls1_shared_group
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3633,1
    - Dst: tls1_group_id_lookup
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3636,1
    - Dst: tls1_set_sigalgs
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3644,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3647,1
    - Dst: tls1_set_sigalgs
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3650,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3653,1
    - Dst: ssl3_set_req_cert_type
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3668,1
    - Dst: ssl_build_cert_chain
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3671,1
    - Dst: ssl_cert_set_cert_store
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3674,1
    - Dst: ssl_cert_set_cert_store
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3677,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3696,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3709,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 239
    argCount: 4
    argNames:
    - s
    - cmd
    - larg
    - parg
    argTypes:
    - SSL*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3390
    functionDepth: 2
    functionLinenumber: 3390
    functionLinenumberEnd: 3733
    functionName: ssl3_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - tls1_set_groups
    - EVP_PKEY_up_ref
    - EC_GROUP_get_curve_name
    - STACK_OF
    - ssl_cert_select_current
    - tls1_set_sigalgs_list
    - ssl_cert_add0_chain_cert
    - ssl_build_cert_chain
    - OPENSSL_free
    - tls1_shared_group
    - SSLerr
    - tls1_set_groups_list
    - ssl_cert_set_current
    - ssl_cert_set_cert_store
    - ssl_security
    - ssl_dh_to_pkey
    - OPENSSL_strdup
    - ssl_cert_add1_chain_cert
    - tls1_group_id_lookup
    - ssl_cert_set1_chain
    - EC_KEY_get0_group
    - ssl3_set_req_cert_type
    - ssl_cert_set0_chain
    - tls1_set_sigalgs
    - EVP_PKEY_free
    - EVP_PKEY_security_bits
    - strlen
    linkageType: ''
    returnType: long
    signature: long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - s
    - cmd
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3761
      start: 3735
    functionDepth: 0
    functionLinenumber: 3735
    functionLinenumberEnd: 3761
    functionName: ssl3_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long ssl3_callback_ctrl(SSL *s, int cmd, void (*fp) (void))
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3772,1
    - Dst: ssl_dh_to_pkey
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3775,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3777,1
    - Dst: ssl_ctx_security
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3780,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3781,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3782,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3783,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3786,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3792,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3806,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3809,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3811,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3814,1
    - Dst: tls1_set_groups
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3817,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3835,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3839,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3841,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3844,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3849,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3851,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3854,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3884,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3888,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3888,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3889,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3892,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3893,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3901,1
    - Dst: BUF_strdup
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3902,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3903,1
    - Dst: tls1_set_groups
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3919,1
    - Dst: tls1_set_groups_list
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3924,1
    - Dst: tls1_set_sigalgs
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3929,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3932,1
    - Dst: tls1_set_sigalgs
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3935,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3938,1
    - Dst: ssl3_set_req_cert_type
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3941,1
    - Dst: ssl_build_cert_chain
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3944,1
    - Dst: ssl_cert_set_cert_store
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3947,1
    - Dst: ssl_cert_set_cert_store
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3950,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3955,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3956,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3960,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3961,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3968,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3970,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3974,1
    - Dst: ssl_cert_set1_chain
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3980,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3980,1
    - Dst: ssl_cert_set0_chain
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3982,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3982,1
    - Dst: ssl_cert_add1_chain_cert
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3986,1
    - Dst: ssl_cert_add0_chain_cert
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3988,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3991,1
    - Dst: ssl_cert_select_current
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3995,1
    - Dst: ssl_cert_set_current
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:3998,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 170
    argCount: 4
    argNames:
    - ctx
    - cmd
    - larg
    - parg
    argTypes:
    - SSL_CTX*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4004
      start: 3763
    functionDepth: 2
    functionLinenumber: 3763
    functionLinenumberEnd: 4004
    functionName: ssl3_ctx_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - tls1_set_groups
    - EC_GROUP_get_curve_name
    - STACK_OF
    - ssl_cert_select_current
    - BUF_strdup
    - tls1_set_sigalgs_list
    - ssl_cert_add0_chain_cert
    - ssl_build_cert_chain
    - ssl_ctx_security
    - OPENSSL_free
    - memcpy
    - SSLerr
    - tls1_set_groups_list
    - ssl_cert_set_current
    - ssl_cert_set_cert_store
    - ssl_dh_to_pkey
    - OPENSSL_strdup
    - ssl_cert_add1_chain_cert
    - sk_X509_pop_free
    - ssl_cert_set1_chain
    - EC_KEY_get0_group
    - sk_X509_push
    - sk_X509_new_null
    - ssl3_set_req_cert_type
    - ssl_cert_set0_chain
    - tls1_set_sigalgs
    - EVP_PKEY_free
    - EVP_PKEY_security_bits
    - strlen
    linkageType: ''
    returnType: long
    signature: long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - ctx
    - cmd
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4056
      start: 4006
    functionDepth: 0
    functionLinenumber: 4006
    functionLinenumberEnd: 4056
    functionName: ssl3_ctx_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp) (void))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_bsearch_ssl_cipher_id
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4064,1
    - Dst: OBJ_bsearch_ssl_cipher_id
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4067,1
    - Dst: OBJ_bsearch_ssl_cipher_id
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4071
      start: 4058
    functionDepth: 0
    functionLinenumber: 4058
    functionLinenumberEnd: 4071
    functionName: ssl3_get_cipher_by_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 1
    functionsReached:
    - OBJ_bsearch_ssl_cipher_id
    linkageType: ''
    returnType: SSL_CIPHER
    signature: SSL_CIPHER *ssl3_get_cipher_by_id(uint32_t id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4080,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4084,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4093,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - stdname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4100
      start: 4073
    functionDepth: 1
    functionLinenumber: 4073
    functionLinenumberEnd: 4100
    functionName: ssl3_get_cipher_by_std_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OSSL_NELEM
    linkageType: ''
    returnType: SSL_CIPHER
    signature: SSL_CIPHER *ssl3_get_cipher_by_std_name(const char *stdname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_get_cipher_by_id
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4106
    functionDepth: 1
    functionLinenumber: 4106
    functionLinenumberEnd: 4111
    functionName: ssl3_get_cipher_by_char
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_get_cipher_by_id
    linkageType: ''
    returnType: SSL_CIPHER
    signature: SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - c
    - pkt
    - len
    argTypes:
    - SSL_CIPHER*
    - WPACKET*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4125
      start: 4113
    functionDepth: 1
    functionLinenumber: 4113
    functionLinenumberEnd: 4125
    functionName: ssl3_put_cipher_by_char
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: int
    signature: int ssl3_put_cipher_by_char(const SSL_CIPHER *c, WPACKET *pkt, size_t
      *len)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4139,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4142,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4144,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4157,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4157,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4159,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4160,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4161,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4163,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4163,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4165,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4166,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4167,1
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4172,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4182,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4183,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4186,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4189,1
    - Dst: sk_SSL_CIPHER_new_reserve
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4196,1
    - Dst: sk_SSL_CIPHER_push
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4200,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4202,1
    - Dst: sk_SSL_CIPHER_push
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4204,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4208,1
    - Dst: sk_SSL_CIPHER_push
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4210,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4223,1
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4235,1
    - Dst: tls1_set_cert_validity
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4243,1
    - Dst: ssl_set_masks
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4244,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4247,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4248,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4251,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4254,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4255,1
    - Dst: DTLS_VERSION_GT
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4256,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4263,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4284,1
    - Dst: tls1_check_ec_tmp_key
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4294,1
    - Dst: sk_SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4300,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4303,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4310,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4315,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4317,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4325,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4330,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 113
    argCount: 3
    argNames:
    - s
    - clnt
    - srvr
    argTypes:
    - SSL*
    - STACK_OF*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4333
      start: 4135
    functionDepth: 1
    functionLinenumber: 4135
    functionLinenumberEnd: 4333
    functionName: ssl3_choose_cipher
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_free
    - DTLS_VERSION_LT
    - sk_SSL_CIPHER_value
    - STACK_OF
    - tls1_suiteb
    - sk_SSL_CIPHER_new_reserve
    - SSL_IS_DTLS
    - fprintf
    - sk_SSL_CIPHER_push
    - tls1_check_ec_tmp_key
    - ssl_set_masks
    - sk_SSL_CIPHER_find
    - EVP_sha256
    - ssl_md
    - sk_SSL_CIPHER_num
    - ssl_security
    - SSL_IS_TLS13
    - tls1_set_cert_validity
    - ssl_has_cert
    - DTLS_VERSION_GT
    linkageType: ''
    returnType: SSL_CIPHER
    signature: "SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,\n
      \                                    STACK_OF(SSL_CIPHER) *srvr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4341,1
    - Dst: ssl_set_sig_mask
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4343,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4349,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4350,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4351,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4357,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4361,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4367,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4371,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4381,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 20
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4385
      start: 4335
    functionDepth: 3
    functionLinenumber: 4335
    functionLinenumberEnd: 4385
    functionName: ssl3_get_req_cert_type
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - WPACKET_put_bytes_u8
    - ssl_set_sig_mask
    - WPACKET_memcpy
    linkageType: ''
    returnType: int
    signature: int ssl3_get_req_cert_type(SSL *s, WPACKET *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4389,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - c
    - p
    - len
    argTypes:
    - CERT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4387
    functionDepth: 1
    functionLinenumber: 4387
    functionLinenumberEnd: 4401
    functionName: ssl3_set_req_cert_type
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int ssl3_set_req_cert_type(CERT *c, const unsigned char *p, size_t
      len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_in_before
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4411,1
    - Dst: ssl3_send_alert
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4418,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4427,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4441,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4452
      start: 4403
    functionDepth: 1
    functionLinenumber: 4403
    functionLinenumberEnd: 4452
    functionName: ssl3_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_send_alert
    - SSL*::method::ssl_read_bytes
    - SSL*::method::ssl_dispatch_alert
    - SSL_in_before
    linkageType: ''
    returnType: int
    signature: int ssl3_shutdown(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4456,1
    - Dst: ssl3_renegotiate_check
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4458,1
    - Dst: SSL*::method::ssl_write_bytes
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - s
    - buf
    - len
    - written
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4462
    functionName: ssl3_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_renegotiate_check
    - SSL*::method::ssl_write_bytes
    - clear_sys_error
    linkageType: ''
    returnType: int
    signature: int ssl3_write(SSL *s, const void *buf, size_t len, size_t *written)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4469,1
    - Dst: ssl3_renegotiate_check
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4471,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4474,1
    - Dst: ossl_statem_set_in_handshake
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4484,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4486,1
    - Dst: ossl_statem_set_in_handshake
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - s
    - buf
    - len
    - peek
    - readbytes
    argTypes:
    - SSL*
    - void*
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4493
      start: 4464
    functionDepth: 1
    functionLinenumber: 4464
    functionLinenumberEnd: 4493
    functionName: ssl3_read_internal
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::method::ssl_read_bytes
    - ssl3_renegotiate_check
    - ossl_statem_set_in_handshake
    - clear_sys_error
    linkageType: ''
    returnType: int
    signature: "int ssl3_read_internal(SSL *s, void *buf, size_t len, int peek,\n
      \                             size_t *readbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_read_internal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - buf
    - len
    - readbytes
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4495
    functionDepth: 2
    functionLinenumber: 4495
    functionLinenumberEnd: 4498
    functionName: ssl3_read
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_read_internal
    linkageType: ''
    returnType: int
    signature: int ssl3_read(SSL *s, void *buf, size_t len, size_t *readbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_read_internal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - buf
    - len
    - readbytes
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4503
      start: 4500
    functionDepth: 2
    functionLinenumber: 4500
    functionLinenumberEnd: 4503
    functionName: ssl3_peek
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_read_internal
    linkageType: ''
    returnType: int
    signature: int ssl3_peek(SSL *s, void *buf, size_t len, size_t *readbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4512
      start: 4505
    functionDepth: 0
    functionLinenumber: 4505
    functionLinenumberEnd: 4512
    functionName: ssl3_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl3_renegotiate(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_read_pending
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4527,1
    - Dst: RECORD_LAYER_write_pending
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4528,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4529,1
    - Dst: ossl_statem_set_renegotiate
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - s
    - initok
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4543
      start: 4522
    functionDepth: 1
    functionLinenumber: 4522
    functionLinenumberEnd: 4543
    functionName: ssl3_renegotiate_check
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 2
    functionsReached:
    - ossl_statem_set_renegotiate
    - RECORD_LAYER_write_pending
    - SSL_in_init
    - RECORD_LAYER_read_pending
    linkageType: ''
    returnType: int
    signature: int ssl3_renegotiate_check(SSL *s, int initok)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4565
      start: 4551
    functionDepth: 0
    functionLinenumber: 4551
    functionLinenumberEnd: 4565
    functionName: ssl_get_algorithm2
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long ssl_get_algorithm2(SSL *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4583,1
    - Dst: l2n
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4586,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4587,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4589,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4593,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4594,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4597,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - s
    - server
    - result
    - len
    - dgrd
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - size_t
    - DOWNGRADE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4605
      start: 4571
    functionDepth: 3
    functionLinenumber: 4571
    functionLinenumberEnd: 4605
    functionName: ssl_fill_hello_random
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - memcpy
    - l2n
    - time
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ssl_fill_hello_random(SSL *s, int server, unsigned char *result,
      size_t len,\n                          DOWNGRADE dgrd)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4626,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4630,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4632,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4634,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4636,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4637,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4639,1
    - Dst: SSL*::method::ssl3_enc::generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4641,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4644,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4648,1
    - Dst: SSL*::method::ssl3_enc::generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4654,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4666,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4668,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - s
    - pms
    - pmslen
    - free_pms
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4673
      start: 4607
    functionDepth: 1
    functionLinenumber: 4607
    functionLinenumberEnd: 4673
    functionName: ssl_generate_master_secret
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - s2n
    - memcpy
    - SSL*::method::ssl3_enc::generate_master_secret
    - memset
    - OPENSSL_clear_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t
      pmslen,\n                               int free_pms)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4683,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4686,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4688,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4689,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - pm
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4696
      start: 4676
    functionDepth: 3
    functionLinenumber: 4676
    functionLinenumberEnd: 4696
    functionName: ssl_generate_pkey
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_keygen
    - EVP_PKEY_CTX_free
    - EVP_PKEY_keygen_init
    - EVP_PKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *ssl_generate_pkey(EVP_PKEY *pm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tls1_group_id_lookup
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4703,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4707,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4713,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4715,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4717,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4721,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4722,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4727,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4728,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4732,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4733,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4735,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4740,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - s
    - id
    argTypes:
    - SSL*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4742
      start: 4699
    functionDepth: 3
    functionLinenumber: 4699
    functionLinenumberEnd: 4742
    functionName: ssl_generate_pkey_group
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_PKEY_keygen
    - EVP_PKEY_CTX_free
    - EVP_PKEY_keygen_init
    - tls1_group_id_lookup
    - EVP_PKEY_free
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *ssl_generate_pkey_group(SSL *s, uint16_t id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tls1_group_id_lookup
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4751,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4757,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4758,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4760,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4764,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4767,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4769,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4771,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4772,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4777,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4779
      start: 4747
    functionDepth: 3
    functionLinenumber: 4747
    functionLinenumberEnd: 4779
    functionName: ssl_generate_param_group
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_paramgen
    - EVP_PKEY_set_type
    - EVP_PKEY_CTX_free
    - tls1_group_id_lookup
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *ssl_generate_param_group(uint16_t id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4791,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4796,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4798,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4799,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4800,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4801,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4806,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4808,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4813,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4814,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4821,1
    - Dst: tls13_generate_secret
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4827,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4827,1
    - Dst: tls13_generate_handshake_secret
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4833,1
    - Dst: ssl_generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4835,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4846,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4847,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 4
    argNames:
    - s
    - privkey
    - pubkey
    - gensecret
    argTypes:
    - SSL*
    - EVP_PKEY*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4849
      start: 4783
    functionDepth: 3
    functionLinenumber: 4783
    functionLinenumberEnd: 4849
    functionName: ssl_derive
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_PKEY_CTX_new
    - OPENSSL_malloc
    - ssl_generate_master_secret
    - tls13_generate_secret
    - EVP_PKEY_derive_init
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_CTX_free
    - SSL_IS_TLS13
    - ssl_handshake_md
    - EVP_PKEY_derive
    - OPENSSL_clear_free
    - tls13_generate_handshake_secret
    linkageType: ''
    returnType: int
    signature: int ssl_derive(SSL *s, EVP_PKEY *privkey, EVP_PKEY *pubkey, int gensecret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4857,1
    - Dst: EVP_PKEY_set1_DH
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4858,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/s3_lib.c:4859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4863
      start: 4852
    functionDepth: 5
    functionLinenumber: 4852
    functionLinenumberEnd: 4863
    functionName: ssl_dh_to_pkey
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_set1_DH
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *ssl_dh_to_pkey(DH *dh)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:30,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:31,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:33,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:37,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:42,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:50,1
    - Dst: EVP_sha1
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:50,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:51,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:52,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:54,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:55,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:56,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:57,1
    - Dst: EVP_md5
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:57,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:58,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:60,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:61,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:66,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:67,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:71,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:73,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:74,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:82,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:85,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:86,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 3
    argNames:
    - s
    - km
    - num
    argTypes:
    - SSL*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 88
    functionName: ssl3_generate_key_block
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - EVP_sha1
    - EVP_MD_CTX_set_flags
    - memcpy
    - EVP_DigestUpdate
    - EVP_md5
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int ssl3_generate_key_block(SSL *s, unsigned char *km, int num)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:107,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:108,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:122,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:123,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:130,1
    - Dst: ssl_replace_hash
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:134,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:135,1
    - Dst: COMP_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:141,1
    - Dst: COMP_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:144,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:146,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:153,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:159,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:160,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:167,1
    - Dst: ssl_replace_hash
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:170,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:171,1
    - Dst: COMP_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:177,1
    - Dst: COMP_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:180,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:182,1
    - Dst: RECORD_LAYER_reset_write_sequence
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:189,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:194,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:197,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:199,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:204,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:206,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:226,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:231,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:233,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:234,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 116
    argCount: 2
    argNames:
    - s
    - which
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 243
    functionName: ssl3_change_cipher_state
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_CIPHER_CTX_reset
    - EVP_CipherInit_ex
    - memcpy
    - EVP_CIPHER_CTX_new
    - RECORD_LAYER_reset_read_sequence
    - RECORD_LAYER_reset_write_sequence
    - EVP_CIPHER_key_length
    - ssl_replace_hash
    - EVP_CIPHER_iv_length
    - EVP_MD_size
    - COMP_CTX_free
    - ossl_assert
    - COMP_CTX_new
    linkageType: ''
    returnType: int
    signature: int ssl3_change_cipher_state(SSL *s, int which)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_get_evp
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:257,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:258,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:271,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:275,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:275,1
    - Dst: ssl3_cleanup_key_block
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:278,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:280,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:281,1
    - Dst: ssl3_generate_key_block
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:290,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 245
    functionDepth: 5
    functionLinenumber: 245
    functionLinenumberEnd: 311
    functionName: ssl3_setup_key_block
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - ssl3_cleanup_key_block
    - ssl3_generate_key_block
    - EVP_CIPHER_key_length
    - ssl_cipher_get_evp
    - EVP_MD_size
    - EVP_CIPHER_iv_length
    linkageType: ''
    returnType: int
    signature: int ssl3_setup_key_block(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: ssl3_cleanup_key_block
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 3
    functionsReached:
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: void ssl3_cleanup_key_block(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:322,1
    - Dst: BIO_s_mem
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:322,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:325,1
    - Dst: ssl3_free_digest_list
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:329,1
    - Dst: BIO_set_close
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: ssl3_init_finished_mac
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - BIO_s_mem
    - BIO_set_close
    - ssl3_free_digest_list
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int ssl3_init_finished_mac(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:342,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: ssl3_free_digest_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 3
    functionsReached:
    - EVP_MD_CTX_free
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void ssl3_free_digest_list(SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:355,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:359,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:361,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:366,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - s
    - buf
    - len
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 374
    functionName: ssl3_finish_mac
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_DigestUpdate
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int ssl3_finish_mac(SSL *s, const unsigned char *buf, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:383,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:385,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:390,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:392,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:397,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:398,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:399,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:400,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - s
    - keep
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 411
    functionName: ssl3_digest_cached_records
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - BIO_get_mem_data
    - SSLfatal
    - EVP_MD_CTX_new
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - ssl_handshake_md
    - BIO_free
    linkageType: ''
    returnType: int
    signature: int ssl3_digest_cached_records(SSL *s, int keep)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:419,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:424,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:425,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:430,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:432,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:436,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:437,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:443,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:445,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:451,1
    - Dst: EVP_MD_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:452,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:455,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:456,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:462,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - s
    - sender
    - len
    - p
    argTypes:
    - SSL*
    - char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 465
    functionName: ssl3_final_finish_mac
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - EVP_MD_CTX_copy_ex
    - EVP_MD_CTX_type
    - EVP_MD_CTX_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_MD_CTX_ctrl
    - ssl3_digest_cached_records
    linkageType: ''
    returnType: size_t
    signature: "size_t ssl3_final_finish_mac(SSL *s, const char *sender, size_t len,\n
      \                            unsigned char *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHARSET_EBCDIC
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:471,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:482,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:488,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:493,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:494,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:495,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:496,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:497,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:499,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:502,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:503,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:504,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:505,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/s3_enc.c:506,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 5
    argCount: 5
    argNames:
    - s
    - out
    - p
    - len
    - secret_size
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 511
    functionName: ssl3_generate_master_secret
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - CHARSET_EBCDIC
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ssl3_generate_master_secret(SSL *s, unsigned char *out, unsigned
      char *p,\n                                size_t len, size_t *secret_size)"
  - BBCount: 35
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 71
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 595
    functionName: ssl3_alert_code
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl3_alert_code(int code)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - table
    - table_cnt
    - mask
    argTypes:
    - ssl_cipher_table*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: ssl_cipher_info_find
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ssl_cipher_info_find(const ssl_cipher_table * table,\n                                size_t
      table_cnt, uint32_t mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - table
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: ssl_cipher_info_lookup
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssl_cipher_info_lookup(table, x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:325,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pkey_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: get_optional_pkey_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_asn1_get0_info
    - EVP_PKEY_asn1_find_str
    linkageType: ''
    returnType: int
    signature: int get_optional_pkey_id(const char *pkey_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:339,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:341,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pkey_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 334
    functionDepth: 6
    functionLinenumber: 334
    functionLinenumberEnd: 347
    functionName: get_optional_pkey_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ENGINE_finish
    - EVP_PKEY_asn1_get0_info
    - EVP_PKEY_asn1_find_str
    linkageType: ''
    returnType: int
    signature: int get_optional_pkey_id(const char *pkey_name)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sort_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:363,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:368,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:376,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:381,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:382,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:388,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:390,1
    - Dst: get_optional_pkey_id
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:422,1
    - Dst: get_optional_pkey_id
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:429,1
    - Dst: get_optional_pkey_id
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:435,1
    - Dst: get_optional_pkey_id
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:437,1
    - Dst: get_optional_pkey_id
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:439,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 449
    functionName: ssl_load_ciphers
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached:
    - ssl_sort_cipher_list
    - EVP_get_digestbynid
    - EVP_get_cipherbynid
    - get_optional_pkey_id
    - EVP_MD_size
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ssl_load_ciphers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SSL_COMP**
    - SSL_COMP**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: sk_comp_cmp
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sk_comp_cmp(const SSL_COMP *const *a, const SSL_COMP *const *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMP_zlib
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:461,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:463,1
    - Dst: sk_SSL_COMP_new
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:464,1
    - Dst: COMP_get_type
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:466,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:467,1
    - Dst: COMP_get_name
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:471,1
    - Dst: sk_SSL_COMP_push
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:472,1
    - Dst: sk_SSL_COMP_sort
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:473,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 478
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - CRYPTO_mem_ctrl
    - sk_SSL_COMP_push
    - COMP_zlib
    - sk_SSL_COMP_new
    - sk_SSL_COMP_sort
    - COMP_get_name
    - COMP_get_type
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_load_builtin_compressions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: load_builtin_compressions
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int load_builtin_compressions(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: load_builtin_compressions
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:499,1
    - Dst: sk_SSL_COMP_find
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:509,1
    - Dst: sk_SSL_COMP_value
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:510,1
    - Dst: ssl_cipher_info_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:520,1
    - Dst: EVP_enc_null
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:526,1
    - Dst: ssl_cipher_info_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:531,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:549,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:562,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:566,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:570,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:574,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:578,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 61
    argCount: 7
    argNames:
    - s
    - enc
    - md
    - mac_pkey_type
    - mac_secret_size
    - comp
    - use_etm
    argTypes:
    - SSL_SESSION*
    - EVP_CIPHER**
    - EVP_MD**
    - int*
    - size_t*
    - SSL_COMP**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 584
    functionName: ssl_cipher_get_evp
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_flags
    - ssl_cipher_info_lookup
    - load_builtin_compressions
    - EVP_get_cipherbyname
    - sk_SSL_COMP_find
    - EVP_enc_null
    - sk_SSL_COMP_value
    linkageType: ''
    returnType: int
    signature: "int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,\n
      \                      const EVP_MD **md, int *mac_pkey_type,\n                       size_t
      *mac_secret_size, SSL_COMP **comp, int use_etm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 592
    functionName: ssl_md
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *ssl_md(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:596,1
    - Dst: ssl_get_algorithm2
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 597
    functionName: ssl_handshake_md
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 4
    functionsReached:
    - ssl_get_algorithm2
    - ssl_md
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *ssl_handshake_md(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:601,1
    - Dst: ssl_get_algorithm2
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 602
    functionName: ssl_prf_md
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ssl_get_algorithm2
    - ssl_md
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *ssl_prf_md(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: ITEM_SEP
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_SEP(a)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - head
    - curr
    - tail
    argTypes:
    - CIPHER_ORDER**
    - CIPHER_ORDER*
    - CIPHER_ORDER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 622
    functionName: ll_append_tail
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ll_append_tail(CIPHER_ORDER **head, CIPHER_ORDER *curr,\n                           CIPHER_ORDER
      **tail)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - head
    - curr
    - tail
    argTypes:
    - CIPHER_ORDER**
    - CIPHER_ORDER*
    - CIPHER_ORDER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 639
    functionName: ll_append_head
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ll_append_head(CIPHER_ORDER **head, CIPHER_ORDER *curr,\n                           CIPHER_ORDER
      **tail)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_METHOD*::get_cipher
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:664,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 9
    argNames:
    - ssl_method
    - num_of_ciphers
    - disabled_mkey
    - disabled_auth
    - disabled_enc
    - disabled_mac
    - co_list
    - head_p
    - tail_p
    argTypes:
    - SSL_METHOD*
    - int
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - CIPHER_ORDER*
    - CIPHER_ORDER**
    - CIPHER_ORDER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 709
    functionName: ssl_cipher_collect_ciphers
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - SSL_METHOD*::get_cipher
    linkageType: ''
    returnType: void
    signature: "void ssl_cipher_collect_ciphers(const SSL_METHOD *ssl_method,\n                                       int
      num_of_ciphers,\n                                       uint32_t disabled_mkey,\n
      \                                      uint32_t disabled_auth,\n                                       uint32_t
      disabled_enc,\n                                       uint32_t disabled_mac,\n
      \                                      CIPHER_ORDER *co_list,\n                                       CIPHER_ORDER
      **head_p,\n                                       CIPHER_ORDER **tail_p)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 7
    argNames:
    - ca_list
    - num_of_group_aliases
    - disabled_mkey
    - disabled_auth
    - disabled_enc
    - disabled_mac
    - head
    argTypes:
    - SSL_CIPHER**
    - int
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - CIPHER_ORDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 771
    functionName: ssl_cipher_collect_aliases
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ssl_cipher_collect_aliases(const SSL_CIPHER **ca_list,\n                                       int
      num_of_group_aliases,\n                                       uint32_t disabled_mkey,\n
      \                                      uint32_t disabled_auth,\n                                       uint32_t
      disabled_enc,\n                                       uint32_t disabled_mac,\n
      \                                      CIPHER_ORDER *head)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:785,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:829,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:856,1
    - Dst: ll_append_tail
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:863,1
    - Dst: ll_append_tail
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:871,1
    - Dst: ll_append_head
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:881,1
    - Dst: ll_append_head
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:886,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 83
    argCount: 11
    argNames:
    - cipher_id
    - alg_mkey
    - alg_auth
    - alg_enc
    - alg_mac
    - min_tls
    - algo_strength
    - rule
    - strength_bits
    - head_p
    - tail_p
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - int
    - uint32_t
    - int
    - int32_t
    - CIPHER_ORDER**
    - CIPHER_ORDER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 907
    functionName: ssl_cipher_apply_rule
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ll_append_head
    - ll_append_tail
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void ssl_cipher_apply_rule(uint32_t cipher_id, uint32_t alg_mkey,\n
      \                                 uint32_t alg_auth, uint32_t alg_enc,\n                                  uint32_t
      alg_mac, int min_tls,\n                                  uint32_t algo_strength,
      int rule,\n                                  int32_t strength_bits, CIPHER_ORDER
      **head_p,\n                                  CIPHER_ORDER **tail_p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:929,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:931,1
    - Dst: ssl_cipher_apply_rule
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:950,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:953,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - head_p
    - tail_p
    argTypes:
    - CIPHER_ORDER**
    - CIPHER_ORDER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 955
    functionName: ssl_cipher_strength_sort
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ssl_cipher_apply_rule
    - OPENSSL_free
    - OPENSSL_zalloc
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int ssl_cipher_strength_sort(CIPHER_ORDER **head_p,\n                                    CIPHER_ORDER
      **tail_p)"
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_SEP
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:992,1
    - Dst: isalnum
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1014,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1028,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1061,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1181,1
    - Dst: ssl_cipher_strength_sort
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1182,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1183,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1186,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1193,1
    - Dst: ITEM_SEP
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1203,1
    - Dst: ssl_cipher_apply_rule
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1206,1
    - Dst: ITEM_SEP
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1211,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 182
    argCount: 5
    argNames:
    - rule_str
    - head_p
    - tail_p
    - ca_list
    - c
    argTypes:
    - char*
    - CIPHER_ORDER**
    - CIPHER_ORDER**
    - SSL_CIPHER**
    - CERT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 957
    functionDepth: 3
    functionLinenumber: 957
    functionLinenumberEnd: 1219
    functionName: ssl_cipher_process_rulestr
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ITEM_SEP
    - ssl_cipher_apply_rule
    - ssl_cipher_strength_sort
    - SSLerr
    - isalnum
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int ssl_cipher_process_rulestr(const char *rule_str,\n                                      CIPHER_ORDER
      **head_p,\n                                      CIPHER_ORDER **tail_p,\n                                      const
      SSL_CIPHER **ca_list, CERT *c)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1226,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1228,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1231,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1233,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1249,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - meth
    - c
    - prule_str
    argTypes:
    - SSL_METHOD*
    - CERT*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1274
    functionName: check_suiteb_cipher_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - strncmp
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int check_suiteb_cipher_list(const SSL_METHOD *meth, CERT *c,\n                                    const
      char **prule_str)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1279,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1279,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1285,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1289,1
    - Dst: ssl3_get_cipher_by_std_name
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1292,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1294,1
    - Dst: sk_SSL_CIPHER_push
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1298,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - elem
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1277
    functionDepth: 2
    functionLinenumber: 1277
    functionLinenumberEnd: 1304
    functionName: ciphersuite_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_push
    - STACK_OF
    - memcpy
    - SSLerr
    - ssl3_get_cipher_by_std_name
    linkageType: ''
    returnType: int
    signature: int ciphersuite_cb(const char *elem, int len, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_ciphersuites
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1378,1
    - Dst: update_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1385
    functionName: SSL_CTX_set_ciphersuites
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 11
    functionsReached:
    - update_cipher_list
    - set_ciphersuites
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1389,1
    - Dst: set_ciphersuites
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1390,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1393,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1394,1
    - Dst: update_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1387
    functionDepth: 1
    functionLinenumber: 1387
    functionLinenumberEnd: 1401
    functionName: SSL_set_ciphersuites
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 3
    functionsReached:
    - set_ciphersuites
    - sk_SSL_CIPHER_dup
    - STACK_OF
    - update_cipher_list
    - SSL_get_ciphers
    linkageType: ''
    returnType: int
    signature: int SSL_set_ciphersuites(SSL *s, const char *str)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1646,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1647,1
    - Dst: ssl_protocol_to_string
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1659,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1832,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 184
    argCount: 3
    argNames:
    - cipher
    - buf
    - len
    argTypes:
    - SSL_CIPHER*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1637
    functionDepth: 2
    functionLinenumber: 1637
    functionLinenumberEnd: 1835
    functionName: SSL_CIPHER_description
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - OPENSSL_malloc
    - ssl_protocol_to_string
    - SSLerr
    linkageType: ''
    returnType: char
    signature: char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_protocol_to_string
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1837
    functionDepth: 1
    functionLinenumber: 1837
    functionLinenumberEnd: 1849
    functionName: SSL_CIPHER_get_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 3
    functionsReached:
    - ssl_protocol_to_string
    linkageType: ''
    returnType: char
    signature: char *SSL_CIPHER_get_version(const SSL_CIPHER *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1852
    functionDepth: 0
    functionLinenumber: 1852
    functionLinenumberEnd: 1857
    functionName: SSL_CIPHER_get_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_CIPHER_get_name(const SSL_CIPHER *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1865
    functionName: SSL_CIPHER_standard_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_CIPHER_standard_name(const SSL_CIPHER *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_get_cipher_by_std_name
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1874,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:1875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stdname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1868
    functionDepth: 2
    functionLinenumber: 1868
    functionLinenumberEnd: 1876
    functionName: OPENSSL_cipher_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 2
    functionsReached:
    - SSL_CIPHER_get_name
    - ssl3_get_cipher_by_std_name
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_cipher_name(const char *stdname)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - alg_bits
    argTypes:
    - SSL_CIPHER*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1879
    functionDepth: 0
    functionLinenumber: 1879
    functionLinenumberEnd: 1889
    functionName: SSL_CIPHER_get_bits
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1894
    functionName: SSL_CIPHER_get_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1896
    functionDepth: 0
    functionLinenumber: 1896
    functionLinenumberEnd: 1899
    functionName: SSL_CIPHER_get_protocol_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comp
    argTypes:
    - SSL_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2027
    functionName: SSL_COMP_get0_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_COMP_get0_name(const SSL_COMP *comp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comp
    argTypes:
    - SSL_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2036
    functionName: SSL_COMP_get_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_COMP_get_id(const SSL_COMP *comp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::get_cipher_by_char
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - ptr
    - all
    argTypes:
    - SSL*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2046
    functionName: ssl_get_cipher_by_char
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - SSL*::method::get_cipher_by_char
    linkageType: ''
    returnType: SSL_CIPHER
    signature: "SSL_CIPHER *ssl_get_cipher_by_char(SSL *ssl, const unsigned char *ptr,\n
      \                                        int all)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::get_cipher_by_char
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - ptr
    argTypes:
    - SSL*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2048
    functionDepth: 0
    functionLinenumber: 2048
    functionLinenumberEnd: 2051
    functionName: SSL_CIPHER_find
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 7
    functionsReached:
    - SSL*::method::get_cipher_by_char
    linkageType: ''
    returnType: SSL_CIPHER
    signature: SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_info_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2062
    functionName: SSL_CIPHER_get_cipher_nid
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ssl_cipher_info_lookup
    linkageType: ''
    returnType: int
    signature: int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_info_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2064
    functionDepth: 1
    functionLinenumber: 2064
    functionLinenumberEnd: 2071
    functionName: SSL_CIPHER_get_digest_nid
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ssl_cipher_info_lookup
    linkageType: ''
    returnType: int
    signature: int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_info_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2073
    functionDepth: 1
    functionLinenumber: 2073
    functionLinenumberEnd: 2080
    functionName: SSL_CIPHER_get_kx_nid
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ssl_cipher_info_lookup
    linkageType: ''
    returnType: int
    signature: int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_info_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2089
    functionName: SSL_CIPHER_get_auth_nid
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached:
    - ssl_cipher_info_lookup
    linkageType: ''
    returnType: int
    signature: int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2091
    functionDepth: 0
    functionLinenumber: 2091
    functionLinenumberEnd: 2098
    functionName: SSL_CIPHER_get_handshake_digest
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2100
    functionDepth: 0
    functionLinenumber: 2100
    functionLinenumberEnd: 2103
    functionName: SSL_CIPHER_is_aead
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CIPHER_is_aead(const SSL_CIPHER *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CIPHER_get_digest_nid
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2126,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2127,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2132,1
    - Dst: SSL_CIPHER_get_cipher_nid
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2134,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2135,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2140,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2144,1
    - Dst: EVP_CIPHER_block_size
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - c
    - mac_overhead
    - int_overhead
    - blocksize
    - ext_overhead
    argTypes:
    - SSL_CIPHER*
    - size_t*
    - size_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2105
    functionDepth: 2
    functionLinenumber: 2105
    functionLinenumberEnd: 2155
    functionName: ssl_cipher_get_overhead
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached:
    - EVP_get_digestbynid
    - SSL_CIPHER_get_cipher_nid
    - SSL_CIPHER_get_digest_nid
    - EVP_get_cipherbynid
    - EVP_CIPHER_mode
    - EVP_MD_size
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_block_size
    linkageType: ''
    returnType: int
    signature: "int ssl_cipher_get_overhead(const SSL_CIPHER *c, size_t *mac_overhead,\n
      \                           size_t *int_overhead, size_t *blocksize,\n                            size_t
      *ext_overhead)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_lookup_by_idx
      Src: /src/openssl-1.1.1g/ssl/ssl_ciph.c:2159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2157
    functionDepth: 1
    functionLinenumber: 2157
    functionLinenumberEnd: 2164
    functionName: ssl_cert_is_disabled
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ssl_cert_lookup_by_idx
    linkageType: ''
    returnType: int
    signature: int ssl_cert_is_disabled(size_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openssl-1.1.1g/ssl/ssl_err.c:1271,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/ssl/ssl_err.c:1272,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-1.1.1g/ssl/ssl_err.c:1273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1268
    functionDepth: 6
    functionLinenumber: 1268
    functionLinenumberEnd: 1277
    functionName: ERR_load_SSL_strings
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings_const
    linkageType: ''
    returnType: int
    signature: int ERR_load_SSL_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: dtls1_default_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long dtls1_default_timeout(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_RECORD_LAYER_new
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:71,1
    - Dst: ssl3_new
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:75,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:77,1
    - Dst: ssl3_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:78,1
    - Dst: pqueue_new
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:82,1
    - Dst: pqueue_new
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:83,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:93,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:94,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:95,1
    - Dst: ssl3_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:96,1
    - Dst: SSL*::method::ssl_clear
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 106
    functionName: dtls1_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - pqueue_free
    - ssl3_free
    - OPENSSL_free
    - SSL*::method::ssl_clear
    - ssl3_new
    - pqueue_new
    - OPENSSL_zalloc
    - DTLS_RECORD_LAYER_new
    linkageType: ''
    returnType: int
    signature: int dtls1_new(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_clear_received_buffer
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:110,1
    - Dst: dtls1_clear_sent_buffer
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: dtls1_clear_queues
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_clear_received_buffer
    - dtls1_clear_sent_buffer
    linkageType: ''
    returnType: void
    signature: void dtls1_clear_queues(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_pop
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:119,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:121,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: dtls1_clear_received_buffer
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - pitem_free
    - dtls1_hm_fragment_free
    - pqueue_pop
    linkageType: ''
    returnType: void
    signature: void dtls1_clear_received_buffer(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_pop
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:131,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:133,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: dtls1_clear_sent_buffer
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - pitem_free
    - dtls1_hm_fragment_free
    - pqueue_pop
    linkageType: ''
    returnType: void
    signature: void dtls1_clear_sent_buffer(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_RECORD_LAYER_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:141,1
    - Dst: ssl3_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:143,1
    - Dst: dtls1_clear_queues
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:145,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:147,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:148,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: dtls1_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - pqueue_free
    - dtls1_clear_queues
    - ssl3_free
    - OPENSSL_free
    - DTLS_RECORD_LAYER_free
    linkageType: ''
    returnType: void
    signature: void dtls1_free(SSL *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_RECORD_LAYER_clear
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:161,1
    - Dst: dtls1_clear_queues
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:171,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:173,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:182,1
    - Dst: ssl3_clear
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 204
    functionName: dtls1_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_clear_queues
    - ssl3_clear
    - memset
    - SSL_get_options
    - DTLS_RECORD_LAYER_clear
    linkageType: ''
    returnType: int
    signature: int dtls1_clear(SSL *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_get_timeout
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:212,1
    - Dst: dtls1_handle_timeout
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:217,1
    - Dst: dtls1_link_min_mtu
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:220,1
    - Dst: dtls1_link_min_mtu
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:225,1
    - Dst: dtls1_link_min_mtu
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:231,1
    - Dst: ssl3_ctrl
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - s
    - cmd
    - larg
    - parg
    argTypes:
    - SSL*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 240
    functionName: dtls1_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_get_timeout
    - ssl3_ctrl
    - dtls1_link_min_mtu
    - dtls1_handle_timeout
    linkageType: ''
    returnType: long
    signature: long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:248,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:248,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:249,1
    - Dst: SSL*::d1::timer_cb
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:261,1
    - Dst: get_current_time
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:267,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:282,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 284
    functionName: dtls1_start_timer
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - BIO_dgram_is_sctp
    - SSL_get_wbio
    - get_current_time
    - memset
    - BIO_ctrl
    - SSL_get_rbio
    - SSL*::d1::timer_cb
    linkageType: ''
    returnType: void
    signature: void dtls1_start_timer(SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_current_time
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:296,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:302,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:307,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:320,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - s
    - timeleft
    argTypes:
    - SSL*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 324
    functionName: dtls1_get_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - get_current_time
    - memset
    - memcpy
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *dtls1_get_timeout(SSL *s, struct timeval *timeleft)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_get_timeout
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 342
    functionName: dtls1_is_timer_expired
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_get_timeout
    linkageType: ''
    returnType: int
    signature: int dtls1_is_timer_expired(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_start_timer
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: dtls1_double_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_start_timer
    linkageType: ''
    returnType: void
    signature: void dtls1_double_timeout(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:355,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:356,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:358,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:358,1
    - Dst: dtls1_clear_sent_buffer
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 362
    functionName: dtls1_stop_timer
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - memset
    - dtls1_clear_sent_buffer
    - SSL_get_rbio
    linkageType: ''
    returnType: void
    signature: void dtls1_stop_timer(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:372,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:374,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:374,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 387
    functionName: dtls1_check_timeout_num
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_get_options
    - BIO_ctrl
    - SSL_get_wbio
    linkageType: ''
    returnType: int
    signature: int dtls1_check_timeout_num(SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_is_timer_expired
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:392,1
    - Dst: SSL*::d1::timer_cb
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:397,1
    - Dst: dtls1_double_timeout
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:399,1
    - Dst: dtls1_check_timeout_num
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:401,1
    - Dst: dtls1_start_timer
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:411,1
    - Dst: dtls1_retransmit_buffered_messages
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 389
    functionDepth: 5
    functionLinenumber: 389
    functionLinenumberEnd: 414
    functionName: dtls1_handle_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - dtls1_double_timeout
    - dtls1_check_timeout_num
    - dtls1_start_timer
    - SSL*::d1::timer_cb
    - dtls1_retransmit_buffered_messages
    - dtls1_is_timer_expired
    linkageType: ''
    returnType: int
    signature: int dtls1_handle_timeout(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTime
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:425,1
    - Dst: SystemTimeToFileTime
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:426,1
    - Dst: gettimeofday
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 440
    functionName: get_current_time
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 3
    functionsReached:
    - GetSystemTime
    - SystemTimeToFileTime
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void get_current_time(struct timeval *t)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:461,1
    - Dst: SSL_clear
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:465,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:468,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:470,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:471,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:474,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:486,1
    - Dst: ssl3_setup_buffers
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:490,1
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:494,1
    - Dst: RECORD_LAYER_get_wbuf
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:495,1
    - Dst: clear_sys_error
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:513,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:514,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:517,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:524,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:525,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:540,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:545,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:549,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:550,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:551,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:556,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:565,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:569,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:571,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:572,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:573,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:576,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:584,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:589,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:592,1
    - Dst: PACKET_get_net_3_len
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:593,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:594,1
    - Dst: PACKET_get_net_3_len
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:595,1
    - Dst: PACKET_get_net_3_len
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:596,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:597,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:598,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:599,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:604,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:610,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:623,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:628,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:632,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:633,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:640,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:642,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:646,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:647,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:648,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:653,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:661,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:668,1
    - Dst: SSL*::ctx::app_verify_cookie_cb
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:672,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:672,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:673,1
    - Dst: SSL*::ctx::app_gen_cookie_cb
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:698,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:700,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:714,1
    - Dst: ssl_get_max_send_fragment
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:716,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:719,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:720,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:725,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:727,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:729,1
    - Dst: WPACKET_put_bytes_u24
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:737,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:742,1
    - Dst: WPACKET_put_bytes_u24
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:747,1
    - Dst: WPACKET_start_sub_packet_u24
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:754,1
    - Dst: dtls_raw_hello_verify_request
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:756,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:758,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:760,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:761,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:762,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:763,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:764,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:776,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:781,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:784,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:785,1
    - Dst: BIO_dgram_get_peer
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:794,1
    - Dst: BIO_dgram_set_peer
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:795,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:797,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:801,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:802,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:812,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:813,1
    - Dst: DTLS_RECORD_LAYER_set_write_sequence
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:831,1
    - Dst: SSL_set_options
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:837,1
    - Dst: ossl_statem_set_hello_verify_done
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:843,1
    - Dst: BIO_dgram_get_peer
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:848,1
    - Dst: BIO_ADDR_clear
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:849,1
    - Dst: dtls_buffer_listen_record
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:852,1
    - Dst: BIO_ADDR_free
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:857,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 178
    argCount: 2
    argNames:
    - s
    - client
    argTypes:
    - SSL*
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 859
    functionName: DTLSv1_listen
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 2
    functionsReached:
    - PACKET_get_length_prefixed_2
    - WPACKET_init_static_len
    - DTLS_VERSION_LT
    - PACKET_get_1
    - BIO_ADDR_free
    - SSL*::ctx::app_gen_cookie_cb
    - PACKET_remaining
    - ssl_get_max_send_fragment
    - PACKET_forward
    - BIO_should_retry
    - SSL_set_accept_state
    - PACKET_get_net_2
    - PACKET_buf_init
    - RECORD_LAYER_get_rbuf
    - clear_sys_error
    - dtls_raw_hello_verify_request
    - WPACKET_put_bytes_u16
    - memcpy
    - WPACKET_start_sub_packet_u16
    - SSLerr
    - ERR_clear_error
    - WPACKET_put_bytes_u24
    - BIO_ADDR_new
    - SSL_clear
    - WPACKET_finish
    - ssl3_setup_buffers
    - PACKET_get_net_3_len
    - WPACKET_memcpy
    - BIO_read
    - ossl_statem_set_hello_verify_done
    - dtls_buffer_listen_record
    - PACKET_get_sub_packet
    - SSL*::msg_callback
    - PACKET_copy_bytes
    - WPACKET_close
    - BIO_ADDR_clear
    - BIO_dgram_set_peer
    - BIO_flush
    - PACKET_get_length_prefixed_1
    - WPACKET_get_total_written
    - BIO_write
    - BIO_dgram_get_peer
    - RECORD_LAYER_get_wbuf
    - SSL*::ctx::app_verify_cookie_cb
    - DTLS_RECORD_LAYER_set_write_sequence
    - SSL_set_options
    - SSL_get_wbio
    - WPACKET_start_sub_packet_u24
    - SSL_get_rbio
    - WPACKET_put_bytes_u8
    - WPACKET_cleanup
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: int DTLSv1_listen(SSL *s, BIO_ADDR *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_do_write
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 865
    functionName: dtls1_handshake_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_do_write
    linkageType: ''
    returnType: int
    signature: int dtls1_handshake_write(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:873,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:874,1
    - Dst: BIO_dgram_sctp_wait_for_dry
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:876,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:881,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:881,1
    - Dst: ssl3_shutdown
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:885,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:887,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:887,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 890
    functionName: dtls1_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - BIO_dgram_is_sctp
    - SSL_get_wbio
    - BIO_ctrl
    - BIO_dgram_sctp_wait_for_dry
    - ssl3_shutdown
    linkageType: ''
    returnType: int
    signature: int dtls1_shutdown(SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dgram_get_mtu_overhead
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:896,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:896,1
    - Dst: dtls1_min_mtu
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:901,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:902,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:904,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:904,1
    - Dst: dtls1_min_mtu
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:910,1
    - Dst: dtls1_min_mtu
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:912,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:913,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 892
    functionDepth: 3
    functionLinenumber: 892
    functionLinenumberEnd: 920
    functionName: dtls1_query_mtu
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - BIO_ctrl
    - BIO_dgram_get_mtu_overhead
    - SSL_get_options
    - dtls1_min_mtu
    linkageType: ''
    returnType: int
    signature: int dtls1_query_mtu(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 926
    functionName: dtls1_link_min_mtu
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls1_link_min_mtu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_link_min_mtu
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:930,1
    - Dst: BIO_dgram_get_mtu_overhead
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:930,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 931
    functionName: dtls1_min_mtu
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - dtls1_link_min_mtu
    - BIO_dgram_get_mtu_overhead
    - SSL_get_wbio
    linkageType: ''
    returnType: size_t
    signature: size_t dtls1_min_mtu(SSL *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:936,1
    - Dst: ssl_cipher_get_overhead
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:942,1
    - Dst: SSL_READ_ETM
      Src: /src/openssl-1.1.1g/ssl/d1_lib.c:946,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 967
    functionName: DTLS_get_data_mtu
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - SSL_get_current_cipher
    - SSL_READ_ETM
    - ssl_cipher_get_overhead
    linkageType: ''
    returnType: size_t
    signature: size_t DTLS_get_data_mtu(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - cb
    argTypes:
    - SSL*
    - DTLS_timer_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: DTLS_set_timer_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_prf_md
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:28,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:35,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:38,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:41,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:42,1
    - Dst: EVP_PKEY_CTX_set_tls1_prf_md
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:43,1
    - Dst: EVP_PKEY_CTX_set1_tls1_prf_secret
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:44,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:45,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:46,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:47,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:48,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:49,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:50,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:52,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:55,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:62,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 16
    argNames:
    - s
    - seed1
    - seed1_len
    - seed2
    - seed2_len
    - seed3
    - seed3_len
    - seed4
    - seed4_len
    - seed5
    - seed5_len
    - sec
    - slen
    - out
    - olen
    - fatal
    argTypes:
    - SSL*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 64
    functionName: tls1_PRF
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl_prf_md
    - EVP_PKEY_CTX_set_tls1_prf_md
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_add1_tls1_prf_seed
    - EVP_PKEY_CTX_free
    - SSLerr
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_set1_tls1_prf_secret
    linkageType: ''
    returnType: int
    signature: "int tls1_PRF(SSL *s,\n                    const void *seed1, size_t
      seed1_len,\n                    const void *seed2, size_t seed2_len,\n                    const
      void *seed3, size_t seed3_len,\n                    const void *seed4, size_t
      seed4_len,\n                    const void *seed5, size_t seed5_len,\n                    const
      unsigned char *sec, size_t slen,\n                    unsigned char *out, size_t
      olen, int fatal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls1_PRF
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - km
    - num
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: tls1_generate_key_block
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - tls1_PRF
    linkageType: ''
    returnType: int
    signature: int tls1_generate_key_block(SSL *s, unsigned char *km, size_t num)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:118,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:119,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:126,1
    - Dst: ssl_replace_hash
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:129,1
    - Dst: COMP_CTX_free
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:133,1
    - Dst: COMP_CTX_new
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:136,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:138,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:148,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:149,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:163,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:165,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:166,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:171,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:172,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:174,1
    - Dst: ssl_replace_hash
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:181,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:183,1
    - Dst: COMP_CTX_free
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:190,1
    - Dst: COMP_CTX_new
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:193,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:195,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:205,1
    - Dst: RECORD_LAYER_reset_write_sequence
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:206,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:212,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:218,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:222,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:224,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:227,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:247,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:252,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:254,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:256,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:259,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:260,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:261,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:265,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:268,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:272,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:276,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:277,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:278,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:280,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:284,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:291,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:292,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:293,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:294,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:295,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:296,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:301,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:302,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:308,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:309,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:311,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:318,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:321,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:322,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:324,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:328,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:330,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 178
    argCount: 2
    argNames:
    - s
    - which
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 336
    functionName: tls1_change_cipher_state
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - SSL_IS_DTLS
    - EVP_PKEY_new_mac_key
    - RECORD_LAYER_reset_write_sequence
    - printf
    - memcpy
    - EVP_DigestSignInit
    - COMP_CTX_new
    - EVP_CipherInit_ex
    - SSLfatal
    - EVP_MD_CTX_new
    - EVP_CIPHER_CTX_reset
    - EVP_CIPHER_CTX_new
    - ssl_replace_hash
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_flags
    - RECORD_LAYER_reset_read_sequence
    - EVP_CIPHER_key_length
    - EVP_CIPHER_mode
    - EVP_PKEY_free
    - COMP_CTX_free
    linkageType: ''
    returnType: int
    signature: int tls1_change_cipher_state(SSL *s, int which)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_get_evp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:351,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:353,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:362,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:362,1
    - Dst: ssl3_cleanup_key_block
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:365,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:367,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:368,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:377,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:381,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:384,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:388,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:391,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:395,1
    - Dst: tls1_generate_key_block
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:399,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:404,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:408,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 434
    functionName: tls1_setup_key_block
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - ssl3_cleanup_key_block
    - tls1_generate_key_block
    - EVP_CIPHER_key_length
    - ssl_cipher_get_evp
    - printf
    - EVP_CIPHER_iv_length
    linkageType: ''
    returnType: int
    signature: int tls1_setup_key_block(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:442,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:447,1
    - Dst: tls1_PRF
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:452,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - s
    - str
    - slen
    - out
    argTypes:
    - SSL*
    - char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 436
    functionDepth: 4
    functionLinenumber: 436
    functionLinenumberEnd: 460
    functionName: tls1_final_finish_mac
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - tls1_PRF
    - OPENSSL_cleanse
    - ssl_handshake_hash
    - ssl3_digest_cached_records
    linkageType: ''
    returnType: size_t
    signature: "size_t tls1_final_finish_mac(SSL *s, const char *str, size_t slen,\n
      \                            unsigned char *out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:473,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:474,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:479,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:480,1
    - Dst: tls1_PRF
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:482,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:493,1
    - Dst: tls1_PRF
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:495,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:508,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:509,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:510,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:511,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:512,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:513,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:514,1
    - Dst: BIO_dump_fp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - s
    - out
    - p
    - len
    - secret_size
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 462
    functionDepth: 4
    functionLinenumber: 462
    functionLinenumberEnd: 521
    functionName: tls1_generate_master_secret
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - BIO_dump_fp
    - tls1_PRF
    - OPENSSL_cleanse
    - ssl_handshake_hash
    - fprintf
    - ssl3_digest_cached_records
    linkageType: ''
    returnType: int
    signature: "int tls1_generate_master_secret(SSL *s, unsigned char *out, unsigned
      char *p,\n                                size_t len, size_t *secret_size)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:542,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:546,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:548,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:550,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:559,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:568,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:571,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:574,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:577,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:580,1
    - Dst: tls1_PRF
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:584,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:595,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:599,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/t1_enc.c:602,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 8
    argNames:
    - s
    - out
    - olen
    - label
    - llen
    - context
    - contextlen
    - use_context
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 604
    functionName: tls1_export_keying_material
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - memcmp
    - memcpy
    - tls1_PRF
    - SSLerr
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int tls1_export_keying_material(SSL *s, unsigned char *out, size_t
      olen,\n                                const char *label, size_t llen,\n                                const
      unsigned char *context,\n                                size_t contextlen,
      int use_context)"
  - BBCount: 35
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 71
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 678
    functionName: tls1_alert_code
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tls1_alert_code(int code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:31,1
    - Dst: ssl_security_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:34,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:36,1
    - Dst: ssl_set_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ssl
    - x
    argTypes:
    - SSL*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: SSL_use_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 3
    functionsReached:
    - ssl_set_cert
    - ssl_security_cert
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_use_certificate(SSL *ssl, X509 *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:50,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:50,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:52,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:56,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:57,1
    - Dst: d2i_X509_bio
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:62,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:65,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:68,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:73,1
    - Dst: SSL_use_certificate
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:77,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:79,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:80,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ssl
    - file
    - type
    argTypes:
    - SSL*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 82
    functionName: SSL_use_certificate_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - X509_free
    - SSL_use_certificate
    - BIO_s_file
    - BIO_read_filename
    - SSLerr
    - PEM_read_bio_X509
    - BIO_free
    - d2i_X509_bio
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_use_certificate_file(SSL *ssl, const char *file, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:89,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:91,1
    - Dst: SSL_use_certificate
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:95,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - d
    - len
    argTypes:
    - SSL*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: SSL_use_certificate_ASN1
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSL_use_certificate
    - X509_free
    - d2i_X509
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:107,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:110,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:111,1
    - Dst: RSA_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:115,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:116,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:117,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:118,1
    - Dst: ssl_set_pkey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:122,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ssl
    - rsa
    argTypes:
    - SSL*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 101
    functionDepth: 7
    functionLinenumber: 101
    functionLinenumberEnd: 125
    functionName: SSL_use_RSAPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - ssl_set_pkey
    - RSA_up_ref
    - EVP_PKEY_assign_RSA
    - SSLerr
    - EVP_PKEY_new
    - EVP_PKEY_free
    - RSA_free
    linkageType: ''
    returnType: int
    signature: int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_lookup_by_pkey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:132,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:133,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:139,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:141,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:148,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:149,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:156,1
    - Dst: RSA_flags
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:157,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:157,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:160,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:161,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:167,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - c
    - pkey
    argTypes:
    - CERT*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 172
    functionName: ssl_set_pkey
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - X509_check_private_key
    - X509_free
    - ssl_cert_lookup_by_pkey
    - EVP_PKEY_up_ref
    - EVP_PKEY_free
    - RSA_flags
    - EVP_PKEY_id
    - SSLerr
    - ERR_clear_error
    - EVP_PKEY_get0_RSA
    - EVP_PKEY_copy_parameters
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int ssl_set_pkey(CERT *c, EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:181,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:181,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:183,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:187,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:188,1
    - Dst: d2i_RSAPrivateKey_bio
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:193,1
    - Dst: PEM_read_bio_RSAPrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:196,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:200,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:204,1
    - Dst: SSL_use_RSAPrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:207,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:208,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ssl
    - file
    - type
    argTypes:
    - SSL*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 175
    functionDepth: 8
    functionLinenumber: 175
    functionLinenumberEnd: 212
    functionName: SSL_use_RSAPrivateKey_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSL_use_RSAPrivateKey
    - BIO_s_file
    - BIO_read_filename
    - d2i_RSAPrivateKey_bio
    - SSLerr
    - BIO_free
    - PEM_read_bio_RSAPrivateKey
    - RSA_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_RSAPrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:221,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:222,1
    - Dst: SSL_use_RSAPrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:226,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - d
    - len
    argTypes:
    - SSL*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 214
    functionDepth: 8
    functionLinenumber: 214
    functionLinenumberEnd: 229
    functionName: SSL_use_RSAPrivateKey_ASN1
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSL_use_RSAPrivateKey
    - RSA_free
    - SSLerr
    - d2i_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, long
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:237,1
    - Dst: ssl_set_pkey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ssl
    - pkey
    argTypes:
    - SSL*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 242
    functionName: SSL_use_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 3
    functionsReached:
    - ssl_set_pkey
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:250,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:250,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:252,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:256,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:257,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:262,1
    - Dst: d2i_PrivateKey_bio
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:267,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:269,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:273,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:276,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:277,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:279,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ssl
    - file
    - type
    argTypes:
    - SSL*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 281
    functionName: SSL_use_PrivateKey_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 2
    functionsReached:
    - SSL_use_PrivateKey
    - BIO_s_file
    - BIO_read_filename
    - PEM_read_bio_PrivateKey
    - SSLerr
    - BIO_free
    - d2i_PrivateKey_bio
    - EVP_PKEY_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:291,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:292,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:296,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - type
    - ssl
    - d
    - len
    argTypes:
    - int
    - SSL*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 283
    functionDepth: 5
    functionLinenumber: 283
    functionLinenumberEnd: 299
    functionName: SSL_use_PrivateKey_ASN1
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - d2i_PrivateKey
    - SSL_use_PrivateKey
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int SSL_use_PrivateKey_ASN1(int type, SSL *ssl, const unsigned char
      *d,\n                            long len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:305,1
    - Dst: ssl_security_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:308,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:310,1
    - Dst: ssl_set_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - SSL_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: SSL_CTX_use_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - ssl_set_cert
    - ssl_security_cert
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:321,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:323,1
    - Dst: ssl_cert_lookup_by_pkey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:327,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:328,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:332,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:332,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:333,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:342,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:343,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:350,1
    - Dst: RSA_flags
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:351,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:351,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:355,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:361,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:364,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:368,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:369,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - c
    - x
    argTypes:
    - CERT*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 374
    functionName: ssl_set_cert
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 2
    functionsReached:
    - X509_check_private_key
    - X509_free
    - ssl_cert_lookup_by_pkey
    - EVP_PKEY_free
    - EC_KEY_can_sign
    - EVP_PKEY_get0_EC_KEY
    - RSA_flags
    - X509_up_ref
    - EVP_PKEY_id
    - SSLerr
    - ERR_clear_error
    - EVP_PKEY_get0_RSA
    - EVP_PKEY_copy_parameters
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int ssl_set_cert(CERT *c, X509 *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:383,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:383,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:385,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:389,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:390,1
    - Dst: d2i_X509_bio
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:395,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:398,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:401,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:406,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:410,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:412,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:413,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - SSL_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 415
    functionName: SSL_CTX_use_certificate_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 2
    functionsReached:
    - X509_free
    - BIO_s_file
    - BIO_read_filename
    - SSLerr
    - PEM_read_bio_X509
    - SSL_CTX_use_certificate
    - BIO_free
    - d2i_X509_bio
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:422,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:424,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:428,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - len
    - d
    argTypes:
    - SSL_CTX*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: SSL_CTX_use_certificate_ASN1
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - X509_free
    - d2i_X509
    - SSLerr
    - SSL_CTX_use_certificate
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, const unsigned
      char *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:440,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:443,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:444,1
    - Dst: RSA_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:448,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:449,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:450,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:451,1
    - Dst: ssl_set_pkey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:455,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - rsa
    argTypes:
    - SSL_CTX*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 434
    functionDepth: 7
    functionLinenumber: 434
    functionLinenumberEnd: 458
    functionName: SSL_CTX_use_RSAPrivateKey
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - ssl_set_pkey
    - RSA_up_ref
    - EVP_PKEY_assign_RSA
    - SSLerr
    - EVP_PKEY_new
    - EVP_PKEY_free
    - RSA_free
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:466,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:466,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:468,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:472,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:473,1
    - Dst: d2i_RSAPrivateKey_bio
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:478,1
    - Dst: PEM_read_bio_RSAPrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:481,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:485,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:489,1
    - Dst: SSL_CTX_use_RSAPrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:492,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:493,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:495,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - SSL_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 460
    functionDepth: 8
    functionLinenumber: 460
    functionLinenumberEnd: 497
    functionName: SSL_CTX_use_RSAPrivateKey_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - BIO_read_filename
    - d2i_RSAPrivateKey_bio
    - SSLerr
    - BIO_free
    - SSL_CTX_use_RSAPrivateKey
    - PEM_read_bio_RSAPrivateKey
    - RSA_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file,
      int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_RSAPrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:507,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:508,1
    - Dst: SSL_CTX_use_RSAPrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:512,1
    - Dst: RSA_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - d
    - len
    argTypes:
    - SSL_CTX*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 499
    functionDepth: 8
    functionLinenumber: 499
    functionLinenumberEnd: 515
    functionName: SSL_CTX_use_RSAPrivateKey_ASN1
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_use_RSAPrivateKey
    - RSA_free
    - SSLerr
    - d2i_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char
      *d,\n                                   long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:521,1
    - Dst: ssl_set_pkey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - SSL_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 518
    functionDepth: 4
    functionLinenumber: 518
    functionLinenumberEnd: 525
    functionName: SSL_CTX_use_PrivateKey
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - ssl_set_pkey
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:533,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:533,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:535,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:539,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:540,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:545,1
    - Dst: d2i_PrivateKey_bio
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:550,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:552,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:556,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:559,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:560,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:562,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - SSL_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 527
    functionDepth: 5
    functionLinenumber: 527
    functionLinenumberEnd: 564
    functionName: SSL_CTX_use_PrivateKey_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 4
    functionsReached:
    - BIO_s_file
    - BIO_read_filename
    - PEM_read_bio_PrivateKey
    - SSLerr
    - SSL_CTX_use_PrivateKey
    - BIO_free
    - d2i_PrivateKey_bio
    - EVP_PKEY_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:574,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:575,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:579,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - type
    - ctx
    - d
    - len
    argTypes:
    - int
    - SSL_CTX*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 566
    functionDepth: 5
    functionLinenumber: 566
    functionLinenumberEnd: 582
    functionName: SSL_CTX_use_PrivateKey_ASN1
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - d2i_PrivateKey
    - SSL_CTX_use_PrivateKey
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_use_PrivateKey_ASN1(int type, SSL_CTX *ctx,\n                                const
      unsigned char *d, long len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:597,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:608,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:608,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:610,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:614,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:615,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:619,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:622,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:627,1
    - Dst: SSL_use_certificate
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:629,1
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:631,1
    - Dst: SSL_CTX_clear_chain_certs
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:644,1
    - Dst: SSL_clear_chain_certs
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:646,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:653,1
    - Dst: SSL_CTX_add0_chain_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:657,1
    - Dst: SSL_add0_chain_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:659,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:666,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:672,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:673,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:674,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:675,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:681,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:682,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - ctx
    - ssl
    - file
    argTypes:
    - SSL_CTX*
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 589
    functionDepth: 4
    functionLinenumber: 589
    functionLinenumberEnd: 684
    functionName: use_certificate_chain_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 2
    functionsReached:
    - SSL_clear_chain_certs
    - ERR_GET_REASON
    - SSL_CTX_use_certificate
    - ERR_GET_LIB
    - SSL_add0_chain_cert
    - X509_free
    - ERR_peek_error
    - SSLerr
    - ERR_clear_error
    - PEM_read_bio_X509
    - PEM_read_bio_X509_AUX
    - BIO_free
    - SSL_use_certificate
    - SSL_CTX_clear_chain_certs
    - SSL_CTX_add0_chain_cert
    - ERR_peek_last_error
    - BIO_s_file
    - BIO_read_filename
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int use_certificate_chain_file(SSL_CTX *ctx, SSL *ssl, const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: use_certificate_chain_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - file
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 686
    functionDepth: 5
    functionLinenumber: 686
    functionLinenumberEnd: 689
    functionName: SSL_CTX_use_certificate_chain_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 2
    functionsReached:
    - use_certificate_chain_file
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: use_certificate_chain_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - file
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 5
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: SSL_use_certificate_chain_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - use_certificate_chain_file
    linkageType: ''
    returnType: int
    signature: int SSL_use_certificate_chain_file(SSL *ssl, const char *file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:709,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:717,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:720,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:721,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:722,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:726,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:727,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 5
    argNames:
    - serverinfo
    - serverinfo_length
    - extension_type
    - extension_data
    - extension_length
    argTypes:
    - unsigned char*
    - size_t
    - unsigned int
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 732
    functionName: serverinfo_find_extension
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_buf_init
    - PACKET_get_net_4
    - PACKET_remaining
    - PACKET_data
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: "int serverinfo_find_extension(const unsigned char *serverinfo,\n                                     size_t
      serverinfo_length,\n                                     unsigned int extension_type,\n
      \                                    const unsigned char **extension_data,\n
      \                                    size_t *extension_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - s
    - ext_type
    - context
    - in
    - inlen
    - x
    - chainidx
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char*
    - size_t
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 747
    functionName: serverinfoex_srv_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int serverinfoex_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                     unsigned
      int context,\n                                     const unsigned char *in,\n
      \                                    size_t inlen, X509 *x, size_t chainidx,\n
      \                                    int *al, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serverinfoex_srv_parse_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 755
    functionName: serverinfo_srv_parse_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - serverinfoex_srv_parse_cb
    linkageType: ''
    returnType: int
    signature: "int serverinfo_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char *in,\n                                   size_t inlen, int *al,
      void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_server_cert_serverinfo
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:771,1
    - Dst: serverinfo_find_extension
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:774,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 9
    argNames:
    - s
    - ext_type
    - context
    - out
    - outlen
    - x
    - chainidx
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char**
    - size_t*
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 786
    functionName: serverinfoex_srv_add_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - serverinfo_find_extension
    - ssl_get_server_cert_serverinfo
    linkageType: ''
    returnType: int
    signature: "int serverinfoex_srv_add_cb(SSL *s, unsigned int ext_type,\n                                   unsigned
      int context,\n                                   const unsigned char **out,\n
      \                                  size_t *outlen, X509 *x, size_t chainidx,\n
      \                                  int *al, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serverinfoex_srv_add_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 794
    functionName: serverinfo_srv_add_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - serverinfoex_srv_add_cb
    linkageType: ''
    returnType: int
    signature: "int serverinfo_srv_add_cb(SSL *s, unsigned int ext_type,\n                                 const
      unsigned char **out, size_t *outlen,\n                                 int *al,
      void *arg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:813,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:816,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:821,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:822,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:823,1
    - Dst: SSL_CTX_add_server_custom_ext
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:841,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:848,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 21
    argCount: 4
    argNames:
    - version
    - serverinfo
    - serverinfo_length
    - ctx
    argTypes:
    - unsigned int
    - unsigned char*
    - size_t
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 858
    functionName: serverinfo_process_buffer
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_buf_init
    - PACKET_get_net_4
    - PACKET_remaining
    - SSL_CTX_add_server_custom_ext
    - SSL_CTX_add_custom_ext
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: "int serverinfo_process_buffer(unsigned int version,\n                                     const
      unsigned char *serverinfo,\n                                     size_t serverinfo_length,
      SSL_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:867,1
    - Dst: serverinfo_process_buffer
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:870,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:872,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:876,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:879,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:882,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:886,1
    - Dst: serverinfo_process_buffer
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:893,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:895,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - version
    - serverinfo
    - serverinfo_length
    argTypes:
    - SSL_CTX*
    - unsigned int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 899
    functionName: SSL_CTX_use_serverinfo_ex
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - memcpy
    - OPENSSL_realloc
    - SSLerr
    - serverinfo_process_buffer
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version,\n
      \                             const unsigned char *serverinfo,\n                              size_t
      serverinfo_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_use_serverinfo_ex
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - serverinfo
    - serverinfo_length
    argTypes:
    - SSL_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 901
    functionDepth: 3
    functionLinenumber: 901
    functionLinenumberEnd: 906
    functionName: SSL_CTX_use_serverinfo
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_use_serverinfo_ex
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo,\n
      \                          size_t serverinfo_length)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:924,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:928,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:928,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:930,1
    - Dst: BIO_read_filename
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:933,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:934,1
    - Dst: PEM_read_bio
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:941,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:947,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:954,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:954,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:955,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:958,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:958,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:961,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:961,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:962,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:966,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:966,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:967,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:981,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:994,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:999,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1002,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1015,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1019,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1021,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1023,1
    - Dst: SSL_CTX_use_serverinfo_ex
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1027,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1031,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1032,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1033,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1034,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_rsa.c:1035,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 2
    argNames:
    - ctx
    - file
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 908
    functionDepth: 5
    functionLinenumber: 908
    functionLinenumberEnd: 1037
    functionName: SSL_CTX_use_serverinfo_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - OPENSSL_realloc
    - OPENSSL_free
    - PEM_read_bio
    - memcpy
    - BIO_s_file
    - BIO_read_filename
    - SSLerr
    - BIO_free
    - SSL_CTX_use_serverinfo_ex
    - strncmp
    - strlen
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:49,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - profile_name
    - pptr
    - len
    argTypes:
    - char*
    - SRTP_PROTECTION_PROFILE**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: find_profile_by_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_srtp.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int find_profile_by_name(char *profile_name,\n                                SRTP_PROTECTION_PROFILE
      **pptr, size_t len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:64,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_new_null
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:70,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:71,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:77,1
    - Dst: find_profile_by_name
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:79,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:80,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_find
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:81,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:82,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_push
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:87,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:88,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:93,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_free
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:102,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_free
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - profiles_string
    - out
    argTypes:
    - char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 110
    functionName: ssl_ctx_make_profiles
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_srtp.c
    functionUses: 0
    functionsReached:
    - find_profile_by_name
    - sk_SRTP_PROTECTION_PROFILE_find
    - strchr
    - STACK_OF
    - sk_SRTP_PROTECTION_PROFILE_push
    - SSLerr
    - sk_SRTP_PROTECTION_PROFILE_free
    - sk_SRTP_PROTECTION_PROFILE_new_null
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ssl_ctx_make_profiles(const char *profiles_string,\n                                 STACK_OF(SRTP_PROTECTION_PROFILE)
      **out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ctx_make_profiles
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - profiles
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: SSL_CTX_set_tlsext_use_srtp
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_srtp.c
    functionUses: 1
    functionsReached:
    - ssl_ctx_make_profiles
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ctx_make_profiles
      Src: /src/openssl-1.1.1g/ssl/d1_srtp.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - profiles
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: SSL_set_tlsext_use_srtp
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_srtp.c
    functionUses: 2
    functionsReached:
    - ssl_ctx_make_profiles
    linkageType: ''
    returnType: int
    signature: int SSL_set_tlsext_use_srtp(SSL *s, const char *profiles)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: SSL_get_selected_srtp_profile
    functionSourceFile: /src/openssl-1.1.1g/ssl/d1_srtp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SRTP_PROTECTION_PROFILE
    signature: SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:20,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:23,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - prio64be
    - data
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: pitem_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - SSLerr
    - memcpy
    linkageType: ''
    returnType: pitem
    signature: pitem *pitem_new(unsigned char *prio64be, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - pitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: pitem_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void pitem_free(pitem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:40,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: pqueue_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 1
    functionsReached:
    - OPENSSL_zalloc
    - SSLerr
    linkageType: ''
    returnType: pqueue
    signature: pqueue *pqueue_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: pqueue_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void pqueue_free(pqueue *pq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - pq
    - item
    argTypes:
    - pqueue*
    - pitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 87
    functionName: pqueue_insert
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: pitem
    signature: pitem *pqueue_insert(pqueue *pq, pitem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: pqueue_peek
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pitem
    signature: pitem *pqueue_peek(pqueue *pq)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: pqueue_pop
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: pitem
    signature: pitem *pqueue_pop(pqueue *pq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:113,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - pq
    - prio64be
    argTypes:
    - pqueue*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 127
    functionName: pqueue_find
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: pitem
    signature: pitem *pqueue_find(pqueue *pq, unsigned char *prio64be)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_peek
      Src: /src/openssl-1.1.1g/ssl/pqueue.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: pqueue_iterator
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 0
    functionsReached:
    - pqueue_peek
    linkageType: ''
    returnType: pitem
    signature: pitem *pqueue_iterator(pqueue *pq)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - piterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: pqueue_next
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pitem
    signature: pitem *pqueue_next(piterator *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: pqueue_size
    functionSourceFile: /src/openssl-1.1.1g/ssl/pqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pqueue_size(pqueue *pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pkt
    - len
    argTypes:
    - PACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: packet_forward
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline packet_forward(PACKET *pkt, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: PACKET_remaining
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline PACKET_remaining(const PACKET *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: PACKET_end
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline *PACKET_end(const PACKET *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: PACKET_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline *PACKET_data(const PACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkt
    - buf
    - len
    argTypes:
    - PACKET*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: PACKET_buf_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_buf_init(PACKET *pkt,\n                                              const
      unsigned char *buf,\n                                              size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: PACKET_null_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline PACKET_null_init(PACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:96,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkt
    - ptr
    - num
    argTypes:
    - PACKET*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: PACKET_equal
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 3
    functionsReached:
    - PACKET_remaining
    - CRYPTO_memcmp
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_equal(const PACKET *pkt, const void *ptr,\n                                           size_t
      num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:109,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkt
    - subpkt
    - len
    argTypes:
    - PACKET*
    - PACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: PACKET_peek_sub_packet
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    - PACKET_buf_init
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_peek_sub_packet(const PACKET *pkt,\n                                                     PACKET
      *subpkt, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_sub_packet
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:123,1
    - Dst: packet_forward
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - subpkt
    - len
    argTypes:
    - PACKET*
    - PACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: PACKET_get_sub_packet
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 2
    functionsReached:
    - packet_forward
    - PACKET_peek_sub_packet
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_get_sub_packet(PACKET *pkt,\n                                                    PACKET
      *subpkt, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: PACKET_peek_net_2
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_peek_net_2(const PACKET *pkt,\n                                                unsigned
      int *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_net_2
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:151,1
    - Dst: packet_forward
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: PACKET_get_net_2
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 14
    functionsReached:
    - packet_forward
    - PACKET_peek_net_2
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_get_net_2(PACKET *pkt, unsigned int *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 169
    functionName: PACKET_get_net_2_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_get_net_2
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_get_net_2_len(PACKET *pkt, size_t *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: PACKET_peek_net_3
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_peek_net_3(const PACKET *pkt,\n                                                unsigned
      long *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_net_3
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:192,1
    - Dst: packet_forward
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 198
    functionName: PACKET_get_net_3
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached:
    - packet_forward
    - PACKET_peek_net_3
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_get_net_3(PACKET *pkt, unsigned long *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_3
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: PACKET_get_net_3_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached:
    - PACKET_get_net_3
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_get_net_3_len(PACKET *pkt, size_t *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: PACKET_peek_net_4
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_peek_net_4(const PACKET *pkt,\n                                                unsigned
      long *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_net_4
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:234,1
    - Dst: packet_forward
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: PACKET_get_net_4
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 4
    functionsReached:
    - packet_forward
    - PACKET_peek_net_4
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_get_net_4(PACKET *pkt, unsigned long *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: PACKET_get_net_4_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_get_net_4
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_get_net_4_len(PACKET *pkt, size_t *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 264
    functionName: PACKET_peek_1
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_peek_1(const PACKET *pkt,\n                                            unsigned
      int *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_1
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:269,1
    - Dst: packet_forward
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: PACKET_get_1
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 8
    functionsReached:
    - packet_forward
    - PACKET_peek_1
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_get_1(PACKET *pkt, unsigned int *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 287
    functionName: PACKET_get_1_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_get_1
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_get_1_len(PACKET *pkt, size_t *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: PACKET_peek_4
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_peek_4(const PACKET *pkt,\n                                            unsigned
      long *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_4
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:314,1
    - Dst: packet_forward
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 320
    functionName: PACKET_get_4
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached:
    - PACKET_peek_4
    - packet_forward
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_get_4(PACKET *pkt, unsigned long *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: PACKET_peek_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_peek_bytes(const PACKET *pkt,\n                                                const
      unsigned char **data,\n                                                size_t
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_bytes
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:350,1
    - Dst: packet_forward
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: PACKET_get_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 2
    functionsReached:
    - PACKET_peek_bytes
    - packet_forward
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_get_bytes(PACKET *pkt,\n                                               const
      unsigned char **data,\n                                               size_t
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:363,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 369
    functionName: PACKET_peek_copy_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    - memcpy
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_peek_copy_bytes(const PACKET *pkt,\n                                                     unsigned
      char *data,\n                                                     size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:378,1
    - Dst: packet_forward
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 384
    functionName: PACKET_copy_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 4
    functionsReached:
    - packet_forward
    - PACKET_peek_copy_bytes
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_copy_bytes(PACKET *pkt,\n                                                unsigned
      char *data, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:397,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pkt
    - dest
    - dest_len
    - len
    argTypes:
    - PACKET*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 404
    functionName: PACKET_copy_all
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached:
    - PACKET_remaining
    - memcpy
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_copy_all(const PACKET *pkt,\n                                              unsigned
      char *dest,\n                                              size_t dest_len,
      size_t *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:420,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:424,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 435
    functionName: PACKET_memdup
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached:
    - PACKET_remaining
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_memdup(const PACKET *pkt,\n                                            unsigned
      char **data, size_t *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:449,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:452,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 454
    functionName: PACKET_strndup
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 2
    functionsReached:
    - OPENSSL_strndup
    - PACKET_remaining
    - OPENSSL_free
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_strndup(const PACKET *pkt, char **data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: PACKET_contains_zero_byte
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 2
    functionsReached:
    - memchr
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline PACKET_contains_zero_byte(const PACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:465,1
    - Dst: packet_forward
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - len
    argTypes:
    - PACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 471
    functionName: PACKET_forward
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 21
    functionsReached:
    - PACKET_remaining
    - packet_forward
    linkageType: ''
    returnType: __owur
    signature: __owur PACKET_forward(PACKET *pkt, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:486,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 496
    functionName: PACKET_get_length_prefixed_1
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 8
    functionsReached:
    - PACKET_get_1
    - PACKET_get_bytes
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_get_length_prefixed_1(PACKET *pkt,\n                                                           PACKET
      *subpkt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:508,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:509,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 519
    functionName: PACKET_as_length_prefixed_1
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached:
    - PACKET_remaining
    - PACKET_get_1
    - PACKET_get_bytes
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_as_length_prefixed_1(PACKET *pkt,\n                                                          PACKET
      *subpkt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:535,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 545
    functionName: PACKET_get_length_prefixed_2
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 9
    functionsReached:
    - PACKET_get_bytes
    - PACKET_get_net_2
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_get_length_prefixed_2(PACKET *pkt,\n                                                           PACKET
      *subpkt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:558,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:559,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 569
    functionName: PACKET_as_length_prefixed_2
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 4
    functionsReached:
    - PACKET_remaining
    - PACKET_get_bytes
    - PACKET_get_net_2
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_as_length_prefixed_2(PACKET *pkt,\n                                                          PACKET
      *subpkt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_3
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:584,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/packet_local.h:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 594
    functionName: PACKET_get_length_prefixed_3
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 2
    functionsReached:
    - PACKET_get_net_3
    - PACKET_get_bytes
    linkageType: ''
    returnType: __owur
    signature: "__owur PACKET_get_length_prefixed_3(PACKET *pkt,\n                                                           PACKET
      *subpkt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pkt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 720
    functionName: WPACKET_start_sub_packet_u8
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_start_sub_packet_u8(pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pkt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 722
    functionName: WPACKET_start_sub_packet_u16
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_start_sub_packet_u16(pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pkt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 724
    functionName: WPACKET_start_sub_packet_u24
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_start_sub_packet_u24(pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pkt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 726
    functionName: WPACKET_start_sub_packet_u32
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_start_sub_packet_u32(pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - len
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 759
    functionName: WPACKET_sub_allocate_bytes_u8
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_allocate_bytes_u8(pkt, len, bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - len
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 761
    functionName: WPACKET_sub_allocate_bytes_u16
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_allocate_bytes_u16(pkt, len, bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - len
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 763
    functionName: WPACKET_sub_allocate_bytes_u24
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_allocate_bytes_u24(pkt, len, bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - len
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 765
    functionName: WPACKET_sub_allocate_bytes_u32
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_allocate_bytes_u32(pkt, len, bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - len
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 797
    functionName: WPACKET_sub_reserve_bytes_u8
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_reserve_bytes_u8(pkt, len, bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - len
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 799
    functionName: WPACKET_sub_reserve_bytes_u16
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_reserve_bytes_u16(pkt, len, bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - len
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 801
    functionName: WPACKET_sub_reserve_bytes_u24
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_reserve_bytes_u24(pkt, len, bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - len
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 803
    functionName: WPACKET_sub_reserve_bytes_u32
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_reserve_bytes_u32(pkt, len, bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkt
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 819
    functionName: WPACKET_put_bytes_u8
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_put_bytes_u8(pkt, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkt
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 821
    functionName: WPACKET_put_bytes_u16
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_put_bytes_u16(pkt, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkt
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 823
    functionName: WPACKET_put_bytes_u24
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_put_bytes_u24(pkt, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pkt
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 825
    functionName: WPACKET_put_bytes_u32
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_put_bytes_u32(pkt, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 846
    functionName: WPACKET_sub_memcpy_u8
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_memcpy_u8(pkt, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 848
    functionName: WPACKET_sub_memcpy_u16
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_memcpy_u16(pkt, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 850
    functionName: WPACKET_sub_memcpy_u24
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_memcpy_u24(pkt, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkt
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 852
    functionName: WPACKET_sub_memcpy_u32
    functionSourceFile: /src/openssl-1.1.1g/ssl/packet_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPACKET_sub_memcpy_u32(pkt, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_undefined_function
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ssl
    - r
    - s
    - t
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: ssl_undefined_function_1
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_undefined_function
    linkageType: ''
    returnType: int
    signature: int ssl_undefined_function_1(SSL *ssl, SSL3_RECORD *r, size_t s, int
      t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_undefined_function
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ssl
    - r
    - s
    - t
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: ssl_undefined_function_2
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_undefined_function
    linkageType: ''
    returnType: int
    signature: "int ssl_undefined_function_2(SSL *ssl, SSL3_RECORD *r, unsigned char
      *s,\n                                    int t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_undefined_function
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ssl
    - r
    - s
    - t
    - u
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: ssl_undefined_function_3
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_undefined_function
    linkageType: ''
    returnType: int
    signature: "int ssl_undefined_function_3(SSL *ssl, unsigned char *r,\n                                    unsigned
      char *s, size_t t, size_t *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_undefined_function
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ssl
    - r
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: ssl_undefined_function_4
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_undefined_function
    linkageType: ''
    returnType: int
    signature: int ssl_undefined_function_4(SSL *ssl, int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_undefined_function
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ssl
    - r
    - s
    - t
    argTypes:
    - SSL*
    - char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: ssl_undefined_function_5
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_undefined_function
    linkageType: ''
    returnType: size_t
    signature: "size_t ssl_undefined_function_5(SSL *ssl, const char *r, size_t s,\n
      \                                      unsigned char *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_undefined_function
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: ssl_undefined_function_6
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_undefined_function
    linkageType: ''
    returnType: int
    signature: int ssl_undefined_function_6(int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_undefined_function
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ssl
    - r
    - s
    - t
    - u
    - v
    - w
    - x
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: ssl_undefined_function_7
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_undefined_function
    linkageType: ''
    returnType: int
    signature: "int ssl_undefined_function_7(SSL *ssl, unsigned char *r, size_t s,\n
      \                                   const char *t, size_t u,\n                                    const
      unsigned char *v, size_t w, int x)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:144,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:148,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:149,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:150,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:155,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - struct dane_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 170
    functionName: dane_ctx_enable
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbynid
    - OSSL_NELEM
    - OPENSSL_free
    - OPENSSL_zalloc
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int dane_ctx_enable(struct dane_ctx_st *dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:174,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - struct dane_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: dane_ctx_final
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void dane_ctx_final(struct dane_ctx_st *dctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:186,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:187,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - danetls_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: tlsa_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void tlsa_free(danetls_record *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_danetls_record_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:193,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:196,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - dane
    argTypes:
    - SSL_DANE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 204
    functionName: dane_final
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_free
    - sk_X509_pop_free
    - sk_danetls_record_pop_free
    linkageType: ''
    returnType: void
    signature: void dane_final(SSL_DANE *dane)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:214,1
    - Dst: sk_danetls_record_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:217,1
    - Dst: dane_final
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:218,1
    - Dst: sk_danetls_record_new_reserve
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:221,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:224,1
    - Dst: sk_danetls_record_value
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:229,1
    - Dst: SSL_dane_tlsa_add
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - SSL*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 236
    functionName: ssl_dane_dup
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - sk_danetls_record_num
    - sk_danetls_record_value
    - DANETLS_ENABLED
    - SSLerr
    - dane_final
    - sk_danetls_record_new_reserve
    - SSL_dane_tlsa_add
    linkageType: ''
    returnType: int
    signature: int ssl_dane_dup(SSL *to, SSL *from)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:244,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:253,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:255,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:260,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - dctx
    - md
    - mtype
    - ord
    argTypes:
    - struct dane_ctx_st*
    - EVP_MD*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 281
    functionName: dane_mtype_set
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_realloc
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int dane_mtype_set(struct dane_ctx_st *dctx,\n                          const
      EVP_MD *md, uint8_t mtype, uint8_t ord)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dane
    - mtype
    argTypes:
    - SSL_DANE*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: tlsa_md_get
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *tlsa_md_get(SSL_DANE *dane, uint8_t mtype)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:302,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:307,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:312,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:317,1
    - Dst: tlsa_md_get
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:322,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:324,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:329,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:330,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:334,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:338,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:339,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:346,1
    - Dst: tlsa_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:348,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:349,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:352,1
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:363,1
    - Dst: tlsa_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:365,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:366,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:369,1
    - Dst: tlsa_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:370,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:371,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:375,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:376,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:388,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:389,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:390,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:391,1
    - Dst: tlsa_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:392,1
    - Dst: d2i_PUBKEY
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:398,1
    - Dst: tlsa_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:400,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:401,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:413,1
    - Dst: sk_danetls_record_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:432,1
    - Dst: sk_danetls_record_value
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:434,1
    - Dst: sk_danetls_record_insert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:449,1
    - Dst: tlsa_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:450,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:451,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:454,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 104
    argCount: 6
    argNames:
    - dane
    - usage
    - selector
    - mtype
    - data
    - dlen
    argTypes:
    - SSL_DANE*
    - uint8_t
    - uint8_t
    - uint8_t
    - unsigned const char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 290
    functionDepth: 7
    functionLinenumber: 290
    functionLinenumberEnd: 457
    functionName: dane_tlsa_add
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - X509_free
    - OPENSSL_malloc
    - DANETLS_USAGE_BIT
    - sk_X509_push
    - EVP_PKEY_free
    - tlsa_md_get
    - sk_X509_new_null
    - tlsa_free
    - sk_danetls_record_insert
    - memcpy
    - sk_danetls_record_num
    - sk_danetls_record_value
    - OPENSSL_zalloc
    - SSLerr
    - EVP_MD_size
    - X509_get0_pubkey
    - d2i_X509
    - d2i_PUBKEY
    linkageType: ''
    returnType: int
    signature: "int dane_tlsa_add(SSL_DANE *dane,\n                         uint8_t
      usage,\n                         uint8_t selector,\n                         uint8_t
      mtype, unsigned const char *data, size_t dlen)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_VERSION_GE
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:499,1
    - Dst: DTLS_VERSION_GE
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:500,1
    - Dst: DTLS_VERSION_GE
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:503,1
    - Dst: DTLS_VERSION_GE
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:504,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 44
    argCount: 2
    argNames:
    - min_version
    - max_version
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 567
    functionName: ssl_check_allowed_versions
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - DTLS_VERSION_GE
    linkageType: ''
    returnType: int
    signature: int ssl_check_allowed_versions(int min_version, int max_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_clear_cipher_ctx
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:572,1
    - Dst: ssl_clear_hash_ctx
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:573,1
    - Dst: ssl_clear_hash_ctx
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 575
    functionName: clear_ciphers
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_clear_hash_ctx
    - ssl_clear_cipher_ctx
    linkageType: ''
    returnType: void
    signature: void clear_ciphers(SSL *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:580,1
    - Dst: ssl_clear_bad_session
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:584,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:585,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:588,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:590,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:601,1
    - Dst: ossl_statem_clear
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:605,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:611,1
    - Dst: clear_ciphers
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:613,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:618,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:624,1
    - Dst: X509_VERIFY_PARAM_move_peername
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:629,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:632,1
    - Dst: SSL*::method::ssl_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:641,1
    - Dst: SSL*::method::ssl_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:643,1
    - Dst: SSL*::method::ssl_clear
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:646,1
    - Dst: RECORD_LAYER_clear
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 577
    functionDepth: 4
    functionLinenumber: 577
    functionLinenumberEnd: 653
    functionName: SSL_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 5
    functionsReached:
    - X509_free
    - ossl_statem_clear
    - SSL*::method::ssl_free
    - SSL_SESSION_free
    - X509_VERIFY_PARAM_move_peername
    - OPENSSL_free
    - SSL*::method::ssl_new
    - SSL*::method::ssl_clear
    - RECORD_LAYER_clear
    - ssl_clear_bad_session
    - BUF_MEM_free
    - SSLerr
    - EVP_MD_CTX_free
    - clear_ciphers
    linkageType: ''
    returnType: int
    signature: int SSL_clear(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:658,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:662,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:663,1
    - Dst: ssl_create_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:666,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:671,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - meth
    argTypes:
    - SSL_CTX*
    - SSL_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 676
    functionName: SSL_CTX_set_ssl_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_num
    - STACK_OF
    - SSLerr
    - SSL_CTX_set_ciphersuites
    - ssl_create_cipher_list
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:683,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:687,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:691,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:696,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:698,1
    - Dst: RECORD_LAYER_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:703,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:717,1
    - Dst: ssl_cert_dup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:730,1
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:734,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:743,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:745,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:749,1
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:752,1
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:760,1
    - Dst: SSL_set_default_read_buffer_len
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:762,1
    - Dst: SSL_CTX_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:764,1
    - Dst: SSL_CTX_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:775,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:780,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:789,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:802,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:805,1
    - Dst: SSL*::method::ssl_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:822,1
    - Dst: SSL_clear
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:827,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:830,1
    - Dst: SSL_set_ct_validation_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:843,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:850,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:851,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 137
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 678
    functionDepth: 5
    functionLinenumber: 678
    functionLinenumberEnd: 853
    functionName: SSL_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 29
    functionsReached:
    - SSL_set_default_read_buffer_len
    - sk_SSL_CIPHER_dup
    - SSL_set_ct_validation_callback
    - X509_VERIFY_PARAM_inherit
    - ssl_cert_dup
    - OPENSSL_malloc
    - OPENSSL_free
    - SSL*::method::ssl_new
    - memcpy
    - CRYPTO_THREAD_lock_new
    - OPENSSL_zalloc
    - SSLerr
    - SSL_clear
    - SSL_free
    - X509_VERIFY_PARAM_new
    - ossl_assert
    - RECORD_LAYER_set_read_ahead
    - CRYPTO_new_ex_data
    - RECORD_LAYER_init
    - SSL_CTX_up_ref
    - OPENSSL_memdup
    linkageType: ''
    returnType: SSL
    signature: SSL *SSL_new(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 858
    functionName: SSL_is_dtls
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 7
    functionsReached:
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: int SSL_is_dtls(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:864,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:867,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 870
    functionName: SSL_up_ref
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int SSL_up_ref(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:876,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - sid_ctx
    - sid_ctx_len
    argTypes:
    - SSL_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 884
    functionName: SSL_CTX_set_session_id_context
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached:
    - SSLerr
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char
      *sid_ctx,\n                                   unsigned int sid_ctx_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:890,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ssl
    - sid_ctx
    - sid_ctx_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 898
    functionName: SSL_set_session_id_context
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - SSLerr
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx,\n
      \                              unsigned int sid_ctx_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:902,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - SSL_CTX*
    - GEN_SESSION_CB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 906
    functionName: SSL_CTX_set_generate_session_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:910,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ssl
    - cb
    argTypes:
    - SSL*
    - GEN_SESSION_CB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 914
    functionName: SSL_set_generate_session_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int SSL_set_generate_session_id(SSL *ssl, GEN_SESSION_CB cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:933,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:935,1
    - Dst: lh_SSL_SESSION_retrieve
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:936,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ssl
    - id
    - id_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 939
    functionName: SSL_has_matching_session_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - lh_SSL_SESSION_retrieve
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_unlock
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int SSL_has_matching_session_id(const SSL *ssl, const unsigned char
      *id,\n                                unsigned int id_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - purpose
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 941
    functionDepth: 2
    functionLinenumber: 941
    functionLinenumberEnd: 944
    functionName: SSL_CTX_set_purpose
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_purpose
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_purpose(SSL_CTX *s, int purpose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - purpose
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 949
    functionName: SSL_set_purpose
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_purpose
    linkageType: ''
    returnType: int
    signature: int SSL_set_purpose(SSL *s, int purpose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_trust
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - trust
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 951
    functionDepth: 3
    functionLinenumber: 951
    functionLinenumberEnd: 954
    functionName: SSL_CTX_set_trust
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_trust
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_trust(SSL_CTX *s, int trust)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_trust
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - trust
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 956
    functionDepth: 3
    functionLinenumber: 956
    functionLinenumberEnd: 959
    functionName: SSL_set_trust
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_trust
    linkageType: ''
    returnType: int
    signature: int SSL_set_trust(SSL *s, int trust)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set1_host
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - hostname
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 961
    functionDepth: 3
    functionLinenumber: 961
    functionLinenumberEnd: 964
    functionName: SSL_set1_host
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_VERIFY_PARAM_set1_host
    linkageType: ''
    returnType: int
    signature: int SSL_set1_host(SSL *s, const char *hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_add1_host
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - hostname
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 969
    functionName: SSL_add1_host
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_add1_host
    linkageType: ''
    returnType: int
    signature: int SSL_add1_host(SSL *s, const char *hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - flags
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 974
    functionName: SSL_set_hostflags
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_hostflags
    linkageType: ''
    returnType: void
    signature: void SSL_set_hostflags(SSL *s, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_get0_peername
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 979
    functionName: SSL_get0_peername
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_VERIFY_PARAM_get0_peername
    linkageType: ''
    returnType: char
    signature: char *SSL_get0_peername(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dane_ctx_enable
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 984
    functionName: SSL_CTX_dane_enable
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - dane_ctx_enable
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_dane_enable(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - SSL_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 992
    functionName: SSL_CTX_dane_set_flags
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - SSL_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1000
    functionName: SSL_CTX_dane_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long
      flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1007,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1011,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1021,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1022,1
    - Dst: X509_VERIFY_PARAM_set1_host
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1028,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1029,1
    - Dst: sk_danetls_record_new_null
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1036,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1039,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - s
    - basedomain
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1043
    functionName: SSL_dane_enable
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - sk_danetls_record_new_null
    - SSLerr
    - X509_VERIFY_PARAM_set1_host
    - SSL_set_tlsext_host_name
    linkageType: ''
    returnType: int
    signature: int SSL_dane_enable(SSL *s, const char *basedomain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ssl
    - flags
    argTypes:
    - SSL*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1051
    functionName: SSL_dane_set_flags
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ssl
    - flags
    argTypes:
    - SSL*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1059
    functionName: SSL_dane_clear_flags
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1065,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - s
    - mcert
    - mspki
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1074
    functionName: SSL_get0_dane_authority
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - DANETLS_ENABLED
    linkageType: ''
    returnType: int
    signature: int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1081,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 6
    argNames:
    - s
    - usage
    - selector
    - mtype
    - data
    - dlen
    argTypes:
    - SSL*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - unsigned const char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1096
    functionName: SSL_get0_dane_tlsa
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - DANETLS_ENABLED
    linkageType: ''
    returnType: int
    signature: "int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector,\n
      \                      uint8_t *mtype, unsigned const char **data, size_t *dlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1101
    functionName: SSL_get0_dane
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SSL_DANE
    signature: SSL_DANE *SSL_get0_dane(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dane_tlsa_add
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - usage
    - selector
    - mtype
    - data
    - dlen
    argTypes:
    - SSL*
    - uint8_t
    - uint8_t
    - uint8_t
    - unsigned const char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1103
    functionDepth: 8
    functionLinenumber: 1103
    functionLinenumberEnd: 1107
    functionName: SSL_dane_tlsa_add
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - dane_tlsa_add
    linkageType: ''
    returnType: int
    signature: "int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector,\n                      uint8_t
      mtype, unsigned const char *data, size_t dlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dane_mtype_set
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - md
    - mtype
    - ord
    argTypes:
    - SSL_CTX*
    - EVP_MD*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1109
    functionDepth: 2
    functionLinenumber: 1109
    functionLinenumberEnd: 1113
    functionName: SSL_CTX_dane_mtype_set
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - dane_mtype_set
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, uint8_t
      mtype,\n                           uint8_t ord)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set1
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - vpm
    argTypes:
    - SSL_CTX*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1115
    functionDepth: 3
    functionLinenumber: 1115
    functionLinenumberEnd: 1118
    functionName: SSL_CTX_set1_param
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_VERIFY_PARAM_set1
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set1
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - vpm
    argTypes:
    - SSL*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1123
    functionName: SSL_set1_param
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set1
    linkageType: ''
    returnType: int
    signature: int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1128
    functionName: SSL_CTX_get0_param
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1133
    functionName: SSL_get0_param
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_clear_certs
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1138
    functionName: SSL_certs_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ssl_cert_clear_certs
    linkageType: ''
    returnType: void
    signature: void SSL_certs_clear(SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1146,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1147,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1150,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1152,1
    - Dst: dane_final
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1153,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1154,1
    - Dst: ssl_free_wbio_buffer
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1157,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1159,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1160,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1162,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1165,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1166,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1167,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1168,1
    - Dst: ssl_clear_bad_session
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1172,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1173,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1175,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1176,1
    - Dst: clear_ciphers
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1178,1
    - Dst: ssl_cert_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1180,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1181,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1184,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1185,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1187,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1188,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1189,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1190,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1192,1
    - Dst: sk_OCSP_RESPID_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1194,1
    - Dst: SCT_LIST_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1197,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1200,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1201,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1202,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1203,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1204,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1205,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1207,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1208,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1210,1
    - Dst: SSL*::method::ssl_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1213,1
    - Dst: RECORD_LAYER_release
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1215,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1217,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1219,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1222,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1226,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1229,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1140
    functionDepth: 5
    functionLinenumber: 1140
    functionLinenumberEnd: 1232
    functionName: SSL_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 868
    functionsReached:
    - sk_SSL_CIPHER_free
    - SSL_SESSION_free
    - X509_VERIFY_PARAM_free
    - REF_PRINT_COUNT
    - ssl_clear_bad_session
    - EVP_MD_CTX_free
    - ssl_free_wbio_buffer
    - clear_ciphers
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - RECORD_LAYER_release
    - ASYNC_WAIT_CTX_free
    - CRYPTO_THREAD_lock_free
    - SSL*::method::ssl_free
    - ssl_cert_free
    - BUF_MEM_free
    - sk_SRTP_PROTECTION_PROFILE_free
    - sk_X509_EXTENSION_pop_free
    - SCT_LIST_free
    - dane_final
    - CRYPTO_DOWN_REF
    - CRYPTO_free_ex_data
    - sk_X509_pop_free
    - sk_OCSP_RESPID_pop_free
    - BIO_free_all
    - SSL_CTX_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: void
    signature: void SSL_free(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - rbio
    argTypes:
    - SSL*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1234
    functionDepth: 5
    functionLinenumber: 1234
    functionLinenumberEnd: 1238
    functionName: SSL_set0_rbio
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - BIO_free_all
    linkageType: ''
    returnType: void
    signature: void SSL_set0_rbio(SSL *s, BIO *rbio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1246,1
    - Dst: BIO_free_all
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1248,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - wbio
    argTypes:
    - SSL*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1240
    functionDepth: 5
    functionLinenumber: 1240
    functionLinenumberEnd: 1254
    functionName: SSL_set0_wbio
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - BIO_pop
    - BIO_free_all
    - BIO_push
    linkageType: ''
    returnType: void
    signature: void SSL_set0_wbio(SSL *s, BIO *wbio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1264,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1264,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1272,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1277,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1278,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1286,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1286,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1286,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1287,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1292,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - s
    - rbio
    - wbio
    argTypes:
    - SSL*
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1256
    functionDepth: 6
    functionLinenumber: 1256
    functionLinenumberEnd: 1294
    functionName: SSL_set_bio
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 21
    functionsReached:
    - SSL_set0_wbio
    - SSL_get_wbio
    - SSL_get_rbio
    - BIO_up_ref
    - SSL_set0_rbio
    linkageType: ''
    returnType: void
    signature: void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1299
    functionName: SSL_get_rbio
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *SSL_get_rbio(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1311
    functionName: SSL_get_wbio
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 16
    functionsReached:
    - BIO_next
    linkageType: ''
    returnType: BIO
    signature: BIO *SSL_get_wbio(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_rfd
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1316
    functionName: SSL_get_fd
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached:
    - SSL_get_rfd
    linkageType: ''
    returnType: int
    signature: int SSL_get_fd(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1323,1
    - Dst: BIO_find_type
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1324,1
    - Dst: BIO_get_fd
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1328
    functionName: SSL_get_rfd
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - BIO_find_type
    - BIO_get_fd
    - SSL_get_rbio
    linkageType: ''
    returnType: int
    signature: int SSL_get_rfd(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1335,1
    - Dst: BIO_find_type
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1336,1
    - Dst: BIO_get_fd
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1330
    functionDepth: 2
    functionLinenumber: 1330
    functionLinenumberEnd: 1340
    functionName: SSL_get_wfd
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - BIO_find_type
    - SSL_get_wbio
    - BIO_get_fd
    linkageType: ''
    returnType: int
    signature: int SSL_get_wfd(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1348,1
    - Dst: BIO_s_socket
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1348,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1351,1
    - Dst: BIO_set_fd
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1354,1
    - Dst: SSL_set_bio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1343
    functionDepth: 7
    functionLinenumber: 1343
    functionLinenumberEnd: 1359
    functionName: SSL_set_fd
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_set_bio
    - BIO_set_fd
    - SSLerr
    - BIO_s_socket
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_set_fd(SSL *s, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1363,1
    - Dst: BIO_method_type
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1365,1
    - Dst: BIO_get_fd
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1366,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1367,1
    - Dst: BIO_s_socket
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1367,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1370,1
    - Dst: BIO_set_fd
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1373,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1374,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1376,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1361
    functionDepth: 6
    functionLinenumber: 1361
    functionLinenumberEnd: 1380
    functionName: SSL_set_wfd
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_set0_wbio
    - BIO_up_ref
    - BIO_get_fd
    - SSL_get_rbio
    - SSLerr
    - BIO_s_socket
    - BIO_set_fd
    - BIO_method_type
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_set_wfd(SSL *s, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1384,1
    - Dst: BIO_method_type
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1386,1
    - Dst: BIO_get_fd
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1387,1
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1388,1
    - Dst: BIO_s_socket
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1388,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1391,1
    - Dst: BIO_set_fd
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1394,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1395,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1397,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1382
    functionDepth: 6
    functionLinenumber: 1382
    functionLinenumberEnd: 1402
    functionName: SSL_set_rfd
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - BIO_get_fd
    - BIO_set_fd
    - SSLerr
    - BIO_s_socket
    - BIO_up_ref
    - SSL_set0_rbio
    - BIO_method_type
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_set_rfd(SSL *s, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - s
    - buf
    - count
    argTypes:
    - SSL*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1417
    functionName: SSL_get_finished
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_get_finished(const SSL *s, void *buf, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - s
    - buf
    - count
    argTypes:
    - SSL*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1431
    functionName: SSL_get_peer_finished
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1436
    functionName: SSL_get_verify_mode
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_get_verify_mode(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_get_depth
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1441
    functionName: SSL_get_verify_depth
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get_depth
    linkageType: ''
    returnType: int
    signature: int SSL_get_verify_depth(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1443
    functionDepth: 0
    functionLinenumber: 1443
    functionLinenumberEnd: 1445
    functionName: (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *)
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1450
    functionName: SSL_CTX_get_verify_mode
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_get_verify_mode(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_get_depth
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1455
    functionName: SSL_CTX_get_verify_depth
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get_depth
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_get_verify_depth(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1459
    functionName: (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int, X509_STORE_CTX
      *)
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int, X509_STORE_CTX
      *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1467
    functionName: SSL_set_verify
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_set_verify(SSL *s, int mode,\n                    int (*callback)
      (int ok, X509_STORE_CTX *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - depth
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1472
    functionName: SSL_set_verify_depth
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: void
    signature: void SSL_set_verify_depth(SSL *s, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - 'yes'
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1474
    functionDepth: 1
    functionLinenumber: 1474
    functionLinenumberEnd: 1477
    functionName: SSL_set_read_ahead
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_set_read_ahead
    linkageType: ''
    returnType: void
    signature: void SSL_set_read_ahead(SSL *s, int yes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1482
    functionName: SSL_get_read_ahead
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_get_read_ahead
    linkageType: ''
    returnType: int
    signature: int SSL_get_read_ahead(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_pending
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1484
    functionDepth: 0
    functionLinenumber: 1484
    functionLinenumberEnd: 1499
    functionName: SSL_pending
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - SSL*::method::ssl_pending
    linkageType: ''
    returnType: int
    signature: int SSL_pending(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_processed_read_pending
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1511,1
    - Dst: RECORD_LAYER_read_pending
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1515
    functionName: SSL_has_pending
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - RECORD_LAYER_processed_read_pending
    - RECORD_LAYER_read_pending
    linkageType: ''
    returnType: int
    signature: int SSL_has_pending(const SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1517
    functionDepth: 2
    functionLinenumber: 1517
    functionLinenumberEnd: 1532
    functionName: SSL_get_peer_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 9
    functionsReached:
    - X509_up_ref
    linkageType: ''
    returnType: X509
    signature: X509 *SSL_get_peer_certificate(const SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_session
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1559,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1559,1
    - Dst: SSL*::method::ssl_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1567,1
    - Dst: SSL*::method::ssl_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1569,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1573,1
    - Dst: ssl_cert_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1574,1
    - Dst: SSL_set_session_id_context
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - t
    - f
    argTypes:
    - SSL*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1581
    functionName: SSL_copy_session_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_set_session
    - SSL_set_session_id_context
    - SSL*::method::ssl_free
    - SSL_get_session
    - SSL*::method::ssl_new
    - ssl_cert_free
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int SSL_copy_session_id(SSL *t, const SSL *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1587,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1591,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1584
    functionDepth: 3
    functionLinenumber: 1584
    functionLinenumberEnd: 1596
    functionName: SSL_CTX_check_private_key
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - X509_check_private_key
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_check_private_key(const SSL_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1602,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1606,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1610,1
    - Dst: X509_check_private_key
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1599
    functionDepth: 3
    functionLinenumber: 1599
    functionLinenumberEnd: 1615
    functionName: SSL_check_private_key
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_check_private_key
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_check_private_key(const SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1623
    functionName: SSL_waiting_for_async
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_waiting_for_async(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - fds
    - numfds
    argTypes:
    - SSL*
    - OSSL_ASYNC_FD*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1625
    functionDepth: 1
    functionLinenumber: 1625
    functionLinenumberEnd: 1632
    functionName: SSL_get_all_async_fds
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ASYNC_WAIT_CTX_get_all_fds
    linkageType: ''
    returnType: int
    signature: int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s
    - addfd
    - numaddfds
    - delfd
    - numdelfds
    argTypes:
    - SSL*
    - OSSL_ASYNC_FD*
    - size_t*
    - OSSL_ASYNC_FD*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1643
    functionName: SSL_get_changed_async_fds
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_get_changed_fds
    linkageType: ''
    returnType: int
    signature: "int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, size_t
      *numaddfds,\n                              OSSL_ASYNC_FD *delfd, size_t *numdelfds)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1649,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1653
    functionName: SSL_accept
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 7
    functionsReached:
    - SSL_do_handshake
    - SSL_set_accept_state
    linkageType: ''
    returnType: int
    signature: int SSL_accept(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1659,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1663
    functionName: SSL_connect
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 13
    functionsReached:
    - SSL_do_handshake
    - SSL_set_connect_state
    linkageType: ''
    returnType: int
    signature: int SSL_connect(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::get_timeout
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1668
    functionName: SSL_get_default_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::method::get_timeout
    linkageType: ''
    returnType: long
    signature: long SSL_get_default_timeout(const SSL *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1675,1
    - Dst: ASYNC_start_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1679,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1683,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - SSL*
    - struct ssl_async_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1670
    functionDepth: 5
    functionLinenumber: 1670
    functionLinenumberEnd: 1700
    functionName: ssl_start_async_job
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_new
    - ASYNC_start_job
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int ssl_start_async_job(SSL *s, struct ssl_async_args *args,\n                               int
      (*func) (void *))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct ssl_async_args*::f::func_read
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1715,1
    - Dst: struct ssl_async_args*::f::func_write
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1717,1
    - Dst: struct ssl_async_args*::f::func_other
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - vargs
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1722
    functionName: ssl_io_intern
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - struct ssl_async_args*::f::func_read
    - struct ssl_async_args*::f::func_other
    - struct ssl_async_args*::f::func_write
    linkageType: ''
    returnType: int
    signature: int ssl_io_intern(void *vargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1727,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1738,1
    - Dst: ossl_statem_check_finish_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1745,1
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1747,1
    - Dst: ssl_start_async_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1757,1
    - Dst: SSL*::method::ssl_read
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - s
    - buf
    - num
    - readbytes
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1724
    functionDepth: 6
    functionLinenumber: 1724
    functionLinenumberEnd: 1763
    functionName: ssl_read_internal
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ssl_start_async_job
    - SSL*::method::ssl_read
    - ossl_statem_check_finish_init
    - SSLerr
    - ASYNC_get_current_job
    linkageType: ''
    returnType: int
    signature: int ssl_read_internal(SSL *s, void *buf, size_t num, size_t *readbytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1771,1
    - Dst: ssl_read_internal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - s
    - buf
    - num
    argTypes:
    - SSL*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1765
    functionDepth: 7
    functionLinenumber: 1765
    functionLinenumberEnd: 1785
    functionName: SSL_read
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 18
    functionsReached:
    - ssl_read_internal
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_read(SSL *s, void *buf, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_read_internal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - s
    - buf
    - num
    - readbytes
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1787
    functionDepth: 7
    functionLinenumber: 1787
    functionLinenumberEnd: 1794
    functionName: SSL_read_ex
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 10
    functionsReached:
    - ssl_read_internal
    linkageType: ''
    returnType: int
    signature: int SSL_read_ex(SSL *s, void *buf, size_t num, size_t *readbytes)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1801,1
    - Dst: SSL_in_before
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1807,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1808,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1816,1
    - Dst: SSL_read_ex
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1827,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1846,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - s
    - buf
    - num
    - readbytes
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1796
    functionDepth: 8
    functionLinenumber: 1796
    functionLinenumberEnd: 1849
    functionName: SSL_read_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 12
    functionsReached:
    - SSL_read_ex
    - SSL_accept
    - SSLerr
    - SSL_in_before
    linkageType: ''
    returnType: int
    signature: int SSL_read_early_data(SSL *s, void *buf, size_t num, size_t *readbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1851
    functionDepth: 0
    functionLinenumber: 1851
    functionLinenumberEnd: 1854
    functionName: SSL_get_early_data_status
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_get_early_data_status(const SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1859,1
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1866,1
    - Dst: ssl_start_async_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1876,1
    - Dst: SSL*::method::ssl_peek
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1880,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - s
    - buf
    - num
    - readbytes
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1856
    functionDepth: 6
    functionLinenumber: 1856
    functionLinenumberEnd: 1882
    functionName: ssl_peek_internal
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_start_async_job
    - SSLerr
    - ASYNC_get_current_job
    - SSL*::method::ssl_peek
    linkageType: ''
    returnType: int
    signature: int ssl_peek_internal(SSL *s, void *buf, size_t num, size_t *readbytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1890,1
    - Dst: ssl_peek_internal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - s
    - buf
    - num
    argTypes:
    - SSL*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1884
    functionDepth: 7
    functionLinenumber: 1884
    functionLinenumberEnd: 1904
    functionName: SSL_peek
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - SSLerr
    - ssl_peek_internal
    linkageType: ''
    returnType: int
    signature: int SSL_peek(SSL *s, void *buf, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_peek_internal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - s
    - buf
    - num
    - readbytes
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1907
    functionDepth: 7
    functionLinenumber: 1907
    functionLinenumberEnd: 1914
    functionName: SSL_peek_ex
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_peek_internal
    linkageType: ''
    returnType: int
    signature: int SSL_peek_ex(SSL *s, void *buf, size_t num, size_t *readbytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1919,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1925,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1932,1
    - Dst: ossl_statem_check_finish_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1936,1
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1938,1
    - Dst: ssl_start_async_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1948,1
    - Dst: SSL*::method::ssl_write
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1952,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - s
    - buf
    - num
    - written
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1916
    functionDepth: 6
    functionLinenumber: 1916
    functionLinenumberEnd: 1954
    functionName: ssl_write_internal
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ssl_start_async_job
    - SSL*::method::ssl_write
    - ossl_statem_check_finish_init
    - SSLerr
    - ASYNC_get_current_job
    linkageType: ''
    returnType: int
    signature: int ssl_write_internal(SSL *s, const void *buf, size_t num, size_t
      *written)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1962,1
    - Dst: ssl_write_internal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - s
    - buf
    - num
    argTypes:
    - SSL*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1956
    functionDepth: 7
    functionLinenumber: 1956
    functionLinenumberEnd: 1976
    functionName: SSL_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 14
    functionsReached:
    - ssl_write_internal
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_write(SSL *s, const void *buf, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_write_internal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - s
    - buf
    - num
    - written
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1978
    functionDepth: 7
    functionLinenumber: 1978
    functionLinenumberEnd: 1985
    functionName: SSL_write_ex
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 7
    functionsReached:
    - ssl_write_internal
    linkageType: ''
    returnType: int
    signature: int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SSL_in_before
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1996,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:1999,1
    - Dst: SSL_connect
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2007,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2024,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2035,1
    - Dst: SSL_write_ex
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2046,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2049,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2054,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 4
    argNames:
    - s
    - buf
    - num
    - written
    argTypes:
    - SSL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 1987
    functionDepth: 8
    functionLinenumber: 1987
    functionLinenumberEnd: 2057
    functionName: SSL_write_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 10
    functionsReached:
    - SSL_in_before
    - SSL_connect
    - SSLerr
    - SSL_write_ex
    - statem_flush
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int SSL_write_early_data(SSL *s, const void *buf, size_t num, size_t
      *written)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2069,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2073,1
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2074,1
    - Dst: ssl_start_async_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2081,1
    - Dst: SSL*::method::ssl_shutdown
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2083,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2086,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2059
    functionDepth: 6
    functionLinenumber: 2059
    functionLinenumberEnd: 2089
    functionName: SSL_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 24
    functionsReached:
    - ssl_start_async_job
    - SSL*::method::ssl_shutdown
    - SSLerr
    - ASYNC_get_current_job
    - SSL_in_init
    linkageType: ''
    returnType: int
    signature: int SSL_shutdown(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2098,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2099,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2105,1
    - Dst: SSL_is_init_finished
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2109,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2110,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - updatetype
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2091
    functionDepth: 1
    functionLinenumber: 2091
    functionLinenumberEnd: 2117
    functionName: SSL_key_update
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 7
    functionsReached:
    - SSL_is_init_finished
    - ossl_statem_set_in_init
    - SSL_IS_TLS13
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_key_update(SSL *s, int updatetype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2122
    functionName: SSL_get_key_update_type
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_get_key_update_type(const SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2126,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2127,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2132,1
    - Dst: SSL*::method::ssl_renegotiate
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2124
    functionDepth: 1
    functionLinenumber: 2124
    functionLinenumberEnd: 2140
    functionName: SSL_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 7
    functionsReached:
    - SSL*::method::ssl_renegotiate
    - SSL_IS_TLS13
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_renegotiate(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2144,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2145,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2150,1
    - Dst: SSL*::method::ssl_renegotiate
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2158
    functionName: SSL_renegotiate_abbreviated
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL*::method::ssl_renegotiate
    - SSL_IS_TLS13
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_renegotiate_abbreviated(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2160
    functionDepth: 0
    functionLinenumber: 2160
    functionLinenumberEnd: 2167
    functionName: SSL_renegotiate_pending
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_renegotiate_pending(const SSL *s)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2175,1
    - Dst: RECORD_LAYER_get_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2177,1
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2178,1
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2214,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2236,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2236,1
    - Dst: ssl_check_allowed_versions
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2243,1
    - Dst: ssl_set_version_bound
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2244,1
    - Dst: ssl_check_allowed_versions
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2249,1
    - Dst: ssl_set_version_bound
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2250,1
    - Dst: SSL*::method::ssl_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2255,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 4
    argNames:
    - s
    - cmd
    - larg
    - parg
    argTypes:
    - SSL*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2169
    functionDepth: 5
    functionLinenumber: 2169
    functionLinenumberEnd: 2257
    functionName: SSL_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - RECORD_LAYER_get_read_ahead
    - ssl_set_version_bound
    - SSL*::method::ssl_ctrl
    - ssl_check_allowed_versions
    - RECORD_LAYER_set_read_ahead
    - ossl_statem_get_in_handshake
    - SSL_in_init
    linkageType: ''
    returnType: long
    signature: long SSL_ctrl(SSL *s, int cmd, long larg, void *parg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - cmd
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2259
    functionDepth: 4
    functionLinenumber: 2259
    functionLinenumberEnd: 2272
    functionName: SSL_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::method::ssl_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long SSL_callback_ctrl(SSL *s, int cmd, void (*fp) (void))
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: tls1_set_groups_list
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2287,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2291,1
    - Dst: lh_SSL_SESSION_num_items
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2334,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2336,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2338,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2340,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2342,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2344,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2346,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2348,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2350,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2352,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2354,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2356,1
    - Dst: ssl_check_allowed_versions
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2383,1
    - Dst: ssl_set_version_bound
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2384,1
    - Dst: ssl_check_allowed_versions
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2389,1
    - Dst: ssl_set_version_bound
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2390,1
    - Dst: SSL_CTX*::method::ssl_ctx_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2395,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 104
    argCount: 4
    argNames:
    - ctx
    - cmd
    - larg
    - parg
    argTypes:
    - SSL_CTX*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2279
    functionDepth: 2
    functionLinenumber: 2279
    functionLinenumberEnd: 2397
    functionName: SSL_CTX_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_set_version_bound
    - lh_SSL_SESSION_num_items
    - ssl_check_allowed_versions
    - tls1_set_sigalgs_list
    - tsan_load
    - tls1_set_groups_list
    - SSL_CTX*::method::ssl_ctx_ctrl
    linkageType: ''
    returnType: long
    signature: long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX*::method::ssl_ctx_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - cmd
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2399
    functionDepth: 0
    functionLinenumber: 2399
    functionLinenumberEnd: 2412
    functionName: SSL_CTX_callback_ctrl
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_CTX*::method::ssl_ctx_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long SSL_CTX_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp) (void))
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SSL_CIPHER*
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2414
    functionDepth: 0
    functionLinenumber: 2414
    functionLinenumberEnd: 2421
    functionName: ssl_cipher_id_cmp
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_cipher_id_cmp(const SSL_CIPHER *a, const SSL_CIPHER *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ap
    - bp
    argTypes:
    - SSL_CIPHER**
    - SSL_CIPHER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2423
    functionDepth: 0
    functionLinenumber: 2423
    functionLinenumberEnd: 2431
    functionName: ssl_cipher_ptr_id_cmp
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ssl_cipher_ptr_id_cmp(const SSL_CIPHER *const *ap,\n                          const
      SSL_CIPHER *const *bp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2498,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2502,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2503,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2495
    functionDepth: 1
    functionLinenumber: 2495
    functionLinenumberEnd: 2509
    functionName: SSL_get_cipher_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_get_ciphers
    - STACK_OF
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    linkageType: ''
    returnType: char
    signature: char *SSL_get_cipher_list(const SSL *s, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2543,1
    - Dst: ssl_create_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2545,1
    - Dst: cipher_list_tls12_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2557,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2562
    functionName: SSL_CTX_set_cipher_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 22
    functionsReached:
    - ssl_create_cipher_list
    - STACK_OF
    - cipher_list_tls12_num
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2567,1
    - Dst: ssl_create_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2569,1
    - Dst: cipher_list_tls12_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2575,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2565
    functionDepth: 1
    functionLinenumber: 2565
    functionLinenumberEnd: 2580
    functionName: SSL_set_cipher_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 8
    functionsReached:
    - ssl_create_cipher_list
    - STACK_OF
    - cipher_list_tls12_num
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_set_cipher_list(SSL *s, const char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2585,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2596,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2600,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2600,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2603,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2606,1
    - Dst: sk_SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2607,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2610,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2617,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - s
    - buf
    - size
    argTypes:
    - SSL*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2582
    functionDepth: 1
    functionLinenumber: 2582
    functionLinenumberEnd: 2624
    functionName: SSL_get_shared_ciphers
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - sk_SSL_CIPHER_num
    - strcpy
    - sk_SSL_CIPHER_value
    - STACK_OF
    - sk_SSL_CIPHER_find
    - SSL_get_ciphers
    - strlen
    linkageType: ''
    returnType: char
    signature: char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2663,1
    - Dst: SSL_in_before
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2688,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2694,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - s
    - type
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2636
    functionDepth: 1
    functionLinenumber: 2636
    functionLinenumberEnd: 2700
    functionName: SSL_get_servername
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 11
    functionsReached:
    - SSL_IS_TLS13
    - SSL_in_before
    linkageType: ''
    returnType: char
    signature: char *SSL_get_servername(const SSL *s, const int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2702
    functionDepth: 2
    functionLinenumber: 2702
    functionLinenumberEnd: 2707
    functionName: SSL_get_servername_type
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_get_servername
    linkageType: ''
    returnType: int
    signature: int SSL_get_servername_type(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2744,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - out
    - outlen
    - server
    - server_len
    - client
    - client_len
    argTypes:
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2765
    functionName: SSL_select_next_proto
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 5
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int SSL_select_next_proto(unsigned char **out, unsigned char *outlen,\n
      \                         const unsigned char *server,\n                          unsigned
      int server_len,\n                          const unsigned char *client, unsigned
      int client_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - data
    - len
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2776
    functionDepth: 0
    functionLinenumber: 2776
    functionLinenumberEnd: 2785
    functionName: SSL_get0_next_proto_negotiated
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char
      **data,\n                                    unsigned *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - arg
    argTypes:
    - SSL_CTX*
    - SSL_CTX_npn_advertised_cb_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2797
    functionDepth: 0
    functionLinenumber: 2797
    functionLinenumberEnd: 2803
    functionName: SSL_CTX_set_npn_advertised_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_npn_advertised_cb(SSL_CTX *ctx,\n                                   SSL_CTX_npn_advertised_cb_func
      cb,\n                                   void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - arg
    argTypes:
    - SSL_CTX*
    - SSL_CTX_npn_select_cb_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2821
      start: 2815
    functionDepth: 0
    functionLinenumber: 2815
    functionLinenumberEnd: 2821
    functionName: SSL_CTX_set_npn_select_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_npn_select_cb(SSL_CTX *ctx,\n                               SSL_CTX_npn_select_cb_func
      cb,\n                               void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2832,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2833,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - protos
    - protos_len
    argTypes:
    - SSL_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2829
    functionDepth: 1
    functionLinenumber: 2829
    functionLinenumberEnd: 2841
    functionName: SSL_CTX_set_alpn_protos
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos,\n
      \                           unsigned int protos_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2851,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2852,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - protos
    - protos_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2848
    functionDepth: 1
    functionLinenumber: 2848
    functionLinenumberEnd: 2860
    functionName: SSL_set_alpn_protos
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,\n                        unsigned
      int protos_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - arg
    argTypes:
    - SSL_CTX*
    - SSL_CTX_alpn_select_cb_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2867
    functionDepth: 0
    functionLinenumber: 2867
    functionLinenumberEnd: 2873
    functionName: SSL_CTX_set_alpn_select_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx,\n                                SSL_CTX_alpn_select_cb_func
      cb,\n                                void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ssl
    - data
    - len
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2891
    functionName: SSL_get0_alpn_selected
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,\n
      \                           unsigned int *len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl3_enc::export_keying_material
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 8
    argNames:
    - s
    - out
    - olen
    - label
    - llen
    - context
    - contextlen
    - use_context
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2893
    functionDepth: 0
    functionLinenumber: 2893
    functionLinenumberEnd: 2904
    functionName: SSL_export_keying_material
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 5
    functionsReached:
    - SSL*::method::ssl3_enc::export_keying_material
    linkageType: ''
    returnType: int
    signature: "int SSL_export_keying_material(SSL *s, unsigned char *out, size_t
      olen,\n                               const char *label, size_t llen,\n                               const
      unsigned char *context, size_t contextlen,\n                               int
      use_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls13_export_keying_material_early
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - s
    - out
    - olen
    - label
    - llen
    - context
    - contextlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2906
    functionDepth: 1
    functionLinenumber: 2906
    functionLinenumberEnd: 2916
    functionName: SSL_export_keying_material_early
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - tls13_export_keying_material_early
    linkageType: ''
    returnType: int
    signature: "int SSL_export_keying_material_early(SSL *s, unsigned char *out, size_t
      olen,\n                                     const char *label, size_t llen,\n
      \                                    const unsigned char *context,\n                                     size_t
      contextlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2925,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2936
    functionName: ssl_session_hash
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ssl_session_hash(const SSL_SESSION *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SSL_SESSION*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2945
    functionDepth: 0
    functionLinenumber: 2945
    functionLinenumberEnd: 2952
    functionName: ssl_session_cmp
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ssl_session_cmp(const SSL_SESSION *a, const SSL_SESSION *b)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2966,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2970,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2973,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2974,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2977,1
    - Dst: SSL_METHOD*::get_timeout
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2988,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2990,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2992,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2993,1
    - Dst: ssl_cert_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:2998,1
    - Dst: lh_SSL_SESSION_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3001,1
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3004,1
    - Dst: CTLOG_STORE_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3008,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3013,1
    - Dst: ssl_create_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3016,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3020,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3021,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3025,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3029,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3030,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3033,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3034,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3038,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3041,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3044,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3047,1
    - Dst: SSL_COMP_get_compression_methods
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3052,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3058,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3060,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3062,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3066,1
    - Dst: SSL_CTX_SRP_CTX_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3071,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3081,1
    - Dst: eng_str
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3081,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3083,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3084,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3085,1
    - Dst: eng_str
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3085,1
    - Dst: SSL_CTX_set_client_cert_engine
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3087,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3088,1
    - Dst: ssl_ctx_system_config
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3140,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3144,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3146,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 117
    argCount: 1
    argNames:
    - meth
    argTypes:
    - SSL_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3148
      start: 2961
    functionDepth: 7
    functionLinenumber: 2961
    functionLinenumberEnd: 3148
    functionName: SSL_CTX_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 37
    functionsReached:
    - lh_SSL_SESSION_new
    - X509_STORE_new
    - ENGINE_load_builtin_engines
    - EVP_get_digestbyname
    - ssl_ctx_system_config
    - RAND_bytes
    - OPENSSL_free
    - OPENSSL_init_ssl
    - CRYPTO_THREAD_lock_new
    - OPENSSL_zalloc
    - SSLerr
    - ssl_cert_new
    - SSL_CTX_set_ciphersuites
    - SSL_COMP_get_compression_methods
    - ERR_clear_error
    - SSL_CTX_set_client_cert_engine
    - X509_VERIFY_PARAM_new
    - SSL_METHOD*::get_timeout
    - RAND_priv_bytes
    - sk_SSL_CIPHER_num
    - eng_str
    - ENGINE_by_id
    - OPENSSL_secure_zalloc
    - sk_X509_NAME_new_null
    - ssl_create_cipher_list
    - CTLOG_STORE_new
    - SSL_CTX_SRP_CTX_init
    - CRYPTO_new_ex_data
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - SSL_CTX_free
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3076
    functionDepth: 0
    functionLinenumber: 3076
    functionLinenumberEnd: 3077
    functionName: eng_strx
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eng_strx(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3077
    functionDepth: 0
    functionLinenumber: 3077
    functionLinenumberEnd: 3078
    functionName: eng_str
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eng_str(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3154,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3157,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3160
      start: 3150
    functionDepth: 1
    functionLinenumber: 3150
    functionLinenumberEnd: 3160
    functionName: SSL_CTX_up_ref
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_up_ref(SSL_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3169,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3170,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3173,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3175,1
    - Dst: dane_ctx_final
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3176,1
    - Dst: SSL_CTX_flush_sessions
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3188,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3190,1
    - Dst: lh_SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3191,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3192,1
    - Dst: CTLOG_STORE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3194,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3196,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3197,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3198,1
    - Dst: ssl_cert_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3199,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3200,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3201,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3202,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3205,1
    - Dst: SSL_CTX_SRP_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3208,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3211,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3215,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3216,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3218,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3219,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3221,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - a
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3162
    functionDepth: 6
    functionLinenumber: 3162
    functionLinenumberEnd: 3224
    functionName: SSL_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 81
    functionsReached:
    - sk_SSL_CIPHER_free
    - lh_SSL_SESSION_free
    - SSL_CTX_SRP_CTX_free
    - X509_VERIFY_PARAM_free
    - REF_PRINT_COUNT
    - X509_STORE_free
    - CTLOG_STORE_free
    - OPENSSL_free
    - OPENSSL_secure_free
    - REF_ASSERT_ISNT
    - SSL_CTX_flush_sessions
    - CRYPTO_THREAD_lock_free
    - ssl_cert_free
    - sk_SRTP_PROTECTION_PROFILE_free
    - CRYPTO_DOWN_REF
    - sk_X509_pop_free
    - CRYPTO_free_ex_data
    - dane_ctx_final
    - ENGINE_finish
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_free(SSL_CTX *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - SSL_CTX*
    - pem_password_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3229
      start: 3226
    functionDepth: 0
    functionLinenumber: 3226
    functionLinenumberEnd: 3229
    functionName: SSL_CTX_set_default_passwd_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - u
    argTypes:
    - SSL_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3231
    functionDepth: 0
    functionLinenumber: 3231
    functionLinenumberEnd: 3234
    functionName: SSL_CTX_set_default_passwd_cb_userdata
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3239
      start: 3236
    functionDepth: 0
    functionLinenumber: 3236
    functionLinenumberEnd: 3239
    functionName: SSL_CTX_get_default_passwd_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pem_password_cb
    signature: pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3244
      start: 3241
    functionDepth: 0
    functionLinenumber: 3241
    functionLinenumberEnd: 3244
    functionName: SSL_CTX_get_default_passwd_cb_userdata
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - cb
    argTypes:
    - SSL*
    - pem_password_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3246
    functionDepth: 0
    functionLinenumber: 3246
    functionLinenumberEnd: 3249
    functionName: SSL_set_default_passwd_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - u
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3254
      start: 3251
    functionDepth: 0
    functionLinenumber: 3251
    functionLinenumberEnd: 3254
    functionName: SSL_set_default_passwd_cb_userdata
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_default_passwd_cb_userdata(SSL *s, void *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3259
      start: 3256
    functionDepth: 0
    functionLinenumber: 3256
    functionLinenumberEnd: 3259
    functionName: SSL_get_default_passwd_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pem_password_cb
    signature: pem_password_cb *SSL_get_default_passwd_cb(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3264
      start: 3261
    functionDepth: 0
    functionLinenumber: 3261
    functionLinenumberEnd: 3264
    functionName: SSL_get_default_passwd_cb_userdata
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *SSL_get_default_passwd_cb_userdata(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3272
      start: 3266
    functionDepth: 0
    functionLinenumber: 3266
    functionLinenumberEnd: 3272
    functionName: SSL_CTX_set_cert_verify_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx,\n                                      int
      (*cb) (X509_STORE_CTX *, void *),\n                                      void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3279
      start: 3274
    functionDepth: 0
    functionLinenumber: 3274
    functionLinenumberEnd: 3279
    functionName: SSL_CTX_set_verify
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_verify(SSL_CTX *ctx, int mode,\n                        int
      (*cb) (int, X509_STORE_CTX *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3284
      start: 3281
    functionDepth: 1
    functionLinenumber: 3281
    functionLinenumberEnd: 3284
    functionName: SSL_CTX_set_verify_depth
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_set_cert_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3289
      start: 3286
    functionDepth: 1
    functionLinenumber: 3286
    functionLinenumberEnd: 3289
    functionName: SSL_CTX_set_cert_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - ssl_cert_set_cert_cb
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg),
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_set_cert_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3294
      start: 3291
    functionDepth: 1
    functionLinenumber: 3291
    functionLinenumberEnd: 3294
    functionName: SSL_set_cert_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - ssl_cert_set_cert_cb
    linkageType: ''
    returnType: void
    signature: void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void
      *arg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3324,1
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3329,1
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3333,1
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3337,1
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3354,1
    - Dst: TLS1_get_version
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3356,1
    - Dst: X509_get_key_usage
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3372,1
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3380,1
    - Dst: TLS1_get_version
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3382,1
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3386,1
    - Dst: TLS1_get_version
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3388,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 57
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3409
      start: 3296
    functionDepth: 5
    functionLinenumber: 3296
    functionLinenumberEnd: 3409
    functionName: ssl_set_masks
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_get_key_usage
    - ssl_has_cert
    - TLS1_get_version
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ssl_set_masks(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_key_usage
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3417,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - x
    - s
    argTypes:
    - X509*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3424
      start: 3413
    functionDepth: 5
    functionLinenumber: 3413
    functionLinenumberEnd: 3424
    functionName: ssl_check_srvr_ecc_cert_and_alg
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_get_key_usage
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int ssl_check_srvr_ecc_cert_and_alg(X509 *x, SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - serverinfo
    - serverinfo_length
    argTypes:
    - SSL*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3428
    functionDepth: 0
    functionLinenumber: 3428
    functionLinenumberEnd: 3440
    functionName: ssl_get_server_cert_serverinfo
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ssl_get_server_cert_serverinfo(SSL *s, const unsigned char **serverinfo,\n
      \                                  size_t *serverinfo_length)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3468,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3481,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3487,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3495,1
    - Dst: SSL*::session_ctx::new_session_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3496,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3497,1
    - Dst: tsan_load
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3508,1
    - Dst: SSL_CTX_flush_sessions
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3509,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3509,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 22
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3442
    functionDepth: 1
    functionLinenumber: 3442
    functionLinenumberEnd: 3511
    functionName: ssl_update_cache
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_up_ref
    - SSL_SESSION_free
    - SSL*::session_ctx::new_session_cb
    - SSL_IS_TLS13
    - tsan_load
    - time
    - SSL_CTX_add_session
    - SSL_CTX_flush_sessions
    linkageType: ''
    returnType: void
    signature: void ssl_update_cache(SSL *s, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3516
      start: 3513
    functionDepth: 0
    functionLinenumber: 3513
    functionLinenumberEnd: 3516
    functionName: SSL_CTX_get_ssl_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3518
    functionDepth: 0
    functionLinenumber: 3518
    functionLinenumberEnd: 3521
    functionName: SSL_get_ssl_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *SSL_get_ssl_method(const SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_METHOD*::ssl_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3534,1
    - Dst: SSL*::method::ssl_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - meth
    argTypes:
    - SSL*
    - SSL_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3545
      start: 3523
    functionDepth: 2
    functionLinenumber: 3523
    functionLinenumberEnd: 3545
    functionName: SSL_set_ssl_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::method::ssl_new
    - SSL_METHOD*::ssl_free
    linkageType: ''
    returnType: int
    signature: int SSL_set_ssl_method(SSL *s, const SSL_METHOD *meth)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_error
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3560,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3561,1
    - Dst: SSL_want_read
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3567,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3568,1
    - Dst: BIO_should_read
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3569,1
    - Dst: BIO_should_write
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3571,1
    - Dst: BIO_should_io_special
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3582,1
    - Dst: BIO_get_retry_reason
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3583,1
    - Dst: SSL_want_write
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3593,1
    - Dst: BIO_should_write
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3596,1
    - Dst: BIO_should_read
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3598,1
    - Dst: BIO_should_io_special
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3603,1
    - Dst: BIO_get_retry_reason
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3604,1
    - Dst: SSL_want_x509_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3613,1
    - Dst: SSL_want_async
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3615,1
    - Dst: SSL_want_async_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3617,1
    - Dst: SSL_want_client_hello_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3619,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3627
      start: 3547
    functionDepth: 2
    functionLinenumber: 3547
    functionLinenumberEnd: 3627
    functionName: SSL_get_error
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 28
    functionsReached:
    - ERR_peek_error
    - SSL_want_async_job
    - BIO_should_io_special
    - BIO_should_write
    - SSL_want_x509_lookup
    - SSL_want_read
    - BIO_should_read
    - SSL_want_write
    - SSL_get_rbio
    - SSL_want_async
    - ERR_GET_LIB
    - SSL_want_client_hello_cb
    - BIO_get_retry_reason
    linkageType: ''
    returnType: int
    signature: int SSL_get_error(const SSL *s, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::handshake_func
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vargs
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3638
      start: 3629
    functionDepth: 0
    functionLinenumber: 3629
    functionLinenumberEnd: 3638
    functionName: ssl_do_handshake_intern
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::handshake_func
    linkageType: ''
    returnType: int
    signature: int ssl_do_handshake_intern(void *vargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3645,1
    - Dst: ossl_statem_check_finish_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3649,1
    - Dst: SSL*::method::ssl_renegotiate_check
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3651,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3653,1
    - Dst: SSL_in_before
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3653,1
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3654,1
    - Dst: ssl_start_async_job
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3659,1
    - Dst: SSL*::handshake_func
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3665
      start: 3640
    functionDepth: 6
    functionLinenumber: 3640
    functionLinenumberEnd: 3665
    functionName: SSL_do_handshake
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 13
    functionsReached:
    - ssl_start_async_job
    - SSL*::method::ssl_renegotiate_check
    - ossl_statem_check_finish_init
    - SSL_in_init
    - SSLerr
    - ASYNC_get_current_job
    - SSL_in_before
    - SSL*::handshake_func
    linkageType: ''
    returnType: int
    signature: int SSL_do_handshake(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_clear
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3671,1
    - Dst: clear_ciphers
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3674
      start: 3667
    functionDepth: 2
    functionLinenumber: 3667
    functionLinenumberEnd: 3674
    functionName: SSL_set_accept_state
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 14
    functionsReached:
    - ossl_statem_clear
    - clear_ciphers
    linkageType: ''
    returnType: void
    signature: void SSL_set_accept_state(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_clear
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3680,1
    - Dst: clear_ciphers
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3683
      start: 3676
    functionDepth: 2
    functionLinenumber: 3676
    functionLinenumberEnd: 3683
    functionName: SSL_set_connect_state
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 21
    functionsReached:
    - ossl_statem_clear
    - clear_ciphers
    linkageType: ''
    returnType: void
    signature: void SSL_set_connect_state(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3689
      start: 3685
    functionDepth: 1
    functionLinenumber: 3685
    functionLinenumberEnd: 3689
    functionName: ssl_undefined_function
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 8
    functionsReached:
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int ssl_undefined_function(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3696
      start: 3691
    functionDepth: 1
    functionLinenumber: 3691
    functionLinenumberEnd: 3696
    functionName: ssl_undefined_void_function
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int ssl_undefined_void_function(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3701
      start: 3698
    functionDepth: 0
    functionLinenumber: 3698
    functionLinenumberEnd: 3701
    functionName: ssl_undefined_const_function
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_undefined_const_function(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ver
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3707
      start: 3703
    functionDepth: 1
    functionLinenumber: 3703
    functionLinenumberEnd: 3707
    functionName: ssl_bad_method
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    linkageType: ''
    returnType: SSL_METHOD
    signature: SSL_METHOD *ssl_bad_method(int ver)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3709
    functionDepth: 0
    functionLinenumber: 3709
    functionLinenumberEnd: 3740
    functionName: ssl_protocol_to_string
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ssl_protocol_to_string(int version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_protocol_to_string
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3745
      start: 3742
    functionDepth: 1
    functionLinenumber: 3742
    functionLinenumberEnd: 3745
    functionName: SSL_get_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - ssl_protocol_to_string
    linkageType: ''
    returnType: char
    signature: char *SSL_get_version(const SSL *s)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3783,1
    - Dst: SSL_in_before
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3783,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3784,1
    - Dst: SSL_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3791,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3791,1
    - Dst: SSL_copy_session_id
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3799,1
    - Dst: SSL_set_ssl_method
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3808,1
    - Dst: ssl_cert_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3812,1
    - Dst: ssl_cert_dup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3813,1
    - Dst: SSL_set_session_id_context
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3818,1
    - Dst: ssl_dane_dup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3823,1
    - Dst: SSL_set_max_cert_list
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3828,1
    - Dst: SSL_get_max_cert_list
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3828,1
    - Dst: SSL_set_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3829,1
    - Dst: SSL_get_read_ahead
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3829,1
    - Dst: SSL_set_verify
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3832,1
    - Dst: SSL_get_verify_mode
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3832,1
    - Dst: SSL_get_verify_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3832,1
    - Dst: SSL_set_verify_depth
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3833,1
    - Dst: SSL_get_verify_depth
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3833,1
    - Dst: SSL_set_info_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3836,1
    - Dst: SSL_get_info_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3836,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3839,1
    - Dst: BIO_dup_state
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3844,1
    - Dst: BIO_dup_state
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3849,1
    - Dst: BIO_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3852,1
    - Dst: SSL_set_accept_state
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3860,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3862,1
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3870,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3874,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3878,1
    - Dst: dup_ca_names
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3883,1
    - Dst: dup_ca_names
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3884,1
    - Dst: SSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3890,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 86
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3777
    functionDepth: 6
    functionLinenumber: 3777
    functionLinenumberEnd: 3892
    functionName: SSL_dup
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ssl_dane_dup
    - SSL_copy_session_id
    - SSL_get_info_callback
    - sk_SSL_CIPHER_dup
    - X509_VERIFY_PARAM_inherit
    - dup_ca_names
    - BIO_dup_state
    - SSL_set_connect_state
    - SSL_set_accept_state
    - ssl_cert_dup
    - SSL_set_session_id_context
    - SSL_get_read_ahead
    - SSL_set_read_ahead
    - SSL_get_verify_mode
    - SSL_new
    - SSL_free
    - SSL_set_ssl_method
    - SSL_set_info_callback
    - SSL_set_verify
    - ssl_cert_free
    - SSL_get_SSL_CTX
    - SSL_in_init
    - SSL_in_before
    - SSL_set_verify_depth
    - SSL_get_max_cert_list
    - SSL_set_max_cert_list
    - CRYPTO_dup_ex_data
    - SSL_get_verify_depth
    - BIO_up_ref
    - SSL_get_verify_callback
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: SSL
    signature: SSL *SSL_dup(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3897,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3901,1
    - Dst: COMP_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3905,1
    - Dst: COMP_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3910
      start: 3894
    functionDepth: 3
    functionLinenumber: 3894
    functionLinenumberEnd: 3910
    functionName: ssl_clear_cipher_ctx
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - COMP_CTX_free
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void ssl_clear_cipher_ctx(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3918
      start: 3912
    functionDepth: 0
    functionLinenumber: 3912
    functionLinenumberEnd: 3918
    functionName: SSL_get_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *SSL_get_certificate(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3926
      start: 3920
    functionDepth: 0
    functionLinenumber: 3920
    functionLinenumberEnd: 3926
    functionName: SSL_get_privatekey
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *SSL_get_privatekey(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3934
      start: 3928
    functionDepth: 0
    functionLinenumber: 3928
    functionLinenumberEnd: 3934
    functionName: SSL_CTX_get0_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3936
    functionDepth: 0
    functionLinenumber: 3936
    functionLinenumberEnd: 3942
    functionName: SSL_CTX_get0_privatekey
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3949
      start: 3944
    functionDepth: 0
    functionLinenumber: 3944
    functionLinenumberEnd: 3949
    functionName: SSL_get_current_cipher
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: SSL_CIPHER
    signature: SSL_CIPHER *SSL_get_current_cipher(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3954
      start: 3951
    functionDepth: 0
    functionLinenumber: 3951
    functionLinenumberEnd: 3954
    functionName: SSL_get_pending_cipher
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_CIPHER
    signature: SSL_CIPHER *SSL_get_pending_cipher(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX_get_method
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3963
      start: 3956
    functionDepth: 1
    functionLinenumber: 3956
    functionLinenumberEnd: 3963
    functionName: SSL_get_current_compression
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - COMP_CTX_get_method
    linkageType: ''
    returnType: COMP_METHOD
    signature: COMP_METHOD *SSL_get_current_compression(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX_get_method
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3972
      start: 3965
    functionDepth: 1
    functionLinenumber: 3965
    functionLinenumberEnd: 3972
    functionName: SSL_get_current_expansion
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - COMP_CTX_get_method
    linkageType: ''
    returnType: COMP_METHOD
    signature: COMP_METHOD *SSL_get_current_expansion(const SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3983,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3983,1
    - Dst: BIO_set_read_buffer_size
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3984,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3985,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3986,1
    - Dst: BIO_push
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:3990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3993
      start: 3974
    functionDepth: 4
    functionLinenumber: 3974
    functionLinenumberEnd: 3993
    functionName: ssl_init_wbio_buffer
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - BIO_set_read_buffer_size
    - BIO_f_buffer
    - SSLerr
    - BIO_free
    - BIO_push
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int ssl_init_wbio_buffer(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_pop
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4001,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4006
      start: 3995
    functionDepth: 4
    functionLinenumber: 3995
    functionLinenumberEnd: 4006
    functionName: ssl_free_wbio_buffer
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - BIO_pop
    - BIO_free
    linkageType: ''
    returnType: int
    signature: int ssl_free_wbio_buffer(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4011
      start: 4008
    functionDepth: 0
    functionLinenumber: 4008
    functionLinenumberEnd: 4011
    functionName: SSL_CTX_set_quiet_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4016
      start: 4013
    functionDepth: 0
    functionLinenumber: 4013
    functionLinenumberEnd: 4016
    functionName: SSL_CTX_get_quiet_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4021
      start: 4018
    functionDepth: 0
    functionLinenumber: 4018
    functionLinenumberEnd: 4021
    functionName: SSL_set_quiet_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_quiet_shutdown(SSL *s, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4026
      start: 4023
    functionDepth: 0
    functionLinenumber: 4023
    functionLinenumberEnd: 4026
    functionName: SSL_get_quiet_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_get_quiet_shutdown(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4031
      start: 4028
    functionDepth: 0
    functionLinenumber: 4028
    functionLinenumberEnd: 4031
    functionName: SSL_set_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_shutdown(SSL *s, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4036
      start: 4033
    functionDepth: 0
    functionLinenumber: 4033
    functionLinenumberEnd: 4036
    functionName: SSL_get_shutdown
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_get_shutdown(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4041
      start: 4038
    functionDepth: 0
    functionLinenumber: 4038
    functionLinenumberEnd: 4041
    functionName: SSL_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_version(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4046
      start: 4043
    functionDepth: 0
    functionLinenumber: 4043
    functionLinenumberEnd: 4046
    functionName: SSL_client_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_client_version(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4051
      start: 4048
    functionDepth: 0
    functionLinenumber: 4048
    functionLinenumberEnd: 4051
    functionName: SSL_get_SSL_CTX
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_dup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4060,1
    - Dst: custom_exts_copy_flags
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4065,1
    - Dst: ssl_cert_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4066,1
    - Dst: ssl_cert_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4070,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4077,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4088,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4090,1
    - Dst: SSL_CTX_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4093,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4094,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - ssl
    - ctx
    argTypes:
    - SSL*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4098
      start: 4053
    functionDepth: 7
    functionLinenumber: 4053
    functionLinenumberEnd: 4098
    functionName: SSL_set_SSL_CTX
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 6
    functionsReached:
    - memcmp
    - ssl_cert_free
    - memcpy
    - custom_exts_copy_flags
    - SSL_CTX_up_ref
    - SSL_CTX_free
    - ossl_assert
    - ssl_cert_dup
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_set_default_paths
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4103
      start: 4100
    functionDepth: 4
    functionLinenumber: 4100
    functionLinenumberEnd: 4103
    functionName: SSL_CTX_set_default_verify_paths
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_STORE_set_default_paths
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4109,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4109,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4112,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4118
      start: 4105
    functionDepth: 3
    functionLinenumber: 4105
    functionLinenumberEnd: 4118
    functionName: SSL_CTX_set_default_verify_dir
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_LOOKUP_add_dir
    - X509_STORE_add_lookup
    - ERR_clear_error
    - X509_LOOKUP_hash_dir
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4124,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4124,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4128,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4120
    functionDepth: 3
    functionLinenumber: 4120
    functionLinenumberEnd: 4134
    functionName: SSL_CTX_set_default_verify_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_LOOKUP_load_file
    - X509_STORE_add_lookup
    - ERR_clear_error
    - X509_LOOKUP_file
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_default_verify_file(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_load_locations
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - CAfile
    - CApath
    argTypes:
    - SSL_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4140
      start: 4136
    functionDepth: 4
    functionLinenumber: 4136
    functionLinenumberEnd: 4140
    functionName: SSL_CTX_load_verify_locations
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - X509_STORE_load_locations
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,\n
      \                                 const char *CApath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4142
    functionDepth: 0
    functionLinenumber: 4142
    functionLinenumberEnd: 4146
    functionName: SSL_set_info_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_set_info_callback(SSL *ssl,\n                           void
      (*cb) (const SSL *ssl, int type, int val))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4156
      start: 4152
    functionDepth: 0
    functionLinenumber: 4152
    functionLinenumberEnd: 4156
    functionName: "(*SSL_get_info_callback(const SSL *ssl)) (const SSL * /* ssl */
      ,\n                                               int /* type */ ,\n                                               int
      /* val */ )"
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void (*SSL_get_info_callback(const SSL *ssl)) (const SSL * /* ssl
      */ ,\n                                               int /* type */ ,\n                                               int
      /* val */ )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4161
      start: 4158
    functionDepth: 0
    functionLinenumber: 4158
    functionLinenumberEnd: 4161
    functionName: SSL_set_verify_result
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_verify_result(SSL *ssl, long arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4166
      start: 4163
    functionDepth: 0
    functionLinenumber: 4163
    functionLinenumberEnd: 4166
    functionName: SSL_get_verify_result
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long SSL_get_verify_result(const SSL *ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ssl
    - out
    - outlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4176
      start: 4168
    functionDepth: 0
    functionLinenumber: 4168
    functionLinenumberEnd: 4176
    functionName: SSL_get_client_random
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, size_t
      outlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ssl
    - out
    - outlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4186
      start: 4178
    functionDepth: 0
    functionLinenumber: 4178
    functionLinenumberEnd: 4186
    functionName: SSL_get_server_random
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, size_t
      outlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - session
    - out
    - outlen
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4197
      start: 4188
    functionDepth: 0
    functionLinenumber: 4188
    functionLinenumberEnd: 4197
    functionName: SSL_SESSION_get_master_key
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t SSL_SESSION_get_master_key(const SSL_SESSION *session,\n                                  unsigned
      char *out, size_t outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sess
    - in
    - len
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4208
      start: 4199
    functionDepth: 0
    functionLinenumber: 4199
    functionLinenumberEnd: 4208
    functionName: SSL_SESSION_set1_master_key
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int SSL_SESSION_set1_master_key(SSL_SESSION *sess, const unsigned
      char *in,\n                                size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - idx
    - arg
    argTypes:
    - SSL*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4214
      start: 4211
    functionDepth: 2
    functionLinenumber: 4211
    functionLinenumberEnd: 4214
    functionName: SSL_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 5
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int SSL_set_ex_data(SSL *s, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4219
      start: 4216
    functionDepth: 1
    functionLinenumber: 4216
    functionLinenumberEnd: 4219
    functionName: SSL_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 8
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *SSL_get_ex_data(const SSL *s, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - idx
    - arg
    argTypes:
    - SSL_CTX*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4224
      start: 4221
    functionDepth: 2
    functionLinenumber: 4221
    functionLinenumberEnd: 4224
    functionName: SSL_CTX_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_ex_data(SSL_CTX *s, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4229
      start: 4226
    functionDepth: 1
    functionLinenumber: 4226
    functionLinenumberEnd: 4229
    functionName: SSL_CTX_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *SSL_CTX_get_ex_data(const SSL_CTX *s, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4234
      start: 4231
    functionDepth: 0
    functionLinenumber: 4231
    functionLinenumberEnd: 4234
    functionName: SSL_CTX_get_cert_store
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - store
    argTypes:
    - SSL_CTX*
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4240
      start: 4236
    functionDepth: 4
    functionLinenumber: 4236
    functionLinenumberEnd: 4240
    functionName: SSL_CTX_set_cert_store
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *store)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4245,1
    - Dst: SSL_CTX_set_cert_store
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - store
    argTypes:
    - SSL_CTX*
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4242
    functionDepth: 5
    functionLinenumber: 4242
    functionLinenumberEnd: 4247
    functionName: SSL_CTX_set1_cert_store
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_STORE_up_ref
    - SSL_CTX_set_cert_store
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set1_cert_store(SSL_CTX *ctx, X509_STORE *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4252
      start: 4249
    functionDepth: 0
    functionLinenumber: 4249
    functionLinenumberEnd: 4252
    functionName: SSL_want
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_want(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - "(*dh) (SSL *ssl, int is_export,\n                                            int
      keylength)"
    argTypes:
    - SSL_CTX*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4261
    functionDepth: 1
    functionLinenumber: 4261
    functionLinenumberEnd: 4266
    functionName: SSL_CTX_set_tmp_dh_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,\n                                 DH
      *(*dh) (SSL *ssl, int is_export,\n                                            int
      keylength))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - "(*dh) (SSL *ssl, int is_export,\n                                                  int
      keylength)"
    argTypes:
    - SSL*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4272
      start: 4268
    functionDepth: 5
    functionLinenumber: 4268
    functionLinenumberEnd: 4272
    functionName: SSL_set_tmp_dh_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "void SSL_set_tmp_dh_callback(SSL *ssl, DH *(*dh) (SSL *ssl, int is_export,\n
      \                                                 int keylength))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4278,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4279,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4282,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - identity_hint
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4290
      start: 4276
    functionDepth: 1
    functionLinenumber: 4276
    functionLinenumberEnd: 4290
    functionName: SSL_CTX_use_psk_identity_hint
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - SSLerr
    - strlen
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4297,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4298,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4301,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - s
    - identity_hint
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4309
      start: 4292
    functionDepth: 1
    functionLinenumber: 4292
    functionLinenumberEnd: 4309
    functionName: SSL_use_psk_identity_hint
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    - SSLerr
    - strlen
    linkageType: ''
    returnType: int
    signature: int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4316
      start: 4311
    functionDepth: 0
    functionLinenumber: 4311
    functionLinenumberEnd: 4316
    functionName: SSL_get_psk_identity_hint
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_get_psk_identity_hint(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4323
      start: 4318
    functionDepth: 0
    functionLinenumber: 4318
    functionLinenumberEnd: 4323
    functionName: SSL_get_psk_identity
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_get_psk_identity(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - cb
    argTypes:
    - SSL*
    - SSL_psk_client_cb_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4328
      start: 4325
    functionDepth: 0
    functionLinenumber: 4325
    functionLinenumberEnd: 4328
    functionName: SSL_set_psk_client_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_psk_client_callback(SSL *s, SSL_psk_client_cb_func cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - SSL_CTX*
    - SSL_psk_client_cb_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4333
      start: 4330
    functionDepth: 0
    functionLinenumber: 4330
    functionLinenumberEnd: 4333
    functionName: SSL_CTX_set_psk_client_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - cb
    argTypes:
    - SSL*
    - SSL_psk_server_cb_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4338
      start: 4335
    functionDepth: 0
    functionLinenumber: 4335
    functionLinenumberEnd: 4338
    functionName: SSL_set_psk_server_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_psk_server_callback(SSL *s, SSL_psk_server_cb_func cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - SSL_CTX*
    - SSL_psk_server_cb_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4340
    functionDepth: 0
    functionLinenumber: 4340
    functionLinenumberEnd: 4343
    functionName: SSL_CTX_set_psk_server_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - cb
    argTypes:
    - SSL*
    - SSL_psk_find_session_cb_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4349
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4349
    functionName: SSL_set_psk_find_session_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - SSL_CTX*
    - SSL_psk_find_session_cb_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4351
    functionDepth: 0
    functionLinenumber: 4351
    functionLinenumberEnd: 4355
    functionName: SSL_CTX_set_psk_find_session_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx,\n                                           SSL_psk_find_session_cb_func
      cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - cb
    argTypes:
    - SSL*
    - SSL_psk_use_session_cb_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4360
    functionName: SSL_set_psk_use_session_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - SSL_CTX*
    - SSL_psk_use_session_cb_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4366
      start: 4362
    functionDepth: 0
    functionLinenumber: 4362
    functionLinenumberEnd: 4366
    functionName: SSL_CTX_set_psk_use_session_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx,\n                                           SSL_psk_use_session_cb_func
      cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4374
      start: 4368
    functionDepth: 1
    functionLinenumber: 4368
    functionLinenumberEnd: 4374
    functionName: SSL_CTX_set_msg_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_msg_callback(SSL_CTX *ctx,\n                              void
      (*cb) (int write_p, int version,\n                                          int
      content_type, const void *buf,\n                                          size_t
      len, SSL *ssl, void *arg))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4382
      start: 4376
    functionDepth: 5
    functionLinenumber: 4376
    functionLinenumberEnd: 4382
    functionName: SSL_set_msg_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached:
    - SSL_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "void SSL_set_msg_callback(SSL *ssl,\n                          void
      (*cb) (int write_p, int version,\n                                      int
      content_type, const void *buf,\n                                      size_t
      len, SSL *ssl, void *arg))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4384
    functionDepth: 1
    functionLinenumber: 4384
    functionLinenumberEnd: 4391
    functionName: SSL_CTX_set_not_resumable_session_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx,\n                                                int
      (*cb) (SSL *ssl,\n                                                           int\n
      \                                                          is_forward_secure))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4399
      start: 4393
    functionDepth: 5
    functionLinenumber: 4393
    functionLinenumberEnd: 4399
    functionName: SSL_set_not_resumable_session_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "void SSL_set_not_resumable_session_callback(SSL *ssl,\n                                            int
      (*cb) (SSL *ssl,\n                                                       int
      is_forward_secure))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4406
      start: 4401
    functionDepth: 0
    functionLinenumber: 4401
    functionLinenumberEnd: 4406
    functionName: SSL_CTX_set_record_padding_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx,\n                                         size_t
      (*cb) (SSL *ssl, int type,\n                                                       size_t
      len, void *arg))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4408
    functionDepth: 0
    functionLinenumber: 4408
    functionLinenumberEnd: 4411
    functionName: SSL_CTX_set_record_padding_callback_arg
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4413
    functionDepth: 0
    functionLinenumber: 4413
    functionLinenumberEnd: 4416
    functionName: SSL_CTX_get_record_padding_callback_arg
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - block_size
    argTypes:
    - SSL_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4428
      start: 4418
    functionDepth: 0
    functionLinenumber: 4418
    functionLinenumberEnd: 4428
    functionName: SSL_CTX_set_block_padding
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4435
      start: 4430
    functionDepth: 0
    functionLinenumber: 4430
    functionLinenumberEnd: 4435
    functionName: SSL_set_record_padding_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_set_record_padding_callback(SSL *ssl,\n                                     size_t
      (*cb) (SSL *ssl, int type,\n                                                   size_t
      len, void *arg))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4440
      start: 4437
    functionDepth: 0
    functionLinenumber: 4437
    functionLinenumberEnd: 4440
    functionName: SSL_set_record_padding_callback_arg
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4445
      start: 4442
    functionDepth: 0
    functionLinenumber: 4442
    functionLinenumberEnd: 4445
    functionName: SSL_get_record_padding_callback_arg
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *SSL_get_record_padding_callback_arg(const SSL *ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ssl
    - block_size
    argTypes:
    - SSL*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4457
      start: 4447
    functionDepth: 0
    functionLinenumber: 4447
    functionLinenumberEnd: 4457
    functionName: SSL_set_block_padding
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_set_block_padding(SSL *ssl, size_t block_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - num_tickets
    argTypes:
    - SSL*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4464
      start: 4459
    functionDepth: 0
    functionLinenumber: 4459
    functionLinenumberEnd: 4464
    functionName: SSL_set_num_tickets
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_set_num_tickets(SSL *s, size_t num_tickets)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4469
      start: 4466
    functionDepth: 0
    functionLinenumber: 4466
    functionLinenumberEnd: 4469
    functionName: SSL_get_num_tickets
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_get_num_tickets(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - num_tickets
    argTypes:
    - SSL_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4476
      start: 4471
    functionDepth: 0
    functionLinenumber: 4471
    functionLinenumberEnd: 4476
    functionName: SSL_CTX_set_num_tickets
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4481
      start: 4478
    functionDepth: 0
    functionLinenumber: 4478
    functionLinenumberEnd: 4481
    functionName: SSL_CTX_get_num_tickets
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_clear_hash_ctx
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4492,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4493,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4494,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - hash
    - md
    argTypes:
    - EVP_MD_CTX**
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4490
    functionDepth: 4
    functionLinenumber: 4490
    functionLinenumberEnd: 4500
    functionName: ssl_replace_hash
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - ssl_clear_hash_ctx
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: EVP_MD_CTX *ssl_replace_hash(EVP_MD_CTX **hash, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - EVP_MD_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4507
      start: 4502
    functionDepth: 4
    functionLinenumber: 4502
    functionLinenumberEnd: 4507
    functionName: ssl_clear_hash_ctx
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void ssl_clear_hash_ctx(EVP_MD_CTX **hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4515,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4519,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4524,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4528,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4529,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4530,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4539,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - s
    - out
    - outlen
    - hashlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4541
      start: 4510
    functionDepth: 4
    functionLinenumber: 4510
    functionLinenumberEnd: 4541
    functionName: ssl_handshake_hash
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - SSLfatal
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - EVP_MD_CTX_copy_ex
    - EVP_MD_CTX_size
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ssl_handshake_hash(SSL *s, unsigned char *out, size_t outlen,\n
      \                      size_t *hashlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4543
    functionDepth: 0
    functionLinenumber: 4543
    functionLinenumberEnd: 4546
    functionName: SSL_session_reused
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_session_reused(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4551
      start: 4548
    functionDepth: 0
    functionLinenumber: 4548
    functionLinenumberEnd: 4551
    functionName: SSL_is_server
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_is_server(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - debug
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4554
    functionDepth: 0
    functionLinenumber: 4554
    functionLinenumberEnd: 4559
    functionName: SSL_set_debug
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_debug(SSL *s, int debug)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - level
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4565
      start: 4562
    functionDepth: 0
    functionLinenumber: 4562
    functionLinenumberEnd: 4565
    functionName: SSL_set_security_level
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_security_level(SSL *s, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4570
      start: 4567
    functionDepth: 0
    functionLinenumber: 4567
    functionLinenumberEnd: 4570
    functionName: SSL_get_security_level
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_get_security_level(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4578
      start: 4572
    functionDepth: 0
    functionLinenumber: 4572
    functionLinenumberEnd: 4578
    functionName: SSL_set_security_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_set_security_callback(SSL *s,\n                               int
      (*cb) (const SSL *s, const SSL_CTX *ctx,\n                                          int
      op, int bits, int nid,\n                                          void *other,
      void *ex))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - s
    - ctx
    - op
    - bits
    - nid
    - other
    - ex
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4585
      start: 4580
    functionDepth: 0
    functionLinenumber: 4580
    functionLinenumberEnd: 4585
    functionName: "(*SSL_get_security_callback(const SSL *s)) (const SSL *s,\n                                                const
      SSL_CTX *ctx, int op,\n                                                int bits,
      int nid, void *other,\n                                                void
      *ex)"
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*SSL_get_security_callback(const SSL *s)) (const SSL *s,\n                                                const
      SSL_CTX *ctx, int op,\n                                                int bits,
      int nid, void *other,\n                                                void
      *ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - ex
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4590
      start: 4587
    functionDepth: 0
    functionLinenumber: 4587
    functionLinenumberEnd: 4590
    functionName: SSL_set0_security_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set0_security_ex_data(SSL *s, void *ex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4592
    functionDepth: 0
    functionLinenumber: 4592
    functionLinenumberEnd: 4595
    functionName: SSL_get0_security_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *SSL_get0_security_ex_data(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - level
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4600
      start: 4597
    functionDepth: 0
    functionLinenumber: 4597
    functionLinenumberEnd: 4600
    functionName: SSL_CTX_set_security_level
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_security_level(SSL_CTX *ctx, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4605
      start: 4602
    functionDepth: 0
    functionLinenumber: 4602
    functionLinenumberEnd: 4605
    functionName: SSL_CTX_get_security_level
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_get_security_level(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4613
      start: 4607
    functionDepth: 0
    functionLinenumber: 4607
    functionLinenumberEnd: 4613
    functionName: SSL_CTX_set_security_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_security_callback(SSL_CTX *ctx,\n                                   int
      (*cb) (const SSL *s, const SSL_CTX *ctx,\n                                              int
      op, int bits, int nid,\n                                              void *other,
      void *ex))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - s
    - ctx
    - op
    - bits
    - nid
    - other
    - ex
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4622
      start: 4615
    functionDepth: 0
    functionLinenumber: 4615
    functionLinenumberEnd: 4622
    functionName: "(*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL
      *s,\n                                                          const SSL_CTX
      *ctx,\n                                                          int op, int
      bits,\n                                                          int nid,\n
      \                                                         void *other,\n                                                          void
      *ex)"
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL
      *s,\n                                                          const SSL_CTX
      *ctx,\n                                                          int op, int
      bits,\n                                                          int nid,\n
      \                                                         void *other,\n                                                          void
      *ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ex
    argTypes:
    - SSL_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4624
    functionDepth: 0
    functionLinenumber: 4624
    functionLinenumberEnd: 4627
    functionName: SSL_CTX_set0_security_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4632
      start: 4629
    functionDepth: 0
    functionLinenumber: 4629
    functionLinenumberEnd: 4632
    functionName: SSL_CTX_get0_security_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4642
      start: 4639
    functionDepth: 0
    functionLinenumber: 4639
    functionLinenumberEnd: 4642
    functionName: SSL_CTX_get_options
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_CTX_get_options(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4647
      start: 4644
    functionDepth: 0
    functionLinenumber: 4644
    functionLinenumberEnd: 4647
    functionName: SSL_get_options
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_get_options(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - op
    argTypes:
    - SSL_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4652
      start: 4649
    functionDepth: 0
    functionLinenumber: 4649
    functionLinenumberEnd: 4652
    functionName: SSL_CTX_set_options
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - op
    argTypes:
    - SSL*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4657
      start: 4654
    functionDepth: 0
    functionLinenumber: 4654
    functionLinenumberEnd: 4657
    functionName: SSL_set_options
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_set_options(SSL *s, unsigned long op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - op
    argTypes:
    - SSL_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4662
      start: 4659
    functionDepth: 0
    functionLinenumber: 4659
    functionLinenumberEnd: 4662
    functionName: SSL_CTX_clear_options
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - op
    argTypes:
    - SSL*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4667
      start: 4664
    functionDepth: 0
    functionLinenumber: 4664
    functionLinenumberEnd: 4667
    functionName: SSL_clear_options
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_clear_options(SSL *s, unsigned long op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4725,1
    - Dst: o2i_SCT_LIST
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4725,1
    - Dst: ct_move_scts
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4727,1
    - Dst: SCT_LIST_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4733
      start: 4719
    functionDepth: 1
    functionLinenumber: 4719
    functionLinenumberEnd: 4733
    functionName: ct_extract_tls_extension_scts
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ct_move_scts
    - SCT_LIST_free
    - STACK_OF
    - o2i_SCT_LIST
    linkageType: ''
    returnType: int
    signature: int ct_extract_tls_extension_scts(SSL *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4750,1
    - Dst: d2i_OCSP_RESPONSE
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4757,1
    - Dst: OCSP_response_get1_basic
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4761,1
    - Dst: OCSP_resp_count
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4765,1
    - Dst: OCSP_resp_get0
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4766,1
    - Dst: OCSP_SINGLERESP_get1_ext_d2i
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4772,1
    - Dst: ct_move_scts
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4774,1
    - Dst: SCT_LIST_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4779,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4780,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4781,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4743
    functionDepth: 2
    functionLinenumber: 4743
    functionLinenumberEnd: 4787
    functionName: ct_extract_ocsp_response_scts
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ct_move_scts
    - STACK_OF
    - OCSP_resp_count
    - OCSP_SINGLERESP_get1_ext_d2i
    - OCSP_BASICRESP_free
    - SCT_LIST_free
    - OCSP_RESPONSE_free
    - OCSP_response_get1_basic
    - OCSP_resp_get0
    - d2i_OCSP_RESPONSE
    linkageType: ''
    returnType: int
    signature: int ct_extract_ocsp_response_scts(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4800,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4801,1
    - Dst: ct_move_scts
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4804,1
    - Dst: SCT_LIST_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4810
      start: 4794
    functionDepth: 2
    functionLinenumber: 4794
    functionLinenumberEnd: 4810
    functionName: ct_extract_x509v3_extension_scts
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ct_move_scts
    - X509_get_ext_d2i
    - STACK_OF
    - SCT_LIST_free
    linkageType: ''
    returnType: int
    signature: int ct_extract_x509v3_extension_scts(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ct_extract_tls_extension_scts
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4820,1
    - Dst: ct_extract_ocsp_response_scts
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4821,1
    - Dst: ct_extract_x509v3_extension_scts
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4822,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4830
      start: 4817
    functionDepth: 3
    functionLinenumber: 4817
    functionLinenumberEnd: 4830
    functionName: SSL_get0_peer_scts
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ct_extract_x509v3_extension_scts
    - ct_extract_tls_extension_scts
    - ct_extract_ocsp_response_scts
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *SSL_get0_peer_scts(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - scts
    - unused_arg
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - STACK_OF*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4836
      start: 4832
    functionDepth: 0
    functionLinenumber: 4832
    functionLinenumberEnd: 4836
    functionName: ct_permissive
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ct_permissive(const CT_POLICY_EVAL_CTX * ctx,\n                         const
      STACK_OF(SCT) *scts, void *unused_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_SCT_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4841,1
    - Dst: sk_SCT_value
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4845,1
    - Dst: SCT_get_validation_status
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4846,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - scts
    - unused_arg
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - STACK_OF*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4853
      start: 4838
    functionDepth: 1
    functionLinenumber: 4838
    functionLinenumberEnd: 4853
    functionName: ct_strict
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - sk_SCT_num
    - SCT_get_validation_status
    - sk_SCT_value
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int ct_strict(const CT_POLICY_EVAL_CTX * ctx,\n                     const
      STACK_OF(SCT) *scts, void *unused_arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_has_client_custom_ext
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4862,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4865,1
    - Dst: SSL_set_tlsext_status_type
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - s
    - callback
    - arg
    argTypes:
    - SSL*
    - ssl_ct_validation_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4882
      start: 4855
    functionDepth: 1
    functionLinenumber: 4855
    functionLinenumberEnd: 4882
    functionName: SSL_set_ct_validation_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_has_client_custom_ext
    - SSL_set_tlsext_status_type
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback,\n
      \                                  void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_has_client_custom_ext
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4891,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - callback
    - arg
    argTypes:
    - SSL_CTX*
    - ssl_ct_validation_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4902
      start: 4884
    functionDepth: 1
    functionLinenumber: 4884
    functionLinenumberEnd: 4902
    functionName: SSL_CTX_set_ct_validation_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_has_client_custom_ext
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx,\n                                       ssl_ct_validation_cb
      callback, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4907
      start: 4904
    functionDepth: 0
    functionLinenumber: 4904
    functionLinenumberEnd: 4907
    functionName: SSL_ct_is_enabled
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_ct_is_enabled(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4912
      start: 4909
    functionDepth: 0
    functionLinenumber: 4909
    functionLinenumberEnd: 4912
    functionName: SSL_CTX_ct_is_enabled
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4936,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4943,1
    - Dst: CT_POLICY_EVAL_CTX_new
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4951,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4953,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4958,1
    - Dst: CT_POLICY_EVAL_CTX_set1_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4959,1
    - Dst: CT_POLICY_EVAL_CTX_set1_issuer
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4960,1
    - Dst: CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4961,1
    - Dst: CT_POLICY_EVAL_CTX_set_time
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4962,1
    - Dst: SSL_SESSION_get_time
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4963,1
    - Dst: SSL_get0_session
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4963,1
    - Dst: SSL_get0_peer_scts
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4965,1
    - Dst: SCT_LIST_validate
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4981,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4982,1
    - Dst: SSL*::ct_validation_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4987,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4991,1
    - Dst: CT_POLICY_EVAL_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:4995,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 4914
    functionDepth: 9
    functionLinenumber: 4914
    functionLinenumberEnd: 5014
    functionName: ssl_validate_ct
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - CT_POLICY_EVAL_CTX_free
    - SSL_get0_peer_scts
    - CT_POLICY_EVAL_CTX_set1_issuer
    - CT_POLICY_EVAL_CTX_set_time
    - SSL_SESSION_get_time
    - SSL*::ct_validation_callback
    - SSL_get0_session
    - CT_POLICY_EVAL_CTX_set1_cert
    - sk_X509_num
    - CT_POLICY_EVAL_CTX_new
    - DANETLS_ENABLED
    - CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
    - SCT_LIST_validate
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int ssl_validate_ct(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5020,1
    - Dst: SSL_CTX_set_ct_validation_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5023,1
    - Dst: SSL_CTX_set_ct_validation_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - validation_mode
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5027
      start: 5016
    functionDepth: 2
    functionLinenumber: 5016
    functionLinenumberEnd: 5027
    functionName: SSL_CTX_enable_ct
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_set_ct_validation_callback
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5033,1
    - Dst: SSL_set_ct_validation_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5036,1
    - Dst: SSL_set_ct_validation_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - validation_mode
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5040
      start: 5029
    functionDepth: 2
    functionLinenumber: 5029
    functionLinenumberEnd: 5040
    functionName: SSL_enable_ct
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_set_ct_validation_callback
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_enable_ct(SSL *s, int validation_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_load_default_file
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5045
      start: 5042
    functionDepth: 3
    functionLinenumber: 5042
    functionLinenumberEnd: 5045
    functionName: SSL_CTX_set_default_ctlog_list_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - CTLOG_STORE_load_default_file
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_load_file
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5050
      start: 5047
    functionDepth: 3
    functionLinenumber: 5047
    functionLinenumberEnd: 5050
    functionName: SSL_CTX_set_ctlog_list_file
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - CTLOG_STORE_load_file
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - logs
    argTypes:
    - SSL_CTX*
    - CTLOG_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5056
      start: 5052
    functionDepth: 2
    functionLinenumber: 5052
    functionLinenumberEnd: 5056
    functionName: SSL_CTX_set0_ctlog_store
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CTLOG_STORE_free
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE * logs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5061
      start: 5058
    functionDepth: 0
    functionLinenumber: 5058
    functionLinenumberEnd: 5061
    functionName: SSL_CTX_get0_ctlog_store
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CTLOG_STORE
    signature: CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - cb
    - arg
    argTypes:
    - SSL_CTX*
    - SSL_client_hello_cb_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5070
      start: 5065
    functionDepth: 0
    functionLinenumber: 5065
    functionLinenumberEnd: 5070
    functionName: SSL_CTX_set_client_hello_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn
      cb,\n                                 void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5077
      start: 5072
    functionDepth: 0
    functionLinenumber: 5072
    functionLinenumberEnd: 5077
    functionName: SSL_client_hello_isv2
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_client_hello_isv2(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5084
      start: 5079
    functionDepth: 0
    functionLinenumber: 5079
    functionLinenumberEnd: 5084
    functionName: SSL_client_hello_get0_legacy_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SSL_client_hello_get0_legacy_version(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - SSL*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5093
      start: 5086
    functionDepth: 0
    functionLinenumber: 5086
    functionLinenumberEnd: 5093
    functionName: SSL_client_hello_get0_random
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - SSL*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5102
      start: 5095
    functionDepth: 0
    functionLinenumber: 5095
    functionLinenumberEnd: 5102
    functionName: SSL_client_hello_get0_session_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char
      **out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5109,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - SSL*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5111
      start: 5104
    functionDepth: 1
    functionLinenumber: 5104
    functionLinenumberEnd: 5111
    functionName: SSL_client_hello_get0_ciphers
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - PACKET_remaining
    - PACKET_data
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - SSL*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5120
      start: 5113
    functionDepth: 0
    functionLinenumber: 5113
    functionLinenumberEnd: 5120
    functionName: SSL_client_hello_get0_compression_methods
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned
      char **out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5140,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5157,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - s
    - out
    - outlen
    argTypes:
    - SSL*
    - int**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5159
      start: 5122
    functionDepth: 1
    functionLinenumber: 5122
    functionLinenumberEnd: 5159
    functionName: SSL_client_hello_get1_extensions_present
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t
      *outlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5173,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - s
    - type
    - out
    - outlen
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5180
      start: 5161
    functionDepth: 1
    functionLinenumber: 5161
    functionLinenumberEnd: 5180
    functionName: SSL_client_hello_get0_ext
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - PACKET_remaining
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: "int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned
      char **out,\n                       size_t *outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_read_pending
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5186,1
    - Dst: RECORD_LAYER_write_pending
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5186,1
    - Dst: RECORD_LAYER_release
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5191
      start: 5182
    functionDepth: 1
    functionLinenumber: 5182
    functionLinenumberEnd: 5191
    functionName: SSL_free_buffers
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - RECORD_LAYER_release
    - RECORD_LAYER_write_pending
    - RECORD_LAYER_read_pending
    linkageType: ''
    returnType: int
    signature: int SSL_free_buffers(SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_setup_buffers
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5196
      start: 5193
    functionDepth: 1
    functionLinenumber: 5193
    functionLinenumberEnd: 5196
    functionName: SSL_alloc_buffers
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ssl3_setup_buffers
    linkageType: ''
    returnType: int
    signature: int SSL_alloc_buffers(SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - SSL_CTX*
    - SSL_CTX_keylog_cb_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5201
      start: 5198
    functionDepth: 0
    functionLinenumber: 5198
    functionLinenumberEnd: 5201
    functionName: SSL_CTX_set_keylog_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5206
      start: 5203
    functionDepth: 0
    functionLinenumber: 5203
    functionLinenumberEnd: 5206
    functionName: SSL_CTX_get_keylog_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SSL_CTX_keylog_cb_func
    signature: SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5232,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5234,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5235,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5240,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5245,1
    - Dst: sprintf
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5251,1
    - Dst: SSL*::ctx::keylog_callback
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5256,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - prefix
    - ssl
    - parameter_1
    - parameter_1_len
    - parameter_2
    - parameter_2_len
    argTypes:
    - char*
    - SSL*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5260
      start: 5208
    functionDepth: 3
    functionLinenumber: 5208
    functionLinenumberEnd: 5260
    functionName: nss_keylog_int
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - strcpy
    - SSL*::ctx::keylog_callback
    - sprintf
    - OPENSSL_clear_free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int nss_keylog_int(const char *prefix,\n                          SSL
      *ssl,\n                          const uint8_t *parameter_1,\n                          size_t
      parameter_1_len,\n                          const uint8_t *parameter_2,\n                          size_t
      parameter_2_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5269,1
    - Dst: nss_keylog_int
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ssl
    - encrypted_premaster
    - encrypted_premaster_len
    - premaster
    - premaster_len
    argTypes:
    - SSL*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5281
      start: 5262
    functionDepth: 4
    functionLinenumber: 5262
    functionLinenumberEnd: 5281
    functionName: ssl_log_rsa_client_key_exchange
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - nss_keylog_int
    linkageType: ''
    returnType: int
    signature: "int ssl_log_rsa_client_key_exchange(SSL *ssl,\n                                    const
      uint8_t *encrypted_premaster,\n                                    size_t encrypted_premaster_len,\n
      \                                   const uint8_t *premaster,\n                                    size_t
      premaster_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_keylog_int
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssl
    - label
    - secret
    - secret_len
    argTypes:
    - SSL*
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5294
      start: 5283
    functionDepth: 4
    functionLinenumber: 5283
    functionLinenumberEnd: 5294
    functionName: ssl_log_secret
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - nss_keylog_int
    linkageType: ''
    returnType: int
    signature: "int ssl_log_secret(SSL *ssl,\n                   const char *label,\n
      \                  const uint8_t *secret,\n                   size_t secret_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5304,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5305,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5310,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5311,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5316,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5321,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5333,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5336,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5341,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5343,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5345,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5348,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5349,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5351,1
    - Dst: PACKET_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5359,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5361,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - s
    - cipher_suites
    - sslv2format
    argTypes:
    - SSL*
    - PACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5366
      start: 5298
    functionDepth: 3
    functionLinenumber: 5298
    functionLinenumberEnd: 5366
    functionName: ssl_cache_cipherlist
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - PACKET_get_1
    - PACKET_remaining
    - OPENSSL_free
    - PACKET_copy_bytes
    - PACKET_forward
    - PACKET_memdup
    linkageType: ''
    returnType: int
    signature: int ssl_cache_cipherlist(SSL *s, PACKET *cipher_suites, int sslv2format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5374,1
    - Dst: bytes_to_cipher_list
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - s
    - bytes
    - len
    - isv2format
    - sk
    - scsvs
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - int
    - STACK_OF**
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5368
    functionDepth: 1
    functionLinenumber: 5368
    functionLinenumberEnd: 5377
    functionName: SSL_bytes_to_cipher_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached:
    - PACKET_buf_init
    - bytes_to_cipher_list
    linkageType: ''
    returnType: int
    signature: "int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t
      len,\n                             int isv2format, STACK_OF(SSL_CIPHER) **sk,\n
      \                            STACK_OF(SSL_CIPHER) **scsvs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - max_early_data
    argTypes:
    - SSL_CTX*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5475
      start: 5470
    functionDepth: 0
    functionLinenumber: 5470
    functionLinenumberEnd: 5475
    functionName: SSL_CTX_set_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5480
      start: 5477
    functionDepth: 0
    functionLinenumber: 5477
    functionLinenumberEnd: 5480
    functionName: SSL_CTX_get_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - max_early_data
    argTypes:
    - SSL*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5487
      start: 5482
    functionDepth: 0
    functionLinenumber: 5482
    functionLinenumberEnd: 5487
    functionName: SSL_set_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_set_max_early_data(SSL *s, uint32_t max_early_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5492
      start: 5489
    functionDepth: 0
    functionLinenumber: 5489
    functionLinenumberEnd: 5492
    functionName: SSL_get_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SSL_get_max_early_data(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - recv_max_early_data
    argTypes:
    - SSL_CTX*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5499
      start: 5494
    functionDepth: 0
    functionLinenumber: 5494
    functionLinenumberEnd: 5499
    functionName: SSL_CTX_set_recv_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5504
      start: 5501
    functionDepth: 0
    functionLinenumber: 5501
    functionLinenumberEnd: 5504
    functionName: SSL_CTX_get_recv_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - recv_max_early_data
    argTypes:
    - SSL*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5511
      start: 5506
    functionDepth: 0
    functionLinenumber: 5506
    functionLinenumberEnd: 5511
    functionName: SSL_set_recv_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5516
      start: 5513
    functionDepth: 0
    functionLinenumber: 5513
    functionLinenumberEnd: 5516
    functionName: SSL_get_recv_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SSL_get_recv_max_early_data(const SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: USE_MAX_FRAGMENT_LENGTH_EXT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5521,1
    - Dst: GET_MAX_FRAGMENT_LENGTH
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5526
      start: 5518
    functionDepth: 1
    functionLinenumber: 5518
    functionLinenumberEnd: 5526
    functionName: ssl_get_max_send_fragment
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - GET_MAX_FRAGMENT_LENGTH
    - USE_MAX_FRAGMENT_LENGTH_EXT
    linkageType: ''
    returnType: __owur unsigned
    signature: __owur unsigned ssl_get_max_send_fragment(const SSL *ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: USE_MAX_FRAGMENT_LENGTH_EXT
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5531,1
    - Dst: GET_MAX_FRAGMENT_LENGTH
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5532,1
    - Dst: GET_MAX_FRAGMENT_LENGTH
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5541
      start: 5528
    functionDepth: 1
    functionLinenumber: 5528
    functionLinenumberEnd: 5541
    functionName: ssl_get_split_send_fragment
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - GET_MAX_FRAGMENT_LENGTH
    - USE_MAX_FRAGMENT_LENGTH_EXT
    linkageType: ''
    returnType: __owur unsigned
    signature: __owur unsigned ssl_get_split_send_fragment(const SSL *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_clear
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5548,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5551,1
    - Dst: SSL_accept
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5554,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5564
      start: 5543
    functionDepth: 5
    functionLinenumber: 5543
    functionLinenumberEnd: 5564
    functionName: SSL_stateless
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - SSL_clear
    - SSL_accept
    - ERR_clear_error
    - ossl_statem_in_error
    linkageType: ''
    returnType: int
    signature: int SSL_stateless(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - val
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5569
      start: 5566
    functionDepth: 0
    functionLinenumber: 5566
    functionLinenumberEnd: 5569
    functionName: SSL_CTX_set_post_handshake_auth
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - val
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5574
      start: 5571
    functionDepth: 0
    functionLinenumber: 5571
    functionLinenumberEnd: 5574
    functionName: SSL_set_post_handshake_auth
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_set_post_handshake_auth(SSL *ssl, int val)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5578,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5579,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5583,1
    - Dst: SSL_is_init_finished
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5587,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5588,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5594,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5598,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5603,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5606,1
    - Dst: send_certificate_request
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5613,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5615,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/ssl_lib.c:5619,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5621
      start: 5576
    functionDepth: 1
    functionLinenumber: 5576
    functionLinenumberEnd: 5621
    functionName: SSL_verify_client_post_handshake
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 5
    functionsReached:
    - SSL_is_init_finished
    - ossl_statem_set_in_init
    - send_certificate_request
    - SSL_IS_TLS13
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_verify_client_post_handshake(SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - gen_cb
    - dec_cb
    - arg
    argTypes:
    - SSL_CTX*
    - SSL_CTX_generate_session_ticket_fn
    - SSL_CTX_decrypt_session_ticket_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5632
      start: 5623
    functionDepth: 0
    functionLinenumber: 5623
    functionLinenumberEnd: 5632
    functionName: SSL_CTX_set_session_ticket_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx,\n                                  SSL_CTX_generate_session_ticket_fn
      gen_cb,\n                                  SSL_CTX_decrypt_session_ticket_fn
      dec_cb,\n                                  void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - arg
    argTypes:
    - SSL_CTX*
    - SSL_allow_early_data_cb_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5640
      start: 5634
    functionDepth: 0
    functionLinenumber: 5634
    functionLinenumberEnd: 5640
    functionName: SSL_CTX_set_allow_early_data_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx,\n                                     SSL_allow_early_data_cb_fn
      cb,\n                                     void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - cb
    - arg
    argTypes:
    - SSL*
    - SSL_allow_early_data_cb_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5642
    functionDepth: 0
    functionLinenumber: 5642
    functionLinenumberEnd: 5648
    functionName: SSL_set_allow_early_data_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_set_allow_early_data_cb(SSL *s,\n                                 SSL_allow_early_data_cb_fn
      cb,\n                                 void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:24,1
    - Dst: SSL*::method::ssl3_enc::setup_key_block
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:29,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:33,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 37
    functionName: ssl3_do_change_cipher_spec
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_msg.c
    functionUses: 0
    functionsReached:
    - SSL*::method::ssl3_enc::change_cipher_state
    - SSL*::method::ssl3_enc::setup_key_block
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int ssl3_do_change_cipher_spec(SSL *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TREAT_AS_TLS13
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:42,1
    - Dst: tls13_alert_code
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:43,1
    - Dst: SSL*::method::ssl3_enc::alert_value
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:45,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:53,1
    - Dst: RECORD_LAYER_write_pending
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:58,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:60,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - s
    - level
    - desc
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 67
    functionName: ssl3_send_alert
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_msg.c
    functionUses: 1
    functionsReached:
    - RECORD_LAYER_write_pending
    - SSL*::method::ssl3_enc::alert_value
    - SSL_TREAT_AS_TLS13
    - tls13_alert_code
    - SSL*::method::ssl_dispatch_alert
    - SSL_CTX_remove_session
    linkageType: ''
    returnType: int
    signature: int ssl3_send_alert(SSL *s, int level, int desc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: do_ssl3_write
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:78,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:87,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:90,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/s3_msg.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 104
    functionName: ssl3_dispatch_alert
    functionSourceFile: /src/openssl-1.1.1g/ssl/s3_msg.c
    functionUses: 0
    functionsReached:
    - do_ssl3_write
    - cb
    - BIO_flush
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: int ssl3_dispatch_alert(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_ex_new_index
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_ex_new_index
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ssl_x509_store_ctx_init)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: SSL_get_ex_data_X509_STORE_CTX_idx
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 3
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int SSL_get_ex_data_X509_STORE_CTX_idx(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:52,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:55,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:64,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: ssl_cert_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - OPENSSL_zalloc
    - SSLerr
    linkageType: ''
    returnType: CERT
    signature: CERT *ssl_cert_new(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:76,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:80,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:86,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:88,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:89,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:95,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:106,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:111,1
    - Dst: X509_chain_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:115,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:117,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:124,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:126,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:130,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:137,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:141,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:148,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:152,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:159,1
    - Dst: X509_STORE_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:171,1
    - Dst: X509_STORE_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:176,1
    - Dst: custom_exts_copy
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:184,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:188,1
    - Dst: ssl_cert_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:196,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 100
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 199
    functionName: ssl_cert_dup
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY_up_ref
    - OPENSSL_malloc
    - custom_exts_copy
    - OPENSSL_free
    - ssl_cert_free
    - memcpy
    - CRYPTO_THREAD_lock_new
    - X509_chain_up_ref
    - X509_STORE_up_ref
    - OPENSSL_strdup
    - OPENSSL_zalloc
    - SSLerr
    - X509_up_ref
    - OPENSSL_memdup
    linkageType: ''
    returnType: CERT
    signature: CERT *ssl_cert_dup(CERT *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:210,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:212,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - CERT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 220
    functionName: ssl_cert_clear_certs
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 1
    functionsReached:
    - X509_free
    - EVP_PKEY_free
    - sk_X509_pop_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ssl_cert_clear_certs(CERT *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:228,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:229,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:232,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:235,1
    - Dst: ssl_cert_clear_certs
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:238,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:239,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:240,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:241,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:242,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:243,1
    - Dst: custom_exts_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:244,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:246,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - CERT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 250
    functionName: ssl_cert_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 6
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - X509_STORE_free
    - EVP_PKEY_free
    - custom_exts_free
    - OPENSSL_free
    - ssl_cert_clear_certs
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void ssl_cert_free(CERT *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_security_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:291,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:293,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:297,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - s
    - ctx
    - x
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 301
    functionName: ssl_cert_add0_chain_cert
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - sk_X509_push
    - ssl_security_cert
    - SSLerr
    - sk_X509_new_null
    linkageType: ''
    returnType: int
    signature: int ssl_cert_add0_chain_cert(SSL *s, SSL_CTX *ctx, X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_add0_chain_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:305,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - ctx
    - x
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: ssl_cert_add1_chain_cert
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - X509_up_ref
    - ssl_cert_add0_chain_cert
    linkageType: ''
    returnType: int
    signature: int ssl_cert_add1_chain_cert(SSL *s, SSL_CTX *ctx, X509 *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:326,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - c
    - x
    argTypes:
    - CERT*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 332
    functionName: ssl_cert_select_current
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - X509_cmp
    linkageType: ''
    returnType: int
    signature: int ssl_cert_select_current(CERT *c, X509 *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - c
    - op
    argTypes:
    - CERT*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 355
    functionName: ssl_cert_set_current
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_cert_set_current(CERT *c, long op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - arg
    argTypes:
    - CERT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: ssl_cert_set_cert_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_cert_set_cert_cb(CERT *c, int (*cb) (SSL *ssl, void *arg),
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: SSL_CTX_get0_CA_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *SSL_CTX_get0_CA_list(const SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: SSL_get0_CA_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *SSL_get0_CA_list(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: SSL_get0_peer_CA_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *SSL_get0_peer_CA_list(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_ca_name
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - x
    argTypes:
    - SSL*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: SSL_add1_to_CA_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - add_ca_name
    linkageType: ''
    returnType: int
    signature: int SSL_add1_to_CA_list(SSL *ssl, const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_ca_name
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - SSL_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: SSL_CTX_add1_to_CA_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - add_ca_name
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_ca_name
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - x
    argTypes:
    - SSL*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: SSL_add_client_CA
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - add_ca_name
    linkageType: ''
    returnType: int
    signature: int SSL_add_client_CA(SSL *ssl, X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_ca_name
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - SSL_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: SSL_CTX_add_client_CA
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - add_ca_name
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:578,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:579,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:586,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:588,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_NAME*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 592
    functionName: xname_cmp
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - memcmp
    - OPENSSL_free
    - i2d_X509_NAME
    linkageType: ''
    returnType: int
    signature: int xname_cmp(const X509_NAME *a, const X509_NAME *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xname_cmp
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_NAME**
    - X509_NAME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 597
    functionName: xname_sk_cmp
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - xname_cmp
    linkageType: ''
    returnType: int
    signature: int xname_sk_cmp(const X509_NAME *const *a, const X509_NAME *const
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 599
    functionDepth: 6
    functionLinenumber: 599
    functionLinenumberEnd: 602
    functionName: xname_hash
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long xname_hash(const X509_NAME *a)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:763,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:768,1
    - Dst: X509_STORE_new
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:773,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:776,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:777,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:778,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:782,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:796,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:798,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:801,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:802,1
    - Dst: X509_STORE_CTX_set_flags
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:806,1
    - Dst: X509_verify_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:809,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:812,1
    - Dst: X509_STORE_CTX_get1_chain
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:817,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:819,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:820,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:821,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:822,1
    - Dst: sk_X509_shift
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:827,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:828,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:830,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:832,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:832,1
    - Dst: X509_get_extension_flags
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:833,1
    - Dst: sk_X509_pop
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:834,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:835,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:843,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:844,1
    - Dst: ssl_security_cert
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:845,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:847,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:848,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:853,1
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:859,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:860,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 90
    argCount: 3
    argNames:
    - s
    - ctx
    - flags
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 757
    functionDepth: 6
    functionLinenumber: 757
    functionLinenumberEnd: 863
    functionName: ssl_build_cert_chain
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - X509_STORE_CTX_get_error
    - STACK_OF
    - ERR_add_error_data
    - X509_STORE_CTX_set_flags
    - X509_STORE_new
    - X509_STORE_CTX_new
    - X509_free
    - X509_STORE_free
    - SSLerr
    - ERR_clear_error
    - X509_verify_cert_error_string
    - X509_get_extension_flags
    - X509_STORE_CTX_get1_chain
    - X509_STORE_CTX_free
    - X509_verify_cert
    - sk_X509_pop_free
    - sk_X509_shift
    - X509_STORE_add_cert
    - X509_STORE_CTX_init
    - sk_X509_num
    - sk_X509_pop
    - ssl_security_cert
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int ssl_build_cert_chain(SSL *s, SSL_CTX *ctx, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_free
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:872,1
    - Dst: X509_STORE_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - c
    - store
    - chain
    - ref
    argTypes:
    - CERT*
    - X509_STORE*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 865
    functionDepth: 4
    functionLinenumber: 865
    functionLinenumberEnd: 877
    functionName: ssl_cert_set_cert_store
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - X509_STORE_up_ref
    - X509_STORE_free
    linkageType: ''
    returnType: int
    signature: int ssl_cert_set_cert_store(CERT *c, X509_STORE *store, int chain,
      int ref)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_security_level
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:886,1
    - Dst: SSL_get_security_level
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:888,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:930,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:942,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 56
    argCount: 7
    argNames:
    - s
    - ctx
    - op
    - bits
    - nid
    - other
    - ex
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 960
    functionName: ssl_security_default_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_security_level
    - DTLS_VERSION_LT
    - SSL_IS_DTLS
    - SSL_get_security_level
    linkageType: ''
    returnType: int
    signature: "int ssl_security_default_callback(const SSL *s, const SSL_CTX *ctx,\n
      \                                        int op, int bits, int nid, void *other,\n
      \                                        void *ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::cert::sec_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - op
    - bits
    - nid
    - other
    argTypes:
    - SSL*
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 965
    functionName: ssl_security
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - SSL*::cert::sec_cb
    linkageType: ''
    returnType: int
    signature: int ssl_security(const SSL *s, int op, int bits, int nid, void *other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX*::cert::sec_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - op
    - bits
    - nid
    - other
    argTypes:
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 971
    functionName: ssl_ctx_security
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 1
    functionsReached:
    - SSL_CTX*::cert::sec_cb
    linkageType: ''
    returnType: int
    signature: int ssl_ctx_security(const SSL_CTX *ctx, int op, int bits, int nid,
      void *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - nid
    - pidx
    argTypes:
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 985
    functionName: ssl_cert_lookup_by_nid
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ssl_cert_lookup_by_nid(int nid, size_t *pidx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:989,1
    - Dst: ssl_cert_lookup_by_nid
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pk
    - pidx
    argTypes:
    - EVP_PKEY*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 1002
    functionName: ssl_cert_lookup_by_pkey
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_id
    - ssl_cert_lookup_by_nid
    linkageType: ''
    returnType: SSL_CERT_LOOKUP
    signature: SSL_CERT_LOOKUP *ssl_cert_lookup_by_pkey(const EVP_PKEY *pk, size_t
      *pidx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/ssl_cert.c:1006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1009
    functionName: ssl_cert_lookup_by_idx
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_cert.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: SSL_CERT_LOOKUP
    signature: SSL_CERT_LOOKUP *ssl_cert_lookup_by_idx(size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: tls1_default_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long tls1_default_timeout(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_new
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:107,1
    - Dst: SSL*::method::ssl_clear
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: tls1_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_new
    - SSL*::method::ssl_clear
    linkageType: ''
    returnType: int
    signature: int tls1_new(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:117,1
    - Dst: ssl3_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: tls1_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void tls1_free(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_clear
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: tls1_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_clear
    linkageType: ''
    returnType: int
    signature: int tls1_clear(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - group_id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: tls1_group_id_lookup
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 3
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: TLS_GROUP_INFO
    signature: TLS_GROUP_INFO *tls1_group_id_lookup(uint16_t group_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: tls1_nid2group_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t tls1_nid2group_id(int nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:221,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:224,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - s
    - pgroups
    - pgroupslen
    argTypes:
    - SSL*
    - uint16_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 247
    functionName: tls1_get_supported_groups
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - tls1_suiteb
    linkageType: ''
    returnType: void
    signature: "void tls1_get_supported_groups(SSL *s, const uint16_t **pgroups,\n
      \                              size_t *pgroupslen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls1_group_id_lookup
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:252,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - s
    - curve
    - op
    argTypes:
    - SSL*
    - uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 264
    functionName: tls_curve_allowed
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_security
    - tls1_group_id_lookup
    linkageType: ''
    returnType: int
    signature: int tls_curve_allowed(SSL *s, uint16_t curve, int op)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - id
    - list
    - listlen
    argTypes:
    - uint16_t
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: tls1_in_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tls1_in_list(uint16_t id, const uint16_t *list, size_t listlen)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:293,1
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:315,1
    - Dst: tls1_get_peer_groups
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:316,1
    - Dst: tls1_get_peer_groups
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:318,1
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:319,1
    - Dst: tls1_in_list
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:325,1
    - Dst: tls_curve_allowed
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:326,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - s
    - nmatch
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 336
    functionName: tls1_shared_group
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls1_get_peer_groups
    - tls1_in_list
    - tls1_suiteb
    - tls_curve_allowed
    - tls1_get_supported_groups
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t tls1_shared_group(SSL *s, int nmatch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:350,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:353,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:354,1
    - Dst: tls1_nid2group_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:361,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:364,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - pext
    - pextlen
    - groups
    - ngroups
    argTypes:
    - uint16_t**
    - size_t*
    - int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 374
    functionName: tls1_set_groups
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - tls1_nid2group_id
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int tls1_set_groups(uint16_t **pext, size_t *pextlen,\n                    int
      *groups, size_t ngroups)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:395,1
    - Dst: EC_curve_nist2nid
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:397,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:399,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - elem
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 409
    functionName: nid_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - EC_curve_nist2nid
    - OBJ_ln2nid
    - OBJ_sn2nid
    - memcpy
    linkageType: ''
    returnType: int
    signature: int nid_cb(const char *elem, int len, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:416,1
    - Dst: tls1_set_groups
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pext
    - pextlen
    - str
    argTypes:
    - uint16_t**
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 421
    functionName: tls1_set_groups_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 3
    functionsReached:
    - tls1_set_groups
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: int tls1_set_groups_list(uint16_t **pext, size_t *pextlen, const char
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:425,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:430,1
    - Dst: tls1_nid2group_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:431,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 432
    functionName: tls1_get_group_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve_name
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_get0_group
    - tls1_nid2group_id
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t tls1_get_group_id(EVP_PKEY *pkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:443,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:445,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:446,1
    - Dst: EC_KEY_get_conv_form
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:449,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:451,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:458,1
    - Dst: EC_GROUP_method_of
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:458,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - s
    - pkey
    argTypes:
    - SSL*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 479
    functionName: tls1_check_pkey_comp
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_get_conv_form
    - EC_METHOD_get_field_type
    - EVP_PKEY_id
    - SSL_IS_TLS13
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int tls1_check_pkey_comp(SSL *s, EVP_PKEY *pkey)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:491,1
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:508,1
    - Dst: tls1_in_list
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:509,1
    - Dst: tls_curve_allowed
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:513,1
    - Dst: tls1_get_peer_groups
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:521,1
    - Dst: tls1_in_list
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:531,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - s
    - group_id
    - check_own_groups
    argTypes:
    - SSL*
    - uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 532
    functionName: tls1_check_group_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_get_peer_groups
    - tls1_in_list
    - tls1_suiteb
    - tls_curve_allowed
    - tls1_get_supported_groups
    linkageType: ''
    returnType: int
    signature: int tls1_check_group_id(SSL *s, uint16_t group_id, int check_own_groups)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - pformats
    - num_formats
    argTypes:
    - SSL*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 551
    functionName: tls1_get_formatlist
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_suiteb
    linkageType: ''
    returnType: void
    signature: "void tls1_get_formatlist(SSL *s, const unsigned char **pformats,\n
      \                        size_t *num_formats)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:561,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:565,1
    - Dst: tls1_check_pkey_comp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:568,1
    - Dst: tls1_get_group_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:570,1
    - Dst: tls1_check_group_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:575,1
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:581,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - s
    - x
    - check_ee_md
    argTypes:
    - SSL*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 557
    functionDepth: 4
    functionLinenumber: 557
    functionLinenumberEnd: 599
    functionName: tls1_check_cert_param
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_suiteb
    - tls1_check_group_id
    - EVP_PKEY_id
    - tls1_check_pkey_comp
    - tls1_get_group_id
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int tls1_check_cert_param(SSL *s, X509 *x, int check_ee_md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:614,1
    - Dst: tls1_shared_group
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:615,1
    - Dst: tls1_check_group_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:621,1
    - Dst: tls1_check_group_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s
    - cid
    argTypes:
    - SSL*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 611
    functionDepth: 4
    functionLinenumber: 611
    functionLinenumberEnd: 626
    functionName: tls1_check_ec_tmp_key
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls1_shared_group
    - tls1_suiteb
    - tls1_check_group_id
    linkageType: ''
    returnType: int
    signature: int tls1_check_ec_tmp_key(SSL *s, unsigned long cid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - x
    - set_ee_md
    argTypes:
    - SSL*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 633
    functionName: tls1_check_cert_param
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tls1_check_cert_param(SSL *s, X509 *x, int set_ee_md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sigalg
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 811
    functionName: tls1_lookup_sigalg
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: SIGALG_LOOKUP
    signature: SIGALG_LOOKUP *tls1_lookup_sigalg(uint16_t sigalg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - lu
    - pmd
    argTypes:
    - SIGALG_LOOKUP*
    - EVP_MD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 829
    functionName: tls1_lookup_md
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_md
    linkageType: ''
    returnType: int
    signature: int tls1_lookup_md(const SIGALG_LOOKUP *lu, const EVP_MD **pmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 839
    functionName: RSA_PSS_MINIMUM_KEY_SIZE
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSA_PSS_MINIMUM_KEY_SIZE(md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:845,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:847,1
    - Dst: RSA_PSS_MINIMUM_KEY_SIZE
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - rsa
    - lu
    argTypes:
    - RSA*
    - SIGALG_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 850
    functionName: rsa_pss_check_min_key_size
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_md
    - RSA_PSS_MINIMUM_KEY_SIZE
    - RSA_size
    linkageType: ''
    returnType: int
    signature: int rsa_pss_check_min_key_size(const RSA *rsa, const SIGALG_LOOKUP
      *lu)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_lookup_by_idx
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:867,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:893,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:895,1
    - Dst: tls1_lookup_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:896,1
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:898,1
    - Dst: tls12_sigalg_allowed
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:900,1
    - Dst: tls12_sigalg_allowed
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:904,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 907
    functionName: tls1_get_legacy_sigalg
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_md
    - OSSL_NELEM
    - tls1_lookup_sigalg
    - tls12_sigalg_allowed
    - ssl_cert_lookup_by_idx
    - SSL_USE_SIGALGS
    linkageType: ''
    returnType: SIGALG_LOOKUP
    signature: SIGALG_LOOKUP *tls1_get_legacy_sigalg(const SSL *s, int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_lookup_by_pkey
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:914,1
    - Dst: tls1_get_legacy_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - pkey
    argTypes:
    - SSL*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 921
    functionName: tls1_set_peer_legacy_sigalg
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_cert_lookup_by_pkey
    - tls1_get_legacy_sigalg
    linkageType: ''
    returnType: int
    signature: int tls1_set_peer_legacy_sigalg(SSL *s, const EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:930,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:933,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:957,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - s
    - sent
    - psigs
    argTypes:
    - SSL*
    - int
    - uint16_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 959
    functionName: tls12_get_psigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - tls1_suiteb
    linkageType: ''
    returnType: size_t
    signature: size_t tls12_get_psigalgs(SSL *s, int sent, const uint16_t **psigs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:976,1
    - Dst: tls1_lookup_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:980,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - s
    - curve
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 966
    functionDepth: 2
    functionLinenumber: 966
    functionLinenumberEnd: 991
    functionName: tls_check_sigalg_curve
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - tls1_lookup_sigalg
    linkageType: ''
    returnType: int
    signature: int tls_check_sigalg_curve(const SSL *s, int curve)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1003,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - lu
    argTypes:
    - SIGALG_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1017
    functionName: sigalg_security_bits
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_md
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: int sigalg_security_bits(const SIGALG_LOOKUP *lu)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1030,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1037,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1040,1
    - Dst: tls1_lookup_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1048,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1054,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1057,1
    - Dst: ssl_cert_lookup_by_nid
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1062,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1062,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1064,1
    - Dst: tls1_check_pkey_comp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1073,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1074,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1081,1
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1081,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1082,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1083,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1083,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1086,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1091,1
    - Dst: tls1_check_group_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1093,1
    - Dst: tls1_get_group_id
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1093,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1094,1
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1098,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1102,1
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1109,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1110,1
    - Dst: tls12_get_psigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1117,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1125,1
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1129,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1130,1
    - Dst: sigalg_security_bits
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1140,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1142,1
    - Dst: EVP_MD_type
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1143,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1145,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 70
    argCount: 3
    argNames:
    - s
    - sig
    - pkey
    argTypes:
    - SSL*
    - uint16_t
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1024
    functionDepth: 4
    functionLinenumber: 1024
    functionLinenumberEnd: 1152
    functionName: tls12_check_peer_sigalg
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls1_lookup_md
    - tls1_lookup_sigalg
    - EVP_MD_type
    - EC_GROUP_get_curve_name
    - EVP_PKEY_get0_EC_KEY
    - tls1_get_group_id
    - tls1_suiteb
    - tls1_check_group_id
    - sigalg_security_bits
    - EVP_PKEY_id
    - ssl_security
    - tls1_check_pkey_comp
    - SSL_IS_TLS13
    - ssl_cert_lookup_by_nid
    - tls12_get_psigalgs
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int tls12_check_peer_sigalg(SSL *s, uint16_t sig, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - pnid
    argTypes:
    - SSL*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1160
    functionName: SSL_get_peer_signature_type_nid
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_get_peer_signature_type_nid(const SSL *s, int *pnid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - pnid
    argTypes:
    - SSL*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1168
    functionName: SSL_get_signature_type_nid
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_get_signature_type_nid(const SSL *s, int *pnid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_set_sig_mask
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1184,1
    - Dst: ssl_get_min_max_version
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1180
    functionDepth: 1
    functionLinenumber: 1180
    functionLinenumberEnd: 1202
    functionName: ssl_set_client_disabled
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_get_min_max_version
    - ssl_set_sig_mask
    linkageType: ''
    returnType: int
    signature: int ssl_set_client_disabled(SSL *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1220,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1234,1
    - Dst: DTLS_VERSION_GT
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1234,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1235,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1238,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 4
    argNames:
    - s
    - c
    - op
    - ecdhe
    argTypes:
    - SSL*
    - SSL_CIPHER*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1239
    functionName: ssl_cipher_disabled
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - DTLS_VERSION_GT
    - ssl_security
    - DTLS_VERSION_LT
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: int ssl_cipher_disabled(const SSL *s, const SSL_CIPHER *c, int op,
      int ecdhe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1246
    functionName: tls_use_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_security
    linkageType: ''
    returnType: int
    signature: int tls_use_ticket(SSL *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1253,1
    - Dst: tls12_get_psigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1266,1
    - Dst: tls1_get_legacy_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1269,1
    - Dst: tls1_process_sigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1285,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1286,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1294,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1248
    functionDepth: 3
    functionLinenumber: 1248
    functionLinenumberEnd: 1297
    functionName: tls1_set_server_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls1_process_sigalgs
    - OPENSSL_free
    - tls1_get_legacy_sigalg
    - tls12_get_psigalgs
    linkageType: ''
    returnType: int
    signature: int tls1_set_server_sigalgs(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls_use_ticket
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1320,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1327,1
    - Dst: tls_decrypt_ticket
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1329,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - hello
    - ret
    argTypes:
    - SSL*
    - CLIENTHELLO_MSG*
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1331
    functionName: tls_get_ticket_from_client
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls_use_ticket
    - PACKET_remaining
    - PACKET_data
    - tls_decrypt_ticket
    linkageType: ''
    returnType: SSL_TICKET_STATUS
    signature: "SSL_TICKET_STATUS tls_get_ticket_from_client(SSL *s, CLIENTHELLO_MSG
      *hello,\n                                             SSL_SESSION **ret)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1379,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1397,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1402,1
    - Dst: SSL_CTX*::ext::ticket_key_cb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1409,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1424,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1429,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1431,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1432,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1432,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1438,1
    - Dst: HMAC_size
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1445,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1453,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1459,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1460,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1465,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1471,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1472,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1473,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1474,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1476,1
    - Dst: EVP_DecryptFinal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1480,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1481,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1488,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1490,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1494,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1506,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1515,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1522,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1523,1
    - Dst: SSL*::session_ctx::decrypt_ticket_cb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1540,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1550,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1558,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1578,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 162
    argCount: 6
    argNames:
    - s
    - etick
    - eticklen
    - sess_id
    - sesslen
    - psess
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1356
    functionDepth: 5
    functionLinenumber: 1356
    functionLinenumberEnd: 1590
    functionName: tls_decrypt_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - SSL_SESSION_free
    - HMAC_size
    - EVP_DecryptUpdate
    - SSL*::session_ctx::decrypt_ticket_cb
    - OPENSSL_malloc
    - HMAC_Init_ex
    - HMAC_Final
    - memcmp
    - OPENSSL_free
    - memcpy
    - CRYPTO_memcmp
    - EVP_sha256
    - EVP_DecryptInit_ex
    - ERR_clear_error
    - d2i_SSL_SESSION
    - EVP_DecryptFinal
    - HMAC_CTX_new
    - HMAC_Update
    - EVP_CIPHER_CTX_new
    - SSL_IS_TLS13
    - EVP_CIPHER_CTX_iv_length
    - EVP_aes_256_cbc
    - EVP_CIPHER_CTX_free
    - HMAC_CTX_free
    - SSL_CTX*::ext::ticket_key_cb
    linkageType: ''
    returnType: SSL_TICKET_STATUS
    signature: "SSL_TICKET_STATUS tls_decrypt_ticket(SSL *s, const unsigned char *etick,\n
      \                                    size_t eticklen, const unsigned char *sess_id,\n
      \                                    size_t sesslen, SSL_SESSION **psess)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1599,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1602,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1605,1
    - Dst: ssl_cert_is_disabled
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1612,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1619,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1625,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1636,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1637,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1641,1
    - Dst: ssl_cipher_disabled
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1643,1
    - Dst: sigalg_security_bits
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1655,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1658,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 33
    argCount: 3
    argNames:
    - s
    - op
    - lu
    argTypes:
    - SSL*
    - int
    - SIGALG_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1593
    functionDepth: 3
    functionLinenumber: 1593
    functionLinenumberEnd: 1659
    functionName: tls12_sigalg_allowed
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls1_lookup_md
    - sk_SSL_CIPHER_num
    - ssl_cert_is_disabled
    - sk_SSL_CIPHER_value
    - ssl_cipher_disabled
    - ssl_security
    - STACK_OF
    - SSL_IS_DTLS
    - SSL_IS_TLS13
    - SSL_get_ciphers
    - sigalg_security_bits
    linkageType: ''
    returnType: int
    signature: int tls12_sigalg_allowed(const SSL *s, int op, const SIGALG_LOOKUP
      *lu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tls12_get_psigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1676,1
    - Dst: tls1_lookup_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1678,1
    - Dst: ssl_cert_lookup_by_idx
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1684,1
    - Dst: tls12_sigalg_allowed
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1690,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - pmask_a
    - s
    - op
    argTypes:
    - uint32_t*
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1667
    functionDepth: 4
    functionLinenumber: 1667
    functionLinenumberEnd: 1694
    functionName: ssl_set_sig_mask
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 2
    functionsReached:
    - tls12_get_psigalgs
    - ssl_cert_lookup_by_idx
    - tls12_sigalg_allowed
    - tls1_lookup_sigalg
    linkageType: ''
    returnType: void
    signature: void ssl_set_sig_mask(uint32_t *pmask_a, SSL *s, int op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tls1_lookup_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1703,1
    - Dst: tls12_sigalg_allowed
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1705,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1707,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1713,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1720,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 4
    argNames:
    - s
    - pkt
    - psig
    - psiglen
    argTypes:
    - SSL*
    - WPACKET*
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1696
    functionDepth: 4
    functionLinenumber: 1696
    functionLinenumberEnd: 1722
    functionName: tls12_copy_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_sigalg
    - WPACKET_put_bytes_u16
    - tls12_sigalg_allowed
    - SSL_IS_TLS13
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "int tls12_copy_sigalgs(SSL *s, WPACKET *pkt,\n                       const
      uint16_t *psig, size_t psiglen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tls1_lookup_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1732,1
    - Dst: tls12_sigalg_allowed
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1735,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 6
    argNames:
    - s
    - shsig
    - pref
    - preflen
    - allow
    - allowlen
    argTypes:
    - SSL*
    - SIGALG_LOOKUP**
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1725
    functionDepth: 4
    functionLinenumber: 1725
    functionLinenumberEnd: 1747
    functionName: tls12_shared_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_sigalg
    - tls12_sigalg_allowed
    linkageType: ''
    returnType: size_t
    signature: "size_t tls12_shared_sigalgs(SSL *s, const SIGALG_LOOKUP **shsig,\n
      \                                  const uint16_t *pref, size_t preflen,\n                                   const
      uint16_t *allow, size_t allowlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1757,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1759,1
    - Dst: tls12_get_psigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1770,1
    - Dst: tls12_shared_sigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1782,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1784,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1785,1
    - Dst: tls12_shared_sigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1788,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1750
    functionDepth: 5
    functionLinenumber: 1750
    functionLinenumberEnd: 1795
    functionName: tls1_set_shared_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - tls1_suiteb
    - SSLerr
    - tls12_get_psigalgs
    - tls12_shared_sigalgs
    linkageType: ''
    returnType: int
    signature: int tls1_set_shared_sigalgs(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1803,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1811,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1812,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1815,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1819,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1823,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - pkt
    - pdest
    - pdestlen
    argTypes:
    - PACKET*
    - uint16_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1797
    functionDepth: 3
    functionLinenumber: 1797
    functionLinenumberEnd: 1828
    functionName: tls1_save_u16
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - PACKET_remaining
    - OPENSSL_free
    - SSLerr
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int tls1_save_u16(PACKET *pkt, uint16_t **pdest, size_t *pdestlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1833,1
    - Dst: tls1_save_u16
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1840,1
    - Dst: tls1_save_u16
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - s
    - pkt
    - cert
    argTypes:
    - SSL*
    - PACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1830
    functionDepth: 4
    functionLinenumber: 1830
    functionLinenumberEnd: 1846
    functionName: tls1_save_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_save_u16
    - SSL_USE_SIGALGS
    linkageType: ''
    returnType: int
    signature: int tls1_save_sigalgs(SSL *s, PACKET *pkt, int cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tls1_set_shared_sigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1855,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1866,1
    - Dst: ssl_cert_is_disabled
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1869,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1850
    functionDepth: 6
    functionLinenumber: 1850
    functionLinenumberEnd: 1873
    functionName: tls1_process_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - ssl_cert_is_disabled
    - SSL_IS_TLS13
    - tls1_set_shared_sigalgs
    linkageType: ''
    returnType: int
    signature: int tls1_process_sigalgs(SSL *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tls1_lookup_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1893,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 7
    argNames:
    - s
    - idx
    - psign
    - phash
    - psignhash
    - rsig
    - rhash
    argTypes:
    - SSL*
    - int
    - int*
    - int*
    - int*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1875
    functionDepth: 2
    functionLinenumber: 1875
    functionLinenumberEnd: 1902
    functionName: SSL_get_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls1_lookup_sigalg
    linkageType: ''
    returnType: int
    signature: "int SSL_get_sigalgs(SSL *s, int idx,\n                    int *psign,
      int *phash, int *psignhash,\n                    unsigned char *rsig, unsigned
      char *rhash)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 7
    argNames:
    - s
    - idx
    - psign
    - phash
    - psignhash
    - rsig
    - rhash
    argTypes:
    - SSL*
    - int
    - int*
    - int*
    - int*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1926
    functionName: SSL_get_shared_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SSL_get_shared_sigalgs(SSL *s, int idx,\n                           int
      *psign, int *phash, int *psignhash,\n                           unsigned char
      *rsig, unsigned char *rhash)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1939,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1941,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1941,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1943,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1945,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1948,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1950,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - psig
    - phash
    - str
    argTypes:
    - int*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1937
    functionDepth: 1
    functionLinenumber: 1937
    functionLinenumberEnd: 1952
    functionName: get_sigorhash
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OBJ_sn2nid
    - OBJ_ln2nid
    linkageType: ''
    returnType: void
    signature: void get_sigorhash(int *psig, int *phash, const char *str)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1969,1
    - Dst: strchr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1971,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1982,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1984,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1989,1
    - Dst: get_sigorhash
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1996,1
    - Dst: get_sigorhash
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:1997,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2000,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2007,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 3
    argNames:
    - elem
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1956
    functionDepth: 2
    functionLinenumber: 1956
    functionLinenumberEnd: 2019
    functionName: sig_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - strcmp
    - strchr
    - memcpy
    - get_sigorhash
    linkageType: ''
    returnType: int
    signature: int sig_cb(const char *elem, int len, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2029,1
    - Dst: tls1_set_raw_sigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - c
    - str
    - client
    argTypes:
    - CERT*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2025
    functionDepth: 2
    functionLinenumber: 2025
    functionLinenumberEnd: 2034
    functionName: tls1_set_sigalgs_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 3
    functionsReached:
    - tls1_set_raw_sigalgs
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: int tls1_set_sigalgs_list(CERT *c, const char *str, int client)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2041,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2042,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2045,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2048,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - c
    - psigs
    - salglen
    - client
    argTypes:
    - CERT*
    - uint16_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2036
    functionDepth: 1
    functionLinenumber: 2036
    functionLinenumberEnd: 2058
    functionName: tls1_set_raw_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - SSLerr
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int tls1_set_raw_sigalgs(CERT *c, const uint16_t *psigs, size_t salglen,\n
      \                    int client)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2067,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2068,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2077,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2085,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2090,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2094,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - c
    - psig_nids
    - salglen
    - client
    argTypes:
    - CERT*
    - int*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2104
    functionName: tls1_set_sigalgs
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 2
    functionsReached:
    - OSSL_NELEM
    - OPENSSL_malloc
    - OPENSSL_free
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int tls1_set_sigalgs(CERT *c, const int *psig_nids, size_t salglen,
      int client)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_signature_nid
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2114,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2118,1
    - Dst: tls1_lookup_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - s
    - x
    - default_nid
    argTypes:
    - SSL*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2106
    functionDepth: 2
    functionLinenumber: 2106
    functionLinenumberEnd: 2137
    functionName: tls1_check_sig_alg
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_sigalg
    - X509_get_signature_nid
    - SSL_IS_TLS13
    linkageType: ''
    returnType: int
    signature: int tls1_check_sig_alg(SSL *s, X509 *x, int default_nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2422,1
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2423,1
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2424,1
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2425,1
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2426,1
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2427,1
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2428,1
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2429,1
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2420
    functionDepth: 0
    functionLinenumber: 2420
    functionLinenumberEnd: 2431
    functionName: tls1_set_cert_validity
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls1_check_chain
    linkageType: ''
    returnType: void
    signature: void tls1_set_cert_validity(SSL *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DH_get_1024_160
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2444,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2453,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2457,1
    - Dst: BN_new
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2461,1
    - Dst: BN_set_word
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2462,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2463,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2464,1
    - Dst: BN_get_rfc3526_prime_8192
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2468,1
    - Dst: BN_get_rfc3526_prime_3072
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2470,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2471,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2472,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2473,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2474,1
    - Dst: DH_get_2048_224
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2480,1
    - Dst: DH_get_1024_160
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2481,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2440
    functionDepth: 5
    functionLinenumber: 2440
    functionLinenumberEnd: 2482
    functionName: ssl_get_auto_dh
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - DH_get_2048_224
    - BN_new
    - BN_get_rfc3526_prime_8192
    - DH_free
    - BN_free
    - DH_set0_pqg
    - BN_set_word
    - DH_new
    - EVP_PKEY_security_bits
    - DH_get_1024_160
    - BN_get_rfc3526_prime_3072
    linkageType: ''
    returnType: DH
    signature: DH *ssl_get_auto_dh(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2488,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2496,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2499,1
    - Dst: ssl_ctx_security
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - s
    - ctx
    - x
    - op
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2485
    functionDepth: 2
    functionLinenumber: 2485
    functionLinenumberEnd: 2502
    functionName: ssl_security_cert_key
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - X509_get0_pubkey
    - EVP_PKEY_security_bits
    - ssl_security
    - ssl_ctx_security
    linkageType: ''
    returnType: int
    signature: int ssl_security_cert_key(SSL *s, SSL_CTX *ctx, X509 *x, int op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_extension_flags
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2509,1
    - Dst: X509_get_signature_info
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2511,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2517,1
    - Dst: ssl_ctx_security
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - s
    - ctx
    - x
    - op
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2504
    functionDepth: 5
    functionLinenumber: 2504
    functionLinenumberEnd: 2520
    functionName: ssl_security_cert_sig
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_ctx_security
    - ssl_security
    - X509_get_extension_flags
    - X509_get_signature_info
    linkageType: ''
    returnType: int
    signature: int ssl_security_cert_sig(SSL *s, SSL_CTX *ctx, X509 *x, int op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_security_cert_key
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2527,1
    - Dst: ssl_security_cert_key
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2530,1
    - Dst: ssl_security_cert_sig
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - s
    - ctx
    - x
    - vfy
    - is_ee
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2522
    functionDepth: 6
    functionLinenumber: 2522
    functionLinenumberEnd: 2536
    functionName: ssl_security_cert
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 4
    functionsReached:
    - ssl_security_cert_sig
    - ssl_security_cert_key
    linkageType: ''
    returnType: int
    signature: int ssl_security_cert(SSL *s, SSL_CTX *ctx, X509 *x, int vfy, int is_ee)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_lookup_by_idx
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - s
    - lu
    argTypes:
    - SSL*
    - SIGALG_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2571
    functionDepth: 2
    functionLinenumber: 2571
    functionLinenumberEnd: 2584
    functionName: tls12_get_cert_sigalg_idx
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_cert_lookup_by_idx
    linkageType: ''
    returnType: int
    signature: int tls12_get_cert_sigalg_idx(const SSL *s, const SIGALG_LOOKUP *lu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2600,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2601,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2607,1
    - Dst: tls1_lookup_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2611,1
    - Dst: X509_get_signature_info
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2613,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - s
    - sig
    - x
    - pkey
    argTypes:
    - SSL*
    - SIGALG_LOOKUP*
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2592
    functionDepth: 5
    functionLinenumber: 2592
    functionLinenumberEnd: 2627
    functionName: check_cert_usable
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_sigalg
    - EVP_PKEY_get_default_digest_nid
    - ERR_set_mark
    - ERR_pop_to_mark
    - X509_get_signature_info
    linkageType: ''
    returnType: int
    signature: "int check_cert_usable(SSL *s, const SIGALG_LOOKUP *sig, X509 *x,\n
      \                            EVP_PKEY *pkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2641,1
    - Dst: check_cert_usable
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - s
    - sig
    - idx
    argTypes:
    - SSL*
    - SIGALG_LOOKUP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2636
    functionDepth: 6
    functionLinenumber: 2636
    functionLinenumberEnd: 2646
    functionName: has_usable_cert
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - check_cert_usable
    - ssl_has_cert
    linkageType: ''
    returnType: int
    signature: int has_usable_cert(SSL *s, const SIGALG_LOOKUP *sig, int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_lookup_by_pkey
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2657,1
    - Dst: check_cert_usable
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - s
    - sig
    - x
    - pkey
    argTypes:
    - SSL*
    - SIGALG_LOOKUP*
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2652
    functionDepth: 6
    functionLinenumber: 2652
    functionLinenumberEnd: 2665
    functionName: is_cert_usable
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - check_cert_usable
    - ssl_cert_lookup_by_pkey
    linkageType: ''
    returnType: int
    signature: "int is_cert_usable(SSL *s, const SIGALG_LOOKUP *sig, X509 *x,\n                          EVP_PKEY
      *pkey)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2692,1
    - Dst: has_usable_cert
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2694,1
    - Dst: is_cert_usable
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2695,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2704,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2705,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2705,1
    - Dst: rsa_pss_check_min_key_size
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2714,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2714,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 27
    argCount: 3
    argNames:
    - s
    - x
    - pkey
    argTypes:
    - SSL*
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2672
    functionDepth: 7
    functionLinenumber: 2672
    functionLinenumberEnd: 2724
    functionName: find_sig_alg
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_md
    - has_usable_cert
    - EC_GROUP_get_curve_name
    - is_cert_usable
    - EVP_PKEY_get0_EC_KEY
    - rsa_pss_check_min_key_size
    - EVP_PKEY_get0
    - EC_KEY_get0_group
    linkageType: ''
    returnType: SIGALG_LOOKUP
    signature: SIGALG_LOOKUP *find_sig_alg(SSL *s, X509 *x, EVP_PKEY *pkey)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2745,1
    - Dst: find_sig_alg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2746,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2750,1
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2758,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2761,1
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2768,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2769,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2770,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2770,1
    - Dst: tls12_get_cert_sigalg_idx
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2784,1
    - Dst: has_usable_cert
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2794,1
    - Dst: rsa_pss_check_min_key_size
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2800,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2800,1
    - Dst: tls1_get_legacy_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2815,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2818,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2831,1
    - Dst: tls1_get_legacy_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2843,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2846,1
    - Dst: tls12_get_psigalgs
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2852,1
    - Dst: has_usable_cert
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2855,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2861,1
    - Dst: tls1_get_legacy_sigalg
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2868,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2871,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 94
    argCount: 2
    argNames:
    - s
    - fatalerrs
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2737
    functionDepth: 8
    functionLinenumber: 2737
    functionLinenumberEnd: 2883
    functionName: tls_choose_sigalg
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - has_usable_cert
    - EC_GROUP_get_curve_name
    - tls12_get_cert_sigalg_idx
    - EVP_PKEY_get0_EC_KEY
    - find_sig_alg
    - tls1_suiteb
    - rsa_pss_check_min_key_size
    - EVP_PKEY_get0
    - ssl_has_cert
    - SSL_IS_TLS13
    - tls1_get_legacy_sigalg
    - tls12_get_psigalgs
    - EC_KEY_get0_group
    - SSL_USE_SIGALGS
    linkageType: ''
    returnType: int
    signature: int tls_choose_sigalg(SSL *s, int fatalerrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_MAX_FRAGMENT_LENGTH_EXT_VALID
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2888,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - SSL_CTX*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2885
    functionDepth: 1
    functionLinenumber: 2885
    functionLinenumberEnd: 2896
    functionName: SSL_CTX_set_tlsext_max_fragment_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 3
    functionsReached:
    - IS_MAX_FRAGMENT_LENGTH_EXT_VALID
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_tlsext_max_fragment_length(SSL_CTX *ctx, uint8_t mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_MAX_FRAGMENT_LENGTH_EXT_VALID
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2901,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/t1_lib.c:2902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ssl
    - mode
    argTypes:
    - SSL*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2898
    functionDepth: 1
    functionLinenumber: 2898
    functionLinenumberEnd: 2909
    functionName: SSL_set_tlsext_max_fragment_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - IS_MAX_FRAGMENT_LENGTH_EXT_VALID
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_set_tlsext_max_fragment_length(SSL *ssl, uint8_t mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - session
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2911
    functionDepth: 0
    functionLinenumber: 2911
    functionLinenumberEnd: 2914
    functionName: SSL_SESSION_get_max_fragment_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:26,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:27,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:28,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:29,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:30,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:31,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:32,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:33,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:34,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:35,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: SSL_CTX_SRP_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - memset
    - BN_free
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_SRP_CTX_free(struct ssl_ctx_st *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:46,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:47,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:48,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:49,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:50,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:51,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:52,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:53,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:54,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ssl_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: SSL_SRP_CTX_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - memset
    - BN_free
    linkageType: ''
    returnType: int
    signature: int SSL_SRP_CTX_free(struct ssl_st *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:67,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:83,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:85,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:87,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:89,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:91,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:93,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:95,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:97,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:98,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:102,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:103,1
    - Dst: BUF_strdup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:107,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:115,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:116,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:117,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:118,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:119,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:120,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:121,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:122,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:123,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:124,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:125,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 40
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ssl_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 127
    functionName: SSL_SRP_CTX_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - BUF_strdup
    - memset
    - SSLerr
    - BN_free
    - BN_dup
    linkageType: ''
    returnType: int
    signature: int SSL_SRP_CTX_init(struct ssl_st *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: SSL_CTX_SRP_CTX_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_SRP_CTX_init(struct ssl_ctx_st *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::srp_ctx::TLS_ext_srp_username_callback
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:149,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:160,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:162,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:163,1
    - Dst: SRP_Calc_B
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - s
    - ad
    argTypes:
    - SSL*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 141
    functionDepth: 8
    functionLinenumber: 141
    functionLinenumberEnd: 171
    functionName: SSL_srp_server_param_with_username
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - SRP_Calc_B
    - SSL*::srp_ctx::TLS_ext_srp_username_callback
    - BN_bin2bn
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int SSL_srp_server_param_with_username(SSL *s, int *ad)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SRP_get_default_gN
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:180,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:183,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:184,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:185,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:187,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - s
    - user
    - pass
    - grp
    argTypes:
    - SSL*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 177
    functionDepth: 5
    functionLinenumber: 177
    functionLinenumberEnd: 194
    functionName: SSL_set_srp_server_param_pw
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - SRP_create_verifier_BN
    - SRP_get_default_gN
    - BN_dup
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: "int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char
      *pass,\n                                const char *grp)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:201,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:202,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:206,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:210,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:211,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:215,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:219,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:220,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:224,1
    - Dst: BN_copy
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:228,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:229,1
    - Dst: BN_dup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:233,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:237,1
    - Dst: BUF_strdup
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:238,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 6
    argNames:
    - s
    - N
    - g
    - sa
    - v
    - info
    argTypes:
    - SSL*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 247
    functionName: SSL_set_srp_server_param
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 2
    functionsReached:
    - BN_copy
    - OPENSSL_free
    - BUF_strdup
    - BN_free
    - BN_dup
    linkageType: ''
    returnType: int
    signature: "int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM
      *g,\n                             BIGNUM *sa, BIGNUM *v, char *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Verify_A_mod_N
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:255,1
    - Dst: SRP_Calc_u
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:257,1
    - Dst: SRP_Calc_server_key
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:259,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:263,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:264,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:265,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:269,1
    - Dst: ssl_generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:271,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:273,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:274,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 249
    functionDepth: 7
    functionLinenumber: 249
    functionLinenumberEnd: 276
    functionName: srp_generate_server_master_secret
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SRP_Verify_A_mod_N
    - OPENSSL_malloc
    - ssl_generate_master_secret
    - BN_num_bytes
    - BN_bn2bin
    - SRP_Calc_server_key
    - SRP_Calc_u
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int srp_generate_server_master_secret(SSL *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:289,1
    - Dst: SRP_Calc_u
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:290,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:293,1
    - Dst: SSL*::srp_ctx::SRP_give_srp_client_pwd_callback
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:297,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:300,1
    - Dst: SRP_Calc_x
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:305,1
    - Dst: SRP_Calc_client_key
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:306,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:309,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:314,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:315,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:316,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:320,1
    - Dst: ssl_generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:322,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:324,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:325,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:327,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:327,1
    - Dst: BN_clear_free
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 279
    functionDepth: 8
    functionLinenumber: 279
    functionLinenumberEnd: 330
    functionName: srp_generate_client_master_secret
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL*::srp_ctx::SRP_give_srp_client_pwd_callback
    - SRP_Calc_x
    - OPENSSL_malloc
    - ssl_generate_master_secret
    - strlen
    - SRP_Verify_B_mod_N
    - BN_num_bytes
    - BN_bn2bin
    - SRP_Calc_client_key
    - OPENSSL_clear_free
    - SRP_Calc_u
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int srp_generate_client_master_secret(SSL *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:339,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:339,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:340,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:341,1
    - Dst: BN_num_bits
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:346,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:347,1
    - Dst: SRP_CTX*::SRP_verify_param_callback
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:353,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:354,1
    - Dst: SRP_check_known_gN_param
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:359,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:360,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 366
    functionName: srp_verify_server_param
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SRP_CTX*::SRP_verify_param_callback
    - SRP_check_known_gN_param
    - BN_is_zero
    - BN_num_bits
    - BN_ucmp
    linkageType: ''
    returnType: int
    signature: int srp_verify_server_param(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:372,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:374,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:375,1
    - Dst: SRP_Calc_A
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 368
    functionDepth: 7
    functionLinenumber: 368
    functionLinenumberEnd: 381
    functionName: SRP_Calc_A_param
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - SRP_Calc_A
    - BN_bin2bn
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int SRP_Calc_A_param(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 388
    functionName: SSL_get_srp_g
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SSL_get_srp_g(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: SSL_get_srp_N
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SSL_get_srp_N(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: SSL_get_srp_username
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_get_srp_username(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: SSL_get_srp_userinfo
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_get_srp_userinfo(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_ctrl
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: SSL_CTX_set_srp_username
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 3
    functionsReached:
    - tls1_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_ctrl
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - password
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: SSL_CTX_set_srp_password
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - tls1_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_ctrl
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - strength
    argTypes:
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: SSL_CTX_set_srp_strength
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - tls1_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 435
    functionName: SSL_CTX_set_srp_verify_param_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - tls1_ctx_callback_ctrl
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx,\n                                          int
      (*cb) (SSL *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_ctrl
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: SSL_CTX_set_srp_cb_arg
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 2
    functionsReached:
    - tls1_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 447
    functionName: SSL_CTX_set_srp_username_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 2
    functionsReached:
    - tls1_ctx_callback_ctrl
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx,\n                                      int
      (*cb) (SSL *, int *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_callback_ctrl
      Src: /src/openssl-1.1.1g/ssl/tls_srp.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - (*cb) (SSL *, void *)
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: SSL_CTX_set_srp_client_pwd_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls_srp.c
    functionUses: 3
    functionsReached:
    - tls1_ctx_callback_ctrl
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx,\n                                        char
      *(*cb) (SSL *, void *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:21,1
    - Dst: BIO_s_file
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:21,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:22,1
    - Dst: BIO_set_fp
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:25,1
    - Dst: SSL_SESSION_print
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:26,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: SSL_SESSION_print_fp
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_txt.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - SSL_SESSION_print
    - SSLerr
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *x)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:41,1
    - Dst: ssl_protocol_to_string
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:43,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:44,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:49,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:53,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:58,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:63,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:66,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:69,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:72,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:76,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:78,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:81,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:85,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:87,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:89,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:91,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:96,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:98,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:102,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:108,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:111,1
    - Dst: ssl_cipher_get_evp
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:120,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:123,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:126,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:133,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:137,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:140,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:143,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:145,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:146,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:149,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:154,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 132
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 162
    functionName: SSL_SESSION_print
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_txt.c
    functionUses: 5
    functionsReached:
    - ssl_protocol_to_string
    - BIO_dump_indent
    - BIO_printf
    - BIO_puts
    - ssl_cipher_get_evp
    - X509_verify_cert_error_string
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:182,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:185,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:188,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:191,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:194,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/ssl_txt.c:197,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 33
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 203
    functionName: SSL_SESSION_print_keylog
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_txt.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: c2l
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: c2ln
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: l2c
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: n2l
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: n2l8
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l8(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: l2n
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: l2n6
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n6(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: l2n8
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n8(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: l2cn
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2cn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: n2s
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2s(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: s2n
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s2n(s,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: n2l3
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l3(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: l2n3
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n3(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: dtls_ver_ordinal
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dtls_ver_ordinal(v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v1
    - ','
    - v2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: DTLS_VERSION_GT
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_VERSION_GT(v1, v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v1
    - ','
    - v2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: DTLS_VERSION_GE
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_VERSION_GE(v1, v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v1
    - ','
    - v2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: DTLS_VERSION_LT
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_VERSION_LT(v1, v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v1
    - ','
    - v2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: DTLS_VERSION_LE
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_VERSION_LE(v1, v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: SSL_IS_DTLS
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_IS_DTLS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: SSL_IS_TLS13
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_IS_TLS13(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: SSL_TREAT_AS_TLS13
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_TREAT_AS_TLS13(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: SSL_IS_FIRST_HANDSHAKE
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_IS_FIRST_HANDSHAKE(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: SSL_USE_EXPLICIT_IV
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_USE_EXPLICIT_IV(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: SSL_USE_SIGALGS
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_USE_SIGALGS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: SSL_USE_TLS1_2_CIPHERS
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_USE_TLS1_2_CIPHERS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: SSL_CLIENT_USE_TLS1_2_CIPHERS
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CLIENT_USE_TLS1_2_CIPHERS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    functionName: SSL_CLIENT_USE_SIGALGS
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CLIENT_USE_SIGALGS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: IS_MAX_FRAGMENT_LENGTH_EXT_VALID
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_MAX_FRAGMENT_LENGTH_EXT_VALID(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - session
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: USE_MAX_FRAGMENT_LENGTH_EXT
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USE_MAX_FRAGMENT_LENGTH_EXT(session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - session
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: GET_MAX_FRAGMENT_LENGTH
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_MAX_FRAGMENT_LENGTH(session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: SSL_READ_ETM
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_READ_ETM(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: SSL_WRITE_ETM
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_WRITE_ETM(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1832
    functionDepth: 0
    functionLinenumber: 1832
    functionLinenumberEnd: 1833
    functionName: tls1_suiteb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tls1_suiteb(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - pkt
    - ','
    - htype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1980
    functionDepth: 0
    functionLinenumber: 1980
    functionLinenumberEnd: 1982
    functionName: ssl_set_handshake_header
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssl_set_handshake_header(s, pkt, htype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - pkt
    - ','
    - htype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1982
    functionDepth: 0
    functionLinenumber: 1982
    functionLinenumberEnd: 1984
    functionName: ssl_close_construct_packet
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssl_close_construct_packet(s, pkt, htype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1984
    functionDepth: 0
    functionLinenumber: 1984
    functionLinenumberEnd: 1985
    functionName: ssl_do_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssl_do_write(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2066
    functionName: SSL_USE_PSS
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_USE_PSS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - version
    - ','
    - flags
    - ','
    - mask
    - ','
    - func_name
    - ','
    - s_accept
    - ','
    - s_connect
    - ','
    - enc_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2114
    functionDepth: 0
    functionLinenumber: 2114
    functionLinenumberEnd: 2151
    functionName: IMPLEMENT_tls_meth_func
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "IMPLEMENT_tls_meth_func(version, flags, mask, func_name, s_accept,
      \\\n                                 s_connect, enc_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func_name
    - ','
    - s_accept
    - ','
    - s_connect
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2152
    functionDepth: 0
    functionLinenumber: 2152
    functionLinenumberEnd: 2188
    functionName: IMPLEMENT_ssl3_meth_func
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ssl3_meth_func(func_name, s_accept, s_connect)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - version
    - ','
    - flags
    - ','
    - mask
    - ','
    - func_name
    - ','
    - s_accept
    - ','
    - s_connect
    - ','
    - enc_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2189
    functionDepth: 0
    functionLinenumber: 2189
    functionLinenumberEnd: 2226
    functionName: IMPLEMENT_dtls1_meth_func
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "IMPLEMENT_dtls1_meth_func(version, flags, mask, func_name, s_accept,
      \\\n                                        s_connect, enc_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2241
    functionName: ssl_has_cert
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline ssl_has_cert(const SSL *s, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - pgroups
    - pgroupslen
    argTypes:
    - SSL*
    - uint16_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2243
    functionDepth: 0
    functionLinenumber: 2243
    functionLinenumberEnd: 2248
    functionName: tls1_get_peer_groups
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline tls1_get_peer_groups(SSL *s, const uint16_t **pgroups,\n
      \                                            size_t *pgroupslen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - tbl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: ssl_trace_str
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssl_trace_str(val, tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - bio
    - ','
    - indent
    - ','
    - msg
    - ','
    - msglen
    - ','
    - value
    - ','
    - table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: ssl_trace_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssl_trace_list(bio, indent, msg, msglen, value, table)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - val
    - tbl
    - ntbl
    argTypes:
    - int
    - ssl_trace_tbl*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: do_ssl_trace_str
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *do_ssl_trace_str(int val, const ssl_trace_tbl *tbl,\n                                    size_t
      ntbl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:52,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:53,1
    - Dst: do_ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - bio
    - indent
    - msg
    - msglen
    - vlen
    - tbl
    - ntbl
    argTypes:
    - BIO*
    - int
    - unsigned char*
    - size_t
    - size_t
    - ssl_trace_tbl*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: do_ssl_trace_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - do_ssl_trace_str
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "int do_ssl_trace_list(BIO *bio, int indent,\n                             const
      unsigned char *msg, size_t msglen,\n                             size_t vlen,
      const ssl_trace_tbl *tbl, size_t ntbl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:605,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:606,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:608,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - bio
    - indent
    - name
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 610
    functionName: ssl_print_hex
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: void
    signature: "void ssl_print_hex(BIO *bio, int indent, const char *name,\n                          const
      unsigned char *msg, size_t msglen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - bio
    - indent
    - name
    - nlen
    - pmsg
    - pmsglen
    argTypes:
    - BIO*
    - int
    - char*
    - size_t
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 612
    functionDepth: 5
    functionLinenumber: 612
    functionLinenumberEnd: 630
    functionName: ssl_print_hexbuf
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hex
    linkageType: ''
    returnType: int
    signature: "int ssl_print_hexbuf(BIO *bio, int indent, const char *name, size_t
      nlen,\n                            const unsigned char **pmsg, size_t *pmsglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:643,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:644,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - bio
    - indent
    - name
    - pmsg
    - pmsglen
    - version
    argTypes:
    - BIO*
    - int
    - char*
    - unsigned char**
    - size_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 649
    functionName: ssl_print_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "int ssl_print_version(BIO *bio, int indent, const char *name,\n                             const
      unsigned char **pmsg, size_t *pmsglen,\n                             unsigned
      int *version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:661,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:662,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:663,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:664,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - bio
    - indent
    - pmsg
    - pmsglen
    argTypes:
    - BIO*
    - int
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 651
    functionDepth: 5
    functionLinenumber: 651
    functionLinenumberEnd: 669
    functionName: ssl_print_random
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_printf
    - ssl_print_hex
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "int ssl_print_random(BIO *bio, int indent,\n                            const
      unsigned char **pmsg, size_t *pmsglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:676,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:680,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:681,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:682,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - bio
    - indent
    - ssl
    - pmsg
    - pmsglen
    argTypes:
    - BIO*
    - int
    - SSL*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 671
    functionDepth: 6
    functionLinenumber: 671
    functionLinenumberEnd: 687
    functionName: ssl_print_signature
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - SSL_USE_SIGALGS
    - BIO_printf
    - BIO_indent
    - ssl_trace_str
    linkageType: ''
    returnType: int
    signature: "int ssl_print_signature(BIO *bio, int indent, const SSL *ssl,\n                               const
      unsigned char **pmsg, size_t *pmsglen)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:697,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:698,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:699,1
    - Dst: ssl_trace_list
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:705,1
    - Dst: ssl_trace_list
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:713,1
    - Dst: ssl_trace_list
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:721,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:734,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:735,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:736,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:753,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:755,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:756,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:775,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:778,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:781,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:782,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:791,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:800,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:801,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:802,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:826,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:827,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:828,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:829,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:840,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:841,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:842,1
    - Dst: ssl_trace_list
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:850,1
    - Dst: ssl_trace_list
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:859,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:869,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:870,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:874,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 152
    argCount: 7
    argNames:
    - bio
    - indent
    - server
    - mt
    - extype
    - ext
    - extlen
    argTypes:
    - BIO*
    - int
    - int
    - unsigned char
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 689
    functionDepth: 5
    functionLinenumber: 689
    functionLinenumberEnd: 877
    functionName: ssl_print_extension
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_dump_indent
    - ssl_print_hex
    - ssl_trace_list
    - BIO_puts
    - BIO_printf
    - BIO_indent
    - ssl_trace_str
    linkageType: ''
    returnType: int
    signature: "int ssl_print_extension(BIO *bio, int indent, int server,\n                               unsigned
      char mt, int extype,\n                               const unsigned char *ext,
      size_t extlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:886,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:888,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:897,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:904,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:914,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:916,1
    - Dst: ssl_print_extension
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:920,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 6
    argNames:
    - bio
    - indent
    - server
    - mt
    - msgin
    - msginlen
    argTypes:
    - BIO*
    - int
    - int
    - unsigned char
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 879
    functionDepth: 6
    functionLinenumber: 879
    functionLinenumberEnd: 930
    functionName: ssl_print_extensions
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent
    - ssl_print_extension
    - BIO_puts
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "int ssl_print_extensions(BIO *bio, int indent, int server,\n                                unsigned
      char mt, const unsigned char **msgin,\n                                size_t
      *msginlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ssl_print_version
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:938,1
    - Dst: ssl_print_random
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:940,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:942,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:944,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:945,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:953,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:954,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:959,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:960,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:961,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:973,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:974,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:976,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:977,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:978,1
    - Dst: ssl_print_extensions
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:983,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 5
    argNames:
    - bio
    - ssl
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - SSL*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 932
    functionDepth: 7
    functionLinenumber: 932
    functionLinenumberEnd: 987
    functionName: ssl_print_client_hello
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - BIO_printf
    - ssl_print_extensions
    - SSL_IS_DTLS
    - BIO_indent
    - ssl_print_version
    - ssl_print_random
    - ssl_trace_str
    linkageType: ''
    returnType: int
    signature: "int ssl_print_client_hello(BIO *bio, const SSL *ssl, int indent,\n
      \                                 const unsigned char *msg, size_t msglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_print_version
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:992,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - bio
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 989
    functionDepth: 6
    functionLinenumber: 989
    functionLinenumberEnd: 997
    functionName: dtls_print_hello_vfyrequest
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_version
    - ssl_print_hexbuf
    linkageType: ''
    returnType: int
    signature: "int dtls_print_hello_vfyrequest(BIO *bio, int indent,\n                                       const
      unsigned char *msg, size_t msglen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ssl_print_version
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1005,1
    - Dst: ssl_print_random
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1007,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1010,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1015,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1016,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1017,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1023,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1024,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1025,1
    - Dst: ssl_print_extensions
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1029,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - bio
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 999
    functionDepth: 7
    functionLinenumber: 999
    functionLinenumberEnd: 1033
    functionName: ssl_print_server_hello
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - ssl_print_extensions
    - BIO_printf
    - ssl_print_version
    - ssl_print_random
    - BIO_indent
    - ssl_trace_str
    linkageType: ''
    returnType: int
    signature: "int ssl_print_server_hello(BIO *bio, int indent,\n                                  const
      unsigned char *msg, size_t msglen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - pname
    - ssl
    argTypes:
    - char**
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1077
    functionName: ssl_get_keyex
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_get_keyex(const char **pname, const SSL *ssl)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_keyex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1083,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1085,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1086,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1088,1
    - Dst: TLS1_get_version
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1096,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1097,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1100,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1108,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - bio
    - indent
    - ssl
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1079
    functionDepth: 6
    functionLinenumber: 1079
    functionLinenumberEnd: 1121
    functionName: ssl_print_client_keyex
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - ssl_get_keyex
    - TLS1_get_version
    - ssl_print_hex
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "int ssl_print_client_keyex(BIO *bio, int indent, const SSL *ssl,\n
      \                                 const unsigned char *msg, size_t msglen)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_keyex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1127,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1129,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1130,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1132,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1139,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1141,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1148,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1150,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1152,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1161,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1163,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1165,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1171,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1172,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1175,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1178,1
    - Dst: ssl_print_signature
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1189,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 5
    argNames:
    - bio
    - indent
    - ssl
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1123
    functionDepth: 7
    functionLinenumber: 1123
    functionLinenumberEnd: 1191
    functionName: ssl_print_server_keyex
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - ssl_print_signature
    - ssl_get_keyex
    - BIO_puts
    - BIO_printf
    - BIO_indent
    - ssl_trace_str
    linkageType: ''
    returnType: int
    signature: "int ssl_print_server_keyex(BIO *bio, int indent, const SSL *ssl,\n
      \                                 const unsigned char *msg, size_t msglen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1207,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1208,1
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1209,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1211,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1213,1
    - Dst: X509_print_ex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1214,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1215,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1217,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1218,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - bio
    - indent
    - pmsg
    - pmsglen
    argTypes:
    - BIO*
    - int
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1193
    functionDepth: 4
    functionLinenumber: 1193
    functionLinenumberEnd: 1226
    functionName: ssl_print_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - X509_free
    - BIO_indent
    - BIO_puts
    - PEM_write_bio_X509
    - BIO_printf
    - d2i_X509
    - X509_print_ex
    linkageType: ''
    returnType: int
    signature: "int ssl_print_certificate(BIO *bio, int indent,\n                                 const
      unsigned char **pmsg, size_t *pmsglen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1234,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1235,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1244,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1245,1
    - Dst: ssl_print_certificate
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1247,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1249,1
    - Dst: ssl_print_extensions
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - bio
    - ssl
    - server
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - SSL*
    - int
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1228
    functionDepth: 7
    functionLinenumber: 1228
    functionLinenumberEnd: 1256
    functionName: ssl_print_certificates
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - ssl_print_certificate
    - SSL_IS_TLS13
    - BIO_printf
    - BIO_indent
    - ssl_print_extensions
    linkageType: ''
    returnType: int
    signature: "int ssl_print_certificates(BIO *bio, const SSL *ssl, int server,\n
      \                                 int indent, const unsigned char *msg,\n                                  size_t
      msglen)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1264,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1265,1
    - Dst: ssl_print_extensions
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1267,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1278,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1279,1
    - Dst: ssl_trace_list
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1280,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1285,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1293,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1294,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1296,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1298,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1299,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1309,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1314,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1325,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1326,1
    - Dst: d2i_X509_NAME
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1328,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1330,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1332,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1333,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1334,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1339,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1340,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 5
    argNames:
    - bio
    - indent
    - ssl
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1258
    functionDepth: 7
    functionLinenumber: 1258
    functionLinenumberEnd: 1345
    functionName: ssl_print_cert_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - X509_NAME_print_ex
    - BIO_printf
    - SSL_USE_SIGALGS
    - ssl_trace_str
    - d2i_X509_NAME
    - ssl_trace_list
    - BIO_puts
    - X509_NAME_free
    - SSL_IS_TLS13
    - BIO_indent
    - ssl_print_extensions
    linkageType: ''
    returnType: int
    signature: "int ssl_print_cert_request(BIO *bio, int indent, const SSL *ssl,\n
      \                                 const unsigned char *msg, size_t msglen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1353,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1354,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1362,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1363,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1364,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1373,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1374,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1375,1
    - Dst: ssl_print_hexbuf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1379,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1381,1
    - Dst: ssl_print_extensions
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1382,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - bio
    - indent
    - ssl
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1347
    functionDepth: 7
    functionLinenumber: 1347
    functionLinenumberEnd: 1388
    functionName: ssl_print_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - BIO_puts
    - SSL_IS_TLS13
    - BIO_printf
    - BIO_indent
    - ssl_print_extensions
    linkageType: ''
    returnType: int
    signature: "int ssl_print_ticket(BIO *bio, int indent, const SSL *ssl,\n                            const
      unsigned char *msg, size_t msglen)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1401,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1402,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1403,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1406,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1409,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1410,1
    - Dst: ssl_print_client_hello
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1422,1
    - Dst: dtls_print_hello_vfyrequest
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1427,1
    - Dst: ssl_print_server_hello
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1432,1
    - Dst: ssl_print_server_keyex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1437,1
    - Dst: ssl_print_client_keyex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1442,1
    - Dst: ssl_print_certificates
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1447,1
    - Dst: ssl_print_signature
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1452,1
    - Dst: ssl_print_cert_request
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1457,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1462,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1467,1
    - Dst: ssl_print_ticket
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1471,1
    - Dst: ssl_print_extensions
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1476,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1483,1
    - Dst: ssl_trace_list
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1486,1
    - Dst: BIO_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1492,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1493,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1494,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 6
    argNames:
    - bio
    - ssl
    - server
    - msg
    - msglen
    - indent
    argTypes:
    - BIO*
    - SSL*
    - int
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1390
    functionDepth: 8
    functionLinenumber: 1390
    functionLinenumberEnd: 1497
    functionName: ssl_print_handshake
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_signature
    - ssl_print_ticket
    - ssl_print_server_keyex
    - ssl_print_client_hello
    - BIO_dump_indent
    - dtls_print_hello_vfyrequest
    - ssl_print_cert_request
    - ssl_print_server_hello
    - ssl_print_hex
    - ssl_print_certificates
    - ssl_trace_list
    - BIO_puts
    - ssl_print_extensions
    - SSL_IS_DTLS
    - BIO_printf
    - ssl_print_client_keyex
    - BIO_indent
    - ssl_trace_str
    linkageType: ''
    returnType: int
    signature: "int ssl_print_handshake(BIO *bio, const SSL *ssl, int server,\n                               const
      unsigned char *msg, size_t msglen,\n                               int indent)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1511,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1513,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1514,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1518,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1519,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1520,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1521,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1522,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1529,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1530,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1536,1
    - Dst: ssl_trace_str
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1537,1
    - Dst: ssl_print_handshake
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1541,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1543,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1548,1
    - Dst: ssl_print_hex
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1550,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1555,1
    - Dst: BIO_printf
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1557,1
    - Dst: SSL_alert_type_string_long
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1558,1
    - Dst: SSL_alert_desc_string_long
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1559,1
    - Dst: BIO_puts
      Src: /src/openssl-1.1.1g/ssl/t1_trce.c:1564,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 7
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - msglen
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1499
    functionDepth: 9
    functionLinenumber: 1499
    functionLinenumberEnd: 1565
    functionName: SSL_trace
    functionSourceFile: /src/openssl-1.1.1g/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - SSL_alert_desc_string_long
    - ssl_print_hex
    - BIO_puts
    - ssl_print_handshake
    - SSL_IS_DTLS
    - BIO_printf
    - SSL_alert_type_string_long
    - ssl_trace_str
    linkageType: ''
    returnType: void
    signature: "void SSL_trace(int write_p, int version, int content_type,\n               const
      void *buf, size_t msglen, SSL *ssl, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: SSL_get_session
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *SSL_get_session(const SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:47,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:50,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: SSL_get1_session
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 13
    functionsReached:
    - SSL_SESSION_up_ref
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *SSL_get1_session(SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - idx
    - arg
    argTypes:
    - SSL_SESSION*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: SSL_SESSION_set_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_set_ex_data(SSL_SESSION *s, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - SSL_SESSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: SSL_SESSION_get_ex_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *SSL_SESSION_get_ex_data(const SSL_SESSION *s, int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:69,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:72,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:74,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:81,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:82,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:84,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:85,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:89,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:90,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 95
    functionName: SSL_SESSION_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 7
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - OPENSSL_init_ssl
    - CRYPTO_THREAD_lock_new
    - CRYPTO_new_ex_data
    - OPENSSL_zalloc
    - SSLerr
    - time
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *SSL_SESSION_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_session_dup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: SSL_SESSION_dup
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 3
    functionsReached:
    - ssl_session_dup
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *SSL_SESSION_dup(SSL_SESSION *src)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:110,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:114,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:133,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:141,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:145,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:149,1
    - Dst: X509_chain_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:155,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:161,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:167,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:174,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:180,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:188,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:197,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:205,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:214,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:221,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:222,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 98
    argCount: 2
    argNames:
    - src
    - ticket
    argTypes:
    - SSL_SESSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 224
    functionName: ssl_session_dup
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - CRYPTO_dup_ex_data
    - SSL_SESSION_free
    - memcpy
    - CRYPTO_THREAD_lock_new
    - X509_chain_up_ref
    - CRYPTO_new_ex_data
    - memset
    - OPENSSL_strdup
    - SSLerr
    - X509_up_ref
    - OPENSSL_memdup
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *ssl_session_dup(SSL_SESSION *src, int ticket)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL_SESSION*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: SSL_SESSION_get_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int
      *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL_SESSION*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: SSL_SESSION_get0_id_context
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s,\n
      \                                               unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: SSL_SESSION_get_compress_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:262,1
    - Dst: SSL_has_matching_session_id
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - ssl
    - id
    - id_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 278
    functionName: def_generate_session_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - SSL_has_matching_session_id
    - RAND_bytes
    linkageType: ''
    returnType: int
    signature: "int def_generate_session_id(SSL *ssl, unsigned char *id,\n                                   unsigned
      int *id_len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:297,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:323,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:324,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:329,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:330,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:332,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:334,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:336,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:346,1
    - Dst: SSL_has_matching_session_id
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:352,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:354,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - s
    - ss
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 360
    functionName: ssl_generate_session_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - cb
    - SSL_has_matching_session_id
    - CRYPTO_THREAD_read_lock
    - memset
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ssl_generate_session_id(SSL *s, SSL_SESSION *ss)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_new
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:368,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:369,1
    - Dst: SSL_get_default_timeout
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:376,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:380,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:384,1
    - Dst: ssl_generate_session_id
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:390,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:392,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:401,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:403,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - s
    - session
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 417
    functionName: ssl_get_new_session
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_SESSION_free
    - ssl_generate_session_id
    - memcpy
    - SSL_get_default_timeout
    - SSL_SESSION_new
    - SSL_IS_TLS13
    linkageType: ''
    returnType: int
    signature: int ssl_get_new_session(SSL *s, int session)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:429,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:432,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:435,1
    - Dst: lh_SSL_SESSION_retrieve
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:436,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:439,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:441,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:443,1
    - Dst: SSL*::session_ctx::get_session_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:449,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:452,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:462,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:475,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - s
    - sess_id
    - sess_id_len
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 481
    functionName: lookup_sess_in_cache
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - tsan_counter
    - SSL_SESSION_up_ref
    - SSL_CTX_add_session
    - ossl_assert
    - SSL*::session_ctx::get_session_cb
    - CRYPTO_THREAD_read_lock
    - memcpy
    - CRYPTO_THREAD_unlock
    - lh_SSL_SESSION_retrieve
    linkageType: ''
    returnType: SSL_SESSION
    signature: "SSL_SESSION *lookup_sess_in_cache(SSL *s, const unsigned char *sess_id,\n
      \                                 size_t sess_id_len)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:509,1
    - Dst: tls_parse_extension
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:515,1
    - Dst: tls_parse_extension
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:518,1
    - Dst: tls_get_ticket_from_client
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:525,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:530,1
    - Dst: lookup_sess_in_cache
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:537,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:558,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:577,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:583,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:584,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:587,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:596,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:606,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:608,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:612,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:618,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:620,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 2
    argNames:
    - s
    - hello
    argTypes:
    - SSL*
    - CLIENTHELLO_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 635
    functionName: ssl_get_prev_session
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - time
    - tsan_counter
    - memcmp
    - SSL_SESSION_free
    - tls_get_ticket_from_client
    - SSL_IS_TLS13
    - lookup_sess_in_cache
    - tls_parse_extension
    - SSL_CTX_remove_session
    linkageType: ''
    returnType: int
    signature: int ssl_get_prev_session(SSL *s, CLIENTHELLO_MSG *hello)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:647,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:652,1
    - Dst: lh_SSL_SESSION_insert
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:653,1
    - Dst: SSL_SESSION_list_remove
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:662,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:663,1
    - Dst: lh_SSL_SESSION_retrieve
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:672,1
    - Dst: SSL_SESSION_list_add
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:684,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:692,1
    - Dst: SSL_CTX_sess_get_cache_size
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:701,1
    - Dst: SSL_CTX_sess_number
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:702,1
    - Dst: SSL_CTX_sess_get_cache_size
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:702,1
    - Dst: remove_session_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:703,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:706,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:710,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 712
    functionName: SSL_CTX_add_session
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 4
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - SSL_SESSION_list_add
    - SSL_SESSION_up_ref
    - tsan_counter
    - SSL_CTX_sess_get_cache_size
    - SSL_SESSION_free
    - SSL_SESSION_list_remove
    - SSL_CTX_sess_number
    - CRYPTO_THREAD_unlock
    - lh_SSL_SESSION_insert
    - lh_SSL_SESSION_retrieve
    - remove_session_lock
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_session_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 717
    functionName: SSL_CTX_remove_session
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 3
    functionsReached:
    - remove_session_lock
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:726,1
    - Dst: lh_SSL_SESSION_retrieve
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:727,1
    - Dst: lh_SSL_SESSION_delete
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:729,1
    - Dst: SSL_SESSION_list_remove
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:730,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:735,1
    - Dst: SSL_CTX*::remove_session_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:738,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - c
    - lck
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 745
    functionName: remove_session_lock
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - SSL_CTX*::remove_session_cb
    - SSL_SESSION_free
    - lh_SSL_SESSION_delete
    - SSL_SESSION_list_remove
    - CRYPTO_THREAD_unlock
    - lh_SSL_SESSION_retrieve
    linkageType: ''
    returnType: int
    signature: int remove_session_lock(SSL_CTX *ctx, SSL_SESSION *c, int lck)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:753,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:754,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:757,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:759,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:761,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:762,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:763,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:764,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:765,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:766,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:768,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:769,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:772,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:774,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:775,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:776,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - ss
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 747
    functionDepth: 3
    functionLinenumber: 747
    functionLinenumberEnd: 778
    functionName: SSL_SESSION_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 43
    functionsReached:
    - X509_free
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - sk_X509_pop_free
    - CRYPTO_DOWN_REF
    - CRYPTO_free_ex_data
    - OPENSSL_clear_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void SSL_SESSION_free(SSL_SESSION *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:784,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:787,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 790
    functionName: SSL_SESSION_up_ref
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 11
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_up_ref(SSL_SESSION *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_clear_bad_session
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:794,1
    - Dst: SSL_set_ssl_method
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:796,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:801,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - session
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 792
    functionDepth: 4
    functionLinenumber: 792
    functionLinenumberEnd: 808
    functionName: SSL_set_session
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 21
    functionsReached:
    - SSL_SESSION_free
    - ssl_clear_bad_session
    - SSL_SESSION_up_ref
    - SSL_set_ssl_method
    linkageType: ''
    returnType: int
    signature: int SSL_set_session(SSL *s, SSL_SESSION *session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:814,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - s
    - sid
    - sid_len
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 822
    functionName: SSL_SESSION_set1_id
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid,\n
      \                       unsigned int sid_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - SSL_SESSION*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 830
    functionName: SSL_SESSION_set_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long SSL_SESSION_set_timeout(SSL_SESSION *s, long t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 837
    functionName: SSL_SESSION_get_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long SSL_SESSION_get_timeout(const SSL_SESSION *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 844
    functionName: SSL_SESSION_get_time
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long SSL_SESSION_get_time(const SSL_SESSION *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - SSL_SESSION*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: SSL_SESSION_set_time
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long SSL_SESSION_set_time(SSL_SESSION *s, long t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 857
    functionName: SSL_SESSION_get_protocol_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_get_protocol_version(const SSL_SESSION *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - version
    argTypes:
    - SSL_SESSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 863
    functionName: SSL_SESSION_set_protocol_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 868
    functionName: SSL_SESSION_get0_cipher
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SSL_CIPHER
    signature: SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - cipher
    argTypes:
    - SSL_SESSION*
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 874
    functionName: SSL_SESSION_set_cipher
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 879
    functionName: SSL_SESSION_get0_hostname
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_SESSION_get0_hostname(const SSL_SESSION *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:883,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - hostname
    argTypes:
    - SSL_SESSION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 891
    functionName: SSL_SESSION_set1_hostname
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strdup
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 896
    functionName: SSL_SESSION_has_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_has_ticket(const SSL_SESSION *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 901
    functionName: SSL_SESSION_get_ticket_lifetime_hint
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION
      *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - tick
    - len
    argTypes:
    - SSL_SESSION*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 909
    functionName: SSL_SESSION_get0_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned
      char **tick,\n                             size_t *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 914
    functionName: SSL_SESSION_get_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - max_early_data
    argTypes:
    - SSL_SESSION*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 921
    functionName: SSL_SESSION_set_max_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_set_max_early_data(SSL_SESSION *s, uint32_t max_early_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - alpn
    - len
    argTypes:
    - SSL_SESSION*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 929
    functionName: SSL_SESSION_get0_alpn_selected
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s,\n                                    const
      unsigned char **alpn,\n                                    size_t *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:934,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s
    - alpn
    - len
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 948
    functionName: SSL_SESSION_set1_alpn_selected
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: "int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s, const unsigned
      char *alpn,\n                                   size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 953
    functionName: SSL_SESSION_get0_peer
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *SSL_SESSION_get0_peer(SSL_SESSION *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:959,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - s
    - sid_ctx
    - sid_ctx_len
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 968
    functionName: SSL_SESSION_set1_id_context
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached:
    - SSLerr
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char
      *sid_ctx,\n                                unsigned int sid_ctx_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 978
    functionName: SSL_SESSION_is_resumable
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_is_resumable(const SSL_SESSION *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - SSL_CTX*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 988
    functionName: SSL_CTX_set_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long SSL_CTX_set_timeout(SSL_CTX *s, long t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 995
    functionName: SSL_CTX_get_timeout
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long SSL_CTX_get_timeout(const SSL_CTX *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - tls_session_secret_cb
    - arg
    argTypes:
    - SSL*
    - tls_session_secret_cb_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1006
    functionName: SSL_set_session_secret_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SSL_set_session_secret_cb(SSL *s,\n                              tls_session_secret_cb_fn
      tls_session_secret_cb,\n                              void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - cb
    - arg
    argTypes:
    - SSL*
    - tls_session_ticket_ext_cb_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1016
    functionName: SSL_set_session_ticket_ext_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn
      cb,\n                                  void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1021,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1024,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1026,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - s
    - ext_data
    - ext_len
    argTypes:
    - SSL*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1043
    functionName: SSL_set_session_ticket_ext
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - SSLerr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lh_SSL_SESSION_delete
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1058,1
    - Dst: SSL_SESSION_list_remove
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1059,1
    - Dst: TIMEOUT_PARAM*::ctx::remove_session_cb
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1062,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1063,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - SSL_SESSION*
    - TIMEOUT_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1051
    functionDepth: 4
    functionLinenumber: 1051
    functionLinenumberEnd: 1065
    functionName: timeout_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    - TIMEOUT_PARAM*::ctx::remove_session_cb
    - lh_SSL_SESSION_delete
    - SSL_SESSION_list_remove
    linkageType: ''
    returnType: void
    signature: void timeout_cb(SSL_SESSION *s, TIMEOUT_PARAM *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1079,1
    - Dst: lh_SSL_SESSION_get_down_load
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1080,1
    - Dst: lh_SSL_SESSION_set_down_load
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1081,1
    - Dst: lh_SSL_SESSION_doall_TIMEOUT_PARAM
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1082,1
    - Dst: lh_SSL_SESSION_set_down_load
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1083,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - SSL_CTX*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1085
    functionName: SSL_CTX_flush_sessions
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - lh_SSL_SESSION_set_down_load
    - lh_SSL_SESSION_get_down_load
    - lh_SSL_SESSION_doall_TIMEOUT_PARAM
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_flush_sessions(SSL_CTX *s, long t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1091,1
    - Dst: SSL_in_before
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1091,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1096
    functionName: ssl_clear_bad_session
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 3
    functionsReached:
    - SSL_CTX_remove_session
    - SSL_in_before
    - SSL_in_init
    linkageType: ''
    returnType: int
    signature: int ssl_clear_bad_session(SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1126
    functionName: SSL_SESSION_list_remove
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_list_remove
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1144
    functionName: SSL_SESSION_list_add
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached:
    - SSL_SESSION_list_remove
    linkageType: ''
    returnType: void
    signature: void SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1150
    functionName: SSL_CTX_sess_set_new_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx,\n                             int
      (*cb) (struct ssl_st *ssl, SSL_SESSION *sess))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1154
    functionName: (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (SSL *ssl, SSL_SESSION
      *sess)
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (SSL *ssl, SSL_SESSION
      *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1160
    functionName: SSL_CTX_sess_set_remove_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx,\n                                void
      (*cb) (SSL_CTX *ctx, SSL_SESSION *sess))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - sess
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1165
    functionName: "(*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (SSL_CTX *ctx,\n                                                  SSL_SESSION
      *sess)"
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (SSL_CTX *ctx,\n
      \                                                 SSL_SESSION *sess)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - "(*cb) (struct ssl_st *ssl,\n                                                 const
      unsigned char *data,\n                                                 int len,
      int *copy)"
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1173
    functionName: SSL_CTX_sess_set_get_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx,\n                             SSL_SESSION
      *(*cb) (struct ssl_st *ssl,\n                                                 const
      unsigned char *data,\n                                                 int len,
      int *copy))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssl
    - data
    - len
    - copy
    argTypes:
    - SSL*
    - unsigned char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1180
    functionName: "*(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (SSL *ssl,\n                                                       const
      unsigned char\n                                                       *data,
      int len,\n                                                       int *copy)"
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_SESSION
    signature: "SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (SSL *ssl,\n
      \                                                      const unsigned char\n
      \                                                      *data, int len,\n                                                       int
      *copy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1186
    functionName: SSL_CTX_set_info_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_info_callback(SSL_CTX *ctx,\n                               void
      (*cb) (const SSL *ssl, int type, int val))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - type
    - val
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1191
    functionName: "(*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int
      type,\n                                                 int val)"
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int
      type,\n                                                 int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1198
    functionName: SSL_CTX_set_client_cert_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx,\n                                int
      (*cb) (SSL *ssl, X509 **x509,\n                                           EVP_PKEY
      **pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - x509
    - pkey
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1203
    functionName: "(*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509,\n
      \                                                EVP_PKEY **pkey)"
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509,\n
      \                                                EVP_PKEY **pkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1208,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1209,1
    - Dst: ENGINE_get_ssl_client_cert_function
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1212,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1213,1
    - Dst: ENGINE_finish
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - e
    argTypes:
    - SSL_CTX*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1206
    functionDepth: 6
    functionLinenumber: 1206
    functionLinenumberEnd: 1220
    functionName: SSL_CTX_set_client_cert_engine
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached:
    - ENGINE_finish
    - ENGINE_get_ssl_client_cert_function
    - ENGINE_init
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1229
    functionName: SSL_CTX_set_cookie_generate_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx,\n                                    int
      (*cb) (SSL *ssl,\n                                               unsigned char
      *cookie,\n                                               unsigned int *cookie_len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1237
    functionName: SSL_CTX_set_cookie_verify_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx,\n                                  int
      (*cb) (SSL *ssl,\n                                             const unsigned
      char *cookie,\n                                             unsigned int cookie_len))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1241,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/ssl_sess.c:1247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ss
    - data
    - len
    argTypes:
    - SSL_SESSION*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1253
    functionName: SSL_SESSION_set1_ticket_appdata
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ss
    - data
    - len
    argTypes:
    - SSL_SESSION*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1260
    functionName: SSL_SESSION_get0_ticket_appdata
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t
      *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1269
    functionName: SSL_CTX_set_stateless_cookie_generate_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_stateless_cookie_generate_cb(\n    SSL_CTX *ctx,\n
      \   int (*cb) (SSL *ssl,\n               unsigned char *cookie,\n               size_t
      *cookie_len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1278
    functionName: SSL_CTX_set_stateless_cookie_verify_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SSL_CTX_set_stateless_cookie_verify_cb(\n    SSL_CTX *ctx,\n
      \   int (*cb) (SSL *ssl,\n               const unsigned char *cookie,\n               size_t
      cookie_len))"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:38,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:57,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:64,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:66,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:70,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:72,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:73,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:74,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:75,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:76,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:77,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:78,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:79,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:80,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:81,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:82,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:84,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:87,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:91,1
    - Dst: EVP_PKEY_CTX_hkdf_mode
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:92,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:94,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:95,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:96,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:97,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:99,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:103,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:106,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 10
    argNames:
    - s
    - md
    - secret
    - label
    - labellen
    - data
    - datalen
    - out
    - outlen
    - fatal
    argTypes:
    - SSL*
    - EVP_MD*
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 110
    functionName: tls13_hkdf_expand
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 1
    functionsReached:
    - WPACKET_init_static_len
    - EVP_PKEY_CTX_new_id
    - WPACKET_put_bytes_u16
    - EVP_PKEY_derive_init
    - WPACKET_start_sub_packet_u8
    - EVP_PKEY_CTX_free
    - SSLerr
    - WPACKET_finish
    - WPACKET_memcpy
    - SSLfatal
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_hkdf_mode
    - WPACKET_close
    - EVP_PKEY_derive
    - EVP_MD_size
    - WPACKET_get_total_written
    - WPACKET_sub_memcpy_u8
    - EVP_PKEY_CTX_add1_hkdf_info
    - WPACKET_cleanup
    linkageType: ''
    returnType: int
    signature: "int tls13_hkdf_expand(SSL *s, const EVP_MD *md, const unsigned char
      *secret,\n                             const unsigned char *label, size_t labellen,\n
      \                            const unsigned char *data, size_t datalen,\n                             unsigned
      char *out, size_t outlen, int fatal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - md
    - secret
    - key
    - keylen
    argTypes:
    - SSL*
    - EVP_MD*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: tls13_derive_key
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 1
    functionsReached:
    - tls13_hkdf_expand
    linkageType: ''
    returnType: int
    signature: "int tls13_derive_key(SSL *s, const EVP_MD *md, const unsigned char
      *secret,\n                     unsigned char *key, size_t keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - md
    - secret
    - iv
    - ivlen
    argTypes:
    - SSL*
    - EVP_MD*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: tls13_derive_iv
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 1
    functionsReached:
    - tls13_hkdf_expand
    linkageType: ''
    returnType: int
    signature: "int tls13_derive_iv(SSL *s, const EVP_MD *md, const unsigned char
      *secret,\n                    unsigned char *iv, size_t ivlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - md
    - secret
    - fin
    - finlen
    argTypes:
    - SSL*
    - EVP_MD*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: tls13_derive_finishedkey
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 0
    functionsReached:
    - tls13_hkdf_expand
    linkageType: ''
    returnType: int
    signature: "int tls13_derive_finishedkey(SSL *s, const EVP_MD *md,\n                             const
      unsigned char *secret,\n                             unsigned char *fin, size_t
      finlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:174,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:183,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:188,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:190,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:191,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:205,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:210,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:211,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:212,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:214,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:215,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:218,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:221,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:226,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:234,1
    - Dst: EVP_PKEY_CTX_hkdf_mode
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:235,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:237,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:238,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_salt
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:239,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:241,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:245,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:248,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:250,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 6
    argNames:
    - s
    - md
    - prevsecret
    - insecret
    - insecretlen
    - outsecret
    argTypes:
    - SSL*
    - EVP_MD*
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 252
    functionName: tls13_generate_secret
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - EVP_DigestFinal_ex
    - EVP_PKEY_CTX_set1_hkdf_salt
    - EVP_MD_CTX_new
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_set_hkdf_md
    - tls13_hkdf_expand
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_hkdf_mode
    - EVP_DigestInit_ex
    - EVP_PKEY_CTX_free
    - EVP_MD_CTX_free
    - EVP_PKEY_derive
    - EVP_MD_size
    - ossl_assert
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int tls13_generate_secret(SSL *s, const EVP_MD *md,\n                          const
      unsigned char *prevsecret,\n                          const unsigned char *insecret,\n
      \                         size_t insecretlen,\n                          unsigned
      char *outsecret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls13_generate_secret
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:263,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - insecret
    - insecretlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 6
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: tls13_generate_handshake_secret
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 2
    functionsReached:
    - tls13_generate_secret
    - ssl_handshake_md
    linkageType: ''
    returnType: int
    signature: "int tls13_generate_handshake_secret(SSL *s, const unsigned char *insecret,\n
      \                               size_t insecretlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:277,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:279,1
    - Dst: tls13_generate_secret
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - s
    - out
    - prev
    - prevlen
    - secret_size
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 6
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: tls13_generate_master_secret
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 1
    functionsReached:
    - EVP_MD_size
    - tls13_generate_secret
    - ssl_handshake_md
    linkageType: ''
    returnType: int
    signature: "int tls13_generate_master_secret(SSL *s, unsigned char *out,\n                                 unsigned
      char *prev, size_t prevlen,\n                                 size_t *secret_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:291,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:295,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:297,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:303,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:305,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:306,1
    - Dst: tls13_derive_finishedkey
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:311,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:311,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:316,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:318,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:323,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:324,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:325,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:326,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:333,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:334,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 4
    argNames:
    - s
    - str
    - slen
    - out
    argTypes:
    - SSL*
    - char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 288
    functionDepth: 6
    functionLinenumber: 288
    functionLinenumberEnd: 336
    functionName: tls13_final_finish_mac
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_MD_CTX_new
    - EVP_PKEY_free
    - SSL_IS_FIRST_HANDSHAKE
    - EVP_DigestSignInit
    - ssl_handshake_hash
    - ssl_handshake_md
    - tls13_derive_finishedkey
    - EVP_PKEY_new_raw_private_key
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_free
    - EVP_DigestSignFinal
    - OPENSSL_cleanse
    linkageType: ''
    returnType: size_t
    signature: "size_t tls13_final_finish_mac(SSL *s, const char *str, size_t slen,\n
      \                            unsigned char *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_get_evp
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:348,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 358
    functionName: tls13_setup_key_block
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl_cipher_get_evp
    linkageType: ''
    returnType: int
    signature: int tls13_setup_key_block(SSL *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:370,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:374,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:375,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:381,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:388,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:389,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:404,1
    - Dst: tls13_derive_key
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:408,1
    - Dst: tls13_derive_iv
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:409,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:414,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:415,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:416,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:418,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:419,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:426,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 11
    argNames:
    - s
    - sending
    - md
    - ciph
    - insecret
    - hash
    - label
    - labellen
    - secret
    - iv
    - ciph_ctx
    argTypes:
    - SSL*
    - int
    - EVP_MD*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned char*
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 360
    functionDepth: 6
    functionLinenumber: 360
    functionLinenumberEnd: 428
    functionName: derive_secret_key_and_iv
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_CIPHER_CTX_ctrl
    - tls13_hkdf_expand
    - tls13_derive_iv
    - EVP_CipherInit_ex
    - tls13_derive_key
    - EVP_CIPHER_key_length
    - EVP_CIPHER_mode
    - EVP_MD_size
    - ossl_assert
    - EVP_CIPHER_iv_length
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int derive_secret_key_and_iv(SSL *s, int sending, const EVP_MD *md,\n
      \                                   const EVP_CIPHER *ciph,\n                                    const
      unsigned char *insecret,\n                                    const unsigned
      char *hash,\n                                    const unsigned char *label,\n
      \                                   size_t labellen, unsigned char *secret,\n
      \                                   unsigned char *iv, EVP_CIPHER_CTX *ciph_ctx)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:468,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:470,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:472,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:480,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:484,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:486,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:488,1
    - Dst: RECORD_LAYER_reset_write_sequence
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:496,1
    - Dst: SSL_SESSION_get0_cipher
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:506,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:513,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:515,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:529,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:532,1
    - Dst: SSL_SESSION_get0_cipher
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:537,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:540,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:550,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:552,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:556,1
    - Dst: SSL_CIPHER_get_cipher_nid
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:556,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:557,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:558,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:559,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:560,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:561,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:563,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:567,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:569,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:575,1
    - Dst: ssl_log_secret
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:580,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:588,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:588,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:620,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:620,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:633,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:635,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:636,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:647,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:650,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:657,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:657,1
    - Dst: derive_secret_key_and_iv
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:667,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:675,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:677,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:677,1
    - Dst: ssl_log_secret
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:686,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:692,1
    - Dst: ssl_log_secret
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:694,1
    - Dst: tls13_derive_finishedkey
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:700,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:700,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:712,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 164
    argCount: 2
    argNames:
    - s
    - which
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 430
    functionDepth: 7
    functionLinenumber: 430
    functionLinenumberEnd: 714
    functionName: tls13_change_cipher_state
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - SSL_CIPHER_get_cipher_nid
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - RECORD_LAYER_reset_write_sequence
    - tls13_derive_finishedkey
    - ssl3_digest_cached_records
    - OPENSSL_cleanse
    - SSL_SESSION_get0_cipher
    - memcpy
    - EVP_get_cipherbynid
    - ssl_handshake_md
    - ssl_md
    - ossl_assert
    - SSLfatal
    - EVP_MD_CTX_new
    - EVP_CIPHER_CTX_reset
    - tls13_hkdf_expand
    - ssl_log_secret
    - EVP_CIPHER_CTX_new
    - derive_secret_key_and_iv
    - ssl_handshake_hash
    - EVP_MD_size
    - BIO_get_mem_data
    - EVP_DigestUpdate
    - RECORD_LAYER_reset_read_sequence
    linkageType: ''
    returnType: int
    signature: int tls13_change_cipher_state(SSL *s, int which)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:723,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:724,1
    - Dst: RECORD_LAYER_reset_write_sequence
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:739,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:743,1
    - Dst: derive_secret_key_and_iv
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:746,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:746,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:755,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - s
    - sending
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 716
    functionDepth: 7
    functionLinenumber: 716
    functionLinenumberEnd: 762
    functionName: tls13_update_key
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - derive_secret_key_and_iv
    - RECORD_LAYER_reset_read_sequence
    - ssl_handshake_md
    - RECORD_LAYER_reset_write_sequence
    - EVP_MD_size
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int tls13_update_key(SSL *s, int sending)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls1_alert_code
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 771
    functionName: tls13_alert_code
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 1
    functionsReached:
    - tls1_alert_code
    linkageType: ''
    returnType: int
    signature: int tls13_alert_code(int code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:785,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:786,1
    - Dst: ossl_statem_export_allowed
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:790,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:796,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:797,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:798,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:799,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:800,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:801,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:804,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:811,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 8
    argNames:
    - s
    - out
    - olen
    - label
    - llen
    - context
    - contextlen
    - use_context
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 773
    functionDepth: 5
    functionLinenumber: 773
    functionLinenumberEnd: 813
    functionName: tls13_export_keying_material
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - ossl_statem_export_allowed
    - tls13_hkdf_expand
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - ssl_handshake_md
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int tls13_export_keying_material(SSL *s, unsigned char *out, size_t
      olen,\n                                 const char *label, size_t llen,\n                                 const
      unsigned char *context,\n                                 size_t contextlen,
      int use_context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:828,1
    - Dst: ossl_statem_export_early_allowed
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:833,1
    - Dst: SSL_SESSION_get0_cipher
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:838,1
    - Dst: SSL_SESSION_get0_cipher
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:840,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:842,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:859,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:860,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:861,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:862,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:863,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:864,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:867,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/tls13_enc.c:874,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 7
    argNames:
    - s
    - out
    - olen
    - label
    - llen
    - context
    - contextlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 815
    functionDepth: 5
    functionLinenumber: 815
    functionLinenumberEnd: 876
    functionName: tls13_export_keying_material_early
    functionSourceFile: /src/openssl-1.1.1g/ssl/tls13_enc.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - SSL_SESSION_get0_cipher
    - tls13_hkdf_expand
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - ssl_md
    - ossl_statem_export_early_allowed
    linkageType: ''
    returnType: int
    signature: "int tls13_export_keying_material_early(SSL *s, unsigned char *out,
      size_t olen,\n                                       const char *label, size_t
      llen,\n                                       const unsigned char *context,\n
      \                                      size_t contextlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rl
    - ','
    - ra
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: RECORD_LAYER_set_read_ahead
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_set_read_ahead(rl, ra)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: RECORD_LAYER_get_read_ahead
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_read_ahead(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: RECORD_LAYER_get_packet
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_packet(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: RECORD_LAYER_get_packet_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_packet_length(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rl
    - ','
    - inc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: RECORD_LAYER_add_packet_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_add_packet_length(rl, inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: DTLS_RECORD_LAYER_get_w_epoch
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_RECORD_LAYER_get_w_epoch(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: DTLS_RECORD_LAYER_get_processed_rcds
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_RECORD_LAYER_get_processed_rcds(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: DTLS_RECORD_LAYER_get_unprocessed_rcds
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_RECORD_LAYER_get_unprocessed_rcds(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: RECORD_LAYER_get_rbuf
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_rbuf(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: RECORD_LAYER_get_wbuf
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_wbuf(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: RECORD_LAYER_get_rrec
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_rrec(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rl
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: RECORD_LAYER_set_packet
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_set_packet(rl, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: RECORD_LAYER_reset_packet_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_reset_packet_length(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: RECORD_LAYER_get_rstate
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_rstate(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rl
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: RECORD_LAYER_set_rstate
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_set_rstate(rl, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: RECORD_LAYER_get_read_sequence
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_read_sequence(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: RECORD_LAYER_get_write_sequence
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_write_sequence(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: RECORD_LAYER_get_numrpipes
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_numrpipes(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rl
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: RECORD_LAYER_set_numrpipes
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_set_numrpipes(rl, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: RECORD_LAYER_inc_empty_record_count
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_inc_empty_record_count(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: RECORD_LAYER_reset_empty_record_count
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_reset_empty_record_count(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: RECORD_LAYER_get_empty_record_count
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_get_empty_record_count(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: RECORD_LAYER_is_first_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_is_first_record(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: RECORD_LAYER_set_first_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_set_first_record(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: RECORD_LAYER_clear_first_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_LAYER_clear_first_record(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: DTLS_RECORD_LAYER_get_r_epoch
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTLS_RECORD_LAYER_get_r_epoch(rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: SSL3_BUFFER_get_buf
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_get_buf(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: SSL3_BUFFER_set_buf
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_set_buf(b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: SSL3_BUFFER_get_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_get_len(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: SSL3_BUFFER_set_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_set_len(b, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: SSL3_BUFFER_get_left
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_get_left(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: SSL3_BUFFER_set_left
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_set_left(b, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: SSL3_BUFFER_sub_left
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_sub_left(b, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: SSL3_BUFFER_get_offset
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_get_offset(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: SSL3_BUFFER_set_offset
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_set_offset(b, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: SSL3_BUFFER_add_offset
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_add_offset(b, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: SSL3_BUFFER_is_initialised
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_is_initialised(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: SSL3_BUFFER_set_default_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_BUFFER_set_default_len(b, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: SSL3_RECORD_get_type
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_get_type(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: SSL3_RECORD_set_type
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_set_type(r, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: SSL3_RECORD_set_rec_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_set_rec_version(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: SSL3_RECORD_get_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_get_length(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: SSL3_RECORD_set_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_set_length(r, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: SSL3_RECORD_add_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_add_length(r, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: SSL3_RECORD_sub_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_sub_length(r, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: SSL3_RECORD_get_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_get_data(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: SSL3_RECORD_set_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_set_data(r, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: SSL3_RECORD_get_input
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_get_input(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: SSL3_RECORD_set_input
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_set_input(r, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: SSL3_RECORD_reset_input
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_reset_input(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: SSL3_RECORD_get_seq_num
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_get_seq_num(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: SSL3_RECORD_get_off
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_get_off(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: SSL3_RECORD_set_off
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_set_off(r, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: SSL3_RECORD_add_off
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_add_off(r, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: SSL3_RECORD_get_epoch
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_get_epoch(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: SSL3_RECORD_is_sslv2_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_is_sslv2_record(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: SSL3_RECORD_is_read
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_is_read(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: SSL3_RECORD_set_read
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/record_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL3_RECORD_set_read(r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - b
    - d
    - n
    argTypes:
    - SSL3_BUFFER*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: SSL3_BUFFER_set_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SSL3_BUFFER_set_data(SSL3_BUFFER *b, const unsigned char *d, size_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - SSL3_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: SSL3_BUFFER_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL3_BUFFER_clear(SSL3_BUFFER *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - SSL3_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: SSL3_BUFFER_release
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SSL3_BUFFER_release(SSL3_BUFFER *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:43,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:45,1
    - Dst: ssl_allow_compression
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:58,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:63,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:69,1
    - Dst: RECORD_LAYER_set_packet
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 79
    functionName: ssl3_setup_read_buffer
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - RECORD_LAYER_get_rbuf
    - RECORD_LAYER_set_packet
    - ssl_allow_compression
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: int ssl3_setup_read_buffer(SSL *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:91,1
    - Dst: ssl_get_max_send_fragment
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:100,1
    - Dst: ssl_allow_compression
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:103,1
    - Dst: RECORD_LAYER_get_wbuf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:115,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:120,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:128,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - s
    - numwpipes
    - len
    argTypes:
    - SSL*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 139
    functionName: ssl3_setup_write_buffer
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - RECORD_LAYER_get_wbuf
    - OPENSSL_free
    - ssl_get_max_send_fragment
    - ssl_allow_compression
    - memset
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: int ssl3_setup_write_buffer(SSL *s, size_t numwpipes, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_setup_read_buffer
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:143,1
    - Dst: ssl3_setup_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: ssl3_setup_buffers
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c
    functionUses: 2
    functionsReached:
    - ssl3_setup_write_buffer
    - ssl3_setup_read_buffer
    linkageType: ''
    returnType: int
    signature: int ssl3_setup_buffers(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_wbuf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:161,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 169
    functionName: ssl3_release_write_buffer
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_get_wbuf
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int ssl3_release_write_buffer(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:175,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: ssl3_release_read_buffer
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - RECORD_LAYER_get_rbuf
    linkageType: ''
    returnType: int
    signature: int ssl3_release_read_buffer(SSL *s)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:40,1
    - Dst: RECORD_LAYER_get_write_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:48,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:52,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:62,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:67,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:74,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:76,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:87,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:88,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:100,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:102,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:111,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:129,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:134,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:150,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:151,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:158,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:159,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:160,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:161,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:162,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:164,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:165,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:174,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:176,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:178,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:180,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:186,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c:188,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 94
    argCount: 4
    argNames:
    - s
    - recs
    - n_recs
    - sending
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 196
    functionName: tls13_enc
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record_tls13.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - WPACKET_get_total_written
    - WPACKET_init_static_len
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_ctrl
    - ossl_assert
    - memmove
    - WPACKET_put_bytes_u16
    - WPACKET_cleanup
    - memcpy
    - RECORD_LAYER_get_write_sequence
    - EVP_CipherUpdate
    - WPACKET_put_bytes_u8
    - EVP_CIPHER_CTX_iv_length
    - WPACKET_finish
    - RECORD_LAYER_get_read_sequence
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: int tls13_enc(SSL *s, SSL3_RECORD *recs, size_t n_recs, int sending)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: n2l8
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:19,1
    - Dst: n2l8
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:20,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 36
    functionName: satsub64be
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c
    functionUses: 0
    functionsReached:
    - n2l8
    linkageType: ''
    returnType: int
    signature: int satsub64be(const unsigned char *v1, const unsigned char *v2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: satsub64be
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:44,1
    - Dst: SSL3_RECORD_set_seq_num
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:46,1
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:46,1
    - Dst: SSL3_RECORD_set_seq_num
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:55,1
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - bitmap
    argTypes:
    - SSL*
    - DTLS1_BITMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: dtls1_record_replay_check
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_get_rrec
    - satsub64be
    - SSL3_RECORD_set_seq_num
    linkageType: ''
    returnType: int
    signature: int dtls1_record_replay_check(SSL *s, DTLS1_BITMAP *bitmap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:63,1
    - Dst: satsub64be
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:65,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - bitmap
    argTypes:
    - SSL*
    - DTLS1_BITMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: dtls1_record_bitmap_update
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/dtls1_bitmap.c
    functionUses: 0
    functionsReached:
    - satsub64be
    - RECORD_LAYER_get_read_sequence
    - memcpy
    linkageType: ''
    returnType: void
    signature: void dtls1_record_bitmap_update(SSL *s, DTLS1_BITMAP *bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_set_first_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:32,1
    - Dst: SSL3_RECORD_clear
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - rl
    - s
    argTypes:
    - RECORD_LAYER*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: RECORD_LAYER_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 1
    functionsReached:
    - SSL3_RECORD_clear
    - RECORD_LAYER_set_first_record
    linkageType: ''
    returnType: void
    signature: void RECORD_LAYER_init(RECORD_LAYER *rl, SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:49,1
    - Dst: SSL3_BUFFER_clear
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:56,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:57,1
    - Dst: SSL3_RECORD_clear
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:59,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:61,1
    - Dst: RECORD_LAYER_reset_write_sequence
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:62,1
    - Dst: DTLS_RECORD_LAYER_clear
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: RECORD_LAYER_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 3
    functionsReached:
    - SSL3_BUFFER_clear
    - ssl3_release_write_buffer
    - RECORD_LAYER_reset_read_sequence
    - memset
    - SSL3_RECORD_clear
    - RECORD_LAYER_reset_write_sequence
    - DTLS_RECORD_LAYER_clear
    linkageType: ''
    returnType: void
    signature: void RECORD_LAYER_clear(RECORD_LAYER *rl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_is_initialised
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:70,1
    - Dst: ssl3_release_read_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:71,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:73,1
    - Dst: SSL3_RECORD_release
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: RECORD_LAYER_release
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 2
    functionsReached:
    - SSL3_RECORD_release
    - SSL3_BUFFER_is_initialised
    - ssl3_release_write_buffer
    - ssl3_release_read_buffer
    linkageType: ''
    returnType: void
    signature: void RECORD_LAYER_release(RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: RECORD_LAYER_read_pending
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 3
    functionsReached:
    - SSL3_BUFFER_get_left
    linkageType: ''
    returnType: int
    signature: int RECORD_LAYER_read_pending(const RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:86,1
    - Dst: SSL3_RECORD_is_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: RECORD_LAYER_processed_read_pending
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 1
    functionsReached:
    - RECORD_LAYER_get_numrpipes
    - SSL3_RECORD_is_read
    linkageType: ''
    returnType: int
    signature: int RECORD_LAYER_processed_read_pending(const RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: RECORD_LAYER_write_pending
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 3
    functionsReached:
    - SSL3_BUFFER_get_left
    linkageType: ''
    returnType: int
    signature: int RECORD_LAYER_write_pending(const RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: RECORD_LAYER_reset_read_sequence
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 5
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void RECORD_LAYER_reset_read_sequence(RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: RECORD_LAYER_reset_write_sequence
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 5
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void RECORD_LAYER_reset_write_sequence(RECORD_LAYER *rl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:118,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:119,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: ssl3_pending
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_get_numrpipes
    - SSL3_RECORD_get_type
    - SSL3_RECORD_get_length
    linkageType: ''
    returnType: size_t
    signature: size_t ssl3_pending(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - len
    argTypes:
    - SSL_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: SSL_CTX_set_default_read_buffer_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_set_default_len
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:135,1
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: SSL_set_default_read_buffer_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 1
    functionsReached:
    - SSL3_BUFFER_set_default_len
    - RECORD_LAYER_get_rbuf
    linkageType: ''
    returnType: void
    signature: void SSL_set_default_read_buffer_len(SSL *s, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: SSL_rstate_string_long
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_rstate_string_long(const SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: SSL_rstate_string
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_rstate_string(const SSL *s)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_setup_read_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:190,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:220,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:236,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:246,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:266,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:272,1
    - Dst: clear_sys_error
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:292,1
    - Dst: BIO_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:296,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:300,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:307,1
    - Dst: ssl3_release_read_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:309,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:318,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 85
    argCount: 6
    argNames:
    - s
    - n
    - max
    - extend
    - clearold
    - readbytes
    argTypes:
    - SSL*
    - size_t
    - size_t
    - int
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 331
    functionName: ssl3_read_n
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl3_setup_read_buffer
    - clear_sys_error
    - memmove
    - SSL_IS_DTLS
    - ssl3_release_read_buffer
    - BIO_read
    linkageType: ''
    returnType: int
    signature: "int ssl3_read_n(SSL *s, size_t n, size_t max, int extend, int clearold,\n
      \               size_t *readbytes)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:363,1
    - Dst: early_data_count_ok
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:369,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:381,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:388,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:388,1
    - Dst: SSL*::handshake_func
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:390,1
    - Dst: ssl3_write_pending
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:405,1
    - Dst: ssl_get_max_send_fragment
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:422,1
    - Dst: SSL_WRITE_ETM
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:424,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:424,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:425,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:425,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:437,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:439,1
    - Dst: ssl3_setup_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:448,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:454,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:463,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:468,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:481,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:491,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:497,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:505,1
    - Dst: ssl3_write_pending
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:524,1
    - Dst: BIO_should_retry
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:527,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:529,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:536,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:546,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:547,1
    - Dst: ssl_get_max_send_fragment
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:555,1
    - Dst: ssl_get_split_send_fragment
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:556,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:569,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:575,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:575,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:577,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:585,1
    - Dst: do_ssl3_write
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:620,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:640,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:641,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 165
    argCount: 5
    argNames:
    - s
    - type
    - buf_
    - len
    - written
    argTypes:
    - SSL*
    - int
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 650
    functionName: ssl3_write_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - ssl3_release_write_buffer
    - EVP_CIPHER_CTX_ctrl
    - ssl3_setup_write_buffer
    - ossl_statem_get_in_handshake
    - ssl_get_max_send_fragment
    - SSL_IS_DTLS
    - ssl_get_split_send_fragment
    - BIO_should_retry
    - ssl3_write_pending
    - memcpy
    - SSL*::handshake_func
    - SSLfatal
    - ossl_statem_set_in_init
    - early_data_count_ok
    - SSL_USE_EXPLICIT_IV
    - EVP_CIPHER_CTX_cipher
    - SSL_in_init
    - SSL*::method::ssl_dispatch_alert
    - EVP_CIPHER_flags
    - do_ssl3_write
    - SSL_WRITE_ETM
    linkageType: ''
    returnType: int
    signature: "int ssl3_write_bytes(SSL *s, int type, const void *buf_, size_t len,\n
      \                    size_t *written)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_write_pending
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:676,1
    - Dst: ssl3_write_pending
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:678,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:683,1
    - Dst: ssl3_setup_write_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:692,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:704,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:709,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:711,1
    - Dst: do_ssl3_write
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:736,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:745,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:762,1
    - Dst: SSL3_BUFFER_set_offset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:765,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:766,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:766,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:767,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:768,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:769,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:776,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:777,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:778,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:779,1
    - Dst: SSL3_BUFFER_get_offset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:779,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:781,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:792,1
    - Dst: SSL3_BUFFER_set_offset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:795,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:796,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:796,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:797,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:798,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:799,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:808,1
    - Dst: SSL_TREAT_AS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:808,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:809,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:812,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:825,1
    - Dst: SSL_TREAT_AS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:840,1
    - Dst: SSL3_RECORD_set_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:847,1
    - Dst: SSL_get_state
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:853,1
    - Dst: TLS1_get_version
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:855,1
    - Dst: SSL3_RECORD_set_rec_version
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:858,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:865,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:866,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:867,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:869,1
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:871,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:873,1
    - Dst: SSL3_RECORD_set_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:879,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:880,1
    - Dst: SSL3_RECORD_set_input
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:881,1
    - Dst: ssl3_do_compress
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:891,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:892,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:893,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:898,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:899,1
    - Dst: SSL3_RECORD_reset_input
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:903,1
    - Dst: SSL_TREAT_AS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:906,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:912,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:913,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:917,1
    - Dst: ssl_get_max_send_fragment
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:920,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:921,1
    - Dst: SSL*::record_padding_cb
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:926,1
    - Dst: WPACKET_memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:946,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:947,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:951,1
    - Dst: SSL_WRITE_ETM
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:962,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:965,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:966,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:967,1
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:978,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:984,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:985,1
    - Dst: WPACKET_get_curr
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:991,1
    - Dst: SSL3_RECORD_set_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:993,1
    - Dst: SSL3_RECORD_reset_input
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:994,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:995,1
    - Dst: tls13_enc
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1003,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1004,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1005,1
    - Dst: SSL*::method::ssl3_enc::enc
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1011,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1012,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1013,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1027,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1031,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1033,1
    - Dst: SSL_WRITE_ETM
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1037,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1040,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1041,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1042,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1046,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1049,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1050,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1051,1
    - Dst: WPACKET_get_curr
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1057,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1059,1
    - Dst: SSL_TREAT_AS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1063,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1066,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1071,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1072,1
    - Dst: SSL3_RECORD_set_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1081,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1083,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1092,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1096,1
    - Dst: SSL3_BUFFER_set_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1101,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1102,1
    - Dst: ssl3_write_pending
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1115,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1118,1
    CyclomaticComplexity: 120
    EdgeCount: 120
    ICount: 255
    argCount: 7
    argNames:
    - s
    - type
    - buf
    - pipelens
    - numpipes
    - create_empty_fragment
    - written
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - size_t*
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 652
    functionDepth: 5
    functionLinenumber: 652
    functionLinenumberEnd: 1120
    functionName: do_ssl3_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 3
    functionsReached:
    - WPACKET_init_static_len
    - EVP_MD_CTX_md
    - TLS1_get_version
    - WPACKET_get_length
    - SSL*::method::ssl3_enc::enc
    - ssl3_setup_write_buffer
    - SSL3_RECORD_set_input
    - ssl_get_max_send_fragment
    - SSL3_RECORD_add_length
    - SSL3_BUFFER_get_len
    - SSL3_RECORD_set_length
    - ssl3_write_pending
    - EVP_CIPHER_CTX_mode
    - WPACKET_reserve_bytes
    - SSL*::record_padding_cb
    - SSL3_BUFFER_get_offset
    - WPACKET_memset
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_finish
    - WPACKET_memcpy
    - SSLfatal
    - SSL3_RECORD_set_type
    - SSL3_RECORD_get_length
    - ossl_statem_in_error
    - SSL*::msg_callback
    - SSL3_BUFFER_set_left
    - WPACKET_cleanup
    - SSL3_BUFFER_get_buf
    - SSL_USE_EXPLICIT_IV
    - SSL_TREAT_AS_TLS13
    - SSL3_RECORD_set_rec_version
    - WPACKET_close
    - ssl3_do_compress
    - EVP_CIPHER_CTX_iv_length
    - SSL3_BUFFER_set_offset
    - SSL*::method::ssl_dispatch_alert
    - SSL*::method::ssl3_enc::mac
    - WPACKET_allocate_bytes
    - do_ssl3_write
    - tls13_enc
    - RECORD_LAYER_write_pending
    - WPACKET_get_curr
    - SSL3_RECORD_reset_input
    - EVP_MD_CTX_size
    - SSL_WRITE_ETM
    - memset
    - WPACKET_put_bytes_u8
    - SSL3_RECORD_set_data
    - SSL_get_state
    linkageType: ''
    returnType: int
    signature: "int do_ssl3_write(SSL *s, int type, const unsigned char *buf,\n                  size_t
      *pipelens, size_t numpipes,\n                  int create_empty_fragment, size_t
      *written)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1138,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1145,1
    - Dst: clear_sys_error
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1150,1
    - Dst: BIO_write
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1154,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1155,1
    - Dst: SSL3_BUFFER_get_offset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1156,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1157,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1161,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1165,1
    - Dst: SSL3_BUFFER_set_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1166,1
    - Dst: SSL3_BUFFER_add_offset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1167,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1174,1
    - Dst: SSL3_BUFFER_set_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1179,1
    - Dst: SSL3_BUFFER_add_offset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1183,1
    - Dst: SSL3_BUFFER_sub_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1184,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 5
    argNames:
    - s
    - type
    - buf
    - len
    - written
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1126
    functionDepth: 4
    functionLinenumber: 1126
    functionLinenumberEnd: 1186
    functionName: ssl3_write_pending
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - BIO_write
    - clear_sys_error
    - SSL3_BUFFER_get_offset
    - SSL3_BUFFER_set_left
    - SSL3_BUFFER_get_buf
    - SSL3_BUFFER_add_offset
    - SSL_IS_DTLS
    - SSL3_BUFFER_get_left
    - SSL3_BUFFER_sub_left
    linkageType: ''
    returnType: int
    signature: "int ssl3_write_pending(SSL *s, int type, const unsigned char *buf,
      size_t len,\n                       size_t *written)"
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1225,1
    - Dst: SSL3_BUFFER_is_initialised
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1229,1
    - Dst: ssl3_setup_read_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1231,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1241,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1276,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1276,1
    - Dst: SSL*::handshake_func
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1278,1
    - Dst: RECORD_LAYER_get_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1296,1
    - Dst: ssl3_get_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1301,1
    - Dst: RECORD_LAYER_get_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1306,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1309,1
    - Dst: SSL3_RECORD_is_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1316,1
    - Dst: RECORD_LAYER_set_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1319,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1327,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1328,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1329,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1338,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1339,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1346,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1347,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1357,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1362,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1363,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1375,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1377,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1383,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1385,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1391,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1399,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1400,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1406,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1407,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1411,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1415,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1416,1
    - Dst: SSL3_RECORD_sub_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1418,1
    - Dst: SSL3_RECORD_add_off
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1419,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1420,1
    - Dst: SSL3_RECORD_set_off
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1422,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1423,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1426,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1427,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1440,1
    - Dst: ssl3_release_read_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1441,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1462,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1476,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1486,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1488,1
    - Dst: SSL3_RECORD_get_off
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1489,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1492,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1492,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1493,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1494,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1495,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1496,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1502,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1512,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1518,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1522,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1543,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1545,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1546,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1548,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1549,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1560,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1568,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1574,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1584,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1585,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1586,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1592,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1593,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1594,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1605,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1606,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1607,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1619,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1625,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1626,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1629,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1630,1
    - Dst: SSL3_RECORD_get_off
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1630,1
    - Dst: SSL3_RECORD_add_off
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1631,1
    - Dst: SSL3_RECORD_sub_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1632,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1634,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1635,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1641,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1642,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1652,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1656,1
    - Dst: SSL*::handshake_func
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1658,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1675,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1685,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1686,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1687,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1694,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1703,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1714,1
    - Dst: ossl_statem_app_data_allowed
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1725,1
    - Dst: ossl_statem_skip_early_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1728,1
    - Dst: early_data_count_ok
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1738,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1743,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1746,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 274
    argCount: 7
    argNames:
    - s
    - type
    - recvd_type
    - buf
    - len
    - peek
    - readbytes
    argTypes:
    - SSL*
    - int
    - int*
    - unsigned char*
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1217
    functionDepth: 3
    functionLinenumber: 1217
    functionLinenumberEnd: 1751
    functionName: ssl3_read_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_get_numrpipes
    - BIO_snprintf
    - PACKET_get_1
    - PACKET_remaining
    - ossl_statem_get_in_handshake
    - ERR_add_error_data
    - SSL3_RECORD_get_type
    - SSL3_RECORD_get_off
    - SSL3_RECORD_set_length
    - SSL3_RECORD_sub_length
    - PACKET_buf_init
    - cb
    - memcpy
    - SSL3_RECORD_get_data
    - SSL*::handshake_func
    - ssl3_get_record
    - SSL_CTX_remove_session
    - SSLfatal
    - ossl_statem_set_in_init
    - SSL3_RECORD_set_read
    - SSL3_RECORD_get_length
    - ossl_statem_skip_early_data
    - SSL*::msg_callback
    - early_data_count_ok
    - SSL3_RECORD_is_read
    - SSL3_RECORD_add_off
    - ossl_statem_app_data_allowed
    - SSL_IS_TLS13
    - SSL3_BUFFER_get_left
    - SSL_in_init
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - ssl3_setup_read_buffer
    - SSL3_BUFFER_is_initialised
    - RECORD_LAYER_set_numrpipes
    - SSL_get_rbio
    - SSL3_RECORD_set_off
    - ssl3_release_read_buffer
    linkageType: ''
    returnType: int
    signature: "int ssl3_read_bytes(SSL *s, int type, int *recvd_type, unsigned char
      *buf,\n                    size_t len, int peek, size_t *readbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - seq
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1753
    functionDepth: 0
    functionLinenumber: 1753
    functionLinenumberEnd: 1762
    functionName: ssl3_record_sequence_update
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl3_record_sequence_update(unsigned char *seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_RECORD_is_sslv2_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1771
    functionName: RECORD_LAYER_is_sslv2_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - SSL3_RECORD_is_sslv2_record
    linkageType: ''
    returnType: int
    signature: int RECORD_LAYER_is_sslv2_record(RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1776
    functionDepth: 1
    functionLinenumber: 1776
    functionLinenumberEnd: 1779
    functionName: RECORD_LAYER_get_rrec_length
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - SSL3_RECORD_get_length
    linkageType: ''
    returnType: size_t
    signature: size_t RECORD_LAYER_get_rrec_length(RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - num_recs
    argTypes:
    - SSL3_RECORD*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: SSL3_RECORD_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void SSL3_RECORD_clear(SSL3_RECORD *r, size_t num_recs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - num_recs
    argTypes:
    - SSL3_RECORD*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: SSL3_RECORD_release
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SSL3_RECORD_release(SSL3_RECORD *r, size_t num_recs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - seq_num
    argTypes:
    - SSL3_RECORD*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: SSL3_RECORD_set_seq_num
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SSL3_RECORD_set_seq_num(SSL3_RECORD *r, const unsigned char *seq_num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:75,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:77,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:81,1
    - Dst: SSL3_BUFFER_get_offset
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:86,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 102
    functionName: ssl3_record_app_data_waiting
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - SSL3_BUFFER_get_offset
    - n2s
    - RECORD_LAYER_get_rbuf
    - SSL3_BUFFER_get_buf
    - SSL3_BUFFER_get_left
    linkageType: ''
    returnType: int
    signature: int ssl3_record_app_data_waiting(SSL *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:115,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:117,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:133,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - s
    - length
    - overhead
    - send
    argTypes:
    - SSL*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 149
    functionName: early_data_count_ok
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int early_data_count_ok(SSL *s, size_t length, size_t overhead, int
      send)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:190,1
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:191,1
    - Dst: RECORD_LAYER_get_rstate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:201,1
    - Dst: RECORD_LAYER_get_packet_length
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:202,1
    - Dst: ssl3_read_n
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:207,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:208,1
    - Dst: RECORD_LAYER_set_rstate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:212,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:214,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:215,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:215,1
    - Dst: RECORD_LAYER_get_packet_length
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:216,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:217,1
    - Dst: PACKET_get_net_2_len
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:222,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:223,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:224,1
    - Dst: RECORD_LAYER_is_first_record
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:231,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:248,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:250,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:256,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:263,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:267,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:268,1
    - Dst: PACKET_get_net_2_len
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:269,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:270,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:284,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:298,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:307,1
    - Dst: RECORD_LAYER_is_first_record
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:313,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:316,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:317,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:318,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:319,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:320,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:321,1
    - Dst: strncmp
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:324,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:325,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:331,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:335,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:342,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:345,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:349,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:354,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:361,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:362,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:371,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:373,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:390,1
    - Dst: ssl3_read_n
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:410,1
    - Dst: RECORD_LAYER_set_rstate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:416,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:425,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:428,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:454,1
    - Dst: RECORD_LAYER_clear_first_record
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:455,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:458,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:460,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:460,1
    - Dst: ssl3_record_app_data_waiting
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:462,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:466,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:467,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:472,1
    - Dst: RECORD_LAYER_inc_empty_record_count
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:481,1
    - Dst: RECORD_LAYER_get_empty_record_count
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:482,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:484,1
    - Dst: RECORD_LAYER_set_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:489,1
    - Dst: SSL_READ_ETM
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:498,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:501,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:502,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:503,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:512,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:518,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:519,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:520,1
    - Dst: SSL*::method::ssl3_enc::enc
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:529,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:538,1
    - Dst: ossl_statem_skip_early_data
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:542,1
    - Dst: early_data_count_ok
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:550,1
    - Dst: RECORD_LAYER_set_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:558,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:559,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:562,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:567,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:571,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:573,1
    - Dst: SSL_READ_ETM
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:579,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:579,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:584,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:585,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:586,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:601,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:603,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:608,1
    - Dst: ssl3_cbc_copy_mac
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:616,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:617,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:632,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:634,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:642,1
    - Dst: ossl_statem_skip_early_data
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:646,1
    - Dst: early_data_count_ok
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:656,1
    - Dst: RECORD_LAYER_set_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:665,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:666,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:676,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:687,1
    - Dst: ssl3_do_uncompress
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:691,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:692,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:698,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:705,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:720,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:725,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:733,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:737,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:743,1
    - Dst: USE_MAX_FRAGMENT_LENGTH_EXT
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:749,1
    - Dst: GET_MAX_FRAGMENT_LENGTH
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:750,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:751,1
    - Dst: RECORD_LAYER_inc_empty_record_count
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:767,1
    - Dst: RECORD_LAYER_get_empty_record_count
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:768,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:770,1
    - Dst: RECORD_LAYER_reset_empty_record_count
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:775,1
    - Dst: early_data_count_ok
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:782,1
    - Dst: RECORD_LAYER_set_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:788,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 295
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 790
    functionName: ssl3_get_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_md
    - SSL_READ_ETM
    - PACKET_get_1
    - SSL*::method::ssl3_enc::enc
    - GET_MAX_FRAGMENT_LENGTH
    - RECORD_LAYER_get_empty_record_count
    - SSL3_BUFFER_get_len
    - printf
    - PACKET_get_net_2
    - EVP_CIPHER_CTX_mode
    - PACKET_buf_init
    - RECORD_LAYER_get_rbuf
    - RECORD_LAYER_get_packet_length
    - USE_MAX_FRAGMENT_LENGTH_EXT
    - CRYPTO_memcmp
    - RECORD_LAYER_reset_packet_length
    - RECORD_LAYER_inc_empty_record_count
    - ossl_assert
    - SSLfatal
    - RECORD_LAYER_get_rrec
    - RECORD_LAYER_set_rstate
    - ssl3_cbc_copy_mac
    - ossl_statem_in_error
    - ossl_statem_skip_early_data
    - SSL*::msg_callback
    - PACKET_get_net_2_len
    - ssl3_read_n
    - SSL_IS_FIRST_HANDSHAKE
    - early_data_count_ok
    - SSL_USE_EXPLICIT_IV
    - EVP_CIPHER_CTX_cipher
    - SSL_IS_TLS13
    - ssl3_do_uncompress
    - SSL*::method::ssl3_enc::mac
    - RECORD_LAYER_reset_empty_record_count
    - EVP_CIPHER_flags
    - RECORD_LAYER_is_first_record
    - RECORD_LAYER_set_numrpipes
    - EVP_MD_CTX_size
    - RECORD_LAYER_get_rstate
    - RECORD_LAYER_get_packet
    - RECORD_LAYER_clear_first_record
    - RECORD_LAYER_reset_read_sequence
    - ssl3_record_app_data_waiting
    - strncmp
    linkageType: ''
    returnType: int
    signature: int ssl3_get_record(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:799,1
    - Dst: COMP_expand_block
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ssl
    - rr
    argTypes:
    - SSL*
    - SSL3_RECORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 814
    functionName: ssl3_do_uncompress
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - COMP_expand_block
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: int ssl3_do_uncompress(SSL *ssl, SSL3_RECORD *rr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMP_compress_block
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ssl
    - wr
    argTypes:
    - SSL*
    - SSL3_RECORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 833
    functionName: ssl3_do_compress
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - COMP_compress_block
    linkageType: ''
    returnType: int
    signature: int ssl3_do_compress(SSL *ssl, SSL3_RECORD *wr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:866,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:872,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:876,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:881,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:894,1
    - Dst: EVP_Cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:906,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:909,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:911,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:913,1
    - Dst: ssl3_cbc_remove_padding
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:920,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - s
    - inrecs
    - n_recs
    - sending
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 923
    functionName: ssl3_enc
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - EVP_Cipher
    - SSLfatal
    - EVP_MD_CTX_md
    - EVP_CIPHER_CTX_block_size
    - memmove
    - ssl3_cbc_remove_padding
    - EVP_CIPHER_CTX_cipher
    - EVP_MD_CTX_size
    - memset
    linkageType: ''
    returnType: int
    signature: int ssl3_enc(SSL *s, SSL3_RECORD *inrecs, size_t n_recs, int sending)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:949,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:955,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:956,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:957,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:958,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:968,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:970,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:971,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:972,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:982,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:985,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:986,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:994,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:995,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:996,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:997,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1006,1
    - Dst: memmove
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1011,1
    - Dst: EVP_CIPHER_block_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1016,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1016,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1019,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1019,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1025,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1033,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1033,1
    - Dst: RECORD_LAYER_get_write_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1037,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1038,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1040,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1044,1
    - Dst: DTLS_RECORD_LAYER_get_w_epoch
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1044,1
    - Dst: DTLS_RECORD_LAYER_get_r_epoch
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1045,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1046,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1047,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1049,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1062,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1065,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1081,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1105,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1107,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1115,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1117,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1119,1
    - Dst: EVP_Cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1126,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1128,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1128,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1135,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1141,1
    - Dst: SSL_READ_ETM
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1151,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1151,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1152,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1154,1
    - Dst: tls1_cbc_remove_padding
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1163,1
    - Dst: constant_time_select_int
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1171,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1171,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 165
    argCount: 4
    argNames:
    - s
    - recs
    - n_recs
    - sending
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 937
    functionDepth: 4
    functionLinenumber: 937
    functionLinenumberEnd: 1182
    functionName: tls1_enc
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md
    - SSL_READ_ETM
    - EVP_CIPHER_CTX_ctrl
    - tls1_cbc_remove_padding
    - SSL_IS_DTLS
    - constant_time_eq_int
    - RECORD_LAYER_get_read_sequence
    - RAND_bytes
    - memcpy
    - RECORD_LAYER_get_write_sequence
    - DTLS_RECORD_LAYER_get_w_epoch
    - ossl_assert
    - SSLfatal
    - EVP_Cipher
    - memmove
    - DTLS_RECORD_LAYER_get_r_epoch
    - SSL_USE_EXPLICIT_IV
    - EVP_CIPHER_CTX_cipher
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_block_size
    - EVP_CIPHER_flags
    - s2n
    - EVP_MD_CTX_size
    - EVP_CIPHER_mode
    - constant_time_select_int
    linkageType: ''
    returnType: int
    signature: int tls1_enc(SSL *s, SSL3_RECORD *recs, size_t n_recs, int sending)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_write_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1195,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1199,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1203,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1210,1
    - Dst: ssl3_cbc_record_digest_supported
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1211,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1228,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1230,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1232,1
    - Dst: ssl3_cbc_digest_record
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1239,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1248,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1255,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1256,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1257,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1258,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1259,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1260,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1261,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1262,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1263,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1264,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1265,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1266,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1267,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1268,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1269,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1273,1
    - Dst: ssl3_record_sequence_update
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1276,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 4
    argNames:
    - ssl
    - rec
    - md
    - sending
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1184
    functionDepth: 5
    functionLinenumber: 1184
    functionLinenumberEnd: 1278
    functionName: n_ssl3_mac
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - ssl3_cbc_record_digest_supported
    - EVP_MD_CTX_copy_ex
    - s2n
    - ssl3_record_sequence_update
    - memcpy
    - EVP_MD_CTX_size
    - EVP_DigestUpdate
    - RECORD_LAYER_get_write_sequence
    - EVP_MD_CTX_free
    - ssl3_cbc_digest_record
    - RECORD_LAYER_get_read_sequence
    linkageType: ''
    returnType: int
    signature: int n_ssl3_mac(SSL *ssl, SSL3_RECORD *rec, unsigned char *md, int sending)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_write_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1293,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1296,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1300,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1301,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1309,1
    - Dst: EVP_MD_CTX_copy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1310,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1311,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1317,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1320,1
    - Dst: DTLS_RECORD_LAYER_get_w_epoch
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1320,1
    - Dst: DTLS_RECORD_LAYER_get_r_epoch
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1321,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1322,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1324,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1326,1
    - Dst: SSL_READ_ETM
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1334,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1335,1
    - Dst: ssl3_cbc_record_digest_supported
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1336,1
    - Dst: ssl3_cbc_digest_record
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1343,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1349,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1354,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1355,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1356,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1357,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1362,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1365,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1369,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1370,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1372,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1376,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1377,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1381,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1392,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1393,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 4
    argNames:
    - ssl
    - rec
    - md
    - sending
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1280
    functionDepth: 5
    functionLinenumber: 1280
    functionLinenumberEnd: 1397
    functionName: tls1_mac
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy
    - SSL_READ_ETM
    - SSL_IS_DTLS
    - EVP_MD_CTX_free
    - EVP_DigestSignUpdate
    - RECORD_LAYER_get_read_sequence
    - fprintf
    - EVP_CIPHER_CTX_mode
    - memcpy
    - RECORD_LAYER_get_write_sequence
    - DTLS_RECORD_LAYER_get_w_epoch
    - ossl_assert
    - EVP_DigestSignFinal
    - EVP_MD_CTX_new
    - DTLS_RECORD_LAYER_get_r_epoch
    - ssl3_cbc_digest_record
    - s2n
    - EVP_MD_CTX_size
    - ssl3_cbc_record_digest_supported
    linkageType: ''
    returnType: int
    signature: int tls1_mac(SSL *ssl, SSL3_RECORD *rec, unsigned char *md, int sending)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_ge_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1423,1
    - Dst: constant_time_ge_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1425,1
    - Dst: constant_time_select_int_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - rec
    - block_size
    - mac_size
    argTypes:
    - SSL3_RECORD*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1409
    functionDepth: 3
    functionLinenumber: 1409
    functionLinenumberEnd: 1428
    functionName: ssl3_cbc_remove_padding
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - constant_time_select_int_s
    - constant_time_ge_s
    linkageType: ''
    returnType: int
    signature: "int ssl3_cbc_remove_padding(SSL3_RECORD *rec,\n                            size_t
      block_size, size_t mac_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1451,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1468,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1468,1
    - Dst: constant_time_ge_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1475,1
    - Dst: constant_time_ge_8_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1490,1
    - Dst: constant_time_eq_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1503,1
    - Dst: constant_time_select_int_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1506,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - s
    - rec
    - block_size
    - mac_size
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1443
    functionDepth: 4
    functionLinenumber: 1443
    functionLinenumberEnd: 1507
    functionName: tls1_cbc_remove_padding
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_flags
    - constant_time_eq_s
    - constant_time_ge_8_s
    - EVP_CIPHER_CTX_cipher
    - constant_time_ge_s
    - SSL_USE_EXPLICIT_IV
    - constant_time_select_int_s
    linkageType: ''
    returnType: int
    signature: "int tls1_cbc_remove_padding(const SSL *s,\n                            SSL3_RECORD
      *rec,\n                            size_t block_size, size_t mac_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1553,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1567,1
    - Dst: constant_time_eq_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1569,1
    - Dst: constant_time_lt_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1570,1
    - Dst: constant_time_lt_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1577,1
    - Dst: constant_time_lt_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1587,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1590,1
    - Dst: constant_time_lt_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1592,1
    - Dst: constant_time_eq_8_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1595,1
    - Dst: constant_time_lt_s
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1597,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - out
    - rec
    - md_size
    argTypes:
    - unsigned char*
    - SSL3_RECORD*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1529
    functionDepth: 4
    functionLinenumber: 1529
    functionLinenumberEnd: 1602
    functionName: ssl3_cbc_copy_mac
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - constant_time_eq_8_s
    - constant_time_lt_s
    - constant_time_eq_s
    - memset
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ssl3_cbc_copy_mac(unsigned char *out,\n                       const
      SSL3_RECORD *rec, size_t md_size)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1615,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1622,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1638,1
    - Dst: SSL_READ_ETM
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1647,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1649,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1650,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1651,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1656,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1662,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1663,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1664,1
    - Dst: SSL*::method::ssl3_enc::enc
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1670,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1678,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1684,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1688,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1692,1
    - Dst: printf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1694,1
    - Dst: SSL_READ_ETM
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1698,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1699,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1705,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1707,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1712,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1713,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1726,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1728,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1733,1
    - Dst: ssl3_cbc_copy_mac
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1741,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1742,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1757,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1759,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1768,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1775,1
    - Dst: ssl3_do_uncompress
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1779,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1780,1
    - Dst: USE_MAX_FRAGMENT_LENGTH_EXT
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1787,1
    - Dst: GET_MAX_FRAGMENT_LENGTH
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1788,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1792,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1808,1
    - Dst: dtls1_record_bitmap_update
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:1811,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 99
    argCount: 2
    argNames:
    - s
    - bitmap
    argTypes:
    - SSL*
    - DTLS1_BITMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1604
    functionDepth: 5
    functionLinenumber: 1604
    functionLinenumberEnd: 1814
    functionName: dtls1_process_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md
    - SSL_READ_ETM
    - SSL*::method::ssl3_enc::enc
    - GET_MAX_FRAGMENT_LENGTH
    - printf
    - EVP_CIPHER_CTX_mode
    - dtls1_record_bitmap_update
    - USE_MAX_FRAGMENT_LENGTH_EXT
    - CRYPTO_memcmp
    - RECORD_LAYER_reset_packet_length
    - ossl_assert
    - SSLfatal
    - RECORD_LAYER_get_rrec
    - ssl3_cbc_copy_mac
    - ossl_statem_in_error
    - ssl3_do_uncompress
    - SSL*::method::ssl3_enc::mac
    - EVP_MD_CTX_size
    - RECORD_LAYER_get_packet
    linkageType: ''
    returnType: int
    signature: int dtls1_process_record(SSL *s, DTLS1_BITMAP *bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1822
    functionName: dtls1_get_processed_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dtls1_get_processed_record(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:2044,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:2045,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:2049,1
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:2052,1
    - Dst: dtls1_buffer_record
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:2056,1
    - Dst: SSL3_RECORD_get_seq_num
      Src: /src/openssl-1.1.1g/ssl/record/ssl3_record.c:2057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - s
    - len
    - seq
    - 'off'
    argTypes:
    - SSL*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2063
    functionName: dtls_buffer_listen_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - RECORD_LAYER_get_rrec
    - RECORD_LAYER_get_rbuf
    - dtls1_buffer_record
    - memcpy
    - memset
    - SSL3_RECORD_get_seq_num
    linkageType: ''
    returnType: int
    signature: int dtls_buffer_listen_record(SSL *s, size_t len, unsigned char *seq,
      size_t off)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:23,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:24,1
    - Dst: pqueue_new
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:30,1
    - Dst: pqueue_new
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:31,1
    - Dst: pqueue_new
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:32,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:36,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:37,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:38,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 45
    functionName: DTLS_RECORD_LAYER_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - pqueue_free
    - OPENSSL_free
    - pqueue_new
    - SSLerr
    linkageType: ''
    returnType: int
    signature: int DTLS_RECORD_LAYER_new(RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_RECORD_LAYER_clear
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:49,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:50,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:51,1
    - Dst: pqueue_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: DTLS_RECORD_LAYER_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - pqueue_free
    - OPENSSL_free
    - DTLS_RECORD_LAYER_clear
    linkageType: ''
    returnType: void
    signature: void DTLS_RECORD_LAYER_free(RECORD_LAYER *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_pop
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:68,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:70,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:71,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:72,1
    - Dst: pqueue_pop
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:75,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:77,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:78,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:79,1
    - Dst: pqueue_pop
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:84,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:85,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:86,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 96
    functionName: DTLS_RECORD_LAYER_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 3
    functionsReached:
    - pitem_free
    - OPENSSL_free
    - memset
    - pqueue_pop
    linkageType: ''
    returnType: void
    signature: void DTLS_RECORD_LAYER_clear(RECORD_LAYER *rl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:101,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:103,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:106,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - rl
    - e
    argTypes:
    - RECORD_LAYER*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: DTLS_RECORD_LAYER_set_saved_w_epoch
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void DTLS_RECORD_LAYER_set_saved_w_epoch(RECORD_LAYER *rl, unsigned
      short e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rl
    - seq
    argTypes:
    - RECORD_LAYER*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: DTLS_RECORD_LAYER_set_write_sequence
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void DTLS_RECORD_LAYER_set_write_sequence(RECORD_LAYER *rl, unsigned
      char *seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_release
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:126,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:130,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:131,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - s
    - item
    argTypes:
    - SSL*
    - pitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: dtls1_copy_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - SSL3_BUFFER_release
    - memcpy
    linkageType: ''
    returnType: int
    signature: int dtls1_copy_record(SSL *s, pitem *item)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_size
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:145,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:148,1
    - Dst: pitem_new
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:151,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:152,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:153,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:160,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:161,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:167,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:167,1
    - Dst: SSL_get_state
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:168,1
    - Dst: SSL_get_state
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:169,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:170,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:170,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:177,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:178,1
    - Dst: ssl3_setup_buffers
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:180,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:182,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:183,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:184,1
    - Dst: pqueue_insert
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:188,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:190,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:191,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - s
    - queue
    - priority
    argTypes:
    - SSL*
    - record_pqueue*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 196
    functionName: dtls1_buffer_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - OPENSSL_free
    - memcpy
    - BIO_dgram_is_sctp
    - pitem_free
    - pqueue_insert
    - BIO_ctrl
    - pqueue_size
    - pitem_new
    - SSL_get_rbio
    - memset
    - ssl3_setup_buffers
    - SSL_get_state
    linkageType: ''
    returnType: int
    signature: int dtls1_buffer_record(SSL *s, record_pqueue *queue, unsigned char
      *priority)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_pop
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:202,1
    - Dst: dtls1_copy_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:204,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:206,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - s
    - queue
    argTypes:
    - SSL*
    - record_pqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: dtls1_retrieve_buffered_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - pitem_free
    - OPENSSL_free
    - dtls1_copy_record
    - pqueue_pop
    linkageType: ''
    returnType: int
    signature: int dtls1_retrieve_buffered_record(SSL *s, record_pqueue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: dtls1_get_unprocessed_record
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dtls1_get_unprocessed_record(s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_peek
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:232,1
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:238,1
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:240,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:242,1
    - Dst: pqueue_peek
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:253,1
    - Dst: dtls1_get_unprocessed_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:254,1
    - Dst: dtls1_get_bitmap
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:255,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:262,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:269,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:269,1
    - Dst: dtls1_record_replay_check
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:278,1
    - Dst: dtls1_process_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:281,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:282,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:288,1
    - Dst: dtls1_buffer_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:292,1
    - Dst: SSL3_RECORD_get_seq_num
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:293,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 223
    functionDepth: 6
    functionLinenumber: 223
    functionLinenumberEnd: 308
    functionName: dtls1_process_buffered_records
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - RECORD_LAYER_get_rrec
    - dtls1_record_replay_check
    - RECORD_LAYER_get_rbuf
    - ossl_statem_in_error
    - RECORD_LAYER_reset_packet_length
    - dtls1_buffer_record
    - dtls1_get_unprocessed_record
    - BIO_dgram_is_sctp
    - pqueue_peek
    - SSL_get_rbio
    - SSL3_BUFFER_get_left
    - SSL3_RECORD_get_seq_num
    - dtls1_process_record
    - dtls1_get_bitmap
    linkageType: ''
    returnType: int
    signature: int dtls1_process_buffered_records(SSL *s)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_is_initialised
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:347,1
    - Dst: ssl3_setup_buffers
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:349,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:358,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:363,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:363,1
    - Dst: SSL*::handshake_func
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:365,1
    - Dst: SSL_is_init_finished
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:388,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:388,1
    - Dst: pqueue_pop
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:390,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:394,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:394,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:396,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:396,1
    - Dst: dtls1_copy_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:401,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:403,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:404,1
    - Dst: dtls1_handle_timeout
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:409,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:411,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:417,1
    - Dst: RECORD_LAYER_set_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:419,1
    - Dst: dtls1_get_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:420,1
    - Dst: dtls1_read_failed
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:422,1
    - Dst: RECORD_LAYER_set_numrpipes
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:432,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:439,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:440,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:447,1
    - Dst: dtls1_buffer_record
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:453,1
    - Dst: SSL3_RECORD_get_seq_num
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:454,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:458,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:459,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:468,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:469,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:474,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:475,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:486,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:488,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:494,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:502,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:503,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:507,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:508,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:512,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:512,1
    - Dst: SSL3_RECORD_get_off
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:512,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:514,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:515,1
    - Dst: SSL3_RECORD_sub_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:517,1
    - Dst: SSL3_RECORD_add_off
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:518,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:519,1
    - Dst: SSL3_RECORD_set_off
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:521,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:522,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:531,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:531,1
    - Dst: BIO_dgram_sctp_msg_waiting
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:533,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:533,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:547,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:549,1
    - Dst: SSL3_RECORD_get_off
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:550,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:553,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:553,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:554,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:555,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:556,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:557,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:563,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:573,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:578,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:582,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:594,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:594,1
    - Dst: BIO_dgram_sctp_msg_waiting
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:595,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:595,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:598,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:598,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:599,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:599,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:611,1
    - Dst: BIO_snprintf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:613,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:614,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:616,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:617,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:620,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:631,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:632,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:636,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:641,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:642,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:649,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:650,1
    - Dst: SSL3_RECORD_get_epoch
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:657,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:658,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:659,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:660,1
    - Dst: dtls1_get_message_header
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:664,1
    - Dst: dtls1_check_timeout_num
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:671,1
    - Dst: dtls1_retransmit_buffered_messages
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:676,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:678,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:681,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:682,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:684,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:689,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:690,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:691,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:704,1
    - Dst: SSL_is_init_finished
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:704,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:705,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:711,1
    - Dst: SSL*::handshake_func
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:713,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:721,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:731,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:732,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:733,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:740,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:742,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:753,1
    - Dst: ossl_statem_app_data_allowed
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:766,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:770,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 237
    argCount: 7
    argNames:
    - s
    - type
    - recvd_type
    - buf
    - len
    - peek
    - readbytes
    argTypes:
    - SSL*
    - int
    - int*
    - unsigned char*
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 339
    functionDepth: 6
    functionLinenumber: 339
    functionLinenumberEnd: 776
    functionName: dtls1_read_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - SSL_is_init_finished
    - BIO_snprintf
    - PACKET_get_1
    - dtls1_check_timeout_num
    - PACKET_remaining
    - ossl_statem_get_in_handshake
    - ERR_add_error_data
    - SSL3_RECORD_get_type
    - BIO_ctrl
    - dtls1_copy_record
    - SSL3_RECORD_get_off
    - dtls1_read_failed
    - SSL3_RECORD_set_length
    - SSL3_RECORD_sub_length
    - BIO_dgram_sctp_msg_waiting
    - PACKET_buf_init
    - cb
    - OPENSSL_free
    - dtls1_buffer_record
    - memcpy
    - SSL3_RECORD_get_data
    - SSL3_RECORD_get_seq_num
    - SSL*::handshake_func
    - ssl3_setup_buffers
    - ossl_assert
    - SSL_CTX_remove_session
    - SSLfatal
    - ossl_statem_set_in_init
    - SSL3_RECORD_set_read
    - SSL3_RECORD_get_length
    - ossl_statem_in_error
    - SSL*::msg_callback
    - pqueue_pop
    - BIO_dgram_is_sctp
    - dtls1_handle_timeout
    - pitem_free
    - SSL3_RECORD_add_off
    - dtls1_get_message_header
    - ossl_statem_app_data_allowed
    - BIO_clear_retry_flags
    - SSL_in_init
    - BIO_set_retry_read
    - SSL3_RECORD_get_epoch
    - SSL3_BUFFER_get_left
    - SSL3_BUFFER_is_initialised
    - RECORD_LAYER_set_numrpipes
    - SSL_get_rbio
    - dtls1_retransmit_buffered_messages
    - dtls1_get_record
    - SSL3_RECORD_set_off
    linkageType: ''
    returnType: int
    signature: "int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char
      *buf,\n                     size_t len, int peek, size_t *readbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:787,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:788,1
    - Dst: do_dtls1_write
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - s
    - type
    - buf
    - len
    - written
    argTypes:
    - SSL*
    - int
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 795
    functionName: dtls1_write_bytes
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - ossl_assert
    - do_dtls1_write
    linkageType: ''
    returnType: int
    signature: "int dtls1_write_bytes(SSL *s, int type, const void *buf, size_t len,\n
      \                     size_t *written)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:814,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:814,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:815,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:822,1
    - Dst: ssl_get_max_send_fragment
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:831,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:832,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:840,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:846,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:848,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:854,1
    - Dst: SSL3_RECORD_set_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:859,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:880,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:882,1
    - Dst: SSL3_RECORD_set_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:897,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:898,1
    - Dst: SSL3_RECORD_set_input
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:899,1
    - Dst: ssl3_do_compress
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:907,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:908,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:913,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:913,1
    - Dst: SSL3_RECORD_get_input
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:913,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:914,1
    - Dst: SSL3_RECORD_reset_input
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:915,1
    - Dst: SSL_WRITE_ETM
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:924,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:925,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:926,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:928,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:932,1
    - Dst: SSL3_RECORD_set_data
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:936,1
    - Dst: SSL3_RECORD_reset_input
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:937,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:940,1
    - Dst: SSL*::method::ssl3_enc::enc
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:942,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:943,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:944,1
    - Dst: SSL_WRITE_ETM
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:950,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:951,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:952,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:953,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:957,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:964,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:966,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:968,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:968,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:971,1
    - Dst: SSL3_RECORD_set_type
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:978,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:979,1
    - Dst: ssl3_record_sequence_update
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:981,1
    - Dst: SSL3_BUFFER_set_left
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:993,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:993,1
    - Dst: SSL3_BUFFER_set_offset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:994,1
    - Dst: ssl3_write_pending
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:1006,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 109
    argCount: 6
    argNames:
    - s
    - type
    - buf
    - len
    - create_empty_fragment
    - written
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 797
    functionDepth: 5
    functionLinenumber: 797
    functionLinenumberEnd: 1007
    functionName: do_dtls1_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_md
    - SSL*::method::ssl3_enc::enc
    - ssl_get_max_send_fragment
    - SSL3_RECORD_set_input
    - SSL3_RECORD_get_input
    - SSL3_RECORD_add_length
    - SSL3_RECORD_set_length
    - EVP_CIPHER_CTX_mode
    - ssl3_write_pending
    - memcpy
    - SSL3_RECORD_get_data
    - ossl_assert
    - SSLfatal
    - SSL3_RECORD_set_type
    - SSL3_RECORD_get_length
    - ossl_statem_in_error
    - SSL*::msg_callback
    - SSL3_BUFFER_set_left
    - SSL3_BUFFER_get_buf
    - SSL3_BUFFER_get_left
    - ssl3_do_compress
    - EVP_CIPHER_CTX_iv_length
    - SSL*::method::ssl3_enc::mac
    - SSL*::method::ssl_dispatch_alert
    - SSL3_BUFFER_set_offset
    - SSL3_RECORD_reset_input
    - s2n
    - ssl3_record_sequence_update
    - EVP_MD_CTX_size
    - SSL_WRITE_ETM
    - SSL3_RECORD_set_data
    linkageType: ''
    returnType: int
    signature: "int do_dtls1_write(SSL *s, int type, const unsigned char *buf,\n                   size_t
      len, int create_empty_fragment, size_t *written)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - s
    - rr
    - is_next_epoch
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1032
    functionName: dtls1_get_bitmap
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DTLS1_BITMAP
    signature: "DTLS1_BITMAP *dtls1_get_bitmap(SSL *s, SSL3_RECORD *rr,\n                               unsigned
      int *is_next_epoch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:1042,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:1044,1
    - Dst: dtls1_clear_received_buffer
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:1050,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:1053,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - s
    - rw
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1059
    functionName: dtls1_reset_seq_numbers
    functionSourceFile: /src/openssl-1.1.1g/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - dtls1_clear_received_buffer
    linkageType: ''
    returnType: void
    signature: void dtls1_reset_seq_numbers(SSL *s, int rw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:23,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:24,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:25,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:27,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:28,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 34
    functionName: tls_construct_ctos_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u8
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_renegotiate(SSL *s, WPACKET *pkt,\n
      \                                         unsigned int context, X509 *x,\n                                          size_t
      chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:44,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:46,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:48,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:49,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:50,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:51,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:52,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:53,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: tls_construct_ctos_server_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u16
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - WPACKET_put_bytes_u8
    - strlen
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_server_name(SSL *s, WPACKET *pkt,\n
      \                                         unsigned int context, X509 *x,\n                                          size_t
      chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:75,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:77,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:78,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:79,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: tls_construct_ctos_maxfragmentlen
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_maxfragmentlen(SSL *s, WPACKET *pkt,\n
      \                                            unsigned int context, X509 *x,\n
      \                                            size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:96,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:98,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:99,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:101,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:102,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:103,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:104,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:105,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: tls_construct_ctos_srp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_set_flags
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u8
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - strlen
    - WPACKET_memcpy
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_srp(SSL *s, WPACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:120,1
    - Dst: SSL_get1_supported_ciphers
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:126,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:127,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:129,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 143
    functionName: use_ecc
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_free
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    - STACK_OF
    - SSL_get1_supported_ciphers
    linkageType: ''
    returnType: int
    signature: int use_ecc(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: use_ecc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:152,1
    - Dst: tls1_get_formatlist
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:156,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:158,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:160,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:161,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:162,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 169
    functionName: tls_construct_ctos_ec_pt_formats
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - use_ecc
    - WPACKET_sub_memcpy_u8
    - tls1_get_formatlist
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_ec_pt_formats(SSL *s, WPACKET *pkt,\n
      \                                           unsigned int context, X509 *x,\n
      \                                           size_t chainidx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: use_ecc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:178,1
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:185,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:187,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:189,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:190,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:191,1
    - Dst: tls_curve_allowed
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:200,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:201,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:202,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:209,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:209,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 217
    functionName: tls_construct_ctos_supported_groups
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - use_ecc
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - tls_curve_allowed
    - tls1_get_supported_groups
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_supported_groups(SSL *s, WPACKET *pkt,\n
      \                                              unsigned int context, X509 *x,\n
      \                                              size_t chainidx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tls_use_ticket
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:226,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:236,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:238,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:243,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:254,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:255,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:256,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 262
    functionName: tls_construct_ctos_session_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - WPACKET_sub_memcpy_u16
    - WPACKET_put_bytes_u16
    - memcpy
    - tls_use_ticket
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_session_ticket(SSL *s, WPACKET *pkt,\n
      \                                            unsigned int context, X509 *x,\n
      \                                            size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CLIENT_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:271,1
    - Dst: tls12_get_psigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:274,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:275,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:277,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:279,1
    - Dst: tls12_copy_sigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:280,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:281,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:282,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 289
    functionName: tls_construct_ctos_sig_algs
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - tls12_copy_sigalgs
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - SSL_CLIENT_USE_SIGALGS
    - tls12_get_psigalgs
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_sig_algs(SSL *s, WPACKET *pkt,\n                                       unsigned
      int context, X509 *x,\n                                       size_t chainidx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:305,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:307,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:308,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:310,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:311,1
    - Dst: sk_OCSP_RESPID_num
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:315,1
    - Dst: sk_OCSP_RESPID_value
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:317,1
    - Dst: i2d_OCSP_RESPID
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:318,1
    - Dst: WPACKET_sub_allocate_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:322,1
    - Dst: i2d_OCSP_RESPID
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:323,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:324,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:330,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:331,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:332,1
    - Dst: i2d_X509_EXTENSIONS
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:338,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:341,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:346,1
    - Dst: i2d_X509_EXTENSIONS
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:347,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:349,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:355,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:355,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:356,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 362
    functionName: tls_construct_ctos_status_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_allocate_bytes
    - sk_OCSP_RESPID_num
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_sub_allocate_bytes_u16
    - i2d_OCSP_RESPID
    - WPACKET_put_bytes_u8
    - WPACKET_close
    - sk_OCSP_RESPID_value
    - i2d_X509_EXTENSIONS
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_status_request(SSL *s, WPACKET *pkt,\n
      \                                            unsigned int context, X509 *x,\n
      \                                            size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:369,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:376,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:377,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 384
    functionName: tls_construct_ctos_npn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_IS_FIRST_HANDSHAKE
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_npn(SSL *s, WPACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:392,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:395,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:398,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:399,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:400,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 408
    functionName: tls_construct_ctos_alpn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u16
    - SSL_IS_FIRST_HANDSHAKE
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_alpn(SSL *s, WPACKET *pkt, unsigned
      int context,\n                                   X509 *x, size_t chainidx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:416,1
    - Dst: SSL_get_srtp_profiles
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:416,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:422,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:424,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:426,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:427,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_num
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:432,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_value
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:435,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:437,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:438,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:443,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:445,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:446,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:447,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 453
    functionName: tls_construct_ctos_use_srtp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - sk_SRTP_PROTECTION_PROFILE_num
    - WPACKET_put_bytes_u16
    - STACK_OF
    - WPACKET_start_sub_packet_u16
    - sk_SRTP_PROTECTION_PROFILE_value
    - WPACKET_close
    - WPACKET_put_bytes_u8
    - SSL_get_srtp_profiles
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_use_srtp(SSL *s, WPACKET *pkt,\n                                       unsigned
      int context, X509 *x,\n                                       size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:462,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:463,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 470
    functionName: tls_construct_ctos_etm
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_etm(SSL *s, WPACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:483,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:484,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 491
    functionName: tls_construct_ctos_sct
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_sct(SSL *s, WPACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:497,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:498,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 505
    functionName: tls_construct_ctos_ems
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_ems(SSL *s, WPACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_min_max_version
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:513,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:515,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:527,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:528,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:529,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:530,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:537,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:538,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:544,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:544,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:545,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 552
    functionName: tls_construct_ctos_supported_versions
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - ssl_get_min_max_version
    - WPACKET_start_sub_packet_u8
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_supported_versions(SSL *s, WPACKET *pkt,\n
      \                                                unsigned int context, X509
      *x,\n                                                 size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:564,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:565,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:566,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:567,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:568,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:569,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:570,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:571,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 582
    functionName: tls_construct_ctos_psk_kex_modes
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u8
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_psk_kex_modes(SSL *s, WPACKET *pkt,\n
      \                                           unsigned int context, X509 *x,\n
      \                                           size_t chainidx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:592,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:593,1
    - Dst: ssl_generate_pkey_group
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:602,1
    - Dst: EVP_PKEY_get1_tls_encodedpoint
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:610,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:613,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:618,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:619,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:620,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:632,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:637,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:638,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - s
    - pkt
    - curve_id
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 640
    functionName: add_key_share
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl_generate_pkey_group
    - EVP_PKEY_get1_tls_encodedpoint
    - WPACKET_sub_memcpy_u16
    - WPACKET_put_bytes_u16
    - OPENSSL_free
    - EVP_PKEY_free
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int add_key_share(SSL *s, WPACKET *pkt, unsigned int curve_id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:653,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:655,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:657,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:658,1
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:663,1
    - Dst: tls_curve_allowed
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:674,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:683,1
    - Dst: add_key_share
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:688,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:693,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:693,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:694,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 643
    functionDepth: 5
    functionLinenumber: 643
    functionLinenumberEnd: 702
    functionName: tls_construct_ctos_key_share
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - add_key_share
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - tls_curve_allowed
    - tls1_get_supported_groups
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_key_share(SSL *s, WPACKET *pkt,\n                                        unsigned
      int context, X509 *x,\n                                        size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:713,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:715,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:716,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:718,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:719,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:726,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 731
    functionName: tls_construct_ctos_cookie
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u16
    - WPACKET_put_bytes_u16
    - OPENSSL_free
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_cookie(SSL *s, WPACKET *pkt, unsigned
      int context,\n                                     X509 *x, size_t chainidx)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:747,1
    - Dst: SSL*::psk_use_session_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:750,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:753,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:754,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:764,1
    - Dst: SSL*::psk_client_callback
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:765,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:769,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:776,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:778,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:789,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:791,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:797,1
    - Dst: SSL_SESSION_set1_master_key
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:799,1
    - Dst: SSL_SESSION_set_cipher
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:800,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:801,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:802,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:805,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:808,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:813,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:816,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:817,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:819,1
    - Dst: strcmp
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:838,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:839,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:847,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:860,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:861,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:865,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:866,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:873,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:880,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:881,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:882,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:883,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 86
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 733
    functionDepth: 7
    functionLinenumber: 733
    functionLinenumberEnd: 896
    functionName: tls_construct_ctos_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    - PACKET_equal
    - SSL_SESSION_new
    - OPENSSL_cleanse
    - PACKET_buf_init
    - strcmp
    - OPENSSL_free
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - SSL*::psk_use_session_cb
    - ssl_handshake_md
    - SSL*::psk_client_callback
    - SSLfatal
    - WPACKET_close
    - SSL_SESSION_set_protocol_version
    - PACKET_get_length_prefixed_1
    - SSL_SESSION_set1_master_key
    - memset
    - SSL_CIPHER_find
    - OPENSSL_memdup
    - SSL_SESSION_set_cipher
    - strlen
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_early_data(SSL *s, WPACKET *pkt,\n                                         unsigned
      int context, X509 *x,\n                                         size_t chainidx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:931,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:932,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:944,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:952,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:971,1
    - Dst: WPACKET_sub_allocate_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:972,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:973,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:977,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 981
    functionName: tls_construct_ctos_padding
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - WPACKET_get_total_written
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_sub_allocate_bytes_u16
    - memset
    - ssl_md
    - EVP_MD_size
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_padding(SSL *s, WPACKET *pkt,\n                                      unsigned
      int context, X509 *x,\n                                      size_t chainidx)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1013,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1018,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1022,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1047,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1085,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1095,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1101,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1111,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1116,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1120,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1121,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1122,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1123,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1129,1
    - Dst: WPACKET_put_bytes_u32
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1131,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1132,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1139,1
    - Dst: WPACKET_put_bytes_u32
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1141,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1142,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1149,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1150,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1151,1
    - Dst: WPACKET_sub_allocate_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1153,1
    - Dst: WPACKET_sub_allocate_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1155,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1156,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1157,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1158,1
    - Dst: WPACKET_fill_lengths
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1163,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1164,1
    - Dst: WPACKET_get_curr
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1169,1
    - Dst: tls_psk_do_binder
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1172,1
    - Dst: tls_psk_do_binder
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1179,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 84
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 986
    functionDepth: 3
    functionLinenumber: 986
    functionLinenumberEnd: 1189
    functionName: tls_construct_ctos_psk
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_get_total_written
    - WPACKET_get_curr
    - WPACKET_sub_memcpy_u16
    - tls_psk_do_binder
    - ssl_md
    - WPACKET_put_bytes_u32
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - WPACKET_sub_allocate_bytes_u8
    - ssl_handshake_md
    - time
    - WPACKET_fill_lengths
    - EVP_MD_size
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_psk(SSL *s, WPACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1200,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1201,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1202,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1191
    functionDepth: 3
    functionLinenumber: 1191
    functionLinenumberEnd: 1215
    functionName: tls_construct_ctos_post_handshake_auth
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_close
    - WPACKET_start_sub_packet_u16
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_ctos_post_handshake_auth(SSL *s, WPACKET
      *pkt,\n                                                  unsigned int context,\n
      \                                                 X509 *x, size_t chainidx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1230,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1232,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1234,1
    - Dst: PACKET_get_1_len
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1240,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1241,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1247,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1248,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1255,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1260,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1261,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1263,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1268,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1269,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1271,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1221
    functionDepth: 4
    functionLinenumber: 1221
    functionLinenumberEnd: 1278
    functionName: tls_parse_stoc_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - memcmp
    - PACKET_remaining
    - PACKET_get_bytes
    - ossl_assert
    - PACKET_get_1_len
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_renegotiate(SSL *s, PACKET *pkt, unsigned int context,\n
      \                              X509 *x, size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1286,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1286,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1287,1
    - Dst: IS_MAX_FRAGMENT_LENGTH_EXT_VALID
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1293,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1294,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1281
    functionDepth: 3
    functionLinenumber: 1281
    functionLinenumberEnd: 1320
    functionName: tls_parse_stoc_maxfragmentlen
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - IS_MAX_FRAGMENT_LENGTH_EXT_VALID
    - PACKET_get_1
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_maxfragmentlen(SSL *s, PACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1326,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1331,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1332,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1339,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1343,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1352
    functionName: tls_parse_stoc_server_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_server_name(SSL *s, PACKET *pkt, unsigned int context,\n
      \                              X509 *x, size_t chainidx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1361,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1362,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1367,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1369,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1375,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1376,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1378,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1385,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1355
    functionDepth: 4
    functionLinenumber: 1355
    functionLinenumberEnd: 1395
    functionName: tls_parse_stoc_ec_pt_formats
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - PACKET_remaining
    - OPENSSL_free
    - PACKET_copy_bytes
    - PACKET_as_length_prefixed_1
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_ec_pt_formats(SSL *s, PACKET *pkt, unsigned int
      context,\n                                 X509 *x, size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::ext::session_ticket_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1402,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1402,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1403,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1405,1
    - Dst: tls_use_ticket
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1410,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1411,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1415,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1424
    functionName: tls_parse_stoc_session_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL*::ext::session_ticket_cb
    - PACKET_remaining
    - tls_use_ticket
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_session_ticket(SSL *s, PACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1441,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1445,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1445,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1446,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1451,1
    - Dst: tls_process_cert_status_body
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1466
    functionName: tls_parse_stoc_status_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - tls_process_cert_status_body
    - SSL_IS_TLS13
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_status_request(SSL *s, PACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1486,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1489,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1494,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1496,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1497,1
    - Dst: custom_ext_find
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1510,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1513,1
    - Dst: custom_ext_parse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1518,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1520,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1528
    functionName: tls_parse_stoc_sct
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - custom_ext_parse
    - PACKET_remaining
    - custom_ext_find
    - OPENSSL_free
    - PACKET_copy_bytes
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_sct(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1542,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1543,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1544,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1538
    functionDepth: 4
    functionLinenumber: 1538
    functionLinenumberEnd: 1552
    functionName: ssl_next_proto_validate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_1
    - PACKET_remaining
    - SSLfatal
    linkageType: ''
    returnType: int
    signature: int ssl_next_proto_validate(SSL *s, PACKET *pkt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1562,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1567,1
    - Dst: ssl_next_proto_validate
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1574,1
    - Dst: SSL*::ctx::ext::npn_select_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1578,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1579,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1580,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1583,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1592,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1593,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1595,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1554
    functionDepth: 5
    functionLinenumber: 1554
    functionLinenumberEnd: 1605
    functionName: tls_parse_stoc_npn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - SSL*::ctx::ext::npn_select_cb
    - ssl_next_proto_validate
    - PACKET_remaining
    - SSL_IS_FIRST_HANDSHAKE
    - OPENSSL_free
    - memcpy
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_npn(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1615,1
    - Dst: PACKET_get_net_2_len
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1625,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1626,1
    - Dst: PACKET_get_1_len
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1626,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1627,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1628,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1632,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1633,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1635,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1639,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1640,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1648,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1658,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1659,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1664,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1666,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1608
    functionDepth: 4
    functionLinenumber: 1608
    functionLinenumberEnd: 1674
    functionName: tls_parse_stoc_alpn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - memcmp
    - PACKET_remaining
    - PACKET_get_net_2_len
    - OPENSSL_free
    - PACKET_copy_bytes
    - OPENSSL_memdup
    - ossl_assert
    - PACKET_get_1_len
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_alpn(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                        size_t chainidx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1682,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1685,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1686,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1687,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1688,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1689,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1696,1
    - Dst: SSL_get_srtp_profiles
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1702,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1704,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_num
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1713,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_value
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1714,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1722,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1677
    functionDepth: 3
    functionLinenumber: 1677
    functionLinenumberEnd: 1725
    functionName: tls_parse_stoc_use_srtp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - sk_SRTP_PROTECTION_PROFILE_num
    - PACKET_get_1
    - PACKET_remaining
    - STACK_OF
    - sk_SRTP_PROTECTION_PROFILE_value
    - SSL_get_srtp_profiles
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_use_srtp(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                            size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1728
    functionDepth: 0
    functionLinenumber: 1728
    functionLinenumberEnd: 1738
    functionName: tls_parse_stoc_etm
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_etm(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1748
    functionName: tls_parse_stoc_ems
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_ems(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1755,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1756,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1757,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1750
    functionDepth: 3
    functionLinenumber: 1750
    functionLinenumberEnd: 1782
    functionName: tls_parse_stoc_supported_versions
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_supported_versions(SSL *s, PACKET *pkt, unsigned
      int context,\n                                      X509 *x, size_t chainidx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1794,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1799,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1800,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1809,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1810,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1820,1
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1826,1
    - Dst: tls_curve_allowed
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1832,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1833,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1839,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1849,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1854,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1855,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1856,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1861,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1862,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1863,1
    - Dst: EVP_PKEY_set1_tls_encodedpoint
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1867,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1867,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1868,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1869,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1871,1
    - Dst: ssl_derive
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1875,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1877,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1784
    functionDepth: 4
    functionLinenumber: 1784
    functionLinenumberEnd: 1884
    functionName: tls_parse_stoc_key_share
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_data
    - EVP_PKEY_free
    - PACKET_remaining
    - PACKET_as_length_prefixed_2
    - EVP_PKEY_copy_parameters
    - ssl_derive
    - EVP_PKEY_new
    - tls_curve_allowed
    - tls1_get_supported_groups
    - EVP_PKEY_set1_tls_encodedpoint
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_key_share(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                             size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1891,1
    - Dst: PACKET_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1892,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1886
    functionDepth: 4
    functionLinenumber: 1886
    functionLinenumberEnd: 1900
    functionName: tls_parse_stoc_cookie
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_as_length_prefixed_2
    - PACKET_memdup
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_cookie(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1908,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1909,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1910,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1920,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1921,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1933,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1902
    functionDepth: 3
    functionLinenumber: 1902
    functionLinenumberEnd: 1941
    functionName: tls_parse_stoc_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - PACKET_get_net_4
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_early_data(SSL *s, PACKET *pkt, unsigned int context,\n
      \                             X509 *x, size_t chainidx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1949,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1949,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1950,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1956,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1968,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1975,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1989,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c:1991,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1943
    functionDepth: 4
    functionLinenumber: 1943
    functionLinenumberEnd: 2001
    functionName: tls_parse_stoc_psk
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_SESSION_free
    - PACKET_remaining
    - memcpy
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: "int tls_parse_stoc_psk(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_add_cb_wrap*::add_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 9
    argNames:
    - s
    - ext_type
    - context
    - out
    - outlen
    - x
    - chainidx
    - al
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char**
    - size_t*
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: custom_ext_add_old_cb_wrap
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 0
    functionsReached:
    - custom_ext_add_cb_wrap*::add_cb
    linkageType: ''
    returnType: int
    signature: "int custom_ext_add_old_cb_wrap(SSL *s, unsigned int ext_type,\n                                      unsigned
      int context,\n                                      const unsigned char **out,\n
      \                                     size_t *outlen, X509 *x, size_t chainidx,\n
      \                                     int *al, void *add_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_add_cb_wrap*::free_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s
    - ext_type
    - context
    - out
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: custom_ext_free_old_cb_wrap
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 0
    functionsReached:
    - custom_ext_add_cb_wrap*::free_cb
    linkageType: ''
    returnType: void
    signature: "void custom_ext_free_old_cb_wrap(SSL *s, unsigned int ext_type,\n
      \                                       unsigned int context,\n                                        const
      unsigned char *out, void *add_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_parse_cb_wrap*::parse_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 9
    argNames:
    - s
    - ext_type
    - context
    - in
    - inlen
    - x
    - chainidx
    - al
    - parse_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char*
    - size_t
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: custom_ext_parse_old_cb_wrap
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 0
    functionsReached:
    - custom_ext_parse_cb_wrap*::parse_cb
    linkageType: ''
    returnType: int
    signature: "int custom_ext_parse_old_cb_wrap(SSL *s, unsigned int ext_type,\n
      \                                       unsigned int context,\n                                        const
      unsigned char *in,\n                                        size_t inlen, X509
      *x, size_t chainidx,\n                                        int *al, void
      *parse_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - exts
    - role
    - ext_type
    - idx
    argTypes:
    - custom_ext_methods*
    - ENDPOINT
    - unsigned int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: custom_ext_find
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: custom_ext_method
    signature: "custom_ext_method *custom_ext_find(const custom_ext_methods *exts,\n
      \                                  ENDPOINT role, unsigned int ext_type,\n                                   size_t
      *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - exts
    argTypes:
    - custom_ext_methods*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: custom_ext_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void custom_ext_init(custom_ext_methods *exts)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_find
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:125,1
    - Dst: extension_is_relevant
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:131,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:142,1
    - Dst: custom_ext_method*::parse_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:160,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:162,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 7
    argNames:
    - s
    - context
    - ext_type
    - ext_data
    - ext_size
    - x
    - chainidx
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char*
    - size_t
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 167
    functionName: custom_ext_parse
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 1
    functionsReached:
    - extension_is_relevant
    - custom_ext_find
    - SSLfatal
    - custom_ext_method*::parse_cb
    linkageType: ''
    returnType: int
    signature: "int custom_ext_parse(SSL *s, unsigned int context, unsigned int ext_type,\n
      \                    const unsigned char *ext_data, size_t ext_size, X509 *x,\n
      \                    size_t chainidx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: should_add_extension
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:187,1
    - Dst: custom_ext_method*::add_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:207,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:212,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:219,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:220,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:221,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:222,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:223,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:231,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:232,1
    - Dst: custom_ext_method*::free_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:244,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 34
    argCount: 6
    argNames:
    - s
    - context
    - pkt
    - x
    - chainidx
    - maxversion
    argTypes:
    - SSL*
    - int
    - WPACKET*
    - X509*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 247
    functionName: custom_ext_add
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 0
    functionsReached:
    - custom_ext_method*::add_cb
    - SSLfatal
    - custom_ext_method*::free_cb
    - should_add_extension
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - ossl_assert
    - WPACKET_memcpy
    linkageType: ''
    returnType: int
    signature: "int custom_ext_add(SSL *s, int context, WPACKET *pkt, X509 *x, size_t
      chainidx,\n                   int maxversion)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_find
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - custom_ext_methods*
    - custom_ext_methods*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 267
    functionName: custom_exts_copy_flags
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 1
    functionsReached:
    - custom_ext_find
    linkageType: ''
    returnType: int
    signature: "int custom_exts_copy_flags(custom_ext_methods *dst,\n                           const
      custom_ext_methods *src)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:277,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:301,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:303,1
    - Dst: custom_exts_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:312,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - custom_ext_methods*
    - custom_ext_methods*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 317
    functionName: custom_exts_copy
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 1
    functionsReached:
    - OPENSSL_memdup
    - custom_exts_free
    linkageType: ''
    returnType: int
    signature: int custom_exts_copy(custom_ext_methods *dst, const custom_ext_methods
      *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:329,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:330,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - exts
    argTypes:
    - custom_ext_methods*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 333
    functionName: custom_exts_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void custom_exts_free(custom_ext_methods *exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_find
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ext_type
    argTypes:
    - SSL_CTX*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: SSL_CTX_has_client_custom_ext
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 2
    functionsReached:
    - custom_ext_find
    linkageType: ''
    returnType: int
    signature: int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, unsigned int
      ext_type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_ct_is_enabled
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:369,1
    - Dst: SSL_extension_supported
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:377,1
    - Dst: custom_ext_find
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:385,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:387,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:394,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 9
    argNames:
    - ctx
    - role
    - ext_type
    - context
    - add_cb
    - free_cb
    - add_arg
    - parse_cb
    - parse_arg
    argTypes:
    - SSL_CTX*
    - ENDPOINT
    - unsigned int
    - unsigned int
    - SSL_custom_ext_add_cb_ex
    - SSL_custom_ext_free_cb_ex
    - void*
    - SSL_custom_ext_parse_cb_ex
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 405
    functionName: add_custom_ext_intern
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 0
    functionsReached:
    - OPENSSL_realloc
    - custom_ext_find
    - SSL_extension_supported
    - SSL_CTX_ct_is_enabled
    - memset
    linkageType: ''
    returnType: int
    signature: "int add_custom_ext_intern(SSL_CTX *ctx, ENDPOINT role,\n                                 unsigned
      int ext_type,\n                                 unsigned int context,\n                                 SSL_custom_ext_add_cb_ex
      add_cb,\n                                 SSL_custom_ext_free_cb_ex free_cb,\n
      \                                void *add_arg,\n                                 SSL_custom_ext_parse_cb_ex
      parse_cb,\n                                 void *parse_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:416,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:418,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:422,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:423,1
    - Dst: add_custom_ext_intern
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:433,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:442,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 9
    argNames:
    - ctx
    - role
    - ext_type
    - context
    - add_cb
    - free_cb
    - add_arg
    - parse_cb
    - parse_arg
    argTypes:
    - SSL_CTX*
    - ENDPOINT
    - unsigned int
    - unsigned int
    - custom_ext_add_cb
    - custom_ext_free_cb
    - void*
    - custom_ext_parse_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 447
    functionName: add_old_custom_ext
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 0
    functionsReached:
    - add_custom_ext_intern
    - OPENSSL_malloc
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int add_old_custom_ext(SSL_CTX *ctx, ENDPOINT role,\n                              unsigned
      int ext_type,\n                              unsigned int context,\n                              custom_ext_add_cb
      add_cb,\n                              custom_ext_free_cb free_cb,\n                              void
      *add_arg,\n                              custom_ext_parse_cb parse_cb, void
      *parse_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_old_custom_ext
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - ext_type
    - add_cb
    - free_cb
    - add_arg
    - parse_cb
    - parse_arg
    argTypes:
    - SSL_CTX*
    - unsigned int
    - custom_ext_add_cb
    - custom_ext_free_cb
    - void*
    - custom_ext_parse_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 450
    functionDepth: 3
    functionLinenumber: 450
    functionLinenumberEnd: 462
    functionName: SSL_CTX_add_client_custom_ext
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 4
    functionsReached:
    - add_old_custom_ext
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type,\n
      \                                 custom_ext_add_cb add_cb,\n                                  custom_ext_free_cb
      free_cb,\n                                  void *add_arg,\n                                  custom_ext_parse_cb
      parse_cb, void *parse_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_old_custom_ext
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - ext_type
    - add_cb
    - free_cb
    - add_arg
    - parse_cb
    - parse_arg
    argTypes:
    - SSL_CTX*
    - unsigned int
    - custom_ext_add_cb
    - custom_ext_free_cb
    - void*
    - custom_ext_parse_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 476
    functionName: SSL_CTX_add_server_custom_ext
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 4
    functionsReached:
    - add_old_custom_ext
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type,\n
      \                                 custom_ext_add_cb add_cb,\n                                  custom_ext_free_cb
      free_cb,\n                                  void *add_arg,\n                                  custom_ext_parse_cb
      parse_cb, void *parse_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_custom_ext_intern
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ctx
    - ext_type
    - context
    - add_cb
    - free_cb
    - add_arg
    - parse_cb
    - parse_arg
    argTypes:
    - SSL_CTX*
    - unsigned int
    - unsigned int
    - SSL_custom_ext_add_cb_ex
    - SSL_custom_ext_free_cb_ex
    - void*
    - SSL_custom_ext_parse_cb_ex
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: SSL_CTX_add_custom_ext
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 2
    functionsReached:
    - add_custom_ext_intern
    linkageType: ''
    returnType: int
    signature: "int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type,\n
      \                          unsigned int context,\n                           SSL_custom_ext_add_cb_ex
      add_cb,\n                           SSL_custom_ext_free_cb_ex free_cb,\n                           void
      *add_arg,\n                           SSL_custom_ext_parse_cb_ex parse_cb, void
      *parse_arg)"
  - BBCount: 26
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - ext_type
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 533
    functionName: SSL_extension_supported
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_cust.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_extension_supported(unsigned int ext_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: SSL_get_state
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: OSSL_HANDSHAKE_STATE
    signature: OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: SSL_in_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_in_init(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: SSL_is_init_finished
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_is_init_finished(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: SSL_in_before
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_in_before(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: ossl_statem_clear
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_statem_clear(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: ossl_statem_set_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_statem_set_renegotiate(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_put_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:121,1
    - Dst: ssl3_send_alert
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 6
    argNames:
    - s
    - al
    - func
    - reason
    - file
    - line
    argTypes:
    - SSL*
    - int
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: ossl_statem_fatal
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - ssl3_send_alert
    - ERR_put_error
    linkageType: ''
    returnType: void
    signature: "void ossl_statem_fatal(SSL *s, int al, int func, int reason, const
      char *file,\n                       int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: check_fatal
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_fatal(s, f)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: ossl_statem_in_error
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_statem_in_error(const SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - init
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: ossl_statem_set_in_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_statem_set_in_init(SSL *s, int init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: ossl_statem_get_in_handshake
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_statem_get_in_handshake(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - inhand
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: ossl_statem_set_in_handshake
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_statem_set_in_handshake(SSL *s, int inhand)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: ossl_statem_skip_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_statem_skip_early_data(SSL *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:205,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:219,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:230,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 2
    argNames:
    - s
    - sending
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 232
    functionName: ossl_statem_check_finish_init
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 3
    functionsReached:
    - ossl_statem_set_in_init
    linkageType: ''
    returnType: void
    signature: void ossl_statem_check_finish_init(SSL *s, int sending)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: ossl_statem_set_hello_verify_done
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_statem_set_hello_verify_done(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state_machine
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: ossl_statem_connect
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - state_machine
    linkageType: ''
    returnType: int
    signature: int ossl_statem_connect(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state_machine
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: ossl_statem_accept
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - state_machine
    linkageType: ''
    returnType: int
    signature: int ossl_statem_accept(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: get_callback
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: info_cb
    signature: info_cb get_callback(SSL *s)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:311,1
    - Dst: clear_sys_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:312,1
    - Dst: get_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:314,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:317,1
    - Dst: SSL_in_before
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:317,1
    - Dst: SSL_clear
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:322,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:326,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:326,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:326,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:331,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:331,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:346,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:346,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:347,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:356,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:359,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:365,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:371,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:372,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:378,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:379,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:383,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:384,1
    - Dst: ssl3_setup_buffers
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:392,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:393,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:409,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:409,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:409,1
    - Dst: ssl_init_wbio_buffer
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:411,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:412,1
    - Dst: SSL_in_before
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:417,1
    - Dst: tls_setup_handshake
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:419,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:424,1
    - Dst: init_write_state_machine
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:429,1
    - Dst: read_state_machine
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:434,1
    - Dst: init_write_state_machine
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:437,1
    - Dst: write_state_machine
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:443,1
    - Dst: init_read_state_machine
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:446,1
    - Dst: check_fatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:455,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:456,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:467,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:467,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:467,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:472,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:472,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:477,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:480,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:482,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 126
    argCount: 2
    argNames:
    - s
    - server
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 298
    functionDepth: 5
    functionLinenumber: 298
    functionLinenumberEnd: 485
    functionName: state_machine
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 3
    functionsReached:
    - BUF_MEM_new
    - BIO_ctrl
    - SSL_IS_DTLS
    - init_write_state_machine
    - init_read_state_machine
    - cb
    - clear_sys_error
    - tls_setup_handshake
    - check_fatal
    - read_state_machine
    - SSLerr
    - get_callback
    - ERR_clear_error
    - SSL_clear
    - ssl3_setup_buffers
    - SSLfatal
    - SSL_IS_FIRST_HANDSHAKE
    - ssl_security
    - BIO_dgram_is_sctp
    - BUF_MEM_free
    - SSL_IS_TLS13
    - SSL_in_init
    - SSL_in_before
    - ssl_init_wbio_buffer
    - write_state_machine
    - SSL_get_wbio
    - BUF_MEM_grow
    linkageType: ''
    returnType: int
    signature: int state_machine(SSL *s, int server)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: init_read_state_machine
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_read_state_machine(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - SSL*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 510
    functionName: grow_init_buf
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_grow_clean
    linkageType: ''
    returnType: int
    signature: int grow_init_buf(SSL *s, size_t size)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: MSG_PROCESS_RETURN
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:545,1
    - Dst: get_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:550,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:573,1
    - Dst: dtls_get_message
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:577,1
    - Dst: tls_get_message_header
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:579,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:590,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:592,1
    - Dst: transition
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:598,1
    - Dst: max_message_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:601,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:602,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:608,1
    - Dst: grow_init_buf
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:610,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:612,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:621,1
    - Dst: tls_get_message_body
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:623,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:631,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:632,1
    - Dst: process_message
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:636,1
    - Dst: check_fatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:643,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:647,1
    - Dst: dtls1_stop_timer
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:648,1
    - Dst: post_process_message
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:664,1
    - Dst: check_fatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:667,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:679,1
    - Dst: dtls1_stop_timer
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:680,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:688,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 102
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 538
    functionDepth: 4
    functionLinenumber: 538
    functionLinenumberEnd: 693
    functionName: read_state_machine
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached:
    - max_message_size
    - SSLfatal
    - PACKET_buf_init
    - cb
    - process_message
    - MSG_PROCESS_RETURN
    - tls_get_message_body
    - transition
    - check_fatal
    - post_process_message
    - dtls1_stop_timer
    - SSL_IS_DTLS
    - get_callback
    - tls_get_message_header
    - dtls_get_message
    - grow_init_buf
    linkageType: ''
    returnType: SUB_STATE_RETURN
    signature: SUB_STATE_RETURN read_state_machine(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:704,1
    - Dst: dtls1_do_write
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:705,1
    - Dst: ssl3_do_write
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:707,1
    - Dst: ssl_do_write
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 711
    functionName: statem_do_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - ssl_do_write
    - dtls1_do_write
    - SSL_IS_DTLS
    - ssl3_do_write
    linkageType: ''
    returnType: int
    signature: int statem_do_write(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 721
    functionName: init_write_state_machine
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_write_state_machine(SSL *s)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_TRAN
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:758,1
    - Dst: get_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:769,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:789,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:791,1
    - Dst: transition
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:793,1
    - Dst: check_fatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:804,1
    - Dst: pre_work
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:810,1
    - Dst: check_fatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:812,1
    - Dst: get_construct_message_f
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:826,1
    - Dst: WPACKET_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:836,1
    - Dst: ssl_set_handshake_header
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:837,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:838,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:839,1
    - Dst: confunc
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:843,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:844,1
    - Dst: check_fatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:845,1
    - Dst: ssl_close_construct_packet
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:848,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:849,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:850,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:851,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:859,1
    - Dst: dtls1_start_timer
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:860,1
    - Dst: statem_do_write
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:862,1
    - Dst: post_work
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:871,1
    - Dst: check_fatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:873,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:890,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 103
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 754
    functionDepth: 5
    functionLinenumber: 754
    functionLinenumberEnd: 895
    functionName: write_state_machine
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached:
    - pre_work
    - SSLfatal
    - cb
    - ssl_close_construct_packet
    - WPACKET_init
    - get_construct_message_f
    - statem_do_write
    - dtls1_start_timer
    - transition
    - check_fatal
    - WPACKET_cleanup
    - post_work
    - SSL_IS_DTLS
    - get_callback
    - confunc
    - WRITE_TRAN
    - WPACKET_finish
    - ssl_set_handshake_header
    linkageType: ''
    returnType: SUB_STATE_RETURN
    signature: SUB_STATE_RETURN write_state_machine(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 909
    functionName: statem_flush
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached:
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int statem_flush(SSL *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 947
    functionName: ossl_statem_app_data_allowed
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_statem_app_data_allowed(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 957
    functionName: ossl_statem_export_allowed
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_statem_export_allowed(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 972
    functionName: ossl_statem_export_early_allowed
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_statem_export_early_allowed(SSL *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - al
    - ','
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: SSLfatal
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.h
    functionUses: 97
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSLfatal(s, al, f, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - al
    - ','
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: SSLfatal
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem.h
    functionUses: 97
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSLfatal(s, al, f, r)
  - BBCount: 22
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 2
    argNames:
    - s
    - mt
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 143
    functionName: ossl_statem_server13_read_transition
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_statem_server13_read_transition(SSL *s, int mt)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:158,1
    - Dst: ossl_statem_server13_read_transition
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:159,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:198,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:297,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:306,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:307,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:308,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:311,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 104
    argCount: 2
    argNames:
    - s
    - mt
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 315
    functionName: ossl_statem_server_read_transition
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_get_rbio
    - SSL_IS_DTLS
    - SSL_IS_TLS13
    - ossl_statem_server13_read_transition
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int ossl_statem_server_read_transition(SSL *s, int mt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 357
    functionName: send_server_key_exchange
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int send_server_key_exchange(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:375,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 406
    functionName: send_certificate_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - SSL_IS_TLS13
    linkageType: ''
    returnType: int
    signature: int send_certificate_request(SSL *s)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:425,1
    - Dst: send_certificate_request
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:466,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 78
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 535
    functionName: ossl_statem_server13_write_transition
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - send_certificate_request
    linkageType: ''
    returnType: WRITE_TRAN
    signature: WRITE_TRAN ossl_statem_server13_write_transition(SSL *s)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:550,1
    - Dst: ossl_statem_server13_write_transition
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:551,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:556,1
    - Dst: tls_setup_handshake
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:569,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:584,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:585,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:587,1
    - Dst: send_server_key_exchange
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:611,1
    - Dst: send_certificate_request
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:613,1
    - Dst: send_server_key_exchange
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:629,1
    - Dst: send_certificate_request
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:636,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 97
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 675
    functionName: ossl_statem_server_write_transition
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - send_certificate_request
    - SSL_IS_FIRST_HANDSHAKE
    - tls_setup_handshake
    - send_server_key_exchange
    - SSL_IS_DTLS
    - SSL_IS_TLS13
    - ossl_statem_server13_write_transition
    - SSL_get_options
    linkageType: ''
    returnType: WRITE_TRAN
    signature: WRITE_TRAN ossl_statem_server_write_transition(SSL *s)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:692,1
    - Dst: dtls1_clear_sent_buffer
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:693,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:698,1
    - Dst: dtls1_clear_sent_buffer
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:699,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:706,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:717,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:717,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:717,1
    - Dst: dtls_wait_for_dry
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:719,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:725,1
    - Dst: tls_finish_handshake
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:733,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:734,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:744,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:750,1
    - Dst: SSL*::method::ssl3_enc::setup_key_block
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:755,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:759,1
    - Dst: tls_finish_handshake
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:778,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 782
    functionName: ossl_statem_server_pre_work
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls_finish_handshake
    - dtls_wait_for_dry
    - SSL*::method::ssl3_enc::setup_key_block
    - BIO_dgram_is_sctp
    - SSL_get_wbio
    - SSL_IS_DTLS
    - dtls1_clear_sent_buffer
    - SSL_IS_TLS13
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE ossl_statem_server_pre_work(SSL *s, WORK_STATE wst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_last_sys_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 802
    functionName: conn_is_closed
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - get_last_sys_error
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline conn_is_closed(void)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:820,1
    - Dst: ssl3_init_finished_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:822,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:829,1
    - Dst: ssl3_init_finished_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:832,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:844,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:846,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:851,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:860,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:868,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:872,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:878,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:878,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:882,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:890,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:895,1
    - Dst: SSL*::method::ssl3_enc::setup_key_block
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:896,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:897,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:904,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:919,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:924,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:924,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:928,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:935,1
    - Dst: dtls1_reset_seq_numbers
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:936,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:940,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:945,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:948,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:953,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:953,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:957,1
    - Dst: SSL*::method::ssl3_enc::generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:960,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:963,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:972,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:978,1
    - Dst: tls13_update_key
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:980,1
    - Dst: clear_sys_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:987,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:988,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:988,1
    - Dst: SSL_get_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:989,1
    - Dst: conn_is_closed
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:990,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 104
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 808
    functionDepth: 8
    functionLinenumber: 808
    functionLinenumberEnd: 1008
    functionName: ossl_statem_server_post_work
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - clear_sys_error
    - SSL_export_keying_material
    - SSL*::method::ssl3_enc::setup_key_block
    - SSL_get_error
    - memcpy
    - SSL*::method::ssl3_enc::change_cipher_state
    - conn_is_closed
    - SSL_get_wbio
    - ssl3_init_finished_mac
    - BIO_ctrl
    - SSL_IS_DTLS
    - SSL_IS_TLS13
    - SSL*::method::ssl3_enc::generate_master_secret
    - statem_flush
    - dtls1_reset_seq_numbers
    - tls13_update_key
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE ossl_statem_server_post_work(SSL *s, WORK_STATE wst)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1026,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1032,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 4
    argNames:
    - s
    - pkt
    - confunc
    - mt
    argTypes:
    - SSL*
    - WPACKET*
    - confunc_f*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1113
    functionName: ossl_statem_server_construct_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: "int ossl_statem_server_construct_message(SSL *s, WPACKET *pkt,\n                                         confunc_f
      *confunc, int *mt)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1177
    functionName: ossl_statem_server_max_message_size
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_statem_server_max_message_size(SSL *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1189,1
    - Dst: tls_process_client_hello
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1195,1
    - Dst: tls_process_end_of_early_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1198,1
    - Dst: tls_process_client_certificate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1201,1
    - Dst: tls_process_client_key_exchange
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1204,1
    - Dst: tls_process_cert_verify
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1207,1
    - Dst: tls_process_next_proto
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1211,1
    - Dst: tls_process_change_cipher_spec
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1215,1
    - Dst: tls_process_finished
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1218,1
    - Dst: tls_process_key_update
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1224
    functionName: ossl_statem_server_process_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls_process_next_proto
    - tls_process_client_key_exchange
    - tls_process_end_of_early_data
    - tls_process_client_hello
    - tls_process_finished
    - tls_process_change_cipher_spec
    - tls_process_key_update
    - tls_process_cert_verify
    - tls_process_client_certificate
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN ossl_statem_server_process_message(SSL *s, PACKET
      *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1237,1
    - Dst: tls_post_process_client_hello
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1243,1
    - Dst: tls_post_process_client_key_exchange
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1248
    functionName: ossl_statem_server_post_process_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls_post_process_client_hello
    - tls_post_process_client_key_exchange
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE ossl_statem_server_post_process_message(SSL *s, WORK_STATE
      wst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1264,1
    - Dst: SSL_srp_server_param_with_username
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1269,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1252
    functionDepth: 9
    functionLinenumber: 1252
    functionLinenumberEnd: 1282
    functionName: ssl_check_srp_ext_ClientHello
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_srp_server_param_with_username
    linkageType: ''
    returnType: int
    signature: int ssl_check_srp_ext_ClientHello(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1289,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pkt
    - cookie
    - cookie_len
    argTypes:
    - WPACKET*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1294
    functionName: dtls_raw_hello_verify_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - WPACKET_sub_memcpy_u8
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: int
    signature: "int dtls_raw_hello_verify_request(WPACKET *pkt, unsigned char *cookie,\n
      \                                 size_t cookie_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::ctx::app_gen_cookie_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1300,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1303,1
    - Dst: dtls_raw_hello_verify_request
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1309,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1317
    functionName: dtls_construct_hello_verify_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSL*::ctx::app_gen_cookie_cb
    - SSLfatal
    - dtls_raw_hello_verify_request
    linkageType: ''
    returnType: int
    signature: int dtls_construct_hello_verify_request(SSL *s, WPACKET *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1366,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1367,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1368,1
    - Dst: TLS1_get_client_version
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1375,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - s
    - hello
    argTypes:
    - SSL*
    - CLIENTHELLO_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1334
    functionDepth: 4
    functionLinenumber: 1334
    functionLinenumberEnd: 1380
    functionName: ssl_check_for_safari
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - TLS1_get_client_version
    - PACKET_equal
    - PACKET_forward
    - PACKET_get_net_2
    linkageType: ''
    returnType: void
    signature: void ssl_check_for_safari(SSL *s, const CLIENTHELLO_MSG *hello)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1391,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1392,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1392,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1393,1
    - Dst: ssl3_send_alert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1401,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1408,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1410,1
    - Dst: RECORD_LAYER_is_sslv2_record
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1418,1
    - Dst: PACKET_null_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1419,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1424,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1426,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1446,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1453,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1459,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1460,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1475,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1476,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1477,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1478,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1484,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1489,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1491,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1492,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1494,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1495,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1508,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1509,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1513,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1514,1
    - Dst: PACKET_null_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1519,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1522,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1523,1
    - Dst: PACKET_copy_all
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1524,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1527,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1532,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1533,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1534,1
    - Dst: PACKET_copy_all
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1538,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1541,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1550,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1552,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1558,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1559,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1564,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1565,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1571,1
    - Dst: PACKET_null_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1572,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1574,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1575,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1576,1
    - Dst: PACKET_copy_all
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1583,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1586,1
    - Dst: tls_collect_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1593,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1605,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1606,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 126
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1383
    functionDepth: 4
    functionLinenumber: 1383
    functionLinenumberEnd: 1609
    functionName: tls_process_client_hello
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_get_1
    - PACKET_remaining
    - SSL_IS_DTLS
    - SSL_get_options
    - PACKET_get_net_2
    - tls_collect_extensions
    - PACKET_buf_init
    - OPENSSL_free
    - OPENSSL_zalloc
    - PACKET_copy_all
    - ossl_assert
    - SSLfatal
    - PACKET_null_init
    - PACKET_get_sub_packet
    - SSL_IS_FIRST_HANDSHAKE
    - PACKET_copy_bytes
    - RECORD_LAYER_is_sslv2_record
    - SSL_IS_TLS13
    - PACKET_get_length_prefixed_1
    - memset
    - ssl3_send_alert
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_client_hello(SSL *s, PACKET *pkt)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1622,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1623,1
    - Dst: SSL*::ctx::client_hello_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1631,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1639,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1647,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1659,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1671,1
    - Dst: ssl_choose_server_version
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1672,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1674,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1681,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1685,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1691,1
    - Dst: RECORD_LAYER_processed_read_pending
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1691,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1692,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1698,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1700,1
    - Dst: SSL*::ctx::app_verify_cookie_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1702,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1704,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1712,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1714,1
    - Dst: ssl_choose_server_version
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1722,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1725,1
    - Dst: ssl_cache_cipherlist
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1734,1
    - Dst: bytes_to_cipher_list
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1736,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1745,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1746,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1747,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1750,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1756,1
    - Dst: ssl_check_version_downgrade
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1757,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1765,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1774,1
    - Dst: ssl3_choose_cipher
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1776,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1776,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1779,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1791,1
    - Dst: tls_parse_extension
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1800,1
    - Dst: ssl_get_new_session
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1826,1
    - Dst: ssl_get_prev_session
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1831,1
    - Dst: ssl_get_new_session
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1840,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1847,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1848,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1857,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1862,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1862,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1864,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1865,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1867,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1868,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1868,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1880,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1894,1
    - Dst: ssl_check_for_safari
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1902,1
    - Dst: tls_parse_all_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1906,1
    - Dst: ssl_fill_hello_random
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1921,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1922,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1931,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1932,1
    - Dst: SSL*::ext::session_secret_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1942,1
    - Dst: ssl3_choose_cipher
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1956,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1957,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1959,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1966,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1967,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1968,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1969,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1979,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1986,1
    - Dst: ssl_allow_compression
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:1999,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2000,1
    - Dst: sk_SSL_COMP_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2006,1
    - Dst: sk_SSL_COMP_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2007,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2014,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2025,1
    - Dst: ssl_allow_compression
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2032,1
    - Dst: sk_SSL_COMP_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2037,1
    - Dst: sk_SSL_COMP_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2039,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2061,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2072,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2073,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2076,1
    - Dst: tls1_set_server_sigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2090,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2096,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2097,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2098,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2099,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2103,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2104,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2105,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2106,1
    CyclomaticComplexity: 118
    EdgeCount: 118
    ICount: 291
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 1611
    functionDepth: 5
    functionLinenumber: 1611
    functionLinenumberEnd: 2110
    functionName: tls_early_post_process_client_hello
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_free
    - DTLS_VERSION_LT
    - sk_SSL_CIPHER_dup
    - sk_SSL_CIPHER_value
    - ssl3_choose_cipher
    - SSL*::ctx::client_hello_cb
    - STACK_OF
    - SSL_IS_DTLS
    - SSL_CIPHER_get_name
    - SSL_get_options
    - fprintf
    - memcmp
    - OPENSSL_free
    - memcpy
    - ssl_allow_compression
    - ssl_check_version_downgrade
    - sk_SSL_COMP_value
    - SSL_get_ciphers
    - tls_parse_extension
    - sk_SSL_COMP_num
    - SSLfatal
    - RECORD_LAYER_processed_read_pending
    - sk_SSL_CIPHER_num
    - ssl_choose_server_version
    - SSL_IS_FIRST_HANDSHAKE
    - ssl_check_for_safari
    - ssl_cache_cipherlist
    - ssl_get_prev_session
    - tls_parse_all_extensions
    - SSL_IS_TLS13
    - SSL_CIPHER_get_id
    - SSL*::ext::session_secret_cb
    - SSL*::ctx::app_verify_cookie_cb
    - bytes_to_cipher_list
    - ssl_fill_hello_random
    - tls1_set_server_sigalgs
    - ssl_get_new_session
    linkageType: ''
    returnType: int
    signature: int tls_early_post_process_client_hello(SSL *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::ctx::ext::status_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2137,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2160
    functionName: tls_handle_status_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSL*::ctx::ext::status_cb
    - SSLfatal
    linkageType: ''
    returnType: int
    signature: int tls_handle_status_request(SSL *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::ctx::ext::alpn_select_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2178,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2179,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2181,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2194,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2205,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2206,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2211,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2214,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2225,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2166
    functionDepth: 2
    functionLinenumber: 2166
    functionLinenumberEnd: 2242
    functionName: tls_handle_alpn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - memcmp
    - ossl_assert
    - OPENSSL_free
    - SSL*::ctx::ext::alpn_select_cb
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int tls_handle_alpn(SSL *s)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: tls_early_post_process_client_hello
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2249,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2259,1
    - Dst: SSL*::cert::cert_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2262,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2264,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2277,1
    - Dst: ssl3_choose_cipher
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2279,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2279,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2282,1
    - Dst: tls_choose_sigalg
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2290,1
    - Dst: SSL*::not_resumable_session_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2297,1
    - Dst: tls_handle_status_request
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2325,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2335,1
    - Dst: tls_handle_alpn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2335,1
    - Dst: ssl_check_srp_ext_ClientHello
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2345,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2244
    functionDepth: 10
    functionLinenumber: 2244
    functionLinenumberEnd: 2362
    functionName: tls_post_process_client_hello
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - tls_handle_status_request
    - tls_early_post_process_client_hello
    - ssl3_choose_cipher
    - ssl_check_srp_ext_ClientHello
    - SSL_IS_TLS13
    - SSL*::cert::cert_cb
    - SSL_get_ciphers
    - SSL*::not_resumable_session_cb
    - tls_handle_alpn
    - tls_choose_sigalg
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE tls_post_process_client_hello(SSL *s, WORK_STATE wst)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2370,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2373,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2378,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2382,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2419,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2434,1
    - Dst: SSL*::method::put_cipher_by_char
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2435,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2436,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2437,1
    - Dst: tls_construct_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2442,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2445,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2455,1
    - Dst: create_synthetic_message_hash
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2463,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2468,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2364
    functionDepth: 4
    functionLinenumber: 2364
    functionLinenumberEnd: 2474
    functionName: tls_construct_server_hello
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u8
    - create_synthetic_message_hash
    - SSL_SESSION_free
    - WPACKET_put_bytes_u16
    - SSL*::method::put_cipher_by_char
    - SSL_IS_TLS13
    - WPACKET_put_bytes_u8
    - tls_construct_extensions
    - WPACKET_memcpy
    - ssl3_digest_cached_records
    linkageType: ''
    returnType: int
    signature: int tls_construct_server_hello(SSL *s, WPACKET *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2476
    functionDepth: 0
    functionLinenumber: 2476
    functionLinenumberEnd: 2485
    functionName: tls_construct_server_done
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - ssl3_digest_cached_records
    linkageType: ''
    returnType: int
    signature: int tls_construct_server_done(SSL *s, WPACKET *pkt)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2501,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2505,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2506,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2512,1
    - Dst: ssl_get_auto_dh
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2533,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2534,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2536,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2537,1
    - Dst: EVP_PKEY_assign_DH
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2542,1
    - Dst: SSL*::cert::dh_tmp_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2548,1
    - Dst: ssl_dh_to_pkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2549,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2551,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2559,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2564,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2565,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2566,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2572,1
    - Dst: ssl_generate_pkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2578,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2584,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2586,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2592,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2595,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2596,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2603,1
    - Dst: tls1_shared_group
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2610,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2612,1
    - Dst: ssl_generate_pkey_group
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2617,1
    - Dst: EVP_PKEY_get1_tls_encodedpoint
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2625,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2628,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2648,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2660,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2670,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2678,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2685,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2687,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2701,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2704,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2707,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2720,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2720,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2723,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2724,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2729,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2733,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2733,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2734,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2735,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2741,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2752,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2753,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2754,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2755,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2756,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2761,1
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2774,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2776,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2782,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2783,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2789,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2789,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2790,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2801,1
    - Dst: WPACKET_sub_reserve_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2802,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2803,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2804,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2810,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2811,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2812,1
    - Dst: construct_key_exchange_tbs
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2818,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2825,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2826,1
    - Dst: WPACKET_sub_allocate_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2827,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2829,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2836,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2843,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2845,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 212
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2487
    functionDepth: 6
    functionLinenumber: 2487
    functionLinenumberEnd: 2847
    functionName: tls_construct_server_key_exchange
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_md
    - WPACKET_get_length
    - EVP_DigestSign
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - construct_key_exchange_tbs
    - DH_free
    - WPACKET_sub_allocate_bytes_u16
    - EVP_MD_CTX_free
    - EVP_PKEY_new
    - SSL_USE_SIGALGS
    - ssl_generate_pkey_group
    - WPACKET_sub_memcpy_u16
    - OPENSSL_free
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u8
    - tls1_shared_group
    - WPACKET_start_sub_packet_u16
    - EVP_DigestSignInit
    - DH_get0_key
    - ssl_get_auto_dh
    - DH_get0_pqg
    - EVP_PKEY_size
    - EVP_PKEY_assign_DH
    - SSLfatal
    - ssl_generate_pkey
    - EVP_MD_CTX_new
    - EVP_PKEY_get1_tls_encodedpoint
    - ssl_dh_to_pkey
    - ssl_security
    - BN_bn2bin
    - WPACKET_close
    - EVP_PKEY_get0_DH
    - WPACKET_get_total_written
    - SSL*::cert::dh_tmp_cb
    - WPACKET_allocate_bytes
    - WPACKET_sub_memcpy_u8
    - EVP_PKEY_CTX_set_rsa_padding
    - WPACKET_sub_reserve_bytes_u16
    - BN_num_bytes
    - memset
    - WPACKET_put_bytes_u8
    - EVP_PKEY_free
    - EVP_PKEY_security_bits
    - strlen
    linkageType: ''
    returnType: int
    signature: int tls_construct_server_key_exchange(SSL *s, WPACKET *pkt)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2851,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2854,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2856,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2857,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2858,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2859,1
    - Dst: tls13_restore_handshake_digest_for_pha
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2865,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2870,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2871,1
    - Dst: tls_construct_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2878,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2888,1
    - Dst: ssl3_get_req_cert_type
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2889,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2889,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2890,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2895,1
    - Dst: tls12_get_psigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2897,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2899,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2900,1
    - Dst: tls12_copy_sigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2901,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2902,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2903,1
    - Dst: construct_ca_names
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2910,1
    - Dst: get_ca_names
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2910,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2849
    functionDepth: 5
    functionLinenumber: 2849
    functionLinenumberEnd: 2919
    functionName: tls_construct_certificate_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - get_ca_names
    - tls13_restore_handshake_digest_for_pha
    - tls12_get_psigalgs
    - construct_ca_names
    - SSL_USE_SIGALGS
    - OPENSSL_malloc
    - ssl3_get_req_cert_type
    - RAND_bytes
    - OPENSSL_free
    - WPACKET_start_sub_packet_u8
    - WPACKET_start_sub_packet_u16
    - SSLfatal
    - tls12_copy_sigalgs
    - WPACKET_close
    - SSL_IS_TLS13
    - WPACKET_sub_memcpy_u8
    - WPACKET_set_flags
    - WPACKET_put_bytes_u8
    - tls_construct_extensions
    linkageType: ''
    returnType: int
    signature: int tls_construct_certificate_request(SSL *s, WPACKET *pkt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2928,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2929,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2933,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2934,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2939,1
    - Dst: PACKET_strndup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2944,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2945,1
    - Dst: SSL*::psk_server_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2950,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2954,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2961,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2967,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2968,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2969,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2972,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:2982,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2921
    functionDepth: 7
    functionLinenumber: 2921
    functionLinenumberEnd: 2986
    functionName: tls_process_cke_psk_preamble
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - SSLfatal
    - PACKET_remaining
    - OPENSSL_free
    - PACKET_strndup
    - OPENSSL_cleanse
    - OPENSSL_memdup
    - SSL*::psk_server_callback
    linkageType: ''
    returnType: int
    signature: int tls_process_cke_psk_preamble(SSL *s, PACKET *pkt)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3000,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3002,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3011,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3012,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3013,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3025,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3026,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3031,1
    - Dst: RSA_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3031,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3033,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3046,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3048,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3058,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3058,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3059,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3062,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3075,1
    - Dst: constant_time_eq_int_8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3081,1
    - Dst: constant_time_eq_int_8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3082,1
    - Dst: constant_time_is_zero_8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3084,1
    - Dst: constant_time_is_zero_8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3086,1
    - Dst: constant_time_eq_8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3097,1
    - Dst: constant_time_eq_8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3100,1
    - Dst: constant_time_eq_8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3114,1
    - Dst: constant_time_eq_8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3117,1
    - Dst: constant_time_select_8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3136,1
    - Dst: ssl_generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3149,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3153,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 2988
    functionDepth: 7
    functionLinenumber: 2988
    functionLinenumberEnd: 3157
    functionName: tls_process_cke_rsa
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_get_length_prefixed_2
    - OPENSSL_malloc
    - RAND_priv_bytes
    - constant_time_eq_int_8
    - RSA_size
    - constant_time_eq_8
    - ssl_generate_master_secret
    - PACKET_remaining
    - constant_time_select_8
    - OPENSSL_free
    - RSA_private_decrypt
    - constant_time_is_zero_8
    - EVP_PKEY_get0_RSA
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: int tls_process_cke_rsa(SSL *s, PACKET *pkt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3170,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3170,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3171,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3177,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3182,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3183,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3187,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3189,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3193,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3194,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3195,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3200,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3201,1
    - Dst: DH_set0_key
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3202,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3203,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3205,1
    - Dst: ssl_derive
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3209,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3215,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3218,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3222,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3159
    functionDepth: 4
    functionLinenumber: 3159
    functionLinenumberEnd: 3226
    functionName: tls_process_cke_dhe
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - DH_set0_key
    - EVP_PKEY_free
    - PACKET_remaining
    - PACKET_get_bytes
    - BN_bin2bn
    - BN_free
    - ssl_derive
    - EVP_PKEY_new
    - EVP_PKEY_copy_parameters
    - EVP_PKEY_get0_DH
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int tls_process_cke_dhe(SSL *s, PACKET *pkt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3235,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3237,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3250,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3250,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3251,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3252,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3257,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3262,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3263,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3264,1
    - Dst: EVP_PKEY_set1_tls_encodedpoint
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3268,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3269,1
    - Dst: ssl_derive
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3275,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3281,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3284,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3289,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3228
    functionDepth: 4
    functionLinenumber: 3228
    functionLinenumberEnd: 3293
    functionName: tls_process_cke_ecdhe
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_get_1
    - EVP_PKEY_free
    - PACKET_remaining
    - PACKET_get_bytes
    - ssl_derive
    - EVP_PKEY_new
    - EVP_PKEY_copy_parameters
    - EVP_PKEY_set1_tls_encodedpoint
    linkageType: ''
    returnType: int
    signature: int tls_process_cke_ecdhe(SSL *s, PACKET *pkt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3301,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3302,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3303,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3307,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3308,1
    - Dst: BN_ucmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3312,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3312,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3313,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3317,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3318,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3320,1
    - Dst: srp_generate_server_master_secret
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3325,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3333,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3295
    functionDepth: 8
    functionLinenumber: 3295
    functionLinenumberEnd: 3337
    functionName: tls_process_cke_srp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - srp_generate_server_master_secret
    - OPENSSL_free
    - PACKET_get_bytes
    - OPENSSL_strdup
    - BN_bin2bn
    - BN_is_zero
    - BN_ucmp
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int tls_process_cke_srp(SSL *s, PACKET *pkt)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3369,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3371,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3375,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3376,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3386,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3388,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3389,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3392,1
    - Dst: d2i_GOST_KX_MESSAGE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3395,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3395,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3398,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3399,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3404,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3404,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3405,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3410,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3411,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3419,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3421,1
    - Dst: ssl_generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3426,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3432,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3438,1
    - Dst: GOST_KX_MESSAGE_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3439,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3443,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3447
      start: 3339
    functionDepth: 3
    functionLinenumber: 3339
    functionLinenumberEnd: 3447
    functionName: tls_process_cke_gost
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - SSLfatal
    - ASN1_TYPE_get
    - ssl_generate_master_secret
    - PACKET_remaining
    - GOST_KX_MESSAGE_free
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_CTX_free
    - ERR_clear_error
    - d2i_GOST_KX_MESSAGE
    - PACKET_forward
    - X509_get0_pubkey
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: int tls_process_cke_gost(SSL *s, PACKET *pkt)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tls_process_cke_psk_preamble
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3456,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3463,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3464,1
    - Dst: ssl_generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3470,1
    - Dst: tls_process_cke_rsa
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3475,1
    - Dst: tls_process_cke_dhe
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3480,1
    - Dst: tls_process_cke_ecdhe
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3485,1
    - Dst: tls_process_cke_srp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3490,1
    - Dst: tls_process_cke_gost
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3495,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3500,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3449
    functionDepth: 9
    functionLinenumber: 3449
    functionLinenumberEnd: 3513
    functionName: tls_process_client_key_exchange
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - ssl_generate_master_secret
    - tls_process_cke_gost
    - tls_process_cke_ecdhe
    - PACKET_remaining
    - tls_process_cke_srp
    - tls_process_cke_rsa
    - tls_process_cke_dhe
    - tls_process_cke_psk_preamble
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_client_key_exchange(SSL *s, PACKET *pkt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3519,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3527,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3535,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3539,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3545,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3545,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3556,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3563,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3572,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3579
      start: 3515
    functionDepth: 3
    functionLinenumber: 3515
    functionLinenumberEnd: 3579
    functionName: tls_post_process_client_key_exchange
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - SSL_export_keying_material
    - memcpy
    - SSL_get_wbio
    - BIO_ctrl
    - SSL_IS_DTLS
    - ssl3_digest_cached_records
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE tls_post_process_client_key_exchange(SSL *s, WORK_STATE
      wst)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3588,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3600,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3601,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3606,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3606,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3607,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3609,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3610,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3615,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3616,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3617,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3622,1
    - Dst: PACKET_get_net_3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3623,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3624,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3625,1
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3632,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3634,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3639,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3645,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3649,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3650,1
    - Dst: tls_collect_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3655,1
    - Dst: tls_parse_all_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3658,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3660,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3661,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3664,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3667,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3668,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3676,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3679,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3687,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3693,1
    - Dst: ssl_verify_cert_chain
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3699,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3701,1
    - Dst: ssl_x509err2alert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3701,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3707,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3711,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3711,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3713,1
    - Dst: ssl_session_dup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3729,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3730,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3736,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3740,1
    - Dst: sk_X509_shift
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3741,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3744,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3751,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3751,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3763,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3764,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3778,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3779,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 122
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3781
      start: 3581
    functionDepth: 4
    functionLinenumber: 3581
    functionLinenumberEnd: 3781
    functionName: tls_process_client_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_equal
    - PACKET_remaining
    - SSL_SESSION_free
    - STACK_OF
    - ssl_x509err2alert
    - X509_get0_pubkey
    - ssl3_digest_cached_records
    - tls_collect_extensions
    - X509_free
    - PACKET_get_length_prefixed_3
    - OPENSSL_free
    - PACKET_get_bytes
    - SSLfatal
    - ssl_verify_cert_chain
    - tls_parse_all_extensions
    - SSL_IS_TLS13
    - ssl_handshake_hash
    - PACKET_get_net_3
    - sk_X509_pop_free
    - d2i_X509
    - PACKET_get_length_prefixed_1
    - sk_X509_push
    - sk_X509_shift
    - sk_X509_new_null
    - ssl_session_dup
    - sk_X509_num
    - sk_X509_value
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_client_certificate(SSL *s, PACKET *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3788,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3797,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3797,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3798,1
    - Dst: ssl3_output_cert_chain
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3802,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3808
      start: 3783
    functionDepth: 1
    functionLinenumber: 3783
    functionLinenumberEnd: 3808
    functionName: tls_construct_server_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl3_output_cert_chain
    - SSL_IS_TLS13
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: int
    signature: int tls_construct_server_certificate(SSL *s, WPACKET *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u32
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3819,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3820,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3822,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3827,1
    - Dst: WPACKET_put_bytes_u32
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3828,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3829,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3830,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3837,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3838,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - s
    - pkt
    - age_add
    - tick_nonce
    argTypes:
    - SSL*
    - WPACKET*
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3810
    functionDepth: 1
    functionLinenumber: 3810
    functionLinenumberEnd: 3844
    functionName: create_ticket_prequel
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u8
    - WPACKET_put_bytes_u32
    - WPACKET_start_sub_packet_u16
    - SSL_IS_TLS13
    linkageType: ''
    returnType: int
    signature: "int create_ticket_prequel(SSL *s, WPACKET *pkt, uint32_t age_add,\n
      \                                unsigned char *tick_nonce)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: i2d_SSL_SESSION
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3864,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3870,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3874,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3876,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3881,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3882,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3884,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3890,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3891,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3900,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3902,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3907,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3910,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3912,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3916,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3917,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3919,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3922,1
    - Dst: SSL_CTX*::ext::ticket_key_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3930,1
    - Dst: WPACKET_put_bytes_u32
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3936,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3937,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3938,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3943,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3944,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3945,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3949,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3953,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3955,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3957,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3958,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3959,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3961,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3963,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3964,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3968,1
    - Dst: create_ticket_prequel
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3972,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3977,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3979,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3981,1
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3982,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3985,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3986,1
    - Dst: EVP_EncryptFinal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3988,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3989,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3992,1
    - Dst: HMAC_Update
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3993,1
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3996,1
    - Dst: HMAC_Final
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3997,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:3999,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4001,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4007,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4008,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4015,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4016,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4017,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 96
    argCount: 4
    argNames:
    - s
    - pkt
    - age_add
    - tick_nonce
    argTypes:
    - SSL*
    - WPACKET*
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4019
      start: 3846
    functionDepth: 5
    functionLinenumber: 3846
    functionLinenumberEnd: 4019
    functionName: construct_stateless_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    - WPACKET_put_bytes_u32
    - WPACKET_reserve_bytes
    - OPENSSL_malloc
    - HMAC_Init_ex
    - HMAC_Final
    - RAND_bytes
    - WPACKET_put_bytes_u16
    - OPENSSL_free
    - memcpy
    - EVP_sha256
    - d2i_SSL_SESSION
    - i2d_SSL_SESSION
    - WPACKET_memcpy
    - SSLfatal
    - HMAC_CTX_new
    - HMAC_Update
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_new
    - WPACKET_close
    - EVP_CIPHER_CTX_iv_length
    - EVP_aes_256_cbc
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_CTX_free
    - WPACKET_get_total_written
    - WPACKET_allocate_bytes
    - HMAC_CTX_free
    - SSL_CTX*::ext::ticket_key_cb
    - create_ticket_prequel
    - EVP_EncryptFinal
    - EVP_EncryptInit_ex
    linkageType: ''
    returnType: int
    signature: "int construct_stateless_ticket(SSL *s, WPACKET *pkt, uint32_t age_add,\n
      \                                     unsigned char *tick_nonce)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_ticket_prequel
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4024,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4029,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4031,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - s
    - pkt
    - age_add
    - tick_nonce
    argTypes:
    - SSL*
    - WPACKET*
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4038
      start: 4021
    functionDepth: 3
    functionLinenumber: 4021
    functionLinenumberEnd: 4038
    functionName: construct_stateful_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - create_ticket_prequel
    - WPACKET_close
    - WPACKET_memcpy
    linkageType: ''
    returnType: int
    signature: "int construct_stateful_ticket(SSL *s, WPACKET *pkt, uint32_t age_add,\n
      \                                    unsigned char *tick_nonce)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4051,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4055,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4056,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4059,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4060,1
    - Dst: ssl_session_dup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4073,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4080,1
    - Dst: ssl_generate_session_id
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4084,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4088,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4089,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4102,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4114,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4116,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4118,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4120,1
    - Dst: SSL_CTX*::generate_ticket_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4131,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4139,1
    - Dst: construct_stateful_ticket
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4143,1
    - Dst: construct_stateless_ticket
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4147,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4153,1
    - Dst: tls_construct_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4154,1
    - Dst: ssl_update_cache
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4167,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 76
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4040
    functionDepth: 6
    functionLinenumber: 4040
    functionLinenumberEnd: 4173
    functionName: tls_construct_new_session_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_CTX*::generate_ticket_cb
    - tls_construct_extensions
    - SSL_SESSION_free
    - construct_stateful_ticket
    - ssl_session_dup
    - RAND_bytes
    - ssl_generate_session_id
    - tls13_hkdf_expand
    - OPENSSL_free
    - SSL_IS_TLS13
    - ssl_handshake_md
    - time
    - OPENSSL_memdup
    - EVP_MD_size
    - construct_stateless_ticket
    - ssl_update_cache
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int tls_construct_new_session_ticket(SSL *s, WPACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4181,1
    - Dst: WPACKET_sub_memcpy_u24
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4182,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4190
      start: 4179
    functionDepth: 1
    functionLinenumber: 4179
    functionLinenumberEnd: 4190
    functionName: tls_construct_cert_status_body
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u24
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: int
    signature: int tls_construct_cert_status_body(SSL *s, WPACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls_construct_cert_status_body
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4200
      start: 4192
    functionDepth: 2
    functionLinenumber: 4192
    functionLinenumberEnd: 4200
    functionName: tls_construct_cert_status
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - tls_construct_cert_status_body
    linkageType: ''
    returnType: int
    signature: int tls_construct_cert_status(SSL *s, WPACKET *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4219,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4220,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4221,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4222,1
    - Dst: PACKET_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4227,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4237
      start: 4207
    functionDepth: 4
    functionLinenumber: 4207
    functionLinenumberEnd: 4237
    functionName: tls_process_next_proto
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - PACKET_get_length_prefixed_1
    - PACKET_remaining
    - SSLfatal
    - PACKET_memdup
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_next_proto(SSL *s, PACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls_construct_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4249
      start: 4240
    functionDepth: 1
    functionLinenumber: 4240
    functionLinenumberEnd: 4249
    functionName: tls_construct_encrypted_extensions
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - tls_construct_extensions
    linkageType: ''
    returnType: int
    signature: int tls_construct_encrypted_extensions(SSL *s, WPACKET *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4253,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4254,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4261,1
    - Dst: RECORD_LAYER_processed_read_pending
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4270,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4271,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c:4278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4285
      start: 4251
    functionDepth: 2
    functionLinenumber: 4251
    functionLinenumberEnd: 4285
    functionName: tls_process_end_of_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - RECORD_LAYER_processed_read_pending
    - SSL*::method::ssl3_enc::change_cipher_state
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_end_of_early_data(SSL *s, PACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: cert_req_allowed
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline cert_req_allowed(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: key_exchange_expected
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int key_exchange_expected(SSL *s)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:169,1
    - Dst: tls13_restore_handshake_digest_for_pha
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:177,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 2
    argNames:
    - s
    - mt
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 190
    functionName: ossl_statem_client13_read_transition
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - tls13_restore_handshake_digest_for_pha
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: int ossl_statem_client13_read_transition(SSL *s, int mt)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:210,1
    - Dst: ossl_statem_client13_read_transition
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:211,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:226,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:258,1
    - Dst: key_exchange_expected
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:281,1
    - Dst: cert_req_allowed
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:291,1
    - Dst: key_exchange_expected
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:314,1
    - Dst: cert_req_allowed
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:328,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:379,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:388,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:389,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:390,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:393,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 147
    argCount: 2
    argNames:
    - s
    - mt
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 397
    functionName: ossl_statem_client_read_transition
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - cert_req_allowed
    - SSL_get_rbio
    - SSL_IS_DTLS
    - SSL_IS_TLS13
    - BIO_clear_retry_flags
    - ossl_statem_client13_read_transition
    - key_exchange_expected
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int ossl_statem_client_read_transition(SSL *s, int mt)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:416,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:430,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:432,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 491
    functionName: ossl_statem_client13_write_transition
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ossl_assert
    linkageType: ''
    returnType: WRITE_TRAN
    signature: WRITE_TRAN ossl_statem_client13_write_transition(SSL *s)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:506,1
    - Dst: ossl_statem_client13_write_transition
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:507,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:512,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:614,1
    - Dst: ssl3_renegotiate_check
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:650,1
    - Dst: tls_setup_handshake
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:651,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 95
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 661
    functionName: ossl_statem_client_write_transition
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls_setup_handshake
    - ssl3_renegotiate_check
    - SSL_IS_TLS13
    - SSL_IS_DTLS
    - ossl_statem_client13_write_transition
    linkageType: ''
    returnType: WRITE_TRAN
    signature: WRITE_TRAN ossl_statem_client_write_transition(SSL *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:678,1
    - Dst: ssl3_init_finished_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:680,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:688,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:697,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:697,1
    - Dst: dtls_wait_for_dry
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:699,1
    - Dst: tls_finish_handshake
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:717,1
    - Dst: tls_finish_handshake
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:721,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 667
    functionDepth: 5
    functionLinenumber: 667
    functionLinenumberEnd: 725
    functionName: ossl_statem_client_pre_work
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - tls_finish_handshake
    - dtls_wait_for_dry
    - BIO_dgram_is_sctp
    - SSL_get_wbio
    - ssl3_init_finished_mac
    - SSL_IS_DTLS
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE ossl_statem_client_pre_work(SSL *s, WORK_STATE wst)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: tls13_change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:751,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:758,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:762,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:773,1
    - Dst: tls_client_key_exchange_post_work
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:778,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:785,1
    - Dst: tls13_change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:794,1
    - Dst: SSL*::method::ssl3_enc::setup_key_block
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:808,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:813,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:819,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:826,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:826,1
    - Dst: dtls1_reset_seq_numbers
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:831,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:837,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:842,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:842,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:846,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:849,1
    - Dst: tls13_save_handshake_digest_for_pha
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:850,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:855,1
    - Dst: statem_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:865,1
    - Dst: tls13_update_key
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:867,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 81
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 731
    functionDepth: 8
    functionLinenumber: 731
    functionLinenumberEnd: 875
    functionName: ossl_statem_client_post_work
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - dtls1_reset_seq_numbers
    - tls13_update_key
    - SSL*::method::ssl3_enc::setup_key_block
    - tls13_change_cipher_state
    - SSL*::method::ssl3_enc::change_cipher_state
    - SSL_get_wbio
    - BIO_ctrl
    - SSL_IS_DTLS
    - SSL_IS_TLS13
    - statem_flush
    - tls_client_key_exchange_post_work
    - EVP_CIPHER_CTX_free
    - tls13_save_handshake_digest_for_pha
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE ossl_statem_client_post_work(SSL *s, WORK_STATE wst)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:893,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:899,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - s
    - pkt
    - confunc
    - mt
    argTypes:
    - SSL*
    - WPACKET*
    - confunc_f*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 954
    functionName: ossl_statem_client_construct_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: "int ossl_statem_client_construct_message(SSL *s, WPACKET *pkt,\n                                         confunc_f
      *confunc, int *mt)"
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 1015
    functionName: ossl_statem_client_max_message_size
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_statem_client_max_message_size(SSL *s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1027,1
    - Dst: tls_process_server_hello
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1033,1
    - Dst: dtls_process_hello_verify
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1036,1
    - Dst: tls_process_server_certificate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1039,1
    - Dst: tls_process_cert_verify
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1042,1
    - Dst: tls_process_cert_status
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1045,1
    - Dst: tls_process_key_exchange
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1048,1
    - Dst: tls_process_certificate_request
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1051,1
    - Dst: tls_process_server_done
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1054,1
    - Dst: tls_process_change_cipher_spec
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1057,1
    - Dst: tls_process_new_session_ticket
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1060,1
    - Dst: tls_process_finished
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1063,1
    - Dst: tls_process_hello_req
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1066,1
    - Dst: tls_process_encrypted_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1069,1
    - Dst: tls_process_key_update
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1074
    functionName: ossl_statem_client_process_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls_process_certificate_request
    - tls_process_server_certificate
    - tls_process_finished
    - tls_process_cert_status
    - dtls_process_hello_verify
    - tls_process_server_done
    - tls_process_change_cipher_spec
    - tls_process_key_update
    - tls_process_hello_req
    - tls_process_key_exchange
    - tls_process_cert_verify
    - tls_process_new_session_ticket
    - tls_process_server_hello
    - tls_process_encrypted_extensions
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN ossl_statem_client_process_message(SSL *s, PACKET
      *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1087,1
    - Dst: tls_prepare_client_certificate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1096
    functionName: ossl_statem_client_post_process_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls_prepare_client_certificate
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE ossl_statem_client_post_process_message(SSL *s, WORK_STATE
      wst)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ssl_set_client_hello_version
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1110,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1112,1
    - Dst: ssl_version_supported
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1118,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1119,1
    - Dst: ssl_get_new_session
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1121,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1134,1
    - Dst: ssl_fill_hello_random
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1147,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1149,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1187,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1188,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1189,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1203,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1204,1
    - Dst: assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1213,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1217,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1220,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1221,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1223,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1224,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1230,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1232,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1234,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1241,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1242,1
    - Dst: ssl_cipher_list_to_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1247,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1247,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1251,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1252,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1258,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1259,1
    - Dst: ssl_allow_compression
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1264,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1266,1
    - Dst: sk_SSL_COMP_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1267,1
    - Dst: sk_SSL_COMP_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1269,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1270,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1271,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1280,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1280,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1281,1
    - Dst: tls_construct_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1287,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 94
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts:
    - condition: (s->session->session_id_length <= sizeof(s->session->session_id))
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    constantsTouched: []
    func_position:
      end: 1293
      start: 1098
    functionDepth: 5
    functionLinenumber: 1098
    functionLinenumberEnd: 1293
    functionName: tls_construct_client_hello
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSL_IS_DTLS
    - RAND_bytes
    - WPACKET_put_bytes_u16
    - memcpy
    - WPACKET_start_sub_packet_u8
    - WPACKET_start_sub_packet_u16
    - ssl_allow_compression
    - sk_SSL_COMP_value
    - SSL_get_ciphers
    - sk_SSL_COMP_num
    - WPACKET_memcpy
    - SSLfatal
    - SSL_SESSION_is_resumable
    - ssl_version_supported
    - WPACKET_close
    - assert
    - WPACKET_sub_memcpy_u8
    - ssl_cipher_list_to_bytes
    - ssl_set_client_hello_version
    - ssl_fill_hello_random
    - WPACKET_put_bytes_u8
    - tls_construct_extensions
    - ssl_get_new_session
    linkageType: ''
    returnType: int
    signature: int tls_construct_client_hello(SSL *s, WPACKET *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1300,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1301,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1302,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1307,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1309,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1314,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1295
    functionDepth: 4
    functionLinenumber: 1295
    functionLinenumberEnd: 1322
    functionName: dtls_process_hello_verify
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - PACKET_get_length_prefixed_1
    - SSLfatal
    - PACKET_remaining
    - PACKET_copy_bytes
    - PACKET_forward
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN dtls_process_hello_verify(SSL *s, PACKET *pkt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1326,1
    - Dst: ssl_get_cipher_by_char
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1330,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1333,1
    - Dst: ssl_cipher_disabled
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1341,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1342,1
    - Dst: ssl_get_ciphers_by_id
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1347,1
    - Dst: sk_SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1348,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1351,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1356,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1359,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1372,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1377,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1378,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1379,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1389,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - s
    - cipherchars
    argTypes:
    - SSL*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1324
    functionDepth: 2
    functionLinenumber: 1324
    functionLinenumberEnd: 1397
    functionName: set_client_ciphersuite
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl_cipher_disabled
    - STACK_OF
    - sk_SSL_CIPHER_find
    - ssl_get_ciphers_by_id
    - SSL_IS_TLS13
    - ssl_get_cipher_by_char
    - ssl_md
    linkageType: ''
    returnType: int
    signature: int set_client_ciphersuite(SSL *s, const unsigned char *cipherchars)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1413,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1414,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1422,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1423,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1423,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1426,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1427,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1432,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1433,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1440,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1441,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1445,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1448,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1453,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1454,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1459,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1460,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1466,1
    - Dst: PACKET_null_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1467,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1468,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1469,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1470,1
    - Dst: tls_collect_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1476,1
    - Dst: ssl_choose_client_version
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1484,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1490,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1492,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1499,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1499,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1501,1
    - Dst: set_client_ciphersuite
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1508,1
    - Dst: tls_process_as_hello_retry_request
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1513,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1520,1
    - Dst: tls_validate_all_contexts
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1522,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1523,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1530,1
    - Dst: RECORD_LAYER_processed_read_pending
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1535,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1536,1
    - Dst: tls_parse_extension
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1543,1
    - Dst: SSL*::ext::session_secret_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1571,1
    - Dst: ssl_get_cipher_by_char
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1578,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1580,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1588,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1588,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1595,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1597,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1611,1
    - Dst: ssl_get_new_session
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1612,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1625,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1629,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1629,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1636,1
    - Dst: set_client_ciphersuite
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1647,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1654,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1663,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1669,1
    - Dst: ssl_allow_compression
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1675,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1676,1
    - Dst: ssl3_comp_find
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1680,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1684,1
    - Dst: tls_parse_all_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1692,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1698,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1707,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1715,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1719,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1724,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1724,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1734,1
    - Dst: SSL*::method::ssl3_enc::setup_key_block
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1735,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1736,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1742,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1745,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 200
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1399
    functionDepth: 5
    functionLinenumber: 1399
    functionLinenumberEnd: 1747
    functionName: tls_process_server_hello
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - PACKET_get_1
    - PACKET_remaining
    - SSL_export_keying_material
    - ssl3_comp_find
    - BIO_ctrl
    - SSL_IS_DTLS
    - PACKET_forward
    - ssl_choose_client_version
    - ssl_get_cipher_by_char
    - tls_collect_extensions
    - PACKET_get_net_2
    - memcmp
    - OPENSSL_free
    - PACKET_as_length_prefixed_2
    - PACKET_get_bytes
    - memcpy
    - ssl_allow_compression
    - tls_validate_all_contexts
    - tls_parse_extension
    - set_client_ciphersuite
    - SSLfatal
    - PACKET_null_init
    - RECORD_LAYER_processed_read_pending
    - tls_parse_all_extensions
    - PACKET_copy_bytes
    - SSL_IS_TLS13
    - SSL*::ext::session_secret_cb
    - PACKET_get_length_prefixed_1
    - tsan_counter
    - SSL*::method::ssl3_enc::setup_key_block
    - tls_process_as_hello_retry_request
    - SSL*::method::ssl3_enc::change_cipher_state
    - SSL_get_wbio
    - ssl_get_new_session
    - PACKET_data
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_server_hello(SSL *s, PACKET *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1758,1
    - Dst: tls_collect_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1761,1
    - Dst: tls_parse_all_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1763,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1769,1
    - Dst: defined
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1773,1
    - Dst: defined
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1773,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1781,1
    - Dst: create_synthetic_message_hash
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1791,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1802,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1810,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - s
    - extpkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1749
    functionDepth: 5
    functionLinenumber: 1749
    functionLinenumberEnd: 1812
    functionName: tls_process_as_hello_retry_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - ssl3_finish_mac
    - create_synthetic_message_hash
    - OPENSSL_free
    - tls_parse_all_extensions
    - defined
    - EVP_CIPHER_CTX_free
    - tls_collect_extensions
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: "MSG_PROCESS_RETURN tls_process_as_hello_retry_request(SSL *s,\n                                                             PACKET
      *extpkt)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1821,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1827,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1828,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1833,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1833,1
    - Dst: PACKET_get_net_3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1835,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1836,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1837,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1838,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1842,1
    - Dst: PACKET_get_net_3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1843,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1844,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1845,1
    - Dst: d2i_X509
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1852,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1854,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1859,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1865,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1869,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1870,1
    - Dst: tls_collect_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1875,1
    - Dst: tls_parse_all_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1878,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1880,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1881,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1885,1
    - Dst: sk_X509_push
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1888,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1889,1
    - Dst: ssl_verify_cert_chain
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1897,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1913,1
    - Dst: ssl_x509err2alert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1913,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1918,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1920,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1930,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1933,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1935,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1937,1
    - Dst: ssl_cert_lookup_by_pkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1942,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1944,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1954,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1957,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1965,1
    - Dst: X509_up_ref
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1966,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1972,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1973,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1983,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1984,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 103
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1814
    functionDepth: 4
    functionLinenumber: 1814
    functionLinenumberEnd: 1986
    functionName: tls_process_server_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_get_1
    - PACKET_remaining
    - STACK_OF
    - ssl_x509err2alert
    - X509_get0_pubkey
    - tls_collect_extensions
    - X509_free
    - OPENSSL_free
    - PACKET_get_bytes
    - ERR_clear_error
    - X509_up_ref
    - SSLfatal
    - ssl_verify_cert_chain
    - EVP_PKEY_missing_parameters
    - tls_parse_all_extensions
    - SSL_IS_TLS13
    - ssl_handshake_hash
    - PACKET_get_net_3
    - sk_X509_pop_free
    - d2i_X509
    - ssl_cert_lookup_by_pkey
    - sk_X509_push
    - sk_X509_new_null
    - sk_X509_value
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_server_certificate(SSL *s, PACKET *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1995,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:1996,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2007,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2008,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2014,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2015,1
    - Dst: PACKET_strndup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2017,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2019,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2026,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 1988
    functionDepth: 4
    functionLinenumber: 1988
    functionLinenumberEnd: 2030
    functionName: tls_process_ske_psk_preamble
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - SSLfatal
    - PACKET_remaining
    - OPENSSL_free
    - PACKET_strndup
    linkageType: ''
    returnType: int
    signature: int tls_process_ske_psk_preamble(SSL *s, PACKET *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2037,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2038,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2039,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2040,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2041,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2048,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2048,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2049,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2051,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2051,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2052,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2054,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2054,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2055,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2057,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2057,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2058,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2059,1
    - Dst: srp_verify_server_param
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2064,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2071,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2075,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - s
    - pkt
    - pkey
    argTypes:
    - SSL*
    - PACKET*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2032
    functionDepth: 4
    functionLinenumber: 2032
    functionLinenumberEnd: 2079
    functionName: tls_process_ske_srp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_get_length_prefixed_1
    - SSLfatal
    - srp_verify_server_param
    - PACKET_remaining
    - BN_bin2bn
    - X509_get0_pubkey
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: int tls_process_ske_srp(SSL *s, PACKET *pkt, EVP_PKEY **pkey)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2092,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2093,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2094,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2095,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2100,1
    - Dst: DH_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2101,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2104,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2110,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2110,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2110,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2111,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2111,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2111,1
    - Dst: BN_bin2bn
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2113,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2113,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2114,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2116,1
    - Dst: BN_is_zero
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2122,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2123,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2128,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2129,1
    - Dst: DH_check_params
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2135,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2136,1
    - Dst: DH_set0_key
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2141,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2142,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2148,1
    - Dst: DH_security_bits
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2148,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2149,1
    - Dst: EVP_PKEY_assign_DH
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2154,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2155,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2167,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2173,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2174,1
    - Dst: BN_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2175,1
    - Dst: DH_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2176,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2177,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2181,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - s
    - pkt
    - pkey
    argTypes:
    - SSL*
    - PACKET*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2081
    functionDepth: 7
    functionLinenumber: 2081
    functionLinenumberEnd: 2185
    functionName: tls_process_ske_dhe
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - SSLfatal
    - DH_set0_key
    - EVP_PKEY_free
    - PACKET_remaining
    - DH_check_params
    - ssl_security
    - BN_bin2bn
    - DH_security_bits
    - BN_free
    - BN_is_zero
    - EVP_PKEY_new
    - DH_new
    - X509_get0_pubkey
    - EVP_PKEY_assign_DH
    - DH_free
    - PACKET_data
    - DH_set0_pqg
    linkageType: ''
    returnType: int
    signature: int tls_process_ske_dhe(SSL *s, PACKET *pkt, EVP_PKEY **pkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2198,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2198,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2199,1
    - Dst: tls1_check_group_id
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2208,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2209,1
    - Dst: ssl_generate_param_group
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2214,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2215,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2220,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2221,1
    - Dst: EVP_PKEY_set1_tls_encodedpoint
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2226,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2227,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2228,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2229,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2240,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2242,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2247,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - s
    - pkt
    - pkey
    argTypes:
    - SSL*
    - PACKET*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2187
    functionDepth: 4
    functionLinenumber: 2187
    functionLinenumberEnd: 2251
    functionName: tls_process_ske_ecdhe
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_get_length_prefixed_1
    - PACKET_data
    - PACKET_get_1
    - PACKET_remaining
    - tls1_check_group_id
    - X509_get0_pubkey
    - ssl_generate_param_group
    - EVP_PKEY_set1_tls_encodedpoint
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int tls_process_ske_ecdhe(SSL *s, PACKET *pkt, EVP_PKEY **pkey)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2266,1
    - Dst: tls_process_ske_psk_preamble
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2271,1
    - Dst: tls_process_ske_srp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2280,1
    - Dst: tls_process_ske_dhe
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2285,1
    - Dst: tls_process_ske_ecdhe
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2290,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2295,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2313,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2314,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2315,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2316,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2321,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2324,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2325,1
    - Dst: tls12_check_peer_sigalg
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2329,1
    - Dst: tls1_set_peer_legacy_sigalg
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2333,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2334,1
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2339,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2340,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2345,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2346,1
    - Dst: EVP_MD_name
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2347,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2350,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2351,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2352,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2356,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2358,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2366,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2368,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2373,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2375,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2380,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2381,1
    - Dst: SSL_USE_PSS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2385,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2386,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2387,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2389,1
    - Dst: construct_key_exchange_tbs
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2394,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2394,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2395,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2401,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2401,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2402,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2403,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2405,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2409,1
    - Dst: ssl3_check_cert_and_algorithm
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2416,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2417,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2424,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2425,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2433,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 132
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2253
    functionDepth: 8
    functionLinenumber: 2253
    functionLinenumberEnd: 2435
    functionName: tls_process_key_exchange
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - tls1_lookup_md
    - PACKET_get_length_prefixed_2
    - tls_process_ske_psk_preamble
    - PACKET_remaining
    - tls_process_ske_ecdhe
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - construct_key_exchange_tbs
    - ssl3_check_cert_and_algorithm
    - EVP_MD_CTX_free
    - EVP_DigestVerifyInit
    - tls1_set_peer_legacy_sigalg
    - fprintf
    - PACKET_get_net_2
    - SSL_USE_SIGALGS
    - OPENSSL_free
    - EVP_PKEY_size
    - tls12_check_peer_sigalg
    - SSLfatal
    - PACKET_get_sub_packet
    - EVP_MD_CTX_new
    - tls_process_ske_srp
    - EVP_MD_name
    - EVP_PKEY_CTX_set_rsa_padding
    - tls_process_ske_dhe
    - SSL_USE_PSS
    - EVP_DigestVerify
    - EVP_PKEY_free
    - PACKET_data
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_key_exchange(SSL *s, PACKET *pkt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2445,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2459,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2462,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2465,1
    - Dst: PACKET_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2466,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2467,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2473,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2474,1
    - Dst: tls_collect_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2479,1
    - Dst: tls_parse_all_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2482,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2485,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2488,1
    - Dst: tls1_process_sigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2489,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2490,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2499,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2500,1
    - Dst: PACKET_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2506,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2507,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2513,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2516,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2517,1
    - Dst: tls1_save_sigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2527,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2528,1
    - Dst: tls1_process_sigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2533,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2534,1
    - Dst: parse_ca_names
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2542,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2548,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2549,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2566,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2437
    functionDepth: 7
    functionLinenumber: 2437
    functionLinenumberEnd: 2570
    functionName: tls_process_certificate_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - PACKET_get_length_prefixed_1
    - SSLfatal
    - PACKET_get_length_prefixed_2
    - parse_ca_names
    - tls1_process_sigalgs
    - PACKET_remaining
    - OPENSSL_free
    - SSL_USE_SIGALGS
    - tls_parse_all_extensions
    - tls1_save_sigalgs
    - SSL_IS_TLS13
    - PACKET_memdup
    - tls_collect_extensions
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_certificate_request(SSL *s, PACKET *pkt)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_null_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2580,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2582,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2583,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2584,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2585,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2586,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2587,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2587,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2588,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2589,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2610,1
    - Dst: ssl_session_dup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2617,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2618,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2625,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2631,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2634,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2642,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2644,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2648,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2650,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2654,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2655,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2664,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2667,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2668,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2669,1
    - Dst: tls_collect_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2675,1
    - Dst: tls_parse_all_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2678,1
    - Dst: EVP_Digest
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2701,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2703,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2704,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2712,1
    - Dst: ssl_handshake_md
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2713,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2714,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2719,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2720,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2727,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2730,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2731,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2739,1
    - Dst: ssl_update_cache
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2740,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2746,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 78
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2572
    functionDepth: 5
    functionLinenumber: 2572
    functionLinenumberEnd: 2748
    functionName: tls_process_new_session_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - PACKET_get_net_4
    - SSL_SESSION_free
    - PACKET_remaining
    - EVP_Digest
    - tls_collect_extensions
    - PACKET_get_net_2
    - OPENSSL_malloc
    - OPENSSL_free
    - PACKET_as_length_prefixed_2
    - EVP_sha256
    - time
    - ssl_handshake_md
    - ssl_update_cache
    - ossl_assert
    - SSL_CTX_remove_session
    - SSLfatal
    - PACKET_null_init
    - tls13_hkdf_expand
    - tls_parse_all_extensions
    - PACKET_copy_bytes
    - SSL_IS_TLS13
    - EVP_MD_size
    - PACKET_get_length_prefixed_1
    - ssl_session_dup
    - PACKET_data
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_new_session_ticket(SSL *s, PACKET *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2759,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2761,1
    - Dst: PACKET_get_net_3_len
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2765,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2766,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2767,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2771,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2773,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2777,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2778,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2754
    functionDepth: 4
    functionLinenumber: 2754
    functionLinenumberEnd: 2785
    functionName: tls_process_cert_status_body
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - PACKET_get_1
    - PACKET_remaining
    - PACKET_copy_bytes
    - PACKET_get_net_3_len
    linkageType: ''
    returnType: int
    signature: int tls_process_cert_status_body(SSL *s, PACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls_process_cert_status_body
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2788
    functionDepth: 5
    functionLinenumber: 2788
    functionLinenumberEnd: 2796
    functionName: tls_process_cert_status
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - tls_process_cert_status_body
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_cert_status(SSL *s, PACKET *pkt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_check_cert_and_algorithm
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2810,1
    - Dst: SSL*::ctx::ext::status_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2822,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2825,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2831,1
    - Dst: ssl_validate_ct
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2840,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2804
    functionDepth: 10
    functionLinenumber: 2804
    functionLinenumberEnd: 2848
    functionName: tls_process_initial_server_flight
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSL*::ctx::ext::status_cb
    - SSLfatal
    - ssl_validate_ct
    - ssl3_check_cert_and_algorithm
    linkageType: ''
    returnType: int
    signature: int tls_process_initial_server_flight(SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2852,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2854,1
    - Dst: SRP_Calc_A_param
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2860,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2861,1
    - Dst: tls_process_initial_server_flight
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2850
    functionDepth: 11
    functionLinenumber: 2850
    functionLinenumberEnd: 2874
    functionName: tls_process_server_done
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - SRP_Calc_A_param
    - tls_process_initial_server_flight
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_server_done(SSL *s, PACKET *pkt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2893,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2898,1
    - Dst: SSL*::psk_client_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2900,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2905,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2909,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2915,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2917,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2922,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2923,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2925,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2930,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2934,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2938,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2939,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2947,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2948,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2949,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2950,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2954,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2876
    functionDepth: 7
    functionLinenumber: 2876
    functionLinenumberEnd: 2958
    functionName: tls_construct_cke_psk_preamble
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u16
    - OPENSSL_free
    - OPENSSL_strdup
    - memset
    - SSL*::psk_client_callback
    - OPENSSL_clear_free
    - OPENSSL_memdup
    - strlen
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int tls_construct_cke_psk_preamble(SSL *s, WPACKET *pkt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2974,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2979,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2980,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2981,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2987,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2989,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2997,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:2998,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3004,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3005,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3009,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3010,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3011,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3012,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3016,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3017,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3018,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3022,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3026,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3027,1
    - Dst: ssl_log_rsa_client_key_exchange
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3033,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3043,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3044,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3048,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 2960
    functionDepth: 5
    functionLinenumber: 2960
    functionLinenumberEnd: 3052
    functionName: tls_construct_cke_rsa
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_PKEY_CTX_new
    - OPENSSL_malloc
    - EVP_PKEY_encrypt
    - WPACKET_allocate_bytes
    - ssl_log_rsa_client_key_exchange
    - RAND_bytes
    - WPACKET_start_sub_packet_u16
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_CTX_free
    - WPACKET_close
    - EVP_PKEY_get0_RSA
    - X509_get0_pubkey
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: int tls_construct_cke_rsa(SSL *s, WPACKET *pkt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3064,1
    - Dst: ssl_generate_pkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3069,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3071,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3076,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3079,1
    - Dst: ssl_derive
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3084,1
    - Dst: DH_get0_key
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3090,1
    - Dst: WPACKET_sub_allocate_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3091,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3091,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3093,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3098,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3099,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3103,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3054
    functionDepth: 4
    functionLinenumber: 3054
    functionLinenumberEnd: 3110
    functionName: tls_construct_cke_dhe
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl_generate_pkey
    - BN_num_bytes
    - BN_bn2bin
    - DH_get0_key
    - WPACKET_sub_allocate_bytes_u16
    - ssl_derive
    - EVP_PKEY_free
    - EVP_PKEY_get0_DH
    linkageType: ''
    returnType: int
    signature: int tls_construct_cke_dhe(SSL *s, WPACKET *pkt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3122,1
    - Dst: ssl_generate_pkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3127,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3129,1
    - Dst: ssl_derive
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3134,1
    - Dst: EVP_PKEY_get1_tls_encodedpoint
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3140,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3143,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3148,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3156,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3157,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3164
      start: 3112
    functionDepth: 4
    functionLinenumber: 3112
    functionLinenumberEnd: 3164
    functionName: tls_construct_cke_ecdhe
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl_generate_pkey
    - WPACKET_sub_memcpy_u8
    - EVP_PKEY_get1_tls_encodedpoint
    - OPENSSL_free
    - ssl_derive
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int tls_construct_cke_ecdhe(SSL *s, WPACKET *pkt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3188,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3193,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3193,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3195,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3207,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3209,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3214,1
    - Dst: RAND_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3218,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3219,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3227,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3229,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3229,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3230,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3232,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3234,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3235,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3239,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3241,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3243,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3252,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3253,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3258,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3259,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3260,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3261,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3266,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3272,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3273,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3274,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3277,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3281
      start: 3166
    functionDepth: 4
    functionLinenumber: 3166
    functionLinenumberEnd: 3281
    functionName: tls_construct_cke_gost
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - EVP_PKEY_CTX_new
    - OPENSSL_malloc
    - EVP_get_digestbynid
    - EVP_MD_CTX_new
    - EVP_DigestInit
    - EVP_DigestFinal_ex
    - EVP_PKEY_encrypt
    - WPACKET_sub_memcpy_u8
    - RAND_bytes
    - EVP_DigestUpdate
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_CTX_free
    - EVP_MD_CTX_free
    - WPACKET_put_bytes_u8
    - EVP_PKEY_CTX_ctrl
    - X509_get0_pubkey
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: int tls_construct_cke_gost(SSL *s, WPACKET *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_sub_allocate_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3289,1
    - Dst: BN_num_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3289,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3291,1
    - Dst: BN_bn2bin
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3295,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3297,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3298,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3300,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3283
    functionDepth: 3
    functionLinenumber: 3283
    functionLinenumberEnd: 3311
    functionName: tls_construct_cke_srp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - OPENSSL_free
    - BN_num_bytes
    - BN_bn2bin
    - OPENSSL_strdup
    - WPACKET_sub_allocate_bytes_u16
    linkageType: ''
    returnType: int
    signature: int tls_construct_cke_srp(SSL *s, WPACKET *pkt)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tls_construct_cke_psk_preamble
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3324,1
    - Dst: tls_construct_cke_rsa
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3328,1
    - Dst: tls_construct_cke_dhe
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3331,1
    - Dst: tls_construct_cke_ecdhe
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3334,1
    - Dst: tls_construct_cke_gost
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3337,1
    - Dst: tls_construct_cke_srp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3340,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3343,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3350,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3353,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3313
    functionDepth: 8
    functionLinenumber: 3313
    functionLinenumberEnd: 3357
    functionName: tls_construct_client_key_exchange
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls_construct_cke_srp
    - tls_construct_cke_psk_preamble
    - tls_construct_cke_ecdhe
    - OPENSSL_clear_free
    - tls_construct_cke_rsa
    - tls_construct_cke_dhe
    - tls_construct_cke_gost
    linkageType: ''
    returnType: int
    signature: int tls_construct_client_key_exchange(SSL *s, WPACKET *pkt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: srp_generate_client_master_secret
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3370,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3379,1
    - Dst: ssl_generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3383,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3394,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3403,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3411,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3414,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3420,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3420,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3427,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3430
      start: 3359
    functionDepth: 9
    functionLinenumber: 3359
    functionLinenumberEnd: 3430
    functionName: tls_client_key_exchange_post_work
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - ssl_generate_master_secret
    - SSL_export_keying_material
    - memcpy
    - SSL_get_wbio
    - BIO_ctrl
    - SSL_IS_DTLS
    - OPENSSL_clear_free
    - srp_generate_client_master_secret
    linkageType: ''
    returnType: int
    signature: int tls_client_key_exchange_post_work(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls_choose_sigalg
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3440,1
    - Dst: tls1_check_chain
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3437
    functionDepth: 9
    functionLinenumber: 3437
    functionLinenumberEnd: 3450
    functionName: ssl3_check_client_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - tls_choose_sigalg
    - tls1_check_chain
    linkageType: ''
    returnType: int
    signature: int ssl3_check_client_certificate(SSL *s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::cert::cert_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3461,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3467,1
    - Dst: ssl3_check_client_certificate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3474,1
    - Dst: ssl_do_client_cert_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3491,1
    - Dst: SSL_use_certificate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3498,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3498,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3502,1
    - Dst: X509_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3506,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3507,1
    - Dst: ssl3_check_client_certificate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3508,1
    - Dst: ssl3_send_alert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3513,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3517,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3530,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3533
      start: 3452
    functionDepth: 10
    functionLinenumber: 3452
    functionLinenumberEnd: 3533
    functionName: tls_prepare_client_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - X509_free
    - ssl3_send_alert
    - SSL_use_certificate
    - SSL_use_PrivateKey
    - ssl3_check_client_certificate
    - SSL*::cert::cert_cb
    - SSLerr
    - EVP_PKEY_free
    - ssl_do_client_cert_cb
    - ssl3_digest_cached_records
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE tls_prepare_client_certificate(SSL *s, WORK_STATE wst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3537,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3540,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3541,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3545,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3546,1
    - Dst: ssl3_output_cert_chain
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3551,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3558,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3559,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3560,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3566,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3572
      start: 3535
    functionDepth: 1
    functionLinenumber: 3535
    functionLinenumberEnd: 3572
    functionName: tls_construct_client_certificate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u8
    - ssl3_output_cert_chain
    - SSL_IS_FIRST_HANDSHAKE
    - SSL*::method::ssl3_enc::change_cipher_state
    - SSL_IS_TLS13
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: int
    signature: int tls_construct_client_certificate(SSL *s, WPACKET *pkt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_lookup_by_pkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3588,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3588,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3592,1
    - Dst: ssl_check_srvr_ecc_cert_and_alg
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3600,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3602,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3609,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3617,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3624
      start: 3574
    functionDepth: 6
    functionLinenumber: 3574
    functionLinenumberEnd: 3624
    functionName: ssl3_check_cert_and_algorithm
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - ssl_cert_lookup_by_pkey
    - ssl_check_srvr_ecc_cert_and_alg
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int ssl3_check_cert_and_algorithm(SSL *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3635,1
    - Dst: WPACKET_sub_allocate_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3636,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3637,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3645
      start: 3627
    functionDepth: 1
    functionLinenumber: 3627
    functionLinenumberEnd: 3645
    functionName: tls_construct_next_proto
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u8
    - WPACKET_sub_allocate_bytes_u8
    - memset
    linkageType: ''
    returnType: int
    signature: int tls_construct_next_proto(SSL *s, WPACKET *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3650,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3652,1
    - Dst: ssl3_send_alert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3658,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3669,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3670,1
    - Dst: SSL_renegotiate_abbreviated
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3675
      start: 3648
    functionDepth: 2
    functionLinenumber: 3648
    functionLinenumberEnd: 3675
    functionName: tls_process_hello_req
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - SSL_renegotiate_abbreviated
    - SSL_IS_DTLS
    - ssl3_send_alert
    - SSL_renegotiate
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_hello_req(SSL *s, PACKET *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3682,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3683,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3684,1
    - Dst: tls_collect_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3689,1
    - Dst: tls_parse_all_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3692,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3698,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3702,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3704
      start: 3677
    functionDepth: 4
    functionLinenumber: 3677
    functionLinenumberEnd: 3704
    functionName: tls_process_encrypted_extensions
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - OPENSSL_free
    - PACKET_as_length_prefixed_2
    - tls_parse_all_extensions
    - tls_collect_extensions
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_encrypted_extensions(SSL *s, PACKET
      *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_load_ssl_client_cert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3711,1
    - Dst: SSL_get_client_CA_list
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3712,1
    - Dst: SSL*::ctx::client_cert_cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - s
    - px509
    - ppkey
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3721
      start: 3706
    functionDepth: 5
    functionLinenumber: 3706
    functionLinenumberEnd: 3721
    functionName: ssl_do_client_cert_cb
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSL*::ctx::client_cert_cb
    - ENGINE_load_ssl_client_cert
    - SSL_get_client_CA_list
    linkageType: ''
    returnType: int
    signature: int ssl_do_client_cert_cb(SSL *s, X509 **px509, EVP_PKEY **ppkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c:3834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3842
      start: 3830
    functionDepth: 1
    functionLinenumber: 3830
    functionLinenumberEnd: 3842
    functionName: tls_construct_end_of_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    linkageType: ''
    returnType: int
    signature: int tls_construct_end_of_early_data(SSL *s, WPACKET *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - s
    - extctx
    - thisctx
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 409
    functionName: validate_context
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: int validate_context(SSL *s, unsigned int extctx, unsigned int thisctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:413,1
    - Dst: custom_ext_find
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:435,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:437,1
    - Dst: validate_context
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - s
    - thisctx
    - exts
    argTypes:
    - SSL*
    - unsigned int
    - RAW_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 447
    functionName: tls_validate_all_contexts
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - custom_ext_find
    - ossl_assert
    - validate_context
    linkageType: ''
    returnType: int
    signature: int tls_validate_all_contexts(SSL *s, unsigned int thisctx, RAW_EXTENSION
      *exts)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:460,1
    - Dst: validate_context
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:465,1
    - Dst: custom_ext_find
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:484,1
    - Dst: validate_context
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - s
    - context
    - type
    - meths
    - rawexlist
    - found
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - custom_ext_methods*
    - RAW_EXTENSION*
    - RAW_EXTENSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 496
    functionName: verify_extension
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - custom_ext_find
    - validate_context
    linkageType: ''
    returnType: int
    signature: "int verify_extension(SSL *s, unsigned int context, unsigned int type,\n
      \                           custom_ext_methods *meths, RAW_EXTENSION *rawexlist,\n
      \                           RAW_EXTENSION **found)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:514,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:516,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 7
    argCount: 3
    argNames:
    - s
    - extctx
    - thisctx
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 535
    functionName: extension_is_relevant
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 1
    functionsReached:
    - SSL_IS_DTLS
    - SSL_IS_TLS13
    linkageType: ''
    returnType: int
    signature: int extension_is_relevant(SSL *s, unsigned int extctx, unsigned int
      thisctx)
  - BBCount: 111
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_init
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:570,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:572,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:573,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:575,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:581,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:586,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:587,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:588,1
    - Dst: verify_extension
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:597,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:601,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:602,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:621,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:634,1
    - Dst: SSL*::ext::debug_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:644,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:645,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:646,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:656,1
    - Dst: extension_is_relevant
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:659,1
    - Dst: EXTENSION_DEFINITION*::init
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:660,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:673,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:704,1
    - Dst: extension_is_relevant
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:709,1
    - Dst: parser
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:715,1
    - Dst: custom_ext_parse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:724,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:725,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:726,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:740,1
    - Dst: tls_parse_extension
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:748,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:759,1
    - Dst: EXTENSION_DEFINITION*::final
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:762,1
    - Dst: extension_is_relevant
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:780,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:783,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:804,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:812,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:814,1
    - Dst: ssl_get_min_max_version
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:820,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:822,1
    - Dst: custom_ext_init
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:831,1
    - Dst: custom_ext_add
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:833,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:838,1
    - Dst: should_add_extension
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:844,1
    - Dst: construct
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:853,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:865,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:866,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:891,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:903,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:917,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:928,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:930,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:930,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:931,1
    - Dst: SSL*::ctx::ext::servername_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:937,1
    - Dst: SSL*::session_ctx::ext::servername_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:940,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:954,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:955,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:957,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:969,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:970,1
    - Dst: tsan_decr
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:971,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:980,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:983,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:986,1
    - Dst: ssl_generate_session_id
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:991,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:992,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:997,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1006,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1011,1
    - Dst: ssl3_send_alert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1012,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1055,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1083,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1107,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1119,1
    - Dst: tls_handle_alpn
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1131,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1137,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1146,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1155,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1186,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1197,1
    - Dst: get_ca_names
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1207,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1209,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1212,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1213,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1214,1
    - Dst: construct_ca_names
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1220,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1225,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1226,1
    - Dst: parse_ca_names
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1239,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1241,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1242,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1261,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1262,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1273,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1296,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1339,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1345,1
    - Dst: tls1_get_peer_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1365,1
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1366,1
    - Dst: check_in_list
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1374,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1389,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1397,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1403,1
    - Dst: tls13_generate_handshake_secret
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1424,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1425,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1460,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1465,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1466,1
    - Dst: tls13_generate_secret
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1499,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1509,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1511,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1512,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1513,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1519,1
    - Dst: tls13_derive_finishedkey
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1526,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1531,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1532,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1548,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1550,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1563,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1564,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1565,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1566,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1567,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1568,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1572,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1575,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1576,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1582,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1583,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1584,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1589,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1592,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1601,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1602,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1603,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1605,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1614,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1616,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1621,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1622,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1623,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1624,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1643,1
    - Dst: SSL*::allow_early_data_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1657,1
    - Dst: tls13_change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1663,1
    - Dst: USE_MAX_FRAGMENT_LENGTH_EXT
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1679,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1681,1
    - Dst: USE_MAX_FRAGMENT_LENGTH_EXT
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1687,1
    - Dst: GET_MAX_FRAGMENT_LENGTH
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1688,1
    - Dst: ssl3_setup_buffers
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1690,1
    CyclomaticComplexity: 221
    EdgeCount: 221
    ICount: 489
    argCount: 6
    argNames:
    - s
    - packet
    - context
    - res
    - len
    - init
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - RAW_EXTENSION**
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 553
    functionDepth: 8
    functionLinenumber: 553
    functionLinenumberEnd: 1703
    functionName: tls_collect_extensions
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 8
    functionsReached:
    - PACKET_get_length_prefixed_2
    - EVP_DigestFinal_ex
    - get_ca_names
    - custom_ext_parse
    - SSL_get_session
    - extension_is_relevant
    - PACKET_remaining
    - should_add_extension
    - SSL*::ctx::ext::servername_cb
    - GET_MAX_FRAGMENT_LENGTH
    - tls13_generate_handshake_secret
    - EVP_DigestInit_ex
    - SSL_IS_DTLS
    - tls13_derive_finishedkey
    - PACKET_forward
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_free
    - SSL_get_options
    - construct_ca_names
    - custom_ext_init
    - PACKET_get_net_2
    - OPENSSL_cleanse
    - PACKET_buf_init
    - check_in_list
    - PACKET_get_length_prefixed_3
    - OPENSSL_free
    - EXTENSION_DEFINITION*::final
    - ssl_generate_session_id
    - custom_ext_add
    - WPACKET_start_sub_packet_u16
    - WPACKET_put_bytes_u16
    - EVP_DigestSignInit
    - tls13_change_cipher_state
    - CRYPTO_memcmp
    - parser
    - OPENSSL_zalloc
    - USE_MAX_FRAGMENT_LENGTH_EXT
    - ssl3_setup_buffers
    - tls_parse_extension
    - tls_handle_alpn
    - SSL*::allow_early_data_cb
    - ossl_assert
    - EXTENSION_DEFINITION*::init
    - tsan_decr
    - EVP_DigestSignFinal
    - SSLfatal
    - OSSL_NELEM
    - verify_extension
    - SSL*::ext::debug_cb
    - construct
    - tls1_get_peer_groups
    - EVP_MD_CTX_new
    - EVP_PKEY_free
    - tls13_hkdf_expand
    - SSL_IS_FIRST_HANDSHAKE
    - OPENSSL_strdup
    - WPACKET_close
    - SSL_IS_TLS13
    - SSL*::session_ctx::ext::servername_cb
    - EVP_MD_size
    - EVP_PKEY_new_raw_private_key
    - tls1_get_supported_groups
    - BIO_get_mem_data
    - tsan_counter
    - WPACKET_set_flags
    - parse_ca_names
    - ssl_get_min_max_version
    - tls13_generate_secret
    - EVP_DigestUpdate
    - sk_X509_NAME_num
    - ssl3_send_alert
    - sk_X509_NAME_pop_free
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: "int tls_collect_extensions(SSL *s, PACKET *packet, unsigned int context,\n
      \                          RAW_EXTENSION **res, size_t *len, int init)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:704,1
    - Dst: extension_is_relevant
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:709,1
    - Dst: parser
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:715,1
    - Dst: custom_ext_parse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:724,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:725,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:726,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - s
    - idx
    - context
    - exts
    - x
    - chainidx
    argTypes:
    - SSL*
    - TLSEXT_INDEX
    - int
    - RAW_EXTENSION*
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 728
    functionName: tls_parse_extension
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 4
    functionsReached:
    - OSSL_NELEM
    - custom_ext_parse
    - extension_is_relevant
    - PACKET_remaining
    - parser
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: "int tls_parse_extension(SSL *s, TLSEXT_INDEX idx, int context,\n                        RAW_EXTENSION
      *exts, X509 *x, size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:740,1
    - Dst: tls_parse_extension
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:748,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:759,1
    - Dst: EXTENSION_DEFINITION*::final
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:762,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 6
    argNames:
    - s
    - context
    - exts
    - x
    - chainidx
    - fin
    argTypes:
    - SSL*
    - int
    - RAW_EXTENSION*
    - X509*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 770
    functionName: tls_parse_all_extensions
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 8
    functionsReached:
    - tls_parse_extension
    - OSSL_NELEM
    - EXTENSION_DEFINITION*::final
    linkageType: ''
    returnType: int
    signature: "int tls_parse_all_extensions(SSL *s, int context, RAW_EXTENSION *exts,
      X509 *x,\n                             size_t chainidx, int fin)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extension_is_relevant
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:780,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - s
    - extctx
    - thisctx
    - max_version
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: should_add_extension
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 2
    functionsReached:
    - extension_is_relevant
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: "int should_add_extension(SSL *s, unsigned int extctx, unsigned int
      thisctx,\n                         int max_version)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:804,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:812,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:814,1
    - Dst: ssl_get_min_max_version
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:820,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:822,1
    - Dst: custom_ext_init
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:831,1
    - Dst: custom_ext_add
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:833,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:838,1
    - Dst: should_add_extension
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:844,1
    - Dst: construct
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:853,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:865,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:866,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 872
    functionName: tls_construct_extensions
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 5
    functionsReached:
    - SSLfatal
    - OSSL_NELEM
    - construct
    - WPACKET_set_flags
    - should_add_extension
    - ssl_get_min_max_version
    - custom_ext_add
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - custom_ext_init
    linkageType: ''
    returnType: int
    signature: "int tls_construct_extensions(SSL *s, WPACKET *pkt, unsigned int context,\n
      \                            X509 *x, size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:891,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:903,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - s
    - context
    - sent
    argTypes:
    - SSL*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 910
    functionName: final_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    linkageType: ''
    returnType: int
    signature: int final_renegotiate(SSL *s, unsigned int context, int sent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 922
    functionName: init_server_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int init_server_name(SSL *s, unsigned int context)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:928,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:930,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:930,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:931,1
    - Dst: SSL*::ctx::ext::servername_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:937,1
    - Dst: SSL*::session_ctx::ext::servername_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:940,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:954,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:955,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:957,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:969,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:970,1
    - Dst: tsan_decr
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:971,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:980,1
    - Dst: SSL_get_session
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:983,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:986,1
    - Dst: ssl_generate_session_id
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:991,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:992,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:997,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1006,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1011,1
    - Dst: ssl3_send_alert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1012,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 3
    argNames:
    - s
    - context
    - sent
    argTypes:
    - SSL*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 924
    functionDepth: 3
    functionLinenumber: 924
    functionLinenumberEnd: 1023
    functionName: final_server_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tsan_counter
    - SSL_get_session
    - SSL*::ctx::ext::servername_cb
    - OPENSSL_free
    - SSL_IS_FIRST_HANDSHAKE
    - ssl_generate_session_id
    - OPENSSL_strdup
    - SSL_IS_TLS13
    - SSL*::session_ctx::ext::servername_cb
    - ssl3_send_alert
    - SSL_get_options
    - ossl_assert
    - tsan_decr
    linkageType: ''
    returnType: int
    signature: int final_server_name(SSL *s, unsigned int context, int sent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1055,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 3
    argNames:
    - s
    - context
    - sent
    argTypes:
    - SSL*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1062
    functionName: final_ec_pt_formats
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    linkageType: ''
    returnType: int
    signature: int final_ec_pt_formats(SSL *s, unsigned int context, int sent)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1071
    functionName: init_session_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_session_ticket(SSL *s, unsigned int context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1089
    functionName: init_status_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int init_status_request(SSL *s, unsigned int context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1098
    functionName: init_npn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_npn(SSL *s, unsigned int context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1112
    functionName: init_alpn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int init_alpn(SSL *s, unsigned int context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1119,1
    - Dst: tls_handle_alpn
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - s
    - context
    - sent
    argTypes:
    - SSL*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1132
    functionName: final_alpn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - tls_handle_alpn
    - SSL_IS_TLS13
    linkageType: ''
    returnType: int
    signature: int final_alpn(SSL *s, unsigned int context, int sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1141
    functionName: init_sig_algs
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int init_sig_algs(SSL *s, unsigned int context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1150
    functionName: init_sig_algs_cert
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int init_sig_algs_cert(SSL *s, unsigned int context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1159
    functionName: init_srp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int init_srp(SSL *s, unsigned int context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1167
    functionName: init_etm
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_etm(SSL *s, unsigned int context)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1175
    functionName: init_ems
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_ems(SSL *s, unsigned int context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - s
    - context
    - sent
    argTypes:
    - SSL*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1193
    functionName: final_ems
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    linkageType: ''
    returnType: int
    signature: int final_ems(SSL *s, unsigned int context, int sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1200
    functionName: init_certificate_authorities
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: int
    signature: int init_certificate_authorities(SSL *s, unsigned int context)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ca_names
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1207,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1209,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1212,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1213,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1214,1
    - Dst: construct_ca_names
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1220,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1225,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1202
    functionDepth: 3
    functionLinenumber: 1202
    functionLinenumberEnd: 1233
    functionName: tls_construct_certificate_authorities
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - get_ca_names
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - sk_X509_NAME_num
    - WPACKET_close
    - construct_ca_names
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_certificate_authorities(SSL *s, WPACKET *pkt,\n
      \                                                       unsigned int context,\n
      \                                                       X509 *x,\n                                                        size_t
      chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_ca_names
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1239,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1241,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1247
    functionName: tls_parse_certificate_authorities
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - parse_ca_names
    linkageType: ''
    returnType: int
    signature: "int tls_parse_certificate_authorities(SSL *s, PACKET *pkt,\n                                             unsigned
      int context, X509 *x,\n                                             size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1256
    functionName: init_srtp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_srtp(SSL *s, unsigned int context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1261,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - s
    - context
    - sent
    argTypes:
    - SSL*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1268
    functionName: final_sig_algs
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_IS_TLS13
    linkageType: ''
    returnType: int
    signature: int final_sig_algs(SSL *s, unsigned int context, int sent)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1273,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1296,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1339,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1345,1
    - Dst: tls1_get_peer_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1365,1
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1366,1
    - Dst: check_in_list
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1374,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1389,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1397,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1403,1
    - Dst: tls13_generate_handshake_secret
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1424,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1425,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 56
    argCount: 3
    argNames:
    - s
    - context
    - sent
    argTypes:
    - SSL*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1271
    functionDepth: 7
    functionLinenumber: 1271
    functionLinenumberEnd: 1432
    functionName: final_key_share
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls1_get_peer_groups
    - check_in_list
    - SSL_IS_TLS13
    - tls1_get_supported_groups
    - ossl_assert
    - tls13_generate_handshake_secret
    linkageType: ''
    returnType: int
    signature: int final_key_share(SSL *s, unsigned int context, int sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1439
    functionName: init_psk_kex_modes
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_psk_kex_modes(SSL *s, unsigned int context)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1460,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1465,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1466,1
    - Dst: tls13_generate_secret
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1499,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1509,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1511,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1512,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1513,1
    - Dst: tls13_hkdf_expand
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1519,1
    - Dst: tls13_derive_finishedkey
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1526,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1531,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1532,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1548,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1550,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1563,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1564,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1565,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1566,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1567,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1568,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1572,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1575,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1576,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1582,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1583,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1584,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1589,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1592,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1601,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1602,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1603,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1605,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1614,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1616,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1621,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1622,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1623,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1624,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 96
    argCount: 9
    argNames:
    - s
    - md
    - msgstart
    - binderoffset
    - binderin
    - binderout
    - sess
    - sign
    - external
    argTypes:
    - SSL*
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned char*
    - SSL_SESSION*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1441
    functionDepth: 6
    functionLinenumber: 1441
    functionLinenumberEnd: 1627
    functionName: tls_psk_do_binder
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - PACKET_remaining
    - EVP_DigestInit_ex
    - EVP_DigestSignUpdate
    - tls13_derive_finishedkey
    - PACKET_forward
    - EVP_MD_CTX_free
    - OPENSSL_cleanse
    - PACKET_buf_init
    - PACKET_get_length_prefixed_3
    - EVP_DigestSignInit
    - CRYPTO_memcmp
    - EVP_DigestSignFinal
    - ossl_assert
    - SSLfatal
    - EVP_MD_CTX_new
    - tls13_hkdf_expand
    - EVP_PKEY_new_raw_private_key
    - EVP_MD_size
    - BIO_get_mem_data
    - tls13_generate_secret
    - EVP_DigestUpdate
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int tls_psk_do_binder(SSL *s, const EVP_MD *md, const unsigned char
      *msgstart,\n                      size_t binderoffset, const unsigned char *binderin,\n
      \                     unsigned char *binderout, SSL_SESSION *sess, int sign,\n
      \                     int external)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1643,1
    - Dst: SSL*::allow_early_data_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1657,1
    - Dst: tls13_change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1663,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 3
    argNames:
    - s
    - context
    - sent
    argTypes:
    - SSL*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1629
    functionDepth: 8
    functionLinenumber: 1629
    functionLinenumberEnd: 1671
    functionName: final_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL*::allow_early_data_cb
    - tls13_change_cipher_state
    linkageType: ''
    returnType: int
    signature: int final_early_data(SSL *s, unsigned int context, int sent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: USE_MAX_FRAGMENT_LENGTH_EXT
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1679,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1681,1
    - Dst: USE_MAX_FRAGMENT_LENGTH_EXT
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1687,1
    - Dst: GET_MAX_FRAGMENT_LENGTH
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1688,1
    - Dst: ssl3_setup_buffers
      Src: /src/openssl-1.1.1g/ssl/statem/extensions.c:1690,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - s
    - context
    - sent
    argTypes:
    - SSL*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1673
    functionDepth: 4
    functionLinenumber: 1673
    functionLinenumberEnd: 1696
    functionName: final_maxfragmentlen
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - GET_MAX_FRAGMENT_LENGTH
    - ssl3_setup_buffers
    - USE_MAX_FRAGMENT_LENGTH_EXT
    linkageType: ''
    returnType: int
    signature: int final_maxfragmentlen(SSL *s, unsigned int context, int sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1703
    functionName: init_post_handshake_auth
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_post_handshake_auth(SSL *s, unsigned int context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: RSMBLY_BITMASK_SIZE
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSMBLY_BITMASK_SIZE(msg_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - bitmask
    - ','
    - start
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: RSMBLY_BITMASK_MARK
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSMBLY_BITMASK_MARK(bitmask, start, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - bitmask
    - ','
    - msg_len
    - ','
    - is_complete
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: RSMBLY_BITMASK_IS_COMPLETE
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSMBLY_BITMASK_IS_COMPLETE(bitmask, msg_len, is_complete)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:62,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:63,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:68,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:70,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:80,1
    - Dst: RSMBLY_BITMASK_SIZE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:80,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - frag_len
    - reassembly
    argTypes:
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 92
    functionName: dtls1_hm_fragment_new
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - RSMBLY_BITMASK_SIZE
    - OPENSSL_malloc
    - OPENSSL_free
    - OPENSSL_zalloc
    - SSLerr
    linkageType: ''
    returnType: hm_fragment
    signature: hm_fragment *dtls1_hm_fragment_new(size_t frag_len, int reassembly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:99,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:101,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:104,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - frag
    argTypes:
    - hm_fragment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: dtls1_hm_fragment_free
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - EVP_CIPHER_CTX_free
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void dtls1_hm_fragment_free(hm_fragment *frag)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_query_mtu
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:120,1
    - Dst: dtls1_min_mtu
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:123,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:128,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:135,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:135,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:139,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:144,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:145,1
    - Dst: BIO_wpending
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:188,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:199,1
    - Dst: dtls1_fix_message_header
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:235,1
    - Dst: dtls1_write_message_header
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:237,1
    - Dst: dtls1_write_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:242,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:251,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:251,1
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:253,1
    - Dst: dtls1_query_mtu
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:254,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:269,1
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:288,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:289,1
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:290,1
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:291,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:299,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:305,1
    - Dst: dtls1_fix_message_header
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:325,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 107
    argCount: 2
    argNames:
    - s
    - type
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 329
    functionName: dtls1_do_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - dtls1_write_message_header
    - BIO_ctrl
    - l2n3
    - SSL_get_options
    - ssl3_finish_mac
    - EVP_CIPHER_CTX_mode
    - BIO_wpending
    - ossl_assert
    - dtls1_query_mtu
    - EVP_CIPHER_CTX_block_size
    - dtls1_write_bytes
    - SSL*::msg_callback
    - EVP_CIPHER_CTX_cipher
    - BIO_flush
    - EVP_CIPHER_flags
    - dtls1_fix_message_header
    - s2n
    - EVP_MD_CTX_size
    - SSL_get_wbio
    - dtls1_min_mtu
    linkageType: ''
    returnType: int
    signature: int dtls1_do_write(SSL *s, int type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:340,1
    - Dst: dtls_get_reassembled_message
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:343,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:359,1
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:372,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:373,1
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:374,1
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:375,1
    - Dst: ssl3_take_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:385,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:390,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:393,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:396,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - s
    - mt
    - len
    argTypes:
    - SSL*
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 403
    functionName: dtls_get_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached:
    - ssl3_take_mac
    - dtls_get_reassembled_message
    - SSL*::msg_callback
    - s2n
    - l2n3
    - memset
    - ssl3_finish_mac
    linkageType: ''
    returnType: int
    signature: int dtls_get_message(SSL *s, int *mt, size_t *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: dtls1_max_handshake_message_len
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls1_max_handshake_message_len(const SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_max_handshake_message_len
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:428,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:429,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:439,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:440,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - s
    - msg_hdr
    argTypes:
    - SSL*
    - struct hm_header_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 461
    functionName: dtls1_preprocess_fragment
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - dtls1_max_handshake_message_len
    - BUF_MEM_grow_clean
    - SSLfatal
    linkageType: ''
    returnType: int
    signature: int dtls1_preprocess_fragment(SSL *s, struct hm_header_st *msg_hdr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_peek
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:480,1
    - Dst: pqueue_pop
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:488,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:489,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:490,1
    - Dst: pqueue_pop
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:502,1
    - Dst: dtls1_preprocess_fragment
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:505,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:510,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:514,1
    - Dst: pitem_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 528
    functionName: dtls1_retrieve_buffered_fragment
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - dtls1_hm_fragment_free
    - pqueue_pop
    - memcpy
    - pitem_free
    - pqueue_peek
    - dtls1_preprocess_fragment
    linkageType: ''
    returnType: int
    signature: int dtls1_retrieve_buffered_fragment(SSL *s, size_t *len)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_max_handshake_message_len
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:541,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:549,1
    - Dst: pqueue_find
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:552,1
    - Dst: dtls1_hm_fragment_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:555,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:558,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:579,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:592,1
    - Dst: RSMBLY_BITMASK_MARK
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:600,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:603,1
    - Dst: RSMBLY_BITMASK_IS_COMPLETE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:605,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:609,1
    - Dst: pitem_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:614,1
    - Dst: pqueue_insert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:620,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:627,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:635,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 2
    argNames:
    - s
    - msg_hdr
    argTypes:
    - SSL*
    - struct hm_header_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 637
    functionName: dtls1_reassemble_fragment
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - RSMBLY_BITMASK_MARK
    - dtls1_max_handshake_message_len
    - pqueue_find
    - dtls1_hm_fragment_free
    - OPENSSL_free
    - dtls1_hm_fragment_new
    - memcpy
    - pqueue_insert
    - memset
    - pitem_new
    - SSL*::method::ssl_read_bytes
    - ossl_assert
    - RSMBLY_BITMASK_IS_COMPLETE
    linkageType: ''
    returnType: int
    signature: int dtls1_reassemble_fragment(SSL *s, const struct hm_header_st *msg_hdr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:653,1
    - Dst: pqueue_find
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:656,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:676,1
    - Dst: dtls1_reassemble_fragment
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:687,1
    - Dst: dtls1_max_handshake_message_len
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:690,1
    - Dst: dtls1_hm_fragment_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:693,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:697,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:703,1
    - Dst: pitem_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:712,1
    - Dst: pqueue_insert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:716,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:725,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:733,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 53
    argCount: 2
    argNames:
    - s
    - msg_hdr
    argTypes:
    - SSL*
    - struct hm_header_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 639
    functionDepth: 6
    functionLinenumber: 639
    functionLinenumberEnd: 735
    functionName: dtls1_process_out_of_seq_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - dtls1_max_handshake_message_len
    - pqueue_find
    - dtls1_hm_fragment_free
    - dtls1_hm_fragment_new
    - memcpy
    - pqueue_insert
    - dtls1_reassemble_fragment
    - memset
    - pitem_new
    - SSL*::method::ssl_read_bytes
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int dtls1_process_out_of_seq_message(SSL *s, const struct hm_header_st
      *msg_hdr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_retrieve_buffered_fragment
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:749,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:761,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:770,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:776,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:787,1
    - Dst: dtls1_get_message_header
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:793,1
    - Dst: RECORD_LAYER_get_rrec_length
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:803,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:804,1
    - Dst: dtls1_process_out_of_seq_message
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:816,1
    - Dst: dtls1_reassemble_fragment
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:821,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:836,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:844,1
    - Dst: dtls1_preprocess_fragment
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:851,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:860,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:881,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 94
    argCount: 3
    argNames:
    - s
    - errtype
    - len
    argTypes:
    - SSL*
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 737
    functionDepth: 7
    functionLinenumber: 737
    functionLinenumberEnd: 899
    functionName: dtls_get_reassembled_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - SSL*::msg_callback
    - memcpy
    - dtls1_get_message_header
    - RECORD_LAYER_get_rrec_length
    - dtls1_reassemble_fragment
    - dtls1_process_out_of_seq_message
    - dtls1_preprocess_fragment
    - SSL*::method::ssl_read_bytes
    - dtls1_retrieve_buffered_fragment
    linkageType: ''
    returnType: int
    signature: int dtls_get_reassembled_message(SSL *s, int *errtype, size_t *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:915,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 924
    functionName: dtls_construct_change_cipher_spec
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: int
    signature: int dtls_construct_change_cipher_spec(SSL *s, WPACKET *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dgram_sctp_wait_for_dry
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:937,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:937,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:939,1
    - Dst: dtls_get_reassembled_message
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:951,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:953,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:960,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:960,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:961,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:961,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 931
    functionDepth: 8
    functionLinenumber: 931
    functionLinenumberEnd: 965
    functionName: dtls_wait_for_dry
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - dtls_get_reassembled_message
    - SSL_get_wbio
    - SSL_get_rbio
    - BIO_clear_retry_flags
    - BIO_dgram_sctp_wait_for_dry
    - BIO_set_retry_read
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE dtls_wait_for_dry(SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:971,1
    - Dst: dtls1_is_timer_expired
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:976,1
    - Dst: ossl_statem_in_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:976,1
    - Dst: SSL_in_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:984,1
    - Dst: BIO_set_flags
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:986,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:986,1
    - Dst: dtls1_handle_timeout
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - code
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 968
    functionDepth: 6
    functionLinenumber: 968
    functionLinenumberEnd: 991
    functionName: dtls1_read_failed
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - ossl_statem_in_error
    - BIO_set_flags
    - dtls1_handle_timeout
    - SSL_get_rbio
    - SSL_in_init
    - dtls1_is_timer_expired
    linkageType: ''
    returnType: int
    signature: int dtls1_read_failed(SSL *s, int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seq
    - is_ccs
    argTypes:
    - unsigned short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1006
    functionName: dtls1_get_queue_priority
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dtls1_get_queue_priority(unsigned short seq, int is_ccs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_iterator
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1016,1
    - Dst: pqueue_next
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1018,1
    - Dst: pqueue_next
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1018,1
    - Dst: dtls1_retransmit_message
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1020,1
    - Dst: dtls1_get_queue_priority
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1028
    functionName: dtls1_retransmit_buffered_messages
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - dtls1_get_queue_priority
    - dtls1_retransmit_message
    - pqueue_next
    - pqueue_iterator
    linkageType: ''
    returnType: int
    signature: int dtls1_retransmit_buffered_messages(SSL *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1040,1
    - Dst: dtls1_hm_fragment_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1043,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1047,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1051,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1057,1
    - Dst: DTLS_RECORD_LAYER_get_w_epoch
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1075,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1077,1
    - Dst: dtls1_get_queue_priority
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1080,1
    - Dst: dtls1_get_queue_priority
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1084,1
    - Dst: pitem_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1087,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1089,1
    - Dst: pqueue_insert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1093,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - s
    - is_ccs
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1030
    functionDepth: 5
    functionLinenumber: 1030
    functionLinenumberEnd: 1095
    functionName: dtls1_buffer_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - dtls1_hm_fragment_free
    - dtls1_hm_fragment_new
    - memcpy
    - pqueue_insert
    - memset
    - pitem_new
    - DTLS_RECORD_LAYER_get_w_epoch
    - dtls1_get_queue_priority
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int dtls1_buffer_message(SSL *s, int is_ccs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1108,1
    - Dst: pqueue_find
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1112,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1114,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1128,1
    - Dst: dtls1_set_message_header_int
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1132,1
    - Dst: DTLS_RECORD_LAYER_get_w_epoch
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1142,1
    - Dst: DTLS_RECORD_LAYER_set_saved_w_epoch
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1151,1
    - Dst: dtls1_do_write
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1155,1
    - Dst: DTLS_RECORD_LAYER_set_saved_w_epoch
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1163,1
    - Dst: BIO_flush
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 3
    argNames:
    - s
    - seq
    - found
    argTypes:
    - SSL*
    - unsigned short
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1097
    functionDepth: 6
    functionLinenumber: 1097
    functionLinenumberEnd: 1169
    functionName: dtls1_retransmit_message
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - dtls1_do_write
    - DTLS_RECORD_LAYER_set_saved_w_epoch
    - pqueue_find
    - dtls1_set_message_header_int
    - memcpy
    - memset
    - DTLS_RECORD_LAYER_get_w_epoch
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: int dtls1_retransmit_message(SSL *s, unsigned short seq, int *found)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_set_message_header_int
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - s
    - mt
    - len
    - frag_off
    - frag_len
    argTypes:
    - SSL*
    - unsigned char
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1182
    functionName: dtls1_set_message_header
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - dtls1_set_message_header_int
    linkageType: ''
    returnType: void
    signature: "void dtls1_set_message_header(SSL *s,\n                              unsigned
      char mt, size_t len,\n                              size_t frag_off, size_t
      frag_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - s
    - mt
    - len
    - seq_num
    - frag_off
    - frag_len
    argTypes:
    - SSL*
    - unsigned char
    - size_t
    - unsigned short
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1197
    functionName: dtls1_set_message_header_int
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dtls1_set_message_header_int(SSL *s, unsigned char mt,\n                             size_t
      len, unsigned short seq_num,\n                             size_t frag_off,
      size_t frag_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - frag_off
    - frag_len
    argTypes:
    - SSL*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1206
    functionName: dtls1_fix_message_header
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dtls1_fix_message_header(SSL *s, size_t frag_off, size_t frag_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1213,1
    - Dst: s2n
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1215,1
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1216,1
    - Dst: l2n3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - SSL*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1220
    functionName: dtls1_write_message_header
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached:
    - s2n
    - l2n3
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *dtls1_write_message_header(SSL *s, unsigned char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1224,1
    - Dst: n2l3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1226,1
    - Dst: n2s
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1228,1
    - Dst: n2l3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1229,1
    - Dst: n2l3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - data
    - msg_hdr
    argTypes:
    - unsigned char*
    - struct hm_header_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1231
    functionName: dtls1_get_message_header
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - n2s
    - memset
    - n2l3
    linkageType: ''
    returnType: void
    signature: void dtls1_get_message_header(unsigned char *data, struct hm_header_st
      *msg_hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_set_message_header_int
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1239,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1241,1
    - Dst: dtls1_set_message_header
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1244,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1249,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - s
    - pkt
    - htype
    argTypes:
    - SSL*
    - WPACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1233
    functionDepth: 4
    functionLinenumber: 1233
    functionLinenumberEnd: 1255
    functionName: dtls1_set_handshake_header
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - WPACKET_allocate_bytes
    - dtls1_set_message_header_int
    - dtls1_set_message_header
    - WPACKET_start_sub_packet
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: int
    signature: int dtls1_set_handshake_header(SSL *s, WPACKET *pkt, int htype)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1261,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1262,1
    - Dst: dtls1_buffer_message
      Src: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c:1275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - s
    - pkt
    - htype
    argTypes:
    - SSL*
    - WPACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1257
    functionDepth: 6
    functionLinenumber: 1257
    functionLinenumberEnd: 1281
    functionName: dtls1_close_construct_packet
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - WPACKET_get_length
    - WPACKET_close
    - dtls1_buffer_message
    linkageType: ''
    returnType: int
    signature: int dtls1_close_construct_packet(SSL *s, WPACKET *pkt, int htype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:48,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:49,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:50,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:57,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:62,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 72
    functionName: tls_parse_ctos_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_get_1
    - memcmp
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_renegotiate(SSL *s, PACKET *pkt, unsigned int context,\n
      \                              X509 *x, size_t chainidx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:103,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:105,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:106,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:122,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:124,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:125,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:134,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:135,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:136,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:142,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:153,1
    - Dst: PACKET_strndup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:155,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:156,1
    - Dst: PACKET_equal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:173,1
    - Dst: strlen
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 178
    functionName: tls_parse_ctos_server_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_contains_zero_byte
    - PACKET_get_1
    - PACKET_equal
    - PACKET_remaining
    - OPENSSL_free
    - PACKET_strndup
    - PACKET_as_length_prefixed_2
    - SSL_IS_TLS13
    - strlen
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_server_name(SSL *s, PACKET *pkt, unsigned int context,\n
      \                              X509 *x, size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:185,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:185,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:186,1
    - Dst: IS_MAX_FRAGMENT_LENGTH_EXT_VALID
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:192,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:193,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 217
    functionName: tls_parse_ctos_maxfragmentlen
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - IS_MAX_FRAGMENT_LENGTH_EXT_VALID
    - PACKET_get_1
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_maxfragmentlen(SSL *s, PACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:225,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:226,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:227,1
    - Dst: PACKET_strndup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:237,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 244
    functionName: tls_parse_ctos_srp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - PACKET_contains_zero_byte
    - PACKET_as_length_prefixed_1
    - SSLfatal
    - PACKET_strndup
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_srp(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:253,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:254,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:255,1
    - Dst: PACKET_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:261,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 271
    functionName: tls_parse_ctos_ec_pt_formats
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_as_length_prefixed_1
    - PACKET_remaining
    - PACKET_memdup
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_ec_pt_formats(SSL *s, PACKET *pkt, unsigned int
      context,\n                                 X509 *x, size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::ext::session_ticket_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:278,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:278,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:279,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 287
    functionName: tls_parse_ctos_session_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    - SSL*::ext::session_ticket_cb
    - SSLfatal
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_session_ticket(SSL *s, PACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:294,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:295,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:296,1
    - Dst: tls1_save_sigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:301,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 289
    functionDepth: 5
    functionLinenumber: 289
    functionLinenumberEnd: 308
    functionName: tls_parse_ctos_sig_algs_cert
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - PACKET_as_length_prefixed_2
    - tls1_save_sigalgs
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_sig_algs_cert(SSL *s, PACKET *pkt, unsigned int
      context,\n                                 X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:315,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:316,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:317,1
    - Dst: tls1_save_sigalgs
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:322,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 310
    functionDepth: 5
    functionLinenumber: 310
    functionLinenumberEnd: 329
    functionName: tls_parse_ctos_sig_algs
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - PACKET_as_length_prefixed_2
    - tls1_save_sigalgs
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_sig_algs(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                            size_t chainidx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:345,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:346,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:359,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:360,1
    - Dst: sk_OCSP_RESPID_pop_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:369,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:370,1
    - Dst: sk_OCSP_RESPID_new_null
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:371,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:373,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:381,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:386,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:387,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:388,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:393,1
    - Dst: d2i_OCSP_RESPID
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:395,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:396,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:398,1
    - Dst: PACKET_end
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:403,1
    - Dst: OCSP_RESPID_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:404,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:405,1
    - Dst: sk_OCSP_RESPID_push
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:411,1
    - Dst: OCSP_RESPID_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:412,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:413,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:421,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:422,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:427,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:428,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:430,1
    - Dst: d2i_X509_EXTENSIONS
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:433,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:433,1
    - Dst: PACKET_end
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:434,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:435,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 442
    functionName: tls_parse_ctos_status_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_get_length_prefixed_2
    - PACKET_data
    - sk_OCSP_RESPID_push
    - OCSP_RESPID_free
    - PACKET_get_1
    - PACKET_remaining
    - d2i_OCSP_RESPID
    - PACKET_as_length_prefixed_2
    - PACKET_end
    - d2i_X509_EXTENSIONS
    - sk_X509_EXTENSION_pop_free
    - sk_OCSP_RESPID_pop_free
    - sk_OCSP_RESPID_new_null
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_status_request(SSL *s, PACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 457
    functionName: tls_parse_ctos_npn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSL_IS_FIRST_HANDSHAKE
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_npn(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:469,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:472,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:473,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:474,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:482,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:483,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:484,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:488,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:490,1
    - Dst: PACKET_memdup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:493,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 501
    functionName: tls_parse_ctos_alpn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_get_length_prefixed_1
    - PACKET_remaining
    - SSL_IS_FIRST_HANDSHAKE
    - OPENSSL_free
    - PACKET_as_length_prefixed_2
    - PACKET_memdup
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_alpn(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                        size_t chainidx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:507,1
    - Dst: SSL_get_srtp_profiles
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:513,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:517,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:518,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:519,1
    - Dst: SSL_get_srtp_profiles
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:524,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_num
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:527,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:529,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:530,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:531,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_value
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:544,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:555,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:556,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:561,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:562,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:563,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 569
    functionName: tls_parse_ctos_use_srtp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_get_sub_packet
    - sk_SRTP_PROTECTION_PROFILE_num
    - PACKET_get_1
    - PACKET_remaining
    - STACK_OF
    - sk_SRTP_PROTECTION_PROFILE_value
    - PACKET_forward
    - SSL_get_srtp_profiles
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_use_srtp(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                            size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 579
    functionName: tls_parse_ctos_etm
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_etm(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:592,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:593,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:594,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:599,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 609
    functionName: tls_parse_ctos_psk_kex_modes
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_as_length_prefixed_1
    - PACKET_get_1
    - PACKET_remaining
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_psk_kex_modes(SSL *s, PACKET *pkt, unsigned int
      context,\n                                 X509 *x, size_t chainidx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:630,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:635,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:636,1
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:642,1
    - Dst: tls1_get_peer_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:644,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:651,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:656,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:662,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:667,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:668,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:669,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:670,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:671,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:689,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:690,1
    - Dst: check_in_list
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:696,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:697,1
    - Dst: check_in_list
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:703,1
    - Dst: ssl_generate_param_group
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:708,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:709,1
    - Dst: EVP_PKEY_set1_tls_encodedpoint
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:716,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:717,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:718,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:719,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 615
    functionDepth: 4
    functionLinenumber: 615
    functionLinenumberEnd: 729
    functionName: tls_parse_ctos_key_share
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_get_length_prefixed_2
    - PACKET_data
    - tls1_get_peer_groups
    - check_in_list
    - ssl_generate_param_group
    - PACKET_remaining
    - PACKET_as_length_prefixed_2
    - tls1_get_supported_groups
    - EVP_PKEY_set1_tls_encodedpoint
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_key_share(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                             size_t chainidx)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:751,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:752,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:758,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:759,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:761,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:762,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:766,1
    - Dst: EVP_MD_CTX_create
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:769,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:770,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:775,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:776,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:777,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:783,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:783,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:784,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:787,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:788,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:789,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:794,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:795,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:797,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:798,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:803,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:804,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:818,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:819,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:824,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:829,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:830,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:835,1
    - Dst: PACKET_forward
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:836,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:837,1
    - Dst: ssl_get_cipher_by_char
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:843,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:848,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:853,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:854,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:855,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:856,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:857,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:858,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:864,1
    - Dst: SSL*::ctx::verify_stateless_cookie_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:871,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:871,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:872,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:873,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:883,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:884,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:888,1
    - Dst: WPACKET_start_sub_packet_u24
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:889,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:890,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:891,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:892,1
    - Dst: SSL*::method::put_cipher_by_char
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:894,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:896,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:897,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:898,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:899,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:903,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:904,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:905,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:906,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:907,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:908,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:913,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:914,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:915,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:916,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:917,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:918,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:923,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:924,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:925,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:926,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:927,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:928,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:929,1
    - Dst: WPACKET_finish
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:930,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:931,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:932,1
    - Dst: create_synthetic_message_hash
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:938,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:938,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:939,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 107
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 731
    functionDepth: 4
    functionLinenumber: 731
    functionLinenumberEnd: 952
    functionName: tls_parse_ctos_cookie
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - WPACKET_init_static_len
    - PACKET_get_net_4
    - PACKET_get_1
    - EVP_MD_CTX_create
    - EVP_DigestSign
    - create_synthetic_message_hash
    - PACKET_remaining
    - PACKET_forward
    - EVP_MD_CTX_free
    - ssl_get_cipher_by_char
    - PACKET_get_net_2
    - WPACKET_sub_memcpy_u16
    - SSL*::ctx::verify_stateless_cookie_cb
    - WPACKET_put_bytes_u16
    - PACKET_as_length_prefixed_2
    - WPACKET_start_sub_packet_u16
    - EVP_DigestSignInit
    - CRYPTO_memcmp
    - EVP_sha256
    - time
    - WPACKET_finish
    - WPACKET_memcpy
    - SSLfatal
    - SSL*::method::put_cipher_by_char
    - WPACKET_close
    - EVP_PKEY_new_raw_private_key
    - PACKET_get_length_prefixed_1
    - WPACKET_sub_memcpy_u8
    - WPACKET_get_total_written
    - WPACKET_start_sub_packet_u24
    - WPACKET_put_bytes_u8
    - EVP_PKEY_free
    - WPACKET_cleanup
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_cookie(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                          size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:961,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:962,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:963,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:964,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:969,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:970,1
    - Dst: tls1_save_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:973,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:976,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 955
    functionDepth: 4
    functionLinenumber: 955
    functionLinenumberEnd: 984
    functionName: tls_parse_ctos_supported_groups
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    - OPENSSL_free
    - tls1_save_u16
    - PACKET_as_length_prefixed_2
    - SSL_IS_TLS13
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_supported_groups(SSL *s, PACKET *pkt, unsigned
      int context,\n                                    X509 *x, size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:991,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 1000
    functionName: tls_parse_ctos_ems
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_ems(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1006,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1007,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1019
    functionName: tls_parse_ctos_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_early_data(SSL *s, PACKET *pkt, unsigned int context,\n
      \                             X509 *x, size_t chainidx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1028,1
    - Dst: lookup_sess_in_cache
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1039,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - s
    - tick
    - sess
    argTypes:
    - SSL*
    - PACKET*
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1021
    functionDepth: 2
    functionLinenumber: 1021
    functionLinenumberEnd: 1047
    functionName: tls_get_stateful_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    - PACKET_data
    - lookup_sess_in_cache
    linkageType: ''
    returnType: SSL_TICKET_STATUS
    signature: "SSL_TICKET_STATUS tls_get_stateful_ticket(SSL *s, PACKET *tick,\n
      \                                                SSL_SESSION **sess)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1066,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1067,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1073,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1078,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1079,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1080,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1085,1
    - Dst: SSL*::psk_find_session_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1087,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1087,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1089,1
    - Dst: PACKET_strndup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1102,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1103,1
    - Dst: SSL*::psk_server_callback
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1107,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1109,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1111,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1122,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1124,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1125,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1130,1
    - Dst: SSL_SESSION_set1_master_key
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1132,1
    - Dst: SSL_SESSION_set_cipher
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1134,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1135,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1137,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1138,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1142,1
    - Dst: ssl_session_dup
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1149,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1152,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1156,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1163,1
    - Dst: tls_get_stateful_ticket
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1181,1
    - Dst: tls_decrypt_ticket
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1183,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1183,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1184,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1188,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1195,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1205,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1206,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1212,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1238,1
    - Dst: ssl_md
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1239,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1241,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1253,1
    - Dst: EVP_MD_size
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1254,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1256,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1257,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1263,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1264,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1270,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1271,1
    - Dst: tls_psk_do_binder
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1275,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1276,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1284,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1288,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 130
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1049
    functionDepth: 7
    functionLinenumber: 1049
    functionLinenumberEnd: 1290
    functionName: tls_parse_ctos_psk
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_2
    - PACKET_get_net_4
    - SSL_SESSION_free
    - PACKET_remaining
    - SSL_SESSION_new
    - OPENSSL_cleanse
    - SSL*::psk_server_callback
    - tls_psk_do_binder
    - OPENSSL_free
    - PACKET_strndup
    - memcpy
    - time
    - ssl_md
    - tls_decrypt_ticket
    - SSLfatal
    - SSL_CTX_remove_session
    - SSL*::psk_find_session_cb
    - tls_get_stateful_ticket
    - SSL_SESSION_set_protocol_version
    - EVP_MD_size
    - PACKET_get_length_prefixed_1
    - ssl_session_dup
    - SSL_SESSION_set1_master_key
    - SSL_CIPHER_find
    - SSL_SESSION_set_cipher
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_psk(SSL *s, PACKET *pkt, unsigned int context,
      X509 *x,\n                       size_t chainidx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1295,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - PACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1304
    functionName: tls_parse_ctos_post_handshake_auth
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - PACKET_remaining
    linkageType: ''
    returnType: int
    signature: "int tls_parse_ctos_post_handshake_auth(SSL *s, PACKET *pkt, unsigned
      int context,\n                                       X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1317,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1318,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1319,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1320,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1322,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1324,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1325,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1326,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1309
    functionDepth: 3
    functionLinenumber: 1309
    functionLinenumberEnd: 1332
    functionName: tls_construct_stoc_renegotiate
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u8
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - WPACKET_memcpy
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_renegotiate(SSL *s, WPACKET *pkt,\n
      \                                         unsigned int context, X509 *x,\n                                          size_t
      chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1345,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1348,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1349,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1356
    functionName: tls_construct_stoc_server_name
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - SSL_IS_TLS13
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_server_name(SSL *s, WPACKET *pkt,\n
      \                                         unsigned int context, X509 *x,\n                                          size_t
      chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: USE_MAX_FRAGMENT_LENGTH_EXT
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1363,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1370,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1371,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1372,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1373,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1359
    functionDepth: 3
    functionLinenumber: 1359
    functionLinenumberEnd: 1380
    functionName: tls_construct_stoc_maxfragmentlen
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - USE_MAX_FRAGMENT_LENGTH_EXT
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_maxfragmentlen(SSL *s, WPACKET *pkt,\n
      \                                            unsigned int context, X509 *x,\n
      \                                            size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls1_get_formatlist
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1397,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1398,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1399,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1400,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1401,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1402,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1383
    functionDepth: 3
    functionLinenumber: 1383
    functionLinenumberEnd: 1408
    functionName: tls_construct_stoc_ec_pt_formats
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u8
    - tls1_get_formatlist
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_ec_pt_formats(SSL *s, WPACKET *pkt,\n
      \                                           unsigned int context, X509 *x,\n
      \                                           size_t chainidx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tls1_get_supported_groups
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1424,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1426,1
    - Dst: tls_curve_allowed
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1435,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1445,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1447,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1448,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1449,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1457,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1458,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1466,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1466,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1467,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1412
    functionDepth: 3
    functionLinenumber: 1412
    functionLinenumberEnd: 1474
    functionName: tls_construct_stoc_supported_groups
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - tls_curve_allowed
    - tls1_get_supported_groups
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_supported_groups(SSL *s, WPACKET *pkt,\n
      \                                              unsigned int context, X509 *x,\n
      \                                              size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls_use_ticket
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1481,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1486,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1487,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1477
    functionDepth: 2
    functionLinenumber: 1477
    functionLinenumberEnd: 1494
    functionName: tls_construct_stoc_session_ticket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - tls_use_ticket
    - WPACKET_put_bytes_u16
    - SSLfatal
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_session_ticket(SSL *s, WPACKET *pkt,\n
      \                                            unsigned int context, X509 *x,\n
      \                                            size_t chainidx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1508,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1511,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1512,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1513,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1523,1
    - Dst: tls_construct_cert_status_body
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1523,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1527,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1497
    functionDepth: 3
    functionLinenumber: 1497
    functionLinenumberEnd: 1534
    functionName: tls_construct_stoc_status_request
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - tls_construct_cert_status_body
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - SSL_IS_TLS13
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_status_request(SSL *s, WPACKET *pkt,\n
      \                                            unsigned int context, X509 *x,\n
      \                                            size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::ctx::ext::npn_advertised_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1551,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1554,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1555,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1538
    functionDepth: 1
    functionLinenumber: 1538
    functionLinenumberEnd: 1565
    functionName: tls_construct_stoc_next_proto_neg
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_sub_memcpy_u16
    - SSL*::ctx::ext::npn_advertised_cb
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_next_proto_neg(SSL *s, WPACKET *pkt,\n
      \                                            unsigned int context, X509 *x,\n
      \                                            size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1574,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1576,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1577,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1578,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1580,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1581,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1582,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1568
    functionDepth: 3
    functionLinenumber: 1568
    functionLinenumberEnd: 1588
    functionName: tls_construct_stoc_alpn
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_memcpy_u8
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_alpn(SSL *s, WPACKET *pkt, unsigned
      int context,\n                                   X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1598,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1599,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1600,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1601,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1602,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1603,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1604,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1591
    functionDepth: 3
    functionLinenumber: 1591
    functionLinenumberEnd: 1610
    functionName: tls_construct_stoc_use_srtp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_use_srtp(SSL *s, WPACKET *pkt,\n                                       unsigned
      int context, X509 *x,\n                                       size_t chainidx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1631,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1632,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1633,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1639
    functionName: tls_construct_stoc_etm
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_etm(SSL *s, WPACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1647,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1648,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1655
    functionName: tls_construct_stoc_ems
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_ems(SSL *s, WPACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1661,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1661,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1662,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1668,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1669,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1670,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1671,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1672,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1657
    functionDepth: 3
    functionLinenumber: 1657
    functionLinenumberEnd: 1679
    functionName: tls_construct_stoc_supported_versions
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - SSL_IS_TLS13
    - ossl_assert
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_supported_versions(SSL *s, WPACKET *pkt,\n
      \                                                unsigned int context, X509
      *x,\n                                                 size_t chainidx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1695,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1696,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1697,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1698,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1699,1
    - Dst: tls13_generate_handshake_secret
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1710,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1711,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1718,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1719,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1720,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1721,1
    - Dst: ssl_generate_pkey
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1726,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1728,1
    - Dst: EVP_PKEY_get1_tls_encodedpoint
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1734,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1736,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1738,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1742,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1743,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1744,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1746,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1747,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1750,1
    - Dst: ssl_derive
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1754,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1681
    functionDepth: 7
    functionLinenumber: 1681
    functionLinenumberEnd: 1762
    functionName: tls_construct_stoc_key_share
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl_generate_pkey
    - EVP_PKEY_get1_tls_encodedpoint
    - WPACKET_sub_memcpy_u16
    - WPACKET_put_bytes_u16
    - OPENSSL_free
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    - ssl_derive
    - EVP_PKEY_free
    - tls13_generate_handshake_secret
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_key_share(SSL *s, WPACKET *pkt,\n                                        unsigned
      int context, X509 *x,\n                                        size_t chainidx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1779,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1784,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1785,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1786,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1787,1
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1788,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1789,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1790,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1791,1
    - Dst: SSL*::method::put_cipher_by_char
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1792,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1795,1
    - Dst: WPACKET_put_bytes_u32
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1796,1
    - Dst: time
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1796,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1797,1
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1798,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1799,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1809,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1810,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1815,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1816,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1817,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1818,1
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1819,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1820,1
    - Dst: SSL*::ctx::gen_stateless_cookie_cb
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1826,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1827,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1832,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1833,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1834,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1835,1
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1836,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1837,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1844,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1845,1
    - Dst: EVP_MD_CTX_create
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1851,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1852,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1857,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1862,1
    - Dst: EVP_sha256
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1862,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1863,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1865,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1870,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1871,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1876,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1877,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1878,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1879,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1880,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1881,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1889,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1890,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 61
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1764
    functionDepth: 4
    functionLinenumber: 1764
    functionLinenumberEnd: 1895
    functionName: tls_construct_stoc_cookie
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_create
    - EVP_DigestSign
    - WPACKET_put_bytes_u32
    - EVP_MD_CTX_free
    - ssl3_digest_cached_records
    - WPACKET_reserve_bytes
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_start_sub_packet_u8
    - EVP_DigestSignInit
    - EVP_sha256
    - time
    - ossl_assert
    - SSLfatal
    - SSL*::method::put_cipher_by_char
    - ssl_handshake_hash
    - WPACKET_close
    - EVP_PKEY_new_raw_private_key
    - WPACKET_get_total_written
    - WPACKET_allocate_bytes
    - SSL*::ctx::gen_stateless_cookie_cb
    - WPACKET_put_bytes_u8
    - EVP_PKEY_free
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_cookie(SSL *s, WPACKET *pkt, unsigned
      int context,\n                                     X509 *x, size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_options
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1912,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1915,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1897
    functionDepth: 3
    functionLinenumber: 1897
    functionLinenumberEnd: 1922
    functionName: tls_construct_stoc_cryptopro_bug
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - SSL_get_options
    - WPACKET_memcpy
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_cryptopro_bug(SSL *s, WPACKET *pkt,\n
      \                                           unsigned int context, X509 *x,\n
      \                                           size_t chainidx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1932,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1933,1
    - Dst: WPACKET_put_bytes_u32
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1934,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1935,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1936,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1947,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1948,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1949,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1950,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1924
    functionDepth: 3
    functionLinenumber: 1924
    functionLinenumberEnd: 1956
    functionName: tls_construct_stoc_early_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u32
    - WPACKET_put_bytes_u16
    - WPACKET_start_sub_packet_u16
    - WPACKET_close
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_early_data(SSL *s, WPACKET *pkt,\n                                         unsigned
      int context, X509 *x,\n                                         size_t chainidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1964,1
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1965,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1966,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1967,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c:1968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pkt
    - context
    - x
    - chainidx
    argTypes:
    - SSL*
    - WPACKET*
    - unsigned int
    - X509*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1958
    functionDepth: 3
    functionLinenumber: 1958
    functionLinenumberEnd: 1974
    functionName: tls_construct_stoc_psk
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/extensions_srvr.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u16
    - WPACKET_close
    - WPACKET_start_sub_packet_u16
    linkageType: ''
    returnType: EXT_RETURN
    signature: "EXT_RETURN tls_construct_stoc_psk(SSL *s, WPACKET *pkt, unsigned int
      context,\n                                  X509 *x, size_t chainidx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_write_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:46,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:56,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:59,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:65,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - s
    - type
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 73
    functionName: ssl3_do_write
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSL*::msg_callback
    - ssl3_write_bytes
    - SSL_IS_TLS13
    - ssl3_finish_mac
    linkageType: ''
    returnType: int
    signature: int ssl3_do_write(SSL *s, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:79,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - s
    - pkt
    - htype
    argTypes:
    - SSL*
    - WPACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: tls_close_construct_packet
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - WPACKET_get_length
    - WPACKET_close
    linkageType: ''
    returnType: int
    signature: int tls_close_construct_packet(SSL *s, WPACKET *pkt, int htype)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_init_finished_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:91,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:97,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:100,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:100,1
    - Dst: ssl_get_min_max_version
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:108,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:109,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:113,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:114,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:116,1
    - Dst: DTLS_VERSION_GE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:117,1
    - Dst: DTLS_VERSION_LE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:118,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:127,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:129,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:133,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:135,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:138,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:143,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:144,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:146,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:149,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:154,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 159
    functionName: tls_setup_handshake
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 3
    functionsReached:
    - SSLfatal
    - tsan_counter
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    - SSL_IS_FIRST_HANDSHAKE
    - ssl_get_min_max_version
    - STACK_OF
    - ERR_add_error_data
    - DTLS_VERSION_LE
    - ssl3_init_finished_mac
    - memset
    - SSL_get_ciphers
    - SSL_IS_DTLS
    - DTLS_VERSION_GE
    linkageType: ''
    returnType: int
    signature: int tls_setup_handshake(SSL *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:184,1
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:188,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:192,1
    - Dst: strcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:194,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:203,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:206,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:218,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:220,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - s
    - tls13tbs
    - hdata
    - hdatalen
    argTypes:
    - SSL*
    - unsigned char*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 228
    functionName: get_cert_verify_tbs_data
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - BIO_get_mem_data
    - SSLfatal
    - strcpy
    - memcpy
    - memset
    - SSL_IS_TLS13
    - ssl_handshake_hash
    linkageType: ''
    returnType: int
    signature: "int get_cert_verify_tbs_data(SSL *s, unsigned char *tls13tbs,\n                                    void
      **hdata, size_t *hdatalen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:243,1
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:249,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:250,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:255,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:257,1
    - Dst: get_cert_verify_tbs_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:263,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:268,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:268,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:269,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:273,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:274,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:276,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:281,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:282,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:288,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:289,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:291,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:297,1
    - Dst: EVP_MD_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:298,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:301,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:303,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:307,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:308,1
    - Dst: BUF_reverse
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:320,1
    - Dst: WPACKET_sub_memcpy_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:324,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:325,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:331,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:336,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:337,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:340,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:341,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 78
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 343
    functionName: tls_construct_cert_verify
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_md
    - EVP_DigestSign
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_free
    - EVP_MD_CTX_ctrl
    - ssl3_digest_cached_records
    - SSL_USE_SIGALGS
    - OPENSSL_malloc
    - WPACKET_sub_memcpy_u16
    - WPACKET_put_bytes_u16
    - OPENSSL_free
    - EVP_DigestSignInit
    - EVP_PKEY_size
    - EVP_DigestSignFinal
    - SSLfatal
    - EVP_MD_CTX_new
    - get_cert_verify_tbs_data
    - EVP_PKEY_CTX_set_rsa_padding
    - BUF_reverse
    linkageType: ''
    returnType: int
    signature: int tls_construct_cert_verify(SSL *s, WPACKET *pkt)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:360,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:364,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:370,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:372,1
    - Dst: ssl_cert_lookup_by_pkey
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:377,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:378,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:383,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:386,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:387,1
    - Dst: tls12_check_peer_sigalg
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:391,1
    - Dst: tls1_set_peer_legacy_sigalg
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:395,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:396,1
    - Dst: tls1_lookup_md
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:401,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:402,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:408,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:409,1
    - Dst: EVP_MD_name
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:410,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:419,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:420,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:421,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:422,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:423,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:424,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:425,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:428,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:429,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:434,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:435,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:436,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:437,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:441,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:442,1
    - Dst: get_cert_verify_tbs_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:447,1
    - Dst: fprintf
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:453,1
    - Dst: EVP_MD_name
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:454,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:456,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:457,1
    - Dst: EVP_PKEY_id
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:463,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:467,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:468,1
    - Dst: BUF_reverse
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:472,1
    - Dst: SSL_USE_PSS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:478,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:479,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:480,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:482,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:488,1
    - Dst: EVP_MD_CTX_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:489,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:492,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:496,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:497,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:502,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:504,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:518,1
    - Dst: BIO_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:523,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:525,1
    - Dst: OPENSSL_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:527,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 116
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 345
    functionDepth: 5
    functionLinenumber: 345
    functionLinenumberEnd: 530
    functionName: tls_process_cert_verify
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - tls1_lookup_md
    - PACKET_remaining
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - EVP_PKEY_id
    - EVP_MD_CTX_free
    - X509_get0_pubkey
    - EVP_MD_CTX_ctrl
    - EVP_DigestVerifyInit
    - tls1_set_peer_legacy_sigalg
    - fprintf
    - PACKET_get_net_2
    - SSL_USE_SIGALGS
    - OPENSSL_malloc
    - OPENSSL_free
    - PACKET_get_bytes
    - BIO_free
    - EVP_PKEY_size
    - tls12_check_peer_sigalg
    - EVP_DigestVerifyFinal
    - SSLfatal
    - EVP_MD_CTX_new
    - get_cert_verify_tbs_data
    - SSL_IS_TLS13
    - EVP_MD_name
    - EVP_PKEY_CTX_set_rsa_padding
    - ssl_cert_lookup_by_pkey
    - EVP_DigestVerifyUpdate
    - BUF_reverse
    - SSL_USE_PSS
    - EVP_DigestVerify
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_cert_verify(SSL *s, PACKET *pkt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:546,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:549,1
    - Dst: SSL*::method::ssl3_enc::final_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:563,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:573,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:574,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:583,1
    - Dst: ssl_log_secret
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:583,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:593,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:594,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:599,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:603,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 609
    functionName: tls_construct_finished
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - ssl_log_secret
    - memcpy
    - SSL*::method::ssl3_enc::change_cipher_state
    - SSL_IS_TLS13
    - SSL*::method::ssl3_enc::final_finish_mac
    - ossl_assert
    - WPACKET_memcpy
    linkageType: ''
    returnType: int
    signature: int tls_construct_finished(SSL *s, WPACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:613,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 621
    functionName: tls_construct_key_update
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: int
    signature: int tls_construct_key_update(SSL *s, WPACKET *pkt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_processed_read_pending
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:631,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:632,1
    - Dst: PACKET_get_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:637,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:638,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:639,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:650,1
    - Dst: tls13_update_key
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:663,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 623
    functionDepth: 8
    functionLinenumber: 623
    functionLinenumberEnd: 669
    functionName: tls_process_key_update
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - RECORD_LAYER_processed_read_pending
    - PACKET_get_1
    - PACKET_remaining
    - tls13_update_key
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_key_update(SSL *s, PACKET *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl3_enc::final_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 698
    functionName: ssl3_take_mac
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - SSL*::method::ssl3_enc::final_finish_mac
    linkageType: ''
    returnType: int
    signature: int ssl3_take_mac(SSL *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:704,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:710,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:715,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:722,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:731,1
    - Dst: ssl3_do_change_cipher_spec
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:737,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:738,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:743,1
    - Dst: dtls1_reset_seq_numbers
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:744,1
    - Dst: BIO_ctrl
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:755,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:755,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 760
    functionName: tls_process_change_cipher_spec
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - ssl3_do_change_cipher_spec
    - PACKET_remaining
    - SSL_get_wbio
    - BIO_ctrl
    - SSL_IS_DTLS
    - dtls1_reset_seq_numbers
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_change_cipher_spec(SSL *s, PACKET *pkt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:777,1
    - Dst: tls13_save_handshake_digest_for_pha
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:777,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:787,1
    - Dst: RECORD_LAYER_processed_read_pending
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:787,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:788,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:794,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:795,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:803,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:804,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:809,1
    - Dst: PACKET_data
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:809,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:811,1
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:819,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:820,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:825,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:829,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:838,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:841,1
    - Dst: SSL*::method::ssl3_enc::generate_master_secret
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:849,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:855,1
    - Dst: tls_process_initial_server_flight
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:860,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 762
    functionDepth: 11
    functionLinenumber: 762
    functionLinenumberEnd: 868
    functionName: tls_process_finished
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - RECORD_LAYER_processed_read_pending
    - PACKET_data
    - PACKET_remaining
    - tls_process_initial_server_flight
    - memcpy
    - SSL*::method::ssl3_enc::change_cipher_state
    - SSL*::method::ssl3_enc::generate_master_secret
    - CRYPTO_memcmp
    - SSL_IS_TLS13
    - ossl_assert
    - tls13_save_handshake_digest_for_pha
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: MSG_PROCESS_RETURN tls_process_finished(SSL *s, PACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:872,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 879
    functionName: tls_construct_change_cipher_spec
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_put_bytes_u8
    linkageType: ''
    returnType: int
    signature: int tls_construct_change_cipher_spec(SSL *s, WPACKET *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:887,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:889,1
    - Dst: WPACKET_sub_allocate_bytes_u24
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:893,1
    - Dst: i2d_X509
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:894,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:895,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:900,1
    - Dst: tls_construct_extensions
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:901,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - s
    - pkt
    - x
    - chain
    argTypes:
    - SSL*
    - WPACKET*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 882
    functionDepth: 5
    functionLinenumber: 882
    functionLinenumberEnd: 908
    functionName: ssl_add_cert_to_wpacket
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - WPACKET_sub_allocate_bytes_u24
    - SSL_IS_TLS13
    - i2d_X509
    - tls_construct_extensions
    linkageType: ''
    returnType: int
    signature: int ssl_add_cert_to_wpacket(SSL *s, WPACKET *pkt, X509 *x, int chain)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:915,1
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:916,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:940,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:943,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:947,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:948,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:949,1
    - Dst: X509_verify_cert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:959,1
    - Dst: ERR_clear_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:961,1
    - Dst: X509_STORE_CTX_get0_chain
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:962,1
    - Dst: ssl_security_cert_chain
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:963,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:967,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:968,1
    - Dst: SSLerr
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:969,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:971,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:972,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:975,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:977,1
    - Dst: ssl_add_cert_to_wpacket
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:979,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:981,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:985,1
    - Dst: ssl_security_cert_chain
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:987,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:989,1
    - Dst: ssl_add_cert_to_wpacket
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:992,1
    - Dst: sk_X509_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:996,1
    - Dst: sk_X509_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:997,1
    - Dst: ssl_add_cert_to_wpacket
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:998,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 3
    argNames:
    - s
    - pkt
    - cpk
    argTypes:
    - SSL*
    - WPACKET*
    - CERT_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 911
    functionDepth: 6
    functionLinenumber: 911
    functionLinenumberEnd: 1005
    functionName: ssl_add_cert_chain
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - SSLfatal
    - X509_STORE_CTX_init
    - X509_STORE_CTX_free
    - ssl_security_cert_chain
    - X509_verify_cert
    - STACK_OF
    - X509_STORE_CTX_get0_chain
    - sk_X509_num
    - SSLerr
    - ERR_clear_error
    - X509_STORE_CTX_new
    - ssl_add_cert_to_wpacket
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int ssl_add_cert_chain(SSL *s, WPACKET *pkt, CERT_PKEY *cpk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_start_sub_packet_u24
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1009,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1010,1
    - Dst: ssl_add_cert_chain
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1015,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1018,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1019,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - s
    - pkt
    - cpk
    argTypes:
    - SSL*
    - WPACKET*
    - CERT_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1007
    functionDepth: 7
    functionLinenumber: 1007
    functionLinenumberEnd: 1025
    functionName: ssl3_output_cert_chain
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - ssl_add_cert_chain
    - WPACKET_start_sub_packet_u24
    - WPACKET_close
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ssl3_output_cert_chain(SSL *s, WPACKET *pkt, CERT_PKEY
      *cpk)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1038,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1046,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1046,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1053,1
    - Dst: ssl_free_wbio_buffer
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1057,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1058,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1065,1
    - Dst: ssl3_cleanup_key_block
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1080,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1087,1
    - Dst: ssl_update_cache
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1088,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1091,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1094,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1101,1
    - Dst: ssl_update_cache
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1107,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1110,1
    - Dst: tsan_counter
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1113,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1116,1
    - Dst: dtls1_clear_received_buffer
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1121,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1131,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1135,1
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1136,1
    - Dst: cb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1137,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1142,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 4
    argNames:
    - s
    - wst
    - clearbufs
    - stop
    argTypes:
    - SSL*
    - WORK_STATE
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1032
    functionDepth: 5
    functionLinenumber: 1032
    functionLinenumberEnd: 1147
    functionName: tls_finish_handshake
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - tsan_counter
    - ossl_statem_set_in_init
    - cb
    - ssl3_cleanup_key_block
    - SSL_IS_FIRST_HANDSHAKE
    - BIO_dgram_is_sctp
    - BUF_MEM_free
    - SSL_get_wbio
    - SSL_IS_DTLS
    - SSL_IS_TLS13
    - ssl_free_wbio_buffer
    - ssl_update_cache
    - dtls1_clear_received_buffer
    - SSL_CTX_remove_session
    linkageType: ''
    returnType: WORK_STATE
    signature: WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst, int clearbufs,
      int stop)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1160,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1174,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1196,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1219,1
    - Dst: RECORD_LAYER_is_sslv2_record
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1229,1
    - Dst: RECORD_LAYER_get_rrec_length
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1237,1
    - Dst: n2l3
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1244,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1247,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - s
    - mt
    argTypes:
    - SSL*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1149
    functionDepth: 2
    functionLinenumber: 1149
    functionLinenumberEnd: 1258
    functionName: tls_get_message_header
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - n2l3
    - SSL*::msg_callback
    - RECORD_LAYER_get_rrec_length
    - RECORD_LAYER_is_sslv2_record
    - SSL*::method::ssl_read_bytes
    linkageType: ''
    returnType: int
    signature: int tls_get_message_header(SSL *s, int *mt)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1275,1
    - Dst: ssl3_take_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1290,1
    - Dst: RECORD_LAYER_is_sslv2_record
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1297,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1298,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1305,1
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1316,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1320,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1323,1
    - Dst: SSL*::msg_callback
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1332,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1260
    functionDepth: 5
    functionLinenumber: 1260
    functionLinenumberEnd: 1339
    functionName: tls_get_message_body
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - ssl3_take_mac
    - memcmp
    - SSL*::msg_callback
    - RECORD_LAYER_is_sslv2_record
    - SSL_IS_TLS13
    - SSL*::method::ssl_read_bytes
    - ssl3_finish_mac
    linkageType: ''
    returnType: int
    signature: int tls_get_message_body(SSL *s, size_t *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - x509err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1386
    functionDepth: 0
    functionLinenumber: 1386
    functionLinenumberEnd: 1394
    functionName: ssl_x509err2alert
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_x509err2alert(int x509err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1401
    functionName: ssl_allow_compression
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 5
    functionsReached:
    - ssl_security
    linkageType: ''
    returnType: int
    signature: int ssl_allow_compression(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1405,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - s
    - a
    - b
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1403
    functionDepth: 1
    functionLinenumber: 1403
    functionLinenumberEnd: 1412
    functionName: version_cmp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - DTLS_VERSION_LT
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: int version_cmp(const SSL *s, int a, int b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: version_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1488,1
    - Dst: ssl_security
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1489,1
    - Dst: version_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1493,1
    - Dst: tls1_suiteb
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1498,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - s
    - method
    argTypes:
    - SSL*
    - SSL_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1502
    functionName: ssl_method_error
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - ssl_security
    - version_cmp
    - tls1_suiteb
    linkageType: ''
    returnType: int
    signature: int ssl_method_error(const SSL *s, const SSL_METHOD *method)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ssl_has_cert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1536,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1546,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1549,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1549,1
    - Dst: tls_check_sigalg_curve
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1550,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1509
    functionDepth: 3
    functionLinenumber: 1509
    functionLinenumberEnd: 1558
    functionName: is_tls13_capable
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve_name
    - EVP_PKEY_get0_EC_KEY
    - tls_check_sigalg_curve
    - ssl_has_cert
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int is_tls13_capable(const SSL *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: version_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1577,1
    - Dst: version_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1587,1
    - Dst: version_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1590,1
    - Dst: ssl_method_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1591,1
    - Dst: version_info*::cmeth
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1591,1
    - Dst: is_tls13_capable
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1594,1
    - Dst: version_info*::cmeth
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1596,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 3
    argNames:
    - s
    - version
    - meth
    argTypes:
    - SSL*
    - int
    - SSL_METHOD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1569
    functionDepth: 4
    functionLinenumber: 1569
    functionLinenumberEnd: 1601
    functionName: ssl_version_supported
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - version_info*::cmeth
    - is_tls13_capable
    - version_cmp
    - ssl_method_error
    linkageType: ''
    returnType: int
    signature: int ssl_version_supported(const SSL *s, int version, const SSL_METHOD
      **meth)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TLS_method
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1629,1
    - Dst: DTLS_method
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1631,1
    - Dst: ssl_method_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1639,1
    - Dst: version_info*::smeth
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1639,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1612
    functionDepth: 3
    functionLinenumber: 1612
    functionLinenumberEnd: 1643
    functionName: ssl_check_version_downgrade
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - version_info*::smeth
    - DTLS_method
    - TLS_method
    - ssl_method_error
    linkageType: ''
    returnType: int
    signature: int ssl_check_version_downgrade(SSL *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_VERSION_GT
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1692,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1693,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - method_version
    - version
    - bound
    argTypes:
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1700
    functionName: ssl_set_version_bound
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 3
    functionsReached:
    - DTLS_VERSION_GT
    - DTLS_VERSION_LT
    linkageType: ''
    returnType: int
    signature: int ssl_set_version_bound(int method_version, int version, int *bound)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_version_supported
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1705,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1707,1
    - Dst: ssl_version_supported
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1716,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - s
    - vers
    - dgrd
    argTypes:
    - SSL*
    - int
    - DOWNGRADE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1702
    functionDepth: 5
    functionLinenumber: 1702
    functionLinenumberEnd: 1721
    functionName: check_for_downgrade
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - ssl_version_supported
    - SSL_IS_DTLS
    linkageType: ''
    returnType: void
    signature: void check_for_downgrade(SSL *s, int vers, DOWNGRADE *dgrd)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_TLS13
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1754,1
    - Dst: version_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1755,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1786,1
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1794,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1811,1
    - Dst: version_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1812,1
    - Dst: ssl_version_supported
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1814,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1817,1
    - Dst: check_for_downgrade
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1832,1
    - Dst: version_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1844,1
    - Dst: version_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1855,1
    - Dst: version_info*::smeth
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1857,1
    - Dst: ssl_method_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1858,1
    - Dst: check_for_downgrade
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1859,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 3
    argNames:
    - s
    - hello
    - dgrd
    argTypes:
    - SSL*
    - CLIENTHELLO_MSG*
    - DOWNGRADE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1732
    functionDepth: 6
    functionLinenumber: 1732
    functionLinenumberEnd: 1867
    functionName: ssl_choose_server_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - version_cmp
    - ssl_method_error
    - PACKET_remaining
    - version_info*::smeth
    - PACKET_as_length_prefixed_1
    - ssl_version_supported
    - SSL_IS_DTLS
    - SSL_IS_TLS13
    - check_for_downgrade
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int ssl_choose_server_version(SSL *s, CLIENTHELLO_MSG *hello, DOWNGRADE
      *dgrd)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tls_parse_extension
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1890,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1901,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1910,1
    - Dst: ssl_get_min_max_version
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1931,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1934,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1938,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1938,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1941,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1944,1
    - Dst: DTLS_VERSION_GT
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1944,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1947,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1957,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1962,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1967,1
    - Dst: memcmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1970,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1975,1
    - Dst: version_info*::cmeth
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1986,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:1991,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 3
    argNames:
    - s
    - version
    - extensions
    argTypes:
    - SSL*
    - int
    - RAW_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1880
    functionDepth: 3
    functionLinenumber: 1880
    functionLinenumberEnd: 1994
    functionName: ssl_choose_client_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - SSLfatal
    - DTLS_VERSION_LT
    - memcmp
    - ssl_get_min_max_version
    - DTLS_VERSION_GT
    - SSL_IS_DTLS
    - tls_parse_extension
    - version_info*::cmeth
    linkageType: ''
    returnType: int
    signature: int ssl_choose_client_version(SSL *s, int version, RAW_EXTENSION *extensions)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2042,1
    - Dst: version_info*::cmeth
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2089,1
    - Dst: ssl_method_error
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2094,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - s
    - min_version
    - max_version
    - real_max
    argTypes:
    - SSL*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2018
    functionDepth: 3
    functionLinenumber: 2018
    functionLinenumberEnd: 2115
    functionName: ssl_get_min_max_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 6
    functionsReached:
    - version_info*::cmeth
    - ossl_assert
    - ssl_method_error
    linkageType: ''
    returnType: int
    signature: "int ssl_get_min_max_version(const SSL *s, int *min_version, int *max_version,\n
      \                           int *real_max)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_FIRST_HANDSHAKE
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2133,1
    - Dst: ssl_get_min_max_version
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2136,1
    - Dst: SSL_IS_DTLS
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2125
    functionDepth: 4
    functionLinenumber: 2125
    functionLinenumberEnd: 2149
    functionName: ssl_set_client_hello_version
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - SSL_IS_DTLS
    - SSL_IS_FIRST_HANDSHAKE
    - ssl_get_min_max_version
    linkageType: ''
    returnType: int
    signature: int ssl_set_client_hello_version(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls_curve_allowed
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - s
    - group_id
    - groups
    - num_groups
    - checkallow
    argTypes:
    - SSL*
    - uint16_t
    - uint16_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2158
    functionDepth: 3
    functionLinenumber: 2158
    functionLinenumberEnd: 2177
    functionName: check_in_list
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 3
    functionsReached:
    - tls_curve_allowed
    linkageType: ''
    returnType: int
    signature: "int check_in_list(SSL *s, uint16_t group_id, const uint16_t *groups,\n
      \                 size_t num_groups, int checkallow)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2188,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2194,1
    - Dst: ssl_handshake_hash
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2195,1
    - Dst: ssl3_init_finished_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2203,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2211,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2212,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2223,1
    - Dst: ssl3_finish_mac
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 5
    argNames:
    - s
    - hashval
    - hashlen
    - hrr
    - hrrlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2181
    functionDepth: 5
    functionLinenumber: 2181
    functionLinenumberEnd: 2232
    functionName: create_synthetic_message_hash
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 3
    functionsReached:
    - ssl3_digest_cached_records
    - ssl3_init_finished_mac
    - memset
    - ssl_handshake_hash
    - ssl3_finish_mac
    linkageType: ''
    returnType: int
    signature: "int create_synthetic_message_hash(SSL *s, const unsigned char *hashval,\n
      \                                 size_t hashlen, const unsigned char *hrr,\n
      \                                 size_t hrrlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_NAME**
    - X509_NAME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2234
    functionDepth: 1
    functionLinenumber: 2234
    functionLinenumberEnd: 2237
    functionName: ca_dn_cmp
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int ca_dn_cmp(const X509_NAME *const *a, const X509_NAME *const *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2241,1
    - Dst: sk_X509_NAME_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2241,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2246,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2251,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2252,1
    - Dst: PACKET_remaining
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2257,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2261,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2262,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2263,1
    - Dst: d2i_X509_NAME
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2269,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2270,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2275,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2280,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2281,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2288,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2294,1
    - Dst: X509_NAME_free
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2295,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2239
    functionDepth: 4
    functionLinenumber: 2239
    functionLinenumberEnd: 2297
    functionName: parse_ca_names
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 3
    functionsReached:
    - PACKET_get_length_prefixed_2
    - SSLfatal
    - sk_X509_NAME_new
    - PACKET_remaining
    - d2i_X509_NAME
    - STACK_OF
    - sk_X509_NAME_push
    - PACKET_get_bytes
    - X509_NAME_free
    - sk_X509_NAME_pop_free
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: int parse_ca_names(SSL *s, PACKET *pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_client_CA_list
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2304,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2305,1
    - Dst: SSL_get0_CA_list
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2299
    functionDepth: 1
    functionLinenumber: 2299
    functionLinenumberEnd: 2313
    functionName: get_ca_names
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 3
    functionsReached:
    - SSL_get0_CA_list
    - sk_X509_NAME_num
    - SSL_get_client_CA_list
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *get_ca_names(SSL *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_start_sub_packet_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2318,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2319,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2327,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2329,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2333,1
    - Dst: WPACKET_sub_allocate_bytes_u16
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2334,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2336,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2337,1
    - Dst: WPACKET_close
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2344,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2345,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - s
    - ca_sk
    - pkt
    argTypes:
    - SSL*
    - STACK_OF*
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2315
    functionDepth: 3
    functionLinenumber: 2315
    functionLinenumberEnd: 2351
    functionName: construct_ca_names
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 3
    functionsReached:
    - SSLfatal
    - WPACKET_start_sub_packet_u16
    - sk_X509_NAME_num
    - i2d_X509_NAME
    - WPACKET_sub_allocate_bytes_u16
    - WPACKET_close
    - sk_X509_NAME_value
    linkageType: ''
    returnType: int
    signature: int construct_ca_names(SSL *s, const STACK_OF(X509_NAME) *ca_sk, WPACKET
      *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2358,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2361,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2365,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2366,1
    - Dst: memcpy
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - s
    - ptbs
    - param
    - paramlen
    argTypes:
    - SSL*
    - unsigned char**
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2354
    functionDepth: 1
    functionLinenumber: 2354
    functionLinenumberEnd: 2372
    functionName: construct_key_exchange_tbs
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - OPENSSL_malloc
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t construct_key_exchange_tbs(SSL *s, unsigned char **ptbs,\n
      \                                 const void *param, size_t paramlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_digest_cached_records
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2381,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2385,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2387,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2392,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2378
    functionDepth: 4
    functionLinenumber: 2378
    functionLinenumberEnd: 2401
    functionName: tls13_save_handshake_digest_for_pha
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - EVP_MD_CTX_new
    - EVP_MD_CTX_copy_ex
    - ssl3_digest_cached_records
    linkageType: ''
    returnType: int
    signature: int tls13_save_handshake_digest_for_pha(SSL *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2410,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2415,1
    - Dst: SSLfatal
      Src: /src/openssl-1.1.1g/ssl/statem/statem_lib.c:2417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2407
    functionDepth: 4
    functionLinenumber: 2407
    functionLinenumberEnd: 2423
    functionName: tls13_restore_handshake_digest_for_pha
    functionSourceFile: /src/openssl-1.1.1g/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLfatal
    - EVP_MD_CTX_copy_ex
    linkageType: ''
    returnType: int
    signature: int tls13_restore_handshake_digest_for_pha(SSL *s)
Fuzzer filename: /src/openssl-1.1.1g/fuzz/driver.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- str$routines.h
- crypto/asn1.h
- s2/base/log_severity.h
- ioLib.h
- ../ssl/ssl_cert_table.h
- crypto/store.h
- idea_local.h
- internal/comp.h
- s2/s2boolean_operation.h
- crypto/bn_conf.h
- statem_local.h
- crypto/bn.h
- wincon.h
- openssl/symhacks.h
- iterator
- sys/types.h
- s2/s2builder_layer.h
- absl/base/call_once.h
- crypto/rand.h
- absl/strings/numbers.h
- openssl/cterr.h
- openssl/pkcs7err.h
- asn1_local.h
- s2/s2closest_point_query.h
- openssl/ecerr.h
- openssl/kdf.h
- ncbc_enc.c
- s2/mutable_s2shape_index.h
- spr.h
- iostream
- evp_test.h
- LPdir_unix.c
- modes_local.h
- openssl/storeerr.h
- openssl/ocsperr.h
- s2/encoded_s2point_vector.h
- absl/flags/marshalling.h
- openssl/modes.h
- packet_local.h
- s2/s2closest_cell_query_base.h
- s2/s2latlng.h
- s2/base/casts.h
- tlhelp32.h
- v3_admis.h
- rc5_local.h
- openssl/pem.h
- openssl/async.h
- openssl/bnerr.h
- s2/internal/s2disjoint_set.h
- point_448.h
- s2/s2builderutil_s2point_vector_layer.h
- openssl/store.h
- s2/s2latlng_rect_bounder.h
- LPdir_wince.c
- openssl/safestack.h
- conio.h
- openssl/randerr.h
- ssl_local.h
- stdarg.h
- s2/s2point_region.h
- s2/s2random.h
- s2/util/coding/varint.h
- bitset
- crypto/sm4.h
- absl/container/flat_hash_set.h
- openssl/mdc2.h
- absl/strings/ascii.h
- openssl/comp.h
- s2/s2r2rect.h
- absl/random/bit_gen_ref.h
- s2/s2pointutil.h
- new
- ../vms_rms.h
- standard_methods.h
- namdef.h
- algorithm
- buildinf.h
- absl/flags/declare.h
- sys/select.h
- s2/s2region.h
- s2/util/gtl/container_logging.h
- immintrin.h
- s2/s2cell_iterator_join.h
- s2/s2region_coverer.h
- cast_local.h
- openssl/rc4.h
- conf_local.h
- pybind11/operators.h
- ext_dat.h
- s_apps.h
- openssl/dh.h
- openssl/sslerr.h
- s2/util/task/status_macros.h
- absl/base/macros.h
- output.h
- sys/file.h
- s2/s2shapeutil_build_polygon_boundaries.h
- chrono
- s2/s2cell_iterator_testing.h
- crypto/objects.h
- ../bn_asm.c
- absl/types/optional.h
- vector
- ucontext.h
- s2/s2region_union.h
- array
- openssl/x509_vfy.h
- s2/s2lax_polygon_shape.h
- cmll_local.h
- s2/s2shape.h
- absl/base/optimization.h
- curve448/curve448_local.h
- openssl/e_os2.h
- s2/s2closest_point_query_base.h
- openssl/rand.h
- crypto/cryptlib.h
- dl.h
- ostream
- s2/s2loop.h
- internal/constant_time.h
- tcp.h
- conf_def.h
- wincrypt.h
- internal/thread_once.h
- arpa/inet.h
- s2/s2wedge_relations.h
- openssl/dherr.h
- openssl/opensslv.h
- s2/s2shapeutil_coding.h
- openssl/x509.h
- openssl/ui.h
- stsdef.h
- assert.h
- s2/s2coder.h
- ecdsatest.h
- direct.h
- s2/s2shapeutil_count_vertices.h
- openssl/objects.h
- s2/util/bits/bit-interleave.h
- absl/base/no_destructor.h
- ../crypto/x509v3/standard_exts.h
- openssl/ct.h
- s2/s2closest_cell_query.h
- gmock/gmock.h
- string
- store_local.h
- s2/s2cell_range_iterator.h
- ./testdsa.h
- ppc_arch.h
- internal/numbers.h
- stdatomic.h
- s2/s2point_vector_shape.h
- openssl/buffererr.h
- s2/s2shapeutil_get_reference_point.h
- openssl/ts.h
- standard_exts.h
- s2/s2point_array.h
- openssl/stack.h
- s2/_fp_contract_off.h
- strings.h
- s2/base/spinlock.h
- s2/s2builderutil_s2polygon_layer.h
- cinttypes
- pthread.h
- openssl/lhash.h
- ttdef.h
- openssl/rc5.h
- ts_local.h
- s2/s2convex_hull_query.h
- crypto/ec.h
- crypto/cryptodev.h
- dso_local.h
- s2/s2region_term_indexer.h
- absl/functional/function_ref.h
- crypto/evp.h
- s2/internal/s2incident_edge_tracker.h
- s2/s2polyline_alignment_internal.h
- s2/internal/s2meta.h
- iosbdef.h
- s2/s2contains_vertex_query.h
- openssl/evp.h
- s2/s2buffer_operation.h
- s2/util/endian/endian.h
- s2/s2shape_measures.h
- crypto/sm2err.h
- absl/hash/hash.h
- aes_local.h
- sys/stat.h
- absl/flags/flag.h
- s2/r1interval.h
- absl/container/inlined_vector.h
- setjmp.h
- netinet/sctp.h
- s2/s2coords.h
- s2/s2shape_index_buffered_region.h
- time.h
- unixlib.h
- pybind11/stl.h
- s2/s2cell_index.h
- s2/s1interval.h
- s2/s2cell_iterator.h
- s2/s2edge_tessellator.h
- s2/util/gtl/dense_hash_set.h
- s390x_arch.h
- ../ssl/packet_local.h
- sys/systemcfg.h
- s2/s2debug.h
- LPdir_win32.c
- optional
- sockLib.h
- s2/s2builderutil_find_polygon_degeneracies.h
- openssl/asn1t.h
- ../e_os.h
- dlfcn.h
- cms_local.h
- absl/container/btree_map.h
- s2/s2latlng_rect.h
- rc4_local.h
- s2/s2lax_polyline_shape.h
- s2/s2builderutil_lax_polygon_layer.h
- openssl/bn.h
- ocsp_local.h
- absl/cleanup/cleanup.h
- sha_local.h
- openssl/cmserr.h
- cstring
- stdlib.h
- stdint.h
- s2/s2builderutil_lax_polyline_layer.h
- s2/s2polyline_simplifier.h
- openssl/evperr.h
- sys/un.h
- record_local.h
- openssl/comperr.h
- memory.h
- sys/sysctl.h
- s2/s2edge_crosser.h
- strdef.h
- vxWorks.h
- obj_local.h
- cast_s.h
- openssl/x509v3.h
- tbl_standard.h
- syidef.h
- s2/util/coding/coder.h
- drbgtest.h
- s2/s2memory_tracker.h
- s2/s1angle.h
- s2/s2testing.h
- s2/encoded_s2shape_index.h
- test_config.h
- sys/mman.h
- s2/base/malloc_extension.h
- efndef.h
- absl/base/config.h
- s2/s2shapeutil_shape_edge.h
- absl/strings/str_join.h
- openssl/asn1.h
- linux/aio_abi.h
- openssl/pem2.h
- s2/s2polyline_alignment.h
- progs.h
- ws2tcpip.h
- openssl/kdferr.h
- s2/s2builderutil_s2polyline_vector_layer.h
- s2/util/gtl/unaligned.h
- ec_local.h
- atomic
- fcntl.h
- openssl/engine.h
- arch/async_posix.h
- string.h
- s2/s2measures.h
- charconv
- dirent.h
- openssl/ripemd.h
- crypto/sm3.h
- ./testrsa.h
- zlib.h
- s2/s2polyline.h
- openssl/ec.h
- openssl/ssl3.h
- absl/log/absl_log.h
- internal/cryptlib.h
- dvidef.h
- eng_local.h
- s2/util/coding/nth-derivative.h
- arm_arch.h
- absl/base/casts.h
- applink.c
- ../bn_local.h
- openssl/md5.h
- unistd.h
- s2/value_lexicon.h
- s2/util/math/exactfloat/exactfloat.h
- absl/strings/match.h
- s2/id_set_lexicon.h
- rc2_local.h
- netinet/in.h
- s2/s2shapeutil_edge_wrap.h
- signal.h
- netinet/tcp.h
- e_afalg_err.h
- s2/s2fractal.h
- blake2_local.h
- openssl/blowfish.h
- rmidef.h
- internal/dso.h
- s2/s2density_tree.h
- e_capi_err.c
- linux/version.h
- openssl/cmac.h
- sys/socket.h
- s2/util/math/exactfloat/bignum.h
- internal/sockets.h
- thread
- s2/s2cell_id.h
- queue
- gtest/gtest.h
- s2/s2wrapped_shape.h
- benchmark/benchmark.h
- absl/synchronization/mutex.h
- s2/s2point_index.h
- s2/util/units/length-units.h
- siphash_local.h
- absl/strings/string_view.h
- ui_local.h
- termio.h
- crypto/dso_conf.h
- windows.h
- statem/statem.h
- openssl/dsa.h
- internal/o_str.h
- vms_rms.h
- s2/s2error.h
- sys/syscall.h
- ../include/crypto/rand.h
- iomanip
- in.h
- cassert
- sys/auxv.h
- s2/s2distance_target.h
- tickLib.h
- handshake_helper.h
- tuple
- cstdlib
- crypto/bn_dh.h
- absl/algorithm/container.h
- linux/if_alg.h
- openssl/srp.h
- gen64def.h
- ed448.h
- openssl/ebcdic.h
- LPdir.h
- s2/s2region_intersection.h
- ../packet_local.h
- s2/s1chord_angle.h
- s2/s2cell.h
- absl/base/log_severity.h
- openssl/tserr.h
- sys/resource.h
- openssl/cryptoerr.h
- openssl/obj_mac.h
- openssl/idea.h
- rmdconst.h
- ../x509v3/ext_dat.h
- intrin.h
- alloca.h
- complex.h
- s2/s2point_span.h
- md5_local.h
- taskLib.h
- internal/bio.h
- openssl/base.h
- functional
- stddef.h
- cstdio
- rsaz_exp.h
- ../crypto/x509v3/ext_dat.h
- linux/mman.h
- internal/nelem.h
- fuzzer.h
- s2/s2builderutil_closed_set_normalizer.h
- sys/utsname.h
- s2/util/units/physical-units.h
- openssl/conf_api.h
- s2/thread_testing.h
- openssl/hmac.h
- s2/s2edge_clipping.h
- s2/s2builderutil_s2polyline_layer.h
- s2/s2region_sharder.h
- iodef.h
- s2/s2edge_crossings.h
- s2/s2edge_distances.h
- times.h
- s2/util/gtl/hashtable_common.h
- curve448utils.h
- winsock2.h
- rand_local.h
- s2/s2builderutil_snap_functions.h
- crypto/chacha.h
- s2/util/random/shared_bit_gen.h
- s2/encoded_s2cell_id_vector.h
- absl/hash/hash_testing.h
- errno.h
- s2/util/bitmap/bitmap.h
- absl/numeric/int128.h
- evp_local.h
- e_os.h
- sgtty.h
- asn1_item_list.h
- openssl/objectserr.h
- arch/async_null.h
- sys/wait.h
- s2/s2predicates.h
- python/s2cell_id_range.h
- absl/types/span.h
- openssl/opensslconf.h
- openssl/rand_drbg.h
- record/record.h
- openssl/x509v3err.h
- absl/base/thread_annotations.h
- bf_local.h
- s2/s2furthest_edge_query.h
- s2/s2cap.h
- libfisdef.h
- s2/r2.h
- LPdir_win.c
- s2/s2closest_edge_query_base.h
- crypto/err.h
- limits
- pybind11/pybind11.h
- s2/s2builder_graph.h
- openssl/ssl.h
- ssltestlib.h
- s2/util/coding/transforms.h
- absl/flags/reflection.h
- async_bio.h
- sys/filio.h
- e_afalg_err.c
- s2/s2min_distance_targets.h
- stdexcept
- s2/base/timer.h
- e_afalg.h
- netdb.h
- iosfwd
- packeted_bio.h
- s2/s2polyline_measures.h
- s2/s2cell_union.h
- absl/random/distributions.h
- s2/s2text_format.h
- openssl/seed.h
- timeouts.h
- openssl/pkcs7.h
- openssl/ecdh.h
- sys/ldr.h
- s2/util/math/matrix3x3.h
- s2/s2chain_interpolation_query.h
- termios.h
- openssl/md2.h
- absl/base/nullability.h
- absl/status/status_matchers.h
- s2/s2shapeutil_conversion.h
- openssl/uierr.h
- io.h
- internal/refcount.h
- s2/s2edge_crossings_internal.h
- rmsdef.h
- statem/statem_local.h
- absl/base/attributes.h
- s2/util/math/mathutil.h
- ../ssl/record/record_local.h
- iledef.h
- absl/memory/memory.h
- s2/s2builder.h
- crypto/poly1305.h
- winsock.h
- openssl/pkcs12.h
- s2/s2metrics.h
- seed_local.h
- openssl/crypto.h
- s2/testing/gtest_prod.h
- ../ssl/ssl_local.h
- cstddef
- pcy_local.h
- s2/s2validation_query.h
- field.h
- LPdir_nyi.c
- x509_local.h
- s2/s2point_compression.h
- openssl/bioerr.h
- tu_local.h
- ../ssl_local.h
- openssl/md4.h
- s2/sequence_lexicon.h
- crypto/sha.h
- vms_term_sock.h
- openssl/asn1err.h
- bf_pi.h
- s2/s2earth.h
- internal/conf.h
- crypto/sm2.h
- s2/s2shape_nesting_query.h
- sys/ioctl.h
- math.h
- testutil/output.h
- openssl/err.h
- ssl_test_ctx.h
- ms/uplink.h
- sanitizer/msan_interface.h
- blake2_impl.h
- hmac_local.h
- crypto/bn_srp.h
- absl/log/log_streamer.h
- s2/s2centroids.h
- bcrypt.h
- OPENSSL_UNISTD
- crypto/engine.h
- openssl/conf.h
- rms.h
- openssl/rc2.h
- s2/s2projections.h
- s2/s2shape_index_measures.h
- s2/s2builderutil_graph_shape.h
- ../crypto/asn1/tbl_standard.h
- des_local.h
- LPdir_vms.c
- internal/dane.h
- dsa_local.h
- s2/s2closest_edge_query.h
- random
- openssl/tls1.h
- sstream
- s2/gmock_matchers.h
- crypto/md32_common.h
- uplink.h
- rld_interface.h
- s2/s2builderutil_testing.h
- sparc_arch.h
- absl/status/status.h
- s2/internal/s2index_cell_data.h
- obj_xref.h
- absl/container/btree_set.h
- absl/base/throw_delegate.h
- socket.h
- s2/s2shapeutil_count_edges.h
- s2/util/gtl/densehashtable.h
- wp_local.h
- inttypes.h
- cmath
- ios
- openssl/rsa.h
- e_capi_err.h
- poly1305_local.h
- rand.inc
- openssl/camellia.h
- s2/s2max_distance_targets.h
- stack
- openssl/bio.h
- openssl/des.h
- bn_local.h
- openssl/engineerr.h
- ../crypto/rand/rand_local.h
- openssl/asyncerr.h
- openssl/cms.h
- openssl/ssl2.h
- ctype.h
- internal/sslconf.h
- ct_local.h
- absl/strings/str_format.h
- apps.h
- streams/un.h
- c_asm.h
- arch/async_win.h
- absl/strings/escaping.h
- bn_prime.h
- crypto/siphash.h
- crypto/lhash.h
- s2/s2loop_measures.h
- rsa_local.h
- utility
- drbg_cavs_data.h
- descrip.h
- s2/util/math/vector.h
- s2/r2rect.h
- sys/shm.h
- absl/base/prefetch.h
- openssl/sha.h
- ../crypto/siphash/siphash_local.h
- ssdef.h
- bn/bn_local.h
- crypto/aria.h
- s2/s2lax_loop_shape.h
- absl/utility/utility.h
- type_traits
- libfildef.h
- f_impl.h
- openssl/srtp.h
- ../async_local.h
- jpidef.h
- ssl_cert_table.h
- inet.h
- absl/log/absl_check.h
- absl/status/statusor.h
- ../crypto/modes/modes_local.h
- cstdint
- internal/err.h
- malloc.h
- s2/s2coder_testing.h
- s2/util/gtl/value_or_die.h
- internal/tsan_assist.h
- s2/util/gtl/requires.h
- absl/numeric/bits.h
- openssl/dtls1.h
- sysLib.h
- p12_local.h
- s2/s2predicates_internal.h
- md4_local.h
- numeric
- internal/dsoerr.h
- tchar.h
- s2/s2shapeutil_testing.h
- charmap.h
- dh_local.h
- comp_local.h
- openssl/whrlpool.h
- lib$routines.h
- e_dasync_err.h
- absl/strings/str_cat.h
- s2/s2padded_cell.h
- curve448_local.h
- s2/s2polygon.h
- cstdarg
- absl/random/random.h
- stdio.h
- rmd_local.h
- ../crypto/poly1305/poly1305_local.h
- e_ossltest_err.c
- s2/s2shapeutil_edge_iterator.h
- socketshr.h
- sys/times.h
- openssl/rsaerr.h
- crypto/x509.h
- absl/container/fixed_array.h
- openssl/ossl_typ.h
- absl/log/absl_vlog_is_on.h
- word.h
- s2/s2shape_index.h
- internal/o_dir.h
- openssl/aes.h
- initializer_list
- lhash_local.h
- testutil.h
- s2/encoded_string_vector.h
- openssl/pkcs12err.h
- climits
- s2/s2coords_internal.h
- memory
- crypto/ctype.h
- s2/s2contains_point_query.h
- s2/s2builderutil_get_snapped_winding_delta.h
- obj_dat.h
- cfloat
- absl/strings/str_split.h
- s2/s2shapeutil_visit_crossing_edge_pairs.h
- openssl/x509err.h
- sm3_local.h
- openssl/conferr.h
- starlet.h
- s2/encoded_uint_vector.h
- crypto/async.h
- s2/s2hausdorff_distance_query.h
- s2/s2edge_vector_shape.h
- absl/meta/type_traits.h
- async_local.h
- arch_intrinsics.h
- s2/util/hash/mix.h
- s2/s2point.h
- limits.h
- ../crypto/asn1/standard_methods.h
- s2/s2shapeutil_shape_edge_id.h
- s2/s2closest_edge_query_testing.h
- s2/util/gtl/compact_array.h
- ../testutil.h
- execinfo.h
- openssl/ocsp.h
- openssl/buffer.h
- openssl/cast.h
- s2/s2shapeutil_contains_brute_force.h
- openssl/pemerr.h
- s2/s2density_tree_internal.h
- e_dasync_err.c
- bio_local.h
- syslog.h
- e_ossltest_err.h
- openssl/dsaerr.h
- openssl/txt_db.h
- openssl/ecdsa.h
- s2/s2winding_operation.h
- absl/container/flat_hash_map.h
- s2/s2shape_index_region.h
- sys/param.h
- s2/s2crossing_edge_query.h
- absl/strings/cord.h
- sys/time.h
- opcdef.h
- unixio.h
report: name
sources:
- function_names:
  - SplitString
  - null_terminated
  - isValidFormat
  - LLVMFuzzerTestOneInput
  source_file: /src/s2_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ABSL_FLAG
  source_file: /src/s2geometry/doc/examples/term_index.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/doc/examples/point_index.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MaybeThrowNotValid
  - MaybeThrowLevelOutOfRange
  - MaybeThrowFaceOutOfRange
  - MaybeThrowIfLeaf
  - MaybeThrowIfFace
  - MaybeThrowCellIdOutOfRange
  - MaybeThrowChildPositionOutOfRange
  - MaybeThrowPositionOutOfRange
  - LenOrThrow
  - IndexOrThrow
  - ValidateStepIsOne
  - ClampedSlice
  - NextOrStop
  - MaybeThrowNotValid
  - MaybeThrowLevelOutOfRange
  - MaybeThrowFaceOutOfRange
  - MaybeThrowIfLeaf
  - MaybeThrowIfFace
  - MaybeThrowCellIdOutOfRange
  - MaybeThrowChildPositionOutOfRange
  - MaybeThrowPositionOutOfRange
  - LenOrThrow
  - IndexOrThrow
  - ValidateStepIsOne
  - ClampedSlice
  - NextOrStop
  - bind_s2cell_id
  source_file: /src/s2geometry/src/python/s2cell_id_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MaybeThrowNotValid
  - MaybeThrowNotFinite
  - MaybeThrowNotValid
  - MaybeThrowNotFinite
  - bind_s2latlng
  source_file: /src/s2geometry/src/python/s2latlng_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MaybeThrowFaceOutOfRange
  - MaybeThrowLevelOutOfRange
  - MaybeThrowPositionOutOfRange
  - MaybeThrowFaceOutOfRange
  - MaybeThrowLevelOutOfRange
  - MaybeThrowPositionOutOfRange
  - bind_s2cell
  source_file: /src/s2geometry/src/python/s2cell_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bind_r2point
  source_file: /src/s2geometry/src/python/r2point_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bind_s2point
  source_file: /src/s2geometry/src/python/s2point_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PYBIND11_MODULE
  source_file: /src/s2geometry/src/python/module.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/python/s2cell_id_range.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: begin
        type: S2CellId
      - name: end
        type: S2CellId
      - name: size() const
        type: int64_t
      - name: at(int64_t i) const
        type: S2CellId
      - name: slice(int64_t start, int64_t stop) const
        type: S2CellIdRange
      - name: contains(S2CellId cell) const
        type: bool
      item_type: struct
      name: S2CellIdRange
      pos:
        line_end: 50
        line_start: 33
        source_file: /src/s2geometry/src/python/s2cell_id_range.h
    - fields:
      - name: cur
        type: S2CellId
      - name: end
        type: S2CellId
      - name: next()
        type: std::optional<S2CellId>
      item_type: struct
      name: S2CellIdForwardIterator
      pos:
        line_end: 59
        line_start: 53
        source_file: /src/s2geometry/src/python/s2cell_id_range.h
    - fields:
      - name: cur
        type: S2CellId
      - name: begin
        type: S2CellId
      - name: next()
        type: std::optional<S2CellId>
      item_type: struct
      name: S2CellIdReverseIterator
      pos:
        line_end: 71
        line_start: 64
        source_file: /src/s2geometry/src/python/s2cell_id_range.h
    typedefs: []
    union: []
- function_names:
  - FaceRange
  - Collect
  - CollectReverse
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - FaceRange
  - Collect
  - CollectReverse
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/python/s2cell_id_range_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bind_r1interval
  source_file: /src/s2geometry/src/python/r1interval_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MaybeThrowNotUnitLength
  - MaybeThrowIfSpecial
  - MaybeThrowNotUnitLength
  - MaybeThrowIfSpecial
  - bind_s1chord_angle
  source_file: /src/s2geometry/src/python/s1chord_angle_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MaybeThrowInvalidRect
  - MaybeThrowInvalidRect
  - bind_r2rect
  source_file: /src/s2geometry/src/python/r2rect_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MaybeThrowNotNormalized
  - MaybeThrowNotNormalized
  - bind_s1angle
  source_file: /src/s2geometry/src/python/s1angle_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MaybeThrowInvalidPoint
  - MaybeThrowInvalidPoint
  - bind_s1interval
  source_file: /src/s2geometry/src/python/s1interval_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2CellIdRange::size
  - S2CellIdRange::at
  - S2CellIdRange::slice
  - S2CellIdRange::contains
  - S2CellIdForwardIterator::next
  - S2CellIdReverseIterator::next
  source_file: /src/s2geometry/src/python/s2cell_id_range.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bind_s2cap
  source_file: /src/s2geometry/src/python/s2cap_bindings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionUnion::S2RegionUnion
  - ~S2RegionUnion() override
  - S2RegionUnion::num_regions
  - S2RegionUnion::region
  - S2RegionUnion::mutable_region
  source_file: /src/s2geometry/src/s2/s2region_union.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S1ChordAngle::S1ChordAngle
  - operator<=>(S1ChordAngle x, S1ChordAngle y)
  - operator!=(S1ChordAngle x, S1ChordAngle y)
  - operator<(S1ChordAngle x, S1ChordAngle y)
  - operator>(S1ChordAngle x, S1ChordAngle y)
  - operator<=(S1ChordAngle x, S1ChordAngle y)
  - operator>=(S1ChordAngle x, S1ChordAngle y)
  - S1ChordAngle::length2
  - S1ChordAngle::S1ChordAngle
  - S1ChordAngle::S1ChordAngle
  - S1ChordAngle::S1ChordAngle
  - S1ChordAngle::is_valid
  - S1ChordAngle::FromLength2
  - S1ChordAngle::Zero
  - S1ChordAngle::Right
  - S1ChordAngle::Straight
  - S1ChordAngle::Infinity
  - S1ChordAngle::Negative
  - S1ChordAngle::Radians
  - S1ChordAngle::Degrees
  - S1ChordAngle::E5
  - S1ChordAngle::E6
  - S1ChordAngle::E7
  - S1ChordAngle::FastUpperBoundFrom
  - S1Angle
  - S1ChordAngle::radians
  - S1ChordAngle::degrees
  - S1ChordAngle::e5
  - S1ChordAngle::e6
  - S1ChordAngle::e7
  - S1ChordAngle::is_zero
  - S1ChordAngle::is_negative
  - S1ChordAngle::is_infinity
  - S1ChordAngle::is_special
  - operator==(S1ChordAngle x, S1ChordAngle y)
  - '& S1ChordAngle::operator+=(S1ChordAngle a)'
  - '& S1ChordAngle::operator-=(S1ChordAngle a)'
  source_file: /src/s2geometry/src/s2/s1chord_angle.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: absl_btree_prefer_linear_node_search
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/s2geometry/src/s2/s1chord_angle.h
      type: true_type
    union: []
- function_names:
  - S2ChainInterpolationQuery::S2ChainInterpolationQuery
  - ~S2ChainInterpolationQuery()
  - S2ChainInterpolationQuery::Result::Result
  - S2ChainInterpolationQuery::Result::Result
  - S2ChainInterpolationQuery::Result::is_valid
  - S2ChainInterpolationQuery::Result::point
  - S2ChainInterpolationQuery::Result::edge_id
  - S2ChainInterpolationQuery::Result::distance
  source_file: /src/s2geometry/src/s2/s2chain_interpolation_query.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~Projection()
  - ~Projection()
  source_file: /src/s2geometry/src/s2/s2projections.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::GetLength
  - S2::GetPerimeter
  - S2::GetArea
  - S2::GetApproxArea
  - S2::GetCentroid
  - S2::GetChainVertices
  - S2::GetLength
  - S2::GetPerimeter
  - S2::GetArea
  - S2::GetApproxArea
  - S2::GetCentroid
  - S2::GetChainVertices
  source_file: /src/s2geometry/src/s2/s2shape_measures.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestIntervalOps
  - TestCellOps
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2r2rect_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::IndexedS2PointVectorLayer::IndexedS2PointVectorLayer
  - s2builderutil::IndexedS2PointVectorLayer::graph_options
  - s2builderutil::IndexedS2PointVectorLayer::Build
  - S2PointVectorLayer::Options::Options()
  - S2PointVectorLayer::Options::Options(DuplicateEdges duplicate_edges)
  - S2PointVectorLayer::Options::duplicate_edges() const
  - "S2PointVectorLayer::Options::set_duplicate_edges(\n    S2Builder::GraphOptions::DuplicateEdges
    duplicate_edges)"
  - s2builderutil::IndexedS2PointVectorLayer::IndexedS2PointVectorLayer
  - s2builderutil::IndexedS2PointVectorLayer::graph_options
  - s2builderutil::IndexedS2PointVectorLayer::Build
  - S2PointVectorLayer::Options::Options()
  - S2PointVectorLayer::Options::Options(DuplicateEdges duplicate_edges)
  - S2PointVectorLayer::Options::duplicate_edges() const
  - "S2PointVectorLayer::Options::set_duplicate_edges(\n    S2Builder::GraphOptions::DuplicateEdges
    duplicate_edges)"
  source_file: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestS2PolylineVector
  - TestS2PolylineVector
  - TestS2PolylineVectorUnchanged
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestS2PolylineVector
  - TestS2PolylineVector
  - TestS2PolylineVectorUnchanged
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2LatLngRectBounder::S2LatLngRectBounder
  - S2LatLngRectBounder::S2LatLngRectBounder
  - operator=(const S2LatLngRectBounder&)
  source_file: /src/s2geometry/src/s2/s2latlng_rect_bounder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2PolylineSimplifier::Init
  - S2PolylineSimplifier::Extend
  - S2PolylineSimplifier::TargetDisc
  - S2PolylineSimplifier::AvoidDisc
  - S2PolylineSimplifier::AvoidRange
  - S2PolylineSimplifier::GetDirection
  - S2PolylineSimplifier::GetSemiwidth
  source_file: /src/s2geometry/src/s2/s2polyline_simplifier.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FurthestPointTarget::FurthestPointTarget
  - FurthestPointTarget::max_brute_force_index_size
  - TEST
  - FurthestPointTarget::FurthestPointTarget
  - FurthestPointTarget::max_brute_force_index_size
  - TEST
  source_file: /src/s2geometry/src/s2/s2closest_edge_query_base_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator==(LabelledCell y) const
  - operator<(LabelledCell y) const
  - S2CellIndex::AbslHashValue
  - S2CellIndex::RangeIterator::kUninitialized
  - S2CellIndex::ContentsIterator::set_done
  - S2CellIndex::RangeNode
  - operator<(S2CellId x, const RangeNode& y)
  - S2CellIndex::CellIterator::CellIterator(const S2CellIndex* index)
  - S2CellIndex::CellIterator::cell_id() const
  - S2CellIndex::CellIterator::label() const
  - "S2CellIndex::CellIterator::labelled_cell()\n    const"
  - S2CellIndex::CellIterator::done() const
  - S2CellIndex::CellIterator::Next()
  - S2CellIndex::RangeIterator::RangeIterator(const S2CellIndex* index)
  - S2CellIndex::RangeIterator::start_id() const
  - S2CellIndex::RangeIterator::limit_id() const
  - S2CellIndex::RangeIterator::done() const
  - S2CellIndex::RangeIterator::Begin()
  - S2CellIndex::RangeIterator::Finish()
  - S2CellIndex::RangeIterator::Next()
  - S2CellIndex::RangeIterator::is_empty() const
  - S2CellIndex::RangeIterator::Advance(int n)
  - "S2CellIndex::NonEmptyRangeIterator::NonEmptyRangeIterator(\n    const S2CellIndex*
    index)"
  - S2CellIndex::NonEmptyRangeIterator::Begin()
  - S2CellIndex::NonEmptyRangeIterator::Next()
  - S2CellIndex::NonEmptyRangeIterator::Prev()
  - S2CellIndex::NonEmptyRangeIterator::Seek(S2CellId target)
  - S2CellIndex::RangeIterator::Prev()
  - S2CellIndex::ContentsIterator::ContentsIterator()
  - "S2CellIndex::ContentsIterator::ContentsIterator(\n    const S2CellIndex* index)"
  - S2CellIndex::ContentsIterator::Init(const S2CellIndex* index)
  - S2CellIndex::ContentsIterator::Clear()
  - S2CellIndex::ContentsIterator::cell_id() const
  - S2CellIndex::ContentsIterator::label() const
  - "S2CellIndex::ContentsIterator::labelled_cell()\n    const"
  - S2CellIndex::ContentsIterator::done() const
  - S2CellIndex::ContentsIterator::Next()
  - S2CellIndex::num_cells
  - S2CellIndex::Add
  - S2CellIndex::Clear
  - S2CellIndex::VisitIntersectingCells
  - "& operator<<(std::ostream& os,\n                                S2CellIndex::LabelledCell
    x)"
  source_file: /src/s2geometry/src/s2/s2cell_index.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cell_id
        type: S2CellId
      - name: label
        type: Label
      item_type: struct
      name: LabelledCell
      pos:
        line_end: 135
        line_start: 117
        source_file: /src/s2geometry/src/s2/s2cell_index.h
    - fields:
      - name: cell_id
        type: S2CellId
      - name: label
        type: Label
      - name: parent
        type: int32_t
      item_type: struct
      name: CellNode
      pos:
        line_end: 196
        line_start: 192
        source_file: /src/s2geometry/src/s2/s2cell_index.h
    - fields:
      - name: start_id
        type: S2CellId
      - name: contents
        type: int32_t
      item_type: struct
      name: RangeNode
      pos:
        line_end: 429
        line_start: 418
        source_file: /src/s2geometry/src/s2/s2cell_index.h
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2lax_polyline_shape_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2shape_index_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetLatLngPoint
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_MayIntersectWholeFaceEmptyCap
  - BM_MayIntersectWholeFaceFullCap
  - BM_MayIntersectBulging
  source_file: /src/s2geometry/src/s2/s2cap_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PairFromTokens
  - UpFrameAt
  - TokenMap
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_IterateOverlappingFractal
  - BM_IterateDisjointFractal
  - BM_IterateFractalTolerant
  - BM_IterateFractalTolerantDisjoint
  - PairFromTokens
  - UpFrameAt
  - TokenMap
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_IterateOverlappingFractal
  - BM_IterateDisjointFractal
  - BM_IterateFractalTolerant
  - BM_IterateFractalTolerantDisjoint
  source_file: /src/s2geometry/src/s2/s2cell_iterator_join_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TEST
  source_file: /src/s2geometry/src/s2/gmock_matchers_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CopyLoops
  - CopyLoops
  - S2Polygon::S2Polygon
  - S2Polygon::S2Polygon
  - S2Polygon::S2Polygon
  - S2Polygon::S2Polygon
  - S2Polygon::S2Polygon
  - '& S2Polygon::operator=(const S2Polygon& src)'
  - S2Polygon::S2Polygon
  - '& S2Polygon::operator=(S2Polygon&& b) noexcept'
  - S2Polygon::MakeFull
  - S2Polygon::set_s2debug_override
  - S2Polygon::s2debug_override
  - S2Polygon::Clone
  - S2Polygon::Release
  - S2Polygon::ClearLoops
  - S2Polygon::~S2Polygon()
  - S2Polygon::IsValid
  - const
  - S2Polygon::InsertLoop
  - S2Polygon::InitLoops
  - S2Polygon::InitIndex
  - S2Polygon::ClearIndex
  - S2Polygon::ForceBuildIndex
  - S2Polygon::InitNested
  - S2Polygon::Init
  - S2Polygon::InitOneLoop
  - S2Polygon::InitOriented
  - S2Polygon::InitLoopProperties
  - S2Polygon::GetParent
  - S2Polygon::GetLastDescendant
  - S2Polygon::GetArea
  - S2Polygon::GetCentroid
  - S2Polygon::GetSnapLevel
  - S2Polygon::GetDistance
  - S2Polygon::GetDistanceToBoundary
  - S2Polygon::GetOverlapFractions
  - S2Polygon::Project
  - S2Polygon::ProjectToBoundary
  - S2Polygon::Contains
  - S2Polygon::Intersects
  - S2Polygon::GetCapBound
  - S2Polygon::GetCellUnionBound
  - S2Polygon::Contains
  - S2Polygon::ApproxContains
  - S2Polygon::ApproxDisjoint
  - S2Polygon::ApproxEquals
  - S2Polygon::MayIntersect
  - S2Polygon::Contains
  - S2Polygon::Encode
  - S2Polygon::EncodeUncompressed
  - S2Polygon::Decode
  - S2Polygon::DecodeUncompressed
  - S2Polygon::CompareLoops
  - S2Polygon::Invert
  - S2Polygon::InitToComplement
  - S2Polygon::InitToOperation
  - S2Polygon::InitToOperation
  - S2Polygon::InitToIntersection
  - S2Polygon::InitToIntersection
  - S2Polygon::InitToIntersection
  - S2Polygon::InitToUnion
  - S2Polygon::InitToUnion
  - S2Polygon::InitToUnion
  - S2Polygon::InitToDifference
  - S2Polygon::InitToDifference
  - S2Polygon::InitToDifference
  - S2Polygon::InitToSymmetricDifference
  - S2Polygon::InitToSymmetricDifference
  - S2Polygon::InitToSymmetricDifference
  - S2Polygon::InitFromBuilder
  - S2Polygon::InitToSnapped
  - S2Polygon::InitToSnapped
  - S2Polygon::InitToSimplified
  - GetCellEdgeIncidenceMask
  - S2Polygon::InitToSimplifiedInCell
  - S2Polygon::SimplifyEdgesInCell
  - S2Polygon::OperationWithPolyline
  - S2Polygon::IntersectWithPolyline
  - S2Polygon::ApproxIntersectWithPolyline
  - S2Polygon::IntersectWithPolyline
  - S2Polygon::SubtractFromPolyline
  - S2Polygon::ApproxSubtractFromPolyline
  - S2Polygon::SubtractFromPolyline
  - S2Polygon::Contains
  - S2Polygon::ApproxContains
  - S2Polygon::Intersects
  - S2Polygon::Disjoint
  - S2Polygon::DestructiveUnion
  - S2Polygon::DestructiveApproxUnion
  - S2Polygon::DestructiveUnion
  - operator()(unique_ptr<S2Polygon>* a, unique_ptr<S2Polygon>* b) const
  - S2Polygon::InitToCellUnionBorder
  - S2Polygon::IsNormalized
  - S2Polygon::Equals
  - S2Polygon::BoundaryEquals
  - S2Polygon::BoundaryApproxEquals
  - S2Polygon::BoundaryNear
  - S2Polygon::EncodeCompressed
  - S2Polygon::DecodeCompressed
  - S2Polygon::Shape::Shape(const S2Polygon* polygon)
  - S2Polygon::Shape::Init(const S2Polygon* polygon)
  - S2Polygon::Shape::~Shape()
  - S2Polygon::Shape::edge(int e) const
  - S2Polygon::Shape::GetReferencePoint() const
  - S2Polygon::Shape::num_chains() const
  - S2Polygon::Shape::chain(int i) const
  - S2Polygon::SpaceUsed
  source_file: /src/s2geometry/src/s2/s2polygon.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: NumVerticesGreater
      pos:
        line_end: 1322
        line_start: 1312
        source_file: /src/s2geometry/src/s2/s2polygon.cc
    typedefs: []
    union: []
- function_names:
  - S2LaxPolygonShape::S2LaxPolygonShape
  - S2LaxPolygonShape::S2LaxPolygonShape
  - S2LaxPolygonShape::num_loops
  - S2LaxPolygonShape::num_vertices
  - S2LaxPolygonShape::Init
  - S2LaxPolygonShape::Init
  - S2LaxPolygonShape::num_edges
  - S2LaxPolygonShape::dimension
  - S2LaxPolygonShape::num_chains
  - S2LaxPolygonShape::type_tag
  - EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
  - EncodedS2LaxPolygonShape::num_loops
  - EncodedS2LaxPolygonShape::num_edges
  - EncodedS2LaxPolygonShape::dimension
  - EncodedS2LaxPolygonShape::num_chains
  - EncodedS2LaxPolygonShape::type_tag
  - S2Shape::Edge S2LaxPolygonShape::chain_edge(int i, int j) const
  - S2Shape::ChainPosition S2LaxPolygonShape::chain_position(int e) const
  - S2Shape::Edge EncodedS2LaxPolygonShape::chain_edge(int i, int j) const
  - "S2Shape::ChainPosition EncodedS2LaxPolygonShape::chain_position(int e)\n    const"
  source_file: /src/s2geometry/src/s2/s2lax_polygon_shape.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/s2geometry/src/s2/s2lax_polygon_shape.h
      type: S2HintCoder<S2LaxPolygonShape>
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shape_index_measures.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2BooleanOperation::SourceId::region_id
  - S2BooleanOperation::SourceId::shape_id
  - S2BooleanOperation::SourceId::edge_id
  - S2BooleanOperation::op_type
  - '& options() const'
  - S2BooleanOperation::Intersects
  - S2BooleanOperation::Contains
  - S2BooleanOperation::Equals
  - S2BooleanOperation::SourceId::SourceId()
  - "S2BooleanOperation::SourceId::SourceId(int region_id, int32_t shape_id,\n                                              int32_t
    edge_id)"
  - S2BooleanOperation::SourceId::SourceId(int special_edge_id)
  - S2BooleanOperation::SourceId::operator==(SourceId other) const
  - S2BooleanOperation::SourceId::operator<(SourceId other) const
  source_file: /src/s2geometry/src/s2/s2boolean_operation.h
  types:
    enum:
    - enumerators:
      - name: UNION
      - name: SYMMETRIC_DIFFERENCE
      - name: INTERSECTION
      - name: DIFFERENCE
      item_type: enum
      name: OpType
      pos:
        line_end: 218
        line_start: 213
        source_file: /src/s2geometry/src/s2/s2boolean_operation.h
    - enumerators:
      - name: OPEN
      - name: CLOSED
      - name: SEMI_OPEN
      item_type: enum
      name: PolygonModel
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/s2geometry/src/s2/s2boolean_operation.h
    - enumerators:
      - name: OPEN
      - name: SEMI_OPEN
      - name: CLOSED
      item_type: enum
      name: PolylineModel
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/s2geometry/src/s2/s2boolean_operation.h
    - enumerators:
      - name: EXACT
      - name: SNAPPED
      item_type: enum
      name: Precision
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/s2geometry/src/s2/s2boolean_operation.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::PlanarCentroid
  - S2::TrueCentroid
  - S2::TrueCentroid
  - S2::PlanarCentroid
  - S2::TrueCentroid
  - S2::TrueCentroid
  source_file: /src/s2geometry/src/s2/s2centroids.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::GetEdges
  - s2shapeutil::Verify
  - s2shapeutil::GetEdges
  - s2shapeutil::Verify
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::GetEdges
  - s2shapeutil::Verify
  - s2shapeutil::GetEdges
  - s2shapeutil::Verify
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2HausdorffDistanceQuery::Options::include_interiors
  - S2HausdorffDistanceQuery::Options::set_include_interiors
  - S2HausdorffDistanceQuery::DirectedResult::DirectedResult
  - S2HausdorffDistanceQuery::DirectedResult::distance
  - '& target_point() const'
  - S2HausdorffDistanceQuery::Result::Result
  - S2HausdorffDistanceQuery::Result::distance
  - '& target_to_source() const'
  - '& source_to_target() const'
  - '& options() const'
  - S2HausdorffDistanceQuery::mutable_options
  - S2HausdorffDistanceQuery::Options::Options()
  source_file: /src/s2geometry/src/s2/s2hausdorff_distance_query.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2metrics.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::ContainsBruteForce
  - s2shapeutil::ContainsBruteForce
  source_file: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestLaxDecoding
  - TestLaxRecoding
  - TestS2LaxPolygonShapeEncoding
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - CompareS2LoopToShape
  - TEST
  - TEST
  - TEST
  - TEST
  - DecodeS2LaxPolygonShape
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - MakePolygon
  - BM_DecodeS2LaxPolygonShape
  source_file: /src/s2geometry/src/s2/s2lax_polygon_shape_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::LoopOrder
  - S2::internal::KahanSum::KahanSum
  - S2::internal::KahanSum::KahanSum
  - operator+=(T value)
  - operator T() const
  - S2::internal::KahanSum::Compensation
  - S2::internal::KahanSum::KahanSum
  - S2::internal::KahanSum::KahanSum
  - operator+=(T value)
  - operator T() const
  - S2::internal::KahanSum::Compensation
  - S2::GetSurfaceIntegral
  - S2::GetSurfaceIntegralKahan
  - operator==(LoopOrder x, LoopOrder y)
  - S2::internal::GetSurfaceIntegral
  - S2::LoopOrder
  - S2::internal::KahanSum::KahanSum
  - S2::internal::KahanSum::KahanSum
  - operator+=(T value)
  - operator T() const
  - S2::internal::KahanSum::Compensation
  - S2::internal::KahanSum::KahanSum
  - S2::internal::KahanSum::KahanSum
  - operator+=(T value)
  - operator T() const
  - S2::internal::KahanSum::Compensation
  - S2::GetSurfaceIntegral
  - S2::GetSurfaceIntegralKahan
  - operator==(LoopOrder x, LoopOrder y)
  - S2::internal::GetSurfaceIntegral
  source_file: /src/s2geometry/src/s2/s2loop_measures.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: first
        type: int
      - name: dir
        type: int
      item_type: struct
      name: LoopOrder
      pos:
        line_end: 132
        line_start: 128
        source_file: /src/s2geometry/src/s2/s2loop_measures.h
    - fields:
      - name: first
        type: int
      - name: dir
        type: int
      item_type: struct
      name: LoopOrder
      pos:
        line_end: 132
        line_start: 128
        source_file: /src/s2geometry/src/s2/s2loop_measures.h
    typedefs: []
    union: []
- function_names:
  - TEST
  - TestRotate
  - TEST
  - GetMinExpensiveLevel
  - TEST
  source_file: /src/s2geometry/src/s2/s2pointutil_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& options() const'
  - ClosedSetNormalizer::Options::Options()
  - ClosedSetNormalizer::Options::suppress_lower_dimensions() const
  - "ClosedSetNormalizer::Options::set_suppress_lower_dimensions(\n    bool suppress_lower_dimensions)"
  - '&

    ClosedSetNormalizer::graph_options() const'
  - '& options() const'
  - ClosedSetNormalizer::Options::Options()
  - ClosedSetNormalizer::Options::suppress_lower_dimensions() const
  - "ClosedSetNormalizer::Options::set_suppress_lower_dimensions(\n    bool suppress_lower_dimensions)"
  - '&

    ClosedSetNormalizer::graph_options() const'
  source_file: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::Projection::WrapDestination
  - S2::Projection::Interpolate
  - S2::PlateCarreeProjection::PlateCarreeProjection
  - S2::PlateCarreeProjection::Project
  - S2::PlateCarreeProjection::FromLatLng
  - S2::PlateCarreeProjection::Unproject
  - S2::PlateCarreeProjection::ToLatLng
  - S2::PlateCarreeProjection::wrap_distance
  - S2::MercatorProjection::MercatorProjection
  - S2::MercatorProjection::Project
  - S2::MercatorProjection::FromLatLng
  - S2::MercatorProjection::Unproject
  - S2::MercatorProjection::ToLatLng
  - S2::MercatorProjection::wrap_distance
  - S2::Projection::WrapDestination
  - S2::Projection::Interpolate
  - S2::PlateCarreeProjection::PlateCarreeProjection
  - S2::PlateCarreeProjection::Project
  - S2::PlateCarreeProjection::FromLatLng
  - S2::PlateCarreeProjection::Unproject
  - S2::PlateCarreeProjection::ToLatLng
  - S2::PlateCarreeProjection::wrap_distance
  - S2::MercatorProjection::MercatorProjection
  - S2::MercatorProjection::Project
  - S2::MercatorProjection::FromLatLng
  - S2::MercatorProjection::Unproject
  - S2::MercatorProjection::ToLatLng
  - S2::MercatorProjection::wrap_distance
  source_file: /src/s2geometry/src/s2/s2projections.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PrintTo
  - PrintTo
  - PrintTo
  - PrintTo
  - PrintTo
  - S2::IsAlmostZeroLength
  - S2::IsAlmostZeroLength
  - S2::S2PointMatcher::S2PointMatcher
  - S2::S2PointMatcher::MatchAndExplain
  - S2::S2PointMatcher::MatchAndExplain
  - S2::S2PolylineMatcher::MatchAndExplain
  - S2::S2PolylineMatcher::MatchAndExplain
  - S2::S2PolylineIdenticalToMatcher::S2PolylineIdenticalToMatcher
  - S2::S2PolylineIdenticalToMatcher::MatchAndExplain
  - S2::S2PolylineIdenticalToMatcher::DescribeTo
  - S2::S2PolylineIdenticalToMatcher::DescribeNegationTo
  - S2::S2PolygonMatcher::MatchAndExplain
  - S2::S2PolygonMatcher::MatchAndExplain
  - S2::S2LoopMatcher::MatchAndExplain
  - S2::S2LoopMatcher::MatchAndExplain
  - S2::S2LoopIdenticalToMatcher::S2LoopIdenticalToMatcher
  - S2::S2LoopIdenticalToMatcher::MatchAndExplain
  - S2::S2LoopIdenticalToMatcher::DescribeTo
  - S2::S2LoopIdenticalToMatcher::DescribeNegationTo
  - S2::S2PolygonIdenticalToMatcher::S2PolygonIdenticalToMatcher
  - S2::S2PolygonIdenticalToMatcher::MatchAndExplain
  - S2::S2PolygonIdenticalToMatcher::DescribeTo
  - S2::S2PolygonIdenticalToMatcher::DescribeNegationTo
  - S2::S2LatLngRectMatcher::MatchAndExplain
  - S2::S2LatLngRectMatcher::MatchAndExplain
  - S2::S2LatLngMatcher::MatchAndExplain
  - S2::S2LatLngMatcher::MatchAndExplain
  - S2::PointEquals
  - S2::PointApproxEquals
  - S2::PointEquals
  - S2::PointApproxEquals
  - S2::PolylineEquals
  - S2::PolylineApproxEquals
  - S2::PolylineEquals
  - S2::PolylineApproxEquals
  - S2::PolylineIdenticalTo
  - S2::PolygonEquals
  - S2::PolygonApproxEquals
  - S2::PolygonBoundaryEquals
  - S2::PolygonBoundaryApproxEquals
  - S2::PolygonBoundaryNear
  - S2::PolygonEquals
  - S2::PolygonApproxEquals
  - S2::PolygonBoundaryEquals
  - S2::PolygonBoundaryApproxEquals
  - S2::PolygonBoundaryNear
  - S2::PolygonIdenticalTo
  - S2::LoopEquals
  - S2::LoopBoundaryEquals
  - S2::LoopBoundaryApproxEquals
  - S2::LoopBoundaryNear
  - S2::LoopIdenticalTo
  - S2::LoopEquals
  - S2::LoopBoundaryEquals
  - S2::LoopBoundaryApproxEquals
  - S2::LoopBoundaryNear
  - S2::LatLngRectEquals
  - S2::LatLngRectApproxEquals
  - S2::LatLngRectApproxEquals
  - S2::LatLngRectEquals
  - S2::LatLngRectApproxEquals
  - S2::LatLngRectApproxEquals
  - S2::LatLngEquals
  - S2::LatLngApproxEquals
  - S2::LatLngEquals
  - S2::LatLngApproxEquals
  - S2::IsAlmostZeroLength
  - S2::IsAlmostZeroLength
  - S2::S2PointMatcher::S2PointMatcher
  - S2::S2PointMatcher::MatchAndExplain
  - S2::S2PointMatcher::MatchAndExplain
  - S2::S2PolylineMatcher::MatchAndExplain
  - S2::S2PolylineMatcher::MatchAndExplain
  - S2::S2PolylineIdenticalToMatcher::S2PolylineIdenticalToMatcher
  - S2::S2PolylineIdenticalToMatcher::MatchAndExplain
  - S2::S2PolylineIdenticalToMatcher::DescribeTo
  - S2::S2PolylineIdenticalToMatcher::DescribeNegationTo
  - S2::S2PolygonMatcher::MatchAndExplain
  - S2::S2PolygonMatcher::MatchAndExplain
  - S2::S2LoopMatcher::MatchAndExplain
  - S2::S2LoopMatcher::MatchAndExplain
  - S2::S2LoopIdenticalToMatcher::S2LoopIdenticalToMatcher
  - S2::S2LoopIdenticalToMatcher::MatchAndExplain
  - S2::S2LoopIdenticalToMatcher::DescribeTo
  - S2::S2LoopIdenticalToMatcher::DescribeNegationTo
  - S2::S2PolygonIdenticalToMatcher::S2PolygonIdenticalToMatcher
  - S2::S2PolygonIdenticalToMatcher::MatchAndExplain
  - S2::S2PolygonIdenticalToMatcher::DescribeTo
  - S2::S2PolygonIdenticalToMatcher::DescribeNegationTo
  - S2::S2LatLngRectMatcher::MatchAndExplain
  - S2::S2LatLngRectMatcher::MatchAndExplain
  - S2::S2LatLngMatcher::MatchAndExplain
  - S2::S2LatLngMatcher::MatchAndExplain
  - S2::PointEquals
  - S2::PointApproxEquals
  - S2::PointEquals
  - S2::PointApproxEquals
  - S2::PolylineEquals
  - S2::PolylineApproxEquals
  - S2::PolylineEquals
  - S2::PolylineApproxEquals
  - S2::PolylineIdenticalTo
  - S2::PolygonEquals
  - S2::PolygonApproxEquals
  - S2::PolygonBoundaryEquals
  - S2::PolygonBoundaryApproxEquals
  - S2::PolygonBoundaryNear
  - S2::PolygonEquals
  - S2::PolygonApproxEquals
  - S2::PolygonBoundaryEquals
  - S2::PolygonBoundaryApproxEquals
  - S2::PolygonBoundaryNear
  - S2::PolygonIdenticalTo
  - S2::LoopEquals
  - S2::LoopBoundaryEquals
  - S2::LoopBoundaryApproxEquals
  - S2::LoopBoundaryNear
  - S2::LoopIdenticalTo
  - S2::LoopEquals
  - S2::LoopBoundaryEquals
  - S2::LoopBoundaryApproxEquals
  - S2::LoopBoundaryNear
  - S2::LatLngRectEquals
  - S2::LatLngRectApproxEquals
  - S2::LatLngRectApproxEquals
  - S2::LatLngRectEquals
  - S2::LatLngRectApproxEquals
  - S2::LatLngRectApproxEquals
  - S2::LatLngEquals
  - S2::LatLngApproxEquals
  - S2::LatLngEquals
  - S2::LatLngApproxEquals
  source_file: /src/s2geometry/src/s2/gmock_matchers.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shape_measures.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& x() const'
  - '& y() const'
  - R2Rect::lo
  - R2Rect::hi
  - '& operator[](int i) const'
  - '& operator[](int i)'
  - R2Rect::R2Rect
  - R2Rect::R2Rect
  - R2Rect::R2Rect
  - R2Rect::Empty
  - R2Rect::FromPointPair
  - R2Rect::is_valid
  - R2Rect::is_empty
  - R2Rect::FromPoint
  - R2Rect::GetVertex
  - R2Rect::GetVertex
  - R2Rect::GetCenter
  - R2Rect::GetSize
  - R2Rect::Contains
  - R2Rect::InteriorContains
  - R2Rect::Expanded
  - R2Rect::operator==(const R2Rect& other) const
  - R2Rect::operator!=(const R2Rect& other) const
  - AbslHashValue
  source_file: /src/s2geometry/src/s2/r2rect.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::TestEncodedUintVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::MakeSortedTestVector
  - s2coding::MakeEncodedVector
  - s2coding::TestLowerBound
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::BM_DecodeValue
  - s2coding::BM_LowerBound
  - s2coding::TestEncodedUintVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::MakeSortedTestVector
  - s2coding::MakeEncodedVector
  - s2coding::TestLowerBound
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::BM_DecodeValue
  - s2coding::BM_LowerBound
  source_file: /src/s2geometry/src/s2/encoded_uint_vector_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2PointVectorShape::S2PointVectorShape
  - S2PointVectorShape::S2PointVectorShape
  - '& operator=(S2PointVectorShape&& other) noexcept'
  - S2PointVectorShape::S2PointVectorShape
  - ~S2PointVectorShape() override
  - S2PointVectorShape::num_points
  - '& point(int i) const'
  - S2PointVectorShape::Encode
  - S2PointVectorShape::Init
  - S2PointVectorShape::Init
  - S2PointVectorShape::num_edges
  - S2PointVectorShape::edge
  - S2PointVectorShape::dimension
  - S2PointVectorShape::GetReferencePoint
  - S2PointVectorShape::num_chains
  - S2PointVectorShape::chain
  - S2PointVectorShape::chain_edge
  - S2PointVectorShape::chain_position
  - S2PointVectorShape::type_tag
  - EncodedS2PointVectorShape::EncodedS2PointVectorShape
  - EncodedS2PointVectorShape::Init
  - EncodedS2PointVectorShape::Encode
  - EncodedS2PointVectorShape::num_points
  - EncodedS2PointVectorShape::point
  - EncodedS2PointVectorShape::num_edges
  - EncodedS2PointVectorShape::edge
  - EncodedS2PointVectorShape::dimension
  - EncodedS2PointVectorShape::GetReferencePoint
  - EncodedS2PointVectorShape::num_chains
  - EncodedS2PointVectorShape::chain
  - EncodedS2PointVectorShape::chain_edge
  - EncodedS2PointVectorShape::chain_position
  - EncodedS2PointVectorShape::type_tag
  source_file: /src/s2geometry/src/s2/s2point_vector_shape.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~ShapeIndexFactory()
  - s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
  - s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
  - s2testing::RegularLoopShapeIndexFactory::AddEdges
  - s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
  - s2testing::FractalLoopShapeIndexFactory::AddEdges
  - s2testing::PointCloudShapeIndexFactory::PointCloudShapeIndexFactory
  - s2testing::PointCloudShapeIndexFactory::AddEdges
  - s2testing::SampleEdge
  - s2testing::SampleCell
  - s2testing::SampleBoundary
  - s2testing::FractionToRadius
  - s2testing::S2ClosestEdgeQueryBenchmarkHarness::S2ClosestEdgeQueryBenchmarkHarness
  - s2testing::S2ClosestEdgeQueryBenchmarkHarness::GenerateEdgeQueryWithTargets
  - ~ShapeIndexFactory()
  - s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
  - s2testing::RegularLoopShapeIndexFactory::RegularLoopShapeIndexFactory
  - s2testing::RegularLoopShapeIndexFactory::AddEdges
  - s2testing::FractalLoopShapeIndexFactory::FractalLoopShapeIndexFactory
  - s2testing::FractalLoopShapeIndexFactory::AddEdges
  - s2testing::PointCloudShapeIndexFactory::PointCloudShapeIndexFactory
  - s2testing::PointCloudShapeIndexFactory::AddEdges
  - s2testing::SampleEdge
  - s2testing::SampleCell
  - s2testing::SampleBoundary
  - s2testing::FractionToRadius
  - s2testing::S2ClosestEdgeQueryBenchmarkHarness::S2ClosestEdgeQueryBenchmarkHarness
  - s2testing::S2ClosestEdgeQueryBenchmarkHarness::GenerateEdgeQueryWithTargets
  source_file: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
  types:
    enum:
    - enumerators:
      - name: POINT
      - name: EDGE
      - name: CELL
      - name: INDEX
      item_type: enum
      name: TargetType
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    - enumerators:
      - name: POINT
      - name: EDGE
      - name: CELL
      - name: INDEX
      item_type: enum
      name: TargetType
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/s2geometry/src/s2/s2closest_edge_query_testing.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2DensityTree::S2DensityTree
  - ~S2DensityTree()
  - S2DensityTree::S2DensityTree
  - '& operator=(const S2DensityTree&)'
  - S2DensityTree::S2DensityTree
  - '& operator=(S2DensityTree&&) noexcept'
  - S2DensityTree::EncodedSize
  - S2DensityTree::Cell::Cell
  - S2DensityTree::Cell::weight
  - S2DensityTree::Cell::has_children
  - S2DensityTree::Cell::child_offset
  - S2DensityTree::DecodedPath::DecodedPath
  - '& tree() const'
  - S2DensityTree::TreeEncoder::TreeEncoder
  - S2DensityTree::BreadthFirstTreeBuilder::BreadthFirstTreeBuilder
  - S2DensityTree::IndexCellWeightFunction::IndexCellWeightFunction
  - S2DensityTree::FeatureCellWeightFunction::FeatureCellWeightFunction
  - S2DensityTree::InitToFeatureDensity
  - "S2DensityTree::FeatureCellWeightFunction<T>::WeighCell(\n    const S2CellId cell_id,
    S2Error* absl_nonnull error)"
  source_file: /src/s2geometry/src/s2/s2density_tree.h
  types:
    enum:
    - enumerators:
      - name: ENTER_CELL
      - name: STOP
      - name: SKIP_CELL
      item_type: enum
      name: VisitAction
      pos:
        line_end: 218
        line_start: 214
        source_file: /src/s2geometry/src/s2/s2density_tree.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/s2geometry/src/s2/s2density_tree.h
      type: S2BasicCoder<S2DensityTree>
    union: []
- function_names:
  - s2builderutil::IndexedS2PolygonLayer::IndexedS2PolygonLayer
  - s2builderutil::IndexedS2PolygonLayer::graph_options
  - s2builderutil::IndexedS2PolygonLayer::Build
  - S2PolygonLayer::Options::Options()
  - S2PolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
  - S2PolygonLayer::Options::edge_type() const
  - "S2PolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  - S2PolygonLayer::Options::validate() const
  - S2PolygonLayer::Options::set_validate(bool validate)
  - s2builderutil::IndexedS2PolygonLayer::IndexedS2PolygonLayer
  - s2builderutil::IndexedS2PolygonLayer::graph_options
  - s2builderutil::IndexedS2PolygonLayer::Build
  - S2PolygonLayer::Options::Options()
  - S2PolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
  - S2PolygonLayer::Options::edge_type() const
  - "S2PolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  - S2PolygonLayer::Options::validate() const
  - S2PolygonLayer::Options::set_validate(bool validate)
  source_file: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2random_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2testing::ReaderThreadPool::ReaderThreadPool
  - ~ReaderThreadPool()
  - s2testing::ReaderWriterTest::ReaderLoop
  - s2testing::ReaderWriterTest::Run
  - s2testing::ReaderThreadPool::ReaderThreadPool
  - ~ReaderThreadPool()
  - s2testing::ReaderWriterTest::ReaderLoop
  - s2testing::ReaderWriterTest::Run
  source_file: /src/s2geometry/src/s2/thread_testing.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2centroids_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionCoverer::S2RegionCoverer
  - S2RegionCoverer::S2RegionCoverer
  - S2RegionCoverer::~S2RegionCoverer()
  - S2RegionCoverer::S2RegionCoverer
  - S2RegionCoverer::Options::set_max_cells(int max_cells)
  - S2RegionCoverer::Options::set_min_level(int min_level)
  - S2RegionCoverer::Options::set_max_level(int max_level)
  - S2RegionCoverer::Options::set_fixed_level(int level)
  - S2RegionCoverer::Options::set_level_mod(int level_mod)
  - S2RegionCoverer::Options::true_max_level() const
  - S2RegionCoverer::NewCandidate
  - S2RegionCoverer::DeleteCandidate
  - S2RegionCoverer::ExpandChildren
  - S2RegionCoverer::AddCandidate
  - S2RegionCoverer::AdjustLevel
  - S2RegionCoverer::AdjustCellLevels
  - S2RegionCoverer::GetInitialCandidates
  - S2RegionCoverer::GetCoveringInternal
  - S2RegionCoverer::GetCovering
  - S2RegionCoverer::GetInteriorCovering
  - S2RegionCoverer::GetCovering
  - S2RegionCoverer::GetInteriorCovering
  - S2RegionCoverer::GetFastCovering
  - S2RegionCoverer::IsCanonical
  - S2RegionCoverer::IsCanonical
  - S2RegionCoverer::ContainsAllChildren
  - S2RegionCoverer::ReplaceCellsWithAncestor
  - S2RegionCoverer::CanonicalizeCovering
  - S2RegionCoverer::CanonicalizeCovering
  - S2RegionCoverer::FloodFill
  - S2RegionCoverer::GetSimpleCovering
  source_file: /src/s2geometry/src/s2/s2region_coverer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::TEST
  - s2builderutil::TEST
  - operator<(const TestDegeneracy& x, const TestDegeneracy& y)
  - operator==(const TestDegeneracy& x, const TestDegeneracy& y)
  - s2builderutil::DegeneracyCheckingLayer::DegeneracyCheckingLayer
  - s2builderutil::DegeneracyCheckingLayer::graph_options
  - '& operator<<(std::ostream& os, absl::Span<const TestDegeneracy> v)'
  - s2builderutil::DegeneracyCheckingLayer::Build
  - s2builderutil::ExpectDegeneracies
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::DegeneracyBenchmarkLayer::DegeneracyBenchmarkLayer
  - s2builderutil::DegeneracyBenchmarkLayer::graph_options
  - s2builderutil::DegeneracyBenchmarkLayer::Build
  - s2builderutil::BM_FindPolygonDegeneracies
  - s2builderutil::TEST
  - s2builderutil::TEST
  - operator<(const TestDegeneracy& x, const TestDegeneracy& y)
  - operator==(const TestDegeneracy& x, const TestDegeneracy& y)
  - s2builderutil::DegeneracyCheckingLayer::DegeneracyCheckingLayer
  - s2builderutil::DegeneracyCheckingLayer::graph_options
  - '& operator<<(std::ostream& os, absl::Span<const TestDegeneracy> v)'
  - s2builderutil::DegeneracyCheckingLayer::Build
  - s2builderutil::ExpectDegeneracies
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::DegeneracyBenchmarkLayer::DegeneracyBenchmarkLayer
  - s2builderutil::DegeneracyBenchmarkLayer::graph_options
  - s2builderutil::DegeneracyBenchmarkLayer::Build
  - s2builderutil::BM_FindPolygonDegeneracies
  source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: edge_str
        type: string
      - name: ABSL_REQUIRE_EXPLICIT_INIT
        type: bool
      item_type: struct
      name: TestDegeneracy
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    - fields:
      - name: edge_str
        type: string
      - name: ABSL_REQUIRE_EXPLICIT_INIT
        type: bool
      item_type: struct
      name: TestDegeneracy
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc
    typedefs: []
    union: []
- function_names:
  - S2ClosestPointQueryOptions::set_max_distance
  - S2ClosestPointQueryOptions::set_max_distance
  - S2ClosestPointQueryOptions::set_inclusive_max_distance
  - S2ClosestPointQueryOptions::set_inclusive_max_distance
  - S2ClosestPointQueryOptions::set_max_error
  - S2ClosestPointQueryPointTarget::S2ClosestPointQueryPointTarget
  - S2ClosestPointQueryEdgeTarget::S2ClosestPointQueryEdgeTarget
  - S2ClosestPointQueryCellTarget::S2ClosestPointQueryCellTarget
  - S2ClosestPointQueryShapeIndexTarget::S2ClosestPointQueryShapeIndexTarget
  - S2ClosestPointQuery<Data>::S2ClosestPointQuery
  - S2ClosestPointQuery<Data>::S2ClosestPointQuery
  - S2ClosestPointQuery<Data>::~S2ClosestPointQuery()
  - S2ClosestPointQuery<Data>::Init
  - S2ClosestPointQuery<Data>::ReInit
  - '& S2ClosestPointQuery<Data>::index() const'
  - "& S2ClosestPointQuery<Data>::options()\n    const"
  - S2ClosestPointQuery<Data>::mutable_options
  - S2ClosestPointQuery<Data>::FindClosestPoints
  - S2ClosestPointQuery<Data>::FindClosestPoints
  - S2ClosestPointQuery<Data>::FindClosestPoint
  - S2ClosestPointQuery<Data>::GetDistance
  - S2ClosestPointQuery<Data>::IsDistanceLess
  - S2ClosestPointQuery<Data>::IsDistanceLessOrEqual
  - S2ClosestPointQuery<Data>::IsConservativeDistanceLessOrEqual
  source_file: /src/s2geometry/src/s2/s2closest_point_query.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::AppendShapeEdges
  - s2shapeutil::GetShapeEdges
  - s2shapeutil::GetShapeEdges
  - s2shapeutil::VisitCrossings
  - s2shapeutil::VisitCrossings
  - s2shapeutil::VisitCrossingEdgePairs
  - s2shapeutil::IndexCrosser::IndexCrosser
  - s2shapeutil::IndexCrosser::IndexCrosser
  - s2shapeutil::IndexCrosser::VisitEdgePair
  - s2shapeutil::IndexCrosser::VisitEdgeCellCrossings
  - s2shapeutil::IndexCrosser::VisitSubcellCrossings
  - s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
  - s2shapeutil::IndexCrosser::VisitCellCellCrossings
  - s2shapeutil::IndexCrosser::VisitCrossings
  - s2shapeutil::VisitCrossingEdgePairs
  - s2shapeutil::InitLoopError
  - s2shapeutil::FindCrossingError
  - s2shapeutil::FindSelfIntersection
  - s2shapeutil::AppendShapeEdges
  - s2shapeutil::GetShapeEdges
  - s2shapeutil::GetShapeEdges
  - s2shapeutil::VisitCrossings
  - s2shapeutil::VisitCrossings
  - s2shapeutil::VisitCrossingEdgePairs
  - s2shapeutil::IndexCrosser::IndexCrosser
  - s2shapeutil::IndexCrosser::IndexCrosser
  - s2shapeutil::IndexCrosser::VisitEdgePair
  - s2shapeutil::IndexCrosser::VisitEdgeCellCrossings
  - s2shapeutil::IndexCrosser::VisitSubcellCrossings
  - s2shapeutil::IndexCrosser::VisitEdgesEdgesCrossings
  - s2shapeutil::IndexCrosser::VisitCellCellCrossings
  - s2shapeutil::IndexCrosser::VisitCrossings
  - s2shapeutil::VisitCrossingEdgePairs
  - s2shapeutil::InitLoopError
  - s2shapeutil::FindCrossingError
  - s2shapeutil::FindSelfIntersection
  source_file: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetEdgeBound
  - GetEdgeBound
  - TEST
  - TEST
  - PerturbATowardsB
  - RandomPole
  - PointNearPole
  - PointNearEquator
  - TEST
  - GetSubregionBound
  - TEST
  - TEST
  - GenerateRandomLatLng
  - BM_AddPoints
  - BM_AddLatLngAsPoints
  - BM_AddLatLngAsLatLng
  source_file: /src/s2geometry/src/s2/s2latlng_rect_bounder_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_E6ToRadians
  - BM_RadiansToE6
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s1angle_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::NextEdgeWrap
  - s2shapeutil::PrevEdgeWrap
  - s2shapeutil::NextEdgeWrap
  - s2shapeutil::PrevEdgeWrap
  source_file: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2pred::epsilon_for_digits
  - s2pred::rounding_epsilon
  - s2pred::ToLD
  - s2pred::ToLD
  - s2pred::ToExact
  - s2pred::IsZero
  - s2pred::epsilon_for_digits
  - s2pred::rounding_epsilon
  - s2pred::ToLD
  - s2pred::ToLD
  - s2pred::ToExact
  - s2pred::IsZero
  source_file: /src/s2geometry/src/s2/s2predicates_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExpectResult
  - ExpectResult
  - RoundToE
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - kVertexTestPolygonStr
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - DegeneracyCoverageTest::Run
  - DegeneracyCoverageTest::TestResult
  - DegeneracyCoverageTest::MakeIndex
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestMeridianSplitting
  - TEST
  - ComputeTestUnion
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ExpectPolygon
  - TEST
  - TestEqual
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ExpectResult
  - ExpectResult
  - RoundToE
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - kVertexTestPolygonStr
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - DegeneracyCoverageTest::Run
  - DegeneracyCoverageTest::TestResult
  - DegeneracyCoverageTest::MakeIndex
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestMeridianSplitting
  - TEST
  - ComputeTestUnion
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ExpectPolygon
  - TEST
  - TestEqual
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2boolean_operation_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2centroids.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2internal::BTreeMultimap::bytes_used
  - s2internal::BTreeMultimap::bytes_used
  - S2PointIndex::PointData::PointData
  - S2PointIndex::PointData::PointData
  - '& point() const'
  - '& data() const'
  - operator==(const PointData& x, const PointData& y)
  - operator<(const PointData& x, const PointData& y)
  - S2PointIndex::S2PointIndex
  - S2PointIndex::Iterator::Locate
  - S2PointIndex::Iterator::Locate
  - S2PointIndex::S2PointIndex
  - operator=(const S2PointIndex&)
  - S2PointIndex<Data>::num_points
  - S2PointIndex<Data>::Add
  - S2PointIndex<Data>::Add
  - S2PointIndex<Data>::Add
  - S2PointIndex<Data>::Remove
  - S2PointIndex<Data>::Remove
  - S2PointIndex<Data>::Remove
  - S2PointIndex<Data>::Clear
  - S2PointIndex<Data>::SpaceUsed
  - S2PointIndex<Data>::Iterator::Iterator()
  - "S2PointIndex<Data>::Iterator::Iterator(\n    const S2PointIndex<Data>* index)"
  - "S2PointIndex<Data>::Iterator::Init(\n    const S2PointIndex<Data>* index)"
  - S2PointIndex<Data>::Iterator::id() const
  - '& S2PointIndex<Data>::Iterator::point() const'
  - '& S2PointIndex<Data>::Iterator::data() const'
  - '&

    S2PointIndex<Data>::Iterator::point_data() const'
  - S2PointIndex<Data>::Iterator::done() const
  - S2PointIndex<Data>::Iterator::Begin()
  - S2PointIndex<Data>::Iterator::Finish()
  - S2PointIndex<Data>::Iterator::Next()
  - S2PointIndex<Data>::Iterator::Prev()
  - S2PointIndex<Data>::Iterator::Seek(S2CellId target)
  source_file: /src/s2geometry/src/s2/s2point_index.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ShapeNestingQuery::Options::FirstChain
  - S2ShapeNestingQuery::Options::Options
  - S2ShapeNestingQuery::Options::datum_strategy
  - '& set_datum_strategy(S2DatumStrategy strategy)'
  - S2ShapeNestingQuery::ChainRelation::MakeShell
  - S2ShapeNestingQuery::ChainRelation::ChainRelation
  - S2ShapeNestingQuery::ChainRelation::parent_id
  - S2ShapeNestingQuery::ChainRelation::is_shell
  - S2ShapeNestingQuery::ChainRelation::is_hole
  - S2ShapeNestingQuery::ChainRelation::num_holes
  - S2ShapeNestingQuery::ChainRelation::holes
  - S2ShapeNestingQuery::ChainRelation::AddHole
  - S2ShapeNestingQuery::ChainRelation::SetParent
  - S2ShapeNestingQuery::ChainRelation::ClearParent
  - S2ShapeNestingQuery::S2ShapeNestingQuery
  - '& index() const'
  - '& options() const'
  - '& mutable_options()'
  source_file: /src/s2geometry/src/s2/s2shape_nesting_query.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2LatLngRectBounder::AddPoint
  - S2LatLngRectBounder::AddLatLng
  - S2LatLngRectBounder::AddInternal
  - S2LatLngRectBounder::GetBound
  - S2LatLngRectBounder::ExpandForSubregions
  - S2LatLngRectBounder::MaxErrorForTests
  source_file: /src/s2geometry/src/s2/s2latlng_rect_bounder.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestEncodeDecode
  - MakePolygon
  - CheckContains
  - CheckContainsPoint
  - TEST
  - TEST
  - TEST
  - S2PolygonTestBase::S2PolygonTestBase
  - CheckEqual
  - CheckComplementary
  - ConfidenceBound
  - TEST
  - TestOneNestedPair
  - TestOneDisjointPair
  - TestOneCoveringPair
  - TestOneOverlappingPair
  - TestNestedPair
  - TestDisjointPair
  - TestOverlappingPair
  - TestOneComplementPair
  - TestComplements
  - TestDestructiveUnion
  - TestRelationWithDesc
  - TEST_F
  - TestRelation
  - TEST_F
  - MakePolygonWithNonDefaultFields
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - MakeLoops
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - PolylineIntersectionSharedEdgeTest
  - TEST_F
  - TEST_F
  - CheckCoveringIsConservative
  - ChoosePiece
  - SplitAndAssemble
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST_F
  - TEST
  - TEST
  - TestDistanceMethods
  - TEST_F
  - TEST_F
  - TEST
  - IsValidTest::IsValidTest
  - ~IsValidTest() override
  - IsValidTest::AddLoop
  - IsValidTest::AddConcentricLoops
  - IsValidTest::Reset
  - IsValidTest::MakePolygon
  - IsValidTest::CheckInvalid
  - IsValidTest::CheckInvalid
  - IsValidTest::CheckInvalidOrEmpty
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - SetInvalidLoopDepth
  - TEST_F
  - SetInvalidLoopNesting
  - TEST_F
  - TEST_F
  - LoopDiameter
  - MaximumDistanceInDegrees
  - S2PolygonSimplifierTest::SetInput
  - S2PolygonSimplifierTest::SetInput
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - MakeCellPolygon
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - MakeRegularPolygon
  - TEST_F
  - S2PolygonDecodeTest::S2PolygonDecodeTest
  - ~S2PolygonDecodeTest() override
  - S2PolygonDecodeTest::AppendByte
  - S2PolygonDecodeTest::AppendInt32
  - S2PolygonDecodeTest::AppendRandomData
  - S2PolygonDecodeTest::AppendRandomData
  - S2PolygonDecodeTest::AppendFakeUncompressedEncodingData
  - S2PolygonDecodeTest::AppendFakeCompressedEncodingData
  - S2PolygonDecodeTest::PickRandomCount
  - S2PolygonDecodeTest::Test
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TestPolygonShape
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST_F
  - TEST_F
  - TEST
  - GeneratePolygonForBenchmark
  - GenerateInputForBenchmark
  - GenerateCompressedInputForBenchmark
  - BM_S2Decoding
  - BM_S2EncodingCompressed
  - BM_S2DecodingCompressed
  - GetDefaultRadius
  - PolygonFactory::PolygonFactory
  - ~PolygonFactory()
  - PolygonFactory::PolygonFactory
  - operator=(const PolygonFactory&)
  - CheckEdgeLength
  - NestedLoopsPolygonFactory::NestedLoopsPolygonFactory
  - NestedLoopsPolygonFactory::New
  - NestedFractalsPolygonFactory::NestedFractalsPolygonFactory
  - NestedFractalsPolygonFactory::New
  - LoopGridPolygonFactory::LoopGridPolygonFactory
  - LoopGridPolygonFactory::New
  - ConstructorBenchmarkSingleLoop
  - ConstructorBenchmarkLoopGrid
  - BenchmarkConstructor
  - BenchmarkFullConstructor
  - BM_ConstructorSingleLoop
  - BM_ConstructorLoopGrid
  - BM_FullConstructorSingleLoop
  - BM_FullConstructorLoopGrid
  - BM_IsValidConcentricLoops
  - BenchmarkContainsPoint
  - BM_ContainsPointLoopGrid
  - BM_ContainsPointNestedFractals
  - BenchmarkCovering
  - CoveringBenchmarkArgs
  - BM_FractalCovering
  - BM_AnnulusCovering
  - GetNestedLoopPairs
  - GetCrossingLoopPairs
  - GetDisjointEasyLoopPairs
  - GetDisjointHardLoopPairs
  - BenchmarkRelation
  - BenchmarkRelationContains
  - BenchmarkRelationDisjointEasy
  - BenchmarkRelationDisjointHard
  - BenchmarkRelationCrosses
  - BenchmarkRelationToSelf
  - BM_ContainsContains
  - BM_ContainsDisjointEasy
  - BM_ContainsDisjointHard
  - BM_ContainsCrosses
  - BM_IntersectsContains
  - BM_IntersectsDisjointEasy
  - BM_IntersectsDisjointHard
  - BM_IntersectsCrosses
  - BM_ContainsVsRadiusMeters
  - BM_ContainsVsEdgeGapMultiple
  - BM_IntersectsCrossesVsLogRadiusRatio
  - BM_ContainsSelfLoopGrid
  - BM_ContainsSelfNestedFractals
  - BM_IntersectsSelfLoopGrid
  - GetBoundingPolygon
  - BenchmarkIntersectsCmpl
  - BM_IntersectsCmplLoopGrid
  - BM_IntersectsCmplNestedFractals
  - BenchmarkOpWithCovering
  - BM_IntersectFractalWithCovering
  - BM_IntersectLoopGridWithCovering
  - BenchmarkOpWithSelf
  - BM_UnionNestedFractalWithSelf
  - BM_IntersectNestedFractalWithSelf
  - BM_SubtractNestedFractalFromSelf
  - BenchmarkOpWithBound
  - BM_UnionLoopGridWithBound
  - BM_SubtractBoundFromLoopGrid
  - BM_ShapeGetEdge
  source_file: /src/s2geometry/src/s2/s2polygon_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: a
        type: string_view
      - name: b
        type: string_view
      - name: a_and_b
        type: string_view
      - name: a_or_b
        type: string_view
      - name: a_minus_b
        type: string_view
      - name: a_xor_b
        type: string_view
      item_type: struct
      name: TestCase
      pos:
        line_end: 857
        line_start: 850
        source_file: /src/s2geometry/src/s2/s2polygon_test.cc
    typedefs: []
    union: []
- function_names:
  - s2builderutil::GraphClone::GraphClone
  - s2builderutil::GraphClone::GraphClone
  - '& graph()'
  - s2builderutil::GraphCloningLayer::GraphCloningLayer
  - s2builderutil::GraphCloningLayer::graph_options
  - s2builderutil::GraphCloningLayer::Build
  - s2builderutil::GraphAppendingLayer::GraphAppendingLayer
  - s2builderutil::GraphAppendingLayer::graph_options
  - s2builderutil::GraphAppendingLayer::Build
  - s2builderutil::IndexMatchingLayer::IndexMatchingLayer
  - s2builderutil::IndexMatchingLayer::graph_options
  - s2builderutil::GraphClone::GraphClone
  - s2builderutil::GraphClone::GraphClone
  - '& graph()'
  - s2builderutil::GraphCloningLayer::GraphCloningLayer
  - s2builderutil::GraphCloningLayer::graph_options
  - s2builderutil::GraphCloningLayer::Build
  - s2builderutil::GraphAppendingLayer::GraphAppendingLayer
  - s2builderutil::GraphAppendingLayer::graph_options
  - s2builderutil::GraphAppendingLayer::Build
  - s2builderutil::IndexMatchingLayer::IndexMatchingLayer
  - s2builderutil::IndexMatchingLayer::graph_options
  source_file: /src/s2geometry/src/s2/s2builderutil_testing.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Error::S2Error
  - S2Error::S2Error
  - S2Error::ok
  - S2Error::code
  - S2Error::ABSL_ATTRIBUTE_LIFETIME_BOUND
  - S2Error::Ok
  - S2Error::Unknown
  - S2Error::Unimplemented
  - S2Error::OutOfRange
  - S2Error::InvalidArgument
  - S2Error::FailedPrecondition
  - S2Error::Internal
  - S2Error::DataLoss
  - S2Error::ResourceExhausted
  - S2Error::Cancelled
  - '& operator<<(std::ostream& os, const S2Error& error)'
  source_file: /src/s2geometry/src/s2/s2error.h
  types:
    enum:
    - enumerators:
      - name: OK
        value: '0'
      - name: FAILED_PRECONDITION
        value: '1004'
      - name: DATA_LOSS
        value: '1006'
      - name: RESOURCE_EXHAUSTED
        value: '1007'
      - name: NOT_CONTINUOUS
        value: '4'
      - name: LOOP_SELF_INTERSECTION
        value: '101'
      - name: LOOP_NOT_ENOUGH_VERTICES
        value: '100'
      - name: ANTIPODAL_VERTICES
        value: '3'
      - name: POLYGON_LOOPS_CROSS
        value: '201'
      - name: POLYGON_EMPTY_LOOP
        value: '202'
      - name: BUILDER_IS_FULL_PREDICATE_NOT_SPECIFIED
        value: '305'
      - name: UNIMPLEMENTED
        value: '1001'
      - name: INVALID_ARGUMENT
        value: '1003'
      - name: OUT_OF_RANGE
        value: '1002'
      - name: NOT_UNIT_LENGTH
        value: '1'
      - name: SPLIT_INTERIOR
        value: '208'
      - name: OVERLAPPING_GEOMETRY
        value: '209'
      - name: BUILDER_MISSING_EXPECTED_SIBLING_EDGES
        value: '301'
      - name: BUILDER_UNEXPECTED_DEGENERATE_EDGE
        value: '302'
      - name: BUILDER_EDGES_DO_NOT_FORM_LOOPS
        value: '303'
      - name: BUILDER_EDGES_DO_NOT_FORM_POLYLINE
        value: '304'
      - name: INTERNAL
        value: '1005'
      - name: CANCELLED
        value: '1008'
      - name: USER_DEFINED_END
        value: '9999999'
      - name: DUPLICATE_VERTICES
        value: '2'
      - name: USER_DEFINED_START
        value: '1000000'
      - name: POLYGON_EXCESS_FULL_LOOP
        value: '203'
      - name: POLYGON_INCONSISTENT_LOOP_ORIENTATIONS
        value: '204'
      - name: POLYGON_INVALID_LOOP_NESTING
        value: '206'
      - name: BUILDER_SNAP_RADIUS_TOO_SMALL
        value: '300'
      - name: POLYGON_INVALID_LOOP_DEPTH
        value: '205'
      - name: UNKNOWN
        value: '1000'
      - name: INVALID_VERTEX
        value: '5'
      - name: POLYGON_LOOPS_SHARE_EDGE
        value: '200'
      - name: INVALID_DIMENSION
        value: '207'
      item_type: enum
      name: Code
      pos:
        line_end: 125
        line_start: 38
        source_file: /src/s2geometry/src/s2/s2error.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::TEST
  - S2::TestProjectUnproject
  - S2::TEST
  - S2::TEST
  - S2::TEST
  - S2::TestProjectUnproject
  - S2::TEST
  - S2::TEST
  source_file: /src/s2geometry/src/s2/s2projections_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_count_edges_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_AddInt64
  - BM_AddS2Point
  - BM_AddS2PointPairs
  - BM_FindS2Point
  source_file: /src/s2geometry/src/s2/value_lexicon_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::LaxPolylineLayer::LaxPolylineLayer
  - s2builderutil::LaxPolylineLayer::LaxPolylineLayer
  - s2builderutil::LaxPolylineLayer::Init
  - s2builderutil::LaxPolylineLayer::graph_options
  - s2builderutil::LaxPolylineLayer::Build
  - s2builderutil::LaxPolylineLayer::LaxPolylineLayer
  - s2builderutil::LaxPolylineLayer::LaxPolylineLayer
  - s2builderutil::LaxPolylineLayer::Init
  - s2builderutil::LaxPolylineLayer::graph_options
  - s2builderutil::LaxPolylineLayer::Build
  source_file: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::IndexedS2PolylineVectorLayer::IndexedS2PolylineVectorLayer
  - s2builderutil::IndexedS2PolylineVectorLayer::graph_options
  - s2builderutil::IndexedS2PolylineVectorLayer::Build
  - S2PolylineVectorLayer::Options::Options()
  - S2PolylineVectorLayer::Options::Options(S2Builder::EdgeType edge_type)
  - S2PolylineVectorLayer::Options::edge_type() const
  - "S2PolylineVectorLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  - S2PolylineVectorLayer::Options::polyline_type() const
  - "S2PolylineVectorLayer::Options::set_polyline_type(\n    PolylineType polyline_type)"
  - S2PolylineVectorLayer::Options::duplicate_edges() const
  - "S2PolylineVectorLayer::Options::set_duplicate_edges(\n    DuplicateEdges duplicate_edges)"
  - S2PolylineVectorLayer::Options::sibling_pairs() const
  - "S2PolylineVectorLayer::Options::set_sibling_pairs(\n    SiblingPairs sibling_pairs)"
  - S2PolylineVectorLayer::Options::validate() const
  - S2PolylineVectorLayer::Options::set_validate(bool validate)
  - S2PolylineVectorLayer::Options::s2debug_override() const
  - "S2PolylineVectorLayer::Options::set_s2debug_override(\n    S2Debug s2debug_override)"
  - s2builderutil::IndexedS2PolylineVectorLayer::IndexedS2PolylineVectorLayer
  - s2builderutil::IndexedS2PolylineVectorLayer::graph_options
  - s2builderutil::IndexedS2PolylineVectorLayer::Build
  - S2PolylineVectorLayer::Options::Options()
  - S2PolylineVectorLayer::Options::Options(S2Builder::EdgeType edge_type)
  - S2PolylineVectorLayer::Options::edge_type() const
  - "S2PolylineVectorLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  - S2PolylineVectorLayer::Options::polyline_type() const
  - "S2PolylineVectorLayer::Options::set_polyline_type(\n    PolylineType polyline_type)"
  - S2PolylineVectorLayer::Options::duplicate_edges() const
  - "S2PolylineVectorLayer::Options::set_duplicate_edges(\n    DuplicateEdges duplicate_edges)"
  - S2PolylineVectorLayer::Options::sibling_pairs() const
  - "S2PolylineVectorLayer::Options::set_sibling_pairs(\n    SiblingPairs sibling_pairs)"
  - S2PolylineVectorLayer::Options::validate() const
  - S2PolylineVectorLayer::Options::set_validate(bool validate)
  - S2PolylineVectorLayer::Options::s2debug_override() const
  - "S2PolylineVectorLayer::Options::set_s2debug_override(\n    S2Debug s2debug_override)"
  source_file: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::STtoUV
  - S2::UVtoST
  - S2::STtoUV
  - S2::UVtoST
  - S2::STtoUV
  - S2::UVtoST
  - S2::IJtoSTMin
  - S2::STtoIJ
  - S2::SiTitoST
  - S2::STtoSiTi
  - S2::FaceUVtoXYZ
  - S2::FaceUVtoXYZ
  - S2::ValidFaceXYZtoUV
  - S2::ValidFaceXYZtoUV
  - S2::GetFace
  - S2::XYZtoFaceUV
  - S2::XYZtoFaceUV
  - S2::FaceXYZtoUV
  - S2::FaceXYZtoUV
  - S2::GetUNorm
  - S2::GetVNorm
  - S2::GetNorm
  - S2::GetUAxis
  - S2::GetVAxis
  - S2::GetUVWAxis
  - S2::GetUVWFace
  - S2::STtoUV
  - S2::UVtoST
  - S2::STtoUV
  - S2::UVtoST
  - S2::STtoUV
  - S2::UVtoST
  - S2::IJtoSTMin
  - S2::STtoIJ
  - S2::SiTitoST
  - S2::STtoSiTi
  - S2::FaceUVtoXYZ
  - S2::FaceUVtoXYZ
  - S2::ValidFaceXYZtoUV
  - S2::ValidFaceXYZtoUV
  - S2::GetFace
  - S2::XYZtoFaceUV
  - S2::XYZtoFaceUV
  - S2::FaceXYZtoUV
  - S2::FaceXYZtoUV
  - S2::GetUNorm
  - S2::GetVNorm
  - S2::GetNorm
  - S2::GetUAxis
  - S2::GetVAxis
  - S2::GetUVWAxis
  - S2::GetUVWFace
  source_file: /src/s2geometry/src/s2/s2coords.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S2_LINEAR_PROJECTION
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/s2geometry/src/s2/s2coords.h
      type_or_value: '0'
    - item_type: preproc_def
      name: S2_TAN_PROJECTION
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/s2geometry/src/s2/s2coords.h
      type_or_value: '1'
    - item_type: preproc_def
      name: S2_QUADRATIC_PROJECTION
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/s2geometry/src/s2/s2coords.h
      type_or_value: '2'
    - item_type: preproc_def
      name: S2_PROJECTION
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/s2geometry/src/s2/s2coords.h
      type_or_value: S2_QUADRATIC_PROJECTION
    - item_type: preproc_def
      name: S2_LINEAR_PROJECTION
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/s2geometry/src/s2/s2coords.h
      type_or_value: '0'
    - item_type: preproc_def
      name: S2_TAN_PROJECTION
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/s2geometry/src/s2/s2coords.h
      type_or_value: '1'
    - item_type: preproc_def
      name: S2_QUADRATIC_PROJECTION
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/s2geometry/src/s2/s2coords.h
      type_or_value: '2'
    - item_type: preproc_def
      name: S2_PROJECTION
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/s2geometry/src/s2/s2coords.h
      type_or_value: S2_QUADRATIC_PROJECTION
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::BuildChain
  - s2builderutil::GetEdgeWindingDelta
  - s2builderutil::GetConnector
  - s2builderutil::GetIncidentEdgesBruteForce
  - s2builderutil::BuildChain
  - s2builderutil::GetEdgeWindingDelta
  - s2builderutil::GetConnector
  - s2builderutil::GetIncidentEdgesBruteForce
  - s2builderutil::GetSnappedWindingDelta
  - s2builderutil::GetSnappedWindingDelta
  - s2builderutil::FindFirstVertexId
  - s2builderutil::BuildChain
  - s2builderutil::GetEdgeWindingDelta
  - s2builderutil::GetConnector
  - s2builderutil::GetIncidentEdgesBruteForce
  - s2builderutil::BuildChain
  - s2builderutil::GetEdgeWindingDelta
  - s2builderutil::GetConnector
  - s2builderutil::GetIncidentEdgesBruteForce
  - s2builderutil::GetSnappedWindingDelta
  - s2builderutil::GetSnappedWindingDelta
  - s2builderutil::FindFirstVertexId
  source_file: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: input
        type: S2Shape::Edge
      - name: v_in
        type: VertexId
      - name: v_out
        type: VertexId
      item_type: struct
      name: EdgeSnap
      pos:
        line_end: 96
        line_start: 92
        source_file: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    - fields:
      - name: input
        type: S2Shape::Edge
      - name: v_in
        type: VertexId
      - name: v_out
        type: VertexId
      item_type: struct
      name: EdgeSnap
      pos:
        line_end: 96
        line_start: 92
        source_file: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    - fields:
      - name: input
        type: S2Shape::Edge
      - name: v_in
        type: VertexId
      - name: v_out
        type: VertexId
      item_type: struct
      name: EdgeSnap
      pos:
        line_end: 96
        line_start: 92
        source_file: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    - fields:
      - name: input
        type: S2Shape::Edge
      - name: v_in
        type: VertexId
      - name: v_out
        type: VertexId
      item_type: struct
      name: EdgeSnap
      pos:
        line_end: 96
        line_start: 92
        source_file: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.cc
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_count_vertices_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EncodedS2ShapeIndex::GetShape
  - EncodedS2ShapeIndex::GetCell
  - EncodedS2ShapeIndex::EncodedS2ShapeIndex
  - EncodedS2ShapeIndex::~EncodedS2ShapeIndex()
  - EncodedS2ShapeIndex::Init
  - EncodedS2ShapeIndex::Encode
  - EncodedS2ShapeIndex::Minimize
  - EncodedS2ShapeIndex::SpaceUsed
  source_file: /src/s2geometry/src/s2/encoded_s2shape_index.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~SnapFunction()
  - '& options() const'
  - S2Builder::S2Builder
  - '& operator=(const S2Builder&)'
  - S2Builder::GraphOptions::GraphOptions
  - S2Builder::GraphOptions::GraphOptions
  - S2Builder::SnapFunction::kMaxSnapRadius()
  - "& S2Builder::Options::snap_function()\n    const"
  - "S2Builder::Options::set_snap_function(\n    const SnapFunction& snap_function)"
  - S2Builder::Options::split_crossing_edges() const
  - "S2Builder::Options::set_split_crossing_edges(\n    bool split_crossing_edges)"
  - S2Builder::Options::intersection_tolerance() const
  - "S2Builder::Options::set_intersection_tolerance(\n    S1Angle intersection_tolerance)"
  - S2Builder::Options::simplify_edge_chains() const
  - "S2Builder::Options::set_simplify_edge_chains(\n    bool simplify_edge_chains)"
  - S2Builder::Options::idempotent() const
  - S2Builder::Options::set_idempotent(bool idempotent)
  - '* S2Builder::Options::memory_tracker() const'
  - "S2Builder::Options::set_memory_tracker(\n    S2MemoryTracker* tracker)"
  - S2Builder::GraphOptions::edge_type() const
  - S2Builder::GraphOptions::set_edge_type(EdgeType edge_type)
  - S2Builder::GraphOptions::degenerate_edges() const
  - "S2Builder::GraphOptions::set_degenerate_edges(\n    DegenerateEdges degenerate_edges)"
  - S2Builder::GraphOptions::duplicate_edges() const
  - "S2Builder::GraphOptions::set_duplicate_edges(\n    DuplicateEdges duplicate_edges)"
  - S2Builder::GraphOptions::sibling_pairs() const
  - "S2Builder::GraphOptions::set_sibling_pairs(\n    SiblingPairs sibling_pairs)"
  - S2Builder::GraphOptions::allow_vertex_filtering() const
  - "S2Builder::GraphOptions::set_allow_vertex_filtering(\n    bool allow_vertex_filtering)"
  - S2Builder::is_forced
  - S2Builder::AddPoint
  - S2Builder::num_input_edges
  - S2Builder::input_edge
  source_file: /src/s2geometry/src/s2/s2builder.h
  types:
    enum:
    - enumerators:
      - name: DIRECTED
      - name: UNDIRECTED
      item_type: enum
      name: EdgeType
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/s2geometry/src/s2/s2builder.h
    - enumerators:
      - name: DISCARD
      - name: KEEP
      - name: DISCARD_EXCESS
      item_type: enum
      name: DegenerateEdges
      pos:
        line_end: 1063
        line_start: 1063
        source_file: /src/s2geometry/src/s2/s2builder.h
    - enumerators:
      - name: MERGE
      - name: KEEP
      item_type: enum
      name: DuplicateEdges
      pos:
        line_end: 1074
        line_start: 1074
        source_file: /src/s2geometry/src/s2/s2builder.h
    - enumerators:
      - name: DISCARD
      - name: KEEP
      - name: REQUIRE
      - name: DISCARD_EXCESS
      - name: CREATE
      item_type: enum
      name: SiblingPairs
      pos:
        line_end: 1145
        line_start: 1139
        source_file: /src/s2geometry/src/s2/s2builder.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::LaxPolygonLayer::LaxPolygonLayer
  - s2builderutil::LaxPolygonLayer::LaxPolygonLayer
  - s2builderutil::LaxPolygonLayer::Init
  - s2builderutil::LaxPolygonLayer::graph_options
  - s2builderutil::LaxPolygonLayer::AppendPolygonLoops
  - s2builderutil::LaxPolygonLayer::AppendEdgeLabels
  - s2builderutil::DiscardEdges
  - s2builderutil::MaybeAddFullLoop
  - s2builderutil::LaxPolygonLayer::BuildDirected
  - s2builderutil::LaxPolygonLayer::Build
  - s2builderutil::LaxPolygonLayer::LaxPolygonLayer
  - s2builderutil::LaxPolygonLayer::LaxPolygonLayer
  - s2builderutil::LaxPolygonLayer::Init
  - s2builderutil::LaxPolygonLayer::graph_options
  - s2builderutil::LaxPolygonLayer::AppendPolygonLoops
  - s2builderutil::LaxPolygonLayer::AppendEdgeLabels
  - s2builderutil::DiscardEdges
  - s2builderutil::MaybeAddFullLoop
  - s2builderutil::LaxPolygonLayer::BuildDirected
  - s2builderutil::LaxPolygonLayer::Build
  source_file: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2CellIndexTest::Add
  - S2CellIndexTest::Add
  - S2CellIndexTest::Add
  - S2CellIndexTest::Build
  - S2CellIndexTest::QuadraticValidate
  - ExpectEqual
  - S2CellIndexTest::VerifyCellIterator
  - S2CellIndexTest::VerifyRangeIterators
  - S2CellIndexTest::VerifyIndexContents
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - GetRandomCellUnion
  - TEST_F
  - S2CellIndexTest::ExpectContents
  - TEST_F
  - S2CellIndexTest::TestIntersection
  - MakeCellUnion
  - TEST_F
  - TEST_F
  - TEST_F
  - GetCapCovering
  - BM_FindIntersectingCapCoverings
  - S2CellIndexTest::Add
  - S2CellIndexTest::Add
  - S2CellIndexTest::Add
  - S2CellIndexTest::Build
  - S2CellIndexTest::QuadraticValidate
  - ExpectEqual
  - S2CellIndexTest::VerifyCellIterator
  - S2CellIndexTest::VerifyRangeIterators
  - S2CellIndexTest::VerifyIndexContents
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - GetRandomCellUnion
  - TEST_F
  - S2CellIndexTest::ExpectContents
  - TEST_F
  - S2CellIndexTest::TestIntersection
  - MakeCellUnion
  - TEST_F
  - TEST_F
  - TEST_F
  - GetCapCovering
  - BM_FindIntersectingCapCoverings
  source_file: /src/s2geometry/src/s2/s2cell_index_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2polyline_alignment::InRange
  - s2polyline_alignment::All
  - s2polyline_alignment::Window::GetColumnStride
  - s2polyline_alignment::Window::GetCheckedColumnStride
  - s2polyline_alignment::InRange
  - s2polyline_alignment::All
  - s2polyline_alignment::Window::GetColumnStride
  - s2polyline_alignment::Window::GetCheckedColumnStride
  source_file: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: start
        type: int
      - name: end
        type: int
      item_type: struct
      name: ColumnStride
      pos:
        line_end: 50
        line_start: 39
        source_file: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    - fields:
      - name: start
        type: int
      - name: end
        type: int
      item_type: struct
      name: ColumnStride
      pos:
        line_end: 50
        line_start: 39
        source_file: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
    typedefs:
    - item_type: typedef
      name: CostTable
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
      type: vector<std::vector<double>>
    - item_type: typedef
      name: CostTable
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/s2geometry/src/s2/s2polyline_alignment_internal.h
      type: vector<std::vector<double>>
    union: []
- function_names:
  - S2PointRegion::S2PointRegion
  - '& operator=(const S2PointRegion&)'
  - S2PointRegion::S2PointRegion
  - '& operator=(S2PointRegion&&)'
  - ~S2PointRegion() override
  - '& point() const'
  - S2PointRegion::Contains
  - S2PointRegion::Contains
  - S2PointRegion::S2PointRegion
  source_file: /src/s2geometry/src/s2/s2point_region.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::ShapeEdgeId
  - s2shapeutil::AbslHashValue
  - s2shapeutil::ShapeEdgeId::ShapeEdgeId
  - ShapeEdgeId::operator==(ShapeEdgeId other) const
  - ShapeEdgeId::operator!=(ShapeEdgeId other) const
  - ShapeEdgeId::operator<(ShapeEdgeId other) const
  - ShapeEdgeId::operator>(ShapeEdgeId other) const
  - ShapeEdgeId::operator<=(ShapeEdgeId other) const
  - ShapeEdgeId::operator>=(ShapeEdgeId other) const
  - '& operator<<(std::ostream& os, ShapeEdgeId id)'
  - s2shapeutil::ShapeEdgeId
  - s2shapeutil::AbslHashValue
  - s2shapeutil::ShapeEdgeId::ShapeEdgeId
  - ShapeEdgeId::operator==(ShapeEdgeId other) const
  - ShapeEdgeId::operator!=(ShapeEdgeId other) const
  - ShapeEdgeId::operator<(ShapeEdgeId other) const
  - ShapeEdgeId::operator>(ShapeEdgeId other) const
  - ShapeEdgeId::operator<=(ShapeEdgeId other) const
  - ShapeEdgeId::operator>=(ShapeEdgeId other) const
  - '& operator<<(std::ostream& os, ShapeEdgeId id)'
  source_file: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: shape_id
        type: int32_t
      - name: operator==(ShapeEdgeId other) const
        type: bool
      - name: operator!=(ShapeEdgeId other) const
        type: bool
      - name: operator<(ShapeEdgeId other) const
        type: bool
      - name: operator>(ShapeEdgeId other) const
        type: bool
      - name: operator<=(ShapeEdgeId other) const
        type: bool
      - name: operator>=(ShapeEdgeId other) const
        type: bool
      item_type: struct
      name: ShapeEdgeId
      pos:
        line_end: 50
        line_start: 33
        source_file: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    - fields:
      - name: shape_id
        type: int32_t
      - name: operator==(ShapeEdgeId other) const
        type: bool
      - name: operator!=(ShapeEdgeId other) const
        type: bool
      - name: operator<(ShapeEdgeId other) const
        type: bool
      - name: operator>(ShapeEdgeId other) const
        type: bool
      - name: operator<=(ShapeEdgeId other) const
        type: bool
      - name: operator>=(ShapeEdgeId other) const
        type: bool
      item_type: struct
      name: ShapeEdgeId
      pos:
        line_end: 50
        line_start: 33
        source_file: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id.h
    typedefs: []
    union: []
- function_names:
  - ABSL_FLAG
  - ExpectPolygonsApproxEqual
  - ExpectPolylinesEqual
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ExpectGraphsEqual
  - GraphPersistenceLayer::GraphPersistenceLayer
  - GraphPersistenceLayer::graph_options
  - GraphPersistenceLayer::Build
  - TEST
  - TestPolylineLayers
  - TestPolylineVector
  - TestPolylineLayersBothEdgeTypes
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - InputEdgeIdCheckingLayer::InputEdgeIdCheckingLayer
  - InputEdgeIdCheckingLayer::graph_options
  - InputEdgeIdCheckingLayer::ToString
  - InputEdgeIdCheckingLayer::Build
  - TestInputEdgeIds
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ChoosePoint
  - TEST
  - TEST
  - TEST
  - TestSnappingWithForcedVertices
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_NearlyParallelCrossingEdges
  source_file: /src/s2geometry/src/s2/s2builder_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2CellUnion::S2CellUnion
  - S2CellUnion::S2CellUnion
  - S2CellUnion::ToS2CellIds
  - S2CellUnion::S2CellUnion
  - S2CellUnion::WholeSphere
  - S2CellUnion::FromMinMax
  - S2CellUnion::FromBeginEnd
  - S2CellUnion::Init
  - S2CellUnion::InitFromMinMax
  - S2CellUnion::InitFromBeginEnd
  - S2CellUnion::Pack
  - S2CellUnion::Clone
  - AreSiblings
  - S2CellUnion::IsValid
  - S2CellUnion::IsNormalized
  - S2CellUnion::Normalize
  - S2CellUnion::Normalize
  - S2CellUnion::Denormalize
  - S2CellUnion::Denormalize
  - S2CellUnion::GetCapBound
  - S2CellUnion::GetRectBound
  - S2CellUnion::GetCellUnionBound
  - EntirelyPrecedes
  - S2CellUnion::Contains
  - S2CellUnion::Intersects
  - S2CellUnion::Contains
  - S2CellUnion::Intersects
  - S2CellUnion::Union
  - S2CellUnion::Intersection
  - S2CellUnion::Intersection
  - S2CellUnion::GetIntersection
  - GetDifferenceInternal
  - S2CellUnion::Difference
  - S2CellUnion::Expand
  - S2CellUnion::Expand
  - S2CellUnion::LeafCellsCovered
  - S2CellUnion::AverageBasedArea
  - S2CellUnion::ApproxArea
  - S2CellUnion::ExactArea
  - operator==(const S2CellUnion& x, const S2CellUnion& y)
  - operator!=(const S2CellUnion& x, const S2CellUnion& y)
  - S2CellUnion::Contains
  - S2CellUnion::MayIntersect
  - S2CellUnion::Encode
  - S2CellUnion::Decode
  - S2CellUnion::Contains
  - S2CellUnion::ToString
  source_file: /src/s2geometry/src/s2/s2cell_union.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& operator<<(std::ostream& os, S2CellRelation r)'
  - S2CellIterator::S2CellIterator
  - ~S2CellIterator()
  - S2CellIterator::S2CellIterator
  - '& operator=(const S2CellIterator&)'
  - S2CellIterator::LocateImpl
  - S2CellIterator::LocateImpl
  source_file: /src/s2geometry/src/s2/s2cell_iterator.h
  types:
    enum:
    - enumerators:
      - name: INDEXED
      - name: DISJOINT
      - name: SUBDIVIDED
      item_type: enum
      name: S2CellRelation
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/s2geometry/src/s2/s2cell_iterator.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionCoverer::Options::max_cells
  - S2RegionCoverer::Options::min_level
  - S2RegionCoverer::Options::max_level
  - S2RegionCoverer::Options::level_mod
  - S2RegionCoverer::S2RegionCoverer
  - '& operator=(const S2RegionCoverer&)'
  - '& options() const'
  - S2RegionCoverer::mutable_options
  - '* operator new(std::size_t size, std::size_t max_children)'
  - operator delete(void* p)
  - S2RegionCoverer::Candidate
  - ~Candidate()
  - S2RegionCoverer::max_children_shift
  - operator()(const QueueEntry& x, const QueueEntry& y) const
  source_file: /src/s2geometry/src/s2/s2region_coverer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cell
        type: S2Cell
      - name: is_terminal
        type: bool
      - name: num_children
        type: int
      - name: '* children[0]'
        type: Candidate
      item_type: struct
      name: Candidate
      pos:
        line_end: 273
        line_start: 250
        source_file: /src/s2geometry/src/s2/s2region_coverer.h
    - fields: []
      item_type: struct
      name: CompareQueueEntries
      pos:
        line_end: 345
        line_start: 341
        source_file: /src/s2geometry/src/s2/s2region_coverer.h
    typedefs:
    - item_type: typedef
      name: QueueEntry
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/s2geometry/src/s2/s2region_coverer.h
      type: pair<int, Candidate*>
    - item_type: typedef
      name: CandidateQueue
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/s2geometry/src/s2/s2region_coverer.h
      type: "priority_queue<QueueEntry, std::vector<QueueEntry>,\n                              CompareQueueEntries>"
    union: []
- function_names:
  - S2ClippedShape::ContainsEdge
  - S2ShapeIndexCell::~S2ShapeIndexCell()
  - S2ShapeIndexCell::find_clipped
  - S2ShapeIndexCell::add_shapes
  - S2ShapeIndexCell::Encode
  - S2ShapeIndexCell::Decode
  - S2ShapeIndexCell::EncodeEdges
  - S2ShapeIndexCell::DecodeEdges
  source_file: /src/s2geometry/src/s2/s2shape_index.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2debug.h
  types:
    enum:
    - enumerators:
      - name: ALLOW
      - name: DISABLE
      item_type: enum
      name: S2Debug
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/s2geometry/src/s2/s2debug.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::GraphClone::Init
  - s2builderutil::IndexMatchingLayer::ToString
  - s2builderutil::IndexMatchingLayer::Build
  - s2builderutil::GraphClone::Init
  - s2builderutil::IndexMatchingLayer::ToString
  - s2builderutil::IndexMatchingLayer::Build
  source_file: /src/s2geometry/src/s2/s2builderutil_testing.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::Metric::Metric
  - S2::Metric::deriv
  - S2::Metric::GetValue
  - S2::Metric::Metric
  - operator=(const Metric&)
  - S2::Metric<dim>::GetLevelForMaxValue(double value) const
  - S2::Metric<dim>::GetLevelForMinValue(double value) const
  - S2::Metric<dim>::GetClosestLevel
  - S2::Metric::Metric
  - S2::Metric::deriv
  - S2::Metric::GetValue
  - S2::Metric::Metric
  - operator=(const Metric&)
  - S2::Metric<dim>::GetLevelForMaxValue(double value) const
  - S2::Metric<dim>::GetLevelForMinValue(double value) const
  - S2::Metric<dim>::GetClosestLevel
  source_file: /src/s2geometry/src/s2/s2metrics.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::IsDistanceLess
  - S2::IsInteriorDistanceLess
  - S2::GetPointOnRay
  - S2::GetPointOnRay
  - S2::IsDistanceLess
  - S2::IsInteriorDistanceLess
  - S2::GetPointOnRay
  - S2::GetPointOnRay
  source_file: /src/s2geometry/src/s2/s2edge_distances.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - IsIdentical
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_ToPoint
  - BM_GetDistance
  source_file: /src/s2geometry/src/s2/s2latlng_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lat
        type: double
      - name: expected_lat
        type: double
      item_type: struct
      name: "values[] = {\n    {0, 0, 0, 0},\n    {1.5, 91.7, 1.5, 91.7},\n    {9.9,
        -0.31, 9.9, -0.31},\n    {sqrt(2), -sqrt(5), 1.414214, -2.236068},\n    {91.3,
        190.4, 90, -169.6},\n    {-100, -710, -90, 10},\n  }"
      pos:
        line_end: 191
        line_start: 188
        source_file: /src/s2geometry/src/s2/s2latlng_test.cc
    typedefs: []
    union: []
- function_names:
  - MockS2CellIterator::MockS2CellIterator
  - '& value() const'
  - MockS2CellIterator::id
  - MockS2CellIterator::done
  - MockS2CellIterator::Begin
  - MockS2CellIterator::Finish
  - MockS2CellIterator::Next
  - MockS2CellIterator::Prev
  - MockS2CellIterator::Seek
  - MockS2CellIterator::Locate
  - MockS2CellIterator::Locate
  - MakeMockS2CellIterator
  source_file: /src/s2geometry/src/s2/s2cell_iterator_testing.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2testing::ReaderWriterTest::ReaderWriterTest
  - ~ReaderWriterTest()
  - s2testing::ReaderWriterTest::ReaderWriterTest
  - ~ReaderWriterTest()
  source_file: /src/s2geometry/src/s2/thread_testing.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::IsUnitLength
  - S2::ApproxEquals
  - S2::Ortho
  - S2::Rotate
  - S2::GetFrame
  - S2::GetFrame
  - S2::ToFrame
  - S2::FromFrame
  - S2::IsUnitLength
  - S2::ApproxEquals
  - S2::Ortho
  - S2::Rotate
  - S2::GetFrame
  - S2::GetFrame
  - S2::ToFrame
  - S2::FromFrame
  source_file: /src/s2geometry/src/s2/s2pointutil.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2PointRegion::Clone
  - S2PointRegion::GetCapBound
  - S2PointRegion::GetRectBound
  - S2PointRegion::GetCellUnionBound
  - S2PointRegion::MayIntersect
  - S2PointRegion::Encode
  - S2PointRegion::Decode
  source_file: /src/s2geometry/src/s2/s2point_region.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Point::S2Point
  - S2Point::S2Point
  - S2Point::S2Point
  - S2Point::Init
  - '& operator=(const Base& base)'
  - '& operator=(Base&& base) noexcept'
  - '& operator+=(const S2Point& b)'
  - '& operator-=(const S2Point& b)'
  - '& operator*=(const ValType& v)'
  - '& operator/=(const ValType& v)'
  - operator+(const S2Point& b) const
  - operator-(const S2Point& b) const
  - operator*(const ValType& v) const
  - operator/(const ValType& v) const
  - operator-(const S2Point& pnt)
  - S2Point::Cast
  - S2Point::MulComponents
  - S2Point::DivComponents
  - S2Point::Max
  - S2Point::Min
  - S2Point::Normalize
  - S2Point::Sqrt
  - S2Point::Floor
  - S2Point::Ceil
  - S2Point::FRound
  - S2Point::NaN
  - S2Point::Encode
  source_file: /src/s2geometry/src/s2/s2point.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/s2geometry/src/s2/s2point.h
      type: S2BasicCoder<S2Point>
    union: []
- function_names:
  - TEST
  - LoopHasVertex
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestNorthPoleLoop
  - TEST
  - TEST
  - TEST
  - LoopHasVertex
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestNorthPoleLoop
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2convex_hull_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HexEncodeStr
  - S2RegionEncodeDecodeTest::TestEncodeDecode
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - HexEncodeStr
  - S2RegionEncodeDecodeTest::TestEncodeDecode
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/s2geometry/src/s2/s2region_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::internal::S2Point_PointerRep::S2Point_PointerRep
  - S2::internal::S2Point_PointerRep::S2Point_PointerRep
  - '& operator=(const S2Point* p)'
  - operator const S2Point*() const
  - '& operator*() const'
  - '* operator->() const'
  - S2::internal::S2Point_ValueRep::S2Point_ValueRep
  - S2::internal::S2Point_ValueRep::S2Point_ValueRep
  - '& operator=(const S2Point& p)'
  - operator const S2Point&() const
  - '& operator*() const'
  - '* operator->() const'
  - S2::internal::S2Point_PointerRep::S2Point_PointerRep
  - S2::internal::S2Point_PointerRep::S2Point_PointerRep
  - '& operator=(const S2Point* p)'
  - operator const S2Point*() const
  - '& operator*() const'
  - '* operator->() const'
  - S2::internal::S2Point_ValueRep::S2Point_ValueRep
  - S2::internal::S2Point_ValueRep::S2Point_ValueRep
  - '& operator=(const S2Point& p)'
  - operator const S2Point&() const
  - '& operator*() const'
  - '* operator->() const'
  - S2::internal::S2Point_PointerRep::S2Point_PointerRep
  - S2::internal::S2Point_PointerRep::S2Point_PointerRep
  - '& operator=(const S2Point* p)'
  - operator const S2Point*() const
  - '& operator*() const'
  - '* operator->() const'
  - S2::internal::S2Point_ValueRep::S2Point_ValueRep
  - S2::internal::S2Point_ValueRep::S2Point_ValueRep
  - '& operator=(const S2Point& p)'
  - operator const S2Point&() const
  - '& operator*() const'
  - '* operator->() const'
  - S2::internal::S2Point_PointerRep::S2Point_PointerRep
  - S2::internal::S2Point_PointerRep::S2Point_PointerRep
  - '& operator=(const S2Point* p)'
  - operator const S2Point*() const
  - '& operator*() const'
  - '* operator->() const'
  - S2::internal::S2Point_ValueRep::S2Point_ValueRep
  - S2::internal::S2Point_ValueRep::S2Point_ValueRep
  - '& operator=(const S2Point& p)'
  - operator const S2Point&() const
  - '& operator*() const'
  - '* operator->() const'
  source_file: /src/s2geometry/src/s2/s2edge_crossings_internal.h
  types:
    enum:
    - enumerators:
      - name: SIMPLE
      - name: STABLE
      - name: EXACT
      - name: STABLE_LD
      - name: SIMPLE_LD
      - name: NUM_METHODS
      item_type: enum
      name: IntersectionMethod
      pos:
        line_end: 85
        line_start: 78
        source_file: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    - enumerators:
      - name: SIMPLE
      - name: STABLE
      - name: EXACT
      - name: STABLE_LD
      - name: SIMPLE_LD
      - name: NUM_METHODS
      item_type: enum
      name: IntersectionMethod
      pos:
        line_end: 85
        line_start: 78
        source_file: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    - enumerators:
      - name: SIMPLE
      - name: STABLE
      - name: EXACT
      - name: STABLE_LD
      - name: SIMPLE_LD
      - name: NUM_METHODS
      item_type: enum
      name: IntersectionMethod
      pos:
        line_end: 85
        line_start: 78
        source_file: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    - enumerators:
      - name: SIMPLE
      - name: STABLE
      - name: EXACT
      - name: STABLE_LD
      - name: SIMPLE_LD
      - name: NUM_METHODS
      item_type: enum
      name: IntersectionMethod
      pos:
        line_end: 85
        line_start: 78
        source_file: /src/s2geometry/src/s2/s2edge_crossings_internal.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
  - S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
  - '& operator=(const S2ShapeIndexBufferedRegion&)'
  - S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
  - '& operator=(S2ShapeIndexBufferedRegion&&)'
  - S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
  - '& S2ShapeIndexBufferedRegion::index() const'
  - S2ShapeIndexBufferedRegion::radius
  source_file: /src/s2geometry/src/s2/s2shape_index_buffered_region.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::GetDistanceFraction
  - S2::GetPointOnLine
  - S2::GetPointOnLine
  - S2::GetPointToLeft
  - S2::GetPointToLeft
  - S2::GetPointToRight
  - S2::GetPointToRight
  - S2::Interpolate
  - S2::AlwaysUpdateMinInteriorDistance
  - S2::AlwaysUpdateMinDistance
  - S2::GetDistance
  - S2::UpdateMinDistance
  - S2::UpdateMaxDistance
  - S2::UpdateMinInteriorDistance
  - S2::GetUpdateMinInteriorDistanceMaxError
  - S2::GetUpdateMinDistanceMaxError
  - S2::Project
  - S2::Project
  - S2::UpdateEdgePairMinDistance
  - S2::UpdateEdgePairMaxDistance
  - S2::IsEdgePairDistanceLess
  - S2::GetEdgePairClosestPoints
  - S2::IsEdgeBNearEdgeA
  - S2::GetDistanceFraction
  - S2::GetPointOnLine
  - S2::GetPointOnLine
  - S2::GetPointToLeft
  - S2::GetPointToLeft
  - S2::GetPointToRight
  - S2::GetPointToRight
  - S2::Interpolate
  - S2::AlwaysUpdateMinInteriorDistance
  - S2::AlwaysUpdateMinDistance
  - S2::GetDistance
  - S2::UpdateMinDistance
  - S2::UpdateMaxDistance
  - S2::UpdateMinInteriorDistance
  - S2::GetUpdateMinInteriorDistanceMaxError
  - S2::GetUpdateMinDistanceMaxError
  - S2::Project
  - S2::Project
  - S2::UpdateEdgePairMinDistance
  - S2::UpdateEdgePairMaxDistance
  - S2::IsEdgePairDistanceLess
  - S2::GetEdgePairClosestPoints
  - S2::IsEdgeBNearEdgeA
  source_file: /src/s2geometry/src/s2/s2edge_distances.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - InitLookupCell
  - MakeLookupTables
  - InitLookupCell
  - MakeLookupTables
  - S2CellId::advance
  - S2CellId::distance_from_begin
  - S2CellId::advance_wrap
  - S2CellId::maximum_tile
  - S2CellId::GetCommonAncestorLevel
  - HexFormatString
  - S2CellId::ToToken
  - S2CellId::FromToken
  - S2CellId::Encode
  - S2CellId::Decode
  - S2CellId::FromFaceIJ
  - GET_BITS
  - S2CellId::S2CellId
  - S2CellId::S2CellId
  - S2CellId::ToFaceIJOrientation
  - GET_BITS
  - S2CellId::ToPointRaw
  - S2CellId::ToLatLng
  - S2CellId::GetCenterST
  - S2CellId::GetCenterUV
  - S2CellId::IJLevelToBoundUV
  - S2CellId::GetBoundST
  - S2CellId::GetBoundUV
  - ExpandEndpoint
  - S2CellId::ExpandedByDistanceUV
  - S2CellId::FromFaceIJWrap
  - S2CellId::FromFaceIJSame
  - S2CellId::GetEdgeNeighbors
  - S2CellId::AppendVertexNeighbors
  - S2CellId::AppendAllNeighbors
  - S2CellId::ToString
  - '& operator<<(std::ostream& os, S2CellId id)'
  - S2CellId::FromDebugString
  - S2CellId::Coder::Encode(Encoder& encoder, const S2CellId& v) const
  - "S2CellId::Coder::Decode(Decoder& decoder, S2CellId& v,\n                             S2Error&
    error) const"
  - AbslParseFlag
  - AbslUnparseFlag
  source_file: /src/s2geometry/src/s2/s2cell_id.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pos[1 << (2 * kLookupBits + 2)]
        type: uint16_t
      - name: ij[1 << (2 * kLookupBits + 2)]
        type: uint16_t
      item_type: struct
      name: LookupTables
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/s2geometry/src/s2/s2cell_id.cc
    - fields:
      - name: pos[1 << (2 * kLookupBits + 2)]
        type: uint16_t
      - name: ij[1 << (2 * kLookupBits + 2)]
        type: uint16_t
      item_type: struct
      name: LookupTables
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/s2geometry/src/s2/s2cell_id.cc
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2wedge_relations.h
  types:
    enum:
    - enumerators:
      - name: WEDGE_EQUALS
      - name: WEDGE_PROPERLY_CONTAINS
      - name: WEDGE_IS_DISJOINT
      - name: WEDGE_PROPERLY_OVERLAPS
      - name: WEDGE_IS_PROPERLY_CONTAINED
      item_type: enum
      name: WedgeRelation
      pos:
        line_end: 42
        line_start: 36
        source_file: /src/s2geometry/src/s2/s2wedge_relations.h
    - enumerators:
      - name: WEDGE_EQUALS
      - name: WEDGE_PROPERLY_CONTAINS
      - name: WEDGE_IS_DISJOINT
      - name: WEDGE_PROPERLY_OVERLAPS
      - name: WEDGE_IS_PROPERLY_CONTAINED
      item_type: enum
      name: WedgeRelation
      pos:
        line_end: 42
        line_start: 36
        source_file: /src/s2geometry/src/s2/s2wedge_relations.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::S2PolygonLayer::S2PolygonLayer
  - s2builderutil::S2PolygonLayer::S2PolygonLayer
  - s2builderutil::S2PolygonLayer::Init
  - s2builderutil::S2PolygonLayer::graph_options
  - s2builderutil::S2PolygonLayer::AppendS2Loops
  - s2builderutil::S2PolygonLayer::AppendEdgeLabels
  - s2builderutil::S2PolygonLayer::InitLoopMap
  - s2builderutil::S2PolygonLayer::ReorderEdgeLabels
  - s2builderutil::S2PolygonLayer::Build
  - s2builderutil::S2PolygonLayer::S2PolygonLayer
  - s2builderutil::S2PolygonLayer::S2PolygonLayer
  - s2builderutil::S2PolygonLayer::Init
  - s2builderutil::S2PolygonLayer::graph_options
  - s2builderutil::S2PolygonLayer::AppendS2Loops
  - s2builderutil::S2PolygonLayer::AppendEdgeLabels
  - s2builderutil::S2PolygonLayer::InitLoopMap
  - s2builderutil::S2PolygonLayer::ReorderEdgeLabels
  - s2builderutil::S2PolygonLayer::Build
  source_file: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S1Angle::S1Angle
  - operator<=>(S1Angle x, S1Angle y)
  - operator!=(S1Angle x, S1Angle y)
  - operator<(S1Angle x, S1Angle y)
  - operator>(S1Angle x, S1Angle y)
  - operator<=(S1Angle x, S1Angle y)
  - operator>=(S1Angle x, S1Angle y)
  - S1Angle::S1Angle
  - S1Angle::Infinity
  - S1Angle::Zero
  - S1Angle::radians
  - S1Angle::degrees
  - S1Angle::e5
  - S1Angle::e6
  - S1Angle::e7
  - S1Angle::IsNormalized
  - S1Angle::abs
  - abs
  - operator==(S1Angle x, S1Angle y)
  - operator-(S1Angle a)
  - operator+(S1Angle a, S1Angle b)
  - operator-(S1Angle a, S1Angle b)
  - operator*(double m, S1Angle a)
  - operator*(S1Angle a, double m)
  - operator/(S1Angle a, double m)
  - operator/(S1Angle a, S1Angle b)
  - '& S1Angle::operator+=(S1Angle a)'
  - '& S1Angle::operator-=(S1Angle a)'
  - '& S1Angle::operator*=(double m)'
  - '& S1Angle::operator/=(double m)'
  - sin
  - cos
  - tan
  - S1Angle::SinCos
  - S1Angle::Radians
  - S1Angle::Degrees
  - S1Angle::E5
  - S1Angle::E6
  - S1Angle::E7
  - S1Angle::UnsignedE6
  - S1Angle::UnsignedE7
  - AbslHashValue
  source_file: /src/s2geometry/src/s2/s1angle.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sin
        type: double
      - name: cos
        type: double
      item_type: struct
      name: SinCosPair
      pos:
        line_end: 189
        line_start: 186
        source_file: /src/s2geometry/src/s2/s1angle.h
    typedefs:
    - item_type: typedef
      name: absl_btree_prefer_linear_node_search
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/s2geometry/src/s2/s1angle.h
      type: true_type
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2shape_index_measures_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2polyline_measures.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator[](int i) const noexcept
  source_file: /src/s2geometry/src/s2/s2point_span.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2earth_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: description
        type: std::string
      - name: a
        type: S2LatLng
      - name: b
        type: S2LatLng
      - name: bearing
        type: S1Angle
      item_type: struct
      name: TestConfig
      pos:
        line_end: 112
        line_start: 107
        source_file: /src/s2geometry/src/s2/s2earth_test.cc
    typedefs: []
    union: []
- function_names:
  - S2ClosestEdgeQueryBase::Result::Result
  - S2ClosestEdgeQueryBase::Result::Result
  - S2ClosestEdgeQueryBase::Result::distance
  - S2ClosestEdgeQueryBase::Result::shape_id
  - S2ClosestEdgeQueryBase::Result::edge_id
  - S2ClosestEdgeQueryBase::Result::is_interior
  - S2ClosestEdgeQueryBase::Result::is_empty
  - operator==(const Result& x, const Result& y)
  - operator<(const Result& x, const Result& y)
  - S2ClosestEdgeQueryBase::S2ClosestEdgeQueryBase
  - operator=(const S2ClosestEdgeQueryBase&)
  - '& options() const'
  - S2ClosestEdgeQueryBase::ReportResults
  - S2ClosestEdgeQueryBase::QueueEntry
  - operator<(const QueueEntry& other) const
  - S2ClosestEdgeQueryBase<Distance>::Options::Options()
  - S2ClosestEdgeQueryBase<Distance>::Options::max_results() const
  - "S2ClosestEdgeQueryBase<Distance>::Options::set_max_results(\n    int max_results)"
  - "S2ClosestEdgeQueryBase<Distance>::Options::max_distance()\n    const"
  - "S2ClosestEdgeQueryBase<Distance>::Options::set_max_distance(\n    Distance max_distance)"
  - S2ClosestEdgeQueryBase<Distance>::Options::max_error() const
  - "S2ClosestEdgeQueryBase<Distance>::Options::set_max_error(\n    Delta max_error)"
  - "S2ClosestEdgeQueryBase<Distance>::Options::include_interiors()\n    const"
  - "S2ClosestEdgeQueryBase<Distance>::Options::set_include_interiors(\n    bool include_interiors)"
  - S2ClosestEdgeQueryBase<Distance>::Options::use_brute_force() const
  - "S2ClosestEdgeQueryBase<Distance>::Options::set_use_brute_force(\n    bool use_brute_force)"
  - S2ClosestEdgeQueryBase<Distance>::S2ClosestEdgeQueryBase
  - S2ClosestEdgeQueryBase<Distance>::~S2ClosestEdgeQueryBase()
  - S2ClosestEdgeQueryBase<Distance>::S2ClosestEdgeQueryBase
  - S2ClosestEdgeQueryBase<Distance>::Init
  - S2ClosestEdgeQueryBase<Distance>::ReInit
  - '& S2ClosestEdgeQueryBase<Distance>::index() const'
  - S2ClosestEdgeQueryBase<Distance>::FindClosestEdges
  - S2ClosestEdgeQueryBase<Distance>::VisitClosestEdges
  - S2ClosestEdgeQueryBase<Distance>::FindClosestEdge
  - S2ClosestEdgeQueryBase<Distance>::FindClosestEdges
  - S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesInternal
  - S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesBruteForce
  - S2ClosestEdgeQueryBase<Distance>::FindClosestEdgesOptimized
  - S2ClosestEdgeQueryBase<Distance>::InitQueue
  - S2ClosestEdgeQueryBase<Distance>::InitCovering
  - S2ClosestEdgeQueryBase<Distance>::AddInitialRange
  - S2ClosestEdgeQueryBase<Distance>::MaybeAddResult
  - S2ClosestEdgeQueryBase<Distance>::AddResult
  - CountEdges
  - S2ClosestEdgeQueryBase<Distance>::ProcessEdges
  - S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
  - S2ClosestEdgeQueryBase<Distance>::ProcessOrEnqueue
  source_file: /src/s2geometry/src/s2/s2closest_edge_query_base.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: distance
        type: Distance
      - name: id
        type: S2CellId
      - name: '* index_cell'
        type: S2ShapeIndexCell
      item_type: struct
      name: QueueEntry
      pos:
        line_end: 444
        line_start: 421
        source_file: /src/s2geometry/src/s2/s2closest_edge_query_base.h
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ExpectIncidentEdgeIds
  - TEST
  source_file: /src/s2geometry/src/s2/s2contains_point_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionIntersection::S2RegionIntersection
  - S2RegionIntersection::Init
  - S2RegionIntersection::S2RegionIntersection
  - "& S2RegionIntersection::operator=(\n    const S2RegionIntersection& src)"
  - S2RegionIntersection::S2RegionIntersection
  - "& S2RegionIntersection::operator=(\n    S2RegionIntersection&& src) noexcept"
  - S2RegionIntersection::Release
  - S2RegionIntersection::Clone
  - S2RegionIntersection::GetCapBound
  - S2RegionIntersection::GetRectBound
  - S2RegionIntersection::GetCellUnionBound
  - S2RegionIntersection::Contains
  - S2RegionIntersection::Contains
  - S2RegionIntersection::MayIntersect
  source_file: /src/s2geometry/src/s2/s2region_intersection.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~S2Coder()
  - s2coding::S2Coder::Decode
  - '& operator=(const S2Coder&)'
  - '& operator=(S2Coder&&)'
  - s2coding::S2BasicCoder::Encode
  - s2coding::S2BasicCoder::Decode
  - s2coding::S2HintCoder::S2HintCoder
  - s2coding::S2HintCoder::Encode
  - s2coding::S2HintCoder::Decode
  - s2coding::internal::S2LegacyCoder::Encode
  - s2coding::internal::S2LegacyCoder::Decode
  - s2coding::internal::S2LegacyHintCoder::S2LegacyHintCoder
  - s2coding::internal::S2LegacyHintCoder::Encode
  - s2coding::internal::S2LegacyHintCoder::Decode
  - s2coding::internal::S2LegacyCoder::Encode
  - s2coding::internal::S2LegacyCoder::Decode
  - s2coding::internal::S2LegacyHintCoder::S2LegacyHintCoder
  - s2coding::internal::S2LegacyHintCoder::Encode
  - s2coding::internal::S2LegacyHintCoder::Decode
  - ~S2Coder()
  - s2coding::S2Coder::Decode
  - '& operator=(const S2Coder&)'
  - '& operator=(S2Coder&&)'
  - s2coding::S2BasicCoder::Encode
  - s2coding::S2BasicCoder::Decode
  - s2coding::S2HintCoder::S2HintCoder
  - s2coding::S2HintCoder::Encode
  - s2coding::S2HintCoder::Decode
  - s2coding::internal::S2LegacyCoder::Encode
  - s2coding::internal::S2LegacyCoder::Decode
  - s2coding::internal::S2LegacyHintCoder::S2LegacyHintCoder
  - s2coding::internal::S2LegacyHintCoder::Encode
  - s2coding::internal::S2LegacyHintCoder::Decode
  - s2coding::internal::S2LegacyCoder::Encode
  - s2coding::internal::S2LegacyCoder::Decode
  - s2coding::internal::S2LegacyHintCoder::S2LegacyHintCoder
  - s2coding::internal::S2LegacyHintCoder::Encode
  - s2coding::internal::S2LegacyHintCoder::Decode
  source_file: /src/s2geometry/src/s2/s2coder.h
  types:
    enum:
    - enumerators:
      - name: FAST
      - name: COMPACT
      item_type: enum
      name: CodingHint
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/s2geometry/src/s2/s2coder.h
    - enumerators:
      - name: FAST
      - name: COMPACT
      item_type: enum
      name: CodingHint
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/s2geometry/src/s2/s2coder.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WindingNumberComparingLayer::WindingNumberComparingLayer
  - WindingNumberComparingLayer::graph_options
  - WindingNumberComparingLayer::Build
  - ExpectWindingDelta
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - WindingNumberCheckingLayer::WindingNumberCheckingLayer
  - WindingNumberCheckingLayer::graph_options
  - WindingNumberCheckingLayer::Build
  - TEST
  - WindingNumberComparingLayer::WindingNumberComparingLayer
  - WindingNumberComparingLayer::graph_options
  - WindingNumberComparingLayer::Build
  - ExpectWindingDelta
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - WindingNumberCheckingLayer::WindingNumberCheckingLayer
  - WindingNumberCheckingLayer::graph_options
  - WindingNumberCheckingLayer::Build
  - TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::TestEncodedS2PointVector
  - s2coding::EncodedValueToPoint
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TestRoundtripEncoding
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::EncodePoints
  - s2coding::BM_DecodePointSequentially
  - s2coding::BM_GetEdgeSequentially
  - s2coding::DecodePointVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TestEncodedS2PointVector
  - s2coding::EncodedValueToPoint
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TestRoundtripEncoding
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::EncodePoints
  - s2coding::BM_DecodePointSequentially
  - s2coding::BM_GetEdgeSequentially
  - s2coding::DecodePointVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  source_file: /src/s2geometry/src/s2/encoded_s2point_vector_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Graph::Graph
  - Graph::GetInEdgeIds
  - Graph::GetSiblingMap
  - Graph::MakeSiblingMap
  - Graph::VertexOutMap::Init(const Graph& g)
  - Graph::VertexInMap::Init(const Graph& g)
  - Graph::LabelFetcher::Init(const Graph& g, S2Builder::EdgeType edge_type)
  - Graph::LabelFetcher::Fetch(EdgeId e, vector<S2Builder::Label>* labels)
  - Graph::min_input_edge_id
  - Graph::GetMinInputEdgeIds
  - Graph::GetInputEdgeOrder
  - VertexEdge
  - AddVertexEdges
  - Graph::GetLeftTurnMap
  - Graph::CanonicalizeLoopOrder
  - Graph::CanonicalizeVectorOrder
  - Graph::GetDirectedLoops
  - Graph::GetDirectedComponents
  - MarkEdgeUsed
  - Graph::GetUndirectedComponents
  - Graph::GetPolylines
  - Graph::PolylineBuilder::PolylineBuilder(const Graph& g)
  - Graph::PolylineBuilder::is_interior(VertexId v)
  - Graph::PolylineBuilder::excess_degree(VertexId v)
  - Graph::PolylineBuilder::BuildPaths()
  - Graph::PolylineBuilder::BuildPath(EdgeId e)
  - Graph::PolylineBuilder::BuildWalks()
  - Graph::PolylineBuilder::BuildWalk(VertexId v)
  - Graph::PolylineBuilder::MaximizeWalk(EdgePolyline* polyline)
  - Graph::ProcessEdges
  - "Graph::EdgeProcessor::EdgeProcessor(const GraphOptions& options,\n                                    vector<Edge>*
    edges,\n                                    vector<InputEdgeIdSetId>* input_ids,\n
    \                                   IdSetLexicon* id_set_lexicon)"
  - "Graph::EdgeProcessor::AddEdge(\n    const Edge& edge, InputEdgeIdSetId input_edge_id_set_id)"
  - "Graph::EdgeProcessor::AddEdges(int num_edges, const Edge& edge,\n                                    InputEdgeIdSetId
    input_edge_id_set_id)"
  - Graph::EdgeProcessor::CopyEdges(int out_begin, int out_end)
  - "Graph::EdgeProcessor::MergeInputIds(\n    int out_begin, int out_end)"
  - Graph::FilterVertices
  - Graph::MakeSubgraph
  source_file: /src/s2geometry/src/s2/s2builder_graph.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: incoming
        type: bool
      - name: index
        type: Graph::EdgeId
      - name: endpoint
        type: Graph::VertexId
      - name: rank
        type: int32_t
      item_type: struct
      name: VertexEdge
      pos:
        line_end: 194
        line_start: 186
        source_file: /src/s2geometry/src/s2/s2builder_graph.cc
    typedefs: []
    union: []
- function_names:
  - S2RegionTermIndexer::Options::index_contains_points_only
  - S2RegionTermIndexer::Options::set_index_contains_points_only
  - S2RegionTermIndexer::Options::optimize_for_space
  - S2RegionTermIndexer::Options::set_optimize_for_space
  - S2RegionTermIndexer::Options::marker
  - S2RegionTermIndexer::Options::marker_character
  - S2RegionTermIndexer::S2RegionTermIndexer
  - '& operator=(const S2RegionTermIndexer&)'
  - '& options() const'
  - S2RegionTermIndexer::mutable_options
  source_file: /src/s2geometry/src/s2/s2region_term_indexer.h
  types:
    enum:
    - enumerators:
      - name: ANCESTOR
      - name: COVERING
      item_type: enum
      name: TermType
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/s2geometry/src/s2/s2region_term_indexer.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Polygon::Copy
  - S2Polygon::is_empty
  - S2Polygon::is_full
  - S2Polygon::num_loops
  - S2Polygon::num_vertices
  - S2Polygon::loop
  - S2Polygon::loop
  - S2Polygon::GetRectBound
  - S2Polygon::Shape::Shape
  - S2Polygon::Shape::polygon
  - S2Polygon::Shape::num_edges
  - S2Polygon::Shape::dimension
  - S2Polygon::Shape::type_tag
  - S2Polygon::Shape::Encode
  - S2Polygon::OwningShape::OwningShape
  - S2Polygon::OwningShape::OwningShape
  - S2Polygon::OwningShape::Init
  - S2Polygon::OwningShape::Init
  - '& index() const'
  - S2Shape::Edge S2Polygon::Shape::chain_edge(int i, int j) const
  - S2Shape::ChainPosition S2Polygon::Shape::chain_position(int e) const
  source_file: /src/s2geometry/src/s2/s2polygon.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/s2geometry/src/s2/s2polygon.h
      type: internal::S2LegacyCoder<S2Polygon>
    - item_type: typedef
      name: LoopMap
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/s2geometry/src/s2/s2polygon.h
      type: flat_hash_map<S2Loop*, std::vector<S2Loop*>>
    union: []
- function_names:
  - MutableS2ShapeIndexTest::QuadraticValidate
  - MutableS2ShapeIndexTest::ValidateEdge
  - MutableS2ShapeIndexTest::ValidateInterior
  - MutableS2ShapeIndexTest::TestEncodeDecode
  - MutableS2ShapeIndexTest::ToString
  - MutableS2ShapeIndexTest::TestBatchGenerator
  - TestIteratorMethods
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - LazyUpdatesTest::LazyUpdatesTest
  - LazyUpdatesTest::WriteOp
  - LazyUpdatesTest::ReadOp
  - TEST
  - TEST
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - MyData
  - MyEdgeVectorShape::MyEdgeVectorShape
  - MyEdgeVectorShape::user_data
  - MyEdgeVectorShape::mutable_user_data
  - BenchmarkConstruction
  - BM_Construction
  - TestIteratorMethods
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - LazyUpdatesTest::LazyUpdatesTest
  - LazyUpdatesTest::WriteOp
  - LazyUpdatesTest::ReadOp
  - TEST
  - TEST
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - MyData
  - MyEdgeVectorShape::MyEdgeVectorShape
  - MyEdgeVectorShape::user_data
  - MyEdgeVectorShape::mutable_user_data
  - BenchmarkConstruction
  - BM_Construction
  - BenchmarkLoopGridAddRelease
  - BM_IncrementalAddLoopGrid
  - BM_IncrementalReleaseLoopGrid
  - BM_BigFractalConstruction
  - BenchmarkLoopGridAddRelease
  - BM_IncrementalAddLoopGrid
  - BM_IncrementalReleaseLoopGrid
  - BM_BigFractalConstruction
  source_file: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: x
        type: int
      item_type: struct
      name: MyData
      pos:
        line_end: 827
        line_start: 824
        source_file: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    - fields:
      - name: x
        type: int
      item_type: struct
      name: MyData
      pos:
        line_end: 827
        line_start: 824
        source_file: /src/s2geometry/src/s2/mutable_s2shape_index_test.cc
    typedefs: []
    union: []
- function_names:
  - S2PaddedCell::id
  - S2PaddedCell::padding
  - S2PaddedCell::level
  - '& bound() const'
  - S2PaddedCell::GetChildIJ
  source_file: /src/s2geometry/src/s2/s2padded_cell.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestRandomCaps
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestRandomCaps
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
  types:
    enum:
    - enumerators:
      - name: POINT
      - name: CAP
      item_type: enum
      name: QueryType
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    - enumerators:
      - name: POINT
      - name: CAP
      item_type: enum
      name: QueryType
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/s2geometry/src/s2/s2region_term_indexer_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2PolylineSimplifier::S2PolylineSimplifier
  - S2PolylineSimplifier::src
  source_file: /src/s2geometry/src/s2/s2polyline_simplifier.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: interval
        type: S1Interval
      - name: on_left
        type: bool
      item_type: struct
      name: RangeToAvoid
      pos:
        line_end: 125
        line_start: 122
        source_file: /src/s2geometry/src/s2/s2polyline_simplifier.h
    typedefs: []
    union: []
- function_names:
  - make_unique_for_overwrite
  - make_unique_for_overwrite
  - S2LaxPolygonShape::S2LaxPolygonShape
  - S2LaxPolygonShape::S2LaxPolygonShape
  - S2LaxPolygonShape::S2LaxPolygonShape
  - S2LaxPolygonShape::S2LaxPolygonShape
  - "& S2LaxPolygonShape::operator=(\n    S2LaxPolygonShape&& b) noexcept"
  - S2LaxPolygonShape::Init
  - S2LaxPolygonShape::Init
  - S2LaxPolygonShape::Init
  - S2LaxPolygonShape::num_loop_vertices
  - '& S2LaxPolygonShape::loop_vertex(int i, int j) const'
  - S2LaxPolygonShape::Encode
  - S2LaxPolygonShape::Init
  - S2LaxPolygonShape::edge
  - S2LaxPolygonShape::GetReferencePoint
  - S2LaxPolygonShape::chain
  - EncodedS2LaxPolygonShape::EncodedS2LaxPolygonShape
  - "& EncodedS2LaxPolygonShape::operator=(\n    EncodedS2LaxPolygonShape&& b) noexcept"
  - EncodedS2LaxPolygonShape::Init
  - EncodedS2LaxPolygonShape::Encode
  - EncodedS2LaxPolygonShape::num_vertices
  - EncodedS2LaxPolygonShape::num_loop_vertices
  - EncodedS2LaxPolygonShape::loop_vertex
  - EncodedS2LaxPolygonShape::edge
  - EncodedS2LaxPolygonShape::GetReferencePoint
  - EncodedS2LaxPolygonShape::chain
  source_file: /src/s2geometry/src/s2/s2lax_polygon_shape.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::CountEdges
  - s2shapeutil::CountEdgesUpTo
  - s2shapeutil::CountEdges
  - s2shapeutil::CountEdgesUpTo
  source_file: /src/s2geometry/src/s2/s2shapeutil_count_edges.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestCrossingSignInvalid
  - TestEdgeOrVertexCrossingInvalid
  - TestSignedEdgeOrVertexCrossingInvalid
  - TEST
  - TEST
  - TestCrossing
  - TestCrossings
  - TEST
  - TEST
  - TEST
  - BenchmarkCrossing
  - BM_EdgeOrVertexCrossing
  - CrossingSignBool
  - BM_CrossingSign
  - BM_RobustCrosserEdgesCross
  source_file: /src/s2geometry/src/s2/s2edge_crosser_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "CrossingFunction(const S2Point&, const S2Point&,\n                              const
        S2Point&, const S2Point&)"
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/s2geometry/src/s2/s2edge_crosser_test.cc
      type: bool
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2coords_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FurthestPointTarget::FurthestPointTarget
  - FurthestPointTarget::max_brute_force_index_size
  - TEST
  - FurthestPointTarget::FurthestPointTarget
  - FurthestPointTarget::max_brute_force_index_size
  - TEST
  source_file: /src/s2geometry/src/s2/s2closest_cell_query_base_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetCellId
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ExpandCell
  - TEST
  - TEST
  - TEST
  - TestAllNeighbors
  - TEST
  - TEST
  - TEST
  - TEST
  - SampleBoundary
  - ProjectToBoundary
  - TestExpandedByDistanceUV
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_ToPointControl
  - BM_ToPointRaw
  - BM_ToPoint
  - BM_FromPointControl
  - BM_FromPoint
  - BM_FromFaceIJ
  - BM_level
  - BM_child_position
  - BM_ToToken
  - BM_FromToken
  source_file: /src/s2geometry/src/s2/s2cell_id_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::S2PointVectorLayer::S2PointVectorLayer
  - s2builderutil::S2PointVectorLayer::S2PointVectorLayer
  - s2builderutil::S2PointVectorLayer::Build
  - s2builderutil::S2PointVectorLayer::graph_options
  - s2builderutil::S2PointVectorLayer::S2PointVectorLayer
  - s2builderutil::S2PointVectorLayer::S2PointVectorLayer
  - s2builderutil::S2PointVectorLayer::Build
  - s2builderutil::S2PointVectorLayer::graph_options
  source_file: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2EdgeTessellator::kMinTolerance
  - S2EdgeTessellator::S2EdgeTessellator
  - S2EdgeTessellator::EstimateMaxError
  - S2EdgeTessellator::AppendProjected
  - S2EdgeTessellator::AppendProjected
  - S2EdgeTessellator::AppendUnprojected
  - S2EdgeTessellator::AppendUnprojected
  source_file: /src/s2geometry/src/s2/s2edge_tessellator.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BruteForceQuadraticPrune
  - BruteForceQuadraticCyclicallyCanonicalize
  - MakeTestLoop
  - TestPruneDegeneracies
  - TEST
  - TEST
  - TEST
  - TestCanonicalLoopOrder
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - LoopTestBase::LoopTestBase
  - TestAreaConsistentWithCurvature
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - ExpectSameOrder
  - CheckCurvatureInvariants
  - TEST_F
  - TEST
  - TEST
  - TEST
  - BruteForceQuadraticPrune
  - BruteForceQuadraticCyclicallyCanonicalize
  - MakeTestLoop
  - TestPruneDegeneracies
  - TEST
  - TEST
  - TEST
  - TestCanonicalLoopOrder
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - LoopTestBase::LoopTestBase
  - TestAreaConsistentWithCurvature
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - ExpectSameOrder
  - CheckCurvatureInvariants
  - TEST_F
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2loop_measures_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2textformat::SplitString
  - s2textformat::SplitString
  - s2textformat::ParseLatLngs
  - s2textformat::ParsePoints
  - s2textformat::MakePoint
  - s2textformat::MakeLatLng
  - s2textformat::MakeLatLngRect
  - s2textformat::MakeCellId
  - s2textformat::MakeCellUnion
  - s2textformat::MakeLoop
  - s2textformat::MakePolyline
  - s2textformat::MakeLaxPolyline
  - s2textformat::InternalMakePolygon
  - s2textformat::MakePolygon
  - s2textformat::MakeVerbatimPolygon
  - s2textformat::MakeLaxPolygon
  - s2textformat::MakeIndex
  - s2textformat::AppendVertex
  - s2textformat::AppendVertex
  - s2textformat::AppendVertices
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::SplitString
  - s2textformat::SplitString
  - s2textformat::ParseLatLngs
  - s2textformat::ParsePoints
  - s2textformat::MakePoint
  - s2textformat::MakeLatLng
  - s2textformat::MakeLatLngRect
  - s2textformat::MakeCellId
  - s2textformat::MakeCellUnion
  - s2textformat::MakeLoop
  - s2textformat::MakePolyline
  - s2textformat::MakeLaxPolyline
  - s2textformat::InternalMakePolygon
  - s2textformat::MakePolygon
  - s2textformat::MakeVerbatimPolygon
  - s2textformat::MakeLaxPolygon
  - s2textformat::MakeIndex
  - s2textformat::AppendVertex
  - s2textformat::AppendVertex
  - s2textformat::AppendVertices
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  - s2textformat::ToString
  source_file: /src/s2geometry/src/s2/s2text_format.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2FurthestEdgeQuery::Result::Result
  - S2FurthestEdgeQuery::Result::Result
  - S2FurthestEdgeQuery::Result::Result
  - S2FurthestEdgeQuery::Result::distance
  - S2FurthestEdgeQuery::Result::shape_id
  - S2FurthestEdgeQuery::Result::edge_id
  - S2FurthestEdgeQuery::Result::is_interior
  - S2FurthestEdgeQuery::Result::is_empty
  - operator==(const Result& x, const Result& y)
  - operator<(const Result& x, const Result& y)
  - S2FurthestEdgeQuery::S2FurthestEdgeQuery
  - operator=(const S2FurthestEdgeQuery&)
  - S2FurthestEdgeQuery::Options::Options()
  - S2FurthestEdgeQuery::Options::min_distance() const
  - "S2FurthestEdgeQuery::Options::set_min_distance(\n    S1ChordAngle min_distance)"
  - "S2FurthestEdgeQuery::Options::set_min_distance(\n    S1Angle min_distance)"
  - "S2FurthestEdgeQuery::Options::set_inclusive_min_distance(\n    S1ChordAngle min_distance)"
  - "S2FurthestEdgeQuery::Options::set_inclusive_min_distance(\n    S1Angle min_distance)"
  - S2FurthestEdgeQuery::Options::max_error() const
  - "S2FurthestEdgeQuery::Options::set_max_error(\n    S1ChordAngle max_error)"
  - S2FurthestEdgeQuery::Options::set_max_error(S1Angle max_error)
  - S2FurthestEdgeQuery::PointTarget::PointTarget(const S2Point& point)
  - "S2FurthestEdgeQuery::EdgeTarget::EdgeTarget(const S2Point& a,\n                                                  const
    S2Point& b)"
  - S2FurthestEdgeQuery::CellTarget::CellTarget(const S2Cell& cell)
  - "S2FurthestEdgeQuery::ShapeIndexTarget::ShapeIndexTarget(\n    const S2ShapeIndex*
    index)"
  - S2FurthestEdgeQuery::S2FurthestEdgeQuery
  - S2FurthestEdgeQuery::Init
  - S2FurthestEdgeQuery::ReInit
  - '& S2FurthestEdgeQuery::index() const'
  - "&\n    S2FurthestEdgeQuery::options() const"
  - S2FurthestEdgeQuery::mutable_options
  - S2FurthestEdgeQuery::FindFurthestEdges
  - S2FurthestEdgeQuery::GetDistance
  - S2FurthestEdgeQuery::GetEdge
  source_file: /src/s2geometry/src/s2/s2furthest_edge_query.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - GetMaxVertexDistance
  - UpdateS2CellIdMinVertexSeparation
  - GetS2CellIdMinVertexSeparation
  - TEST
  - GetCircumRadius
  - GetNeighbors
  - GetS2CellIdMinEdgeSeparation
  - GetS2CellIdMinEdgeSeparation
  - TEST
  - TEST
  - TEST
  - IsValid
  - HasValidVertices
  - Rescale
  - ToPoint
  - GetVertex
  - GetMaxVertexDistance
  - GetLatLngMinVertexSeparation
  - TEST
  - LatLngConfig
  - operator<(const LatLngConfig& other) const
  - operator==(const LatLngConfig& other) const
  - GetLatLngMinEdgeSeparation
  - GetLatLngMinEdgeSeparation
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: scale
        type: int64_t
      - name: ll0
        type: IntLatLng
      item_type: struct
      name: LatLngConfig
      pos:
        line_end: 604
        line_start: 589
        source_file: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
    typedefs:
    - item_type: typedef
      name: "S2CellIdMinEdgeSeparationFunction(int level, S1Angle edge_sep,\n                                                 S1Angle
        min_snap_radius,\n                                                 S1Angle
        max_snap_radius)"
      pos:
        line_end: 297
        line_start: 295
        source_file: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
      type: double
    - item_type: typedef
      name: "LatLngMinEdgeSeparationFunction(int64_t scale, S1Angle edge_sep,\n                                               S1Angle
        max_snap_radius)"
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/s2geometry/src/s2/s2builderutil_snap_functions_test.cc
      type: double
    union: []
- function_names:
  - ReversibleBytes::ReversibleBytes
  - ReversibleBytes::Clear
  - ReversibleBytes::AppendBytes
  - ReversibleBytes::AppendVarint64
  - ReversibleBytes::ReverseFrom
  - ReversibleBytes::size
  - ReversibleBytes::Reversed
  - ReversedCellEncoder::ReversedCellEncoder
  - ReversedCellEncoder::Next
  - ReversedCellEncoder::Finish
  source_file: /src/s2geometry/src/s2/s2density_tree_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::GetDimension
  - S2::GetNumPoints
  - S2::GetLength
  - S2::GetPerimeter
  - S2::GetArea
  - S2::GetApproxArea
  - S2::GetCentroid
  - S2::GetDimension
  - S2::GetNumPoints
  - S2::GetLength
  - S2::GetPerimeter
  - S2::GetArea
  - S2::GetApproxArea
  - S2::GetCentroid
  source_file: /src/s2geometry/src/s2/s2shape_index_measures.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S1IntervalTestBase::S1IntervalTestBase
  - TEST_F
  - TEST_F
  - TEST
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TestIntervalOps
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  source_file: /src/s2geometry/src/s2/s1interval_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ContainsVertexQuery::S2ContainsVertexQuery
  - S2ContainsVertexQuery::S2ContainsVertexQuery
  - S2ContainsVertexQuery::Init
  - S2ContainsVertexQuery::AddEdge
  - S2ContainsVertexQuery::DuplicateEdges
  source_file: /src/s2geometry/src/s2/s2contains_vertex_query.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExpectMaxDigits
  - ExpectString
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestS2ShapeIndex
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ExpectMaxDigits
  - ExpectString
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestS2ShapeIndex
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2text_format_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - GetMaxDistanceToEdge
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ConvertResults
  - GetFurthestEdges
  - TestFindFurthestEdges
  - TestWithIndexFactory
  - TEST
  - TEST
  - TEST
  - BenchmarkFindFurthest
  - BM_FindFurthest
  - BM_FindFurthestInterior
  - BM_FindFurthestMaxErrorPct
  - BM_FindFurthestToEdge
  - BM_FindFurthestToEdgeInterior
  - BM_FindFurthestToCell
  - BM_FindFurthestToCellInterior
  - BM_FindFurthestToSmallAbuttingIndex
  - BM_FindFurthestFromSmallAbuttingIndex
  - BM_FindFurthestToSameSizeAbuttingIndex
  - BM_FindFurthestToSameSizeDistantIndex
  - BM_IsDistanceGreaterSameSizeDistantIndexFalse
  - BM_IsDistanceGreaterSameSizeDistantIndexTrue
  source_file: /src/s2geometry/src/s2/s2furthest_edge_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "S2ClosestCellQuery::Options::set_conservative_max_distance(\n    S1ChordAngle
    max_distance)"
  - "S2ClosestCellQuery::Options::set_conservative_max_distance(\n    S1Angle max_distance)"
  - S2ClosestCellQuery::PointTarget::max_brute_force_index_size() const
  - S2ClosestCellQuery::EdgeTarget::max_brute_force_index_size() const
  - S2ClosestCellQuery::CellTarget::max_brute_force_index_size() const
  - S2ClosestCellQuery::CellUnionTarget::max_brute_force_index_size() const
  - S2ClosestCellQuery::ShapeIndexTarget::max_brute_force_index_size() const
  - S2ClosestCellQuery::S2ClosestCellQuery
  - S2ClosestCellQuery::~S2ClosestCellQuery()
  - S2ClosestCellQuery::IsDistanceLess
  - S2ClosestCellQuery::IsDistanceLessOrEqual
  - S2ClosestCellQuery::IsConservativeDistanceLessOrEqual
  source_file: /src/s2geometry/src/s2/s2closest_cell_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::StringVectorEncoder::StringVectorEncoder
  - s2coding::StringVectorEncoder::Encode
  - s2coding::StringVectorEncoder::Encode
  - s2coding::EncodedStringVector::Init
  - s2coding::EncodedStringVector::Decode
  - s2coding::EncodedStringVector::Encode
  - s2coding::StringVectorEncoder::StringVectorEncoder
  - s2coding::StringVectorEncoder::Encode
  - s2coding::StringVectorEncoder::Encode
  - s2coding::EncodedStringVector::Init
  - s2coding::EncodedStringVector::Decode
  - s2coding::EncodedStringVector::Encode
  source_file: /src/s2geometry/src/s2/encoded_string_vector.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ConvexHullQuery::S2ConvexHullQuery
  - S2ConvexHullQuery::AddPoint
  - S2ConvexHullQuery::AddPolyline
  - S2ConvexHullQuery::AddLoop
  - S2ConvexHullQuery::AddPolygon
  - S2ConvexHullQuery::GetCapBound
  - OrderedCcwAround::OrderedCcwAround
  - operator()(const S2Point& x, const S2Point& y) const
  - S2ConvexHullQuery::GetConvexHull
  - S2ConvexHullQuery::GetMonotoneChain
  - S2ConvexHullQuery::GetSinglePointLoop
  - S2ConvexHullQuery::GetSingleEdgeLoop
  source_file: /src/s2geometry/src/s2/s2convex_hull_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionSharder::S2RegionSharder
  - S2RegionSharder::S2RegionSharder
  - '& operator=(const S2RegionSharder&)'
  - S2RegionSharder::S2RegionSharder
  - '& operator=(S2RegionSharder&& b) noexcept'
  source_file: /src/s2geometry/src/s2/s2region_sharder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::EncodeToEncoder
  - s2coding::DecodeFromEncoded
  - s2coding::RoundTrip
  - s2coding::EncodeToEncoder
  - s2coding::DecodeFromEncoded
  - s2coding::RoundTrip
  source_file: /src/s2geometry/src/s2/s2coder_testing.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyS2PointVectorLayerResults
  - AddPoint
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - VerifyS2PointVectorLayerResults
  - AddPoint
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PrecisionStats::Tally
  - PrecisionStats::PrecisionStats
  - PrecisionStats::ToString
  - TestRobustCrossProdError
  - TestRobustCrossProd
  - TEST
  - TEST
  - TEST
  - ChoosePoint
  - PerturbLength
  - TEST
  - TEST
  - GetIntersectionStats::GetIntersectionStats
  - ~GetIntersectionStats()
  - GetIntersectionStats::Print
  - GetIntersectionExact
  - TEST
  - ChooseSemicirclePoint
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - PrecisionStats::Tally
  - PrecisionStats::PrecisionStats
  - PrecisionStats::ToString
  - TestRobustCrossProdError
  - TestRobustCrossProd
  - TEST
  - TEST
  - TEST
  - ChoosePoint
  - PerturbLength
  - TEST
  - TEST
  - GetIntersectionStats::GetIntersectionStats
  - ~GetIntersectionStats()
  - GetIntersectionStats::Print
  - GetIntersectionExact
  - TEST
  - ChooseSemicirclePoint
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_GetIntersection
  - GetIntersectionStableLDIgnoreValidity
  source_file: /src/s2geometry/src/s2/s2edge_crossings_test.cc
  types:
    enum:
    - enumerators:
      - name: DOUBLE
      - name: LONG_DOUBLE
      - name: NUM_PRECISIONS
      - name: SYMBOLIC
      - name: EXACT
      item_type: enum
      name: Precision
      pos:
        line_end: 73
        line_start: 67
        source_file: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    - enumerators:
      - name: DOUBLE
      - name: LONG_DOUBLE
      - name: NUM_PRECISIONS
      - name: SYMBOLIC
      - name: EXACT
      item_type: enum
      name: Precision
      pos:
        line_end: 73
        line_start: 67
        source_file: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    preproc_defs: []
    structs:
    - fields:
      - name: a
        type: S2Point
      item_type: struct
      name: Isect
      pos:
        line_end: 643
        line_start: 643
        source_file: /src/s2geometry/src/s2/s2edge_crossings_test.cc
    typedefs: []
    union: []
- function_names:
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::SignTest::LessCCW::LessCCW
  - operator()(const S2Point& a, const S2Point& b) const
  - s2pred::SignTest::SortCCW
  - s2pred::SignTest::CountCCW
  - s2pred::SignTest::TestCCW
  - s2pred::SignTest::AddNormalized
  - s2pred::SignTest::MaybeAddTangentPoints
  - s2pred::SignTest::AddDegeneracy
  - s2pred::SignTest::SortAndTest
  - s2pred::SignTest::TestGreatCircle
  - s2pred::TEST_F
  - s2pred::StableSignTest::GetFailureRate
  - s2pred::TEST_F
  - s2pred::CheckSymbolicSign
  - s2pred::TEST
  - s2pred::PrecisionStats::Tally
  - s2pred::PrecisionStats::PrecisionStats
  - s2pred::PrecisionStats::ToString
  - s2pred::ChoosePoint
  - s2pred::Sin2Distances::Triage
  - s2pred::CosDistances::Triage
  - s2pred::MinusSin2Distances::Triage
  - s2pred::TestCompareDistances
  - s2pred::TEST
  - s2pred::TestCompareDistancesConsistency
  - s2pred::TEST
  - s2pred::Sin2Distance::Triage
  - s2pred::CosDistance::Triage
  - s2pred::TestCompareDistance
  - s2pred::TEST
  - s2pred::TestCompareDistanceConsistency
  - s2pred::TEST
  - s2pred::TestCompareEdgeDistance
  - s2pred::TEST
  - s2pred::TestCompareEdgeDistanceConsistency
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TestCompareEdgeDirections
  - s2pred::TEST
  - s2pred::TestSignDotProd
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TestIntersectionOrdering
  - s2pred::TEST
  - s2pred::TestCircleEdgeIntersectionSign
  - s2pred::TEST
  - s2pred::TestCompareEdgeDirectionsConsistency
  - s2pred::TEST
  - s2pred::TestEdgeCircumcenterSign
  - s2pred::TEST
  - s2pred::TestEdgeCircumcenterSignConsistency
  - s2pred::TEST
  - s2pred::TestVoronoiSiteExclusion
  - s2pred::TEST
  - s2pred::TestVoronoiSiteExclusionConsistency
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::SignTest::LessCCW::LessCCW
  - operator()(const S2Point& a, const S2Point& b) const
  - s2pred::SignTest::SortCCW
  - s2pred::SignTest::CountCCW
  - s2pred::SignTest::TestCCW
  - s2pred::SignTest::AddNormalized
  - s2pred::SignTest::MaybeAddTangentPoints
  - s2pred::SignTest::AddDegeneracy
  - s2pred::SignTest::SortAndTest
  - s2pred::SignTest::TestGreatCircle
  - s2pred::TEST_F
  - s2pred::StableSignTest::GetFailureRate
  - s2pred::TEST_F
  - s2pred::CheckSymbolicSign
  - s2pred::TEST
  - s2pred::PrecisionStats::Tally
  - s2pred::PrecisionStats::PrecisionStats
  - s2pred::PrecisionStats::ToString
  - s2pred::ChoosePoint
  - s2pred::Sin2Distances::Triage
  - s2pred::CosDistances::Triage
  - s2pred::MinusSin2Distances::Triage
  - s2pred::TestCompareDistances
  - s2pred::TEST
  - s2pred::TestCompareDistancesConsistency
  - s2pred::TEST
  - s2pred::Sin2Distance::Triage
  - s2pred::CosDistance::Triage
  - s2pred::TestCompareDistance
  - s2pred::TEST
  - s2pred::TestCompareDistanceConsistency
  - s2pred::TEST
  - s2pred::TestCompareEdgeDistance
  - s2pred::TEST
  - s2pred::TestCompareEdgeDistanceConsistency
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TestCompareEdgeDirections
  - s2pred::TEST
  - s2pred::TestSignDotProd
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TEST
  - s2pred::TestIntersectionOrdering
  - s2pred::TEST
  - s2pred::TestCircleEdgeIntersectionSign
  - s2pred::TEST
  - s2pred::TestCompareEdgeDirectionsConsistency
  - s2pred::TEST
  - s2pred::TestEdgeCircumcenterSign
  - s2pred::TEST
  - s2pred::TestEdgeCircumcenterSignConsistency
  - s2pred::TEST
  - s2pred::TestVoronoiSiteExclusion
  - s2pred::TEST
  - s2pred::TestVoronoiSiteExclusionConsistency
  - s2pred::TEST
  source_file: /src/s2geometry/src/s2/s2predicates_test.cc
  types:
    enum:
    - enumerators:
      - name: DOUBLE
      - name: LONG_DOUBLE
      - name: SYMBOLIC
      - name: EXACT
      - name: NUM_PRECISIONS
      item_type: enum
      name: Precision
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/s2geometry/src/s2/s2predicates_test.cc
    - enumerators:
      - name: DOUBLE
      - name: LONG_DOUBLE
      - name: SYMBOLIC
      - name: EXACT
      - name: NUM_PRECISIONS
      item_type: enum
      name: Precision
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/s2geometry/src/s2/s2predicates_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ~CellIndexFactory()
  - PointCloudCellIndexFactory::AddCells
  - CapsCellIndexFactory::CapsCellIndexFactory
  - CapsCellIndexFactory::AddCells
  - GetClosestCells
  - TestFindClosestCells
  - TestWithIndexFactory
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ~CellIndexFactory()
  - PointCloudCellIndexFactory::AddCells
  - CapsCellIndexFactory::CapsCellIndexFactory
  - CapsCellIndexFactory::AddCells
  - GetClosestCells
  - TestFindClosestCells
  - TestWithIndexFactory
  - TEST
  - TEST
  - TEST
  - FractionToRadius
  - SampleBoundary
  - SampleCell
  - BenchmarkFindClosest
  - BM_FindClosest
  - BM_FindClosestWhenZero
  - BM_IsDistanceLess
  - BM_FindCellsNearby
  - BM_FindClosestToLongEdge
  - BM_FindClosestWhenZeroToLongEdge
  - BM_IsDistanceLessToLongEdge
  - BM_FindCellsNearbyLongEdge
  - BM_FindClosestToSmallCell
  - BM_FindClosestWhenZeroToSmallCell
  - BM_IsDistanceLessToSmallCell
  - BM_FindCellsNearbySmallCell
  - BM_FindClosestToSmallCellUnion
  - BM_FindClosestToSmallCoarseCellUnion
  - BM_FindClosestToSmallFineCellUnion
  - BM_FindClosestWhenZeroToSmallCellUnion
  - BM_FindClosestWhenZeroToSmallCoarseCellUnion
  - BM_FindClosestWhenZeroToSmallFineCellUnion
  - BM_IsDistanceLessToSmallCellUnion
  - BM_IsDistanceLessToSmallCoarseCellUnion
  - BM_IsDistanceLessToSmallFineCellUnion
  - BM_FindCellsNearbySmallCellUnion
  - BM_FindCellsNearbySmallCoarseCellUnion
  - BM_FindCellsNearbySmallFineCellUnion
  - BM_FindClosestToSmallShapeIndex
  - BM_FindClosestToSmallCoarseShapeIndex
  - BM_FindClosestToSmallFineShapeIndex
  - BM_FindClosestWhenZeroToSmallShapeIndex
  - BM_FindClosestWhenZeroToSmallCoarseShapeIndex
  - BM_FindClosestWhenZeroToSmallFineShapeIndex
  - BM_IsDistanceLessToSmallShapeIndex
  - BM_IsDistanceLessToSmallCoarseShapeIndex
  - BM_IsDistanceLessToSmallFineShapeIndex
  - BM_FindCellsNearbySmallShapeIndex
  - BM_FindCellsNearbySmallCoarseShapeIndex
  - BM_FindCellsNearbySmallFineShapeIndex
  - CoarseCaps::CoarseCaps
  - FractionToRadius
  - SampleBoundary
  - SampleCell
  - BenchmarkFindClosest
  - BM_FindClosest
  - BM_FindClosestWhenZero
  - BM_IsDistanceLess
  - BM_FindCellsNearby
  - BM_FindClosestToLongEdge
  - BM_FindClosestWhenZeroToLongEdge
  - BM_IsDistanceLessToLongEdge
  - BM_FindCellsNearbyLongEdge
  - BM_FindClosestToSmallCell
  - BM_FindClosestWhenZeroToSmallCell
  - BM_IsDistanceLessToSmallCell
  - BM_FindCellsNearbySmallCell
  - BM_FindClosestToSmallCellUnion
  - BM_FindClosestToSmallCoarseCellUnion
  - BM_FindClosestToSmallFineCellUnion
  - BM_FindClosestWhenZeroToSmallCellUnion
  - BM_FindClosestWhenZeroToSmallCoarseCellUnion
  - BM_FindClosestWhenZeroToSmallFineCellUnion
  - BM_IsDistanceLessToSmallCellUnion
  - BM_IsDistanceLessToSmallCoarseCellUnion
  - BM_IsDistanceLessToSmallFineCellUnion
  - BM_FindCellsNearbySmallCellUnion
  - BM_FindCellsNearbySmallCoarseCellUnion
  - BM_FindCellsNearbySmallFineCellUnion
  - BM_FindClosestToSmallShapeIndex
  - BM_FindClosestToSmallCoarseShapeIndex
  - BM_FindClosestToSmallFineShapeIndex
  - BM_FindClosestWhenZeroToSmallShapeIndex
  - BM_FindClosestWhenZeroToSmallCoarseShapeIndex
  - BM_FindClosestWhenZeroToSmallFineShapeIndex
  - BM_IsDistanceLessToSmallShapeIndex
  - BM_IsDistanceLessToSmallCoarseShapeIndex
  - BM_IsDistanceLessToSmallFineShapeIndex
  - BM_FindCellsNearbySmallShapeIndex
  - BM_FindCellsNearbySmallCoarseShapeIndex
  - BM_FindCellsNearbySmallFineShapeIndex
  - CoarseCaps::CoarseCaps
  source_file: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
  types:
    enum:
    - enumerators:
      - name: POINT
      - name: CELL_UNION
      - name: CELL
      - name: EDGE
      - name: SHAPE_INDEX
      item_type: enum
      name: TargetType
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    - enumerators:
      - name: POINT
      - name: CELL_UNION
      - name: CELL
      - name: EDGE
      - name: SHAPE_INDEX
      item_type: enum
      name: TargetType
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    preproc_defs: []
    structs:
    - fields:
      - name: "AddCells(const S2Cap& index_cap, int num_cells,\n                        absl::BitGenRef
          bitgen, S2CellIndex* index) const"
        type: void
      item_type: struct
      name: CellIndexFactory
      pos:
        line_end: 211
        line_start: 203
        source_file: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    - fields:
      - name: "AddCells(const S2Cap& index_cap, int num_cells,\n                        absl::BitGenRef
          bitgen, S2CellIndex* index) const"
        type: void
      item_type: struct
      name: CellIndexFactory
      pos:
        line_end: 211
        line_start: 203
        source_file: /src/s2geometry/src/s2/s2closest_cell_query_test.cc
    typedefs: []
    union: []
- function_names:
  - S2MinDistancePointTarget::GetCapBound
  - S2MinDistancePointTarget::UpdateMinDistance
  - S2MinDistancePointTarget::UpdateMinDistance
  - S2MinDistancePointTarget::UpdateMinDistance
  - S2MinDistancePointTarget::VisitContainingShapeIds
  - S2MinDistanceEdgeTarget::GetCapBound
  - S2MinDistanceEdgeTarget::UpdateMinDistance
  - S2MinDistanceEdgeTarget::UpdateMinDistance
  - S2MinDistanceEdgeTarget::UpdateMinDistance
  - S2MinDistanceEdgeTarget::VisitContainingShapeIds
  - S2MinDistanceCellTarget::S2MinDistanceCellTarget
  - S2MinDistanceCellTarget::GetCapBound
  - S2MinDistanceCellTarget::UpdateMinDistance
  - S2MinDistanceCellTarget::UpdateMinDistance
  - S2MinDistanceCellTarget::UpdateMinDistance
  - S2MinDistanceCellTarget::VisitContainingShapeIds
  - S2MinDistanceCellUnionTarget::S2MinDistanceCellUnionTarget
  - S2MinDistanceCellUnionTarget::~S2MinDistanceCellUnionTarget()
  - S2MinDistanceCellUnionTarget::use_brute_force
  - S2MinDistanceCellUnionTarget::set_use_brute_force
  - S2MinDistanceCellUnionTarget::set_max_error
  - S2MinDistanceCellUnionTarget::GetCapBound
  - S2MinDistanceCellUnionTarget::UpdateMinDistance
  - S2MinDistanceCellUnionTarget::UpdateMinDistance
  - S2MinDistanceCellUnionTarget::UpdateMinDistance
  - S2MinDistanceCellUnionTarget::UpdateMinDistance
  - S2MinDistanceCellUnionTarget::VisitContainingShapeIds
  - S2MinDistanceShapeIndexTarget::S2MinDistanceShapeIndexTarget
  - S2MinDistanceShapeIndexTarget::~S2MinDistanceShapeIndexTarget()
  - S2MinDistanceShapeIndexTarget::include_interiors
  - S2MinDistanceShapeIndexTarget::set_include_interiors
  - S2MinDistanceShapeIndexTarget::use_brute_force
  - S2MinDistanceShapeIndexTarget::set_use_brute_force
  - S2MinDistanceShapeIndexTarget::set_max_error
  - S2MinDistanceShapeIndexTarget::GetCapBound
  - S2MinDistanceShapeIndexTarget::UpdateMinDistance
  - S2MinDistanceShapeIndexTarget::UpdateMinDistance
  - S2MinDistanceShapeIndexTarget::UpdateMinDistance
  - S2MinDistanceShapeIndexTarget::UpdateMinDistance
  - S2MinDistanceShapeIndexTarget::VisitContainingShapeIds
  source_file: /src/s2geometry/src/s2/s2min_distance_targets.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2lax_loop_shape_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2MaxDistancePointTarget::GetCapBound
  - S2MaxDistancePointTarget::UpdateMinDistance
  - S2MaxDistancePointTarget::UpdateMinDistance
  - S2MaxDistancePointTarget::UpdateMinDistance
  - S2MaxDistancePointTarget::VisitContainingShapeIds
  - S2MaxDistanceEdgeTarget::GetCapBound
  - S2MaxDistanceEdgeTarget::UpdateMinDistance
  - S2MaxDistanceEdgeTarget::UpdateMinDistance
  - S2MaxDistanceEdgeTarget::UpdateMinDistance
  - S2MaxDistanceEdgeTarget::VisitContainingShapeIds
  - S2MaxDistanceCellTarget::GetCapBound
  - S2MaxDistanceCellTarget::UpdateMinDistance
  - S2MaxDistanceCellTarget::UpdateMinDistance
  - S2MaxDistanceCellTarget::UpdateMinDistance
  - S2MaxDistanceCellTarget::VisitContainingShapeIds
  - S2MaxDistanceShapeIndexTarget::S2MaxDistanceShapeIndexTarget
  - S2MaxDistanceShapeIndexTarget::~S2MaxDistanceShapeIndexTarget()
  - S2MaxDistanceShapeIndexTarget::include_interiors
  - S2MaxDistanceShapeIndexTarget::set_include_interiors
  - S2MaxDistanceShapeIndexTarget::use_brute_force
  - S2MaxDistanceShapeIndexTarget::set_use_brute_force
  - S2MaxDistanceShapeIndexTarget::set_max_error
  - S2MaxDistanceShapeIndexTarget::GetCapBound
  - S2MaxDistanceShapeIndexTarget::UpdateMinDistance
  - S2MaxDistanceShapeIndexTarget::UpdateMinDistance
  - S2MaxDistanceShapeIndexTarget::UpdateMinDistance
  - S2MaxDistanceShapeIndexTarget::VisitContainingShapeIds
  source_file: /src/s2geometry/src/s2/s2max_distance_targets.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2random::LogUniform
  - s2random::SkewedInt
  - s2random::Point
  - s2random::Frame
  - s2random::Frame
  - s2random::FrameAt
  - s2random::FrameAt
  - s2random::CellId
  - s2random::CellId
  - s2random::Cap
  - s2random::SamplePoint
  - s2random::SamplePoint
  - s2random::LogUniform
  - s2random::SkewedInt
  - s2random::Point
  - s2random::Frame
  - s2random::Frame
  - s2random::FrameAt
  - s2random::FrameAt
  - s2random::CellId
  - s2random::CellId
  - s2random::Cap
  - s2random::SamplePoint
  - s2random::SamplePoint
  source_file: /src/s2geometry/src/s2/s2random.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionUnion::S2RegionUnion
  - S2RegionUnion::Init
  - S2RegionUnion::S2RegionUnion
  - '& S2RegionUnion::operator=(const S2RegionUnion& src)'
  - S2RegionUnion::S2RegionUnion
  - '& S2RegionUnion::operator=(S2RegionUnion&& src) noexcept'
  - S2RegionUnion::Release
  - S2RegionUnion::Add
  - S2RegionUnion::Clone
  - S2RegionUnion::GetCapBound
  - S2RegionUnion::GetRectBound
  - S2RegionUnion::GetCellUnionBound
  - S2RegionUnion::Contains
  - S2RegionUnion::Contains
  - S2RegionUnion::MayIntersect
  source_file: /src/s2geometry/src/s2/s2region_union.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2MinDistance::S2MinDistance
  - S2MinDistance::S2MinDistance
  - S2MinDistance::S2MinDistance
  - S2MinDistance::Zero
  - S2MinDistance::Infinity
  - S2MinDistance::Negative
  - operator-(S2MinDistance x, S1ChordAngle delta)
  - S2MinDistance::GetChordAngleBound
  - S2MinDistance::UpdateMin
  - S2MinDistancePointTarget::S2MinDistancePointTarget
  - S2MinDistanceEdgeTarget::S2MinDistanceEdgeTarget
  source_file: /src/s2geometry/src/s2/s2min_distance_targets.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shapeutil_edge_wrap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2LoopTestBase::AddLoop
  - S2LoopTestBase::AddLoop
  - S2LoopTestBase::S2LoopTestBase
  - S2LoopTestBase::TestEncodeCompressed
  - S2LoopTestBase::TestDecodeCompressed
  - S2LoopTestBase::GetLoopIndexPtr
  - TEST_F
  - Rotate
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - CheckCurvatureInvariants
  - TEST_F
  - CheckNormalizeAndContains
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TestOneNestedPair
  - TestOneDisjointPair
  - TestOneCoveringPair
  - TestOneOverlappingPair
  - TestNestedPair
  - TestDisjointPair
  - TestCoveringPair
  - TestOverlappingPair
  - TestRelationWithDesc
  - TestRelation
  - TEST_F
  - TEST_F
  - MakeCellLoop
  - TEST
  - TEST
  - TestNear
  - TEST
  - EncodeDecode
  - TEST
  - TEST
  - TEST
  - TEST
  - MakeLoopWithNonDefaultFields
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST_F
  - TEST_F
  - TestEmptyFullSnapped
  - TestEmptyFullLatLng
  - TestEmptyFullConversions
  - TEST
  - TEST_F
  - TEST_F
  - TEST
  - CheckLoopIsInvalid
  - CheckLoopIsInvalid
  - TEST
  - TEST_F
  - TEST
  - TestDistanceMethods
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - GetDefaultRadius
  - BM_Constructor
  - BM_AllocCopyVertices
  - BM_Clone
  - BM_CopyConstruct
  - BM_CopyAssign
  - BM_MoveAssign
  - GetRegularLoops
  - BM_IsValid
  - BM_GetArea
  - BM_ContainsPoint
  - BenchmarkConstructAndContains
  - BM_ConstructAndContainsTrue
  - BM_ConstructAndContainsFalse
  - BM_DecodeAndContainsTrue
  - BM_DecodeAndContainsFalse
  - GetNestedLoopPairs
  - GetCrossingLoopPairs
  - GetDisjointLoopPairs
  - BenchmarkLoopRelation
  - BenchmarkRelationContains
  - BenchmarkRelationDisjoint
  - BenchmarkRelationCrosses
  - BM_CompareBoundaryContains
  - BM_CompareBoundaryDisjoint
  - BM_CompareBoundaryCrosses
  - BM_ContainsContains
  - BM_ContainsDisjoint
  - BM_ContainsCrosses
  - BM_IntersectsContains
  - BM_IntersectsDisjoint
  - BM_IntersectsCrosses
  - BM_ContainsVsRadiusMeters
  - BM_ContainsVsEdgeGapMultiple
  - BM_IntersectsCrossesVsLogRadiusRatio
  source_file: /src/s2geometry/src/s2/s2loop_test.cc
  types:
    enum:
    - enumerators:
      - name: CONTAINS
        value: '0x01'
      - name: DISJOINT
        value: '0x04'
      - name: COVERS
        value: '0x08'
      - name: CONTAINED
        value: '0x02'
      item_type: enum
      name: RelationFlags
      pos:
        line_end: 755
        line_start: 750
        source_file: /src/s2geometry/src/s2/s2loop_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::S2PolylineLayer::S2PolylineLayer
  - s2builderutil::S2PolylineLayer::S2PolylineLayer
  - s2builderutil::S2PolylineLayer::Init
  - s2builderutil::S2PolylineLayer::graph_options
  - s2builderutil::S2PolylineLayer::Build
  - s2builderutil::S2PolylineLayer::S2PolylineLayer
  - s2builderutil::S2PolylineLayer::S2PolylineLayer
  - s2builderutil::S2PolylineLayer::Init
  - s2builderutil::S2PolylineLayer::graph_options
  - s2builderutil::S2PolylineLayer::Build
  source_file: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2LaxPolylineShape::S2LaxPolylineShape
  - "& S2LaxPolylineShape::operator=(\n    S2LaxPolylineShape&& other) noexcept"
  - S2LaxPolylineShape::S2LaxPolylineShape
  - S2LaxPolylineShape::S2LaxPolylineShape
  - S2LaxPolylineShape::Init
  - S2LaxPolylineShape::Init
  - S2LaxPolylineShape::Encode
  - S2LaxPolylineShape::Init
  - S2LaxPolylineShape::Init
  - S2LaxPolylineShape::edge
  - S2LaxPolylineShape::num_chains
  - S2LaxPolylineShape::chain
  - S2LaxPolylineShape::chain_edge
  - S2LaxPolylineShape::chain_position
  - EncodedS2LaxPolylineShape::Init
  - EncodedS2LaxPolylineShape::Encode
  - EncodedS2LaxPolylineShape::edge
  - EncodedS2LaxPolylineShape::num_chains
  - EncodedS2LaxPolylineShape::chain
  - EncodedS2LaxPolylineShape::chain_edge
  - EncodedS2LaxPolylineShape::chain_position
  source_file: /src/s2geometry/src/s2/s2lax_polyline_shape.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator()(S2Point* p) const
  - s2internal::MakeS2PointArrayForOverwrite
  - operator()(S2Point* p) const
  - s2internal::MakeS2PointArrayForOverwrite
  source_file: /src/s2geometry/src/s2/s2point_array.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: S2PointArrayDeleter
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/s2geometry/src/s2/s2point_array.h
    - fields: []
      item_type: struct
      name: S2PointArrayDeleter
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/s2geometry/src/s2/s2point_array.h
    typedefs: []
    union: []
- function_names:
  - S2CellUnion::Iterator::Iterator
  - S2CellUnion::Iterator::Iterator
  - S2CellUnion::S2CellUnion
  - S2CellUnion::num_cells
  - S2CellUnion::cell_id
  - S2CellUnion::size
  - S2CellUnion::empty
  - operator[](int i) const
  - S2CellUnion::data
  - S2CellUnion::data
  - '& cell_ids() const'
  - S2CellUnion::S2CellUnion
  - S2CellUnion::S2CellUnion
  - S2CellUnion::FromNormalized
  - S2CellUnion::FromVerbatim
  - S2CellUnion::Init
  - S2CellUnion::Clear
  - S2CellUnion::Release
  - S2CellUnion::begin
  - S2CellUnion::end
  - '& operator<<(std::ostream& os, const S2CellUnion& u)'
  - AbslHashValue
  - S2CellUnion::Iterator::id() const
  - S2CellUnion::Iterator::done() const
  - S2CellUnion::Iterator::Begin()
  - S2CellUnion::Iterator::Finish()
  - S2CellUnion::Iterator::Next()
  - S2CellUnion::Iterator::Prev()
  - S2CellUnion::Iterator::Seek(S2CellId target)
  - S2CellUnion::Iterator::Locate(const S2Point& target)
  - S2CellUnion::Iterator::Locate(S2CellId target)
  source_file: /src/s2geometry/src/s2/s2cell_union.h
  types:
    enum:
    - enumerators:
      - name: VERBATIM
      item_type: enum
      name: VerbatimFlag
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/s2geometry/src/s2/s2cell_union.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/s2geometry/src/s2/s2cell_union.h
      type: internal::S2LegacyCoder<S2CellUnion>
    union: []
- function_names:
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::VerifyShapeToS2Polygon
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::VerifyShapeToS2Polygon
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::VerifyShapeToS2Polygon
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::VerifyShapeToS2Polygon
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_conversion_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::DegeneracyFinder::DegeneracyFinder
  - s2builderutil::DegeneracyFinder::ComputeDegeneracies
  - s2builderutil::DegeneracyFinder::BuildComponent
  - s2builderutil::DegeneracyFinder::CrossingParity
  - s2builderutil::DegeneracyFinder::FindUnbalancedVertex
  - s2builderutil::DegeneracyFinder::ContainsVertexSign
  - s2builderutil::DegeneracyFinder::ComputeUnknownSignsBruteForce
  - s2builderutil::DegeneracyFinder::ComputeUnknownSignsIndexed
  - s2builderutil::DegeneracyFinder::MergeDegeneracies
  - s2builderutil::CheckGraphOptions
  - s2builderutil::DegeneracyFinder::DegeneracyFinder
  - s2builderutil::DegeneracyFinder::ComputeDegeneracies
  - s2builderutil::DegeneracyFinder::BuildComponent
  - s2builderutil::DegeneracyFinder::CrossingParity
  - s2builderutil::DegeneracyFinder::FindUnbalancedVertex
  - s2builderutil::DegeneracyFinder::ContainsVertexSign
  - s2builderutil::DegeneracyFinder::ComputeUnknownSignsBruteForce
  - s2builderutil::DegeneracyFinder::ComputeUnknownSignsIndexed
  - s2builderutil::DegeneracyFinder::MergeDegeneracies
  - s2builderutil::CheckGraphOptions
  - s2builderutil::FindPolygonDegeneracies
  - s2builderutil::IsFullyDegenerate
  - s2builderutil::DegeneracyFinder::DegeneracyFinder
  - s2builderutil::DegeneracyFinder::ComputeDegeneracies
  - s2builderutil::DegeneracyFinder::BuildComponent
  - s2builderutil::DegeneracyFinder::CrossingParity
  - s2builderutil::DegeneracyFinder::FindUnbalancedVertex
  - s2builderutil::DegeneracyFinder::ContainsVertexSign
  - s2builderutil::DegeneracyFinder::ComputeUnknownSignsBruteForce
  - s2builderutil::DegeneracyFinder::ComputeUnknownSignsIndexed
  - s2builderutil::DegeneracyFinder::MergeDegeneracies
  - s2builderutil::CheckGraphOptions
  - s2builderutil::DegeneracyFinder::DegeneracyFinder
  - s2builderutil::DegeneracyFinder::ComputeDegeneracies
  - s2builderutil::DegeneracyFinder::BuildComponent
  - s2builderutil::DegeneracyFinder::CrossingParity
  - s2builderutil::DegeneracyFinder::FindUnbalancedVertex
  - s2builderutil::DegeneracyFinder::ContainsVertexSign
  - s2builderutil::DegeneracyFinder::ComputeUnknownSignsBruteForce
  - s2builderutil::DegeneracyFinder::ComputeUnknownSignsIndexed
  - s2builderutil::DegeneracyFinder::MergeDegeneracies
  - s2builderutil::CheckGraphOptions
  - s2builderutil::FindPolygonDegeneracies
  - s2builderutil::IsFullyDegenerate
  source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: root
        type: VertexId
      - name: root_sign
        type: int
      - name: degeneracies
        type: vector<PolygonDegeneracy>
      item_type: struct
      name: Component
      pos:
        line_end: 80
        line_start: 69
        source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    - fields:
      - name: root
        type: VertexId
      - name: root_sign
        type: int
      - name: degeneracies
        type: vector<PolygonDegeneracy>
      item_type: struct
      name: Component
      pos:
        line_end: 80
        line_start: 69
        source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    - fields:
      - name: root
        type: VertexId
      - name: root_sign
        type: int
      - name: degeneracies
        type: vector<PolygonDegeneracy>
      item_type: struct
      name: Component
      pos:
        line_end: 80
        line_start: 69
        source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    - fields:
      - name: root
        type: VertexId
      - name: root_sign
        type: int
      - name: degeneracies
        type: vector<PolygonDegeneracy>
      item_type: struct
      name: Component
      pos:
        line_end: 80
        line_start: 69
        source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc
    typedefs: []
    union: []
- function_names:
  - S2Cell::S2Cell
  - S2Cell::GetEdgeRaw
  - S2Cell::Subdivide
  - S2Cell::GetCenterRaw
  - S2Cell::AverageArea
  - S2Cell::ApproxArea
  - S2Cell::ExactArea
  - S2Cell::Clone
  - S2Cell::GetCapBound
  - S2Cell::GetLatitude
  - S2Cell::GetLongitude
  - S2Cell::GetRectBound
  - S2Cell::GetCellUnionBound
  - S2Cell::MayIntersect
  - S2Cell::Contains
  - S2Cell::Contains
  - S2Cell::Encode
  - S2Cell::Decode
  - S2Cell::VertexChordDist
  - S2Cell::UEdgeIsClosest
  - S2Cell::VEdgeIsClosest
  - EdgeDistance
  - S2Cell::GetDistanceInternal
  - S2Cell::GetDistance
  - S2Cell::GetBoundaryDistance
  - S2Cell::GetMaxDistance
  - S2Cell::GetDistance
  - S2Cell::GetMaxDistance
  - FindFurthestEdge
  - FindFurthestEdge
  - S2Cell::GetDistance
  - OppositeFace
  - OppositeUV
  - S2Cell::GetMaxDistance
  - S2Cell::IsDistanceLess
  - S2Cell::IsDistanceLessOrEqual
  - S2Cell::IsMaxDistanceLess
  - S2Cell::IsMaxDistanceLessOrEqual
  source_file: /src/s2geometry/src/s2/s2cell.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2cell_range_iterator_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::S2PolylineVectorLayer::S2PolylineVectorLayer
  - s2builderutil::S2PolylineVectorLayer::S2PolylineVectorLayer
  - s2builderutil::S2PolylineVectorLayer::Init
  - s2builderutil::S2PolylineVectorLayer::graph_options
  - s2builderutil::S2PolylineVectorLayer::Build
  - s2builderutil::S2PolylineVectorLayer::S2PolylineVectorLayer
  - s2builderutil::S2PolylineVectorLayer::S2PolylineVectorLayer
  - s2builderutil::S2PolylineVectorLayer::Init
  - s2builderutil::S2PolylineVectorLayer::graph_options
  - s2builderutil::S2PolylineVectorLayer::Build
  source_file: /src/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Cell::S2Cell
  - S2Cell::S2Cell
  - S2Cell::S2Cell
  - S2Cell::FromFace
  - S2Cell::FromFacePosLevel
  - S2Cell::id
  - S2Cell::face
  - S2Cell::level
  - S2Cell::orientation
  - S2Cell::is_leaf
  - operator<=>(const S2Cell& x, const S2Cell& y)
  - operator!=(const S2Cell& x, const S2Cell& y)
  - operator<(const S2Cell& x, const S2Cell& y)
  - operator>(const S2Cell& x, const S2Cell& y)
  - operator<=(const S2Cell& x, const S2Cell& y)
  - operator>=(const S2Cell& x, const S2Cell& y)
  - S2Cell::GetVertex
  - S2Cell::GetVertexRaw
  - S2Cell::GetUVCoordOfEdge
  - S2Cell::GetIJCoordOfEdge
  - S2Cell::GetEdge
  - S2Cell::GetCenter
  - S2Cell::AverageArea
  - S2Cell::GetBoundUV
  - operator==(const S2Cell& x, const S2Cell& y)
  - S2Cell::GetSizeIJ
  - S2Cell::GetSizeST
  source_file: /src/s2geometry/src/s2/s2cell.h
  types:
    enum:
    - enumerators:
      - name: kBottomEdge
        value: '0'
      - name: kRightEdge
        value: '1'
      - name: kTopEdge
        value: '2'
      - name: kLeftEdge
        value: '3'
      item_type: enum
      name: Boundary
      pos:
        line_end: 65
        line_start: 58
        source_file: /src/s2geometry/src/s2/s2cell.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2internal::BTreeMap::bytes_used
  - s2internal::BTreeMap::bytes_used
  - MutableS2ShapeIndex::Options::max_edges_per_cell
  - '& options() const'
  - MutableS2ShapeIndex::memory_tracker
  - MutableS2ShapeIndex::num_shape_ids
  - MutableS2ShapeIndex::shape
  - MutableS2ShapeIndex::Iterator::Iterator
  - MutableS2ShapeIndex::Iterator::id
  - '& cell() const override'
  - MutableS2ShapeIndex::Iterator::done
  - MutableS2ShapeIndex::Iterator::Locate
  - MutableS2ShapeIndex::Iterator::Locate
  - MutableS2ShapeIndex::Iterator::Clone
  - ~UpdateState()
  - MutableS2ShapeIndex::MutableS2ShapeIndex
  - '& operator=(const MutableS2ShapeIndex&)'
  - MutableS2ShapeIndex::BatchGenerator::max_batch_size
  - MutableS2ShapeIndex::BatchGenerator::next_max_batch_size
  - MutableS2ShapeIndex::BatchGenerator::ExtendBatch
  - "MutableS2ShapeIndex::Iterator::Iterator(\n    const MutableS2ShapeIndex* index,
    InitialPosition pos)"
  - "MutableS2ShapeIndex::Iterator::Init(\n    const MutableS2ShapeIndex* index, InitialPosition
    pos)"
  - "MutableS2ShapeIndex::Iterator::InitStale(\n    const MutableS2ShapeIndex* index,
    InitialPosition pos)"
  - MutableS2ShapeIndex::Iterator::Begin()
  - MutableS2ShapeIndex::Iterator::Finish()
  - MutableS2ShapeIndex::Iterator::Next()
  - MutableS2ShapeIndex::Iterator::Prev()
  - MutableS2ShapeIndex::Iterator::Seek(S2CellId target)
  - MutableS2ShapeIndex::NewIterator
  - MutableS2ShapeIndex::ForceBuild
  - MutableS2ShapeIndex::is_fresh
  - MutableS2ShapeIndex::is_shape_being_removed
  - MutableS2ShapeIndex::MaybeApplyUpdates
  source_file: /src/s2geometry/src/s2/mutable_s2shape_index.h
  types:
    enum:
    - enumerators:
      - name: STALE
      - name: UPDATING
      - name: FRESH
      item_type: enum
      name: IndexStatus
      pos:
        line_end: 565
        line_start: 561
        source_file: /src/s2geometry/src/s2/mutable_s2shape_index.h
    preproc_defs: []
    structs:
    - fields:
      - name: wait_mutex
        type: absl::Mutex
      - name: num_waiting
        type: int
      item_type: struct
      name: UpdateState
      pos:
        line_end: 584
        line_start: 571
        source_file: /src/s2geometry/src/s2/mutable_s2shape_index.h
    - fields:
      - name: begin
        type: ShapeEdgeId
      - name: num_edges
        type: int
      item_type: struct
      name: MutableS2ShapeIndex::BatchDescriptor
      pos:
        line_end: 618
        line_start: 614
        source_file: /src/s2geometry/src/s2/mutable_s2shape_index.h
    - fields:
      - name: shape_id
        type: int
      - name: shape
        type: std::unique_ptr<S2Shape>
      item_type: struct
      name: MutableS2ShapeIndex::PendingRemoval
      pos:
        line_end: 624
        line_start: 621
        source_file: /src/s2geometry/src/s2/mutable_s2shape_index.h
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::BuildPolygonBoundaries
  - s2shapeutil::BuildPolygonBoundaries
  source_file: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Shape::Edge
  - S2Shape::Edge
  - S2Shape::Reversed
  - S2Shape::IsDegenerate
  - S2Shape::Incoming
  - S2Shape::Outgoing
  - S2Shape::IncidentOn
  - operator==(const Edge& x, const Edge& y)
  - operator!=(const Edge& x, const Edge& y)
  - operator<(const Edge& x, const Edge& y)
  - S2Shape::AbslHashValue
  - S2Shape::Chain
  - S2Shape::Chain
  - operator==(const Chain& x, const Chain& y)
  - S2Shape::ChainPosition
  - S2Shape::ChainPosition
  - operator==(const ChainPosition& x, const ChainPosition& y)
  - S2Shape::ReferencePoint
  - S2Shape::ReferencePoint
  - S2Shape::Contained
  - operator==(const ReferencePoint& x, const ReferencePoint& y)
  - S2Shape::S2Shape
  - ~S2Shape()
  - S2Shape::is_empty
  - S2Shape::is_full
  - S2Shape::type_tag
  - S2Shape::Encode
  - S2Shape::user_data
  - S2Shape::mutable_user_data
  - S2Shape::ChainVertexIterator::ChainVertexIterator
  - S2Shape::ChainVertexRange::ChainVertexRange
  - S2Shape::ChainIterator::ChainIterator
  - S2Shape::ChainIterator::ChainIterator
  - S2Shape::ChainRange::ChainRange
  - S2Shape::ChainRange::ChainRange
  - S2Shape::S2Shape
  - S2Shape::S2Shape
  - '& operator=(const S2Shape&) noexcept'
  - '& operator=(S2Shape&&) noexcept'
  - "S2Shape::ChainIterator::operator*()\n    const"
  - '& S2Shape::ChainIterator::operator++()'
  - S2Shape::ChainIterator::operator++(int)
  - S2Shape::ChainIterator::operator==(ChainIterator it) const
  - S2Shape::ChainIterator::operator!=(ChainIterator it) const
  - S2Shape::chains
  - S2Shape::ChainRange::begin() const
  - S2Shape::ChainRange::end() const
  - "S2Shape::ChainVertexIterator::ChainVertexIterator(const S2Shape* shape,\n                                                         const
    Chain& chain,\n                                                         int vertex_index)"
  - S2Shape::ChainVertexIterator::operator*() const
  - S2Shape::ChainVertexIterator::operator->() const
  - '&

    S2Shape::ChainVertexIterator::operator++()'
  - "S2Shape::ChainVertexIterator::operator++(\n    int)"
  - "S2Shape::ChainVertexIterator::operator==(\n    S2Shape::ChainVertexIterator it)
    const"
  - "S2Shape::ChainVertexIterator::operator!=(\n    S2Shape::ChainVertexIterator it)
    const"
  - S2Shape::ChainVertexIterator::UpdateCurrentEdge()
  - "S2Shape::ChainVertexRange::ChainVertexRange(const S2Shape* shape,\n                                                   const
    Chain& chain)"
  - S2Shape::ChainVertexRange::begin() const
  - S2Shape::ChainVertexRange::end() const
  - S2Shape::ChainVertexRange::num_vertices() const
  - S2Shape::vertices
  - S2Shape::vertices
  source_file: /src/s2geometry/src/s2/s2shape.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: v0
        type: S2Point
      item_type: struct
      name: Edge
      pos:
        line_end: 104
        line_start: 67
        source_file: /src/s2geometry/src/s2/s2shape.h
    - fields:
      - name: start
        type: int32_t
      item_type: struct
      name: Chain
      pos:
        line_end: 118
        line_start: 109
        source_file: /src/s2geometry/src/s2/s2shape.h
    - fields:
      - name: chain_id
        type: int32_t
      item_type: struct
      name: ChainPosition
      pos:
        line_end: 132
        line_start: 123
        source_file: /src/s2geometry/src/s2/s2shape.h
    - fields:
      - name: point
        type: S2Point
      - name: contained
        type: bool
      item_type: struct
      name: ReferencePoint
      pos:
        line_end: 152
        line_start: 136
        source_file: /src/s2geometry/src/s2/s2shape.h
    typedefs: []
    union: []
- function_names:
  - R2Edge
  - R2Edge
  - operator==(const R2Edge& b) const
  - AbslHashValue
  source_file: /src/s2geometry/src/s2/r2.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: v0
        type: R2Point
      - name: v1
        type: R2Point
      item_type: struct
      name: R2Edge
      pos:
        line_end: 39
        line_start: 26
        source_file: /src/s2geometry/src/s2/r2.h
    typedefs: []
    union: []
- function_names:
  - S2ClosestEdgeQuery::S2ClosestEdgeQuery
  - operator=(const S2ClosestEdgeQuery&)
  - "S2ClosestEdgeQuery::Options::set_max_distance(\n    S1ChordAngle max_distance)"
  - "S2ClosestEdgeQuery::Options::set_max_distance(\n    S1Angle max_distance)"
  - "S2ClosestEdgeQuery::Options::set_inclusive_max_distance(\n    S1ChordAngle max_distance)"
  - "S2ClosestEdgeQuery::Options::set_inclusive_max_distance(\n    S1Angle max_distance)"
  - S2ClosestEdgeQuery::Options::set_max_error(S1Angle max_error)
  - S2ClosestEdgeQuery::PointTarget::PointTarget(const S2Point& point)
  - "S2ClosestEdgeQuery::EdgeTarget::EdgeTarget(const S2Point& a,\n                                                  const
    S2Point& b)"
  - S2ClosestEdgeQuery::CellTarget::CellTarget(const S2Cell& cell)
  - "S2ClosestEdgeQuery::ShapeIndexTarget::ShapeIndexTarget(\n    const S2ShapeIndex*
    index)"
  - S2ClosestEdgeQuery::S2ClosestEdgeQuery
  - S2ClosestEdgeQuery::Init
  - S2ClosestEdgeQuery::ReInit
  - '& S2ClosestEdgeQuery::index() const'
  - '& S2ClosestEdgeQuery::options() const'
  - S2ClosestEdgeQuery::mutable_options
  - S2ClosestEdgeQuery::FindClosestEdges
  - S2ClosestEdgeQuery::FindClosestEdges
  - S2ClosestEdgeQuery::FindClosestEdge
  - S2ClosestEdgeQuery::VisitClosestEdges
  - S2ClosestEdgeQuery::GetDistance
  - S2ClosestEdgeQuery::GetEdge
  - S2ClosestEdgeQuery::Project
  source_file: /src/s2geometry/src/s2/s2closest_edge_query.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2contains_vertex_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Stats::Tally
  - Stats::max
  - Stats::avg
  - Stats::ToString
  - GetMaxDistance
  - TestUnprojected
  - TestProjected
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestEdgeError
  - TEST
  - TEST
  - TestRandomEdges
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - Stats::Tally
  - Stats::max
  - Stats::avg
  - Stats::ToString
  - GetMaxDistance
  - TestUnprojected
  - TestProjected
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestEdgeError
  - TEST
  - TEST
  - TestRandomEdges
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
  types:
    enum:
    - enumerators:
      - name: GEOMETRIC
      - name: PARAMETRIC
      item_type: enum
      name: DistType
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    - enumerators:
      - name: GEOMETRIC
      - name: PARAMETRIC
      item_type: enum
      name: DistType
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/s2geometry/src/s2/s2edge_tessellator_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2winding_operation.h
  types:
    enum:
    - enumerators:
      - name: POSITIVE
      - name: NEGATIVE
      - name: ODD
      - name: NON_ZERO
      item_type: enum
      name: WindingRule
      pos:
        line_end: 197
        line_start: 192
        source_file: /src/s2geometry/src/s2/s2winding_operation.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::FaceXYZtoUVW
  - S2::XYZtoFaceSiTi
  - S2::FaceSiTitoXYZ
  - S2::FaceXYZtoUVW
  - S2::XYZtoFaceSiTi
  - S2::FaceSiTitoXYZ
  source_file: /src/s2geometry/src/s2/s2coords.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Testing::AppendLoopVertices
  - S2Testing::MakeRegularPoints
  - S2Testing::MetersToAngle
  - S2Testing::KmToAngle
  - S2Testing::AreaToMeters2
  - S2Testing::AreaToKm2
  - S2Testing::ConcentricLoopsPolygon
  - S2Testing::CheckCovering
  - S2Testing::MakeTaggedSeedSeq
  source_file: /src/s2geometry/src/s2/s2testing.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::ClipToFace
  - S2::InterpolateDouble
  - S2::ClipToFace
  - S2::InterpolateDouble
  source_file: /src/s2geometry/src/s2/s2edge_clipping.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: face
        type: int
      - name: a
        type: R2Point
      item_type: struct
      name: FaceSegment
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/s2geometry/src/s2/s2edge_clipping.h
    - fields:
      - name: face
        type: int
      - name: a
        type: R2Point
      item_type: struct
      name: FaceSegment
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/s2geometry/src/s2/s2edge_clipping.h
    typedefs: []
    union: []
- function_names:
  - ToString
  - TestLaxPolygon
  - TestLaxPolygon
  - TestLaxPolygonUnchanged
  - kAllDegenerateBoundaries
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - GetKey
  - AddShapeWithLabels
  - TestEdgeLabels
  - TEST
  - TEST
  - TEST
  - ToString
  - TestLaxPolygon
  - TestLaxPolygon
  - TestLaxPolygonUnchanged
  - kAllDegenerateBoundaries
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - GetKey
  - AddShapeWithLabels
  - TestEdgeLabels
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2CellIteratorJoin::S2CellIteratorJoin
  - S2CellIteratorJoin::S2CellIteratorJoin
  - S2CellIteratorJoin::Join
  - MakeS2CellIteratorJoin
  - MakeS2CellIteratorJoin
  - S2CellIteratorJoin<A, B>::ExactJoin
  - S2CellIteratorJoin<A, B>::ScanCellRange
  - S2CellIteratorJoin<A, B>::TolerantJoin
  - S2CellIteratorJoin<A, B>::ProcessNearby
  - S2CellIteratorJoin<A, B>::ProcessCellPairs
  - S2CellIteratorJoin<A, B>::EstimateCoveredCells
  source_file: /src/s2geometry/src/s2/s2cell_iterator_join.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ClosestPointQueryOptions::set_conservative_max_distance
  - S2ClosestPointQueryOptions::set_conservative_max_distance
  - S2ClosestPointQueryPointTarget::max_brute_force_index_size
  - S2ClosestPointQueryEdgeTarget::max_brute_force_index_size
  - S2ClosestPointQueryCellTarget::max_brute_force_index_size
  - S2ClosestPointQueryShapeIndexTarget::max_brute_force_index_size
  source_file: /src/s2geometry/src/s2/s2closest_point_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2random.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ClippedShape::S2ClippedShape
  - S2ShapeIndexCell::S2ShapeIndexCell
  - S2ShapeIndexCell::num_clipped
  - '& clipped(int i) const'
  - S2ShapeIndexCell::clipped_shapes
  - S2ShapeIndexCell::S2ShapeIndexCell
  - operator=(const S2ShapeIndexCell&)
  - S2ShapeIndex::IteratorBase::IteratorBase
  - S2ShapeIndex::IteratorBase::IteratorBase
  - '& operator=(const IteratorBase&)'
  - S2ShapeIndex::IteratorBase::IteratorBase
  - '& operator=(IteratorBase&&) noexcept'
  - ~S2ShapeIndex()
  - S2ShapeIndex::ShapeIterator::ShapeIterator
  - S2ShapeIndex::ShapeIterator::ShapeIterator
  - S2ShapeIndex::Iterator::Iterator
  - S2ShapeIndex::Iterator::Iterator
  - S2ShapeIndex::Iterator::Init
  - S2ShapeIndex::Iterator::Iterator
  - '& operator=(Iterator&&) noexcept'
  - S2ShapeIndex::Iterator::id
  - S2ShapeIndex::Iterator::center
  - '& cell() const override'
  - S2ShapeIndex::Iterator::done
  - S2ShapeIndex::Iterator::Begin
  - S2ShapeIndex::Iterator::Finish
  - S2ShapeIndex::Iterator::Next
  - S2ShapeIndex::Iterator::Prev
  - S2ShapeIndex::Iterator::Seek
  - S2ShapeIndex::Iterator::Locate
  - S2ShapeIndex::Iterator::Locate
  - S2ShapeIndex::Iterator::Clone
  - S2ShapeIndex::Iterator::Iterator
  - S2ShapeIndex::Iterator::Iterator
  - ~ShapeFactory()
  - S2ShapeIndex::S2ShapeIndex
  - S2ShapeIndex::S2ShapeIndex
  - S2ShapeIndex::S2ShapeIndex
  - '& operator=(const S2ShapeIndex&)'
  - '& operator=(S2ShapeIndex&&)'
  - S2ClippedShape::shape_id
  - S2ClippedShape::contains_center
  - S2ClippedShape::num_edges
  - S2ClippedShape::edge
  - S2ClippedShape::Init
  - S2ClippedShape::Destruct
  - S2ClippedShape::is_inline
  - S2ClippedShape::set_contains_center
  - S2ClippedShape::set_edge
  - S2ShapeIndexCell::num_edges
  - '* S2ShapeIndex::ShapeIterator::operator*() const'
  - '& S2ShapeIndex::ShapeIterator::operator++()'
  - "S2ShapeIndex::ShapeIterator::operator++(\n    int)"
  - S2ShapeIndex::ShapeIterator::operator==(ShapeIterator it) const
  - S2ShapeIndex::ShapeIterator::operator!=(ShapeIterator it) const
  - S2ShapeIndex::begin
  - S2ShapeIndex::end
  - S2ShapeIndex::Iterator::Iterator(const Iterator& other)
  - "& S2ShapeIndex::Iterator::operator=(\n    const Iterator& other)"
  source_file: /src/s2geometry/src/s2/s2shape_index.h
  types:
    enum:
    - enumerators:
      - name: BEGIN
      - name: UNPOSITIONED
      - name: END
      item_type: enum
      name: InitialPosition
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/s2geometry/src/s2/s2shape_index.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Polyline::num_vertices
  - '& vertex(int k) const'
  - S2Polyline::vertices_span
  - S2Polyline::Contains
  - S2Polyline::Contains
  - S2Polyline::Shape::Shape
  - S2Polyline::Shape::Shape
  - S2Polyline::Shape::polyline
  - S2Polyline::Shape::num_edges
  - S2Polyline::Shape::edge
  - S2Polyline::Shape::dimension
  - S2Polyline::Shape::GetReferencePoint
  - S2Polyline::Shape::chain_edge
  - S2Polyline::Shape::chain_position
  - S2Polyline::Shape::type_tag
  - S2Polyline::Shape::Encode
  - S2Polyline::OwningShape::OwningShape
  - S2Polyline::OwningShape::OwningShape
  - S2Polyline::OwningShape::Init
  - S2Polyline::OwningShape::Init
  source_file: /src/s2geometry/src/s2/s2polyline.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/s2geometry/src/s2/s2polyline.h
      type: internal::S2LegacyHintCoder<S2Polyline>
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2polyline_alignment::VertexAlignment
  - s2polyline_alignment::MedoidOptions::approx
  - s2polyline_alignment::MedoidOptions::set_approx
  - s2polyline_alignment::ConsensusOptions::approx
  - s2polyline_alignment::ConsensusOptions::set_approx
  - s2polyline_alignment::ConsensusOptions::seed_medoid
  - s2polyline_alignment::ConsensusOptions::set_seed_medoid
  - s2polyline_alignment::ConsensusOptions::iteration_cap
  - s2polyline_alignment::ConsensusOptions::set_iteration_cap
  - s2polyline_alignment::VertexAlignment
  - s2polyline_alignment::MedoidOptions::approx
  - s2polyline_alignment::MedoidOptions::set_approx
  - s2polyline_alignment::ConsensusOptions::approx
  - s2polyline_alignment::ConsensusOptions::set_approx
  - s2polyline_alignment::ConsensusOptions::seed_medoid
  - s2polyline_alignment::ConsensusOptions::set_seed_medoid
  - s2polyline_alignment::ConsensusOptions::iteration_cap
  - s2polyline_alignment::ConsensusOptions::set_iteration_cap
  source_file: /src/s2geometry/src/s2/s2polyline_alignment.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: alignment_cost
        type: double
      - name: warp_path
        type: WarpPath
      item_type: struct
      name: VertexAlignment
      pos:
        line_end: 121
        line_start: 98
        source_file: /src/s2geometry/src/s2/s2polyline_alignment.h
    - fields:
      - name: alignment_cost
        type: double
      - name: warp_path
        type: WarpPath
      item_type: struct
      name: VertexAlignment
      pos:
        line_end: 121
        line_start: 98
        source_file: /src/s2geometry/src/s2/s2polyline_alignment.h
    typedefs:
    - item_type: typedef
      name: WarpPath
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/s2geometry/src/s2/s2polyline_alignment.h
      type: vector<std::pair<int, int>>
    - item_type: typedef
      name: WarpPath
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/s2geometry/src/s2/s2polyline_alignment.h
      type: vector<std::pair<int, int>>
    union: []
- function_names:
  - TestS2Polygon
  - TestS2Polygon
  - TestS2PolygonUnchanged
  - TestS2PolygonError
  - TestS2PolygonError
  - TestS2PolygonError
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - AddPolylineWithLabels
  - TestEdgeLabels
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestS2Polygon
  - TestS2Polygon
  - TestS2PolygonUnchanged
  - TestS2PolygonError
  - TestS2PolygonError
  - TestS2PolygonError
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - AddPolylineWithLabels
  - TestEdgeLabels
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2CrossingEdgeQuery::S2CrossingEdgeQuery
  - S2CrossingEdgeQuery::~S2CrossingEdgeQuery()
  - S2CrossingEdgeQuery::Init
  - S2CrossingEdgeQuery::GetCrossingEdges
  - S2CrossingEdgeQuery::GetCrossingEdges
  - S2CrossingEdgeQuery::GetCrossingEdges
  - S2CrossingEdgeQuery::GetCrossingEdges
  - S2CrossingEdgeQuery::GetCandidates
  - S2CrossingEdgeQuery::GetCandidates
  - S2CrossingEdgeQuery::GetCandidates
  - S2CrossingEdgeQuery::GetCandidates
  - S2CrossingEdgeQuery::VisitRawCandidates
  - S2CrossingEdgeQuery::VisitRawCandidates
  - S2CrossingEdgeQuery::VisitCells
  - S2CrossingEdgeQuery::VisitCells
  - S2CrossingEdgeQuery::VisitCells
  - S2CrossingEdgeQuery::ClipVAxis
  - S2CrossingEdgeQuery::SplitUBound
  - S2CrossingEdgeQuery::SplitVBound
  - S2CrossingEdgeQuery::SplitBound
  - S2CrossingEdgeQuery::GetCells
  source_file: /src/s2geometry/src/s2/s2crossing_edge_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - R2Rect::FromCenterSize
  - R2Rect::Contains
  - R2Rect::InteriorContains
  - R2Rect::Intersects
  - R2Rect::InteriorIntersects
  - R2Rect::AddPoint
  - R2Rect::AddRect
  - R2Rect::Project
  - R2Rect::Expanded
  - R2Rect::Union
  - R2Rect::Intersection
  - R2Rect::ApproxEquals
  - '& operator<<(std::ostream& os, const R2Rect& r)'
  source_file: /src/s2geometry/src/s2/r2rect.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::WedgeContains
  - S2::WedgeIntersects
  - S2::GetWedgeRelation
  - S2::WedgeContains
  - S2::WedgeIntersects
  - S2::GetWedgeRelation
  source_file: /src/s2geometry/src/s2/s2wedge_relations.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2measures.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Fractal::S2Fractal
  - S2Fractal::set_max_level
  - S2Fractal::set_min_level
  - S2Fractal::ComputeMinLevel
  - S2Fractal::set_fractal_dimension
  - S2Fractal::ComputeOffsets
  - S2Fractal::SetLevelForApproxMinEdges
  - S2Fractal::SetLevelForApproxMaxEdges
  - S2Fractal::min_radius_factor
  - S2Fractal::max_radius_factor
  - S2Fractal::GetR2Vertices
  - S2Fractal::GetR2VerticesHelper
  - S2Fractal::MakeLoop
  source_file: /src/s2geometry/src/s2/s2fractal.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S1ChordAngle::ToAngle
  - S1ChordAngle::Successor
  - S1ChordAngle::Predecessor
  - S1ChordAngle::PlusError
  - S1ChordAngle::GetS2PointConstructorMaxError
  - S1ChordAngle::GetS1AngleConstructorMaxError
  - operator+(S1ChordAngle a, S1ChordAngle b)
  - operator-(S1ChordAngle a, S1ChordAngle b)
  - sin2
  - sin
  - cos
  - tan
  - '& operator<<(std::ostream& os, S1ChordAngle a)'
  source_file: /src/s2geometry/src/s2/s1chord_angle.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2polyline_alignment::Window::Window
  - s2polyline_alignment::Window::Window
  - s2polyline_alignment::Window::Upsample
  - s2polyline_alignment::Window::Dilate
  - s2polyline_alignment::Window::DebugString
  - s2polyline_alignment::Window::IsValid
  - s2polyline_alignment::BoundsCheckedTableCost
  - s2polyline_alignment::DynamicTimewarp
  - s2polyline_alignment::HalfResolution
  - s2polyline_alignment::CostFn
  - s2polyline_alignment::AlignmentFn
  - s2polyline_alignment::GetExactVertexAlignmentCost
  - s2polyline_alignment::GetExactVertexAlignment
  - s2polyline_alignment::GetApproxVertexAlignment
  - s2polyline_alignment::GetApproxVertexAlignment
  - s2polyline_alignment::GetMedoidPolyline
  - s2polyline_alignment::GetConsensusPolyline
  - s2polyline_alignment::Window::Window
  - s2polyline_alignment::Window::Window
  - s2polyline_alignment::Window::Upsample
  - s2polyline_alignment::Window::Dilate
  - s2polyline_alignment::Window::DebugString
  - s2polyline_alignment::Window::IsValid
  - s2polyline_alignment::BoundsCheckedTableCost
  - s2polyline_alignment::DynamicTimewarp
  - s2polyline_alignment::HalfResolution
  - s2polyline_alignment::CostFn
  - s2polyline_alignment::AlignmentFn
  - s2polyline_alignment::GetExactVertexAlignmentCost
  - s2polyline_alignment::GetExactVertexAlignment
  - s2polyline_alignment::GetApproxVertexAlignment
  - s2polyline_alignment::GetApproxVertexAlignment
  - s2polyline_alignment::GetMedoidPolyline
  - s2polyline_alignment::GetConsensusPolyline
  source_file: /src/s2geometry/src/s2/s2polyline_alignment.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2pred::Sign
  - s2pred::TriageSign
  - s2pred::UnperturbedSign
  - s2pred::Sign
  - s2pred::TriageSign
  - s2pred::UnperturbedSign
  source_file: /src/s2geometry/src/s2/s2predicates.h
  types:
    enum:
    - enumerators:
      - name: FIRST
      - name: NEITHER
      - name: SECOND
      - name: UNCERTAIN
      item_type: enum
      name: Excluded
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/s2geometry/src/s2/s2predicates.h
    - enumerators:
      - name: FIRST
      - name: NEITHER
      - name: SECOND
      - name: UNCERTAIN
      item_type: enum
      name: Excluded
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/s2geometry/src/s2/s2predicates.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2error_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_coding_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Cap::S2Cap
  - '& center() const'
  - S2Cap::radius
  - S2Cap::AbslHashValue
  - S2Cap::S2Cap
  - S2Cap::S2Cap
  - S2Cap::FromPoint
  - S2Cap::FromCenterHeight
  - S2Cap::FromCenterArea
  - S2Cap::Empty
  - S2Cap::Full
  - S2Cap::height
  - S2Cap::GetRadius
  - S2Cap::is_valid
  - S2Cap::is_empty
  - S2Cap::is_full
  - S2Cap::operator!=(const S2Cap& other) const
  source_file: /src/s2geometry/src/s2/s2cap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/s2geometry/src/s2/s2cap.h
      type: internal::S2LegacyCoder<S2Cap>
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/_fp_contract_off.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2polyline_measures_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ClosestCellQuery::S2ClosestCellQuery
  - operator=(const S2ClosestCellQuery&)
  - "S2ClosestCellQuery::Options::set_max_distance(\n    S1ChordAngle max_distance)"
  - "S2ClosestCellQuery::Options::set_max_distance(\n    S1Angle max_distance)"
  - "S2ClosestCellQuery::Options::set_inclusive_max_distance(\n    S1ChordAngle max_distance)"
  - "S2ClosestCellQuery::Options::set_inclusive_max_distance(\n    S1Angle max_distance)"
  - S2ClosestCellQuery::Options::set_max_error(S1Angle max_error)
  - S2ClosestCellQuery::PointTarget::PointTarget(const S2Point& point)
  - "S2ClosestCellQuery::EdgeTarget::EdgeTarget(const S2Point& a,\n                                                  const
    S2Point& b)"
  - S2ClosestCellQuery::CellTarget::CellTarget(const S2Cell& cell)
  - "S2ClosestCellQuery::CellUnionTarget::CellUnionTarget(\n    S2CellUnion cell_union)"
  - "S2ClosestCellQuery::ShapeIndexTarget::ShapeIndexTarget(\n    const S2ShapeIndex*
    index)"
  - S2ClosestCellQuery::S2ClosestCellQuery
  - S2ClosestCellQuery::Init
  - S2ClosestCellQuery::ReInit
  - '& S2ClosestCellQuery::index() const'
  - '& S2ClosestCellQuery::options() const'
  - S2ClosestCellQuery::mutable_options
  - S2ClosestCellQuery::FindClosestCells
  - S2ClosestCellQuery::FindClosestCells
  - S2ClosestCellQuery::FindClosestCell
  - S2ClosestCellQuery::GetDistance
  source_file: /src/s2geometry/src/s2/s2closest_cell_query.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ClosestPointQueryBase::Result::Result
  - S2ClosestPointQueryBase::Result::Result
  - S2ClosestPointQueryBase::Result::is_empty
  - S2ClosestPointQueryBase::Result::distance
  - '& point() const'
  - '& data() const'
  - operator==(const Result& x, const Result& y)
  - operator<(const Result& x, const Result& y)
  - S2ClosestPointQueryBase::S2ClosestPointQueryBase
  - operator=(const S2ClosestPointQueryBase&)
  - '& options() const'
  - S2ClosestPointQueryBase::QueueEntry
  - operator<(const QueueEntry& other) const
  - "S2ClosestPointQueryBaseOptions<\n    Distance>::S2ClosestPointQueryBaseOptions"
  - S2ClosestPointQueryBaseOptions<Distance>::max_results
  - S2ClosestPointQueryBaseOptions<Distance>::set_max_results
  - S2ClosestPointQueryBaseOptions<Distance>::max_distance
  - S2ClosestPointQueryBaseOptions<Distance>::set_max_distance
  - S2ClosestPointQueryBaseOptions<Distance>::max_error
  - S2ClosestPointQueryBaseOptions<Distance>::set_max_error
  - S2ClosestPointQueryBaseOptions<Distance>::region
  - S2ClosestPointQueryBaseOptions<Distance>::set_region
  - S2ClosestPointQueryBaseOptions<Distance>::use_brute_force
  - S2ClosestPointQueryBaseOptions<Distance>::set_use_brute_force
  - S2ClosestPointQueryBase<Distance, Data>::S2ClosestPointQueryBase
  - S2ClosestPointQueryBase<Distance, Data>::~S2ClosestPointQueryBase()
  - S2ClosestPointQueryBase<Distance, Data>::S2ClosestPointQueryBase
  - S2ClosestPointQueryBase<Distance, Data>::Init
  - S2ClosestPointQueryBase<Distance, Data>::ReInit
  - '&

    S2ClosestPointQueryBase<Distance, Data>::index() const'
  - S2ClosestPointQueryBase<Distance, Data>::FindClosestPoints
  - S2ClosestPointQueryBase<Distance, Data>::FindClosestPoint
  - S2ClosestPointQueryBase<Distance, Data>::FindClosestPoints
  - S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsInternal
  - S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsBruteForce
  - S2ClosestPointQueryBase<Distance, Data>::FindClosestPointsOptimized
  - S2ClosestPointQueryBase<Distance, Data>::InitQueue
  - S2ClosestPointQueryBase<Distance, Data>::InitCovering
  - S2ClosestPointQueryBase<Distance, Data>::AddInitialRange
  - S2ClosestPointQueryBase<Distance, Data>::MaybeAddResult
  - S2ClosestPointQueryBase<Distance, Data>::ProcessOrEnqueue
  source_file: /src/s2geometry/src/s2/s2closest_point_query_base.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: distance
        type: Distance
      - name: id
        type: S2CellId
      item_type: struct
      name: QueueEntry
      pos:
        line_end: 323
        line_start: 307
        source_file: /src/s2geometry/src/s2/s2closest_point_query_base.h
    typedefs: []
    union: []
- function_names:
  - Haversine
  - Haversine
  - S2Earth::MetersToLongitudeRadians
  - S2Earth::GetInitialBearing
  source_file: /src/s2geometry/src/s2/s2earth.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DoBuffer
  - DoBuffer
  - TestBufferEmpty
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestBufferFull
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestContainment
  - TestMinimumDistance
  - TestHausdorffDistance
  - TestBuffer
  - TestBuffer
  - TestSignedBuffer
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestRadiiAndErrorFractions
  - TEST
  - TEST
  - TEST
  - TEST
  - TestBufferPolyline::GetEdgeAxis
  - TestBufferPolyline::PointBufferingUncertain
  - TestBufferPolyline::TestPoint
  - TestBufferPolyline::TestVertexArc
  - TestBufferPolyline::TestEdgeArc
  - TestBufferPolyline::TestEdgeAndVertex
  - TestBufferPolyline::TestBufferPolyline
  - TEST
  - BM_BufferPoints
  - BenchmarkBufferLoop
  - BM_BufferConvexLoop
  - BM_BufferConcaveLoop
  - BenchmarkBufferFractal
  - BM_BufferLoDimFractal
  - BM_BufferHiDimFractal
  - DoBuffer
  - DoBuffer
  - TestBufferEmpty
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestBufferFull
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestContainment
  - TestMinimumDistance
  - TestHausdorffDistance
  - TestBuffer
  - TestBuffer
  - TestSignedBuffer
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestRadiiAndErrorFractions
  - TEST
  - TEST
  - TEST
  - TEST
  - TestBufferPolyline::GetEdgeAxis
  - TestBufferPolyline::PointBufferingUncertain
  - TestBufferPolyline::TestPoint
  - TestBufferPolyline::TestVertexArc
  - TestBufferPolyline::TestEdgeArc
  - TestBufferPolyline::TestEdgeAndVertex
  - TestBufferPolyline::TestBufferPolyline
  - TEST
  - BM_BufferPoints
  - BenchmarkBufferLoop
  - BM_BufferConvexLoop
  - BM_BufferConcaveLoop
  - BenchmarkBufferFractal
  - BM_BufferLoDimFractal
  - BM_BufferHiDimFractal
  source_file: /src/s2geometry/src/s2/s2buffer_operation_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IdSetLexicon::IdSet::begin() const
  - IdSetLexicon::IdSet::end() const
  - IdSetLexicon::IdSet::size() const
  - IdSetLexicon::IdSet::IdSet()
  - IdSetLexicon::IdSet::IdSet(Iterator begin, Iterator end)
  - IdSetLexicon::IdSet::IdSet(int32_t singleton_id)
  - IdSetLexicon::AddSingleton
  - IdSetLexicon::EmptySetId
  - IdSetLexicon::Add
  - IdSetLexicon::Add
  source_file: /src/s2geometry/src/s2/id_set_lexicon.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  - s2builderutil::TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_testing_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DecodeHomegeneousShapeIndex
  - TestEncodedS2ShapeIndex
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - IndexedLaxPolylineLayer::IndexedLaxPolylineLayer
  - IndexedLaxPolylineLayer::graph_options
  - IndexedLaxPolylineLayer::Build
  - TEST
  - LazyDecodeTest::LazyDecodeTest
  - LazyDecodeTest::WriteOp
  - LazyDecodeTest::ReadOp
  - TEST
  - TEST
  - GetBenchmarkPolygon
  - GetBenchmarkPolygon
  - GetMutableBenchmarkPolygon
  - GetLaxBenchmarkPolygon
  - BenchmarkArgsSnapped
  - BenchmarkArgs
  - BM_MutableIndexBuildDestruct
  - BM_MutableIndexDecodeDestruct
  - BM_EncodedIndexInitDestruct
  - BM_S2PolygonDecodeDestructSnapped
  - BM_LaxPolygonDecodeDestructSnapped
  - BM_EncodedPolygonInitDestructSnapped
  - BM_S2PolygonGetEdge
  - BM_LaxPolygonGetEdge
  - BM_EncodedPolygonGetEdge
  - BM_ContainsPointMutableIndexS2Polygon
  - BM_ContainsPointEncodedIndexPolygon
  - BM_VertexDistanceMutableIndexS2Polygon
  - BM_VertexDistanceEncodedIndexPolygon
  - BM_DecodePolygonBuildIndexContainsPointSnapped
  - BM_DecodeIndexAndPolygonContainsPointSnapped
  - BM_EncodedIndexAndPolygonContainsPointSnapped
  source_file: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: num_edges
        type: int
      - name: expected_bytes
        type: size_t
      item_type: struct
      name: TestCase
      pos:
        line_end: 125
        line_start: 122
        source_file: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    - fields:
      - name: num_shapes
        type: int
      - name: expected_bytes
        type: size_t
      item_type: struct
      name: TestCase
      pos:
        line_end: 157
        line_start: 154
        source_file: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    - fields:
      - name: num_shapes
        type: int
      - name: expected_bytes
        type: size_t
      item_type: struct
      name: TestCase
      pos:
        line_end: 185
        line_start: 182
        source_file: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    - fields:
      - name: num_shapes
        type: int
      - name: expected_bytes
        type: size_t
      item_type: struct
      name: TestCase
      pos:
        line_end: 217
        line_start: 214
        source_file: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    - fields:
      - name: once
        type: absl::once_flag
      - name: '* polygon'
        type: S2Polygon
      - name: '* snapped'
        type: S2Polygon
      item_type: struct
      name: CachedPolygon
      pos:
        line_end: 399
        line_start: 395
        source_file: /src/s2geometry/src/s2/encoded_s2shape_index_test.cc
    typedefs: []
    union: []
- function_names:
  - S2LaxLoopShape::S2LaxLoopShape
  - S2LaxLoopShape::num_vertices
  - '& vertex(int i) const'
  - S2LaxLoopShape::num_edges
  - S2LaxLoopShape::dimension
  - S2LaxLoopShape::num_chains
  - S2LaxLoopShape::chain
  - S2LaxLoopShape::chain_position
  - S2LaxClosedPolylineShape::dimension
  - S2LaxClosedPolylineShape::GetReferencePoint
  - S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape
  - S2VertexIdLaxLoopShape::num_vertices
  - S2VertexIdLaxLoopShape::vertex_id
  - '& vertex(int i) const'
  - S2VertexIdLaxLoopShape::num_edges
  - S2VertexIdLaxLoopShape::dimension
  - S2VertexIdLaxLoopShape::num_chains
  - S2VertexIdLaxLoopShape::chain
  - S2VertexIdLaxLoopShape::chain_position
  source_file: /src/s2geometry/src/s2/s2lax_loop_shape.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionIntersection::S2RegionIntersection
  - ~S2RegionIntersection() override
  - S2RegionIntersection::num_regions
  - S2RegionIntersection::region
  source_file: /src/s2geometry/src/s2/s2region_intersection.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2region_union_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestS2LaxPolylineShape
  - TestS2LaxPolylineShape
  - TestS2LaxPolylineShapeUnchanged
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestS2LaxPolylineShape
  - TestS2LaxPolylineShape
  - TestS2LaxPolylineShapeUnchanged
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionTermIndexer::Options::Options()
  - S2RegionTermIndexer::Options::set_marker_character(char ch)
  - S2RegionTermIndexer::S2RegionTermIndexer
  - S2RegionTermIndexer::S2RegionTermIndexer
  - S2RegionTermIndexer::~S2RegionTermIndexer()
  - S2RegionTermIndexer::S2RegionTermIndexer
  - S2RegionTermIndexer::GetTerm
  - S2RegionTermIndexer::GetIndexTerms
  - S2RegionTermIndexer::GetIndexTerms
  - S2RegionTermIndexer::GetIndexTermsForCanonicalCovering
  - S2RegionTermIndexer::GetQueryTerms
  - S2RegionTermIndexer::GetQueryTerms
  - S2RegionTermIndexer::GetQueryTermsForCanonicalCovering
  source_file: /src/s2geometry/src/s2/s2region_term_indexer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FaceRun
  - FaceRun
  - Encode
  - Decode
  - Faces::Faces
  - Faces::GetIterator
  - Faces::Faces
  - operator=(const Faces&)
  - Faces::AddFace
  - Faces::Encode
  - Faces::Decode
  - Faces::Iterator::Iterator(const Faces& faces)
  - Faces::Iterator::Next()
  - STtoPiQi
  - SiTitoPiQi
  - PiQitoST
  - FacePiQitoXYZ
  - EncodeFirstPointFixedLength
  - EncodePointCompressed
  - EncodePointsCompressed
  - DecodeFirstPointFixedLength
  - DecodePointCompressed
  - FaceRun
  - FaceRun
  - Encode
  - Decode
  - Faces::Faces
  - Faces::GetIterator
  - Faces::Faces
  - operator=(const Faces&)
  - Faces::AddFace
  - Faces::Encode
  - Faces::Decode
  - Faces::Iterator::Iterator(const Faces& faces)
  - Faces::Iterator::Next()
  - STtoPiQi
  - SiTitoPiQi
  - PiQitoST
  - FacePiQitoXYZ
  - EncodeFirstPointFixedLength
  - EncodePointCompressed
  - EncodePointsCompressed
  - DecodeFirstPointFixedLength
  - DecodePointCompressed
  - S2EncodePointsCompressed
  - S2DecodePointsCompressed
  source_file: /src/s2geometry/src/s2/s2point_compression.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: face
        type: int
      - name: count
        type: int
      item_type: struct
      name: FaceRun
      pos:
        line_end: 80
        line_start: 47
        source_file: /src/s2geometry/src/s2/s2point_compression.cc
    - fields:
      - name: face
        type: int
      - name: count
        type: int
      item_type: struct
      name: FaceRun
      pos:
        line_end: 80
        line_start: 47
        source_file: /src/s2geometry/src/s2/s2point_compression.cc
    typedefs: []
    union: []
- function_names:
  - ExpectSequence
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_AddInt32Sequence
  - BM_FindInt32Sequence
  source_file: /src/s2geometry/src/s2/sequence_lexicon_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2EdgeCrosserBase<PointRep>::CrossingSignInternal
  - S2EdgeCrosserBase<PointRep>::CrossingSignInternal2
  source_file: /src/s2geometry/src/s2/s2edge_crosser.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::Angle
  - S2::TurnAngle
  - S2::StableAngle
  - S2::Area
  - S2::GirardArea
  - S2::SignedArea
  - S2::Angle
  - S2::TurnAngle
  - S2::StableAngle
  - S2::Area
  - S2::GirardArea
  - S2::SignedArea
  source_file: /src/s2geometry/src/s2/s2measures.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shapeutil_testing.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - GetContainingShapes
  - TEST
  - TEST
  - TEST
  - Reflect
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2max_distance_targets_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2buffer_operation.h
  types:
    enum:
    - enumerators:
      - name: ROUND
      - name: FLAT
      item_type: enum
      name: EndCapStyle
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/s2geometry/src/s2/s2buffer_operation.h
    - enumerators:
      - name: LEFT
      - name: RIGHT
      - name: BOTH
      item_type: enum
      name: PolylineSide
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/s2geometry/src/s2/s2buffer_operation.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SumToRoot
  - TreeCells
  - ExpectDecodedTreesEqual
  - TEST
  - TEST
  - TreeEncoderTest::Put
  - TreeEncoderTest::BuildTree
  - TreeEncoderTest::BuildAndDecode
  - TreeEncoderTest::Encoder
  - TreeEncoderTest::Clear
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - SumDensityTreesTest::SumDensityTreesTest
  - SumDensityTreesTest::Insert
  - SumDensityTreesTest::BuildTree
  - SumDensityTreesTest::CheckSum
  - TEST_P
  - TEST_P
  - TEST_P
  - TEST_P
  - TEST_P
  - TEST_P
  - TEST_P
  - TEST_P
  - CoveringsTest::CoveringsTest
  - CoveringsTest::CheckCoverings
  - CoveringsTest::Weight
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_DecodeCellsByVisitor
  - BM_InitToFeatureDensity
  source_file: /src/s2geometry/src/s2/s2density_tree_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_edge_wrap_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Fractal::max_level
  - S2Fractal::min_level
  - S2Fractal::fractal_dimension
  - S2Fractal::S2Fractal
  - operator=(const S2Fractal&)
  source_file: /src/s2geometry/src/s2/s2fractal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2LatLng::lat
  - S2LatLng::lng
  - '& coords() const'
  - operator==(const S2LatLng& o) const
  - operator!=(const S2LatLng& o) const
  - operator<(const S2LatLng& o) const
  - operator>(const S2LatLng& o) const
  - operator<=(const S2LatLng& o) const
  - operator>=(const S2LatLng& o) const
  - S2LatLng::ApproxEquals
  - S2LatLng::S2LatLng
  - S2LatLng::S2LatLng
  - AbslHashValue
  - S2LatLng::S2LatLng
  - S2LatLng::S2LatLng
  - S2LatLng::FromRadians
  - S2LatLng::FromDegrees
  - S2LatLng::FromE5
  - S2LatLng::FromE6
  - S2LatLng::FromE7
  - S2LatLng::FromUnsignedE6
  - S2LatLng::FromUnsignedE7
  - S2LatLng::Invalid
  - S2LatLng::Latitude
  - S2LatLng::Longitude
  - S2LatLng::is_valid
  - S2Point
  - operator+(const S2LatLng& a, const S2LatLng& b)
  - operator-(const S2LatLng& a, const S2LatLng& b)
  - operator*(double m, const S2LatLng& a)
  - operator*(const S2LatLng& a, double m)
  source_file: /src/s2geometry/src/s2/s2latlng.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/s2geometry/src/s2/s2latlng.h
      type: S2BasicCoder<S2LatLng>
    union: []
- function_names:
  - CheckSimplify
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2polyline_simplifier_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::EncodedStringVector::EncodedStringVector
  - s2coding::StringVectorEncoder::Add
  - s2coding::StringVectorEncoder::AddViaEncoder
  - s2coding::EncodedStringVector::Clear
  - s2coding::EncodedStringVector::size
  - EncodedStringVector::operator[](size_t i) const
  - s2coding::EncodedStringVector::GetDecoder
  - s2coding::EncodedStringVector::EncodedStringVector
  - s2coding::StringVectorEncoder::Add
  - s2coding::StringVectorEncoder::AddViaEncoder
  - s2coding::EncodedStringVector::Clear
  - s2coding::EncodedStringVector::size
  - EncodedStringVector::operator[](size_t i) const
  - s2coding::EncodedStringVector::GetDecoder
  source_file: /src/s2geometry/src/s2/encoded_string_vector.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PerturbAtDistance
  - GetPerturbedSubEdges
  - GetCapEdges
  - GetShapeEdgeIds
  - TestAllCrossings
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestPolylineCrossings
  - TEST
  - TEST
  - TEST
  - TEST
  - PerturbAtDistance
  - GetPerturbedSubEdges
  - GetCapEdges
  - GetShapeEdgeIds
  - TestAllCrossings
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestPolylineCrossings
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2crossing_edge_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ConvexHullQuery::S2ConvexHullQuery
  - operator=(const S2ConvexHullQuery&)
  source_file: /src/s2geometry/src/s2/s2convex_hull_query.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shapeutil_count_vertices.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2point_vector_shape_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2testing::ExpectEqual
  - s2testing::ExpectEqual
  - s2testing::ExpectEqual
  - s2testing::ExpectEqual
  source_file: /src/s2geometry/src/s2/s2shapeutil_testing.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ABSL_FLAG
  - MutableS2ShapeIndex::Options::Options()
  - "MutableS2ShapeIndex::Options::set_max_edges_per_cell(\n    int max_edges_per_cell)"
  - '& focus()'
  - MutableS2ShapeIndex::InteriorTracker::is_active
  - MutableS2ShapeIndex::InteriorTracker::MoveTo
  - '& shape_ids() const'
  - MutableS2ShapeIndex::InteriorTracker::set_next_cellid
  - MutableS2ShapeIndex::InteriorTracker::at_cellid
  - MutableS2ShapeIndex::InteriorTracker::partial_shape_id
  - MutableS2ShapeIndex::InteriorTracker::set_partial_shape_id
  - MutableS2ShapeIndex::InteriorTracker::InteriorTracker()
  - MutableS2ShapeIndex::InteriorTracker::Origin()
  - "MutableS2ShapeIndex::InteriorTracker::AddShape(int32_t shape_id,\n                                                    bool
    contains_focus)"
  - MutableS2ShapeIndex::InteriorTracker::ToggleShape(int shape_id)
  - MutableS2ShapeIndex::InteriorTracker::DrawTo(const S2Point& b)
  - "MutableS2ShapeIndex::InteriorTracker::TestEdge(int32_t shape_id,\n                                                   const
    S2Shape::Edge& edge)"
  - MutableS2ShapeIndex::InteriorTracker::lower_bound(int32_t shape_id)
  - "MutableS2ShapeIndex::InteriorTracker::SaveAndClearStateBefore(\n    int32_t limit_shape_id)"
  - "MutableS2ShapeIndex::InteriorTracker::RestoreStateBefore(\n    int32_t limit_shape_id)"
  - MutableS2ShapeIndex::MutableS2ShapeIndex
  - MutableS2ShapeIndex::MutableS2ShapeIndex
  - MutableS2ShapeIndex::MutableS2ShapeIndex
  - "& MutableS2ShapeIndex::operator=(\n    MutableS2ShapeIndex&& b) noexcept"
  - MutableS2ShapeIndex::Init
  - MutableS2ShapeIndex::~MutableS2ShapeIndex()
  - MutableS2ShapeIndex::set_memory_tracker
  - MutableS2ShapeIndex::MarkIndexStale
  - MutableS2ShapeIndex::Minimize
  - MutableS2ShapeIndex::Add
  - MutableS2ShapeIndex::MaybeCreatePendingRemovals
  - MutableS2ShapeIndex::Release
  - MutableS2ShapeIndex::Remove
  - MutableS2ShapeIndex::ReleaseAll
  - MutableS2ShapeIndex::Clear
  - MutableS2ShapeIndex::ApplyUpdatesThreadSafe
  - MutableS2ShapeIndex::UnlockAndSignal
  - MutableS2ShapeIndex::ApplyUpdatesInternal
  - MutableS2ShapeIndex::GetUpdateBatches
  - "MutableS2ShapeIndex::BatchGenerator::BatchGenerator(int64_t num_edges_removed,\n
    \                                                   int64_t num_edges_added,\n
    \                                                   int shape_id_begin)"
  - "MutableS2ShapeIndex::BatchGenerator::AddShape(int shape_id,\n                                                   int
    num_edges)"
  - MutableS2ShapeIndex::BatchGenerator::Finish()
  - "MutableS2ShapeIndex::BatchGenerator::FinishBatch(int num_edges,\n                                                      ShapeEdgeId
    batch_end)"
  - "MutableS2ShapeIndex::BatchGenerator::GetMaxBatchSizes(\n    int64_t num_edges_removed,
    int64_t num_edges_added)"
  - MutableS2ShapeIndex::ReserveSpace
  - MutableS2ShapeIndex::AddShape
  - MutableS2ShapeIndex::RemoveShape
  - MutableS2ShapeIndex::FinishPartialShape
  - MutableS2ShapeIndex::AddFaceEdge
  - MutableS2ShapeIndex::GetEdgeMaxLevel
  - MutableS2ShapeIndex::EdgeAllocator::EdgeAllocator
  - MutableS2ShapeIndex::EdgeAllocator::NewClippedEdge
  - MutableS2ShapeIndex::EdgeAllocator::size
  - MutableS2ShapeIndex::EdgeAllocator::Reset
  - MutableS2ShapeIndex::EdgeAllocator::mutable_face_edges
  - MutableS2ShapeIndex::EdgeAllocator::EdgeAllocator
  - operator=(const EdgeAllocator&)
  - MutableS2ShapeIndex::UpdateFaceEdges
  - MutableS2ShapeIndex::ShrinkToFit
  - MutableS2ShapeIndex::SkipCellRange
  - MutableS2ShapeIndex::ClipVAxis
  - MutableS2ShapeIndex::UpdateEdges
  - MutableS2ShapeIndex::ClipUBound
  - MutableS2ShapeIndex::ClipVBound
  - MutableS2ShapeIndex::UpdateBound
  - MutableS2ShapeIndex::AbsorbIndexCell
  - MutableS2ShapeIndex::MakeIndexCell
  - MutableS2ShapeIndex::TestAllEdges
  - MutableS2ShapeIndex::CountShapes
  - MutableS2ShapeIndex::SpaceUsed
  - MutableS2ShapeIndex::Encode
  - MutableS2ShapeIndex::Init
  source_file: /src/s2geometry/src/s2/mutable_s2shape_index.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: shape_id
        type: int32_t
      - name: edge_id
        type: int32_t
      - name: max_level
        type: int32_t
      - name: has_interior
        type: bool
      - name: a
        type: R2Point
      - name: edge
        type: S2Shape::Edge
      item_type: struct
      name: MutableS2ShapeIndex::FaceEdge
      pos:
        line_end: 219
        line_start: 212
        source_file: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    - fields:
      - name: '* face_edge'
        type: FaceEdge
      - name: bound
        type: R2Rect
      item_type: struct
      name: MutableS2ShapeIndex::ClippedEdge
      pos:
        line_end: 224
        line_start: 221
        source_file: /src/s2geometry/src/s2/mutable_s2shape_index.cc
    typedefs: []
    union: []
- function_names:
  - MakeId
  - TEST
  - MakeId
  - TEST
  source_file: /src/s2geometry/src/s2/s2cell_iterator_testing_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Builder::Options::Options()
  - S2Builder::Options::Options(const SnapFunction& snap_function)
  - S2Builder::Options::Options(const Options& options)
  - '& S2Builder::Options::operator=(const Options& options)'
  - S2Builder::Options::edge_snap_radius() const
  - S2Builder::Options::max_edge_deviation() const
  - "operator==(const S2Builder::GraphOptions& x,\n                const S2Builder::GraphOptions&
    y)"
  - RoundUp
  - AddPointToPointError
  - AddPointToEdgeError
  - S2Builder::S2Builder
  - S2Builder::S2Builder
  - S2Builder::Init
  - S2Builder::clear_labels
  - S2Builder::push_label
  - S2Builder::pop_label
  - S2Builder::set_label
  - S2Builder::IsFullPolygonUnspecified
  - S2Builder::IsFullPolygon
  - S2Builder::StartLayer
  - S2Builder::AddVertex
  - S2Builder::AddIntersection
  - S2Builder::AddEdge
  - S2Builder::AddPolyline
  - S2Builder::AddPolyline
  - S2Builder::AddLoop
  - S2Builder::AddLoop
  - S2Builder::AddPolygon
  - S2Builder::AddShape
  - S2Builder::AddIsFullPolygonPredicate
  - S2Builder::ForceVertex
  - VertexIdEdgeVectorShape::VertexIdEdgeVectorShape
  - '& vertex0(int e) const'
  - '& vertex1(int e) const'
  - VertexIdEdgeVectorShape::num_edges
  - VertexIdEdgeVectorShape::edge
  - VertexIdEdgeVectorShape::dimension
  - VertexIdEdgeVectorShape::GetReferencePoint
  - VertexIdEdgeVectorShape::num_chains
  - VertexIdEdgeVectorShape::chain
  - VertexIdEdgeVectorShape::chain_edge
  - VertexIdEdgeVectorShape::chain_position
  - '& vertex(int i) const'
  - VertexIdEdgeVectorShape::VertexIdEdgeVectorShape
  - '& vertex0(int e) const'
  - '& vertex1(int e) const'
  - VertexIdEdgeVectorShape::num_edges
  - VertexIdEdgeVectorShape::edge
  - VertexIdEdgeVectorShape::dimension
  - VertexIdEdgeVectorShape::GetReferencePoint
  - VertexIdEdgeVectorShape::num_chains
  - VertexIdEdgeVectorShape::chain
  - VertexIdEdgeVectorShape::chain_edge
  - VertexIdEdgeVectorShape::chain_position
  - '& vertex(int i) const'
  - S2Builder::Reset
  - S2Builder::ChooseSites
  - S2Builder::ChooseAllVerticesAsSites
  - S2Builder::SortInputVertices
  - S2Builder::AddEdgeCrossings
  - S2Builder::AddForcedSites
  - S2Builder::ChooseInitialSites
  - S2Builder::SnapSite
  - S2Builder::CollectSiteEdges
  - S2Builder::SortSitesByDistance
  - S2Builder::InsertSiteByDistance
  - S2Builder::AddExtraSites
  - S2Builder::MaybeAddExtraSites
  - S2Builder::AddExtraSite
  - S2Builder::GetSeparationSite
  - S2Builder::GetCoverageEndpoint
  - S2Builder::SnapEdge
  - S2Builder::BuildLayers
  - S2Builder::BuildLayerEdges
  - S2Builder::AddSnappedEdges
  - S2Builder::MaybeAddInputVertex
  - S2Builder::AddSnappedEdge
  - S2Builder::SimplifyEdgeChains
  - S2Builder::MergeLayerEdges
  - S2Builder::StableLessThan
  - "S2Builder::EdgeChainSimplifier::EdgeChainSimplifier(\n    const S2Builder& builder,
    const Graph& g, const vector<int>& edge_layers,\n    const vector<compact_array<InputVertexId>>&
    site_vertices,\n    vector<vector<Edge>>* layer_edges,\n    vector<vector<InputEdgeIdSetId>>*
    layer_input_edge_ids,\n    IdSetLexicon* input_edge_id_set_lexicon)"
  - S2Builder::EdgeChainSimplifier::Run()
  - S2Builder::EdgeChainSimplifier::OutputEdge(EdgeId e)
  - S2Builder::EdgeChainSimplifier::graph_edge_layer(EdgeId e) const
  - S2Builder::EdgeChainSimplifier::input_edge_layer(InputEdgeId id) const
  - S2Builder::EdgeChainSimplifier::InteriorVertexMatcher::InteriorVertexMatcher
  - S2Builder::EdgeChainSimplifier::InteriorVertexMatcher::StartLayer
  - S2Builder::EdgeChainSimplifier::InteriorVertexMatcher::Tally
  - S2Builder::EdgeChainSimplifier::InteriorVertexMatcher::Matches
  - S2Builder::EdgeChainSimplifier::IsInterior(VertexId v)
  - S2Builder::EdgeChainSimplifier::SimplifyChain(VertexId v0, VertexId v1)
  - "S2Builder::EdgeChainSimplifier::FollowChain(\n    VertexId v0, VertexId v1) const"
  - S2Builder::EdgeChainSimplifier::OutputAllEdges(VertexId v0, VertexId v1)
  - "S2Builder::EdgeChainSimplifier::TargetInputVertices(\n    VertexId v, S2PolylineSimplifier*
    simplifier) const"
  - "S2Builder::EdgeChainSimplifier::AvoidSites(\n    VertexId v0, VertexId v1, VertexId
    v2,\n    flat_hash_set<VertexId>* used_vertices,\n    S2PolylineSimplifier* simplifier)
    const"
  - "S2Builder::EdgeChainSimplifier::MergeChain(\n    absl::Span<const VertexId> vertices)"
  - "S2Builder::EdgeChainSimplifier::AssignDegenerateEdges(\n    absl::Span<const
    InputEdgeId> degenerate_ids,\n    vector<vector<InputEdgeId>>* merged_ids) const"
  - "S2Builder::MemoryTracker::TallyEdgeSites(\n    const compact_array<SiteId>& sites)"
  - S2Builder::MemoryTracker::ReserveEdgeSite(compact_array<SiteId>* sites)
  - "S2Builder::MemoryTracker::ClearEdgeSites(\n    vector<compact_array<SiteId>>*
    edge_sites)"
  - S2Builder::MemoryTracker::TallyIndexedSite()
  - "S2Builder::MemoryTracker::FixSiteIndexTally(\n    const S2PointIndex<SiteId>&
    index)"
  - "S2Builder::MemoryTracker::DoneSiteIndex(\n    const S2PointIndex<SiteId>& index)"
  - "S2Builder::MemoryTracker::TallySimplifyEdgeChains(\n    absl::Span<const compact_array<InputVertexId>>
    site_vertices,\n    absl::Span<const vector<Edge>> layer_edges)"
  - "S2Builder::MemoryTracker::TallyFilterVertices(\n    int num_sites, absl::Span<const
    vector<Edge>> layer_edges)"
  - S2Builder::MemoryTracker::DoneFilterVertices()
  source_file: /src/s2geometry/src/s2/s2builder.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2WrappedShape::S2WrappedShape
  - S2WrappedShape::num_edges
  - S2WrappedShape::edge
  - S2WrappedShape::dimension
  - S2WrappedShape::GetReferencePoint
  - S2WrappedShape::num_chains
  - S2WrappedShape::chain
  - S2WrappedShape::chain_edge
  - S2WrappedShape::chain_position
  source_file: /src/s2geometry/src/s2/s2wrapped_shape.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2debug.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::Origin
  - S2::RefDir
  - S2::Origin
  - S2::RefDir
  source_file: /src/s2geometry/src/s2/s2pointutil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shapeutil_conversion.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  source_file: /src/s2geometry/src/s2/s2memory_tracker_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2MemoryTracker::S2MemoryTracker
  - S2MemoryTracker::usage_bytes
  - S2MemoryTracker::max_usage_bytes
  - S2MemoryTracker::limit_bytes
  - S2MemoryTracker::set_limit_bytes
  - '& error() const'
  - S2MemoryTracker::ok
  - S2MemoryTracker::set_periodic_callback
  - S2MemoryTracker::callback_alloc_delta_bytes
  - '& periodic_callback() const'
  - S2MemoryTracker::Reset
  - S2MemoryTracker::Client::Client
  - S2MemoryTracker::Client::Client
  - S2MemoryTracker::Client::Init
  - S2MemoryTracker::Client::tracker
  - S2MemoryTracker::Client::is_active
  - ~Client()
  - S2MemoryTracker::Client::usage_bytes
  - S2MemoryTracker::Client::client_usage_bytes
  - S2MemoryTracker::Client::ok
  - S2MemoryTracker::Client::Tally
  - S2MemoryTracker::Client::Tally
  - S2MemoryTracker::Client::Untally
  - S2MemoryTracker::Client::AddSpace
  - S2MemoryTracker::Client::AddSpaceExact
  - S2MemoryTracker::Client::Clear
  - S2MemoryTracker::SetError
  - S2MemoryTracker::Tally
  - S2MemoryTracker::Client::AddSpaceInternal(T* v, int64_t n)
  - "S2MemoryTracker::Client::GetCompactArrayAllocBytes(\n    const gtl::compact_array<T>&
    array)"
  - S2MemoryTracker::Client::GetBtreeMinBytesPerEntry()
  source_file: /src/s2geometry/src/s2/s2memory_tracker.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2BufferOperation::Options::Options()
  - S2BufferOperation::Options::Options(S1Angle buffer_radius)
  - S2BufferOperation::Options::Options(const Options& options)
  - "& S2BufferOperation::Options::operator=(\n    const Options& options)"
  - S2BufferOperation::Options::buffer_radius() const
  - S2BufferOperation::Options::set_buffer_radius(S1Angle buffer_radius)
  - S2BufferOperation::Options::error_fraction() const
  - S2BufferOperation::Options::set_error_fraction(double error_fraction)
  - S2BufferOperation::Options::max_error() const
  - S2BufferOperation::Options::circle_segments() const
  - S2BufferOperation::Options::set_circle_segments(double circle_segments)
  - "S2BufferOperation::Options::end_cap_style()\n    const"
  - S2BufferOperation::Options::set_end_cap_style(EndCapStyle end_cap_style)
  - "S2BufferOperation::Options::polyline_side()\n    const"
  - "S2BufferOperation::Options::set_polyline_side(\n    PolylineSide polyline_side)"
  - "& S2BufferOperation::Options::snap_function()\n    const"
  - "S2BufferOperation::Options::set_snap_function(\n    const S2Builder::SnapFunction&
    snap_function)"
  - '* S2BufferOperation::Options::memory_tracker() const'
  - S2BufferOperation::Options::set_memory_tracker(S2MemoryTracker* tracker)
  - S2BufferOperation::S2BufferOperation
  - S2BufferOperation::S2BufferOperation
  - S2BufferOperation::Init
  - '& S2BufferOperation::options() const'
  - S2BufferOperation::GetMaxEdgeSpan
  - S2BufferOperation::SetInputVertex
  - S2BufferOperation::AddOffsetVertex
  - S2BufferOperation::CloseBufferRegion
  - S2BufferOperation::OutputPath
  - S2BufferOperation::UpdateRefWinding
  - S2BufferOperation::AddFullPolygon
  - S2BufferOperation::AddPoint
  - S2BufferOperation::GetEdgeAxis
  - S2BufferOperation::AddVertexArc
  - S2BufferOperation::CloseVertexArc
  - S2BufferOperation::AddEdgeArc
  - S2BufferOperation::CloseEdgeArc
  - S2BufferOperation::BufferEdgeAndVertex
  - S2BufferOperation::AddStartCap
  - S2BufferOperation::AddEndCap
  - S2BufferOperation::BufferLoop
  - S2BufferOperation::AddPolyline
  - S2BufferOperation::AddLoop
  - S2BufferOperation::BufferShape
  - S2BufferOperation::AddShape
  - S2BufferOperation::AddShapeIndex
  source_file: /src/s2geometry/src/s2/s2buffer_operation.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::internal::CompareEdges
  - S2::internal::CompareEdges
  - S2::AngleContainsVertex
  - S2::internal::CompareEdges
  - S2::internal::CompareEdges
  - S2::AngleContainsVertex
  source_file: /src/s2geometry/src/s2/s2edge_crossings.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2point_compression.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: xyz
        type: S2Point
      - name: face
        type: int
      - name: si
        type: unsigned int
      - name: ti
        type: unsigned int
      - name: cell_level
        type: int
      item_type: struct
      name: S2XYZFaceSiTi
      pos:
        line_end: 63
        line_start: 57
        source_file: /src/s2geometry/src/s2/s2point_compression.h
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_shape_edge_id_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MakePolyline
  - TEST
  - TEST
  - TEST
  - MakePolylineWithNonDefaultFields
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - JoinInts
  - CheckSubsample
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestEquals
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestNearlyCovers
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - MakePolyline
  - TEST
  - TEST
  - TEST
  - MakePolylineWithNonDefaultFields
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - JoinInts
  - CheckSubsample
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestEquals
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestNearlyCovers
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2polyline_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Testing::S2Testing
  - S2Testing::S2Testing
  - operator=(const S2Testing&)
  - S2::internal::CheckResultSet
  - S2::internal::CheckResultSet
  - S2::internal::CheckResultSet
  - S2::internal::CheckResultSet
  - CheckDistanceResults
  source_file: /src/s2geometry/src/s2/s2testing.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Node::Node
  - Node::valid
  - Node::weight
  - Node::parent
  - Node::child
  - Node::HasMultipleWeightedChildren
  - Node::AllChildrenHaveSameWeight
  - Node::VisitWeightedChildren
  - Node::GetNormalCellWeight
  - Node::cell_id
  - operator<(const Node& other) const
  - Node::Invalid
  - S2DensityTree::InitToShapeDensity
  - S2DensityTree::InitToVertexDensity
  - S2DensityTree::InitToSumDensity
  - S2DensityTree::InitToSumDensity
  - S2DensityTree::VisitCells
  - S2DensityTree::VisitRecursive
  - S2DensityTree::GetCellWeight
  - S2DensityTree::GetNormalCellWeight
  - S2DensityTree::GetNormalCellWeight
  - S2DensityTree::GetPartitioning
  - const
  - S2DensityTree::Init
  - S2DensityTree::Encode
  - "S2DensityTree::IndexCellWeightFunction::WeighCell(\n    const S2CellId cell_id,
    S2Error* absl_nonnull)"
  - "S2DensityTree::BreadthFirstTreeBuilder::Build(\n    const CellWeightFunction&
    weight_fn, S2DensityTree* tree,\n    S2Error* absl_nonnull error)"
  - "S2DensityTree::Cell::Decode(Decoder& decoder,\n                                 S2Error*
    absl_nonnull error)"
  - S2DensityTree::Cell::Clear()
  - "S2DensityTree::Cell::DecodeAt(const S2DensityTree* tree, uint64_t pos,\n                                   S2Error*
    absl_nonnull error)"
  - S2DensityTree::TreeEncoder::Put(const S2CellId cell_id, int64_t weight)
  - S2DensityTree::TreeEncoder::Build(S2DensityTree* tree)
  - S2DensityTree::TreeEncoder::EncodeTreeReversed(ReversibleBytes* output)
  - "S2DensityTree::TreeEncoder::EncodeSubtreeReversed(\n    const S2CellId cell_id,
    int64_t weight, ReversibleBytes* output)"
  - S2DensityTree::TreeEncoder::EstimateSize(int64_t weight)
  - S2DensityTree::TreeEncoder::Clear()
  - S2DensityTree::DecodeHeader
  - "* S2DensityTree::DecodedPath::GetCell(\n    const S2CellId cell_id, S2Error*
    absl_nonnull error)"
  - "S2DensityTree::DecodedPath::LoadFace(int face,\n                                          S2Error*
    absl_nonnull error)"
  - "* S2DensityTree::DecodedPath::LoadCell(\n    S2CellId cell_id, S2Error* absl_nonnull
    error)"
  - const
  - const
  - S2DensityTree::Dilate
  source_file: /src/s2geometry/src/s2/s2density_tree.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2CrossingEdgeQuery::S2CrossingEdgeQuery
  - operator=(const S2CrossingEdgeQuery&)
  - '& index() const'
  - S2CrossingEdgeQuery::S2CrossingEdgeQuery
  source_file: /src/s2geometry/src/s2/s2crossing_edge_query.h
  types:
    enum:
    - enumerators:
      - name: INTERIOR
      - name: ALL
      item_type: enum
      name: CrossingType
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/s2geometry/src/s2/s2crossing_edge_query.h
    - enumerators:
      - name: INTERIOR
      - name: ALL
      item_type: enum
      name: CrossingType
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/s2geometry/src/s2/s2crossing_edge_query.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S1Angle::S1Angle
  - S1Angle::S1Angle
  - S1Angle::Normalized
  - S1Angle::Normalize
  - S1Angle::Coder::Encode(Encoder& encoder, const S1Angle& angle) const
  - "S1Angle::Coder::Decode(Decoder& decoder, S1Angle& angle,\n                            S2Error&
    error) const"
  - '& operator<<(std::ostream& os, S1Angle a)'
  source_file: /src/s2geometry/src/s2/s1angle.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "S2FurthestEdgeQuery::Options::set_conservative_min_distance(\n    S1ChordAngle
    min_distance)"
  - "S2FurthestEdgeQuery::Options::set_conservative_min_distance(\n    S1Angle min_distance)"
  - S2FurthestEdgeQuery::PointTarget::max_brute_force_index_size() const
  - S2FurthestEdgeQuery::EdgeTarget::max_brute_force_index_size() const
  - S2FurthestEdgeQuery::CellTarget::max_brute_force_index_size() const
  - S2FurthestEdgeQuery::ShapeIndexTarget::max_brute_force_index_size() const
  - S2FurthestEdgeQuery::S2FurthestEdgeQuery
  - S2FurthestEdgeQuery::~S2FurthestEdgeQuery()
  - S2FurthestEdgeQuery::FindFurthestEdges
  - S2FurthestEdgeQuery::FindFurthestEdge
  - S2FurthestEdgeQuery::IsDistanceGreater
  - S2FurthestEdgeQuery::IsDistanceGreaterOrEqual
  - S2FurthestEdgeQuery::IsConservativeDistanceGreaterOrEqual
  source_file: /src/s2geometry/src/s2/s2furthest_edge_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetricBundle::MetricBundle
  - MetricBundle::MetricBundle
  - operator=(const MetricBundle&)
  - CheckMinMaxAvg
  - CheckLessOrEqual
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2metrics_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Builder::Graph::VertexOutEdges::begin
  - S2Builder::Graph::VertexOutEdges::end
  - S2Builder::Graph::VertexOutEdges::size
  - S2Builder::Graph::VertexOutEdgeIds::Iterator::Iterator
  - '& operator*() const'
  - '& operator++()'
  - operator++(int)
  - operator-(const Iterator& x) const
  - operator==(const Iterator& x) const
  - operator!=(const Iterator& x) const
  - S2Builder::Graph::VertexOutEdgeIds::begin
  - S2Builder::Graph::VertexOutEdgeIds::end
  - S2Builder::Graph::VertexOutEdgeIds::size
  - S2Builder::Graph::VertexOutMap::VertexOutMap
  - S2Builder::Graph::VertexOutMap::VertexOutMap
  - S2Builder::Graph::VertexOutMap::VertexOutMap
  - operator=(const VertexOutMap&)
  - S2Builder::Graph::VertexInEdgeIds::begin
  - S2Builder::Graph::VertexInEdgeIds::end
  - S2Builder::Graph::VertexInEdgeIds::size
  - S2Builder::Graph::VertexInMap::VertexInMap
  - S2Builder::Graph::VertexInMap::VertexInMap
  - '& in_edge_ids() const'
  - S2Builder::Graph::VertexInMap::VertexInMap
  - operator=(const VertexInMap&)
  - S2Builder::Graph::LabelFetcher::LabelFetcher
  - S2Builder::Graph::LabelFetcher::LabelFetcher
  - S2Builder::Graph::Graph()
  - '& S2Builder::Graph::options() const'
  - S2Builder::Graph::num_vertices() const
  - '& S2Builder::Graph::vertex(VertexId v) const'
  - '& S2Builder::Graph::vertices() const'
  - S2Builder::Graph::num_edges() const
  - '& S2Builder::Graph::edge(EdgeId e) const'
  - '&

    S2Builder::Graph::edges() const'
  - S2Builder::Graph::reverse(const Edge& e)
  - "S2Builder::Graph::VertexOutEdges::VertexOutEdges(const Edge* begin,\n                                                        const
    Edge* end)"
  - S2Builder::Graph::VertexOutMap::edges(VertexId v) const
  - S2Builder::Graph::VertexOutMap::edges(VertexId v0, VertexId v1) const
  - "S2Builder::Graph::VertexOutEdgeIds::VertexOutEdgeIds(EdgeId begin,\n                                                            EdgeId
    end)"
  - S2Builder::Graph::VertexOutMap::edge_ids(VertexId v) const
  - S2Builder::Graph::VertexOutMap::edge_ids(VertexId v0, VertexId v1) const
  - S2Builder::Graph::VertexOutMap::degree(VertexId v) const
  - "S2Builder::Graph::VertexInEdgeIds::VertexInEdgeIds(const EdgeId* begin,\n                                                          const
    EdgeId* end)"
  - S2Builder::Graph::VertexInMap::edge_ids(VertexId v) const
  - S2Builder::Graph::VertexInMap::degree(VertexId v) const
  - S2Builder::Graph::input_edge_ids(EdgeId e) const
  - '&

    S2Builder::Graph::input_edge_id_set_ids() const'
  - S2Builder::Graph::input_edge_id_set_id(EdgeId e) const
  - '& S2Builder::Graph::input_edge_id_set_lexicon() const'
  - S2Builder::Graph::labels(InputEdgeId e) const
  - "S2Builder::Graph::label_set_id(InputEdgeId e)\n    const"
  - '&

    S2Builder::Graph::label_set_ids() const'
  - '& S2Builder::Graph::label_set_lexicon() const'
  - const
  - '&

    S2Builder::Graph::is_full_polygon_predicate() const'
  - "S2Builder::Graph::StableLessThan(\n    const Edge& a, const Edge& b, EdgeId ai,
    EdgeId bi)"
  source_file: /src/s2geometry/src/s2/s2builder_graph.h
  types:
    enum:
    - enumerators:
      - name: SIMPLE
      - name: CIRCUIT
      item_type: enum
      name: LoopType
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/s2geometry/src/s2/s2builder_graph.h
    - enumerators:
      - name: DISCARD
      - name: KEEP
      item_type: enum
      name: DegenerateBoundaries
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/s2geometry/src/s2/s2builder_graph.h
    - enumerators:
      - name: PATH
      - name: WALK
      item_type: enum
      name: PolylineType
      pos:
        line_end: 577
        line_start: 577
        source_file: /src/s2geometry/src/s2/s2builder_graph.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IdSetLexicon::IdSetLexicon
  - IdSetLexicon::~IdSetLexicon()
  - IdSetLexicon::IdSetLexicon
  - IdSetLexicon::IdSetLexicon
  - '& IdSetLexicon::operator=(const IdSetLexicon& x)'
  - '& IdSetLexicon::operator=(IdSetLexicon&& x) noexcept'
  - IdSetLexicon::Clear
  - IdSetLexicon::AddInternal
  - IdSetLexicon::id_set
  source_file: /src/s2geometry/src/s2/id_set_lexicon.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2EdgeVectorShape::S2EdgeVectorShape
  - S2EdgeVectorShape::S2EdgeVectorShape
  - '& operator=(S2EdgeVectorShape&& other) noexcept'
  - S2EdgeVectorShape::S2EdgeVectorShape
  - S2EdgeVectorShape::S2EdgeVectorShape
  - ~S2EdgeVectorShape() override
  - S2EdgeVectorShape::set_dimension
  - S2EdgeVectorShape::Add
  - S2EdgeVectorShape::num_edges
  - S2EdgeVectorShape::edge
  - S2EdgeVectorShape::dimension
  - S2EdgeVectorShape::GetReferencePoint
  - S2EdgeVectorShape::num_chains
  - S2EdgeVectorShape::chain
  - S2EdgeVectorShape::chain_edge
  - S2EdgeVectorShape::chain_position
  source_file: /src/s2geometry/src/s2/s2edge_vector_shape.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S1Interval::FromPoint
  - S1Interval::GetCenter
  - S1Interval::GetLength
  - S1Interval::Complement
  - S1Interval::GetComplementCenter
  - S1Interval::FastContains
  - S1Interval::Contains
  - S1Interval::InteriorContains
  - S1Interval::Contains
  - S1Interval::InteriorContains
  - S1Interval::Intersects
  - S1Interval::InteriorIntersects
  - PositiveDistance
  - S1Interval::GetDirectedHausdorffDistance
  - S1Interval::AddPoint
  - S1Interval::Project
  - S1Interval::FromPointPair
  - S1Interval::Expanded
  - S1Interval::Union
  - S1Interval::Intersection
  - S1Interval::ApproxEquals
  source_file: /src/s2geometry/src/s2/s1interval.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::internal::GetIntersectionMethodName
  - S2::internal::GetStableCrossProd
  - S2::internal::GetIntersectionMethodName
  - S2::internal::GetStableCrossProd
  - S2::RobustCrossProd
  - S2::SymbolicCrossProdSorted
  - S2::IsNormalizable
  - S2::EnsureNormalizable
  - S2::NormalizableFromExact
  - S2::internal::SymbolicCrossProd
  - S2::internal::ExactCrossProd
  - S2::internal::SymbolicCrossProd
  - S2::internal::ExactCrossProd
  - S2::CrossingSign
  - S2::VertexCrossing
  - S2::SignedVertexCrossing
  - S2::EdgeOrVertexCrossing
  - S2::RobustNormalWithLength
  - S2::GetIntersectionSimple
  - S2::GetIntersectionSimpleLD
  - S2::GetProjection
  - S2::GetIntersectionStableSorted
  - S2::GetIntersectionStable
  - S2::ToS2Point
  - S2::internal::GetIntersectionStableLD
  - S2::internal::GetIntersectionExact
  - S2::internal::GetIntersectionStableLD
  - S2::internal::GetIntersectionExact
  - S2::ApproximatelyOrdered
  - S2::GetIntersection
  - S2::internal::GetIntersectionMethodName
  - S2::internal::GetStableCrossProd
  - S2::internal::GetIntersectionMethodName
  - S2::internal::GetStableCrossProd
  - S2::RobustCrossProd
  - S2::SymbolicCrossProdSorted
  - S2::IsNormalizable
  - S2::EnsureNormalizable
  - S2::NormalizableFromExact
  - S2::internal::SymbolicCrossProd
  - S2::internal::ExactCrossProd
  - S2::internal::SymbolicCrossProd
  - S2::internal::ExactCrossProd
  - S2::CrossingSign
  - S2::VertexCrossing
  - S2::SignedVertexCrossing
  - S2::EdgeOrVertexCrossing
  - S2::RobustNormalWithLength
  - S2::GetIntersectionSimple
  - S2::GetIntersectionSimpleLD
  - S2::GetProjection
  - S2::GetIntersectionStableSorted
  - S2::GetIntersectionStable
  - S2::ToS2Point
  - S2::internal::GetIntersectionStableLD
  - S2::internal::GetIntersectionExact
  - S2::internal::GetIntersectionStableLD
  - S2::internal::GetIntersectionExact
  - S2::ApproximatelyOrdered
  - S2::GetIntersection
  source_file: /src/s2geometry/src/s2/s2edge_crossings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~S2DistanceTarget()
  - S2DistanceTarget::VisitContainingShapes
  - S2DistanceTarget::set_max_error
  - S2DistanceTarget::max_brute_force_index_size
  source_file: /src/s2geometry/src/s2/s2distance_target.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IFNDEF_SWIG
  - S2CellId::S2CellId
  - S2CellId::S2CellId
  - S2CellId::None
  - S2CellId::Sentinel
  - operator<=>(S2CellId x, S2CellId y)
  - operator!=(S2CellId x, S2CellId y)
  - operator<(S2CellId x, S2CellId y)
  - operator>(S2CellId x, S2CellId y)
  - operator<=(S2CellId x, S2CellId y)
  - operator>=(S2CellId x, S2CellId y)
  - S2CellId::ToPoint
  - S2CellId::id
  - S2CellId::lsb
  - S2CellId::lsb_for_level
  - S2CellId::AbslHashValue
  - operator==(S2CellId x, S2CellId y)
  - S2CellId::FromFace
  - S2CellId::FromFacePosLevel
  - S2CellId::GetCenterSiTi
  - S2CellId::is_valid
  - S2CellId::face
  - S2CellId::pos
  - S2CellId::level
  - S2CellId::GetSizeIJ
  - S2CellId::GetSizeST
  - S2CellId::GetSizeIJ
  - S2CellId::GetSizeST
  - S2CellId::is_leaf
  - S2CellId::is_face
  - S2CellId::child_position
  - S2CellId::child_position
  - S2CellId::range_min
  - S2CellId::range_max
  - S2CellId::contains
  - S2CellId::intersects
  - S2CellId::parent
  - S2CellId::parent
  - S2CellId::child
  - S2CellId::child_begin
  - S2CellId::child_begin
  - S2CellId::child_end
  - S2CellId::child_end
  - S2CellId::next
  - S2CellId::prev
  - S2CellId::next_wrap
  - S2CellId::prev_wrap
  - S2CellId::Begin
  - S2CellId::End
  - operator()(S2CellId id) const
  source_file: /src/s2geometry/src/s2/s2cell_id.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: S2CellIdHash
      pos:
        line_end: 756
        line_start: 752
        source_file: /src/s2geometry/src/s2/s2cell_id.h
    typedefs:
    - item_type: typedef
      name: absl_btree_prefer_linear_node_search
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/s2geometry/src/s2/s2cell_id.h
      type: true_type
    union: []
- function_names:
  - s2coding::EncodedS2PointVector::EncodedS2PointVector
  - s2coding::EncodedS2PointVector::size
  - s2coding::EncodedS2PointVector::At
  - EncodedS2PointVector::operator[](int i) const
  - s2coding::EncodedS2PointVector::EncodedS2PointVector
  - s2coding::EncodedS2PointVector::size
  - s2coding::EncodedS2PointVector::At
  - EncodedS2PointVector::operator[](int i) const
  source_file: /src/s2geometry/src/s2/encoded_s2point_vector.h
  types:
    enum:
    - enumerators:
      - name: UNCOMPRESSED
        value: '0'
      - name: CELL_IDS
        value: '1'
      item_type: enum
      name: Format
      pos:
        line_end: 134
        line_start: 131
        source_file: /src/s2geometry/src/s2/encoded_s2point_vector.h
    - enumerators:
      - name: UNCOMPRESSED
        value: '0'
      - name: CELL_IDS
        value: '1'
      item_type: enum
      name: Format
      pos:
        line_end: 134
        line_start: 131
        source_file: /src/s2geometry/src/s2/encoded_s2point_vector.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2LatLng::Encode
  - S2LatLng::Init
  - S2LatLng::Normalized
  - S2LatLng::ToPoint
  - S2LatLng::S2LatLng
  - S2LatLng::GetDistance
  - S2LatLng::ToStringInDegrees
  - '& operator<<(std::ostream& os, const S2LatLng& ll)'
  source_file: /src/s2geometry/src/s2/s2latlng.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NumVerticesAtLevel
  - TestFractal
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - NumVerticesAtLevel
  - TestFractal
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2fractal_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2LaxLoopShape::S2LaxLoopShape
  - '& S2LaxLoopShape::operator=(S2LaxLoopShape&& other) noexcept'
  - S2LaxLoopShape::S2LaxLoopShape
  - S2LaxLoopShape::S2LaxLoopShape
  - S2LaxLoopShape::Init
  - S2LaxLoopShape::Init
  - S2LaxLoopShape::edge
  - S2LaxLoopShape::chain_edge
  - S2LaxLoopShape::GetReferencePoint
  - S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape
  - "& S2VertexIdLaxLoopShape::operator=(\n    S2VertexIdLaxLoopShape&& other) noexcept"
  - S2VertexIdLaxLoopShape::S2VertexIdLaxLoopShape
  - S2VertexIdLaxLoopShape::Init
  - S2VertexIdLaxLoopShape::edge
  - S2VertexIdLaxLoopShape::chain_edge
  - S2VertexIdLaxLoopShape::GetReferencePoint
  source_file: /src/s2geometry/src/s2/s2lax_loop_shape.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2PaddedCell::S2PaddedCell
  - S2PaddedCell::S2PaddedCell
  - '& S2PaddedCell::middle() const'
  - S2PaddedCell::GetCenter
  - S2PaddedCell::GetEntryVertex
  - S2PaddedCell::GetExitVertex
  - S2PaddedCell::ShrinkToFit
  source_file: /src/s2geometry/src/s2/s2padded_cell.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::GraphShape::GraphShape
  - s2builderutil::GraphShape::num_edges
  - s2builderutil::GraphShape::edge
  - s2builderutil::GraphShape::dimension
  - s2builderutil::GraphShape::GetReferencePoint
  - s2builderutil::GraphShape::num_chains
  - s2builderutil::GraphShape::chain
  - s2builderutil::GraphShape::chain_edge
  - s2builderutil::GraphShape::chain_position
  - s2builderutil::GraphShape::GraphShape
  - s2builderutil::GraphShape::num_edges
  - s2builderutil::GraphShape::edge
  - s2builderutil::GraphShape::dimension
  - s2builderutil::GraphShape::GetReferencePoint
  - s2builderutil::GraphShape::num_chains
  - s2builderutil::GraphShape::chain
  - s2builderutil::GraphShape::chain_edge
  - s2builderutil::GraphShape::chain_position
  source_file: /src/s2geometry/src/s2/s2builderutil_graph_shape.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Cap::GetArea
  - S2Cap::GetCentroid
  - S2Cap::Complement
  - S2Cap::Contains
  - S2Cap::Intersects
  - S2Cap::InteriorIntersects
  - S2Cap::AddPoint
  - S2Cap::AddCap
  - S2Cap::Expanded
  - S2Cap::Union
  - S2Cap::Clone
  - S2Cap::GetCapBound
  - S2Cap::GetRectBound
  - S2Cap::GetCellUnionBound
  - S2Cap::Intersects
  - S2Cap::Contains
  - S2Cap::MayIntersect
  - S2Cap::Contains
  - S2Cap::InteriorContains
  - S2Cap::operator==(const S2Cap& other) const
  - S2Cap::ApproxEquals
  - '& operator<<(std::ostream& os, const S2Cap& cap)'
  - S2Cap::Encode
  - S2Cap::Decode
  source_file: /src/s2geometry/src/s2/s2cap.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2measures_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SwapAxes
  - InvertBits
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_STtoIJ
  source_file: /src/s2geometry/src/s2/s2coords_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::S2PointMatcher::S2PointMatcher
  - S2::S2PointMatcher::DescribeTo
  - S2::S2PointMatcher::DescribeNegationTo
  - S2::S2PolylineMatcher::Options
  - S2::S2PolylineMatcher::Options
  - S2::S2PolylineMatcher::S2PolylineMatcher
  - '& operator=(const S2PolylineMatcher& other)'
  - S2::S2PolylineMatcher::S2PolylineMatcher
  - S2::S2PolylineMatcher::S2PolylineMatcher
  - ~S2PolylineMatcher()
  - S2::S2PolylineMatcher::DescribeTo
  - S2::S2PolylineMatcher::DescribeNegationTo
  - S2::S2PolygonMatcher::Options
  - S2::S2PolygonMatcher::Options
  - S2::S2PolygonMatcher::S2PolygonMatcher
  - S2::S2PolygonMatcher::S2PolygonMatcher
  - S2::S2PolygonMatcher::S2PolygonMatcher
  - '& operator=(const S2PolygonMatcher& other)'
  - S2::S2PolygonMatcher::DescribeTo
  - S2::S2PolygonMatcher::DescribeNegationTo
  - S2::S2LoopMatcher::Options
  - S2::S2LoopMatcher::Options
  - S2::S2LoopMatcher::S2LoopMatcher
  - S2::S2LoopMatcher::S2LoopMatcher
  - S2::S2LoopMatcher::S2LoopMatcher
  - '& operator=(const S2LoopMatcher& other)'
  - S2::S2LoopMatcher::DescribeTo
  - S2::S2LoopMatcher::DescribeNegationTo
  - S2::S2LatLngRectMatcher::Options
  - S2::S2LatLngRectMatcher::Options
  - S2::S2LatLngRectMatcher::Options
  - S2::S2LatLngRectMatcher::S2LatLngRectMatcher
  - S2::S2LatLngRectMatcher::S2LatLngRectMatcher
  - S2::S2LatLngRectMatcher::S2LatLngRectMatcher
  - '& operator=(const S2LatLngRectMatcher& other)'
  - S2::S2LatLngRectMatcher::DescribeTo
  - S2::S2LatLngRectMatcher::DescribeNegationTo
  - S2::S2LatLngMatcher::Options
  - S2::S2LatLngMatcher::Options
  - S2::S2LatLngMatcher::S2LatLngMatcher
  - S2::S2LatLngMatcher::S2LatLngMatcher
  - S2::S2LatLngMatcher::S2LatLngMatcher
  - '& operator=(const S2LatLngMatcher& other)'
  - S2::S2LatLngMatcher::DescribeTo
  - S2::S2LatLngMatcher::DescribeNegationTo
  - S2::S2PointMatcher::S2PointMatcher
  - S2::S2PointMatcher::DescribeTo
  - S2::S2PointMatcher::DescribeNegationTo
  - S2::S2PolylineMatcher::Options
  - S2::S2PolylineMatcher::Options
  - S2::S2PolylineMatcher::S2PolylineMatcher
  - '& operator=(const S2PolylineMatcher& other)'
  - S2::S2PolylineMatcher::S2PolylineMatcher
  - S2::S2PolylineMatcher::S2PolylineMatcher
  - ~S2PolylineMatcher()
  - S2::S2PolylineMatcher::DescribeTo
  - S2::S2PolylineMatcher::DescribeNegationTo
  - S2::S2PolygonMatcher::Options
  - S2::S2PolygonMatcher::Options
  - S2::S2PolygonMatcher::S2PolygonMatcher
  - S2::S2PolygonMatcher::S2PolygonMatcher
  - S2::S2PolygonMatcher::S2PolygonMatcher
  - '& operator=(const S2PolygonMatcher& other)'
  - S2::S2PolygonMatcher::DescribeTo
  - S2::S2PolygonMatcher::DescribeNegationTo
  - S2::S2LoopMatcher::Options
  - S2::S2LoopMatcher::Options
  - S2::S2LoopMatcher::S2LoopMatcher
  - S2::S2LoopMatcher::S2LoopMatcher
  - S2::S2LoopMatcher::S2LoopMatcher
  - '& operator=(const S2LoopMatcher& other)'
  - S2::S2LoopMatcher::DescribeTo
  - S2::S2LoopMatcher::DescribeNegationTo
  - S2::S2LatLngRectMatcher::Options
  - S2::S2LatLngRectMatcher::Options
  - S2::S2LatLngRectMatcher::Options
  - S2::S2LatLngRectMatcher::S2LatLngRectMatcher
  - S2::S2LatLngRectMatcher::S2LatLngRectMatcher
  - S2::S2LatLngRectMatcher::S2LatLngRectMatcher
  - '& operator=(const S2LatLngRectMatcher& other)'
  - S2::S2LatLngRectMatcher::DescribeTo
  - S2::S2LatLngRectMatcher::DescribeNegationTo
  - S2::S2LatLngMatcher::Options
  - S2::S2LatLngMatcher::Options
  - S2::S2LatLngMatcher::S2LatLngMatcher
  - S2::S2LatLngMatcher::S2LatLngMatcher
  - S2::S2LatLngMatcher::S2LatLngMatcher
  - '& operator=(const S2LatLngMatcher& other)'
  - S2::S2LatLngMatcher::DescribeTo
  - S2::S2LatLngMatcher::DescribeNegationTo
  source_file: /src/s2geometry/src/s2/gmock_matchers.h
  types:
    enum:
    - enumerators:
      - name: EQUALS
      - name: APPROX_EQUALS
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 199
        line_start: 196
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - enumerators:
      - name: EQUALS
      - name: BOUNDARY_APPROX_EQUALS
      - name: BOUNDARY_EQUALS
      - name: APPROX_EQUALS
      - name: BOUNDARY_NEAR
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 282
        line_start: 276
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - enumerators:
      - name: EQUALS
      - name: BOUNDARY_NEAR
      - name: BOUNDARY_EQUALS
      - name: BOUNDARY_APPROX_EQUALS
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 341
        line_start: 336
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - enumerators:
      - name: EQUALS
      - name: APPROX_EQUALS
      - name: APPROX_EQUALS_2
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 439
        line_start: 433
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - enumerators:
      - name: EQUALS
      - name: APPROX_EQUALS
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 497
        line_start: 493
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - enumerators:
      - name: EQUALS
      - name: APPROX_EQUALS
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 199
        line_start: 196
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - enumerators:
      - name: EQUALS
      - name: BOUNDARY_APPROX_EQUALS
      - name: BOUNDARY_EQUALS
      - name: APPROX_EQUALS
      - name: BOUNDARY_NEAR
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 282
        line_start: 276
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - enumerators:
      - name: EQUALS
      - name: BOUNDARY_NEAR
      - name: BOUNDARY_EQUALS
      - name: BOUNDARY_APPROX_EQUALS
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 341
        line_start: 336
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - enumerators:
      - name: EQUALS
      - name: APPROX_EQUALS
      - name: APPROX_EQUALS_2
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 439
        line_start: 433
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - enumerators:
      - name: EQUALS
      - name: APPROX_EQUALS
      item_type: enum
      name: ComparisonType
      pos:
        line_end: 497
        line_start: 493
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      item_type: struct
      name: Options
      pos:
        line_end: 208
        line_start: 193
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      item_type: struct
      name: Options
      pos:
        line_end: 291
        line_start: 273
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      item_type: struct
      name: Options
      pos:
        line_end: 350
        line_start: 333
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      - name: tolerance_lat_lng
        type: S2LatLng
      item_type: struct
      name: Options
      pos:
        line_end: 452
        line_start: 430
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      item_type: struct
      name: Options
      pos:
        line_end: 505
        line_start: 490
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      item_type: struct
      name: Options
      pos:
        line_end: 208
        line_start: 193
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      item_type: struct
      name: Options
      pos:
        line_end: 291
        line_start: 273
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      item_type: struct
      name: Options
      pos:
        line_end: 350
        line_start: 333
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      - name: tolerance_lat_lng
        type: S2LatLng
      item_type: struct
      name: Options
      pos:
        line_end: 452
        line_start: 430
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    - fields:
      - name: type
        type: ComparisonType
      - name: tolerance
        type: S1Angle
      item_type: struct
      name: Options
      pos:
        line_end: 505
        line_start: 490
        source_file: /src/s2geometry/src/s2/gmock_matchers.h
    typedefs: []
    union: []
- function_names:
  - S2CellRangeIterator::S2CellRangeIterator
  - '& iterator() const'
  - S2CellRangeIterator::id
  - S2CellRangeIterator::range_min
  - S2CellRangeIterator::range_max
  - S2CellRangeIterator::Relation
  - S2CellRangeIterator::done
  - MakeS2CellRangeIterator
  - MakeS2CellRangeIterator
  - S2CellRangeIterator<Iterator>::S2CellRangeIterator::Begin()
  - S2CellRangeIterator<Iterator>::S2CellRangeIterator::Next()
  - S2CellRangeIterator<Iterator>::S2CellRangeIterator::Prev()
  - S2CellRangeIterator<Iterator>::S2CellRangeIterator::Seek(S2CellId target)
  - S2CellRangeIterator<Iterator>::S2CellRangeIterator::Finish()
  - "S2CellRangeIterator<Iterator>::S2CellRangeIterator::Locate(\n    const S2Point&
    target)"
  - S2CellRangeIterator<Iterator>::Locate
  - "S2CellRangeIterator<Iterator>::S2CellRangeIterator::Locate(\n    const S2CellRangeIterator<T>&
    target)"
  - S2CellRangeIterator<Iterator>::SeekTo
  - S2CellRangeIterator<Iterator>::SeekBeyond
  - S2CellRangeIterator<Iterator>::Refresh
  source_file: /src/s2geometry/src/s2/s2cell_range_iterator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::GetReferencePointAtVertex
  - s2shapeutil::GetReferencePoint
  - s2shapeutil::GetReferencePointAtVertex
  - s2shapeutil::GetReferencePoint
  source_file: /src/s2geometry/src/s2/s2shapeutil_get_reference_point.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::WindingOracle::current_ref_winding
  - s2builderutil::WindingOracle::WindingOracle
  - s2builderutil::WindingOracle::SignedCrossingDelta
  - s2builderutil::WindingOracle::GetWindingNumber
  - s2builderutil::WindingLayer::WindingLayer
  - s2builderutil::WindingLayer::graph_options
  - s2builderutil::WindingLayer::Build
  - s2builderutil::WindingLayer::ComputeBoundary
  - s2builderutil::WindingLayer::GetContainingLoopEdge
  - s2builderutil::WindingLayer::MatchesRule
  - s2builderutil::WindingLayer::MatchesDegeneracy
  - s2builderutil::WindingLayer::OutputEdge
  - s2builderutil::WindingOracle::current_ref_winding
  - s2builderutil::WindingOracle::WindingOracle
  - s2builderutil::WindingOracle::SignedCrossingDelta
  - s2builderutil::WindingOracle::GetWindingNumber
  - s2builderutil::WindingLayer::WindingLayer
  - s2builderutil::WindingLayer::graph_options
  - s2builderutil::WindingLayer::Build
  - s2builderutil::WindingLayer::ComputeBoundary
  - s2builderutil::WindingLayer::GetContainingLoopEdge
  - s2builderutil::WindingLayer::MatchesRule
  - s2builderutil::WindingLayer::MatchesDegeneracy
  - s2builderutil::WindingLayer::OutputEdge
  - S2WindingOperation::Options::Options()
  - S2WindingOperation::Options::Options(const SnapFunction& snap_function)
  - S2WindingOperation::Options::Options(const Options& options)
  - "& S2WindingOperation::Options::operator=(\n    const Options& options)"
  - "& S2WindingOperation::Options::snap_function()\n    const"
  - "S2WindingOperation::Options::set_snap_function(\n    const SnapFunction& snap_function)"
  - S2WindingOperation::Options::include_degeneracies() const
  - "S2WindingOperation::Options::set_include_degeneracies(\n    bool include_degeneracies)"
  - '* S2WindingOperation::Options::memory_tracker() const'
  - S2WindingOperation::Options::set_memory_tracker(S2MemoryTracker* tracker)
  - S2WindingOperation::S2WindingOperation
  - S2WindingOperation::S2WindingOperation
  - S2WindingOperation::Init
  - '& S2WindingOperation::options() const'
  - S2WindingOperation::AddLoop
  - S2WindingOperation::Build
  source_file: /src/s2geometry/src/s2/s2winding_operation.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2chain_interpolation_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LatLngToPoint
  - OpenShape::dimension
  - OpenShape::num_edges
  - OpenShape::chain_edge
  - OpenShape::edge
  - OpenShape::num_chains
  - OpenShape::chain
  - OpenShape::GetReferencePoint
  - OpenShape::chain_position
  - OpenShape::type_tag
  - BadDimensionShape::dimension
  - BadDimensionShape::num_edges
  - BadDimensionShape::edge
  - BadDimensionShape::chain_edge
  - BadDimensionShape::chain
  - BadDimensionShape::num_chains
  - BadDimensionShape::chain_position
  - BadDimensionShape::GetReferencePoint
  - BadDimensionShape::type_tag
  - BadChainLengthShape::dimension
  - BadChainLengthShape::num_edges
  - BadChainLengthShape::edge
  - BadChainLengthShape::chain_edge
  - BadChainLengthShape::num_chains
  - BadChainLengthShape::chain
  - BadChainLengthShape::chain_position
  - BadChainLengthShape::GetReferencePoint
  - BadChainLengthShape::type_tag
  - CcwEdgesAbout
  - MakeQuilt
  - TEST
  - TEST
  - TEST
  - TEST
  - ValidationQueryTest::ExpectShapeValid
  - ValidationQueryTest::ExpectIndexInvalid
  - ValidationQueryTest::ExpectShapeInvalid
  - ValidationQueryTest::ExpectShapeInvalid
  - ValidationQueryTest::ExpectGeometryValid
  - ValidationQueryTest::ExpectGeometryInvalid
  - ValidationQueryTest::AddConcentricLoops
  - ValidationQueryTest::MakePolygon
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - BM_LegacyValidFractal
  - BM_LegacyPolygonValidFractal
  - LatLngToPoint
  - OpenShape::dimension
  - OpenShape::num_edges
  - OpenShape::chain_edge
  - OpenShape::edge
  - OpenShape::num_chains
  - OpenShape::chain
  - OpenShape::GetReferencePoint
  - OpenShape::chain_position
  - OpenShape::type_tag
  - BadDimensionShape::dimension
  - BadDimensionShape::num_edges
  - BadDimensionShape::edge
  - BadDimensionShape::chain_edge
  - BadDimensionShape::chain
  - BadDimensionShape::num_chains
  - BadDimensionShape::chain_position
  - BadDimensionShape::GetReferencePoint
  - BadDimensionShape::type_tag
  - BadChainLengthShape::dimension
  - BadChainLengthShape::num_edges
  - BadChainLengthShape::edge
  - BadChainLengthShape::chain_edge
  - BadChainLengthShape::num_chains
  - BadChainLengthShape::chain
  - BadChainLengthShape::chain_position
  - BadChainLengthShape::GetReferencePoint
  - BadChainLengthShape::type_tag
  - CcwEdgesAbout
  - MakeQuilt
  - TEST
  - TEST
  - TEST
  - TEST
  - ValidationQueryTest::ExpectShapeValid
  - ValidationQueryTest::ExpectIndexInvalid
  - ValidationQueryTest::ExpectShapeInvalid
  - ValidationQueryTest::ExpectShapeInvalid
  - ValidationQueryTest::ExpectGeometryValid
  - ValidationQueryTest::ExpectGeometryInvalid
  - ValidationQueryTest::AddConcentricLoops
  - ValidationQueryTest::MakePolygon
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - TYPED_TEST
  - BM_LegacyValidFractal
  - BM_LegacyPolygonValidFractal
  source_file: /src/s2geometry/src/s2/s2validation_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::ShapeToS2Points
  - s2shapeutil::ShapeToS2Polyline
  - s2shapeutil::ShapeToS2Polygon
  - s2shapeutil::ShapeToS2Points
  - s2shapeutil::ShapeToS2Polyline
  - s2shapeutil::ShapeToS2Polygon
  source_file: /src/s2geometry/src/s2/s2shapeutil_conversion.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2hausdorff_distance_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  source_file: /src/s2geometry/src/s2/s2wrapped_shape_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::TestLaxLoop::TestLaxLoop
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::SortFaces
  - s2shapeutil::TEST
  - s2shapeutil::TestLaxLoop::TestLaxLoop
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::SortFaces
  - s2shapeutil::TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "S2ClosestEdgeQuery::Options::set_conservative_max_distance(\n    S1ChordAngle
    max_distance)"
  - "S2ClosestEdgeQuery::Options::set_conservative_max_distance(\n    S1Angle max_distance)"
  - S2ClosestEdgeQuery::PointTarget::max_brute_force_index_size() const
  - S2ClosestEdgeQuery::EdgeTarget::max_brute_force_index_size() const
  - S2ClosestEdgeQuery::CellTarget::max_brute_force_index_size() const
  - S2ClosestEdgeQuery::ShapeIndexTarget::max_brute_force_index_size() const
  - S2ClosestEdgeQuery::S2ClosestEdgeQuery
  - S2ClosestEdgeQuery::~S2ClosestEdgeQuery()
  - S2ClosestEdgeQuery::IsDistanceLess
  - S2ClosestEdgeQuery::IsDistanceLessOrEqual
  - S2ClosestEdgeQuery::IsConservativeDistanceLessOrEqual
  - S2ClosestEdgeQuery::VisitClosestShapes
  source_file: /src/s2geometry/src/s2/s2closest_edge_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::ShapeEdge
  - s2shapeutil::id
  - '& v0() const'
  - '& v1() const'
  - s2shapeutil::ShapeEdge::ShapeEdge
  - s2shapeutil::ShapeEdge
  - s2shapeutil::id
  - '& v0() const'
  - '& v1() const'
  - s2shapeutil::ShapeEdge::ShapeEdge
  source_file: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id_
        type: ShapeEdgeId
      - name: edge_
        type: S2Shape::Edge
      item_type: struct
      name: ShapeEdge
      pos:
        line_end: 42
        line_start: 31
        source_file: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    - fields:
      - name: id_
        type: ShapeEdgeId
      - name: edge_
        type: S2Shape::Edge
      item_type: struct
      name: ShapeEdge
      pos:
        line_end: 42
        line_start: 31
        source_file: /src/s2geometry/src/s2/s2shapeutil_shape_edge.h
    typedefs: []
    union: []
- function_names:
  - MakeCellId
  - NewPaddedCell
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - VisitIntersectingShapesTest::VisitIntersectingShapesTest
  - VisitIntersectingShapesTest::Run
  - VisitIntersectingShapesTest::TestCell
  - TEST
  - TEST
  - TEST
  - GetIndexCellId
  - GetParentCellId
  - GetDescendantCellId
  - AddPolygons
  - BenchmarkVisitIntersectingShapes
  - BM_VisitIntersectingPolygonsParentCells
  - BM_VisitIntersectingPolygonsIndexCells
  - BM_VisitIntersectingPolygonsDescendantCells
  - MakeCellId
  - NewPaddedCell
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - VisitIntersectingShapesTest::VisitIntersectingShapesTest
  - VisitIntersectingShapesTest::Run
  - VisitIntersectingShapesTest::TestCell
  - TEST
  - TEST
  - TEST
  - GetIndexCellId
  - GetParentCellId
  - GetDescendantCellId
  - AddPolygons
  - BenchmarkVisitIntersectingShapes
  - BM_VisitIntersectingPolygonsParentCells
  - BM_VisitIntersectingPolygonsIndexCells
  - BM_VisitIntersectingPolygonsDescendantCells
  source_file: /src/s2geometry/src/s2/s2shape_index_region_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ChainInterpolationQuery::S2ChainInterpolationQuery
  - S2ChainInterpolationQuery::Init
  - S2ChainInterpolationQuery::GetLength
  - S2ChainInterpolationQuery::GetLengthAtEdgeEnd
  - S2ChainInterpolationQuery::AtDistance
  - S2ChainInterpolationQuery::AtFraction
  - S2ChainInterpolationQuery::Slice
  - S2ChainInterpolationQuery::AddSlice
  source_file: /src/s2geometry/src/s2/s2chain_interpolation_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExpectWindingResult
  - ExpectDegenerateWindingResult
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_LoopWithPointCloud
  - ExpectWindingResult
  - ExpectDegenerateWindingResult
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_LoopWithPointCloud
  source_file: /src/s2geometry/src/s2/s2winding_operation_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ContainsVertexQuery::ContainsSign
  source_file: /src/s2geometry/src/s2/s2contains_vertex_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2textformat::MakePointOrDie
  - s2textformat::MakePoint
  - s2textformat::ParseLatLngsOrDie
  - s2textformat::ParseLatLngs
  - s2textformat::ParsePointsOrDie
  - s2textformat::ParsePoints
  - s2textformat::MakeLatLngOrDie
  - s2textformat::MakeLatLng
  - s2textformat::MakeLatLngRectOrDie
  - s2textformat::MakeLatLngRect
  - s2textformat::MakeCellIdOrDie
  - s2textformat::MakeCellId
  - s2textformat::MakeCellUnionOrDie
  - s2textformat::MakeCellUnion
  - s2textformat::MakeLoopOrDie
  - s2textformat::MakeLoop
  - s2textformat::MakePolylineOrDie
  - s2textformat::MakePolyline
  - s2textformat::MakeLaxPolylineOrDie
  - s2textformat::MakeLaxPolyline
  - s2textformat::MakePolygonOrDie
  - s2textformat::MakePolygon
  - s2textformat::MakeVerbatimPolygonOrDie
  - s2textformat::MakeVerbatimPolygon
  - s2textformat::MakeLaxPolygonOrDie
  - s2textformat::MakeLaxPolygon
  - s2textformat::MakeIndexOrDie
  - s2textformat::MakeIndex
  - s2textformat::MakePointOrDie
  - s2textformat::MakePoint
  - s2textformat::ParseLatLngsOrDie
  - s2textformat::ParseLatLngs
  - s2textformat::ParsePointsOrDie
  - s2textformat::ParsePoints
  - s2textformat::MakeLatLngOrDie
  - s2textformat::MakeLatLng
  - s2textformat::MakeLatLngRectOrDie
  - s2textformat::MakeLatLngRect
  - s2textformat::MakeCellIdOrDie
  - s2textformat::MakeCellId
  - s2textformat::MakeCellUnionOrDie
  - s2textformat::MakeCellUnion
  - s2textformat::MakeLoopOrDie
  - s2textformat::MakeLoop
  - s2textformat::MakePolylineOrDie
  - s2textformat::MakePolyline
  - s2textformat::MakeLaxPolylineOrDie
  - s2textformat::MakeLaxPolyline
  - s2textformat::MakePolygonOrDie
  - s2textformat::MakePolygon
  - s2textformat::MakeVerbatimPolygonOrDie
  - s2textformat::MakeVerbatimPolygon
  - s2textformat::MakeLaxPolygonOrDie
  - s2textformat::MakeLaxPolygon
  - s2textformat::MakeIndexOrDie
  - s2textformat::MakeIndex
  source_file: /src/s2geometry/src/s2/s2text_format.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s1chord_angle_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2edge_vector_shape_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::CountVertices
  - s2shapeutil::CountVertices
  - s2shapeutil::CountVertices
  - s2shapeutil::CountVertices
  source_file: /src/s2geometry/src/s2/s2shapeutil_count_vertices.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionSharder::S2RegionSharder
  - ToS2CellUnionMap
  - S2RegionSharder::GetIntersectionsByShard
  - S2RegionSharder::GetMostIntersectingShard
  - S2RegionSharder::GetIntersectingShards
  source_file: /src/s2geometry/src/s2/s2region_sharder.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~Layer()
  source_file: /src/s2geometry/src/s2/s2builder_layer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::FastEncodeShape
  - s2shapeutil::CompactEncodeShape
  - s2shapeutil::FullDecodeShape
  - s2shapeutil::LazyDecodeShape
  - s2shapeutil::EncodeTaggedShapes
  - s2shapeutil::FastEncodeTaggedShapes
  - s2shapeutil::CompactEncodeTaggedShapes
  - s2shapeutil::TaggedShapeFactory::TaggedShapeFactory
  - TaggedShapeFactory::operator[](int shape_id) const
  - s2shapeutil::FullDecodeShapeFactory
  - s2shapeutil::LazyDecodeShapeFactory
  - s2shapeutil::FullDecodeShapeFactory
  - s2shapeutil::LazyDecodeShapeFactory
  - s2shapeutil::VectorShapeFactory::VectorShapeFactory
  - VectorShapeFactory::operator[](int shape_id) const
  - s2shapeutil::SingletonShapeFactory
  - WrappedShapeFactory::operator[](int shape_id) const
  - s2shapeutil::FastEncodeShape
  - s2shapeutil::CompactEncodeShape
  - s2shapeutil::FullDecodeShape
  - s2shapeutil::LazyDecodeShape
  - s2shapeutil::EncodeTaggedShapes
  - s2shapeutil::FastEncodeTaggedShapes
  - s2shapeutil::CompactEncodeTaggedShapes
  - s2shapeutil::TaggedShapeFactory::TaggedShapeFactory
  - TaggedShapeFactory::operator[](int shape_id) const
  - s2shapeutil::FullDecodeShapeFactory
  - s2shapeutil::LazyDecodeShapeFactory
  - s2shapeutil::FullDecodeShapeFactory
  - s2shapeutil::LazyDecodeShapeFactory
  - s2shapeutil::VectorShapeFactory::VectorShapeFactory
  - VectorShapeFactory::operator[](int shape_id) const
  - s2shapeutil::SingletonShapeFactory
  - WrappedShapeFactory::operator[](int shape_id) const
  source_file: /src/s2geometry/src/s2/s2shapeutil_coding.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::IdentitySnapFunction::IdentitySnapFunction
  - s2builderutil::IdentitySnapFunction::IdentitySnapFunction
  - s2builderutil::IdentitySnapFunction::set_snap_radius
  - s2builderutil::IdentitySnapFunction::snap_radius
  - s2builderutil::IdentitySnapFunction::min_vertex_separation
  - s2builderutil::IdentitySnapFunction::min_edge_vertex_separation
  - s2builderutil::IdentitySnapFunction::SnapPoint
  - s2builderutil::IdentitySnapFunction::Clone
  - s2builderutil::S2CellIdSnapFunction::S2CellIdSnapFunction
  - s2builderutil::S2CellIdSnapFunction::S2CellIdSnapFunction
  - s2builderutil::S2CellIdSnapFunction::set_level
  - s2builderutil::S2CellIdSnapFunction::level
  - s2builderutil::S2CellIdSnapFunction::set_snap_radius
  - s2builderutil::S2CellIdSnapFunction::snap_radius
  - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
  - s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
  - s2builderutil::S2CellIdSnapFunction::min_vertex_separation
  - s2builderutil::S2CellIdSnapFunction::min_edge_vertex_separation
  - s2builderutil::S2CellIdSnapFunction::SnapPoint
  - s2builderutil::S2CellIdSnapFunction::Clone
  - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
  - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
  - s2builderutil::IntLatLngSnapFunction::set_exponent
  - s2builderutil::IntLatLngSnapFunction::exponent
  - s2builderutil::IntLatLngSnapFunction::set_snap_radius
  - s2builderutil::IntLatLngSnapFunction::snap_radius
  - s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
  - s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
  - s2builderutil::IntLatLngSnapFunction::min_vertex_separation
  - s2builderutil::IntLatLngSnapFunction::min_edge_vertex_separation
  - s2builderutil::IntLatLngSnapFunction::SnapPoint
  - s2builderutil::IntLatLngSnapFunction::Clone
  - s2builderutil::IdentitySnapFunction::IdentitySnapFunction
  - s2builderutil::IdentitySnapFunction::IdentitySnapFunction
  - s2builderutil::IdentitySnapFunction::set_snap_radius
  - s2builderutil::IdentitySnapFunction::snap_radius
  - s2builderutil::IdentitySnapFunction::min_vertex_separation
  - s2builderutil::IdentitySnapFunction::min_edge_vertex_separation
  - s2builderutil::IdentitySnapFunction::SnapPoint
  - s2builderutil::IdentitySnapFunction::Clone
  - s2builderutil::S2CellIdSnapFunction::S2CellIdSnapFunction
  - s2builderutil::S2CellIdSnapFunction::S2CellIdSnapFunction
  - s2builderutil::S2CellIdSnapFunction::set_level
  - s2builderutil::S2CellIdSnapFunction::level
  - s2builderutil::S2CellIdSnapFunction::set_snap_radius
  - s2builderutil::S2CellIdSnapFunction::snap_radius
  - s2builderutil::S2CellIdSnapFunction::MinSnapRadiusForLevel
  - s2builderutil::S2CellIdSnapFunction::LevelForMaxSnapRadius
  - s2builderutil::S2CellIdSnapFunction::min_vertex_separation
  - s2builderutil::S2CellIdSnapFunction::min_edge_vertex_separation
  - s2builderutil::S2CellIdSnapFunction::SnapPoint
  - s2builderutil::S2CellIdSnapFunction::Clone
  - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
  - s2builderutil::IntLatLngSnapFunction::IntLatLngSnapFunction
  - s2builderutil::IntLatLngSnapFunction::set_exponent
  - s2builderutil::IntLatLngSnapFunction::exponent
  - s2builderutil::IntLatLngSnapFunction::set_snap_radius
  - s2builderutil::IntLatLngSnapFunction::snap_radius
  - s2builderutil::IntLatLngSnapFunction::MinSnapRadiusForExponent
  - s2builderutil::IntLatLngSnapFunction::ExponentForMaxSnapRadius
  - s2builderutil::IntLatLngSnapFunction::min_vertex_separation
  - s2builderutil::IntLatLngSnapFunction::min_edge_vertex_separation
  - s2builderutil::IntLatLngSnapFunction::SnapPoint
  - s2builderutil::IntLatLngSnapFunction::Clone
  source_file: /src/s2geometry/src/s2/s2builderutil_snap_functions.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::EdgeIterator::EdgeIterator
  - s2shapeutil::EdgeIterator::edge
  - s2shapeutil::EdgeIterator::Next
  - s2shapeutil::EdgeIterator::DebugString
  - s2shapeutil::EdgeIterator::EdgeIterator
  - s2shapeutil::EdgeIterator::edge
  - s2shapeutil::EdgeIterator::Next
  - s2shapeutil::EdgeIterator::DebugString
  source_file: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::EncodeBaseShift
  - s2coding::EncodeS2CellIdVector
  - s2coding::EncodedS2CellIdVector::Init
  - s2coding::EncodedS2CellIdVector::Decode
  - s2coding::EncodedS2CellIdVector::Encode
  - s2coding::EncodeBaseShift
  - s2coding::EncodeS2CellIdVector
  - s2coding::EncodedS2CellIdVector::Init
  - s2coding::EncodedS2CellIdVector::Decode
  - s2coding::EncodedS2CellIdVector::Encode
  source_file: /src/s2geometry/src/s2/encoded_s2cell_id_vector.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2builderutil_snap_functions.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestIntervalOps
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/r1interval_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::SumEquals
  - S2::IntersectsFace
  - S2::IntersectsOppositeEdges
  - S2::GetExitAxis
  - S2::GetExitPoint
  - S2::MoveOriginToValidFace
  - S2::GetNextFace
  - S2::GetFaceSegments
  - S2::ClipDestination
  - S2::ClipToPaddedFace
  - S2::IntersectsRect
  - S2::UpdateEndpoint
  - S2::ClipBoundAxis
  - S2::GetClippedEdgeBound
  - S2::ClipEdgeBound
  - S2::ClipEdge
  - S2::SumEquals
  - S2::IntersectsFace
  - S2::IntersectsOppositeEdges
  - S2::GetExitAxis
  - S2::GetExitPoint
  - S2::MoveOriginToValidFace
  - S2::GetNextFace
  - S2::GetFaceSegments
  - S2::ClipDestination
  - S2::ClipToPaddedFace
  - S2::IntersectsRect
  - S2::UpdateEndpoint
  - S2::ClipBoundAxis
  - S2::GetClippedEdgeBound
  - S2::ClipEdgeBound
  - S2::ClipEdge
  source_file: /src/s2geometry/src/s2/s2edge_clipping.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::DistanceMatrix
  - s2polyline_alignment::GetBruteForceCost
  - s2polyline_alignment::VerifyCost
  - s2polyline_alignment::VerifyPath
  - s2polyline_alignment::GenPolylines
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::BM_GetExactVertexAlignmentCost
  - s2polyline_alignment::BM_GetExactVertexAlignment
  - s2polyline_alignment::BM_GetApproxVertexAlignment
  - s2polyline_alignment::ComputeMedoid
  - s2polyline_alignment::ComputeConsensus
  - s2polyline_alignment::BM_ComputeMedoid
  - s2polyline_alignment::BM_ComputeConsensusUnseeded
  - s2polyline_alignment::BM_ComputeConsensusSeeded
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::DistanceMatrix
  - s2polyline_alignment::GetBruteForceCost
  - s2polyline_alignment::VerifyCost
  - s2polyline_alignment::VerifyPath
  - s2polyline_alignment::GenPolylines
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::TEST
  - s2polyline_alignment::BM_GetExactVertexAlignmentCost
  - s2polyline_alignment::BM_GetExactVertexAlignment
  - s2polyline_alignment::BM_GetApproxVertexAlignment
  - s2polyline_alignment::ComputeMedoid
  - s2polyline_alignment::ComputeConsensus
  - s2polyline_alignment::BM_ComputeMedoid
  - s2polyline_alignment::BM_ComputeConsensusUnseeded
  - s2polyline_alignment::BM_ComputeConsensusSeeded
  source_file: /src/s2geometry/src/s2/s2polyline_alignment_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::NormalizeTest::NormalizeTest
  - s2builderutil::NormalizeTest::Run
  - s2builderutil::NormalizeTest::AddLayers
  - s2builderutil::NormalizeTest::ToString
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::ComputeUnion
  - s2builderutil::TEST
  - s2builderutil::NormalizeTest::NormalizeTest
  - s2builderutil::NormalizeTest::Run
  - s2builderutil::NormalizeTest::AddLayers
  - s2builderutil::NormalizeTest::ToString
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::TEST_F
  - s2builderutil::ComputeUnion
  - s2builderutil::TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TestProcessEdges
  - s2builder::TestProcessEdges
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TestMakeSubgraph
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TestProcessEdges
  - s2builder::TestProcessEdges
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TEST
  - s2builder::TestMakeSubgraph
  - s2builder::TEST
  - s2builder::TEST
  source_file: /src/s2geometry/src/s2/s2builder_graph_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: first
        type: VertexId
      - name: second
        type: VertexId
      - name: input_ids
        type: vector<InputEdgeId>
      item_type: struct
      name: TestEdge
      pos:
        line_end: 231
        line_start: 227
        source_file: /src/s2geometry/src/s2/s2builder_graph_test.cc
    - fields:
      - name: first
        type: VertexId
      - name: second
        type: VertexId
      - name: input_ids
        type: vector<InputEdgeId>
      item_type: struct
      name: TestEdge
      pos:
        line_end: 231
        line_start: 227
        source_file: /src/s2geometry/src/s2/s2builder_graph_test.cc
    typedefs: []
    union: []
- function_names:
  - S2CellUnionTestPeer::FromVerbatimNoChecks
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - AddCells
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - GetRadius
  - TEST
  - TEST
  - TEST
  - TestFromMinMax
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - BM_InitFromBeginEnd
  source_file: /src/s2geometry/src/s2/s2cell_union_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2MaxDistance::S2MaxDistance
  - S2MaxDistance::S2MaxDistance
  - operator S1ChordAngle() const
  - S2MaxDistance::Zero
  - S2MaxDistance::Infinity
  - S2MaxDistance::Negative
  - operator==(S2MaxDistance x, S2MaxDistance y)
  - operator<(S2MaxDistance x, S2MaxDistance y)
  - operator-(S2MaxDistance x, S1ChordAngle delta)
  - S2MaxDistance::GetChordAngleBound
  - S2MaxDistance::UpdateMin
  - S2MaxDistancePointTarget::S2MaxDistancePointTarget
  - S2MaxDistanceEdgeTarget::S2MaxDistanceEdgeTarget
  - S2MaxDistanceCellTarget::S2MaxDistanceCellTarget
  source_file: /src/s2geometry/src/s2/s2max_distance_targets.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2EdgeCrosserBase::S2EdgeCrosserBase
  - S2EdgeCrosserBase::a
  - S2EdgeCrosserBase::b
  - S2EdgeCrosserBase::c
  - S2EdgeCrosserBase::S2EdgeCrosserBase
  - operator=(const S2EdgeCrosserBase&)
  - S2EdgeCrosserBase<PointRep>::S2EdgeCrosserBase
  - S2EdgeCrosserBase<PointRep>::Init
  - S2EdgeCrosserBase<PointRep>::CrossingSign
  - S2EdgeCrosserBase<PointRep>::EdgeOrVertexCrossing
  - S2EdgeCrosserBase<PointRep>::SignedEdgeOrVertexCrossing
  - S2EdgeCrosserBase<PointRep>::last_interior_crossing_sign
  - S2EdgeCrosserBase<PointRep>::S2EdgeCrosserBase
  - S2EdgeCrosserBase<PointRep>::RestartAt
  - S2EdgeCrosserBase<PointRep>::CrossingSign
  - S2EdgeCrosserBase<PointRep>::EdgeOrVertexCrossing
  - S2EdgeCrosserBase<PointRep>::SignedEdgeOrVertexCrossing
  source_file: /src/s2geometry/src/s2/s2edge_crosser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::MakeEncodedS2CellIdVector
  - s2coding::TestEncodedS2CellIdVector
  - s2coding::TestEncodedS2CellIdVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::EncodedS2CellIdVectorInitNeverCrashes
  - s2coding::TEST
  - s2coding::MakeEncodedS2CellIdVector
  - s2coding::TestEncodedS2CellIdVector
  - s2coding::TestEncodedS2CellIdVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::EncodedS2CellIdVectorInitNeverCrashes
  - s2coding::TEST
  - s2coding::MakeEncodedS2CellIdVector
  - s2coding::TestEncodedS2CellIdVector
  - s2coding::TestEncodedS2CellIdVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::EncodedS2CellIdVectorInitNeverCrashes
  - s2coding::TEST
  - s2coding::MakeEncodedS2CellIdVector
  - s2coding::TestEncodedS2CellIdVector
  - s2coding::TestEncodedS2CellIdVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::EncodedS2CellIdVectorInitNeverCrashes
  - s2coding::TEST
  source_file: /src/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::EdgeIterator::shape_id
  - s2shapeutil::EdgeIterator::edge_id
  - s2shapeutil::EdgeIterator::shape_edge_id
  - s2shapeutil::EdgeIterator::Done
  - operator==(const EdgeIterator& other) const
  - operator!=(const EdgeIterator& other) const
  - s2shapeutil::EdgeIterator::shape_id
  - s2shapeutil::EdgeIterator::edge_id
  - s2shapeutil::EdgeIterator::shape_edge_id
  - s2shapeutil::EdgeIterator::Done
  - operator==(const EdgeIterator& other) const
  - operator!=(const EdgeIterator& other) const
  source_file: /src/s2geometry/src/s2/s2shapeutil_edge_iterator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::InterleaveUint32BitPairs
  - s2coding::DeinterleaveUint32BitPairs
  - s2coding::EncodeS2PointVector
  - s2coding::EncodedS2PointVector::Init
  - s2coding::EncodedS2PointVector::Init
  - s2coding::EncodedS2PointVector::Decode
  - s2coding::EncodedS2PointVector::Decode
  - s2coding::EncodedS2PointVector::Decode
  - s2coding::EncodedS2PointVector::Decode
  - s2coding::EncodedS2PointVector::Encode
  - s2coding::EncodeS2PointVectorFast
  - s2coding::EncodedS2PointVector::InitUncompressedFormat
  - s2coding::CellPoint
  - s2coding::BitMask
  - s2coding::MaxBitsForLevel
  - s2coding::BaseShift
  - s2coding::EncodeS2PointVectorCompact
  - s2coding::ChooseBestLevel
  - s2coding::ConvertCellsToValues
  - s2coding::ChooseBase
  - s2coding::CanEncode
  - s2coding::GetBlockCode
  - s2coding::EncodedS2PointVector::InitCellIdsFormat
  - s2coding::EncodedS2PointVector::DecodeCellIdsFormat
  - s2coding::InterleaveUint32BitPairs
  - s2coding::DeinterleaveUint32BitPairs
  - s2coding::EncodeS2PointVector
  - s2coding::EncodedS2PointVector::Init
  - s2coding::EncodedS2PointVector::Init
  - s2coding::EncodedS2PointVector::Decode
  - s2coding::EncodedS2PointVector::Decode
  - s2coding::EncodedS2PointVector::Decode
  - s2coding::EncodedS2PointVector::Decode
  - s2coding::EncodedS2PointVector::Encode
  - s2coding::EncodeS2PointVectorFast
  - s2coding::EncodedS2PointVector::InitUncompressedFormat
  - s2coding::CellPoint
  - s2coding::BitMask
  - s2coding::MaxBitsForLevel
  - s2coding::BaseShift
  - s2coding::EncodeS2PointVectorCompact
  - s2coding::ChooseBestLevel
  - s2coding::ConvertCellsToValues
  - s2coding::ChooseBase
  - s2coding::CanEncode
  - s2coding::GetBlockCode
  - s2coding::EncodedS2PointVector::InitCellIdsFormat
  - s2coding::EncodedS2PointVector::DecodeCellIdsFormat
  source_file: /src/s2geometry/src/s2/encoded_s2point_vector.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: level
        type: int8_t
      - name: si
        type: uint32_t
      item_type: struct
      name: CellPoint
      pos:
        line_end: 275
        line_start: 268
        source_file: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    - fields:
      - name: delta_bits
        type: int
      - name: offset_bits
        type: int
      - name: overlap_bits
        type: int
      item_type: struct
      name: BlockCode
      pos:
        line_end: 295
        line_start: 291
        source_file: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    - fields:
      - name: level
        type: int8_t
      - name: si
        type: uint32_t
      item_type: struct
      name: CellPoint
      pos:
        line_end: 275
        line_start: 268
        source_file: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    - fields:
      - name: delta_bits
        type: int
      - name: offset_bits
        type: int
      - name: overlap_bits
        type: int
      item_type: struct
      name: BlockCode
      pos:
        line_end: 295
        line_start: 291
        source_file: /src/s2geometry/src/s2/encoded_s2point_vector.cc
    typedefs: []
    union: []
- function_names:
  - S2LatLngRect::FromCenterSize
  - S2LatLngRect::FromPoint
  - S2LatLngRect::FromPointPair
  - S2LatLngRect::Clone
  - S2LatLngRect::GetVertex
  - S2LatLngRect::GetCenter
  - S2LatLngRect::GetSize
  - S2LatLngRect::Area
  - S2LatLngRect::GetCentroid
  - S2LatLngRect::Contains
  - S2LatLngRect::InteriorContains
  - S2LatLngRect::InteriorContains
  - S2LatLngRect::Contains
  - S2LatLngRect::InteriorContains
  - S2LatLngRect::Intersects
  - S2LatLngRect::InteriorIntersects
  - S2LatLngRect::BoundaryIntersects
  - S2LatLngRect::AddPoint
  - S2LatLngRect::AddPoint
  - S2LatLngRect::Expanded
  - S2LatLngRect::PolarClosure
  - S2LatLngRect::Union
  - S2LatLngRect::Intersection
  - S2LatLngRect::ExpandedByDistance
  - S2LatLngRect::GetCapBound
  - S2LatLngRect::GetRectBound
  - S2LatLngRect::GetCellUnionBound
  - S2LatLngRect::Contains
  - S2LatLngRect::MayIntersect
  - S2LatLngRect::Encode
  - S2LatLngRect::Decode
  - S2LatLngRect::IntersectsLngEdge
  - S2LatLngRect::IntersectsLatEdge
  - S2LatLngRect::Intersects
  - S2LatLngRect::GetDistance
  - S2LatLngRect::GetDistance
  - S2LatLngRect::GetHausdorffDistance
  - S2LatLngRect::GetDirectedHausdorffDistance
  - S2LatLngRect::GetDirectedHausdorffDistance
  - S2LatLngRect::GetBisectorIntersection
  - S2LatLngRect::GetInteriorMaxDistance
  - S2LatLngRect::Contains
  - S2LatLngRect::ApproxEquals
  - S2LatLngRect::ApproxEquals
  - '& operator<<(std::ostream& os, const S2LatLngRect& r)'
  source_file: /src/s2geometry/src/s2/s2latlng_rect.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& options() const'
  - EncodedS2ShapeIndex::num_shape_ids
  - EncodedS2ShapeIndex::Iterator::Locate
  - EncodedS2ShapeIndex::Iterator::Locate
  - EncodedS2ShapeIndex::Iterator::Clone
  - EncodedS2ShapeIndex::kUndecodedShape
  - EncodedS2ShapeIndex::AtomicShape::AtomicShape
  - EncodedS2ShapeIndex::EncodedS2ShapeIndex
  - operator=(const EncodedS2ShapeIndex&)
  - "EncodedS2ShapeIndex::Iterator::Iterator(\n    const EncodedS2ShapeIndex* index,
    InitialPosition pos)"
  - "EncodedS2ShapeIndex::Iterator::Init(\n    const EncodedS2ShapeIndex* index, InitialPosition
    pos)"
  - EncodedS2ShapeIndex::Iterator::id() const
  - EncodedS2ShapeIndex::Iterator::done() const
  - '& EncodedS2ShapeIndex::Iterator::cell() const'
  - EncodedS2ShapeIndex::Iterator::Begin()
  - EncodedS2ShapeIndex::Iterator::Finish()
  - EncodedS2ShapeIndex::Iterator::Next()
  - EncodedS2ShapeIndex::Iterator::Prev()
  - EncodedS2ShapeIndex::Iterator::Seek(S2CellId target)
  - EncodedS2ShapeIndex::NewIterator
  - EncodedS2ShapeIndex::shape
  - EncodedS2ShapeIndex::cell_decoded
  - EncodedS2ShapeIndex::set_cell_decoded
  - EncodedS2ShapeIndex::max_cell_cache_size
  source_file: /src/s2geometry/src/s2/encoded_s2shape_index.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::EncodedS2CellIdVector::EncodedS2CellIdVector
  - s2coding::EncodedS2CellIdVector::size
  - EncodedS2CellIdVector::operator[](int i) const
  - s2coding::EncodedS2CellIdVector::lower_bound
  - s2coding::EncodedS2CellIdVector::EncodedS2CellIdVector
  - s2coding::EncodedS2CellIdVector::size
  - EncodedS2CellIdVector::operator[](int i) const
  - s2coding::EncodedS2CellIdVector::lower_bound
  source_file: /src/s2geometry/src/s2/encoded_s2cell_id_vector.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2R2Rect::S2R2Rect
  - S2R2Rect::S2R2Rect
  - S2R2Rect::S2R2Rect
  - S2R2Rect::FromCenterSize
  - S2R2Rect::FromPoint
  - S2R2Rect::FromPointPair
  - '& S2R2Rect::x() const'
  - '& S2R2Rect::y() const'
  - S2R2Rect::lo
  - S2R2Rect::hi
  - '& S2R2Rect::operator[](int i) const'
  - '& S2R2Rect::operator[](int i)'
  - S2R2Rect::Empty
  - S2R2Rect::is_valid
  - S2R2Rect::is_empty
  - S2R2Rect::GetVertex
  - S2R2Rect::GetVertex
  - S2R2Rect::GetCenter
  - S2R2Rect::GetSize
  - S2R2Rect::Contains
  - S2R2Rect::InteriorContains
  - S2R2Rect::Contains
  - S2R2Rect::InteriorContains
  - S2R2Rect::Intersects
  - S2R2Rect::InteriorIntersects
  - S2R2Rect::AddPoint
  - S2R2Rect::Project
  - S2R2Rect::Expanded
  - S2R2Rect::Expanded
  - S2R2Rect::Union
  - S2R2Rect::Intersection
  - S2R2Rect::operator==(const S2R2Rect& other) const
  - S2R2Rect::operator!=(const S2R2Rect& other) const
  - S2R2Rect::ApproxEquals
  source_file: /src/s2geometry/src/s2/s2r2rect.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RectFromDegrees
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestIntervalOps
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestCellOps
  - TEST
  - TEST
  - TEST
  - TestCentroidSplitting
  - TEST
  - GetDistance
  - BruteForceDistance
  - BruteForceRectPointDistance
  - VerifyGetDistance
  - PointRectFromDegrees
  - VerifyGetRectPointDistance
  - TEST
  - TEST
  - TEST
  - TEST
  - VerifyGetDirectedHausdorffDistance
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2latlng_rect_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - LevelStats
  - GatherStats
  - TestSubdivide
  - CheckMinMaxAvg
  - TEST
  - ExpandChildren1
  - ExpandChildren2
  - BM_Subdivide
  - BM_Constructor
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - GetDistanceToPointBruteForce
  - GetMaxDistanceToPointBruteForce
  - GetDistanceToCellBruteForce
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ChooseEdgeNearCell
  - GetDistanceToEdgeBruteForce
  - GetMaxDistanceToEdgeBruteForce
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - MakeBenchmarkData
  - BM_GetDistanceToPoint
  - BM_GetDistanceToEdge
  - BM_GetDistanceToCell
  - BM_GetDistanceToCellSameFace
  - BM_DistanceCompare
  source_file: /src/s2geometry/src/s2/s2cell_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: count
        type: double
      - name: min_area
        type: double
      - name: min_width
        type: double
      - name: min_edge
        type: double
      - name: min_diag
        type: double
      - name: min_angle_span
        type: double
      - name: min_approx_ratio
        type: double
      item_type: struct
      name: LevelStats
      pos:
        line_end: 129
        line_start: 114
        source_file: /src/s2geometry/src/s2/s2cell_test.cc
    typedefs: []
    union: []
- function_names:
  - S2LaxPolylineShape::S2LaxPolylineShape
  - S2LaxPolylineShape::num_vertices
  - '& vertex(int i) const'
  - S2LaxPolylineShape::num_edges
  - S2LaxPolylineShape::dimension
  - S2LaxPolylineShape::GetReferencePoint
  - S2LaxPolylineShape::type_tag
  - EncodedS2LaxPolylineShape::EncodedS2LaxPolylineShape
  - EncodedS2LaxPolylineShape::num_vertices
  - EncodedS2LaxPolylineShape::vertex
  - EncodedS2LaxPolylineShape::num_edges
  - EncodedS2LaxPolylineShape::dimension
  - EncodedS2LaxPolylineShape::GetReferencePoint
  - EncodedS2LaxPolylineShape::type_tag
  source_file: /src/s2geometry/src/s2/s2lax_polyline_shape.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/s2geometry/src/s2/s2lax_polyline_shape.h
      type: S2HintCoder<S2LaxPolylineShape>
    union: []
- function_names:
  - S2Earth::MetersToAngle
  - S2Earth::MetersToChordAngle
  - S2Earth::MetersToRadians
  - S2Earth::ToMeters
  - S2Earth::ToMeters
  - S2Earth::RadiansToMeters
  - S2Earth::KmToAngle
  - S2Earth::KmToChordAngle
  - S2Earth::KmToRadians
  - S2Earth::ToKm
  - S2Earth::ToKm
  - S2Earth::RadiansToKm
  - S2Earth::ToAngle
  - S2Earth::ToChordAngle
  - S2Earth::ToRadians
  - S2Earth::ToDistance
  - S2Earth::ToDistance
  - S2Earth::RadiansToDistance
  - S2Earth::SquareKmToSteradians
  - S2Earth::SquareMetersToSteradians
  - S2Earth::SteradiansToSquareKm
  - S2Earth::SteradiansToSquareMeters
  - S2Earth::KmToLongitudeRadians
  - S2Earth::ToLongitudeRadians
  - S2Earth::GetDistanceMeters
  - S2Earth::GetDistanceMeters
  - S2Earth::GetDistanceKm
  - S2Earth::GetDistanceKm
  - S2Earth::GetDistance
  - S2Earth::GetDistance
  - S2Earth::RadiusMeters
  - S2Earth::RadiusKm
  - S2Earth::Radius
  - S2Earth::LowestAltitudeMeters
  - S2Earth::HighestAltitudeMeters
  source_file: /src/s2geometry/src/s2/s2earth.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~S2Region()
  - S2Region::S2Region
  - S2Region::S2Region
  - S2Region::S2Region
  - '& operator=(const S2Region&)'
  - '& operator=(S2Region&&)'
  source_file: /src/s2geometry/src/s2/s2region.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CompareS2CellToPadded
  - TEST
  - TEST
  - SampleInterval
  - TEST
  - CompareS2CellToPadded
  - TEST
  - TEST
  - SampleInterval
  - TEST
  source_file: /src/s2geometry/src/s2/s2padded_cell_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::IndexedLaxPolylineLayer::IndexedLaxPolylineLayer
  - s2builderutil::IndexedLaxPolylineLayer::graph_options
  - s2builderutil::IndexedLaxPolylineLayer::Build
  - LaxPolylineLayer::Options::Options()
  - LaxPolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
  - LaxPolylineLayer::Options::edge_type() const
  - "LaxPolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  - s2builderutil::IndexedLaxPolylineLayer::IndexedLaxPolylineLayer
  - s2builderutil::IndexedLaxPolylineLayer::graph_options
  - s2builderutil::IndexedLaxPolylineLayer::Build
  - LaxPolylineLayer::Options::Options()
  - LaxPolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
  - LaxPolylineLayer::Options::edge_type() const
  - "LaxPolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  source_file: /src/s2geometry/src/s2/s2builderutil_lax_polyline_layer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Loop::num_vertices
  - '& vertex(int i) const'
  - '& oriented_vertex(int i) const'
  - S2Loop::vertices_span
  - S2Loop::depth
  - S2Loop::set_depth
  - S2Loop::is_hole
  - S2Loop::sign
  - S2Loop::GetRectBound
  - S2Loop::Shape::Shape
  - S2Loop::Shape::Shape
  - S2Loop::Shape::Init
  - S2Loop::Shape::loop
  - S2Loop::Shape::num_edges
  - S2Loop::Shape::edge
  - S2Loop::Shape::dimension
  - S2Loop::Shape::GetReferencePoint
  - S2Loop::Shape::chain_edge
  - S2Loop::Shape::chain_position
  - S2Loop::OwningShape::OwningShape
  - S2Loop::OwningShape::OwningShape
  - S2Loop::OwningShape::Init
  - ~OwningShape() override
  - S2Loop::ForceBuildIndex
  - S2Loop::contains_origin
  - S2Loop::kEmpty
  - S2Loop::kFull
  - S2Loop::is_empty
  - S2Loop::is_full
  - S2Loop::is_empty_or_full
  - S2Loop::GetSurfaceIntegral
  source_file: /src/s2geometry/src/s2/s2loop.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ClosestCellQueryBase::Result::Result
  - S2ClosestCellQueryBase::Result::Result
  - S2ClosestCellQueryBase::Result::distance
  - S2ClosestCellQueryBase::Result::cell_id
  - S2ClosestCellQueryBase::Result::label
  - S2ClosestCellQueryBase::Result::is_empty
  - operator==(const Result& x, const Result& y)
  - operator<(const Result& x, const Result& y)
  - S2ClosestCellQueryBase::S2ClosestCellQueryBase
  - operator=(const S2ClosestCellQueryBase&)
  - '& options() const'
  - S2ClosestCellQueryBase::QueueEntry
  - operator<(const QueueEntry& other) const
  - S2ClosestCellQueryBase<Distance>::Options::Options()
  - S2ClosestCellQueryBase<Distance>::Options::max_results() const
  - "S2ClosestCellQueryBase<Distance>::Options::set_max_results(\n    int max_results)"
  - "S2ClosestCellQueryBase<Distance>::Options::max_distance()\n    const"
  - "S2ClosestCellQueryBase<Distance>::Options::set_max_distance(\n    Distance max_distance)"
  - S2ClosestCellQueryBase<Distance>::Options::max_error() const
  - "S2ClosestCellQueryBase<Distance>::Options::set_max_error(\n    Delta max_error)"
  - "* S2ClosestCellQueryBase<Distance>::Options::region()\n    const"
  - "S2ClosestCellQueryBase<Distance>::Options::set_region(\n    const S2Region* region)"
  - S2ClosestCellQueryBase<Distance>::Options::use_brute_force() const
  - "S2ClosestCellQueryBase<Distance>::Options::set_use_brute_force(\n    bool use_brute_force)"
  - S2ClosestCellQueryBase<Distance>::S2ClosestCellQueryBase
  - S2ClosestCellQueryBase<Distance>::~S2ClosestCellQueryBase()
  - S2ClosestCellQueryBase<Distance>::S2ClosestCellQueryBase
  - S2ClosestCellQueryBase<Distance>::Init
  - S2ClosestCellQueryBase<Distance>::ReInit
  - '&

    S2ClosestCellQueryBase<Distance>::index() const'
  - S2ClosestCellQueryBase<Distance>::FindClosestCells
  - S2ClosestCellQueryBase<Distance>::FindClosestCell
  - S2ClosestCellQueryBase<Distance>::FindClosestCells
  - S2ClosestCellQueryBase<Distance>::FindClosestCellsInternal
  - S2ClosestCellQueryBase<Distance>::FindClosestCellsBruteForce
  - S2ClosestCellQueryBase<Distance>::FindClosestCellsOptimized
  - S2ClosestCellQueryBase<Distance>::InitQueue
  - S2ClosestCellQueryBase<Distance>::InitCovering
  - S2ClosestCellQueryBase<Distance>::AddInitialRange
  - S2ClosestCellQueryBase<Distance>::MaybeAddResult
  - S2ClosestCellQueryBase<Distance>::ProcessOrEnqueue
  - S2ClosestCellQueryBase<Distance>::AddRange
  source_file: /src/s2geometry/src/s2/s2closest_cell_query_base.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: distance
        type: Distance
      - name: id
        type: S2CellId
      item_type: struct
      name: QueueEntry
      pos:
        line_end: 360
        line_start: 344
        source_file: /src/s2geometry/src/s2/s2closest_cell_query_base.h
    typedefs: []
    union: []
- function_names:
  - S2::GetLength
  - S2::GetCentroid
  - S2::GetLength
  - S2::GetCentroid
  source_file: /src/s2geometry/src/s2/s2polyline_measures.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestS2Polyline
  - TestS2Polyline
  - TestS2PolylineUnchanged
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestS2Polyline
  - TestS2Polyline
  - TestS2PolylineUnchanged
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExpectIdSet
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/id_set_lexicon_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2RegionSharderTest::IndexFromCoverings
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - S2RegionSharderTest::IndexFromCoverings
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/s2geometry/src/s2/s2region_sharder_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SnapPointToLevel
  - SnapPointsToLevel
  - MakeRegularPoints
  - MakeXYZFaceSiTiPoints
  - S2PointCompressionTest::SetUp
  - S2PointCompressionTest::Encode
  - S2PointCompressionTest::Decode
  - S2PointCompressionTest::Roundtrip
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - BM_S2EncodePointsCompressed
  - BM_S2DecodePointsCompressed
  - SnapPointToLevel
  - SnapPointsToLevel
  - MakeRegularPoints
  - MakeXYZFaceSiTiPoints
  - S2PointCompressionTest::SetUp
  - S2PointCompressionTest::Encode
  - S2PointCompressionTest::Decode
  - S2PointCompressionTest::Roundtrip
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - BM_S2EncodePointsCompressed
  - BM_S2DecodePointsCompressed
  source_file: /src/s2geometry/src/s2/s2point_compression_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ValidationQueryBase::S2ValidationQueryBase
  - ~S2ValidationQueryBase()
  - S2ValidationQueryBase::Start
  - S2ValidationQueryBase::CheckShape
  - S2ValidationQueryBase::StartCell
  - S2ValidationQueryBase::StartShape
  - S2ValidationQueryBase::CheckEdge
  - S2ValidationQueryBase::FinishShape
  - S2ValidationQueryBase::Finish
  - '& Index() const'
  - '& IncidentEdges() const'
  - '& CurrentCell() const'
  - S2ValidationQueryBase::S2ValidationQueryBase
  - '& operator=(const S2ValidationQueryBase&)'
  - S2ValidationQueryBase::SetIndex
  - S2ValidationQueryBase::SetCurrentCell
  - S2ValidQuery::Options::Options
  - S2ValidQuery::Options::allowed_touches
  - "& set_allowed_touches(  //\n        int dima, int dimb, std::pair<TouchType,
    TouchType> types)"
  - S2ValidQuery::Options::allow_duplicate_polyline_edges
  - '& set_allow_duplicate_polyline_edges(bool flag)'
  - S2ValidQuery::Options::allow_polyline_interior_crossings
  - '& set_allow_polyline_interior_crossings(bool flag)'
  - S2ValidQuery::Options::allow_reverse_duplicates
  - '& set_allow_reverse_duplicates(bool flag)'
  - S2ValidQuery::Options::allow_degenerate_edges
  - '& set_allow_degenerate_edges(bool flag)'
  - '& options() const'
  - '& mutable_options()'
  - S2ValidQuery::ValidPoint
  - SortEdgesCcw
  - S2ValidationQueryBase<IndexType>::Validate
  - S2LegacyValidQuery::ShapeChainVertex
  - S2LegacyValidQuery::AbslHashValue
  - S2ValidQuery<IndexType>::CheckShape
  - const
  - const
  - PolylineVertexIsBoundaryPoint
  - S2ValidQuery<IndexType>::PointContained
  - S2ValidQuery<IndexType>::CheckChainOrientation
  - S2ValidQuery<IndexType>::CheckEdge
  - CheckVertexCrossings
  - EdgeWithInfo
  - S2LegacyValidQuery<IndexType>::S2LegacyValidQuery
  - S2LegacyValidQuery<IndexType>::CheckShape
  - S2LegacyValidQuery<IndexType>::CheckEdge
  source_file: /src/s2geometry/src/s2/s2validation_query.h
  types:
    enum:
    - enumerators:
      - name: kTouchNone
        value: '0b00'
      - name: kTouchInterior
        value: '0b01'
      - name: kTouchAny
        value: '0b11'
      - name: kTouchBoundary
        value: '0b10'
      item_type: enum
      name: TouchType
      pos:
        line_end: 246
        line_start: 241
        source_file: /src/s2geometry/src/s2/s2validation_query.h
    preproc_defs: []
    structs:
    - fields:
      - name: vertex
        type: S2Point
      - name: edge_id
        type: int32_t
      - name: shape_id
        type: int32_t
      - name: dim
        type: int32_t
      - name: on_boundary
        type: bool
      item_type: struct
      name: TestVertex
      pos:
        line_end: 400
        line_start: 394
        source_file: /src/s2geometry/src/s2/s2validation_query.h
    - fields:
      - name: vertex
        type: S2Point
      - name: chain
        type: int
      - name: shape
        type: int
      item_type: struct
      name: ShapeChainVertex
      pos:
        line_end: 589
        line_start: 575
        source_file: /src/s2geometry/src/s2/s2validation_query.h
    - fields:
      - name: id
        type: int
      - name: chain
        type: int
      - name: prev
        type: int
      - name: sign
        type: int
      item_type: struct
      name: EdgeWithInfo
      pos:
        line_end: 1111
        line_start: 1103
        source_file: /src/s2geometry/src/s2/s2validation_query.h
    typedefs: []
    union: []
- function_names:
  - R1Interval::R1Interval
  - R1Interval::R1Interval
  - R1Interval::Empty
  - R1Interval::FromPoint
  - R1Interval::FromPointPair
  - R1Interval::lo
  - R1Interval::hi
  - R1Interval::set_lo
  - R1Interval::set_hi
  - operator[](int i) const
  - '& operator[](int i)'
  - '& bounds() const'
  - R1Interval::mutable_bounds
  - R1Interval::is_empty
  - R1Interval::GetCenter
  - R1Interval::GetLength
  - R1Interval::Contains
  - R1Interval::InteriorContains
  - R1Interval::Contains
  - R1Interval::InteriorContains
  - R1Interval::Intersects
  - R1Interval::InteriorIntersects
  - R1Interval::GetDirectedHausdorffDistance
  - R1Interval::AddPoint
  - R1Interval::AddInterval
  - R1Interval::Project
  - R1Interval::Expanded
  - R1Interval::Union
  - R1Interval::Intersection
  - operator==(const R1Interval& y) const
  - operator!=(const R1Interval& y) const
  - R1Interval::ApproxEquals
  - '& operator<<(std::ostream& os, const R1Interval& x)'
  - AbslHashValue
  source_file: /src/s2geometry/src/s2/r1interval.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SequenceLexicon::Sequence::begin
  - SequenceLexicon::Sequence::end
  - SequenceLexicon::Sequence::size
  - SequenceLexicon::Sequence::Sequence
  - "SequenceLexicon<T, Hasher, KeyEqual>::IdHasher::IdHasher(\n    const Hasher&
    hasher, const SequenceLexicon* lexicon)"
  - '& SequenceLexicon<T, Hasher, KeyEqual>::IdHasher::hasher() const'
  - "SequenceLexicon<T, Hasher, KeyEqual>::IdHasher::operator()(\n    uint32_t id)
    const"
  - "SequenceLexicon<T, Hasher, KeyEqual>::IdKeyEqual::IdKeyEqual(\n    const KeyEqual&
    key_equal, const SequenceLexicon* lexicon)"
  - "& SequenceLexicon<T, Hasher, KeyEqual>::IdKeyEqual::key_equal()\n    const"
  - "SequenceLexicon<T, Hasher, KeyEqual>::IdKeyEqual::operator()(\n    uint32_t id1,
    uint32_t id2) const"
  - SequenceLexicon<T, Hasher, KeyEqual>::SequenceLexicon
  - SequenceLexicon<T, Hasher, KeyEqual>::SequenceLexicon
  - SequenceLexicon<T, Hasher, KeyEqual>::SequenceLexicon
  - '&

    SequenceLexicon<T, Hasher, KeyEqual>::operator=(const SequenceLexicon& x)'
  - '&

    SequenceLexicon<T, Hasher, KeyEqual>::operator=(SequenceLexicon&& x) noexcept'
  - SequenceLexicon<T, Hasher, KeyEqual>::Clear
  - SequenceLexicon<T, Hasher, KeyEqual>::Add
  - SequenceLexicon<T, Hasher, KeyEqual>::Add
  - SequenceLexicon<T, Hasher, KeyEqual>::size
  - SequenceLexicon<T, Hasher, KeyEqual>::sequence
  source_file: /src/s2geometry/src/s2/sequence_lexicon.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - GetContainingShapes
  - IsSubsetOfSize
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2min_distance_targets_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestBufferIndex
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2shape_index_buffered_region_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CheckUpdateMinDistanceMaxError
  - TEST
  - TEST
  - CheckDistance
  - TEST
  - TEST
  - TEST
  - CheckMaxDistance
  - TEST
  - ChoosePoint
  - TEST
  - TestInterpolate
  - TEST
  - TEST
  - TEST
  - CheckEdgePairMinDistance
  - TEST
  - CheckEdgePairMaxDistance
  - TEST
  - IsEdgeBNearEdgeA
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - CheckUpdateMinDistanceMaxError
  - TEST
  - TEST
  - CheckDistance
  - TEST
  - TEST
  - TEST
  - CheckMaxDistance
  - TEST
  - ChoosePoint
  - TEST
  - TestInterpolate
  - TEST
  - TEST
  - TEST
  - CheckEdgePairMinDistance
  - TEST
  - CheckEdgePairMaxDistance
  - TEST
  - IsEdgeBNearEdgeA
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2edge_distances_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestFaceClipping
  - TestFaceClippingEdgePair
  - PerturbedCornerOrMidpoint
  - TEST
  - ChooseRectPoint
  - GetFraction
  - CheckPointOnBoundary
  - TestClipEdge
  - ChooseEndpoint
  - ChooseEndpoint
  - TestEdgeClipping
  - TEST
  - BM_EdgeClippingDisjoint
  source_file: /src/s2geometry/src/s2/s2edge_clipping_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::PolygonDegeneracy
  - s2builderutil::PolygonDegeneracy
  - operator==(PolygonDegeneracy y) const
  - operator<(PolygonDegeneracy y) const
  - s2builderutil::PolygonDegeneracy
  - s2builderutil::PolygonDegeneracy
  - operator==(PolygonDegeneracy y) const
  - operator<(PolygonDegeneracy y) const
  source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: edge_id
        type: uint32_t
      - name: is_hole
        type: uint32_t
      item_type: struct
      name: PolygonDegeneracy
      pos:
        line_end: 56
        line_start: 42
        source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    - fields:
      - name: edge_id
        type: uint32_t
      - name: is_hole
        type: uint32_t
      item_type: struct
      name: PolygonDegeneracy
      pos:
        line_end: 56
        line_start: 42
        source_file: /src/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - ~PointIndexFactory()
  - AddPoints
  - AddPoints
  - AddPoints
  - GetClosestPoints
  - TestFindClosestPoints
  - TestWithIndexFactory
  - TEST
  - TEST
  - TEST
  - TEST
  - BenchmarkFindClosest
  - BM_FindClosest
  - BM_FindClosestMaxDistPow10
  - BM_FindClosestNearSite
  - BM_FindClosestToEdge
  - BM_FindClosestToEdgeNearSite
  source_file: /src/s2geometry/src/s2/s2closest_point_query_test.cc
  types:
    enum:
    - enumerators:
      - name: POINT
      - name: EDGE
      item_type: enum
      name: TargetType
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    preproc_defs: []
    structs:
    - fields:
      - name: "AddPoints(const S2Cap& index_cap, int num_points,\n                         absl::BitGenRef
          bitgen, TestIndex* index) const"
        type: void
      item_type: struct
      name: PointIndexFactory
      pos:
        line_end: 114
        line_start: 106
        source_file: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    - fields: []
      item_type: struct
      name: CirclePointIndexFactory
      pos:
        line_end: 129
        line_start: 120
        source_file: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    - fields: []
      item_type: struct
      name: FractalPointIndexFactory
      pos:
        line_end: 145
        line_start: 133
        source_file: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    - fields: []
      item_type: struct
      name: GridPointIndexFactory
      pos:
        line_end: 164
        line_start: 148
        source_file: /src/s2geometry/src/s2/s2closest_point_query_test.cc
    typedefs: []
    union: []
- function_names:
  - s2coding::EncodedUintVector::EncodedUintVector
  - s2coding::EncodeUintWithLength
  - s2coding::GetUintWithLength
  - s2coding::DecodeUintWithLength
  - s2coding::EncodeUintVector
  - s2coding::EncodedUintVector<T>::Init
  - s2coding::EncodedUintVector<T>::Clear
  - s2coding::EncodedUintVector<T>::size
  - EncodedUintVector<T>::operator[](int i) const
  - s2coding::EncodedUintVector<T>::lower_bound
  - s2coding::EncodedUintVector<T>::lower_bound
  - s2coding::EncodedUintVector<T>::Decode
  - s2coding::EncodedUintVector<T>::Encode
  - s2coding::EncodedUintVector::EncodedUintVector
  - s2coding::EncodeUintWithLength
  - s2coding::GetUintWithLength
  - s2coding::DecodeUintWithLength
  - s2coding::EncodeUintVector
  - s2coding::EncodedUintVector<T>::Init
  - s2coding::EncodedUintVector<T>::Clear
  - s2coding::EncodedUintVector<T>::size
  - EncodedUintVector<T>::operator[](int i) const
  - s2coding::EncodedUintVector<T>::lower_bound
  - s2coding::EncodedUintVector<T>::lower_bound
  - s2coding::EncodedUintVector<T>::Decode
  - s2coding::EncodedUintVector<T>::Encode
  source_file: /src/s2geometry/src/s2/encoded_uint_vector.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Loop::S2Loop
  - S2Loop::S2Loop
  - '& S2Loop::operator=(const S2Loop& src)'
  - S2Loop::S2Loop
  - '& S2Loop::operator=(S2Loop&& b) noexcept'
  - S2Loop::S2Loop
  - S2Loop::S2Loop
  - S2Loop::set_s2debug_override
  - S2Loop::s2debug_override
  - S2Loop::ClearIndex
  - S2Loop::Init
  - S2Loop::IsValid
  - const
  - const
  - S2Loop::InitOriginAndBound
  - S2Loop::InitBound
  - S2Loop::InitIndex
  - S2Loop::S2Loop
  - S2Loop::~S2Loop()
  - S2Loop::Clone
  - S2Loop::FindVertex
  - S2Loop::IsNormalized
  - S2Loop::Normalize
  - S2Loop::Invert
  - S2Loop::GetArea
  - S2Loop::GetCentroid
  - S2Loop::GetCanonicalLoopOrder
  - S2Loop::GetDistance
  - S2Loop::GetDistanceToBoundary
  - S2Loop::Project
  - S2Loop::ProjectToBoundary
  - S2Loop::GetCurvature
  - S2Loop::GetCurvatureMaxError
  - S2Loop::GetCapBound
  - S2Loop::GetCellUnionBound
  - S2Loop::Contains
  - S2Loop::MayIntersect
  - S2Loop::BoundaryApproxIntersects
  - S2Loop::Contains
  - S2Loop::BruteForceContains
  - S2Loop::Contains
  - S2Loop::Encode
  - S2Loop::Decode
  - S2Loop::DecodeInternal
  - LoopRelation::LoopRelation
  - ~LoopRelation()
  - RangeIterator::RangeIterator
  - RangeIterator::id
  - '& cell() const'
  - RangeIterator::range_min
  - RangeIterator::range_max
  - '& clipped() const'
  - RangeIterator::num_edges
  - RangeIterator::contains_center
  - RangeIterator::Next
  - RangeIterator::Done
  - RangeIterator::SeekTo
  - RangeIterator::SeekBeyond
  - RangeIterator::Refresh
  - LoopCrosser::LoopCrosser
  - LoopCrosser::a_crossing_target
  - LoopCrosser::b_crossing_target
  - LoopCrosser::StartEdge
  - LoopCrosser::EdgeCrossesCell
  - LoopCrosser::CellCrossesCell
  - LoopCrosser::CellCrossesAnySubcell
  - LoopCrosser::HasCrossing
  - LoopCrosser::HasCrossingRelation
  - S2Loop::HasCrossingRelation
  - ContainsRelation::ContainsRelation
  - ContainsRelation::found_shared_vertex
  - ContainsRelation::a_crossing_target
  - ContainsRelation::b_crossing_target
  - ContainsRelation::WedgesCross
  - S2Loop::Contains
  - IntersectsRelation::IntersectsRelation
  - IntersectsRelation::found_shared_vertex
  - IntersectsRelation::a_crossing_target
  - IntersectsRelation::b_crossing_target
  - IntersectsRelation::WedgesCross
  - S2Loop::Intersects
  - WedgeContainsSemiwedge
  - CompareBoundaryRelation::CompareBoundaryRelation
  - CompareBoundaryRelation::found_shared_vertex
  - CompareBoundaryRelation::contains_edge
  - CompareBoundaryRelation::a_crossing_target
  - CompareBoundaryRelation::b_crossing_target
  - CompareBoundaryRelation::WedgesCross
  - S2Loop::CompareBoundary
  - S2Loop::ContainsNested
  - S2Loop::Equals
  - S2Loop::BoundaryEquals
  - S2Loop::BoundaryApproxEquals
  - MatchBoundaries
  - S2Loop::BoundaryNear
  - S2Loop::GetXYZFaceSiTiVertices
  - S2Loop::EncodeCompressed
  - S2Loop::DecodeCompressed
  - S2Loop::GetCompressedEncodingProperties
  - S2Loop::MakeRegularLoop
  - S2Loop::MakeRegularLoop
  - S2Loop::SpaceUsed
  - S2Loop::Shape::num_chains() const
  - S2Loop::Shape::chain(int i) const
  source_file: /src/s2geometry/src/s2/s2loop.cc
  types:
    enum:
    - enumerators:
      - name: kOriginInside
      - name: kNumProperties
      - name: kBoundEncoded
      item_type: enum
      name: CompressedLoopProperty
      pos:
        line_end: 99
        line_start: 95
        source_file: /src/s2geometry/src/s2/s2loop.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RingShape
  - ArcShape
  - RingShape
  - ArcShape
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST_P
  - BM_ShapeNestingQueryButtonLoop
  - BM_ShapeNestingQueryChainScaling
  source_file: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: center
        type: S2LatLng
      - name: radius_deg
        type: double
      - name: reverse
        type: bool
      item_type: struct
      name: RingSpec
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    - fields:
      - name: center
        type: S2LatLng
      - name: radius_deg
        type: double
      - name: thickness
        type: double
      - name: start_deg
        type: double
      - name: end_deg
        type: double
      - name: offset
        type: int
      - name: reverse
        type: bool
      item_type: struct
      name: ArcSpec
      pos:
        line_end: 117
        line_start: 104
        source_file: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    - fields:
      - name: center
        type: S2LatLng
      - name: radius_deg
        type: double
      - name: reverse
        type: bool
      item_type: struct
      name: RingSpec
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    - fields:
      - name: center
        type: S2LatLng
      - name: radius_deg
        type: double
      - name: thickness
        type: double
      - name: start_deg
        type: double
      - name: end_deg
        type: double
      - name: offset
        type: int
      - name: reverse
        type: bool
      item_type: struct
      name: ArcSpec
      pos:
        line_end: 117
        line_start: 104
        source_file: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    - fields:
      - name: depth
        type: int
      - name: first_chain
        type: int
      - name: shuffle
        type: bool
      item_type: struct
      name: NestingTestCase
      pos:
        line_end: 424
        line_start: 420
        source_file: /src/s2geometry/src/s2/s2shape_nesting_query_test.cc
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::TaggedShapeFactory::size
  - s2shapeutil::TaggedShapeFactory::Clone
  - s2shapeutil::VectorShapeFactory::size
  - s2shapeutil::VectorShapeFactory::Clone
  - s2shapeutil::WrappedShapeFactory::WrappedShapeFactory
  - s2shapeutil::WrappedShapeFactory::size
  - s2shapeutil::WrappedShapeFactory::Clone
  - s2shapeutil::HomogeneousShapeFactory::size
  - s2shapeutil::HomogeneousShapeFactory::Clone
  - s2shapeutil::EncodeHomogeneousShapes
  - s2shapeutil::HomogeneousShapeFactory<Shape>::HomogeneousShapeFactory
  - "HomogeneousShapeFactory<Shape>::operator[](\n    int shape_id) const"
  - s2shapeutil::TaggedShapeFactory::size
  - s2shapeutil::TaggedShapeFactory::Clone
  - s2shapeutil::VectorShapeFactory::size
  - s2shapeutil::VectorShapeFactory::Clone
  - s2shapeutil::WrappedShapeFactory::WrappedShapeFactory
  - s2shapeutil::WrappedShapeFactory::size
  - s2shapeutil::WrappedShapeFactory::Clone
  - s2shapeutil::HomogeneousShapeFactory::size
  - s2shapeutil::HomogeneousShapeFactory::Clone
  - s2shapeutil::EncodeHomogeneousShapes
  - s2shapeutil::HomogeneousShapeFactory<Shape>::HomogeneousShapeFactory
  - "HomogeneousShapeFactory<Shape>::operator[](\n    int shape_id) const"
  source_file: /src/s2geometry/src/s2/s2shapeutil_coding.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2MemoryTracker::SetError
  - S2MemoryTracker::SetLimitExceededError
  - S2MemoryTracker::Client::TallyTemp(int64_t delta_bytes)
  - '& S2MemoryTracker::Client::error() const'
  source_file: /src/s2geometry/src/s2/s2memory_tracker.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ShapeIndexBufferedRegion::S2ShapeIndexBufferedRegion
  - S2ShapeIndexBufferedRegion::Init
  - S2ShapeIndexBufferedRegion::Clone
  - S2ShapeIndexBufferedRegion::GetCapBound
  - S2ShapeIndexBufferedRegion::GetRectBound
  - S2ShapeIndexBufferedRegion::GetCellUnionBound
  - S2ShapeIndexBufferedRegion::Contains
  - S2ShapeIndexBufferedRegion::MayIntersect
  - S2ShapeIndexBufferedRegion::Contains
  source_file: /src/s2geometry/src/s2/s2shape_index_buffered_region.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2Polyline::S2Polyline
  - S2Polyline::S2Polyline
  - '& S2Polyline::operator=(const S2Polyline& src)'
  - S2Polyline::S2Polyline
  - '& S2Polyline::operator=(S2Polyline&& other) noexcept'
  - S2Polyline::S2Polyline
  - S2Polyline::S2Polyline
  - S2Polyline::S2Polyline
  - S2Polyline::S2Polyline
  - S2Polyline::~S2Polyline()
  - S2Polyline::set_s2debug_override
  - S2Polyline::s2debug_override
  - S2Polyline::Init
  - S2Polyline::Init
  - S2Polyline::InitToSnapped
  - S2Polyline::InitToSimplified
  - S2Polyline::InitFromBuilder
  - S2Polyline::IsValid
  - const
  - S2Polyline::Clone
  - S2Polyline::GetLength
  - S2Polyline::GetCentroid
  - S2Polyline::GetSnapLevel
  - S2Polyline::GetSuffix
  - S2Polyline::Interpolate
  - S2Polyline::UnInterpolate
  - S2Polyline::Project
  - S2Polyline::IsOnRight
  - S2Polyline::Intersects
  - S2Polyline::Reverse
  - S2Polyline::GetRectBound
  - S2Polyline::GetCapBound
  - S2Polyline::GetCellUnionBound
  - S2Polyline::MayIntersect
  - S2Polyline::Encode
  - S2Polyline::EncodeUncompressed
  - S2Polyline::Decode
  - S2Polyline::DecodeUncompressed
  - S2Polyline::EncodeMostCompact
  - S2Polyline::EncodeCompressed
  - S2Polyline::DecodeCompressed
  - FindEndVertex
  - FindEndVertex
  - S2Polyline::SubsampleVertices
  - S2Polyline::Equals
  - S2Polyline::ApproxEquals
  - S2Polyline::SpaceUsed
  - NextDistinctVertex
  - SearchState
  - operator==(const SearchState& a, const SearchState& b)
  - AbslHashValue
  - NextDistinctVertex
  - SearchState
  - operator==(const SearchState& a, const SearchState& b)
  - AbslHashValue
  - S2Polyline::NearlyCovers
  - S2Polyline::Shape::Init(const S2Polyline* polyline)
  - S2Polyline::Shape::num_chains() const
  - S2Polyline::Shape::chain(int i) const
  - S2Polyline::OwningShape::~OwningShape()
  source_file: /src/s2geometry/src/s2/s2polyline.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: i
        type: int
      - name: j
        type: int
      - name: i_in_progress
        type: bool
      item_type: struct
      name: SearchState
      pos:
        line_end: 713
        line_start: 697
        source_file: /src/s2geometry/src/s2/s2polyline.cc
    - fields:
      - name: i
        type: int
      - name: j
        type: int
      - name: i_in_progress
        type: bool
      item_type: struct
      name: SearchState
      pos:
        line_end: 713
        line_start: 697
        source_file: /src/s2geometry/src/s2/s2polyline.cc
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2point_region_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestIntervalOps
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/r2rect_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "ValueLexicon<T, Hasher, KeyEqual>::IdHasher::IdHasher(\n    const Hasher& hasher,
    const ValueLexicon* lexicon)"
  - '& ValueLexicon<T, Hasher, KeyEqual>::IdHasher::hasher() const'
  - "ValueLexicon<T, Hasher, KeyEqual>::IdHasher::operator()(\n    uint32_t id) const"
  - "ValueLexicon<T, Hasher, KeyEqual>::IdKeyEqual::IdKeyEqual(\n    const KeyEqual&
    key_equal, const ValueLexicon* lexicon)"
  - "ValueLexicon<T, Hasher, KeyEqual>::IdKeyEqual::operator()(\n    uint32_t id1,
    uint32_t id2) const"
  - ValueLexicon<T, Hasher, KeyEqual>::ValueLexicon
  - ValueLexicon<T, Hasher, KeyEqual>::ValueLexicon
  - ValueLexicon<T, Hasher, KeyEqual>::ValueLexicon
  - '&

    ValueLexicon<T, Hasher, KeyEqual>::operator=(const ValueLexicon& x)'
  - "& ValueLexicon<T, Hasher, KeyEqual>::operator=(\n    ValueLexicon&& x) noexcept"
  - ValueLexicon<T, Hasher, KeyEqual>::Clear
  - ValueLexicon<T, Hasher, KeyEqual>::Add
  - ValueLexicon<T, Hasher, KeyEqual>::size
  - '& ValueLexicon<T, Hasher, KeyEqual>::value(uint32_t id) const'
  source_file: /src/s2geometry/src/s2/value_lexicon.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::IndexedS2PolylineLayer::IndexedS2PolylineLayer
  - s2builderutil::IndexedS2PolylineLayer::graph_options
  - s2builderutil::IndexedS2PolylineLayer::Build
  - S2PolylineLayer::Options::Options()
  - S2PolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
  - S2PolylineLayer::Options::edge_type() const
  - "S2PolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  - S2PolylineLayer::Options::validate() const
  - S2PolylineLayer::Options::set_validate(bool validate)
  - s2builderutil::IndexedS2PolylineLayer::IndexedS2PolylineLayer
  - s2builderutil::IndexedS2PolylineLayer::graph_options
  - s2builderutil::IndexedS2PolylineLayer::Build
  - S2PolylineLayer::Options::Options()
  - S2PolylineLayer::Options::Options(S2Builder::EdgeType edge_type)
  - S2PolylineLayer::Options::edge_type() const
  - "S2PolylineLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  - S2PolylineLayer::Options::validate() const
  - S2PolylineLayer::Options::set_validate(bool validate)
  source_file: /src/s2geometry/src/s2/s2builderutil_s2polyline_layer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::GetCrossings
  - s2shapeutil::GetCrossings
  - s2shapeutil::GetCrossingEdgePairsBruteForce
  - s2shapeutil::GetCrossingEdgePairsBruteForce
  - "& operator<<(std::ostream& os,\n                         const std::pair<ShapeEdgeId,
    ShapeEdgeId>& pair)"
  - s2shapeutil::TestCrossingEdgePairs
  - s2shapeutil::TestGetCrossingEdgePairs
  - s2shapeutil::TestGetCrossingEdgePairs
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::HasSelfIntersection
  - s2shapeutil::TestHasCrossingPermutations
  - s2shapeutil::TestHasCrossing
  - s2shapeutil::TEST
  - s2shapeutil::GetCrossings
  - s2shapeutil::GetCrossings
  - s2shapeutil::GetCrossingEdgePairsBruteForce
  - s2shapeutil::GetCrossingEdgePairsBruteForce
  - "& operator<<(std::ostream& os,\n                         const std::pair<ShapeEdgeId,
    ShapeEdgeId>& pair)"
  - s2shapeutil::TestCrossingEdgePairs
  - s2shapeutil::TestGetCrossingEdgePairs
  - s2shapeutil::TestGetCrossingEdgePairs
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::HasSelfIntersection
  - s2shapeutil::TestHasCrossingPermutations
  - s2shapeutil::TestHasCrossing
  - s2shapeutil::TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ClosestOfNPoints
  - NextChainEdge
  - PrevChainEdge
  - S2ShapeNestingQuery::S2ShapeNestingQuery
  - S2ShapeNestingQuery::Init
  - S2ShapeNestingQuery::ComputeShapeNesting
  source_file: /src/s2geometry/src/s2/s2shape_nesting_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2CellIndex::RangeIterator::Seek(S2CellId target)
  - S2CellIndex::ContentsIterator::StartUnion(const RangeIterator& range)
  - S2CellIndex::Add
  - S2CellIndex::Build
  - Delta
  - operator<(const Delta& y) const
  - S2CellIndex::GetIntersectingLabels
  - S2CellIndex::GetIntersectingLabels
  source_file: /src/s2geometry/src/s2/s2cell_index.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: start_id
        type: S2CellId
      - name: label
        type: Label
      item_type: struct
      name: Delta
      pos:
        line_end: 98
        line_start: 80
        source_file: /src/s2geometry/src/s2/s2cell_index.cc
    typedefs: []
    union: []
- function_names:
  - ToS2Error
  - ToStatus
  source_file: /src/s2geometry/src/s2/s2error.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2ShapeIndexRegion::S2ShapeIndexRegion
  - '& operator=(const S2ShapeIndexRegion&)'
  - S2ShapeIndexRegion::S2ShapeIndexRegion
  - '& operator=(S2ShapeIndexRegion&&)'
  - S2ShapeIndexRegion<IndexType>::S2ShapeIndexRegion
  - '& S2ShapeIndexRegion<IndexType>::index() const'
  - S2ShapeIndexRegion<IndexType>::Clone
  - S2ShapeIndexRegion<IndexType>::GetCapBound
  - S2ShapeIndexRegion<IndexType>::GetRectBound
  - S2ShapeIndexRegion<IndexType>::GetCellUnionBound
  - S2ShapeIndexRegion<IndexType>::CoverRange
  - S2ShapeIndexRegion<IndexType>::Contains
  - S2ShapeIndexRegion<IndexType>::Contains
  - S2ShapeIndexRegion<IndexType>::MayIntersect
  - S2ShapeIndexRegion<IndexType>::VisitIntersectingShapeIds
  - S2ShapeIndexRegion<IndexType>::VisitIntersectingShapes
  - S2ShapeIndexRegion<IndexType>::Contains
  - S2ShapeIndexRegion<IndexType>::AnyEdgeIntersects
  - MakeS2ShapeIndexRegion
  source_file: /src/s2geometry/src/s2/s2shape_index_region.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::ClosedSetNormalizer::ClosedSetNormalizer
  - "& ClosedSetNormalizer::Run(const vector<Graph>& g,\n                                              S2Error*
    absl_nonnull error)"
  - s2builderutil::ClosedSetNormalizer::Advance
  - s2builderutil::ClosedSetNormalizer::AdvanceIncoming
  - s2builderutil::ClosedSetNormalizer::NormalizeEdges
  - s2builderutil::ClosedSetNormalizer::AddEdge
  - s2builderutil::ClosedSetNormalizer::is_suppressed
  - s2builderutil::NormalizeClosedSetImpl::Create
  - s2builderutil::NormalizeClosedSetImpl::NormalizeClosedSetImpl
  - s2builderutil::NormalizeClosedSetImpl::DimensionLayer::DimensionLayer
  - s2builderutil::NormalizeClosedSetImpl::DimensionLayer::graph_options
  - s2builderutil::NormalizeClosedSetImpl::DimensionLayer::Build
  - s2builderutil::NormalizeClosedSetImpl::Build
  - s2builderutil::NormalizeClosedSet
  - s2builderutil::ClosedSetNormalizer::ClosedSetNormalizer
  - "& ClosedSetNormalizer::Run(const vector<Graph>& g,\n                                              S2Error*
    absl_nonnull error)"
  - s2builderutil::ClosedSetNormalizer::Advance
  - s2builderutil::ClosedSetNormalizer::AdvanceIncoming
  - s2builderutil::ClosedSetNormalizer::NormalizeEdges
  - s2builderutil::ClosedSetNormalizer::AddEdge
  - s2builderutil::ClosedSetNormalizer::is_suppressed
  - s2builderutil::NormalizeClosedSetImpl::Create
  - s2builderutil::NormalizeClosedSetImpl::NormalizeClosedSetImpl
  - s2builderutil::NormalizeClosedSetImpl::DimensionLayer::DimensionLayer
  - s2builderutil::NormalizeClosedSetImpl::DimensionLayer::graph_options
  - s2builderutil::NormalizeClosedSetImpl::DimensionLayer::Build
  - s2builderutil::NormalizeClosedSetImpl::Build
  - s2builderutil::NormalizeClosedSet
  source_file: /src/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CrossingInputEdge::CrossingInputEdge
  - CrossingInputEdge::input_id
  - CrossingInputEdge::left_to_right
  - operator<(const CrossingInputEdge& other) const
  - operator<(const InputEdgeId& other) const
  - CrossingGraphEdge
  - GetInputEdgeChainOrder
  - GraphEdgeClipper::GraphEdgeClipper
  - GraphEdgeClipper::AddEdge
  - GraphEdgeClipper::Run
  - GraphEdgeClipper::GatherIncidentEdges
  - GraphEdgeClipper::GetVertexRank
  - GraphEdgeClipper::GetCrossedVertexIndex
  - GraphEdgeClipper::EdgeChainOnLeft
  - EdgeClippingLayer::EdgeClippingLayer
  - EdgeClippingLayer::graph_options
  - EdgeClippingLayer::Build
  - CrossingInputEdge::CrossingInputEdge
  - CrossingInputEdge::input_id
  - CrossingInputEdge::left_to_right
  - operator<(const CrossingInputEdge& other) const
  - operator<(const InputEdgeId& other) const
  - CrossingGraphEdge
  - GetInputEdgeChainOrder
  - GraphEdgeClipper::GraphEdgeClipper
  - GraphEdgeClipper::AddEdge
  - GraphEdgeClipper::Run
  - GraphEdgeClipper::GatherIncidentEdges
  - GraphEdgeClipper::GetVertexRank
  - GraphEdgeClipper::GetCrossedVertexIndex
  - GraphEdgeClipper::EdgeChainOnLeft
  - EdgeClippingLayer::EdgeClippingLayer
  - EdgeClippingLayer::graph_options
  - EdgeClippingLayer::Build
  - S2BooleanOperation::Impl::Impl
  - S2BooleanOperation::Impl::IndexCrossing
  - operator==(const IndexCrossing& x, const IndexCrossing& y)
  - operator<(const IndexCrossing& x, const IndexCrossing& y)
  - S2BooleanOperation::Impl::MemoryTracker::TallySourceIdMap
  - S2BooleanOperation::Impl::MemoryTracker::ClearSourceIdMap
  - S2BooleanOperation::Impl::is_boolean_output
  - S2BooleanOperation::Impl::CrossingIterator::CrossingIterator
  - S2BooleanOperation::Impl::CrossingIterator::Next
  - S2BooleanOperation::Impl::CrossingIterator::Done
  - S2BooleanOperation::Impl::CrossingIterator::crossings_complete
  - S2BooleanOperation::Impl::CrossingIterator::is_interior_crossing
  - S2BooleanOperation::Impl::CrossingIterator::is_vertex_crossing
  - S2BooleanOperation::Impl::CrossingIterator::left_to_right
  - S2BooleanOperation::Impl::CrossingIterator::a_id
  - S2BooleanOperation::Impl::CrossingIterator::b_id
  - '& b_index() const'
  - '& b_shape() const'
  - S2BooleanOperation::Impl::CrossingIterator::b_dimension
  - S2BooleanOperation::Impl::CrossingIterator::b_shape_id
  - S2BooleanOperation::Impl::CrossingIterator::b_edge_id
  - S2BooleanOperation::Impl::CrossingIterator::b_edge
  - '& b_chain_info() const'
  - S2BooleanOperation::Impl::CrossingIterator::Update
  - S2BooleanOperation::Impl::CrossingProcessor::CrossingProcessor
  - S2BooleanOperation::Impl::CrossingProcessor::inside
  - S2BooleanOperation::Impl::CrossingProcessor::input_edge_id
  - S2BooleanOperation::Impl::CrossingProcessor::is_v0_isolated
  - S2BooleanOperation::Impl::CrossingProcessor::is_chain_last_vertex_isolated
  - S2BooleanOperation::Impl::CrossingProcessor::polyline_contains_v0
  - S2BooleanOperation::Impl::CrossingProcessor::is_degenerate
  - S2BooleanOperation::Impl::CrossingProcessor::AddCrossing
  - S2BooleanOperation::Impl::CrossingProcessor::AddInteriorCrossing
  - S2BooleanOperation::Impl::CrossingProcessor::SetClippingState
  - S2BooleanOperation::Impl::CrossingProcessor::AddEdge
  - S2BooleanOperation::Impl::CrossingProcessor::AddPointEdge
  - "S2BooleanOperation::Impl::CrossingProcessor::StartBoundary(\n    int a_region_id,
    bool invert_a, bool invert_b, bool invert_result)"
  - "S2BooleanOperation::Impl::CrossingProcessor::StartShape(\n    const S2Shape*
    a_shape)"
  - "S2BooleanOperation::Impl::CrossingProcessor::StartChain(\n    int chain_id, S2Shape::Chain
    chain, bool inside)"
  - "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge(\n    ShapeEdgeId a_id,
    CrossingIterator* it)"
  - PointCrossingResult
  - "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge0(\n    ShapeEdgeId a_id,
    const S2Shape::Edge& a, CrossingIterator* it)"
  - "S2BooleanOperation::Impl::CrossingProcessor::SkipCrossings(\n    ShapeEdgeId
    a_id, CrossingIterator* it)"
  - "S2BooleanOperation::Impl::CrossingProcessor::ProcessPointCrossings(\n    ShapeEdgeId
    a_id, const S2Point& a0, CrossingIterator* it) const"
  - matches_polygon
  - matches_sibling
  - loop_matches_a0
  - "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge1(\n    ShapeEdgeId a_id,
    const S2Shape::Edge& a, CrossingIterator* it)"
  - "S2BooleanOperation::Impl::CrossingProcessor::IsPolylineVertexInside(\n    bool
    matches_polyline, bool matches_polygon) const"
  - "S2BooleanOperation::Impl::CrossingProcessor::IsPolylineEdgeInside(\n    const
    EdgeCrossingResult& r, bool is_degenerate) const"
  - "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdge2(\n    ShapeEdgeId a_id,
    const S2Shape::Edge& a, CrossingIterator* it)"
  - "S2BooleanOperation::Impl::CrossingProcessor::ProcessEdgeCrossings(\n    ShapeEdgeId
    a_id, const S2Shape::Edge& a, CrossingIterator* it)"
  - "S2BooleanOperation::Impl::CrossingProcessor::PolylineEdgeContainsVertex(\n    const
    S2Point& v, const CrossingIterator& it, int dimension) const"
  - S2BooleanOperation::Impl::CrossingProcessor::DoneBoundaryPair()
  - "S2BooleanOperation::Impl::AddBoundary(\n    int a_region_id, bool invert_a, bool
    invert_b, bool invert_result,\n    absl::Span<const ShapeEdgeId> a_chain_starts,
    CrossingProcessor* cp)"
  - "S2BooleanOperation::Impl::GetChainStarts(\n    int a_region_id, bool invert_a,
    bool invert_b, bool invert_result,\n    CrossingProcessor* cp, vector<ShapeEdgeId>*
    chain_starts)"
  - "S2BooleanOperation::Impl::ProcessIncidentEdges(\n    const ShapeEdge& a, S2ContainsPointQuery<S2ShapeIndex>*
    query,\n    CrossingProcessor* cp)"
  - S2BooleanOperation::Impl::HasInterior(const S2ShapeIndex& index)
  - "S2BooleanOperation::Impl::AddIndexCrossing(\n    const ShapeEdge& a, const ShapeEdge&
    b, bool is_interior,\n    IndexCrossings* crossings)"
  - S2BooleanOperation::Impl::InitIndexCrossings(int region_id)
  - "S2BooleanOperation::Impl::AddBoundaryPair(\n    bool invert_a, bool invert_b,
    bool invert_result, CrossingProcessor* cp)"
  - S2BooleanOperation::Impl::BuildOpType(OpType op_type)
  - GetFaceMask
  - "S2BooleanOperation::Impl::IsFullPolygonResult(\n    const S2Builder::Graph& g,
    S2Error* absl_nonnull error) const"
  - "S2BooleanOperation::Impl::IsFullPolygonUnion(\n    const S2ShapeIndex& a, const
    S2ShapeIndex& b) const"
  - "S2BooleanOperation::Impl::IsFullPolygonIntersection(\n    const S2ShapeIndex&
    a, const S2ShapeIndex& b) const"
  - "S2BooleanOperation::Impl::IsFullPolygonDifference(\n    const S2ShapeIndex& a,
    const S2ShapeIndex& b) const"
  - "S2BooleanOperation::Impl::IsFullPolygonSymmetricDifference(\n    const S2ShapeIndex&
    a, const S2ShapeIndex& b) const"
  - S2BooleanOperation::Impl::AreRegionsIdentical() const
  - S2BooleanOperation::Options::Options()
  - S2BooleanOperation::Options::Options(const SnapFunction& snap_function)
  - S2BooleanOperation::Options::Options(const Options& options)
  - "& S2BooleanOperation::Options::operator=(\n    const Options& options)"
  - '& S2BooleanOperation::Options::snap_function() const'
  - "S2BooleanOperation::Options::set_snap_function(\n    const SnapFunction& snap_function)"
  - S2BooleanOperation::Options::polygon_model() const
  - S2BooleanOperation::Options::set_polygon_model(PolygonModel model)
  - S2BooleanOperation::Options::polyline_model() const
  - S2BooleanOperation::Options::set_polyline_model(PolylineModel model)
  - S2BooleanOperation::Options::polyline_loops_have_boundaries() const
  - "S2BooleanOperation::Options::set_polyline_loops_have_boundaries(\n    bool value)"
  - S2BooleanOperation::Options::split_all_crossing_polyline_edges() const
  - "S2BooleanOperation::Options::set_split_all_crossing_polyline_edges(\n    bool
    value)"
  - S2BooleanOperation::Options::precision() const
  - S2BooleanOperation::Options::conservative_output() const
  - '*

    S2BooleanOperation::Options::source_id_lexicon() const'
  - '* S2BooleanOperation::Options::memory_tracker() const'
  - S2BooleanOperation::Options::set_memory_tracker(S2MemoryTracker* tracker)
  - S2BooleanOperation::OpTypeToString
  - S2BooleanOperation::PolygonModelToString
  - S2BooleanOperation::PolylineModelToString
  - S2BooleanOperation::S2BooleanOperation
  - S2BooleanOperation::S2BooleanOperation
  - S2BooleanOperation::S2BooleanOperation
  - S2BooleanOperation::S2BooleanOperation
  - S2BooleanOperation::Build
  - S2BooleanOperation::IsEmpty
  source_file: /src/s2geometry/src/s2/s2boolean_operation.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: EdgeId
      - name: a_index
        type: int
      - name: outgoing
        type: bool
      - name: dst
        type: VertexId
      item_type: struct
      name: CrossingGraphEdge
      pos:
        line_end: 202
        line_start: 194
        source_file: /src/s2geometry/src/s2/s2boolean_operation.cc
    - fields:
      - name: id
        type: EdgeId
      - name: a_index
        type: int
      - name: outgoing
        type: bool
      - name: dst
        type: VertexId
      item_type: struct
      name: CrossingGraphEdge
      pos:
        line_end: 202
        line_start: 194
        source_file: /src/s2geometry/src/s2/s2boolean_operation.cc
    - fields:
      - name: a
        type: ShapeEdgeId
      - name: is_interior_crossing
        type: uint32_t
      - name: left_to_right
        type: uint32_t
      - name: is_vertex_crossing
        type: uint32_t
      item_type: struct
      name: IndexCrossing
      pos:
        line_end: 895
        line_start: 860
        source_file: /src/s2geometry/src/s2/s2boolean_operation.cc
    - fields:
      - name: chain_id
        type: int
      - name: start
        type: int
      - name: limit
        type: int
      item_type: struct
      name: ChainInfo
      pos:
        line_end: 1062
        line_start: 1058
        source_file: /src/s2geometry/src/s2/s2boolean_operation.cc
    - fields:
      - name: matches_point
        type: bool
      - name: matches_polyline
        type: bool
      - name: matches_polygon
        type: bool
      item_type: struct
      name: S2BooleanOperation::Impl::CrossingProcessor::PointCrossingResult
      pos:
        line_end: 1442
        line_start: 1432
        source_file: /src/s2geometry/src/s2/s2boolean_operation.cc
    - fields:
      - name: matches_polyline
        type: bool
      - name: a0_matches_polyline
        type: bool
      - name: a1_matches_polyline
        type: bool
      - name: a0_matches_polygon
        type: bool
      - name: a1_matches_polygon
        type: bool
      - name: polygon_match_id
        type: ShapeEdgeId
      - name: sibling_match_id
        type: ShapeEdgeId
      - name: a0_loop_match_id
        type: ShapeEdgeId
      - name: a0_crossings
        type: int
      - name: a1_crossings
        type: int
      - name: interior_crossings
        type: int
      item_type: struct
      name: S2BooleanOperation::Impl::CrossingProcessor::EdgeCrossingResult
      pos:
        line_end: 1539
        line_start: 1505
        source_file: /src/s2geometry/src/s2/s2boolean_operation.cc
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2point_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestWedge
  - TEST
  source_file: /src/s2geometry/src/s2/s2wedge_relations_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S1Interval::lo
  - S1Interval::hi
  - operator[](int i) const
  - '& bounds() const'
  - S1Interval::is_full
  - S1Interval::is_empty
  - S1Interval::is_inverted
  - S1Interval::IsValidPoint
  - S1Interval::S1Interval
  - S1Interval::S1Interval
  - S1Interval::S1Interval
  - S1Interval::Empty
  - S1Interval::Full
  - S1Interval::is_valid
  - S1Interval::operator==(const S1Interval& y) const
  - S1Interval::operator!=(const S1Interval& y) const
  - S1Interval::set_lo
  - S1Interval::set_hi
  - '& operator<<(std::ostream& os, const S1Interval& x)'
  - AbslHashValue
  source_file: /src/s2geometry/src/s2/s1interval.h
  types:
    enum:
    - enumerators:
      - name: ARGS_CHECKED
      item_type: enum
      name: ArgsChecked
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/s2geometry/src/s2/s1interval.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2PointIndexTest::Add
  - S2PointIndexTest::Remove
  - S2PointIndexTest::Verify
  - S2PointIndexTest::VerifyContents
  - S2PointIndexTest::VerifyIteratorMethods
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  source_file: /src/s2geometry/src/s2/s2point_index_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2coding::TestEncodedStringVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TestEncodedStringVector
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  - s2coding::TEST
  source_file: /src/s2geometry/src/s2/encoded_string_vector_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2edge_tessellator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2LatLngRect::lat_lo
  - S2LatLngRect::lat_hi
  - S2LatLngRect::lng_lo
  - S2LatLngRect::lng_hi
  - '& lat() const'
  - '& lng() const'
  - S2LatLngRect::mutable_lat
  - S2LatLngRect::mutable_lng
  - S2LatLngRect::lo
  - S2LatLngRect::hi
  - S2LatLngRect::FullLat
  - S2LatLngRect::FullLng
  - S2LatLngRect::is_inverted
  - S2LatLngRect::AbslHashValue
  - S2LatLngRect::S2LatLngRect
  - S2LatLngRect::S2LatLngRect
  - S2LatLngRect::S2LatLngRect
  - S2LatLngRect::Empty
  - S2LatLngRect::Full
  - S2LatLngRect::is_valid
  - S2LatLngRect::is_empty
  - S2LatLngRect::is_full
  - S2LatLngRect::is_point
  - S2LatLngRect::operator==(const S2LatLngRect& other) const
  - S2LatLngRect::operator!=(const S2LatLngRect& other) const
  source_file: /src/s2geometry/src/s2/s2latlng_rect.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Coder
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/s2geometry/src/s2/s2latlng_rect.h
      type: internal::S2LegacyCoder<S2LatLngRect>
    union: []
- function_names:
  - S2ContainsPointQueryOptions::S2ContainsPointQueryOptions
  - '& index() const'
  - '& options() const'
  - S2ContainsPointQuery::mutable_iter
  - MakeS2ContainsPointQuery
  - MakeS2ContainsPointQuery
  - S2ContainsPointQueryOptions::S2ContainsPointQueryOptions
  - S2ContainsPointQueryOptions::vertex_model
  - S2ContainsPointQueryOptions::set_vertex_model
  - S2ContainsPointQuery<IndexType>::S2ContainsPointQuery
  - S2ContainsPointQuery<IndexType>::S2ContainsPointQuery
  - S2ContainsPointQuery<IndexType>::S2ContainsPointQuery
  - S2ContainsPointQuery<IndexType>::Init
  - S2ContainsPointQuery<IndexType>::Contains
  - S2ContainsPointQuery<IndexType>::ShapeContains
  - S2ContainsPointQuery<IndexType>::VisitContainingShapeIds
  - S2ContainsPointQuery<IndexType>::VisitContainingShapes
  - S2ContainsPointQuery<IndexType>::VisitIncidentEdges
  - S2ContainsPointQuery<IndexType>::GetContainingShapes
  - S2ContainsPointQuery<IndexType>::GetContainingShapeIds
  - S2ContainsPointQuery<IndexType>::ShapeContains
  source_file: /src/s2geometry/src/s2/s2contains_point_query.h
  types:
    enum:
    - enumerators:
      - name: OPEN
      - name: SEMI_OPEN
      - name: CLOSED
      item_type: enum
      name: S2VertexModel
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/s2geometry/src/s2/s2contains_point_query.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - VisitClosestEdgesTest::VisitClosestEdgesTest
  - VisitClosestEdgesTest::FractalQuery
  - '& query()'
  - VisitClosestEdgesTest::Visit
  - VisitClosestEdgesTest::FalseVisitor
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ConfidenceBound
  - TEST
  - ConvertResults
  - GetClosestEdges
  - TestFindClosestEdges
  - TestWithIndexFactory
  - S2ClosestEdgeQueryShapeTest::allowed_shapes
  - TEST_P
  - TEST_P
  - TEST_P
  - TEST_P
  - BenchmarkFindClosest
  - BM_FindClosest
  - BM_FindClosestEncodedIndex
  - BM_FindClosestEncodedIndexAndShapes
  - BM_FindClosestInterior
  - BM_FindClosestMaxErrorPct
  - BM_FindClosestMaxDistPow10
  - BM_FindClosestNearVertex
  - BM_FindClosestNearVertexMaxDistPow10
  - BM_FindClosestToEdge
  - BM_FindClosestToEdgeInterior
  - BM_FindClosestToEdgeNearEdge
  - BM_FindClosestToCell
  - BM_FindClosestToCellInterior
  - BM_FindClosestToCellInIndex
  - BM_FindClosestToSmallAbuttingIndex
  - BM_FindClosestFromSmallAbuttingIndex
  - BM_FindClosestToSameSizeAbuttingIndex
  - BM_FindClosestToSameSizeContainedIndex
  - BM_FindClosestToSameSizeContainingIndex
  - BM_FindClosestToSameSizeDistantIndex
  - BM_IsDistanceLessSameSizeDistantIndexFalse
  - BM_IsDistanceLessSameSizeDistantIndexTrue
  - BM_FindClosestToSmallIndexEdgeSample
  source_file: /src/s2geometry/src/s2/s2closest_edge_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2pred::Sign
  - s2pred::StableSign
  - s2pred::SymbolicallyPerturbedSign
  - s2pred::ExactSign
  - s2pred::ExpensiveSign
  - s2pred::OrderedCCW
  - s2pred::GetCosDistance
  - s2pred::GetCosDistance
  - s2pred::GetSin2Distance
  - s2pred::GetSin2Distance
  - s2pred::TriageCompareCosDistances
  - s2pred::TriageCompareSin2Distances
  - s2pred::ExactCompareDistances
  - s2pred::SymbolicCompareDistances
  - s2pred::CompareSin2Distances
  - s2pred::CompareDistances
  - s2pred::TriageCompareCosDistance
  - s2pred::TriageCompareSin2Distance
  - s2pred::ExactCompareDistance
  - s2pred::CompareDistance
  - s2pred::TriageCompareDistance
  - s2pred::GetClosestVertex
  - s2pred::TriageCompareLineSin2Distance
  - s2pred::TriageCompareLineCos2Distance
  - s2pred::TriageCompareLineDistance
  - s2pred::TriageCompareEdgeDistance
  - s2pred::ExactCompareLineDistance
  - s2pred::ExactCompareEdgeDistance
  - s2pred::CompareEdgeDistance
  - s2pred::CompareEdgePairDistance
  - s2pred::TriageIntersectionOrdering
  - s2pred::ExactIntersectionOrdering
  - s2pred::CircleEdgeIntersectionOrdering
  - s2pred::TriageSignDotProd
  - s2pred::ExactSignDotProd
  - s2pred::SignDotProd
  - s2pred::TriageCircleEdgeIntersectionSign
  - s2pred::ExactCircleEdgeIntersectionSign
  - s2pred::CircleEdgeIntersectionSign
  - s2pred::TriageCompareEdgeDirections
  - s2pred::ArePointsLinearlyDependent
  - s2pred::ArePointsAntipodal
  - s2pred::ExactCompareEdgeDirections
  - s2pred::CompareEdgeDirections
  - s2pred::GetCircumcenter
  - s2pred::TriageEdgeCircumcenterSign
  - s2pred::ExactEdgeCircumcenterSign
  - s2pred::SymbolicEdgeCircumcenterSign
  - s2pred::EdgeCircumcenterSign
  - s2pred::TriageVoronoiSiteExclusion
  - s2pred::ExactVoronoiSiteExclusion
  - s2pred::GetVoronoiSiteExclusion
  - '& operator<<(std::ostream& os, Excluded excluded)'
  - s2pred::Sign
  - s2pred::StableSign
  - s2pred::SymbolicallyPerturbedSign
  - s2pred::ExactSign
  - s2pred::ExpensiveSign
  - s2pred::OrderedCCW
  - s2pred::GetCosDistance
  - s2pred::GetCosDistance
  - s2pred::GetSin2Distance
  - s2pred::GetSin2Distance
  - s2pred::TriageCompareCosDistances
  - s2pred::TriageCompareSin2Distances
  - s2pred::ExactCompareDistances
  - s2pred::SymbolicCompareDistances
  - s2pred::CompareSin2Distances
  - s2pred::CompareDistances
  - s2pred::TriageCompareCosDistance
  - s2pred::TriageCompareSin2Distance
  - s2pred::ExactCompareDistance
  - s2pred::CompareDistance
  - s2pred::TriageCompareDistance
  - s2pred::GetClosestVertex
  - s2pred::TriageCompareLineSin2Distance
  - s2pred::TriageCompareLineCos2Distance
  - s2pred::TriageCompareLineDistance
  - s2pred::TriageCompareEdgeDistance
  - s2pred::ExactCompareLineDistance
  - s2pred::ExactCompareEdgeDistance
  - s2pred::CompareEdgeDistance
  - s2pred::CompareEdgePairDistance
  - s2pred::TriageIntersectionOrdering
  - s2pred::ExactIntersectionOrdering
  - s2pred::CircleEdgeIntersectionOrdering
  - s2pred::TriageSignDotProd
  - s2pred::ExactSignDotProd
  - s2pred::SignDotProd
  - s2pred::TriageCircleEdgeIntersectionSign
  - s2pred::ExactCircleEdgeIntersectionSign
  - s2pred::CircleEdgeIntersectionSign
  - s2pred::TriageCompareEdgeDirections
  - s2pred::ArePointsLinearlyDependent
  - s2pred::ArePointsAntipodal
  - s2pred::ExactCompareEdgeDirections
  - s2pred::CompareEdgeDirections
  - s2pred::GetCircumcenter
  - s2pred::TriageEdgeCircumcenterSign
  - s2pred::ExactEdgeCircumcenterSign
  - s2pred::SymbolicEdgeCircumcenterSign
  - s2pred::EdgeCircumcenterSign
  - s2pred::TriageVoronoiSiteExclusion
  - s2pred::ExactVoronoiSiteExclusion
  - s2pred::GetVoronoiSiteExclusion
  - '& operator<<(std::ostream& os, Excluded excluded)'
  source_file: /src/s2geometry/src/s2/s2predicates.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/s2shape_measures_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2builderutil_get_snapped_winding_delta.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  - s2shapeutil::TEST
  source_file: /src/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2builderutil::IndexedLaxPolygonLayer::IndexedLaxPolygonLayer
  - s2builderutil::IndexedLaxPolygonLayer::graph_options
  - s2builderutil::IndexedLaxPolygonLayer::Build
  - LaxPolygonLayer::Options::Options()
  - LaxPolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
  - LaxPolygonLayer::Options::edge_type() const
  - "LaxPolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  - LaxPolygonLayer::Options::degenerate_boundaries() const
  - "LaxPolygonLayer::Options::set_degenerate_boundaries(\n    DegenerateBoundaries
    degenerate_boundaries)"
  - s2builderutil::IndexedLaxPolygonLayer::IndexedLaxPolygonLayer
  - s2builderutil::IndexedLaxPolygonLayer::graph_options
  - s2builderutil::IndexedLaxPolygonLayer::Build
  - LaxPolygonLayer::Options::Options()
  - LaxPolygonLayer::Options::Options(S2Builder::EdgeType edge_type)
  - LaxPolygonLayer::Options::edge_type() const
  - "LaxPolygonLayer::Options::set_edge_type(\n    S2Builder::EdgeType edge_type)"
  - LaxPolygonLayer::Options::degenerate_boundaries() const
  - "LaxPolygonLayer::Options::set_degenerate_boundaries(\n    DegenerateBoundaries
    degenerate_boundaries)"
  source_file: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
  types:
    enum:
    - enumerators:
      - name: DISCARD
      - name: KEEP
      - name: DISCARD_HOLES
      - name: DISCARD_SHELLS
      item_type: enum
      name: DegenerateBoundaries
      pos:
        line_end: 119
        line_start: 114
        source_file: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    - enumerators:
      - name: DISCARD
      - name: KEEP
      - name: DISCARD_HOLES
      - name: DISCARD_SHELLS
      item_type: enum
      name: DegenerateBoundaries
      pos:
        line_end: 119
        line_start: 114
        source_file: /src/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - CheckCovering
  - TEST
  - TEST
  - operator<(const WorstCap& o) const
  - WorstCap
  - TestAccuracy
  - TEST
  - TEST
  - TEST
  - IsCanonical
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestCanonicalizeCovering
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ToTokens
  - TEST
  - TEST
  - CheckCovering
  - TEST
  - TEST
  - operator<(const WorstCap& o) const
  - WorstCap
  - TestAccuracy
  - TEST
  - TEST
  - TEST
  - IsCanonical
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TestCanonicalizeCovering
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - ToTokens
  - TEST
  source_file: /src/s2geometry/src/s2/s2region_coverer_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ratio
        type: double
      - name: cap
        type: S2Cap
      - name: num_cells
        type: int
      item_type: struct
      name: WorstCap
      pos:
        line_end: 185
        line_start: 179
        source_file: /src/s2geometry/src/s2/s2region_coverer_test.cc
    - fields:
      - name: ratio
        type: double
      - name: cap
        type: S2Cap
      - name: num_cells
        type: int
      item_type: struct
      name: WorstCap
      pos:
        line_end: 185
        line_start: 179
        source_file: /src/s2geometry/src/s2/s2region_coverer_test.cc
    typedefs: []
    union: []
- function_names:
  - FurthestPointTarget::FurthestPointTarget
  - FurthestPointTarget::max_brute_force_index_size
  - TEST
  - FurthestPointTarget::FurthestPointTarget
  - FurthestPointTarget::max_brute_force_index_size
  - TEST
  source_file: /src/s2geometry/src/s2/s2closest_point_query_base_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2::GetPerimeter
  - S2::GetArea
  - S2::GetSignedArea
  - S2::GetApproxArea
  - S2::PruneDegeneracies
  - S2::GetCurvature
  - S2::GetCurvatureMaxError
  - S2::GetCentroid
  - S2::IsOrderLess
  - S2::GetCanonicalLoopOrder
  - S2::IsNormalized
  - '& operator<<(std::ostream& os, LoopOrder order)'
  - S2::GetPerimeter
  - S2::GetArea
  - S2::GetSignedArea
  - S2::GetApproxArea
  - S2::PruneDegeneracies
  - S2::GetCurvature
  - S2::GetCurvatureMaxError
  - S2::GetCentroid
  - S2::IsOrderLess
  - S2::GetCanonicalLoopOrder
  - S2::IsNormalized
  - '& operator<<(std::ostream& os, LoopOrder order)'
  source_file: /src/s2geometry/src/s2/s2loop_measures.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UpdateMaxDistance
  - UpdateMaxDistance
  - S2HausdorffDistanceQuery::S2HausdorffDistanceQuery
  - S2HausdorffDistanceQuery::Init
  - S2HausdorffDistanceQuery::GetDistance
  - S2HausdorffDistanceQuery::GetResult
  - S2HausdorffDistanceQuery::GetDirectedDistance
  - S2HausdorffDistanceQuery::GetDirectedResult
  - S2HausdorffDistanceQuery::IsDirectedDistanceLess
  - S2HausdorffDistanceQuery::IsDistanceLess
  source_file: /src/s2geometry/src/s2/s2hausdorff_distance_query.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S2R2Rect::FromCell
  - S2R2Rect::FromCellId
  - S2R2Rect::Clone
  - S2R2Rect::ToS2Point
  - S2R2Rect::GetCapBound
  - S2R2Rect::GetRectBound
  - S2R2Rect::GetCellUnionBound
  - S2R2Rect::Contains
  - S2R2Rect::Contains
  - S2R2Rect::MayIntersect
  - '& operator<<(std::ostream& os, const S2R2Rect& r)'
  source_file: /src/s2geometry/src/s2/s2r2rect.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/s2shapeutil_contains_brute_force.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/internal/s2meta.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - internal::IncidentEdgeKey
  - internal::IncidentEdgeKey
  - internal::IncidentEdgeKey
  - operator<(const IncidentEdgeKey& b) const
  - internal::S2IncidentEdgeTracker::Reset
  - '& IncidentEdges() const'
  - internal::IncidentEdgeKey
  - internal::IncidentEdgeKey
  - internal::IncidentEdgeKey
  - operator<(const IncidentEdgeKey& b) const
  - internal::S2IncidentEdgeTracker::Reset
  - '& IncidentEdges() const'
  source_file: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: shape_id
        type: int32_t
      - name: vertex
        type: S2Point
      item_type: struct
      name: IncidentEdgeKey
      pos:
        line_end: 58
        line_start: 32
        source_file: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    - fields:
      - name: vertex
        type: S2Point
      - name: edge_id
        type: int32_t
      item_type: struct
      name: VertexEdge
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    - fields:
      - name: shape_id
        type: int32_t
      - name: vertex
        type: S2Point
      item_type: struct
      name: IncidentEdgeKey
      pos:
        line_end: 58
        line_start: 32
        source_file: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    - fields:
      - name: vertex
        type: S2Point
      - name: edge_id
        type: int32_t
      item_type: struct
      name: VertexEdge
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.h
    typedefs: []
    union: []
- function_names:
  - internal::S2IndexCellData::EdgeAndIdChain
  - internal::S2IndexCellData::EdgeAndIdChain
  - internal::S2IndexCellData::EdgeAndIdChain
  - operator==(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
  - operator<(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
  - internal::S2IndexCellData::S2IndexCellData
  - internal::S2IndexCellData::S2IndexCellData
  - internal::S2IndexCellData::Reset
  - internal::S2IndexCellData::dim_wanted
  - internal::S2IndexCellData::set_dim_wanted
  - internal::S2IndexCellData::id
  - internal::S2IndexCellData::index
  - '& cell() const'
  - '& center() const'
  - internal::S2IndexCellData::num_clipped
  - '& shape(const S2ClippedShape& clipped) const'
  - '& shape(int shape_id) const'
  - internal::S2IndexCellData::clipped_shapes
  - internal::S2IndexCellData::edges
  - internal::S2IndexCellData::EdgeAndIdChain
  - internal::S2IndexCellData::EdgeAndIdChain
  - internal::S2IndexCellData::EdgeAndIdChain
  - operator==(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
  - operator<(const EdgeAndIdChain& x, const EdgeAndIdChain& y)
  - internal::S2IndexCellData::S2IndexCellData
  - internal::S2IndexCellData::S2IndexCellData
  - internal::S2IndexCellData::Reset
  - internal::S2IndexCellData::dim_wanted
  - internal::S2IndexCellData::set_dim_wanted
  - internal::S2IndexCellData::id
  - internal::S2IndexCellData::index
  - '& cell() const'
  - '& center() const'
  - internal::S2IndexCellData::num_clipped
  - '& shape(const S2ClippedShape& clipped) const'
  - '& shape(int shape_id) const'
  - internal::S2IndexCellData::clipped_shapes
  - internal::S2IndexCellData::edges
  source_file: /src/s2geometry/src/s2/internal/s2index_cell_data.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: int32_t
      - name: chain
        type: int32_t
      - name: offset
        type: int32_t
      item_type: struct
      name: EdgeAndIdChain
      pos:
        line_end: 103
        line_start: 83
        source_file: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    - fields:
      - name: start
        type: int
      - name: size
        type: size_t
      item_type: struct
      name: Region
      pos:
        line_end: 260
        line_start: 257
        source_file: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    - fields:
      - name: id
        type: int32_t
      - name: chain
        type: int32_t
      - name: offset
        type: int32_t
      item_type: struct
      name: EdgeAndIdChain
      pos:
        line_end: 103
        line_start: 83
        source_file: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    - fields:
      - name: start
        type: int
      - name: size
        type: size_t
      item_type: struct
      name: Region
      pos:
        line_end: 260
        line_start: 257
        source_file: /src/s2geometry/src/s2/internal/s2index_cell_data.h
    typedefs: []
    union: []
- function_names:
  - internal::S2IncidentEdgeTracker::StartShape
  - internal::S2IncidentEdgeTracker::AddEdge
  - internal::S2IncidentEdgeTracker::FinishShape
  - internal::S2IncidentEdgeTracker::StartShape
  - internal::S2IncidentEdgeTracker::AddEdge
  - internal::S2IncidentEdgeTracker::FinishShape
  source_file: /src/s2geometry/src/s2/internal/s2incident_edge_tracker.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  source_file: /src/s2geometry/src/s2/internal/s2index_cell_data_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - internal::DisjointSet::Size
  - internal::DisjointSet::Clear
  - internal::DisjointSet::Reserve
  - internal::DisjointSet::Node
  - internal::DisjointSet<T>::Add
  - internal::DisjointSet<T>::FindRoot
  - '& DisjointSet<T>::FindRootImpl(const T& val)'
  - internal::DisjointSet<T>::Union
  - internal::DisjointSet::Size
  - internal::DisjointSet::Clear
  - internal::DisjointSet::Reserve
  - internal::DisjointSet::Node
  - internal::DisjointSet<T>::Add
  - internal::DisjointSet<T>::FindRoot
  - '& DisjointSet<T>::FindRootImpl(const T& val)'
  - internal::DisjointSet<T>::Union
  source_file: /src/s2geometry/src/s2/internal/s2disjoint_set.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: value
        type: T
      - name: size
        type: int
      item_type: struct
      name: Node
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    - fields:
      - name: value
        type: T
      - name: size
        type: int
      item_type: struct
      name: Node
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/s2geometry/src/s2/internal/s2disjoint_set.h
    typedefs: []
    union: []
- function_names:
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::BM_FindRoot
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::BM_FindRoot
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::BM_FindRoot
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::TEST
  - internal::BM_FindRoot
  source_file: /src/s2geometry/src/s2/internal/s2disjoint_set_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - internal::S2IndexCellData::LoadCell
  - internal::S2IndexCellData::shape_edges
  - internal::S2IndexCellData::dim_edges
  - internal::S2IndexCellData::dim_range_edges
  - internal::S2IndexCellData::ShapeContains
  - internal::S2IndexCellData::LoadCell
  - internal::S2IndexCellData::shape_edges
  - internal::S2IndexCellData::dim_edges
  - internal::S2IndexCellData::dim_range_edges
  - internal::S2IndexCellData::ShapeContains
  source_file: /src/s2geometry/src/s2/internal/s2index_cell_data.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/base/log_severity.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nallocx
  - __size_returning_new
  source_file: /src/s2geometry/src/s2/base/malloc_extension.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/base/malloc_extension.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* p'
        type: void
      - name: n
        type: size_t
      item_type: struct
      name: __sized_ptr_t
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/s2geometry/src/s2/base/malloc_extension.h
    typedefs: []
    union: []
- function_names:
  - ABSL_ATTRIBUTE_WARN_UNUSED
  - ~SpinLock()
  - SpinLock
  - ABSL_EXCLUSIVE_LOCK_FUNCTION
  - ABSL_UNLOCK_FUNCTION
  - IsHeld
  - SpinLockHolder
  - ABSL_EXCLUSIVE_LOCK_FUNCTION
  - ABSL_UNLOCK_FUNCTION
  - SpinLockHolder
  source_file: /src/s2geometry/src/s2/base/spinlock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - down_cast
  - down_cast
  source_file: /src/s2geometry/src/s2/base/casts.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CycleTimer::CycleTimer
  - CycleTimer::Start
  - CycleTimer::GetInMs
  - CycleTimer::Now
  - CycleTimer::GetDuration
  source_file: /src/s2geometry/src/s2/base/timer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/s2geometry/src/s2/testing/test_main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FRIEND_TEST
  source_file: /src/s2geometry/src/s2/testing/gtest_prod.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Encoder::Encoder
  - '& Encoder::operator=(Encoder&& other)'
  - Encoder::~Encoder()
  - Encoder::varint32_length
  - Encoder::varint64_length
  - Encoder::NewBuffer
  - Encoder::DeleteBuffer
  - Encoder::EnsureSlowPath
  - Encoder::Resize
  source_file: /src/s2geometry/src/s2/util/coding/coder.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Varint::Encode32
  - Varint::Encode64
  - Varint::Parse32Fallback
  - Varint::Parse64FallbackPair
  - SHLD
  - SHLD_SIGN
  - SHLD_SIGN
  - DONE
  - Varint::Parse64Fallback
  - Varint::Parse32BackwardSlow
  - Varint::Parse64BackwardSlow
  - Varint::Parse64WithLimit
  - Varint::Skip32BackwardSlow
  - Varint::Skip64BackwardSlow
  - Varint::Append32Slow
  - Varint::Append64Slow
  source_file: /src/s2geometry/src/s2/util/coding/varint.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZigZagEncode
  - ZigZagDecode
  - ZigZagEncode64
  - ZigZagDecode64
  source_file: /src/s2geometry/src/s2/util/coding/transforms.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Varint::Parse32FallbackInline
  - Varint::Parse32
  - Varint::Parse32Inline
  - Varint::Skip32
  - Varint::Parse32Backward
  - Varint::Skip32Backward
  - Varint::Parse32WithLimit
  - Varint::Parse64
  - Varint::Skip64
  - Varint::Parse64Backward
  - Varint::Skip64Backward
  - Varint::LengthImpl
  - Varint::Length32
  - Varint::Length64
  - Varint::Append32
  - Varint::Append64
  - Varint::Encode32Inline
  - Varint::FastDecodeDeltas
  source_file: /src/s2geometry/src/s2/util/coding/varint.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NthDerivativeCoder::n
  - NthDerivativeCoder::NthDerivativeCoder
  - NthDerivativeCoder::Encode
  - NthDerivativeCoder::Decode
  - NthDerivativeCoder::Reset
  source_file: /src/s2geometry/src/s2/util/coding/nth-derivative.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Encoder::Encoder
  - Encoder::put8
  - Encoder::put16
  - Encoder::put32
  - Encoder::put64
  - Encoder::put128
  - Encoder::putn
  - Encoder::putcn
  - Encoder::puts
  - Encoder::puts_without_null
  - Encoder::putfloat
  - Encoder::putdouble
  - Encoder::put_varint32
  - Encoder::put_varint32_inline
  - Encoder::put_varint64
  - Encoder::capacity
  - Encoder::ensure_allowed
  - Encoder::base
  - Encoder::skip
  - Encoder::RemoveLast
  - ~Writer()
  - Encoder::skip
  - Encoder::put8
  - Encoder::put16
  - Encoder::put32
  - Encoder::put64
  - Encoder::put128
  - Encoder::putn
  - Encoder::putcn
  - Encoder::puts
  - Encoder::puts_no_null
  - Encoder::put_varint32
  - Encoder::put_varint32_inline
  - Encoder::put_varint64
  - Encoder::writer
  - Decoder
  - Decoder
  - Encoder::Encoder
  - Encoder::reset
  - Encoder::reset
  - Encoder::clear
  - Encoder::Ensure
  - Encoder::length
  - Encoder::avail
  - CopyAndAdvance
  - Encoder::PutVarint64FromDecoderLessCommonSizes
  - Encoder::put_varint64_from_decoder
  - Decoder::Decoder
  - Decoder::reset
  - Decoder::pos
  - Decoder::avail
  - Decoder::getn
  - Decoder::getcn
  - Decoder::gets
  - Decoder::skip
  - Decoder::ptr
  - DecoderExtensions::FillArray
  - Decoder::get8
  - Decoder::get16
  - Decoder::get32
  - Decoder::get64
  - Decoder::get128
  - Decoder::getfloat
  - Decoder::getdouble
  - Decoder::get_varint32
  - Decoder::get_varint64
  source_file: /src/s2geometry/src/s2/util/coding/coder.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* enc'
        type: Encoder
      - name: '* p'
        type: char
      item_type: struct
      name: Writer
      pos:
        line_end: 244
        line_start: 207
        source_file: /src/s2geometry/src/s2/util/coding/coder.h
    typedefs: []
    union: []
- function_names:
  - util::bitmap::SetBit
  - util::bitmap::SetBit
  - util::bitmap::GetBit
  - util::bitmap::GetBit
  - util::bitmap::PrefetchBit
  - util::bitmap::PrefetchBit
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::CreateConst
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - ~BasicBitmap()
  - util::bitmap::internal::BasicBitmap::bits
  - util::bitmap::internal::BasicBitmap::array_size
  - util::bitmap::internal::BasicBitmap::GetMapElement
  - util::bitmap::internal::BasicBitmap::GetMaskedMapElement
  - util::bitmap::internal::BasicBitmap::SetMapElement
  - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
  - util::bitmap::internal::BasicBitmap::Prefetch
  - util::bitmap::internal::BasicBitmap::Get
  - util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetOnesCount
  - util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
  - util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetZeroesCount
  - util::bitmap::internal::BasicBitmap::IsAllZeroes
  - util::bitmap::internal::BasicBitmap::IsAllOnes
  - util::bitmap::internal::BasicBitmap::FindNextSetBit
  - util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
  - util::bitmap::internal::BasicBitmap::FindFirstSetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
  - util::bitmap::internal::BasicBitmap::FindPreviousSetBit
  - util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
  - util::bitmap::internal::BasicBitmap::FindLastSetBit
  - util::bitmap::internal::BasicBitmap::Set
  - util::bitmap::internal::BasicBitmap::Toggle
  - util::bitmap::internal::BasicBitmap::SetAll
  - util::bitmap::internal::BasicBitmap::Clear
  - util::bitmap::internal::BasicBitmap::Complement
  - util::bitmap::internal::BasicBitmap::Difference
  - util::bitmap::internal::BasicBitmap::ExclusiveOr
  - util::bitmap::internal::BasicBitmap::IsEqual
  - operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::HashCode
  - util::bitmap::internal::BasicBitmap::AbslHashValue
  - util::bitmap::internal::BasicBitmap::RequiredArraySize
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - operator*() const
  - operator->() const
  - operator++(int)
  - operator==(const BitIndexIter& a, const BitIndexIter& b)
  - operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
  - util::bitmap::internal::BasicBitmap::BitIndexRange::begin
  - util::bitmap::internal::BasicBitmap::BitIndexRange::end
  - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
  - util::bitmap::internal::BasicBitmap::TrueBitIndices
  - util::bitmap::internal::BasicBitmap::Log2
  - util::bitmap::internal::BasicBitmap::DeleteMap
  - "& operator<<(std::ostream& out,\n                                const BasicBitmap<W>&
    bitmap)"
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::CreateConst
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - ~BasicBitmap()
  - util::bitmap::internal::BasicBitmap::bits
  - util::bitmap::internal::BasicBitmap::array_size
  - util::bitmap::internal::BasicBitmap::GetMapElement
  - util::bitmap::internal::BasicBitmap::GetMaskedMapElement
  - util::bitmap::internal::BasicBitmap::SetMapElement
  - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
  - util::bitmap::internal::BasicBitmap::Prefetch
  - util::bitmap::internal::BasicBitmap::Get
  - util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetOnesCount
  - util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
  - util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetZeroesCount
  - util::bitmap::internal::BasicBitmap::IsAllZeroes
  - util::bitmap::internal::BasicBitmap::IsAllOnes
  - util::bitmap::internal::BasicBitmap::FindNextSetBit
  - util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
  - util::bitmap::internal::BasicBitmap::FindFirstSetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
  - util::bitmap::internal::BasicBitmap::FindPreviousSetBit
  - util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
  - util::bitmap::internal::BasicBitmap::FindLastSetBit
  - util::bitmap::internal::BasicBitmap::Set
  - util::bitmap::internal::BasicBitmap::Toggle
  - util::bitmap::internal::BasicBitmap::SetAll
  - util::bitmap::internal::BasicBitmap::Clear
  - util::bitmap::internal::BasicBitmap::Complement
  - util::bitmap::internal::BasicBitmap::Difference
  - util::bitmap::internal::BasicBitmap::ExclusiveOr
  - util::bitmap::internal::BasicBitmap::IsEqual
  - operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::HashCode
  - util::bitmap::internal::BasicBitmap::AbslHashValue
  - util::bitmap::internal::BasicBitmap::RequiredArraySize
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - operator*() const
  - operator->() const
  - operator++(int)
  - operator==(const BitIndexIter& a, const BitIndexIter& b)
  - operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
  - util::bitmap::internal::BasicBitmap::BitIndexRange::begin
  - util::bitmap::internal::BasicBitmap::BitIndexRange::end
  - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
  - util::bitmap::internal::BasicBitmap::TrueBitIndices
  - util::bitmap::internal::BasicBitmap::Log2
  - util::bitmap::internal::BasicBitmap::DeleteMap
  - "& operator<<(std::ostream& out,\n                                const BasicBitmap<W>&
    bitmap)"
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::Resize
  - '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
  - util::bitmap::internal::BasicBitmap<W>::TestRange
  - util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
  - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
  - util::bitmap::internal::BasicBitmap<W>::CompareTo
  - util::bitmap::internal::BasicBitmap<W>::Union
  - util::bitmap::internal::BasicBitmap<W>::Intersection
  - util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
  - util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
  - util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::SetRange
  - BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n                                           size_type
    start_bit)"
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::Resize
  - '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
  - util::bitmap::internal::BasicBitmap<W>::TestRange
  - util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
  - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
  - util::bitmap::internal::BasicBitmap<W>::CompareTo
  - util::bitmap::internal::BasicBitmap<W>::Union
  - util::bitmap::internal::BasicBitmap<W>::Intersection
  - util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
  - util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
  - util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::SetRange
  - BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n                                           size_type
    start_bit)"
  - util::bitmap::SetBit
  - util::bitmap::SetBit
  - util::bitmap::GetBit
  - util::bitmap::GetBit
  - util::bitmap::PrefetchBit
  - util::bitmap::PrefetchBit
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::CreateConst
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - ~BasicBitmap()
  - util::bitmap::internal::BasicBitmap::bits
  - util::bitmap::internal::BasicBitmap::array_size
  - util::bitmap::internal::BasicBitmap::GetMapElement
  - util::bitmap::internal::BasicBitmap::GetMaskedMapElement
  - util::bitmap::internal::BasicBitmap::SetMapElement
  - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
  - util::bitmap::internal::BasicBitmap::Prefetch
  - util::bitmap::internal::BasicBitmap::Get
  - util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetOnesCount
  - util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
  - util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetZeroesCount
  - util::bitmap::internal::BasicBitmap::IsAllZeroes
  - util::bitmap::internal::BasicBitmap::IsAllOnes
  - util::bitmap::internal::BasicBitmap::FindNextSetBit
  - util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
  - util::bitmap::internal::BasicBitmap::FindFirstSetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
  - util::bitmap::internal::BasicBitmap::FindPreviousSetBit
  - util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
  - util::bitmap::internal::BasicBitmap::FindLastSetBit
  - util::bitmap::internal::BasicBitmap::Set
  - util::bitmap::internal::BasicBitmap::Toggle
  - util::bitmap::internal::BasicBitmap::SetAll
  - util::bitmap::internal::BasicBitmap::Clear
  - util::bitmap::internal::BasicBitmap::Complement
  - util::bitmap::internal::BasicBitmap::Difference
  - util::bitmap::internal::BasicBitmap::ExclusiveOr
  - util::bitmap::internal::BasicBitmap::IsEqual
  - operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::HashCode
  - util::bitmap::internal::BasicBitmap::AbslHashValue
  - util::bitmap::internal::BasicBitmap::RequiredArraySize
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - operator*() const
  - operator->() const
  - operator++(int)
  - operator==(const BitIndexIter& a, const BitIndexIter& b)
  - operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
  - util::bitmap::internal::BasicBitmap::BitIndexRange::begin
  - util::bitmap::internal::BasicBitmap::BitIndexRange::end
  - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
  - util::bitmap::internal::BasicBitmap::TrueBitIndices
  - util::bitmap::internal::BasicBitmap::Log2
  - util::bitmap::internal::BasicBitmap::DeleteMap
  - "& operator<<(std::ostream& out,\n                                const BasicBitmap<W>&
    bitmap)"
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::CreateConst
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - ~BasicBitmap()
  - util::bitmap::internal::BasicBitmap::bits
  - util::bitmap::internal::BasicBitmap::array_size
  - util::bitmap::internal::BasicBitmap::GetMapElement
  - util::bitmap::internal::BasicBitmap::GetMaskedMapElement
  - util::bitmap::internal::BasicBitmap::SetMapElement
  - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
  - util::bitmap::internal::BasicBitmap::Prefetch
  - util::bitmap::internal::BasicBitmap::Get
  - util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetOnesCount
  - util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
  - util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetZeroesCount
  - util::bitmap::internal::BasicBitmap::IsAllZeroes
  - util::bitmap::internal::BasicBitmap::IsAllOnes
  - util::bitmap::internal::BasicBitmap::FindNextSetBit
  - util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
  - util::bitmap::internal::BasicBitmap::FindFirstSetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
  - util::bitmap::internal::BasicBitmap::FindPreviousSetBit
  - util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
  - util::bitmap::internal::BasicBitmap::FindLastSetBit
  - util::bitmap::internal::BasicBitmap::Set
  - util::bitmap::internal::BasicBitmap::Toggle
  - util::bitmap::internal::BasicBitmap::SetAll
  - util::bitmap::internal::BasicBitmap::Clear
  - util::bitmap::internal::BasicBitmap::Complement
  - util::bitmap::internal::BasicBitmap::Difference
  - util::bitmap::internal::BasicBitmap::ExclusiveOr
  - util::bitmap::internal::BasicBitmap::IsEqual
  - operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::HashCode
  - util::bitmap::internal::BasicBitmap::AbslHashValue
  - util::bitmap::internal::BasicBitmap::RequiredArraySize
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - operator*() const
  - operator->() const
  - operator++(int)
  - operator==(const BitIndexIter& a, const BitIndexIter& b)
  - operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
  - util::bitmap::internal::BasicBitmap::BitIndexRange::begin
  - util::bitmap::internal::BasicBitmap::BitIndexRange::end
  - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
  - util::bitmap::internal::BasicBitmap::TrueBitIndices
  - util::bitmap::internal::BasicBitmap::Log2
  - util::bitmap::internal::BasicBitmap::DeleteMap
  - "& operator<<(std::ostream& out,\n                                const BasicBitmap<W>&
    bitmap)"
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::Resize
  - '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
  - util::bitmap::internal::BasicBitmap<W>::TestRange
  - util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
  - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
  - util::bitmap::internal::BasicBitmap<W>::CompareTo
  - util::bitmap::internal::BasicBitmap<W>::Union
  - util::bitmap::internal::BasicBitmap<W>::Intersection
  - util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
  - util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
  - util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::SetRange
  - BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n                                           size_type
    start_bit)"
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::Resize
  - '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
  - util::bitmap::internal::BasicBitmap<W>::TestRange
  - util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
  - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
  - util::bitmap::internal::BasicBitmap<W>::CompareTo
  - util::bitmap::internal::BasicBitmap<W>::Union
  - util::bitmap::internal::BasicBitmap<W>::Intersection
  - util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
  - util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
  - util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::SetRange
  - BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n                                           size_type
    start_bit)"
  - util::bitmap::SetBit
  - util::bitmap::SetBit
  - util::bitmap::GetBit
  - util::bitmap::GetBit
  - util::bitmap::PrefetchBit
  - util::bitmap::PrefetchBit
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::CreateConst
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - ~BasicBitmap()
  - util::bitmap::internal::BasicBitmap::bits
  - util::bitmap::internal::BasicBitmap::array_size
  - util::bitmap::internal::BasicBitmap::GetMapElement
  - util::bitmap::internal::BasicBitmap::GetMaskedMapElement
  - util::bitmap::internal::BasicBitmap::SetMapElement
  - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
  - util::bitmap::internal::BasicBitmap::Prefetch
  - util::bitmap::internal::BasicBitmap::Get
  - util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetOnesCount
  - util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
  - util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetZeroesCount
  - util::bitmap::internal::BasicBitmap::IsAllZeroes
  - util::bitmap::internal::BasicBitmap::IsAllOnes
  - util::bitmap::internal::BasicBitmap::FindNextSetBit
  - util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
  - util::bitmap::internal::BasicBitmap::FindFirstSetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
  - util::bitmap::internal::BasicBitmap::FindPreviousSetBit
  - util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
  - util::bitmap::internal::BasicBitmap::FindLastSetBit
  - util::bitmap::internal::BasicBitmap::Set
  - util::bitmap::internal::BasicBitmap::Toggle
  - util::bitmap::internal::BasicBitmap::SetAll
  - util::bitmap::internal::BasicBitmap::Clear
  - util::bitmap::internal::BasicBitmap::Complement
  - util::bitmap::internal::BasicBitmap::Difference
  - util::bitmap::internal::BasicBitmap::ExclusiveOr
  - util::bitmap::internal::BasicBitmap::IsEqual
  - operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::HashCode
  - util::bitmap::internal::BasicBitmap::AbslHashValue
  - util::bitmap::internal::BasicBitmap::RequiredArraySize
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - operator*() const
  - operator->() const
  - operator++(int)
  - operator==(const BitIndexIter& a, const BitIndexIter& b)
  - operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
  - util::bitmap::internal::BasicBitmap::BitIndexRange::begin
  - util::bitmap::internal::BasicBitmap::BitIndexRange::end
  - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
  - util::bitmap::internal::BasicBitmap::TrueBitIndices
  - util::bitmap::internal::BasicBitmap::Log2
  - util::bitmap::internal::BasicBitmap::DeleteMap
  - "& operator<<(std::ostream& out,\n                                const BasicBitmap<W>&
    bitmap)"
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::CreateConst
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - ~BasicBitmap()
  - util::bitmap::internal::BasicBitmap::bits
  - util::bitmap::internal::BasicBitmap::array_size
  - util::bitmap::internal::BasicBitmap::GetMapElement
  - util::bitmap::internal::BasicBitmap::GetMaskedMapElement
  - util::bitmap::internal::BasicBitmap::SetMapElement
  - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
  - util::bitmap::internal::BasicBitmap::Prefetch
  - util::bitmap::internal::BasicBitmap::Get
  - util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetOnesCount
  - util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
  - util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetZeroesCount
  - util::bitmap::internal::BasicBitmap::IsAllZeroes
  - util::bitmap::internal::BasicBitmap::IsAllOnes
  - util::bitmap::internal::BasicBitmap::FindNextSetBit
  - util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
  - util::bitmap::internal::BasicBitmap::FindFirstSetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
  - util::bitmap::internal::BasicBitmap::FindPreviousSetBit
  - util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
  - util::bitmap::internal::BasicBitmap::FindLastSetBit
  - util::bitmap::internal::BasicBitmap::Set
  - util::bitmap::internal::BasicBitmap::Toggle
  - util::bitmap::internal::BasicBitmap::SetAll
  - util::bitmap::internal::BasicBitmap::Clear
  - util::bitmap::internal::BasicBitmap::Complement
  - util::bitmap::internal::BasicBitmap::Difference
  - util::bitmap::internal::BasicBitmap::ExclusiveOr
  - util::bitmap::internal::BasicBitmap::IsEqual
  - operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::HashCode
  - util::bitmap::internal::BasicBitmap::AbslHashValue
  - util::bitmap::internal::BasicBitmap::RequiredArraySize
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - operator*() const
  - operator->() const
  - operator++(int)
  - operator==(const BitIndexIter& a, const BitIndexIter& b)
  - operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
  - util::bitmap::internal::BasicBitmap::BitIndexRange::begin
  - util::bitmap::internal::BasicBitmap::BitIndexRange::end
  - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
  - util::bitmap::internal::BasicBitmap::TrueBitIndices
  - util::bitmap::internal::BasicBitmap::Log2
  - util::bitmap::internal::BasicBitmap::DeleteMap
  - "& operator<<(std::ostream& out,\n                                const BasicBitmap<W>&
    bitmap)"
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::Resize
  - '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
  - util::bitmap::internal::BasicBitmap<W>::TestRange
  - util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
  - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
  - util::bitmap::internal::BasicBitmap<W>::CompareTo
  - util::bitmap::internal::BasicBitmap<W>::Union
  - util::bitmap::internal::BasicBitmap<W>::Intersection
  - util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
  - util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
  - util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::SetRange
  - BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n                                           size_type
    start_bit)"
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::Resize
  - '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
  - util::bitmap::internal::BasicBitmap<W>::TestRange
  - util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
  - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
  - util::bitmap::internal::BasicBitmap<W>::CompareTo
  - util::bitmap::internal::BasicBitmap<W>::Union
  - util::bitmap::internal::BasicBitmap<W>::Intersection
  - util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
  - util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
  - util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::SetRange
  - BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n                                           size_type
    start_bit)"
  - util::bitmap::SetBit
  - util::bitmap::SetBit
  - util::bitmap::GetBit
  - util::bitmap::GetBit
  - util::bitmap::PrefetchBit
  - util::bitmap::PrefetchBit
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::CreateConst
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - ~BasicBitmap()
  - util::bitmap::internal::BasicBitmap::bits
  - util::bitmap::internal::BasicBitmap::array_size
  - util::bitmap::internal::BasicBitmap::GetMapElement
  - util::bitmap::internal::BasicBitmap::GetMaskedMapElement
  - util::bitmap::internal::BasicBitmap::SetMapElement
  - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
  - util::bitmap::internal::BasicBitmap::Prefetch
  - util::bitmap::internal::BasicBitmap::Get
  - util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetOnesCount
  - util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
  - util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetZeroesCount
  - util::bitmap::internal::BasicBitmap::IsAllZeroes
  - util::bitmap::internal::BasicBitmap::IsAllOnes
  - util::bitmap::internal::BasicBitmap::FindNextSetBit
  - util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
  - util::bitmap::internal::BasicBitmap::FindFirstSetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
  - util::bitmap::internal::BasicBitmap::FindPreviousSetBit
  - util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
  - util::bitmap::internal::BasicBitmap::FindLastSetBit
  - util::bitmap::internal::BasicBitmap::Set
  - util::bitmap::internal::BasicBitmap::Toggle
  - util::bitmap::internal::BasicBitmap::SetAll
  - util::bitmap::internal::BasicBitmap::Clear
  - util::bitmap::internal::BasicBitmap::Complement
  - util::bitmap::internal::BasicBitmap::Difference
  - util::bitmap::internal::BasicBitmap::ExclusiveOr
  - util::bitmap::internal::BasicBitmap::IsEqual
  - operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::HashCode
  - util::bitmap::internal::BasicBitmap::AbslHashValue
  - util::bitmap::internal::BasicBitmap::RequiredArraySize
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - operator*() const
  - operator->() const
  - operator++(int)
  - operator==(const BitIndexIter& a, const BitIndexIter& b)
  - operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
  - util::bitmap::internal::BasicBitmap::BitIndexRange::begin
  - util::bitmap::internal::BasicBitmap::BitIndexRange::end
  - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
  - util::bitmap::internal::BasicBitmap::TrueBitIndices
  - util::bitmap::internal::BasicBitmap::Log2
  - util::bitmap::internal::BasicBitmap::DeleteMap
  - "& operator<<(std::ostream& out,\n                                const BasicBitmap<W>&
    bitmap)"
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - util::bitmap::internal::BasicBitmap::CreateConst
  - util::bitmap::internal::BasicBitmap::BasicBitmap
  - ~BasicBitmap()
  - util::bitmap::internal::BasicBitmap::bits
  - util::bitmap::internal::BasicBitmap::array_size
  - util::bitmap::internal::BasicBitmap::GetMapElement
  - util::bitmap::internal::BasicBitmap::GetMaskedMapElement
  - util::bitmap::internal::BasicBitmap::SetMapElement
  - util::bitmap::internal::BasicBitmap::HighOrderMapElementMask
  - util::bitmap::internal::BasicBitmap::Prefetch
  - util::bitmap::internal::BasicBitmap::Get
  - util::bitmap::internal::BasicBitmap::GetOnesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetOnesCount
  - util::bitmap::internal::BasicBitmap::GetZeroesCountInRange
  - util::bitmap::internal::BasicBitmap::GetZeroesCountBeforeLimit
  - util::bitmap::internal::BasicBitmap::GetZeroesCount
  - util::bitmap::internal::BasicBitmap::IsAllZeroes
  - util::bitmap::internal::BasicBitmap::IsAllOnes
  - util::bitmap::internal::BasicBitmap::FindNextSetBit
  - util::bitmap::internal::BasicBitmap::FindNextSetBitInVector
  - util::bitmap::internal::BasicBitmap::FindFirstSetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBit
  - util::bitmap::internal::BasicBitmap::FindNextUnsetBitInVector
  - util::bitmap::internal::BasicBitmap::FindPreviousSetBit
  - util::bitmap::internal::BasicBitmap::FindPreviousUnsetBit
  - util::bitmap::internal::BasicBitmap::FindLastSetBit
  - util::bitmap::internal::BasicBitmap::Set
  - util::bitmap::internal::BasicBitmap::Toggle
  - util::bitmap::internal::BasicBitmap::SetAll
  - util::bitmap::internal::BasicBitmap::Clear
  - util::bitmap::internal::BasicBitmap::Complement
  - util::bitmap::internal::BasicBitmap::Difference
  - util::bitmap::internal::BasicBitmap::ExclusiveOr
  - util::bitmap::internal::BasicBitmap::IsEqual
  - operator==(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator!=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator<=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - operator>=(const BasicBitmap& lhs, const BasicBitmap& rhs)
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::ToString
  - util::bitmap::internal::BasicBitmap::HashCode
  - util::bitmap::internal::BasicBitmap::AbslHashValue
  - util::bitmap::internal::BasicBitmap::RequiredArraySize
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - util::bitmap::internal::BasicBitmap::BitIndexIter::BitIndexIter
  - operator*() const
  - operator->() const
  - operator++(int)
  - operator==(const BitIndexIter& a, const BitIndexIter& b)
  - operator!=(const BitIndexIter& a, const BitIndexIter& b)
  - util::bitmap::internal::BasicBitmap::BitIndexRange::BitIndexRange
  - util::bitmap::internal::BasicBitmap::BitIndexRange::begin
  - util::bitmap::internal::BasicBitmap::BitIndexRange::end
  - util::bitmap::internal::BasicBitmap::BitIndexRange::LowerBound
  - util::bitmap::internal::BasicBitmap::TrueBitIndices
  - util::bitmap::internal::BasicBitmap::Log2
  - util::bitmap::internal::BasicBitmap::DeleteMap
  - "& operator<<(std::ostream& out,\n                                const BasicBitmap<W>&
    bitmap)"
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::Resize
  - '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
  - util::bitmap::internal::BasicBitmap<W>::TestRange
  - util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
  - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
  - util::bitmap::internal::BasicBitmap<W>::CompareTo
  - util::bitmap::internal::BasicBitmap<W>::Union
  - util::bitmap::internal::BasicBitmap<W>::Intersection
  - util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
  - util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
  - util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::SetRange
  - BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n                                           size_type
    start_bit)"
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::BasicBitmap
  - util::bitmap::internal::BasicBitmap<W>::Resize
  - '& BasicBitmap<W>::operator=(const BasicBitmap<W>& src)'
  - util::bitmap::internal::BasicBitmap<W>::TestRange
  - util::bitmap::internal::BasicBitmap<W>::IsSubsetOf
  - util::bitmap::internal::BasicBitmap<W>::CompareToHelper
  - util::bitmap::internal::BasicBitmap<W>::CompareTo
  - util::bitmap::internal::BasicBitmap<W>::Union
  - util::bitmap::internal::BasicBitmap<W>::Intersection
  - util::bitmap::internal::BasicBitmap<W>::IsIntersectionNonEmpty
  - util::bitmap::internal::BasicBitmap<W>::GetOnesCountInRange
  - util::bitmap::internal::BasicBitmap<W>::FindNextSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindNextBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousBitInVector
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousSetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::FindPreviousUnsetBitBeforeLimit
  - util::bitmap::internal::BasicBitmap<W>::SetRange
  - BasicBitmap<W>::BitIndexIter::operator++() -> BitIndexIter&
  - "BasicBitmap<W>::BitIndexIter::BitIndexIter(const BasicBitmap* bitmap,\n                                           size_type
    start_bit)"
  source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: is_atomic
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<std::atomic<T>>
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<const std::atomic<T>>
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<std::atomic<T>>
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<const std::atomic<T>>
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<std::atomic<T>>
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<const std::atomic<T>>
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<std::atomic<T>>
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<const std::atomic<T>>
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<std::atomic<T>>
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<const std::atomic<T>>
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<std::atomic<T>>
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<const std::atomic<T>>
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<std::atomic<T>>
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<const std::atomic<T>>
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<std::atomic<T>>
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<const std::atomic<T>>
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<std::atomic<T>>
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<const std::atomic<T>>
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<std::atomic<T>>
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<const std::atomic<T>>
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<std::atomic<T>>
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<const std::atomic<T>>
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<std::atomic<T>>
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<const std::atomic<T>>
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<std::atomic<T>>
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<const std::atomic<T>>
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<std::atomic<T>>
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<const std::atomic<T>>
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<std::atomic<T>>
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: is_atomic<const std::atomic<T>>
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<std::atomic<T>>
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    - fields: []
      item_type: struct
      name: remove_atomic<const std::atomic<T>>
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/s2geometry/src/s2/util/bitmap/bitmap.h
    typedefs: []
    union: []
- function_names:
  - ASSIGN_OR_RETURN
  source_file: /src/s2geometry/src/s2/util/task/status_macros.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HashMix::HashMix
  - HashMix::HashMix
  - HashMix::Mix
  - HashMix::get
  source_file: /src/s2geometry/src/s2/util/hash/mix.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Matrix3x3::Matrix3x3
  - Matrix3x3::Matrix3x3
  - Matrix3x3::Cast
  - "&Set(const VType &m00, const VType &m01, const VType &m02,\n                        const
    VType &m10, const VType &m11, const VType &m12,\n                        const
    VType &m20, const VType &m21, const VType &m22)"
  - '&operator+=(const Matrix3x3 &mb)'
  - '&operator-=(const Matrix3x3 &mb)'
  - '&operator*=(const VType &k)'
  - operator+(const Matrix3x3 &mb) const
  - operator-(const Matrix3x3 &mb) const
  - operator-(const Matrix3x3 &vb)
  - operator*(const VType &k) const
  - operator*(const VType &k, const Matrix3x3 &mb)
  - operator*(const Matrix3x3 &mb) const
  - operator*(const MVector &v) const
  - Matrix3x3::Det
  - Matrix3x3::Trace
  - Matrix3x3::Data
  - Matrix3x3::Data
  - '&operator()(const int i, const int j)'
  - operator()(const int i, const int j) const
  - '&operator[](const int i)'
  - operator[](const int i) const
  - Matrix3x3::Transpose
  - Matrix3x3::ComatrixTransposed
  - Matrix3x3::Inverse
  - Matrix3x3::Row
  - Matrix3x3::Col
  - Matrix3x3::FromRows
  - Matrix3x3::FromCols
  - Matrix3x3::FromOuter
  - Matrix3x3::SetRow
  - Matrix3x3::SetCol
  - Matrix3x3::Orthogonalize
  - Matrix3x3::Identity
  - Matrix3x3::Zero
  - Matrix3x3::Diagonal
  - Matrix3x3::Sym3
  - Matrix3x3::AntiSym3
  - Matrix3x3::Rodrigues
  - Matrix3x3::Householder
  - Matrix3x3::MulBothSides
  - Matrix3x3::Project
  - Matrix3x3::FrobeniusNorm
  - Matrix3x3::EigenValues
  - Matrix3x3::SymmetricEigenSolver
  - Matrix3x3::IsNaN
  - operator==(const Matrix3x3 &a, const Matrix3x3 &b)
  - operator!=(const Matrix3x3 &a, const Matrix3x3 &b)
  - '&operator<<(std::ostream &out, const Matrix3x3 &mb)'
  - Matrix3x3::AbslHashValue
  source_file: /src/s2geometry/src/s2/util/math/matrix3x3.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Self
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/s2geometry/src/s2/util/math/matrix3x3.h
      type: Matrix3x3
    - item_type: typedef
      name: BaseType
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/s2geometry/src/s2/util/math/matrix3x3.h
      type: VType
    - item_type: typedef
      name: MVector
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/s2geometry/src/s2/util/math/matrix3x3.h
      type: Vector3
    - item_type: typedef
      name: Matrix3x3_i
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/s2geometry/src/s2/util/math/matrix3x3.h
      type: Matrix3x3
    - item_type: typedef
      name: Matrix3x3_f
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/s2geometry/src/s2/util/math/matrix3x3.h
      type: Matrix3x3
    - item_type: typedef
      name: Matrix3x3_d
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/s2geometry/src/s2/util/math/matrix3x3.h
      type: Matrix3x3
    union: []
- function_names:
  - util::math::internal_vector::BasicVector::Reduce
  - util::math::internal_vector::BasicVector::GenerateEach
  - util::math::internal_vector::BasicVector::Generate
  - util::math::internal_vector::BasicVector::Size
  - util::math::internal_vector::BasicVector::Clear
  - '& operator[](int b)'
  - operator[](int b) const
  - util::math::internal_vector::BasicVector::get
  - operator==(const BasicVector& b) const
  - operator!=(const BasicVector& b) const
  - operator<(const BasicVector& b) const
  - operator>(const BasicVector& b) const
  - operator<=(const BasicVector& b) const
  - operator>=(const BasicVector& b) const
  - '& operator+=(const D& b)'
  - '& operator-=(const D& b)'
  - '& operator*=(T k)'
  - '& operator/=(T k)'
  - operator+(const D& b) const
  - operator-(const D& b) const
  - operator*(T k) const
  - operator/(T k) const
  - operator-(const D& a)
  - util::math::internal_vector::BasicVector::Cast
  - util::math::internal_vector::BasicVector::MulComponents
  - util::math::internal_vector::BasicVector::DivComponents
  - util::math::internal_vector::BasicVector::Max
  - util::math::internal_vector::BasicVector::Min
  - util::math::internal_vector::BasicVector::DotProd
  - util::math::internal_vector::BasicVector::Norm2
  - util::math::internal_vector::BasicVector::Norm
  - util::math::internal_vector::BasicVector::Normalize
  - util::math::internal_vector::BasicVector::Sqrt
  - util::math::internal_vector::BasicVector::Floor
  - util::math::internal_vector::BasicVector::Ceil
  - util::math::internal_vector::BasicVector::FRound
  - util::math::internal_vector::BasicVector::IRound
  - util::math::internal_vector::BasicVector::IsNaN
  - util::math::internal_vector::BasicVector::NaN
  - '& operator<<(std::ostream& out, const D& v)'
  - util::math::internal_vector::BasicVector::MulScalarInternal
  - util::math::internal_vector::BasicVector::DivScalarInternal
  - util::math::internal_vector::BasicVector::AbslHashValue
  - util::math::internal_vector::BasicVector::FlumeEncode
  - util::math::internal_vector::BasicVector::FlumeDecode
  - '& AsD() const'
  - '& AsD()'
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Ignore
  - util::math::internal_vector::BasicVector::Dot
  - util::math::internal_vector::BasicVector::PlusEq
  - util::math::internal_vector::BasicVector::MinusEq
  - util::math::internal_vector::BasicVector::MulEq
  - util::math::internal_vector::BasicVector::DivEq
  - operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - util::math::internal_vector::BasicVector::Reduce
  - util::math::internal_vector::BasicVector::GenerateEach
  - util::math::internal_vector::BasicVector::Generate
  - util::math::internal_vector::BasicVector::Size
  - util::math::internal_vector::BasicVector::Clear
  - '& operator[](int b)'
  - operator[](int b) const
  - util::math::internal_vector::BasicVector::get
  - operator==(const BasicVector& b) const
  - operator!=(const BasicVector& b) const
  - operator<(const BasicVector& b) const
  - operator>(const BasicVector& b) const
  - operator<=(const BasicVector& b) const
  - operator>=(const BasicVector& b) const
  - '& operator+=(const D& b)'
  - '& operator-=(const D& b)'
  - '& operator*=(T k)'
  - '& operator/=(T k)'
  - operator+(const D& b) const
  - operator-(const D& b) const
  - operator*(T k) const
  - operator/(T k) const
  - operator-(const D& a)
  - util::math::internal_vector::BasicVector::Cast
  - util::math::internal_vector::BasicVector::MulComponents
  - util::math::internal_vector::BasicVector::DivComponents
  - util::math::internal_vector::BasicVector::Max
  - util::math::internal_vector::BasicVector::Min
  - util::math::internal_vector::BasicVector::DotProd
  - util::math::internal_vector::BasicVector::Norm2
  - util::math::internal_vector::BasicVector::Norm
  - util::math::internal_vector::BasicVector::Normalize
  - util::math::internal_vector::BasicVector::Sqrt
  - util::math::internal_vector::BasicVector::Floor
  - util::math::internal_vector::BasicVector::Ceil
  - util::math::internal_vector::BasicVector::FRound
  - util::math::internal_vector::BasicVector::IRound
  - util::math::internal_vector::BasicVector::IsNaN
  - util::math::internal_vector::BasicVector::NaN
  - '& operator<<(std::ostream& out, const D& v)'
  - util::math::internal_vector::BasicVector::MulScalarInternal
  - util::math::internal_vector::BasicVector::DivScalarInternal
  - util::math::internal_vector::BasicVector::AbslHashValue
  - util::math::internal_vector::BasicVector::FlumeEncode
  - util::math::internal_vector::BasicVector::FlumeDecode
  - '& AsD() const'
  - '& AsD()'
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Ignore
  - util::math::internal_vector::BasicVector::Dot
  - util::math::internal_vector::BasicVector::PlusEq
  - util::math::internal_vector::BasicVector::MinusEq
  - util::math::internal_vector::BasicVector::MulEq
  - util::math::internal_vector::BasicVector::DivEq
  - operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - util::math::internal_vector::BasicVector::Reduce
  - util::math::internal_vector::BasicVector::GenerateEach
  - util::math::internal_vector::BasicVector::Generate
  - util::math::internal_vector::BasicVector::Size
  - util::math::internal_vector::BasicVector::Clear
  - '& operator[](int b)'
  - operator[](int b) const
  - util::math::internal_vector::BasicVector::get
  - operator==(const BasicVector& b) const
  - operator!=(const BasicVector& b) const
  - operator<(const BasicVector& b) const
  - operator>(const BasicVector& b) const
  - operator<=(const BasicVector& b) const
  - operator>=(const BasicVector& b) const
  - '& operator+=(const D& b)'
  - '& operator-=(const D& b)'
  - '& operator*=(T k)'
  - '& operator/=(T k)'
  - operator+(const D& b) const
  - operator-(const D& b) const
  - operator*(T k) const
  - operator/(T k) const
  - operator-(const D& a)
  - util::math::internal_vector::BasicVector::Cast
  - util::math::internal_vector::BasicVector::MulComponents
  - util::math::internal_vector::BasicVector::DivComponents
  - util::math::internal_vector::BasicVector::Max
  - util::math::internal_vector::BasicVector::Min
  - util::math::internal_vector::BasicVector::DotProd
  - util::math::internal_vector::BasicVector::Norm2
  - util::math::internal_vector::BasicVector::Norm
  - util::math::internal_vector::BasicVector::Normalize
  - util::math::internal_vector::BasicVector::Sqrt
  - util::math::internal_vector::BasicVector::Floor
  - util::math::internal_vector::BasicVector::Ceil
  - util::math::internal_vector::BasicVector::FRound
  - util::math::internal_vector::BasicVector::IRound
  - util::math::internal_vector::BasicVector::IsNaN
  - util::math::internal_vector::BasicVector::NaN
  - '& operator<<(std::ostream& out, const D& v)'
  - util::math::internal_vector::BasicVector::MulScalarInternal
  - util::math::internal_vector::BasicVector::DivScalarInternal
  - util::math::internal_vector::BasicVector::AbslHashValue
  - util::math::internal_vector::BasicVector::FlumeEncode
  - util::math::internal_vector::BasicVector::FlumeDecode
  - '& AsD() const'
  - '& AsD()'
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Ignore
  - util::math::internal_vector::BasicVector::Dot
  - util::math::internal_vector::BasicVector::PlusEq
  - util::math::internal_vector::BasicVector::MinusEq
  - util::math::internal_vector::BasicVector::MulEq
  - util::math::internal_vector::BasicVector::DivEq
  - operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - util::math::internal_vector::BasicVector::Reduce
  - util::math::internal_vector::BasicVector::GenerateEach
  - util::math::internal_vector::BasicVector::Generate
  - util::math::internal_vector::BasicVector::Size
  - util::math::internal_vector::BasicVector::Clear
  - '& operator[](int b)'
  - operator[](int b) const
  - util::math::internal_vector::BasicVector::get
  - operator==(const BasicVector& b) const
  - operator!=(const BasicVector& b) const
  - operator<(const BasicVector& b) const
  - operator>(const BasicVector& b) const
  - operator<=(const BasicVector& b) const
  - operator>=(const BasicVector& b) const
  - '& operator+=(const D& b)'
  - '& operator-=(const D& b)'
  - '& operator*=(T k)'
  - '& operator/=(T k)'
  - operator+(const D& b) const
  - operator-(const D& b) const
  - operator*(T k) const
  - operator/(T k) const
  - operator-(const D& a)
  - util::math::internal_vector::BasicVector::Cast
  - util::math::internal_vector::BasicVector::MulComponents
  - util::math::internal_vector::BasicVector::DivComponents
  - util::math::internal_vector::BasicVector::Max
  - util::math::internal_vector::BasicVector::Min
  - util::math::internal_vector::BasicVector::DotProd
  - util::math::internal_vector::BasicVector::Norm2
  - util::math::internal_vector::BasicVector::Norm
  - util::math::internal_vector::BasicVector::Normalize
  - util::math::internal_vector::BasicVector::Sqrt
  - util::math::internal_vector::BasicVector::Floor
  - util::math::internal_vector::BasicVector::Ceil
  - util::math::internal_vector::BasicVector::FRound
  - util::math::internal_vector::BasicVector::IRound
  - util::math::internal_vector::BasicVector::IsNaN
  - util::math::internal_vector::BasicVector::NaN
  - '& operator<<(std::ostream& out, const D& v)'
  - util::math::internal_vector::BasicVector::MulScalarInternal
  - util::math::internal_vector::BasicVector::DivScalarInternal
  - util::math::internal_vector::BasicVector::AbslHashValue
  - util::math::internal_vector::BasicVector::FlumeEncode
  - util::math::internal_vector::BasicVector::FlumeDecode
  - '& AsD() const'
  - '& AsD()'
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Ignore
  - util::math::internal_vector::BasicVector::Dot
  - util::math::internal_vector::BasicVector::PlusEq
  - util::math::internal_vector::BasicVector::MinusEq
  - util::math::internal_vector::BasicVector::MulEq
  - util::math::internal_vector::BasicVector::DivEq
  - operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - util::math::internal_vector::BasicVector::Reduce
  - util::math::internal_vector::BasicVector::GenerateEach
  - util::math::internal_vector::BasicVector::Generate
  - util::math::internal_vector::BasicVector::Size
  - util::math::internal_vector::BasicVector::Clear
  - '& operator[](int b)'
  - operator[](int b) const
  - util::math::internal_vector::BasicVector::get
  - operator==(const BasicVector& b) const
  - operator!=(const BasicVector& b) const
  - operator<(const BasicVector& b) const
  - operator>(const BasicVector& b) const
  - operator<=(const BasicVector& b) const
  - operator>=(const BasicVector& b) const
  - '& operator+=(const D& b)'
  - '& operator-=(const D& b)'
  - '& operator*=(T k)'
  - '& operator/=(T k)'
  - operator+(const D& b) const
  - operator-(const D& b) const
  - operator*(T k) const
  - operator/(T k) const
  - operator-(const D& a)
  - util::math::internal_vector::BasicVector::Cast
  - util::math::internal_vector::BasicVector::MulComponents
  - util::math::internal_vector::BasicVector::DivComponents
  - util::math::internal_vector::BasicVector::Max
  - util::math::internal_vector::BasicVector::Min
  - util::math::internal_vector::BasicVector::DotProd
  - util::math::internal_vector::BasicVector::Norm2
  - util::math::internal_vector::BasicVector::Norm
  - util::math::internal_vector::BasicVector::Normalize
  - util::math::internal_vector::BasicVector::Sqrt
  - util::math::internal_vector::BasicVector::Floor
  - util::math::internal_vector::BasicVector::Ceil
  - util::math::internal_vector::BasicVector::FRound
  - util::math::internal_vector::BasicVector::IRound
  - util::math::internal_vector::BasicVector::IsNaN
  - util::math::internal_vector::BasicVector::NaN
  - '& operator<<(std::ostream& out, const D& v)'
  - util::math::internal_vector::BasicVector::MulScalarInternal
  - util::math::internal_vector::BasicVector::DivScalarInternal
  - util::math::internal_vector::BasicVector::AbslHashValue
  - util::math::internal_vector::BasicVector::FlumeEncode
  - util::math::internal_vector::BasicVector::FlumeDecode
  - '& AsD() const'
  - '& AsD()'
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Ignore
  - util::math::internal_vector::BasicVector::Dot
  - util::math::internal_vector::BasicVector::PlusEq
  - util::math::internal_vector::BasicVector::MinusEq
  - util::math::internal_vector::BasicVector::MulEq
  - util::math::internal_vector::BasicVector::DivEq
  - operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - util::math::internal_vector::BasicVector::Reduce
  - util::math::internal_vector::BasicVector::GenerateEach
  - util::math::internal_vector::BasicVector::Generate
  - util::math::internal_vector::BasicVector::Size
  - util::math::internal_vector::BasicVector::Clear
  - '& operator[](int b)'
  - operator[](int b) const
  - util::math::internal_vector::BasicVector::get
  - operator==(const BasicVector& b) const
  - operator!=(const BasicVector& b) const
  - operator<(const BasicVector& b) const
  - operator>(const BasicVector& b) const
  - operator<=(const BasicVector& b) const
  - operator>=(const BasicVector& b) const
  - '& operator+=(const D& b)'
  - '& operator-=(const D& b)'
  - '& operator*=(T k)'
  - '& operator/=(T k)'
  - operator+(const D& b) const
  - operator-(const D& b) const
  - operator*(T k) const
  - operator/(T k) const
  - operator-(const D& a)
  - util::math::internal_vector::BasicVector::Cast
  - util::math::internal_vector::BasicVector::MulComponents
  - util::math::internal_vector::BasicVector::DivComponents
  - util::math::internal_vector::BasicVector::Max
  - util::math::internal_vector::BasicVector::Min
  - util::math::internal_vector::BasicVector::DotProd
  - util::math::internal_vector::BasicVector::Norm2
  - util::math::internal_vector::BasicVector::Norm
  - util::math::internal_vector::BasicVector::Normalize
  - util::math::internal_vector::BasicVector::Sqrt
  - util::math::internal_vector::BasicVector::Floor
  - util::math::internal_vector::BasicVector::Ceil
  - util::math::internal_vector::BasicVector::FRound
  - util::math::internal_vector::BasicVector::IRound
  - util::math::internal_vector::BasicVector::IsNaN
  - util::math::internal_vector::BasicVector::NaN
  - '& operator<<(std::ostream& out, const D& v)'
  - util::math::internal_vector::BasicVector::MulScalarInternal
  - util::math::internal_vector::BasicVector::DivScalarInternal
  - util::math::internal_vector::BasicVector::AbslHashValue
  - util::math::internal_vector::BasicVector::FlumeEncode
  - util::math::internal_vector::BasicVector::FlumeDecode
  - '& AsD() const'
  - '& AsD()'
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Ignore
  - util::math::internal_vector::BasicVector::Dot
  - util::math::internal_vector::BasicVector::PlusEq
  - util::math::internal_vector::BasicVector::MinusEq
  - util::math::internal_vector::BasicVector::MulEq
  - util::math::internal_vector::BasicVector::DivEq
  - operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - util::math::internal_vector::BasicVector::Reduce
  - util::math::internal_vector::BasicVector::GenerateEach
  - util::math::internal_vector::BasicVector::Generate
  - util::math::internal_vector::BasicVector::Size
  - util::math::internal_vector::BasicVector::Clear
  - '& operator[](int b)'
  - operator[](int b) const
  - util::math::internal_vector::BasicVector::get
  - operator==(const BasicVector& b) const
  - operator!=(const BasicVector& b) const
  - operator<(const BasicVector& b) const
  - operator>(const BasicVector& b) const
  - operator<=(const BasicVector& b) const
  - operator>=(const BasicVector& b) const
  - '& operator+=(const D& b)'
  - '& operator-=(const D& b)'
  - '& operator*=(T k)'
  - '& operator/=(T k)'
  - operator+(const D& b) const
  - operator-(const D& b) const
  - operator*(T k) const
  - operator/(T k) const
  - operator-(const D& a)
  - util::math::internal_vector::BasicVector::Cast
  - util::math::internal_vector::BasicVector::MulComponents
  - util::math::internal_vector::BasicVector::DivComponents
  - util::math::internal_vector::BasicVector::Max
  - util::math::internal_vector::BasicVector::Min
  - util::math::internal_vector::BasicVector::DotProd
  - util::math::internal_vector::BasicVector::Norm2
  - util::math::internal_vector::BasicVector::Norm
  - util::math::internal_vector::BasicVector::Normalize
  - util::math::internal_vector::BasicVector::Sqrt
  - util::math::internal_vector::BasicVector::Floor
  - util::math::internal_vector::BasicVector::Ceil
  - util::math::internal_vector::BasicVector::FRound
  - util::math::internal_vector::BasicVector::IRound
  - util::math::internal_vector::BasicVector::IsNaN
  - util::math::internal_vector::BasicVector::NaN
  - '& operator<<(std::ostream& out, const D& v)'
  - util::math::internal_vector::BasicVector::MulScalarInternal
  - util::math::internal_vector::BasicVector::DivScalarInternal
  - util::math::internal_vector::BasicVector::AbslHashValue
  - util::math::internal_vector::BasicVector::FlumeEncode
  - util::math::internal_vector::BasicVector::FlumeDecode
  - '& AsD() const'
  - '& AsD()'
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Ignore
  - util::math::internal_vector::BasicVector::Dot
  - util::math::internal_vector::BasicVector::PlusEq
  - util::math::internal_vector::BasicVector::MinusEq
  - util::math::internal_vector::BasicVector::MulEq
  - util::math::internal_vector::BasicVector::DivEq
  - operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - util::math::internal_vector::BasicVector::Reduce
  - util::math::internal_vector::BasicVector::GenerateEach
  - util::math::internal_vector::BasicVector::Generate
  - util::math::internal_vector::BasicVector::Size
  - util::math::internal_vector::BasicVector::Clear
  - '& operator[](int b)'
  - operator[](int b) const
  - util::math::internal_vector::BasicVector::get
  - operator==(const BasicVector& b) const
  - operator!=(const BasicVector& b) const
  - operator<(const BasicVector& b) const
  - operator>(const BasicVector& b) const
  - operator<=(const BasicVector& b) const
  - operator>=(const BasicVector& b) const
  - '& operator+=(const D& b)'
  - '& operator-=(const D& b)'
  - '& operator*=(T k)'
  - '& operator/=(T k)'
  - operator+(const D& b) const
  - operator-(const D& b) const
  - operator*(T k) const
  - operator/(T k) const
  - operator-(const D& a)
  - util::math::internal_vector::BasicVector::Cast
  - util::math::internal_vector::BasicVector::MulComponents
  - util::math::internal_vector::BasicVector::DivComponents
  - util::math::internal_vector::BasicVector::Max
  - util::math::internal_vector::BasicVector::Min
  - util::math::internal_vector::BasicVector::DotProd
  - util::math::internal_vector::BasicVector::Norm2
  - util::math::internal_vector::BasicVector::Norm
  - util::math::internal_vector::BasicVector::Normalize
  - util::math::internal_vector::BasicVector::Sqrt
  - util::math::internal_vector::BasicVector::Floor
  - util::math::internal_vector::BasicVector::Ceil
  - util::math::internal_vector::BasicVector::FRound
  - util::math::internal_vector::BasicVector::IRound
  - util::math::internal_vector::BasicVector::IsNaN
  - util::math::internal_vector::BasicVector::NaN
  - '& operator<<(std::ostream& out, const D& v)'
  - util::math::internal_vector::BasicVector::MulScalarInternal
  - util::math::internal_vector::BasicVector::DivScalarInternal
  - util::math::internal_vector::BasicVector::AbslHashValue
  - util::math::internal_vector::BasicVector::FlumeEncode
  - util::math::internal_vector::BasicVector::FlumeDecode
  - '& AsD() const'
  - '& AsD()'
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Print
  - util::math::internal_vector::BasicVector::Ignore
  - util::math::internal_vector::BasicVector::Dot
  - util::math::internal_vector::BasicVector::PlusEq
  - util::math::internal_vector::BasicVector::MinusEq
  - util::math::internal_vector::BasicVector::MulEq
  - util::math::internal_vector::BasicVector::DivEq
  - operator*(const K& k, const BasicVector<VT2, T2, N2>& a)
  - operator/(const K& k, const BasicVector<VT2, T2, N2>& a)
  - Vector2::Vector2
  - Vector2::Vector2
  - Vector2::Vector2
  - Vector2::Vector2
  - Vector2::Data
  - Vector2::Data
  - Vector2::x
  - Vector2::y
  - Vector2::x
  - Vector2::y
  - Vector2::aequal
  - Vector2::Set
  - Vector2::CrossProd
  - Vector2::Angle
  - Vector2::Ortho
  - Vector2::Fabs
  - Vector2::Abs
  - Vector3::Vector3
  - Vector3::Vector3
  - Vector3::Vector3
  - Vector3::Vector3
  - Vector3::Data
  - Vector3::Data
  - Vector3::x
  - Vector3::y
  - Vector3::z
  - Vector3::x
  - Vector3::y
  - Vector3::z
  - Vector3::aequal
  - Vector3::Set
  - Vector3::CrossProd
  - Vector3::Ortho
  - Vector3::Angle
  - Vector3::Fabs
  - Vector3::Abs
  - Vector3::LargestAbsComponent
  - Vector3::ComponentOrder
  - Vector4::Vector4
  - Vector4::Vector4
  - Vector4::Vector4
  - Vector4::Vector4
  - Vector4::Vector4
  - Vector4::Data
  - Vector4::Data
  - Vector4::aequal
  - Vector4::x
  - Vector4::y
  - Vector4::z
  - Vector4::w
  - Vector4::x
  - Vector4::y
  - Vector4::z
  - Vector4::w
  - Vector4::Set
  - Vector4::Fabs
  - Vector4::Abs
  source_file: /src/s2geometry/src/s2/util/math/vector.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: tuple_size<::Vector2<T>>
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_size<::Vector3<T>>
      pos:
        line_end: 616
        line_start: 616
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_size<::Vector4<T>>
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_element<I, Vector2<T>>
      pos:
        line_end: 623
        line_start: 621
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_element<I, Vector3<T>>
      pos:
        line_end: 627
        line_start: 625
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_element<I, Vector4<T>>
      pos:
        line_end: 631
        line_start: 629
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_size<::Vector2<T>>
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_size<::Vector3<T>>
      pos:
        line_end: 616
        line_start: 616
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_size<::Vector4<T>>
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_element<I, Vector2<T>>
      pos:
        line_end: 623
        line_start: 621
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_element<I, Vector3<T>>
      pos:
        line_end: 627
        line_start: 625
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    - fields: []
      item_type: struct
      name: tuple_element<I, Vector4<T>>
      pos:
        line_end: 631
        line_start: 629
        source_file: /src/s2geometry/src/s2/util/math/vector.h
    typedefs:
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: typename std::conditional<std::is_integral<T>::value, double, T>::type
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: typename std::conditional<std::is_integral<T>::value, double, T>::type
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: typename std::conditional<std::is_integral<T>::value, double, T>::type
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: typename std::conditional<std::is_integral<T>::value, double, T>::type
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: typename std::conditional<std::is_integral<T>::value, double, T>::type
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: typename std::conditional<std::is_integral<T>::value, double, T>::type
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: typename std::conditional<std::is_integral<T>::value, double, T>::type
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: typename std::conditional<std::is_integral<T>::value, double, T>::type
    - item_type: typedef
      name: BaseType
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: VType
    - item_type: typedef
      name: BaseType
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: VType
    - item_type: typedef
      name: BaseType
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: VType
    - item_type: typedef
      name: Vector2_b
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector2
    - item_type: typedef
      name: Vector2_s
      pos:
        line_end: 593
        line_start: 593
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector2
    - item_type: typedef
      name: Vector2_i
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector2
    - item_type: typedef
      name: Vector2_f
      pos:
        line_end: 595
        line_start: 595
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector2
    - item_type: typedef
      name: Vector2_d
      pos:
        line_end: 596
        line_start: 596
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector2
    - item_type: typedef
      name: Vector3_b
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector3
    - item_type: typedef
      name: Vector3_s
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector3
    - item_type: typedef
      name: Vector3_i
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector3
    - item_type: typedef
      name: Vector3_f
      pos:
        line_end: 601
        line_start: 601
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector3
    - item_type: typedef
      name: Vector3_d
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector3
    - item_type: typedef
      name: Vector4_b
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector4
    - item_type: typedef
      name: Vector4_s
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector4
    - item_type: typedef
      name: Vector4_i
      pos:
        line_end: 606
        line_start: 606
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector4
    - item_type: typedef
      name: Vector4_f
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector4
    - item_type: typedef
      name: Vector4_d
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/s2geometry/src/s2/util/math/vector.h
      type: Vector4
    union: []
- function_names:
  - sgn
  - MathUtil::Round
  - MathUtil::FastIntRound
  - MathUtil::FastInt64Round
  - MathUtil::Round<int32_t, double>(double x)
  - MathUtil::Round<int32_t, float>(float x)
  - MathUtil::Round<int64_t, double>(double x)
  - MathUtil::Round<int64_t, float>(float x)
  source_file: /src/s2geometry/src/s2/util/math/mathutil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MathUtil::RealRootsForCubic
  source_file: /src/s2geometry/src/s2/util/math/mathutil.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exactfloat_internal::Bignum::Bignum
  - '& operator<<(std::ostream& os, const Bignum& b)'
  - "& operator<<(std::ostream& os,\n                                  const std::optional<Bignum>&
    b)"
  - exactfloat_internal::Bignum::ConvertTo
  - '& set_zero()'
  - '& set_negative(bool negative = true)'
  - exactfloat_internal::Bignum::is_zero
  - exactfloat_internal::Bignum::is_negative
  - exactfloat_internal::Bignum::is_odd
  - exactfloat_internal::Bignum::is_even
  - operator==(const Bignum& b) const
  - operator!=(const Bignum& b) const
  - operator<(const Bignum& b) const
  - operator<=(const Bignum& b) const
  - operator>(const Bignum& b) const
  - operator>=(const Bignum& b) const
  - operator+() const
  - operator+(Bignum a, const Bignum& b)
  - operator-(Bignum a, const Bignum& b)
  - operator*(Bignum a, const Bignum& b)
  - operator<<(Bignum a, int nbit)
  - operator>>(Bignum a, int nbit)
  - exactfloat_internal::Bignum::negate
  - exactfloat_internal::Bignum::Bignum
  - exactfloat_internal::Bignum::Normalize
  - exactfloat_internal::Bignum::Bignum
  - exactfloat_internal::AbslStringify
  - exactfloat_internal::Bignum::FitsIn
  - exactfloat_internal::Bignum::Cast
  - exactfloat_internal::Bignum::Bignum
  - '& operator<<(std::ostream& os, const Bignum& b)'
  - "& operator<<(std::ostream& os,\n                                  const std::optional<Bignum>&
    b)"
  - exactfloat_internal::Bignum::ConvertTo
  - '& set_zero()'
  - '& set_negative(bool negative = true)'
  - exactfloat_internal::Bignum::is_zero
  - exactfloat_internal::Bignum::is_negative
  - exactfloat_internal::Bignum::is_odd
  - exactfloat_internal::Bignum::is_even
  - operator==(const Bignum& b) const
  - operator!=(const Bignum& b) const
  - operator<(const Bignum& b) const
  - operator<=(const Bignum& b) const
  - operator>(const Bignum& b) const
  - operator>=(const Bignum& b) const
  - operator+() const
  - operator+(Bignum a, const Bignum& b)
  - operator-(Bignum a, const Bignum& b)
  - operator*(Bignum a, const Bignum& b)
  - operator<<(Bignum a, int nbit)
  - operator>>(Bignum a, int nbit)
  - exactfloat_internal::Bignum::negate
  - exactfloat_internal::Bignum::Bignum
  - exactfloat_internal::Bignum::Normalize
  - exactfloat_internal::Bignum::Bignum
  - exactfloat_internal::AbslStringify
  - exactfloat_internal::Bignum::FitsIn
  - exactfloat_internal::Bignum::Cast
  source_file: /src/s2geometry/src/s2/util/math/exactfloat/bignum.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exactfloat_internal::Bn
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - ~OpenSSLBignum()
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - '& operator=(OpenSSLBignum&& other) noexcept'
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - '& operator=(const OpenSSLBignum& other)'
  - exactfloat_internal::OpenSSLBignum::get
  - exactfloat_internal::GenerateRandomNumberStrings
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::RandomNumberStrings
  - exactfloat_internal::VsOpenSSLTest::Numbers
  - exactfloat_internal::TEST_P
  - exactfloat_internal::TEST_P
  - exactfloat_internal::TEST_P
  - exactfloat_internal::BignumBinaryOpBenchmark
  - exactfloat_internal::BignumPowBenchmark
  - exactfloat_internal::OpenSSLBinaryOpBenchmark
  - exactfloat_internal::OpenSSLMulOpBenchmark
  - exactfloat_internal::OpenSSLPowBenchmark
  - exactfloat_internal::SmallNumbers
  - exactfloat_internal::MediumNumbers
  - exactfloat_internal::LargeNumbers
  - exactfloat_internal::HugeNumbers
  - exactfloat_internal::MegaNumbers
  - exactfloat_internal::BM_Bignum_AddSmall
  - exactfloat_internal::BM_Bignum_AddMedium
  - exactfloat_internal::BM_Bignum_AddLarge
  - exactfloat_internal::BM_Bignum_AddHuge
  - exactfloat_internal::BM_Bignum_AddMega
  - exactfloat_internal::BM_OpenSSL_AddSmall
  - exactfloat_internal::BM_OpenSSL_AddMedium
  - exactfloat_internal::BM_OpenSSL_AddLarge
  - exactfloat_internal::BM_OpenSSL_AddHuge
  - exactfloat_internal::BM_OpenSSL_AddMega
  - exactfloat_internal::BM_Bignum_MulSmall
  - exactfloat_internal::BM_Bignum_MulMedium
  - exactfloat_internal::BM_Bignum_MulLarge
  - exactfloat_internal::BM_Bignum_MulHuge
  - exactfloat_internal::BM_Bignum_MulMega
  - exactfloat_internal::BM_OpenSSL_MulSmall
  - exactfloat_internal::BM_OpenSSL_MulMedium
  - exactfloat_internal::BM_OpenSSL_MulLarge
  - exactfloat_internal::BM_OpenSSL_MulHuge
  - exactfloat_internal::BM_OpenSSL_MulMega
  - exactfloat_internal::BM_Bignum_PowSmall
  - exactfloat_internal::BM_Bignum_PowMedium
  - exactfloat_internal::BM_OpenSSL_PowSmall
  - exactfloat_internal::BM_OpenSSL_PowMedium
  - exactfloat_internal::Bn
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - ~OpenSSLBignum()
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - '& operator=(OpenSSLBignum&& other) noexcept'
  - exactfloat_internal::OpenSSLBignum::OpenSSLBignum
  - '& operator=(const OpenSSLBignum& other)'
  - exactfloat_internal::OpenSSLBignum::get
  - exactfloat_internal::GenerateRandomNumberStrings
  - exactfloat_internal::TEST
  - exactfloat_internal::TEST
  - exactfloat_internal::RandomNumberStrings
  - exactfloat_internal::VsOpenSSLTest::Numbers
  - exactfloat_internal::TEST_P
  - exactfloat_internal::TEST_P
  - exactfloat_internal::TEST_P
  - exactfloat_internal::BignumBinaryOpBenchmark
  - exactfloat_internal::BignumPowBenchmark
  - exactfloat_internal::OpenSSLBinaryOpBenchmark
  - exactfloat_internal::OpenSSLMulOpBenchmark
  - exactfloat_internal::OpenSSLPowBenchmark
  - exactfloat_internal::SmallNumbers
  - exactfloat_internal::MediumNumbers
  - exactfloat_internal::LargeNumbers
  - exactfloat_internal::HugeNumbers
  - exactfloat_internal::MegaNumbers
  - exactfloat_internal::BM_Bignum_AddSmall
  - exactfloat_internal::BM_Bignum_AddMedium
  - exactfloat_internal::BM_Bignum_AddLarge
  - exactfloat_internal::BM_Bignum_AddHuge
  - exactfloat_internal::BM_Bignum_AddMega
  - exactfloat_internal::BM_OpenSSL_AddSmall
  - exactfloat_internal::BM_OpenSSL_AddMedium
  - exactfloat_internal::BM_OpenSSL_AddLarge
  - exactfloat_internal::BM_OpenSSL_AddHuge
  - exactfloat_internal::BM_OpenSSL_AddMega
  - exactfloat_internal::BM_Bignum_MulSmall
  - exactfloat_internal::BM_Bignum_MulMedium
  - exactfloat_internal::BM_Bignum_MulLarge
  - exactfloat_internal::BM_Bignum_MulHuge
  - exactfloat_internal::BM_Bignum_MulMega
  - exactfloat_internal::BM_OpenSSL_MulSmall
  - exactfloat_internal::BM_OpenSSL_MulMedium
  - exactfloat_internal::BM_OpenSSL_MulLarge
  - exactfloat_internal::BM_OpenSSL_MulHuge
  - exactfloat_internal::BM_OpenSSL_MulMega
  - exactfloat_internal::BM_Bignum_PowSmall
  - exactfloat_internal::BM_Bignum_PowMedium
  - exactfloat_internal::BM_OpenSSL_PowSmall
  - exactfloat_internal::BM_OpenSSL_PowMedium
  source_file: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
  types:
    enum:
    - enumerators:
      - name: kSmall
        value: '64'
      - name: kMedium
        value: '256'
      - name: kHuge
        value: '4096'
      - name: kLarge
        value: '1024'
      - name: kMega
        value: '18000'
      item_type: enum
      name: NumberSizeClass
      pos:
        line_end: 821
        line_start: 815
        source_file: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    - enumerators:
      - name: kSmall
        value: '64'
      - name: kMedium
        value: '256'
      - name: kHuge
        value: '4096'
      - name: kLarge
        value: '1024'
      - name: kMega
        value: '18000'
      item_type: enum
      name: NumberSizeClass
      pos:
        line_end: 821
        line_start: 815
        source_file: /src/s2geometry/src/s2/util/math/exactfloat/bignum_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exactfloat::ExactFloat::ExactFloat
  - exactfloat::SafeAbs
  - exactfloat::ExactFloat::ExactFloat
  - exactfloat::ExactFloat::SignedZero
  - exactfloat::ExactFloat::Infinity
  - exactfloat::ExactFloat::NaN
  - exactfloat::ExactFloat::prec
  - exactfloat::ExactFloat::exp
  - exactfloat::ExactFloat::set_zero
  - exactfloat::ExactFloat::set_inf
  - exactfloat::ExactFloat::set_nan
  - exactfloat::fpclassify
  - ExactFloat::operator double() const
  - exactfloat::ExactFloat::ToDoubleHelper
  - exactfloat::ExactFloat::RoundToMaxPrec
  - exactfloat::ExactFloat::RoundToPowerOf2
  - exactfloat::ExactFloat::NumSignificantDigitsForPrec
  - exactfloat::ExactFloat::ToString
  - exactfloat::ExactFloat::ToStringWithMaxDigits
  - exactfloat::IncrementDecimalDigits
  - exactfloat::ExactFloat::GetDecimalDigits
  - exactfloat::ExactFloat::ToUniqueString
  - ExactFloat::operator-() const
  - operator+(const ExactFloat& a, const ExactFloat& b)
  - operator-(const ExactFloat& a, const ExactFloat& b)
  - exactfloat::ExactFloat::SignedSum
  - exactfloat::ExactFloat::Canonicalize
  - operator*(const ExactFloat& a, const ExactFloat& b)
  - operator==(const ExactFloat& a, const ExactFloat& b)
  - exactfloat::ExactFloat::ScaleAndCompare
  - exactfloat::ExactFloat::UnsignedLess
  - operator<(const ExactFloat& a, const ExactFloat& b)
  - exactfloat::fabs
  - exactfloat::abs
  - exactfloat::fmax
  - exactfloat::fmin
  - exactfloat::fdim
  - exactfloat::ceil
  - exactfloat::floor
  - exactfloat::trunc
  - exactfloat::round
  - exactfloat::rint
  - exactfloat::ExactFloat::ToInteger
  - exactfloat::lrint
  - exactfloat::llrint
  - exactfloat::lround
  - exactfloat::llround
  - exactfloat::copysign
  - exactfloat::frexp
  - exactfloat::ldexp
  - exactfloat::scalbln
  - exactfloat::ilogb
  - exactfloat::logb
  - exactfloat::ExactFloat::Unimplemented
  - exactfloat::ExactFloat::ExactFloat
  - exactfloat::SafeAbs
  - exactfloat::ExactFloat::ExactFloat
  - exactfloat::ExactFloat::SignedZero
  - exactfloat::ExactFloat::Infinity
  - exactfloat::ExactFloat::NaN
  - exactfloat::ExactFloat::prec
  - exactfloat::ExactFloat::exp
  - exactfloat::ExactFloat::set_zero
  - exactfloat::ExactFloat::set_inf
  - exactfloat::ExactFloat::set_nan
  - exactfloat::fpclassify
  - ExactFloat::operator double() const
  - exactfloat::ExactFloat::ToDoubleHelper
  - exactfloat::ExactFloat::RoundToMaxPrec
  - exactfloat::ExactFloat::RoundToPowerOf2
  - exactfloat::ExactFloat::NumSignificantDigitsForPrec
  - exactfloat::ExactFloat::ToString
  - exactfloat::ExactFloat::ToStringWithMaxDigits
  - exactfloat::IncrementDecimalDigits
  - exactfloat::ExactFloat::GetDecimalDigits
  - exactfloat::ExactFloat::ToUniqueString
  - ExactFloat::operator-() const
  - operator+(const ExactFloat& a, const ExactFloat& b)
  - operator-(const ExactFloat& a, const ExactFloat& b)
  - exactfloat::ExactFloat::SignedSum
  - exactfloat::ExactFloat::Canonicalize
  - operator*(const ExactFloat& a, const ExactFloat& b)
  - operator==(const ExactFloat& a, const ExactFloat& b)
  - exactfloat::ExactFloat::ScaleAndCompare
  - exactfloat::ExactFloat::UnsignedLess
  - operator<(const ExactFloat& a, const ExactFloat& b)
  - exactfloat::fabs
  - exactfloat::abs
  - exactfloat::fmax
  - exactfloat::fmin
  - exactfloat::fdim
  - exactfloat::ceil
  - exactfloat::floor
  - exactfloat::trunc
  - exactfloat::round
  - exactfloat::rint
  - exactfloat::ExactFloat::ToInteger
  - exactfloat::lrint
  - exactfloat::llrint
  - exactfloat::lround
  - exactfloat::llround
  - exactfloat::copysign
  - exactfloat::frexp
  - exactfloat::ldexp
  - exactfloat::scalbln
  - exactfloat::ilogb
  - exactfloat::logb
  - exactfloat::ExactFloat::Unimplemented
  source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fdim
  - fmax
  - fmin
  - logb
  - ldexp
  - scalbn
  - scalbln
  - FIX_INT_ROUNDING
  - ExactFloatTest::SetUpTestSuite
  - ExactFloatTest::TearDownTestSuite
  - ExactFloatTest::GetErrorUlps
  - ExactFloatTest::IsExpected
  - ExactFloatTest::ExpectSame
  - ExactFloatTest::ExpectSameWithPrec
  - ExactFloatTest::AddMathcallFailure
  - ExactFloatTest::TestMathcall1
  - ExactFloatTest::TestMathcall2
  - ExactFloatTest::TestFn
  - ExactFloatTest::TestIntMathcall1
  - ExactFloatTest::TestLdexpCall
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_MATHOP1
  - fdim
  - fmax
  - fmin
  - logb
  - ldexp
  - scalbn
  - scalbln
  - FIX_INT_ROUNDING
  - ExactFloatTest::SetUpTestSuite
  - ExactFloatTest::TearDownTestSuite
  - ExactFloatTest::GetErrorUlps
  - ExactFloatTest::IsExpected
  - ExactFloatTest::ExpectSame
  - ExactFloatTest::ExpectSameWithPrec
  - ExactFloatTest::AddMathcallFailure
  - ExactFloatTest::TestMathcall1
  - ExactFloatTest::TestMathcall2
  - ExactFloatTest::TestFn
  - ExactFloatTest::TestIntMathcall1
  - ExactFloatTest::TestLdexpCall
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_MATHOP1
  - TEST_MATHCALL2
  - TEST_INTEGER_MATHCALL1
  - frexp_frac
  - frexp_exp
  - mp_frexp_frac
  - mp_frexp_exp
  - TEST_F
  - TEST_LDEXP_CALL
  - TEST_FN_VS_REF
  - ref_iszero
  - ref_isnormal
  - ref_sgn
  - xf_iszero
  - xf_sgn
  - TEST_FN_VS_STD_FN
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - BM_Det3x3
  source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: MyVec2
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
      type: Vector2
    - item_type: typedef
      name: MyVec3
      pos:
        line_end: 834
        line_start: 834
        source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
      type: Vector3
    - item_type: typedef
      name: Vector3_xf
      pos:
        line_end: 973
        line_start: 973
        source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
      type: Vector3
    - item_type: typedef
      name: Vector3_xf
      pos:
        line_end: 987
        line_start: 987
        source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_test.cc
      type: Vector3
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat_underflow_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exactfloat::ExactFloat::ExactFloat
  - exactfloat::ExactFloat::ExactFloat
  - exactfloat::ExactFloat::max_prec
  - '& operator<<(std::ostream& o, ExactFloat const& f)'
  - operator+() const
  - '& operator+=(const ExactFloat& b)'
  - '& operator-=(const ExactFloat& b)'
  - '& operator*=(const ExactFloat& b)'
  - exactfloat::ExactFloat::nearbyint
  - exactfloat::ExactFloat::fmod
  - exactfloat::ExactFloat::remainder
  - exactfloat::ExactFloat::drem
  - exactfloat::ExactFloat::modf
  - exactfloat::ExactFloat::scalbn
  - exactfloat::isinf
  - exactfloat::isnan
  - exactfloat::isnormal
  - exactfloat::isfinite
  - exactfloat::signbit
  - exactfloat::ExactFloat::is_zero
  - exactfloat::ExactFloat::sgn
  - operator!=(const ExactFloat& a, const ExactFloat& b)
  - operator<=(const ExactFloat& a, const ExactFloat& b)
  - operator>(const ExactFloat& a, const ExactFloat& b)
  - operator>=(const ExactFloat& a, const ExactFloat& b)
  - exactfloat::ExactFloat::CopyWithSign
  - exactfloat::ExactFloat::ExactFloat
  - exactfloat::ExactFloat::ExactFloat
  - exactfloat::ExactFloat::max_prec
  - '& operator<<(std::ostream& o, ExactFloat const& f)'
  - operator+() const
  - '& operator+=(const ExactFloat& b)'
  - '& operator-=(const ExactFloat& b)'
  - '& operator*=(const ExactFloat& b)'
  - exactfloat::ExactFloat::nearbyint
  - exactfloat::ExactFloat::fmod
  - exactfloat::ExactFloat::remainder
  - exactfloat::ExactFloat::drem
  - exactfloat::ExactFloat::modf
  - exactfloat::ExactFloat::scalbn
  - exactfloat::isinf
  - exactfloat::isnan
  - exactfloat::isnormal
  - exactfloat::isfinite
  - exactfloat::signbit
  - exactfloat::ExactFloat::is_zero
  - exactfloat::ExactFloat::sgn
  - operator!=(const ExactFloat& a, const ExactFloat& b)
  - operator<=(const ExactFloat& a, const ExactFloat& b)
  - operator>(const ExactFloat& a, const ExactFloat& b)
  - operator>=(const ExactFloat& a, const ExactFloat& b)
  - exactfloat::ExactFloat::CopyWithSign
  source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
  types:
    enum:
    - enumerators:
      - name: kRoundTiesToEven
      - name: kRoundTowardZero
      - name: kRoundTiesAwayFromZero
      - name: kRoundAwayFromZero
      - name: kRoundTowardPositive
      - name: kRoundTowardNegative
      item_type: enum
      name: RoundingMode
      pos:
        line_end: 134
        line_start: 127
        source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    - enumerators:
      - name: kRoundTiesToEven
      - name: kRoundTowardZero
      - name: kRoundTiesAwayFromZero
      - name: kRoundAwayFromZero
      - name: kRoundTowardPositive
      - name: kRoundTowardNegative
      item_type: enum
      name: RoundingMode
      pos:
        line_end: 134
        line_start: 127
        source_file: /src/s2geometry/src/s2/util/math/exactfloat/exactfloat.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exactfloat_internal::CmpAbs
  - exactfloat_internal::Bignum::Compare
  - exactfloat_internal::Bignum::FromString
  - exactfloat_internal::bit_width
  - exactfloat_internal::countr_zero
  - exactfloat_internal::Bignum::is_bit_set
  - Bignum::operator-() const
  - '& Bignum::operator<<=(int nbit)'
  - '& Bignum::operator>>=(int nbit)'
  - exactfloat_internal::Bignum::Pow
  - exactfloat_internal::AddBigit
  - exactfloat_internal::SubBigit
  - exactfloat_internal::MulBigit
  - exactfloat_internal::AddInPlace
  - exactfloat_internal::Add
  - exactfloat_internal::SubInPlace
  - exactfloat_internal::SubReverseInPlace
  - exactfloat_internal::MulWithCarry
  - exactfloat_internal::MulAddInPlace
  - exactfloat_internal::MulQuadratic
  - exactfloat_internal::Split
  - exactfloat_internal::Arena::Arena
  - exactfloat_internal::Arena::Alloc
  - exactfloat_internal::Arena::Available
  - exactfloat_internal::Arena::Used
  - exactfloat_internal::Arena::Reset
  - exactfloat_internal::ArenaSize
  - exactfloat_internal::KaratsubaMulRecursive
  - exactfloat_internal::KaratsubaMul
  - '& Bignum::operator+=(const Bignum& b)'
  - '& Bignum::operator-=(const Bignum& b)'
  - '& Bignum::operator*=(const Bignum& b)'
  - exactfloat_internal::CmpAbs
  - exactfloat_internal::Bignum::Compare
  - exactfloat_internal::Bignum::FromString
  - exactfloat_internal::bit_width
  - exactfloat_internal::countr_zero
  - exactfloat_internal::Bignum::is_bit_set
  - Bignum::operator-() const
  - '& Bignum::operator<<=(int nbit)'
  - '& Bignum::operator>>=(int nbit)'
  - exactfloat_internal::Bignum::Pow
  - exactfloat_internal::AddBigit
  - exactfloat_internal::SubBigit
  - exactfloat_internal::MulBigit
  - exactfloat_internal::AddInPlace
  - exactfloat_internal::Add
  - exactfloat_internal::SubInPlace
  - exactfloat_internal::SubReverseInPlace
  - exactfloat_internal::MulWithCarry
  - exactfloat_internal::MulAddInPlace
  - exactfloat_internal::MulQuadratic
  - exactfloat_internal::Split
  - exactfloat_internal::Arena::Arena
  - exactfloat_internal::Arena::Alloc
  - exactfloat_internal::Arena::Available
  - exactfloat_internal::Arena::Used
  - exactfloat_internal::Arena::Reset
  - exactfloat_internal::ArenaSize
  - exactfloat_internal::KaratsubaMulRecursive
  - exactfloat_internal::KaratsubaMul
  - '& Bignum::operator+=(const Bignum& b)'
  - '& Bignum::operator-=(const Bignum& b)'
  - '& Bignum::operator*=(const Bignum& b)'
  source_file: /src/s2geometry/src/s2/util/math/exactfloat/bignum.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/util/units/length-units.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - util::units::Convert
  - util::units::PhysicalUnit::PhysicalUnit
  - util::units::PhysicalUnit::PhysicalUnit
  - util::units::PhysicalUnit::PhysicalUnit
  - '& operator=(PhysicalUnit<Float, Base, Unit2> other)'
  - util::units::PhysicalUnit::value
  - operator-() const
  - operator*(const Float scale) const
  - operator+(const Type other) const
  - operator-(const Type other) const
  - operator/(const Type other) const
  - operator*=(const Float scale)
  - operator+=(const Type other)
  - operator-=(const Type other)
  - operator<(const Type other) const
  - operator>(const Type other) const
  - operator<=(const Type other) const
  - operator>=(const Type other) const
  - util::units::PhysicalUnit::equals
  - util::units::PhysicalUnit::abs
  - util::units::PhysicalUnit::precision_cast
  - "operator * (\n         const Scale scale,\n         const PhysicalUnit<Float,
    Base, Unit> value)"
  - "& operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
    Base, Unit> value)"
  - util::units::ToString
  - util::units::Convert
  - util::units::PhysicalUnit::PhysicalUnit
  - util::units::PhysicalUnit::PhysicalUnit
  - util::units::PhysicalUnit::PhysicalUnit
  - '& operator=(PhysicalUnit<Float, Base, Unit2> other)'
  - util::units::PhysicalUnit::value
  - operator-() const
  - operator*(const Float scale) const
  - operator+(const Type other) const
  - operator-(const Type other) const
  - operator/(const Type other) const
  - operator*=(const Float scale)
  - operator+=(const Type other)
  - operator-=(const Type other)
  - operator<(const Type other) const
  - operator>(const Type other) const
  - operator<=(const Type other) const
  - operator>=(const Type other) const
  - util::units::PhysicalUnit::equals
  - util::units::PhysicalUnit::abs
  - util::units::PhysicalUnit::precision_cast
  - "operator * (\n         const Scale scale,\n         const PhysicalUnit<Float,
    Base, Unit> value)"
  - "& operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
    Base, Unit> value)"
  - util::units::ToString
  - util::units::Convert
  - util::units::PhysicalUnit::PhysicalUnit
  - util::units::PhysicalUnit::PhysicalUnit
  - util::units::PhysicalUnit::PhysicalUnit
  - '& operator=(PhysicalUnit<Float, Base, Unit2> other)'
  - util::units::PhysicalUnit::value
  - operator-() const
  - operator*(const Float scale) const
  - operator+(const Type other) const
  - operator-(const Type other) const
  - operator/(const Type other) const
  - operator*=(const Float scale)
  - operator+=(const Type other)
  - operator-=(const Type other)
  - operator<(const Type other) const
  - operator>(const Type other) const
  - operator<=(const Type other) const
  - operator>=(const Type other) const
  - util::units::PhysicalUnit::equals
  - util::units::PhysicalUnit::abs
  - util::units::PhysicalUnit::precision_cast
  - "operator * (\n         const Scale scale,\n         const PhysicalUnit<Float,
    Base, Unit> value)"
  - "& operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
    Base, Unit> value)"
  - util::units::ToString
  - util::units::Convert
  - util::units::PhysicalUnit::PhysicalUnit
  - util::units::PhysicalUnit::PhysicalUnit
  - util::units::PhysicalUnit::PhysicalUnit
  - '& operator=(PhysicalUnit<Float, Base, Unit2> other)'
  - util::units::PhysicalUnit::value
  - operator-() const
  - operator*(const Float scale) const
  - operator+(const Type other) const
  - operator-(const Type other) const
  - operator/(const Type other) const
  - operator*=(const Float scale)
  - operator+=(const Type other)
  - operator-=(const Type other)
  - operator<(const Type other) const
  - operator>(const Type other) const
  - operator<=(const Type other) const
  - operator>=(const Type other) const
  - util::units::PhysicalUnit::equals
  - util::units::PhysicalUnit::abs
  - util::units::PhysicalUnit::precision_cast
  - "operator * (\n         const Scale scale,\n         const PhysicalUnit<Float,
    Base, Unit> value)"
  - "& operator<<(std::ostream& os,\n                         PhysicalUnit<Float,
    Base, Unit> value)"
  - util::units::ToString
  source_file: /src/s2geometry/src/s2/util/units/physical-units.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: SCALE_NUMERATOR
        type: int
      - name: SCALE_DENOMINATOR
        type: int
      - name: OFFSET_NUMERATOR
        type: int
      - name: OFFSET_DENOMINATOR
        type: int
      item_type: struct
      name: UnitConversion
      pos:
        line_end: 108
        line_start: 103
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields: []
      item_type: struct
      name: UnitConverter
      pos:
        line_end: 137
        line_start: 111
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields: []
      item_type: struct
      name: is_linear_unit_transformation
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields:
      - name: SCALE_NUMERATOR
        type: int
      - name: SCALE_DENOMINATOR
        type: int
      - name: OFFSET_NUMERATOR
        type: int
      - name: OFFSET_DENOMINATOR
        type: int
      item_type: struct
      name: UnitConversion
      pos:
        line_end: 108
        line_start: 103
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields: []
      item_type: struct
      name: UnitConverter
      pos:
        line_end: 137
        line_start: 111
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields: []
      item_type: struct
      name: is_linear_unit_transformation
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields:
      - name: SCALE_NUMERATOR
        type: int
      - name: SCALE_DENOMINATOR
        type: int
      - name: OFFSET_NUMERATOR
        type: int
      - name: OFFSET_DENOMINATOR
        type: int
      item_type: struct
      name: UnitConversion
      pos:
        line_end: 108
        line_start: 103
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields: []
      item_type: struct
      name: UnitConverter
      pos:
        line_end: 137
        line_start: 111
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields: []
      item_type: struct
      name: is_linear_unit_transformation
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields:
      - name: SCALE_NUMERATOR
        type: int
      - name: SCALE_DENOMINATOR
        type: int
      - name: OFFSET_NUMERATOR
        type: int
      - name: OFFSET_DENOMINATOR
        type: int
      item_type: struct
      name: UnitConversion
      pos:
        line_end: 108
        line_start: 103
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields: []
      item_type: struct
      name: UnitConverter
      pos:
        line_end: 137
        line_start: 111
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    - fields: []
      item_type: struct
      name: is_linear_unit_transformation
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
    typedefs:
    - item_type: typedef
      name: Type
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: Float
    - item_type: typedef
      name: CastType
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Type
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: Float
    - item_type: typedef
      name: CastType
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Type
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: Float
    - item_type: typedef
      name: CastType
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Type
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: FloatType
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: Float
    - item_type: typedef
      name: CastType
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/s2geometry/src/s2/util/units/physical-units.h
      type: PhysicalUnit
    union: []
- function_names:
  - util::units::GetInBaseUnit
  - util::units::GetMeters
  - util::units::GetKilometers
  - util::units::GetInches
  - util::units::GetFeet
  - util::units::GetMiles
  - util::units::GetMillimeters
  - util::units::GetNauticalMiles
  - util::units::GetYards
  - util::units::GetInBaseUnit
  - util::units::GetMeters
  - util::units::GetKilometers
  - util::units::GetInches
  - util::units::GetFeet
  - util::units::GetMiles
  - util::units::GetMillimeters
  - util::units::GetNauticalMiles
  - util::units::GetYards
  - util::units::GetInBaseUnit
  - util::units::GetMeters
  - util::units::GetKilometers
  - util::units::GetInches
  - util::units::GetFeet
  - util::units::GetMiles
  - util::units::GetMillimeters
  - util::units::GetNauticalMiles
  - util::units::GetYards
  - util::units::GetInBaseUnit
  - util::units::GetMeters
  - util::units::GetKilometers
  - util::units::GetInches
  - util::units::GetFeet
  - util::units::GetMiles
  - util::units::GetMillimeters
  - util::units::GetNauticalMiles
  - util::units::GetYards
  source_file: /src/s2geometry/src/s2/util/units/length-units.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* const output_suffix'
        type: char
      item_type: struct
      name: LengthBase
      pos:
        line_end: 42
        line_start: 33
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
    - fields:
      - name: '* const output_suffix'
        type: char
      item_type: struct
      name: LengthBase
      pos:
        line_end: 42
        line_start: 33
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
    - fields:
      - name: '* const output_suffix'
        type: char
      item_type: struct
      name: LengthBase
      pos:
        line_end: 42
        line_start: 33
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
    - fields:
      - name: '* const output_suffix'
        type: char
      item_type: struct
      name: LengthBase
      pos:
        line_end: 42
        line_start: 33
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
    typedefs:
    - item_type: typedef
      name: MetersConversion
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: KilometersConversion
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: InchesConversion
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: FeetConversion
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: MilesConversion
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: MillimetersConversion
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: NauticalMilesConversion
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: YardsConversion
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: Meters
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Kilometers
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Inches
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Feet
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Miles
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Millimeters
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: NauticalMiles
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Yards
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Meters
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Meters
    - item_type: typedef
      name: Kilometers
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Kilometers
    - item_type: typedef
      name: Inches
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Inches
    - item_type: typedef
      name: Feet
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Feet
    - item_type: typedef
      name: Miles
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Miles
    - item_type: typedef
      name: Millimeters
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Millimeters
    - item_type: typedef
      name: NauticalMiles
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: NauticalMiles
    - item_type: typedef
      name: Yards
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Yards
    - item_type: typedef
      name: MetersConversion
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: KilometersConversion
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: InchesConversion
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: FeetConversion
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: MilesConversion
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: MillimetersConversion
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: NauticalMilesConversion
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: YardsConversion
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: Meters
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Kilometers
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Inches
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Feet
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Miles
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Millimeters
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: NauticalMiles
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Yards
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Meters
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Meters
    - item_type: typedef
      name: Kilometers
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Kilometers
    - item_type: typedef
      name: Inches
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Inches
    - item_type: typedef
      name: Feet
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Feet
    - item_type: typedef
      name: Miles
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Miles
    - item_type: typedef
      name: Millimeters
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Millimeters
    - item_type: typedef
      name: NauticalMiles
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: NauticalMiles
    - item_type: typedef
      name: Yards
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Yards
    - item_type: typedef
      name: MetersConversion
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: KilometersConversion
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: InchesConversion
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: FeetConversion
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: MilesConversion
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: MillimetersConversion
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: NauticalMilesConversion
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: YardsConversion
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: Meters
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Kilometers
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Inches
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Feet
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Miles
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Millimeters
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: NauticalMiles
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Yards
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Meters
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Meters
    - item_type: typedef
      name: Kilometers
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Kilometers
    - item_type: typedef
      name: Inches
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Inches
    - item_type: typedef
      name: Feet
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Feet
    - item_type: typedef
      name: Miles
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Miles
    - item_type: typedef
      name: Millimeters
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Millimeters
    - item_type: typedef
      name: NauticalMiles
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: NauticalMiles
    - item_type: typedef
      name: Yards
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Yards
    - item_type: typedef
      name: MetersConversion
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: KilometersConversion
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: InchesConversion
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: FeetConversion
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: MilesConversion
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: MillimetersConversion
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: NauticalMilesConversion
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: YardsConversion
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: UnitConversion
    - item_type: typedef
      name: Meters
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Kilometers
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Inches
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Feet
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Miles
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Millimeters
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: NauticalMiles
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Yards
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: PhysicalUnit
    - item_type: typedef
      name: Meters
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Meters
    - item_type: typedef
      name: Kilometers
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Kilometers
    - item_type: typedef
      name: Inches
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Inches
    - item_type: typedef
      name: Feet
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Feet
    - item_type: typedef
      name: Miles
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Miles
    - item_type: typedef
      name: Millimeters
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Millimeters
    - item_type: typedef
      name: NauticalMiles
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: NauticalMiles
    - item_type: typedef
      name: Yards
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/s2geometry/src/s2/util/units/length-units.h
      type: Yards
    union: []
- function_names:
  - gtl::ValueOrDie
  - gtl::ValueOrDie
  source_file: /src/s2geometry/src/s2/util/gtl/value_or_die.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - JUMP_
  - PUT_
  - GET_
  - JUMP_
  - PUT_
  - GET_
  - dense_hashtable_iterator
  - dense_hashtable_iterator
  - operator*() const
  - operator->() const
  - advance_past_empty_and_deleted
  - '& operator++()'
  - operator++(int /*unused*/)
  - operator==(const iterator& it) const
  - operator!=(const iterator& it) const
  - dense_hashtable_const_iterator
  - dense_hashtable_const_iterator
  - dense_hashtable_const_iterator
  - operator*() const
  - operator->() const
  - advance_past_empty_and_deleted
  - '& operator++()'
  - operator++(int /*unused*/)
  - operator==(const const_iterator& it) const
  - operator!=(const const_iterator& it) const
  - dense_hashtable::begin
  - dense_hashtable::end
  - dense_hashtable::begin
  - dense_hashtable::end
  - dense_hashtable::begin
  - dense_hashtable::end
  - dense_hashtable::begin
  - dense_hashtable::end
  - dense_hashtable::hash_funct
  - dense_hashtable::key_eq
  - dense_hashtable::get_allocator
  - dense_hashtable::num_table_copies
  - dense_hashtable::set_value
  - dense_hashtable::set_value
  - dense_hashtable::destroy_buckets
  - dense_hashtable::squash_deleted
  - dense_hashtable::test_deleted_key
  - dense_hashtable::set_deleted_key
  - dense_hashtable::deleted_key
  - dense_hashtable::test_deleted
  - dense_hashtable::test_deleted
  - dense_hashtable::test_deleted
  - dense_hashtable::check_use_deleted
  - dense_hashtable::set_deleted
  - dense_hashtable::set_deleted
  - dense_hashtable::test_empty
  - dense_hashtable::test_empty
  - dense_hashtable::test_empty
  - dense_hashtable::test_empty
  - dense_hashtable::fill_range_with_empty
  - dense_hashtable::set_empty_key
  - dense_hashtable::empty_key
  - dense_hashtable::size
  - dense_hashtable::max_size
  - dense_hashtable::empty
  - dense_hashtable::bucket_count
  - dense_hashtable::maybe_shrink
  - dense_hashtable::resize_delta
  - dense_hashtable::resize_table
  - dense_hashtable::copy_elements
  - dense_hashtable::copy_from
  - dense_hashtable::rebucket
  - dense_hashtable::resize
  - dense_hashtable::get_resizing_parameters
  - dense_hashtable::set_resizing_parameters
  - dense_hashtable::dense_hashtable
  - dense_hashtable::dense_hashtable
  - '& operator=(const dense_hashtable& ht)'
  - dense_hashtable::dense_hashtable
  - '& operator=(dense_hashtable&& ht) noexcept'
  - ~dense_hashtable()
  - dense_hashtable::swap
  - dense_hashtable::destroy_table
  - dense_hashtable::clear_to_size
  - dense_hashtable::clear
  - dense_hashtable::clear_no_resize
  - dense_hashtable::assert_key_is_not_empty_or_deleted
  - dense_hashtable::find_position_using_hash
  - dense_hashtable::find_if_present
  - dense_hashtable::find_if_present_using_hash
  - dense_hashtable::find_impl
  - dense_hashtable::find_impl
  - dense_hashtable::count_impl
  - dense_hashtable::equal_range_impl
  - dense_hashtable::equal_range_impl
  - dense_hashtable::find
  - dense_hashtable::find
  - dense_hashtable::count
  - dense_hashtable::equal_range
  - dense_hashtable::equal_range
  - dense_hashtable::insert_at
  - dense_hashtable::insert_noresize
  - dense_hashtable::insert_noresize_using_hash
  - dense_hashtable::insert
  - dense_hashtable::insert
  - dense_hashtable::insert
  - dense_hashtable::insert
  - dense_hashtable::insert
  - dense_hashtable::find_or_insert
  - dense_hashtable::find_or_insert_using_hash
  - dense_hashtable::erase_impl
  - dense_hashtable::erase
  - dense_hashtable::erase
  - dense_hashtable::erase
  - dense_hashtable::erase
  - dense_hashtable::erase
  - operator==(const dense_hashtable& ht) const
  - operator!=(const dense_hashtable& ht) const
  - dense_hashtable::Settings
  - dense_hashtable::KeyInfo
  - '& as_extract_key()'
  - '& as_extract_key() const'
  - '& as_set_key()'
  - '& as_set_key() const'
  - '& as_equal_key()'
  - '& as_equal_key() const'
  - '& as_value_alloc()'
  - '& as_value_alloc() const'
  - dense_hashtable::get_key
  - dense_hashtable::set_key
  - dense_hashtable::equals
  - '& get_internal_allocator()'
  - dense_hashtable::hash
  - dense_hashtable::equals
  - dense_hashtable::get_key
  - dense_hashtable::set_key
  - swap
  source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* ht'
        type: dense_hashtable<V, K, HF, ExK, SetK, EqK, A>
      - name: pos
        type: pointer
      item_type: struct
      name: dense_hashtable_iterator
      pos:
        line_end: 244
        line_start: 185
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - fields:
      - name: '* ht'
        type: dense_hashtable<V, K, HF, ExK, SetK, EqK, A>
      - name: pos
        type: pointer
      item_type: struct
      name: dense_hashtable_const_iterator
      pos:
        line_end: 311
        line_start: 248
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - fields: []
      item_type: struct
      name: Settings
      pos:
        line_end: 1340
        line_start: 1335
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    - fields:
      - name: delkey
        type: typename std::remove_const<key_type>::type
      - name: empty
        type: typename std::remove_const<key_type>::type
      item_type: struct
      name: KeyInfo
      pos:
        line_end: 1388
        line_start: 1344
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
    typedefs:
    - item_type: typedef
      name: iterator
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: dense_hashtable_iterator
    - item_type: typedef
      name: const_iterator
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: dense_hashtable_const_iterator
    - item_type: typedef
      name: iterator_category
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: forward_iterator_tag
    - item_type: typedef
      name: value_type
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: V
    - item_type: typedef
      name: difference_type
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::difference_type
    - item_type: typedef
      name: size_type
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::size_type
    - item_type: typedef
      name: '& reference'
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::value_type
    - item_type: typedef
      name: pointer
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::pointer
    - item_type: typedef
      name: iterator
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: dense_hashtable_iterator
    - item_type: typedef
      name: const_iterator
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: dense_hashtable_const_iterator
    - item_type: typedef
      name: iterator_category
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: forward_iterator_tag
    - item_type: typedef
      name: value_type
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: V
    - item_type: typedef
      name: difference_type
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::difference_type
    - item_type: typedef
      name: size_type
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::size_type
    - item_type: typedef
      name: '& reference'
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::value_type
    - item_type: typedef
      name: pointer
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::const_pointer
    - item_type: typedef
      name: key_type
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: Key
    - item_type: typedef
      name: value_type
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: Value
    - item_type: typedef
      name: hasher
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: HashFcn
    - item_type: typedef
      name: key_equal
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: EqualKey
    - item_type: typedef
      name: allocator_type
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: Alloc
    - item_type: typedef
      name: size_type
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::size_type
    - item_type: typedef
      name: difference_type
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::difference_type
    - item_type: typedef
      name: '& reference'
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::value_type
    - item_type: typedef
      name: '& const_reference'
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::value_type
    - item_type: typedef
      name: pointer
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::pointer
    - item_type: typedef
      name: const_pointer
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: typename value_alloc_traits::const_pointer
    - item_type: typedef
      name: iterator
      pos:
        line_end: 338
        line_start: 336
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: dense_hashtable_iterator
    - item_type: typedef
      name: const_iterator
      pos:
        line_end: 342
        line_start: 340
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: dense_hashtable_const_iterator
    - item_type: typedef
      name: local_iterator
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: iterator
    - item_type: typedef
      name: const_local_iterator
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: const_iterator
    - item_type: typedef
      name: MagicNumberType
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/s2geometry/src/s2/util/gtl/densehashtable.h
      type: unsigned long
    union: []
- function_names:
  - sh_hashtable_settings::sh_hashtable_settings
  - sh_hashtable_settings::hash
  - sh_hashtable_settings::enlarge_factor
  - sh_hashtable_settings::set_enlarge_factor
  - sh_hashtable_settings::shrink_factor
  - sh_hashtable_settings::set_shrink_factor
  - sh_hashtable_settings::enlarge_threshold
  - sh_hashtable_settings::set_enlarge_threshold
  - sh_hashtable_settings::shrink_threshold
  - sh_hashtable_settings::set_shrink_threshold
  - sh_hashtable_settings::enlarge_size
  - sh_hashtable_settings::shrink_size
  - sh_hashtable_settings::consider_shrink
  - sh_hashtable_settings::set_consider_shrink
  - sh_hashtable_settings::use_empty
  - sh_hashtable_settings::set_use_empty
  - sh_hashtable_settings::use_deleted
  - sh_hashtable_settings::set_use_deleted
  - sh_hashtable_settings::num_ht_copies
  - sh_hashtable_settings::inc_num_ht_copies
  - sh_hashtable_settings::reset_thresholds
  - sh_hashtable_settings::set_resizing_parameters
  - sh_hashtable_settings::min_buckets
  - sh_hashtable_settings::hash_munger::MungedHash
  - sh_hashtable_settings::hash_munger<HashKey*>::MungedHash
  source_file: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: sh_is_transparent
      pos:
        line_end: 221
        line_start: 207
        source_file: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    - fields: []
      item_type: struct
      name: 'No'
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    - fields:
      - name: x[2]
        type: 'No'
      item_type: struct
      name: 'Yes'
      pos:
        line_end: 212
        line_start: 210
        source_file: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
    typedefs:
    - item_type: typedef
      name: key_type
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
      type: Key
    - item_type: typedef
      name: hasher
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
      type: HashFunc
    - item_type: typedef
      name: size_type
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/s2geometry/src/s2/util/gtl/hashtable_common.h
      type: SizeType
    union: []
- function_names:
  - gtl::compact_array_base::Array
  - gtl::compact_array_base::SetArray
  - gtl::compact_array_base::SetInlined
  - gtl::compact_array_base::InlinedSpace
  - gtl::compact_array_base::Array
  - gtl::compact_array_base::SetArray
  - gtl::compact_array_base::InlinedSpace
  - gtl::compact_array_base::IsInlined
  - gtl::compact_array_base::ConstArray
  - gtl::compact_array_base::Init
  - gtl::compact_array_base::Construct
  - gtl::compact_array_base::Copy
  - gtl::compact_array_base::CopyFrom
  - '& AssignFrom(const compact_array_base& v)'
  - gtl::compact_array_base::Destruct
  - gtl::compact_array_base::swap
  - gtl::compact_array_base::size
  - gtl::compact_array_base::empty
  - gtl::compact_array_base::max_size
  - gtl::compact_array_base::MayBeInlined
  - gtl::compact_array_base::begin
  - gtl::compact_array_base::end
  - gtl::compact_array_base::begin
  - gtl::compact_array_base::end
  - gtl::compact_array_base::rbegin
  - gtl::compact_array_base::rend
  - gtl::compact_array_base::rbegin
  - gtl::compact_array_base::rend
  - gtl::compact_array_base::Insert
  - gtl::compact_array_base::insert
  - gtl::compact_array_base::insert
  - gtl::compact_array_base::insert
  - gtl::compact_array_base::emplace_back
  - gtl::compact_array_base::emplace
  - gtl::compact_array_base::erase
  - gtl::compact_array_base::erase
  - gtl::compact_array_base::clear
  - gtl::compact_array_base::front
  - gtl::compact_array_base::front
  - gtl::compact_array_base::back
  - gtl::compact_array_base::back
  - gtl::compact_array_base::push_back
  - gtl::compact_array_base::pop_back
  - operator[](size_type n)
  - operator[](size_type n) const
  - gtl::compact_array_base::at
  - gtl::compact_array_base::at
  - gtl::compact_array_base::reserve
  - gtl::compact_array_base::capacity
  - gtl::compact_array_base::resize
  - gtl::compact_array_base::AbslHashValue
  - gtl::compact_array_base::set_size
  - gtl::compact_array_base::set_capacity
  - gtl::compact_array_base::reallocate
  - gtl::compact_array_base::lastp
  - gtl::compact_array_base::move
  - gtl::compact_array_base::make_hole
  - gtl::compact_array_base::erase_aux
  - gtl::compact_array_base::value_init
  - gtl::compact_array_base::range_init
  - gtl::compact_array_base::range_init
  - gtl::compact_array_base::initialize
  - gtl::compact_array_base::initialize
  - gtl::compact_array_base::value_insert
  - gtl::compact_array_base::range_insert
  - gtl::compact_array_base::range_insert
  - gtl::compact_array_base::insert
  - gtl::compact_array_base::insert
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - '& operator=(const compact_array& v)'
  - '& operator=(compact_array&& v) noexcept'
  - ~compact_array()
  - operator==(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator!=(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator<(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator>(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator<=(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator>=(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - gtl::swap
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::LogOpening
  - gtl::compact_array_internal::LogClosing
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::LogOpening
  - gtl::compact_array_internal::LogClosing
  - '& operator<<(std::ostream& out, const compact_array<T, A>& array)'
  - gtl::compact_array_base::Array
  - gtl::compact_array_base::SetArray
  - gtl::compact_array_base::SetInlined
  - gtl::compact_array_base::InlinedSpace
  - gtl::compact_array_base::Array
  - gtl::compact_array_base::SetArray
  - gtl::compact_array_base::InlinedSpace
  - gtl::compact_array_base::IsInlined
  - gtl::compact_array_base::ConstArray
  - gtl::compact_array_base::Init
  - gtl::compact_array_base::Construct
  - gtl::compact_array_base::Copy
  - gtl::compact_array_base::CopyFrom
  - '& AssignFrom(const compact_array_base& v)'
  - gtl::compact_array_base::Destruct
  - gtl::compact_array_base::swap
  - gtl::compact_array_base::size
  - gtl::compact_array_base::empty
  - gtl::compact_array_base::max_size
  - gtl::compact_array_base::MayBeInlined
  - gtl::compact_array_base::begin
  - gtl::compact_array_base::end
  - gtl::compact_array_base::begin
  - gtl::compact_array_base::end
  - gtl::compact_array_base::rbegin
  - gtl::compact_array_base::rend
  - gtl::compact_array_base::rbegin
  - gtl::compact_array_base::rend
  - gtl::compact_array_base::Insert
  - gtl::compact_array_base::insert
  - gtl::compact_array_base::insert
  - gtl::compact_array_base::insert
  - gtl::compact_array_base::emplace_back
  - gtl::compact_array_base::emplace
  - gtl::compact_array_base::erase
  - gtl::compact_array_base::erase
  - gtl::compact_array_base::clear
  - gtl::compact_array_base::front
  - gtl::compact_array_base::front
  - gtl::compact_array_base::back
  - gtl::compact_array_base::back
  - gtl::compact_array_base::push_back
  - gtl::compact_array_base::pop_back
  - operator[](size_type n)
  - operator[](size_type n) const
  - gtl::compact_array_base::at
  - gtl::compact_array_base::at
  - gtl::compact_array_base::reserve
  - gtl::compact_array_base::capacity
  - gtl::compact_array_base::resize
  - gtl::compact_array_base::AbslHashValue
  - gtl::compact_array_base::set_size
  - gtl::compact_array_base::set_capacity
  - gtl::compact_array_base::reallocate
  - gtl::compact_array_base::lastp
  - gtl::compact_array_base::move
  - gtl::compact_array_base::make_hole
  - gtl::compact_array_base::erase_aux
  - gtl::compact_array_base::value_init
  - gtl::compact_array_base::range_init
  - gtl::compact_array_base::range_init
  - gtl::compact_array_base::initialize
  - gtl::compact_array_base::initialize
  - gtl::compact_array_base::value_insert
  - gtl::compact_array_base::range_insert
  - gtl::compact_array_base::range_insert
  - gtl::compact_array_base::insert
  - gtl::compact_array_base::insert
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - gtl::compact_array::compact_array
  - '& operator=(const compact_array& v)'
  - '& operator=(compact_array&& v) noexcept'
  - ~compact_array()
  - operator==(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator!=(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator<(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator>(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator<=(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - operator>=(const compact_array<T, A>& x, const compact_array<T, A>& y)
  - gtl::swap
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::LogOpening
  - gtl::compact_array_internal::LogClosing
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::Log
  - gtl::compact_array_internal::LogOpening
  - gtl::compact_array_internal::LogClosing
  - '& operator<<(std::ostream& out, const compact_array<T, A>& array)'
  source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: LogArray
      pos:
        line_end: 639
        line_start: 625
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
    - fields: []
      item_type: struct
      name: LogArray
      pos:
        line_end: 639
        line_start: 625
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
    - fields: []
      item_type: struct
      name: LogArray
      pos:
        line_end: 639
        line_start: 625
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
    - fields: []
      item_type: struct
      name: LogArray
      pos:
        line_end: 639
        line_start: 625
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
    typedefs:
    - item_type: typedef
      name: value_type
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: T
    - item_type: typedef
      name: allocator_type
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: A
    - item_type: typedef
      name: '* pointer'
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: '* const_pointer'
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: '& reference'
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: '& const_reference'
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: size_type
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: uint32_t
    - item_type: typedef
      name: difference_type
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: ptrdiff_t
    - item_type: typedef
      name: '* iterator'
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: '* const_iterator'
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: reverse_iterator
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: reverse_iterator<iterator>
    - item_type: typedef
      name: const_reverse_iterator
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: reverse_iterator<const_iterator>
    - item_type: typedef
      name: Int
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename std::is_integral<Iterator>::type
    - item_type: typedef
      name: Int
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename std::is_integral<Iterator>::type
    - item_type: typedef
      name: Cat
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename std::iterator_traits<Iterator>::iterator_category
    - item_type: typedef
      name: Cat
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename std::iterator_traits<Iterator>::iterator_category
    - item_type: typedef
      name: Base
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: compact_array_base
    - item_type: typedef
      name: value_type
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::value_type
    - item_type: typedef
      name: allocator_type
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::allocator_type
    - item_type: typedef
      name: pointer
      pos:
        line_end: 538
        line_start: 538
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::pointer
    - item_type: typedef
      name: const_pointer
      pos:
        line_end: 539
        line_start: 539
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::const_pointer
    - item_type: typedef
      name: reference
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::reference
    - item_type: typedef
      name: const_reference
      pos:
        line_end: 541
        line_start: 541
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::const_reference
    - item_type: typedef
      name: size_type
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::size_type
    - item_type: typedef
      name: iterator
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::iterator
    - item_type: typedef
      name: const_iterator
      pos:
        line_end: 545
        line_start: 545
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::const_iterator
    - item_type: typedef
      name: reverse_iterator
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::reverse_iterator
    - item_type: typedef
      name: const_reverse_iterator
      pos:
        line_end: 547
        line_start: 547
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::const_reverse_iterator
    - item_type: typedef
      name: value_type
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: T
    - item_type: typedef
      name: allocator_type
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: A
    - item_type: typedef
      name: '* pointer'
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: '* const_pointer'
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: '& reference'
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: '& const_reference'
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: size_type
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: uint32_t
    - item_type: typedef
      name: difference_type
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: ptrdiff_t
    - item_type: typedef
      name: '* iterator'
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: '* const_iterator'
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: value_type
    - item_type: typedef
      name: reverse_iterator
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: reverse_iterator<iterator>
    - item_type: typedef
      name: const_reverse_iterator
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: reverse_iterator<const_iterator>
    - item_type: typedef
      name: Int
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename std::is_integral<Iterator>::type
    - item_type: typedef
      name: Int
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename std::is_integral<Iterator>::type
    - item_type: typedef
      name: Cat
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename std::iterator_traits<Iterator>::iterator_category
    - item_type: typedef
      name: Cat
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename std::iterator_traits<Iterator>::iterator_category
    - item_type: typedef
      name: Base
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: compact_array_base
    - item_type: typedef
      name: value_type
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::value_type
    - item_type: typedef
      name: allocator_type
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::allocator_type
    - item_type: typedef
      name: pointer
      pos:
        line_end: 538
        line_start: 538
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::pointer
    - item_type: typedef
      name: const_pointer
      pos:
        line_end: 539
        line_start: 539
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::const_pointer
    - item_type: typedef
      name: reference
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::reference
    - item_type: typedef
      name: const_reference
      pos:
        line_end: 541
        line_start: 541
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::const_reference
    - item_type: typedef
      name: size_type
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::size_type
    - item_type: typedef
      name: iterator
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::iterator
    - item_type: typedef
      name: const_iterator
      pos:
        line_end: 545
        line_start: 545
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::const_iterator
    - item_type: typedef
      name: reverse_iterator
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::reverse_iterator
    - item_type: typedef
      name: const_reverse_iterator
      pos:
        line_end: 547
        line_start: 547
        source_file: /src/s2geometry/src/s2/util/gtl/compact_array.h
      type: typename Base::const_reverse_iterator
    union: []
- function_names:
  - gtl::Requires
  - gtl::Requires
  source_file: /src/s2geometry/src/s2/util/gtl/requires.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gtl::UnalignedLoad
  - gtl::UnalignedStore
  - gtl::UnalignedLoad
  - gtl::UnalignedStore
  source_file: /src/s2geometry/src/s2/util/gtl/unaligned.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gtl::internal::Log
  - gtl::internal::LogEllipsis
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::Log
  - gtl::internal::LogEllipsis
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::MaxElements
  - gtl::LogShortUpToN::LogShortUpToN
  - gtl::LogShortUpToN::MaxElements
  - gtl::LogShortUpTo100
  - gtl::MaxElements
  - gtl::LogMultilineUpToN::LogMultilineUpToN
  - gtl::LogMultilineUpToN::MaxElements
  - gtl::LogMultilineUpTo100
  - gtl::MaxElements
  - gtl::MaxElements
  - gtl::LogRangeToStream
  - gtl::detail::RangeLogger::RangeLogger
  - '&operator<<(std::ostream &out, const RangeLogger &range)'
  - gtl::detail::RangeLogger::str
  - gtl::detail::EnumLogger::EnumLogger
  - '&operator<<(std::ostream &out, const EnumLogger &v)'
  - gtl::detail::RangeLogger::RangeLogger
  - '&operator<<(std::ostream &out, const RangeLogger &range)'
  - gtl::detail::RangeLogger::str
  - gtl::detail::EnumLogger::EnumLogger
  - '&operator<<(std::ostream &out, const EnumLogger &v)'
  - gtl::LogRange
  - gtl::LogRange
  - gtl::LogContainer
  - gtl::LogContainer
  - gtl::LogEnum
  - gtl::internal::Log
  - gtl::internal::LogEllipsis
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::Log
  - gtl::internal::LogEllipsis
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::internal::LogOpening
  - gtl::internal::LogClosing
  - gtl::internal::LogFirstSeparator
  - gtl::internal::LogSeparator
  - gtl::MaxElements
  - gtl::LogShortUpToN::LogShortUpToN
  - gtl::LogShortUpToN::MaxElements
  - gtl::LogShortUpTo100
  - gtl::MaxElements
  - gtl::LogMultilineUpToN::LogMultilineUpToN
  - gtl::LogMultilineUpToN::MaxElements
  - gtl::LogMultilineUpTo100
  - gtl::MaxElements
  - gtl::MaxElements
  - gtl::LogRangeToStream
  - gtl::detail::RangeLogger::RangeLogger
  - '&operator<<(std::ostream &out, const RangeLogger &range)'
  - gtl::detail::RangeLogger::str
  - gtl::detail::EnumLogger::EnumLogger
  - '&operator<<(std::ostream &out, const EnumLogger &v)'
  - gtl::detail::RangeLogger::RangeLogger
  - '&operator<<(std::ostream &out, const RangeLogger &range)'
  - gtl::detail::RangeLogger::str
  - gtl::detail::EnumLogger::EnumLogger
  - '&operator<<(std::ostream &out, const EnumLogger &v)'
  - gtl::LogRange
  - gtl::LogRange
  - gtl::LogContainer
  - gtl::LogContainer
  - gtl::LogEnum
  source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: LogBase
      pos:
        line_end: 92
        line_start: 78
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogShortBase
      pos:
        line_end: 99
        line_start: 94
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogMultilineBase
      pos:
        line_end: 106
        line_start: 101
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogLegacyBase
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogBase
      pos:
        line_end: 92
        line_start: 78
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogShortBase
      pos:
        line_end: 99
        line_start: 94
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogMultilineBase
      pos:
        line_end: 106
        line_start: 101
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogLegacyBase
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogShort
      pos:
        line_end: 121
        line_start: 119
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogShortUpTo100
      pos:
        line_end: 138
        line_start: 136
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogMultiline
      pos:
        line_end: 148
        line_start: 146
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogMultilineUpTo100
      pos:
        line_end: 166
        line_start: 164
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogLegacyUpTo100
      pos:
        line_end: 172
        line_start: 170
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogLegacy
      pos:
        line_end: 175
        line_start: 173
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogBase
      pos:
        line_end: 92
        line_start: 78
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogShortBase
      pos:
        line_end: 99
        line_start: 94
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogMultilineBase
      pos:
        line_end: 106
        line_start: 101
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogLegacyBase
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogBase
      pos:
        line_end: 92
        line_start: 78
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogShortBase
      pos:
        line_end: 99
        line_start: 94
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogMultilineBase
      pos:
        line_end: 106
        line_start: 101
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogLegacyBase
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogShort
      pos:
        line_end: 121
        line_start: 119
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogShortUpTo100
      pos:
        line_end: 138
        line_start: 136
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogMultiline
      pos:
        line_end: 148
        line_start: 146
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogMultilineUpTo100
      pos:
        line_end: 166
        line_start: 164
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogLegacyUpTo100
      pos:
        line_end: 172
        line_start: 170
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    - fields: []
      item_type: struct
      name: LogLegacy
      pos:
        line_end: 175
        line_start: 173
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
    typedefs:
    - item_type: typedef
      name: LogDefault
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
      type: LogShortUpTo100
    - item_type: typedef
      name: LogDefault
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/s2geometry/src/s2/util/gtl/container_logging.h
      type: LogShortUpTo100
    union: []
- function_names:
  - '& operator()(const Value& v) const'
  - operator()(Value* value, const Value& new_key) const
  - gtl::begin
  - gtl::end
  - gtl::begin
  - gtl::get_allocator
  - gtl::hash_funct
  - gtl::hash_function
  - gtl::key_eq
  - gtl::dense_hash_set
  - gtl::dense_hash_set
  - gtl::dense_hash_set
  - gtl::clear
  - gtl::clear_no_resize
  - gtl::swap
  - gtl::size
  - gtl::max_size
  - gtl::empty
  - gtl::bucket_count
  - gtl::load_factor
  - gtl::max_load_factor
  - gtl::max_load_factor
  - gtl::min_load_factor
  - gtl::min_load_factor
  - gtl::set_resizing_parameters
  - gtl::resize
  - gtl::rehash
  - gtl::find
  - gtl::count
  - gtl::equal_range
  - gtl::insert
  - gtl::insert
  - gtl::insert
  - gtl::insert
  - gtl::insert
  - gtl::insert
  - gtl::emplace
  - gtl::emplace_hint
  - gtl::set_empty_key
  - gtl::set_deleted_key
  - gtl::erase
  - gtl::erase
  - gtl::erase
  - operator==(const dense_hash_set& hs) const
  - operator!=(const dense_hash_set& hs) const
  - '& operator()(const Value& v) const'
  - operator()(Value* value, const Value& new_key) const
  - gtl::begin
  - gtl::end
  - gtl::begin
  - gtl::get_allocator
  - gtl::hash_funct
  - gtl::hash_function
  - gtl::key_eq
  - gtl::dense_hash_set
  - gtl::dense_hash_set
  - gtl::dense_hash_set
  - gtl::clear
  - gtl::clear_no_resize
  - gtl::swap
  - gtl::size
  - gtl::max_size
  - gtl::empty
  - gtl::bucket_count
  - gtl::load_factor
  - gtl::max_load_factor
  - gtl::max_load_factor
  - gtl::min_load_factor
  - gtl::min_load_factor
  - gtl::set_resizing_parameters
  - gtl::resize
  - gtl::rehash
  - gtl::find
  - gtl::count
  - gtl::equal_range
  - gtl::insert
  - gtl::insert
  - gtl::insert
  - gtl::insert
  - gtl::insert
  - gtl::insert
  - gtl::emplace
  - gtl::emplace_hint
  - gtl::set_empty_key
  - gtl::set_deleted_key
  - gtl::erase
  - gtl::erase
  - gtl::erase
  - operator==(const dense_hash_set& hs) const
  - operator!=(const dense_hash_set& hs) const
  - swap
  source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: Identity
      pos:
        line_end: 144
        line_start: 141
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    - fields: []
      item_type: struct
      name: SetKey
      pos:
        line_end: 149
        line_start: 145
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    - fields: []
      item_type: struct
      name: Identity
      pos:
        line_end: 144
        line_start: 141
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    - fields: []
      item_type: struct
      name: SetKey
      pos:
        line_end: 149
        line_start: 145
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
    typedefs:
    - item_type: typedef
      name: '& result_type'
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: Value
    - item_type: typedef
      name: ht
      pos:
        line_end: 154
        line_start: 152
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: dense_hashtable
    - item_type: typedef
      name: key_type
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::key_type
    - item_type: typedef
      name: value_type
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::value_type
    - item_type: typedef
      name: hasher
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::hasher
    - item_type: typedef
      name: key_equal
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::key_equal
    - item_type: typedef
      name: allocator_type
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: Alloc
    - item_type: typedef
      name: size_type
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::size_type
    - item_type: typedef
      name: difference_type
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::difference_type
    - item_type: typedef
      name: pointer
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_pointer
    - item_type: typedef
      name: const_pointer
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_pointer
    - item_type: typedef
      name: reference
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_reference
    - item_type: typedef
      name: const_reference
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_reference
    - item_type: typedef
      name: iterator
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_iterator
    - item_type: typedef
      name: const_iterator
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_iterator
    - item_type: typedef
      name: local_iterator
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_local_iterator
    - item_type: typedef
      name: const_local_iterator
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_local_iterator
    - item_type: typedef
      name: '& result_type'
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: Value
    - item_type: typedef
      name: ht
      pos:
        line_end: 154
        line_start: 152
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: dense_hashtable
    - item_type: typedef
      name: key_type
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::key_type
    - item_type: typedef
      name: value_type
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::value_type
    - item_type: typedef
      name: hasher
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::hasher
    - item_type: typedef
      name: key_equal
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::key_equal
    - item_type: typedef
      name: allocator_type
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: Alloc
    - item_type: typedef
      name: size_type
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::size_type
    - item_type: typedef
      name: difference_type
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::difference_type
    - item_type: typedef
      name: pointer
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_pointer
    - item_type: typedef
      name: const_pointer
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_pointer
    - item_type: typedef
      name: reference
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_reference
    - item_type: typedef
      name: const_reference
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_reference
    - item_type: typedef
      name: iterator
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_iterator
    - item_type: typedef
      name: const_iterator
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_iterator
    - item_type: typedef
      name: local_iterator
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_local_iterator
    - item_type: typedef
      name: const_local_iterator
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/s2geometry/src/s2/util/gtl/dense_hash_set.h
      type: typename ht::const_local_iterator
    union: []
- function_names:
  - util_random::SharedBitGen::SharedBitGen
  - util_random::SharedBitGen::SharedBitGen
  - '& operator=(SharedBitGen&&) noexcept'
  - util_random::SharedBitGen::SharedBitGen
  - '& operator=(const SharedBitGen&)'
  - util_random::SharedBitGen::result_type
  - util_random::SharedBitGen::result_type
  - operator()()
  - util_random::SharedBitGen::SharedBitGen
  - util_random::SharedBitGen::SharedBitGen
  - '& operator=(SharedBitGen&&) noexcept'
  - util_random::SharedBitGen::SharedBitGen
  - '& operator=(const SharedBitGen&)'
  - util_random::SharedBitGen::result_type
  - util_random::SharedBitGen::result_type
  - operator()()
  source_file: /src/s2geometry/src/s2/util/random/shared_bit_gen.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2endian::byteswap
  - s2endian::byteswap
  - LittleEndian::FromHost16
  - LittleEndian::ToHost16
  - LittleEndian::FromHost32
  - LittleEndian::ToHost32
  - LittleEndian::FromHost64
  - LittleEndian::ToHost64
  - LittleEndian::FromHost128
  - LittleEndian::ToHost128
  - LittleEndian::IsLittleEndian
  - LittleEndian::Load
  - LittleEndian::Load16
  - LittleEndian::Store16
  - LittleEndian::Load32
  - LittleEndian::Store32
  - LittleEndian::Load64
  - LittleEndian::Store64
  - LittleEndian::Load128
  - LittleEndian::Store128
  - LittleEndian::byteswap_if_big_endian
  source_file: /src/s2geometry/src/s2/util/endian/endian.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/s2geometry/src/s2/util/bits/bit-interleave.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - util_bits::InterleaveUint8
  - util_bits::InterleaveUint16
  - util_bits::InterleaveUint32
  - util_bits::ExtractEvenBits
  - util_bits::DeinterleaveUint8
  - util_bits::ExtractEvenBits
  - util_bits::DeinterleaveUint16
  - util_bits::ExtractEvenBits
  - util_bits::DeinterleaveUint32
  - util_bits::SplitFor3
  - util_bits::InterleaveUint8
  - util_bits::UnsplitFor3
  - util_bits::DeinterleaveUint8
  - util_bits::InterleaveUint8
  - util_bits::InterleaveUint16
  - util_bits::InterleaveUint32
  - util_bits::ExtractEvenBits
  - util_bits::DeinterleaveUint8
  - util_bits::ExtractEvenBits
  - util_bits::DeinterleaveUint16
  - util_bits::ExtractEvenBits
  - util_bits::DeinterleaveUint32
  - util_bits::SplitFor3
  - util_bits::InterleaveUint8
  - util_bits::UnsplitFor3
  - util_bits::DeinterleaveUint8
  source_file: /src/s2geometry/src/s2/util/bits/bit-interleave.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_last_sys_error
  - clear_sys_error
  - set_sys_error
  - get_last_sys_error
  - clear_sys_error
  - set_sys_error
  - HAS_LFN_SUPPORT
  - strlen
  - _strlen31
  - EXIT
  - check_winnt
  - check_win_minplat
  - check_winnt
  - check_win_minplat
  - EXIT
  - EXIT
  - sleep
  source_file: /src/openssl-1.1.1g/e_os.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEVRANDOM
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '"/dev/urandom", "/dev/random", "/dev/hwrng", "/dev/srandom"'
    - item_type: preproc_def
      name: DEVRANDOM_WAIT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '"/dev/random"'
    - item_type: preproc_def
      name: DEVRANDOM_SAFE_KERNEL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: 4, 8
    - item_type: preproc_def
      name: DEVRANDM_WAIT_USE_SELECT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPENSSL_RAND_SEED_DEVRANDOM_SHM_ID
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '114'
    - item_type: preproc_def
      name: DEVRANDOM_EGD
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '"/var/run/egd-pool", "/dev/egd-pool", "/etc/egd-pool", "/etc/entropy"'
    - item_type: preproc_def
      name: _setmode
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: setmode
    - item_type: preproc_def
      name: _O_TEXT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: O_TEXT
    - item_type: preproc_def
      name: _O_BINARY
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: O_BINARY
    - item_type: preproc_def
      name: DEVRANDOM
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '"/dev/urandom\x24"'
    - item_type: preproc_def
      name: S_IFDIR
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _S_IFDIR
    - item_type: preproc_def
      name: S_IFMT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _S_IFMT
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '0x0501'
    - item_type: preproc_def
      name: EACCES
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '13'
    - item_type: preproc_def
      name: stdin
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: (&__iob_func()[0])
    - item_type: preproc_def
      name: stdout
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: (&__iob_func()[1])
    - item_type: preproc_def
      name: stderr
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: (&__iob_func()[2])
    - item_type: preproc_def
      name: stdin
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: (&_imp___iob[0])
    - item_type: preproc_def
      name: stdout
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: (&_imp___iob[1])
    - item_type: preproc_def
      name: stderr
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: (&_imp___iob[2])
    - item_type: preproc_def
      name: LIST_SEPARATOR_CHAR
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: ''';'''
    - item_type: preproc_def
      name: W_OK
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '2'
    - item_type: preproc_def
      name: R_OK
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DEFAULT_HOME
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '""'
    - item_type: preproc_def
      name: DEFAULT_HOME
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '"C:"'
    - item_type: preproc_def
      name: VMS
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIST_SEPARATOR_CHAR
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: ''','''
    - item_type: preproc_def
      name: DEFAULT_HOME
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: '"SYS$LOGIN:"'
    - item_type: preproc_def
      name: LIST_SEPARATOR_CHAR
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: ''':'''
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _stricmp
    - item_type: preproc_def
      name: strncasecmp
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _strnicmp
    - item_type: preproc_def
      name: open
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _open
    - item_type: preproc_def
      name: fdopen
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _fdopen
    - item_type: preproc_def
      name: close
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _close
    - item_type: preproc_def
      name: strdup
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _strdup
    - item_type: preproc_def
      name: unlink
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _unlink
    - item_type: preproc_def
      name: fileno
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: _fileno
    - item_type: preproc_def
      name: TTY_STRUCT
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: int
    - item_type: preproc_def
      name: CRYPTO_memcmp
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/openssl-1.1.1g/e_os.h
      type_or_value: memcmp
    structs: []
    typedefs: []
    union: []
- function_names:
  - digest_md5
  - digest_sha1
  - digest_sha256
  - digest_sha384
  - digest_sha512
  - destroy_digests
  - ossltest_digest_nids
  - ossltest_aes_128_cbc
  - ossltest_aes_128_gcm
  - destroy_ciphers
  - bind_ossltest
  - bind_helper
  - engine_ossltest
  - ENGINE_load_ossltest
  - ossltest_init
  - ossltest_finish
  - ossltest_destroy
  - ossltest_digests
  - ossltest_ciphers
  - fill_known_data
  - data
  - digest_md5_init
  - digest_md5_update
  - digest_md5_final
  - data
  - digest_sha1_init
  - digest_sha1_update
  - digest_sha1_final
  - data
  - digest_sha256_init
  - digest_sha256_update
  - digest_sha256_final
  - data
  - digest_sha384_init
  - digest_sha512_init
  - digest_sha512_update
  - digest_sha384_final
  - digest_sha512_final
  - ossltest_aes128_init_key
  - ossltest_aes128_cbc_cipher
  - ossltest_aes128_gcm_init_key
  - ossltest_aes128_gcm_cipher
  - ossltest_aes128_gcm_ctrl
  - ossltest_rand_bytes
  - ossltest_rand_status
  - ossltest_rand_method
  source_file: /src/openssl-1.1.1g/engines/e_ossltest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AES_GCM_FLAGS
      pos:
        line_end: 274
        line_start: 269
        source_file: /src/openssl-1.1.1g/engines/e_ossltest.c
      type_or_value: "(EVP_CIPH_FLAG_DEFAULT_ASN1 \\\n                | EVP_CIPH_CUSTOM_IV
        | EVP_CIPH_FLAG_CUSTOM_CIPHER \\\n                | EVP_CIPH_ALWAYS_CALL_INIT
        | EVP_CIPH_CTRL_INIT \\\n                | EVP_CIPH_CUSTOM_COPY |EVP_CIPH_FLAG_AEAD_CIPHER
        \\\n                | EVP_CIPH_GCM_MODE)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - AFALGerr
  source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AFALG_F_AFALG_CHK_PLATFORM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '100'
    - item_type: preproc_def
      name: AFALG_F_AFALG_CREATE_SK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '101'
    - item_type: preproc_def
      name: AFALG_F_AFALG_INIT_AIO
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '102'
    - item_type: preproc_def
      name: AFALG_F_AFALG_SETUP_ASYNC_EVENT_NOTIFICATION
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '103'
    - item_type: preproc_def
      name: AFALG_F_AFALG_SET_KEY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '104'
    - item_type: preproc_def
      name: AFALG_F_BIND_AFALG
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '105'
    - item_type: preproc_def
      name: AFALG_R_EVENTFD_FAILED
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '108'
    - item_type: preproc_def
      name: AFALG_R_FAILED_TO_GET_PLATFORM_INFO
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '111'
    - item_type: preproc_def
      name: AFALG_R_INIT_FAILED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '100'
    - item_type: preproc_def
      name: AFALG_R_IO_SETUP_FAILED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '105'
    - item_type: preproc_def
      name: AFALG_R_KERNEL_DOES_NOT_SUPPORT_AFALG
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '101'
    - item_type: preproc_def
      name: AFALG_R_KERNEL_DOES_NOT_SUPPORT_ASYNC_AFALG
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '107'
    - item_type: preproc_def
      name: AFALG_R_MEM_ALLOC_FAILED
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '102'
    - item_type: preproc_def
      name: AFALG_R_SOCKET_ACCEPT_FAILED
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '110'
    - item_type: preproc_def
      name: AFALG_R_SOCKET_BIND_FAILED
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '103'
    - item_type: preproc_def
      name: AFALG_R_SOCKET_CREATE_FAILED
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '109'
    - item_type: preproc_def
      name: AFALG_R_SOCKET_OPERATION_FAILED
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '104'
    - item_type: preproc_def
      name: AFALG_R_SOCKET_SET_KEY_FAILED
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/engines/e_afalg_err.h
      type_or_value: '106'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_DASYNC_strings
  - ERR_unload_DASYNC_strings
  - ERR_DASYNC_error
  source_file: /src/openssl-1.1.1g/engines/e_dasync_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dasync_sha1
  - destroy_digests
  - dasync_digest_nids
  - dasync_aes_128_cbc
  - dasync_aes_128_cbc_hmac_sha1
  - destroy_ciphers
  - bind_dasync
  - bind_helper
  - engine_dasync
  - engine_load_dasync_int
  - dasync_init
  - dasync_finish
  - dasync_destroy
  - dasync_digests
  - dasync_ciphers
  - wait_cleanup
  - dummy_pause_job
  - data
  - dasync_sha1_init
  - dasync_sha1_update
  - dasync_sha1_final
  - dasync_pub_enc
  - dasync_pub_dec
  - dasync_rsa_priv_enc
  - dasync_rsa_priv_dec
  - dasync_rsa_mod_exp
  - dasync_rsa_init
  - dasync_rsa_finish
  - dasync_cipher_ctrl_helper
  - dasync_cipher_init_key_helper
  - dasync_cipher_helper
  - dasync_cipher_cleanup_helper
  - dasync_aes128_cbc_ctrl
  - dasync_aes128_init_key
  - dasync_aes128_cbc_cipher
  - dasync_aes128_cbc_cleanup
  - dasync_aes128_cbc_hmac_sha1_ctrl
  - dasync_aes128_cbc_hmac_sha1_init_key
  - dasync_aes128_cbc_hmac_sha1_cipher
  - dasync_aes128_cbc_hmac_sha1_cleanup
  source_file: /src/openssl-1.1.1g/engines/e_dasync.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DUMMY_CHAR
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/openssl-1.1.1g/engines/e_dasync.c
      type_or_value: '''X'''
    structs:
    - fields:
      - name: '*inner_cipher_data'
        type: void
      - name: numpipes
        type: unsigned int
      - name: '**inbufs'
        type: unsigned char
      - name: '**outbufs'
        type: unsigned char
      - name: '*lens'
        type: size_t
      - name: tlsaad[SSL_MAX_PIPELINES][EVP_AEAD_TLS1_AAD_LEN]
        type: unsigned char
      - name: aadctr
        type: unsigned int
      item_type: struct
      name: dasync_pipeline_ctx
      pos:
        line_end: 142
        line_start: 134
        source_file: /src/openssl-1.1.1g/engines/e_dasync.c
    typedefs: []
    union: []
- function_names:
  - capi_ctrl
  - capi_init
  - capi_destroy
  - capi_finish
  - bind_capi
  - bind_helper
  - engine_capi
  - engine_load_capi_int
  - lend_tobn
  - capi_get_pkey
  - capi_load_privkey
  - capi_rsa_priv_enc
  - capi_rsa_sign
  - capi_rsa_priv_dec
  - capi_rsa_free
  - capi_dsa_do_sign
  - capi_dsa_free
  - capi_vtrace
  - CAPI_trace
  - capi_addlasterror
  - capi_adderror
  - wide_to_asc
  - capi_get_provname
  - capi_list_providers
  - capi_list_containers
  - capi_get_prov_info
  - capi_dump_prov_info
  - capi_cert_get_fname
  - capi_dump_cert
  - capi_open_store
  - capi_list_certs
  - capi_find_cert
  - capi_get_key
  - capi_get_cert_key
  - capi_find_key
  - capi_free_key
  - capi_ctx_new
  - capi_ctx_free
  - capi_ctx_set_provname
  - capi_ctx_set_provname_idx
  - bind_engine
  - engine_load_capi_int
  source_file: /src/openssl-1.1.1g/engines/e_capi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: alloca
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: _alloca
    - item_type: preproc_def
      name: CERT_STORE_OPEN_EXISTING_FLAG
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: CERT_STORE_CREATE_NEW_FLAG
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: CERT_SYSTEM_STORE_CURRENT_USER
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: ALG_SID_SHA_256
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '12'
    - item_type: preproc_def
      name: ALG_SID_SHA_384
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '13'
    - item_type: preproc_def
      name: ALG_SID_SHA_512
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '14'
    - item_type: preproc_def
      name: CALG_SHA_256
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256)
    - item_type: preproc_def
      name: CALG_SHA_384
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384)
    - item_type: preproc_def
      name: CALG_SHA_512
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512)
    - item_type: preproc_def
      name: PROV_RSA_AES
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '24'
    - item_type: preproc_def
      name: CAPI_DBG_TRACE
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CAPI_DBG_ERROR
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CAPI_LU_SUBSTR
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: CAPI_LU_FNAME
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: CAPI_LU_CONTNAME
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '3  '
    - item_type: preproc_def
      name: CAPI_DMP_SUMMARY
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x1    '
    - item_type: preproc_def
      name: CAPI_DMP_FNAME
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x2    '
    - item_type: preproc_def
      name: CAPI_DMP_FULL
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x4    '
    - item_type: preproc_def
      name: CAPI_DMP_PEM
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x8    '
    - item_type: preproc_def
      name: CAPI_DMP_PSKEY
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x10   '
    - item_type: preproc_def
      name: CAPI_DMP_PKEYINFO
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x20   '
    - item_type: preproc_def
      name: CAPI_CMD_LIST_CERTS
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: ENGINE_CMD_BASE
    - item_type: preproc_def
      name: CAPI_CMD_LOOKUP_CERT
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 1)
    - item_type: preproc_def
      name: CAPI_CMD_DEBUG_LEVEL
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 2)
    - item_type: preproc_def
      name: CAPI_CMD_DEBUG_FILE
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 3)
    - item_type: preproc_def
      name: CAPI_CMD_KEYTYPE
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 4)
    - item_type: preproc_def
      name: CAPI_CMD_LIST_CSPS
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 5)
    - item_type: preproc_def
      name: CAPI_CMD_SET_CSP_IDX
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 6)
    - item_type: preproc_def
      name: CAPI_CMD_SET_CSP_NAME
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 7)
    - item_type: preproc_def
      name: CAPI_CMD_SET_CSP_TYPE
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 8)
    - item_type: preproc_def
      name: CAPI_CMD_LIST_CONTAINERS
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 9)
    - item_type: preproc_def
      name: CAPI_CMD_LIST_OPTIONS
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 10)
    - item_type: preproc_def
      name: CAPI_CMD_LOOKUP_METHOD
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 11)
    - item_type: preproc_def
      name: CAPI_CMD_STORE_NAME
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 12)
    - item_type: preproc_def
      name: CAPI_CMD_STORE_FLAGS
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: (ENGINE_CMD_BASE + 13)
    - item_type: preproc_def
      name: CRYPTUI_SELECT_LOCATION_COLUMN
      pos:
        line_end: 1813
        line_start: 1812
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x000000010'
    - item_type: preproc_def
      name: CRYPTUI_SELECT_INTENDEDUSE_COLUMN
      pos:
        line_end: 1814
        line_start: 1813
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: '0x000000004'
    - item_type: preproc_def
      name: dlg_title
      pos:
        line_end: 1817
        line_start: 1816
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: L"OpenSSL Application SSL Client Certificate Selection"
    - item_type: preproc_def
      name: dlg_prompt
      pos:
        line_end: 1818
        line_start: 1817
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: L"Select a certificate to use for authentication"
    - item_type: preproc_def
      name: dlg_columns
      pos:
        line_end: 1820
        line_start: 1818
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type_or_value: "CRYPTUI_SELECT_LOCATION_COLUMN \\\n                        |CRYPTUI_SELECT_INTENDEDUSE_COLUMN"
    structs:
    - fields:
      - name: debug_level
        type: int
      - name: '*debug_file'
        type: char
      - name: keytype
        type: DWORD
      - name: cspname
        type: LPSTR
      - name: csptype
        type: DWORD
      - name: storename
        type: LPSTR
      - name: ssl_client_store
        type: LPSTR
      - name: store_flags
        type: DWORD
      - name: lookup_method
        type: int
      - name: dump_flags
        type: DWORD
      - name: (*client_cert_select) (ENGINE *e, SSL *ssl, STACK_OF(X509) *certs)
        type: int
      - name: certselectdlg
        type: CERTDLG
      - name: getconswindow
        type: GETCONSWIN
      item_type: struct
      name: CAPI_CTX_st
      pos:
        line_end: 192
        line_start: 164
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
    - fields:
      - name: pcert
        type: PCCERT_CONTEXT
      - name: hprov
        type: HCRYPTPROV
      - name: key
        type: HCRYPTKEY
      - name: keyspec
        type: DWORD
      item_type: struct
      name: CAPI_KEY_st
      pos:
        line_end: 527
        line_start: 521
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
    typedefs:
    - item_type: typedef
      name: CAPI_CTX
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type: CAPI_CTX_st
    - item_type: typedef
      name: CAPI_KEY
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type: CAPI_KEY_st
    - item_type: typedef
      name: "(WINAPI *CERTDLG)(HCERTSTORE, HWND, LPCWSTR,\n                                        LPCWSTR,
        DWORD, DWORD, void *)"
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type: PCCERT_CONTEXT
    - item_type: typedef
      name: (WINAPI *GETCONSWIN)(void)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/openssl-1.1.1g/engines/e_capi.c
      type: HWND
    union: []
- function_names:
  - engine_load_afalg_int
  - ALG_IV_LEN
  - io_setup
  - eventfd
  - io_destroy
  - io_read
  - io_getevents
  - afalg_waitfd_cleanup
  - afalg_setup_async_event_notification
  - afalg_init_aio
  - afalg_fin_cipher_aio
  - afalg_set_op_sk
  - afalg_set_iv_sk
  - afalg_set_key
  - afalg_create_sk
  - afalg_start_cipher_sk
  - afalg_cipher_init
  - afalg_do_cipher
  - afalg_cipher_cleanup
  - get_cipher_handle
  - afalg_aes_cbc
  - afalg_ciphers
  - bind_afalg
  - bind_helper
  - afalg_chk_platform
  - engine_afalg
  - engine_load_afalg_int
  - afalg_init
  - afalg_finish
  - free_cbc
  - afalg_destroy
  source_file: /src/openssl-1.1.1g/engines/e_afalg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: K_MAJ
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/engines/e_afalg.c
      type_or_value: '4'
    - item_type: preproc_def
      name: K_MIN1
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/engines/e_afalg.c
      type_or_value: '1'
    - item_type: preproc_def
      name: K_MIN2
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/engines/e_afalg.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SOL_ALG
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/openssl-1.1.1g/engines/e_afalg.c
      type_or_value: '279'
    - item_type: preproc_def
      name: SPLICE_F_GIFT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/engines/e_afalg.c
      type_or_value: (0x08)
    - item_type: preproc_def
      name: ALG_AES_IV_LEN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/engines/e_afalg.c
      type_or_value: '16'
    - item_type: preproc_def
      name: ALG_OP_TYPE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/engines/e_afalg.c
      type_or_value: unsigned int
    - item_type: preproc_def
      name: ALG_OP_LEN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/engines/e_afalg.c
      type_or_value: (sizeof(ALG_OP_TYPE))
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_AFALG_strings
  - ERR_unload_AFALG_strings
  - ERR_AFALG_error
  source_file: /src/openssl-1.1.1g/engines/e_afalg_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DASYNCerr
  source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DASYNC_F_BIND_DASYNC
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '107'
    - item_type: preproc_def
      name: DASYNC_F_CIPHER_AES_128_CBC_CODE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '100'
    - item_type: preproc_def
      name: DASYNC_F_DASYNC_AES128_CBC_HMAC_SHA1_INIT_KEY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '109'
    - item_type: preproc_def
      name: DASYNC_F_DASYNC_AES128_INIT_KEY
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '108'
    - item_type: preproc_def
      name: DASYNC_F_DASYNC_BN_MOD_EXP
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '101'
    - item_type: preproc_def
      name: DASYNC_F_DASYNC_CIPHER_INIT_KEY_HELPER
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '110'
    - item_type: preproc_def
      name: DASYNC_F_DASYNC_MOD_EXP
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '102'
    - item_type: preproc_def
      name: DASYNC_F_DASYNC_PRIVATE_DECRYPT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '103'
    - item_type: preproc_def
      name: DASYNC_F_DASYNC_PRIVATE_ENCRYPT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '104'
    - item_type: preproc_def
      name: DASYNC_F_DASYNC_PUBLIC_DECRYPT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '105'
    - item_type: preproc_def
      name: DASYNC_F_DASYNC_PUBLIC_ENCRYPT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '106'
    - item_type: preproc_def
      name: DASYNC_R_INIT_FAILED
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/engines/e_dasync_err.h
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names:
  - OSSLTESTerr
  source_file: /src/openssl-1.1.1g/engines/e_ossltest_err.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OSSLTEST_F_BIND_OSSLTEST
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/engines/e_ossltest_err.h
      type_or_value: '100'
    - item_type: preproc_def
      name: OSSLTEST_F_OSSLTEST_AES128_INIT_KEY
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/engines/e_ossltest_err.h
      type_or_value: '101'
    - item_type: preproc_def
      name: OSSLTEST_R_INIT_FAILED
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/engines/e_ossltest_err.h
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_CAPI_strings
  - ERR_unload_CAPI_strings
  - ERR_CAPI_error
  source_file: /src/openssl-1.1.1g/engines/e_capi_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CAPIerr
  source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CAPI_F_CAPI_CERT_GET_FNAME
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '99'
    - item_type: preproc_def
      name: CAPI_F_CAPI_CTRL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '100'
    - item_type: preproc_def
      name: CAPI_F_CAPI_CTX_NEW
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '101'
    - item_type: preproc_def
      name: CAPI_F_CAPI_CTX_SET_PROVNAME
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '102'
    - item_type: preproc_def
      name: CAPI_F_CAPI_DSA_DO_SIGN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '114'
    - item_type: preproc_def
      name: CAPI_F_CAPI_GET_KEY
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '103'
    - item_type: preproc_def
      name: CAPI_F_CAPI_GET_PKEY
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '115'
    - item_type: preproc_def
      name: CAPI_F_CAPI_GET_PROVNAME
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '104'
    - item_type: preproc_def
      name: CAPI_F_CAPI_GET_PROV_INFO
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '105'
    - item_type: preproc_def
      name: CAPI_F_CAPI_INIT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '106'
    - item_type: preproc_def
      name: CAPI_F_CAPI_LIST_CONTAINERS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '107'
    - item_type: preproc_def
      name: CAPI_F_CAPI_LOAD_PRIVKEY
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '108'
    - item_type: preproc_def
      name: CAPI_F_CAPI_OPEN_STORE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '109'
    - item_type: preproc_def
      name: CAPI_F_CAPI_RSA_PRIV_DEC
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '110'
    - item_type: preproc_def
      name: CAPI_F_CAPI_RSA_PRIV_ENC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '111'
    - item_type: preproc_def
      name: CAPI_F_CAPI_RSA_SIGN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '112'
    - item_type: preproc_def
      name: CAPI_F_CAPI_VTRACE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '118'
    - item_type: preproc_def
      name: CAPI_F_CERT_SELECT_DIALOG
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '117'
    - item_type: preproc_def
      name: CAPI_F_CLIENT_CERT_SELECT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '116'
    - item_type: preproc_def
      name: CAPI_F_WIDE_TO_ASC
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '113'
    - item_type: preproc_def
      name: CAPI_R_CANT_CREATE_HASH_OBJECT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '100'
    - item_type: preproc_def
      name: CAPI_R_CANT_FIND_CAPI_CONTEXT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '101'
    - item_type: preproc_def
      name: CAPI_R_CANT_GET_KEY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '102'
    - item_type: preproc_def
      name: CAPI_R_CANT_SET_HASH_VALUE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '103'
    - item_type: preproc_def
      name: CAPI_R_CRYPTACQUIRECONTEXT_ERROR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '104'
    - item_type: preproc_def
      name: CAPI_R_CRYPTENUMPROVIDERS_ERROR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '105'
    - item_type: preproc_def
      name: CAPI_R_DECRYPT_ERROR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '106'
    - item_type: preproc_def
      name: CAPI_R_ENGINE_NOT_INITIALIZED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '107'
    - item_type: preproc_def
      name: CAPI_R_ENUMCONTAINERS_ERROR
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '108'
    - item_type: preproc_def
      name: CAPI_R_ERROR_ADDING_CERT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '109'
    - item_type: preproc_def
      name: CAPI_R_ERROR_CREATING_STORE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '110'
    - item_type: preproc_def
      name: CAPI_R_ERROR_GETTING_FRIENDLY_NAME
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '111'
    - item_type: preproc_def
      name: CAPI_R_ERROR_GETTING_KEY_PROVIDER_INFO
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '112'
    - item_type: preproc_def
      name: CAPI_R_ERROR_OPENING_STORE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '113'
    - item_type: preproc_def
      name: CAPI_R_ERROR_SIGNING_HASH
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '114'
    - item_type: preproc_def
      name: CAPI_R_FILE_OPEN_ERROR
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '115'
    - item_type: preproc_def
      name: CAPI_R_FUNCTION_NOT_SUPPORTED
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '116'
    - item_type: preproc_def
      name: CAPI_R_GETUSERKEY_ERROR
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '117'
    - item_type: preproc_def
      name: CAPI_R_INVALID_DIGEST_LENGTH
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '118'
    - item_type: preproc_def
      name: CAPI_R_INVALID_DSA_PUBLIC_KEY_BLOB_MAGIC_NUMBER
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '119'
    - item_type: preproc_def
      name: CAPI_R_INVALID_LOOKUP_METHOD
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '120'
    - item_type: preproc_def
      name: CAPI_R_INVALID_PUBLIC_KEY_BLOB
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '121'
    - item_type: preproc_def
      name: CAPI_R_INVALID_RSA_PUBLIC_KEY_BLOB_MAGIC_NUMBER
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '122'
    - item_type: preproc_def
      name: CAPI_R_PUBKEY_EXPORT_ERROR
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '123'
    - item_type: preproc_def
      name: CAPI_R_PUBKEY_EXPORT_LENGTH_ERROR
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '124'
    - item_type: preproc_def
      name: CAPI_R_UNKNOWN_COMMAND
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '125'
    - item_type: preproc_def
      name: CAPI_R_UNSUPPORTED_ALGORITHM_NID
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '126'
    - item_type: preproc_def
      name: CAPI_R_UNSUPPORTED_PADDING
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '127'
    - item_type: preproc_def
      name: CAPI_R_UNSUPPORTED_PUBLIC_KEY_ALGORITHM
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '128'
    - item_type: preproc_def
      name: CAPI_R_WIN32_ERROR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/openssl-1.1.1g/engines/e_capi_err.h
      type_or_value: '129'
    structs: []
    typedefs: []
    union: []
- function_names:
  - engine_load_padlock_int
  - padlock_bind_helper
  - ENGINE_padlock
  - padlock_init
  - padlock_bind_fn
  - padlock_available
  - NEAREST_ALIGNED
  - ALIGNED_CIPHER_DATA
  - padlock_ecb_cipher
  - padlock_cbc_cipher
  - padlock_cfb_cipher
  - padlock_ofb_cipher
  - padlock_ctr32_encrypt_glue
  - padlock_ctr_cipher
  - DECLARE_AES_EVP
  - padlock_ciphers
  - padlock_aes_init_key
  - padlock_rand_bytes
  - padlock_rand_status
  - bind_engine
  source_file: /src/openssl-1.1.1g/engines/e_padlock.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AES_BLOCK_SIZE
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: '16'
    - item_type: preproc_def
      name: AES_KEY_SIZE_128
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: '16'
    - item_type: preproc_def
      name: AES_KEY_SIZE_192
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: '24'
    - item_type: preproc_def
      name: AES_KEY_SIZE_256
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: '32'
    - item_type: preproc_def
      name: NID_aes_128_cfb
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: NID_aes_128_cfb128
    - item_type: preproc_def
      name: NID_aes_128_ofb
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: NID_aes_128_ofb128
    - item_type: preproc_def
      name: NID_aes_192_cfb
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: NID_aes_192_cfb128
    - item_type: preproc_def
      name: NID_aes_192_ofb
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: NID_aes_192_ofb128
    - item_type: preproc_def
      name: NID_aes_256_cfb
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: NID_aes_256_cfb128
    - item_type: preproc_def
      name: NID_aes_256_ofb
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: NID_aes_256_ofb128
    - item_type: preproc_def
      name: EVP_CIPHER_block_size_ECB
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: AES_BLOCK_SIZE
    - item_type: preproc_def
      name: EVP_CIPHER_block_size_CBC
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: AES_BLOCK_SIZE
    - item_type: preproc_def
      name: EVP_CIPHER_block_size_OFB
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EVP_CIPHER_block_size_CFB
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EVP_CIPHER_block_size_CTR
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
      type_or_value: '1'
    structs:
    - fields:
      - name: iv[AES_BLOCK_SIZE]
        type: unsigned char
      - name: cword
        type: "union {\n        unsigned int pad[4];\n        struct {\n            int
          rounds:4;\n            int dgst:1;         /* n/a in C3 */\n            int
          align:1;        /* n/a in C3 */\n            int ciphr:1;        /* n/a
          in C3 */\n            unsigned int keygen:1;\n            int interm:1;\n
          \           unsigned int encdec:1;\n            int ksize:2;\n        }
          b;\n    }"
      - name: ks
        type: AES_KEY
      item_type: struct
      name: padlock_cipher_data
      pos:
        line_end: 198
        line_start: 182
        source_file: /src/openssl-1.1.1g/engines/e_padlock.c
    typedefs: []
    union: []
- function_names:
  - ALG_DGB
  - ALG_INFO
  - ALG_WARN
  - ALG_ERR
  - ALG_PERR
  - ALG_PWARN
  source_file: /src/openssl-1.1.1g/engines/e_afalg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AES_BLOCK_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type_or_value: '16'
    - item_type: preproc_def
      name: AES_KEY_SIZE_128
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type_or_value: '16'
    - item_type: preproc_def
      name: AES_KEY_SIZE_192
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type_or_value: '24'
    - item_type: preproc_def
      name: AES_KEY_SIZE_256
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type_or_value: '32'
    - item_type: preproc_def
      name: AES_IV_LEN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_INFLIGHTS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAGIC_INIT_NUM
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type_or_value: '0x1890671'
    structs:
    - fields:
      - name: key_size
        type: int
      - name: '*_hidden'
        type: EVP_CIPHER
      item_type: struct
      name: cbc_cipher_handles
      pos:
        line_end: 64
        line_start: 61
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
    - fields:
      - name: efd
        type: int
      - name: mode
        type: op_mode
      - name: aio_ctx
        type: aio_context_t
      - name: events[MAX_INFLIGHTS]
        type: struct io_event
      - name: cbt[MAX_INFLIGHTS]
        type: struct iocb
      item_type: struct
      name: afalg_aio_st
      pos:
        line_end: 74
        line_start: 68
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
    - fields:
      - name: init_done
        type: int
      - name: sfd
        type: int
      - name: bfd
        type: int
      - name: aio
        type: afalg_aio
      item_type: struct
      name: afalg_ctx_st
      pos:
        line_end: 91
        line_start: 83
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
    typedefs:
    - item_type: typedef
      name: cbc_handles
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type: cbc_cipher_handles
    - item_type: typedef
      name: afalg_aio
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type: afalg_aio_st
    - item_type: typedef
      name: afalg_ctx
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/openssl-1.1.1g/engines/e_afalg.h
      type: afalg_ctx_st
    union: []
- function_names:
  - ERR_load_OSSLTEST_strings
  - ERR_unload_OSSLTEST_strings
  - ERR_OSSLTEST_error
  source_file: /src/openssl-1.1.1g/engines/e_ossltest_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CRYPTO_THREAD_lock_new
  - CRYPTO_THREAD_read_lock
  - CRYPTO_THREAD_write_lock
  - CRYPTO_THREAD_unlock
  - CRYPTO_THREAD_lock_free
  - CRYPTO_THREAD_run_once
  - CRYPTO_THREAD_init_local
  - CRYPTO_THREAD_get_local
  - CRYPTO_THREAD_set_local
  - CRYPTO_THREAD_cleanup_local
  - CRYPTO_THREAD_get_current_id
  - CRYPTO_THREAD_compare_id
  - CRYPTO_atomic_add
  - fork_once_func
  - openssl_init_fork_handlers
  - openssl_get_fork_id
  source_file: /src/openssl-1.1.1g/crypto/threads_pthread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ossl_safe_getenv
  source_file: /src/openssl-1.1.1g/crypto/getenv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - openssl_fopen
  - openssl_fopen
  source_file: /src/openssl-1.1.1g/crypto/o_fopen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/o_fopen.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - S390X_CAPBIT
  source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S390X_STFLE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: S390X_KIMD
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: S390X_KLMD
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: S390X_KM
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: S390X_KMC
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x50'
    - item_type: preproc_def
      name: S390X_KMAC
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x60'
    - item_type: preproc_def
      name: S390X_KMCTR
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x70'
    - item_type: preproc_def
      name: S390X_KMO
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: S390X_KMF
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x90'
    - item_type: preproc_def
      name: S390X_PRNO
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0xa0'
    - item_type: preproc_def
      name: S390X_KMA
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0xb0'
    - item_type: preproc_def
      name: S390X_VX
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '129'
    - item_type: preproc_def
      name: S390X_VXD
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '134'
    - item_type: preproc_def
      name: S390X_VXE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '135'
    - item_type: preproc_def
      name: S390X_QUERY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0'
    - item_type: preproc_def
      name: S390X_SHA3_224
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '32'
    - item_type: preproc_def
      name: S390X_SHA3_256
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '33'
    - item_type: preproc_def
      name: S390X_SHA3_384
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '34'
    - item_type: preproc_def
      name: S390X_SHA3_512
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '35'
    - item_type: preproc_def
      name: S390X_SHAKE_128
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '36'
    - item_type: preproc_def
      name: S390X_SHAKE_256
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '37'
    - item_type: preproc_def
      name: S390X_GHASH
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '65'
    - item_type: preproc_def
      name: S390X_AES_128
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '18'
    - item_type: preproc_def
      name: S390X_AES_192
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '19'
    - item_type: preproc_def
      name: S390X_AES_256
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '20'
    - item_type: preproc_def
      name: S390X_TRNG
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '114'
    - item_type: preproc_def
      name: S390X_DECRYPT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: S390X_KMA_LPC
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: S390X_KMA_LAAD
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: S390X_KMA_HS
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
      type_or_value: '0x400'
    structs:
    - fields:
      - name: stfle[4]
        type: unsigned long long
      - name: kimd[2]
        type: unsigned long long
      - name: klmd[2]
        type: unsigned long long
      - name: km[2]
        type: unsigned long long
      - name: kmc[2]
        type: unsigned long long
      - name: kmac[2]
        type: unsigned long long
      - name: kmctr[2]
        type: unsigned long long
      - name: kmo[2]
        type: unsigned long long
      - name: kmf[2]
        type: unsigned long long
      - name: prno[2]
        type: unsigned long long
      - name: kma[2]
        type: unsigned long long
      item_type: struct
      name: OPENSSL_s390xcap_st
      pos:
        line_end: 47
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/s390x_arch.h
    typedefs: []
    union: []
- function_names:
  - bn_mul_mont
  - OPENSSL_rdtsc
  - OPENSSL_instrument_bus
  - OPENSSL_instrument_bus2
  - common_handler
  - OPENSSL_cpuid_setup
  source_file: /src/openssl-1.1.1g/crypto/sparcv9cap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*bn_mul_mont_f) (BN_ULONG *rp, const BN_ULONG *ap,\n                                          const
        BN_ULONG *bp,\n                                          const BN_ULONG *np,\n
        \                                         const BN_ULONG *n0)"
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/sparcv9cap.c
      type: int
    union: []
- function_names:
  - OPENSSL_cleanse
  source_file: /src/openssl-1.1.1g/crypto/mem_clr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*(*memset_t)(void *, int, size_t)'
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/mem_clr.c
      type: void
    union: []
- function_names:
  - FIPS_mode
  - FIPS_mode_set
  source_file: /src/openssl-1.1.1g/crypto/o_fips.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ppc_arch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PPC_FPU64
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/ppc_arch.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: PPC_ALTIVEC
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/ppc_arch.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: PPC_CRYPTO207
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/ppc_arch.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: PPC_FPU
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/ppc_arch.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: PPC_MADD300
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/ppc_arch.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: PPC_MFTB
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/ppc_arch.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: PPC_MFSPR268
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/ppc_arch.h
      type_or_value: (1<<6)
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - get_and_lock
  - cleanup_cb
  - crypto_cleanup_all_ex_data_int
  - dummy_new
  - dummy_free
  - dummy_dup
  - CRYPTO_free_ex_index
  - CRYPTO_get_ex_new_index
  - CRYPTO_new_ex_data
  - CRYPTO_dup_ex_data
  - CRYPTO_free_ex_data
  - CRYPTO_set_ex_data
  - CRYPTO_get_ex_data
  source_file: /src/openssl-1.1.1g/crypto/ex_data.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: argl
        type: long
      - name: '*argp'
        type: void
      - name: '*new_func'
        type: CRYPTO_EX_new
      - name: '*free_func'
        type: CRYPTO_EX_free
      - name: '*dup_func'
        type: CRYPTO_EX_dup
      item_type: struct
      name: ex_callback_st
      pos:
        line_end: 22
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/ex_data.c
    - fields:
      - name: '*meth'
        type: STACK_OF
      item_type: struct
      name: ex_callbacks_st
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/ex_data.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/o_dir.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LP_DIR_CTX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/o_dir.c
      type_or_value: OPENSSL_DIR_CTX
    - item_type: preproc_def
      name: LP_dir_context_st
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/o_dir.c
      type_or_value: OPENSSL_dir_context_st
    - item_type: preproc_def
      name: LP_find_file
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/o_dir.c
      type_or_value: OPENSSL_DIR_read
    - item_type: preproc_def
      name: LP_find_file_end
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/o_dir.c
      type_or_value: OPENSSL_DIR_end
    structs: []
    typedefs: []
    union: []
- function_names:
  - CLEAR
  - CRYPTO_secure_malloc_init
  - CRYPTO_secure_malloc_done
  - CRYPTO_secure_malloc_initialized
  - CRYPTO_secure_malloc
  - CRYPTO_secure_zalloc
  - CRYPTO_secure_free
  - CRYPTO_secure_clear_free
  - CRYPTO_secure_allocated
  - CRYPTO_secure_used
  - CRYPTO_secure_actual_size
  - TESTBIT
  - SETBIT
  - CLEARBIT
  - WITHIN_ARENA
  - WITHIN_FREELIST
  - sh_getlist
  - sh_testbit
  - sh_clearbit
  - sh_setbit
  - sh_add_to_list
  - sh_remove_from_list
  - sh_init
  - sh_done
  - sh_allocated
  - sh_find_my_buddy
  - sh_malloc
  - sh_free
  - sh_actual_size
  source_file: /src/openssl-1.1.1g/crypto/mem_sec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/mem_sec.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAP_ANON
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/mem_sec.c
      type_or_value: MAP_ANONYMOUS
    - item_type: preproc_def
      name: ONE
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/openssl-1.1.1g/crypto/mem_sec.c
      type_or_value: ((size_t)1)
    structs:
    - fields:
      - name: '*next'
        type: struct sh_list_st
      - name: '**p_next'
        type: struct sh_list_st
      item_type: struct
      name: sh_list_st
      pos:
        line_end: 271
        line_start: 267
        source_file: /src/openssl-1.1.1g/crypto/mem_sec.c
    - fields:
      - name: '* map_result'
        type: char
      - name: map_size
        type: size_t
      - name: '*arena'
        type: char
      - name: arena_size
        type: size_t
      - name: '**freelist'
        type: char
      - name: freelist_size
        type: ossl_ssize_t
      - name: minsize
        type: size_t
      - name: '*bittable'
        type: unsigned char
      - name: '*bitmalloc'
        type: unsigned char
      - name: bittable_size
        type: size_t
      item_type: struct
      name: sh_st
      pos:
        line_end: 285
        line_start: 273
        source_file: /src/openssl-1.1.1g/crypto/mem_sec.c
    typedefs: []
    union: []
- function_names:
  - OPENSSL_cpuid_setup
  - OPENSSL_rdtsc
  - ill_handler
  - OPENSSL_rdtsc
  - OPENSSL_cpuid_setup
  source_file: /src/openssl-1.1.1g/crypto/armcap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HWCAP
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: '16'
    - item_type: preproc_def
      name: HWCAP_NEON
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: HWCAP_CE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: '26'
    - item_type: preproc_def
      name: HWCAP_CE_AES
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: HWCAP_CE_PMULL
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: HWCAP_CE_SHA1
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: HWCAP_CE_SHA256
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: HWCAP
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: '16'
    - item_type: preproc_def
      name: HWCAP_NEON
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: HWCAP_CE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: HWCAP
    - item_type: preproc_def
      name: HWCAP_CE_AES
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: HWCAP_CE_PMULL
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: HWCAP_CE_SHA1
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: HWCAP_CE_SHA256
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: HWCAP_CE_SHA512
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/openssl-1.1.1g/crypto/armcap.c
      type_or_value: (1 << 21)
    structs: []
    typedefs: []
    union: []
- function_names:
  - FAB_OR_NAML
  - SET_NAMX_NO_SHORT_UPCASE
  - NAMX_DNA_FNA_SET
  - NAMX_DNA_FNA_SET
  - FAB_OR_NAML
  - SET_NAMX_NO_SHORT_UPCASE
  source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CC_RMS_NAMX
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: cc$rms_naml
    - item_type: preproc_def
      name: FAB_NAMX
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: fab$l_naml
    - item_type: preproc_def
      name: FAB_OR_NAML_DNA
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: naml$l_long_defname
    - item_type: preproc_def
      name: FAB_OR_NAML_DNS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: naml$l_long_defname_size
    - item_type: preproc_def
      name: FAB_OR_NAML_FNA
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: naml$l_long_filename
    - item_type: preproc_def
      name: FAB_OR_NAML_FNS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: naml$l_long_filename_size
    - item_type: preproc_def
      name: NAMX_ESA
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: naml$l_long_expand
    - item_type: preproc_def
      name: NAMX_ESL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: naml$l_long_expand_size
    - item_type: preproc_def
      name: NAMX_ESS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: naml$l_long_expand_alloc
    - item_type: preproc_def
      name: NAMX_NOP
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: naml$b_nop
    - item_type: preproc_def
      name: NAMX_MAXRSS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: NAML$C_MAXRSS
    - item_type: preproc_def
      name: NAMX_STRUCT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: NAML
    - item_type: preproc_def
      name: CC_RMS_NAMX
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: cc$rms_nam
    - item_type: preproc_def
      name: FAB_NAMX
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: fab$l_nam
    - item_type: preproc_def
      name: FAB_OR_NAML_DNA
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: fab$l_dna
    - item_type: preproc_def
      name: FAB_OR_NAML_DNS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: fab$b_dns
    - item_type: preproc_def
      name: FAB_OR_NAML_FNA
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: fab$l_fna
    - item_type: preproc_def
      name: FAB_OR_NAML_FNS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: fab$b_fns
    - item_type: preproc_def
      name: NAMX_ESA
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: nam$l_esa
    - item_type: preproc_def
      name: NAMX_ESL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: nam$b_esl
    - item_type: preproc_def
      name: NAMX_ESS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: nam$b_ess
    - item_type: preproc_def
      name: NAMX_NOP
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: nam$b_nop
    - item_type: preproc_def
      name: NAMX_MAXRSS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: NAM$C_MAXRSS
    - item_type: preproc_def
      name: NAMX_STRUCT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/vms_rms.h
      type_or_value: NAM
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/buildinf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PLATFORM
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/buildinf.h
      type_or_value: '"platform: linux-x86_64"'
    - item_type: preproc_def
      name: DATE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/buildinf.h
      type_or_value: '"built on: Fri Aug 14 10:06:16 2026 UTC"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LP_find_file
  - LP_find_file_end
  source_file: /src/openssl-1.1.1g/crypto/LPdir_unix.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LP_ENTRY_SIZE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/LPdir_unix.c
      type_or_value: PATH_MAX
    - item_type: preproc_def
      name: LP_ENTRY_SIZE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/LPdir_unix.c
      type_or_value: NAME_MAX
    - item_type: preproc_def
      name: LP_ENTRY_SIZE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/openssl-1.1.1g/crypto/LPdir_unix.c
      type_or_value: '255'
    structs:
    - fields:
      - name: '*dir'
        type: DIR
      - name: entry_name[LP_ENTRY_SIZE + 1]
        type: char
      item_type: struct
      name: LP_dir_context_st
      pos:
        line_end: 82
        line_start: 75
        source_file: /src/openssl-1.1.1g/crypto/LPdir_unix.c
    typedefs: []
    union: []
- function_names:
  - OPENSSL_init
  source_file: /src/openssl-1.1.1g/crypto/o_init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_CRYPTO_strings
  source_file: /src/openssl-1.1.1g/crypto/cpt_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ossl_toascii
  - ossl_fromascii
  - ossl_ctype_check
  - ossl_tolower
  - ossl_toupper
  - ascii_isdigit
  source_file: /src/openssl-1.1.1g/crypto/ctype.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LP_find_file
  - LP_find_file_end
  source_file: /src/openssl-1.1.1g/crypto/LPdir_win.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FindFirstFile
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/LPdir_win.c
      type_or_value: FindFirstFileW
    - item_type: preproc_def
      name: FindNextFile
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/LPdir_win.c
      type_or_value: FindNextFileW
    - item_type: preproc_def
      name: NAME_MAX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/LPdir_win.c
      type_or_value: '255'
    - item_type: preproc_def
      name: CP_DEFAULT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/LPdir_win.c
      type_or_value: CP_UTF8
    - item_type: preproc_def
      name: CP_DEFAULT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/LPdir_win.c
      type_or_value: CP_ACP
    structs:
    - fields:
      - name: ctx
        type: WIN32_FIND_DATA
      - name: handle
        type: HANDLE
      - name: entry_name[NAME_MAX + 1]
        type: char
      item_type: struct
      name: LP_dir_context_st
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/openssl-1.1.1g/crypto/LPdir_win.c
    typedefs: []
    union: []
- function_names:
  - CRYPTO_THREAD_lock_new
  - CRYPTO_THREAD_read_lock
  - CRYPTO_THREAD_write_lock
  - CRYPTO_THREAD_unlock
  - CRYPTO_THREAD_lock_free
  - CRYPTO_THREAD_run_once
  - CRYPTO_THREAD_init_local
  - CRYPTO_THREAD_get_local
  - CRYPTO_THREAD_set_local
  - CRYPTO_THREAD_cleanup_local
  - CRYPTO_THREAD_get_current_id
  - CRYPTO_THREAD_compare_id
  - CRYPTO_atomic_add
  - openssl_init_fork_handlers
  - openssl_get_fork_id
  source_file: /src/openssl-1.1.1g/crypto/threads_none.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_CRYPTO_THREAD_LOCAL_KEY_MAX
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/openssl-1.1.1g/crypto/threads_none.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - __power_set
  - bn_mul_mont
  - sha256_block_data_order
  - sha512_block_data_order
  - ChaCha20_ctr32
  - poly1305_init
  - ecp_nistz256_to_mont
  - ecp_nistz256_from_mont
  - ill_handler
  - OPENSSL_rdtsc
  - OPENSSL_instrument_bus
  - OPENSSL_instrument_bus2
  - OPENSSL_cpuid_setup
  source_file: /src/openssl-1.1.1g/crypto/ppccap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HWCAP
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/openssl-1.1.1g/crypto/ppccap.c
      type_or_value: '16      '
    - item_type: preproc_def
      name: HWCAP_PPC64
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/openssl-1.1.1g/crypto/ppccap.c
      type_or_value: (1U << 30)
    - item_type: preproc_def
      name: HWCAP_ALTIVEC
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/openssl-1.1.1g/crypto/ppccap.c
      type_or_value: (1U << 28)
    - item_type: preproc_def
      name: HWCAP_FPU
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/openssl-1.1.1g/crypto/ppccap.c
      type_or_value: (1U << 27)
    - item_type: preproc_def
      name: HWCAP_POWER6_EXT
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/openssl-1.1.1g/crypto/ppccap.c
      type_or_value: (1U << 9)
    - item_type: preproc_def
      name: HWCAP_VSX
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/openssl-1.1.1g/crypto/ppccap.c
      type_or_value: (1U << 7)
    - item_type: preproc_def
      name: HWCAP2
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/openssl-1.1.1g/crypto/ppccap.c
      type_or_value: '26      '
    - item_type: preproc_def
      name: HWCAP_VEC_CRYPTO
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/openssl-1.1.1g/crypto/ppccap.c
      type_or_value: (1U << 25)
    - item_type: preproc_def
      name: HWCAP_ARCH_3_00
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/openssl-1.1.1g/crypto/ppccap.c
      type_or_value: (1U << 23)
    structs: []
    typedefs: []
    union: []
- function_names:
  - LP_find_file
  - LP_find_file_end
  source_file: /src/openssl-1.1.1g/crypto/LPdir_vms.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVMSERR
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/LPdir_vms.c
      type_or_value: '65535   '
    - item_type: preproc_def
      name: CTX_FILESPEC
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/openssl-1.1.1g/crypto/LPdir_vms.c
      type_or_value: ctx_filespec_32p
    - item_type: preproc_def
      name: CTX_FILESPEC
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/openssl-1.1.1g/crypto/LPdir_vms.c
      type_or_value: (*ctx)->filespec
    structs:
    - fields:
      - name: VMS_context
        type: unsigned long
      - name: filespec[NAMX_MAXRSS + 1]
        type: char
      - name: result[NAMX_MAXRSS + 1]
        type: char
      - name: filespec_dsc
        type: struct dsc$descriptor_d
      - name: result_dsc
        type: struct dsc$descriptor_d
      item_type: struct
      name: LP_dir_context_st
      pos:
        line_end: 66
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/LPdir_vms.c
    typedefs: []
    union: []
- function_names:
  - INCREMENT
  - FAILTEST
  - CRYPTO_set_mem_functions
  - CRYPTO_set_mem_debug
  - CRYPTO_get_mem_functions
  - CRYPTO_get_alloc_counts
  - parseit
  - random
  - shouldfail
  - ossl_malloc_setup_failures
  - CRYPTO_malloc
  - CRYPTO_zalloc
  - CRYPTO_realloc
  - CRYPTO_clear_realloc
  - CRYPTO_free
  - CRYPTO_clear_free
  source_file: /src/openssl-1.1.1g/crypto/mem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ebcdic2ascii
  - ascii2ebcdic
  source_file: /src/openssl-1.1.1g/crypto/ebcdic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/LPdir_wince.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mflo
  - mfhi
  - mflo
  - mfhi
  - dmultu
  - multu
  - mflo
  - mfhi
  source_file: /src/openssl-1.1.1g/crypto/mips_arch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LP_find_file
  - LP_find_file_end
  source_file: /src/openssl-1.1.1g/crypto/LPdir_nyi.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*dummy'
        type: void
      item_type: struct
      name: LP_dir_context_st
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/LPdir_nyi.c
    typedefs: []
    union: []
- function_names:
  - DllMain
  source_file: /src/openssl-1.1.1g/crypto/dllmain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ossl_init_thread_destructor
  - ossl_init_get_thread_local
  - DEFINE_RUN_ONCE_STATIC
  - win32atexit
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC_ALT
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC_ALT
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC_ALT
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC_ALT
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC_ALT
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - ossl_init_thread_stop
  - OPENSSL_thread_stop
  - ossl_init_thread_start
  - OPENSSL_cleanup
  - OPENSSL_init_crypto
  - OPENSSL_atexit
  - OPENSSL_fork_prepare
  - OPENSSL_fork_parent
  - OPENSSL_fork_child
  source_file: /src/openssl-1.1.1g/crypto/init.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*handler)(void)
        type: void
      - name: '*next'
        type: OPENSSL_INIT_STOP
      item_type: struct
      name: ossl_init_stop_st
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/openssl-1.1.1g/crypto/init.c
    typedefs:
    - item_type: typedef
      name: OPENSSL_INIT_STOP
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/init.c
      type: ossl_init_stop_st
    union:
    - fields:
      - name: sane
        type: long
      - name: value
        type: CRYPTO_THREAD_LOCAL
      item_type: union
      name: destructor_key = { -1 }
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/init.c
    - fields:
      - name: '*sym'
        type: void
      - name: (*func)(void)
        type: void
      item_type: union
      name: handlersym
      pos:
        line_end: 771
        line_start: 768
        source_file: /src/openssl-1.1.1g/crypto/init.c
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - app_info_free
  - CRYPTO_mem_ctrl
  - mem_check_on
  - mem_cmp
  - mem_hash
  - pop_info
  - CRYPTO_mem_debug_push
  - CRYPTO_mem_debug_pop
  - CRYPTO_mem_debug_malloc
  - CRYPTO_mem_debug_free
  - CRYPTO_mem_debug_realloc
  - print_leak
  - CRYPTO_mem_leaks_cb
  - print_bio
  - CRYPTO_mem_leaks
  - CRYPTO_mem_leaks_fp
  source_file: /src/openssl-1.1.1g/crypto/mem_dbg.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: threadid
        type: CRYPTO_THREAD_ID
      - name: '*file'
        type: char
      - name: line
        type: int
      - name: '*info'
        type: char
      - name: '*next'
        type: struct app_mem_info_st
      - name: references
        type: int
      item_type: struct
      name: app_mem_info_st
      pos:
        line_end: 55
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/mem_dbg.c
    - fields:
      - name: '*addr'
        type: void
      - name: num
        type: int
      - name: '*file'
        type: char
      - name: line
        type: int
      - name: threadid
        type: CRYPTO_THREAD_ID
      - name: order
        type: unsigned long
      - name: time
        type: time_t
      - name: '*app_info'
        type: APP_INFO
      item_type: struct
      name: mem_st
      pos:
        line_end: 76
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/mem_dbg.c
    - fields:
      - name: (*print_cb) (const char *str, size_t len, void *u)
        type: int
      - name: '*print_cb_arg'
        type: void
      - name: chunks
        type: int
      - name: bytes
        type: long
      item_type: struct
      name: mem_leak_st
      pos:
        line_end: 452
        line_start: 447
        source_file: /src/openssl-1.1.1g/crypto/mem_dbg.c
    typedefs: []
    union:
    - fields:
      - name: tid
        type: CRYPTO_THREAD_ID
      - name: ltid
        type: unsigned long
      item_type: union
      name: tid
      pos:
        line_end: 470
        line_start: 467
        source_file: /src/openssl-1.1.1g/crypto/mem_dbg.c
- function_names:
  - OPENSSL_memcmp
  - CRYPTO_strdup
  - CRYPTO_strndup
  - CRYPTO_memdup
  - OPENSSL_strnlen
  - OPENSSL_strlcpy
  - OPENSSL_strlcat
  - OPENSSL_hexchar2int
  - OPENSSL_hexstr2buf
  - OPENSSL_buf2hexstr
  - openssl_strerror_r
  source_file: /src/openssl-1.1.1g/crypto/o_str.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SPARC_PIC_THUNK
  - SPARC_PIC_THUNK_CALL
  - SPARC_SETUP_GOT_REG
  - SPARC_SETUP_GOT_REG
  - SPARC_LOAD_ADDRESS
  - SPARC_LOAD_ADDRESS
  - SPARC_LOAD_ADDRESS_LEAF
  - SPARC_LOAD_ADDRESS
  - SPARC_LOAD_ADDRESS_LEAF
  source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPARCV9_TICK_PRIVILEGED
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: SPARCV9_PREFER_FPU
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: SPARCV9_VIS1
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: SPARCV9_VIS2
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: SPARCV9_FMADD
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: SPARCV9_BLK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: SPARCV9_VIS3
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: SPARCV9_RANDOM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<7)
    - item_type: preproc_def
      name: SPARCV9_64BIT_STACK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: SPARCV9_FJAESX
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<9)
    - item_type: preproc_def
      name: SPARCV9_FJDESX
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<10)
    - item_type: preproc_def
      name: SPARCV9_FJHPCACE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<11)
    - item_type: preproc_def
      name: SPARCV9_IMA
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<13)
    - item_type: preproc_def
      name: SPARCV9_VIS4
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (1<<14)
    - item_type: preproc_def
      name: CFR_AES
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: CFR_DES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: CFR_KASUMI
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: CFR_CAMELLIA
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: CFR_MD5
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: CFR_SHA1
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: CFR_SHA256
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: CFR_SHA512
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: CFR_MPMUL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: CFR_MONTMUL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: CFR_MONTSQR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: CFR_CRC32C
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: CFR_XMPMUL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: CFR_XMONTMUL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: CFR_XMONTSQR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: LDPTR
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: ldx
    - item_type: preproc_def
      name: SIZE_T_CC
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '%xcc'
    - item_type: preproc_def
      name: STACK_FRAME
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '192'
    - item_type: preproc_def
      name: STACK_BIAS
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '2047'
    - item_type: preproc_def
      name: STACK_7thARG
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: (STACK_BIAS+176)
    - item_type: preproc_def
      name: LDPTR
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: ld
    - item_type: preproc_def
      name: SIZE_T_CC
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '%icc'
    - item_type: preproc_def
      name: STACK_FRAME
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '112'
    - item_type: preproc_def
      name: STACK_BIAS
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STACK_7thARG
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/openssl-1.1.1g/crypto/sparc_arch.h
      type_or_value: '92'
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPENSSL_gmtime
  - OPENSSL_gmtime_adj
  - OPENSSL_gmtime_diff
  - julian_adj
  - date_to_julian
  - julian_to_date
  source_file: /src/openssl-1.1.1g/crypto/o_time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SECS_PER_DAY
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/o_time.c
      type_or_value: (24 * 60 * 60)
    structs: []
    typedefs: []
    union: []
- function_names:
  - CRYPTO_THREAD_lock_new
  - CRYPTO_THREAD_read_lock
  - CRYPTO_THREAD_write_lock
  - CRYPTO_THREAD_unlock
  - CRYPTO_THREAD_lock_free
  - CRYPTO_THREAD_run_once
  - CRYPTO_THREAD_init_local
  - CRYPTO_THREAD_get_local
  - CRYPTO_THREAD_set_local
  - CRYPTO_THREAD_cleanup_local
  - CRYPTO_THREAD_get_current_id
  - CRYPTO_THREAD_compare_id
  - CRYPTO_atomic_add
  - openssl_init_fork_handlers
  - openssl_get_fork_id
  source_file: /src/openssl-1.1.1g/crypto/threads_win.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ONCE_UNINITED
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/openssl-1.1.1g/crypto/threads_win.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ONCE_ININIT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/openssl-1.1.1g/crypto/threads_win.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ONCE_DONE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/openssl-1.1.1g/crypto/threads_win.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/LPdir_win32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ill_handler
  - OPENSSL_cpuid_setup
  source_file: /src/openssl-1.1.1g/crypto/s390xcap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPENSSL_issetugid
  - OPENSSL_issetugid
  - OPENSSL_issetugid
  source_file: /src/openssl-1.1.1g/crypto/uid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __ARM_ARCH__
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: __TARGET_ARCH_ARM
    - item_type: preproc_def
      name: __ARM_ARCH__
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: '8'
    - item_type: preproc_def
      name: __ARM_ARCH__
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: __ARM_ARCH
    - item_type: preproc_def
      name: __ARM_ARCH__
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: '8'
    - item_type: preproc_def
      name: __ARM_ARCH__
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: '7'
    - item_type: preproc_def
      name: __ARM_ARCH__
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: '6'
    - item_type: preproc_def
      name: __ARM_ARCH__
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: '5'
    - item_type: preproc_def
      name: __ARM_ARCH__
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: '4'
    - item_type: preproc_def
      name: __ARM_MAX_ARCH__
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: __ARM_ARCH__
    - item_type: preproc_def
      name: ARMV7_NEON
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: ARMV7_TICK
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: ARMV8_AES
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: ARMV8_SHA1
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: ARMV8_SHA256
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: ARMV8_PMULL
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: ARMV8_SHA512
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/openssl-1.1.1g/crypto/arm_arch.h
      type_or_value: (1<<6)
    structs: []
    typedefs: []
    union: []
- function_names:
  - OpenSSL_version_num
  - OpenSSL_version
  source_file: /src/openssl-1.1.1g/crypto/cversion.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ossl_getenv
  - todigit
  - ossl_strtouint64
  - ossl_strchr
  - OPENSSL_cpuid_setup
  - OPENSSL_cpuid_setup
  - OPENSSL_isservice
  - OPENSSL_isservice
  - OPENSSL_isservice
  - OPENSSL_showfatal
  - OPENSSL_showfatal
  - OPENSSL_isservice
  - OPENSSL_die
  - CRYPTO_memcmp
  - OPENSSL_rdtsc
  - OPENSSL_instrument_bus
  - OPENSSL_instrument_bus2
  source_file: /src/openssl-1.1.1g/crypto/cryptlib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ossl_getenv
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/cryptlib.c
      type_or_value: getenv
    - item_type: preproc_def
      name: _vsntprintf
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/openssl-1.1.1g/crypto/cryptlib.c
      type_or_value: _vsnwprintf
    - item_type: preproc_def
      name: _vsntprintf
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/openssl-1.1.1g/crypto/cryptlib.c
      type_or_value: _vsnprintf
    - item_type: preproc_def
      name: alloca
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/openssl-1.1.1g/crypto/cryptlib.c
      type_or_value: _alloca
    structs: []
    typedefs:
    - item_type: typedef
      name: variant_char
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/cryptlib.c
      type: WCHAR
    - item_type: typedef
      name: variant_char
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/cryptlib.c
      type: char
    - item_type: typedef
      name: IA32CAP
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/openssl-1.1.1g/crypto/cryptlib.c
      type: uint64_t
    union:
    - fields:
      - name: '*p'
        type: void
      - name: f
        type: FARPROC
      item_type: union
      name: "_OPENSSL_isservice = {\n        NULL\n    }"
      pos:
        line_end: 200
        line_start: 197
        source_file: /src/openssl-1.1.1g/crypto/cryptlib.c
- function_names:
  - RC4_options
  - RC4_set_key
  - SK_LOOP
  source_file: /src/openssl-1.1.1g/crypto/rc4/rc4_skey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/rc4/rc4_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC4
  - LOOP
  source_file: /src/openssl-1.1.1g/crypto/rc4/rc4_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ctr128_inc
  - ctr128_inc_aligned
  - CRYPTO_ctr128_encrypt
  - ctr96_inc
  - CRYPTO_ctr128_encrypt_ctr32
  source_file: /src/openssl-1.1.1g/crypto/modes/ctr128.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: "is_endian = {\n        1\n    }"
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/modes/ctr128.c
- function_names:
  - CRYPTO_128_wrap
  - crypto_128_unwrap_raw
  - CRYPTO_128_unwrap
  - CRYPTO_128_wrap_pad
  - CRYPTO_128_unwrap_pad
  source_file: /src/openssl-1.1.1g/crypto/modes/wrap128.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CRYPTO128_WRAP_MAX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/modes/wrap128.c
      type_or_value: (1UL << 31)
    structs: []
    typedefs: []
    union: []
- function_names:
  - CRYPTO_ccm128_init
  - CRYPTO_ccm128_setiv
  - CRYPTO_ccm128_aad
  - ctr64_inc
  - CRYPTO_ccm128_encrypt
  - CRYPTO_ccm128_decrypt
  - ctr64_add
  - CRYPTO_ccm128_encrypt_ccm64
  - CRYPTO_ccm128_decrypt_ccm64
  - CRYPTO_ccm128_tag
  source_file: /src/openssl-1.1.1g/crypto/modes/ccm128.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: u[2]
        type: u64
      - name: c[16]
        type: u8
      item_type: union
      name: scratch
      pos:
        line_end: 140
        line_start: 137
        source_file: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    - fields:
      - name: u[2]
        type: u64
      - name: c[16]
        type: u8
      item_type: union
      name: temp
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    - fields:
      - name: u[2]
        type: u64
      - name: c[16]
        type: u8
      item_type: union
      name: scratch
      pos:
        line_end: 224
        line_start: 221
        source_file: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    - fields:
      - name: u[2]
        type: u64
      - name: c[16]
        type: u8
      item_type: union
      name: temp
      pos:
        line_end: 246
        line_start: 243
        source_file: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    - fields:
      - name: u[2]
        type: u64
      - name: c[16]
        type: u8
      item_type: union
      name: scratch
      pos:
        line_end: 311
        line_start: 308
        source_file: /src/openssl-1.1.1g/crypto/modes/ccm128.c
    - fields:
      - name: u[2]
        type: u64
      - name: c[16]
        type: u8
      item_type: union
      name: scratch
      pos:
        line_end: 375
        line_start: 372
        source_file: /src/openssl-1.1.1g/crypto/modes/ccm128.c
- function_names:
  - CRYPTO_cbc128_encrypt
  - CRYPTO_cbc128_decrypt
  source_file: /src/openssl-1.1.1g/crypto/modes/cbc128.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRICT_ALIGNMENT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/modes/cbc128.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: t[16 / sizeof(size_t)]
        type: size_t
      - name: c[16]
        type: unsigned char
      item_type: union
      name: tmp
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/openssl-1.1.1g/crypto/modes/cbc128.c
- function_names:
  - CRYPTO_cts128_encrypt_block
  - CRYPTO_nistcts128_encrypt_block
  - CRYPTO_cts128_encrypt
  - CRYPTO_nistcts128_encrypt
  - CRYPTO_cts128_decrypt_block
  - CRYPTO_nistcts128_decrypt_block
  - CRYPTO_cts128_decrypt
  - CRYPTO_nistcts128_decrypt
  source_file: /src/openssl-1.1.1g/crypto/modes/cts128.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: align
        type: size_t
      - name: c[16]
        type: unsigned char
      item_type: union
      name: tmp
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/modes/cts128.c
    - fields:
      - name: align
        type: size_t
      - name: c[16]
        type: unsigned char
      item_type: union
      name: tmp
      pos:
        line_end: 130
        line_start: 127
        source_file: /src/openssl-1.1.1g/crypto/modes/cts128.c
    - fields:
      - name: align
        type: size_t
      - name: c[32]
        type: unsigned char
      item_type: union
      name: tmp
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/openssl-1.1.1g/crypto/modes/cts128.c
    - fields:
      - name: align
        type: size_t
      - name: c[32]
        type: unsigned char
      item_type: union
      name: tmp
      pos:
        line_end: 209
        line_start: 206
        source_file: /src/openssl-1.1.1g/crypto/modes/cts128.c
    - fields:
      - name: align
        type: size_t
      - name: c[32]
        type: unsigned char
      item_type: union
      name: tmp
      pos:
        line_end: 255
        line_start: 252
        source_file: /src/openssl-1.1.1g/crypto/modes/cts128.c
    - fields:
      - name: align
        type: size_t
      - name: c[32]
        type: unsigned char
      item_type: union
      name: tmp
      pos:
        line_end: 295
        line_start: 292
        source_file: /src/openssl-1.1.1g/crypto/modes/cts128.c
- function_names:
  - GETU32
  - PUTU32
  - PACK
  - REDUCE1BIT
  - gcm_init_8bit
  - gcm_gmult_8bit
  - GCM_MUL
  - gcm_init_4bit
  - gcm_gmult_4bit
  - GCM_MUL
  - GHASH
  - gcm_gmult_1bit
  - GCM_MUL
  - GCM_MUL
  - GHASH
  - CTX__GHASH
  - CTX__GHASH
  - CRYPTO_gcm128_setiv
  - CRYPTO_gcm128_aad
  - CRYPTO_gcm128_encrypt
  - CRYPTO_gcm128_decrypt
  - CRYPTO_gcm128_encrypt_ctr32
  - CRYPTO_gcm128_decrypt_ctr32
  - CRYPTO_gcm128_finish
  - CRYPTO_gcm128_tag
  - CRYPTO_gcm128_new
  - CRYPTO_gcm128_release
  source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GHASH_CHUNK
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
      type_or_value: (3*1024)
    - item_type: preproc_def
      name: gcm_init_avx
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
      type_or_value: gcm_init_clmul
    - item_type: preproc_def
      name: gcm_gmult_avx
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
      type_or_value: gcm_gmult_clmul
    - item_type: preproc_def
      name: gcm_ghash_avx
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
      type_or_value: gcm_ghash_clmul
    - item_type: preproc_def
      name: PMULL_CAPABLE
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
      type_or_value: (OPENSSL_armcap_P & ARMV8_PMULL)
    - item_type: preproc_def
      name: NEON_CAPABLE
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
      type_or_value: (OPENSSL_armcap_P & ARMV7_NEON)
    structs: []
    typedefs: []
    union:
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 103
        line_start: 100
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 272
        line_start: 269
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 305
        line_start: 302
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 384
        line_start: 381
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 574
        line_start: 571
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 717
        line_start: 714
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 832
        line_start: 829
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 987
        line_start: 984
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 1222
        line_start: 1219
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 1468
        line_start: 1465
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 1632
        line_start: 1629
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 1799
        line_start: 1796
        source_file: /src/openssl-1.1.1g/crypto/modes/gcm128.c
- function_names:
  - ocb_ntz
  - ocb_block_lshift
  - ocb_double
  - ocb_block_xor
  - ocb_lookup_l
  - CRYPTO_ocb128_new
  - CRYPTO_ocb128_init
  - CRYPTO_ocb128_copy_ctx
  - CRYPTO_ocb128_setiv
  - CRYPTO_ocb128_aad
  - CRYPTO_ocb128_encrypt
  - CRYPTO_ocb128_decrypt
  - ocb_finish
  - CRYPTO_ocb128_finish
  - CRYPTO_ocb128_tag
  - CRYPTO_ocb128_cleanup
  source_file: /src/openssl-1.1.1g/crypto/modes/ocb128.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CRYPTO_cfb128_encrypt
  - cfbr_encrypt_block
  - CRYPTO_cfb128_1_encrypt
  - CRYPTO_cfb128_8_encrypt
  source_file: /src/openssl-1.1.1g/crypto/modes/cfb128.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CRYPTO_xts128_encrypt
  source_file: /src/openssl-1.1.1g/crypto/modes/xts128.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: "is_endian = {\n        1\n    }"
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/modes/xts128.c
    - fields:
      - name: u[2]
        type: u64
      - name: d[4]
        type: u32
      - name: c[16]
        type: u8
      item_type: union
      name: tweak
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/modes/xts128.c
    - fields:
      - name: u[2]
        type: u64
      - name: c[16]
        type: u8
      item_type: union
      name: tweak1
      pos:
        line_end: 103
        line_start: 100
        source_file: /src/openssl-1.1.1g/crypto/modes/xts128.c
- function_names:
  - CRYPTO_ofb128_encrypt
  source_file: /src/openssl-1.1.1g/crypto/modes/ofb128.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - U64
  - U64
  - U64
  - BSWAP8
  - BSWAP4
  - BSWAP8
  - BSWAP4
  - BSWAP8
  - BSWAP4
  - BSWAP8
  - BSWAP4
  - BSWAP8
  - BSWAP4
  - GETU32
  - PUTU32
  - GETU32
  - PUTU32
  - ocb_block16_xor
  - ocb_block16_xor_misaligned
  source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRICT_ALIGNMENT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TABLE_BITS
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ocb_block16_xor_misaligned
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type_or_value: ocb_block16_xor
    structs:
    - fields:
      - name: hi
        type: u64
      item_type: struct
      name: u128
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    - fields:
      - name: Yi
        type: "union {\n        u64 u[2];\n        u32 d[4];\n        u8 c[16];\n
          \       size_t t[16 / sizeof(size_t)];\n    }"
      - name: mres
        type: unsigned int
      - name: block
        type: block128_f
      - name: '*key'
        type: void
      item_type: struct
      name: gcm128_context
      pos:
        line_end: 133
        line_start: 107
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    - fields:
      - name: '*key1'
        type: void
      - name: block1
        type: block128_f
      item_type: struct
      name: xts128_context
      pos:
        line_end: 138
        line_start: 135
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    - fields:
      - name: nonce
        type: "union {\n        u64 u[2];\n        u8 c[16];\n    }"
      - name: blocks
        type: u64
      - name: block
        type: block128_f
      - name: '*key'
        type: void
      item_type: struct
      name: ccm128_context
      pos:
        line_end: 148
        line_start: 140
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    - fields:
      - name: encrypt
        type: block128_f
      - name: decrypt
        type: block128_f
      - name: '*keyenc'
        type: void
      - name: '*keydec'
        type: void
      - name: stream
        type: ocb128_f
      - name: l_index
        type: size_t
      - name: max_l_index
        type: size_t
      - name: l_star
        type: OCB_BLOCK
      - name: l_dollar
        type: OCB_BLOCK
      - name: '*l'
        type: OCB_BLOCK
      - name: sess
        type: "struct {\n        u64 blocks_hashed;\n        u64 blocks_processed;\n
          \       OCB_BLOCK offset_aad;\n        OCB_BLOCK sum;\n        OCB_BLOCK
          offset;\n        OCB_BLOCK checksum;\n    }"
      item_type: struct
      name: ocb128_context
      pos:
        line_end: 188
        line_start: 166
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
    typedefs:
    - item_type: typedef
      name: i64
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type: __int64
    - item_type: typedef
      name: u64
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type: unsigned __int64
    - item_type: typedef
      name: i64
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type: long
    - item_type: typedef
      name: u64
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type: unsigned long
    - item_type: typedef
      name: i64
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type: long long
    - item_type: typedef
      name: u64
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type: unsigned long long
    - item_type: typedef
      name: u32
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type: unsigned int
    - item_type: typedef
      name: u8
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
      type: unsigned char
    union:
    - fields:
      - name: a[2]
        type: u64
      - name: c[16]
        type: unsigned char
      item_type: union
      name: OCB_BLOCK
      pos:
        line_end: 155
        line_start: 152
        source_file: /src/openssl-1.1.1g/crypto/modes/modes_local.h
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: opaque[24]
        type: double
      - name: nonce[4]
        type: unsigned int
      - name: data[POLY1305_BLOCK_SIZE]
        type: unsigned char
      - name: num
        type: size_t
      - name: func
        type: "struct {\n        poly1305_blocks_f blocks;\n        poly1305_emit_f
          emit;\n    }"
      item_type: struct
      name: poly1305_context
      pos:
        line_end: 26
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_local.h
    typedefs:
    - item_type: typedef
      name: "(*poly1305_blocks_f) (void *ctx, const unsigned char *inp,\n                                   size_t
        len, unsigned int padbit)"
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_local.h
      type: void
    - item_type: typedef
      name: "(*poly1305_emit_f) (void *ctx, unsigned char mac[16],\n                                 const
        unsigned int nonce[4])"
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_local.h
      type: void
    union: []
- function_names:
  - U8TOU64
  - U64TO8
  - poly1305_init
  - poly1305_blocks
  - poly1305_emit
  source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLY1305_BLOCK_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
      type_or_value: '16'
    structs:
    - fields:
      - name: h[3]
        type: u64
      - name: s[2]
        type: u64
      - name: r[3]
        type: u64
      item_type: struct
      name: poly1305_internal
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
      type: unsigned char
    - item_type: typedef
      name: u32
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
      type: unsigned int
    - item_type: typedef
      name: u64
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
      type: unsigned long
    - item_type: typedef
      name: u128
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_base2_44.c
      type: unsigned __int128
    union: []
- function_names:
  - Poly1305_ctx_size
  - U8TOU32
  - CONSTANT_TIME_CARRY
  - U8TOU64
  - U64TO8
  - poly1305_init
  - poly1305_blocks
  - poly1305_emit
  - U32TO8
  - poly1305_init
  - poly1305_blocks
  - poly1305_emit
  - Poly1305_Init
  - Poly1305_Update
  - Poly1305_Final
  source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: poly1305_blocks
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
      type_or_value: (*poly1305_blocks_p)
    - item_type: preproc_def
      name: poly1305_emit
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
      type_or_value: (*poly1305_emit_p)
    structs:
    - fields:
      - name: h[3]
        type: u64
      - name: r[2]
        type: u64
      item_type: struct
      name: poly1305_internal
      pos:
        line_end: 106
        line_start: 103
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    - fields:
      - name: h[5]
        type: u32
      - name: r[4]
        type: u32
      item_type: struct
      name: poly1305_internal
      pos:
        line_end: 261
        line_start: 258
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
    typedefs:
    - item_type: typedef
      name: u32
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
      type: unsigned int
    - item_type: typedef
      name: u64
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
      type: unsigned long
    - item_type: typedef
      name: u128
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
      type: __uint128_t
    - item_type: typedef
      name: u64
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
      type: unsigned __int64
    - item_type: typedef
      name: u64
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
      type: unsigned long
    - item_type: typedef
      name: u64
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305.c
      type: unsigned long long
    union: []
- function_names:
  - TWO
  - EXP
  - U8TOU32
  - U32TO8
  - U8TOU32
  - U32TO8
  - U8TOU32
  - U32TO8
  - U8TOU32
  - U32TO8
  - poly1305_init
  - poly1305_blocks
  - poly1305_emit
  source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TWO0
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
      type_or_value: TWO(0)
    - item_type: preproc_def
      name: TWO32
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
      type_or_value: TWO(32)
    - item_type: preproc_def
      name: TWO64
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
      type_or_value: (TWO32*TWO(32))
    - item_type: preproc_def
      name: TWO96
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
      type_or_value: (TWO64*TWO(32))
    - item_type: preproc_def
      name: TWO130
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
      type_or_value: (TWO96*TWO(34))
    structs:
    - fields:
      - name: h[4]
        type: elem64
      - name: r[8]
        type: double
      - name: s[6]
        type: double
      item_type: struct
      name: poly1305_internal
      pos:
        line_end: 92
        line_start: 88
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
      type: unsigned char
    - item_type: typedef
      name: u32
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
      type: unsigned int
    - item_type: typedef
      name: u64
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
      type: unsigned long long
    union:
    - fields:
      - name: d
        type: double
      - name: u
        type: u64
      item_type: union
      name: elem64
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ieee754.c
- function_names:
  - pkey_poly1305_init
  - pkey_poly1305_cleanup
  - pkey_poly1305_copy
  - pkey_poly1305_keygen
  - int_update
  - poly1305_signctx_init
  - poly1305_signctx
  - pkey_poly1305_ctrl
  - pkey_poly1305_ctrl_str
  source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ktmp
        type: ASN1_OCTET_STRING
      - name: ctx
        type: POLY1305
      item_type: struct
      name: POLY1305_PKEY_CTX
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_pmeth.c
    typedefs: []
    union: []
- function_names:
  - poly1305_size
  - poly1305_key_free
  - poly1305_pkey_ctrl
  - poly1305_pkey_public_cmp
  - poly1305_set_priv_key
  - poly1305_get_priv_key
  source_file: /src/openssl-1.1.1g/crypto/poly1305/poly1305_ameth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/dso/dso_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*meth'
        type: DSO_METHOD
      - name: '*meth_data'
        type: STACK_OF
      - name: references
        type: CRYPTO_REF_COUNT
      - name: flags
        type: int
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: name_converter
        type: DSO_NAME_CONVERTER_FUNC
      - name: merger
        type: DSO_MERGER_FUNC
      - name: '*filename'
        type: char
      - name: '*loaded_filename'
        type: char
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: dso_st
      pos:
        line_end: 64
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_local.h
    - fields:
      - name: '*name'
        type: char
      - name: (*dso_load) (DSO *dso)
        type: int
      - name: (*dso_unload) (DSO *dso)
        type: int
      - name: (*dso_bind_func) (DSO *dso, const char *symname)
        type: DSO_FUNC_TYPE
      - name: (*dso_ctrl) (DSO *dso, int cmd, long larg, void *parg)
        type: long
      - name: dso_name_converter
        type: DSO_NAME_CONVERTER_FUNC
      - name: dso_merger
        type: DSO_MERGER_FUNC
      - name: (*init) (DSO *dso)
        type: int
      - name: (*finish) (DSO *dso)
        type: int
      - name: (*pathbyaddr) (void *addr, char *path, int sz)
        type: int
      - name: '*(*globallookup) (const char *symname)'
        type: void
      item_type: struct
      name: dso_meth_st
      pos:
        line_end: 106
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_local.h
    typedefs: []
    union: []
- function_names:
  - DSO_METHOD_openssl
  - vms_load
  - vms_unload
  - do_find_symbol
  - vms_bind_sym
  - vms_bind_func
  - vms_merger
  - vms_name_converter
  source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DSO_MALLOC
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
      type_or_value: _malloc32
    - item_type: preproc_def
      name: DSO_MALLOC
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
      type_or_value: OPENSSL_malloc
    - item_type: preproc_def
      name: LIB$M_FIS_MIXEDCASE
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
      type_or_value: (1 << 4);
    - item_type: preproc_def
      name: SYMNAME
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
      type_or_value: symname_32p
    - item_type: preproc_def
      name: SYMNAME
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
      type_or_value: ((char *) symname)
    - item_type: preproc_def
      name: FILESPEC1
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
      type_or_value: filespec1_32p;
    - item_type: preproc_def
      name: FILESPEC2
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
      type_or_value: filespec2_32p;
    - item_type: preproc_def
      name: FILESPEC1
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
      type_or_value: ((char *) filespec1)
    - item_type: preproc_def
      name: FILESPEC2
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
      type_or_value: ((char *) filespec2)
    structs:
    - fields:
      - name: filename_dsc
        type: struct dsc$descriptor_s
      - name: filename[NAMX_MAXRSS + 1]
        type: char
      - name: imagename_dsc
        type: struct dsc$descriptor_s
      - name: imagename[NAMX_MAXRSS + 1]
        type: char
      item_type: struct
      name: dso_internal_st
      pos:
        line_end: 76
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_vms.c
    typedefs: []
    union: []
- function_names:
  - GetProcAddressA
  - LoadLibraryA
  - DSO_METHOD_openssl
  - win32_load
  - win32_unload
  - win32_bind_func
  - win32_splitter
  - win32_joiner
  - win32_merger
  - win32_name_converter
  - openssl_strnchr
  - win32_pathbyaddr
  - win32_globallookup
  source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GetProcAddress
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
      type_or_value: GetProcAddressA
    - item_type: preproc_def
      name: DSO_MAX_TRANSLATED_SIZE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
      type_or_value: '256'
    - item_type: preproc_def
      name: DLLNAME
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
      type_or_value: '"TOOLHELP.DLL"'
    - item_type: preproc_def
      name: DLLNAME
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
      type_or_value: '"KERNEL32.DLL"'
    structs:
    - fields:
      - name: '*node'
        type: char
      - name: nodelen
        type: int
      - name: '*device'
        type: char
      - name: devicelen
        type: int
      - name: '*predir'
        type: char
      - name: predirlen
        type: int
      - name: '*dir'
        type: char
      - name: dirlen
        type: int
      - name: '*file'
        type: char
      - name: filelen
        type: int
      item_type: struct
      name: file_st
      pos:
        line_end: 201
        line_start: 190
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    typedefs:
    - item_type: typedef
      name: (WINAPI *CREATETOOLHELP32SNAPSHOT) (DWORD, DWORD)
      pos:
        line_end: 499
        line_start: 499
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
      type: HANDLE
    - item_type: typedef
      name: (WINAPI *CLOSETOOLHELP32SNAPSHOT) (HANDLE)
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
      type: BOOL
    - item_type: typedef
      name: (WINAPI *MODULE32) (HANDLE, MODULEENTRY32 *)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
      type: BOOL
    union:
    - fields:
      - name: '*p'
        type: void
      - name: f
        type: FARPROC
      item_type: union
      name: sym
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    - fields:
      - name: (*f) (void *, char *, int)
        type: int
      - name: '*p'
        type: void
      item_type: union
      name: "t = {\n            win32_pathbyaddr\n        }"
      pos:
        line_end: 516
        line_start: 513
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
    - fields:
      - name: '*p'
        type: void
      - name: f
        type: FARPROC
      item_type: union
      name: ret = { NULL }
      pos:
        line_end: 619
        line_start: 616
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_win32.c
- function_names:
  - DSO_METHOD_openssl
  source_file: /src/openssl-1.1.1g/crypto/dso/dso_openssl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSO_new_method
  - DSO_new
  - DSO_free
  - DSO_flags
  - DSO_up_ref
  - DSO_load
  - DSO_bind_func
  - DSO_ctrl
  - DSO_get_filename
  - DSO_set_filename
  - DSO_merge
  - DSO_convert_filename
  - DSO_pathbyaddr
  - DSO_dsobyaddr
  - DSO_global_lookup
  source_file: /src/openssl-1.1.1g/crypto/dso/dso_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSO_METHOD_openssl
  - dlfcn_load
  - dlfcn_unload
  - dlfcn_bind_func
  - dlfcn_merger
  - dlfcn_name_converter
  - dladdr
  - dladdr
  - dlfcn_pathbyaddr
  - dlfcn_globallookup
  source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_DLINFO
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DSO_MAX_TRANSLATED_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
      type_or_value: '256'
    - item_type: preproc_def
      name: DLOPEN_FLAG
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
      type_or_value: DL_LAZY
    - item_type: preproc_def
      name: DLOPEN_FLAG
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
      type_or_value: RTLD_NOW
    - item_type: preproc_def
      name: DLOPEN_FLAG
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DLOPEN_FLAG
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
      type_or_value: 'RTLD_NOW  '
    - item_type: preproc_def
      name: _RLD_DLADDR
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
      type_or_value: '14'
    - item_type: preproc_def
      name: DLFCN_LDINFO_SIZE
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
      type_or_value: '86976'
    structs:
    - fields:
      - name: '*dli_fname'
        type: char
      - name: '*dli_fbase'
        type: void
      - name: '*dli_sname'
        type: char
      - name: '*dli_saddr'
        type: void
      - name: dli_version
        type: int
      - name: dli_reserved1
        type: int
      - name: dli_reserved[4]
        type: long
      item_type: struct
      name: Dl_info
      pos:
        line_end: 306
        line_start: 298
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    - fields:
      - name: '*dli_fname'
        type: char
      item_type: struct
      name: Dl_info
      pos:
        line_end: 332
        line_start: 330
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    typedefs:
    - item_type: typedef
      name: Dl_info
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
      type: Dl_info
    union:
    - fields:
      - name: sym
        type: DSO_FUNC_TYPE
      - name: '*dlret'
        type: void
      item_type: union
      name: u
      pos:
        line_end: 170
        line_start: 167
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
    - fields:
      - name: (*f) (void *, char *, int)
        type: int
      - name: '*p'
        type: void
      item_type: union
      name: "t = {\n            dlfcn_pathbyaddr\n        }"
      pos:
        line_end: 415
        line_start: 412
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dlfcn.c
- function_names:
  - ERR_load_DSO_strings
  source_file: /src/openssl-1.1.1g/crypto/dso/dso_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSO_METHOD_openssl
  - dl_load
  - dl_unload
  - dl_bind_func
  - dl_merger
  - dl_name_converter
  - dl_pathbyaddr
  - dl_globallookup
  source_file: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DSO_MAX_TRANSLATED_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: (*f) (void *, char *, int)
        type: int
      - name: '*p'
        type: void
      item_type: union
      name: "t = {\n            dl_pathbyaddr\n        }"
      pos:
        line_end: 248
        line_start: 245
        source_file: /src/openssl-1.1.1g/crypto/dso/dso_dl.c
- function_names:
  - UI_new
  - UI_new_method
  - free_string
  - UI_free
  - allocate_string_stack
  - general_allocate_prompt
  - general_allocate_string
  - general_allocate_boolean
  - UI_add_input_string
  - UI_dup_input_string
  - UI_add_verify_string
  - UI_dup_verify_string
  - UI_add_input_boolean
  - UI_dup_input_boolean
  - UI_add_info_string
  - UI_dup_info_string
  - UI_add_error_string
  - UI_dup_error_string
  - UI_construct_prompt
  - UI_add_user_data
  - UI_dup_user_data
  - UI_get0_user_data
  - UI_get0_result
  - UI_get_result_length
  - print_error
  - UI_process
  - UI_ctrl
  - UI_set_ex_data
  - UI_get_ex_data
  - UI_get_method
  - UI_set_method
  - UI_create_method
  - UI_destroy_method
  - UI_method_set_opener
  - UI_method_set_writer
  - UI_method_set_flusher
  - UI_method_set_reader
  - UI_method_set_closer
  - UI_method_set_data_duplicator
  - UI_method_set_prompt_constructor
  - UI_method_set_ex_data
  - (*UI_method_get_opener(const UI_METHOD *method)) (UI *)
  - (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *)
  - (*UI_method_get_flusher(const UI_METHOD *method)) (UI *)
  - (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *)
  - (*UI_method_get_closer(const UI_METHOD *method)) (UI *)
  - "*(*UI_method_get_prompt_constructor(const UI_METHOD *method))\n    (UI *, const
    char *, const char *)"
  - '*(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *)'
  - (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *)
  - UI_method_get_ex_data
  - UI_get_string_type
  - UI_get_input_flags
  - UI_get0_output_string
  - UI_get0_action_string
  - UI_get0_result_string
  - UI_get_result_string_length
  - UI_get0_test_string
  - UI_get_result_minsize
  - UI_get_result_maxsize
  - UI_set_result
  - UI_set_result_ex
  source_file: /src/openssl-1.1.1g/crypto/ui/ui_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UI_UTIL_read_pw_string
  - UI_UTIL_read_pw
  - ui_new_method_data
  - ui_dup_method_data
  - ui_free_method_data
  - DEFINE_RUN_ONCE_STATIC
  - ui_open
  - ui_read
  - ui_write
  - ui_close
  - UI_UTIL_wrap_read_pem_callback
  source_file: /src/openssl-1.1.1g/crypto/ui/ui_util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZ
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_util.c
      type_or_value: '256'
    structs:
    - fields:
      - name: '*cb'
        type: pem_password_cb
      - name: rwflag
        type: int
      item_type: struct
      name: pem_password_cb_data
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_util.c
    typedefs: []
    union: []
- function_names:
  - ERR_load_UI_strings
  source_file: /src/openssl-1.1.1g/crypto/ui/ui_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ui/ui_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OUT_STRING_FREEABLE
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_local.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: UI_FLAG_REDOABLE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_local.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: UI_FLAG_DUPL_DATA
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_local.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: UI_FLAG_PRINT_ERRORS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_local.h
      type_or_value: '0x0100'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*ui_open_session) (UI *ui)
        type: int
      - name: (*ui_write_string) (UI *ui, UI_STRING *uis)
        type: int
      - name: (*ui_flush) (UI *ui)
        type: int
      - name: (*ui_read_string) (UI *ui, UI_STRING *uis)
        type: int
      - name: (*ui_close_session) (UI *ui)
        type: int
      - name: '*(*ui_duplicate_data) (UI *ui, void *ui_data)'
        type: void
      - name: (*ui_destroy_data) (UI *ui, void *ui_data)
        type: void
      - name: "*(*ui_construct_prompt) (UI *ui, const char *object_desc,\n                                  const
          char *object_name)"
        type: char
      - name: ex_data
        type: CRYPTO_EX_DATA
      item_type: struct
      name: ui_method_st
      pos:
        line_end: 58
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_local.h
    - fields:
      - name: type
        type: enum UI_string_types
      - name: '*out_string'
        type: char
      - name: input_flags
        type: int
      - name: '*result_buf'
        type: char
      - name: result_len
        type: size_t
      - name: _
        type: "union {\n        struct {\n            int result_minsize; /* Input:
          minimum required size of the\n                                 * result.
          */\n            int result_maxsize; /* Input: maximum permitted size of
          the\n                                 * result */\n            const char
          *test_buf; /* Input: test string to verify against */\n        } string_data;\n
          \       struct {\n            const char *action_desc; /* Input */\n            const
          char *ok_chars; /* Input */\n            const char *cancel_chars; /* Input
          */\n        } boolean_data;\n    }"
      - name: flags
        type: int
      item_type: struct
      name: ui_string_st
      pos:
        line_end: 91
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_local.h
    - fields:
      - name: '*meth'
        type: UI_METHOD
      - name: '*strings'
        type: STACK_OF
      - name: '*user_data'
        type: void
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: flags
        type: int
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: ui_st
      pos:
        line_end: 106
        line_start: 93
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_local.h
    typedefs: []
    union: []
- function_names:
  - TTY_get
  - TTY_set
  - TTY_get
  - TTY_set
  - TTY_get
  - TTY_set
  - write_string
  - read_string
  - read_till_nl
  - read_string_inner
  - open_console
  - noecho_console
  - echo_console
  - close_console
  - pushsig
  - popsig
  - recsig
  - noecho_fgets
  - UI_OpenSSL
  - UI_set_default_method
  - UI_get_default_method
  source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _POSIX_C_SOURCE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TTY_STRUCT
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: struct termios
    - item_type: preproc_def
      name: TTY_FLAGS
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: c_lflag
    - item_type: preproc_def
      name: TTY_STRUCT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: struct termio
    - item_type: preproc_def
      name: TTY_FLAGS
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: c_lflag
    - item_type: preproc_def
      name: TTY_STRUCT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: struct sgttyb
    - item_type: preproc_def
      name: TTY_FLAGS
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: sg_flags
    - item_type: preproc_def
      name: NX509_SIG
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: '32'
    - item_type: preproc_def
      name: SIZE
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DEV_TTY
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: '"con"'
    - item_type: preproc_def
      name: DEV_TTY
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
      type_or_value: '"/dev/tty"'
    structs:
    - fields:
      - name: iosb$w_value
        type: short
      - name: iosb$w_count
        type: short
      - name: iosb$l_info
        type: long
      item_type: struct
      name: IOSB
      pos:
        line_end: 150
        line_start: 146
        source_file: /src/openssl-1.1.1g/crypto/ui/ui_openssl.c
    typedefs: []
    union: []
- function_names:
  - UI_null
  source_file: /src/openssl-1.1.1g/crypto/ui/ui_null.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ec_field_size
  - sm2_plaintext_size
  - sm2_ciphertext_size
  - sm2_encrypt
  - sm2_decrypt
  source_file: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*C1x'
        type: BIGNUM
      - name: '*C1y'
        type: BIGNUM
      - name: '*C3'
        type: ASN1_OCTET_STRING
      - name: '*C2'
        type: ASN1_OCTET_STRING
      item_type: struct
      name: SM2_Ciphertext_st
      pos:
        line_end: 29
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c
    typedefs:
    - item_type: typedef
      name: SM2_Ciphertext
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/sm2/sm2_crypt.c
      type: SM2_Ciphertext_st
    union: []
- function_names:
  - ERR_load_SM2_strings
  source_file: /src/openssl-1.1.1g/crypto/sm2/sm2_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sm2_compute_z_digest
  - sm2_compute_msg_hash
  - sm2_sig_gen
  - sm2_sig_verify
  - sm2_do_sign
  - sm2_do_verify
  - sm2_sign
  - sm2_verify
  source_file: /src/openssl-1.1.1g/crypto/sm2/sm2_sign.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pkey_sm2_init
  - pkey_sm2_cleanup
  - pkey_sm2_copy
  - pkey_sm2_sign
  - pkey_sm2_verify
  - pkey_sm2_encrypt
  - pkey_sm2_decrypt
  - pkey_sm2_ctrl
  - pkey_sm2_ctrl_str
  - pkey_sm2_digest_custom
  source_file: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*gen_group'
        type: EC_GROUP
      - name: '*md'
        type: EVP_MD
      - name: '*id'
        type: uint8_t
      - name: id_len
        type: size_t
      - name: id_set
        type: int
      item_type: struct
      name: SM2_PKEY_CTX
      pos:
        line_end: 29
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/sm2/sm2_pmeth.c
    typedefs: []
    union: []
- function_names:
  - PEM_SignInit
  - PEM_SignUpdate
  - PEM_SignFinal
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_sign.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_x509.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PEM_read_bio_PrivateKey
  - PEM_write_bio_PrivateKey
  - PEM_write_bio_PrivateKey_traditional
  - PEM_read_bio_Parameters
  - PEM_write_bio_Parameters
  - PEM_read_PrivateKey
  - PEM_write_PrivateKey
  - PEM_read_bio_DHparams
  - PEM_read_DHparams
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_pkey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pkey_get_rsa
  - PEM_read_bio_RSAPrivateKey
  - PEM_read_RSAPrivateKey
  - pkey_get_dsa
  - PEM_read_bio_DSAPrivateKey
  - PEM_read_DSAPrivateKey
  - pkey_get_eckey
  - PEM_read_bio_ECPrivateKey
  - PEM_read_ECPrivateKey
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_all.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PEM_ASN1_read_bio
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_oth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PEM_write_bio_PKCS8PrivateKey_nid
  - PEM_write_bio_PKCS8PrivateKey
  - i2d_PKCS8PrivateKey_bio
  - i2d_PKCS8PrivateKey_nid_bio
  - do_pk8pkey
  - d2i_PKCS8PrivateKey_bio
  - i2d_PKCS8PrivateKey_fp
  - i2d_PKCS8PrivateKey_nid_fp
  - PEM_write_PKCS8PrivateKey_nid
  - PEM_write_PKCS8PrivateKey
  - do_pk8pkey_fp
  - d2i_PKCS8PrivateKey_fp
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_pk8.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PEM_X509_INFO_write_bio
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_info.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_PEM_strings
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_ledword
  - read_lebn
  - do_blob_header
  - blob_length
  - do_b2i
  - do_b2i_bio
  - b2i_dss
  - b2i_rsa
  - b2i_PrivateKey
  - b2i_PublicKey
  - b2i_PrivateKey_bio
  - b2i_PublicKey_bio
  - write_ledword
  - write_lebn
  - do_i2b
  - do_i2b_bio
  - check_bitlen_dsa
  - check_bitlen_rsa
  - write_rsa
  - write_dsa
  - i2b_PrivateKey_bio
  - i2b_PublicKey_bio
  - do_PVK_header
  - derive_pvk_key
  - do_PVK_body
  - b2i_PVK_bio
  - i2b_PVK
  - i2b_PVK_bio
  source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MS_PUBLICKEYBLOB
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '0x6'
    - item_type: preproc_def
      name: MS_PRIVATEKEYBLOB
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '0x7'
    - item_type: preproc_def
      name: MS_RSA1MAGIC
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: 0x31415352L
    - item_type: preproc_def
      name: MS_RSA2MAGIC
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: 0x32415352L
    - item_type: preproc_def
      name: MS_DSS1MAGIC
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: 0x31535344L
    - item_type: preproc_def
      name: MS_DSS2MAGIC
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: 0x32535344L
    - item_type: preproc_def
      name: MS_KEYALG_RSA_KEYX
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '0xa400'
    - item_type: preproc_def
      name: MS_KEYALG_DSS_SIGN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '0x2200'
    - item_type: preproc_def
      name: MS_KEYTYPE_KEYX
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MS_KEYTYPE_SIGN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: BLOB_MAX_LENGTH
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '102400'
    - item_type: preproc_def
      name: MS_PVKMAGIC
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: 0xb0b5f11eL
    - item_type: preproc_def
      name: PVK_SALTLEN
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: PVK_MAX_KEYLEN
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '102400'
    - item_type: preproc_def
      name: PVK_MAX_SALTLEN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/openssl-1.1.1g/crypto/pem/pvkfmt.c
      type_or_value: '10240'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PEM_def_callback
  - PEM_proc_type
  - PEM_dek_info
  - PEM_ASN1_read
  - check_pem
  - pem_free
  - pem_malloc
  - pem_bytes_read_bio_flags
  - PEM_bytes_read_bio
  - PEM_bytes_read_bio_secmem
  - PEM_ASN1_write
  - PEM_ASN1_write_bio
  - PEM_do_header
  - PEM_get_EVP_CIPHER_INFO
  - load_iv
  - PEM_write
  - PEM_write_bio
  - PEM_read
  - sanitize_line
  - get_name
  - get_header_and_data
  - PEM_read_bio_ex
  - PEM_read_bio
  - pem_check_suffix
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
  types:
    enum:
    - enumerators:
      - name: MAYBE_HEADER
      - name: IN_HEADER
      - name: POST_HEADER
      item_type: enum
      name: header_status
      pos:
        line_end: 775
        line_start: 771
        source_file: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
    preproc_defs:
    - item_type: preproc_def
      name: MIN_LENGTH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
      type_or_value: '4'
    - item_type: preproc_def
      name: LINESIZE
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
      type_or_value: '255'
    - item_type: preproc_def
      name: BEGINLEN
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
      type_or_value: ((int)(sizeof(beginstr) - 1))
    - item_type: preproc_def
      name: ENDLEN
      pos:
        line_end: 723
        line_start: 722
        source_file: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
      type_or_value: ((int)(sizeof(endstr) - 1))
    - item_type: preproc_def
      name: TAILLEN
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/openssl-1.1.1g/crypto/pem/pem_lib.c
      type_or_value: ((int)(sizeof(tailstr) - 1))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/pem/pem_xaux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - prefetch256
  - GETU32
  - U64
  - U64
  - U64
  - ROTATE
  - ROTATE
  - ROTATE
  - AES_set_encrypt_key
  - AES_set_decrypt_key
  - AES_encrypt
  - AES_decrypt
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Te0
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type_or_value: (u32)((u64*)((u8*)Te+0))
    - item_type: preproc_def
      name: Te1
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type_or_value: (u32)((u64*)((u8*)Te+3))
    - item_type: preproc_def
      name: Te2
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type_or_value: (u32)((u64*)((u8*)Te+2))
    - item_type: preproc_def
      name: Te3
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type_or_value: (u32)((u64*)((u8*)Te+1))
    - item_type: preproc_def
      name: Td0
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type_or_value: (u32)((u64*)((u8*)Td+0))
    - item_type: preproc_def
      name: Td1
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type_or_value: (u32)((u64*)((u8*)Td+3))
    - item_type: preproc_def
      name: Td2
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type_or_value: (u32)((u64*)((u8*)Td+2))
    - item_type: preproc_def
      name: Td3
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type_or_value: (u32)((u64*)((u8*)Td+1))
    structs: []
    typedefs:
    - item_type: typedef
      name: u64
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type: unsigned __int64
    - item_type: typedef
      name: u64
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type: unsigned long
    - item_type: typedef
      name: u64
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_x86core.c
      type: unsigned long long
    union: []
- function_names:
  - SWAP
  - GETU32
  - PUTU32
  - GETU32
  - PUTU32
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXKC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_local.h
      type_or_value: (256/32)
    - item_type: preproc_def
      name: MAXKB
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_local.h
      type_or_value: (256/8)
    - item_type: preproc_def
      name: MAXNR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_local.h
      type_or_value: '14'
    structs: []
    typedefs:
    - item_type: typedef
      name: u64
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_local.h
      type: unsigned long long
    - item_type: typedef
      name: u32
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_local.h
      type: unsigned long
    - item_type: typedef
      name: u32
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_local.h
      type: unsigned int
    - item_type: typedef
      name: u16
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_local.h
      type: unsigned short
    - item_type: typedef
      name: u8
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_local.h
      type: unsigned char
    union: []
- function_names:
  - AES_ecb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_ecb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AES_wrap_key
  - AES_unwrap_key
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_wrap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AES_options
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_misc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_block
  - store_block
  - load_block
  - store_block
  - AES_ige_encrypt
  - AES_bi_ige_encrypt
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N_WORDS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
      type_or_value: (AES_BLOCK_SIZE / sizeof(unsigned long))
    - item_type: preproc_def
      name: UNALIGNED_MEMOPS_ARE_FAST
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
      type_or_value: '1'
    - item_type: preproc_def
      name: UNALIGNED_MEMOPS_ARE_FAST
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
      type_or_value: '0'
    structs:
    - fields:
      - name: data[N_WORDS]
        type: unsigned long
      item_type: struct
      name: aes_block_t
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_ige.c
    typedefs: []
    union: []
- function_names:
  - AES_ofb128_encrypt
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_ofb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AES_cfb128_encrypt
  - AES_cfb1_encrypt
  - AES_cfb8_encrypt
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_cfb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - XtimeWord
  - XtimeLong
  - SubWord
  - SubLong
  - InvSubLong
  - ShiftRows
  - InvShiftRows
  - MixColumns
  - InvMixColumns
  - AddRoundKey
  - Cipher
  - InvCipher
  - RotWord
  - KeyExpansion
  - AES_set_encrypt_key
  - AES_set_decrypt_key
  - AES_encrypt
  - AES_decrypt
  - RawToBits
  - BitsToRaw
  - BitsXtime
  - BitsSub
  - BitsShiftRows
  - BitsMixColumns
  - BitsAddRoundKey
  - AES_ctr32_encrypt
  - AES_set_encrypt_key
  - AES_set_decrypt_key
  - AES_encrypt
  - AES_decrypt
  - AES_set_encrypt_key
  - AES_set_decrypt_key
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_core.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cipher[64]
        type: u8
      - name: state[8]
        type: u64
      - name: rd_key[AES_MAXNR + 1][8]
        type: u64
      item_type: struct
      name: '*bs'
      pos:
        line_end: 962
        line_start: 958
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_core.c
    typedefs: []
    union:
    - fields:
      - name: b[8]
        type: unsigned char
      - name: w[2]
        type: u32
      - name: d
        type: u64
      item_type: union
      name: uni
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/aes/aes_core.c
- function_names:
  - AES_cbc_encrypt
  source_file: /src/openssl-1.1.1g/crypto/aes/aes_cbc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TXT_DB_read
  - TXT_DB_get_by_index
  - TXT_DB_create_index
  - TXT_DB_write
  - TXT_DB_insert
  - TXT_DB_free
  source_file: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/txt_db/txt_db.c
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/siphash/siphash_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: total_inlen
        type: uint64_t
      - name: v0
        type: uint64_t
      - name: v1
        type: uint64_t
      - name: v2
        type: uint64_t
      - name: v3
        type: uint64_t
      - name: len
        type: unsigned int
      - name: hash_size
        type: int
      - name: crounds
        type: int
      - name: drounds
        type: int
      - name: leavings[SIPHASH_BLOCK_SIZE]
        type: unsigned char
      item_type: struct
      name: siphash_st
      pos:
        line_end: 22
        line_start: 11
        source_file: /src/openssl-1.1.1g/crypto/siphash/siphash_local.h
    typedefs: []
    union: []
- function_names:
  - ROTL
  - U32TO8_LE
  - U64TO8_LE
  - U8TO64_LE
  - SipHash_ctx_size
  - SipHash_hash_size
  - siphash_adjust_hash_size
  - SipHash_set_hash_size
  - SipHash_Init
  - SipHash_Update
  - SipHash_Final
  source_file: /src/openssl-1.1.1g/crypto/siphash/siphash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIPHASH_C_ROUNDS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/siphash/siphash.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SIPHASH_D_ROUNDS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/siphash/siphash.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SIPROUND
      pos:
        line_end: 71
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/siphash/siphash.c
      type_or_value: "do {                                                                       \\\n
        \       v0 += v1;                                                              \\\n
        \       v1 = ROTL(v1, 13);                                                     \\\n
        \       v1 ^= v0;                                                              \\\n
        \       v0 = ROTL(v0, 32);                                                     \\\n
        \       v2 += v3;                                                              \\\n
        \       v3 = ROTL(v3, 16);                                                     \\\n
        \       v3 ^= v2;                                                              \\\n
        \       v0 += v3;                                                              \\\n
        \       v3 = ROTL(v3, 21);                                                     \\\n
        \       v3 ^= v0;                                                              \\\n
        \       v2 += v1;                                                              \\\n
        \       v1 = ROTL(v1, 17);                                                     \\\n
        \       v1 ^= v2;                                                              \\\n
        \       v2 = ROTL(v2, 32);                                                     \\\n
        \   } while (0)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - siphash_size
  - siphash_key_free
  - siphash_pkey_ctrl
  - siphash_pkey_public_cmp
  - siphash_set_priv_key
  - siphash_get_priv_key
  source_file: /src/openssl-1.1.1g/crypto/siphash/siphash_ameth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pkey_siphash_init
  - pkey_siphash_cleanup
  - pkey_siphash_copy
  - pkey_siphash_keygen
  - int_update
  - siphash_signctx_init
  - siphash_signctx
  - pkey_siphash_ctrl
  - pkey_siphash_ctrl_str
  source_file: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ktmp
        type: ASN1_OCTET_STRING
      - name: ctx
        type: SIPHASH
      item_type: struct
      name: siphash_pkey_ctx_st
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/siphash/siphash_pmeth.c
    typedefs: []
    union: []
- function_names:
  - BUF_MEM_new_ex
  - BUF_MEM_new
  - BUF_MEM_free
  - sec_alloc_realloc
  - BUF_MEM_grow
  - BUF_MEM_grow_clean
  - BUF_reverse
  source_file: /src/openssl-1.1.1g/crypto/buffer/buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIMIT_BEFORE_EXPANSION
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/buffer/buffer.c
      type_or_value: '0x5ffffffc'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_BUF_strings
  source_file: /src/openssl-1.1.1g/crypto/buffer/buf_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HASH_MAKE_STRING
  - F1
  - F2
  - F3
  - F4
  - F5
  - RIP1
  - RIP2
  - RIP3
  - RIP4
  - RIP5
  source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ripemd160_block_data_order
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: ripemd160_block_asm_data_order
    - item_type: preproc_def
      name: HASH_LONG
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: RIPEMD160_LONG
    - item_type: preproc_def
      name: HASH_CTX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: RIPEMD160_CTX
    - item_type: preproc_def
      name: HASH_CBLOCK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: RIPEMD160_CBLOCK
    - item_type: preproc_def
      name: HASH_UPDATE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: RIPEMD160_Update
    - item_type: preproc_def
      name: HASH_TRANSFORM
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: RIPEMD160_Transform
    - item_type: preproc_def
      name: HASH_FINAL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: RIPEMD160_Final
    - item_type: preproc_def
      name: HASH_BLOCK_DATA_ORDER
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: ripemd160_block_data_order
    - item_type: preproc_def
      name: RIPEMD160_A
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: 0x67452301L
    - item_type: preproc_def
      name: RIPEMD160_B
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: 0xEFCDAB89L
    - item_type: preproc_def
      name: RIPEMD160_C
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: 0x98BADCFEL
    - item_type: preproc_def
      name: RIPEMD160_D
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: 0x10325476L
    - item_type: preproc_def
      name: RIPEMD160_E
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_local.h
      type_or_value: 0xC3D2E1F0L
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KL0
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0x00000000L
    - item_type: preproc_def
      name: KL1
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0x5A827999L
    - item_type: preproc_def
      name: KL2
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0x6ED9EBA1L
    - item_type: preproc_def
      name: KL3
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0x8F1BBCDCL
    - item_type: preproc_def
      name: KL4
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0xA953FD4EL
    - item_type: preproc_def
      name: KR0
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0x50A28BE6L
    - item_type: preproc_def
      name: KR1
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0x5C4DD124L
    - item_type: preproc_def
      name: KR2
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0x6D703EF3L
    - item_type: preproc_def
      name: KR3
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0x7A6D76E9L
    - item_type: preproc_def
      name: KR4
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: 0x00000000L
    - item_type: preproc_def
      name: WL00
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SL00
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WL01
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SL01
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WL02
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SL02
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WL03
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SL03
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WL04
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SL04
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WL05
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SL05
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WL06
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SL06
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WL07
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SL07
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WL08
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SL08
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WL09
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SL09
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WL10
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SL10
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WL11
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SL11
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WL12
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SL12
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WL13
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SL13
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WL14
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SL14
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WL15
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SL15
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WL16
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SL16
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WL17
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SL17
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WL18
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SL18
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WL19
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SL19
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WL20
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SL20
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WL21
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SL21
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WL22
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SL22
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WL23
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SL23
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WL24
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SL24
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WL25
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SL25
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WL26
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SL26
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WL27
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SL27
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WL28
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SL28
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WL29
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SL29
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WL30
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SL30
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WL31
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SL31
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WL32
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SL32
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WL33
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SL33
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WL34
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SL34
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WL35
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SL35
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WL36
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SL36
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WL37
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SL37
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WL38
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SL38
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WL39
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SL39
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WL40
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SL40
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WL41
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SL41
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WL42
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SL42
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WL43
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SL43
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WL44
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SL44
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WL45
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SL45
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WL46
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SL46
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WL47
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SL47
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WL48
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SL48
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WL49
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SL49
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WL50
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SL50
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WL51
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SL51
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WL52
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SL52
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WL53
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SL53
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WL54
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SL54
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WL55
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SL55
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WL56
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SL56
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WL57
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SL57
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WL58
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SL58
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WL59
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SL59
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WL60
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SL60
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WL61
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SL61
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WL62
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SL62
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WL63
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SL63
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WL64
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SL64
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WL65
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SL65
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WL66
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SL66
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WL67
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SL67
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WL68
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SL68
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WL69
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SL69
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WL70
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SL70
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WL71
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SL71
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WL72
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SL72
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WL73
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SL73
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WL74
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SL74
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WL75
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SL75
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WL76
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SL76
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WL77
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SL77
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WL78
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SL78
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WL79
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SL79
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WR00
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SR00
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WR01
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SR01
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WR02
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SR02
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WR03
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SR03
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WR04
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SR04
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WR05
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SR05
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WR06
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SR06
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WR07
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SR07
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WR08
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SR08
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WR09
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SR09
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WR10
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SR10
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WR11
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SR11
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WR12
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SR12
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WR13
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SR13
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WR14
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SR14
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WR15
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SR15
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WR16
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SR16
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WR17
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SR17
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WR18
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SR18
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WR19
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SR19
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WR20
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SR20
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WR21
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SR21
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WR22
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SR22
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WR23
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SR23
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WR24
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SR24
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WR25
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SR25
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WR26
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SR26
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WR27
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SR27
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WR28
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SR28
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WR29
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SR29
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WR30
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SR30
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WR31
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SR31
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WR32
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SR32
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WR33
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SR33
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WR34
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SR34
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WR35
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SR35
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WR36
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SR36
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WR37
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SR37
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WR38
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SR38
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WR39
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SR39
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WR40
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SR40
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WR41
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SR41
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WR42
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SR42
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WR43
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SR43
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WR44
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SR44
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WR45
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SR45
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WR46
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SR46
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: WR47
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SR47
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WR48
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SR48
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WR49
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SR49
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WR50
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SR50
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WR51
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SR51
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WR52
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SR52
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WR53
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SR53
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WR54
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SR54
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WR55
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SR55
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WR56
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SR56
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WR57
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SR57
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WR58
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SR58
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WR59
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SR59
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WR60
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SR60
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WR61
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SR61
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WR62
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SR62
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WR63
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SR63
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WR64
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SR64
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WR65
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SR65
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WR66
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SR66
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WR67
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SR67
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: WR68
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SR68
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WR69
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SR69
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WR70
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SR70
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: WR71
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SR71
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WR72
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SR72
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WR73
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SR73
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WR74
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SR74
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '6'
    - item_type: preproc_def
      name: WR75
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SR75
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WR76
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SR76
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '15'
    - item_type: preproc_def
      name: WR77
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SR77
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '13'
    - item_type: preproc_def
      name: WR78
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SR78
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: WR79
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SR79
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmdconst.h
      type_or_value: '11'
    structs: []
    typedefs: []
    union: []
- function_names:
  - RIPEMD160_Init
  - ripemd160_block_data_order
  - X
  - X
  source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ripemd160_block
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_dgst.c
      type_or_value: ripemd160_block_x86
    structs: []
    typedefs: []
    union: []
- function_names:
  - RIPEMD160
  source_file: /src/openssl-1.1.1g/crypto/ripemd/rmd_one.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rotl
  - load_u32_be
  - store_u32_be
  - SM4_T_slow
  - SM4_T
  - SM4_set_key
  - SM4_RNDS
  - SM4_encrypt
  - SM4_decrypt
  source_file: /src/openssl-1.1.1g/crypto/sm4/sm4.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - make_kn
  - CMAC_CTX_new
  - CMAC_CTX_cleanup
  - CMAC_CTX_get0_cipher_ctx
  - CMAC_CTX_free
  - CMAC_CTX_copy
  - CMAC_Init
  - CMAC_Update
  - CMAC_Final
  - CMAC_resume
  source_file: /src/openssl-1.1.1g/crypto/cmac/cmac.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cctx'
        type: EVP_CIPHER_CTX
      - name: k1[EVP_MAX_BLOCK_LENGTH]
        type: unsigned char
      - name: k2[EVP_MAX_BLOCK_LENGTH]
        type: unsigned char
      - name: tbl[EVP_MAX_BLOCK_LENGTH]
        type: unsigned char
      - name: last_block[EVP_MAX_BLOCK_LENGTH]
        type: unsigned char
      - name: nlast_block
        type: int
      item_type: struct
      name: CMAC_CTX_st
      pos:
        line_end: 28
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/cmac/cmac.c
    typedefs: []
    union: []
- function_names:
  - pkey_cmac_init
  - pkey_cmac_copy
  - pkey_cmac_cleanup
  - pkey_cmac_keygen
  - int_update
  - cmac_signctx_init
  - cmac_signctx
  - pkey_cmac_ctrl
  - pkey_cmac_ctrl_str
  source_file: /src/openssl-1.1.1g/crypto/cmac/cm_pmeth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmac_size
  - cmac_key_free
  source_file: /src/openssl-1.1.1g/crypto/cmac/cm_ameth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS8_encrypt
  - PKCS8_set0_pbe
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8e.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_asn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - copy_bag_attr
  - PKCS12_create
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_crt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_PKCS12_strings
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/pk12err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*dinfo'
        type: X509_SIG
      - name: '*salt'
        type: ASN1_OCTET_STRING
      - name: '*iter'
        type: ASN1_INTEGER
      item_type: struct
      name: PKCS12_MAC_DATA_st
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_local.h
    - fields:
      - name: '*version'
        type: ASN1_INTEGER
      - name: '*mac'
        type: PKCS12_MAC_DATA
      - name: '*authsafes'
        type: PKCS7
      item_type: struct
      name: PKCS12_st
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_local.h
    - fields:
      - name: '*type'
        type: ASN1_OBJECT
      - name: value
        type: "union {\n        struct pkcs12_bag_st *bag; /* secret, crl and certbag
          */\n        struct pkcs8_priv_key_info_st *keybag; /* keybag */\n        X509_SIG
          *shkeybag;     /* shrouded key bag */\n        STACK_OF(PKCS12_SAFEBAG)
          *safes;\n        ASN1_TYPE *other;\n    }"
      - name: '*attrib'
        type: STACK_OF
      item_type: struct
      name: PKCS12_SAFEBAG_st
      pos:
        line_end: 31
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_local.h
    - fields:
      - name: '*type'
        type: ASN1_OBJECT
      - name: value
        type: "union {\n        ASN1_OCTET_STRING *x509cert;\n        ASN1_OCTET_STRING
          *x509crl;\n        ASN1_OCTET_STRING *octet;\n        ASN1_IA5STRING *sdsicert;\n
          \       ASN1_TYPE *other;       /* Secret or other bag */\n    }"
      item_type: struct
      name: pkcs12_bag_st
      pos:
        line_end: 42
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_local.h
    typedefs: []
    union: []
- function_names:
  - PKCS12_newpass
  - newpass_p12
  - newpass_bag
  - alg_get
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_npas.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS12_pbe_crypt
  - PKCS12_item_decrypt_d2i
  - PKCS12_item_i2d_encrypt
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_decr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS12_init
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS12_item_pack_safebag
  - PKCS12_pack_p7encdata
  - PKCS12_decrypt_skey
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_add.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS12_PBE_add
  - PKCS12_PBE_keyivgen
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_crpt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS12_parse
  - parse_pk12
  - parse_bags
  - parse_bag
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_kiss.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS12_mac_present
  - PKCS12_get0_mac
  - pkcs12_gen_gost_mac_key
  - pkcs12_gen_mac
  - PKCS12_gen_mac
  - PKCS12_verify_mac
  - PKCS12_set_mac
  - PKCS12_setup_mac
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TK26_MAC_KEY_LEN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_mutl.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS8_decrypt
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_p8d.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPENSSL_asc2uni
  - OPENSSL_uni2asc
  - OPENSSL_utf82uni
  - bmp_to_utf8
  - OPENSSL_uni2utf8
  - i2d_PKCS12_bio
  - i2d_PKCS12_fp
  - d2i_PKCS12_bio
  - d2i_PKCS12_fp
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_utl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - min
  - PKCS12_key_gen_asc
  - PKCS12_key_gen_utf8
  - PKCS12_key_gen_uni
  - h__dump
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS12_get_attr
  - PKCS12_SAFEBAG_get0_attr
  - PKCS8_get_attr
  - PKCS12_SAFEBAG_get0_p8inf
  - PKCS12_SAFEBAG_get0_pkcs8
  - PKCS12_SAFEBAG_get0_safes
  - PKCS12_SAFEBAG_get0_type
  - PKCS12_SAFEBAG_get_nid
  - PKCS12_SAFEBAG_get_bag_nid
  - PKCS12_SAFEBAG_get1_cert
  - PKCS12_SAFEBAG_get1_crl
  - PKCS12_SAFEBAG_create_cert
  - PKCS12_SAFEBAG_create_crl
  - PKCS12_SAFEBAG_create0_p8inf
  - PKCS12_SAFEBAG_create0_pkcs8
  - PKCS12_SAFEBAG_create_pkcs8_encrypt
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_sbag.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS12_add_localkeyid
  - PKCS8_add_keyusage
  - PKCS12_add_friendlyname_asc
  - PKCS12_add_friendlyname_utf8
  - PKCS12_add_friendlyname_uni
  - PKCS12_add_CSPName_asc
  - PKCS12_get_attr_gen
  - PKCS12_get_friendlyname
  - PKCS12_SAFEBAG_get0_attrs
  source_file: /src/openssl-1.1.1g/crypto/pkcs12/p12_attr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/async/async_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dispatcher
        type: async_fibre
      - name: '*currjob'
        type: ASYNC_JOB
      - name: blocked
        type: unsigned int
      item_type: struct
      name: async_ctx_st
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/async/async_local.h
    - fields:
      - name: fibrectx
        type: async_fibre
      - name: (*func) (void *)
        type: int
      - name: '*funcargs'
        type: void
      - name: ret
        type: int
      - name: status
        type: int
      - name: '*waitctx'
        type: ASYNC_WAIT_CTX
      item_type: struct
      name: async_job_st
      pos:
        line_end: 45
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/async/async_local.h
    - fields:
      - name: '*key'
        type: void
      - name: fd
        type: OSSL_ASYNC_FD
      - name: '*custom_data'
        type: void
      - name: (*cleanup)(ASYNC_WAIT_CTX *, const void *, OSSL_ASYNC_FD, void *)
        type: void
      - name: add
        type: int
      - name: del
        type: int
      - name: '*next'
        type: struct fd_lookup_st
      item_type: struct
      name: fd_lookup_st
      pos:
        line_end: 55
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/async/async_local.h
    - fields:
      - name: '*fds'
        type: struct fd_lookup_st
      - name: numadd
        type: size_t
      - name: numdel
        type: size_t
      item_type: struct
      name: async_wait_ctx_st
      pos:
        line_end: 61
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/async/async_local.h
    - fields:
      - name: '*jobs'
        type: STACK_OF
      - name: curr_size
        type: size_t
      - name: max_size
        type: size_t
      item_type: struct
      name: async_pool_st
      pos:
        line_end: 69
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/async/async_local.h
    typedefs:
    - item_type: typedef
      name: async_ctx
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/async/async_local.h
      type: async_ctx_st
    - item_type: typedef
      name: async_pool
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/async/async_local.h
      type: async_pool_st
    union: []
- function_names:
  - async_ctx_new
  - async_get_ctx
  - async_ctx_free
  - async_job_new
  - async_job_free
  - async_get_pool_job
  - async_release_job
  - async_start_func
  - ASYNC_start_job
  - ASYNC_pause_job
  - async_empty_pool
  - async_init
  - async_deinit
  - ASYNC_init_thread
  - async_delete_thread_state
  - ASYNC_cleanup_thread
  - ASYNC_get_current_job
  - ASYNC_get_wait_ctx
  - ASYNC_block_pause
  - ASYNC_unblock_pause
  source_file: /src/openssl-1.1.1g/crypto/async/async.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASYNC_JOB_RUNNING
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/async/async.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ASYNC_JOB_PAUSING
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/async/async.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ASYNC_JOB_PAUSED
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/async/async.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ASYNC_JOB_STOPPING
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/async/async.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASYNC_WAIT_CTX_new
  - ASYNC_WAIT_CTX_free
  - ASYNC_WAIT_CTX_set_wait_fd
  - ASYNC_WAIT_CTX_get_fd
  - ASYNC_WAIT_CTX_get_all_fds
  - ASYNC_WAIT_CTX_get_changed_fds
  - ASYNC_WAIT_CTX_clear_fd
  - async_wait_ctx_reset_counts
  source_file: /src/openssl-1.1.1g/crypto/async/async_wait.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_ASYNC_strings
  source_file: /src/openssl-1.1.1g/crypto/async/async_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASYNC_is_capable
  - async_local_cleanup
  source_file: /src/openssl-1.1.1g/crypto/async/arch/async_null.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - async_fibre_swapcontext
  - async_fibre_makecontext
  - async_fibre_free
  source_file: /src/openssl-1.1.1g/crypto/async/arch/async_win.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fibre
        type: LPVOID
      - name: converted
        type: int
      item_type: struct
      name: async_fibre_st
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/async/arch/async_win.h
    typedefs: []
    union: []
- function_names:
  - async_fibre_swapcontext
  - async_fibre_makecontext
  source_file: /src/openssl-1.1.1g/crypto/async/arch/async_null.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dummy
        type: int
      item_type: struct
      name: async_fibre_st
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/async/arch/async_null.h
    typedefs: []
    union: []
- function_names:
  - ASYNC_is_capable
  - async_local_cleanup
  - async_fibre_init_dispatcher
  - async_start_func_win
  source_file: /src/openssl-1.1.1g/crypto/async/arch/async_win.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASYNC_is_capable
  - async_local_cleanup
  - async_fibre_makecontext
  - async_fibre_free
  source_file: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STACKSIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/async/arch/async_posix.c
      type_or_value: '32768'
    structs: []
    typedefs: []
    union: []
- function_names:
  - async_fibre_swapcontext
  source_file: /src/openssl-1.1.1g/crypto/async/arch/async_posix.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fibre
        type: ucontext_t
      - name: env
        type: jmp_buf
      - name: env_init
        type: int
      item_type: struct
      name: async_fibre_st
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/async/arch/async_posix.h
    typedefs: []
    union: []
- function_names:
  - WHIRLPOOL_Init
  - WHIRLPOOL_Update
  - WHIRLPOOL_BitUpdate
  - WHIRLPOOL_Final
  - WHIRLPOOL
  source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_dgst.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GO_FOR_MMX
  - ROTATE
  - ROTATE
  - ROTATE
  - ROTATE
  - ROTATE
  - ROTATE
  - ROTATE
  - LL
  - C0
  - C1
  - C2
  - C3
  - C4
  - C5
  - C6
  - C7
  - LL
  - C0
  - C1
  - C2
  - C3
  - C4
  - C5
  - C6
  - C7
  - LL
  - C0
  - C1
  - C2
  - C3
  - C4
  - C5
  - C6
  - C7
  - whirlpool_block
  source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROUNDS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
      type_or_value: '10'
    - item_type: preproc_def
      name: N
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
      type_or_value: '1'
    - item_type: preproc_def
      name: N
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
      type_or_value: '8'
    - item_type: preproc_def
      name: N
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
      type_or_value: '2'
    structs: []
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
      type: unsigned char
    - item_type: typedef
      name: u64
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
      type: unsigned __int64
    - item_type: typedef
      name: u64
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
      type: unsigned long
    - item_type: typedef
      name: u64
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
      type: unsigned long long
    union:
    - fields:
      - name: c[(256 * N + ROUNDS) * sizeof(u64)]
        type: u8
      - name: q[(256 * N + ROUNDS)]
        type: u64
      item_type: union
      name: "Cx = {\n        {\n            /* Note endian-neutral representation:-)
        */\n            LL(0x18, 0x18, 0x60, 0x18, 0xc0, 0x78, 0x30, 0xd8),\n            LL(0x23,
        0x23, 0x8c, 0x23, 0x05, 0xaf, 0x46, 0x26),\n            LL(0xc6, 0xc6, 0x3f,
        0xc6, 0x7e, 0xf9, 0x91, 0xb8),\n            LL(0xe8, 0xe8, 0x87, 0xe8, 0x13,
        0x6f, 0xcd, 0xfb),\n            LL(0x87, 0x87, 0x26, 0x87, 0x4c, 0xa1, 0x13,
        0xcb),\n            LL(0xb8, 0xb8, 0xda, 0xb8, 0xa9, 0x62, 0x6d, 0x11),\n
        \           LL(0x01, 0x01, 0x04, 0x01, 0x08, 0x05, 0x02, 0x09),\n            LL(0x4f,
        0x4f, 0x21, 0x4f, 0x42, 0x6e, 0x9e, 0x0d),\n            LL(0x36, 0x36, 0xd8,
        0x36, 0xad, 0xee, 0x6c, 0x9b),\n            LL(0xa6, 0xa6, 0xa2, 0xa6, 0x59,
        0x04, 0x51, 0xff),\n            LL(0xd2, 0xd2, 0x6f, 0xd2, 0xde, 0xbd, 0xb9,
        0x0c),\n            LL(0xf5, 0xf5, 0xf3, 0xf5, 0xfb, 0x06, 0xf7, 0x0e),\n
        \           LL(0x79, 0x79, 0xf9, 0x79, 0xef, 0x80, 0xf2, 0x96),\n            LL(0x6f,
        0x6f, 0xa1, 0x6f, 0x5f, 0xce, 0xde, 0x30),\n            LL(0x91, 0x91, 0x7e,
        0x91, 0xfc, 0xef, 0x3f, 0x6d),\n            LL(0x52, 0x52, 0x55, 0x52, 0xaa,
        0x07, 0xa4, 0xf8),\n            LL(0x60, 0x60, 0x9d, 0x60, 0x27, 0xfd, 0xc0,
        0x47),\n            LL(0xbc, 0xbc, 0xca, 0xbc, 0x89, 0x76, 0x65, 0x35),\n
        \           LL(0x9b, 0x9b, 0x56, 0x9b, 0xac, 0xcd, 0x2b, 0x37),\n            LL(0x8e,
        0x8e, 0x02, 0x8e, 0x04, 0x8c, 0x01, 0x8a),\n            LL(0xa3, 0xa3, 0xb6,
        0xa3, 0x71, 0x15, 0x5b, 0xd2),\n            LL(0x0c, 0x0c, 0x30, 0x0c, 0x60,
        0x3c, 0x18, 0x6c),\n            LL(0x7b, 0x7b, 0xf1, 0x7b, 0xff, 0x8a, 0xf6,
        0x84),\n            LL(0x35, 0x35, 0xd4, 0x35, 0xb5, 0xe1, 0x6a, 0x80),\n
        \           LL(0x1d, 0x1d, 0x74, 0x1d, 0xe8, 0x69, 0x3a, 0xf5),\n            LL(0xe0,
        0xe0, 0xa7, 0xe0, 0x53, 0x47, 0xdd, 0xb3),\n            LL(0xd7, 0xd7, 0x7b,
        0xd7, 0xf6, 0xac, 0xb3, 0x21),\n            LL(0xc2, 0xc2, 0x2f, 0xc2, 0x5e,
        0xed, 0x99, 0x9c),\n            LL(0x2e, 0x2e, 0xb8, 0x2e, 0x6d, 0x96, 0x5c,
        0x43),\n            LL(0x4b, 0x4b, 0x31, 0x4b, 0x62, 0x7a, 0x96, 0x29),\n
        \           LL(0xfe, 0xfe, 0xdf, 0xfe, 0xa3, 0x21, 0xe1, 0x5d),\n            LL(0x57,
        0x57, 0x41, 0x57, 0x82, 0x16, 0xae, 0xd5),\n            LL(0x15, 0x15, 0x54,
        0x15, 0xa8, 0x41, 0x2a, 0xbd),\n            LL(0x77, 0x77, 0xc1, 0x77, 0x9f,
        0xb6, 0xee, 0xe8),\n            LL(0x37, 0x37, 0xdc, 0x37, 0xa5, 0xeb, 0x6e,
        0x92),\n            LL(0xe5, 0xe5, 0xb3, 0xe5, 0x7b, 0x56, 0xd7, 0x9e),\n
        \           LL(0x9f, 0x9f, 0x46, 0x9f, 0x8c, 0xd9, 0x23, 0x13),\n            LL(0xf0,
        0xf0, 0xe7, 0xf0, 0xd3, 0x17, 0xfd, 0x23),\n            LL(0x4a, 0x4a, 0x35,
        0x4a, 0x6a, 0x7f, 0x94, 0x20),\n            LL(0xda, 0xda, 0x4f, 0xda, 0x9e,
        0x95, 0xa9, 0x44),\n            LL(0x58, 0x58, 0x7d, 0x58, 0xfa, 0x25, 0xb0,
        0xa2),\n            LL(0xc9, 0xc9, 0x03, 0xc9, 0x06, 0xca, 0x8f, 0xcf),\n
        \           LL(0x29, 0x29, 0xa4, 0x29, 0x55, 0x8d, 0x52, 0x7c),\n            LL(0x0a,
        0x0a, 0x28, 0x0a, 0x50, 0x22, 0x14, 0x5a),\n            LL(0xb1, 0xb1, 0xfe,
        0xb1, 0xe1, 0x4f, 0x7f, 0x50),\n            LL(0xa0, 0xa0, 0xba, 0xa0, 0x69,
        0x1a, 0x5d, 0xc9),\n            LL(0x6b, 0x6b, 0xb1, 0x6b, 0x7f, 0xda, 0xd6,
        0x14),\n            LL(0x85, 0x85, 0x2e, 0x85, 0x5c, 0xab, 0x17, 0xd9),\n
        \           LL(0xbd, 0xbd, 0xce, 0xbd, 0x81, 0x73, 0x67, 0x3c),\n            LL(0x5d,
        0x5d, 0x69, 0x5d, 0xd2, 0x34, 0xba, 0x8f),\n            LL(0x10, 0x10, 0x40,
        0x10, 0x80, 0x50, 0x20, 0x90),\n            LL(0xf4, 0xf4, 0xf7, 0xf4, 0xf3,
        0x03, 0xf5, 0x07),\n            LL(0xcb, 0xcb, 0x0b, 0xcb, 0x16, 0xc0, 0x8b,
        0xdd),\n            LL(0x3e, 0x3e, 0xf8, 0x3e, 0xed, 0xc6, 0x7c, 0xd3),\n
        \           LL(0x05, 0x05, 0x14, 0x05, 0x28, 0x11, 0x0a, 0x2d),\n            LL(0x67,
        0x67, 0x81, 0x67, 0x1f, 0xe6, 0xce, 0x78),\n            LL(0xe4, 0xe4, 0xb7,
        0xe4, 0x73, 0x53, 0xd5, 0x97),\n            LL(0x27, 0x27, 0x9c, 0x27, 0x25,
        0xbb, 0x4e, 0x02),\n            LL(0x41, 0x41, 0x19, 0x41, 0x32, 0x58, 0x82,
        0x73),\n            LL(0x8b, 0x8b, 0x16, 0x8b, 0x2c, 0x9d, 0x0b, 0xa7),\n
        \           LL(0xa7, 0xa7, 0xa6, 0xa7, 0x51, 0x01, 0x53, 0xf6),\n            LL(0x7d,
        0x7d, 0xe9, 0x7d, 0xcf, 0x94, 0xfa, 0xb2),\n            LL(0x95, 0x95, 0x6e,
        0x95, 0xdc, 0xfb, 0x37, 0x49),\n            LL(0xd8, 0xd8, 0x47, 0xd8, 0x8e,
        0x9f, 0xad, 0x56),\n            LL(0xfb, 0xfb, 0xcb, 0xfb, 0x8b, 0x30, 0xeb,
        0x70),\n            LL(0xee, 0xee, 0x9f, 0xee, 0x23, 0x71, 0xc1, 0xcd),\n
        \           LL(0x7c, 0x7c, 0xed, 0x7c, 0xc7, 0x91, 0xf8, 0xbb),\n            LL(0x66,
        0x66, 0x85, 0x66, 0x17, 0xe3, 0xcc, 0x71),\n            LL(0xdd, 0xdd, 0x53,
        0xdd, 0xa6, 0x8e, 0xa7, 0x7b),\n            LL(0x17, 0x17, 0x5c, 0x17, 0xb8,
        0x4b, 0x2e, 0xaf),\n            LL(0x47, 0x47, 0x01, 0x47, 0x02, 0x46, 0x8e,
        0x45),\n            LL(0x9e, 0x9e, 0x42, 0x9e, 0x84, 0xdc, 0x21, 0x1a),\n
        \           LL(0xca, 0xca, 0x0f, 0xca, 0x1e, 0xc5, 0x89, 0xd4),\n            LL(0x2d,
        0x2d, 0xb4, 0x2d, 0x75, 0x99, 0x5a, 0x58),\n            LL(0xbf, 0xbf, 0xc6,
        0xbf, 0x91, 0x79, 0x63, 0x2e),\n            LL(0x07, 0x07, 0x1c, 0x07, 0x38,
        0x1b, 0x0e, 0x3f),\n            LL(0xad, 0xad, 0x8e, 0xad, 0x01, 0x23, 0x47,
        0xac),\n            LL(0x5a, 0x5a, 0x75, 0x5a, 0xea, 0x2f, 0xb4, 0xb0),\n
        \           LL(0x83, 0x83, 0x36, 0x83, 0x6c, 0xb5, 0x1b, 0xef),\n            LL(0x33,
        0x33, 0xcc, 0x33, 0x85, 0xff, 0x66, 0xb6),\n            LL(0x63, 0x63, 0x91,
        0x63, 0x3f, 0xf2, 0xc6, 0x5c),\n            LL(0x02, 0x02, 0x08, 0x02, 0x10,
        0x0a, 0x04, 0x12),\n            LL(0xaa, 0xaa, 0x92, 0xaa, 0x39, 0x38, 0x49,
        0x93),\n            LL(0x71, 0x71, 0xd9, 0x71, 0xaf, 0xa8, 0xe2, 0xde),\n
        \           LL(0xc8, 0xc8, 0x07, 0xc8, 0x0e, 0xcf, 0x8d, 0xc6),\n            LL(0x19,
        0x19, 0x64, 0x19, 0xc8, 0x7d, 0x32, 0xd1),\n            LL(0x49, 0x49, 0x39,
        0x49, 0x72, 0x70, 0x92, 0x3b),\n            LL(0xd9, 0xd9, 0x43, 0xd9, 0x86,
        0x9a, 0xaf, 0x5f),\n            LL(0xf2, 0xf2, 0xef, 0xf2, 0xc3, 0x1d, 0xf9,
        0x31),\n            LL(0xe3, 0xe3, 0xab, 0xe3, 0x4b, 0x48, 0xdb, 0xa8),\n
        \           LL(0x5b, 0x5b, 0x71, 0x5b, 0xe2, 0x2a, 0xb6, 0xb9),\n            LL(0x88,
        0x88, 0x1a, 0x88, 0x34, 0x92, 0x0d, 0xbc),\n            LL(0x9a, 0x9a, 0x52,
        0x9a, 0xa4, 0xc8, 0x29, 0x3e),\n            LL(0x26, 0x26, 0x98, 0x26, 0x2d,
        0xbe, 0x4c, 0x0b),\n            LL(0x32, 0x32, 0xc8, 0x32, 0x8d, 0xfa, 0x64,
        0xbf),\n            LL(0xb0, 0xb0, 0xfa, 0xb0, 0xe9, 0x4a, 0x7d, 0x59),\n
        \           LL(0xe9, 0xe9, 0x83, 0xe9, 0x1b, 0x6a, 0xcf, 0xf2),\n            LL(0x0f,
        0x0f, 0x3c, 0x0f, 0x78, 0x33, 0x1e, 0x77),\n            LL(0xd5, 0xd5, 0x73,
        0xd5, 0xe6, 0xa6, 0xb7, 0x33),\n            LL(0x80, 0x80, 0x3a, 0x80, 0x74,
        0xba, 0x1d, 0xf4),\n            LL(0xbe, 0xbe, 0xc2, 0xbe, 0x99, 0x7c, 0x61,
        0x27),\n            LL(0xcd, 0xcd, 0x13, 0xcd, 0x26, 0xde, 0x87, 0xeb),\n
        \           LL(0x34, 0x34, 0xd0, 0x34, 0xbd, 0xe4, 0x68, 0x89),\n            LL(0x48,
        0x48, 0x3d, 0x48, 0x7a, 0x75, 0x90, 0x32),\n            LL(0xff, 0xff, 0xdb,
        0xff, 0xab, 0x24, 0xe3, 0x54),\n            LL(0x7a, 0x7a, 0xf5, 0x7a, 0xf7,
        0x8f, 0xf4, 0x8d),\n            LL(0x90, 0x90, 0x7a, 0x90, 0xf4, 0xea, 0x3d,
        0x64),\n            LL(0x5f, 0x5f, 0x61, 0x5f, 0xc2, 0x3e, 0xbe, 0x9d),\n
        \           LL(0x20, 0x20, 0x80, 0x20, 0x1d, 0xa0, 0x40, 0x3d),\n            LL(0x68,
        0x68, 0xbd, 0x68, 0x67, 0xd5, 0xd0, 0x0f),\n            LL(0x1a, 0x1a, 0x68,
        0x1a, 0xd0, 0x72, 0x34, 0xca),\n            LL(0xae, 0xae, 0x82, 0xae, 0x19,
        0x2c, 0x41, 0xb7),\n            LL(0xb4, 0xb4, 0xea, 0xb4, 0xc9, 0x5e, 0x75,
        0x7d),\n            LL(0x54, 0x54, 0x4d, 0x54, 0x9a, 0x19, 0xa8, 0xce),\n
        \           LL(0x93, 0x93, 0x76, 0x93, 0xec, 0xe5, 0x3b, 0x7f),\n            LL(0x22,
        0x22, 0x88, 0x22, 0x0d, 0xaa, 0x44, 0x2f),\n            LL(0x64, 0x64, 0x8d,
        0x64, 0x07, 0xe9, 0xc8, 0x63),\n            LL(0xf1, 0xf1, 0xe3, 0xf1, 0xdb,
        0x12, 0xff, 0x2a),\n            LL(0x73, 0x73, 0xd1, 0x73, 0xbf, 0xa2, 0xe6,
        0xcc),\n            LL(0x12, 0x12, 0x48, 0x12, 0x90, 0x5a, 0x24, 0x82),\n
        \           LL(0x40, 0x40, 0x1d, 0x40, 0x3a, 0x5d, 0x80, 0x7a),\n            LL(0x08,
        0x08, 0x20, 0x08, 0x40, 0x28, 0x10, 0x48),\n            LL(0xc3, 0xc3, 0x2b,
        0xc3, 0x56, 0xe8, 0x9b, 0x95),\n            LL(0xec, 0xec, 0x97, 0xec, 0x33,
        0x7b, 0xc5, 0xdf),\n            LL(0xdb, 0xdb, 0x4b, 0xdb, 0x96, 0x90, 0xab,
        0x4d),\n            LL(0xa1, 0xa1, 0xbe, 0xa1, 0x61, 0x1f, 0x5f, 0xc0),\n
        \           LL(0x8d, 0x8d, 0x0e, 0x8d, 0x1c, 0x83, 0x07, 0x91),\n            LL(0x3d,
        0x3d, 0xf4, 0x3d, 0xf5, 0xc9, 0x7a, 0xc8),\n            LL(0x97, 0x97, 0x66,
        0x97, 0xcc, 0xf1, 0x33, 0x5b),\n            LL(0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00),\n            LL(0xcf, 0xcf, 0x1b, 0xcf, 0x36, 0xd4, 0x83,
        0xf9),\n            LL(0x2b, 0x2b, 0xac, 0x2b, 0x45, 0x87, 0x56, 0x6e),\n
        \           LL(0x76, 0x76, 0xc5, 0x76, 0x97, 0xb3, 0xec, 0xe1),\n            LL(0x82,
        0x82, 0x32, 0x82, 0x64, 0xb0, 0x19, 0xe6),\n            LL(0xd6, 0xd6, 0x7f,
        0xd6, 0xfe, 0xa9, 0xb1, 0x28),\n            LL(0x1b, 0x1b, 0x6c, 0x1b, 0xd8,
        0x77, 0x36, 0xc3),\n            LL(0xb5, 0xb5, 0xee, 0xb5, 0xc1, 0x5b, 0x77,
        0x74),\n            LL(0xaf, 0xaf, 0x86, 0xaf, 0x11, 0x29, 0x43, 0xbe),\n
        \           LL(0x6a, 0x6a, 0xb5, 0x6a, 0x77, 0xdf, 0xd4, 0x1d),\n            LL(0x50,
        0x50, 0x5d, 0x50, 0xba, 0x0d, 0xa0, 0xea),\n            LL(0x45, 0x45, 0x09,
        0x45, 0x12, 0x4c, 0x8a, 0x57),\n            LL(0xf3, 0xf3, 0xeb, 0xf3, 0xcb,
        0x18, 0xfb, 0x38),\n            LL(0x30, 0x30, 0xc0, 0x30, 0x9d, 0xf0, 0x60,
        0xad),\n            LL(0xef, 0xef, 0x9b, 0xef, 0x2b, 0x74, 0xc3, 0xc4),\n
        \           LL(0x3f, 0x3f, 0xfc, 0x3f, 0xe5, 0xc3, 0x7e, 0xda),\n            LL(0x55,
        0x55, 0x49, 0x55, 0x92, 0x1c, 0xaa, 0xc7),\n            LL(0xa2, 0xa2, 0xb2,
        0xa2, 0x79, 0x10, 0x59, 0xdb),\n            LL(0xea, 0xea, 0x8f, 0xea, 0x03,
        0x65, 0xc9, 0xe9),\n            LL(0x65, 0x65, 0x89, 0x65, 0x0f, 0xec, 0xca,
        0x6a),\n            LL(0xba, 0xba, 0xd2, 0xba, 0xb9, 0x68, 0x69, 0x03),\n
        \           LL(0x2f, 0x2f, 0xbc, 0x2f, 0x65, 0x93, 0x5e, 0x4a),\n            LL(0xc0,
        0xc0, 0x27, 0xc0, 0x4e, 0xe7, 0x9d, 0x8e),\n            LL(0xde, 0xde, 0x5f,
        0xde, 0xbe, 0x81, 0xa1, 0x60),\n            LL(0x1c, 0x1c, 0x70, 0x1c, 0xe0,
        0x6c, 0x38, 0xfc),\n            LL(0xfd, 0xfd, 0xd3, 0xfd, 0xbb, 0x2e, 0xe7,
        0x46),\n            LL(0x4d, 0x4d, 0x29, 0x4d, 0x52, 0x64, 0x9a, 0x1f),\n
        \           LL(0x92, 0x92, 0x72, 0x92, 0xe4, 0xe0, 0x39, 0x76),\n            LL(0x75,
        0x75, 0xc9, 0x75, 0x8f, 0xbc, 0xea, 0xfa),\n            LL(0x06, 0x06, 0x18,
        0x06, 0x30, 0x1e, 0x0c, 0x36),\n            LL(0x8a, 0x8a, 0x12, 0x8a, 0x24,
        0x98, 0x09, 0xae),\n            LL(0xb2, 0xb2, 0xf2, 0xb2, 0xf9, 0x40, 0x79,
        0x4b),\n            LL(0xe6, 0xe6, 0xbf, 0xe6, 0x63, 0x59, 0xd1, 0x85),\n
        \           LL(0x0e, 0x0e, 0x38, 0x0e, 0x70, 0x36, 0x1c, 0x7e),\n            LL(0x1f,
        0x1f, 0x7c, 0x1f, 0xf8, 0x63, 0x3e, 0xe7),\n            LL(0x62, 0x62, 0x95,
        0x62, 0x37, 0xf7, 0xc4, 0x55),\n            LL(0xd4, 0xd4, 0x77, 0xd4, 0xee,
        0xa3, 0xb5, 0x3a),\n            LL(0xa8, 0xa8, 0x9a, 0xa8, 0x29, 0x32, 0x4d,
        0x81),\n            LL(0x96, 0x96, 0x62, 0x96, 0xc4, 0xf4, 0x31, 0x52),\n
        \           LL(0xf9, 0xf9, 0xc3, 0xf9, 0x9b, 0x3a, 0xef, 0x62),\n            LL(0xc5,
        0xc5, 0x33, 0xc5, 0x66, 0xf6, 0x97, 0xa3),\n            LL(0x25, 0x25, 0x94,
        0x25, 0x35, 0xb1, 0x4a, 0x10),\n            LL(0x59, 0x59, 0x79, 0x59, 0xf2,
        0x20, 0xb2, 0xab),\n            LL(0x84, 0x84, 0x2a, 0x84, 0x54, 0xae, 0x15,
        0xd0),\n            LL(0x72, 0x72, 0xd5, 0x72, 0xb7, 0xa7, 0xe4, 0xc5),\n
        \           LL(0x39, 0x39, 0xe4, 0x39, 0xd5, 0xdd, 0x72, 0xec),\n            LL(0x4c,
        0x4c, 0x2d, 0x4c, 0x5a, 0x61, 0x98, 0x16),\n            LL(0x5e, 0x5e, 0x65,
        0x5e, 0xca, 0x3b, 0xbc, 0x94),\n            LL(0x78, 0x78, 0xfd, 0x78, 0xe7,
        0x85, 0xf0, 0x9f),\n            LL(0x38, 0x38, 0xe0, 0x38, 0xdd, 0xd8, 0x70,
        0xe5),\n            LL(0x8c, 0x8c, 0x0a, 0x8c, 0x14, 0x86, 0x05, 0x98),\n
        \           LL(0xd1, 0xd1, 0x63, 0xd1, 0xc6, 0xb2, 0xbf, 0x17),\n            LL(0xa5,
        0xa5, 0xae, 0xa5, 0x41, 0x0b, 0x57, 0xe4),\n            LL(0xe2, 0xe2, 0xaf,
        0xe2, 0x43, 0x4d, 0xd9, 0xa1),\n            LL(0x61, 0x61, 0x99, 0x61, 0x2f,
        0xf8, 0xc2, 0x4e),\n            LL(0xb3, 0xb3, 0xf6, 0xb3, 0xf1, 0x45, 0x7b,
        0x42),\n            LL(0x21, 0x21, 0x84, 0x21, 0x15, 0xa5, 0x42, 0x34),\n
        \           LL(0x9c, 0x9c, 0x4a, 0x9c, 0x94, 0xd6, 0x25, 0x08),\n            LL(0x1e,
        0x1e, 0x78, 0x1e, 0xf0, 0x66, 0x3c, 0xee),\n            LL(0x43, 0x43, 0x11,
        0x43, 0x22, 0x52, 0x86, 0x61),\n            LL(0xc7, 0xc7, 0x3b, 0xc7, 0x76,
        0xfc, 0x93, 0xb1),\n            LL(0xfc, 0xfc, 0xd7, 0xfc, 0xb3, 0x2b, 0xe5,
        0x4f),\n            LL(0x04, 0x04, 0x10, 0x04, 0x20, 0x14, 0x08, 0x24),\n
        \           LL(0x51, 0x51, 0x59, 0x51, 0xb2, 0x08, 0xa2, 0xe3),\n            LL(0x99,
        0x99, 0x5e, 0x99, 0xbc, 0xc7, 0x2f, 0x25),\n            LL(0x6d, 0x6d, 0xa9,
        0x6d, 0x4f, 0xc4, 0xda, 0x22),\n            LL(0x0d, 0x0d, 0x34, 0x0d, 0x68,
        0x39, 0x1a, 0x65),\n            LL(0xfa, 0xfa, 0xcf, 0xfa, 0x83, 0x35, 0xe9,
        0x79),\n            LL(0xdf, 0xdf, 0x5b, 0xdf, 0xb6, 0x84, 0xa3, 0x69),\n
        \           LL(0x7e, 0x7e, 0xe5, 0x7e, 0xd7, 0x9b, 0xfc, 0xa9),\n            LL(0x24,
        0x24, 0x90, 0x24, 0x3d, 0xb4, 0x48, 0x19),\n            LL(0x3b, 0x3b, 0xec,
        0x3b, 0xc5, 0xd7, 0x76, 0xfe),\n            LL(0xab, 0xab, 0x96, 0xab, 0x31,
        0x3d, 0x4b, 0x9a),\n            LL(0xce, 0xce, 0x1f, 0xce, 0x3e, 0xd1, 0x81,
        0xf0),\n            LL(0x11, 0x11, 0x44, 0x11, 0x88, 0x55, 0x22, 0x99),\n
        \           LL(0x8f, 0x8f, 0x06, 0x8f, 0x0c, 0x89, 0x03, 0x83),\n            LL(0x4e,
        0x4e, 0x25, 0x4e, 0x4a, 0x6b, 0x9c, 0x04),\n            LL(0xb7, 0xb7, 0xe6,
        0xb7, 0xd1, 0x51, 0x73, 0x66),\n            LL(0xeb, 0xeb, 0x8b, 0xeb, 0x0b,
        0x60, 0xcb, 0xe0),\n            LL(0x3c, 0x3c, 0xf0, 0x3c, 0xfd, 0xcc, 0x78,
        0xc1),\n            LL(0x81, 0x81, 0x3e, 0x81, 0x7c, 0xbf, 0x1f, 0xfd),\n
        \           LL(0x94, 0x94, 0x6a, 0x94, 0xd4, 0xfe, 0x35, 0x40),\n            LL(0xf7,
        0xf7, 0xfb, 0xf7, 0xeb, 0x0c, 0xf3, 0x1c),\n            LL(0xb9, 0xb9, 0xde,
        0xb9, 0xa1, 0x67, 0x6f, 0x18),\n            LL(0x13, 0x13, 0x4c, 0x13, 0x98,
        0x5f, 0x26, 0x8b),\n            LL(0x2c, 0x2c, 0xb0, 0x2c, 0x7d, 0x9c, 0x58,
        0x51),\n            LL(0xd3, 0xd3, 0x6b, 0xd3, 0xd6, 0xb8, 0xbb, 0x05),\n
        \           LL(0xe7, 0xe7, 0xbb, 0xe7, 0x6b, 0x5c, 0xd3, 0x8c),\n            LL(0x6e,
        0x6e, 0xa5, 0x6e, 0x57, 0xcb, 0xdc, 0x39),\n            LL(0xc4, 0xc4, 0x37,
        0xc4, 0x6e, 0xf3, 0x95, 0xaa),\n            LL(0x03, 0x03, 0x0c, 0x03, 0x18,
        0x0f, 0x06, 0x1b),\n            LL(0x56, 0x56, 0x45, 0x56, 0x8a, 0x13, 0xac,
        0xdc),\n            LL(0x44, 0x44, 0x0d, 0x44, 0x1a, 0x49, 0x88, 0x5e),\n
        \           LL(0x7f, 0x7f, 0xe1, 0x7f, 0xdf, 0x9e, 0xfe, 0xa0),\n            LL(0xa9,
        0xa9, 0x9e, 0xa9, 0x21, 0x37, 0x4f, 0x88),\n            LL(0x2a, 0x2a, 0xa8,
        0x2a, 0x4d, 0x82, 0x54, 0x67),\n            LL(0xbb, 0xbb, 0xd6, 0xbb, 0xb1,
        0x6d, 0x6b, 0x0a),\n            LL(0xc1, 0xc1, 0x23, 0xc1, 0x46, 0xe2, 0x9f,
        0x87),\n            LL(0x53, 0x53, 0x51, 0x53, 0xa2, 0x02, 0xa6, 0xf1),\n
        \           LL(0xdc, 0xdc, 0x57, 0xdc, 0xae, 0x8b, 0xa5, 0x72),\n            LL(0x0b,
        0x0b, 0x2c, 0x0b, 0x58, 0x27, 0x16, 0x53),\n            LL(0x9d, 0x9d, 0x4e,
        0x9d, 0x9c, 0xd3, 0x27, 0x01),\n            LL(0x6c, 0x6c, 0xad, 0x6c, 0x47,
        0xc1, 0xd8, 0x2b),\n            LL(0x31, 0x31, 0xc4, 0x31, 0x95, 0xf5, 0x62,
        0xa4),\n            LL(0x74, 0x74, 0xcd, 0x74, 0x87, 0xb9, 0xe8, 0xf3),\n
        \           LL(0xf6, 0xf6, 0xff, 0xf6, 0xe3, 0x09, 0xf1, 0x15),\n            LL(0x46,
        0x46, 0x05, 0x46, 0x0a, 0x43, 0x8c, 0x4c),\n            LL(0xac, 0xac, 0x8a,
        0xac, 0x09, 0x26, 0x45, 0xa5),\n            LL(0x89, 0x89, 0x1e, 0x89, 0x3c,
        0x97, 0x0f, 0xb5),\n            LL(0x14, 0x14, 0x50, 0x14, 0xa0, 0x44, 0x28,
        0xb4),\n            LL(0xe1, 0xe1, 0xa3, 0xe1, 0x5b, 0x42, 0xdf, 0xba),\n
        \           LL(0x16, 0x16, 0x58, 0x16, 0xb0, 0x4e, 0x2c, 0xa6),\n            LL(0x3a,
        0x3a, 0xe8, 0x3a, 0xcd, 0xd2, 0x74, 0xf7),\n            LL(0x69, 0x69, 0xb9,
        0x69, 0x6f, 0xd0, 0xd2, 0x06),\n            LL(0x09, 0x09, 0x24, 0x09, 0x48,
        0x2d, 0x12, 0x41),\n            LL(0x70, 0x70, 0xdd, 0x70, 0xa7, 0xad, 0xe0,
        0xd7),\n            LL(0xb6, 0xb6, 0xe2, 0xb6, 0xd9, 0x54, 0x71, 0x6f),\n
        \           LL(0xd0, 0xd0, 0x67, 0xd0, 0xce, 0xb7, 0xbd, 0x1e),\n            LL(0xed,
        0xed, 0x93, 0xed, 0x3b, 0x7e, 0xc7, 0xd6),\n            LL(0xcc, 0xcc, 0x17,
        0xcc, 0x2e, 0xdb, 0x85, 0xe2),\n            LL(0x42, 0x42, 0x15, 0x42, 0x2a,
        0x57, 0x84, 0x68),\n            LL(0x98, 0x98, 0x5a, 0x98, 0xb4, 0xc2, 0x2d,
        0x2c),\n            LL(0xa4, 0xa4, 0xaa, 0xa4, 0x49, 0x0e, 0x55, 0xed),\n
        \           LL(0x28, 0x28, 0xa0, 0x28, 0x5d, 0x88, 0x50, 0x75),\n            LL(0x5c,
        0x5c, 0x6d, 0x5c, 0xda, 0x31, 0xb8, 0x86),\n            LL(0xf8, 0xf8, 0xc7,
        0xf8, 0x93, 0x3f, 0xed, 0x6b),\n            LL(0x86, 0x86, 0x22, 0x86, 0x44,
        0xa4, 0x11, 0xc2),\n#define RC      (&(Cx.q[256*N]))\n            0x18, 0x23,
        0xc6, 0xe8, 0x87, 0xb8, 0x01, 0x4f,\n            /* rc[ROUNDS] */\n            0x36,
        0xa6, 0xd2, 0xf5, 0x79, 0x6f, 0x91, 0x52, 0x60, 0xbc, 0x9b,\n            0x8e,
        0xa3, 0x0c, 0x7b, 0x35, 0x1d, 0xe0, 0xd7, 0xc2, 0x2e, 0x4b,\n            0xfe,
        0x57, 0x15, 0x77, 0x37, 0xe5, 0x9f, 0xf0, 0x4a, 0xda, 0x58,\n            0xc9,
        0x29, 0x0a, 0xb1, 0xa0, 0x6b, 0x85, 0xbd, 0x5d, 0x10, 0xf4,\n            0xcb,
        0x3e, 0x05, 0x67, 0xe4, 0x27, 0x41, 0x8b, 0xa7, 0x7d, 0x95,\n            0xd8,
        0xfb, 0xee, 0x7c, 0x66, 0xdd, 0x17, 0x47, 0x9e, 0xca, 0x2d,\n            0xbf,
        0x07, 0xad, 0x5a, 0x83, 0x33\n        }\n    }"
      pos:
        line_end: 206
        line_start: 203
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
    - fields:
      - name: q[8]
        type: u64
      - name: c[64]
        type: u8
      item_type: union
      name: S
      pos:
        line_end: 485
        line_start: 482
        source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_block.c
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/whrlpool/wp_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IDEA_cbc_encrypt
  - IDEA_encrypt
  source_file: /src/openssl-1.1.1g/crypto/idea/i_cbc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IDEA_ofb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/idea/i_ofb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IDEA_set_encrypt_key
  - IDEA_set_decrypt_key
  - inverse
  source_file: /src/openssl-1.1.1g/crypto/idea/i_skey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IDEA_options
  - IDEA_ecb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/idea/i_ecb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IDEA_cfb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/idea/i_cfb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - idea_mul
  - n2ln
  - l2nn
  - n2l
  - l2n
  - s2n
  - n2s
  - E_IDEA
  source_file: /src/openssl-1.1.1g/crypto/idea/idea_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLAKE2S_BLOCKBYTES
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '64'
    - item_type: preproc_def
      name: BLAKE2S_OUTBYTES
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '32'
    - item_type: preproc_def
      name: BLAKE2S_KEYBYTES
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '32'
    - item_type: preproc_def
      name: BLAKE2S_SALTBYTES
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '8'
    - item_type: preproc_def
      name: BLAKE2S_PERSONALBYTES
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '8'
    - item_type: preproc_def
      name: BLAKE2B_BLOCKBYTES
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '128'
    - item_type: preproc_def
      name: BLAKE2B_OUTBYTES
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '64'
    - item_type: preproc_def
      name: BLAKE2B_KEYBYTES
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '64'
    - item_type: preproc_def
      name: BLAKE2B_SALTBYTES
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '16'
    - item_type: preproc_def
      name: BLAKE2B_PERSONALBYTES
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '16'
    - item_type: preproc_def
      name: BLAKE2B_DIGEST_LENGTH
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '64'
    - item_type: preproc_def
      name: BLAKE2S_DIGEST_LENGTH
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type_or_value: '32'
    structs:
    - fields:
      - name: digest_length
        type: uint8_t
      - name: key_length
        type: uint8_t
      - name: fanout
        type: uint8_t
      - name: depth
        type: uint8_t
      - name: leaf_length[4]
        type: uint8_t
      - name: node_offset[6]
        type: uint8_t
      - name: node_depth
        type: uint8_t
      - name: inner_length
        type: uint8_t
      - name: salt[BLAKE2S_SALTBYTES]
        type: uint8_t
      - name: personal[BLAKE2S_PERSONALBYTES]
        type: uint8_t
      item_type: struct
      name: blake2s_param_st
      pos:
        line_end: 41
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
    - fields:
      - name: h[8]
        type: uint32_t
      - name: t[2]
        type: uint32_t
      - name: f[2]
        type: uint32_t
      - name: buf[BLAKE2S_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: size_t
      item_type: struct
      name: blake2s_ctx_st
      pos:
        line_end: 51
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
    - fields:
      - name: digest_length
        type: uint8_t
      - name: key_length
        type: uint8_t
      - name: fanout
        type: uint8_t
      - name: depth
        type: uint8_t
      - name: leaf_length[4]
        type: uint8_t
      - name: node_offset[8]
        type: uint8_t
      - name: node_depth
        type: uint8_t
      - name: inner_length
        type: uint8_t
      - name: reserved[14]
        type: uint8_t
      - name: salt[BLAKE2B_SALTBYTES]
        type: uint8_t
      - name: personal[BLAKE2B_PERSONALBYTES]
        type: uint8_t
      item_type: struct
      name: blake2b_param_st
      pos:
        line_end: 65
        line_start: 53
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
    - fields:
      - name: h[8]
        type: uint64_t
      - name: t[2]
        type: uint64_t
      - name: f[2]
        type: uint64_t
      - name: buf[BLAKE2B_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: size_t
      item_type: struct
      name: blake2b_ctx_st
      pos:
        line_end: 75
        line_start: 69
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
    typedefs:
    - item_type: typedef
      name: BLAKE2S_PARAM
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type: blake2s_param_st
    - item_type: typedef
      name: BLAKE2B_PARAM
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type: blake2b_param_st
    - item_type: typedef
      name: BLAKE2S_CTX
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type: blake2s_ctx_st
    - item_type: typedef
      name: BLAKE2B_CTX
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_local.h
      type: blake2b_ctx_st
    union: []
- function_names:
  - init
  - update
  - final
  - EVP_blake2s256
  source_file: /src/openssl-1.1.1g/crypto/blake2/m_blake2s.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blake2b_set_lastblock
  - blake2b_init0
  - blake2b_init_param
  - BLAKE2b_Init
  - blake2b_compress
  - G
  - ROUND
  - BLAKE2b_Update
  - BLAKE2b_Final
  source_file: /src/openssl-1.1.1g/crypto/blake2/blake2b.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blake2s_set_lastblock
  - blake2s_init0
  - blake2s_init_param
  - BLAKE2s_Init
  - blake2s_compress
  - G
  - ROUND
  - BLAKE2s_Update
  - BLAKE2s_Final
  source_file: /src/openssl-1.1.1g/crypto/blake2/blake2s.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init
  - update
  - final
  - EVP_blake2b512
  source_file: /src/openssl-1.1.1g/crypto/blake2/m_blake2b.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load32
  - load64
  - store32
  - store64
  - load48
  - store48
  - rotr32
  - rotr64
  source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/openssl-1.1.1g/crypto/blake2/blake2_impl.h
- function_names:
  - c2l
  - l2c
  - MDC2_Init
  - MDC2_Update
  - mdc2_body
  - MDC2_Final
  source_file: /src/openssl-1.1.1g/crypto/mdc2/mdc2dgst.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MDC2
  source_file: /src/openssl-1.1.1g/crypto/mdc2/mdc2_one.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC2_cbc_encrypt
  - RC2_encrypt
  - RC2_decrypt
  source_file: /src/openssl-1.1.1g/crypto/rc2/rc2_cbc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC2_ecb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/rc2/rc2_ecb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - c2l
  - c2ln
  - l2c
  - l2cn
  - n2ln
  - l2nn
  - n2l
  - l2n
  - C_RC2
  source_file: /src/openssl-1.1.1g/crypto/rc2/rc2_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC2_ofb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/rc2/rc2ofb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC2_set_key
  source_file: /src/openssl-1.1.1g/crypto/rc2/rc2_skey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC2_cfb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/rc2/rc2cfb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - data
  - des_ede_ecb_cipher
  - des_ede_ofb_cipher
  - des_ede_cbc_cipher
  - des_ede_cfb64_cipher
  - des_ede3_cfb1_cipher
  - des_ede3_cfb8_cipher
  - des_ede_init_key
  - des_ede3_init_key
  - des3_ctrl
  - EVP_des_ede
  - EVP_des_ede3
  - des_ede3_unwrap
  - des_ede3_wrap
  - des_ede3_wrap_cipher
  - EVP_des_ede3_wrap
  source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ks1
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
      type_or_value: ks.ks[0]
    - item_type: preproc_def
      name: ks2
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
      type_or_value: ks.ks[1]
    - item_type: preproc_def
      name: ks3
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
      type_or_value: ks.ks[2]
    - item_type: preproc_def
      name: SPARC_DES_CAPABLE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
      type_or_value: (OPENSSL_sparcv9cap_P[1] & CFR_DES)
    - item_type: preproc_def
      name: des_ede3_cfb64_cipher
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
      type_or_value: des_ede_cfb64_cipher
    - item_type: preproc_def
      name: des_ede3_ofb_cipher
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
      type_or_value: des_ede_ofb_cipher
    - item_type: preproc_def
      name: des_ede3_cbc_cipher
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
      type_or_value: des_ede_cbc_cipher
    - item_type: preproc_def
      name: des_ede3_ecb_cipher
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
      type_or_value: des_ede_ecb_cipher
    structs:
    - fields:
      - name: ks
        type: "union {\n        double align;\n        DES_key_schedule ks[3];\n    }"
      - name: stream
        type: "union {\n        void (*cbc) (const void *, void *, size_t,\n                     const
          DES_key_schedule *, unsigned char *);\n    }"
      item_type: struct
      name: DES_EDE_KEY
      pos:
        line_end: 28
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des3.c
    typedefs: []
    union: []
- function_names:
  - update
  - do_sigver_init
  - EVP_DigestSignInit
  - EVP_DigestVerifyInit
  - EVP_DigestSignFinal
  - EVP_DigestSign
  - EVP_DigestVerifyFinal
  - EVP_DigestVerify
  source_file: /src/openssl-1.1.1g/crypto/evp/m_sigver.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS5_PBE_add
  - PKCS5_PBE_keyivgen
  source_file: /src/openssl-1.1.1g/crypto/evp/p5_crpt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_OpenInit
  - EVP_OpenFinal
  source_file: /src/openssl-1.1.1g/crypto/evp/p_open.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_SignFinal
  source_file: /src/openssl-1.1.1g/crypto/evp/p_sign.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - data
  - chacha_init_key
  - chacha_cipher
  - EVP_chacha20
  - aead_data
  - POLY1305_ctx
  - chacha20_poly1305_init_key
  - chacha20_poly1305_tls_cipher
  - chacha20_poly1305_cipher
  - chacha20_poly1305_cleanup
  - chacha20_poly1305_ctrl
  - EVP_chacha20_poly1305
  source_file: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHACHA20_POLY1305_MAX_IVLEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
      type_or_value: '12'
    - item_type: preproc_def
      name: NO_TLS_PAYLOAD_LENGTH
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
      type_or_value: ((size_t)-1)
    structs:
    - fields:
      - name: key
        type: "union {\n        double align;   /* this ensures even sizeof(EVP_CHACHA_KEY)%8==0
          */\n        unsigned int d[CHACHA_KEY_SIZE / 4];\n    }"
      - name: counter[CHACHA_CTR_SIZE / 4]
        type: unsigned int
      - name: buf[CHACHA_BLK_SIZE]
        type: unsigned char
      - name: partial_len
        type: unsigned int
      item_type: struct
      name: EVP_CHACHA_KEY
      pos:
        line_end: 28
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    - fields:
      - name: key
        type: EVP_CHACHA_KEY
      - name: nonce[12/4]
        type: unsigned int
      - name: tag[POLY1305_BLOCK_SIZE]
        type: unsigned char
      - name: tls_aad[POLY1305_BLOCK_SIZE]
        type: unsigned char
      - name: len
        type: struct { uint64_t aad, text; }
      - name: aad
        type: int
      - name: tls_payload_length
        type: size_t
      item_type: struct
      name: EVP_CHACHA_AEAD_CTX
      pos:
        line_end: 158
        line_start: 150
        source_file: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    typedefs: []
    union:
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 315
        line_start: 312
        source_file: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 431
        line_start: 428
        source_file: /src/openssl-1.1.1g/crypto/evp/e_chacha20_poly1305.c
- function_names:
  - EVP_bf_cfb
  - EVP_des_cfb
  - EVP_des_ede3_cfb
  - EVP_des_ede_cfb
  - EVP_idea_cfb
  - EVP_rc2_cfb
  - EVP_cast5_cfb
  - EVP_rc5_32_12_16_cfb
  - EVP_aes_128_cfb
  - EVP_aes_192_cfb
  - EVP_aes_256_cfb
  source_file: /src/openssl-1.1.1g/crypto/evp/e_old.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_CIPHER_CTX_reset
  - EVP_CIPHER_CTX_new
  - EVP_CIPHER_CTX_free
  - EVP_CipherInit
  - EVP_CipherInit_ex
  - EVP_CipherUpdate
  - EVP_CipherFinal_ex
  - EVP_CipherFinal
  - EVP_EncryptInit
  - EVP_EncryptInit_ex
  - EVP_DecryptInit
  - EVP_DecryptInit_ex
  - is_partially_overlapping
  - evp_EncryptDecryptUpdate
  - EVP_EncryptUpdate
  - EVP_EncryptFinal
  - EVP_EncryptFinal_ex
  - EVP_DecryptUpdate
  - EVP_DecryptFinal
  - EVP_DecryptFinal_ex
  - EVP_CIPHER_CTX_set_key_length
  - EVP_CIPHER_CTX_set_padding
  - EVP_CIPHER_CTX_ctrl
  - EVP_CIPHER_CTX_rand_key
  - EVP_CIPHER_CTX_copy
  source_file: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTRDIFF_T
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
      type_or_value: uint64_t
    - item_type: preproc_def
      name: PTRDIFF_T
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/openssl-1.1.1g/crypto/evp/evp_enc.c
      type_or_value: size_t
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_f_md
  - md_new
  - md_free
  - md_read
  - md_write
  - md_ctrl
  - md_callback_ctrl
  - md_gets
  source_file: /src/openssl-1.1.1g/crypto/evp/bio_md.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/evp/p_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pmeth_cmp
  - EVP_PKEY_meth_find
  - int_ctx_new
  - EVP_PKEY_meth_new
  - EVP_PKEY_meth_get0_info
  - EVP_PKEY_meth_copy
  - EVP_PKEY_meth_free
  - EVP_PKEY_CTX_new
  - EVP_PKEY_CTX_new_id
  - EVP_PKEY_CTX_dup
  - EVP_PKEY_meth_add0
  - evp_app_cleanup_int
  - EVP_PKEY_meth_remove
  - EVP_PKEY_meth_get_count
  - EVP_PKEY_meth_get0
  - EVP_PKEY_CTX_free
  - EVP_PKEY_CTX_ctrl
  - EVP_PKEY_CTX_ctrl_uint64
  - EVP_PKEY_CTX_ctrl_str
  - EVP_PKEY_CTX_str2ctrl
  - EVP_PKEY_CTX_hex2ctrl
  - EVP_PKEY_CTX_md
  - EVP_PKEY_CTX_get_operation
  - EVP_PKEY_CTX_set0_keygen_info
  - EVP_PKEY_CTX_set_data
  - EVP_PKEY_CTX_get_data
  - EVP_PKEY_CTX_get0_pkey
  - EVP_PKEY_CTX_get0_peerkey
  - EVP_PKEY_CTX_set_app_data
  - EVP_PKEY_CTX_get_app_data
  - EVP_PKEY_meth_set_init
  - EVP_PKEY_meth_set_copy
  - EVP_PKEY_meth_set_cleanup
  - EVP_PKEY_meth_set_paramgen
  - EVP_PKEY_meth_set_keygen
  - EVP_PKEY_meth_set_sign
  - EVP_PKEY_meth_set_verify
  - EVP_PKEY_meth_set_verify_recover
  - EVP_PKEY_meth_set_signctx
  - EVP_PKEY_meth_set_verifyctx
  - EVP_PKEY_meth_set_encrypt
  - EVP_PKEY_meth_set_decrypt
  - EVP_PKEY_meth_set_derive
  - EVP_PKEY_meth_set_ctrl
  - EVP_PKEY_meth_set_digestsign
  - EVP_PKEY_meth_set_digestverify
  - EVP_PKEY_meth_set_check
  - EVP_PKEY_meth_set_public_check
  - EVP_PKEY_meth_set_param_check
  - EVP_PKEY_meth_set_digest_custom
  - EVP_PKEY_meth_get_init
  - EVP_PKEY_meth_get_copy
  - EVP_PKEY_meth_get_cleanup
  - EVP_PKEY_meth_get_paramgen
  - EVP_PKEY_meth_get_keygen
  - EVP_PKEY_meth_get_sign
  - EVP_PKEY_meth_get_verify
  - EVP_PKEY_meth_get_verify_recover
  - EVP_PKEY_meth_get_signctx
  - EVP_PKEY_meth_get_verifyctx
  - EVP_PKEY_meth_get_encrypt
  - EVP_PKEY_meth_get_decrypt
  - EVP_PKEY_meth_get_derive
  - EVP_PKEY_meth_get_ctrl
  - EVP_PKEY_meth_get_digestsign
  - EVP_PKEY_meth_get_digestverify
  - EVP_PKEY_meth_get_check
  - EVP_PKEY_meth_get_public_check
  - EVP_PKEY_meth_get_param_check
  - EVP_PKEY_meth_get_digest_custom
  source_file: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sk_cmp_fn_type(const char *const *a, const char *const *b)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/evp/pmeth_lib.c
      type: int
    union: []
- function_names:
  - PKCS5_PBKDF2_HMAC
  - PKCS5_PBKDF2_HMAC_SHA1
  - PKCS5_v2_PBE_keyivgen
  - PKCS5_v2_PBKDF2_keyivgen
  - h__dump
  source_file: /src/openssl-1.1.1g/crypto/evp/p5_crpt2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_PBE_CipherInit
  - pbe2_cmp
  - pbe_cmp
  - EVP_PBE_alg_add_type
  - EVP_PBE_alg_add
  - EVP_PBE_find
  - free_evp_pbe_ctl
  - EVP_PBE_cleanup
  - EVP_PBE_get
  source_file: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pbe_type
        type: int
      - name: pbe_nid
        type: int
      - name: cipher_nid
        type: int
      - name: md_nid
        type: int
      - name: '*keygen'
        type: EVP_PBE_KEYGEN
      item_type: struct
      name: evp_pbe_st
      pos:
        line_end: 26
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/evp/evp_pbe.c
    typedefs: []
    union: []
- function_names:
  - init
  - update
  - final
  - EVP_ripemd160
  source_file: /src/openssl-1.1.1g/crypto/evp/m_ripemd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/evp/evp_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*digest'
        type: EVP_MD
      - name: '*engine'
        type: ENGINE
      - name: flags
        type: unsigned long
      - name: '*md_data'
        type: void
      - name: '*pctx'
        type: EVP_PKEY_CTX
      - name: (*update) (EVP_MD_CTX *ctx, const void *data, size_t count)
        type: int
      item_type: struct
      name: evp_md_ctx_st
      pos:
        line_end: 21
        line_start: 11
        source_file: /src/openssl-1.1.1g/crypto/evp/evp_local.h
    - fields:
      - name: '*cipher'
        type: EVP_CIPHER
      - name: '*engine'
        type: ENGINE
      - name: encrypt
        type: int
      - name: buf_len
        type: int
      - name: oiv[EVP_MAX_IV_LENGTH]
        type: unsigned char
      - name: iv[EVP_MAX_IV_LENGTH]
        type: unsigned char
      - name: buf[EVP_MAX_BLOCK_LENGTH]
        type: unsigned char
      - name: num
        type: int
      - name: '*app_data'
        type: void
      - name: key_len
        type: int
      - name: flags
        type: unsigned long
      - name: '*cipher_data'
        type: void
      - name: final_used
        type: int
      - name: block_mask
        type: int
      - name: final[EVP_MAX_BLOCK_LENGTH]
        type: unsigned char
      item_type: struct
      name: evp_cipher_ctx_st
      pos:
        line_end: 41
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/evp/evp_local.h
    - fields:
      - name: num
        type: int
      - name: length
        type: int
      - name: enc_data[80]
        type: unsigned char
      - name: line_num
        type: int
      - name: flags
        type: unsigned int
      item_type: struct
      name: evp_Encode_Ctx_st
      pos:
        line_end: 62
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/evp/evp_local.h
    typedefs:
    - item_type: typedef
      name: EVP_PBE_CTL
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/evp/evp_local.h
      type: evp_pbe_st
    union: []
- function_names:
  - BIO_f_cipher
  - enc_new
  - enc_free
  - enc_read
  - enc_write
  - enc_ctrl
  - enc_callback_ctrl
  - BIO_set_cipher
  source_file: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENC_BLOCK_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
      type_or_value: (1024*4)
    - item_type: preproc_def
      name: ENC_MIN_CHUNK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
      type_or_value: (256)
    - item_type: preproc_def
      name: BUF_OFFSET
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
      type_or_value: (ENC_MIN_CHUNK + EVP_MAX_BLOCK_LENGTH)
    structs:
    - fields:
      - name: buf_len
        type: int
      - name: buf_off
        type: int
      - name: cont
        type: int
      - name: finished
        type: int
      - name: ok
        type: int
      - name: '*cipher'
        type: EVP_CIPHER_CTX
      - name: '*read_start'
        type: unsigned char
      - name: buf[BUF_OFFSET + ENC_BLOCK_SIZE]
        type: unsigned char
      item_type: struct
      name: enc_struct
      pos:
        line_end: 39
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_enc.c
    typedefs: []
    union: []
- function_names:
  - init
  - sha3_init
  - shake_init
  - sha3_update
  - sha3_final
  - shake_ctrl
  - S390X_SHA3_FC
  - S390X_KECCAK1600_BSZ
  - s390x_sha3_init
  - s390x_shake_init
  - s390x_sha3_update
  - s390x_sha3_final
  - s390x_shake_final
  - EVP_MD_SHA3
  - EVP_MD_SHAKE
  - EVP_MD_SHA3
  - EVP_MD_SHAKE
  source_file: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KECCAK1600_WIDTH
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
      type_or_value: '1600'
    - item_type: preproc_def
      name: S390X_sha3_224_CAPABLE
      pos:
        line_end: 154
        line_start: 150
        source_file: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
      type_or_value: "((OPENSSL_s390xcap_P.kimd[0] &      \\\n                                  S390X_CAPBIT(S390X_SHA3_224))
        &&  \\\n                                 (OPENSSL_s390xcap_P.klmd[0] &      \\\n
        \                                 S390X_CAPBIT(S390X_SHA3_224)))"
    - item_type: preproc_def
      name: S390X_sha3_256_CAPABLE
      pos:
        line_end: 158
        line_start: 154
        source_file: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
      type_or_value: "((OPENSSL_s390xcap_P.kimd[0] &      \\\n                                  S390X_CAPBIT(S390X_SHA3_256))
        &&  \\\n                                 (OPENSSL_s390xcap_P.klmd[0] &      \\\n
        \                                 S390X_CAPBIT(S390X_SHA3_256)))"
    - item_type: preproc_def
      name: S390X_sha3_384_CAPABLE
      pos:
        line_end: 162
        line_start: 158
        source_file: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
      type_or_value: "((OPENSSL_s390xcap_P.kimd[0] &      \\\n                                  S390X_CAPBIT(S390X_SHA3_384))
        &&  \\\n                                 (OPENSSL_s390xcap_P.klmd[0] &      \\\n
        \                                 S390X_CAPBIT(S390X_SHA3_384)))"
    - item_type: preproc_def
      name: S390X_sha3_512_CAPABLE
      pos:
        line_end: 166
        line_start: 162
        source_file: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
      type_or_value: "((OPENSSL_s390xcap_P.kimd[0] &      \\\n                                  S390X_CAPBIT(S390X_SHA3_512))
        &&  \\\n                                 (OPENSSL_s390xcap_P.klmd[0] &      \\\n
        \                                 S390X_CAPBIT(S390X_SHA3_512)))"
    - item_type: preproc_def
      name: S390X_shake128_CAPABLE
      pos:
        line_end: 170
        line_start: 166
        source_file: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
      type_or_value: "((OPENSSL_s390xcap_P.kimd[0] &      \\\n                                  S390X_CAPBIT(S390X_SHAKE_128))
        && \\\n                                 (OPENSSL_s390xcap_P.klmd[0] &      \\\n
        \                                 S390X_CAPBIT(S390X_SHAKE_128)))"
    - item_type: preproc_def
      name: S390X_shake256_CAPABLE
      pos:
        line_end: 174
        line_start: 170
        source_file: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
      type_or_value: "((OPENSSL_s390xcap_P.kimd[0] &      \\\n                                  S390X_CAPBIT(S390X_SHAKE_256))
        && \\\n                                 (OPENSSL_s390xcap_P.klmd[0] &      \\\n
        \                                 S390X_CAPBIT(S390X_SHAKE_256)))"
    structs:
    - fields:
      - name: A[5][5]
        type: uint64_t
      - name: block_size
        type: size_t
      - name: md_size
        type: size_t
      - name: num
        type: size_t
      - name: buf[KECCAK1600_WIDTH / 8 - 32]
        type: unsigned char
      - name: pad
        type: unsigned char
      item_type: struct
      name: KECCAK1600_CTX
      pos:
        line_end: 30
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/evp/m_sha3.c
    typedefs: []
    union: []
- function_names:
  - ERR_load_EVP_strings
  source_file: /src/openssl-1.1.1g/crypto/evp/evp_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sm4_init_key
  - sm4_cbc_encrypt
  - sm4_cfb128_encrypt
  - sm4_ecb_encrypt
  - sm4_ofb128_encrypt
  - sm4_ctr_cipher
  - EVP_sm4_ctr
  source_file: /src/openssl-1.1.1g/crypto/evp/e_sm4.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ks
        type: SM4_KEY
      item_type: struct
      name: EVP_SM4_KEY
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/evp/e_sm4.c
    typedefs: []
    union: []
- function_names:
  - EVP_CIPHER_meth_new
  - EVP_CIPHER_meth_dup
  - EVP_CIPHER_meth_free
  - EVP_CIPHER_meth_set_iv_length
  - EVP_CIPHER_meth_set_flags
  - EVP_CIPHER_meth_set_impl_ctx_size
  - EVP_CIPHER_meth_set_init
  - EVP_CIPHER_meth_set_do_cipher
  - EVP_CIPHER_meth_set_cleanup
  - EVP_CIPHER_meth_set_set_asn1_params
  - EVP_CIPHER_meth_set_get_asn1_params
  - EVP_CIPHER_meth_set_ctrl
  - "(*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx,\n
    \                                                         const unsigned char
    *key,\n                                                          const unsigned
    char *iv,\n                                                          int enc)"
  - "(*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx,\n
    \                                                              unsigned char *out,\n
    \                                                              const unsigned
    char *in,\n                                                               size_t
    inl)"
  - (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *)
  - "(*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
    *,\n                                                                     ASN1_TYPE
    *)"
  - "(*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
    *,\n                                                               ASN1_TYPE *)"
  - "(*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *,\n                                                          int
    type, int arg,\n                                                          void
    *ptr)"
  source_file: /src/openssl-1.1.1g/crypto/evp/cmeth_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_PKEY_bits
  - EVP_PKEY_security_bits
  - EVP_PKEY_size
  - EVP_PKEY_save_parameters
  - EVP_PKEY_copy_parameters
  - EVP_PKEY_missing_parameters
  - EVP_PKEY_cmp_parameters
  - EVP_PKEY_cmp
  - EVP_PKEY_new
  - EVP_PKEY_up_ref
  - pkey_set_type
  - EVP_PKEY_new_raw_private_key
  - EVP_PKEY_new_raw_public_key
  - EVP_PKEY_get_raw_private_key
  - EVP_PKEY_get_raw_public_key
  - EVP_PKEY_new_CMAC_key
  - EVP_PKEY_set_type
  - EVP_PKEY_set_type_str
  - EVP_PKEY_set_alias_type
  - EVP_PKEY_set1_engine
  - EVP_PKEY_get0_engine
  - EVP_PKEY_assign
  - EVP_PKEY_get0
  - EVP_PKEY_get0_hmac
  - EVP_PKEY_get0_poly1305
  - EVP_PKEY_get0_siphash
  - EVP_PKEY_set1_RSA
  - EVP_PKEY_get0_RSA
  - EVP_PKEY_get1_RSA
  - EVP_PKEY_set1_DSA
  - EVP_PKEY_get0_DSA
  - EVP_PKEY_get1_DSA
  - EVP_PKEY_set1_EC_KEY
  - EVP_PKEY_get0_EC_KEY
  - EVP_PKEY_get1_EC_KEY
  - EVP_PKEY_set1_DH
  - EVP_PKEY_get0_DH
  - EVP_PKEY_get1_DH
  - EVP_PKEY_type
  - EVP_PKEY_id
  - EVP_PKEY_base_id
  - EVP_PKEY_free
  - EVP_PKEY_free_it
  - unsup_alg
  - EVP_PKEY_print_public
  - EVP_PKEY_print_private
  - EVP_PKEY_print_params
  - evp_pkey_asn1_ctrl
  - EVP_PKEY_get_default_digest_nid
  - EVP_PKEY_set1_tls_encodedpoint
  - EVP_PKEY_get1_tls_encodedpoint
  source_file: /src/openssl-1.1.1g/crypto/evp/p_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_SealInit
  - EVP_SealFinal
  source_file: /src/openssl-1.1.1g/crypto/evp/p_seal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - data
  - aesni_cbc_hmac_sha1_init_key
  - sha1_update
  - tls1_1_multi_block_encrypt
  - aesni_cbc_hmac_sha1_cipher
  - aesni_cbc_hmac_sha1_ctrl
  - EVP_aes_128_cbc_hmac_sha1
  - EVP_aes_256_cbc_hmac_sha1
  - EVP_aes_128_cbc_hmac_sha1
  - EVP_aes_256_cbc_hmac_sha1
  source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NO_PAYLOAD_LENGTH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
      type_or_value: ((size_t)-1)
    - item_type: preproc_def
      name: AESNI_CAPABLE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
      type_or_value: (1<<(57-32))
    - item_type: preproc_def
      name: aes_off
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SHA1_Update
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
      type_or_value: sha1_update
    - item_type: preproc_def
      name: MAXCHUNKSIZE
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
      type_or_value: '2048'
    structs:
    - fields:
      - name: ks
        type: AES_KEY
      - name: head
        type: SHA_CTX
      - name: payload_length
        type: size_t
      - name: aux
        type: "union {\n        unsigned int tls_ver;\n        unsigned char tls_aad[16];
          /* 13 used */\n    }"
      item_type: struct
      name: EVP_AES_HMAC_SHA1
      pos:
        line_end: 31
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    - fields:
      - name: A[8]
        type: unsigned int
      item_type: struct
      name: SHA1_MB_CTX
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    - fields:
      - name: '*ptr'
        type: unsigned char
      - name: blocks
        type: int
      item_type: struct
      name: HASH_DESC
      pos:
        line_end: 140
        line_start: 137
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    - fields:
      - name: '*inp'
        type: unsigned char
      - name: '*out'
        type: unsigned char
      - name: blocks
        type: int
      - name: iv[2]
        type: u64
      item_type: struct
      name: CIPH_DESC
      pos:
        line_end: 149
        line_start: 144
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    typedefs: []
    union:
    - fields:
      - name: q[16]
        type: u64
      - name: d[32]
        type: u32
      - name: c[128]
        type: u8
      item_type: union
      name: blocks[8]
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    - fields:
      - name: u[SHA_DIGEST_LENGTH / sizeof(unsigned int)]
        type: unsigned int
      - name: c[32 + SHA_DIGEST_LENGTH]
        type: unsigned char
      item_type: union
      name: mac
      pos:
        line_end: 477
        line_start: 474
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
    - fields:
      - name: u[SHA_LBLOCK]
        type: unsigned int
      - name: c[SHA_CBLOCK]
        type: unsigned char
      item_type: union
      name: '*data = (void *)key->md.data'
      pos:
        line_end: 489
        line_start: 486
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha1.c
- function_names:
  - data
  - rc5_ctrl
  - r_32_12_16_init_key
  source_file: /src/openssl-1.1.1g/crypto/evp/e_rc5.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: rounds
        type: int
      - name: ks
        type: RC5_32_KEY
      item_type: struct
      name: EVP_RC5_KEY
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc5.c
    typedefs: []
    union: []
- function_names:
  - ctr64_inc
  - AES_GCM_ASM
  - AES_GCM_ASM2
  - aesni_init_key
  - aesni_cbc_cipher
  - aesni_ecb_cipher
  - aesni_gcm_init_key
  - aesni_xts_init_key
  - aesni_ccm_init_key
  - aesni_ocb_init_key
  - BLOCK_CIPHER_generic
  - BLOCK_CIPHER_custom
  - aes_t4_init_key
  - aes_t4_gcm_init_key
  - aes_t4_xts_init_key
  - aes_t4_ccm_init_key
  - aes_t4_ocb_init_key
  - BLOCK_CIPHER_generic
  - BLOCK_CIPHER_custom
  - S390X_AES_FC
  - s390x_aes_ecb_init_key
  - s390x_aes_ecb_cipher
  - s390x_aes_ofb_init_key
  - s390x_aes_ofb_cipher
  - s390x_aes_cfb_init_key
  - s390x_aes_cfb_cipher
  - s390x_aes_cfb8_init_key
  - s390x_aes_cfb8_cipher
  - S390X_gcm_ivpadlen
  - s390x_aes_gcm_aad
  - s390x_aes_gcm
  - s390x_aes_gcm_setiv
  - s390x_aes_gcm_ctrl
  - s390x_aes_gcm_init_key
  - s390x_aes_gcm_tls_cipher
  - s390x_aes_gcm_cipher
  - s390x_aes_gcm_cleanup
  - s390x_aes_ccm_setiv
  - s390x_aes_ccm_aad
  - s390x_aes_ccm
  - s390x_aes_ccm_tls_cipher
  - s390x_aes_ccm_init_key
  - s390x_aes_ccm_cipher
  - s390x_aes_ccm_ctrl
  - BLOCK_CIPHER_generic
  - BLOCK_CIPHER_custom
  - BLOCK_CIPHER_generic
  - BLOCK_CIPHER_custom
  - BLOCK_CIPHER_generic_pack
  - aes_init_key
  - aes_cbc_cipher
  - aes_ecb_cipher
  - aes_ofb_cipher
  - aes_cfb_cipher
  - aes_cfb8_cipher
  - aes_cfb1_cipher
  - aes_ctr_cipher
  - aes_gcm_cleanup
  - aes_gcm_ctrl
  - aes_gcm_init_key
  - aes_gcm_tls_cipher
  - aes_gcm_cipher
  - aes_xts_ctrl
  - aes_xts_init_key
  - aes_xts_cipher
  - aes_ccm_ctrl
  - aes_ccm_init_key
  - aes_ccm_tls_cipher
  - aes_ccm_cipher
  - aes_wrap_init_key
  - aes_wrap_cipher
  - EVP_aes_128_wrap
  - EVP_aes_192_wrap
  - EVP_aes_256_wrap
  - EVP_aes_128_wrap_pad
  - EVP_aes_192_wrap_pad
  - EVP_aes_256_wrap_pad
  - aes_ocb_ctrl
  - aes_ocb_init_key
  - aes_ocb_cipher
  - aes_ocb_cleanup
  source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXBITCHUNK
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: ((size_t)1<<(sizeof(size_t)*8-4))
    - item_type: preproc_def
      name: VPAES_CAPABLE
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_ppccap_P & PPC_ALTIVEC)
    - item_type: preproc_def
      name: HWAES_CAPABLE
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_ppccap_P & PPC_CRYPTO207)
    - item_type: preproc_def
      name: HWAES_set_encrypt_key
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_p8_set_encrypt_key
    - item_type: preproc_def
      name: HWAES_set_decrypt_key
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_p8_set_decrypt_key
    - item_type: preproc_def
      name: HWAES_encrypt
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_p8_encrypt
    - item_type: preproc_def
      name: HWAES_decrypt
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_p8_decrypt
    - item_type: preproc_def
      name: HWAES_cbc_encrypt
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_p8_cbc_encrypt
    - item_type: preproc_def
      name: HWAES_ctr32_encrypt_blocks
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_p8_ctr32_encrypt_blocks
    - item_type: preproc_def
      name: HWAES_xts_encrypt
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_p8_xts_encrypt
    - item_type: preproc_def
      name: HWAES_xts_decrypt
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_p8_xts_decrypt
    - item_type: preproc_def
      name: VPAES_CAPABLE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_ia32cap_P[1]&(1<<(41-32)))
    - item_type: preproc_def
      name: BSAES_CAPABLE
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_ia32cap_P[1]&(1<<(41-32)))
    - item_type: preproc_def
      name: AESNI_CAPABLE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_ia32cap_P[1]&(1<<(57-32)))
    - item_type: preproc_def
      name: AES_gcm_encrypt
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aesni_gcm_encrypt
    - item_type: preproc_def
      name: AES_gcm_decrypt
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aesni_gcm_decrypt
    - item_type: preproc_def
      name: aesni_ofb_cipher
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ofb_cipher
    - item_type: preproc_def
      name: aesni_cfb_cipher
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_cfb_cipher
    - item_type: preproc_def
      name: aesni_cfb8_cipher
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_cfb8_cipher
    - item_type: preproc_def
      name: aesni_cfb1_cipher
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_cfb1_cipher
    - item_type: preproc_def
      name: aesni_ctr_cipher
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ctr_cipher
    - item_type: preproc_def
      name: aesni_gcm_cipher
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_gcm_cipher
    - item_type: preproc_def
      name: aesni_xts_cipher
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_xts_cipher
    - item_type: preproc_def
      name: aesni_ccm_cipher
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ccm_cipher
    - item_type: preproc_def
      name: aesni_ocb_cipher
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ocb_cipher
    - item_type: preproc_def
      name: HWAES_CAPABLE
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_sparcv9cap_P[0] & SPARCV9_FJAESX)
    - item_type: preproc_def
      name: HWAES_set_encrypt_key
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_fx_set_encrypt_key
    - item_type: preproc_def
      name: HWAES_set_decrypt_key
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_fx_set_decrypt_key
    - item_type: preproc_def
      name: HWAES_encrypt
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_fx_encrypt
    - item_type: preproc_def
      name: HWAES_decrypt
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_fx_decrypt
    - item_type: preproc_def
      name: HWAES_cbc_encrypt
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_fx_cbc_encrypt
    - item_type: preproc_def
      name: HWAES_ctr32_encrypt_blocks
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_fx_ctr32_encrypt_blocks
    - item_type: preproc_def
      name: SPARC_AES_CAPABLE
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_sparcv9cap_P[1] & CFR_AES)
    - item_type: preproc_def
      name: aes_t4_cbc_cipher
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_cbc_cipher
    - item_type: preproc_def
      name: aes_t4_ecb_cipher
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ecb_cipher
    - item_type: preproc_def
      name: aes_t4_ofb_cipher
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ofb_cipher
    - item_type: preproc_def
      name: aes_t4_cfb_cipher
      pos:
        line_end: 740
        line_start: 739
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_cfb_cipher
    - item_type: preproc_def
      name: aes_t4_cfb8_cipher
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_cfb8_cipher
    - item_type: preproc_def
      name: aes_t4_cfb1_cipher
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_cfb1_cipher
    - item_type: preproc_def
      name: aes_t4_ctr_cipher
      pos:
        line_end: 752
        line_start: 751
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ctr_cipher
    - item_type: preproc_def
      name: aes_t4_gcm_cipher
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_gcm_cipher
    - item_type: preproc_def
      name: aes_t4_xts_cipher
      pos:
        line_end: 877
        line_start: 876
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_xts_cipher
    - item_type: preproc_def
      name: aes_t4_ccm_cipher
      pos:
        line_end: 902
        line_start: 901
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ccm_cipher
    - item_type: preproc_def
      name: aes_t4_ocb_cipher
      pos:
        line_end: 956
        line_start: 955
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ocb_cipher
    - item_type: preproc_def
      name: S390X_aes_128_CAPABLE
      pos:
        line_end: 1166
        line_start: 1164
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(OPENSSL_s390xcap_P.km[0] &\t\\\n                                S390X_CAPBIT(S390X_AES_128))"
    - item_type: preproc_def
      name: S390X_aes_192_CAPABLE
      pos:
        line_end: 1168
        line_start: 1166
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(OPENSSL_s390xcap_P.km[0] &\t\\\n                                S390X_CAPBIT(S390X_AES_192))"
    - item_type: preproc_def
      name: S390X_aes_256_CAPABLE
      pos:
        line_end: 1170
        line_start: 1168
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(OPENSSL_s390xcap_P.km[0] &\t\\\n                                S390X_CAPBIT(S390X_AES_256))"
    - item_type: preproc_def
      name: s390x_aes_init_key
      pos:
        line_end: 1172
        line_start: 1171
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_init_key
    - item_type: preproc_def
      name: S390X_aes_128_cbc_CAPABLE
      pos:
        line_end: 1176
        line_start: 1175
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "1\t"
    - item_type: preproc_def
      name: S390X_aes_192_cbc_CAPABLE
      pos:
        line_end: 1177
        line_start: 1176
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '1'
    - item_type: preproc_def
      name: S390X_aes_256_cbc_CAPABLE
      pos:
        line_end: 1178
        line_start: 1177
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '1'
    - item_type: preproc_def
      name: S390X_AES_CBC_CTX
      pos:
        line_end: 1179
        line_start: 1178
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: EVP_AES_KEY
    - item_type: preproc_def
      name: s390x_aes_cbc_init_key
      pos:
        line_end: 1181
        line_start: 1180
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_init_key
    - item_type: preproc_def
      name: s390x_aes_cbc_cipher
      pos:
        line_end: 1183
        line_start: 1182
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_cbc_cipher
    - item_type: preproc_def
      name: S390X_aes_128_ecb_CAPABLE
      pos:
        line_end: 1187
        line_start: 1186
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: S390X_aes_128_CAPABLE
    - item_type: preproc_def
      name: S390X_aes_192_ecb_CAPABLE
      pos:
        line_end: 1188
        line_start: 1187
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: S390X_aes_192_CAPABLE
    - item_type: preproc_def
      name: S390X_aes_256_ecb_CAPABLE
      pos:
        line_end: 1189
        line_start: 1188
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: S390X_aes_256_CAPABLE
    - item_type: preproc_def
      name: S390X_aes_128_ofb_CAPABLE
      pos:
        line_end: 1217
        line_start: 1214
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_128_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kmo[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_128)))"
    - item_type: preproc_def
      name: S390X_aes_192_ofb_CAPABLE
      pos:
        line_end: 1220
        line_start: 1217
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_192_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kmo[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_192)))"
    - item_type: preproc_def
      name: S390X_aes_256_ofb_CAPABLE
      pos:
        line_end: 1223
        line_start: 1220
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_256_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kmo[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_256)))"
    - item_type: preproc_def
      name: S390X_aes_128_cfb_CAPABLE
      pos:
        line_end: 1282
        line_start: 1279
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_128_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kmf[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_128)))"
    - item_type: preproc_def
      name: S390X_aes_192_cfb_CAPABLE
      pos:
        line_end: 1285
        line_start: 1282
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_192_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kmf[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_192)))"
    - item_type: preproc_def
      name: S390X_aes_256_cfb_CAPABLE
      pos:
        line_end: 1288
        line_start: 1285
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_256_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kmf[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_256)))"
    - item_type: preproc_def
      name: S390X_aes_128_cfb8_CAPABLE
      pos:
        line_end: 1357
        line_start: 1355
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(OPENSSL_s390xcap_P.kmf[0] &\t\\\n                                     S390X_CAPBIT(S390X_AES_128))"
    - item_type: preproc_def
      name: S390X_aes_192_cfb8_CAPABLE
      pos:
        line_end: 1359
        line_start: 1357
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(OPENSSL_s390xcap_P.kmf[0] &\t\\\n                                     S390X_CAPBIT(S390X_AES_192))"
    - item_type: preproc_def
      name: S390X_aes_256_cfb8_CAPABLE
      pos:
        line_end: 1361
        line_start: 1359
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(OPENSSL_s390xcap_P.kmf[0] &\t\\\n                                     S390X_CAPBIT(S390X_AES_256))"
    - item_type: preproc_def
      name: S390X_aes_128_cfb1_CAPABLE
      pos:
        line_end: 1391
        line_start: 1390
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '0'
    - item_type: preproc_def
      name: S390X_aes_192_cfb1_CAPABLE
      pos:
        line_end: 1392
        line_start: 1391
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '0'
    - item_type: preproc_def
      name: S390X_aes_256_cfb1_CAPABLE
      pos:
        line_end: 1393
        line_start: 1392
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '0'
    - item_type: preproc_def
      name: s390x_aes_cfb1_init_key
      pos:
        line_end: 1395
        line_start: 1394
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_init_key
    - item_type: preproc_def
      name: s390x_aes_cfb1_cipher
      pos:
        line_end: 1397
        line_start: 1396
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_cfb1_cipher
    - item_type: preproc_def
      name: S390X_aes_128_ctr_CAPABLE
      pos:
        line_end: 1401
        line_start: 1400
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "1\t"
    - item_type: preproc_def
      name: S390X_aes_192_ctr_CAPABLE
      pos:
        line_end: 1402
        line_start: 1401
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '1'
    - item_type: preproc_def
      name: S390X_aes_256_ctr_CAPABLE
      pos:
        line_end: 1403
        line_start: 1402
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '1'
    - item_type: preproc_def
      name: S390X_AES_CTR_CTX
      pos:
        line_end: 1404
        line_start: 1403
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: EVP_AES_KEY
    - item_type: preproc_def
      name: s390x_aes_ctr_init_key
      pos:
        line_end: 1406
        line_start: 1405
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_init_key
    - item_type: preproc_def
      name: s390x_aes_ctr_cipher
      pos:
        line_end: 1408
        line_start: 1407
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ctr_cipher
    - item_type: preproc_def
      name: S390X_aes_128_gcm_CAPABLE
      pos:
        line_end: 1414
        line_start: 1411
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_128_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kma[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_128)))"
    - item_type: preproc_def
      name: S390X_aes_192_gcm_CAPABLE
      pos:
        line_end: 1417
        line_start: 1414
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_192_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kma[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_192)))"
    - item_type: preproc_def
      name: S390X_aes_256_gcm_CAPABLE
      pos:
        line_end: 1420
        line_start: 1417
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_256_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kma[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_256)))"
    - item_type: preproc_def
      name: S390X_AES_XTS_CTX
      pos:
        line_end: 1936
        line_start: 1935
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: EVP_AES_XTS_CTX
    - item_type: preproc_def
      name: S390X_aes_128_xts_CAPABLE
      pos:
        line_end: 1937
        line_start: 1936
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "1\t"
    - item_type: preproc_def
      name: S390X_aes_256_xts_CAPABLE
      pos:
        line_end: 1938
        line_start: 1937
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '1'
    - item_type: preproc_def
      name: s390x_aes_xts_init_key
      pos:
        line_end: 1940
        line_start: 1939
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_xts_init_key
    - item_type: preproc_def
      name: s390x_aes_xts_cipher
      pos:
        line_end: 1944
        line_start: 1943
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_xts_cipher
    - item_type: preproc_def
      name: s390x_aes_xts_ctrl
      pos:
        line_end: 1947
        line_start: 1946
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_xts_ctrl
    - item_type: preproc_def
      name: s390x_aes_xts_cleanup
      pos:
        line_end: 1949
        line_start: 1948
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_xts_cleanup
    - item_type: preproc_def
      name: S390X_aes_128_ccm_CAPABLE
      pos:
        line_end: 1953
        line_start: 1950
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_128_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kmac[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_128)))"
    - item_type: preproc_def
      name: S390X_aes_192_ccm_CAPABLE
      pos:
        line_end: 1956
        line_start: 1953
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_192_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kmac[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_192)))"
    - item_type: preproc_def
      name: S390X_aes_256_ccm_CAPABLE
      pos:
        line_end: 1959
        line_start: 1956
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(S390X_aes_256_CAPABLE &&\t\t\\\n                                    (OPENSSL_s390xcap_P.kmac[0]
        &\t\\\n                                     S390X_CAPBIT(S390X_AES_256)))"
    - item_type: preproc_def
      name: S390X_CCM_AAD_FLAG
      pos:
        line_end: 1961
        line_start: 1960
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: s390x_aes_ccm_cleanup
      pos:
        line_end: 2435
        line_start: 2434
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ccm_cleanup
    - item_type: preproc_def
      name: S390X_AES_OCB_CTX
      pos:
        line_end: 2438
        line_start: 2437
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: EVP_AES_OCB_CTX
    - item_type: preproc_def
      name: S390X_aes_128_ocb_CAPABLE
      pos:
        line_end: 2439
        line_start: 2438
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '0'
    - item_type: preproc_def
      name: S390X_aes_192_ocb_CAPABLE
      pos:
        line_end: 2440
        line_start: 2439
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '0'
    - item_type: preproc_def
      name: S390X_aes_256_ocb_CAPABLE
      pos:
        line_end: 2441
        line_start: 2440
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: '0'
    - item_type: preproc_def
      name: s390x_aes_ocb_init_key
      pos:
        line_end: 2443
        line_start: 2442
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ocb_init_key
    - item_type: preproc_def
      name: s390x_aes_ocb_cipher
      pos:
        line_end: 2446
        line_start: 2445
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ocb_cipher
    - item_type: preproc_def
      name: s390x_aes_ocb_cleanup
      pos:
        line_end: 2449
        line_start: 2448
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ocb_cleanup
    - item_type: preproc_def
      name: s390x_aes_ocb_ctrl
      pos:
        line_end: 2451
        line_start: 2450
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_ocb_ctrl
    - item_type: preproc_def
      name: BSAES_CAPABLE
      pos:
        line_end: 2561
        line_start: 2560
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_armcap_P & ARMV7_NEON)
    - item_type: preproc_def
      name: VPAES_CAPABLE
      pos:
        line_end: 2564
        line_start: 2563
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_armcap_P & ARMV7_NEON)
    - item_type: preproc_def
      name: HWAES_CAPABLE
      pos:
        line_end: 2566
        line_start: 2565
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: (OPENSSL_armcap_P & ARMV8_AES)
    - item_type: preproc_def
      name: HWAES_set_encrypt_key
      pos:
        line_end: 2567
        line_start: 2566
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_v8_set_encrypt_key
    - item_type: preproc_def
      name: HWAES_set_decrypt_key
      pos:
        line_end: 2568
        line_start: 2567
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_v8_set_decrypt_key
    - item_type: preproc_def
      name: HWAES_encrypt
      pos:
        line_end: 2569
        line_start: 2568
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_v8_encrypt
    - item_type: preproc_def
      name: HWAES_decrypt
      pos:
        line_end: 2570
        line_start: 2569
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_v8_decrypt
    - item_type: preproc_def
      name: HWAES_cbc_encrypt
      pos:
        line_end: 2571
        line_start: 2570
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_v8_cbc_encrypt
    - item_type: preproc_def
      name: HWAES_ctr32_encrypt_blocks
      pos:
        line_end: 2572
        line_start: 2571
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: aes_v8_ctr32_encrypt_blocks
    - item_type: preproc_def
      name: CUSTOM_FLAGS
      pos:
        line_end: 3323
        line_start: 3319
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(EVP_CIPH_FLAG_DEFAULT_ASN1 \\\n                | EVP_CIPH_CUSTOM_IV
        | EVP_CIPH_FLAG_CUSTOM_CIPHER \\\n                | EVP_CIPH_ALWAYS_CALL_INIT
        | EVP_CIPH_CTRL_INIT \\\n                | EVP_CIPH_CUSTOM_COPY | EVP_CIPH_CUSTOM_IV_LENGTH)"
    - item_type: preproc_def
      name: aes_xts_cleanup
      pos:
        line_end: 3503
        line_start: 3502
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: XTS_FLAGS
      pos:
        line_end: 3507
        line_start: 3504
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CUSTOM_IV \\\n                         |
        EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT \\\n                         |
        EVP_CIPH_CUSTOM_COPY)"
    - item_type: preproc_def
      name: aes_ccm_cleanup
      pos:
        line_end: 3777
        line_start: 3776
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: WRAP_FLAGS
      pos:
        line_end: 3879
        line_start: 3876
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: "(EVP_CIPH_WRAP_MODE \\\n                | EVP_CIPH_CUSTOM_IV
        | EVP_CIPH_FLAG_CUSTOM_CIPHER \\\n                | EVP_CIPH_ALWAYS_CALL_INIT
        | EVP_CIPH_FLAG_DEFAULT_ASN1)"
    - item_type: preproc_def
      name: HWAES_ocb_encrypt
      pos:
        line_end: 4038
        line_start: 4037
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: ((ocb128_f)NULL)
    - item_type: preproc_def
      name: HWAES_ocb_decrypt
      pos:
        line_end: 4048
        line_start: 4047
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
      type_or_value: ((ocb128_f)NULL)
    structs:
    - fields:
      - name: ks
        type: "union {\n        double align;\n        AES_KEY ks;\n    }"
      - name: block
        type: block128_f
      - name: stream
        type: "union {\n        cbc128_f cbc;\n        ctr128_f ctr;\n    }"
      item_type: struct
      name: EVP_AES_KEY
      pos:
        line_end: 31
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: ks
        type: "union {\n        double align;\n        AES_KEY ks;\n    }"
      - name: key_set
        type: int
      - name: iv_set
        type: int
      - name: gcm
        type: GCM128_CONTEXT
      - name: '*iv'
        type: unsigned char
      - name: ivlen
        type: int
      - name: taglen
        type: int
      - name: iv_gen
        type: int
      - name: tls_aad_len
        type: int
      - name: ctr
        type: ctr128_f
      item_type: struct
      name: EVP_AES_GCM_CTX
      pos:
        line_end: 47
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: ks1
        type: "union {\n        double align;\n        AES_KEY ks;\n    }"
      - name: xts
        type: XTS128_CONTEXT
      - name: "(*stream) (const unsigned char *in,\n                    unsigned char
          *out, size_t length,\n                    const AES_KEY *key1, const AES_KEY
          *key2,\n                    const unsigned char iv[16])"
        type: void
      item_type: struct
      name: EVP_AES_XTS_CTX
      pos:
        line_end: 59
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: ks
        type: "union {\n        double align;\n        AES_KEY ks;\n    }"
      - name: key_set
        type: int
      - name: iv_set
        type: int
      - name: tag_set
        type: int
      - name: len_set
        type: int
      - name: L
        type: int
      - name: tls_aad_len
        type: int
      - name: ccm
        type: CCM128_CONTEXT
      - name: str
        type: ccm128_f
      item_type: struct
      name: EVP_AES_CCM_CTX
      pos:
        line_end: 74
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: ksenc
        type: "union {\n        double align;\n        AES_KEY ks;\n    }"
      - name: ksdec
        type: "union {\n        double align;\n        AES_KEY ks;\n    }"
      - name: key_set
        type: int
      - name: iv_set
        type: int
      - name: ocb
        type: OCB128_CONTEXT
      - name: '*iv'
        type: unsigned char
      - name: tag[16]
        type: unsigned char
      - name: data_buf[16]
        type: unsigned char
      - name: aad_buf[16]
        type: unsigned char
      - name: data_buf_len
        type: int
      - name: aad_buf_len
        type: int
      - name: ivlen
        type: int
      - name: taglen
        type: int
      item_type: struct
      name: EVP_AES_OCB_CTX
      pos:
        line_end: 97
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: km
        type: "union {\n        double align;\n        /*-\n         * KM-AES parameter
          block - begin\n         * (see z/Architecture Principles of Operation >=
          SA22-7832-06)\n         */\n        struct {\n            unsigned char
          k[32];\n        } param;\n        /* KM-AES parameter block - end */\n    }"
      - name: fc
        type: unsigned int
      item_type: struct
      name: S390X_AES_ECB_CTX
      pos:
        line_end: 1022
        line_start: 1009
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: kmo
        type: "union {\n        double align;\n        /*-\n         * KMO-AES parameter
          block - begin\n         * (see z/Architecture Principles of Operation >=
          SA22-7832-08)\n         */\n        struct {\n            unsigned char
          cv[16];\n            unsigned char k[32];\n        } param;\n        /*
          KMO-AES parameter block - end */\n    }"
      - name: fc
        type: unsigned int
      - name: res
        type: int
      item_type: struct
      name: S390X_AES_OFB_CTX
      pos:
        line_end: 1040
        line_start: 1024
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: kmf
        type: "union {\n        double align;\n        /*-\n         * KMF-AES parameter
          block - begin\n         * (see z/Architecture Principles of Operation >=
          SA22-7832-08)\n         */\n        struct {\n            unsigned char
          cv[16];\n            unsigned char k[32];\n        } param;\n        /*
          KMF-AES parameter block - end */\n    }"
      - name: fc
        type: unsigned int
      - name: res
        type: int
      item_type: struct
      name: S390X_AES_CFB_CTX
      pos:
        line_end: 1058
        line_start: 1042
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: kma
        type: "union {\n        double align;\n        /*-\n         * KMA-GCM-AES
          parameter block - begin\n         * (see z/Architecture Principles of Operation
          >= SA22-7832-11)\n         */\n        struct {\n            unsigned char
          reserved[12];\n            union {\n                unsigned int w;\n                unsigned
          char b[4];\n            } cv;\n            union {\n                unsigned
          long long g[2];\n                unsigned char b[16];\n            } t;\n
          \           unsigned char h[16];\n            unsigned long long taadl;\n
          \           unsigned long long tpcl;\n            union {\n                unsigned
          long long g[2];\n                unsigned int w[4];\n            } j0;\n
          \           unsigned char k[32];\n        } param;\n        /* KMA-GCM-AES
          parameter block - end */\n    }"
      - name: fc
        type: unsigned int
      - name: key_set
        type: int
      - name: '*iv'
        type: unsigned char
      - name: ivlen
        type: int
      - name: iv_set
        type: int
      - name: iv_gen
        type: int
      - name: taglen
        type: int
      - name: ares[16]
        type: unsigned char
      - name: mres[16]
        type: unsigned char
      - name: kres[16]
        type: unsigned char
      - name: areslen
        type: int
      - name: mreslen
        type: int
      - name: kreslen
        type: int
      - name: tls_aad_len
        type: int
      item_type: struct
      name: S390X_AES_GCM_CTX
      pos:
        line_end: 1106
        line_start: 1060
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: aes
        type: "union {\n        double align;\n        /*-\n         * Padding is
          chosen so that ccm.kmac_param.k overlaps with key.k and\n         * ccm.fc
          with key.k.rounds. Remember that on s390x, an AES_KEY's\n         * rounds
          field is used to store the function code and that the key\n         * schedule
          is not stored (if aes hardware support is detected).\n         */\n        struct
          {\n            unsigned char pad[16];\n            AES_KEY k;\n        }
          key;\n\n        struct {\n            /*-\n             * KMAC-AES parameter
          block - begin\n             * (see z/Architecture Principles of Operation
          >= SA22-7832-08)\n             */\n            struct {\n                union
          {\n                    unsigned long long g[2];\n                    unsigned
          char b[16];\n                } icv;\n                unsigned char k[32];\n
          \           } kmac_param;\n            /* KMAC-AES parameter block - end
          */\n\n            union {\n                unsigned long long g[2];\n                unsigned
          char b[16];\n            } nonce;\n            union {\n                unsigned
          long long g[2];\n                unsigned char b[16];\n            } buf;\n\n
          \           unsigned long long blocks;\n            int l;\n            int
          m;\n            int tls_aad_len;\n            int iv_set;\n            int
          tag_set;\n            int len_set;\n            int key_set;\n\n            unsigned
          char pad[140];\n            unsigned int fc;\n        } ccm;\n    }"
      item_type: struct
      name: S390X_AES_CCM_CTX
      pos:
        line_end: 1158
        line_start: 1108
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    - fields:
      - name: ks
        type: "union {\n        double align;\n        AES_KEY ks;\n    }"
      - name: '*iv'
        type: unsigned char
      item_type: struct
      name: EVP_AES_WRAP_CTX
      pos:
        line_end: 3792
        line_start: 3785
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
    typedefs: []
    union:
    - fields:
      - name: w[4]
        type: unsigned int
      - name: b[16]
        type: unsigned char
      item_type: union
      name: buf
      pos:
        line_end: 1490
        line_start: 1487
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes.c
- function_names:
  - data
  - aesni_cbc_hmac_sha256_init_key
  - sha256_update
  - tls1_1_multi_block_encrypt
  - aesni_cbc_hmac_sha256_cipher
  - aesni_cbc_hmac_sha256_ctrl
  - EVP_aes_128_cbc_hmac_sha256
  - EVP_aes_256_cbc_hmac_sha256
  - EVP_aes_128_cbc_hmac_sha256
  - EVP_aes_256_cbc_hmac_sha256
  source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NO_PAYLOAD_LENGTH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
      type_or_value: ((size_t)-1)
    - item_type: preproc_def
      name: AESNI_CAPABLE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
      type_or_value: (1<<(57-32))
    - item_type: preproc_def
      name: aes_off
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SHA256_Update
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
      type_or_value: sha256_update
    - item_type: preproc_def
      name: MAXCHUNKSIZE
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
      type_or_value: '2048'
    structs:
    - fields:
      - name: ks
        type: AES_KEY
      - name: head
        type: SHA256_CTX
      - name: payload_length
        type: size_t
      - name: aux
        type: "union {\n        unsigned int tls_ver;\n        unsigned char tls_aad[16];
          /* 13 used */\n    }"
      item_type: struct
      name: EVP_AES_HMAC_SHA256
      pos:
        line_end: 32
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    - fields:
      - name: A[8]
        type: unsigned int
      item_type: struct
      name: SHA256_MB_CTX
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    - fields:
      - name: '*ptr'
        type: unsigned char
      - name: blocks
        type: int
      item_type: struct
      name: HASH_DESC
      pos:
        line_end: 136
        line_start: 133
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    - fields:
      - name: '*inp'
        type: unsigned char
      - name: '*out'
        type: unsigned char
      - name: blocks
        type: int
      - name: iv[2]
        type: u64
      item_type: struct
      name: CIPH_DESC
      pos:
        line_end: 145
        line_start: 140
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    typedefs: []
    union:
    - fields:
      - name: q[16]
        type: u64
      - name: d[32]
        type: u32
      - name: c[128]
        type: u8
      item_type: union
      name: blocks[8]
      pos:
        line_end: 161
        line_start: 157
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    - fields:
      - name: u[SHA256_DIGEST_LENGTH / sizeof(unsigned int)]
        type: unsigned int
      - name: c[64 + SHA256_DIGEST_LENGTH]
        type: unsigned char
      item_type: union
      name: mac
      pos:
        line_end: 507
        line_start: 504
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
    - fields:
      - name: u[SHA_LBLOCK]
        type: unsigned int
      - name: c[SHA256_CBLOCK]
        type: unsigned char
      item_type: union
      name: '*data = (void *)key->md.data'
      pos:
        line_end: 523
        line_start: 520
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aes_cbc_hmac_sha256.c
- function_names:
  - init
  - update
  - final
  - EVP_md2
  source_file: /src/openssl-1.1.1g/crypto/evp/m_md2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - data
  - EVP_desx_cbc
  - desx_cbc_init_key
  - desx_cbc_cipher
  source_file: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ks
        type: DES_key_schedule
      - name: inw
        type: DES_cblock
      - name: outw
        type: DES_cblock
      item_type: struct
      name: DESX_CBC_KEY
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/evp/e_xcbc_d.c
    typedefs: []
    union: []
- function_names:
  - openssl_add_all_ciphers_int
  source_file: /src/openssl-1.1.1g/crypto/evp/c_allc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - data
  - EVP_rc4
  - EVP_rc4_40
  - rc4_init_key
  - rc4_cipher
  source_file: /src/openssl-1.1.1g/crypto/evp/e_rc4.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ks
        type: RC4_KEY
      item_type: struct
      name: EVP_RC4_KEY
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc4.c
    typedefs: []
    union: []
- function_names:
  - openssl_add_all_digests_int
  source_file: /src/openssl-1.1.1g/crypto/evp/c_alld.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init
  - update
  - final
  - ctrl
  - EVP_md5_sha1
  source_file: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: md5
        type: MD5_CTX
      - name: sha1
        type: SHA_CTX
      item_type: struct
      name: md5_sha1_ctx
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/evp/m_md5_sha1.c
    typedefs: []
    union: []
- function_names:
  - data
  - cast_init_key
  source_file: /src/openssl-1.1.1g/crypto/evp/e_cast.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ks
        type: CAST_KEY
      item_type: struct
      name: EVP_CAST_KEY
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/evp/e_cast.c
    typedefs: []
    union: []
- function_names:
  - conv_bin2ascii
  - conv_bin2ascii
  - B64_NOT_BASE64
  - B64_BASE64
  - conv_ascii2bin
  - conv_ascii2bin
  - EVP_ENCODE_CTX_new
  - EVP_ENCODE_CTX_free
  - EVP_ENCODE_CTX_copy
  - EVP_ENCODE_CTX_num
  - evp_encode_ctx_set_flags
  - EVP_EncodeInit
  - EVP_EncodeUpdate
  - EVP_EncodeFinal
  - evp_encodeblock_int
  - EVP_EncodeBlock
  - EVP_DecodeInit
  - EVP_DecodeUpdate
  - evp_decodeblock_int
  - EVP_DecodeBlock
  - EVP_DecodeFinal
  source_file: /src/openssl-1.1.1g/crypto/evp/encode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIN_PER_LINE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/evp/encode.c
      type_or_value: (64/4*3)
    - item_type: preproc_def
      name: CHUNKS_PER_LINE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/evp/encode.c
      type_or_value: (64/4)
    - item_type: preproc_def
      name: CHAR_PER_LINE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/evp/encode.c
      type_or_value: (64+1)
    - item_type: preproc_def
      name: B64_EOLN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/evp/encode.c
      type_or_value: '0xF0'
    - item_type: preproc_def
      name: B64_CR
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/evp/encode.c
      type_or_value: '0xF1'
    - item_type: preproc_def
      name: B64_EOF
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/evp/encode.c
      type_or_value: '0xF2'
    - item_type: preproc_def
      name: B64_WS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/evp/encode.c
      type_or_value: '0xE0'
    - item_type: preproc_def
      name: B64_ERROR
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/openssl-1.1.1g/crypto/evp/encode.c
      type_or_value: '0xFF'
    structs: []
    typedefs: []
    union: []
- function_names:
  - alg_module_init
  - EVP_add_alg_module
  source_file: /src/openssl-1.1.1g/crypto/evp/evp_cnf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init
  - update
  - final
  - ctrl
  - EVP_sha1
  - init224
  - update224
  - final224
  - init256
  - update256
  - final256
  - EVP_sha224
  - EVP_sha256
  - init512_224
  - init512_256
  - init384
  - update384
  - final384
  - init512
  - update512
  - final512
  - EVP_sha512_224
  - EVP_sha512_256
  - EVP_sha384
  - EVP_sha512
  source_file: /src/openssl-1.1.1g/crypto/evp/m_sha1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init
  - update
  - final
  - EVP_md_null
  source_file: /src/openssl-1.1.1g/crypto/evp/m_null.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_set_pw_prompt
  - EVP_get_pw_prompt
  - EVP_read_pw_string
  - EVP_read_pw_string_min
  - EVP_BytesToKey
  source_file: /src/openssl-1.1.1g/crypto/evp/evp_key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_add_cipher
  - EVP_add_digest
  - EVP_get_cipherbyname
  - EVP_get_digestbyname
  - evp_cleanup_int
  - do_all_cipher_fn
  - EVP_CIPHER_do_all
  - EVP_CIPHER_do_all_sorted
  - do_all_md_fn
  - EVP_MD_do_all
  - EVP_MD_do_all_sorted
  source_file: /src/openssl-1.1.1g/crypto/evp/names.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*arg'
        type: void
      - name: "(*fn) (const EVP_CIPHER *ciph,\n                const char *from, const
          char *to, void *arg)"
        type: void
      item_type: struct
      name: doall_cipher
      pos:
        line_end: 100
        line_start: 96
        source_file: /src/openssl-1.1.1g/crypto/evp/names.c
    - fields:
      - name: '*arg'
        type: void
      - name: "(*fn) (const EVP_MD *ciph,\n                const char *from, const
          char *to, void *arg)"
        type: void
      item_type: struct
      name: doall_md
      pos:
        line_end: 143
        line_start: 139
        source_file: /src/openssl-1.1.1g/crypto/evp/names.c
    typedefs: []
    union: []
- function_names:
  - data
  - rc4_hmac_md5_init_key
  - rc4_hmac_md5_cipher
  - rc4_hmac_md5_ctrl
  - EVP_rc4_hmac_md5
  source_file: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NO_PAYLOAD_LENGTH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
      type_or_value: ((size_t)-1)
    - item_type: preproc_def
      name: rc4_off
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
      type_or_value: '0'
    - item_type: preproc_def
      name: md5_off
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
      type_or_value: '0'
    structs:
    - fields:
      - name: ks
        type: RC4_KEY
      - name: head
        type: MD5_CTX
      - name: payload_length
        type: size_t
      item_type: struct
      name: EVP_RC4_HMAC_MD5
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc4_hmac_md5.c
    typedefs: []
    union: []
- function_names:
  - EVP_enc_null
  - null_init_key
  - null_cipher
  source_file: /src/openssl-1.1.1g/crypto/evp/e_null.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - data
  - cmll_t4_init_key
  - BLOCK_CIPHER_generic
  - BLOCK_CIPHER_generic
  - BLOCK_CIPHER_generic_pack
  - camellia_init_key
  - camellia_cbc_cipher
  - camellia_ecb_cipher
  - camellia_ofb_cipher
  - camellia_cfb_cipher
  - camellia_cfb8_cipher
  - camellia_cfb1_cipher
  - camellia_ctr_cipher
  source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXBITCHUNK
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
      type_or_value: ((size_t)1<<(sizeof(size_t)*8-4))
    - item_type: preproc_def
      name: SPARC_CMLL_CAPABLE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
      type_or_value: (OPENSSL_sparcv9cap_P[1] & CFR_CAMELLIA)
    - item_type: preproc_def
      name: cmll_t4_cbc_cipher
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
      type_or_value: camellia_cbc_cipher
    - item_type: preproc_def
      name: cmll_t4_ecb_cipher
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
      type_or_value: camellia_ecb_cipher
    - item_type: preproc_def
      name: cmll_t4_ofb_cipher
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
      type_or_value: camellia_ofb_cipher
    - item_type: preproc_def
      name: cmll_t4_cfb_cipher
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
      type_or_value: camellia_cfb_cipher
    - item_type: preproc_def
      name: cmll_t4_cfb8_cipher
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
      type_or_value: camellia_cfb8_cipher
    - item_type: preproc_def
      name: cmll_t4_cfb1_cipher
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
      type_or_value: camellia_cfb1_cipher
    - item_type: preproc_def
      name: cmll_t4_ctr_cipher
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
      type_or_value: camellia_ctr_cipher
    structs:
    - fields:
      - name: ks
        type: CAMELLIA_KEY
      - name: block
        type: block128_f
      - name: stream
        type: "union {\n        cbc128_f cbc;\n        ctr128_f ctr;\n    }"
      item_type: struct
      name: EVP_CAMELLIA_KEY
      pos:
        line_end: 33
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/evp/e_camellia.c
    typedefs: []
    union: []
- function_names:
  - init
  - update
  - final
  - EVP_whirlpool
  source_file: /src/openssl-1.1.1g/crypto/evp/m_wp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - aria_init_key
  - aria_cbc_encrypt
  - aria_cfb128_encrypt
  - aria_cfb1_encrypt
  - aria_cfb8_encrypt
  - aria_ecb_encrypt
  - aria_ofb128_encrypt
  - IMPLEMENT_ARIA_CFBR
  - BLOCK_CIPHER_generic
  - aria_ctr_cipher
  - ctr64_inc
  - aria_gcm_init_key
  - aria_gcm_ctrl
  - aria_gcm_tls_cipher
  - aria_gcm_cipher
  - aria_gcm_cleanup
  - aria_ccm_init_key
  - aria_ccm_ctrl
  - aria_ccm_tls_cipher
  - aria_ccm_cipher
  - BLOCK_CIPHER_aead
  source_file: /src/openssl-1.1.1g/crypto/evp/e_aria.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: aria_ccm_cleanup
      pos:
        line_end: 751
        line_start: 750
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aria.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ARIA_AUTH_FLAGS
      pos:
        line_end: 757
        line_start: 752
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aria.c
      type_or_value: "(EVP_CIPH_FLAG_DEFAULT_ASN1 \\\n                          |
        EVP_CIPH_CUSTOM_IV | EVP_CIPH_FLAG_CUSTOM_CIPHER \\\n                          |
        EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT \\\n                          |
        EVP_CIPH_CUSTOM_COPY | EVP_CIPH_FLAG_AEAD_CIPHER \\\n                          |
        EVP_CIPH_CUSTOM_IV_LENGTH)"
    structs:
    - fields:
      - name: ks
        type: ARIA_KEY
      item_type: struct
      name: EVP_ARIA_KEY
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    - fields:
      - name: ks
        type: "union {\n        double align;\n        ARIA_KEY ks;\n    }"
      - name: key_set
        type: int
      - name: iv_set
        type: int
      - name: gcm
        type: GCM128_CONTEXT
      - name: '*iv'
        type: unsigned char
      - name: ivlen
        type: int
      - name: taglen
        type: int
      - name: iv_gen
        type: int
      - name: tls_aad_len
        type: int
      item_type: struct
      name: EVP_ARIA_GCM_CTX
      pos:
        line_end: 40
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    - fields:
      - name: ks
        type: "union {\n        double align;\n        ARIA_KEY ks;\n    }"
      - name: key_set
        type: int
      - name: iv_set
        type: int
      - name: tag_set
        type: int
      - name: len_set
        type: int
      - name: L
        type: int
      - name: tls_aad_len
        type: int
      - name: ccm
        type: CCM128_CONTEXT
      - name: str
        type: ccm128_f
      item_type: struct
      name: EVP_ARIA_CCM_CTX
      pos:
        line_end: 56
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/evp/e_aria.c
    typedefs: []
    union: []
- function_names:
  - init
  - update
  - final
  - EVP_md5
  source_file: /src/openssl-1.1.1g/crypto/evp/m_md5.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - M_check_autoarg
  - EVP_PKEY_sign_init
  - EVP_PKEY_sign
  - EVP_PKEY_verify_init
  - EVP_PKEY_verify
  - EVP_PKEY_verify_recover_init
  - EVP_PKEY_verify_recover
  - EVP_PKEY_encrypt_init
  - EVP_PKEY_encrypt
  - EVP_PKEY_decrypt_init
  - EVP_PKEY_decrypt
  - EVP_PKEY_derive_init
  - EVP_PKEY_derive_set_peer
  - EVP_PKEY_derive
  source_file: /src/openssl-1.1.1g/crypto/evp/pmeth_fn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_VerifyFinal
  source_file: /src/openssl-1.1.1g/crypto/evp/p_verify.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/evp/p_dec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_MD_CTX_reset
  - EVP_MD_CTX_new
  - EVP_MD_CTX_free
  - EVP_DigestInit
  - EVP_DigestInit_ex
  - EVP_DigestUpdate
  - EVP_DigestFinal
  - EVP_DigestFinal_ex
  - EVP_DigestFinalXOF
  - EVP_MD_CTX_copy
  - EVP_MD_CTX_copy_ex
  - EVP_Digest
  - EVP_MD_CTX_ctrl
  source_file: /src/openssl-1.1.1g/crypto/evp/digest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_PKEY_paramgen_init
  - EVP_PKEY_paramgen
  - EVP_PKEY_keygen_init
  - EVP_PKEY_keygen
  - EVP_PKEY_CTX_set_cb
  - EVP_PKEY_CTX_get_cb
  - trans_cb
  - evp_pkey_set_cb_translate
  - EVP_PKEY_CTX_get_keygen_info
  - EVP_PKEY_new_mac_key
  - EVP_PKEY_check
  - EVP_PKEY_public_check
  - EVP_PKEY_param_check
  source_file: /src/openssl-1.1.1g/crypto/evp/pmeth_gn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - R
  - salsa208_word_specification
  - scryptBlockMix
  - scryptROMix
  - EVP_PBE_scrypt
  source_file: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
      type_or_value: ((size_t)-1)
    - item_type: preproc_def
      name: LOG2_UINT64_MAX
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
      type_or_value: (sizeof(uint64_t) * 8 - 1)
    - item_type: preproc_def
      name: SCRYPT_PR_MAX
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
      type_or_value: ((1 << 30) - 1)
    - item_type: preproc_def
      name: SCRYPT_MAX_MEM
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
      type_or_value: (SIZE_MAX/2)
    - item_type: preproc_def
      name: SCRYPT_MAX_MEM
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/openssl-1.1.1g/crypto/evp/pbe_scrypt.c
      type_or_value: (1024 * 1024 * 32)
    structs: []
    typedefs: []
    union: []
- function_names:
  - idea_ecb_cipher
  - idea_init_key
  source_file: /src/openssl-1.1.1g/crypto/evp/e_idea.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ks
        type: IDEA_KEY_SCHEDULE
      item_type: struct
      name: EVP_IDEA_KEY
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/evp/e_idea.c
    typedefs: []
    union: []
- function_names:
  - seed_init_key
  source_file: /src/openssl-1.1.1g/crypto/evp/e_seed.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ks
        type: SEED_KEY_SCHEDULE
      item_type: struct
      name: EVP_SEED_KEY
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/evp/e_seed.c
    typedefs: []
    union: []
- function_names:
  - EVP_PKCS82PKEY
  - EVP_PKEY2PKCS8
  - EVP_PKEY_get_attr_count
  - EVP_PKEY_get_attr_by_NID
  - EVP_PKEY_get_attr_by_OBJ
  - EVP_PKEY_get_attr
  - EVP_PKEY_delete_attr
  - EVP_PKEY_add1_attr
  - EVP_PKEY_add1_attr_by_OBJ
  - EVP_PKEY_add1_attr_by_NID
  - EVP_PKEY_add1_attr_by_txt
  source_file: /src/openssl-1.1.1g/crypto/evp/evp_pkey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init
  - update
  - final
  - EVP_mdc2
  source_file: /src/openssl-1.1.1g/crypto/evp/m_mdc2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_f_base64
  - b64_new
  - b64_free
  - b64_read
  - b64_write
  - b64_ctrl
  - b64_callback_ctrl
  - b64_puts
  source_file: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: B64_BLOCK_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: B64_BLOCK_SIZE2
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
      type_or_value: '768'
    - item_type: preproc_def
      name: B64_NONE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
      type_or_value: '0'
    - item_type: preproc_def
      name: B64_ENCODE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
      type_or_value: '1'
    - item_type: preproc_def
      name: B64_DECODE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
      type_or_value: '2'
    structs:
    - fields:
      - name: buf_len
        type: int
      - name: buf_off
        type: int
      - name: tmp_len
        type: int
      - name: tmp_nl
        type: int
      - name: encode
        type: int
      - name: start
        type: int
      - name: cont
        type: int
      - name: '*base64'
        type: EVP_ENCODE_CTX
      - name: buf[EVP_ENCODE_LENGTH(B64_BLOCK_SIZE) + 10]
        type: char
      - name: tmp[B64_BLOCK_SIZE]
        type: char
      item_type: struct
      name: b64_struct
      pos:
        line_end: 43
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_b64.c
    typedefs: []
    union: []
- function_names:
  - data
  - bf_init_key
  source_file: /src/openssl-1.1.1g/crypto/evp/e_bf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ks
        type: BF_KEY
      item_type: struct
      name: EVP_BF_KEY
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/evp/e_bf.c
    typedefs: []
    union: []
- function_names:
  - data
  - EVP_rc2_64_cbc
  - EVP_rc2_40_cbc
  - rc2_init_key
  - rc2_meth_to_magic
  - rc2_magic_to_meth
  - rc2_get_asn1_type_and_iv
  - rc2_set_asn1_type_and_iv
  - rc2_ctrl
  source_file: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC2_40_MAGIC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
      type_or_value: '0xa0'
    - item_type: preproc_def
      name: RC2_64_MAGIC
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
      type_or_value: '0x78'
    - item_type: preproc_def
      name: RC2_128_MAGIC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
      type_or_value: '0x3a'
    structs:
    - fields:
      - name: key_bits
        type: int
      - name: ks
        type: RC2_KEY
      item_type: struct
      name: EVP_RC2_KEY
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/evp/e_rc2.c
    typedefs: []
    union: []
- function_names:
  - EVP_CIPHER_param_to_asn1
  - EVP_CIPHER_asn1_to_param
  - EVP_CIPHER_get_asn1_iv
  - EVP_CIPHER_set_asn1_iv
  - EVP_CIPHER_type
  - EVP_CIPHER_block_size
  - EVP_CIPHER_CTX_block_size
  - EVP_CIPHER_impl_ctx_size
  - EVP_Cipher
  - EVP_CIPHER_CTX_cipher
  - EVP_CIPHER_CTX_encrypting
  - EVP_CIPHER_flags
  - EVP_CIPHER_CTX_get_app_data
  - EVP_CIPHER_CTX_set_app_data
  - EVP_CIPHER_CTX_get_cipher_data
  - EVP_CIPHER_CTX_set_cipher_data
  - EVP_CIPHER_iv_length
  - EVP_CIPHER_CTX_iv_length
  - EVP_CIPHER_CTX_original_iv
  - EVP_CIPHER_CTX_iv
  - EVP_CIPHER_CTX_iv_noconst
  - EVP_CIPHER_CTX_buf_noconst
  - EVP_CIPHER_CTX_num
  - EVP_CIPHER_CTX_set_num
  - EVP_CIPHER_key_length
  - EVP_CIPHER_CTX_key_length
  - EVP_CIPHER_nid
  - EVP_CIPHER_CTX_nid
  - EVP_MD_block_size
  - EVP_MD_type
  - EVP_MD_pkey_type
  - EVP_MD_size
  - EVP_MD_flags
  - EVP_MD_meth_new
  - EVP_MD_meth_dup
  - EVP_MD_meth_free
  - EVP_MD_meth_set_input_blocksize
  - EVP_MD_meth_set_result_size
  - EVP_MD_meth_set_app_datasize
  - EVP_MD_meth_set_flags
  - EVP_MD_meth_set_init
  - EVP_MD_meth_set_update
  - EVP_MD_meth_set_final
  - EVP_MD_meth_set_copy
  - EVP_MD_meth_set_cleanup
  - EVP_MD_meth_set_ctrl
  - EVP_MD_meth_get_input_blocksize
  - EVP_MD_meth_get_result_size
  - EVP_MD_meth_get_app_datasize
  - EVP_MD_meth_get_flags
  - (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - "(*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx,\n                                                const
    void *data,\n                                                size_t count)"
  - "(*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx,\n                                               unsigned
    char *md)"
  - "(*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to,\n                                              const
    EVP_MD_CTX *from)"
  - (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - "(*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd,\n                                              int
    p1, void *p2)"
  - EVP_MD_CTX_md
  - EVP_MD_CTX_pkey_ctx
  - EVP_MD_CTX_set_pkey_ctx
  - EVP_MD_CTX_md_data
  - "(*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx,\n                                             const
    void *data, size_t count)"
  - EVP_MD_CTX_set_update_fn
  - EVP_MD_CTX_set_flags
  - EVP_MD_CTX_clear_flags
  - EVP_MD_CTX_test_flags
  - EVP_CIPHER_CTX_set_flags
  - EVP_CIPHER_CTX_clear_flags
  - EVP_CIPHER_CTX_test_flags
  source_file: /src/openssl-1.1.1g/crypto/evp/evp_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - des_ecb_cipher
  - des_ofb_cipher
  - des_cbc_cipher
  - des_cfb64_cipher
  - des_cfb1_cipher
  - des_cfb8_cipher
  - des_init_key
  - des_ctrl
  source_file: /src/openssl-1.1.1g/crypto/evp/e_des.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPARC_DES_CAPABLE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des.c
      type_or_value: (OPENSSL_sparcv9cap_P[1] & CFR_DES)
    structs:
    - fields:
      - name: ks
        type: "union {\n        double align;\n        DES_key_schedule ks;\n    }"
      - name: stream
        type: "union {\n        void (*cbc) (const void *, void *, size_t,\n                     const
          DES_key_schedule *, unsigned char *);\n    }"
      item_type: struct
      name: EVP_DES_KEY
      pos:
        line_end: 27
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/evp/e_des.c
    typedefs: []
    union: []
- function_names:
  - BIO_f_reliable
  - ok_new
  - ok_free
  - ok_read
  - ok_write
  - ok_ctrl
  - ok_callback_ctrl
  - longswap
  - sig_out
  - sig_in
  - block_out
  - block_in
  source_file: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OK_BLOCK_SIZE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
      type_or_value: (1024*4)
    - item_type: preproc_def
      name: OK_BLOCK_BLOCK
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
      type_or_value: '4'
    - item_type: preproc_def
      name: IOBS
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
      type_or_value: (OK_BLOCK_SIZE+ OK_BLOCK_BLOCK+ 3*EVP_MAX_MD_SIZE)
    - item_type: preproc_def
      name: WELLKNOWN
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
      type_or_value: '"The quick brown fox jumped over the lazy dog''s back."'
    structs:
    - fields:
      - name: buf_len
        type: size_t
      - name: buf_off
        type: size_t
      - name: buf_len_save
        type: size_t
      - name: buf_off_save
        type: size_t
      - name: cont
        type: int
      - name: finished
        type: int
      - name: '*md'
        type: EVP_MD_CTX
      - name: blockout
        type: int
      - name: sigio
        type: int
      - name: buf[IOBS]
        type: unsigned char
      item_type: struct
      name: ok_struct
      pos:
        line_end: 107
        line_start: 96
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
    typedefs: []
    union:
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: "is_endian = {\n        1\n    }"
      pos:
        line_end: 430
        line_start: 427
        source_file: /src/openssl-1.1.1g/crypto/evp/bio_ok.c
- function_names:
  - init
  - update
  - final
  - EVP_md4
  source_file: /src/openssl-1.1.1g/crypto/evp/m_md4.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CMS_signed_get_attr_count
  - CMS_signed_get_attr_by_NID
  - CMS_signed_get_attr_by_OBJ
  - CMS_signed_get_attr
  - CMS_signed_delete_attr
  - CMS_signed_add1_attr
  - CMS_signed_add1_attr_by_OBJ
  - CMS_signed_add1_attr_by_NID
  - CMS_signed_add1_attr_by_txt
  - CMS_signed_get0_data_by_OBJ
  - CMS_unsigned_get_attr_count
  - CMS_unsigned_get_attr_by_NID
  - CMS_unsigned_get_attr_by_OBJ
  - CMS_unsigned_get_attr
  - CMS_unsigned_delete_attr
  - CMS_unsigned_add1_attr
  - CMS_unsigned_add1_attr_by_OBJ
  - CMS_unsigned_add1_attr_by_NID
  - CMS_unsigned_add1_attr_by_txt
  - CMS_unsigned_get0_data_by_OBJ
  - cms_attrib_get
  - cms_check_attribute
  - CMS_si_check_attributes
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_att.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMS_ATTR_F_SIGNED
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_att.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: CMS_ATTR_F_UNSIGNED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_att.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: CMS_ATTR_F_REQUIRED_COND
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_att.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: CMS_ATTR_F_ONLY_ONE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_att.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: CMS_ATTR_F_ONE_ATTR_VALUE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_att.c
      type_or_value: '0x40'
    structs:
    - fields:
      - name: nid
        type: int
      - name: flags
        type: int
      item_type: struct
      name: "cms_attribute_properties[] = {\n    /* See RFC Section 11 */\n    { NID_pkcs9_contentType,
        CMS_ATTR_F_SIGNED\n                             | CMS_ATTR_F_ONLY_ONE\n                             |
        CMS_ATTR_F_ONE_ATTR_VALUE\n                             | CMS_ATTR_F_REQUIRED_COND
        },\n    { NID_pkcs9_messageDigest, CMS_ATTR_F_SIGNED\n                               |
        CMS_ATTR_F_ONLY_ONE\n                               | CMS_ATTR_F_ONE_ATTR_VALUE\n
        \                              | CMS_ATTR_F_REQUIRED_COND },\n    { NID_pkcs9_signingTime,
        CMS_ATTR_F_SIGNED\n                             | CMS_ATTR_F_ONLY_ONE\n                             |
        CMS_ATTR_F_ONE_ATTR_VALUE },\n    { NID_pkcs9_countersignature, CMS_ATTR_F_UNSIGNED
        },\n    /* ESS */\n    { NID_id_smime_aa_signingCertificate, CMS_ATTR_F_SIGNED\n
        \                                         | CMS_ATTR_F_ONLY_ONE\n                                          |
        CMS_ATTR_F_ONE_ATTR_VALUE },\n    { NID_id_smime_aa_signingCertificateV2,
        CMS_ATTR_F_SIGNED\n                                            | CMS_ATTR_F_ONLY_ONE\n
        \                                           | CMS_ATTR_F_ONE_ATTR_VALUE },\n
        \   { NID_id_smime_aa_receiptRequest, CMS_ATTR_F_SIGNED\n                                      |
        CMS_ATTR_F_ONLY_ONE\n                                      | CMS_ATTR_F_ONE_ATTR_VALUE
        }\n}"
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_att.c
    typedefs: []
    union: []
- function_names:
  - cms_EncryptedContent_init_bio
  - cms_EncryptedContent_init
  - CMS_EncryptedData_set1_key
  - cms_EncryptedData_init_bio
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_CMS_strings
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CMS_RecipientInfo_set0_password
  - CMS_add0_recipient_password
  - kek_unwrap_key
  - kek_wrap_key
  - cms_RecipientInfo_pwri_crypt
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_pwri.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMS_REVCHOICE_CRL
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CMS_REVCHOICE_OTHER
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CMS_CERTCHOICE_CERT
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CMS_CERTCHOICE_EXCERT
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CMS_CERTCHOICE_V1ACERT
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CMS_CERTCHOICE_V2ACERT
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CMS_CERTCHOICE_OTHER
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CMS_SIGNERINFO_ISSUER_SERIAL
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CMS_SIGNERINFO_KEYIDENTIFIER
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CMS_RECIPINFO_ISSUER_SERIAL
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CMS_RECIPINFO_KEYIDENTIFIER
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CMS_REK_ISSUER_SERIAL
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CMS_REK_KEYIDENTIFIER
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CMS_OIK_ISSUER_SERIAL
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CMS_OIK_KEYIDENTIFIER
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CMS_OIK_PUBKEY
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type_or_value: '2'
    structs:
    - fields:
      - name: '*contentType'
        type: ASN1_OBJECT
      - name: d
        type: "union {\n        ASN1_OCTET_STRING *data;\n        CMS_SignedData *signedData;\n
          \       CMS_EnvelopedData *envelopedData;\n        CMS_DigestedData *digestedData;\n
          \       CMS_EncryptedData *encryptedData;\n        CMS_AuthenticatedData
          *authenticatedData;\n        CMS_CompressedData *compressedData;\n        ASN1_TYPE
          *other;\n        /* Other types ... */\n        void *otherData;\n    }"
      item_type: struct
      name: CMS_ContentInfo_st
      pos:
        line_end: 60
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*digestAlgorithms'
        type: STACK_OF
      - name: '*encapContentInfo'
        type: CMS_EncapsulatedContentInfo
      - name: '*certificates'
        type: STACK_OF
      - name: '*crls'
        type: STACK_OF
      - name: '*signerInfos'
        type: STACK_OF
      item_type: struct
      name: CMS_SignedData_st
      pos:
        line_end: 71
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*eContentType'
        type: ASN1_OBJECT
      - name: '*eContent'
        type: ASN1_OCTET_STRING
      - name: partial
        type: int
      item_type: struct
      name: CMS_EncapsulatedContentInfo_st
      pos:
        line_end: 78
        line_start: 73
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*sid'
        type: CMS_SignerIdentifier
      - name: '*digestAlgorithm'
        type: X509_ALGOR
      - name: '*signedAttrs'
        type: STACK_OF
      - name: '*signatureAlgorithm'
        type: X509_ALGOR
      - name: '*signature'
        type: ASN1_OCTET_STRING
      - name: '*unsignedAttrs'
        type: STACK_OF
      - name: '*signer'
        type: X509
      - name: '*pkey'
        type: EVP_PKEY
      - name: '*mctx'
        type: EVP_MD_CTX
      - name: '*pctx'
        type: EVP_PKEY_CTX
      item_type: struct
      name: CMS_SignerInfo_st
      pos:
        line_end: 94
        line_start: 80
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: type
        type: int
      - name: d
        type: "union {\n        CMS_IssuerAndSerialNumber *issuerAndSerialNumber;\n
          \       ASN1_OCTET_STRING *subjectKeyIdentifier;\n    }"
      item_type: struct
      name: CMS_SignerIdentifier_st
      pos:
        line_end: 102
        line_start: 96
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*originatorInfo'
        type: CMS_OriginatorInfo
      - name: '*recipientInfos'
        type: STACK_OF
      - name: '*encryptedContentInfo'
        type: CMS_EncryptedContentInfo
      - name: '*unprotectedAttrs'
        type: STACK_OF
      item_type: struct
      name: CMS_EnvelopedData_st
      pos:
        line_end: 110
        line_start: 104
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*certificates'
        type: STACK_OF
      - name: '*crls'
        type: STACK_OF
      item_type: struct
      name: CMS_OriginatorInfo_st
      pos:
        line_end: 115
        line_start: 112
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*contentType'
        type: ASN1_OBJECT
      - name: '*contentEncryptionAlgorithm'
        type: X509_ALGOR
      - name: '*encryptedContent'
        type: ASN1_OCTET_STRING
      - name: '*cipher'
        type: EVP_CIPHER
      - name: '*key'
        type: unsigned char
      - name: keylen
        type: size_t
      - name: debug
        type: int
      - name: havenocert
        type: int
      item_type: struct
      name: CMS_EncryptedContentInfo_st
      pos:
        line_end: 129
        line_start: 117
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: type
        type: int
      - name: d
        type: "union {\n        CMS_KeyTransRecipientInfo *ktri;\n        CMS_KeyAgreeRecipientInfo
          *kari;\n        CMS_KEKRecipientInfo *kekri;\n        CMS_PasswordRecipientInfo
          *pwri;\n        CMS_OtherRecipientInfo *ori;\n    }"
      item_type: struct
      name: CMS_RecipientInfo_st
      pos:
        line_end: 140
        line_start: 131
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*rid'
        type: CMS_RecipientIdentifier
      - name: '*keyEncryptionAlgorithm'
        type: X509_ALGOR
      - name: '*encryptedKey'
        type: ASN1_OCTET_STRING
      - name: '*recip'
        type: X509
      - name: '*pkey'
        type: EVP_PKEY
      - name: '*pctx'
        type: EVP_PKEY_CTX
      item_type: struct
      name: CMS_KeyTransRecipientInfo_st
      pos:
        line_end: 154
        line_start: 144
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*originator'
        type: CMS_OriginatorIdentifierOrKey
      - name: '*ukm'
        type: ASN1_OCTET_STRING
      - name: '*keyEncryptionAlgorithm'
        type: X509_ALGOR
      - name: '*recipientEncryptedKeys'
        type: STACK_OF
      - name: '*pctx'
        type: EVP_PKEY_CTX
      - name: '*ctx'
        type: EVP_CIPHER_CTX
      item_type: struct
      name: CMS_KeyAgreeRecipientInfo_st
      pos:
        line_end: 166
        line_start: 156
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: type
        type: int
      - name: d
        type: "union {\n        CMS_IssuerAndSerialNumber *issuerAndSerialNumber;\n
          \       ASN1_OCTET_STRING *subjectKeyIdentifier;\n        CMS_OriginatorPublicKey
          *originatorKey;\n    }"
      item_type: struct
      name: CMS_OriginatorIdentifierOrKey_st
      pos:
        line_end: 175
        line_start: 168
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*algorithm'
        type: X509_ALGOR
      - name: '*publicKey'
        type: ASN1_BIT_STRING
      item_type: struct
      name: CMS_OriginatorPublicKey_st
      pos:
        line_end: 180
        line_start: 177
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*rid'
        type: CMS_KeyAgreeRecipientIdentifier
      - name: '*encryptedKey'
        type: ASN1_OCTET_STRING
      - name: '*pkey'
        type: EVP_PKEY
      item_type: struct
      name: CMS_RecipientEncryptedKey_st
      pos:
        line_end: 187
        line_start: 182
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: type
        type: int
      - name: d
        type: "union {\n        CMS_IssuerAndSerialNumber *issuerAndSerialNumber;\n
          \       CMS_RecipientKeyIdentifier *rKeyId;\n    }"
      item_type: struct
      name: CMS_KeyAgreeRecipientIdentifier_st
      pos:
        line_end: 195
        line_start: 189
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*subjectKeyIdentifier'
        type: ASN1_OCTET_STRING
      - name: '*date'
        type: ASN1_GENERALIZEDTIME
      - name: '*other'
        type: CMS_OtherKeyAttribute
      item_type: struct
      name: CMS_RecipientKeyIdentifier_st
      pos:
        line_end: 201
        line_start: 197
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*kekid'
        type: CMS_KEKIdentifier
      - name: '*keyEncryptionAlgorithm'
        type: X509_ALGOR
      - name: '*encryptedKey'
        type: ASN1_OCTET_STRING
      - name: '*key'
        type: unsigned char
      - name: keylen
        type: size_t
      item_type: struct
      name: CMS_KEKRecipientInfo_st
      pos:
        line_end: 211
        line_start: 203
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*keyIdentifier'
        type: ASN1_OCTET_STRING
      - name: '*date'
        type: ASN1_GENERALIZEDTIME
      - name: '*other'
        type: CMS_OtherKeyAttribute
      item_type: struct
      name: CMS_KEKIdentifier_st
      pos:
        line_end: 217
        line_start: 213
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*keyDerivationAlgorithm'
        type: X509_ALGOR
      - name: '*keyEncryptionAlgorithm'
        type: X509_ALGOR
      - name: '*encryptedKey'
        type: ASN1_OCTET_STRING
      - name: '*pass'
        type: unsigned char
      - name: passlen
        type: size_t
      item_type: struct
      name: CMS_PasswordRecipientInfo_st
      pos:
        line_end: 227
        line_start: 219
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*oriType'
        type: ASN1_OBJECT
      - name: '*oriValue'
        type: ASN1_TYPE
      item_type: struct
      name: CMS_OtherRecipientInfo_st
      pos:
        line_end: 232
        line_start: 229
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*digestAlgorithm'
        type: X509_ALGOR
      - name: '*encapContentInfo'
        type: CMS_EncapsulatedContentInfo
      - name: '*digest'
        type: ASN1_OCTET_STRING
      item_type: struct
      name: CMS_DigestedData_st
      pos:
        line_end: 239
        line_start: 234
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*encryptedContentInfo'
        type: CMS_EncryptedContentInfo
      - name: '*unprotectedAttrs'
        type: STACK_OF
      item_type: struct
      name: CMS_EncryptedData_st
      pos:
        line_end: 245
        line_start: 241
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*originatorInfo'
        type: CMS_OriginatorInfo
      - name: '*recipientInfos'
        type: STACK_OF
      - name: '*macAlgorithm'
        type: X509_ALGOR
      - name: '*digestAlgorithm'
        type: X509_ALGOR
      - name: '*encapContentInfo'
        type: CMS_EncapsulatedContentInfo
      - name: '*authAttrs'
        type: STACK_OF
      - name: '*mac'
        type: ASN1_OCTET_STRING
      - name: '*unauthAttrs'
        type: STACK_OF
      item_type: struct
      name: CMS_AuthenticatedData_st
      pos:
        line_end: 257
        line_start: 247
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*compressionAlgorithm'
        type: X509_ALGOR
      - name: '*recipientInfos'
        type: STACK_OF
      - name: '*encapContentInfo'
        type: CMS_EncapsulatedContentInfo
      item_type: struct
      name: CMS_CompressedData_st
      pos:
        line_end: 264
        line_start: 259
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: type
        type: int
      - name: d
        type: "union {\n        X509_CRL *crl;\n        CMS_OtherRevocationInfoFormat
          *other;\n    }"
      item_type: struct
      name: CMS_RevocationInfoChoice_st
      pos:
        line_end: 272
        line_start: 266
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*otherRevInfoFormat'
        type: ASN1_OBJECT
      - name: '*otherRevInfo'
        type: ASN1_TYPE
      item_type: struct
      name: CMS_OtherRevocationInfoFormat_st
      pos:
        line_end: 280
        line_start: 277
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: type
        type: int
      - name: d
        type: "union {\n        X509 *certificate;\n        ASN1_STRING *extendedCertificate;
          /* Obsolete */\n        ASN1_STRING *v1AttrCert; /* Left encoded for now
          */\n        ASN1_STRING *v2AttrCert; /* Left encoded for now */\n        CMS_OtherCertificateFormat
          *other;\n    }"
      item_type: struct
      name: CMS_CertificateChoices
      pos:
        line_end: 291
        line_start: 282
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*otherCertFormat'
        type: ASN1_OBJECT
      - name: '*otherCert'
        type: ASN1_TYPE
      item_type: struct
      name: CMS_OtherCertificateFormat_st
      pos:
        line_end: 302
        line_start: 299
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*issuer'
        type: X509_NAME
      - name: '*serialNumber'
        type: ASN1_INTEGER
      item_type: struct
      name: CMS_IssuerAndSerialNumber_st
      pos:
        line_end: 312
        line_start: 309
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*keyAttrId'
        type: ASN1_OBJECT
      - name: '*keyAttr'
        type: ASN1_TYPE
      item_type: struct
      name: CMS_OtherKeyAttribute_st
      pos:
        line_end: 317
        line_start: 314
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: '*signedContentIdentifier'
        type: ASN1_OCTET_STRING
      - name: '*receiptsFrom'
        type: CMS_ReceiptsFrom
      - name: '*receiptsTo'
        type: STACK_OF
      item_type: struct
      name: CMS_ReceiptRequest_st
      pos:
        line_end: 325
        line_start: 321
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: type
        type: int
      - name: d
        type: "union {\n        int32_t allOrFirstTier;\n        STACK_OF(GENERAL_NAMES)
          *receiptList;\n    }"
      item_type: struct
      name: CMS_ReceiptsFrom_st
      pos:
        line_end: 333
        line_start: 327
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    - fields:
      - name: version
        type: int32_t
      - name: '*contentType'
        type: ASN1_OBJECT
      - name: '*signedContentIdentifier'
        type: ASN1_OCTET_STRING
      - name: '*originatorSignatureValue'
        type: ASN1_OCTET_STRING
      item_type: struct
      name: CMS_Receipt_st
      pos:
        line_end: 340
        line_start: 335
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
    typedefs:
    - item_type: typedef
      name: CMS_IssuerAndSerialNumber
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_IssuerAndSerialNumber_st
    - item_type: typedef
      name: CMS_EncapsulatedContentInfo
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_EncapsulatedContentInfo_st
    - item_type: typedef
      name: CMS_SignerIdentifier
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_SignerIdentifier_st
    - item_type: typedef
      name: CMS_SignedData
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_SignedData_st
    - item_type: typedef
      name: CMS_OtherRevocationInfoFormat
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_OtherRevocationInfoFormat_st
    - item_type: typedef
      name: CMS_OriginatorInfo
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_OriginatorInfo_st
    - item_type: typedef
      name: CMS_EncryptedContentInfo
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_EncryptedContentInfo_st
    - item_type: typedef
      name: CMS_EnvelopedData
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_EnvelopedData_st
    - item_type: typedef
      name: CMS_DigestedData
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_DigestedData_st
    - item_type: typedef
      name: CMS_EncryptedData
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_EncryptedData_st
    - item_type: typedef
      name: CMS_AuthenticatedData
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_AuthenticatedData_st
    - item_type: typedef
      name: CMS_CompressedData
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_CompressedData_st
    - item_type: typedef
      name: CMS_OtherCertificateFormat
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_OtherCertificateFormat_st
    - item_type: typedef
      name: CMS_KeyTransRecipientInfo
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_KeyTransRecipientInfo_st
    - item_type: typedef
      name: CMS_OriginatorPublicKey
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_OriginatorPublicKey_st
    - item_type: typedef
      name: CMS_OriginatorIdentifierOrKey
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_OriginatorIdentifierOrKey_st
    - item_type: typedef
      name: CMS_KeyAgreeRecipientInfo
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_KeyAgreeRecipientInfo_st
    - item_type: typedef
      name: CMS_RecipientKeyIdentifier
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_RecipientKeyIdentifier_st
    - item_type: typedef
      name: CMS_KeyAgreeRecipientIdentifier
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_KeyAgreeRecipientIdentifier_st
    - item_type: typedef
      name: CMS_KEKIdentifier
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_KEKIdentifier_st
    - item_type: typedef
      name: CMS_KEKRecipientInfo
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_KEKRecipientInfo_st
    - item_type: typedef
      name: CMS_PasswordRecipientInfo
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_PasswordRecipientInfo_st
    - item_type: typedef
      name: CMS_OtherRecipientInfo
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_OtherRecipientInfo_st
    - item_type: typedef
      name: CMS_ReceiptsFrom
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_ReceiptsFrom_st
    - item_type: typedef
      name: CMS_RecipientIdentifier
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_local.h
      type: CMS_SignerIdentifier
    union: []
- function_names:
  - CMS_get0_type
  - cms_Data_create
  - cms_content_bio
  - CMS_dataInit
  - CMS_dataFinal
  - CMS_get0_content
  - cms_get0_econtent_type
  - CMS_get0_eContentType
  - CMS_set1_eContentType
  - CMS_is_detached
  - CMS_set_detached
  - cms_DigestAlgorithm_init_bio
  - cms_DigestAlgorithm_find_ctx
  - cms_get0_certificate_choices
  - CMS_add0_CertificateChoices
  - CMS_add0_cert
  - CMS_add1_cert
  - cms_get0_revocation_choices
  - CMS_add0_RevocationInfoChoice
  - CMS_add0_crl
  - CMS_add1_crl
  - cms_ias_cert_cmp
  - cms_keyid_cert_cmp
  - cms_set1_ias
  - cms_set1_keyid
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cms_get0_enveloped
  - cms_enveloped_data_init
  - cms_env_asn1_ctrl
  - CMS_RecipientInfo_type
  - CMS_RecipientInfo_get0_pkey_ctx
  - CMS_EnvelopedData_create
  - cms_RecipientInfo_ktri_init
  - CMS_add1_recipient_cert
  - CMS_RecipientInfo_ktri_get0_algs
  - CMS_RecipientInfo_ktri_get0_signer_id
  - CMS_RecipientInfo_ktri_cert_cmp
  - CMS_RecipientInfo_set0_pkey
  - cms_RecipientInfo_ktri_encrypt
  - cms_RecipientInfo_ktri_decrypt
  - CMS_RecipientInfo_kekri_id_cmp
  - aes_wrap_keylen
  - CMS_add0_recipient_key
  - CMS_RecipientInfo_kekri_get0_id
  - CMS_RecipientInfo_set0_key
  - cms_RecipientInfo_kekri_encrypt
  - cms_RecipientInfo_kekri_decrypt
  - CMS_RecipientInfo_decrypt
  - CMS_RecipientInfo_encrypt
  - cms_env_set_originfo_version
  - cms_env_set_version
  - cms_EnvelopedData_init_bio
  - cms_pkey_get_ri_type
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_env.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CMS_get1_ReceiptRequest
  - CMS_ReceiptRequest_create0
  - CMS_add1_ReceiptRequest
  - CMS_ReceiptRequest_get0_values
  - cms_msgSigDigest
  - cms_msgSigDigest_add1
  - cms_Receipt_verify
  - cms_encode_Receipt
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_ess.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cms_get0_signed
  - cms_signed_data_init
  - CMS_SignedData_init
  - cms_sd_set_version
  - cms_set_si_contentType_attr
  - cms_copy_messageDigest
  - cms_set1_SignerIdentifier
  - cms_SignerIdentifier_get0_signer_id
  - cms_SignerIdentifier_cert_cmp
  - cms_sd_asn1_ctrl
  - CMS_add1_signer
  - cms_add1_signingTime
  - CMS_SignerInfo_get0_pkey_ctx
  - CMS_SignerInfo_get0_md_ctx
  - CMS_SignerInfo_set1_signer_cert
  - CMS_SignerInfo_get0_signer_id
  - CMS_SignerInfo_cert_cmp
  - CMS_SignerInfo_get0_algs
  - CMS_SignerInfo_get0_signature
  - cms_SignerInfo_content_sign
  - cms_SignedData_final
  - CMS_SignerInfo_sign
  - CMS_SignerInfo_verify
  - cms_SignedData_init_bio
  - CMS_SignerInfo_verify_content
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_sd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cms_DigestedData_create
  - cms_DigestedData_init_bio
  - cms_DigestedData_do_final
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_dd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cms_CompressedData_create
  - cms_CompressedData_init_bio
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_cd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CMS_RecipientInfo_kari_get0_alg
  - CMS_RecipientInfo_kari_get0_orig_id
  - CMS_RecipientInfo_kari_orig_id_cmp
  - CMS_RecipientEncryptedKey_get0_id
  - CMS_RecipientEncryptedKey_cert_cmp
  - CMS_RecipientInfo_kari_set0_pkey
  - CMS_RecipientInfo_kari_get0_ctx
  - cms_kek_cipher
  - CMS_RecipientInfo_kari_decrypt
  - cms_kari_create_ephemeral_key
  - cms_RecipientInfo_kari_init
  - cms_wrap_init
  - cms_RecipientInfo_kari_encrypt
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_kari.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cms_get_text_bio
  - cms_copy_content
  - check_content
  - do_free_upto
  - CMS_data
  - CMS_data_create
  - CMS_digest_verify
  - CMS_digest_create
  - CMS_EncryptedData_decrypt
  - CMS_EncryptedData_encrypt
  - cms_kari_set1_pkey
  - CMS_decrypt_set1_pkey
  - CMS_decrypt_set1_key
  - CMS_decrypt_set1_password
  - CMS_decrypt
  - CMS_final
  - CMS_uncompress
  - CMS_compress
  - CMS_uncompress
  - CMS_compress
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_smime.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CMS_stream
  - d2i_CMS_bio
  - i2d_CMS_bio
  - BIO_new_CMS
  - i2d_CMS_bio_stream
  - PEM_write_bio_CMS_stream
  - SMIME_write_CMS
  - SMIME_read_CMS
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_io.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cms_si_cb
  - cms_rek_cb
  - cms_kari_cb
  - cms_ri_cb
  - cms_cb
  - CMS_SharedInfo_encode
  source_file: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*keyInfo'
        type: X509_ALGOR
      - name: '*entityUInfo'
        type: ASN1_OCTET_STRING
      - name: '*suppPubInfo'
        type: ASN1_OCTET_STRING
      item_type: struct
      name: CMS_SharedInfo
      pos:
        line_end: 366
        line_start: 362
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c
    typedefs: []
    union:
    - fields:
      - name: '*pecsi'
        type: CMS_SharedInfo
      - name: '*a'
        type: ASN1_VALUE
      item_type: union
      name: "intsi = {\n        NULL\n    }"
      pos:
        line_end: 380
        line_start: 377
        source_file: /src/openssl-1.1.1g/crypto/cms/cms_asn1.c
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/hmac/hmac_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HMAC_MAX_MD_CBLOCK_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/hmac/hmac_local.h
      type_or_value: '144'
    structs:
    - fields:
      - name: '*md'
        type: EVP_MD
      - name: '*md_ctx'
        type: EVP_MD_CTX
      - name: '*i_ctx'
        type: EVP_MD_CTX
      - name: '*o_ctx'
        type: EVP_MD_CTX
      item_type: struct
      name: hmac_ctx_st
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/hmac/hmac_local.h
    typedefs: []
    union: []
- function_names:
  - hmac_size
  - hmac_key_free
  - hmac_pkey_ctrl
  - hmac_pkey_public_cmp
  - hmac_set_priv_key
  - hmac_get_priv_key
  source_file: /src/openssl-1.1.1g/crypto/hmac/hm_ameth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HMAC_Init_ex
  - HMAC_Init
  - HMAC_Update
  - HMAC_Final
  - HMAC_size
  - HMAC_CTX_new
  - hmac_ctx_cleanup
  - HMAC_CTX_free
  - hmac_ctx_alloc_mds
  - HMAC_CTX_reset
  - HMAC_CTX_copy
  - HMAC
  - HMAC_CTX_set_flags
  - HMAC_CTX_get_md
  source_file: /src/openssl-1.1.1g/crypto/hmac/hmac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pkey_hmac_init
  - pkey_hmac_copy
  - pkey_hmac_cleanup
  - pkey_hmac_keygen
  - int_update
  - hmac_signctx_init
  - hmac_signctx
  - pkey_hmac_ctrl
  - pkey_hmac_ctrl_str
  source_file: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*md'
        type: EVP_MD
      - name: ktmp
        type: ASN1_OCTET_STRING
      - name: '*ctx'
        type: HMAC_CTX
      item_type: struct
      name: HMAC_PKEY_CTX
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/hmac/hm_pmeth.c
    typedefs: []
    union: []
- function_names:
  - BN_lsw
  - BN_kronecker
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_kron.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_mod_inverse
  - int_bn_mod_inverse
  - BN_mod_inverse_no_branch
  - BN_gcd
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_gcd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_BN_strings
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSAZ_1024_mod_exp_avx2
  - RSAZ_512_mod_exp
  source_file: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALIGN64
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c
      type_or_value: __attribute__((aligned(64)))
    - item_type: preproc_def
      name: ALIGN64
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.c
      type_or_value: __declspec(align(64))
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_div
  - bn_div_3_words
  - bn_left_align
  - bn_div_words
  - bn_div_words
  - BN_div
  - bn_div_fixed_top
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_div.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BN_ULLONG
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_div.c
      type_or_value: __uint128_t
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_lshift1
  - BN_rshift1
  - BN_lshift
  - bn_lshift_fixed_top
  - BN_rshift
  - bn_rshift_fixed_top
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_shift.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_set_params
  - BN_get_params
  - BN_value_one
  - BN_num_bits_word
  - bn_num_bits_consttime
  - BN_num_bits
  - bn_free_d
  - BN_clear_free
  - BN_free
  - bn_init
  - BN_new
  - BN_secure_new
  - bn_expand_internal
  - bn_expand2
  - BN_dup
  - BN_copy
  - FLAGS_DATA
  - FLAGS_STRUCT
  - BN_swap
  - BN_clear
  - BN_get_word
  - BN_set_word
  - BN_bin2bn
  - bn2binpad
  - BN_bn2binpad
  - BN_bn2bin
  - BN_lebin2bn
  - BN_bn2lebinpad
  - BN_ucmp
  - BN_cmp
  - BN_set_bit
  - BN_clear_bit
  - BN_is_bit_set
  - BN_mask_bits
  - BN_set_negative
  - bn_cmp_words
  - bn_cmp_part_words
  - BN_consttime_swap
  - BN_security_bits
  - BN_zero_ex
  - BN_abs_is_word
  - BN_is_zero
  - BN_is_one
  - BN_is_word
  - BN_is_odd
  - BN_is_negative
  - BN_to_montgomery
  - BN_with_flags
  - BN_GENCB_new
  - BN_GENCB_free
  - BN_set_flags
  - BN_get_flags
  - BN_GENCB_set_old
  - BN_GENCB_set
  - BN_GENCB_get_arg
  - bn_wexpand
  - bn_correct_top
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BN_CONSTTIME_SWAP_FLAGS
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_lib.c
      type_or_value: (BN_FLG_CONSTTIME | BN_FLG_FIXED_TOP)
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_nnmod
  - BN_mod_add
  - bn_mod_add_fixed_top
  - BN_mod_add_quick
  - BN_mod_sub
  - bn_mod_sub_fixed_top
  - BN_mod_sub_quick
  - BN_mod_mul
  - BN_mod_sqr
  - BN_mod_lshift1
  - BN_mod_lshift1_quick
  - BN_mod_lshift
  - BN_mod_lshift_quick
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_mod.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_BLINDING_new
  - BN_BLINDING_free
  - BN_BLINDING_update
  - BN_BLINDING_convert
  - BN_BLINDING_convert_ex
  - BN_BLINDING_invert
  - BN_BLINDING_invert_ex
  - BN_BLINDING_is_current_thread
  - BN_BLINDING_set_current_thread
  - BN_BLINDING_lock
  - BN_BLINDING_unlock
  - BN_BLINDING_get_flags
  - BN_BLINDING_set_flags
  - BN_BLINDING_create_param
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BN_BLINDING_COUNTER
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
      type_or_value: '32'
    structs:
    - fields:
      - name: '*A'
        type: BIGNUM
      - name: '*Ai'
        type: BIGNUM
      - name: '*e'
        type: BIGNUM
      - name: '*mod'
        type: BIGNUM
      - name: tid
        type: CRYPTO_THREAD_ID
      - name: counter
        type: int
      - name: flags
        type: unsigned long
      - name: '*m_ctx'
        type: BN_MONT_CTX
      - name: "(*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n                       const
          BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx)"
        type: int
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: bn_blinding_st
      pos:
        line_end: 27
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_blind.c
    typedefs: []
    union: []
- function_names:
  - BN_get0_nist_prime_192
  - BN_get0_nist_prime_224
  - BN_get0_nist_prime_256
  - BN_get0_nist_prime_384
  - BN_get0_nist_prime_521
  - nist_cp_bn_0
  - nist_cp_bn
  - bn_cp_64
  - bn_64_set_0
  - bn_cp_32_naked
  - bn_32_set_0
  - bn_cp_32
  - bn_cp_64
  - bn_64_set_0
  - bn_cp_32
  - bn_32_set_0
  - nist_set_192
  - BN_nist_mod_192
  - nist_set_224
  - BN_nist_mod_224
  - nist_set_256
  - BN_nist_mod_256
  - nist_set_384
  - BN_nist_mod_384
  - BN_nist_mod_521
  - "(*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a,\n                                          const
    BIGNUM *field, BN_CTX *ctx)"
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BN_NIST_192_TOP
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: (192+BN_BITS2-1)/BN_BITS2
    - item_type: preproc_def
      name: BN_NIST_224_TOP
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: (224+BN_BITS2-1)/BN_BITS2
    - item_type: preproc_def
      name: BN_NIST_256_TOP
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: (256+BN_BITS2-1)/BN_BITS2
    - item_type: preproc_def
      name: BN_NIST_384_TOP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: (384+BN_BITS2-1)/BN_BITS2
    - item_type: preproc_def
      name: BN_NIST_521_TOP
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: (521+BN_BITS2-1)/BN_BITS2
    - item_type: preproc_def
      name: NIST_INT64
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: long
    - item_type: preproc_def
      name: NIST_INT64
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: long long
    - item_type: preproc_def
      name: NIST_INT64
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: __int64
    - item_type: preproc_def
      name: NIST_INT64
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: long long
    - item_type: preproc_def
      name: BN_NIST_521_RSHIFT
      pos:
        line_end: 1151
        line_start: 1150
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: (521%BN_BITS2)
    - item_type: preproc_def
      name: BN_NIST_521_LSHIFT
      pos:
        line_end: 1152
        line_start: 1151
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: (BN_BITS2-BN_NIST_521_RSHIFT)
    - item_type: preproc_def
      name: BN_NIST_521_TOP_MASK
      pos:
        line_end: 1153
        line_start: 1152
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type_or_value: ((BN_ULONG)BN_MASK2>>BN_NIST_521_LSHIFT)
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*bn_addsub_f) (BN_ULONG *, const BN_ULONG *,\n                                 const
        BN_ULONG *, int)"
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
      type: BN_ULONG
    union:
    - fields:
      - name: bn[BN_NIST_192_TOP]
        type: BN_ULONG
      - name: "ui[BN_NIST_192_TOP * sizeof(BN_ULONG) /\n                        sizeof(unsigned
          int)]"
        type: unsigned int
      item_type: union
      name: buf
      pos:
        line_end: 327
        line_start: 323
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    - fields:
      - name: bn[BN_NIST_224_TOP]
        type: BN_ULONG
      - name: "ui[BN_NIST_224_TOP * sizeof(BN_ULONG) /\n                        sizeof(unsigned
          int)]"
        type: unsigned int
      item_type: union
      name: buf
      pos:
        line_end: 468
        line_start: 464
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    - fields:
      - name: f
        type: bn_addsub_f
      - name: p
        type: PTR_SIZE_INT
      item_type: union
      name: u
      pos:
        line_end: 474
        line_start: 471
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    - fields:
      - name: bn[BN_NIST_256_TOP]
        type: BN_ULONG
      - name: "ui[BN_NIST_256_TOP * sizeof(BN_ULONG) /\n                        sizeof(unsigned
          int)]"
        type: unsigned int
      item_type: union
      name: buf
      pos:
        line_end: 649
        line_start: 645
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    - fields:
      - name: f
        type: bn_addsub_f
      - name: p
        type: PTR_SIZE_INT
      item_type: union
      name: u
      pos:
        line_end: 655
        line_start: 652
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    - fields:
      - name: bn[BN_NIST_384_TOP]
        type: BN_ULONG
      - name: "ui[BN_NIST_384_TOP * sizeof(BN_ULONG) /\n                        sizeof(unsigned
          int)]"
        type: unsigned int
      item_type: union
      name: buf
      pos:
        line_end: 895
        line_start: 891
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
    - fields:
      - name: f
        type: bn_addsub_f
      - name: p
        type: PTR_SIZE_INT
      item_type: union
      name: u
      pos:
        line_end: 901
        line_start: 898
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_nist.c
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/bn/rsaz_exp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bn_pollute
  - bn_check_top
  - bn_fix_top
  - bn_check_size
  - bn_wcheck_size
  - bn_fix_top
  - BN_window_bits_for_exponent_size
  - BN_window_bits_for_ctime_exponent_size
  - BN_window_bits_for_ctime_exponent_size
  - BN_UMULT_HIGH
  - BN_UMULT_LOHI
  - BN_UMULT_HIGH
  - BN_UMULT_HIGH
  - BN_UMULT_HIGH
  - BN_UMULT_HIGH
  - BN_UMULT_LOHI
  - BN_UMULT_HIGH
  - BN_UMULT_LOHI
  - BN_UMULT_HIGH
  - BN_UMULT_LOHI
  - BN_UMULT_HIGH
  - bn_clear_top2max
  - Lw
  - Hw
  - mul_add
  - mul
  - sqr
  - mul_add
  - mul
  - sqr
  - mul_add
  - mul
  - sqr
  - LBITS
  - HBITS
  - L2HBITS
  - LLBITS
  - LHBITS
  - LL2HBITS
  - mul64
  - sqr64
  - mul_add
  - mul
  - bn_expand
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BN_ULLONG
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: BN_BITS4
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '32'
    - item_type: preproc_def
      name: BN_MASK2
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffffffffffffffffL)
    - item_type: preproc_def
      name: BN_MASK2l
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffffffffL)
    - item_type: preproc_def
      name: BN_MASK2h
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffffffff00000000L)
    - item_type: preproc_def
      name: BN_MASK2h1
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffffffff80000000L)
    - item_type: preproc_def
      name: BN_DEC_CONV
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (10000000000000000000UL)
    - item_type: preproc_def
      name: BN_DEC_NUM
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '19'
    - item_type: preproc_def
      name: BN_DEC_FMT1
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '"%lu"'
    - item_type: preproc_def
      name: BN_DEC_FMT2
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '"%019lu"'
    - item_type: preproc_def
      name: BN_BITS4
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '32'
    - item_type: preproc_def
      name: BN_MASK2
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffffffffffffffffLL)
    - item_type: preproc_def
      name: BN_MASK2l
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffffffffL)
    - item_type: preproc_def
      name: BN_MASK2h
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffffffff00000000LL)
    - item_type: preproc_def
      name: BN_MASK2h1
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffffffff80000000LL)
    - item_type: preproc_def
      name: BN_DEC_CONV
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (10000000000000000000ULL)
    - item_type: preproc_def
      name: BN_DEC_NUM
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '19'
    - item_type: preproc_def
      name: BN_DEC_FMT1
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '"%llu"'
    - item_type: preproc_def
      name: BN_DEC_FMT2
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '"%019llu"'
    - item_type: preproc_def
      name: BN_ULLONG
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: unsigned __int64
    - item_type: preproc_def
      name: BN_ULLONG
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: BN_BITS4
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '16'
    - item_type: preproc_def
      name: BN_MASK2
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffffffffL)
    - item_type: preproc_def
      name: BN_MASK2l
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffff)
    - item_type: preproc_def
      name: BN_MASK2h1
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffff8000L)
    - item_type: preproc_def
      name: BN_MASK2h
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (0xffff0000L)
    - item_type: preproc_def
      name: BN_DEC_CONV
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (1000000000L)
    - item_type: preproc_def
      name: BN_DEC_NUM
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '9'
    - item_type: preproc_def
      name: BN_DEC_FMT1
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '"%u"'
    - item_type: preproc_def
      name: BN_DEC_FMT2
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '"%09u"'
    - item_type: preproc_def
      name: BN_FLG_FIXED_TOP
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: BN_FLG_FIXED_TOP
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: ( 64 )
    - item_type: preproc_def
      name: MOD_EXP_CTIME_MIN_CACHE_LINE_MASK
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH - 1)
    - item_type: preproc_def
      name: BN_MAX_WINDOW_BITS_FOR_CTIME_EXPONENT_SIZE
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (6)
    - item_type: preproc_def
      name: BN_MAX_WINDOW_BITS_FOR_CTIME_EXPONENT_SIZE
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (5)
    - item_type: preproc_def
      name: BN_MULL_SIZE_NORMAL
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (16)
    - item_type: preproc_def
      name: BN_MUL_RECURSIVE_SIZE_NORMAL
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (16)
    - item_type: preproc_def
      name: BN_SQR_RECURSIVE_SIZE_NORMAL
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (16)
    - item_type: preproc_def
      name: BN_MUL_LOW_RECURSIVE_SIZE_NORMAL
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (32)
    - item_type: preproc_def
      name: BN_MONT_CTX_SET_SIZE_WORD
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: (64)
    - item_type: preproc_def
      name: PTR_SIZE_INT
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: long long
    - item_type: preproc_def
      name: PTR_SIZE_INT
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: int
    - item_type: preproc_def
      name: PTR_SIZE_INT
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
      type_or_value: size_t
    structs:
    - fields:
      - name: '*d'
        type: BN_ULONG
      - name: top
        type: int
      - name: dmax
        type: int
      - name: neg
        type: int
      - name: flags
        type: int
      item_type: struct
      name: bignum_st
      pos:
        line_end: 225
        line_start: 217
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    - fields:
      - name: ri
        type: int
      - name: RR
        type: BIGNUM
      - name: N
        type: BIGNUM
      - name: Ni
        type: BIGNUM
      - name: n0[2]
        type: BN_ULONG
      - name: flags
        type: int
      item_type: struct
      name: bn_mont_ctx_st
      pos:
        line_end: 239
        line_start: 228
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    - fields:
      - name: N
        type: BIGNUM
      - name: Nr
        type: BIGNUM
      - name: num_bits
        type: int
      - name: shift
        type: int
      - name: flags
        type: int
      item_type: struct
      name: bn_recp_ctx_st
      pos:
        line_end: 251
        line_start: 245
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    - fields:
      - name: ver
        type: unsigned int
      - name: '*arg'
        type: void
      - name: cb
        type: "union {\n        /* if (ver==1) - handles old style callbacks */\n
          \       void (*cb_1) (int, int, void *);\n        /* if (ver==2) - new callback
          style */\n        int (*cb_2) (int, int, BN_GENCB *);\n    }"
      item_type: struct
      name: bn_gencb_st
      pos:
        line_end: 263
        line_start: 254
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_local.h
    typedefs: []
    union: []
- function_names:
  - BN_add
  - BN_sub
  - BN_uadd
  - BN_usub
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_add.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_prime.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUMPRIMES
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_prime.h
      type_or_value: '2048'
    structs: []
    typedefs:
    - item_type: typedef
      name: prime_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_prime.h
      type: unsigned short
    union: []
- function_names:
  - make_dh_bn
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_dh.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_mod_word
  - BN_div_word
  - BN_add_word
  - BN_sub_word
  - BN_mul_word
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_word.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bnrand
  - BN_rand
  - BN_bntest_rand
  - BN_priv_rand
  - bnrand_range
  - BN_rand_range
  - BN_priv_rand_range
  - BN_pseudo_rand
  - BN_pseudo_rand_range
  - BN_generate_dsa_nonce
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
  types:
    enum:
    - enumerators:
      - name: NORMAL
      - name: PRIVATE
      - name: TESTING
      item_type: enum
      name: bnrand_flag_e
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_rand.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bn_compute_wNAF
  - bn_get_top
  - bn_get_dmax
  - bn_set_all_zero
  - bn_copy_words
  - bn_get_words
  - bn_set_static_words
  - bn_set_words
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_intern.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - alloca
  - BN_exp
  - BN_mod_exp
  - BN_mod_exp_recp
  - BN_mod_exp_mont
  - bn_get_bits
  - MOD_EXP_CTIME_COPY_TO_PREBUF
  - MOD_EXP_CTIME_COPY_FROM_PREBUF
  - MOD_EXP_CTIME_ALIGN
  - BN_mod_exp_mont_consttime
  - BN_mod_exp_mont_word
  - BN_MOD_MUL_WORD
  - BN_TO_MONTGOMERY_WORD
  - BN_mod_exp_simple
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: alloca
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
      type_or_value: _alloca
    - item_type: preproc_def
      name: TABLE_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
      type_or_value: '32'
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*bn_pwr5_mont_f) (BN_ULONG *tp, const BN_ULONG *np,\n                                       const
        BN_ULONG *n0, const void *table,\n                                       int
        power, int bits)"
      pos:
        line_end: 763
        line_start: 761
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
      type: int
    - item_type: typedef
      name: "(*bn_mul_mont_f) (BN_ULONG *rp, const BN_ULONG *ap,\n                                      const
        void *bp, const BN_ULONG *np,\n                                      const
        BN_ULONG *n0)"
      pos:
        line_end: 784
        line_start: 782
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_exp.c
      type: int
    union: []
- function_names:
  - bn_pack4
  - bn_pack4
  - bn_pack4
  - bn_pack4
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_srp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_generate_prime
  - BN_is_prime
  - BN_is_prime_fasttest
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_depr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_bn2hex
  - BN_bn2dec
  - BN_hex2bn
  - BN_dec2bn
  - BN_asc2bn
  - BN_print_fp
  - BN_print
  - BN_options
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_print.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ctxdbg
  - CTXDBG_ENTRY
  - CTXDBG_EXIT
  - BN_CTX_new
  - BN_CTX_secure_new
  - BN_CTX_free
  - BN_CTX_start
  - BN_CTX_end
  - BN_CTX_get
  - BN_STACK_init
  - BN_STACK_finish
  - BN_STACK_push
  - BN_STACK_pop
  - BN_POOL_init
  - BN_POOL_finish
  - BN_POOL_get
  - BN_POOL_release
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BN_CTX_POOL_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
      type_or_value: '16'
    - item_type: preproc_def
      name: BN_CTX_START_FRAMES
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
      type_or_value: '32'
    structs:
    - fields:
      - name: vals[BN_CTX_POOL_SIZE]
        type: BIGNUM
      - name: '*prev'
        type: struct bignum_pool_item
      item_type: struct
      name: bignum_pool_item
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    - fields:
      - name: '*head'
        type: BN_POOL_ITEM
      - name: used
        type: unsigned
      item_type: struct
      name: bignum_pool
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    - fields:
      - name: '*indexes'
        type: unsigned int
      - name: depth
        type: unsigned int
      item_type: struct
      name: bignum_ctx_stack
      pos:
        line_end: 63
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    - fields:
      - name: pool
        type: BN_POOL
      - name: stack
        type: BN_STACK
      - name: used
        type: unsigned int
      - name: err_stack
        type: int
      - name: too_many
        type: int
      - name: flags
        type: int
      item_type: struct
      name: bignum_ctx
      pos:
        line_end: 87
        line_start: 74
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_ctx.c
    typedefs: []
    union: []
- function_names:
  - SQR_nibble
  - SQR1
  - SQR0
  - SQR1
  - SQR0
  - bn_GF2m_mul_1x1
  - bn_GF2m_mul_1x1
  - bn_GF2m_mul_2x2
  - BN_GF2m_add
  - BN_GF2m_mod_arr
  - BN_GF2m_mod
  - BN_GF2m_mod_mul_arr
  - BN_GF2m_mod_mul
  - BN_GF2m_mod_sqr_arr
  - BN_GF2m_mod_sqr
  - BN_GF2m_mod_inv_vartime
  - BN_GF2m_mod_inv
  - BN_GF2m_mod_inv_arr
  - BN_GF2m_mod_div
  - BN_GF2m_mod_div_arr
  - BN_GF2m_mod_exp_arr
  - BN_GF2m_mod_exp
  - BN_GF2m_mod_sqrt_arr
  - BN_GF2m_mod_sqrt
  - BN_GF2m_mod_solve_quad_arr
  - BN_GF2m_mod_solve_quad
  - BN_GF2m_poly2arr
  - BN_GF2m_arr2poly
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ITERATIONS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_gf2m.c
      type_or_value: '50'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_RECP_CTX_init
  - BN_RECP_CTX_new
  - BN_RECP_CTX_free
  - BN_RECP_CTX_set
  - BN_mod_mul_reciprocal
  - BN_div_recp
  - BN_reciprocal
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_recp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bn_mul_add_words
  - bn_mul_words
  - bn_sqr_words
  - bn_mul_add_words
  - bn_mul_words
  - bn_sqr_words
  - bn_div_words
  - bn_div_words
  - bn_add_words
  - bn_add_words
  - bn_sub_words
  - mul_add_c
  - mul_add_c2
  - sqr_add_c
  - sqr_add_c2
  - mul_add_c
  - mul_add_c2
  - sqr_add_c
  - sqr_add_c2
  - mul_add_c
  - mul_add_c2
  - sqr_add_c
  - sqr_add_c2
  - mul_add_c
  - mul_add_c2
  - sqr_add_c
  - sqr_add_c2
  - bn_mul_comba8
  - bn_mul_comba4
  - bn_sqr_comba8
  - bn_sqr_comba4
  - bn_mul_mont
  - bn_mul_mont
  - bn_sqr_comba4
  - bn_sqr_comba8
  - bn_mul_comba4
  - bn_mul_comba8
  - bn_mul_mont
  - bn_mul_mont
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_asm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_bn2mpi
  - BN_mpi2bn
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_mpi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_mod_exp2_mont
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TABLE_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/bn/bn_exp2.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_sqr
  - bn_sqr_fixed_top
  - bn_sqr_normal
  - bn_sqr_recursive
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_sqr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - square
  - BN_GENCB_call
  - BN_generate_prime_ex
  - BN_is_prime_ex
  - BN_is_prime_fasttest_ex
  - witness
  - probable_prime
  - probable_prime_dh
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_prime.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bn_x931_derive_pi
  - BN_X931_derive_prime_ex
  - BN_X931_generate_Xpq
  - BN_X931_generate_prime_ex
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_x931p.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_mod_sqrt
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_sqrt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bn_sub_part_words
  - bn_mul_recursive
  - bn_mul_part_recursive
  - bn_mul_low_recursive
  - BN_mul
  - bn_mul_fixed_top
  - bn_mul_normal
  - bn_mul_low_normal
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_mul.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_get_rfc2409_prime_768
  - BN_get_rfc2409_prime_1024
  - BN_get_rfc3526_prime_1536
  - BN_get_rfc3526_prime_2048
  - BN_get_rfc3526_prime_3072
  - BN_get_rfc3526_prime_4096
  - BN_get_rfc3526_prime_6144
  - BN_get_rfc3526_prime_8192
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_const.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_mod_mul_montgomery
  - bn_mul_mont_fixed_top
  - bn_from_montgomery_word
  - BN_from_montgomery
  - bn_from_mont_fixed_top
  - bn_to_mont_fixed_top
  - BN_MONT_CTX_new
  - BN_MONT_CTX_init
  - BN_MONT_CTX_free
  - BN_MONT_CTX_set
  - BN_MONT_CTX_copy
  - BN_MONT_CTX_set_locked
  source_file: /src/openssl-1.1.1g/crypto/bn/bn_mont.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mul_add
  - mul
  - sqr
  - bn_mul_add_words
  - bn_mul_words
  - bn_sqr_words
  - bn_div_words
  - bn_add_words
  - bn_sub_words
  - bn_sub_words
  - mul_add_c
  - mul_add_c2
  - sqr_add_c
  - mul_add_c
  - sqr_add_c
  - mul_add_c2
  - sqr_add_c2
  - bn_mul_comba8
  - bn_mul_comba4
  - bn_sqr_comba8
  - bn_sqr_comba4
  source_file: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BN_MASK2
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/openssl-1.1.1g/crypto/bn/asm/x86_64-gcc.c
      type_or_value: 0xffffffffffffffffL
    structs: []
    typedefs: []
    union: []
- function_names:
  - t_fromb64
  - t_tob64
  - SRP_user_pwd_free
  - SRP_user_pwd_new
  - SRP_user_pwd_set_gN
  - SRP_user_pwd_set_ids
  - SRP_user_pwd_set_sv
  - SRP_user_pwd_set_sv_BN
  - srp_user_pwd_dup
  - SRP_VBASE_new
  - SRP_VBASE_free
  - SRP_gN_new_init
  - SRP_gN_free
  - SRP_get_gN_by_id
  - SRP_gN_place_bn
  - SRP_VBASE_init
  - find_user
  - SRP_VBASE_get_by_user
  - SRP_VBASE_get1_by_user
  - SRP_create_verifier
  - SRP_create_verifier_BN
  source_file: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SRP_RANDOM_SALT_LEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
      type_or_value: '20'
    - item_type: preproc_def
      name: MAX_LEN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/srp/srp_vfy.c
      type_or_value: '2500'
    structs: []
    typedefs: []
    union: []
- function_names:
  - srp_Calc_xy
  - srp_Calc_k
  - SRP_Calc_u
  - SRP_Calc_server_key
  - SRP_Calc_B
  - SRP_Calc_x
  - SRP_Calc_A
  - SRP_Calc_client_key
  - SRP_Verify_B_mod_N
  - SRP_Verify_A_mod_N
  - SRP_check_known_gN_param
  - SRP_get_default_gN
  source_file: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KNOWN_GN_NUMBER
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/openssl-1.1.1g/crypto/srp/srp_lib.c
      type_or_value: sizeof(knowngN) / sizeof(SRP_gN)
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_CRL_set_version
  - X509_CRL_set_issuer_name
  - X509_CRL_set1_lastUpdate
  - X509_CRL_set1_nextUpdate
  - X509_CRL_sort
  - X509_CRL_up_ref
  - X509_CRL_get_version
  - X509_CRL_get0_lastUpdate
  - X509_CRL_get0_nextUpdate
  - X509_CRL_get_lastUpdate
  - X509_CRL_get_nextUpdate
  - X509_CRL_get_issuer
  - X509_CRL_get0_extensions
  - X509_CRL_get0_signature
  - X509_CRL_get_signature_nid
  - X509_REVOKED_get0_revocationDate
  - X509_REVOKED_set_revocationDate
  - X509_REVOKED_get0_serialNumber
  - X509_REVOKED_set_serialNumber
  - X509_REVOKED_get0_extensions
  - i2d_re_X509_CRL_tbs
  source_file: /src/openssl-1.1.1g/crypto/x509/x509cset.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_NAME_get_text_by_NID
  - X509_NAME_get_text_by_OBJ
  - X509_NAME_entry_count
  - X509_NAME_get_index_by_NID
  - X509_NAME_get_index_by_OBJ
  - X509_NAME_get_entry
  - X509_NAME_delete_entry
  - X509_NAME_add_entry_by_OBJ
  - X509_NAME_add_entry_by_NID
  - X509_NAME_add_entry_by_txt
  - X509_NAME_add_entry
  - X509_NAME_ENTRY_create_by_txt
  - X509_NAME_ENTRY_create_by_NID
  - X509_NAME_ENTRY_create_by_OBJ
  - X509_NAME_ENTRY_set_object
  - X509_NAME_ENTRY_set_data
  - X509_NAME_ENTRY_get_object
  - X509_NAME_ENTRY_get_data
  - X509_NAME_ENTRY_set
  source_file: /src/openssl-1.1.1g/crypto/x509/x509name.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_REQ_to_X509
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_r2x.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_certificate_type
  source_file: /src/openssl-1.1.1g/crypto/x509/x509type.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_verify
  - X509_REQ_verify
  - NETSCAPE_SPKI_verify
  - X509_sign
  - X509_sign_ctx
  - X509_http_nbio
  - X509_REQ_sign
  - X509_REQ_sign_ctx
  - X509_CRL_sign
  - X509_CRL_sign_ctx
  - X509_CRL_http_nbio
  - NETSCAPE_SPKI_sign
  - d2i_X509_fp
  - i2d_X509_fp
  - d2i_X509_bio
  - i2d_X509_bio
  - d2i_X509_CRL_fp
  - i2d_X509_CRL_fp
  - d2i_X509_CRL_bio
  - i2d_X509_CRL_bio
  - d2i_PKCS7_fp
  - i2d_PKCS7_fp
  - d2i_PKCS7_bio
  - i2d_PKCS7_bio
  - d2i_X509_REQ_fp
  - i2d_X509_REQ_fp
  - d2i_X509_REQ_bio
  - i2d_X509_REQ_bio
  - d2i_RSAPrivateKey_fp
  - i2d_RSAPrivateKey_fp
  - d2i_RSAPublicKey_fp
  - d2i_RSA_PUBKEY_fp
  - i2d_RSAPublicKey_fp
  - i2d_RSA_PUBKEY_fp
  - d2i_RSAPrivateKey_bio
  - i2d_RSAPrivateKey_bio
  - d2i_RSAPublicKey_bio
  - d2i_RSA_PUBKEY_bio
  - i2d_RSAPublicKey_bio
  - i2d_RSA_PUBKEY_bio
  - d2i_DSAPrivateKey_fp
  - i2d_DSAPrivateKey_fp
  - d2i_DSA_PUBKEY_fp
  - i2d_DSA_PUBKEY_fp
  - d2i_DSAPrivateKey_bio
  - i2d_DSAPrivateKey_bio
  - d2i_DSA_PUBKEY_bio
  - i2d_DSA_PUBKEY_bio
  - d2i_EC_PUBKEY_fp
  - i2d_EC_PUBKEY_fp
  - d2i_ECPrivateKey_fp
  - i2d_ECPrivateKey_fp
  - d2i_EC_PUBKEY_bio
  - i2d_EC_PUBKEY_bio
  - d2i_ECPrivateKey_bio
  - i2d_ECPrivateKey_bio
  - X509_pubkey_digest
  - X509_digest
  - X509_CRL_digest
  - X509_REQ_digest
  - X509_NAME_digest
  - PKCS7_ISSUER_AND_SERIAL_digest
  - d2i_PKCS8_fp
  - i2d_PKCS8_fp
  - d2i_PKCS8_bio
  - i2d_PKCS8_bio
  - d2i_PKCS8_PRIV_KEY_INFO_fp
  - i2d_PKCS8_PRIV_KEY_INFO_fp
  - i2d_PKCS8PrivateKeyInfo_fp
  - i2d_PrivateKey_fp
  - d2i_PrivateKey_fp
  - i2d_PUBKEY_fp
  - d2i_PUBKEY_fp
  - d2i_PKCS8_PRIV_KEY_INFO_bio
  - i2d_PKCS8_PRIV_KEY_INFO_bio
  - i2d_PKCS8PrivateKeyInfo_bio
  - i2d_PrivateKey_bio
  - d2i_PrivateKey_bio
  - i2d_PUBKEY_bio
  - d2i_PUBKEY_bio
  source_file: /src/openssl-1.1.1g/crypto/x509/x_all.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tr_cmp
  - "(*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *,\n                                                                int)"
  - X509_check_trust
  - X509_TRUST_get_count
  - X509_TRUST_get0
  - X509_TRUST_get_by_id
  - X509_TRUST_set
  - X509_TRUST_add
  - trtable_free
  - X509_TRUST_cleanup
  - X509_TRUST_get_flags
  - X509_TRUST_get0_name
  - X509_TRUST_get_trust
  - trust_1oidany
  - trust_1oid
  - trust_compat
  - obj_trust
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X509_TRUST_COUNT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_trs.c
      type_or_value: OSSL_NELEM(trstandard)
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_verify_cert_error_string
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_txt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_CRL_get_ext_count
  - X509_CRL_get_ext_by_NID
  - X509_CRL_get_ext_by_OBJ
  - X509_CRL_get_ext_by_critical
  - X509_CRL_get_ext
  - X509_CRL_delete_ext
  - X509_CRL_get_ext_d2i
  - X509_CRL_add1_ext_i2d
  - X509_CRL_add_ext
  - X509_get_ext_count
  - X509_get_ext_by_NID
  - X509_get_ext_by_OBJ
  - X509_get_ext_by_critical
  - X509_get_ext
  - X509_delete_ext
  - X509_add_ext
  - X509_get_ext_d2i
  - X509_add1_ext_i2d
  - X509_REVOKED_get_ext_count
  - X509_REVOKED_get_ext_by_NID
  - X509_REVOKED_get_ext_by_OBJ
  - X509_REVOKED_get_ext_by_critical
  - X509_REVOKED_get_ext
  - X509_REVOKED_delete_ext
  - X509_REVOKED_add_ext
  - X509_REVOKED_get_ext_d2i
  - X509_REVOKED_add1_ext_i2d
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_ext.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_REQ_set_version
  - X509_REQ_set_subject_name
  - X509_REQ_set_pubkey
  source_file: /src/openssl-1.1.1g/crypto/x509/x509rset.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_get_default_private_dir
  - X509_get_default_cert_area
  - X509_get_default_cert_dir
  - X509_get_default_cert_file
  - X509_get_default_cert_dir_env
  - X509_get_default_cert_file_env
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_def.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_NAME_oneline
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_obj.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NAME_ONELINE_MAX
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_obj.c
      type_or_value: (1024 * 1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_issuer_and_serial_cmp
  - X509_issuer_and_serial_hash
  - X509_issuer_name_cmp
  - X509_subject_name_cmp
  - X509_CRL_cmp
  - X509_CRL_match
  - X509_get_issuer_name
  - X509_issuer_name_hash
  - X509_issuer_name_hash_old
  - X509_get_subject_name
  - X509_get_serialNumber
  - X509_get0_serialNumber
  - X509_subject_name_hash
  - X509_subject_name_hash_old
  - X509_cmp
  - X509_NAME_cmp
  - X509_NAME_hash
  - X509_NAME_hash_old
  - X509_get0_pubkey
  - X509_get_pubkey
  - X509_check_private_key
  - check_suite_b
  - X509_chain_check_suiteb
  - X509_CRL_check_suiteb
  - X509_chain_check_suiteb
  - X509_CRL_check_suiteb
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_cmp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_trusted
  - aux_get
  - X509_alias_set1
  - X509_keyid_set1
  - X509_alias_get0
  - X509_keyid_get0
  - X509_add1_trust_object
  - X509_add1_reject_object
  - X509_trust_clear
  - X509_reject_clear
  source_file: /src/openssl-1.1.1g/crypto/x509/x_x509a.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_LOOKUP_new
  - X509_LOOKUP_free
  - X509_STORE_lock
  - X509_STORE_unlock
  - X509_LOOKUP_init
  - X509_LOOKUP_shutdown
  - X509_LOOKUP_ctrl
  - X509_LOOKUP_by_subject
  - X509_LOOKUP_by_issuer_serial
  - X509_LOOKUP_by_fingerprint
  - X509_LOOKUP_by_alias
  - X509_LOOKUP_set_method_data
  - X509_LOOKUP_get_method_data
  - X509_LOOKUP_get_store
  - x509_object_cmp
  - X509_STORE_new
  - X509_STORE_free
  - X509_STORE_up_ref
  - X509_STORE_add_lookup
  - X509_STORE_CTX_get_obj_by_subject
  - X509_STORE_CTX_get_by_subject
  - x509_store_add
  - X509_STORE_add_cert
  - X509_STORE_add_crl
  - X509_OBJECT_up_ref_count
  - X509_OBJECT_get0_X509
  - X509_OBJECT_get0_X509_CRL
  - X509_OBJECT_get_type
  - X509_OBJECT_new
  - x509_object_free_internal
  - X509_OBJECT_set1_X509
  - X509_OBJECT_set1_X509_CRL
  - X509_OBJECT_free
  - X509_STORE_CTX_get1_issuer
  - X509_STORE_set_flags
  - X509_STORE_set_depth
  - X509_STORE_set_purpose
  - X509_STORE_set_trust
  - X509_STORE_set1_param
  - X509_STORE_get0_param
  - X509_STORE_set_verify
  - X509_STORE_get_verify
  - X509_STORE_set_verify_cb
  - X509_STORE_get_verify_cb
  - X509_STORE_set_get_issuer
  - X509_STORE_get_get_issuer
  - X509_STORE_set_check_issued
  - X509_STORE_get_check_issued
  - X509_STORE_set_check_revocation
  - X509_STORE_get_check_revocation
  - X509_STORE_set_get_crl
  - X509_STORE_get_get_crl
  - X509_STORE_set_check_crl
  - X509_STORE_get_check_crl
  - X509_STORE_set_cert_crl
  - X509_STORE_get_cert_crl
  - X509_STORE_set_check_policy
  - X509_STORE_get_check_policy
  - X509_STORE_set_lookup_certs
  - X509_STORE_get_lookup_certs
  - X509_STORE_set_lookup_crls
  - X509_STORE_get_lookup_crls
  - X509_STORE_set_cleanup
  - X509_STORE_get_cleanup
  - X509_STORE_set_ex_data
  - X509_STORE_get_ex_data
  - X509_STORE_CTX_get0_store
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_lu.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_LOOKUP_meth_new
  - X509_LOOKUP_meth_free
  - X509_LOOKUP_meth_set_new_item
  - "(*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method))\n    (X509_LOOKUP
    *ctx)"
  - X509_LOOKUP_meth_set_free
  - "(*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method))\n    (X509_LOOKUP
    *ctx)"
  - X509_LOOKUP_meth_set_init
  - "(*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method))\n    (X509_LOOKUP
    *ctx)"
  - X509_LOOKUP_meth_set_shutdown
  - "(*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method))\n    (X509_LOOKUP
    *ctx)"
  - X509_LOOKUP_meth_set_ctrl
  - X509_LOOKUP_meth_get_ctrl
  - X509_LOOKUP_meth_set_get_by_subject
  - X509_LOOKUP_meth_get_get_by_subject
  - X509_LOOKUP_meth_set_get_by_issuer_serial
  - X509_LOOKUP_meth_get_get_by_issuer_serial
  - X509_LOOKUP_meth_set_get_by_fingerprint
  - X509_LOOKUP_meth_get_get_by_fingerprint
  - X509_LOOKUP_meth_set_get_by_alias
  - X509_LOOKUP_meth_get_get_by_alias
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_meth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X509_CRL_METHOD_DYNAMIC
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: check_time
        type: time_t
      - name: inh_flags
        type: uint32_t
      - name: flags
        type: unsigned long
      - name: purpose
        type: int
      - name: trust
        type: int
      - name: depth
        type: int
      - name: auth_level
        type: int
      - name: '*policies'
        type: STACK_OF
      - name: '*hosts'
        type: STACK_OF
      - name: hostflags
        type: unsigned int
      - name: '*peername'
        type: char
      - name: '*email'
        type: char
      - name: emaillen
        type: size_t
      - name: '*ip'
        type: unsigned char
      - name: iplen
        type: size_t
      item_type: struct
      name: X509_VERIFY_PARAM_st
      pos:
        line_end: 35
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
    - fields:
      - name: '*object'
        type: ASN1_OBJECT
      - name: '*set'
        type: STACK_OF
      item_type: struct
      name: x509_attributes_st
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
    - fields:
      - name: '*object'
        type: ASN1_OBJECT
      - name: critical
        type: ASN1_BOOLEAN
      - name: value
        type: ASN1_OCTET_STRING
      item_type: struct
      name: X509_extension_st
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
    - fields:
      - name: flags
        type: int
      - name: (*crl_init) (X509_CRL *crl)
        type: int
      - name: (*crl_free) (X509_CRL *crl)
        type: int
      - name: "(*crl_lookup) (X509_CRL *crl, X509_REVOKED **ret,\n                       ASN1_INTEGER
          *ser, X509_NAME *issuer)"
        type: int
      - name: (*crl_verify) (X509_CRL *crl, EVP_PKEY *pk)
        type: int
      item_type: struct
      name: x509_crl_method_st
      pos:
        line_end: 68
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
    - fields:
      - name: '*name'
        type: char
      - name: (*new_item) (X509_LOOKUP *ctx)
        type: int
      - name: (*free) (X509_LOOKUP *ctx)
        type: void
      - name: (*init) (X509_LOOKUP *ctx)
        type: int
      - name: (*shutdown) (X509_LOOKUP *ctx)
        type: int
      - name: "(*ctrl) (X509_LOOKUP *ctx, int cmd, const char *argc, long argl,\n
          \                char **ret)"
        type: int
      - name: "(*get_by_subject) (X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n                           X509_NAME
          *name, X509_OBJECT *ret)"
        type: int
      - name: "(*get_by_issuer_serial) (X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
          \                                X509_NAME *name, ASN1_INTEGER *serial,\n
          \                                X509_OBJECT *ret)"
        type: int
      - name: "(*get_by_fingerprint) (X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n                               const
          unsigned char *bytes, int len,\n                               X509_OBJECT
          *ret)"
        type: int
      - name: "(*get_by_alias) (X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n                         const
          char *str, int len, X509_OBJECT *ret)"
        type: int
      item_type: struct
      name: x509_lookup_method_st
      pos:
        line_end: 88
        line_start: 70
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
    - fields:
      - name: init
        type: int
      - name: skip
        type: int
      - name: '*method'
        type: X509_LOOKUP_METHOD
      - name: '*method_data'
        type: void
      - name: '*store_ctx'
        type: X509_STORE
      item_type: struct
      name: x509_lookup_st
      pos:
        line_end: 97
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
    - fields:
      - name: cache
        type: int
      - name: '*objs'
        type: STACK_OF
      - name: '*get_cert_methods'
        type: STACK_OF
      - name: '*param'
        type: X509_VERIFY_PARAM
      - name: (*verify) (X509_STORE_CTX *ctx)
        type: int
      - name: (*verify_cb) (int ok, X509_STORE_CTX *ctx)
        type: int
      - name: (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
        type: int
      - name: (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer)
        type: int
      - name: (*check_revocation) (X509_STORE_CTX *ctx)
        type: int
      - name: (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x)
        type: int
      - name: (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl)
        type: int
      - name: (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
        type: int
      - name: (*check_policy) (X509_STORE_CTX *ctx)
        type: int
      - name: '*(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm)'
        type: STACK_OF
      - name: '*(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm)'
        type: STACK_OF
      - name: (*cleanup) (X509_STORE_CTX *ctx)
        type: int
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: references
        type: CRYPTO_REF_COUNT
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: x509_store_st
      pos:
        line_end: 136
        line_start: 104
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
    typedefs:
    - item_type: typedef
      name: BY_DIR_HASH
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
      type: lookup_dir_hashes_st
    - item_type: typedef
      name: BY_DIR_ENTRY
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
      type: lookup_dir_entry_st
    - item_type: typedef
      name: (X509_NAME_ENTRY)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_local.h
      type: STACK_OF
    union: []
- function_names:
  - X509_LOOKUP_file
  - by_file_ctrl
  - X509_load_cert_file
  - X509_load_crl_file
  - X509_load_cert_crl_file
  source_file: /src/openssl-1.1.1g/crypto/x509/by_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_ATTRIBUTE_create
  source_file: /src/openssl-1.1.1g/crypto/x509/x_attrib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rinf_cb
  source_file: /src/openssl-1.1.1g/crypto/x509/x_req.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_set_version
  - X509_set_serialNumber
  - X509_set_issuer_name
  - X509_set_subject_name
  - x509_set1_time
  - X509_set1_notBefore
  - X509_set1_notAfter
  - X509_set_pubkey
  - X509_up_ref
  - X509_get_version
  - X509_get0_notBefore
  - X509_get0_notAfter
  - X509_getm_notBefore
  - X509_getm_notAfter
  - X509_get_signature_type
  - X509_get_X509_PUBKEY
  - X509_get0_extensions
  - X509_get0_uids
  - X509_get0_tbs_sigalg
  - X509_SIG_INFO_get
  - X509_SIG_INFO_set
  - X509_get_signature_info
  - x509_sig_info_init
  - x509_init_sig_info
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_set.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - x509_cb
  - X509_set_ex_data
  - X509_get_ex_data
  - d2i_X509_AUX
  - i2d_x509_aux_internal
  - i2d_X509_AUX
  - i2d_re_X509_tbs
  - X509_get0_signature
  - X509_get_signature_nid
  source_file: /src/openssl-1.1.1g/crypto/x509/x_x509.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/x509/x_exten.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pubkey_cb
  - X509_PUBKEY_set
  - x509_pubkey_decode
  - X509_PUBKEY_get0
  - X509_PUBKEY_get
  - d2i_PUBKEY
  - i2d_PUBKEY
  - d2i_RSA_PUBKEY
  - i2d_RSA_PUBKEY
  - d2i_DSA_PUBKEY
  - i2d_DSA_PUBKEY
  - d2i_EC_PUBKEY
  - i2d_EC_PUBKEY
  - X509_PUBKEY_set0_param
  - X509_PUBKEY_get0_param
  - X509_get0_pubkey_bitstr
  source_file: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*algor'
        type: X509_ALGOR
      - name: '*public_key'
        type: ASN1_BIT_STRING
      - name: '*pkey'
        type: EVP_PKEY
      item_type: struct
      name: X509_pubkey_st
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/x509/x_pubkey.c
    typedefs: []
    union: []
- function_names:
  - X509_LOOKUP_hash_dir
  - dir_ctrl
  - new_dir
  - by_dir_hash_free
  - by_dir_hash_cmp
  - by_dir_entry_free
  - free_dir
  - add_cert_dir
  - get_cert_by_subject
  source_file: /src/openssl-1.1.1g/crypto/x509/by_dir.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/openssl-1.1.1g/crypto/x509/by_dir.c
      type_or_value: _stat
    structs:
    - fields:
      - name: hash
        type: unsigned long
      - name: suffix
        type: int
      item_type: struct
      name: lookup_dir_hashes_st
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    - fields:
      - name: '*dir'
        type: char
      - name: dir_type
        type: int
      - name: '*hashes'
        type: STACK_OF
      item_type: struct
      name: lookup_dir_entry_st
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    - fields:
      - name: '*buffer'
        type: BUF_MEM
      - name: '*dirs'
        type: STACK_OF
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: lookup_dir_st
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/x509/by_dir.c
    typedefs: []
    union:
    - fields:
      - name: st_x509
        type: X509
      - name: crl
        type: X509_CRL
      item_type: union
      name: data
      pos:
        line_end: 217
        line_start: 214
        source_file: /src/openssl-1.1.1g/crypto/x509/by_dir.c
- function_names:
  - str_copy
  - str_free
  - int_x509_param_set_hosts
  - X509_VERIFY_PARAM_new
  - X509_VERIFY_PARAM_free
  - test_x509_verify_param_copy
  - x509_verify_param_copy
  - X509_VERIFY_PARAM_inherit
  - X509_VERIFY_PARAM_set1
  - int_x509_param_set1
  - X509_VERIFY_PARAM_set1_name
  - X509_VERIFY_PARAM_set_flags
  - X509_VERIFY_PARAM_clear_flags
  - X509_VERIFY_PARAM_get_flags
  - X509_VERIFY_PARAM_get_inh_flags
  - X509_VERIFY_PARAM_set_inh_flags
  - X509_VERIFY_PARAM_set_purpose
  - X509_VERIFY_PARAM_set_trust
  - X509_VERIFY_PARAM_set_depth
  - X509_VERIFY_PARAM_set_auth_level
  - X509_VERIFY_PARAM_get_time
  - X509_VERIFY_PARAM_set_time
  - X509_VERIFY_PARAM_add0_policy
  - X509_VERIFY_PARAM_set1_host
  - X509_VERIFY_PARAM_add1_host
  - X509_VERIFY_PARAM_set_hostflags
  - X509_VERIFY_PARAM_get_hostflags
  - X509_VERIFY_PARAM_get0_peername
  - X509_VERIFY_PARAM_move_peername
  - X509_VERIFY_PARAM_set1_email
  - X509_VERIFY_PARAM_set1_ip
  - X509_VERIFY_PARAM_set1_ip_asc
  - X509_VERIFY_PARAM_get_depth
  - X509_VERIFY_PARAM_get_auth_level
  - X509_VERIFY_PARAM_get0_name
  - table_cmp
  - param_cmp
  - X509_VERIFY_PARAM_add0_table
  - X509_VERIFY_PARAM_get_count
  - X509_VERIFY_PARAM_get0
  - X509_VERIFY_PARAM_lookup
  - X509_VERIFY_PARAM_table_cleanup
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SET_HOST
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ADD_HOST
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
      type_or_value: '1'
    - item_type: preproc_def
      name: vpm_empty_id
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vpm.c
      type_or_value: NULL, 0U, NULL, NULL, 0, NULL, 0
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_print_fp
  - X509_print_ex_fp
  - X509_print
  - X509_print_ex
  - X509_ocspid_print
  - X509_signature_dump
  - X509_signature_print
  - X509_aux_print
  source_file: /src/openssl-1.1.1g/crypto/x509/t_x509.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - null_callback
  - cert_self_signed
  - lookup_cert_match
  - verify_cb_cert
  - verify_cb_crl
  - check_auth_level
  - verify_chain
  - X509_verify_cert
  - find_issuer
  - check_issued
  - get_issuer_sk
  - lookup_certs_sk
  - check_purpose
  - check_chain_extensions
  - has_san_id
  - check_name_constraints
  - check_id_error
  - check_hosts
  - check_id
  - check_trust
  - check_revocation
  - check_cert
  - check_crl_time
  - get_crl_sk
  - crl_extension_match
  - check_delta_base
  - get_delta_sk
  - get_crl_score
  - crl_akid_check
  - check_crl_path
  - idp_check_dp
  - crldp_check_crlissuer
  - crl_crldp_check
  - get_crl_delta
  - check_crl
  - cert_crl
  - check_policy
  - x509_check_cert_time
  - internal_verify
  - X509_cmp_current_time
  - X509_cmp_time
  - X509_gmtime_adj
  - X509_time_adj
  - X509_time_adj_ex
  - X509_CRL_diff
  - X509_STORE_CTX_set_ex_data
  - X509_STORE_CTX_get_ex_data
  - X509_STORE_CTX_get_error
  - X509_STORE_CTX_set_error
  - X509_STORE_CTX_get_error_depth
  - X509_STORE_CTX_set_error_depth
  - X509_STORE_CTX_get_current_cert
  - X509_STORE_CTX_set_current_cert
  - X509_STORE_CTX_get0_current_issuer
  - X509_STORE_CTX_get0_current_crl
  - X509_STORE_CTX_get0_parent_ctx
  - X509_STORE_CTX_set_cert
  - X509_STORE_CTX_set_purpose
  - X509_STORE_CTX_set_trust
  - X509_STORE_CTX_purpose_inherit
  - X509_STORE_CTX_new
  - X509_STORE_CTX_free
  - X509_STORE_CTX_cleanup
  - X509_STORE_CTX_set_depth
  - X509_STORE_CTX_set_flags
  - X509_STORE_CTX_set_time
  - X509_STORE_CTX_get0_cert
  - X509_STORE_CTX_set_verify_cb
  - X509_STORE_CTX_get_verify_cb
  - X509_STORE_CTX_set_verify
  - X509_STORE_CTX_get_verify
  - X509_STORE_CTX_get_get_issuer
  - X509_STORE_CTX_get_check_issued
  - X509_STORE_CTX_get_check_revocation
  - X509_STORE_CTX_get_get_crl
  - X509_STORE_CTX_get_check_crl
  - X509_STORE_CTX_get_cert_crl
  - X509_STORE_CTX_get_check_policy
  - X509_STORE_CTX_get_lookup_certs
  - X509_STORE_CTX_get_lookup_crls
  - X509_STORE_CTX_get_cleanup
  - X509_STORE_CTX_get0_policy_tree
  - X509_STORE_CTX_get_explicit_policy
  - X509_STORE_CTX_get_num_untrusted
  - X509_STORE_CTX_set_default
  - X509_STORE_CTX_get0_param
  - X509_STORE_CTX_set0_param
  - X509_STORE_CTX_set0_dane
  - dane_i2d
  - dane_match
  - check_dane_issuer
  - check_dane_pkeys
  - dane_reset
  - check_leaf_suiteb
  - dane_verify
  - get_issuer
  - build_chain
  - check_key_level
  - check_sig_level
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CRL_SCORE_NOCRITICAL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: CRL_SCORE_SCOPE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '0x080'
    - item_type: preproc_def
      name: CRL_SCORE_TIME
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '0x040'
    - item_type: preproc_def
      name: CRL_SCORE_ISSUER_NAME
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '0x020'
    - item_type: preproc_def
      name: CRL_SCORE_VALID
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: (CRL_SCORE_NOCRITICAL|CRL_SCORE_TIME|CRL_SCORE_SCOPE)
    - item_type: preproc_def
      name: CRL_SCORE_ISSUER_CERT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '0x018'
    - item_type: preproc_def
      name: CRL_SCORE_SAME_PATH
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '0x008'
    - item_type: preproc_def
      name: CRL_SCORE_AKID
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '0x004'
    - item_type: preproc_def
      name: CRL_SCORE_TIME_DELTA
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '0x002'
    - item_type: preproc_def
      name: DANETLS_NONE
      pos:
        line_end: 2561
        line_start: 2560
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '256        '
    - item_type: preproc_def
      name: S_DOUNTRUSTED
      pos:
        line_end: 2887
        line_start: 2886
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '(1 << 0)     '
    - item_type: preproc_def
      name: S_DOTRUSTED
      pos:
        line_end: 2888
        line_start: 2887
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '(1 << 1)     '
    - item_type: preproc_def
      name: S_DOALTERNATE
      pos:
        line_end: 2889
        line_start: 2888
        source_file: /src/openssl-1.1.1g/crypto/x509/x509_vfy.c
      type_or_value: '(1 << 2)     '
    structs: []
    typedefs: []
    union: []
- function_names:
  - crl_inf_cb
  - crl_set_issuers
  - crl_cb
  - setup_idp
  - X509_REVOKED_cmp
  - X509_CRL_add0_revoked
  - X509_CRL_verify
  - X509_CRL_get0_by_serial
  - X509_CRL_get0_by_cert
  - def_crl_verify
  - crl_revoked_issuer_match
  - def_crl_lookup
  - X509_CRL_set_default_method
  - X509_CRL_METHOD_new
  - X509_CRL_METHOD_free
  - X509_CRL_set_meth_data
  - X509_CRL_get_meth_data
  source_file: /src/openssl-1.1.1g/crypto/x509/x_crl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_X509_strings
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_REQ_print_fp
  - X509_REQ_print_ex
  - X509_REQ_print
  source_file: /src/openssl-1.1.1g/crypto/x509/t_req.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_CRL_print_fp
  - X509_CRL_print
  - X509_CRL_print_ex
  source_file: /src/openssl-1.1.1g/crypto/x509/t_crl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509v3_get_ext_count
  - X509v3_get_ext_by_NID
  - X509v3_get_ext_by_OBJ
  - X509v3_get_ext_by_critical
  - X509v3_get_ext
  - X509_EXTENSION_create_by_NID
  - X509_EXTENSION_create_by_OBJ
  - X509_EXTENSION_set_object
  - X509_EXTENSION_set_critical
  - X509_EXTENSION_set_data
  - X509_EXTENSION_get_object
  - X509_EXTENSION_get_data
  - X509_EXTENSION_get_critical
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_v3.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NETSCAPE_SPKI_set_pubkey
  - NETSCAPE_SPKI_get_pubkey
  - NETSCAPE_SPKI_b64_decode
  - NETSCAPE_SPKI_b64_encode
  source_file: /src/openssl-1.1.1g/crypto/x509/x509spki.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - x509_name_ex_new
  - x509_name_ex_free
  - x509_name_ex_d2i
  - x509_name_ex_i2d
  - x509_name_encode
  - x509_name_ex_print
  - x509_name_canon
  - asn1_string_canon
  - X509_NAME_set
  - X509_NAME_print
  - X509_NAME_get0_der
  source_file: /src/openssl-1.1.1g/crypto/x509/x_name.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X509_NAME_MAX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/x509/x_name.c
      type_or_value: (1024 * 1024)
    - item_type: preproc_def
      name: ASN1_MASK_CANON
      pos:
        line_end: 382
        line_start: 378
        source_file: /src/openssl-1.1.1g/crypto/x509/x_name.c
      type_or_value: "(B_ASN1_UTF8STRING | B_ASN1_BMPSTRING | B_ASN1_UNIVERSALSTRING
        \\\n        | B_ASN1_PRINTABLESTRING | B_ASN1_T61STRING | B_ASN1_IA5STRING
        \\\n        | B_ASN1_VISIBLESTRING)"
    structs: []
    typedefs: []
    union:
    - fields:
      - name: '*s'
        type: STACK_OF
      - name: '*a'
        type: ASN1_VALUE
      item_type: union
      name: "intname = {\n        NULL\n    }"
      pos:
        line_end: 146
        line_start: 143
        source_file: /src/openssl-1.1.1g/crypto/x509/x_name.c
    - fields:
      - name: '*x'
        type: X509_NAME
      - name: '*a'
        type: ASN1_VALUE
      item_type: union
      name: "nm = {\n        NULL\n    }"
      pos:
        line_end: 152
        line_start: 149
        source_file: /src/openssl-1.1.1g/crypto/x509/x_name.c
    - fields:
      - name: '*s'
        type: STACK_OF
      - name: '*a'
        type: ASN1_VALUE
      item_type: union
      name: "intname = {\n        NULL\n    }"
      pos:
        line_end: 235
        line_start: 232
        source_file: /src/openssl-1.1.1g/crypto/x509/x_name.c
- function_names:
  - X509_STORE_set_default_paths
  - X509_STORE_load_locations
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_d2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509at_get_attr_count
  - X509at_get_attr_by_NID
  - X509at_get_attr_by_OBJ
  - X509at_get_attr
  - X509at_get0_data_by_OBJ
  - X509_ATTRIBUTE_create_by_NID
  - X509_ATTRIBUTE_create_by_OBJ
  - X509_ATTRIBUTE_create_by_txt
  - X509_ATTRIBUTE_set1_object
  - X509_ATTRIBUTE_set1_data
  - X509_ATTRIBUTE_count
  - X509_ATTRIBUTE_get0_object
  - X509_ATTRIBUTE_get0_data
  - X509_ATTRIBUTE_get0_type
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_att.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_to_X509_REQ
  - X509_REQ_get_pubkey
  - X509_REQ_get0_pubkey
  - X509_REQ_get_X509_PUBKEY
  - X509_REQ_check_private_key
  - X509_REQ_extension_nid
  - X509_REQ_get_extension_nids
  - X509_REQ_set_extension_nids
  - X509_REQ_get_attr_count
  - X509_REQ_get_attr_by_NID
  - X509_REQ_get_attr_by_OBJ
  - X509_REQ_get_attr
  - X509_REQ_delete_attr
  - X509_REQ_add1_attr
  - X509_REQ_add1_attr_by_OBJ
  - X509_REQ_add1_attr_by_NID
  - X509_REQ_add1_attr_by_txt
  - X509_REQ_get_version
  - X509_REQ_get_subject_name
  - X509_REQ_get0_signature
  - X509_REQ_get_signature_nid
  - i2d_re_X509_REQ_tbs
  source_file: /src/openssl-1.1.1g/crypto/x509/x509_req.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_OSSL_STORE_strings
  source_file: /src/openssl-1.1.1g/crypto/store/store_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OSSL_STORE_INFO_type_string
  source_file: /src/openssl-1.1.1g/crypto/store/store_strings.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/store/store_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OSSL_STORE_INFO_EMBEDDED
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/store/store_local.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: type
        type: int
      - name: _
        type: "union {\n        void *data;              /* used internally as generic
          pointer */\n\n        struct {\n            BUF_MEM *blob;\n            char
          *pem_name;\n        } embedded;              /* when type == OSSL_STORE_INFO_EMBEDDED
          */\n\n        struct {\n            char *name;\n            char *desc;\n
          \       } name;                  /* when type == OSSL_STORE_INFO_NAME */\n\n
          \       EVP_PKEY *params;        /* when type == OSSL_STORE_INFO_PARAMS
          */\n        EVP_PKEY *pkey;          /* when type == OSSL_STORE_INFO_PKEY
          */\n        X509 *x509;              /* when type == OSSL_STORE_INFO_CERT
          */\n        X509_CRL *crl;           /* when type == OSSL_STORE_INFO_CRL
          */\n    }"
      item_type: struct
      name: ossl_store_info_st
      pos:
        line_end: 42
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/store/store_local.h
    - fields:
      - name: search_type
        type: int
      - name: '*name'
        type: X509_NAME
      - name: '*serial'
        type: ASN1_INTEGER
      - name: '*digest'
        type: EVP_MD
      - name: '*string'
        type: unsigned char
      - name: stringlength
        type: size_t
      item_type: struct
      name: ossl_store_search_st
      pos:
        line_end: 89
        line_start: 68
        source_file: /src/openssl-1.1.1g/crypto/store/store_local.h
    - fields:
      - name: '*scheme'
        type: char
      - name: '*engine'
        type: ENGINE
      - name: open
        type: OSSL_STORE_open_fn
      - name: ctrl
        type: OSSL_STORE_ctrl_fn
      - name: expect
        type: OSSL_STORE_expect_fn
      - name: find
        type: OSSL_STORE_find_fn
      - name: load
        type: OSSL_STORE_load_fn
      - name: eof
        type: OSSL_STORE_eof_fn
      - name: error
        type: OSSL_STORE_error_fn
      - name: close
        type: OSSL_STORE_close_fn
      item_type: struct
      name: ossl_store_loader_st
      pos:
        line_end: 111
        line_start: 100
        source_file: /src/openssl-1.1.1g/crypto/store/store_local.h
    typedefs: []
    union: []
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - OSSL_STORE_LOADER_new
  - OSSL_STORE_LOADER_get0_engine
  - OSSL_STORE_LOADER_get0_scheme
  - OSSL_STORE_LOADER_set_open
  - OSSL_STORE_LOADER_set_ctrl
  - OSSL_STORE_LOADER_set_expect
  - OSSL_STORE_LOADER_set_find
  - OSSL_STORE_LOADER_set_load
  - OSSL_STORE_LOADER_set_eof
  - OSSL_STORE_LOADER_set_error
  - OSSL_STORE_LOADER_set_close
  - OSSL_STORE_LOADER_free
  - store_loader_hash
  - store_loader_cmp
  - ossl_store_register_loader_int
  - OSSL_STORE_register_loader
  - ossl_store_get0_loader_int
  - ossl_store_unregister_loader_int
  - OSSL_STORE_unregister_loader
  - ossl_store_destroy_loaders_int
  - OSSL_STORE_do_all_loaders
  source_file: /src/openssl-1.1.1g/crypto/store/store_register.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OSSL_STORE_open
  - OSSL_STORE_ctrl
  - OSSL_STORE_vctrl
  - OSSL_STORE_expect
  - OSSL_STORE_find
  - OSSL_STORE_load
  - OSSL_STORE_error
  - OSSL_STORE_eof
  - OSSL_STORE_close
  - store_info_new
  - OSSL_STORE_INFO_new_NAME
  - OSSL_STORE_INFO_set0_NAME_description
  - OSSL_STORE_INFO_new_PARAMS
  - OSSL_STORE_INFO_new_PKEY
  - OSSL_STORE_INFO_new_CERT
  - OSSL_STORE_INFO_new_CRL
  - OSSL_STORE_INFO_get_type
  - OSSL_STORE_INFO_get0_NAME
  - OSSL_STORE_INFO_get1_NAME
  - OSSL_STORE_INFO_get0_NAME_description
  - OSSL_STORE_INFO_get1_NAME_description
  - OSSL_STORE_INFO_get0_PARAMS
  - OSSL_STORE_INFO_get1_PARAMS
  - OSSL_STORE_INFO_get0_PKEY
  - OSSL_STORE_INFO_get1_PKEY
  - OSSL_STORE_INFO_get0_CERT
  - OSSL_STORE_INFO_get1_CERT
  - OSSL_STORE_INFO_get0_CRL
  - OSSL_STORE_INFO_get1_CRL
  - OSSL_STORE_INFO_free
  - OSSL_STORE_supports_search
  - OSSL_STORE_SEARCH_by_name
  - OSSL_STORE_SEARCH_by_issuer_serial
  - OSSL_STORE_SEARCH_by_key_fingerprint
  - OSSL_STORE_SEARCH_by_alias
  - OSSL_STORE_SEARCH_free
  - OSSL_STORE_SEARCH_get_type
  - OSSL_STORE_SEARCH_get0_name
  - OSSL_STORE_SEARCH_get0_serial
  - OSSL_STORE_SEARCH_get0_bytes
  - OSSL_STORE_SEARCH_get0_string
  - OSSL_STORE_SEARCH_get0_digest
  - ossl_store_info_new_EMBEDDED
  - ossl_store_info_get0_EMBEDDED_buffer
  - ossl_store_info_get0_EMBEDDED_pem_name
  - ossl_store_attach_pem_bio
  - ossl_store_detach_pem_bio
  source_file: /src/openssl-1.1.1g/crypto/store/store_lib.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*loader'
        type: OSSL_STORE_LOADER
      - name: '*loader_ctx'
        type: OSSL_STORE_LOADER_CTX
      - name: '*ui_method'
        type: UI_METHOD
      - name: '*ui_data'
        type: void
      - name: post_process
        type: OSSL_STORE_post_process_info_fn
      - name: '*post_process_data'
        type: void
      - name: expected_type
        type: int
      - name: loading
        type: int
      item_type: struct
      name: ossl_store_ctx_st
      pos:
        line_end: 34
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/store/store_lib.c
    typedefs: []
    union: []
- function_names:
  - S_ISDIR
  - file_get_pass
  - file_fill_pem_pass_data
  - file_get_pem_pass
  - try_decode_PKCS12
  - eof_PKCS12
  - destroy_ctx_PKCS12
  - try_decode_PKCS8Encrypted
  - try_decode_PrivateKey
  - try_decode_PUBKEY
  - try_decode_params
  - try_decode_X509Certificate
  - try_decode_X509CRL
  - OSSL_STORE_LOADER_CTX_free
  - file_open
  - file_ctrl
  - file_expect
  - file_find
  - ossl_store_file_attach_pem_bio_int
  - file_load_try_decode
  - file_load_try_repeat
  - pem_free_flag
  - file_read_pem
  - file_read_asn1
  - ends_with_dirsep
  - file_name_to_uri
  - file_name_check
  - file_load
  - file_error
  - file_eof
  - file_close
  - ossl_store_file_detach_pem_bio_int
  - store_file_loader_deinit
  - ossl_store_file_loader_init
  source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
      type_or_value: _stat
    - item_type: preproc_def
      name: FILE_FLAG_SECMEM
      pos:
        line_end: 702
        line_start: 701
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
      type_or_value: (1<<0)
    structs:
    - fields:
      - name: '*ui_method'
        type: UI_METHOD
      - name: '*data'
        type: void
      - name: '*prompt_info'
        type: char
      item_type: struct
      name: pem_pass_data
      pos:
        line_end: 94
        line_start: 90
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
    - fields:
      - name: '*name'
        type: char
      - name: try_decode
        type: file_try_decode_fn
      - name: eof
        type: file_eof_fn
      - name: destroy_ctx
        type: file_destroy_ctx_fn
      - name: repeatable
        type: int
      item_type: struct
      name: file_handler_st
      pos:
        line_end: 187
        line_start: 179
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
    - fields:
      - name: type
        type: "enum {\n        is_raw = 0,\n        is_pem,\n        is_dir\n    }"
      - name: errcnt
        type: int
      - name: flags
        type: unsigned int
      - name: _
        type: "union {\n        struct {                 /* Used with is_raw and is_pem
          */\n            BIO *file;\n\n            /*\n             * The following
          are used when the handler is marked as\n             * repeatable\n             */\n
          \           const FILE_HANDLER *last_handler;\n            void *last_handler_ctx;\n
          \       } file;\n        struct {                 /* Used with is_dir */\n
          \           OPENSSL_DIR_CTX *ctx;\n            int end_reached;\n            char
          *uri;\n\n            /*\n             * When a search expression is given,
          these are filled in.\n             * |search_name| contains the file basename
          to look for.\n             * The string is exactly 8 characters long.\n
          \            */\n            char search_name[9];\n\n            /*\n             *
          The directory reading utility we have combines opening with\n             *
          reading the first name.  To make sure we can detect the end\n             *
          at the right time, we read early and cache the name.\n             */\n
          \           const char *last_entry;\n            int last_errno;\n        }
          dir;\n    }"
      - name: expected_type
        type: int
      item_type: struct
      name: ossl_store_loader_ctx_st
      pos:
        line_end: 738
        line_start: 694
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
    - fields:
      - name: '*path'
        type: char
      - name: check_absolute
        type: unsigned int
      item_type: struct
      name: path_data[2]
      pos:
        line_end: 764
        line_start: 761
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
    typedefs:
    - item_type: typedef
      name: "*(*file_try_decode_fn)(const char *pem_name,\n                                               const
        char *pem_header,\n                                               const unsigned
        char *blob,\n                                               size_t len, void
        **handler_ctx,\n                                               int *matchcount,\n
        \                                              const UI_METHOD *ui_method,\n
        \                                              void *ui_data)"
      pos:
        line_end: 165
        line_start: 159
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
      type: OSSL_STORE_INFO
    - item_type: typedef
      name: (*file_eof_fn)(void *handler_ctx)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
      type: int
    - item_type: typedef
      name: (*file_destroy_ctx_fn)(void **handler_ctx)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/openssl-1.1.1g/crypto/store/loader_file.c
      type: void
    union: []
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - ossl_store_init_once
  - ossl_store_cleanup_int
  source_file: /src/openssl-1.1.1g/crypto/store/store_init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rotl32
  - rotr32
  - bswap32
  - GET_U8_BE
  - GET_U32_BE
  - PUT_U32_BE
  - MAKE_U32
  - ARIA_ADD_ROUND_KEY
  - ARIA_SBOX_LAYER1_WITH_PRE_DIFF
  - ARIA_SBOX_LAYER2_WITH_PRE_DIFF
  - ARIA_DIFF_WORD
  - ARIA_DIFF_BYTE
  - ARIA_SUBST_DIFF_ODD
  - ARIA_SUBST_DIFF_EVEN
  - _ARIA_GSRK
  - ARIA_GSRK
  - ARIA_DEC_DIFF_BYTE
  - aria_encrypt
  - aria_set_encrypt_key
  - aria_set_decrypt_key
  - xor128
  - rotnr
  - rot19r
  - rot31r
  - rot61l
  - rot31l
  - rot19l
  - sl1
  - sl2
  - a
  - FO
  - FE
  - do_encrypt
  - aria_encrypt
  - aria_set_encrypt_key
  - aria_set_decrypt_key
  source_file: /src/openssl-1.1.1g/crypto/aria/aria.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/sha/sha1dgst.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sha512_224_init
  - sha512_256_init
  - SHA384_Init
  - SHA512_Init
  - SHA512_Final
  - SHA384_Final
  - SHA512_Update
  - SHA384_Update
  - SHA512_Transform
  - SHA384
  - SHA512
  - ROTR
  - PULL64
  - PULL64
  - PULL64
  - ROTR
  - ROTR
  - PULL64
  - ROTR
  - __pull64be
  - __pull64be
  - PULL64
  - B
  - PULL64
  - ROTR
  - Sigma0
  - Sigma1
  - sigma0
  - sigma1
  - Ch
  - Maj
  - sha512_block_data_order
  - sha512_block_data_order
  - ROUND_00_15
  - ROUND_16_80
  - sha512_block_data_order
  source_file: /src/openssl-1.1.1g/crypto/sha/sha512.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HASH_MAKE_STRING
  - Xupdate
  - HASH_INIT
  - F_00_19
  - F_20_39
  - F_40_59
  - F_60_79
  - BODY_00_15
  - BODY_16_19
  - BODY_20_31
  - BODY_32_39
  - BODY_40_59
  - BODY_60_79
  - X
  - X
  - HASH_BLOCK_DATA_ORDER
  - BODY_00_15
  - BODY_16_19
  - BODY_20_39
  - BODY_40_59
  - BODY_60_79
  - HASH_BLOCK_DATA_ORDER
  source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_LONG
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: SHA_LONG
    - item_type: preproc_def
      name: HASH_CTX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: SHA_CTX
    - item_type: preproc_def
      name: HASH_CBLOCK
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: SHA_CBLOCK
    - item_type: preproc_def
      name: HASH_UPDATE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: SHA1_Update
    - item_type: preproc_def
      name: HASH_TRANSFORM
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: SHA1_Transform
    - item_type: preproc_def
      name: HASH_FINAL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: SHA1_Final
    - item_type: preproc_def
      name: HASH_INIT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: SHA1_Init
    - item_type: preproc_def
      name: HASH_BLOCK_DATA_ORDER
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: sha1_block_data_order
    - item_type: preproc_def
      name: INIT_DATA_h0
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: 0x67452301UL
    - item_type: preproc_def
      name: INIT_DATA_h1
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: 0xefcdab89UL
    - item_type: preproc_def
      name: INIT_DATA_h2
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: 0x98badcfeUL
    - item_type: preproc_def
      name: INIT_DATA_h3
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: 0x10325476UL
    - item_type: preproc_def
      name: INIT_DATA_h4
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: 0xc3d2e1f0UL
    - item_type: preproc_def
      name: K_00_19
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: 0x5a827999UL
    - item_type: preproc_def
      name: K_20_39
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: 0x6ed9eba1UL
    - item_type: preproc_def
      name: K_40_59
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: 0x8f1bbcdcUL
    - item_type: preproc_def
      name: K_60_79
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
      type_or_value: 0xca62c1d6UL
    structs: []
    typedefs: []
    union:
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: "is_endian = {\n            1\n        }"
      pos:
        line_end: 156
        line_start: 153
        source_file: /src/openssl-1.1.1g/crypto/sha/sha_local.h
- function_names:
  - ROL32
  - ROL64
  - Theta
  - Rho
  - Pi
  - Chi
  - Iota
  - KeccakF1600
  - Round
  - KeccakF1600
  - Round
  - KeccakF1600
  - Round
  - KeccakF1600
  - FourRounds
  - KeccakF1600
  - BitInterleave
  - BitDeinterleave
  - SHA3_absorb
  - SHA3_squeeze
  - SHA3_sponge
  - main
  source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIT_INTERLEAVE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
      type_or_value: (0)
    - item_type: preproc_def
      name: BIT_INTERLEAVE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/sha/keccak1600.c
      type_or_value: (sizeof(void *) < 8)
    structs: []
    typedefs: []
    union: []
- function_names:
  - SHA1
  source_file: /src/openssl-1.1.1g/crypto/sha/sha1_one.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SHA224_Init
  - SHA256_Init
  - SHA224
  - SHA256
  - SHA224_Update
  - SHA224_Final
  - HASH_MAKE_STRING
  - Sigma0
  - Sigma1
  - sigma0
  - sigma1
  - Ch
  - Maj
  - sha256_block_data_order
  - ROUND_00_15
  - ROUND_16_63
  - sha256_block_data_order
  source_file: /src/openssl-1.1.1g/crypto/sha/sha256.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_LONG
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/openssl-1.1.1g/crypto/sha/sha256.c
      type_or_value: SHA_LONG
    - item_type: preproc_def
      name: HASH_CTX
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/openssl-1.1.1g/crypto/sha/sha256.c
      type_or_value: SHA256_CTX
    - item_type: preproc_def
      name: HASH_CBLOCK
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/openssl-1.1.1g/crypto/sha/sha256.c
      type_or_value: SHA_CBLOCK
    - item_type: preproc_def
      name: HASH_UPDATE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/openssl-1.1.1g/crypto/sha/sha256.c
      type_or_value: SHA256_Update
    - item_type: preproc_def
      name: HASH_TRANSFORM
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/openssl-1.1.1g/crypto/sha/sha256.c
      type_or_value: SHA256_Transform
    - item_type: preproc_def
      name: HASH_FINAL
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/openssl-1.1.1g/crypto/sha/sha256.c
      type_or_value: SHA256_Final
    - item_type: preproc_def
      name: HASH_BLOCK_DATA_ORDER
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/openssl-1.1.1g/crypto/sha/sha256.c
      type_or_value: sha256_block_data_order
    structs: []
    typedefs: []
    union:
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: "is_endian = {\n        1\n    }"
      pos:
        line_end: 255
        line_start: 252
        source_file: /src/openssl-1.1.1g/crypto/sha/sha256.c
- function_names:
  - SEED_ecb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/seed/seed_ecb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SEED_ofb128_encrypt
  source_file: /src/openssl-1.1.1g/crypto/seed/seed_ofb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SEED_cfb128_encrypt
  source_file: /src/openssl-1.1.1g/crypto/seed/seed_cfb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - G_FUNC
  - G_FUNC
  - SEED_set_key
  - SEED_encrypt
  - SEED_decrypt
  source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KC0
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0x9e3779b9'
    - item_type: preproc_def
      name: KC1
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0x3c6ef373'
    - item_type: preproc_def
      name: KC2
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0x78dde6e6'
    - item_type: preproc_def
      name: KC3
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0xf1bbcdcc'
    - item_type: preproc_def
      name: KC4
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0xe3779b99'
    - item_type: preproc_def
      name: KC5
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0xc6ef3733'
    - item_type: preproc_def
      name: KC6
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0x8dde6e67'
    - item_type: preproc_def
      name: KC7
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0x1bbcdccf'
    - item_type: preproc_def
      name: KC8
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0x3779b99e'
    - item_type: preproc_def
      name: KC9
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0x6ef3733c'
    - item_type: preproc_def
      name: KC10
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0xdde6e678'
    - item_type: preproc_def
      name: KC11
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0xbbcdccf1'
    - item_type: preproc_def
      name: KC12
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0x779b99e3'
    - item_type: preproc_def
      name: KC13
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0xef3733c6'
    - item_type: preproc_def
      name: KC14
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0xde6e678d'
    - item_type: preproc_def
      name: KC15
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/openssl-1.1.1g/crypto/seed/seed.c
      type_or_value: '0xbcdccf1b'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SEED_cbc_encrypt
  source_file: /src/openssl-1.1.1g/crypto/seed/seed_cbc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - char2word
  - word2char
  - KEYSCHEDULE_UPDATE0
  - KEYSCHEDULE_UPDATE1
  - KEYUPDATE_TEMP
  - XOR_SEEDBLOCK
  - MOV_SEEDBLOCK
  - CHAR2WORD
  - WORD2CHAR
  - E_SEED
  source_file: /src/openssl-1.1.1g/crypto/seed/seed_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: seed_word
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/seed/seed_local.h
      type: unsigned long
    - item_type: typedef
      name: seed_word
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/seed/seed_local.h
      type: unsigned int
    union: []
- function_names:
  - ROTATE
  - U32TO8_LITTLE
  - QUARTERROUND
  - chacha20_core
  - ChaCha20_ctr32
  source_file: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: u32
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
      type: unsigned int
    - item_type: typedef
      name: u8
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
      type: unsigned char
    union:
    - fields:
      - name: u[16]
        type: u32
      - name: c[64]
        type: u8
      item_type: union
      name: chacha_buf
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
    - fields:
      - name: one
        type: long
      - name: little
        type: char
      item_type: union
      name: is_endian = { 1 }
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/chacha/chacha_enc.c
- function_names:
  - d2i_dhp
  - i2d_dhp
  - int_dh_free
  - dh_pub_decode
  - dh_pub_encode
  - dh_priv_decode
  - dh_priv_encode
  - dh_param_decode
  - dh_param_encode
  - do_dh_print
  - int_dh_size
  - dh_bits
  - dh_security_bits
  - dh_cmp_parameters
  - int_dh_bn_cpy
  - int_dh_param_copy
  - DHparams_dup
  - dh_copy_parameters
  - dh_missing_parameters
  - dh_pub_cmp
  - dh_param_print
  - dh_public_print
  - dh_private_print
  - DHparams_print
  - dh_pkey_ctrl
  - dh_pkey_public_check
  - dh_pkey_param_check
  - dh_cms_set_peerkey
  - dh_cms_set_shared_info
  - dh_cms_decrypt
  - dh_cms_encrypt
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_ameth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DH_meth_new
  - DH_meth_free
  - DH_meth_dup
  - DH_meth_get0_name
  - DH_meth_set1_name
  - DH_meth_get_flags
  - DH_meth_set_flags
  - DH_meth_get0_app_data
  - DH_meth_set0_app_data
  - (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *)
  - DH_meth_set_generate_key
  - "(*DH_meth_get_compute_key(const DH_METHOD *dhm))\n        (unsigned char *key,
    const BIGNUM *pub_key, DH *dh)"
  - DH_meth_set_compute_key
  - "(*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm))\n    (const DH *, BIGNUM *, const
    BIGNUM *, const BIGNUM *, const BIGNUM *,\n     BN_CTX *, BN_MONT_CTX *)"
  - DH_meth_set_bn_mod_exp
  - (*DH_meth_get_init(const DH_METHOD *dhm))(DH *)
  - DH_meth_set_init
  - (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *)
  - DH_meth_set_finish
  - "(*DH_meth_get_generate_params(const DH_METHOD *dhm))\n        (DH *, int, int,
    BN_GENCB *)"
  - DH_meth_set_generate_params
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_meth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - make_dh
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_rfc5114.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - skip_asn1
  - dh_sharedinfo_encode
  - DH_KDF_X9_42
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DH_KDF_MAX
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/dh/dh_kdf.c
      type_or_value: (1L << 30)
    structs: []
    typedefs: []
    union: []
- function_names:
  - DH_generate_parameters_ex
  - dh_builtin_genparams
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_gen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dh_param_init
  - DH_new_by_nid
  - DH_get_nid
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_rfc7919.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DH_generate_key
  - DH_compute_key
  - DH_compute_key_padded
  - DH_OpenSSL
  - DH_set_default_method
  - DH_get_default_method
  - generate_key
  - compute_key
  - dh_bn_mod_exp
  - dh_init
  - dh_finish
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pkey_dh_init
  - pkey_dh_cleanup
  - pkey_dh_copy
  - pkey_dh_ctrl
  - pkey_dh_ctrl_str
  - dsa_dh_generate
  - pkey_dh_paramgen
  - pkey_dh_keygen
  - pkey_dh_derive
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: prime_len
        type: int
      - name: generator
        type: int
      - name: use_dsa
        type: int
      - name: subprime_len
        type: int
      - name: pad
        type: int
      - name: '*md'
        type: EVP_MD
      - name: rfc5114_param
        type: int
      - name: param_nid
        type: int
      - name: gentmp[2]
        type: int
      - name: kdf_type
        type: char
      - name: '*kdf_oid'
        type: ASN1_OBJECT
      - name: '*kdf_md'
        type: EVP_MD
      - name: '*kdf_ukm'
        type: unsigned char
      - name: kdf_ukmlen
        type: size_t
      - name: kdf_outlen
        type: size_t
      item_type: struct
      name: DH_PKEY_CTX
      pos:
        line_end: 46
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/dh/dh_pmeth.c
    typedefs: []
    union: []
- function_names:
  - ERR_load_DH_strings
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DH_generate_parameters
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_depr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DH_set_method
  - DH_new
  - DH_new_method
  - DH_free
  - DH_up_ref
  - DH_set_ex_data
  - DH_get_ex_data
  - DH_bits
  - DH_size
  - DH_security_bits
  - DH_get0_pqg
  - DH_set0_pqg
  - DH_get_length
  - DH_set_length
  - DH_get0_key
  - DH_set0_key
  - DH_get0_p
  - DH_get0_q
  - DH_get0_g
  - DH_get0_priv_key
  - DH_get0_pub_key
  - DH_clear_flags
  - DH_test_flags
  - DH_set_flags
  - DH_get0_engine
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dh_cb
  - d2i_DHxparams
  - i2d_DHxparams
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*seed'
        type: ASN1_BIT_STRING
      - name: '*counter'
        type: BIGNUM
      item_type: struct
      name: int_dhvparams
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c
    - fields:
      - name: '*p'
        type: BIGNUM
      - name: '*q'
        type: BIGNUM
      - name: '*g'
        type: BIGNUM
      - name: '*j'
        type: BIGNUM
      - name: '*vparams'
        type: int_dhvparams
      item_type: struct
      name: int_dhx942_dh
      pos:
        line_end: 57
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/dh/dh_asn1.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pad
        type: int
      - name: version
        type: int
      - name: '*p'
        type: BIGNUM
      - name: '*g'
        type: BIGNUM
      - name: length
        type: int32_t
      - name: '*pub_key'
        type: BIGNUM
      - name: '*priv_key'
        type: BIGNUM
      - name: flags
        type: int
      - name: '*method_mont_p'
        type: BN_MONT_CTX
      - name: '*q'
        type: BIGNUM
      - name: '*j'
        type: BIGNUM
      - name: '*seed'
        type: unsigned char
      - name: seedlen
        type: int
      - name: '*counter'
        type: BIGNUM
      - name: references
        type: CRYPTO_REF_COUNT
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: '*meth'
        type: DH_METHOD
      - name: '*engine'
        type: ENGINE
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: dh_st
      pos:
        line_end: 37
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/dh/dh_local.h
    - fields:
      - name: '*name'
        type: char
      - name: (*generate_key) (DH *dh)
        type: int
      - name: (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh)
        type: int
      - name: "(*bn_mod_exp) (const DH *dh, BIGNUM *r, const BIGNUM *a,\n                       const
          BIGNUM *p, const BIGNUM *m, BN_CTX *ctx,\n                       BN_MONT_CTX
          *m_ctx)"
        type: int
      - name: (*init) (DH *dh)
        type: int
      - name: (*finish) (DH *dh)
        type: int
      - name: flags
        type: int
      - name: '*app_data'
        type: char
      - name: "(*generate_params) (DH *dh, int prime_len, int generator,\n                            BN_GENCB
          *cb)"
        type: int
      item_type: struct
      name: dh_method
      pos:
        line_end: 56
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/dh/dh_local.h
    typedefs: []
    union: []
- function_names:
  - DHparams_print_fp
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_prn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DH_check_params_ex
  - DH_check_params
  - DH_check_ex
  - DH_check
  - DH_check_pub_key_ex
  - DH_check_pub_key
  source_file: /src/openssl-1.1.1g/crypto/dh/dh_check.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DH_NUMBER_ITERATIONS_FOR_PRIME
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/dh/dh_check.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pkey_ec_init
  - pkey_ec_copy
  - pkey_ec_cleanup
  - pkey_ec_sign
  - pkey_ec_verify
  - pkey_ec_derive
  - pkey_ec_kdf_derive
  - pkey_ec_ctrl
  - pkey_ec_ctrl_str
  - pkey_ec_paramgen
  - pkey_ec_keygen
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*gen_group'
        type: EC_GROUP
      - name: '*md'
        type: EVP_MD
      - name: '*co_key'
        type: EC_KEY
      - name: cofactor_mode
        type: signed char
      - name: kdf_type
        type: char
      - name: '*kdf_md'
        type: EVP_MD
      - name: '*kdf_ukm'
        type: unsigned char
      - name: kdf_ukmlen
        type: size_t
      - name: kdf_outlen
        type: size_t
      item_type: struct
      name: EC_PKEY_CTX
      pos:
        line_end: 38
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_pmeth.c
    typedefs: []
    union: []
- function_names:
  - EC_GROUP_get_basis_type
  - EC_GROUP_get_trinomial_basis
  - EC_GROUP_get_pentanomial_basis
  - ec_asn1_group2fieldid
  - ec_asn1_group2curve
  - EC_GROUP_get_ecparameters
  - EC_GROUP_get_ecpkparameters
  - EC_GROUP_new_from_ecparameters
  - EC_GROUP_new_from_ecpkparameters
  - d2i_ECPKParameters
  - i2d_ECPKParameters
  - d2i_ECPrivateKey
  - i2d_ECPrivateKey
  - i2d_ECParameters
  - d2i_ECParameters
  - o2i_ECPublicKey
  - i2o_ECPublicKey
  - ECDSA_SIG_new
  - ECDSA_SIG_free
  - ECDSA_SIG_get0
  - ECDSA_SIG_get0_r
  - ECDSA_SIG_get0_s
  - ECDSA_SIG_set0
  - ECDSA_size
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: k1
        type: int32_t
      - name: k2
        type: int32_t
      - name: k3
        type: int32_t
      item_type: struct
      name: x9_62_pentanomial_st
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    - fields:
      - name: m
        type: int32_t
      - name: '*type'
        type: ASN1_OBJECT
      - name: p
        type: "union {\n        char *ptr;\n        /* NID_X9_62_onBasis */\n        ASN1_NULL
          *onBasis;\n        /* NID_X9_62_tpBasis */\n        ASN1_INTEGER *tpBasis;\n
          \       /* NID_X9_62_ppBasis */\n        X9_62_PENTANOMIAL *ppBasis;\n        /*
          anything else */\n        ASN1_TYPE *other;\n    }"
      item_type: struct
      name: x9_62_characteristic_two_st
      pos:
        line_end: 109
        line_start: 95
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    - fields:
      - name: '*fieldType'
        type: ASN1_OBJECT
      - name: p
        type: "union {\n        char *ptr;\n        /* NID_X9_62_prime_field */\n
          \       ASN1_INTEGER *prime;\n        /* NID_X9_62_characteristic_two_field
          */\n        X9_62_CHARACTERISTIC_TWO *char_two;\n        /* anything else
          */\n        ASN1_TYPE *other;\n    }"
      item_type: struct
      name: x9_62_fieldid_st
      pos:
        line_end: 122
        line_start: 111
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    - fields:
      - name: '*a'
        type: ASN1_OCTET_STRING
      - name: '*b'
        type: ASN1_OCTET_STRING
      - name: '*seed'
        type: ASN1_BIT_STRING
      item_type: struct
      name: x9_62_curve_st
      pos:
        line_end: 128
        line_start: 124
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    - fields:
      - name: version
        type: int32_t
      - name: '*fieldID'
        type: X9_62_FIELDID
      - name: '*curve'
        type: X9_62_CURVE
      - name: '*base'
        type: ASN1_OCTET_STRING
      - name: '*order'
        type: ASN1_INTEGER
      - name: '*cofactor'
        type: ASN1_INTEGER
      item_type: struct
      name: ec_parameters_st
      pos:
        line_end: 137
        line_start: 130
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    - fields:
      - name: type
        type: int
      - name: value
        type: "union {\n        ASN1_OBJECT *named_curve;\n        ECPARAMETERS *parameters;\n
          \       ASN1_NULL *implicitlyCA;\n    }"
      item_type: struct
      name: ecpk_parameters_st
      pos:
        line_end: 146
        line_start: 139
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    - fields:
      - name: version
        type: int32_t
      - name: '*privateKey'
        type: ASN1_OCTET_STRING
      - name: '*parameters'
        type: ECPKPARAMETERS
      - name: '*publicKey'
        type: ASN1_BIT_STRING
      item_type: struct
      name: ec_privatekey_st
      pos:
        line_end: 154
        line_start: 149
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_asn1.c
    typedefs: []
    union: []
- function_names:
  - EC_GROUP_new_curve_GFp
  - EC_GROUP_new_curve_GF2m
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_cvt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EC_KEY_new
  - EC_KEY_new_by_curve_name
  - EC_KEY_free
  - EC_KEY_copy
  - EC_KEY_dup
  - EC_KEY_up_ref
  - EC_KEY_get0_engine
  - EC_KEY_generate_key
  - ossl_ec_key_gen
  - ec_key_simple_generate_key
  - ec_key_simple_generate_public_key
  - EC_KEY_check_key
  - ec_key_simple_check_key
  - EC_KEY_set_public_key_affine_coordinates
  - EC_KEY_get0_group
  - EC_KEY_set_group
  - EC_KEY_get0_private_key
  - EC_KEY_set_private_key
  - EC_KEY_get0_public_key
  - EC_KEY_set_public_key
  - EC_KEY_get_enc_flags
  - EC_KEY_set_enc_flags
  - EC_KEY_get_conv_form
  - EC_KEY_set_conv_form
  - EC_KEY_set_asn1_flag
  - EC_KEY_precompute_mult
  - EC_KEY_get_flags
  - EC_KEY_set_flags
  - EC_KEY_clear_flags
  - EC_KEY_key2buf
  - EC_KEY_oct2key
  - EC_KEY_priv2oct
  - ec_key_simple_priv2oct
  - EC_KEY_oct2priv
  - ec_key_simple_oct2priv
  - EC_KEY_priv2buf
  - EC_KEY_can_sign
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ossl_ecdsa_sign
  - ecdsa_sign_setup
  - ossl_ecdsa_sign_setup
  - ossl_ecdsa_sign_sig
  - ossl_ecdsa_verify
  - ossl_ecdsa_verify_sig
  source_file: /src/openssl-1.1.1g/crypto/ec/ecdsa_ossl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EC_GFp_nistp224_method
  - bin28_to_felem
  - felem_to_bin28
  - BN_to_felem
  - felem_to_BN
  - felem_one
  - felem_assign
  - felem_sum
  - felem_diff
  - widefelem_diff
  - felem_diff_128_64
  - felem_scalar
  - widefelem_scalar
  - felem_square
  - felem_mul
  - felem_reduce
  - felem_square_reduce
  - felem_mul_reduce
  - felem_contract
  - felem_neg
  - felem_is_zero
  - felem_is_zero_int
  - felem_inv
  - copy_conditional
  - point_double
  - point_add
  - select_point
  - get_bit
  - batch_mul
  - nistp224_pre_comp_new
  - EC_nistp224_pre_comp_dup
  - EC_nistp224_pre_comp_free
  - ec_GFp_nistp224_group_init
  - ec_GFp_nistp224_group_set_curve
  - ec_GFp_nistp224_point_get_affine_coordinates
  - make_points_affine
  - ec_GFp_nistp224_points_mul
  - ec_GFp_nistp224_precompute_mult
  - ec_GFp_nistp224_have_precompute_mult
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: g_pre_comp[2][16][3]
        type: felem
      - name: references
        type: CRYPTO_REF_COUNT
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: nistp224_pre_comp_st
      pos:
        line_end: 239
        line_start: 235
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
    typedefs:
    - item_type: typedef
      name: uint128_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
      type: __uint128_t
    - item_type: typedef
      name: u8
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
      type: uint8_t
    - item_type: typedef
      name: u64
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
      type: uint64_t
    - item_type: typedef
      name: limb
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
      type: uint64_t
    - item_type: typedef
      name: widelimb
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
      type: uint128_t
    - item_type: typedef
      name: felem[4]
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
      type: limb
    - item_type: typedef
      name: widefelem[7]
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
      type: widelimb
    - item_type: typedef
      name: felem_bytearray[28]
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp224.c
      type: u8
    union: []
- function_names:
  - ECPKParameters_print_fp
  - EC_KEY_print_fp
  - ECParameters_print_fp
  - ECPKParameters_print
  - print_bin
  source_file: /src/openssl-1.1.1g/crypto/ec/eck_prn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_8
  - fe64_frombytes
  - fe64_0
  - fe64_1
  - fe64_copy
  - fe64_cswap
  - fe64_invert
  - x25519_scalar_mulx
  - load_7
  - load_6
  - fe51_frombytes
  - fe51_tobytes
  - fe51_mul
  - fe51_sq
  - fe51_mul121666
  - fe51_add
  - fe51_sub
  - fe51_0
  - fe51_1
  - fe51_copy
  - fe51_cswap
  - fe51_invert
  - x25519_scalar_mult
  - load_3
  - load_4
  - fe_frombytes
  - fe_tobytes
  - fe_copy
  - fe_0
  - fe_1
  - fe_add
  - fe_sub
  - fe_mul
  - fe_sq
  - fe_invert
  - fe_neg
  - fe_cmov
  - fe_isnonzero
  - fe_isnegative
  - fe_sq2
  - fe_pow22523
  - ge_tobytes
  - ge_p3_tobytes
  - ge_frombytes_vartime
  - ge_p2_0
  - ge_p3_0
  - ge_precomp_0
  - ge_p3_to_p2
  - ge_p3_to_cached
  - ge_p1p1_to_p2
  - ge_p1p1_to_p3
  - ge_p2_dbl
  - ge_p3_dbl
  - ge_madd
  - ge_msub
  - ge_add
  - ge_sub
  - equal
  - cmov
  - negative
  - table_select
  - ge_scalarmult_base
  - fe_cswap
  - fe_mul121666
  - x25519_scalar_mult_generic
  - x25519_scalar_mult
  - slide
  - ge_double_scalarmult_vartime
  - x25519_sc_reduce
  - sc_muladd
  - ED25519_sign
  - ED25519_verify
  - ED25519_public_from_private
  - X25519
  - X25519_public_from_private
  source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: fe64_mul
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type_or_value: x25519_fe64_mul
    - item_type: preproc_def
      name: fe64_sqr
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type_or_value: x25519_fe64_sqr
    - item_type: preproc_def
      name: fe64_mul121666
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type_or_value: x25519_fe64_mul121666
    - item_type: preproc_def
      name: fe64_add
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type_or_value: x25519_fe64_add
    - item_type: preproc_def
      name: fe64_sub
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type_or_value: x25519_fe64_sub
    - item_type: preproc_def
      name: fe64_tobytes
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type_or_value: x25519_fe64_tobytes
    - item_type: preproc_def
      name: fe51_mul
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type_or_value: x25519_fe51_mul
    - item_type: preproc_def
      name: fe51_sq
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type_or_value: x25519_fe51_sqr
    - item_type: preproc_def
      name: fe51_mul121666
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type_or_value: x25519_fe51_mul121666
    structs:
    - fields:
      - name: X
        type: fe
      - name: Y
        type: fe
      - name: Z
        type: fe
      item_type: struct
      name: ge_p2
      pos:
        line_end: 1791
        line_start: 1787
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    - fields:
      - name: X
        type: fe
      - name: Y
        type: fe
      - name: Z
        type: fe
      - name: T
        type: fe
      item_type: struct
      name: ge_p3
      pos:
        line_end: 1798
        line_start: 1793
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    - fields:
      - name: X
        type: fe
      - name: Y
        type: fe
      - name: Z
        type: fe
      - name: T
        type: fe
      item_type: struct
      name: ge_p1p1
      pos:
        line_end: 1805
        line_start: 1800
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    - fields:
      - name: yplusx
        type: fe
      - name: yminusx
        type: fe
      - name: xy2d
        type: fe
      item_type: struct
      name: ge_precomp
      pos:
        line_end: 1811
        line_start: 1807
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    - fields:
      - name: YplusX
        type: fe
      - name: YminusX
        type: fe
      - name: Z
        type: fe
      - name: T2d
        type: fe
      item_type: struct
      name: ge_cached
      pos:
        line_end: 1818
        line_start: 1813
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
    typedefs:
    - item_type: typedef
      name: fe64[4]
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type: uint64_t
    - item_type: typedef
      name: fe51[5]
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type: uint64_t
    - item_type: typedef
      name: u128
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type: __uint128_t
    - item_type: typedef
      name: fe[10]
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/openssl-1.1.1g/crypto/ec/curve25519.c
      type: int32_t
    union: []
- function_names:
  - SETPRECOMP
  - HAVEPRECOMP
  - ec_point_is_compat
  - ec_point_ladder_pre
  - ec_point_ladder_step
  - ec_point_ladder_post
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EC_FLAGS_DEFAULT_OCT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: EC_FLAGS_CUSTOM_CURVE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: EC_FLAGS_NO_SIGN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: EC_KEY_METHOD_DYNAMIC
      pos:
        line_end: 629
        line_start: 628
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
      type_or_value: '1'
    structs:
    - fields:
      - name: flags
        type: int
      - name: field_type
        type: int
      - name: (*group_init) (EC_GROUP *)
        type: int
      - name: (*group_finish) (EC_GROUP *)
        type: void
      - name: (*group_clear_finish) (EC_GROUP *)
        type: void
      - name: (*group_copy) (EC_GROUP *, const EC_GROUP *)
        type: int
      - name: "(*group_set_curve) (EC_GROUP *, const BIGNUM *p, const BIGNUM *a,\n
          \                           const BIGNUM *b, BN_CTX *)"
        type: int
      - name: "(*group_get_curve) (const EC_GROUP *, BIGNUM *p, BIGNUM *a, BIGNUM
          *b,\n                            BN_CTX *)"
        type: int
      - name: (*group_get_degree) (const EC_GROUP *)
        type: int
      - name: (*group_order_bits) (const EC_GROUP *)
        type: int
      - name: (*group_check_discriminant) (const EC_GROUP *, BN_CTX *)
        type: int
      - name: (*point_init) (EC_POINT *)
        type: int
      - name: (*point_finish) (EC_POINT *)
        type: void
      - name: (*point_clear_finish) (EC_POINT *)
        type: void
      - name: (*point_copy) (EC_POINT *, const EC_POINT *)
        type: int
      - name: (*point_set_to_infinity) (const EC_GROUP *, EC_POINT *)
        type: int
      - name: "(*point_set_Jprojective_coordinates_GFp) (const EC_GROUP *,\n                                                  EC_POINT
          *, const BIGNUM *x,\n                                                  const
          BIGNUM *y,\n                                                  const BIGNUM
          *z, BN_CTX *)"
        type: int
      - name: "(*point_get_Jprojective_coordinates_GFp) (const EC_GROUP *,\n                                                  const
          EC_POINT *, BIGNUM *x,\n                                                  BIGNUM
          *y, BIGNUM *z,\n                                                  BN_CTX
          *)"
        type: int
      - name: "(*point_set_affine_coordinates) (const EC_GROUP *, EC_POINT *,\n                                         const
          BIGNUM *x, const BIGNUM *y,\n                                         BN_CTX
          *)"
        type: int
      - name: "(*point_get_affine_coordinates) (const EC_GROUP *, const EC_POINT *,\n
          \                                        BIGNUM *x, BIGNUM *y, BN_CTX *)"
        type: int
      - name: "(*point_set_compressed_coordinates) (const EC_GROUP *, EC_POINT *,\n
          \                                            const BIGNUM *x, int y_bit,\n
          \                                            BN_CTX *)"
        type: int
      - name: "(*point2oct) (const EC_GROUP *, const EC_POINT *,\n                         point_conversion_form_t
          form, unsigned char *buf,\n                         size_t len, BN_CTX *)"
        type: size_t
      - name: "(*oct2point) (const EC_GROUP *, EC_POINT *, const unsigned char *buf,\n
          \                     size_t len, BN_CTX *)"
        type: int
      - name: "(*add) (const EC_GROUP *, EC_POINT *r, const EC_POINT *a,\n                const
          EC_POINT *b, BN_CTX *)"
        type: int
      - name: (*dbl) (const EC_GROUP *, EC_POINT *r, const EC_POINT *a, BN_CTX *)
        type: int
      - name: (*invert) (const EC_GROUP *, EC_POINT *, BN_CTX *)
        type: int
      - name: (*is_at_infinity) (const EC_GROUP *, const EC_POINT *)
        type: int
      - name: (*is_on_curve) (const EC_GROUP *, const EC_POINT *, BN_CTX *)
        type: int
      - name: "(*point_cmp) (const EC_GROUP *, const EC_POINT *a, const EC_POINT *b,\n
          \                     BN_CTX *)"
        type: int
      - name: (*make_affine) (const EC_GROUP *, EC_POINT *, BN_CTX *)
        type: int
      - name: "(*points_make_affine) (const EC_GROUP *, size_t num, EC_POINT *[],\n
          \                              BN_CTX *)"
        type: int
      - name: "(*mul) (const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,\n
          \               size_t num, const EC_POINT *points[], const BIGNUM *scalars[],\n
          \               BN_CTX *)"
        type: int
      - name: (*precompute_mult) (EC_GROUP *group, BN_CTX *)
        type: int
      - name: (*have_precompute_mult) (const EC_GROUP *group)
        type: int
      - name: "(*field_mul) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a,\n                      const
          BIGNUM *b, BN_CTX *)"
        type: int
      - name: (*field_sqr) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *)
        type: int
      - name: "(*field_div) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a,\n                      const
          BIGNUM *b, BN_CTX *)"
        type: int
      - name: (*field_inv) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *)
        type: int
      - name: "(*field_encode) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a,\n                         BN_CTX
          *)"
        type: int
      - name: "(*field_decode) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a,\n                         BN_CTX
          *)"
        type: int
      - name: (*field_set_to_one) (const EC_GROUP *, BIGNUM *r, BN_CTX *)
        type: int
      - name: (*priv2oct)(const EC_KEY *eckey, unsigned char *buf, size_t len)
        type: size_t
      - name: (*oct2priv)(EC_KEY *eckey, const unsigned char *buf, size_t len)
        type: int
      - name: (*set_private)(EC_KEY *eckey, const BIGNUM *priv_key)
        type: int
      - name: (*keygen)(EC_KEY *eckey)
        type: int
      - name: (*keycheck)(const EC_KEY *eckey)
        type: int
      - name: (*keygenpub)(EC_KEY *eckey)
        type: int
      - name: (*keycopy)(EC_KEY *dst, const EC_KEY *src)
        type: int
      - name: (*keyfinish)(EC_KEY *eckey)
        type: void
      - name: "(*ecdh_compute_key)(unsigned char **pout, size_t *poutlen,\n                            const
          EC_POINT *pub_key, const EC_KEY *ecdh)"
        type: int
      - name: "(*field_inverse_mod_ord)(const EC_GROUP *, BIGNUM *r,\n                                 const
          BIGNUM *x, BN_CTX *)"
        type: int
      - name: (*blind_coordinates)(const EC_GROUP *group, EC_POINT *p, BN_CTX *ctx)
        type: int
      - name: "(*ladder_pre)(const EC_GROUP *group,\n                      EC_POINT
          *r, EC_POINT *s,\n                      EC_POINT *p, BN_CTX *ctx)"
        type: int
      - name: "(*ladder_step)(const EC_GROUP *group,\n                       EC_POINT
          *r, EC_POINT *s,\n                       EC_POINT *p, BN_CTX *ctx)"
        type: int
      - name: "(*ladder_post)(const EC_GROUP *group,\n                       EC_POINT
          *r, EC_POINT *s,\n                       EC_POINT *p, BN_CTX *ctx)"
        type: int
      item_type: struct
      name: ec_method_st
      pos:
        line_end: 194
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    - fields:
      - name: '*meth'
        type: EC_METHOD
      - name: '*generator'
        type: EC_POINT
      - name: '*order'
        type: BIGNUM
      - name: curve_name
        type: int
      - name: asn1_flag
        type: int
      - name: asn1_form
        type: point_conversion_form_t
      - name: '*seed'
        type: unsigned char
      - name: seed_len
        type: size_t
      - name: '*field'
        type: BIGNUM
      - name: poly[6]
        type: int
      - name: '*a'
        type: BIGNUM
      - name: a_is_minus3
        type: int
      - name: '*field_data1'
        type: void
      - name: '*field_data2'
        type: void
      - name: "(*field_mod_func) (BIGNUM *, const BIGNUM *, const BIGNUM *,\n                           BN_CTX
          *)"
        type: int
      - name: '*mont_data'
        type: BN_MONT_CTX
      - name: pre_comp_type
        type: "enum {\n        PCT_none,\n        PCT_nistp224, PCT_nistp256, PCT_nistp521,
          PCT_nistz256,\n        PCT_ec\n    }"
      - name: pre_comp
        type: "union {\n        NISTP224_PRE_COMP *nistp224;\n        NISTP256_PRE_COMP
          *nistp256;\n        NISTP521_PRE_COMP *nistp521;\n        NISTZ256_PRE_COMP
          *nistz256;\n        EC_PRE_COMP *ec;\n    }"
      item_type: struct
      name: ec_group_st
      pos:
        line_end: 270
        line_start: 205
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    - fields:
      - name: '*meth'
        type: EC_KEY_METHOD
      - name: '*engine'
        type: ENGINE
      - name: version
        type: int
      - name: '*group'
        type: EC_GROUP
      - name: '*pub_key'
        type: EC_POINT
      - name: '*priv_key'
        type: BIGNUM
      - name: enc_flag
        type: unsigned int
      - name: conv_form
        type: point_conversion_form_t
      - name: references
        type: CRYPTO_REF_COUNT
      - name: flags
        type: int
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: ec_key_st
      pos:
        line_end: 290
        line_start: 277
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    - fields:
      - name: '*meth'
        type: EC_METHOD
      - name: curve_name
        type: int
      - name: '*X'
        type: BIGNUM
      - name: '*Y'
        type: BIGNUM
      - name: '*Z'
        type: BIGNUM
      - name: Z_is_one
        type: int
      item_type: struct
      name: ec_point_st
      pos:
        line_end: 306
        line_start: 292
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    - fields:
      - name: '*name'
        type: char
      - name: flags
        type: int32_t
      - name: (*init)(EC_KEY *key)
        type: int
      - name: (*finish)(EC_KEY *key)
        type: void
      - name: (*copy)(EC_KEY *dest, const EC_KEY *src)
        type: int
      - name: (*set_group)(EC_KEY *key, const EC_GROUP *grp)
        type: int
      - name: (*set_private)(EC_KEY *key, const BIGNUM *priv_key)
        type: int
      - name: (*set_public)(EC_KEY *key, const EC_POINT *pub_key)
        type: int
      - name: (*keygen)(EC_KEY *key)
        type: int
      - name: "(*compute_key)(unsigned char **pout, size_t *poutlen,\n                       const
          EC_POINT *pub_key, const EC_KEY *ecdh)"
        type: int
      - name: "(*sign)(int type, const unsigned char *dgst, int dlen, unsigned char\n
          \               *sig, unsigned int *siglen, const BIGNUM *kinv,\n                const
          BIGNUM *r, EC_KEY *eckey)"
        type: int
      - name: "(*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,\n                      BIGNUM
          **rp)"
        type: int
      - name: "*(*sign_sig)(const unsigned char *dgst, int dgst_len,\n                           const
          BIGNUM *in_kinv, const BIGNUM *in_r,\n                           EC_KEY
          *eckey)"
        type: ECDSA_SIG
      - name: "(*verify)(int type, const unsigned char *dgst, int dgst_len,\n                  const
          unsigned char *sigbuf, int sig_len, EC_KEY *eckey)"
        type: int
      - name: "(*verify_sig)(const unsigned char *dgst, int dgst_len,\n                      const
          ECDSA_SIG *sig, EC_KEY *eckey)"
        type: int
      item_type: struct
      name: ec_key_method_st
      pos:
        line_end: 626
        line_start: 601
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    - fields:
      - name: '*r'
        type: BIGNUM
      - name: '*s'
        type: BIGNUM
      item_type: struct
      name: ECDSA_SIG_st
      pos:
        line_end: 639
        line_start: 636
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
    typedefs:
    - item_type: typedef
      name: NISTP224_PRE_COMP
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
      type: nistp224_pre_comp_st
    - item_type: typedef
      name: NISTP256_PRE_COMP
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
      type: nistp256_pre_comp_st
    - item_type: typedef
      name: NISTP521_PRE_COMP
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
      type: nistp521_pre_comp_st
    - item_type: typedef
      name: NISTZ256_PRE_COMP
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
      type: nistz256_pre_comp_st
    - item_type: typedef
      name: EC_PRE_COMP
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_local.h
      type: ec_pre_comp_st
    union: []
- function_names:
  - EC_KEY_OpenSSL
  - EC_KEY_get_default_method
  - EC_KEY_set_default_method
  - EC_KEY_get_method
  - EC_KEY_set_method
  - EC_KEY_new_method
  - ECDH_compute_key
  - EC_KEY_METHOD_new
  - EC_KEY_METHOD_free
  - EC_KEY_METHOD_set_init
  - EC_KEY_METHOD_set_keygen
  - EC_KEY_METHOD_set_compute_key
  - EC_KEY_METHOD_set_sign
  - EC_KEY_METHOD_set_verify
  - EC_KEY_METHOD_get_init
  - EC_KEY_METHOD_get_keygen
  - EC_KEY_METHOD_get_compute_key
  - EC_KEY_METHOD_get_sign
  - EC_KEY_METHOD_get_verify
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_kmeth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_EC_strings
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EC_POINT_set_compressed_coordinates
  - EC_POINT_set_compressed_coordinates_GFp
  - EC_POINT_set_compressed_coordinates_GF2m
  - EC_POINT_point2oct
  - EC_POINT_oct2point
  - EC_POINT_point2buf
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_oct.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ec_GF2m_simple_set_compressed_coordinates
  - ec_GF2m_simple_point2oct
  - ec_GF2m_simple_oct2point
  source_file: /src/openssl-1.1.1g/crypto/ec/ec2_oct.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bin32_to_felem
  - smallfelem_to_bin32
  - BN_to_felem
  - smallfelem_to_BN
  - smallfelem_one
  - smallfelem_assign
  - felem_assign
  - felem_sum
  - felem_small_sum
  - felem_scalar
  - longfelem_scalar
  - smallfelem_neg
  - felem_diff
  - felem_diff_zero107
  - longfelem_diff
  - felem_shrink
  - smallfelem_expand
  - smallfelem_square
  - felem_square
  - smallfelem_mul
  - felem_mul
  - felem_small_mul
  - felem_reduce_
  - felem_reduce
  - felem_reduce_zero105
  - subtract_u64
  - felem_contract
  - smallfelem_square_contract
  - smallfelem_mul_contract
  - smallfelem_is_zero
  - smallfelem_is_zero_int
  - felem_inv
  - smallfelem_inv_contract
  - point_double
  - point_double_small
  - copy_conditional
  - copy_small_conditional
  - point_add
  - point_add_small
  - select_point
  - get_bit
  - batch_mul
  - EC_GFp_nistp256_method
  - nistp256_pre_comp_new
  - EC_nistp256_pre_comp_dup
  - EC_nistp256_pre_comp_free
  - ec_GFp_nistp256_group_init
  - ec_GFp_nistp256_group_set_curve
  - ec_GFp_nistp256_point_get_affine_coordinates
  - make_points_affine
  - ec_GFp_nistp256_points_mul
  - ec_GFp_nistp256_precompute_mult
  - ec_GFp_nistp256_have_precompute_mult
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NLIMBS
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: '4'
    - item_type: preproc_def
      name: two105m41m9
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 105) - (((limb)1) << 41) - (((limb)1) << 9)
    - item_type: preproc_def
      name: two105
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 105)
    - item_type: preproc_def
      name: two105m41p9
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 105) - (((limb)1) << 41) + (((limb)1) << 9)
    - item_type: preproc_def
      name: two107m43m11
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 107) - (((limb)1) << 43) - (((limb)1) << 11)
    - item_type: preproc_def
      name: two107
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 107)
    - item_type: preproc_def
      name: two107m43p11
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 107) - (((limb)1) << 43) + (((limb)1) << 11)
    - item_type: preproc_def
      name: two64m0
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 64) - 1
    - item_type: preproc_def
      name: two110p32m0
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 110) + (((limb)1) << 32) - 1
    - item_type: preproc_def
      name: two64m46
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 64) - (((limb)1) << 46)
    - item_type: preproc_def
      name: two64m32
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 64) - (((limb)1) << 32)
    - item_type: preproc_def
      name: two100m36m4
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 100) - (((limb)1) << 36) - (((limb)1) << 4)
    - item_type: preproc_def
      name: two100
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 100)
    - item_type: preproc_def
      name: two100m36p4
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type_or_value: (((limb)1) << 100) - (((limb)1) << 36) + (((limb)1) << 4)
    structs:
    - fields:
      - name: g_pre_comp[2][16][3]
        type: smallfelem
      - name: references
        type: CRYPTO_REF_COUNT
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: nistp256_pre_comp_st
      pos:
        line_end: 1776
        line_start: 1772
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
    typedefs:
    - item_type: typedef
      name: uint128_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: __uint128_t
    - item_type: typedef
      name: int128_t
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: __int128_t
    - item_type: typedef
      name: u8
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: uint8_t
    - item_type: typedef
      name: u32
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: uint32_t
    - item_type: typedef
      name: u64
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: uint64_t
    - item_type: typedef
      name: felem_bytearray[32]
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: u8
    - item_type: typedef
      name: limb
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: uint128_t
    - item_type: typedef
      name: felem[NLIMBS]
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: limb
    - item_type: typedef
      name: longfelem[NLIMBS * 2]
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: limb
    - item_type: typedef
      name: smallfelem[NLIMBS]
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp256.c
      type: u64
    union: []
- function_names:
  - EC_GFp_nist_method
  - ec_GFp_nist_group_copy
  - ec_GFp_nist_group_set_curve
  - ec_GFp_nist_field_mul
  - ec_GFp_nist_field_sqr
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nist.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EC_GFp_simple_method
  - ec_GFp_simple_group_init
  - ec_GFp_simple_group_finish
  - ec_GFp_simple_group_clear_finish
  - ec_GFp_simple_group_copy
  - ec_GFp_simple_group_set_curve
  - ec_GFp_simple_group_get_curve
  - ec_GFp_simple_group_get_degree
  - ec_GFp_simple_group_check_discriminant
  - ec_GFp_simple_point_init
  - ec_GFp_simple_point_finish
  - ec_GFp_simple_point_clear_finish
  - ec_GFp_simple_point_copy
  - ec_GFp_simple_point_set_to_infinity
  - ec_GFp_simple_set_Jprojective_coordinates_GFp
  - ec_GFp_simple_get_Jprojective_coordinates_GFp
  - ec_GFp_simple_point_set_affine_coordinates
  - ec_GFp_simple_point_get_affine_coordinates
  - ec_GFp_simple_add
  - ec_GFp_simple_dbl
  - ec_GFp_simple_invert
  - ec_GFp_simple_is_at_infinity
  - ec_GFp_simple_is_on_curve
  - ec_GFp_simple_cmp
  - ec_GFp_simple_make_affine
  - ec_GFp_simple_points_make_affine
  - ec_GFp_simple_field_mul
  - ec_GFp_simple_field_sqr
  - ec_GFp_simple_field_inv
  - ec_GFp_simple_blind_coordinates
  - ec_GFp_simple_ladder_pre
  - ec_GFp_simple_ladder_step
  - ec_GFp_simple_ladder_post
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_smpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ECDSA_do_sign
  - ECDSA_do_sign_ex
  - ECDSA_sign
  - ECDSA_sign_ex
  - ECDSA_sign_setup
  source_file: /src/openssl-1.1.1g/crypto/ec/ecdsa_sign.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ec_pre_comp_new
  - EC_ec_pre_comp_dup
  - EC_ec_pre_comp_free
  - EC_POINT_BN_set_flags
  - ec_scalar_mul_ladder
  - EC_POINT_CSWAP
  - EC_window_bits_for_scalar_size
  - ec_wNAF_mul
  - ec_wNAF_precompute_mult
  - ec_wNAF_have_precompute_mult
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*group'
        type: EC_GROUP
      - name: blocksize
        type: size_t
      - name: numblocks
        type: size_t
      - name: w
        type: size_t
      - name: '**points'
        type: EC_POINT
      - name: num
        type: size_t
      - name: references
        type: CRYPTO_REF_COUNT
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: ec_pre_comp_st
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_mult.c
    typedefs: []
    union: []
- function_names:
  - ec_GFp_simple_set_compressed_coordinates
  - ec_GFp_simple_point2oct
  - ec_GFp_simple_oct2point
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_oct.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256_table.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EC_GFp_mont_method
  - ec_GFp_mont_group_init
  - ec_GFp_mont_group_finish
  - ec_GFp_mont_group_clear_finish
  - ec_GFp_mont_group_copy
  - ec_GFp_mont_group_set_curve
  - ec_GFp_mont_field_mul
  - ec_GFp_mont_field_sqr
  - ec_GFp_mont_field_inv
  - ec_GFp_mont_field_encode
  - ec_GFp_mont_field_decode
  - ec_GFp_mont_field_set_to_one
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_mont.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EC_POINT_point2bn
  - EC_POINT_bn2point
  - EC_POINT_point2hex
  - EC_POINT_hex2point
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_print.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EC_GROUP_check
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_check.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ec_group_new_from_data
  - EC_GROUP_new_by_curve_name
  - EC_get_builtin_curves
  - EC_curve_nid2nist
  - EC_curve_nist2nid
  - ec_curve_nid_from_params
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: curve_list_length
      pos:
        line_end: 3008
        line_start: 3007
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
      type_or_value: OSSL_NELEM(curve_list)
    - item_type: preproc_def
      name: NUM_BN_FIELDS
      pos:
        line_end: 3201
        line_start: 3200
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
      type_or_value: '6'
    structs:
    - fields:
      - name: field_type
        type: int
      - name: cofactor
        type: unsigned int
      item_type: struct
      name: EC_CURVE_DATA
      pos:
        line_end: 22
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_PRIME_192 = {\n    {\n        NID_X9_62_prime_field, 20, 24,
        1\n    },\n    {\n        /* seed */\n        0x30, 0x45, 0xAE, 0x6F, 0xC8,
        0x42, 0x2F, 0x64, 0xED, 0x57, 0x95, 0x28,\n        0xD3, 0x81, 0x20, 0xEA,
        0xE1, 0x21, 0x96, 0xD5,\n        /* p */\n        0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        /* a */\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,\n        /*
        b */\n        0x64, 0x21, 0x05, 0x19, 0xE5, 0x9C, 0x80, 0xE7, 0x0F, 0xA7,
        0xE9, 0xAB,\n        0x72, 0x24, 0x30, 0x49, 0xFE, 0xB8, 0xDE, 0xEC, 0xC1,
        0x46, 0xB9, 0xB1,\n        /* x */\n        0x18, 0x8D, 0xA8, 0x0E, 0xB0,
        0x30, 0x90, 0xF6, 0x7C, 0xBF, 0x20, 0xEB,\n        0x43, 0xA1, 0x88, 0x00,
        0xF4, 0xFF, 0x0A, 0xFD, 0x82, 0xFF, 0x10, 0x12,\n        /* y */\n        0x07,
        0x19, 0x2b, 0x95, 0xff, 0xc8, 0xda, 0x78, 0x63, 0x10, 0x11, 0xed,\n        0x6b,
        0x24, 0xcd, 0xd5, 0x73, 0xf9, 0x77, 0xa1, 0x1e, 0x79, 0x48, 0x11,\n        /*
        order */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF,\n        0x99, 0xDE, 0xF8, 0x36, 0x14, 0x6B, 0xC9, 0xB1, 0xB4,
        0xD2, 0x28, 0x31\n    }\n}"
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 28 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_PRIME_224 = {\n    {\n        NID_X9_62_prime_field, 20, 28,
        1\n    },\n    {\n        /* seed */\n        0xBD, 0x71, 0x34, 0x47, 0x99,
        0xD5, 0xC7, 0xFC, 0xDC, 0x45, 0xB5, 0x9F,\n        0xA3, 0xB9, 0xAB, 0x8F,
        0x6A, 0x94, 0x8B, 0xC5,\n        /* p */\n        0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x01,\n        /* a */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFE, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFE,\n
        \       /* b */\n        0xB4, 0x05, 0x0A, 0x85, 0x0C, 0x04, 0xB3, 0xAB, 0xF5,
        0x41, 0x32, 0x56,\n        0x50, 0x44, 0xB0, 0xB7, 0xD7, 0xBF, 0xD8, 0xBA,
        0x27, 0x0B, 0x39, 0x43,\n        0x23, 0x55, 0xFF, 0xB4,\n        /* x */\n
        \       0xB7, 0x0E, 0x0C, 0xBD, 0x6B, 0xB4, 0xBF, 0x7F, 0x32, 0x13, 0x90,
        0xB9,\n        0x4A, 0x03, 0xC1, 0xD3, 0x56, 0xC2, 0x11, 0x22, 0x34, 0x32,
        0x80, 0xD6,\n        0x11, 0x5C, 0x1D, 0x21,\n        /* y */\n        0xbd,
        0x37, 0x63, 0x88, 0xb5, 0xf7, 0x23, 0xfb, 0x4c, 0x22, 0xdf, 0xe6,\n        0xcd,
        0x43, 0x75, 0xa0, 0x5a, 0x07, 0x47, 0x64, 0x44, 0xd5, 0x81, 0x99,\n        0x85,
        0x00, 0x7e, 0x34,\n        /* order */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0x16, 0xA2,
        0xE0, 0xB8, 0xF0, 0x3E, 0x13, 0xDD, 0x29, 0x45,\n        0x5C, 0x5C, 0x2A,
        0x3D\n    }\n}"
      pos:
        line_end: 60
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 48 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_PRIME_384 = {\n    {\n        NID_X9_62_prime_field, 20, 48,
        1\n    },\n    {\n        /* seed */\n        0xA3, 0x35, 0x92, 0x6A, 0xA3,
        0x19, 0xA2, 0x7A, 0x1D, 0x00, 0x89, 0x6A,\n        0x67, 0x73, 0xA4, 0x82,
        0x7A, 0xCD, 0xAC, 0x73,\n        /* p */\n        0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,\n        /*
        a */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
        0xFF, 0xFF, 0xFF, 0xFF,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0xFF, 0xFF, 0xFF, 0xFC,\n        /* b */\n        0xB3, 0x31, 0x2F,
        0xA7, 0xE2, 0x3E, 0xE7, 0xE4, 0x98, 0x8E, 0x05, 0x6B,\n        0xE3, 0xF8,
        0x2D, 0x19, 0x18, 0x1D, 0x9C, 0x6E, 0xFE, 0x81, 0x41, 0x12,\n        0x03,
        0x14, 0x08, 0x8F, 0x50, 0x13, 0x87, 0x5A, 0xC6, 0x56, 0x39, 0x8D,\n        0x8A,
        0x2E, 0xD1, 0x9D, 0x2A, 0x85, 0xC8, 0xED, 0xD3, 0xEC, 0x2A, 0xEF,\n        /*
        x */\n        0xAA, 0x87, 0xCA, 0x22, 0xBE, 0x8B, 0x05, 0x37, 0x8E, 0xB1,
        0xC7, 0x1E,\n        0xF3, 0x20, 0xAD, 0x74, 0x6E, 0x1D, 0x3B, 0x62, 0x8B,
        0xA7, 0x9B, 0x98,\n        0x59, 0xF7, 0x41, 0xE0, 0x82, 0x54, 0x2A, 0x38,
        0x55, 0x02, 0xF2, 0x5D,\n        0xBF, 0x55, 0x29, 0x6C, 0x3A, 0x54, 0x5E,
        0x38, 0x72, 0x76, 0x0A, 0xB7,\n        /* y */\n        0x36, 0x17, 0xde,
        0x4a, 0x96, 0x26, 0x2c, 0x6f, 0x5d, 0x9e, 0x98, 0xbf,\n        0x92, 0x92,
        0xdc, 0x29, 0xf8, 0xf4, 0x1d, 0xbd, 0x28, 0x9a, 0x14, 0x7c,\n        0xe9,
        0xda, 0x31, 0x13, 0xb5, 0xf0, 0xb8, 0xc0, 0x0a, 0x60, 0xb1, 0xce,\n        0x1d,
        0x7e, 0x81, 0x9d, 0x7a, 0x43, 0x1d, 0x7c, 0x90, 0xea, 0x0e, 0x5f,\n        /*
        order */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF,\n        0xC7, 0x63, 0x4D, 0x81, 0xF4, 0x37, 0x2D, 0xDF,
        0x58, 0x1A, 0x0D, 0xB2,\n        0x48, 0xB0, 0xA7, 0x7A, 0xEC, 0xEC, 0x19,
        0x6A, 0xCC, 0xC5, 0x29, 0x73\n    }\n}"
      pos:
        line_end: 98
        line_start: 95
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 66 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_PRIME_521 = {\n    {\n        NID_X9_62_prime_field, 20, 66,
        1\n    },\n    {\n        /* seed */\n        0xD0, 0x9E, 0x88, 0x00, 0x29,
        0x1C, 0xB8, 0x53, 0x96, 0xCC, 0x67, 0x17,\n        0x39, 0x32, 0x84, 0xAA,
        0xA0, 0xDA, 0x64, 0xBA,\n        /* p */\n        0x01, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        /* a */\n        0x01, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFC,\n        /* b */\n        0x00, 0x51, 0x95,
        0x3E, 0xB9, 0x61, 0x8E, 0x1C, 0x9A, 0x1F, 0x92, 0x9A,\n        0x21, 0xA0,
        0xB6, 0x85, 0x40, 0xEE, 0xA2, 0xDA, 0x72, 0x5B, 0x99, 0xB3,\n        0x15,
        0xF3, 0xB8, 0xB4, 0x89, 0x91, 0x8E, 0xF1, 0x09, 0xE1, 0x56, 0x19,\n        0x39,
        0x51, 0xEC, 0x7E, 0x93, 0x7B, 0x16, 0x52, 0xC0, 0xBD, 0x3B, 0xB1,\n        0xBF,
        0x07, 0x35, 0x73, 0xDF, 0x88, 0x3D, 0x2C, 0x34, 0xF1, 0xEF, 0x45,\n        0x1F,
        0xD4, 0x6B, 0x50, 0x3F, 0x00,\n        /* x */\n        0x00, 0xC6, 0x85,
        0x8E, 0x06, 0xB7, 0x04, 0x04, 0xE9, 0xCD, 0x9E, 0x3E,\n        0xCB, 0x66,
        0x23, 0x95, 0xB4, 0x42, 0x9C, 0x64, 0x81, 0x39, 0x05, 0x3F,\n        0xB5,
        0x21, 0xF8, 0x28, 0xAF, 0x60, 0x6B, 0x4D, 0x3D, 0xBA, 0xA1, 0x4B,\n        0x5E,
        0x77, 0xEF, 0xE7, 0x59, 0x28, 0xFE, 0x1D, 0xC1, 0x27, 0xA2, 0xFF,\n        0xA8,
        0xDE, 0x33, 0x48, 0xB3, 0xC1, 0x85, 0x6A, 0x42, 0x9B, 0xF9, 0x7E,\n        0x7E,
        0x31, 0xC2, 0xE5, 0xBD, 0x66,\n        /* y */\n        0x01, 0x18, 0x39,
        0x29, 0x6a, 0x78, 0x9a, 0x3b, 0xc0, 0x04, 0x5c, 0x8a,\n        0x5f, 0xb4,
        0x2c, 0x7d, 0x1b, 0xd9, 0x98, 0xf5, 0x44, 0x49, 0x57, 0x9b,\n        0x44,
        0x68, 0x17, 0xaf, 0xbd, 0x17, 0x27, 0x3e, 0x66, 0x2c, 0x97, 0xee,\n        0x72,
        0x99, 0x5e, 0xf4, 0x26, 0x40, 0xc5, 0x50, 0xb9, 0x01, 0x3f, 0xad,\n        0x07,
        0x61, 0x35, 0x3c, 0x70, 0x86, 0xa2, 0x72, 0xc2, 0x40, 0x88, 0xbe,\n        0x94,
        0x76, 0x9f, 0xd1, 0x66, 0x50,\n        /* order */\n        0x01, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x51, 0x86,\n        0x87,
        0x83, 0xBF, 0x2F, 0x96, 0x6B, 0x7F, 0xCC, 0x01, 0x48, 0xF7, 0x09,\n        0xA5,
        0xD0, 0x3B, 0xB5, 0xC9, 0xB8, 0x89, 0x9C, 0x47, 0xAE, 0xBB, 0x6F,\n        0xB7,
        0x1E, 0x91, 0x38, 0x64, 0x09\n    }\n}"
      pos:
        line_end: 142
        line_start: 139
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_PRIME_192V2 = {\n    {\n        NID_X9_62_prime_field, 20,
        24, 1\n    },\n    {\n        /* seed */\n        0x31, 0xA9, 0x2E, 0xE2,
        0x02, 0x9F, 0xD1, 0x0D, 0x90, 0x1B, 0x11, 0x3E,\n        0x99, 0x07, 0x10,
        0xF0, 0xD2, 0x1A, 0xC6, 0xB6,\n        /* p */\n        0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF,
        0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        /* a
        */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF,\n        0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFC,\n        /* b */\n        0xCC, 0x22, 0xD6, 0xDF, 0xB9, 0x5C,
        0x6B, 0x25, 0xE4, 0x9C, 0x0D, 0x63,\n        0x64, 0xA4, 0xE5, 0x98, 0x0C,
        0x39, 0x3A, 0xA2, 0x16, 0x68, 0xD9, 0x53,\n        /* x */\n        0xEE,
        0xA2, 0xBA, 0xE7, 0xE1, 0x49, 0x78, 0x42, 0xF2, 0xDE, 0x77, 0x69,\n        0xCF,
        0xE9, 0xC9, 0x89, 0xC0, 0x72, 0xAD, 0x69, 0x6F, 0x48, 0x03, 0x4A,\n        /*
        y */\n        0x65, 0x74, 0xd1, 0x1d, 0x69, 0xb6, 0xec, 0x7a, 0x67, 0x2b,
        0xb8, 0x2a,\n        0x08, 0x3d, 0xf2, 0xf2, 0xb0, 0x84, 0x7d, 0xe9, 0x70,
        0xb2, 0xde, 0x15,\n        /* order */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,\n        0x5F, 0xB1, 0xA7, 0x24,
        0xDC, 0x80, 0x41, 0x86, 0x48, 0xD8, 0xDD, 0x31\n    }\n}"
      pos:
        line_end: 199
        line_start: 196
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_PRIME_192V3 = {\n    {\n        NID_X9_62_prime_field, 20,
        24, 1\n    },\n    {\n        /* seed */\n        0xC4, 0x69, 0x68, 0x44,
        0x35, 0xDE, 0xB3, 0x78, 0xC4, 0xB6, 0x5C, 0xA9,\n        0x59, 0x1E, 0x2A,
        0x57, 0x63, 0x05, 0x9A, 0x2E,\n        /* p */\n        0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF,
        0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        /* a
        */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF,\n        0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFC,\n        /* b */\n        0x22, 0x12, 0x3D, 0xC2, 0x39, 0x5A,
        0x05, 0xCA, 0xA7, 0x42, 0x3D, 0xAE,\n        0xCC, 0xC9, 0x47, 0x60, 0xA7,
        0xD4, 0x62, 0x25, 0x6B, 0xD5, 0x69, 0x16,\n        /* x */\n        0x7D,
        0x29, 0x77, 0x81, 0x00, 0xC6, 0x5A, 0x1D, 0xA1, 0x78, 0x37, 0x16,\n        0x58,
        0x8D, 0xCE, 0x2B, 0x8B, 0x4A, 0xEE, 0x8E, 0x22, 0x8F, 0x18, 0x96,\n        /*
        y */\n        0x38, 0xa9, 0x0f, 0x22, 0x63, 0x73, 0x37, 0x33, 0x4b, 0x49,
        0xdc, 0xb6,\n        0x6a, 0x6d, 0xc8, 0xf9, 0x97, 0x8a, 0xca, 0x76, 0x48,
        0xa9, 0x43, 0xb0,\n        /* order */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x7A, 0x62, 0xD0, 0x31,
        0xC8, 0x3F, 0x42, 0x94, 0xF6, 0x40, 0xEC, 0x13\n    }\n}"
      pos:
        line_end: 231
        line_start: 228
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 30 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_PRIME_239V1 = {\n    {\n        NID_X9_62_prime_field, 20,
        30, 1\n    },\n    {\n        /* seed */\n        0xE4, 0x3B, 0xB4, 0x60,
        0xF0, 0xB8, 0x0C, 0xC0, 0xC0, 0xB0, 0x75, 0x79,\n        0x8E, 0x94, 0x80,
        0x60, 0xF8, 0x32, 0x1B, 0x7D,\n        /* p */\n        0x7F, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x7F, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x7F,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        /* a */\n        0x7F, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x7F, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x7F,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFC,\n        /* b */\n        0x6B, 0x01, 0x6C,
        0x3B, 0xDC, 0xF1, 0x89, 0x41, 0xD0, 0xD6, 0x54, 0x92,\n        0x14, 0x75,
        0xCA, 0x71, 0xA9, 0xDB, 0x2F, 0xB2, 0x7D, 0x1D, 0x37, 0x79,\n        0x61,
        0x85, 0xC2, 0x94, 0x2C, 0x0A,\n        /* x */\n        0x0F, 0xFA, 0x96,
        0x3C, 0xDC, 0xA8, 0x81, 0x6C, 0xCC, 0x33, 0xB8, 0x64,\n        0x2B, 0xED,
        0xF9, 0x05, 0xC3, 0xD3, 0x58, 0x57, 0x3D, 0x3F, 0x27, 0xFB,\n        0xBD,
        0x3B, 0x3C, 0xB9, 0xAA, 0xAF,\n        /* y */\n        0x7d, 0xeb, 0xe8,
        0xe4, 0xe9, 0x0a, 0x5d, 0xae, 0x6e, 0x40, 0x54, 0xca,\n        0x53, 0x0b,
        0xa0, 0x46, 0x54, 0xb3, 0x68, 0x18, 0xce, 0x22, 0x6b, 0x39,\n        0xfc,
        0xcb, 0x7b, 0x02, 0xf1, 0xae,\n        /* order */\n        0x7F, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x7F, 0xFF,
        0xFF, 0x9E, 0x5E, 0x9A, 0x9F, 0x5D, 0x90, 0x71, 0xFB, 0xD1,\n        0x52,
        0x26, 0x88, 0x90, 0x9D, 0x0B\n    }\n}"
      pos:
        line_end: 263
        line_start: 260
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 30 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_PRIME_239V2 = {\n    {\n        NID_X9_62_prime_field, 20,
        30, 1\n    },\n    {\n        /* seed */\n        0xE8, 0xB4, 0x01, 0x16,
        0x04, 0x09, 0x53, 0x03, 0xCA, 0x3B, 0x80, 0x99,\n        0x98, 0x2B, 0xE0,
        0x9F, 0xCB, 0x9A, 0xE6, 0x16,\n        /* p */\n        0x7F, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x7F, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x7F,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        /* a */\n        0x7F, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x7F, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x7F,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFC,\n        /* b */\n        0x61, 0x7F, 0xAB,
        0x68, 0x32, 0x57, 0x6C, 0xBB, 0xFE, 0xD5, 0x0D, 0x99,\n        0xF0, 0x24,
        0x9C, 0x3F, 0xEE, 0x58, 0xB9, 0x4B, 0xA0, 0x03, 0x8C, 0x7A,\n        0xE8,
        0x4C, 0x8C, 0x83, 0x2F, 0x2C,\n        /* x */\n        0x38, 0xAF, 0x09,
        0xD9, 0x87, 0x27, 0x70, 0x51, 0x20, 0xC9, 0x21, 0xBB,\n        0x5E, 0x9E,
        0x26, 0x29, 0x6A, 0x3C, 0xDC, 0xF2, 0xF3, 0x57, 0x57, 0xA0,\n        0xEA,
        0xFD, 0x87, 0xB8, 0x30, 0xE7,\n        /* y */\n        0x5b, 0x01, 0x25,
        0xe4, 0xdb, 0xea, 0x0e, 0xc7, 0x20, 0x6d, 0xa0, 0xfc,\n        0x01, 0xd9,
        0xb0, 0x81, 0x32, 0x9f, 0xb5, 0x55, 0xde, 0x6e, 0xf4, 0x60,\n        0x23,
        0x7d, 0xff, 0x8b, 0xe4, 0xba,\n        /* order */\n        0x7F, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x80, 0x00,
        0x00, 0xCF, 0xA7, 0xE8, 0x59, 0x43, 0x77, 0xD4, 0x14, 0xC0,\n        0x38,
        0x21, 0xBC, 0x58, 0x20, 0x63\n    }\n}"
      pos:
        line_end: 301
        line_start: 298
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 30 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_PRIME_239V3 = {\n    {\n        NID_X9_62_prime_field, 20,
        30, 1\n    },\n    {\n        /* seed */\n        0x7D, 0x73, 0x74, 0x16,
        0x8F, 0xFE, 0x34, 0x71, 0xB6, 0x0A, 0x85, 0x76,\n        0x86, 0xA1, 0x94,
        0x75, 0xD3, 0xBF, 0xA2, 0xFF,\n        /* p */\n        0x7F, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x7F, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x7F,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        /* a */\n        0x7F, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x7F, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x7F,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFC,\n        /* b */\n        0x25, 0x57, 0x05,
        0xFA, 0x2A, 0x30, 0x66, 0x54, 0xB1, 0xF4, 0xCB, 0x03,\n        0xD6, 0xA7,
        0x50, 0xA3, 0x0C, 0x25, 0x01, 0x02, 0xD4, 0x98, 0x87, 0x17,\n        0xD9,
        0xBA, 0x15, 0xAB, 0x6D, 0x3E,\n        /* x */\n        0x67, 0x68, 0xAE,
        0x8E, 0x18, 0xBB, 0x92, 0xCF, 0xCF, 0x00, 0x5C, 0x94,\n        0x9A, 0xA2,
        0xC6, 0xD9, 0x48, 0x53, 0xD0, 0xE6, 0x60, 0xBB, 0xF8, 0x54,\n        0xB1,
        0xC9, 0x50, 0x5F, 0xE9, 0x5A,\n        /* y */\n        0x16, 0x07, 0xe6,
        0x89, 0x8f, 0x39, 0x0c, 0x06, 0xbc, 0x1d, 0x55, 0x2b,\n        0xad, 0x22,
        0x6f, 0x3b, 0x6f, 0xcf, 0xe4, 0x8b, 0x6e, 0x81, 0x84, 0x99,\n        0xaf,
        0x18, 0xe3, 0xed, 0x6c, 0xf3,\n        /* order */\n        0x7F, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0x7F, 0xFF,
        0xFF, 0x97, 0x5D, 0xEB, 0x41, 0xB3, 0xA6, 0x05, 0x7C, 0x3C,\n        0x43,
        0x21, 0x46, 0x52, 0x65, 0x51\n    }\n}"
      pos:
        line_end: 339
        line_start: 336
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 32 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_PRIME_256V1 = {\n    {\n        NID_X9_62_prime_field, 20,
        32, 1\n    },\n    {\n        /* seed */\n        0xC4, 0x9D, 0x36, 0x08,
        0x86, 0xE7, 0x04, 0x93, 0x6A, 0x66, 0x78, 0xE1,\n        0x13, 0x9D, 0x26,
        0xB7, 0x81, 0x9F, 0x7E, 0x90,\n        /* p */\n        0xFF, 0xFF, 0xFF,
        0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        /* a */\n        0xFF,
        0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,\n        /* b */\n        0x5A,
        0xC6, 0x35, 0xD8, 0xAA, 0x3A, 0x93, 0xE7, 0xB3, 0xEB, 0xBD, 0x55,\n        0x76,
        0x98, 0x86, 0xBC, 0x65, 0x1D, 0x06, 0xB0, 0xCC, 0x53, 0xB0, 0xF6,\n        0x3B,
        0xCE, 0x3C, 0x3E, 0x27, 0xD2, 0x60, 0x4B,\n        /* x */\n        0x6B,
        0x17, 0xD1, 0xF2, 0xE1, 0x2C, 0x42, 0x47, 0xF8, 0xBC, 0xE6, 0xE5,\n        0x63,
        0xA4, 0x40, 0xF2, 0x77, 0x03, 0x7D, 0x81, 0x2D, 0xEB, 0x33, 0xA0,\n        0xF4,
        0xA1, 0x39, 0x45, 0xD8, 0x98, 0xC2, 0x96,\n        /* y */\n        0x4f,
        0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, 0x8e, 0xe7, 0xeb, 0x4a,\n        0x7c,
        0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31, 0x5e, 0xce,\n        0xcb,
        0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5,\n        /* order */\n        0xFF,
        0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84,\n        0xF3,
        0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51\n    }\n}"
      pos:
        line_end: 377
        line_start: 374
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 14 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_112R1 = {\n    {\n        NID_X9_62_prime_field, 20, 14,
        1\n    },\n    {\n        /* seed */\n        0x00, 0xF5, 0x0B, 0x02, 0x8E,
        0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61,\n        0x51, 0x75, 0x29, 0x04,
        0x72, 0x78, 0x3F, 0xB1,\n        /* p */\n        0xDB, 0x7C, 0x2A, 0xBF,
        0x62, 0xE3, 0x5E, 0x66, 0x80, 0x76, 0xBE, 0xAD,\n        0x20, 0x8B,\n        /*
        a */\n        0xDB, 0x7C, 0x2A, 0xBF, 0x62, 0xE3, 0x5E, 0x66, 0x80, 0x76,
        0xBE, 0xAD,\n        0x20, 0x88,\n        /* b */\n        0x65, 0x9E, 0xF8,
        0xBA, 0x04, 0x39, 0x16, 0xEE, 0xDE, 0x89, 0x11, 0x70,\n        0x2B, 0x22,\n
        \       /* x */\n        0x09, 0x48, 0x72, 0x39, 0x99, 0x5A, 0x5E, 0xE7, 0x6B,
        0x55, 0xF9, 0xC2,\n        0xF0, 0x98,\n        /* y */\n        0xa8, 0x9c,
        0xe5, 0xaf, 0x87, 0x24, 0xc0, 0xa2, 0x3e, 0x0e, 0x0f, 0xf7,\n        0x75,
        0x00,\n        /* order */\n        0xDB, 0x7C, 0x2A, 0xBF, 0x62, 0xE3, 0x5E,
        0x76, 0x28, 0xDF, 0xAC, 0x65,\n        0x61, 0xC5\n    }\n}"
      pos:
        line_end: 416
        line_start: 413
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 14 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_112R2 = {\n    {\n        NID_X9_62_prime_field, 20, 14,
        4\n    },\n    {\n        /* seed */\n        0x00, 0x27, 0x57, 0xA1, 0x11,
        0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61,\n        0x51, 0x75, 0x53, 0x16,
        0xC0, 0x5E, 0x0B, 0xD4,\n        /* p */\n        0xDB, 0x7C, 0x2A, 0xBF,
        0x62, 0xE3, 0x5E, 0x66, 0x80, 0x76, 0xBE, 0xAD,\n        0x20, 0x8B,\n        /*
        a */\n        0x61, 0x27, 0xC2, 0x4C, 0x05, 0xF3, 0x8A, 0x0A, 0xAA, 0xF6,
        0x5C, 0x0E,\n        0xF0, 0x2C,\n        /* b */\n        0x51, 0xDE, 0xF1,
        0x81, 0x5D, 0xB5, 0xED, 0x74, 0xFC, 0xC3, 0x4C, 0x85,\n        0xD7, 0x09,\n
        \       /* x */\n        0x4B, 0xA3, 0x0A, 0xB5, 0xE8, 0x92, 0xB4, 0xE1, 0x64,
        0x9D, 0xD0, 0x92,\n        0x86, 0x43,\n        /* y */\n        0xad, 0xcd,
        0x46, 0xf5, 0x88, 0x2e, 0x37, 0x47, 0xde, 0xf3, 0x6e, 0x95,\n        0x6e,
        0x97,\n        /* order */\n        0x36, 0xDF, 0x0A, 0xAF, 0xD8, 0xB8, 0xD7,
        0x59, 0x7C, 0xA1, 0x05, 0x20,\n        0xD0, 0x4B\n    }\n}"
      pos:
        line_end: 448
        line_start: 445
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 16 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_128R1 = {\n    {\n        NID_X9_62_prime_field, 20, 16,
        1\n    },\n    {\n        /* seed */\n        0x00, 0x0E, 0x0D, 0x4D, 0x69,
        0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75,\n        0x0C, 0xC0, 0x3A, 0x44,
        0x73, 0xD0, 0x36, 0x79,\n        /* p */\n        0xFF, 0xFF, 0xFF, 0xFD,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFF,\n        /* a */\n        0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFC,\n        /*
        b */\n        0xE8, 0x75, 0x79, 0xC1, 0x10, 0x79, 0xF4, 0x3D, 0xD8, 0x24,
        0x99, 0x3C,\n        0x2C, 0xEE, 0x5E, 0xD3,\n        /* x */\n        0x16,
        0x1F, 0xF7, 0x52, 0x8B, 0x89, 0x9B, 0x2D, 0x0C, 0x28, 0x60, 0x7C,\n        0xA5,
        0x2C, 0x5B, 0x86,\n        /* y */\n        0xcf, 0x5a, 0xc8, 0x39, 0x5b,
        0xaf, 0xeb, 0x13, 0xc0, 0x2d, 0xa2, 0x92,\n        0xdd, 0xed, 0x7a, 0x83,\n
        \       /* order */\n        0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00,
        0x75, 0xA3, 0x0D, 0x1B,\n        0x90, 0x38, 0xA1, 0x15\n    }\n}"
      pos:
        line_end: 480
        line_start: 477
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 16 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_128R2 = {\n    {\n        NID_X9_62_prime_field, 20, 16,
        4\n    },\n    {\n        /* seed */\n        0x00, 0x4D, 0x69, 0x6E, 0x67,
        0x68, 0x75, 0x61, 0x51, 0x75, 0x12, 0xD8,\n        0xF0, 0x34, 0x31, 0xFC,
        0xE6, 0x3B, 0x88, 0xF4,\n        /* p */\n        0xFF, 0xFF, 0xFF, 0xFD,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFF,\n        /* a */\n        0xD6, 0x03, 0x19, 0x98, 0xD1, 0xB3, 0xBB,
        0xFE, 0xBF, 0x59, 0xCC, 0x9B,\n        0xBF, 0xF9, 0xAE, 0xE1,\n        /*
        b */\n        0x5E, 0xEE, 0xFC, 0xA3, 0x80, 0xD0, 0x29, 0x19, 0xDC, 0x2C,
        0x65, 0x58,\n        0xBB, 0x6D, 0x8A, 0x5D,\n        /* x */\n        0x7B,
        0x6A, 0xA5, 0xD8, 0x5E, 0x57, 0x29, 0x83, 0xE6, 0xFB, 0x32, 0xA7,\n        0xCD,
        0xEB, 0xC1, 0x40,\n        /* y */\n        0x27, 0xb6, 0x91, 0x6a, 0x89,
        0x4d, 0x3a, 0xee, 0x71, 0x06, 0xfe, 0x80,\n        0x5f, 0xc3, 0x4b, 0x44,\n
        \       /* order */\n        0x3F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF,
        0xBE, 0x00, 0x24, 0x72,\n        0x06, 0x13, 0xB5, 0xA3\n    }\n}"
      pos:
        line_end: 512
        line_start: 509
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_160K1 = {\n    {\n        NID_X9_62_prime_field, 0, 21,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0x00, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xAC, 0x73,\n        /* a */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        /* b */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,\n        /* x */\n        0x00,
        0x3B, 0x4C, 0x38, 0x2C, 0xE3, 0x7A, 0xA1, 0x92, 0xA4, 0x01, 0x9E,\n        0x76,
        0x30, 0x36, 0xF4, 0xF5, 0xDD, 0x4D, 0x7E, 0xBB,\n        /* y */\n        0x00,
        0x93, 0x8c, 0xf9, 0x35, 0x31, 0x8f, 0xdc, 0xed, 0x6b, 0xc2, 0x82,\n        0x86,
        0x53, 0x17, 0x33, 0xc3, 0xf0, 0x3c, 0x4f, 0xee,\n        /* order */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xB8,\n        0xFA,
        0x16, 0xDF, 0xAB, 0x9A, 0xCA, 0x16, 0xB6, 0xB3\n    }\n}"
      pos:
        line_end: 544
        line_start: 541
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_160R1 = {\n    {\n        NID_X9_62_prime_field, 20, 21,
        1\n    },\n    {\n        /* seed */\n        0x10, 0x53, 0xCD, 0xE4, 0x2C,
        0x14, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,\n        0x15, 0x17, 0x53, 0x3B,
        0xF3, 0xF8, 0x33, 0x45,\n        /* p */\n        0x00, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF,\n        /* a */\n        0x00, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFC,\n        /* b */\n        0x00,
        0x1C, 0x97, 0xBE, 0xFC, 0x54, 0xBD, 0x7A, 0x8B, 0x65, 0xAC, 0xF8,\n        0x9F,
        0x81, 0xD4, 0xD4, 0xAD, 0xC5, 0x65, 0xFA, 0x45,\n        /* x */\n        0x00,
        0x4A, 0x96, 0xB5, 0x68, 0x8E, 0xF5, 0x73, 0x28, 0x46, 0x64, 0x69,\n        0x89,
        0x68, 0xC3, 0x8B, 0xB9, 0x13, 0xCB, 0xFC, 0x82,\n        /* y */\n        0x00,
        0x23, 0xa6, 0x28, 0x55, 0x31, 0x68, 0x94, 0x7d, 0x59, 0xdc, 0xc9,\n        0x12,
        0x04, 0x23, 0x51, 0x37, 0x7a, 0xc5, 0xfb, 0x32,\n        /* order */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF4,\n        0xC8,
        0xF9, 0x27, 0xAE, 0xD3, 0xCA, 0x75, 0x22, 0x57\n    }\n}"
      pos:
        line_end: 574
        line_start: 571
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_160R2 = {\n    {\n        NID_X9_62_prime_field, 20, 21,
        1\n    },\n    {\n        /* seed */\n        0xB9, 0x9B, 0x99, 0xB0, 0x99,
        0xB3, 0x23, 0xE0, 0x27, 0x09, 0xA4, 0xD6,\n        0x96, 0xE6, 0x76, 0x87,
        0x56, 0x15, 0x17, 0x51,\n        /* p */\n        0x00, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFF, 0xFE, 0xFF, 0xFF, 0xAC, 0x73,\n        /* a */\n        0x00, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xAC, 0x70,\n        /* b */\n        0x00,
        0xB4, 0xE1, 0x34, 0xD3, 0xFB, 0x59, 0xEB, 0x8B, 0xAB, 0x57, 0x27,\n        0x49,
        0x04, 0x66, 0x4D, 0x5A, 0xF5, 0x03, 0x88, 0xBA,\n        /* x */\n        0x00,
        0x52, 0xDC, 0xB0, 0x34, 0x29, 0x3A, 0x11, 0x7E, 0x1F, 0x4F, 0xF1,\n        0x1B,
        0x30, 0xF7, 0x19, 0x9D, 0x31, 0x44, 0xCE, 0x6D,\n        /* y */\n        0x00,
        0xfe, 0xaf, 0xfe, 0xf2, 0xe3, 0x31, 0xf2, 0x96, 0xe0, 0x71, 0xfa,\n        0x0d,
        0xf9, 0x98, 0x2c, 0xfe, 0xa7, 0xd4, 0x3f, 0x2e,\n        /* order */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35,\n        0x1E,
        0xE7, 0x86, 0xA8, 0x18, 0xF3, 0xA1, 0xA1, 0x6B\n    }\n}"
      pos:
        line_end: 606
        line_start: 603
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_192K1 = {\n    {\n        NID_X9_62_prime_field, 0, 24,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xEE, 0x37,\n        /*
        a */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00,\n        /* b */\n        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,\n        /* x */\n        0xDB,
        0x4F, 0xF1, 0x0E, 0xC0, 0x57, 0xE9, 0xAE, 0x26, 0xB0, 0x7D, 0x02,\n        0x80,
        0xB7, 0xF4, 0x34, 0x1D, 0xA5, 0xD1, 0xB1, 0xEA, 0xE0, 0x6C, 0x7D,\n        /*
        y */\n        0x9b, 0x2f, 0x2f, 0x6d, 0x9c, 0x56, 0x28, 0xa7, 0x84, 0x41,
        0x63, 0xd0,\n        0x15, 0xbe, 0x86, 0x34, 0x40, 0x82, 0xaa, 0x88, 0xd9,
        0x5e, 0x2f, 0x9d,\n        /* order */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,\n        0x26, 0xF2, 0xFC, 0x17,
        0x0F, 0x69, 0x46, 0x6A, 0x74, 0xDE, 0xFD, 0x8D\n    }\n}"
      pos:
        line_end: 638
        line_start: 635
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 29 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_224K1 = {\n    {\n        NID_X9_62_prime_field, 0, 29,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0x00, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFE,
        0xFF, 0xFF, 0xE5, 0x6D,\n        /* a */\n        0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00,\n        /* b */\n        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,
        0x00, 0x05,\n        /* x */\n        0x00, 0xA1, 0x45, 0x5B, 0x33, 0x4D,
        0xF0, 0x99, 0xDF, 0x30, 0xFC, 0x28,\n        0xA1, 0x69, 0xA4, 0x67, 0xE9,
        0xE4, 0x70, 0x75, 0xA9, 0x0F, 0x7E, 0x65,\n        0x0E, 0xB6, 0xB7, 0xA4,
        0x5C,\n        /* y */\n        0x00, 0x7e, 0x08, 0x9f, 0xed, 0x7f, 0xba,
        0x34, 0x42, 0x82, 0xca, 0xfb,\n        0xd6, 0xf7, 0xe3, 0x19, 0xf7, 0xc0,
        0xb0, 0xbd, 0x59, 0xe2, 0xca, 0x4b,\n        0xdb, 0x55, 0x6d, 0x61, 0xa5,\n
        \       /* order */\n        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x01, 0xDC, 0xE8, 0xD2, 0xEC,
        0x61, 0x84, 0xCA, 0xF0, 0xA9,\n        0x71, 0x76, 0x9F, 0xB1, 0xF7\n    }\n}"
      pos:
        line_end: 668
        line_start: 665
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 32 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_PRIME_256K1 = {\n    {\n        NID_X9_62_prime_field, 0, 32,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0x2F,\n        /* a */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        /* b */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,\n        /* x */\n        0x79,
        0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95,\n        0xCE,
        0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9,\n        0x59,
        0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98,\n        /* y */\n        0x48,
        0x3a, 0xda, 0x77, 0x26, 0xa3, 0xc4, 0x65, 0x5d, 0xa4, 0xfb, 0xfc,\n        0x0e,
        0x11, 0x08, 0xa8, 0xfd, 0x17, 0xb4, 0x48, 0xa6, 0x85, 0x54, 0x19,\n        0x9c,
        0x47, 0xd0, 0x8f, 0xfb, 0x10, 0xd4, 0xb8,\n        /* order */\n        0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF,
        0xFF, 0xFF, 0xFE, 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B,\n        0xBF,
        0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41\n    }\n}"
      pos:
        line_end: 704
        line_start: 701
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 15 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_WTLS_8 = {\n    {\n        NID_X9_62_prime_field, 0, 15, 1\n    },\n
        \   {\n        /* no seed */\n        /* p */\n        0x00, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFD, 0xE7,\n
        \       /* a */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,\n        /* b */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x03,\n        /* x */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x01,\n        /*
        y */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x02,\n        /* order */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEC, 0xEA, 0x55, 0x1A,\n        0xD8,
        0x37, 0xE9\n    }\n}"
      pos:
        line_end: 741
        line_start: 738
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_WTLS_9 = {\n    {\n        NID_X9_62_prime_field, 0, 21, 1\n    },\n
        \   {\n        /* no seed */\n        /* p */\n        0x00, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFC, 0x80, 0x8F,\n        /* a */\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        /* b */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,\n        /* x */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /* y */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,\n        /* order */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xCD,\n        0xC9,
        0x8A, 0xE0, 0xE2, 0xDE, 0x57, 0x4A, 0xBF, 0x33\n    }\n}"
      pos:
        line_end: 771
        line_start: 768
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 28 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_WTLS_12 = {\n    {\n        NID_X9_62_prime_field, 0, 28, 1\n    },\n
        \   {\n        /* no seed */\n        /* p */\n        0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF,
        0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x01,\n        /* a */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFE, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFE,\n
        \       /* b */\n        0xB4, 0x05, 0x0A, 0x85, 0x0C, 0x04, 0xB3, 0xAB, 0xF5,
        0x41, 0x32, 0x56,\n        0x50, 0x44, 0xB0, 0xB7, 0xD7, 0xBF, 0xD8, 0xBA,
        0x27, 0x0B, 0x39, 0x43,\n        0x23, 0x55, 0xFF, 0xB4,\n        /* x */\n
        \       0xB7, 0x0E, 0x0C, 0xBD, 0x6B, 0xB4, 0xBF, 0x7F, 0x32, 0x13, 0x90,
        0xB9,\n        0x4A, 0x03, 0xC1, 0xD3, 0x56, 0xC2, 0x11, 0x22, 0x34, 0x32,
        0x80, 0xD6,\n        0x11, 0x5C, 0x1D, 0x21,\n        /* y */\n        0xbd,
        0x37, 0x63, 0x88, 0xb5, 0xf7, 0x23, 0xfb, 0x4c, 0x22, 0xdf, 0xe6,\n        0xcd,
        0x43, 0x75, 0xa0, 0x5a, 0x07, 0x47, 0x64, 0x44, 0xd5, 0x81, 0x99,\n        0x85,
        0x00, 0x7e, 0x34,\n        /* order */\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0x16, 0xA2,
        0xE0, 0xB8, 0xF0, 0x3E, 0x13, 0xDD, 0x29, 0x45,\n        0x5C, 0x5C, 0x2A,
        0x3D\n    }\n}"
      pos:
        line_end: 801
        line_start: 798
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 15 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_CHAR2_113R1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 15, 2\n    },\n    {\n        /* seed */\n        0x10, 0xE7, 0x23, 0xAB,
        0x14, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56, 0x15,\n        0x17, 0x56, 0xFE,
        0xBF, 0x8F, 0xCB, 0x49, 0xA9,\n        /* p */\n        0x02, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x02,
        0x01,\n        /* a */\n        0x00, 0x30, 0x88, 0x25, 0x0C, 0xA6, 0xE7,
        0xC7, 0xFE, 0x64, 0x9C, 0xE8,\n        0x58, 0x20, 0xF7,\n        /* b */\n
        \       0x00, 0xE8, 0xBE, 0xE4, 0xD3, 0xE2, 0x26, 0x07, 0x44, 0x18, 0x8B,
        0xE0,\n        0xE9, 0xC7, 0x23,\n        /* x */\n        0x00, 0x9D, 0x73,
        0x61, 0x6F, 0x35, 0xF4, 0xAB, 0x14, 0x07, 0xD7, 0x35,\n        0x62, 0xC1,
        0x0F,\n        /* y */\n        0x00, 0xA5, 0x28, 0x30, 0x27, 0x79, 0x58,
        0xEE, 0x84, 0xD1, 0x31, 0x5E,\n        0xD3, 0x18, 0x86,\n        /* order
        */\n        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xCC, 0xEC,
        0x8A,\n        0x39, 0xE5, 0x6F\n    }\n}"
      pos:
        line_end: 840
        line_start: 837
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 15 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_CHAR2_113R2 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 15, 2\n    },\n    {\n        /* seed */\n        0x10, 0xC0, 0xFB, 0x15,
        0x76, 0x08, 0x60, 0xDE, 0xF1, 0xEE, 0xF4, 0xD6,\n        0x96, 0xE6, 0x76,
        0x87, 0x56, 0x15, 0x17, 0x5D,\n        /* p */\n        0x02, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x02,
        0x01,\n        /* a */\n        0x00, 0x68, 0x99, 0x18, 0xDB, 0xEC, 0x7E,
        0x5A, 0x0D, 0xD6, 0xDF, 0xC0,\n        0xAA, 0x55, 0xC7,\n        /* b */\n
        \       0x00, 0x95, 0xE9, 0xA9, 0xEC, 0x9B, 0x29, 0x7B, 0xD4, 0xBF, 0x36,
        0xE0,\n        0x59, 0x18, 0x4F,\n        /* x */\n        0x01, 0xA5, 0x7A,
        0x6A, 0x7B, 0x26, 0xCA, 0x5E, 0xF5, 0x2F, 0xCD, 0xB8,\n        0x16, 0x47,
        0x97,\n        /* y */\n        0x00, 0xB3, 0xAD, 0xC9, 0x4E, 0xD1, 0xFE,
        0x67, 0x4C, 0x06, 0xE6, 0x95,\n        0xBA, 0xBA, 0x1D,\n        /* order
        */\n        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x78, 0x9B,
        0x24,\n        0x96, 0xAF, 0x93\n    }\n}"
      pos:
        line_end: 872
        line_start: 869
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 17 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_CHAR2_131R1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 17, 2\n    },\n    {\n        /* seed */\n        0x4D, 0x69, 0x6E, 0x67,
        0x68, 0x75, 0x61, 0x51, 0x75, 0x98, 0x5B, 0xD3,\n        0xAD, 0xBA, 0xDA,
        0x21, 0xB4, 0x3A, 0x97, 0xE2,\n        /* p */\n        0x08, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x01, 0x0D,\n        /* a */\n        0x07, 0xA1, 0x1B, 0x09, 0xA7,
        0x6B, 0x56, 0x21, 0x44, 0x41, 0x8F, 0xF3,\n        0xFF, 0x8C, 0x25, 0x70,
        0xB8,\n        /* b */\n        0x02, 0x17, 0xC0, 0x56, 0x10, 0x88, 0x4B,
        0x63, 0xB9, 0xC6, 0xC7, 0x29,\n        0x16, 0x78, 0xF9, 0xD3, 0x41,\n        /*
        x */\n        0x00, 0x81, 0xBA, 0xF9, 0x1F, 0xDF, 0x98, 0x33, 0xC4, 0x0F,
        0x9C, 0x18,\n        0x13, 0x43, 0x63, 0x83, 0x99,\n        /* y */\n        0x07,
        0x8C, 0x6E, 0x7E, 0xA3, 0x8C, 0x00, 0x1F, 0x73, 0xC8, 0x13, 0x4B,\n        0x1B,
        0x4E, 0xF9, 0xE1, 0x50,\n        /* order */\n        0x04, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x02, 0x31, 0x23, 0x95,\n        0x3A, 0x94, 0x64,
        0xB5, 0x4D\n    }\n}"
      pos:
        line_end: 904
        line_start: 901
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 17 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_CHAR2_131R2 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 17, 2\n    },\n    {\n        /* seed */\n        0x98, 0x5B, 0xD3, 0xAD,
        0xBA, 0xD4, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,\n        0x15, 0x17, 0x5A,
        0x21, 0xB4, 0x3A, 0x97, 0xE3,\n        /* p */\n        0x08, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x01, 0x0D,\n        /* a */\n        0x03, 0xE5, 0xA8, 0x89, 0x19,
        0xD7, 0xCA, 0xFC, 0xBF, 0x41, 0x5F, 0x07,\n        0xC2, 0x17, 0x65, 0x73,
        0xB2,\n        /* b */\n        0x04, 0xB8, 0x26, 0x6A, 0x46, 0xC5, 0x56,
        0x57, 0xAC, 0x73, 0x4C, 0xE3,\n        0x8F, 0x01, 0x8F, 0x21, 0x92,\n        /*
        x */\n        0x03, 0x56, 0xDC, 0xD8, 0xF2, 0xF9, 0x50, 0x31, 0xAD, 0x65,
        0x2D, 0x23,\n        0x95, 0x1B, 0xB3, 0x66, 0xA8,\n        /* y */\n        0x06,
        0x48, 0xF0, 0x6D, 0x86, 0x79, 0x40, 0xA5, 0x36, 0x6D, 0x9E, 0x26,\n        0x5D,
        0xE9, 0xEB, 0x24, 0x0F,\n        /* order */\n        0x04, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x01, 0x69, 0x54, 0xA2,\n        0x33, 0x04, 0x9B,
        0xA9, 0x8F\n    }\n}"
      pos:
        line_end: 936
        line_start: 933
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_163K = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 21, 2\n    },\n    {\n        /* no seed */\n        /* p */\n        0x08,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9,\n        /* a */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /* b */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /* x */\n        0x02,
        0xFE, 0x13, 0xC0, 0x53, 0x7B, 0xBC, 0x11, 0xAC, 0xAA, 0x07, 0xD7,\n        0x93,
        0xDE, 0x4E, 0x6D, 0x5E, 0x5C, 0x94, 0xEE, 0xE8,\n        /* y */\n        0x02,
        0x89, 0x07, 0x0F, 0xB0, 0x5D, 0x38, 0xFF, 0x58, 0x32, 0x1F, 0x2E,\n        0x80,
        0x05, 0x36, 0xD5, 0x38, 0xCC, 0xDA, 0xA3, 0xD9,\n        /* order */\n        0x04,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,\n        0x08,
        0xA2, 0xE0, 0xCC, 0x0D, 0x99, 0xF8, 0xA5, 0xEF\n    }\n}"
      pos:
        line_end: 968
        line_start: 965
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_CHAR2_163R1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 21, 2\n    },\n    {\n        /* p */\n        0x08, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0xC9,\n        /* a */\n        0x07, 0xB6,
        0x88, 0x2C, 0xAA, 0xEF, 0xA8, 0x4F, 0x95, 0x54, 0xFF, 0x84,\n        0x28,
        0xBD, 0x88, 0xE2, 0x46, 0xD2, 0x78, 0x2A, 0xE2,\n        /* b */\n        0x07,
        0x13, 0x61, 0x2D, 0xCD, 0xDC, 0xB4, 0x0A, 0xAB, 0x94, 0x6B, 0xDA,\n        0x29,
        0xCA, 0x91, 0xF7, 0x3A, 0xF9, 0x58, 0xAF, 0xD9,\n        /* x */\n        0x03,
        0x69, 0x97, 0x96, 0x97, 0xAB, 0x43, 0x89, 0x77, 0x89, 0x56, 0x67,\n        0x89,
        0x56, 0x7F, 0x78, 0x7A, 0x78, 0x76, 0xA6, 0x54,\n        /* y */\n        0x00,
        0x43, 0x5E, 0xDB, 0x42, 0xEF, 0xAF, 0xB2, 0x98, 0x9D, 0x51, 0xFE,\n        0xFC,
        0xE3, 0xC8, 0x09, 0x88, 0xF4, 0x1F, 0xF8, 0x83,\n        /* order */\n        0x03,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x48,\n        0xAA,
        0xB6, 0x89, 0xC2, 0x9C, 0xA7, 0x10, 0x27, 0x9B\n    }\n}"
      pos:
        line_end: 998
        line_start: 995
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_163B = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 21, 2\n    },\n    {\n        /* p */\n        0x08, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0xC9,\n        /* a */\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /* b */\n        0x02,
        0x0A, 0x60, 0x19, 0x07, 0xB8, 0xC9, 0x53, 0xCA, 0x14, 0x81, 0xEB,\n        0x10,
        0x51, 0x2F, 0x78, 0x74, 0x4A, 0x32, 0x05, 0xFD,\n        /* x */\n        0x03,
        0xF0, 0xEB, 0xA1, 0x62, 0x86, 0xA2, 0xD5, 0x7E, 0xA0, 0x99, 0x11,\n        0x68,
        0xD4, 0x99, 0x46, 0x37, 0xE8, 0x34, 0x3E, 0x36,\n        /* y */\n        0x00,
        0xD5, 0x1F, 0xBC, 0x6C, 0x71, 0xA0, 0x09, 0x4F, 0xA2, 0xCD, 0xD5,\n        0x45,
        0xB1, 0x1C, 0x5C, 0x0C, 0x79, 0x73, 0x24, 0xF1,\n        /* order */\n        0x04,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x92,\n        0xFE,
        0x77, 0xE7, 0x0C, 0x12, 0xA4, 0x23, 0x4C, 0x33\n    }\n}"
      pos:
        line_end: 1027
        line_start: 1024
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 25 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_CHAR2_193R1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 25, 2\n    },\n    {\n        /* seed */\n        0x10, 0x3F, 0xAE, 0xC7,
        0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51,\n        0x75, 0x77, 0x7F,
        0xC5, 0xB1, 0x91, 0xEF, 0x30,\n        /* p */\n        0x02, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,\n        0x01,\n
        \       /* a */\n        0x00, 0x17, 0x85, 0x8F, 0xEB, 0x7A, 0x98, 0x97, 0x51,
        0x69, 0xE1, 0x71,\n        0xF7, 0x7B, 0x40, 0x87, 0xDE, 0x09, 0x8A, 0xC8,
        0xA9, 0x11, 0xDF, 0x7B,\n        0x01,\n        /* b */\n        0x00, 0xFD,
        0xFB, 0x49, 0xBF, 0xE6, 0xC3, 0xA8, 0x9F, 0xAC, 0xAD, 0xAA,\n        0x7A,
        0x1E, 0x5B, 0xBC, 0x7C, 0xC1, 0xC2, 0xE5, 0xD8, 0x31, 0x47, 0x88,\n        0x14,\n
        \       /* x */\n        0x01, 0xF4, 0x81, 0xBC, 0x5F, 0x0F, 0xF8, 0x4A, 0x74,
        0xAD, 0x6C, 0xDF,\n        0x6F, 0xDE, 0xF4, 0xBF, 0x61, 0x79, 0x62, 0x53,
        0x72, 0xD8, 0xC0, 0xC5,\n        0xE1,\n        /* y */\n        0x00, 0x25,
        0xE3, 0x99, 0xF2, 0x90, 0x37, 0x12, 0xCC, 0xF3, 0xEA, 0x9E,\n        0x3A,
        0x1A, 0xD1, 0x7F, 0xB0, 0xB3, 0x20, 0x1B, 0x6A, 0xF7, 0xCE, 0x1B,\n        0x05,\n
        \       /* order */\n        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00,\n        0x00, 0xC7, 0xF3, 0x4A, 0x77, 0x8F, 0x44,
        0x3A, 0xCC, 0x92, 0x0E, 0xBA,\n        0x49\n    }\n}"
      pos:
        line_end: 1056
        line_start: 1053
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 25 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_CHAR2_193R2 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 25, 2\n    },\n    {\n        /* seed */\n        0x10, 0xB7, 0xB4, 0xD6,
        0x96, 0xE6, 0x76, 0x87, 0x56, 0x15, 0x17, 0x51,\n        0x37, 0xC8, 0xA1,
        0x6F, 0xD0, 0xDA, 0x22, 0x11,\n        /* p */\n        0x02, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,\n        0x01,\n
        \       /* a */\n        0x01, 0x63, 0xF3, 0x5A, 0x51, 0x37, 0xC2, 0xCE, 0x3E,
        0xA6, 0xED, 0x86,\n        0x67, 0x19, 0x0B, 0x0B, 0xC4, 0x3E, 0xCD, 0x69,
        0x97, 0x77, 0x02, 0x70,\n        0x9B,\n        /* b */\n        0x00, 0xC9,
        0xBB, 0x9E, 0x89, 0x27, 0xD4, 0xD6, 0x4C, 0x37, 0x7E, 0x2A,\n        0xB2,
        0x85, 0x6A, 0x5B, 0x16, 0xE3, 0xEF, 0xB7, 0xF6, 0x1D, 0x43, 0x16,\n        0xAE,\n
        \       /* x */\n        0x00, 0xD9, 0xB6, 0x7D, 0x19, 0x2E, 0x03, 0x67, 0xC8,
        0x03, 0xF3, 0x9E,\n        0x1A, 0x7E, 0x82, 0xCA, 0x14, 0xA6, 0x51, 0x35,
        0x0A, 0xAE, 0x61, 0x7E,\n        0x8F,\n        /* y */\n        0x01, 0xCE,
        0x94, 0x33, 0x56, 0x07, 0xC3, 0x04, 0xAC, 0x29, 0xE7, 0xDE,\n        0xFB,
        0xD9, 0xCA, 0x01, 0xF5, 0x96, 0xF9, 0x27, 0x22, 0x4C, 0xDE, 0xCF,\n        0x6C,\n
        \       /* order */\n        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00,\n        0x01, 0x5A, 0xAB, 0x56, 0x1B, 0x00, 0x54,
        0x13, 0xCC, 0xD4, 0xEE, 0x99,\n        0xD5\n    }\n}"
      pos:
        line_end: 1094
        line_start: 1091
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 30 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_233K = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 30, 4\n    },\n    {\n        /* no seed */\n        0x02, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x01,\n        /* a */\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00,\n        /* b */\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x01,\n        /* x */\n        0x01, 0x72, 0x32,
        0xBA, 0x85, 0x3A, 0x7E, 0x73, 0x1A, 0xF1, 0x29, 0xF2,\n        0x2F, 0xF4,
        0x14, 0x95, 0x63, 0xA4, 0x19, 0xC2, 0x6B, 0xF5, 0x0A, 0x4C,\n        0x9D,
        0x6E, 0xEF, 0xAD, 0x61, 0x26,\n        /* y */\n        0x01, 0xDB, 0x53,
        0x7D, 0xEC, 0xE8, 0x19, 0xB7, 0xF7, 0x0F, 0x55, 0x5A,\n        0x67, 0xC4,
        0x27, 0xA8, 0xCD, 0x9B, 0xF1, 0x8A, 0xEB, 0x9B, 0x56, 0xE0,\n        0xC1,
        0x10, 0x56, 0xFA, 0xE6, 0xA3,\n        /* order */\n        0x00, 0x80, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x06, 0x9D, 0x5B, 0xB9, 0x15, 0xBC, 0xD4, 0x6E, 0xFB,\n        0x1A,
        0xD5, 0xF1, 0x73, 0xAB, 0xDF\n    }\n}"
      pos:
        line_end: 1132
        line_start: 1129
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 30 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_233B = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 30, 2\n    },\n    {\n        /* seed */\n        0x74, 0xD5, 0x9F, 0xF0,
        0x7F, 0x6B, 0x41, 0x3D, 0x0E, 0xA1, 0x4B, 0x34,\n        0x4B, 0x20, 0xA2,
        0xDB, 0x04, 0x9B, 0x50, 0xC3,\n        /* p */\n        0x02, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x01,\n        /* a */\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x01,\n        /* b */\n        0x00, 0x66, 0x64,
        0x7E, 0xDE, 0x6C, 0x33, 0x2C, 0x7F, 0x8C, 0x09, 0x23,\n        0xBB, 0x58,
        0x21, 0x3B, 0x33, 0x3B, 0x20, 0xE9, 0xCE, 0x42, 0x81, 0xFE,\n        0x11,
        0x5F, 0x7D, 0x8F, 0x90, 0xAD,\n        /* x */\n        0x00, 0xFA, 0xC9,
        0xDF, 0xCB, 0xAC, 0x83, 0x13, 0xBB, 0x21, 0x39, 0xF1,\n        0xBB, 0x75,
        0x5F, 0xEF, 0x65, 0xBC, 0x39, 0x1F, 0x8B, 0x36, 0xF8, 0xF8,\n        0xEB,
        0x73, 0x71, 0xFD, 0x55, 0x8B,\n        /* y */\n        0x01, 0x00, 0x6A,
        0x08, 0xA4, 0x19, 0x03, 0x35, 0x06, 0x78, 0xE5, 0x85,\n        0x28, 0xBE,
        0xBF, 0x8A, 0x0B, 0xEF, 0xF8, 0x67, 0xA7, 0xCA, 0x36, 0x71,\n        0x6F,
        0x7E, 0x01, 0xF8, 0x10, 0x52,\n        /* order */\n        0x01, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x13, 0xE9, 0x74, 0xE7, 0x2F, 0x8A, 0x69, 0x22, 0x03,\n        0x1D,
        0x26, 0x03, 0xCF, 0xE0, 0xD7\n    }\n}"
      pos:
        line_end: 1167
        line_start: 1164
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 30 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_SECG_CHAR2_239K1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 30, 4\n    },\n    {\n        /* no seed */\n        0x80, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x01,\n        /* a */\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00,\n        /* b */\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x01,\n        /* x */\n        0x29, 0xA0, 0xB6,
        0xA8, 0x87, 0xA9, 0x83, 0xE9, 0x73, 0x09, 0x88, 0xA6,\n        0x87, 0x27,
        0xA8, 0xB2, 0xD1, 0x26, 0xC4, 0x4C, 0xC2, 0xCC, 0x7B, 0x2A,\n        0x65,
        0x55, 0x19, 0x30, 0x35, 0xDC,\n        /* y */\n        0x76, 0x31, 0x08,
        0x04, 0xF1, 0x2E, 0x54, 0x9B, 0xDB, 0x01, 0x1C, 0x10,\n        0x30, 0x89,
        0xE7, 0x35, 0x10, 0xAC, 0xB2, 0x75, 0xFC, 0x31, 0x2A, 0x5D,\n        0xC6,
        0xB7, 0x65, 0x53, 0xF0, 0xCA,\n        /* order */\n        0x20, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x5A, 0x79, 0xFE, 0xC6, 0x7C, 0xB6, 0xE9, 0x1F, 0x1C,\n        0x1D,
        0xA8, 0x00, 0xE4, 0x78, 0xA5\n    }\n}"
      pos:
        line_end: 1205
        line_start: 1202
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 36 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_283K = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 36, 4\n    },\n    {\n        /* no seed */\n        0x08, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xA1,\n        /*
        a */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00,\n        /* b */\n        0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /* x
        */\n        0x05, 0x03, 0x21, 0x3F, 0x78, 0xCA, 0x44, 0x88, 0x3F, 0x1A, 0x3B,
        0x81,\n        0x62, 0xF1, 0x88, 0xE5, 0x53, 0xCD, 0x26, 0x5F, 0x23, 0xC1,
        0x56, 0x7A,\n        0x16, 0x87, 0x69, 0x13, 0xB0, 0xC2, 0xAC, 0x24, 0x58,
        0x49, 0x28, 0x36,\n        /* y */\n        0x01, 0xCC, 0xDA, 0x38, 0x0F,
        0x1C, 0x9E, 0x31, 0x8D, 0x90, 0xF9, 0x5D,\n        0x07, 0xE5, 0x42, 0x6F,
        0xE8, 0x7E, 0x45, 0xC0, 0xE8, 0x18, 0x46, 0x98,\n        0xE4, 0x59, 0x62,
        0x36, 0x4E, 0x34, 0x11, 0x61, 0x77, 0xDD, 0x22, 0x59,\n        /* order */\n
        \       0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF,\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0xAE, 0x2E, 0xD0,
        0x75, 0x77,\n        0x26, 0x5D, 0xFF, 0x7F, 0x94, 0x45, 0x1E, 0x06, 0x1E,
        0x16, 0x3C, 0x61\n    }\n}"
      pos:
        line_end: 1240
        line_start: 1237
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 36 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_283B = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 36, 2\n    },\n    {\n        /* no seed */\n        0x77, 0xE2, 0xB0,
        0x73, 0x70, 0xEB, 0x0F, 0x83, 0x2A, 0x6D, 0xD5, 0xB6,\n        0x2D, 0xFC,
        0x88, 0xCD, 0x06, 0xBB, 0x84, 0xBE,\n        /* p */\n        0x08, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xA1,\n        /*
        a */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x01,\n        /* b */\n        0x02, 0x7B, 0x68, 0x0A,
        0xC8, 0xB8, 0x59, 0x6D, 0xA5, 0xA4, 0xAF, 0x8A,\n        0x19, 0xA0, 0x30,
        0x3F, 0xCA, 0x97, 0xFD, 0x76, 0x45, 0x30, 0x9F, 0xA2,\n        0xA5, 0x81,
        0x48, 0x5A, 0xF6, 0x26, 0x3E, 0x31, 0x3B, 0x79, 0xA2, 0xF5,\n        /* x
        */\n        0x05, 0xF9, 0x39, 0x25, 0x8D, 0xB7, 0xDD, 0x90, 0xE1, 0x93, 0x4F,
        0x8C,\n        0x70, 0xB0, 0xDF, 0xEC, 0x2E, 0xED, 0x25, 0xB8, 0x55, 0x7E,
        0xAC, 0x9C,\n        0x80, 0xE2, 0xE1, 0x98, 0xF8, 0xCD, 0xBE, 0xCD, 0x86,
        0xB1, 0x20, 0x53,\n        /* y */\n        0x03, 0x67, 0x68, 0x54, 0xFE,
        0x24, 0x14, 0x1C, 0xB9, 0x8F, 0xE6, 0xD4,\n        0xB2, 0x0D, 0x02, 0xB4,
        0x51, 0x6F, 0xF7, 0x02, 0x35, 0x0E, 0xDD, 0xB0,\n        0x82, 0x67, 0x79,
        0xC8, 0x13, 0xF0, 0xDF, 0x45, 0xBE, 0x81, 0x12, 0xF4,\n        /* order */\n
        \       0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF,\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x90, 0x39, 0x96,
        0x60, 0xFC,\n        0x93, 0x8A, 0x90, 0x16, 0x5B, 0x04, 0x2A, 0x7C, 0xEF,
        0xAD, 0xB3, 0x07\n    }\n}"
      pos:
        line_end: 1275
        line_start: 1272
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 52 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_409K = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 52, 4\n    },\n    {\n        /* no seed */\n        /* p */\n        0x02,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x01,\n        /* a */\n        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00,\n        /* b */\n        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x01,\n        /* x */\n        0x00, 0x60, 0xF0, 0x5F, 0x65,
        0x8F, 0x49, 0xC1, 0xAD, 0x3A, 0xB1, 0x89,\n        0x0F, 0x71, 0x84, 0x21,
        0x0E, 0xFD, 0x09, 0x87, 0xE3, 0x07, 0xC8, 0x4C,\n        0x27, 0xAC, 0xCF,
        0xB8, 0xF9, 0xF6, 0x7C, 0xC2, 0xC4, 0x60, 0x18, 0x9E,\n        0xB5, 0xAA,
        0xAA, 0x62, 0xEE, 0x22, 0x2E, 0xB1, 0xB3, 0x55, 0x40, 0xCF,\n        0xE9,
        0x02, 0x37, 0x46,\n        /* y */\n        0x01, 0xE3, 0x69, 0x05, 0x0B,
        0x7C, 0x4E, 0x42, 0xAC, 0xBA, 0x1D, 0xAC,\n        0xBF, 0x04, 0x29, 0x9C,
        0x34, 0x60, 0x78, 0x2F, 0x91, 0x8E, 0xA4, 0x27,\n        0xE6, 0x32, 0x51,
        0x65, 0xE9, 0xEA, 0x10, 0xE3, 0xDA, 0x5F, 0x6C, 0x42,\n        0xE9, 0xC5,
        0x52, 0x15, 0xAA, 0x9C, 0xA2, 0x7A, 0x58, 0x63, 0xEC, 0x48,\n        0xD8,
        0xE0, 0x28, 0x6B,\n        /* order */\n        0x00, 0x7F, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFE,
        0x5F, 0x83, 0xB2, 0xD4, 0xEA, 0x20, 0x40, 0x0E, 0xC4,\n        0x55, 0x7D,
        0x5E, 0xD3, 0xE3, 0xE7, 0xCA, 0x5B, 0x4B, 0x5C, 0x83, 0xB8,\n        0xE0,
        0x1E, 0x5F, 0xCF\n    }\n}"
      pos:
        line_end: 1313
        line_start: 1310
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 52 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_409B = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 52, 2\n    },\n    {\n        /* seed */\n        0x40, 0x99, 0xB5, 0xA4,
        0x57, 0xF9, 0xD6, 0x9F, 0x79, 0x21, 0x3D, 0x09,\n        0x4C, 0x4B, 0xCD,
        0x4D, 0x42, 0x62, 0x21, 0x0B,\n        /* p */\n        0x02, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x01,\n        /* a */\n        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x01,\n        /* b */\n        0x00, 0x21, 0xA5, 0xC2, 0xC8,
        0xEE, 0x9F, 0xEB, 0x5C, 0x4B, 0x9A, 0x75,\n        0x3B, 0x7B, 0x47, 0x6B,
        0x7F, 0xD6, 0x42, 0x2E, 0xF1, 0xF3, 0xDD, 0x67,\n        0x47, 0x61, 0xFA,
        0x99, 0xD6, 0xAC, 0x27, 0xC8, 0xA9, 0xA1, 0x97, 0xB2,\n        0x72, 0x82,
        0x2F, 0x6C, 0xD5, 0x7A, 0x55, 0xAA, 0x4F, 0x50, 0xAE, 0x31,\n        0x7B,
        0x13, 0x54, 0x5F,\n        /* x */\n        0x01, 0x5D, 0x48, 0x60, 0xD0,
        0x88, 0xDD, 0xB3, 0x49, 0x6B, 0x0C, 0x60,\n        0x64, 0x75, 0x62, 0x60,
        0x44, 0x1C, 0xDE, 0x4A, 0xF1, 0x77, 0x1D, 0x4D,\n        0xB0, 0x1F, 0xFE,
        0x5B, 0x34, 0xE5, 0x97, 0x03, 0xDC, 0x25, 0x5A, 0x86,\n        0x8A, 0x11,
        0x80, 0x51, 0x56, 0x03, 0xAE, 0xAB, 0x60, 0x79, 0x4E, 0x54,\n        0xBB,
        0x79, 0x96, 0xA7,\n        /* y */\n        0x00, 0x61, 0xB1, 0xCF, 0xAB,
        0x6B, 0xE5, 0xF3, 0x2B, 0xBF, 0xA7, 0x83,\n        0x24, 0xED, 0x10, 0x6A,
        0x76, 0x36, 0xB9, 0xC5, 0xA7, 0xBD, 0x19, 0x8D,\n        0x01, 0x58, 0xAA,
        0x4F, 0x54, 0x88, 0xD0, 0x8F, 0x38, 0x51, 0x4F, 0x1F,\n        0xDF, 0x4B,
        0x4F, 0x40, 0xD2, 0x18, 0x1B, 0x36, 0x81, 0xC3, 0x64, 0xBA,\n        0x02,
        0x73, 0xC7, 0x06,\n        /* order */\n        0x01, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x01,
        0xE2, 0xAA, 0xD6, 0xA6, 0x12, 0xF3, 0x33, 0x07, 0xBE,\n        0x5F, 0xA4,
        0x7C, 0x3C, 0x9E, 0x05, 0x2F, 0x83, 0x81, 0x64, 0xCD, 0x37,\n        0xD9,
        0xA2, 0x11, 0x73\n    }\n}"
      pos:
        line_end: 1361
        line_start: 1358
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 72 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_571K = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 72, 4\n    },\n    {\n        /* no seed */\n        /* p */\n        0x08,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x25,\n        /*
        a */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        /* b */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /*
        x */\n        0x02, 0x6E, 0xB7, 0xA8, 0x59, 0x92, 0x3F, 0xBC, 0x82, 0x18,
        0x96, 0x31,\n        0xF8, 0x10, 0x3F, 0xE4, 0xAC, 0x9C, 0xA2, 0x97, 0x00,
        0x12, 0xD5, 0xD4,\n        0x60, 0x24, 0x80, 0x48, 0x01, 0x84, 0x1C, 0xA4,
        0x43, 0x70, 0x95, 0x84,\n        0x93, 0xB2, 0x05, 0xE6, 0x47, 0xDA, 0x30,
        0x4D, 0xB4, 0xCE, 0xB0, 0x8C,\n        0xBB, 0xD1, 0xBA, 0x39, 0x49, 0x47,
        0x76, 0xFB, 0x98, 0x8B, 0x47, 0x17,\n        0x4D, 0xCA, 0x88, 0xC7, 0xE2,
        0x94, 0x52, 0x83, 0xA0, 0x1C, 0x89, 0x72,\n        /* y */\n        0x03,
        0x49, 0xDC, 0x80, 0x7F, 0x4F, 0xBF, 0x37, 0x4F, 0x4A, 0xEA, 0xDE,\n        0x3B,
        0xCA, 0x95, 0x31, 0x4D, 0xD5, 0x8C, 0xEC, 0x9F, 0x30, 0x7A, 0x54,\n        0xFF,
        0xC6, 0x1E, 0xFC, 0x00, 0x6D, 0x8A, 0x2C, 0x9D, 0x49, 0x79, 0xC0,\n        0xAC,
        0x44, 0xAE, 0xA7, 0x4F, 0xBE, 0xBB, 0xB9, 0xF7, 0x72, 0xAE, 0xDC,\n        0xB6,
        0x20, 0xB0, 0x1A, 0x7B, 0xA7, 0xAF, 0x1B, 0x32, 0x04, 0x30, 0xC8,\n        0x59,
        0x19, 0x84, 0xF6, 0x01, 0xCD, 0x4C, 0x14, 0x3E, 0xF1, 0xC7, 0xA3,\n        /*
        order */\n        0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00,\n        0x13, 0x18, 0x50, 0xE1, 0xF1, 0x9A, 0x63,
        0xE4, 0xB3, 0x91, 0xA8, 0xDB,\n        0x91, 0x7F, 0x41, 0x38, 0xB6, 0x30,
        0xD8, 0x4B, 0xE5, 0xD6, 0x39, 0x38,\n        0x1E, 0x91, 0xDE, 0xB4, 0x5C,
        0xFE, 0x77, 0x8F, 0x63, 0x7C, 0x10, 0x01\n    }\n}"
      pos:
        line_end: 1411
        line_start: 1408
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 72 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_NIST_CHAR2_571B = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 72, 2\n    },\n    {\n        /* seed */\n        0x2A, 0xA0, 0x58, 0xF7,
        0x3A, 0x0E, 0x33, 0xAB, 0x48, 0x6B, 0x0F, 0x61,\n        0x04, 0x10, 0xC5,
        0x3A, 0x7F, 0x13, 0x23, 0x10,\n        /* p */\n        0x08, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x25,\n        /*
        a */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /* b */\n        0x02,
        0xF4, 0x0E, 0x7E, 0x22, 0x21, 0xF2, 0x95, 0xDE, 0x29, 0x71, 0x17,\n        0xB7,
        0xF3, 0xD6, 0x2F, 0x5C, 0x6A, 0x97, 0xFF, 0xCB, 0x8C, 0xEF, 0xF1,\n        0xCD,
        0x6B, 0xA8, 0xCE, 0x4A, 0x9A, 0x18, 0xAD, 0x84, 0xFF, 0xAB, 0xBD,\n        0x8E,
        0xFA, 0x59, 0x33, 0x2B, 0xE7, 0xAD, 0x67, 0x56, 0xA6, 0x6E, 0x29,\n        0x4A,
        0xFD, 0x18, 0x5A, 0x78, 0xFF, 0x12, 0xAA, 0x52, 0x0E, 0x4D, 0xE7,\n        0x39,
        0xBA, 0xCA, 0x0C, 0x7F, 0xFE, 0xFF, 0x7F, 0x29, 0x55, 0x72, 0x7A,\n        /*
        x */\n        0x03, 0x03, 0x00, 0x1D, 0x34, 0xB8, 0x56, 0x29, 0x6C, 0x16,
        0xC0, 0xD4,\n        0x0D, 0x3C, 0xD7, 0x75, 0x0A, 0x93, 0xD1, 0xD2, 0x95,
        0x5F, 0xA8, 0x0A,\n        0xA5, 0xF4, 0x0F, 0xC8, 0xDB, 0x7B, 0x2A, 0xBD,
        0xBD, 0xE5, 0x39, 0x50,\n        0xF4, 0xC0, 0xD2, 0x93, 0xCD, 0xD7, 0x11,
        0xA3, 0x5B, 0x67, 0xFB, 0x14,\n        0x99, 0xAE, 0x60, 0x03, 0x86, 0x14,
        0xF1, 0x39, 0x4A, 0xBF, 0xA3, 0xB4,\n        0xC8, 0x50, 0xD9, 0x27, 0xE1,
        0xE7, 0x76, 0x9C, 0x8E, 0xEC, 0x2D, 0x19,\n        /* y */\n        0x03,
        0x7B, 0xF2, 0x73, 0x42, 0xDA, 0x63, 0x9B, 0x6D, 0xCC, 0xFF, 0xFE,\n        0xB7,
        0x3D, 0x69, 0xD7, 0x8C, 0x6C, 0x27, 0xA6, 0x00, 0x9C, 0xBB, 0xCA,\n        0x19,
        0x80, 0xF8, 0x53, 0x39, 0x21, 0xE8, 0xA6, 0x84, 0x42, 0x3E, 0x43,\n        0xBA,
        0xB0, 0x8A, 0x57, 0x62, 0x91, 0xAF, 0x8F, 0x46, 0x1B, 0xB2, 0xA8,\n        0xB3,
        0x53, 0x1D, 0x2F, 0x04, 0x85, 0xC1, 0x9B, 0x16, 0xE2, 0xF1, 0x51,\n        0x6E,
        0x23, 0xDD, 0x3C, 0x1A, 0x48, 0x27, 0xAF, 0x1B, 0x8A, 0xC1, 0x5B,\n        /*
        order */\n        0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF,\n        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF,\n        0xE6, 0x61, 0xCE, 0x18, 0xFF, 0x55, 0x98,
        0x73, 0x08, 0x05, 0x9B, 0x18,\n        0x68, 0x23, 0x85, 0x1E, 0xC7, 0xDD,
        0x9C, 0xA1, 0x16, 0x1D, 0xE9, 0x3D,\n        0x51, 0x74, 0xD6, 0x6E, 0x83,
        0x82, 0xE9, 0xBB, 0x2F, 0xE8, 0x4E, 0x47\n    }\n}"
      pos:
        line_end: 1465
        line_start: 1462
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_163V1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 21, 2\n    },\n    {\n        /* seed */\n        0xD2, 0xC0, 0xFB, 0x15,
        0x76, 0x08, 0x60, 0xDE, 0xF1, 0xEE, 0xF4, 0xD6,\n        0x96, 0xE6, 0x76,
        0x87, 0x56, 0x15, 0x17, 0x54,\n        /* p */\n        0x08, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,\n        /* a */\n        0x07,
        0x25, 0x46, 0xB5, 0x43, 0x52, 0x34, 0xA4, 0x22, 0xE0, 0x78, 0x96,\n        0x75,
        0xF4, 0x32, 0xC8, 0x94, 0x35, 0xDE, 0x52, 0x42,\n        /* b */\n        0x00,
        0xC9, 0x51, 0x7D, 0x06, 0xD5, 0x24, 0x0D, 0x3C, 0xFF, 0x38, 0xC7,\n        0x4B,
        0x20, 0xB6, 0xCD, 0x4D, 0x6F, 0x9D, 0xD4, 0xD9,\n        /* x */\n        0x07,
        0xAF, 0x69, 0x98, 0x95, 0x46, 0x10, 0x3D, 0x79, 0x32, 0x9F, 0xCC,\n        0x3D,
        0x74, 0x88, 0x0F, 0x33, 0xBB, 0xE8, 0x03, 0xCB,\n        /* y */\n        0x01,
        0xEC, 0x23, 0x21, 0x1B, 0x59, 0x66, 0xAD, 0xEA, 0x1D, 0x3F, 0x87,\n        0xF7,
        0xEA, 0x58, 0x48, 0xAE, 0xF0, 0xB7, 0xCA, 0x9F,\n        /* order */\n        0x04,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE6,\n        0x0F,
        0xC8, 0x82, 0x1C, 0xC7, 0x4D, 0xAE, 0xAF, 0xC1\n    }\n}"
      pos:
        line_end: 1521
        line_start: 1518
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_163V2 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 21, 2\n    },\n    {\n        /* seed */\n        0x53, 0x81, 0x4C, 0x05,
        0x0D, 0x44, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,\n        0x15, 0x17, 0x58,
        0x0C, 0xA4, 0xE2, 0x9F, 0xFD,\n        /* p */\n        0x08, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,\n        /* a */\n        0x01,
        0x08, 0xB3, 0x9E, 0x77, 0xC4, 0xB1, 0x08, 0xBE, 0xD9, 0x81, 0xED,\n        0x0E,
        0x89, 0x0E, 0x11, 0x7C, 0x51, 0x1C, 0xF0, 0x72,\n        /* b */\n        0x06,
        0x67, 0xAC, 0xEB, 0x38, 0xAF, 0x4E, 0x48, 0x8C, 0x40, 0x74, 0x33,\n        0xFF,
        0xAE, 0x4F, 0x1C, 0x81, 0x16, 0x38, 0xDF, 0x20,\n        /* x */\n        0x00,
        0x24, 0x26, 0x6E, 0x4E, 0xB5, 0x10, 0x6D, 0x0A, 0x96, 0x4D, 0x92,\n        0xC4,
        0x86, 0x0E, 0x26, 0x71, 0xDB, 0x9B, 0x6C, 0xC5,\n        /* y */\n        0x07,
        0x9F, 0x68, 0x4D, 0xDF, 0x66, 0x84, 0xC5, 0xCD, 0x25, 0x8B, 0x38,\n        0x90,
        0x02, 0x1B, 0x23, 0x86, 0xDF, 0xD1, 0x9F, 0xC5,\n        /* order */\n        0x03,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xF6,\n        0x4D,
        0xE1, 0x15, 0x1A, 0xDB, 0xB7, 0x8F, 0x10, 0xA7\n    }\n}"
      pos:
        line_end: 1553
        line_start: 1550
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 21 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_163V3 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 21, 2\n    },\n    {\n        /* seed */\n        0x50, 0xCB, 0xF1, 0xD9,
        0x5C, 0xA9, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75,\n        0x61, 0x51, 0x75,
        0xF1, 0x6A, 0x36, 0xA3, 0xB8,\n        /* p */\n        0x08, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,\n        /* a */\n        0x07,
        0xA5, 0x26, 0xC6, 0x3D, 0x3E, 0x25, 0xA2, 0x56, 0xA0, 0x07, 0x69,\n        0x9F,
        0x54, 0x47, 0xE3, 0x2A, 0xE4, 0x56, 0xB5, 0x0E,\n        /* b */\n        0x03,
        0xF7, 0x06, 0x17, 0x98, 0xEB, 0x99, 0xE2, 0x38, 0xFD, 0x6F, 0x1B,\n        0xF9,
        0x5B, 0x48, 0xFE, 0xEB, 0x48, 0x54, 0x25, 0x2B,\n        /* x */\n        0x02,
        0xF9, 0xF8, 0x7B, 0x7C, 0x57, 0x4D, 0x0B, 0xDE, 0xCF, 0x8A, 0x22,\n        0xE6,
        0x52, 0x47, 0x75, 0xF9, 0x8C, 0xDE, 0xBD, 0xCB,\n        /* y */\n        0x05,
        0xB9, 0x35, 0x59, 0x0C, 0x15, 0x5E, 0x17, 0xEA, 0x48, 0xEB, 0x3F,\n        0xF3,
        0x71, 0x8B, 0x89, 0x3D, 0xF5, 0x9A, 0x05, 0xD0,\n        /* order */\n        0x03,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1A,\n        0xEE,
        0x14, 0x0F, 0x11, 0x0A, 0xFF, 0x96, 0x13, 0x09\n    }\n}"
      pos:
        line_end: 1585
        line_start: 1582
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 23 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_176V1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 23, 0xFF6E\n    },\n    {\n        /* no seed */\n        /* p */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x07,\n        /* a
        */\n        0x00, 0xE4, 0xE6, 0xDB, 0x29, 0x95, 0x06, 0x5C, 0x40, 0x7D, 0x9D,
        0x39,\n        0xB8, 0xD0, 0x96, 0x7B, 0x96, 0x70, 0x4B, 0xA8, 0xE9, 0xC9,
        0x0B,\n        /* b */\n        0x00, 0x5D, 0xDA, 0x47, 0x0A, 0xBE, 0x64,
        0x14, 0xDE, 0x8E, 0xC1, 0x33,\n        0xAE, 0x28, 0xE9, 0xBB, 0xD7, 0xFC,
        0xEC, 0x0A, 0xE0, 0xFF, 0xF2,\n        /* x */\n        0x00, 0x8D, 0x16,
        0xC2, 0x86, 0x67, 0x98, 0xB6, 0x00, 0xF9, 0xF0, 0x8B,\n        0xB4, 0xA8,
        0xE8, 0x60, 0xF3, 0x29, 0x8C, 0xE0, 0x4A, 0x57, 0x98,\n        /* y */\n        0x00,
        0x6F, 0xA4, 0x53, 0x9C, 0x2D, 0xAD, 0xDD, 0xD6, 0xBA, 0xB5, 0x16,\n        0x7D,
        0x61, 0xB4, 0x36, 0xE1, 0xD9, 0x2B, 0xB1, 0x6A, 0x56, 0x2C,\n        /* order
        */\n        0x00, 0x00, 0x01, 0x00, 0x92, 0x53, 0x73, 0x97, 0xEC, 0xA4, 0xF6,
        0x14,\n        0x57, 0x99, 0xD6, 0x2B, 0x0A, 0x19, 0xCE, 0x06, 0xFE, 0x26,
        0xAD\n    }\n}"
      pos:
        line_end: 1617
        line_start: 1614
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_191V1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 24, 2\n    },\n    {\n        /* seed */\n        0x4E, 0x13, 0xCA, 0x54,
        0x27, 0x44, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,\n        0x15, 0x17, 0x55,
        0x2F, 0x27, 0x9A, 0x8C, 0x84,\n        /* p */\n        0x80, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,\n        /* a
        */\n        0x28, 0x66, 0x53, 0x7B, 0x67, 0x67, 0x52, 0x63, 0x6A, 0x68, 0xF5,
        0x65,\n        0x54, 0xE1, 0x26, 0x40, 0x27, 0x6B, 0x64, 0x9E, 0xF7, 0x52,
        0x62, 0x67,\n        /* b */\n        0x2E, 0x45, 0xEF, 0x57, 0x1F, 0x00,
        0x78, 0x6F, 0x67, 0xB0, 0x08, 0x1B,\n        0x94, 0x95, 0xA3, 0xD9, 0x54,
        0x62, 0xF5, 0xDE, 0x0A, 0xA1, 0x85, 0xEC,\n        /* x */\n        0x36,
        0xB3, 0xDA, 0xF8, 0xA2, 0x32, 0x06, 0xF9, 0xC4, 0xF2, 0x99, 0xD7,\n        0xB2,
        0x1A, 0x9C, 0x36, 0x91, 0x37, 0xF2, 0xC8, 0x4A, 0xE1, 0xAA, 0x0D,\n        /*
        y */\n        0x76, 0x5B, 0xE7, 0x34, 0x33, 0xB3, 0xF9, 0x5E, 0x33, 0x29,
        0x32, 0xE7,\n        0x0E, 0xA2, 0x45, 0xCA, 0x24, 0x18, 0xEA, 0x0E, 0xF9,
        0x80, 0x18, 0xFB,\n        /* order */\n        0x40, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x04, 0xA2, 0x0E, 0x90,
        0xC3, 0x90, 0x67, 0xC8, 0x93, 0xBB, 0xB9, 0xA5\n    }\n}"
      pos:
        line_end: 1647
        line_start: 1644
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_191V2 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 24, 4\n    },\n    {\n        /* seed */\n        0x08, 0x71, 0xEF, 0x2F,
        0xEF, 0x24, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,\n        0x15, 0x17, 0x58,
        0xBE, 0xE0, 0xD9, 0x5C, 0x15,\n        /* p */\n        0x80, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,\n        /* a
        */\n        0x40, 0x10, 0x28, 0x77, 0x4D, 0x77, 0x77, 0xC7, 0xB7, 0x66, 0x6D,
        0x13,\n        0x66, 0xEA, 0x43, 0x20, 0x71, 0x27, 0x4F, 0x89, 0xFF, 0x01,
        0xE7, 0x18,\n        /* b */\n        0x06, 0x20, 0x04, 0x8D, 0x28, 0xBC,
        0xBD, 0x03, 0xB6, 0x24, 0x9C, 0x99,\n        0x18, 0x2B, 0x7C, 0x8C, 0xD1,
        0x97, 0x00, 0xC3, 0x62, 0xC4, 0x6A, 0x01,\n        /* x */\n        0x38,
        0x09, 0xB2, 0xB7, 0xCC, 0x1B, 0x28, 0xCC, 0x5A, 0x87, 0x92, 0x6A,\n        0xAD,
        0x83, 0xFD, 0x28, 0x78, 0x9E, 0x81, 0xE2, 0xC9, 0xE3, 0xBF, 0x10,\n        /*
        y */\n        0x17, 0x43, 0x43, 0x86, 0x62, 0x6D, 0x14, 0xF3, 0xDB, 0xF0,
        0x17, 0x60,\n        0xD9, 0x21, 0x3A, 0x3E, 0x1C, 0xF3, 0x7A, 0xEC, 0x43,
        0x7D, 0x66, 0x8A,\n        /* order */\n        0x20, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x50, 0x50, 0x8C, 0xB8,
        0x9F, 0x65, 0x28, 0x24, 0xE0, 0x6B, 0x81, 0x73\n    }\n}"
      pos:
        line_end: 1679
        line_start: 1676
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_191V3 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 24, 6\n    },\n    {\n        /* seed */\n        0xE0, 0x53, 0x51, 0x2D,
        0xC6, 0x84, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,\n        0x15, 0x17, 0x50,
        0x67, 0xAE, 0x78, 0x6D, 0x1F,\n        /* p */\n        0x80, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,\n        /* a
        */\n        0x6C, 0x01, 0x07, 0x47, 0x56, 0x09, 0x91, 0x22, 0x22, 0x10, 0x56,
        0x91,\n        0x1C, 0x77, 0xD7, 0x7E, 0x77, 0xA7, 0x77, 0xE7, 0xE7, 0xE7,
        0x7F, 0xCB,\n        /* b */\n        0x71, 0xFE, 0x1A, 0xF9, 0x26, 0xCF,
        0x84, 0x79, 0x89, 0xEF, 0xEF, 0x8D,\n        0xB4, 0x59, 0xF6, 0x63, 0x94,
        0xD9, 0x0F, 0x32, 0xAD, 0x3F, 0x15, 0xE8,\n        /* x */\n        0x37,
        0x5D, 0x4C, 0xE2, 0x4F, 0xDE, 0x43, 0x44, 0x89, 0xDE, 0x87, 0x46,\n        0xE7,
        0x17, 0x86, 0x01, 0x50, 0x09, 0xE6, 0x6E, 0x38, 0xA9, 0x26, 0xDD,\n        /*
        y */\n        0x54, 0x5A, 0x39, 0x17, 0x61, 0x96, 0x57, 0x5D, 0x98, 0x59,
        0x99, 0x36,\n        0x6E, 0x6A, 0xD3, 0x4C, 0xE0, 0xA7, 0x7C, 0xD7, 0x12,
        0x7B, 0x06, 0xBE,\n        /* order */\n        0x15, 0x55, 0x55, 0x55, 0x55,
        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,\n        0x61, 0x0C, 0x0B, 0x19,
        0x68, 0x12, 0xBF, 0xB6, 0x28, 0x8A, 0x3E, 0xA3\n    }\n}"
      pos:
        line_end: 1711
        line_start: 1708
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 27 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_208W1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 27, 0xFE48\n    },\n    {\n        /* no seed */\n        /* p */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x07,\n        /* a */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00,\n        /*
        b */\n        0x00, 0xC8, 0x61, 0x9E, 0xD4, 0x5A, 0x62, 0xE6, 0x21, 0x2E,
        0x11, 0x60,\n        0x34, 0x9E, 0x2B, 0xFA, 0x84, 0x44, 0x39, 0xFA, 0xFC,
        0x2A, 0x3F, 0xD1,\n        0x63, 0x8F, 0x9E,\n        /* x */\n        0x00,
        0x89, 0xFD, 0xFB, 0xE4, 0xAB, 0xE1, 0x93, 0xDF, 0x95, 0x59, 0xEC,\n        0xF0,
        0x7A, 0xC0, 0xCE, 0x78, 0x55, 0x4E, 0x27, 0x84, 0xEB, 0x8C, 0x1E,\n        0xD1,
        0xA5, 0x7A,\n        /* y */\n        0x00, 0x0F, 0x55, 0xB5, 0x1A, 0x06,
        0xE7, 0x8E, 0x9A, 0xC3, 0x8A, 0x03,\n        0x5F, 0xF5, 0x20, 0xD8, 0xB0,
        0x17, 0x81, 0xBE, 0xB1, 0xA6, 0xBB, 0x08,\n        0x61, 0x7D, 0xE3,\n        /*
        order */\n        0x00, 0x00, 0x01, 0x01, 0xBA, 0xF9, 0x5C, 0x97, 0x23, 0xC5,
        0x7B, 0x6C,\n        0x21, 0xDA, 0x2E, 0xFF, 0x2D, 0x5E, 0xD5, 0x88, 0xBD,
        0xD5, 0x71, 0x7E,\n        0x21, 0x2F, 0x9D\n    }\n}"
      pos:
        line_end: 1743
        line_start: 1740
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 30 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_239V1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 30, 4\n    },\n    {\n        /* seed */\n        0xD3, 0x4B, 0x9A, 0x4D,
        0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75,\n        0xCA, 0x71, 0xB9,
        0x20, 0xBF, 0xEF, 0xB0, 0x5D,\n        /* p */\n        0x80, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x10, 0x00, 0x00, 0x00, 0x01,\n        /* a */\n        0x32, 0x01, 0x08,
        0x57, 0x07, 0x7C, 0x54, 0x31, 0x12, 0x3A, 0x46, 0xB8,\n        0x08, 0x90,
        0x67, 0x56, 0xF5, 0x43, 0x42, 0x3E, 0x8D, 0x27, 0x87, 0x75,\n        0x78,
        0x12, 0x57, 0x78, 0xAC, 0x76,\n        /* b */\n        0x79, 0x04, 0x08,
        0xF2, 0xEE, 0xDA, 0xF3, 0x92, 0xB0, 0x12, 0xED, 0xEF,\n        0xB3, 0x39,
        0x2F, 0x30, 0xF4, 0x32, 0x7C, 0x0C, 0xA3, 0xF3, 0x1F, 0xC3,\n        0x83,
        0xC4, 0x22, 0xAA, 0x8C, 0x16,\n        /* x */\n        0x57, 0x92, 0x70,
        0x98, 0xFA, 0x93, 0x2E, 0x7C, 0x0A, 0x96, 0xD3, 0xFD,\n        0x5B, 0x70,
        0x6E, 0xF7, 0xE5, 0xF5, 0xC1, 0x56, 0xE1, 0x6B, 0x7E, 0x7C,\n        0x86,
        0x03, 0x85, 0x52, 0xE9, 0x1D,\n        /* y */\n        0x61, 0xD8, 0xEE,
        0x50, 0x77, 0xC3, 0x3F, 0xEC, 0xF6, 0xF1, 0xA1, 0x6B,\n        0x26, 0x8D,
        0xE4, 0x69, 0xC3, 0xC7, 0x74, 0x4E, 0xA9, 0xA9, 0x71, 0x64,\n        0x9F,
        0xC7, 0xA9, 0x61, 0x63, 0x05,\n        /* order */\n        0x20, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x0F, 0x4D, 0x42, 0xFF, 0xE1, 0x49, 0x2A, 0x49, 0x93,\n        0xF1,
        0xCA, 0xD6, 0x66, 0xE4, 0x47\n    }\n}"
      pos:
        line_end: 1779
        line_start: 1776
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 30 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_239V2 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 30, 6\n    },\n    {\n        /* seed */\n        0x2A, 0xA6, 0x98, 0x2F,
        0xDF, 0xA4, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,\n        0x15, 0x17, 0x5D,
        0x26, 0x67, 0x27, 0x27, 0x7D,\n        /* p */\n        0x80, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x10, 0x00, 0x00, 0x00, 0x01,\n        /* a */\n        0x42, 0x30, 0x01,
        0x77, 0x57, 0xA7, 0x67, 0xFA, 0xE4, 0x23, 0x98, 0x56,\n        0x9B, 0x74,
        0x63, 0x25, 0xD4, 0x53, 0x13, 0xAF, 0x07, 0x66, 0x26, 0x64,\n        0x79,
        0xB7, 0x56, 0x54, 0xE6, 0x5F,\n        /* b */\n        0x50, 0x37, 0xEA,
        0x65, 0x41, 0x96, 0xCF, 0xF0, 0xCD, 0x82, 0xB2, 0xC1,\n        0x4A, 0x2F,
        0xCF, 0x2E, 0x3F, 0xF8, 0x77, 0x52, 0x85, 0xB5, 0x45, 0x72,\n        0x2F,
        0x03, 0xEA, 0xCD, 0xB7, 0x4B,\n        /* x */\n        0x28, 0xF9, 0xD0,
        0x4E, 0x90, 0x00, 0x69, 0xC8, 0xDC, 0x47, 0xA0, 0x85,\n        0x34, 0xFE,
        0x76, 0xD2, 0xB9, 0x00, 0xB7, 0xD7, 0xEF, 0x31, 0xF5, 0x70,\n        0x9F,
        0x20, 0x0C, 0x4C, 0xA2, 0x05,\n        /* y */\n        0x56, 0x67, 0x33,
        0x4C, 0x45, 0xAF, 0xF3, 0xB5, 0xA0, 0x3B, 0xAD, 0x9D,\n        0xD7, 0x5E,
        0x2C, 0x71, 0xA9, 0x93, 0x62, 0x56, 0x7D, 0x54, 0x53, 0xF7,\n        0xFA,
        0x6E, 0x22, 0x7E, 0xC8, 0x33,\n        /* order */\n        0x15, 0x55, 0x55,
        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,\n        0x55, 0x55,
        0x55, 0x3C, 0x6F, 0x28, 0x85, 0x25, 0x9C, 0x31, 0xE3, 0xFC,\n        0xDF,
        0x15, 0x46, 0x24, 0x52, 0x2D\n    }\n}"
      pos:
        line_end: 1817
        line_start: 1814
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 30 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_239V3 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 30, 0xA\n    },\n    {\n        /* seed */\n        0x9E, 0x07, 0x6F,
        0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75,\n        0xE1, 0x1E,
        0x9F, 0xDD, 0x77, 0xF9, 0x20, 0x41,\n        /* p */\n        0x80, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x10, 0x00, 0x00, 0x00, 0x01,\n        /* a */\n        0x01, 0x23, 0x87,
        0x74, 0x66, 0x6A, 0x67, 0x76, 0x6D, 0x66, 0x76, 0xF7,\n        0x78, 0xE6,
        0x76, 0xB6, 0x69, 0x99, 0x17, 0x66, 0x66, 0xE6, 0x87, 0x66,\n        0x6D,
        0x87, 0x66, 0xC6, 0x6A, 0x9F,\n        /* b */\n        0x6A, 0x94, 0x19,
        0x77, 0xBA, 0x9F, 0x6A, 0x43, 0x51, 0x99, 0xAC, 0xFC,\n        0x51, 0x06,
        0x7E, 0xD5, 0x87, 0xF5, 0x19, 0xC5, 0xEC, 0xB5, 0x41, 0xB8,\n        0xE4,
        0x41, 0x11, 0xDE, 0x1D, 0x40,\n        /* x */\n        0x70, 0xF6, 0xE9,
        0xD0, 0x4D, 0x28, 0x9C, 0x4E, 0x89, 0x91, 0x3C, 0xE3,\n        0x53, 0x0B,
        0xFD, 0xE9, 0x03, 0x97, 0x7D, 0x42, 0xB1, 0x46, 0xD5, 0x39,\n        0xBF,
        0x1B, 0xDE, 0x4E, 0x9C, 0x92,\n        /* y */\n        0x2E, 0x5A, 0x0E,
        0xAF, 0x6E, 0x5E, 0x13, 0x05, 0xB9, 0x00, 0x4D, 0xCE,\n        0x5C, 0x0E,
        0xD7, 0xFE, 0x59, 0xA3, 0x56, 0x08, 0xF3, 0x38, 0x37, 0xC8,\n        0x16,
        0xD8, 0x0B, 0x79, 0xF4, 0x61,\n        /* order */\n        0x0C, 0xCC, 0xCC,
        0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,\n        0xCC, 0xCC,
        0xCC, 0xAC, 0x49, 0x12, 0xD2, 0xD9, 0xDF, 0x90, 0x3E, 0xF9,\n        0x88,
        0x8B, 0x8A, 0x0E, 0x4C, 0xFF\n    }\n}"
      pos:
        line_end: 1855
        line_start: 1852
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 35 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_272W1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 35, 0xFF06\n    },\n    {\n        /* no seed */\n        /* p */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B,\n        /* a
        */\n        0x00, 0x91, 0xA0, 0x91, 0xF0, 0x3B, 0x5F, 0xBA, 0x4A, 0xB2, 0xCC,
        0xF4,\n        0x9C, 0x4E, 0xDD, 0x22, 0x0F, 0xB0, 0x28, 0x71, 0x2D, 0x42,
        0xBE, 0x75,\n        0x2B, 0x2C, 0x40, 0x09, 0x4D, 0xBA, 0xCD, 0xB5, 0x86,
        0xFB, 0x20,\n        /* b */\n        0x00, 0x71, 0x67, 0xEF, 0xC9, 0x2B,
        0xB2, 0xE3, 0xCE, 0x7C, 0x8A, 0xAA,\n        0xFF, 0x34, 0xE1, 0x2A, 0x9C,
        0x55, 0x70, 0x03, 0xD7, 0xC7, 0x3A, 0x6F,\n        0xAF, 0x00, 0x3F, 0x99,
        0xF6, 0xCC, 0x84, 0x82, 0xE5, 0x40, 0xF7,\n        /* x */\n        0x00,
        0x61, 0x08, 0xBA, 0xBB, 0x2C, 0xEE, 0xBC, 0xF7, 0x87, 0x05, 0x8A,\n        0x05,
        0x6C, 0xBE, 0x0C, 0xFE, 0x62, 0x2D, 0x77, 0x23, 0xA2, 0x89, 0xE0,\n        0x8A,
        0x07, 0xAE, 0x13, 0xEF, 0x0D, 0x10, 0xD1, 0x71, 0xDD, 0x8D,\n        /* y
        */\n        0x00, 0x10, 0xC7, 0x69, 0x57, 0x16, 0x85, 0x1E, 0xEF, 0x6B, 0xA7,
        0xF6,\n        0x87, 0x2E, 0x61, 0x42, 0xFB, 0xD2, 0x41, 0xB8, 0x30, 0xFF,
        0x5E, 0xFC,\n        0xAC, 0xEC, 0xCA, 0xB0, 0x5E, 0x02, 0x00, 0x5D, 0xDE,
        0x9D, 0x23,\n        /* order */\n        0x00, 0x00, 0x01, 0x00, 0xFA, 0xF5,
        0x13, 0x54, 0xE0, 0xE3, 0x9E, 0x48,\n        0x92, 0xDF, 0x6E, 0x31, 0x9C,
        0x72, 0xC8, 0x16, 0x16, 0x03, 0xFA, 0x45,\n        0xAA, 0x7B, 0x99, 0x8A,
        0x16, 0x7B, 0x8F, 0x1E, 0x62, 0x95, 0x21\n    }\n}"
      pos:
        line_end: 1893
        line_start: 1890
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 39 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_304W1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 39, 0xFE2E\n    },\n    {\n        /* no seed */\n        /* p */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x08, 0x07,\n        /* a */\n        0x00, 0xFD, 0x0D, 0x69, 0x31, 0x49,
        0xA1, 0x18, 0xF6, 0x51, 0xE6, 0xDC,\n        0xE6, 0x80, 0x20, 0x85, 0x37,
        0x7E, 0x5F, 0x88, 0x2D, 0x1B, 0x51, 0x0B,\n        0x44, 0x16, 0x00, 0x74,
        0xC1, 0x28, 0x80, 0x78, 0x36, 0x5A, 0x03, 0x96,\n        0xC8, 0xE6, 0x81,\n
        \       /* b */\n        0x00, 0xBD, 0xDB, 0x97, 0xE5, 0x55, 0xA5, 0x0A, 0x90,
        0x8E, 0x43, 0xB0,\n        0x1C, 0x79, 0x8E, 0xA5, 0xDA, 0xA6, 0x78, 0x8F,
        0x1E, 0xA2, 0x79, 0x4E,\n        0xFC, 0xF5, 0x71, 0x66, 0xB8, 0xC1, 0x40,
        0x39, 0x60, 0x1E, 0x55, 0x82,\n        0x73, 0x40, 0xBE,\n        /* x */\n
        \       0x00, 0x19, 0x7B, 0x07, 0x84, 0x5E, 0x9B, 0xE2, 0xD9, 0x6A, 0xDB,
        0x0F,\n        0x5F, 0x3C, 0x7F, 0x2C, 0xFF, 0xBD, 0x7A, 0x3E, 0xB8, 0xB6,
        0xFE, 0xC3,\n        0x5C, 0x7F, 0xD6, 0x7F, 0x26, 0xDD, 0xF6, 0x28, 0x5A,
        0x64, 0x4F, 0x74,\n        0x0A, 0x26, 0x14,\n        /* y */\n        0x00,
        0xE1, 0x9F, 0xBE, 0xB7, 0x6E, 0x0D, 0xA1, 0x71, 0x51, 0x7E, 0xCF,\n        0x40,
        0x1B, 0x50, 0x28, 0x9B, 0xF0, 0x14, 0x10, 0x32, 0x88, 0x52, 0x7A,\n        0x9B,
        0x41, 0x6A, 0x10, 0x5E, 0x80, 0x26, 0x0B, 0x54, 0x9F, 0xDC, 0x1B,\n        0x92,
        0xC0, 0x3B,\n        /* order */\n        0x00, 0x00, 0x01, 0x01, 0xD5, 0x56,
        0x57, 0x2A, 0xAB, 0xAC, 0x80, 0x01,\n        0x01, 0xD5, 0x56, 0x57, 0x2A,
        0xAB, 0xAC, 0x80, 0x01, 0x02, 0x2D, 0x5C,\n        0x91, 0xDD, 0x17, 0x3F,
        0x8F, 0xB5, 0x61, 0xDA, 0x68, 0x99, 0x16, 0x44,\n        0x43, 0x05, 0x1D\n
        \   }\n}"
      pos:
        line_end: 1929
        line_start: 1926
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[20 + 45 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_359V1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        20, 45, 0x4C\n    },\n    {\n        /* seed */\n        0x2B, 0x35, 0x49,
        0x20, 0xB7, 0x24, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,\n        0x15, 0x17,
        0x58, 0x5B, 0xA1, 0x33, 0x2D, 0xC6,\n        /* p */\n        0x80, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x10,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /* a */\n        0x56,
        0x67, 0x67, 0x6A, 0x65, 0x4B, 0x20, 0x75, 0x4F, 0x35, 0x6E, 0xA9,\n        0x20,
        0x17, 0xD9, 0x46, 0x56, 0x7C, 0x46, 0x67, 0x55, 0x56, 0xF1, 0x95,\n        0x56,
        0xA0, 0x46, 0x16, 0xB5, 0x67, 0xD2, 0x23, 0xA5, 0xE0, 0x56, 0x56,\n        0xFB,
        0x54, 0x90, 0x16, 0xA9, 0x66, 0x56, 0xA5, 0x57,\n        /* b */\n        0x24,
        0x72, 0xE2, 0xD0, 0x19, 0x7C, 0x49, 0x36, 0x3F, 0x1F, 0xE7, 0xF5,\n        0xB6,
        0xDB, 0x07, 0x5D, 0x52, 0xB6, 0x94, 0x7D, 0x13, 0x5D, 0x8C, 0xA4,\n        0x45,
        0x80, 0x5D, 0x39, 0xBC, 0x34, 0x56, 0x26, 0x08, 0x96, 0x87, 0x74,\n        0x2B,
        0x63, 0x29, 0xE7, 0x06, 0x80, 0x23, 0x19, 0x88,\n        /* x */\n        0x3C,
        0x25, 0x8E, 0xF3, 0x04, 0x77, 0x67, 0xE7, 0xED, 0xE0, 0xF1, 0xFD,\n        0xAA,
        0x79, 0xDA, 0xEE, 0x38, 0x41, 0x36, 0x6A, 0x13, 0x2E, 0x16, 0x3A,\n        0xCE,
        0xD4, 0xED, 0x24, 0x01, 0xDF, 0x9C, 0x6B, 0xDC, 0xDE, 0x98, 0xE8,\n        0xE7,
        0x07, 0xC0, 0x7A, 0x22, 0x39, 0xB1, 0xB0, 0x97,\n        /* y */\n        0x53,
        0xD7, 0xE0, 0x85, 0x29, 0x54, 0x70, 0x48, 0x12, 0x1E, 0x9C, 0x95,\n        0xF3,
        0x79, 0x1D, 0xD8, 0x04, 0x96, 0x39, 0x48, 0xF3, 0x4F, 0xAE, 0x7B,\n        0xF4,
        0x4E, 0xA8, 0x23, 0x65, 0xDC, 0x78, 0x68, 0xFE, 0x57, 0xE4, 0xAE,\n        0x2D,
        0xE2, 0x11, 0x30, 0x5A, 0x40, 0x71, 0x04, 0xBD,\n        /* order */\n        0x01,
        0xAF, 0x28, 0x6B, 0xCA, 0x1A, 0xF2, 0x86, 0xBC, 0xA1, 0xAF, 0x28,\n        0x6B,
        0xCA, 0x1A, 0xF2, 0x86, 0xBC, 0xA1, 0xAF, 0x28, 0x6B, 0xC9, 0xFB,\n        0x8F,
        0x6B, 0x85, 0xC5, 0x56, 0x89, 0x2C, 0x20, 0xA7, 0xEB, 0x96, 0x4F,\n        0xE7,
        0x71, 0x9E, 0x74, 0xF4, 0x90, 0x75, 0x8D, 0x3B\n    }\n}"
      pos:
        line_end: 1971
        line_start: 1968
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 47 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_368W1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 47, 0xFF70\n    },\n    {\n        /* no seed */\n        /* p */\n        0x01,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x20,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,\n        /* a
        */\n        0x00, 0xE0, 0xD2, 0xEE, 0x25, 0x09, 0x52, 0x06, 0xF5, 0xE2, 0xA4,
        0xF9,\n        0xED, 0x22, 0x9F, 0x1F, 0x25, 0x6E, 0x79, 0xA0, 0xE2, 0xB4,
        0x55, 0x97,\n        0x0D, 0x8D, 0x0D, 0x86, 0x5B, 0xD9, 0x47, 0x78, 0xC5,
        0x76, 0xD6, 0x2F,\n        0x0A, 0xB7, 0x51, 0x9C, 0xCD, 0x2A, 0x1A, 0x90,
        0x6A, 0xE3, 0x0D,\n        /* b */\n        0x00, 0xFC, 0x12, 0x17, 0xD4,
        0x32, 0x0A, 0x90, 0x45, 0x2C, 0x76, 0x0A,\n        0x58, 0xED, 0xCD, 0x30,
        0xC8, 0xDD, 0x06, 0x9B, 0x3C, 0x34, 0x45, 0x38,\n        0x37, 0xA3, 0x4E,
        0xD5, 0x0C, 0xB5, 0x49, 0x17, 0xE1, 0xC2, 0x11, 0x2D,\n        0x84, 0xD1,
        0x64, 0xF4, 0x44, 0xF8, 0xF7, 0x47, 0x86, 0x04, 0x6A,\n        /* x */\n        0x00,
        0x10, 0x85, 0xE2, 0x75, 0x53, 0x81, 0xDC, 0xCC, 0xE3, 0xC1, 0x55,\n        0x7A,
        0xFA, 0x10, 0xC2, 0xF0, 0xC0, 0xC2, 0x82, 0x56, 0x46, 0xC5, 0xB3,\n        0x4A,
        0x39, 0x4C, 0xBC, 0xFA, 0x8B, 0xC1, 0x6B, 0x22, 0xE7, 0xE7, 0x89,\n        0xE9,
        0x27, 0xBE, 0x21, 0x6F, 0x02, 0xE1, 0xFB, 0x13, 0x6A, 0x5F,\n        /* y
        */\n        0x00, 0x7B, 0x3E, 0xB1, 0xBD, 0xDC, 0xBA, 0x62, 0xD5, 0xD8, 0xB2,
        0x05,\n        0x9B, 0x52, 0x57, 0x97, 0xFC, 0x73, 0x82, 0x2C, 0x59, 0x05,
        0x9C, 0x62,\n        0x3A, 0x45, 0xFF, 0x38, 0x43, 0xCE, 0xE8, 0xF8, 0x7C,
        0xD1, 0x85, 0x5A,\n        0xDA, 0xA8, 0x1E, 0x2A, 0x07, 0x50, 0xB8, 0x0F,
        0xDA, 0x23, 0x10,\n        /* order */\n        0x00, 0x00, 0x01, 0x00, 0x90,
        0x51, 0x2D, 0xA9, 0xAF, 0x72, 0xB0, 0x83,\n        0x49, 0xD9, 0x8A, 0x5D,
        0xD4, 0xC7, 0xB0, 0x53, 0x2E, 0xCA, 0x51, 0xCE,\n        0x03, 0xE2, 0xD1,
        0x0F, 0x3B, 0x7A, 0xC5, 0x79, 0xBD, 0x87, 0xE9, 0x09,\n        0xAE, 0x40,
        0xA6, 0xF1, 0x31, 0xE9, 0xCF, 0xCE, 0x5B, 0xD9, 0x67\n    }\n}"
      pos:
        line_end: 2015
        line_start: 2012
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 54 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_X9_62_CHAR2_431R1 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 54, 0x2760\n    },\n    {\n        /* no seed */\n        /* p */\n        0x80,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x01,\n        /* a */\n        0x1A, 0x82, 0x7E,
        0xF0, 0x0D, 0xD6, 0xFC, 0x0E, 0x23, 0x4C, 0xAF, 0x04,\n        0x6C, 0x6A,
        0x5D, 0x8A, 0x85, 0x39, 0x5B, 0x23, 0x6C, 0xC4, 0xAD, 0x2C,\n        0xF3,
        0x2A, 0x0C, 0xAD, 0xBD, 0xC9, 0xDD, 0xF6, 0x20, 0xB0, 0xEB, 0x99,\n        0x06,
        0xD0, 0x95, 0x7F, 0x6C, 0x6F, 0xEA, 0xCD, 0x61, 0x54, 0x68, 0xDF,\n        0x10,
        0x4D, 0xE2, 0x96, 0xCD, 0x8F,\n        /* b */\n        0x10, 0xD9, 0xB4,
        0xA3, 0xD9, 0x04, 0x7D, 0x8B, 0x15, 0x43, 0x59, 0xAB,\n        0xFB, 0x1B,
        0x7F, 0x54, 0x85, 0xB0, 0x4C, 0xEB, 0x86, 0x82, 0x37, 0xDD,\n        0xC9,
        0xDE, 0xDA, 0x98, 0x2A, 0x67, 0x9A, 0x5A, 0x91, 0x9B, 0x62, 0x6D,\n        0x4E,
        0x50, 0xA8, 0xDD, 0x73, 0x1B, 0x10, 0x7A, 0x99, 0x62, 0x38, 0x1F,\n        0xB5,
        0xD8, 0x07, 0xBF, 0x26, 0x18,\n        /* x */\n        0x12, 0x0F, 0xC0,
        0x5D, 0x3C, 0x67, 0xA9, 0x9D, 0xE1, 0x61, 0xD2, 0xF4,\n        0x09, 0x26,
        0x22, 0xFE, 0xCA, 0x70, 0x1B, 0xE4, 0xF5, 0x0F, 0x47, 0x58,\n        0x71,
        0x4E, 0x8A, 0x87, 0xBB, 0xF2, 0xA6, 0x58, 0xEF, 0x8C, 0x21, 0xE7,\n        0xC5,
        0xEF, 0xE9, 0x65, 0x36, 0x1F, 0x6C, 0x29, 0x99, 0xC0, 0xC2, 0x47,\n        0xB0,
        0xDB, 0xD7, 0x0C, 0xE6, 0xB7,\n        /* y */\n        0x20, 0xD0, 0xAF,
        0x89, 0x03, 0xA9, 0x6F, 0x8D, 0x5F, 0xA2, 0xC2, 0x55,\n        0x74, 0x5D,
        0x3C, 0x45, 0x1B, 0x30, 0x2C, 0x93, 0x46, 0xD9, 0xB7, 0xE4,\n        0x85,
        0xE7, 0xBC, 0xE4, 0x1F, 0x6B, 0x59, 0x1F, 0x3E, 0x8F, 0x6A, 0xDD,\n        0xCB,
        0xB0, 0xBC, 0x4C, 0x2F, 0x94, 0x7A, 0x7D, 0xE1, 0xA8, 0x9B, 0x62,\n        0x5D,
        0x6A, 0x59, 0x8B, 0x37, 0x60,\n        /* order */\n        0x00, 0x03, 0x40,
        0x34, 0x03, 0x40, 0x34, 0x03, 0x40, 0x34, 0x03, 0x40,\n        0x34, 0x03,
        0x40, 0x34, 0x03, 0x40, 0x34, 0x03, 0x40, 0x34, 0x03, 0x40,\n        0x34,
        0x03, 0x40, 0x34, 0x03, 0x23, 0xC3, 0x13, 0xFA, 0xB5, 0x05, 0x89,\n        0x70,
        0x3B, 0x5E, 0xC6, 0x8D, 0x35, 0x87, 0xFE, 0xC6, 0x0D, 0x16, 0x1C,\n        0xC1,
        0x49, 0xC1, 0xAD, 0x4A, 0x91\n    }\n}"
      pos:
        line_end: 2057
        line_start: 2054
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 15 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_WTLS_1 = {\n    {\n        NID_X9_62_characteristic_two_field, 0,
        15, 2\n    },\n    {\n        /* no seed */\n        /* p */\n        0x02,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x02, 0x01,\n        /* a */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x01,\n        /*
        b */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x01,\n        /* x */\n        0x01, 0x66,
        0x79, 0x79, 0xA4, 0x0B, 0xA4, 0x97, 0xE5, 0xD5, 0xC2, 0x70,\n        0x78,
        0x06, 0x17,\n        /* y */\n        0x00, 0xF4, 0x4B, 0x4A, 0xF1, 0xEC,
        0xC2, 0x63, 0x0E, 0x08, 0x78, 0x5C,\n        0xEB, 0xCC, 0x15,\n        /*
        order */\n        0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xBF,
        0x91, 0xAF,\n        0x6D, 0xEA, 0x73\n    }\n}"
      pos:
        line_end: 2105
        line_start: 2102
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 20 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_IPSEC_155_ID3 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 20, 3\n    },\n    {\n        /* no seed */\n        /* p */\n        0x08,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x40,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /* a */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        /* b */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x07, 0x33, 0x8f,\n        /* x */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b,\n        /* y */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc8,\n        /* order */\n        0x02,
        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xC7, 0xF3,\n        0xC7,
        0x88, 0x1B, 0xD0, 0x86, 0x8F, 0xA8, 0x6C\n    }\n}"
      pos:
        line_end: 2141
        line_start: 2138
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_IPSEC_185_ID4 = {\n    {\n        NID_X9_62_characteristic_two_field,
        0, 24, 2\n    },\n    {\n        /* no seed */\n        /* p */\n        0x02,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n        /*
        a */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00,\n        /* b */\n        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xe9,\n        /* x */\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,\n        /*
        y */\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x0d,\n        /* order */\n        0x00, 0xFF, 0xFF, 0xFF, 0xFF,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n        0xED, 0xF9, 0x7C, 0x44,
        0xDB, 0x9F, 0x24, 0x20, 0xBA, 0xFC, 0xA7, 0x5E\n    }\n}"
      pos:
        line_end: 2176
        line_start: 2173
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 20 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP160r1 = {\n    {\n        NID_X9_62_prime_field, 0, 20,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xE9, 0x5E,
        0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD,\n        0x95,
        0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0F,\n        /* a */\n        0x34,
        0x0E, 0x7B, 0xE2, 0xA2, 0x80, 0xEB, 0x74, 0xE2, 0xBE, 0x61, 0xBA,\n        0xDA,
        0x74, 0x5D, 0x97, 0xE8, 0xF7, 0xC3, 0x00,\n        /* b */\n        0x1E,
        0x58, 0x9A, 0x85, 0x95, 0x42, 0x34, 0x12, 0x13, 0x4F, 0xAA, 0x2D,\n        0xBD,
        0xEC, 0x95, 0xC8, 0xD8, 0x67, 0x5E, 0x58,\n        /* x */\n        0xBE,
        0xD5, 0xAF, 0x16, 0xEA, 0x3F, 0x6A, 0x4F, 0x62, 0x93, 0x8C, 0x46,\n        0x31,
        0xEB, 0x5A, 0xF7, 0xBD, 0xBC, 0xDB, 0xC3,\n        /* y */\n        0x16,
        0x67, 0xCB, 0x47, 0x7A, 0x1A, 0x8E, 0xC3, 0x38, 0xF9, 0x47, 0x41,\n        0x66,
        0x9C, 0x97, 0x63, 0x16, 0xDA, 0x63, 0x21,\n        /* order */\n        0xE9,
        0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0x59, 0x91,\n        0xD4,
        0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09\n    }\n}"
      pos:
        line_end: 2216
        line_start: 2213
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 20 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP160t1 = {\n    {\n        NID_X9_62_prime_field, 0, 20,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xE9, 0x5E,
        0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD,\n        0x95,
        0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0F,\n        /* a */\n        0xE9,
        0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD,\n        0x95,
        0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0C,\n        /* b */\n        0x7A,
        0x55, 0x6B, 0x6D, 0xAE, 0x53, 0x5B, 0x7B, 0x51, 0xED, 0x2C, 0x4D,\n        0x7D,
        0xAA, 0x7A, 0x0B, 0x5C, 0x55, 0xF3, 0x80,\n        /* x */\n        0xB1,
        0x99, 0xB1, 0x3B, 0x9B, 0x34, 0xEF, 0xC1, 0x39, 0x7E, 0x64, 0xBA,\n        0xEB,
        0x05, 0xAC, 0xC2, 0x65, 0xFF, 0x23, 0x78,\n        /* y */\n        0xAD,
        0xD6, 0x71, 0x8B, 0x7C, 0x7C, 0x19, 0x61, 0xF0, 0x99, 0x1B, 0x84,\n        0x24,
        0x43, 0x77, 0x21, 0x52, 0xC9, 0xE0, 0xAD,\n        /* order */\n        0xE9,
        0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0x59, 0x91,\n        0xD4,
        0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09\n    }\n}"
      pos:
        line_end: 2246
        line_start: 2243
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP192r1 = {\n    {\n        NID_X9_62_prime_field, 0, 24,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xC3, 0x02,
        0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30,\n        0x93,
        0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x97,\n        /*
        a */\n        0x6A, 0x91, 0x17, 0x40, 0x76, 0xB1, 0xE0, 0xE1, 0x9C, 0x39,
        0xC0, 0x31,\n        0xFE, 0x86, 0x85, 0xC1, 0xCA, 0xE0, 0x40, 0xE5, 0xC6,
        0x9A, 0x28, 0xEF,\n        /* b */\n        0x46, 0x9A, 0x28, 0xEF, 0x7C,
        0x28, 0xCC, 0xA3, 0xDC, 0x72, 0x1D, 0x04,\n        0x4F, 0x44, 0x96, 0xBC,
        0xCA, 0x7E, 0xF4, 0x14, 0x6F, 0xBF, 0x25, 0xC9,\n        /* x */\n        0xC0,
        0xA0, 0x64, 0x7E, 0xAA, 0xB6, 0xA4, 0x87, 0x53, 0xB0, 0x33, 0xC5,\n        0x6C,
        0xB0, 0xF0, 0x90, 0x0A, 0x2F, 0x5C, 0x48, 0x53, 0x37, 0x5F, 0xD6,\n        /*
        y */\n        0x14, 0xB6, 0x90, 0x86, 0x6A, 0xBD, 0x5B, 0xB8, 0x8B, 0x5F,
        0x48, 0x28,\n        0xC1, 0x49, 0x00, 0x02, 0xE6, 0x77, 0x3F, 0xA2, 0xFA,
        0x29, 0x9B, 0x8F,\n        /* order */\n        0xC3, 0x02, 0xF4, 0x1D, 0x93,
        0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x2F,\n        0x9E, 0x9E, 0x91, 0x6B,
        0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1\n    }\n}"
      pos:
        line_end: 2276
        line_start: 2273
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 24 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP192t1 = {\n    {\n        NID_X9_62_prime_field, 0, 24,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xC3, 0x02,
        0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30,\n        0x93,
        0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x97,\n        /*
        a */\n        0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3,
        0x46, 0x30,\n        0x93, 0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1,
        0xA8, 0x62, 0x94,\n        /* b */\n        0x13, 0xD5, 0x6F, 0xFA, 0xEC,
        0x78, 0x68, 0x1E, 0x68, 0xF9, 0xDE, 0xB4,\n        0x3B, 0x35, 0xBE, 0xC2,
        0xFB, 0x68, 0x54, 0x2E, 0x27, 0x89, 0x7B, 0x79,\n        /* x */\n        0x3A,
        0xE9, 0xE5, 0x8C, 0x82, 0xF6, 0x3C, 0x30, 0x28, 0x2E, 0x1F, 0xE7,\n        0xBB,
        0xF4, 0x3F, 0xA7, 0x2C, 0x44, 0x6A, 0xF6, 0xF4, 0x61, 0x81, 0x29,\n        /*
        y */\n        0x09, 0x7E, 0x2C, 0x56, 0x67, 0xC2, 0x22, 0x3A, 0x90, 0x2A,
        0xB5, 0xCA,\n        0x44, 0x9D, 0x00, 0x84, 0xB7, 0xE5, 0xB3, 0xDE, 0x7C,
        0xCC, 0x01, 0xC9,\n        /* order */\n        0xC3, 0x02, 0xF4, 0x1D, 0x93,
        0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x2F,\n        0x9E, 0x9E, 0x91, 0x6B,
        0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1\n    }\n}"
      pos:
        line_end: 2306
        line_start: 2303
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 28 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP224r1 = {\n    {\n        NID_X9_62_prime_field, 0, 28,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xD7, 0xC1,
        0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,\n        0x75,
        0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5,\n        0x7E,
        0xC8, 0xC0, 0xFF,\n        /* a */\n        0x68, 0xA5, 0xE6, 0x2C, 0xA9,
        0xCE, 0x6C, 0x1C, 0x29, 0x98, 0x03, 0xA6,\n        0xC1, 0x53, 0x0B, 0x51,
        0x4E, 0x18, 0x2A, 0xD8, 0xB0, 0x04, 0x2A, 0x59,\n        0xCA, 0xD2, 0x9F,
        0x43,\n        /* b */\n        0x25, 0x80, 0xF6, 0x3C, 0xCF, 0xE4, 0x41,
        0x38, 0x87, 0x07, 0x13, 0xB1,\n        0xA9, 0x23, 0x69, 0xE3, 0x3E, 0x21,
        0x35, 0xD2, 0x66, 0xDB, 0xB3, 0x72,\n        0x38, 0x6C, 0x40, 0x0B,\n        /*
        x */\n        0x0D, 0x90, 0x29, 0xAD, 0x2C, 0x7E, 0x5C, 0xF4, 0x34, 0x08,
        0x23, 0xB2,\n        0xA8, 0x7D, 0xC6, 0x8C, 0x9E, 0x4C, 0xE3, 0x17, 0x4C,
        0x1E, 0x6E, 0xFD,\n        0xEE, 0x12, 0xC0, 0x7D,\n        /* y */\n        0x58,
        0xAA, 0x56, 0xF7, 0x72, 0xC0, 0x72, 0x6F, 0x24, 0xC6, 0xB8, 0x9E,\n        0x4E,
        0xCD, 0xAC, 0x24, 0x35, 0x4B, 0x9E, 0x99, 0xCA, 0xA3, 0xF6, 0xD3,\n        0x76,
        0x14, 0x02, 0xCD,\n        /* order */\n        0xD7, 0xC1, 0x34, 0xAA, 0x26,
        0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,\n        0x75, 0xD0, 0xFB, 0x98,
        0xD1, 0x16, 0xBC, 0x4B, 0x6D, 0xDE, 0xBC, 0xA3,\n        0xA5, 0xA7, 0x93,
        0x9F\n    }\n}"
      pos:
        line_end: 2336
        line_start: 2333
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 28 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP224t1 = {\n    {\n        NID_X9_62_prime_field, 0, 28,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xD7, 0xC1,
        0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,\n        0x75,
        0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5,\n        0x7E,
        0xC8, 0xC0, 0xFF,\n        /* a */\n        0xD7, 0xC1, 0x34, 0xAA, 0x26,
        0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,\n        0x75, 0xD1, 0xD7, 0x87,
        0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5,\n        0x7E, 0xC8, 0xC0,
        0xFC,\n        /* b */\n        0x4B, 0x33, 0x7D, 0x93, 0x41, 0x04, 0xCD,
        0x7B, 0xEF, 0x27, 0x1B, 0xF6,\n        0x0C, 0xED, 0x1E, 0xD2, 0x0D, 0xA1,
        0x4C, 0x08, 0xB3, 0xBB, 0x64, 0xF1,\n        0x8A, 0x60, 0x88, 0x8D,\n        /*
        x */\n        0x6A, 0xB1, 0xE3, 0x44, 0xCE, 0x25, 0xFF, 0x38, 0x96, 0x42,
        0x4E, 0x7F,\n        0xFE, 0x14, 0x76, 0x2E, 0xCB, 0x49, 0xF8, 0x92, 0x8A,
        0xC0, 0xC7, 0x60,\n        0x29, 0xB4, 0xD5, 0x80,\n        /* y */\n        0x03,
        0x74, 0xE9, 0xF5, 0x14, 0x3E, 0x56, 0x8C, 0xD2, 0x3F, 0x3F, 0x4D,\n        0x7C,
        0x0D, 0x4B, 0x1E, 0x41, 0xC8, 0xCC, 0x0D, 0x1C, 0x6A, 0xBD, 0x5F,\n        0x1A,
        0x46, 0xDB, 0x4C,\n        /* order */\n        0xD7, 0xC1, 0x34, 0xAA, 0x26,
        0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,\n        0x75, 0xD0, 0xFB, 0x98,
        0xD1, 0x16, 0xBC, 0x4B, 0x6D, 0xDE, 0xBC, 0xA3,\n        0xA5, 0xA7, 0x93,
        0x9F\n    }\n}"
      pos:
        line_end: 2372
        line_start: 2369
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 32 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP256r1 = {\n    {\n        NID_X9_62_prime_field, 0, 32,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xA9, 0xFB,
        0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,\n        0x9D,
        0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28,\n        0x20,
        0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x77,\n        /* a */\n        0x7D,
        0x5A, 0x09, 0x75, 0xFC, 0x2C, 0x30, 0x57, 0xEE, 0xF6, 0x75, 0x30,\n        0x41,
        0x7A, 0xFF, 0xE7, 0xFB, 0x80, 0x55, 0xC1, 0x26, 0xDC, 0x5C, 0x6C,\n        0xE9,
        0x4A, 0x4B, 0x44, 0xF3, 0x30, 0xB5, 0xD9,\n        /* b */\n        0x26,
        0xDC, 0x5C, 0x6C, 0xE9, 0x4A, 0x4B, 0x44, 0xF3, 0x30, 0xB5, 0xD9,\n        0xBB,
        0xD7, 0x7C, 0xBF, 0x95, 0x84, 0x16, 0x29, 0x5C, 0xF7, 0xE1, 0xCE,\n        0x6B,
        0xCC, 0xDC, 0x18, 0xFF, 0x8C, 0x07, 0xB6,\n        /* x */\n        0x8B,
        0xD2, 0xAE, 0xB9, 0xCB, 0x7E, 0x57, 0xCB, 0x2C, 0x4B, 0x48, 0x2F,\n        0xFC,
        0x81, 0xB7, 0xAF, 0xB9, 0xDE, 0x27, 0xE1, 0xE3, 0xBD, 0x23, 0xC2,\n        0x3A,
        0x44, 0x53, 0xBD, 0x9A, 0xCE, 0x32, 0x62,\n        /* y */\n        0x54,
        0x7E, 0xF8, 0x35, 0xC3, 0xDA, 0xC4, 0xFD, 0x97, 0xF8, 0x46, 0x1A,\n        0x14,
        0x61, 0x1D, 0xC9, 0xC2, 0x77, 0x45, 0x13, 0x2D, 0xED, 0x8E, 0x54,\n        0x5C,
        0x1D, 0x54, 0xC7, 0x2F, 0x04, 0x69, 0x97,\n        /* order */\n        0xA9,
        0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,\n        0x9D,
        0x83, 0x8D, 0x71, 0x8C, 0x39, 0x7A, 0xA3, 0xB5, 0x61, 0xA6, 0xF7,\n        0x90,
        0x1E, 0x0E, 0x82, 0x97, 0x48, 0x56, 0xA7\n    }\n}"
      pos:
        line_end: 2408
        line_start: 2405
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 32 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP256t1 = {\n    {\n        NID_X9_62_prime_field, 0, 32,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xA9, 0xFB,
        0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,\n        0x9D,
        0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28,\n        0x20,
        0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x77,\n        /* a */\n        0xA9,
        0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,\n        0x9D,
        0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28,\n        0x20,
        0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x74,\n        /* b */\n        0x66,
        0x2C, 0x61, 0xC4, 0x30, 0xD8, 0x4E, 0xA4, 0xFE, 0x66, 0xA7, 0x73,\n        0x3D,
        0x0B, 0x76, 0xB7, 0xBF, 0x93, 0xEB, 0xC4, 0xAF, 0x2F, 0x49, 0x25,\n        0x6A,
        0xE5, 0x81, 0x01, 0xFE, 0xE9, 0x2B, 0x04,\n        /* x */\n        0xA3,
        0xE8, 0xEB, 0x3C, 0xC1, 0xCF, 0xE7, 0xB7, 0x73, 0x22, 0x13, 0xB2,\n        0x3A,
        0x65, 0x61, 0x49, 0xAF, 0xA1, 0x42, 0xC4, 0x7A, 0xAF, 0xBC, 0x2B,\n        0x79,
        0xA1, 0x91, 0x56, 0x2E, 0x13, 0x05, 0xF4,\n        /* y */\n        0x2D,
        0x99, 0x6C, 0x82, 0x34, 0x39, 0xC5, 0x6D, 0x7F, 0x7B, 0x22, 0xE1,\n        0x46,
        0x44, 0x41, 0x7E, 0x69, 0xBC, 0xB6, 0xDE, 0x39, 0xD0, 0x27, 0x00,\n        0x1D,
        0xAB, 0xE8, 0xF3, 0x5B, 0x25, 0xC9, 0xBE,\n        /* order */\n        0xA9,
        0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,\n        0x9D,
        0x83, 0x8D, 0x71, 0x8C, 0x39, 0x7A, 0xA3, 0xB5, 0x61, 0xA6, 0xF7,\n        0x90,
        0x1E, 0x0E, 0x82, 0x97, 0x48, 0x56, 0xA7\n    }\n}"
      pos:
        line_end: 2444
        line_start: 2441
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 40 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP320r1 = {\n    {\n        NID_X9_62_prime_field, 0, 40,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xD3, 0x5E,
        0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E,\n        0xD2,
        0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA6, 0xF6, 0xF4, 0x0D, 0xEF,\n        0x4F,
        0x92, 0xB9, 0xEC, 0x78, 0x93, 0xEC, 0x28, 0xFC, 0xD4, 0x12, 0xB1,\n        0xF1,
        0xB3, 0x2E, 0x27,\n        /* a */\n        0x3E, 0xE3, 0x0B, 0x56, 0x8F,
        0xBA, 0xB0, 0xF8, 0x83, 0xCC, 0xEB, 0xD4,\n        0x6D, 0x3F, 0x3B, 0xB8,
        0xA2, 0xA7, 0x35, 0x13, 0xF5, 0xEB, 0x79, 0xDA,\n        0x66, 0x19, 0x0E,
        0xB0, 0x85, 0xFF, 0xA9, 0xF4, 0x92, 0xF3, 0x75, 0xA9,\n        0x7D, 0x86,
        0x0E, 0xB4,\n        /* b */\n        0x52, 0x08, 0x83, 0x94, 0x9D, 0xFD,
        0xBC, 0x42, 0xD3, 0xAD, 0x19, 0x86,\n        0x40, 0x68, 0x8A, 0x6F, 0xE1,
        0x3F, 0x41, 0x34, 0x95, 0x54, 0xB4, 0x9A,\n        0xCC, 0x31, 0xDC, 0xCD,
        0x88, 0x45, 0x39, 0x81, 0x6F, 0x5E, 0xB4, 0xAC,\n        0x8F, 0xB1, 0xF1,
        0xA6,\n        /* x */\n        0x43, 0xBD, 0x7E, 0x9A, 0xFB, 0x53, 0xD8,
        0xB8, 0x52, 0x89, 0xBC, 0xC4,\n        0x8E, 0xE5, 0xBF, 0xE6, 0xF2, 0x01,
        0x37, 0xD1, 0x0A, 0x08, 0x7E, 0xB6,\n        0xE7, 0x87, 0x1E, 0x2A, 0x10,
        0xA5, 0x99, 0xC7, 0x10, 0xAF, 0x8D, 0x0D,\n        0x39, 0xE2, 0x06, 0x11,\n
        \       /* y */\n        0x14, 0xFD, 0xD0, 0x55, 0x45, 0xEC, 0x1C, 0xC8, 0xAB,
        0x40, 0x93, 0x24,\n        0x7F, 0x77, 0x27, 0x5E, 0x07, 0x43, 0xFF, 0xED,
        0x11, 0x71, 0x82, 0xEA,\n        0xA9, 0xC7, 0x78, 0x77, 0xAA, 0xAC, 0x6A,
        0xC7, 0xD3, 0x52, 0x45, 0xD1,\n        0x69, 0x2E, 0x8E, 0xE1,\n        /*
        order */\n        0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C,
        0x78, 0x5E,\n        0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA5, 0xB6,
        0x8F, 0x12, 0xA3,\n        0x2D, 0x48, 0x2E, 0xC7, 0xEE, 0x86, 0x58, 0xE9,
        0x86, 0x91, 0x55, 0x5B,\n        0x44, 0xC5, 0x93, 0x11\n    }\n}"
      pos:
        line_end: 2480
        line_start: 2477
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 40 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP320t1 = {\n    {\n        NID_X9_62_prime_field, 0, 40,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xD3, 0x5E,
        0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E,\n        0xD2,
        0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA6, 0xF6, 0xF4, 0x0D, 0xEF,\n        0x4F,
        0x92, 0xB9, 0xEC, 0x78, 0x93, 0xEC, 0x28, 0xFC, 0xD4, 0x12, 0xB1,\n        0xF1,
        0xB3, 0x2E, 0x27,\n        /* a */\n        0xD3, 0x5E, 0x47, 0x20, 0x36,
        0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E,\n        0xD2, 0x01, 0xE0, 0x65,
        0xF9, 0x8F, 0xCF, 0xA6, 0xF6, 0xF4, 0x0D, 0xEF,\n        0x4F, 0x92, 0xB9,
        0xEC, 0x78, 0x93, 0xEC, 0x28, 0xFC, 0xD4, 0x12, 0xB1,\n        0xF1, 0xB3,
        0x2E, 0x24,\n        /* b */\n        0xA7, 0xF5, 0x61, 0xE0, 0x38, 0xEB,
        0x1E, 0xD5, 0x60, 0xB3, 0xD1, 0x47,\n        0xDB, 0x78, 0x20, 0x13, 0x06,
        0x4C, 0x19, 0xF2, 0x7E, 0xD2, 0x7C, 0x67,\n        0x80, 0xAA, 0xF7, 0x7F,
        0xB8, 0xA5, 0x47, 0xCE, 0xB5, 0xB4, 0xFE, 0xF4,\n        0x22, 0x34, 0x03,
        0x53,\n        /* x */\n        0x92, 0x5B, 0xE9, 0xFB, 0x01, 0xAF, 0xC6,
        0xFB, 0x4D, 0x3E, 0x7D, 0x49,\n        0x90, 0x01, 0x0F, 0x81, 0x34, 0x08,
        0xAB, 0x10, 0x6C, 0x4F, 0x09, 0xCB,\n        0x7E, 0xE0, 0x78, 0x68, 0xCC,
        0x13, 0x6F, 0xFF, 0x33, 0x57, 0xF6, 0x24,\n        0xA2, 0x1B, 0xED, 0x52,\n
        \       /* y */\n        0x63, 0xBA, 0x3A, 0x7A, 0x27, 0x48, 0x3E, 0xBF, 0x66,
        0x71, 0xDB, 0xEF,\n        0x7A, 0xBB, 0x30, 0xEB, 0xEE, 0x08, 0x4E, 0x58,
        0xA0, 0xB0, 0x77, 0xAD,\n        0x42, 0xA5, 0xA0, 0x98, 0x9D, 0x1E, 0xE7,
        0x1B, 0x1B, 0x9B, 0xC0, 0x45,\n        0x5F, 0xB0, 0xD2, 0xC3,\n        /*
        order */\n        0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C,
        0x78, 0x5E,\n        0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA5, 0xB6,
        0x8F, 0x12, 0xA3,\n        0x2D, 0x48, 0x2E, 0xC7, 0xEE, 0x86, 0x58, 0xE9,
        0x86, 0x91, 0x55, 0x5B,\n        0x44, 0xC5, 0x93, 0x11\n    }\n}"
      pos:
        line_end: 2522
        line_start: 2519
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 48 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP384r1 = {\n    {\n        NID_X9_62_prime_field, 0, 48,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0x8C, 0xB9,
        0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E,\n        0x50,
        0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB4,\n        0x12,
        0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23, 0xAC, 0xD3, 0xA7, 0x29,\n        0x90,
        0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00, 0x13, 0x31, 0x07, 0xEC, 0x53,\n        /*
        a */\n        0x7B, 0xC3, 0x82, 0xC6, 0x3D, 0x8C, 0x15, 0x0C, 0x3C, 0x72,
        0x08, 0x0A,\n        0xCE, 0x05, 0xAF, 0xA0, 0xC2, 0xBE, 0xA2, 0x8E, 0x4F,
        0xB2, 0x27, 0x87,\n        0x13, 0x91, 0x65, 0xEF, 0xBA, 0x91, 0xF9, 0x0F,
        0x8A, 0xA5, 0x81, 0x4A,\n        0x50, 0x3A, 0xD4, 0xEB, 0x04, 0xA8, 0xC7,
        0xDD, 0x22, 0xCE, 0x28, 0x26,\n        /* b */\n        0x04, 0xA8, 0xC7,
        0xDD, 0x22, 0xCE, 0x28, 0x26, 0x8B, 0x39, 0xB5, 0x54,\n        0x16, 0xF0,
        0x44, 0x7C, 0x2F, 0xB7, 0x7D, 0xE1, 0x07, 0xDC, 0xD2, 0xA6,\n        0x2E,
        0x88, 0x0E, 0xA5, 0x3E, 0xEB, 0x62, 0xD5, 0x7C, 0xB4, 0x39, 0x02,\n        0x95,
        0xDB, 0xC9, 0x94, 0x3A, 0xB7, 0x86, 0x96, 0xFA, 0x50, 0x4C, 0x11,\n        /*
        x */\n        0x1D, 0x1C, 0x64, 0xF0, 0x68, 0xCF, 0x45, 0xFF, 0xA2, 0xA6,
        0x3A, 0x81,\n        0xB7, 0xC1, 0x3F, 0x6B, 0x88, 0x47, 0xA3, 0xE7, 0x7E,
        0xF1, 0x4F, 0xE3,\n        0xDB, 0x7F, 0xCA, 0xFE, 0x0C, 0xBD, 0x10, 0xE8,
        0xE8, 0x26, 0xE0, 0x34,\n        0x36, 0xD6, 0x46, 0xAA, 0xEF, 0x87, 0xB2,
        0xE2, 0x47, 0xD4, 0xAF, 0x1E,\n        /* y */\n        0x8A, 0xBE, 0x1D,
        0x75, 0x20, 0xF9, 0xC2, 0xA4, 0x5C, 0xB1, 0xEB, 0x8E,\n        0x95, 0xCF,
        0xD5, 0x52, 0x62, 0xB7, 0x0B, 0x29, 0xFE, 0xEC, 0x58, 0x64,\n        0xE1,
        0x9C, 0x05, 0x4F, 0xF9, 0x91, 0x29, 0x28, 0x0E, 0x46, 0x46, 0x21,\n        0x77,
        0x91, 0x81, 0x11, 0x42, 0x82, 0x03, 0x41, 0x26, 0x3C, 0x53, 0x15,\n        /*
        order */\n        0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D,
        0x6F, 0x7E,\n        0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED,
        0x54, 0x56, 0xB3,\n        0x1F, 0x16, 0x6E, 0x6C, 0xAC, 0x04, 0x25, 0xA7,
        0xCF, 0x3A, 0xB6, 0xAF,\n        0x6B, 0x7F, 0xC3, 0x10, 0x3B, 0x88, 0x32,
        0x02, 0xE9, 0x04, 0x65, 0x65\n    }\n}"
      pos:
        line_end: 2564
        line_start: 2561
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 48 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP384t1 = {\n    {\n        NID_X9_62_prime_field, 0, 48,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0x8C, 0xB9,
        0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E,\n        0x50,
        0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB4,\n        0x12,
        0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23, 0xAC, 0xD3, 0xA7, 0x29,\n        0x90,
        0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00, 0x13, 0x31, 0x07, 0xEC, 0x53,\n        /*
        a */\n        0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D,
        0x6F, 0x7E,\n        0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED,
        0x54, 0x56, 0xB4,\n        0x12, 0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23,
        0xAC, 0xD3, 0xA7, 0x29,\n        0x90, 0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00,
        0x13, 0x31, 0x07, 0xEC, 0x50,\n        /* b */\n        0x7F, 0x51, 0x9E,
        0xAD, 0xA7, 0xBD, 0xA8, 0x1B, 0xD8, 0x26, 0xDB, 0xA6,\n        0x47, 0x91,
        0x0F, 0x8C, 0x4B, 0x93, 0x46, 0xED, 0x8C, 0xCD, 0xC6, 0x4E,\n        0x4B,
        0x1A, 0xBD, 0x11, 0x75, 0x6D, 0xCE, 0x1D, 0x20, 0x74, 0xAA, 0x26,\n        0x3B,
        0x88, 0x80, 0x5C, 0xED, 0x70, 0x35, 0x5A, 0x33, 0xB4, 0x71, 0xEE,\n        /*
        x */\n        0x18, 0xDE, 0x98, 0xB0, 0x2D, 0xB9, 0xA3, 0x06, 0xF2, 0xAF,
        0xCD, 0x72,\n        0x35, 0xF7, 0x2A, 0x81, 0x9B, 0x80, 0xAB, 0x12, 0xEB,
        0xD6, 0x53, 0x17,\n        0x24, 0x76, 0xFE, 0xCD, 0x46, 0x2A, 0xAB, 0xFF,
        0xC4, 0xFF, 0x19, 0x1B,\n        0x94, 0x6A, 0x5F, 0x54, 0xD8, 0xD0, 0xAA,
        0x2F, 0x41, 0x88, 0x08, 0xCC,\n        /* y */\n        0x25, 0xAB, 0x05,
        0x69, 0x62, 0xD3, 0x06, 0x51, 0xA1, 0x14, 0xAF, 0xD2,\n        0x75, 0x5A,
        0xD3, 0x36, 0x74, 0x7F, 0x93, 0x47, 0x5B, 0x7A, 0x1F, 0xCA,\n        0x3B,
        0x88, 0xF2, 0xB6, 0xA2, 0x08, 0xCC, 0xFE, 0x46, 0x94, 0x08, 0x58,\n        0x4D,
        0xC2, 0xB2, 0x91, 0x26, 0x75, 0xBF, 0x5B, 0x9E, 0x58, 0x29, 0x28,\n        /*
        order */\n        0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D,
        0x6F, 0x7E,\n        0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED,
        0x54, 0x56, 0xB3,\n        0x1F, 0x16, 0x6E, 0x6C, 0xAC, 0x04, 0x25, 0xA7,
        0xCF, 0x3A, 0xB6, 0xAF,\n        0x6B, 0x7F, 0xC3, 0x10, 0x3B, 0x88, 0x32,
        0x02, 0xE9, 0x04, 0x65, 0x65\n    }\n}"
      pos:
        line_end: 2606
        line_start: 2603
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 64 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP512r1 = {\n    {\n        NID_X9_62_prime_field, 0, 64,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xAA, 0xDD,
        0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,\n        0x33,
        0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,\n        0xD6,
        0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00,\n        0x9B,
        0xC6, 0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6,\n        0x28,
        0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56,\n        0x58,
        0x3A, 0x48, 0xF3,\n        /* a */\n        0x78, 0x30, 0xA3, 0x31, 0x8B,
        0x60, 0x3B, 0x89, 0xE2, 0x32, 0x71, 0x45,\n        0xAC, 0x23, 0x4C, 0xC5,
        0x94, 0xCB, 0xDD, 0x8D, 0x3D, 0xF9, 0x16, 0x10,\n        0xA8, 0x34, 0x41,
        0xCA, 0xEA, 0x98, 0x63, 0xBC, 0x2D, 0xED, 0x5D, 0x5A,\n        0xA8, 0x25,
        0x3A, 0xA1, 0x0A, 0x2E, 0xF1, 0xC9, 0x8B, 0x9A, 0xC8, 0xB5,\n        0x7F,
        0x11, 0x17, 0xA7, 0x2B, 0xF2, 0xC7, 0xB9, 0xE7, 0xC1, 0xAC, 0x4D,\n        0x77,
        0xFC, 0x94, 0xCA,\n        /* b */\n        0x3D, 0xF9, 0x16, 0x10, 0xA8,
        0x34, 0x41, 0xCA, 0xEA, 0x98, 0x63, 0xBC,\n        0x2D, 0xED, 0x5D, 0x5A,
        0xA8, 0x25, 0x3A, 0xA1, 0x0A, 0x2E, 0xF1, 0xC9,\n        0x8B, 0x9A, 0xC8,
        0xB5, 0x7F, 0x11, 0x17, 0xA7, 0x2B, 0xF2, 0xC7, 0xB9,\n        0xE7, 0xC1,
        0xAC, 0x4D, 0x77, 0xFC, 0x94, 0xCA, 0xDC, 0x08, 0x3E, 0x67,\n        0x98,
        0x40, 0x50, 0xB7, 0x5E, 0xBA, 0xE5, 0xDD, 0x28, 0x09, 0xBD, 0x63,\n        0x80,
        0x16, 0xF7, 0x23,\n        /* x */\n        0x81, 0xAE, 0xE4, 0xBD, 0xD8,
        0x2E, 0xD9, 0x64, 0x5A, 0x21, 0x32, 0x2E,\n        0x9C, 0x4C, 0x6A, 0x93,
        0x85, 0xED, 0x9F, 0x70, 0xB5, 0xD9, 0x16, 0xC1,\n        0xB4, 0x3B, 0x62,
        0xEE, 0xF4, 0xD0, 0x09, 0x8E, 0xFF, 0x3B, 0x1F, 0x78,\n        0xE2, 0xD0,
        0xD4, 0x8D, 0x50, 0xD1, 0x68, 0x7B, 0x93, 0xB9, 0x7D, 0x5F,\n        0x7C,
        0x6D, 0x50, 0x47, 0x40, 0x6A, 0x5E, 0x68, 0x8B, 0x35, 0x22, 0x09,\n        0xBC,
        0xB9, 0xF8, 0x22,\n        /* y */\n        0x7D, 0xDE, 0x38, 0x5D, 0x56,
        0x63, 0x32, 0xEC, 0xC0, 0xEA, 0xBF, 0xA9,\n        0xCF, 0x78, 0x22, 0xFD,
        0xF2, 0x09, 0xF7, 0x00, 0x24, 0xA5, 0x7B, 0x1A,\n        0xA0, 0x00, 0xC5,
        0x5B, 0x88, 0x1F, 0x81, 0x11, 0xB2, 0xDC, 0xDE, 0x49,\n        0x4A, 0x5F,
        0x48, 0x5E, 0x5B, 0xCA, 0x4B, 0xD8, 0x8A, 0x27, 0x63, 0xAE,\n        0xD1,
        0xCA, 0x2B, 0x2F, 0xA8, 0xF0, 0x54, 0x06, 0x78, 0xCD, 0x1E, 0x0F,\n        0x3A,
        0xD8, 0x08, 0x92,\n        /* order */\n        0xAA, 0xDD, 0x9D, 0xB8, 0xDB,
        0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,\n        0x33, 0xC9, 0xFC, 0x07,
        0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,\n        0xD6, 0x63, 0x9C,
        0xCA, 0x70, 0x33, 0x08, 0x70, 0x55, 0x3E, 0x5C, 0x41,\n        0x4C, 0xA9,
        0x26, 0x19, 0x41, 0x86, 0x61, 0x19, 0x7F, 0xAC, 0x10, 0x47,\n        0x1D,
        0xB1, 0xD3, 0x81, 0x08, 0x5D, 0xDA, 0xDD, 0xB5, 0x87, 0x96, 0x82,\n        0x9C,
        0xA9, 0x00, 0x69\n    }\n}"
      pos:
        line_end: 2648
        line_start: 2645
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 64 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_brainpoolP512t1 = {\n    {\n        NID_X9_62_prime_field, 0, 64,
        1\n    },\n    {\n        /* no seed */\n        /* p */\n        0xAA, 0xDD,
        0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,\n        0x33,
        0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,\n        0xD6,
        0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00,\n        0x9B,
        0xC6, 0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6,\n        0x28,
        0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56,\n        0x58,
        0x3A, 0x48, 0xF3,\n        /* a */\n        0xAA, 0xDD, 0x9D, 0xB8, 0xDB,
        0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,\n        0x33, 0xC9, 0xFC, 0x07,
        0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,\n        0xD6, 0x63, 0x9C,
        0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00,\n        0x9B, 0xC6,
        0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6,\n        0x28,
        0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56,\n        0x58,
        0x3A, 0x48, 0xF0,\n        /* b */\n        0x7C, 0xBB, 0xBC, 0xF9, 0x44,
        0x1C, 0xFA, 0xB7, 0x6E, 0x18, 0x90, 0xE4,\n        0x68, 0x84, 0xEA, 0xE3,
        0x21, 0xF7, 0x0C, 0x0B, 0xCB, 0x49, 0x81, 0x52,\n        0x78, 0x97, 0x50,
        0x4B, 0xEC, 0x3E, 0x36, 0xA6, 0x2B, 0xCD, 0xFA, 0x23,\n        0x04, 0x97,
        0x65, 0x40, 0xF6, 0x45, 0x00, 0x85, 0xF2, 0xDA, 0xE1, 0x45,\n        0xC2,
        0x25, 0x53, 0xB4, 0x65, 0x76, 0x36, 0x89, 0x18, 0x0E, 0xA2, 0x57,\n        0x18,
        0x67, 0x42, 0x3E,\n        /* x */\n        0x64, 0x0E, 0xCE, 0x5C, 0x12,
        0x78, 0x87, 0x17, 0xB9, 0xC1, 0xBA, 0x06,\n        0xCB, 0xC2, 0xA6, 0xFE,
        0xBA, 0x85, 0x84, 0x24, 0x58, 0xC5, 0x6D, 0xDE,\n        0x9D, 0xB1, 0x75,
        0x8D, 0x39, 0xC0, 0x31, 0x3D, 0x82, 0xBA, 0x51, 0x73,\n        0x5C, 0xDB,
        0x3E, 0xA4, 0x99, 0xAA, 0x77, 0xA7, 0xD6, 0x94, 0x3A, 0x64,\n        0xF7,
        0xA3, 0xF2, 0x5F, 0xE2, 0x6F, 0x06, 0xB5, 0x1B, 0xAA, 0x26, 0x96,\n        0xFA,
        0x90, 0x35, 0xDA,\n        /* y */\n        0x5B, 0x53, 0x4B, 0xD5, 0x95,
        0xF5, 0xAF, 0x0F, 0xA2, 0xC8, 0x92, 0x37,\n        0x6C, 0x84, 0xAC, 0xE1,
        0xBB, 0x4E, 0x30, 0x19, 0xB7, 0x16, 0x34, 0xC0,\n        0x11, 0x31, 0x15,
        0x9C, 0xAE, 0x03, 0xCE, 0xE9, 0xD9, 0x93, 0x21, 0x84,\n        0xBE, 0xEF,
        0x21, 0x6B, 0xD7, 0x1D, 0xF2, 0xDA, 0xDF, 0x86, 0xA6, 0x27,\n        0x30,
        0x6E, 0xCF, 0xF9, 0x6D, 0xBB, 0x8B, 0xAC, 0xE1, 0x98, 0xB6, 0x1E,\n        0x00,
        0xF8, 0xB3, 0x32,\n        /* order */\n        0xAA, 0xDD, 0x9D, 0xB8, 0xDB,
        0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,\n        0x33, 0xC9, 0xFC, 0x07,
        0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,\n        0xD6, 0x63, 0x9C,
        0xCA, 0x70, 0x33, 0x08, 0x70, 0x55, 0x3E, 0x5C, 0x41,\n        0x4C, 0xA9,
        0x26, 0x19, 0x41, 0x86, 0x61, 0x19, 0x7F, 0xAC, 0x10, 0x47,\n        0x1D,
        0xB1, 0xD3, 0x81, 0x08, 0x5D, 0xDA, 0xDD, 0xB5, 0x87, 0x96, 0x82,\n        0x9C,
        0xA9, 0x00, 0x69\n    }\n}"
      pos:
        line_end: 2702
        line_start: 2699
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: h
        type: EC_CURVE_DATA
      - name: data[0 + 32 * 6]
        type: unsigned char
      item_type: struct
      name: "_EC_sm2p256v1 = {\n    {\n       NID_X9_62_prime_field, 0, 32, 1\n    },\n
        \   {\n        /* no seed */\n\n        /* p */\n        0xff, 0xff, 0xff,
        0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n        0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,\n        0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n        /* a */\n        0xff,
        0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n        0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,\n        0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,\n        /* b */\n        0x28,
        0xe9, 0xfa, 0x9e, 0x9d, 0x9f, 0x5e, 0x34, 0x4d, 0x5a, 0x9e, 0x4b,\n        0xcf,
        0x65, 0x09, 0xa7, 0xf3, 0x97, 0x89, 0xf5, 0x15, 0xab, 0x8f, 0x92,\n        0xdd,
        0xbc, 0xbd, 0x41, 0x4d, 0x94, 0x0e, 0x93,\n        /* x */\n        0x32,
        0xc4, 0xae, 0x2c, 0x1f, 0x19, 0x81, 0x19, 0x5f, 0x99, 0x04, 0x46,\n        0x6a,
        0x39, 0xc9, 0x94, 0x8f, 0xe3, 0x0b, 0xbf, 0xf2, 0x66, 0x0b, 0xe1,\n        0x71,
        0x5a, 0x45, 0x89, 0x33, 0x4c, 0x74, 0xc7,\n        /* y */\n        0xbc,
        0x37, 0x36, 0xa2, 0xf4, 0xf6, 0x77, 0x9c, 0x59, 0xbd, 0xce, 0xe3,\n        0x6b,
        0x69, 0x21, 0x53, 0xd0, 0xa9, 0x87, 0x7c, 0xc6, 0x2a, 0x47, 0x40,\n        0x02,
        0xdf, 0x32, 0xe5, 0x21, 0x39, 0xf0, 0xa0,\n        /* order */\n        0xff,
        0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n        0xff,
        0xff, 0xff, 0xff, 0x72, 0x03, 0xdf, 0x6b, 0x21, 0xc6, 0x05, 0x2b,\n        0x53,
        0xbb, 0xf4, 0x09, 0x39, 0xd5, 0x41, 0x23,\n    }\n}"
      pos:
        line_end: 2757
        line_start: 2754
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: nid
        type: int
      - name: '*data'
        type: EC_CURVE_DATA
      - name: '*(*meth) (void)'
        type: EC_METHOD
      - name: '*comment'
        type: char
      item_type: struct
      name: _ec_list_element_st
      pos:
        line_end: 2797
        line_start: 2792
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    - fields:
      - name: '*name'
        type: char
      - name: nid
        type: int
      item_type: struct
      name: EC_NIST_NAME
      pos:
        line_end: 3160
        line_start: 3157
        source_file: /src/openssl-1.1.1g/crypto/ec/ec_curve.c
    typedefs: []
    union: []
- function_names:
  - ec_GFp_nistp_points_make_affine_internal
  - tmp_felem
  - X
  - Y
  - Z
  - ec_GFp_nistp_recode_scalar_bits
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistputil.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ISX448
  - IS25519
  - KEYLENID
  - KEYLEN
  - ecx_key_op
  - ecx_pub_encode
  - ecx_pub_decode
  - ecx_pub_cmp
  - ecx_priv_decode
  - ecx_priv_encode
  - ecx_size
  - ecx_bits
  - ecx_security_bits
  - ecx_free
  - ecx_cmp_parameters
  - ecx_key_print
  - ecx_priv_print
  - ecx_pub_print
  - ecx_ctrl
  - ecd_ctrl
  - ecx_set_priv_key
  - ecx_set_pub_key
  - ecx_get_priv_key
  - ecx_get_pub_key
  - ecd_size25519
  - ecd_size448
  - ecd_item_verify
  - ecd_item_sign25519
  - ecd_sig_info_set25519
  - ecd_item_sign448
  - ecd_sig_info_set448
  - pkey_ecx_keygen
  - validate_ecx_derive
  - pkey_ecx_derive25519
  - pkey_ecx_derive448
  - pkey_ecx_ctrl
  - pkey_ecd_digestsign25519
  - pkey_ecd_digestsign448
  - pkey_ecd_digestverify25519
  - pkey_ecd_digestverify448
  - pkey_ecd_ctrl
  source_file: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X25519_BITS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
      type_or_value: '253'
    - item_type: preproc_def
      name: X25519_SECURITY_BITS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
      type_or_value: '128'
    - item_type: preproc_def
      name: ED25519_SIGSIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
      type_or_value: '64'
    - item_type: preproc_def
      name: X448_BITS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
      type_or_value: '448'
    - item_type: preproc_def
      name: ED448_BITS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
      type_or_value: '456'
    - item_type: preproc_def
      name: X448_SECURITY_BITS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
      type_or_value: '224'
    - item_type: preproc_def
      name: ED448_SIGSIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/ec/ecx_meth.c
      type_or_value: '114'
    structs: []
    typedefs: []
    union: []
- function_names:
  - bin66_to_felem
  - felem_to_bin66
  - BN_to_felem
  - felem_to_BN
  - felem_one
  - felem_assign
  - felem_sum64
  - felem_scalar
  - felem_scalar64
  - felem_scalar128
  - felem_neg
  - felem_diff64
  - felem_diff_128_64
  - felem_diff128
  - felem_square
  - felem_mul
  - felem_reduce
  - felem_square_reduce
  - felem_mul_reduce
  - felem_inv
  - felem_is_zero
  - felem_is_zero_int
  - felem_contract
  - point_double
  - copy_conditional
  - point_add
  - select_point
  - get_bit
  - batch_mul
  - EC_GFp_nistp521_method
  - nistp521_pre_comp_new
  - EC_nistp521_pre_comp_dup
  - EC_nistp521_pre_comp_free
  - ec_GFp_nistp521_group_init
  - ec_GFp_nistp521_group_set_curve
  - ec_GFp_nistp521_point_get_affine_coordinates
  - make_points_affine
  - ec_GFp_nistp521_points_mul
  - ec_GFp_nistp521_precompute_mult
  - ec_GFp_nistp521_have_precompute_mult
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NLIMBS
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
      type_or_value: '9'
    structs:
    - fields:
      - name: g_pre_comp[16][3]
        type: felem
      - name: references
        type: CRYPTO_REF_COUNT
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: nistp521_pre_comp_st
      pos:
        line_end: 1616
        line_start: 1612
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
    typedefs:
    - item_type: typedef
      name: uint128_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
      type: __uint128_t
    - item_type: typedef
      name: u8
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
      type: uint8_t
    - item_type: typedef
      name: u64
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
      type: uint64_t
    - item_type: typedef
      name: felem_bytearray[66]
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
      type: u8
    - item_type: typedef
      name: limb
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
      type: uint64_t
    - item_type: typedef
      name: felem[NLIMBS]
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
      type: limb
    - item_type: typedef
      name: largefelem[NLIMBS]
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistp521.c
      type: uint128_t
    union: []
- function_names:
  - ECDSA_do_verify
  - ECDSA_verify
  source_file: /src/openssl-1.1.1g/crypto/ec/ecdsa_vrf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TOBN
  - TOBN
  - ALIGNPTR
  - _booth_recode_w5
  - _booth_recode_w7
  - copy_conditional
  - is_zero
  - is_equal
  - is_one
  - ecp_nistz256_point_double
  - ecp_nistz256_point_add
  - ecp_nistz256_point_add_affine
  - ecp_nistz256_mod_inverse
  - ecp_nistz256_bignum_to_field_elem
  - ecp_nistz256_windowed_mul
  - ecp_nistz256_is_affine_G
  - ecp_nistz256_mult_precompute
  - booth_recode_w7
  - ecp_nistz256_avx2_mul_g
  - ecp_nistz256_set_from_affine
  - ecp_nistz256_points_mul
  - union
  - ecp_nistz256_get_affine
  - ecp_nistz256_pre_comp_new
  - EC_nistz256_pre_comp_dup
  - EC_nistz256_pre_comp_free
  - ecp_nistz256_window_have_precompute_mult
  - ecp_nistz256_inv_mod_ord
  - EC_GFp_nistz256_method
  source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALIGN32
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
      type_or_value: __attribute((aligned(32)))
    - item_type: preproc_def
      name: ALIGN32
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
      type_or_value: __declspec(align(32))
    - item_type: preproc_def
      name: P256_LIMBS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
      type_or_value: (256/BN_BITS2)
    - item_type: preproc_def
      name: ecp_nistz256_inv_mod_ord
      pos:
        line_end: 1669
        line_start: 1668
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: X[P256_LIMBS]
        type: BN_ULONG
      - name: Y[P256_LIMBS]
        type: BN_ULONG
      - name: Z[P256_LIMBS]
        type: BN_ULONG
      item_type: struct
      name: P256_POINT
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    - fields:
      - name: X[P256_LIMBS]
        type: BN_ULONG
      - name: Y[P256_LIMBS]
        type: BN_ULONG
      item_type: struct
      name: P256_POINT_AFFINE
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    - fields:
      - name: '*group'
        type: EC_GROUP
      - name: w
        type: size_t
      - name: '*precomp'
        type: PRECOMP256_ROW
      - name: '*precomp_storage'
        type: void
      - name: references
        type: CRYPTO_REF_COUNT
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: nistz256_pre_comp_st
      pos:
        line_end: 72
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    - fields:
      - name: p
        type: unsigned char
      item_type: struct
      name: "chain[27] = {\n            { 32, i_x32 }, { 6,  i_101111 }, { 5,  i_111
        \   },\n            { 4,  i_11  }, { 5,  i_1111   }, { 5,  i_10101  },\n            {
        4,  i_101 }, { 3,  i_101    }, { 3,  i_101    },\n            { 5,  i_111
        }, { 9,  i_101111 }, { 6,  i_1111   },\n            { 2,  i_1   }, { 5,  i_1
        \     }, { 6,  i_1111   },\n            { 5,  i_111 }, { 4,  i_111    }, {
        5,  i_111    },\n            { 5,  i_101 }, { 3,  i_11     }, { 10, i_101111
        },\n            { 2,  i_11  }, { 5,  i_11     }, { 5,  i_11     },\n            {
        3,  i_1   }, { 7,  i_10101  }, { 6,  i_1111   }\n        }"
      pos:
        line_end: 1639
        line_start: 1639
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
    typedefs:
    - item_type: typedef
      name: u16
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
      type: unsigned short
    - item_type: typedef
      name: PRECOMP256_ROW[64]
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/ec/ecp_nistz256.c
      type: P256_POINT_AFFINE
    union: []
- function_names:
  - EC_GROUP_new
  - EC_pre_comp_free
  - EC_GROUP_free
  - EC_GROUP_clear_free
  - EC_GROUP_copy
  - EC_GROUP_dup
  - EC_GROUP_method_of
  - EC_METHOD_get_field_type
  - ec_guess_cofactor
  - EC_GROUP_set_generator
  - EC_GROUP_get0_generator
  - EC_GROUP_get_mont_data
  - EC_GROUP_get_order
  - EC_GROUP_get0_order
  - EC_GROUP_order_bits
  - EC_GROUP_get_cofactor
  - EC_GROUP_get0_cofactor
  - EC_GROUP_set_curve_name
  - EC_GROUP_get_curve_name
  - EC_GROUP_set_asn1_flag
  - EC_GROUP_get_asn1_flag
  - EC_GROUP_set_point_conversion_form
  - EC_GROUP_get_point_conversion_form
  - EC_GROUP_set_seed
  - EC_GROUP_get0_seed
  - EC_GROUP_get_seed_len
  - EC_GROUP_set_curve
  - EC_GROUP_get_curve
  - EC_GROUP_set_curve_GFp
  - EC_GROUP_get_curve_GFp
  - EC_GROUP_set_curve_GF2m
  - EC_GROUP_get_curve_GF2m
  - EC_GROUP_get_degree
  - EC_GROUP_check_discriminant
  - EC_GROUP_cmp
  - EC_POINT_new
  - EC_POINT_free
  - EC_POINT_clear_free
  - EC_POINT_copy
  - EC_POINT_dup
  - EC_POINT_method_of
  - EC_POINT_set_to_infinity
  - EC_POINT_set_Jprojective_coordinates_GFp
  - EC_POINT_get_Jprojective_coordinates_GFp
  - EC_POINT_set_affine_coordinates
  - EC_POINT_set_affine_coordinates_GFp
  - EC_POINT_set_affine_coordinates_GF2m
  - EC_POINT_get_affine_coordinates
  - EC_POINT_get_affine_coordinates_GFp
  - EC_POINT_get_affine_coordinates_GF2m
  - EC_POINT_add
  - EC_POINT_dbl
  - EC_POINT_invert
  - EC_POINT_is_at_infinity
  - EC_POINT_is_on_curve
  - EC_POINT_cmp
  - EC_POINT_make_affine
  - EC_POINTs_make_affine
  - EC_POINTs_mul
  - EC_POINT_mul
  - EC_GROUP_precompute_mult
  - EC_GROUP_have_precompute_mult
  - ec_precompute_mont_data
  - EC_KEY_set_ex_data
  - EC_KEY_get_ex_data
  - ec_group_simple_order_bits
  - ec_field_inverse_mod_ord
  - ec_group_do_inverse_ord
  - ec_point_blind_coordinates
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ossl_ecdh_compute_key
  - ecdh_simple_compute_key
  source_file: /src/openssl-1.1.1g/crypto/ec/ecdh_ossl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - eckey_param2type
  - eckey_pub_encode
  - eckey_type2param
  - eckey_pub_decode
  - eckey_pub_cmp
  - eckey_priv_decode
  - eckey_priv_encode
  - int_ec_size
  - ec_bits
  - ec_security_bits
  - ec_missing_parameters
  - ec_copy_parameters
  - ec_cmp_parameters
  - int_ec_free
  - do_EC_KEY_print
  - eckey_param_decode
  - eckey_param_encode
  - eckey_param_print
  - eckey_pub_print
  - eckey_priv_print
  - old_ec_priv_decode
  - old_ec_priv_encode
  - ec_pkey_ctrl
  - ec_pkey_check
  - ec_pkey_public_check
  - ec_pkey_param_check
  - EC_KEY_print
  - ECParameters_print
  - ecdh_cms_set_peerkey
  - ecdh_cms_set_kdf_param
  - ecdh_cms_set_shared_info
  - ecdh_cms_decrypt
  - ecdh_cms_encrypt
  source_file: /src/openssl-1.1.1g/crypto/ec/ec_ameth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ec_GF2m_simple_group_init
  - ec_GF2m_simple_group_finish
  - ec_GF2m_simple_group_clear_finish
  - ec_GF2m_simple_group_copy
  - ec_GF2m_simple_group_set_curve
  - ec_GF2m_simple_group_get_curve
  - ec_GF2m_simple_group_get_degree
  - ec_GF2m_simple_group_check_discriminant
  - ec_GF2m_simple_point_init
  - ec_GF2m_simple_point_finish
  - ec_GF2m_simple_point_clear_finish
  - ec_GF2m_simple_point_copy
  - ec_GF2m_simple_point_set_to_infinity
  - ec_GF2m_simple_point_set_affine_coordinates
  - ec_GF2m_simple_point_get_affine_coordinates
  - ec_GF2m_simple_add
  - ec_GF2m_simple_dbl
  - ec_GF2m_simple_invert
  - ec_GF2m_simple_is_at_infinity
  - ec_GF2m_simple_is_on_curve
  - ec_GF2m_simple_cmp
  - ec_GF2m_simple_make_affine
  - ec_GF2m_simple_points_make_affine
  - ec_GF2m_simple_field_mul
  - ec_GF2m_simple_field_sqr
  - ec_GF2m_simple_field_div
  - ec_GF2m_simple_ladder_pre
  - ec_GF2m_simple_ladder_step
  - ec_GF2m_simple_ladder_post
  - ec_GF2m_simple_points_mul
  - ec_GF2m_simple_field_inv
  - EC_GF2m_simple_method
  source_file: /src/openssl-1.1.1g/crypto/ec/ec2_smpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ecdh_KDF_X9_63
  - ECDH_KDF_X9_62
  source_file: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ECDH_KDF_MAX
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/ec/ecdh_kdf.c
      type_or_value: (1 << 30)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/ed448.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EDDSA_448_PUBLIC_BYTES
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/ed448.h
      type_or_value: '57'
    - item_type: preproc_def
      name: EDDSA_448_PRIVATE_BYTES
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/ed448.h
      type_or_value: EDDSA_448_PUBLIC_BYTES
    - item_type: preproc_def
      name: EDDSA_448_SIGNATURE_BYTES
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/ed448.h
      type_or_value: "(EDDSA_448_PUBLIC_BYTES + \\\n                                    EDDSA_448_PRIVATE_BYTES)"
    - item_type: preproc_def
      name: C448_EDDSA_ENCODE_RATIO
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/ed448.h
      type_or_value: '4'
    - item_type: preproc_def
      name: C448_EDDSA_DECODE_RATIO
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/ed448.h
      type_or_value: (4 / 4)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SC_LIMB
  - SC_LIMB
  - c448_bool_t::mask_to_bool
  - bool_to_mask
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: word_t
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: uint64_t
    - item_type: typedef
      name: dword_t
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: __uint128_t
    - item_type: typedef
      name: hsword_t
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: int32_t
    - item_type: typedef
      name: sword_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: int64_t
    - item_type: typedef
      name: dsword_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: __int128_t
    - item_type: typedef
      name: word_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: uint32_t
    - item_type: typedef
      name: dword_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: uint64_t
    - item_type: typedef
      name: hsword_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: int16_t
    - item_type: typedef
      name: sword_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: int32_t
    - item_type: typedef
      name: dsword_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/word.h
      type: int64_t
    union: []
- function_names:
  - gf_serialize
  - gf_hibit
  - gf_lobit
  - gf_deserialize
  - gf_strong_reduce
  - gf_sub
  - gf_add
  - gf_eq
  - gf_isr
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/f_generic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oneshot_hash
  - clamp
  - hash_init_with_dom
  - c448_ed448_convert_private_key_to_x448
  - c448_ed448_derive_public_key
  - c448_ed448_sign
  - c448_ed448_sign_prehash
  - c448_ed448_verify
  - c448_ed448_verify_prehash
  - ED448_sign
  - ED448_verify
  - ED448ph_sign
  - ED448ph_verify
  - ED448_public_from_private
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COFACTOR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/eddsa.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sc_subx
  - sc_montmul
  - curve448_scalar_mul
  - curve448_scalar_sub
  - curve448_scalar_add
  - scalar_decode_short
  - curve448_scalar_decode
  - curve448_scalar_destroy
  - curve448_scalar_decode_long
  - curve448_scalar_encode
  - curve448_scalar_halve
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WBITS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/scalar.c
      type_or_value: 'C448_WORD_BITS   '
    structs: []
    typedefs: []
    union: []
- function_names:
  - gf_copy
  - LIMBPERM
  - LIMB_MASK
  - gf_sub_nr
  - gf_subx_nr
  - gf_mulw
  - gf_cond_sel
  - gf_cond_neg
  - gf_cond_swap
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NLIMBS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: (64/sizeof(word_t))
    - item_type: preproc_def
      name: X_SER_BYTES
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: '56'
    - item_type: preproc_def
      name: SER_BYTES
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: '56'
    - item_type: preproc_def
      name: INLINE_UNUSED
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: __inline__ __attribute__((__unused__,__always_inline__))
    - item_type: preproc_def
      name: RESTRICT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: __restrict__
    - item_type: preproc_def
      name: ALIGNED
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: __attribute__((__aligned__(16)))
    - item_type: preproc_def
      name: INLINE_UNUSED
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: ossl_inline
    - item_type: preproc_def
      name: X_PUBLIC_BYTES
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: X_SER_BYTES
    - item_type: preproc_def
      name: X_PRIVATE_BYTES
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: X_PUBLIC_BYTES
    - item_type: preproc_def
      name: X_PRIVATE_BITS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: '448'
    - item_type: preproc_def
      name: gf_add_nr
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
      type_or_value: gf_add_RAW
    structs:
    - fields:
      - name: limb[NLIMBS]
        type: word_t
      item_type: struct
      name: gf_s
      pos:
        line_end: 36
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/field.h
    typedefs: []
    union: []
- function_names:
  - gf_invert
  - point_double_internal
  - curve448_point_double
  - cond_neg_niels
  - pt_to_pniels
  - pniels_to_pt
  - niels_to_pt
  - add_niels_to_pt
  - sub_niels_from_pt
  - add_pniels_to_pt
  - sub_pniels_from_pt
  - curve448_point_eq
  - curve448_point_valid
  - curve448_precomputed_scalarmul
  - curve448_point_mul_by_ratio_and_encode_like_eddsa
  - curve448_point_decode_like_eddsa_and_mul_by_ratio
  - x448_int
  - curve448_point_mul_by_ratio_and_encode_like_x448
  - x448_derive_public_key
  - numtrailingzeros
  - recode_wnaf
  - prepare_wnaf_table
  - curve448_base_double_scalarmul_non_secret
  - curve448_point_destroy
  - X448
  - X448_public_from_private
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COFACTOR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
      type_or_value: '4'
    - item_type: preproc_def
      name: C448_WNAF_FIXED_TABLE_BITS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
      type_or_value: '5'
    - item_type: preproc_def
      name: C448_WNAF_VAR_TABLE_BITS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
      type_or_value: '3'
    - item_type: preproc_def
      name: EDWARDS_D
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
      type_or_value: (-39081)
    - item_type: preproc_def
      name: TWISTED_D
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
      type_or_value: (EDWARDS_D - 1)
    - item_type: preproc_def
      name: WBITS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
      type_or_value: 'C448_WORD_BITS   '
    - item_type: preproc_def
      name: NUMTRAILINGZEROS
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
      type_or_value: __builtin_ctz
    - item_type: preproc_def
      name: NUMTRAILINGZEROS
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
      type_or_value: numtrailingzeros
    structs:
    - fields:
      - name: power
        type: int
      item_type: struct
      name: smvt_control
      pos:
        line_end: 500
        line_start: 498
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448.c
    typedefs: []
    union: []
- function_names:
  - c448_error_t::c448_succeed_if
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: C448_WORD_BITS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type_or_value: '64      '
    - item_type: preproc_def
      name: C448_WORD_BITS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type_or_value: '32      '
    - item_type: preproc_def
      name: C448_TRUE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type_or_value: (0 - (c448_bool_t)1)
    - item_type: preproc_def
      name: C448_FALSE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type_or_value: '0'
    structs: []
    typedefs:
    - item_type: typedef
      name: c448_word_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: uint64_t
    - item_type: typedef
      name: c448_sword_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: int64_t
    - item_type: typedef
      name: c448_bool_t
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: uint64_t
    - item_type: typedef
      name: c448_dword_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: __uint128_t
    - item_type: typedef
      name: c448_dsword_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: __int128_t
    - item_type: typedef
      name: c448_word_t
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: uint32_t
    - item_type: typedef
      name: c448_sword_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: int32_t
    - item_type: typedef
      name: c448_bool_t
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: uint32_t
    - item_type: typedef
      name: c448_dword_t
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: uint64_t
    - item_type: typedef
      name: c448_dsword_t
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448utils.h
      type: int64_t
    union: []
- function_names:
  - curve448_scalar_copy
  - curve448_point_copy
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMBS_N
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type_or_value: '5'
    - item_type: preproc_def
      name: COMBS_T
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type_or_value: '5'
    - item_type: preproc_def
      name: COMBS_S
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type_or_value: '18'
    - item_type: preproc_def
      name: C448_SCALAR_LIMBS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type_or_value: ((446-1)/C448_WORD_BITS+1)
    - item_type: preproc_def
      name: C448_SCALAR_BITS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type_or_value: '446'
    - item_type: preproc_def
      name: C448_SCALAR_BYTES
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type_or_value: '56'
    - item_type: preproc_def
      name: X448_ENCODE_RATIO
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type_or_value: '2'
    - item_type: preproc_def
      name: X448_PUBLIC_BYTES
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type_or_value: '56'
    - item_type: preproc_def
      name: X448_PRIVATE_BYTES
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type_or_value: '56'
    structs:
    - fields:
      - name: a
        type: gf
      item_type: struct
      name: niels_s
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
    - fields:
      - name: n
        type: niels_t
      - name: z
        type: gf
      item_type: struct
      name: pniels_t[1]
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
    - fields:
      - name: table[COMBS_N << (COMBS_T - 1)]
        type: niels_t
      item_type: struct
      name: curve448_precomputed_s
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
    - fields:
      - name: x
        type: gf
      item_type: struct
      name: curve448_point_s
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
    - fields:
      - name: limb[C448_SCALAR_LIMBS]
        type: c448_word_t
      item_type: struct
      name: curve448_scalar_s
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
    typedefs:
    - item_type: typedef
      name: curve448_precomputed_s
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/point_448.h
      type: curve448_precomputed_s
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/curve448_tables.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - word_is_zero
  - widemul
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/arch_intrinsics.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARCH_WORD_BITS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/arch_intrinsics.h
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LIMB
  - FIELD_LITERAL
  - LIMB_PLACE_VALUE
  - gf_add_RAW
  - gf_sub_RAW
  - gf_bias
  - gf_weak_reduce
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GF_HEADROOM
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ec/curve448/arch_32/f_impl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2r_ocsp_crlid
  - i2r_ocsp_acutoff
  - i2r_object
  - ocsp_nonce_new
  - i2d_ocsp_nonce
  - d2i_ocsp_nonce
  - ocsp_nonce_free
  - i2r_ocsp_nonce
  - i2r_ocsp_nocheck
  - s2i_ocsp_nocheck
  - i2r_ocsp_serviceloc
  source_file: /src/openssl-1.1.1g/crypto/ocsp/v3_ocsp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OCSP_REQUEST_get_ext_count
  - OCSP_REQUEST_get_ext_by_NID
  - OCSP_REQUEST_get_ext_by_OBJ
  - OCSP_REQUEST_get_ext_by_critical
  - OCSP_REQUEST_get_ext
  - OCSP_REQUEST_delete_ext
  - OCSP_REQUEST_get1_ext_d2i
  - OCSP_REQUEST_add1_ext_i2d
  - OCSP_REQUEST_add_ext
  - OCSP_ONEREQ_get_ext_count
  - OCSP_ONEREQ_get_ext_by_NID
  - OCSP_ONEREQ_get_ext_by_OBJ
  - OCSP_ONEREQ_get_ext_by_critical
  - OCSP_ONEREQ_get_ext
  - OCSP_ONEREQ_delete_ext
  - OCSP_ONEREQ_get1_ext_d2i
  - OCSP_ONEREQ_add1_ext_i2d
  - OCSP_ONEREQ_add_ext
  - OCSP_BASICRESP_get_ext_count
  - OCSP_BASICRESP_get_ext_by_NID
  - OCSP_BASICRESP_get_ext_by_OBJ
  - OCSP_BASICRESP_get_ext_by_critical
  - OCSP_BASICRESP_get_ext
  - OCSP_BASICRESP_delete_ext
  - OCSP_BASICRESP_get1_ext_d2i
  - OCSP_BASICRESP_add1_ext_i2d
  - OCSP_BASICRESP_add_ext
  - OCSP_SINGLERESP_get_ext_count
  - OCSP_SINGLERESP_get_ext_by_NID
  - OCSP_SINGLERESP_get_ext_by_OBJ
  - OCSP_SINGLERESP_get_ext_by_critical
  - OCSP_SINGLERESP_get_ext
  - OCSP_SINGLERESP_delete_ext
  - OCSP_SINGLERESP_get1_ext_d2i
  - OCSP_SINGLERESP_add1_ext_i2d
  - OCSP_SINGLERESP_add_ext
  - OCSP_request_add1_nonce
  - OCSP_basic_add1_nonce
  - OCSP_check_nonce
  - OCSP_copy_nonce
  - OCSP_crlID_new
  - OCSP_accept_responses_new
  - OCSP_archive_cutoff_new
  - OCSP_url_svcloc_new
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ext.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ocsp_find_signer_sk
  - ocsp_check_delegated
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_vfy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OCSP_request_onereq_count
  - OCSP_request_onereq_get0
  - OCSP_onereq_get0_id
  - OCSP_id_get0_info
  - OCSP_request_is_signed
  - OCSP_response_create
  - OCSP_basic_add1_status
  - OCSP_basic_add1_cert
  - OCSP_basic_sign
  - OCSP_RESPID_set_by_name
  - OCSP_RESPID_set_by_key
  - OCSP_RESPID_match
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_srv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OCSP_cert_to_id
  - OCSP_cert_id_new
  - OCSP_id_issuer_cmp
  - OCSP_id_cmp
  - OCSP_parse_url
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ocsp_certid_print
  - do_table2string
  - table2string
  - OCSP_response_status_str
  - OCSP_cert_status_str
  - OCSP_crl_reason_str
  - OCSP_REQUEST_print
  - OCSP_RESPONSE_print
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: t
        type: long
      - name: '*m'
        type: char
      item_type: struct
      name: OCSP_TBLSTR
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_prn.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_asn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OCSP_REQ_CTX_new
  - OCSP_REQ_CTX_free
  - OCSP_REQ_CTX_get0_mem_bio
  - OCSP_set_max_response_length
  - OCSP_REQ_CTX_i2d
  - OCSP_REQ_CTX_nbio_d2i
  - OCSP_REQ_CTX_http
  - OCSP_REQ_CTX_set1_req
  - OCSP_REQ_CTX_add1_header
  - OCSP_sendreq_new
  - parse_http_line1
  - OCSP_REQ_CTX_nbio
  - OCSP_sendreq_nbio
  - OCSP_sendreq_bio
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OCSP_MAX_RESP_LENGTH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: (100 * 1024)
    - item_type: preproc_def
      name: OCSP_MAX_LINE_LEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: 4096;
    - item_type: preproc_def
      name: OHS_NOREAD
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: OHS_ERROR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: (0 | OHS_NOREAD)
    - item_type: preproc_def
      name: OHS_FIRSTLINE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OHS_HEADERS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OHS_ASN1_HEADER
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: '3'
    - item_type: preproc_def
      name: OHS_ASN1_CONTENT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: '4'
    - item_type: preproc_def
      name: OHS_ASN1_WRITE_INIT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: (5 | OHS_NOREAD)
    - item_type: preproc_def
      name: OHS_ASN1_WRITE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: (6 | OHS_NOREAD)
    - item_type: preproc_def
      name: OHS_ASN1_FLUSH
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: (7 | OHS_NOREAD)
    - item_type: preproc_def
      name: OHS_DONE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: (8 | OHS_NOREAD)
    - item_type: preproc_def
      name: OHS_HTTP_HEADER
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
      type_or_value: (9 | OHS_NOREAD)
    structs:
    - fields:
      - name: state
        type: int
      - name: '*iobuf'
        type: unsigned char
      - name: iobuflen
        type: int
      - name: '*io'
        type: BIO
      - name: '*mem'
        type: BIO
      - name: asn1_len
        type: unsigned long
      - name: max_resp_len
        type: unsigned long
      item_type: struct
      name: ocsp_req_ctx_st
      pos:
        line_end: 31
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_ht.c
    typedefs: []
    union: []
- function_names:
  - OCSP_request_add0_id
  - OCSP_request_set1_name
  - OCSP_request_add1_cert
  - OCSP_request_sign
  - OCSP_response_status
  - OCSP_response_get1_basic
  - OCSP_resp_get0_signature
  - OCSP_resp_get0_tbs_sigalg
  - OCSP_resp_get0_respdata
  - OCSP_resp_count
  - OCSP_resp_get0
  - OCSP_resp_get0_produced_at
  - OCSP_resp_get0_certs
  - OCSP_resp_get0_id
  - OCSP_resp_get1_id
  - OCSP_resp_find
  - OCSP_single_get0_status
  - OCSP_resp_find_status
  - OCSP_check_validity
  - OCSP_SINGLERESP_get0_id
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_cl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_OCSP_strings
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OCSP_REQUEST_sign
  - OCSP_BASICRESP_sign
  - OCSP_BASICRESP_sign_ctx
  - OCSP_REQUEST_verify
  - OCSP_BASICRESP_verify
  source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: hashAlgorithm
        type: X509_ALGOR
      - name: issuerNameHash
        type: ASN1_OCTET_STRING
      - name: issuerKeyHash
        type: ASN1_OCTET_STRING
      - name: serialNumber
        type: ASN1_INTEGER
      item_type: struct
      name: ocsp_cert_id_st
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: '*reqCert'
        type: OCSP_CERTID
      - name: '*singleRequestExtensions'
        type: STACK_OF
      item_type: struct
      name: ocsp_one_request_st
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: '*version'
        type: ASN1_INTEGER
      - name: '*requestorName'
        type: GENERAL_NAME
      - name: '*requestList'
        type: STACK_OF
      - name: '*requestExtensions'
        type: STACK_OF
      item_type: struct
      name: ocsp_req_info_st
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: signatureAlgorithm
        type: X509_ALGOR
      - name: '*signature'
        type: ASN1_BIT_STRING
      - name: '*certs'
        type: STACK_OF
      item_type: struct
      name: ocsp_signature_st
      pos:
        line_end: 53
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: tbsRequest
        type: OCSP_REQINFO
      - name: '*optionalSignature'
        type: OCSP_SIGNATURE
      item_type: struct
      name: ocsp_request_st
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: '*responseType'
        type: ASN1_OBJECT
      - name: '*response'
        type: ASN1_OCTET_STRING
      item_type: struct
      name: ocsp_resp_bytes_st
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: '*responseStatus'
        type: ASN1_ENUMERATED
      - name: '*responseBytes'
        type: OCSP_RESPBYTES
      item_type: struct
      name: ocsp_response_st
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: type
        type: int
      - name: value
        type: "union {\n        X509_NAME *byName;\n        ASN1_OCTET_STRING *byKey;\n
          \   }"
      item_type: struct
      name: ocsp_responder_id_st
      pos:
        line_end: 103
        line_start: 97
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: '*revocationTime'
        type: ASN1_GENERALIZEDTIME
      - name: '*revocationReason'
        type: ASN1_ENUMERATED
      item_type: struct
      name: ocsp_revoked_info_st
      pos:
        line_end: 116
        line_start: 113
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: type
        type: int
      - name: value
        type: "union {\n        ASN1_NULL *good;\n        OCSP_REVOKEDINFO *revoked;\n
          \       ASN1_NULL *unknown;\n    }"
      item_type: struct
      name: ocsp_cert_status_st
      pos:
        line_end: 130
        line_start: 123
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: '*certId'
        type: OCSP_CERTID
      - name: '*certStatus'
        type: OCSP_CERTSTATUS
      - name: '*thisUpdate'
        type: ASN1_GENERALIZEDTIME
      - name: '*nextUpdate'
        type: ASN1_GENERALIZEDTIME
      - name: '*singleExtensions'
        type: STACK_OF
      item_type: struct
      name: ocsp_single_response_st
      pos:
        line_end: 145
        line_start: 139
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: '*version'
        type: ASN1_INTEGER
      - name: responderId
        type: OCSP_RESPID
      - name: '*producedAt'
        type: ASN1_GENERALIZEDTIME
      - name: '*responses'
        type: STACK_OF
      - name: '*responseExtensions'
        type: STACK_OF
      item_type: struct
      name: ocsp_response_data_st
      pos:
        line_end: 160
        line_start: 154
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: tbsResponseData
        type: OCSP_RESPDATA
      - name: signatureAlgorithm
        type: X509_ALGOR
      - name: '*signature'
        type: ASN1_BIT_STRING
      - name: '*certs'
        type: STACK_OF
      item_type: struct
      name: ocsp_basic_response_st
      pos:
        line_end: 193
        line_start: 188
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: '*crlUrl'
        type: ASN1_IA5STRING
      - name: '*crlNum'
        type: ASN1_INTEGER
      - name: '*crlTime'
        type: ASN1_GENERALIZEDTIME
      item_type: struct
      name: ocsp_crl_id_st
      pos:
        line_end: 205
        line_start: 201
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    - fields:
      - name: '*issuer'
        type: X509_NAME
      - name: '*locator'
        type: STACK_OF
      item_type: struct
      name: ocsp_service_locator_st
      pos:
        line_end: 215
        line_start: 212
        source_file: /src/openssl-1.1.1g/crypto/ocsp/ocsp_local.h
    typedefs: []
    union: []
- function_names:
  - HASH_MAKE_STRING
  - F
  - G
  - H
  - R0
  - R1
  - R2
  source_file: /src/openssl-1.1.1g/crypto/md4/md4_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_LONG
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_local.h
      type_or_value: MD4_LONG
    - item_type: preproc_def
      name: HASH_CTX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_local.h
      type_or_value: MD4_CTX
    - item_type: preproc_def
      name: HASH_CBLOCK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_local.h
      type_or_value: MD4_CBLOCK
    - item_type: preproc_def
      name: HASH_UPDATE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_local.h
      type_or_value: MD4_Update
    - item_type: preproc_def
      name: HASH_TRANSFORM
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_local.h
      type_or_value: MD4_Transform
    - item_type: preproc_def
      name: HASH_FINAL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_local.h
      type_or_value: MD4_Final
    - item_type: preproc_def
      name: HASH_BLOCK_DATA_ORDER
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_local.h
      type_or_value: md4_block_data_order
    structs: []
    typedefs: []
    union: []
- function_names:
  - MD4
  source_file: /src/openssl-1.1.1g/crypto/md4/md4_one.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MD4_Init
  - md4_block_data_order
  - X
  - X
  source_file: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INIT_DATA_A
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c
      type_or_value: (unsigned long)0x67452301L
    - item_type: preproc_def
      name: INIT_DATA_B
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c
      type_or_value: (unsigned long)0xefcdab89L
    - item_type: preproc_def
      name: INIT_DATA_C
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c
      type_or_value: (unsigned long)0x98badcfeL
    - item_type: preproc_def
      name: INIT_DATA_D
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/md4/md4_dgst.c
      type_or_value: (unsigned long)0x10325476L
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPENSSL_LH_stats
  - OPENSSL_LH_node_stats
  - OPENSSL_LH_node_usage_stats
  - OPENSSL_LH_stats_bio
  - OPENSSL_LH_node_stats_bio
  - OPENSSL_LH_node_usage_stats_bio
  source_file: /src/openssl-1.1.1g/crypto/lhash/lh_stats.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPENSSL_LH_new
  - OPENSSL_LH_free
  - OPENSSL_LH_insert
  - OPENSSL_LH_delete
  - OPENSSL_LH_retrieve
  - doall_util_fn
  - OPENSSL_LH_doall
  - OPENSSL_LH_doall_arg
  - expand
  - contract
  - getrn
  - OPENSSL_LH_strhash
  - openssl_lh_strcasehash
  - OPENSSL_LH_num_items
  - OPENSSL_LH_get_down_load
  - OPENSSL_LH_set_down_load
  - OPENSSL_LH_error
  source_file: /src/openssl-1.1.1g/crypto/lhash/lhash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_NODES
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/lhash/lhash.c
      type_or_value: '16'
    - item_type: preproc_def
      name: UP_LOAD
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/lhash/lhash.c
      type_or_value: '(2*LH_LOAD_MULT) '
    - item_type: preproc_def
      name: DOWN_LOAD
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/lhash/lhash.c
      type_or_value: '(LH_LOAD_MULT) '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/lhash/lhash_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: void
      - name: '*next'
        type: struct lhash_node_st
      - name: hash
        type: unsigned long
      item_type: struct
      name: lhash_node_st
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/lhash/lhash_local.h
    - fields:
      - name: '**b'
        type: OPENSSL_LH_NODE
      - name: comp
        type: OPENSSL_LH_COMPFUNC
      - name: hash
        type: OPENSSL_LH_HASHFUNC
      - name: num_nodes
        type: unsigned int
      - name: num_alloc_nodes
        type: unsigned int
      - name: p
        type: unsigned int
      - name: pmax
        type: unsigned int
      - name: up_load
        type: unsigned long
      - name: down_load
        type: unsigned long
      - name: num_items
        type: unsigned long
      - name: num_expands
        type: unsigned long
      - name: num_expand_reallocs
        type: unsigned long
      - name: num_contracts
        type: unsigned long
      - name: num_contract_reallocs
        type: unsigned long
      - name: num_hash_calls
        type: TSAN_QUALIFIER unsigned long
      - name: num_comp_calls
        type: TSAN_QUALIFIER unsigned long
      - name: num_insert
        type: unsigned long
      - name: num_replace
        type: unsigned long
      - name: num_delete
        type: unsigned long
      - name: num_no_delete
        type: unsigned long
      - name: num_retrieve
        type: TSAN_QUALIFIER unsigned long
      - name: num_retrieve_miss
        type: TSAN_QUALIFIER unsigned long
      - name: num_hash_comps
        type: TSAN_QUALIFIER unsigned long
      - name: error
        type: int
      item_type: struct
      name: lhash_st
      pos:
        line_end: 43
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/lhash/lhash_local.h
    typedefs: []
    union: []
- function_names:
  - DSA_set_default_method
  - DSA_get_default_method
  - DSA_OpenSSL
  - dsa_do_sign
  - dsa_sign_setup_no_digest
  - dsa_sign_setup
  - dsa_do_verify
  - dsa_init
  - dsa_finish
  - dsa_mod_inverse_fermat
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_ossl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSA_new
  - DSA_set_method
  - DSA_get_method
  - DSA_new_method
  - DSA_free
  - DSA_up_ref
  - DSA_size
  - DSA_set_ex_data
  - DSA_get_ex_data
  - DSA_security_bits
  - DSA_dup_DH
  - DSA_get0_pqg
  - DSA_set0_pqg
  - DSA_get0_key
  - DSA_set0_key
  - DSA_get0_p
  - DSA_get0_q
  - DSA_get0_g
  - DSA_get0_pub_key
  - DSA_get0_priv_key
  - DSA_clear_flags
  - DSA_test_flags
  - DSA_set_flags
  - DSA_get0_engine
  - DSA_bits
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dsa_pub_decode
  - dsa_pub_encode
  - dsa_priv_decode
  - dsa_priv_encode
  - int_dsa_size
  - dsa_bits
  - dsa_security_bits
  - dsa_missing_parameters
  - dsa_copy_parameters
  - dsa_cmp_parameters
  - dsa_pub_cmp
  - int_dsa_free
  - do_dsa_print
  - dsa_param_decode
  - dsa_param_encode
  - dsa_param_print
  - dsa_pub_print
  - dsa_priv_print
  - old_dsa_priv_decode
  - old_dsa_priv_encode
  - dsa_sig_print
  - dsa_pkey_ctrl
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_ameth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSA_do_verify
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_vrf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSA_print_fp
  - DSAparams_print_fp
  - DSA_print
  - DSAparams_print
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_prn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSA_do_sign
  - DSA_sign_setup
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_sign.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_DSA_strings
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSA_generate_parameters
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: xxxHASH
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_depr.c
      type_or_value: EVP_sha1()
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSA_SIG_new
  - DSA_SIG_free
  - DSA_SIG_get0
  - DSA_SIG_set0
  - dsa_cb
  - DSAparams_dup
  - DSA_sign
  - DSA_verify
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_asn1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSA_meth_new
  - DSA_meth_free
  - DSA_meth_dup
  - DSA_meth_get0_name
  - DSA_meth_set1_name
  - DSA_meth_get_flags
  - DSA_meth_set_flags
  - DSA_meth_get0_app_data
  - DSA_meth_set0_app_data
  - "*(*DSA_meth_get_sign(const DSA_METHOD *dsam))\n        (const unsigned char *,
    int, DSA *)"
  - DSA_meth_set_sign
  - "(*DSA_meth_get_sign_setup(const DSA_METHOD *dsam))\n        (DSA *, BN_CTX *,
    BIGNUM **, BIGNUM **)"
  - DSA_meth_set_sign_setup
  - "(*DSA_meth_get_verify(const DSA_METHOD *dsam))\n        (const unsigned char
    *, int, DSA_SIG *, DSA *)"
  - DSA_meth_set_verify
  - "(*DSA_meth_get_mod_exp(const DSA_METHOD *dsam))\n        (DSA *, BIGNUM *, const
    BIGNUM *, const BIGNUM *, const BIGNUM *,\n         const BIGNUM *, const BIGNUM
    *, BN_CTX *, BN_MONT_CTX *)"
  - DSA_meth_set_mod_exp
  - "(*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam))\n    (DSA *, BIGNUM *, const
    BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *,\n     BN_MONT_CTX *)"
  - DSA_meth_set_bn_mod_exp
  - (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *)
  - DSA_meth_set_init
  - (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *)
  - DSA_meth_set_finish
  - "(*DSA_meth_get_paramgen(const DSA_METHOD *dsam))\n        (DSA *, int, const
    unsigned char *, int, int *, unsigned long *,\n         BN_GENCB *)"
  - DSA_meth_set_paramgen
  - (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *)
  - DSA_meth_set_keygen
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_meth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSA_generate_parameters_ex
  - dsa_builtin_paramgen
  - dsa_builtin_paramgen2
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: xxxHASH
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_gen.c
      type_or_value: EVP_sha1()
    structs: []
    typedefs: []
    union: []
- function_names:
  - DSA_generate_key
  - dsa_builtin_keygen
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pad
        type: int
      - name: version
        type: int32_t
      - name: '*p'
        type: BIGNUM
      - name: '*q'
        type: BIGNUM
      - name: '*g'
        type: BIGNUM
      - name: '*pub_key'
        type: BIGNUM
      - name: '*priv_key'
        type: BIGNUM
      - name: flags
        type: int
      - name: '*method_mont_p'
        type: BN_MONT_CTX
      - name: references
        type: CRYPTO_REF_COUNT
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: '*meth'
        type: DSA_METHOD
      - name: '*engine'
        type: ENGINE
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: dsa_st
      pos:
        line_end: 33
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_local.h
    - fields:
      - name: '*r'
        type: BIGNUM
      - name: '*s'
        type: BIGNUM
      item_type: struct
      name: DSA_SIG_st
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_local.h
    - fields:
      - name: '*name'
        type: char
      - name: '*(*dsa_do_sign) (const unsigned char *dgst, int dlen, DSA *dsa)'
        type: DSA_SIG
      - name: "(*dsa_sign_setup) (DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp,\n                           BIGNUM
          **rp)"
        type: int
      - name: "(*dsa_do_verify) (const unsigned char *dgst, int dgst_len,\n                          DSA_SIG
          *sig, DSA *dsa)"
        type: int
      - name: "(*dsa_mod_exp) (DSA *dsa, BIGNUM *rr, const BIGNUM *a1,\n                        const
          BIGNUM *p1, const BIGNUM *a2, const BIGNUM *p2,\n                        const
          BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)"
        type: int
      - name: "(*bn_mod_exp) (DSA *dsa, BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n
          \                      const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx)"
        type: int
      - name: (*init) (DSA *dsa)
        type: int
      - name: (*finish) (DSA *dsa)
        type: int
      - name: flags
        type: int
      - name: '*app_data'
        type: void
      - name: "(*dsa_paramgen) (DSA *dsa, int bits,\n                         const
          unsigned char *seed, int seed_len,\n                         int *counter_ret,
          unsigned long *h_ret,\n                         BN_GENCB *cb)"
        type: int
      - name: (*dsa_keygen) (DSA *dsa)
        type: int
      item_type: struct
      name: dsa_method
      pos:
        line_end: 64
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_local.h
    typedefs: []
    union: []
- function_names:
  - pkey_dsa_init
  - pkey_dsa_copy
  - pkey_dsa_cleanup
  - pkey_dsa_sign
  - pkey_dsa_verify
  - pkey_dsa_ctrl
  - pkey_dsa_ctrl_str
  - pkey_dsa_paramgen
  - pkey_dsa_keygen
  source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nbits
        type: int
      - name: qbits
        type: int
      - name: '*pmd'
        type: EVP_MD
      - name: gentmp[2]
        type: int
      - name: '*md'
        type: EVP_MD
      item_type: struct
      name: DSA_PKEY_CTX
      pos:
        line_end: 29
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/dsa/dsa_pmeth.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/camellia/cmll_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: u32
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/camellia/cmll_local.h
      type: unsigned int
    - item_type: typedef
      name: u8
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/camellia/cmll_local.h
      type: unsigned char
    union: []
- function_names:
  - Camellia_cfb128_encrypt
  - Camellia_cfb1_encrypt
  - Camellia_cfb8_encrypt
  source_file: /src/openssl-1.1.1g/crypto/camellia/cmll_cfb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RightRotate
  - LeftRotate
  - GETU32
  - PUTU32
  - Camellia_Feistel
  - RotLeft128
  - Camellia_Ekeygen
  - Camellia_EncryptBlock_Rounds
  - Camellia_EncryptBlock
  - Camellia_DecryptBlock_Rounds
  - Camellia_DecryptBlock
  source_file: /src/openssl-1.1.1g/crypto/camellia/camellia.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SBOX1_1110
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/openssl-1.1.1g/crypto/camellia/camellia.c
      type_or_value: Camellia_SBOX[0]
    - item_type: preproc_def
      name: SBOX4_4404
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/camellia/camellia.c
      type_or_value: Camellia_SBOX[1]
    - item_type: preproc_def
      name: SBOX2_0222
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/camellia/camellia.c
      type_or_value: Camellia_SBOX[2]
    - item_type: preproc_def
      name: SBOX3_3033
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/camellia/camellia.c
      type_or_value: Camellia_SBOX[3]
    structs: []
    typedefs: []
    union: []
- function_names:
  - Camellia_ofb128_encrypt
  source_file: /src/openssl-1.1.1g/crypto/camellia/cmll_ofb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Camellia_ctr128_encrypt
  source_file: /src/openssl-1.1.1g/crypto/camellia/cmll_ctr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Camellia_set_key
  - Camellia_encrypt
  - Camellia_decrypt
  source_file: /src/openssl-1.1.1g/crypto/camellia/cmll_misc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Camellia_ecb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/camellia/cmll_ecb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Camellia_cbc_encrypt
  source_file: /src/openssl-1.1.1g/crypto/camellia/cmll_cbc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MD5_Init
  - md5_block_data_order
  - X
  - X
  source_file: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INIT_DATA_A
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c
      type_or_value: (unsigned long)0x67452301L
    - item_type: preproc_def
      name: INIT_DATA_B
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c
      type_or_value: (unsigned long)0xefcdab89L
    - item_type: preproc_def
      name: INIT_DATA_C
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c
      type_or_value: (unsigned long)0x98badcfeL
    - item_type: preproc_def
      name: INIT_DATA_D
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_dgst.c
      type_or_value: (unsigned long)0x10325476L
    structs: []
    typedefs: []
    union: []
- function_names:
  - MD5
  source_file: /src/openssl-1.1.1g/crypto/md5/md5_one.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HASH_MAKE_STRING
  - F
  - G
  - H
  - I
  - R0
  - R1
  - R2
  - R3
  source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: md5_block_data_order
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: md5_block_asm_data_order
    - item_type: preproc_def
      name: md5_block_data_order
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: md5_block_asm_data_order
    - item_type: preproc_def
      name: md5_block_data_order
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: md5_block_asm_data_order
    - item_type: preproc_def
      name: HASH_LONG
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: MD5_LONG
    - item_type: preproc_def
      name: HASH_CTX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: MD5_CTX
    - item_type: preproc_def
      name: HASH_CBLOCK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: MD5_CBLOCK
    - item_type: preproc_def
      name: HASH_UPDATE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: MD5_Update
    - item_type: preproc_def
      name: HASH_TRANSFORM
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: MD5_Transform
    - item_type: preproc_def
      name: HASH_FINAL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: MD5_Final
    - item_type: preproc_def
      name: HASH_BLOCK_DATA_ORDER
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/md5/md5_local.h
      type_or_value: md5_block_data_order
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_s_log
  - slg_new
  - slg_free
  - slg_write
  - slg_ctrl
  - slg_puts
  - xopenlog
  - xsyslog
  - xcloselog
  - xopenlog
  - xsyslog
  - xcloselog
  - xopenlog
  - xsyslog
  - xcloselog
  - BIO_s_log
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOG_EMERG
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '0'
    - item_type: preproc_def
      name: LOG_ALERT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LOG_CRIT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '2'
    - item_type: preproc_def
      name: LOG_ERR
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '3'
    - item_type: preproc_def
      name: LOG_WARNING
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '4'
    - item_type: preproc_def
      name: LOG_NOTICE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '5'
    - item_type: preproc_def
      name: LOG_INFO
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '6'
    - item_type: preproc_def
      name: LOG_DEBUG
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '7'
    - item_type: preproc_def
      name: LOG_DAEMON
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: (3<<3)
    - item_type: preproc_def
      name: LOG_EMERG
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '0'
    - item_type: preproc_def
      name: LOG_ALERT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LOG_CRIT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '2'
    - item_type: preproc_def
      name: LOG_ERR
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '3'
    - item_type: preproc_def
      name: LOG_WARNING
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '4'
    - item_type: preproc_def
      name: LOG_NOTICE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '5'
    - item_type: preproc_def
      name: LOG_INFO
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '6'
    - item_type: preproc_def
      name: LOG_DEBUG
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: '7'
    - item_type: preproc_def
      name: LOG_DAEMON
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: OPC$M_NM_NTWORK
    - item_type: preproc_def
      name: OPCDEF_TYPE
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: __char_ptr32
    - item_type: preproc_def
      name: OPCDEF_MALLOC
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: _malloc32
    - item_type: preproc_def
      name: OPCDEF_TYPE
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: char *
    - item_type: preproc_def
      name: OPCDEF_MALLOC
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
      type_or_value: OPENSSL_malloc
    structs:
    - fields:
      - name: strl
        type: int
      - name: str[10]
        type: char
      - name: log_level
        type: int
      item_type: struct
      name: "mapping[] = {\n        {\n            6, \"PANIC \", LOG_EMERG\n        },\n
        \       {\n            6, \"EMERG \", LOG_EMERG\n        },\n        {\n            4,
        \"EMR \", LOG_EMERG\n        },\n        {\n            6, \"ALERT \", LOG_ALERT\n
        \       },\n        {\n            4, \"ALR \", LOG_ALERT\n        },\n        {\n
        \           5, \"CRIT \", LOG_CRIT\n        },\n        {\n            4,
        \"CRI \", LOG_CRIT\n        },\n        {\n            6, \"ERROR \", LOG_ERR\n
        \       },\n        {\n            4, \"ERR \", LOG_ERR\n        },\n        {\n
        \           8, \"WARNING \", LOG_WARNING\n        },\n        {\n            5,
        \"WARN \", LOG_WARNING\n        },\n        {\n            4, \"WAR \", LOG_WARNING\n
        \       },\n        {\n            7, \"NOTICE \", LOG_NOTICE\n        },\n
        \       {\n            5, \"NOTE \", LOG_NOTICE\n        },\n        {\n            4,
        \"NOT \", LOG_NOTICE\n        },\n        {\n            5, \"INFO \", LOG_INFO\n
        \       },\n        {\n            4, \"INF \", LOG_INFO\n        },\n        {\n
        \           6, \"DEBUG \", LOG_DEBUG\n        },\n        {\n            4,
        \"DBG \", LOG_DEBUG\n        },\n        {\n            0, \"\", LOG_ERR\n
        \       }\n        /* The default */\n    }"
      pos:
        line_end: 134
        line_start: 130
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_log.c
    typedefs: []
    union: []
- function_names:
  - BIO_new_fd
  - BIO_fd_non_fatal_error
  - BIO_fd_should_retry
  - BIO_s_fd
  - BIO_s_fd
  - BIO_new_fd
  - fd_new
  - fd_free
  - fd_read
  - fd_write
  - fd_ctrl
  - fd_puts
  - fd_gets
  - BIO_fd_should_retry
  - BIO_fd_non_fatal_error
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_fd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_s_null
  - null_read
  - null_write
  - null_ctrl
  - null_gets
  - null_puts
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_null.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_s_socket
  - BIO_new_socket
  - sock_new
  - sock_free
  - sock_read
  - sock_write
  - sock_ctrl
  - sock_puts
  - BIO_sock_should_retry
  - BIO_sock_non_fatal_error
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: sock_write
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
      type_or_value: SockWrite
    - item_type: preproc_def
      name: sock_read
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
      type_or_value: SockRead
    - item_type: preproc_def
      name: sock_puts
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_sock.c
      type_or_value: SockPuts
    structs: []
    typedefs: []
    union: []
- function_names:
  - conn_state
  - BIO_CONNECT_new
  - BIO_CONNECT_free
  - BIO_s_connect
  - conn_new
  - conn_close_socket
  - conn_free
  - conn_read
  - conn_write
  - conn_ctrl
  - conn_callback_ctrl
  - conn_puts
  - BIO_new_connect
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIO_CONN_S_BEFORE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BIO_CONN_S_GET_ADDR
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BIO_CONN_S_CREATE_SOCKET
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
      type_or_value: '3'
    - item_type: preproc_def
      name: BIO_CONN_S_CONNECT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
      type_or_value: '4'
    - item_type: preproc_def
      name: BIO_CONN_S_OK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
      type_or_value: '5'
    - item_type: preproc_def
      name: BIO_CONN_S_BLOCKED_CONNECT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
      type_or_value: '6'
    - item_type: preproc_def
      name: BIO_CONN_S_CONNECT_ERROR
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
      type_or_value: '7'
    structs:
    - fields:
      - name: state
        type: int
      - name: connect_family
        type: int
      - name: '*param_hostname'
        type: char
      - name: '*param_service'
        type: char
      - name: connect_mode
        type: int
      - name: '*addr_first'
        type: BIO_ADDRINFO
      - name: '*addr_iter'
        type: BIO_ADDRINFO
      - name: '*info_callback'
        type: BIO_info_cb
      item_type: struct
      name: bio_connect_st
      pos:
        line_end: 35
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_conn.c
    typedefs: []
    union: []
- function_names:
  - BIO_f_buffer
  - buffer_new
  - buffer_free
  - buffer_read
  - buffer_write
  - buffer_ctrl
  - buffer_callback_ctrl
  - buffer_gets
  - buffer_puts
  source_file: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BUFFER_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/bio/bf_buff.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_s_mem
  - BIO_s_secmem
  - BIO_new_mem_buf
  - mem_init
  - mem_new
  - secmem_new
  - mem_free
  - mem_buf_free
  - mem_buf_sync
  - mem_read
  - mem_write
  - mem_ctrl
  - mem_gets
  - mem_puts
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buf'
        type: struct buf_mem_st
      - name: '*readp'
        type: struct buf_mem_st
      item_type: struct
      name: bio_buf_mem_st
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_mem.c
    typedefs: []
    union: []
- function_names:
  - HAS_LEN_OPER
  - bio_call_callback
  - BIO_new
  - BIO_free
  - BIO_set_data
  - BIO_get_data
  - BIO_set_init
  - BIO_get_init
  - BIO_set_shutdown
  - BIO_get_shutdown
  - BIO_vfree
  - BIO_up_ref
  - BIO_clear_flags
  - BIO_test_flags
  - BIO_set_flags
  - BIO_get_callback
  - BIO_set_callback
  - BIO_get_callback_ex
  - BIO_set_callback_ex
  - BIO_set_callback_arg
  - BIO_get_callback_arg
  - BIO_method_name
  - BIO_method_type
  - bio_read_intern
  - BIO_read
  - BIO_read_ex
  - bio_write_intern
  - BIO_write
  - BIO_write_ex
  - BIO_puts
  - BIO_gets
  - BIO_indent
  - BIO_int_ctrl
  - BIO_ptr_ctrl
  - BIO_ctrl
  - BIO_callback_ctrl
  - BIO_ctrl_pending
  - BIO_ctrl_wpending
  - BIO_push
  - BIO_pop
  - BIO_get_retry_BIO
  - BIO_get_retry_reason
  - BIO_set_retry_reason
  - BIO_find_type
  - BIO_next
  - BIO_set_next
  - BIO_free_all
  - BIO_dup_chain
  - BIO_copy_next_retry
  - BIO_set_ex_data
  - BIO_get_ex_data
  - BIO_number_read
  - BIO_number_written
  - bio_free_ex_data
  - bio_cleanup
  source_file: /src/openssl-1.1.1g/crypto/bio/bio_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_new_file
  - BIO_new_fp
  - BIO_s_file
  - file_new
  - file_free
  - file_read
  - file_write
  - file_ctrl
  - file_gets
  - file_puts
  - file_write
  - file_read
  - file_puts
  - file_gets
  - file_ctrl
  - file_new
  - file_free
  - BIO_s_file
  - BIO_new_file
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_file.c
      type_or_value: '64'
    - item_type: preproc_def
      name: _IOB_ENTRIES
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_file.c
      type_or_value: '20'
    structs: []
    typedefs: []
    union: []
- function_names:
  - IN6_IS_ADDR_V4MAPPED
  - BIO_s_datagram
  - BIO_new_dgram
  - dgram_new
  - dgram_free
  - dgram_clear
  - dgram_adjust_rcv_timeout
  - dgram_reset_rcv_timeout
  - dgram_read
  - dgram_write
  - dgram_get_mtu_overhead
  - dgram_ctrl
  - dgram_puts
  - BIO_s_datagram_sctp
  - BIO_new_dgram_sctp
  - BIO_dgram_is_sctp
  - dgram_sctp_new
  - dgram_sctp_free
  - dgram_sctp_handle_auth_free_key_event
  - dgram_sctp_read
  - dgram_sctp_write
  - dgram_sctp_ctrl
  - BIO_dgram_sctp_notification_cb
  - BIO_dgram_sctp_wait_for_dry
  - BIO_dgram_sctp_msg_waiting
  - dgram_sctp_puts
  - BIO_dgram_should_retry
  - BIO_dgram_non_fatal_error
  - get_current_time
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_SCTP_DATA_CHUNK_TYPE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: OPENSSL_SCTP_FORWARD_CUM_TSN_CHUNK_TYPE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
      type_or_value: '0xc0'
    - item_type: preproc_def
      name: IP_MTU
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
      type_or_value: '14        '
    - item_type: preproc_def
      name: IPPROTO_IPV6
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
      type_or_value: '41       '
    - item_type: preproc_def
      name: s6_addr32
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
      type_or_value: __u6_addr.__u6_addr32
    structs:
    - fields:
      - name: peer
        type: BIO_ADDR
      - name: connected
        type: unsigned int
      - name: _errno
        type: unsigned int
      - name: mtu
        type: unsigned int
      - name: next_timeout
        type: struct timeval
      - name: socket_timeout
        type: struct timeval
      - name: peekmode
        type: unsigned int
      item_type: struct
      name: bio_dgram_data_st
      pos:
        line_end: 109
        line_start: 101
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    - fields:
      - name: '*bio'
        type: BIO
      - name: '*data'
        type: char
      - name: length
        type: int
      item_type: struct
      name: bio_dgram_sctp_save_message_st
      pos:
        line_end: 116
        line_start: 112
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    - fields:
      - name: peer
        type: BIO_ADDR
      - name: connected
        type: unsigned int
      - name: _errno
        type: unsigned int
      - name: mtu
        type: unsigned int
      - name: sndinfo
        type: struct bio_dgram_sctp_sndinfo
      - name: rcvinfo
        type: struct bio_dgram_sctp_rcvinfo
      - name: prinfo
        type: struct bio_dgram_sctp_prinfo
      - name: (*handle_notifications) (BIO *bio, void *context, void *buf)
        type: void
      - name: '*notification_context'
        type: void
      - name: in_handshake
        type: int
      - name: ccs_rcvd
        type: int
      - name: ccs_sent
        type: int
      - name: save_shutdown
        type: int
      - name: peer_auth_tested
        type: int
      item_type: struct
      name: bio_dgram_sctp_data_st
      pos:
        line_end: 133
        line_start: 118
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    typedefs: []
    union:
    - fields:
      - name: s
        type: size_t
      - name: i
        type: int
      item_type: union
      name: "sz = {\n        0\n    }"
      pos:
        line_end: 198
        line_start: 195
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    - fields:
      - name: s
        type: size_t
      - name: i
        type: int
      item_type: union
      name: "sz = {\n                0\n            }"
      pos:
        line_end: 610
        line_start: 607
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    - fields:
      - name: s
        type: size_t
      - name: i
        type: int
      item_type: union
      name: "sz = {\n                0\n            }"
      pos:
        line_end: 667
        line_start: 664
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
    - fields:
      - name: ul
        type: unsigned __int64
      - name: ft
        type: FILETIME
      item_type: union
      name: now
      pos:
        line_end: 1908
        line_start: 1905
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_dgram.c
- function_names:
  - BIO_socket
  - BIO_connect
  - BIO_bind
  - BIO_listen
  - BIO_accept_ex
  - BIO_closesocket
  source_file: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LISTEN
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
      type_or_value: SO_MAXCONN
    - item_type: preproc_def
      name: MAX_LISTEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
      type_or_value: SOMAXCONN
    - item_type: preproc_def
      name: MAX_LISTEN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock2.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_f_null
  - nullf_read
  - nullf_write
  - nullf_ctrl
  - nullf_callback_ctrl
  - nullf_gets
  - nullf_puts
  source_file: /src/openssl-1.1.1g/crypto/bio/bf_null.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_s_bio
  - bio_new
  - bio_free
  - bio_read
  - bio_nread0
  - bio_nread
  - bio_write
  - bio_nwrite0
  - bio_nwrite
  - bio_ctrl
  - bio_puts
  - bio_make_pair
  - bio_destroy_pair
  - BIO_new_bio_pair
  - BIO_ctrl_get_write_guarantee
  - BIO_ctrl_get_read_request
  - BIO_ctrl_reset_read_request
  - BIO_nread0
  - BIO_nread
  - BIO_nwrite0
  - BIO_nwrite
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*peer'
        type: BIO
      - name: closed
        type: int
      - name: len
        type: size_t
      - name: offset
        type: size_t
      - name: size
        type: size_t
      - name: '*buf'
        type: char
      - name: request
        type: size_t
      item_type: struct
      name: bio_bio_st
      pos:
        line_end: 75
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_bio.c
    typedefs: []
    union: []
- function_names:
  - BIO_debug_callback
  source_file: /src/openssl-1.1.1g/crypto/bio/bio_cb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - BIO_get_new_index
  - BIO_meth_new
  - BIO_meth_free
  - (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int)
  - "(*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t,\n
    \                                               size_t *)"
  - bwrite_conv
  - BIO_meth_set_write
  - BIO_meth_set_write_ex
  - (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int)
  - (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t
    *)
  - bread_conv
  - BIO_meth_set_read
  - BIO_meth_set_read_ex
  - (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *)
  - BIO_meth_set_puts
  - (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int)
  - BIO_meth_set_gets
  - (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *)
  - BIO_meth_set_ctrl
  - (*BIO_meth_get_create(const BIO_METHOD *biom)) (BIO *)
  - BIO_meth_set_create
  - (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *)
  - BIO_meth_set_destroy
  - (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, BIO_info_cb
    *)
  - BIO_meth_set_callback_ctrl
  source_file: /src/openssl-1.1.1g/crypto/bio/bio_meth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_f_linebuffer
  - linebuffer_new
  - linebuffer_free
  - linebuffer_read
  - linebuffer_write
  - linebuffer_ctrl
  - linebuffer_callback_ctrl
  - linebuffer_gets
  - linebuffer_puts
  source_file: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_LINEBUFFER_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
      type_or_value: 1024*10
    structs:
    - fields:
      - name: '*obuf'
        type: char
      - name: obuf_size
        type: int
      - name: obuf_len
        type: int
      item_type: struct
      name: bio_linebuffer_ctx_struct
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/bio/bf_lbuf.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: addrinfo
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: __addrinfo64
    - item_type: preproc_def
      name: bio_addrinfo_st
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: addrinfo
    - item_type: preproc_def
      name: bai_family
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: ai_family
    - item_type: preproc_def
      name: bai_socktype
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: ai_socktype
    - item_type: preproc_def
      name: bai_protocol
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: ai_protocol
    - item_type: preproc_def
      name: bai_addrlen
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: ai_addrlen
    - item_type: preproc_def
      name: bai_addr
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: ai_addr
    - item_type: preproc_def
      name: bai_next
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: ai_next
    - item_type: preproc_def
      name: UP_stdin
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: stdin
    - item_type: preproc_def
      name: UP_stdout
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: stdout
    - item_type: preproc_def
      name: UP_stderr
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: stderr
    - item_type: preproc_def
      name: UP_fprintf
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: fprintf
    - item_type: preproc_def
      name: UP_fgets
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: fgets
    - item_type: preproc_def
      name: UP_fread
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: fread
    - item_type: preproc_def
      name: UP_fwrite
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: fwrite
    - item_type: preproc_def
      name: UP_feof
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: feof
    - item_type: preproc_def
      name: UP_fclose
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: fclose
    - item_type: preproc_def
      name: UP_fopen
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: fopen
    - item_type: preproc_def
      name: UP_fseek
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: fseek
    - item_type: preproc_def
      name: UP_ftell
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: ftell
    - item_type: preproc_def
      name: UP_fflush
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: fflush
    - item_type: preproc_def
      name: UP_ferror
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: ferror
    - item_type: preproc_def
      name: UP_fileno
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: _fileno
    - item_type: preproc_def
      name: UP_open
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: _open
    - item_type: preproc_def
      name: UP_read
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: _read
    - item_type: preproc_def
      name: UP_write
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: _write
    - item_type: preproc_def
      name: UP_lseek
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: _lseek
    - item_type: preproc_def
      name: UP_close
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: _close
    - item_type: preproc_def
      name: UP_fileno
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: fileno
    - item_type: preproc_def
      name: UP_open
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: open
    - item_type: preproc_def
      name: UP_read
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: read
    - item_type: preproc_def
      name: UP_write
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: write
    - item_type: preproc_def
      name: UP_lseek
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: lseek
    - item_type: preproc_def
      name: UP_close
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type_or_value: close
    structs:
    - fields:
      - name: bai_family
        type: int
      - name: bai_socktype
        type: int
      - name: bai_protocol
        type: int
      - name: bai_addrlen
        type: size_t
      - name: '*bai_addr'
        type: struct sockaddr
      - name: '*bai_next'
        type: struct bio_addrinfo_st
      item_type: struct
      name: bio_addrinfo_st
      pos:
        line_end: 71
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
    - fields:
      - name: ibuf_size
        type: int
      - name: obuf_size
        type: int
      - name: '*ibuf'
        type: char
      - name: ibuf_len
        type: int
      - name: ibuf_off
        type: int
      - name: '*obuf'
        type: char
      - name: obuf_len
        type: int
      - name: obuf_off
        type: int
      item_type: struct
      name: bio_f_buffer_ctx_struct
      pos:
        line_end: 112
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
    - fields:
      - name: '*method'
        type: BIO_METHOD
      - name: callback
        type: BIO_callback_fn
      - name: callback_ex
        type: BIO_callback_fn_ex
      - name: '*cb_arg'
        type: char
      - name: init
        type: int
      - name: shutdown
        type: int
      - name: flags
        type: int
      - name: retry_reason
        type: int
      - name: num
        type: int
      - name: '*ptr'
        type: void
      - name: '*next_bio'
        type: struct bio_st
      - name: '*prev_bio'
        type: struct bio_st
      - name: references
        type: CRYPTO_REF_COUNT
      - name: num_read
        type: uint64_t
      - name: num_write
        type: uint64_t
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: bio_st
      pos:
        line_end: 133
        line_start: 114
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
    typedefs:
    - item_type: typedef
      name: socklen_t
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
      type: unsigned int
    union:
    - fields:
      - name: sa
        type: struct sockaddr
      - name: s_in
        type: struct sockaddr_in
      item_type: union
      name: bio_addr_st
      pos:
        line_end: 83
        line_start: 74
        source_file: /src/openssl-1.1.1g/crypto/bio/bio_local.h
- function_names:
  - ERR_load_BIO_strings
  source_file: /src/openssl-1.1.1g/crypto/bio/bio_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_get_host_ip
  - BIO_get_port
  - BIO_sock_error
  - BIO_gethostbyname
  - BIO_sock_init
  - bio_sock_cleanup_int
  - BIO_socket_ioctl
  - BIO_get_accept_socket
  - BIO_accept
  - BIO_set_tcp_ndelay
  - BIO_socket_nbio
  - BIO_sock_info
  source_file: /src/openssl-1.1.1g/crypto/bio/b_sock.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SOCKET_PROTOCOL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock.c
      type_or_value: IPPROTO_TCP
    - item_type: preproc_def
      name: MAX_LISTEN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock.c
      type_or_value: SO_MAXCONN
    - item_type: preproc_def
      name: MAX_LISTEN
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock.c
      type_or_value: SOMAXCONN
    - item_type: preproc_def
      name: MAX_LISTEN
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock.c
      type_or_value: '32'
    - item_type: preproc_def
      name: ARG
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock.c
      type_or_value: arg_32p
    - item_type: preproc_def
      name: ARG
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock.c
      type_or_value: arg
    - item_type: preproc_def
      name: ARG
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/openssl-1.1.1g/crypto/bio/b_sock.c
      type_or_value: arg
    structs: []
    typedefs: []
    union: []
- function_names:
  - DUMP_WIDTH_LESS_INDENT
  - SPACE
  - BIO_dump_cb
  - BIO_dump_indent_cb
  - write_fp
  - BIO_dump_fp
  - BIO_dump_indent_fp
  - write_bio
  - BIO_dump
  - BIO_dump_indent
  - BIO_hex_string
  source_file: /src/openssl-1.1.1g/crypto/bio/b_dump.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DUMP_WIDTH
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/bio/b_dump.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_s_accept
  - acpt_new
  - BIO_ACCEPT_new
  - BIO_ACCEPT_free
  - acpt_close_socket
  - acpt_free
  - acpt_state
  - acpt_read
  - acpt_write
  - acpt_ctrl
  - acpt_puts
  - BIO_new_accept
  source_file: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACPT_S_BEFORE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ACPT_S_GET_ADDR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ACPT_S_CREATE_SOCKET
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
      type_or_value: '3'
    - item_type: preproc_def
      name: ACPT_S_LISTEN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
      type_or_value: '4'
    - item_type: preproc_def
      name: ACPT_S_ACCEPT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
      type_or_value: '5'
    - item_type: preproc_def
      name: ACPT_S_OK
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
      type_or_value: '6'
    structs:
    - fields:
      - name: state
        type: int
      - name: accept_family
        type: int
      - name: bind_mode
        type: int
      - name: accepted_mode
        type: int
      - name: '*param_addr'
        type: char
      - name: '*param_serv'
        type: char
      - name: accept_sock
        type: int
      - name: '*addr_first'
        type: BIO_ADDRINFO
      - name: '*addr_iter'
        type: BIO_ADDRINFO
      - name: cache_accepting_addr
        type: BIO_ADDR
      - name: '*cache_accepting_name'
        type: char
      - name: cache_peer_addr
        type: BIO_ADDR
      - name: '*cache_peer_name'
        type: char
      - name: '*bio_chain'
        type: BIO
      item_type: struct
      name: bio_accept_st
      pos:
        line_end: 33
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/bio/bss_acpt.c
    typedefs: []
    union: []
- function_names:
  - BIO_ADDR_new
  - BIO_ADDR_free
  - BIO_ADDR_clear
  - BIO_ADDR_make
  - BIO_ADDR_rawmake
  - BIO_ADDR_family
  - BIO_ADDR_rawaddress
  - BIO_ADDR_rawport
  - BIO_ADDR_hostname_string
  - BIO_ADDR_service_string
  - BIO_ADDR_path_string
  - BIO_ADDR_sockaddr
  - BIO_ADDR_sockaddr_noconst
  - BIO_ADDR_sockaddr_size
  - BIO_ADDRINFO_next
  - BIO_ADDRINFO_family
  - BIO_ADDRINFO_socktype
  - BIO_ADDRINFO_protocol
  - BIO_ADDRINFO_sockaddr_size
  - BIO_ADDRINFO_sockaddr
  - BIO_ADDRINFO_address
  - BIO_ADDRINFO_free
  - BIO_parse_hostserv
  - addrinfo_wrap
  - DEFINE_RUN_ONCE_STATIC
  - BIO_lookup
  source_file: /src/openssl-1.1.1g/crypto/bio/b_addr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _cond
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/openssl-1.1.1g/crypto/bio/b_addr.c
      type_or_value: bai->bai_family != AF_UNIX
    - item_type: preproc_def
      name: _cond
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/openssl-1.1.1g/crypto/bio/b_addr.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_f_nbio_test
  - nbiof_new
  - nbiof_free
  - nbiof_read
  - nbiof_write
  - nbiof_ctrl
  - nbiof_callback_ctrl
  - nbiof_gets
  - nbiof_puts
  source_file: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lrn
        type: int
      - name: lwn
        type: int
      item_type: struct
      name: nbio_test_st
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/bio/bf_nbio.c
    typedefs: []
    union: []
- function_names:
  - char_to_int
  - OSSL_MAX
  - _dopr
  - fmtstr
  - fmtint
  - abs_val
  - pow_10
  - roundv
  - fmtfp
  - doapr_outch
  - BIO_printf
  - BIO_vprintf
  - BIO_snprintf
  - BIO_vsnprintf
  source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LDOUBLE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: long double
    - item_type: preproc_def
      name: LDOUBLE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: double
    - item_type: preproc_def
      name: DP_S_DEFAULT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DP_S_FLAGS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DP_S_MIN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DP_S_DOT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '3'
    - item_type: preproc_def
      name: DP_S_MAX
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DP_S_MOD
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '5'
    - item_type: preproc_def
      name: DP_S_CONV
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '6'
    - item_type: preproc_def
      name: DP_S_DONE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '7'
    - item_type: preproc_def
      name: DP_F_MINUS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: DP_F_PLUS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: DP_F_SPACE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: DP_F_NUM
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: DP_F_ZERO
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: DP_F_UP
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: DP_F_UNSIGNED
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: DP_C_SHORT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DP_C_LONG
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DP_C_LDOUBLE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '3'
    - item_type: preproc_def
      name: DP_C_LLONG
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DP_C_SIZE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '5'
    - item_type: preproc_def
      name: F_FORMAT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '0'
    - item_type: preproc_def
      name: E_FORMAT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '1'
    - item_type: preproc_def
      name: G_FORMAT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BUFFER_INC
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/openssl-1.1.1g/crypto/bio/b_print.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - rand_pool_acquire_entropy
  - rand_pool_add_nonce_data
  - rand_pool_add_additional_data
  - RAND_event
  - RAND_screen
  - rand_pool_init
  - rand_pool_cleanup
  - rand_pool_keep_random_devices_open
  source_file: /src/openssl-1.1.1g/crypto/rand/rand_win.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATUS_SUCCESS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_win.c
      type_or_value: ((NTSTATUS)0x00000000L)
    - item_type: preproc_def
      name: PROV_INTEL_SEC
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_win.c
      type_or_value: '22'
    - item_type: preproc_def
      name: INTEL_DEF_PROV
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_win.c
      type_or_value: L"Intel Hardware Cryptographic Service Provider"
    structs:
    - fields:
      - name: pid
        type: DWORD
      - name: tid
        type: DWORD
      - name: time
        type: FILETIME
      item_type: struct
      name: data = { 0 }
      pos:
        line_end: 128
        line_start: 124
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    - fields:
      - name: tid
        type: DWORD
      - name: time
        type: LARGE_INTEGER
      item_type: struct
      name: data = { 0 }
      pos:
        line_end: 147
        line_start: 144
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_win.c
    typedefs: []
    union: []
- function_names:
  - ERR_load_RAND_strings
  source_file: /src/openssl-1.1.1g/crypto/rand/rand_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RAND_query_egd_bytes
  - RAND_egd
  - RAND_egd_bytes
  - RAND_query_egd_bytes
  - RAND_egd_bytes
  - RAND_egd
  source_file: /src/openssl-1.1.1g/crypto/rand/rand_egd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sun_family
        type: short
      - name: sun_path[108]
        type: char
      item_type: struct
      name: sockaddr_un
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_egd.c
    typedefs: []
    union: []
- function_names:
  - prepare_item_list
  - massage_JPI
  - data_collect_method
  - rand_pool_add_nonce_data
  - init_get_entropy_address
  - get_entropy_method
  - rand_pool_acquire_entropy
  - rand_pool_add_additional_data
  - rand_pool_init
  - rand_pool_cleanup
  - rand_pool_keep_random_devices_open
  source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __NEW_STARLET
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
      type_or_value: '1         '
    - item_type: preproc_def
      name: ENTROPY_FACTOR
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
      type_or_value: '20'
    - item_type: preproc_def
      name: PUBLIC_VECTORS
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
      type_or_value: '"SYS$LIBRARY:SYS$PUBLIC_VECTORS.EXE"'
    - item_type: preproc_def
      name: GET_ENTROPY
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
      type_or_value: '"SYS$GET_ENTROPY"'
    structs:
    - fields:
      - name: length
        type: short
      item_type: struct
      name: item_st
      pos:
        line_end: 63
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    - fields:
      - name: pid
        type: pid_t
      - name: tid
        type: CRYPTO_THREAD_ID
      - name: time
        type: uint64_t
      item_type: struct
      name: data = { 0 }
      pos:
        line_end: 487
        line_start: 483
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    - fields:
      - name: tid
        type: CRYPTO_THREAD_ID
      - name: time
        type: uint64_t
      item_type: struct
      name: data = { 0 }
      pos:
        line_end: 585
        line_start: 582
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
    typedefs:
    - item_type: typedef
      name: '*uint32_t__ptr32'
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
      type: uint32_t
    union:
    - fields:
      - name: dummy
        type: uint64_t
      - name: "buffer[OSSL_NELEM(JPI_item_data_64bit) * 2\n                        +
          OSSL_NELEM(RMI_item_data_64bit) * 2\n                        + OSSL_NELEM(DVI_item_data)\n
          \                       + OSSL_NELEM(JPI_item_data)\n                        +
          OSSL_NELEM(RMI_item_data)\n                        + OSSL_NELEM(SYI_item_data)\n
          \                       + 4 /* For JPI$_FINALEXC */]"
        type: uint32_t
      item_type: union
      name: data
      pos:
        line_end: 363
        line_start: 353
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_vms.c
- function_names:
  - S_ISREG
  - openssl_fopen
  - RAND_load_file
  - RAND_write_file
  - RAND_file_name
  source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: _stat
    - item_type: preproc_def
      name: chmod
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: _chmod
    - item_type: preproc_def
      name: open
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: _open
    - item_type: preproc_def
      name: fdopen
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: _fdopen
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: _fstat
    - item_type: preproc_def
      name: fileno
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: _fileno
    - item_type: preproc_def
      name: RAND_BUF_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: RFILE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: '".rnd"'
    - item_type: preproc_def
      name: VMS_OPEN_ATTRS
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: '"shr=get,put,upd,del","ctx=bin,stm","rfm=stm","rat=none","mrs=0"'
    - item_type: preproc_def
      name: RAND_LOAD_BUF_SIZE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: (RAND_BUF_SIZE + RAND_DRBG_STRENGTH)
    - item_type: preproc_def
      name: O_BINARY
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/openssl-1.1.1g/crypto/rand/randfile.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - RAND_DRBG_set
  - RAND_DRBG_set_defaults
  - rand_drbg_new
  - RAND_DRBG_new
  - RAND_DRBG_secure_new
  - RAND_DRBG_free
  - RAND_DRBG_instantiate
  - RAND_DRBG_uninstantiate
  - RAND_DRBG_reseed
  - rand_drbg_restart
  - RAND_DRBG_generate
  - RAND_DRBG_bytes
  - RAND_DRBG_set_callbacks
  - RAND_DRBG_set_reseed_interval
  - RAND_DRBG_set_reseed_time_interval
  - RAND_DRBG_set_reseed_defaults
  - rand_drbg_lock
  - rand_drbg_unlock
  - rand_drbg_enable_locking
  - RAND_DRBG_set_ex_data
  - RAND_DRBG_get_ex_data
  - drbg_setup
  - DEFINE_RUN_ONCE_STATIC
  - rand_drbg_cleanup_int
  - drbg_delete_thread_state
  - drbg_bytes
  - rand_drbg_seedlen
  - drbg_add
  - drbg_seed
  - drbg_status
  - RAND_DRBG_get0_master
  - RAND_DRBG_get0_public
  - RAND_DRBG_get0_private
  - RAND_OpenSSL
  source_file: /src/openssl-1.1.1g/crypto/rand/drbg_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inc_128
  - ctr_XOR
  - ctr_BCC_block
  - ctr_BCC_blocks
  - ctr_BCC_init
  - ctr_BCC_update
  - ctr_BCC_final
  - ctr_df
  - ctr_update
  - drbg_ctr_instantiate
  - drbg_ctr_reseed
  - drbg_ctr_generate
  - drbg_ctr_uninstantiate
  - drbg_ctr_init
  source_file: /src/openssl-1.1.1g/crypto/rand/drbg_ctr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RAND_POOL_MIN_ALLOCATION
  source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
  types:
    enum:
    - enumerators:
      - name: DRBG_UNINITIALISED
      - name: DRBG_READY
      - name: DRBG_ERROR
      item_type: enum
      name: drbg_status_e
      pos:
        line_end: 97
        line_start: 93
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
    preproc_defs:
    - item_type: preproc_def
      name: TSC_READ_COUNT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_RESEED_INTERVAL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: MAX_RESEED_TIME_INTERVAL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: '(1 << 20) '
    - item_type: preproc_def
      name: MASTER_RESEED_INTERVAL
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: SLAVE_RESEED_INTERVAL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: MASTER_RESEED_TIME_INTERVAL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: '(60*60)   '
    - item_type: preproc_def
      name: SLAVE_RESEED_TIME_INTERVAL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: '(7*60)    '
    - item_type: preproc_def
      name: DRBG_MAX_LENGTH
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: INT32_MAX
    - item_type: preproc_def
      name: RAND_POOL_FACTOR
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: '256'
    - item_type: preproc_def
      name: RAND_POOL_MAX_LENGTH
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type_or_value: "(RAND_POOL_FACTOR * \\\n                                  3
        * (RAND_DRBG_STRENGTH / 16))"
    structs:
    - fields:
      - name: instantiate
        type: RAND_DRBG_instantiate_fn
      - name: reseed
        type: RAND_DRBG_reseed_fn
      - name: generate
        type: RAND_DRBG_generate_fn
      - name: uninstantiate
        type: RAND_DRBG_uninstantiate_fn
      item_type: struct
      name: rand_drbg_method_st
      pos:
        line_end: 133
        line_start: 128
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
    - fields:
      - name: '*ctx'
        type: EVP_CIPHER_CTX
      - name: '*ctx_df'
        type: EVP_CIPHER_CTX
      - name: '*cipher'
        type: EVP_CIPHER
      - name: keylen
        type: size_t
      - name: K[32]
        type: unsigned char
      - name: V[16]
        type: unsigned char
      - name: bltmp[16]
        type: unsigned char
      - name: bltmp_pos
        type: size_t
      - name: KX[48]
        type: unsigned char
      item_type: struct
      name: rand_drbg_ctr_st
      pos:
        line_end: 150
        line_start: 139
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
    - fields:
      - name: '*buffer'
        type: unsigned char
      - name: len
        type: size_t
      - name: attached
        type: int
      - name: secure
        type: int
      - name: min_len
        type: size_t
      - name: max_len
        type: size_t
      - name: alloc_len
        type: size_t
      - name: entropy
        type: size_t
      - name: entropy_requested
        type: size_t
      item_type: struct
      name: rand_pool_st
      pos:
        line_end: 176
        line_start: 164
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
    - fields:
      - name: '*lock'
        type: CRYPTO_RWLOCK
      - name: '*parent'
        type: RAND_DRBG
      - name: secure
        type: int
      - name: type
        type: int
      - name: fork_id
        type: int
      - name: flags
        type: unsigned short
      - name: '*seed_pool'
        type: struct rand_pool_st
      - name: '*adin_pool'
        type: struct rand_pool_st
      - name: strength
        type: int
      - name: max_request
        type: size_t
      - name: min_entropylen
        type: size_t
      - name: min_noncelen
        type: size_t
      - name: max_perslen
        type: size_t
      - name: reseed_gen_counter
        type: unsigned int
      - name: reseed_interval
        type: unsigned int
      - name: reseed_time
        type: time_t
      - name: reseed_time_interval
        type: time_t
      - name: reseed_prop_counter
        type: TSAN_QUALIFIER unsigned
      - name: reseed_next_counter
        type: unsigned int
      - name: seedlen
        type: size_t
      - name: state
        type: DRBG_STATUS
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: data
        type: "union {\n        RAND_DRBG_CTR ctr;\n    }"
      - name: '*meth'
        type: RAND_DRBG_METHOD
      - name: get_entropy
        type: RAND_DRBG_get_entropy_fn
      - name: cleanup_entropy
        type: RAND_DRBG_cleanup_entropy_fn
      - name: get_nonce
        type: RAND_DRBG_get_nonce_fn
      - name: cleanup_nonce
        type: RAND_DRBG_cleanup_nonce_fn
      item_type: struct
      name: rand_drbg_st
      pos:
        line_end: 280
        line_start: 182
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
    typedefs:
    - item_type: typedef
      name: "(*RAND_DRBG_instantiate_fn)(RAND_DRBG *ctx,\n                                        const
        unsigned char *ent,\n                                        size_t entlen,\n
        \                                       const unsigned char *nonce,\n                                        size_t
        noncelen,\n                                        const unsigned char *pers,\n
        \                                       size_t perslen)"
      pos:
        line_end: 107
        line_start: 101
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type: int
    - item_type: typedef
      name: "(*RAND_DRBG_reseed_fn)(RAND_DRBG *ctx,\n                                   const
        unsigned char *ent,\n                                   size_t entlen,\n                                   const
        unsigned char *adin,\n                                   size_t adinlen)"
      pos:
        line_end: 113
        line_start: 109
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type: int
    - item_type: typedef
      name: "(*RAND_DRBG_generate_fn)(RAND_DRBG *ctx,\n                                     unsigned
        char *out,\n                                     size_t outlen,\n                                     const
        unsigned char *adin,\n                                     size_t adinlen)"
      pos:
        line_end: 119
        line_start: 115
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type: int
    - item_type: typedef
      name: (*RAND_DRBG_uninstantiate_fn)(RAND_DRBG *ctx)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_local.h
      type: int
    union: []
- function_names:
  - rand_acquire_entropy_from_tsc
  - rand_acquire_entropy_from_cpu
  - rand_drbg_get_entropy
  - rand_drbg_cleanup_entropy
  - rand_drbg_get_nonce
  - rand_drbg_cleanup_nonce
  - rand_drbg_get_additional_data
  - rand_drbg_cleanup_additional_data
  - DEFINE_RUN_ONCE_STATIC
  - rand_cleanup_int
  - RAND_keep_random_devices_open
  - RAND_poll
  - rand_pool_new
  - rand_pool_attach
  - rand_pool_free
  - rand_pool_buffer
  - rand_pool_entropy
  - rand_pool_length
  - rand_pool_detach
  - rand_pool_reattach
  - ENTROPY_TO_BYTES
  - rand_pool_entropy_available
  - rand_pool_entropy_needed
  - rand_pool_grow
  - rand_pool_bytes_needed
  - rand_pool_bytes_remaining
  - rand_pool_add
  - rand_pool_add_begin
  - rand_pool_add_end
  - RAND_set_rand_method
  - RAND_get_rand_method
  - RAND_set_rand_engine
  - RAND_seed
  - RAND_add
  - RAND_priv_bytes
  - RAND_bytes
  - RAND_pseudo_bytes
  - RAND_status
  source_file: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* instance'
        type: void
      - name: count
        type: int
      item_type: struct
      name: data
      pos:
        line_end: 241
        line_start: 238
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_lib.c
    typedefs: []
    union: []
- function_names:
  - TWO32TO64
  - rand_pool_init
  - rand_pool_cleanup
  - rand_pool_keep_random_devices_open
  - rand_pool_acquire_entropy
  - rand_pool_acquire_entropy
  - rand_pool_cleanup
  - rand_pool_keep_random_devices_open
  - sysctl_random
  - syscall_random
  - cleanup_shm
  - wait_random_seeded
  - wait_random_seeded
  - check_random_device
  - get_random_device
  - close_random_device
  - rand_pool_init
  - rand_pool_cleanup
  - rand_pool_keep_random_devices_open
  - rand_pool_init
  - rand_pool_cleanup
  - rand_pool_keep_random_devices_open
  - rand_pool_acquire_entropy
  - rand_pool_add_nonce_data
  - rand_pool_add_additional_data
  - get_time_stamp
  - get_timer_bits
  source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: (__NR_SYSCALL_BASE+384)
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '355'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: (__X32_SYSCALL_BIT + 318)
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '318'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '338'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '349'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '389'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '359'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: (__NR_Linux + 353)
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: (__NR_Linux + 313)
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: (__NR_Linux + 317)
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: (__NR_Linux + 339)
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '347'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '1339'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '511'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '373'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '384'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '317'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '385'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '352'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '356'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '278'
    - item_type: preproc_def
      name: __NR_getrandom
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: '278'
    - item_type: preproc_def
      name: CLOCK_TYPE
      pos:
        line_end: 842
        line_start: 841
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: CLOCK_BOOTTIME
    - item_type: preproc_def
      name: CLOCK_TYPE
      pos:
        line_end: 844
        line_start: 843
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: CLOCK_MONOTONIC
    - item_type: preproc_def
      name: CLOCK_TYPE
      pos:
        line_end: 846
        line_start: 845
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
      type_or_value: CLOCK_REALTIME
    structs:
    - fields:
      - name: fd
        type: int
      - name: dev
        type: dev_t
      - name: ino
        type: ino_t
      - name: mode
        type: mode_t
      - name: rdev
        type: dev_t
      item_type: struct
      name: random_device
      pos:
        line_end: 408
        line_start: 402
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    - fields:
      - name: pid
        type: pid_t
      - name: tid
        type: CRYPTO_THREAD_ID
      - name: time
        type: uint64_t
      item_type: struct
      name: data = { 0 }
      pos:
        line_end: 748
        line_start: 744
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    - fields:
      - name: fork_id
        type: int
      - name: tid
        type: CRYPTO_THREAD_ID
      - name: time
        type: uint64_t
      item_type: struct
      name: data = { 0 }
      pos:
        line_end: 768
        line_start: 764
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
    typedefs: []
    union:
    - fields:
      - name: '*p'
        type: void
      - name: (*f)(void *buffer, size_t length)
        type: int
      item_type: union
      name: p_getentropy
      pos:
        line_end: 375
        line_start: 372
        source_file: /src/openssl-1.1.1g/crypto/rand/rand_unix.c
- function_names:
  - pkey_tls1_prf_init
  - pkey_tls1_prf_cleanup
  - pkey_tls1_prf_ctrl
  - pkey_tls1_prf_ctrl_str
  - pkey_tls1_prf_derive
  - tls1_prf_P_hash
  - tls1_prf_alg
  source_file: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TLS1_PRF_MAXBUF
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*md'
        type: EVP_MD
      - name: '*sec'
        type: unsigned char
      - name: seclen
        type: size_t
      - name: seed[TLS1_PRF_MAXBUF]
        type: unsigned char
      - name: seedlen
        type: size_t
      item_type: struct
      name: TLS1_PRF_PKEY_CTX
      pos:
        line_end: 33
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/kdf/tls1_prf.c
    typedefs: []
    union: []
- function_names:
  - ERR_load_KDF_strings
  source_file: /src/openssl-1.1.1g/crypto/kdf/kdf_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pkey_hkdf_init
  - pkey_hkdf_cleanup
  - pkey_hkdf_ctrl
  - pkey_hkdf_ctrl_str
  - pkey_hkdf_derive_init
  - pkey_hkdf_derive
  - HKDF
  - HKDF_Extract
  - HKDF_Expand
  source_file: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HKDF_MAXBUF
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: mode
        type: int
      - name: '*md'
        type: EVP_MD
      - name: '*salt'
        type: unsigned char
      - name: salt_len
        type: size_t
      - name: '*key'
        type: unsigned char
      - name: key_len
        type: size_t
      - name: info[HKDF_MAXBUF]
        type: unsigned char
      - name: info_len
        type: size_t
      item_type: struct
      name: HKDF_PKEY_CTX
      pos:
        line_end: 44
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/kdf/hkdf.c
    typedefs: []
    union: []
- function_names:
  - atou64
  - pkey_scrypt_init
  - pkey_scrypt_cleanup
  - pkey_scrypt_set_membuf
  - is_power_of_two
  - pkey_scrypt_ctrl
  - pkey_scrypt_ctrl_uint64
  - pkey_scrypt_ctrl_str
  - pkey_scrypt_derive
  source_file: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pass'
        type: unsigned char
      - name: pass_len
        type: size_t
      - name: '*salt'
        type: unsigned char
      - name: salt_len
        type: size_t
      - name: N
        type: uint64_t
      - name: maxmem_bytes
        type: uint64_t
      item_type: struct
      name: SCRYPT_PKEY_CTX
      pos:
        line_end: 28
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/kdf/scrypt.c
    typedefs: []
    union: []
- function_names:
  - ASN1_SCTX_new
  - ASN1_SCTX_free
  - ASN1_SCTX_get_item
  - ASN1_SCTX_get_template
  - ASN1_SCTX_get_flags
  - ASN1_SCTX_set_app_data
  - ASN1_SCTX_get_app_data
  source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_scn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/asn1/x_spki.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_new_NDEF
  - ndef_prefix
  - ndef_prefix_free
  - ndef_suffix_free
  - ndef_suffix
  source_file: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*val'
        type: ASN1_VALUE
      - name: '*it'
        type: ASN1_ITEM
      - name: '*ndef_bio'
        type: BIO
      - name: '*out'
        type: BIO
      - name: '**boundary'
        type: unsigned char
      - name: '*derbuf'
        type: unsigned char
      item_type: struct
      name: ndef_aux_st
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/asn1/bio_ndef.c
    typedefs: []
    union: []
- function_names:
  - X509_PKEY_new
  - X509_PKEY_free
  source_file: /src/openssl-1.1.1g/crypto/asn1/x_pkey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_digest
  - ASN1_item_digest
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_digest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - offset2ptr
  - asn1_get_choice_selector
  - asn1_set_choice_selector
  - asn1_do_lock
  - asn1_get_enc_ptr
  - asn1_enc_init
  - asn1_enc_free
  - asn1_enc_save
  - asn1_enc_restore
  - asn1_get_field_ptr
  - asn1_do_adb
  source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_utl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_sign
  - ASN1_item_sign
  - ASN1_item_sign_ctx
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_sign.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS5_pbe_set0_algor
  - PKCS5_pbe_set
  source_file: /src/openssl-1.1.1g/crypto/asn1/p5_pbe.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2d_ASN1_OBJECT
  - a2d_ASN1_OBJECT
  - i2t_ASN1_OBJECT
  - i2a_ASN1_OBJECT
  - d2i_ASN1_OBJECT
  - c2i_ASN1_OBJECT
  - ASN1_OBJECT_new
  - ASN1_OBJECT_free
  - ASN1_OBJECT_create
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_object.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - d2i_PrivateKey
  - d2i_AutoPrivateKey
  source_file: /src/openssl-1.1.1g/crypto/asn1/d2i_pr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_utc
  - leap_year
  - determine_days
  - asn1_time_to_tm
  - asn1_time_from_tm
  - ASN1_TIME_set
  - ASN1_TIME_adj
  - ASN1_TIME_check
  - ASN1_TIME_to_generalizedtime
  - ASN1_TIME_set_string
  - ASN1_TIME_set_string_X509
  - ASN1_TIME_to_tm
  - ASN1_TIME_diff
  - ASN1_TIME_print
  - ASN1_TIME_cmp_time_t
  - ASN1_TIME_normalize
  - ASN1_TIME_compare
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_time.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_d2i_fp
  - ASN1_d2i_bio
  - ASN1_item_d2i_bio
  - ASN1_item_d2i_fp
  - asn1_d2i_read_bio
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HEADER_SIZE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c
      type_or_value: '8'
    - item_type: preproc_def
      name: ASN1_CHUNK_INITIAL_SIZE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_d2i_fp.c
      type_or_value: (16 * 1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_STRING_set_default_mask
  - ASN1_STRING_get_default_mask
  - ASN1_STRING_set_default_mask_asc
  - ASN1_STRING_set_by_NID
  - sk_table_cmp
  - table_cmp
  - ASN1_STRING_TABLE_get
  - stable_get
  - ASN1_STRING_TABLE_add
  - ASN1_STRING_TABLE_cleanup
  - st_free
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_strnid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_tag2bit
  - asn1_tlc_clear
  - asn1_tlc_clear_nc
  - ASN1_item_d2i
  - ASN1_item_ex_d2i
  - asn1_item_embed_d2i
  - asn1_template_ex_d2i
  - asn1_template_noexp_d2i
  - asn1_d2i_ex_primitive
  - asn1_ex_c2i
  - asn1_find_end
  - asn1_collect
  - collect_data
  - asn1_check_eoc
  - asn1_check_tlen
  source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASN1_MAX_CONSTRUCTED_NEST
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
      type_or_value: '30'
    - item_type: preproc_def
      name: ASN1_MAX_STRING_NEST
      pos:
        line_end: 981
        line_start: 980
        source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_dec.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_item_free
  - ASN1_item_ex_free
  - asn1_item_embed_free
  - asn1_template_free
  - asn1_primitive_free
  source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_fre.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2d_PublicKey
  source_file: /src/openssl-1.1.1g/crypto/asn1/i2d_pu.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_TYPE_set_octetstring
  - ASN1_TYPE_get_octetstring
  - ASN1_TYPE_set_int_octetstring
  - ASN1_TYPE_get_int_octetstring
  source_file: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: num
        type: int32_t
      - name: '*oct'
        type: ASN1_OCTET_STRING
      item_type: struct
      name: asn1_int_oct
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/asn1/evp_asn1.c
    typedefs: []
    union: []
- function_names:
  - i2a_ASN1_STRING
  - a2i_ASN1_STRING
  source_file: /src/openssl-1.1.1g/crypto/asn1/f_string.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_INFO_new
  - X509_INFO_free
  source_file: /src/openssl-1.1.1g/crypto/asn1/x_info.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_TYPE_get
  - ASN1_TYPE_set
  - ASN1_TYPE_set1
  - ASN1_TYPE_cmp
  - ASN1_TYPE_pack_sequence
  - ASN1_TYPE_unpack_sequence
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_type.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_item_new
  - ASN1_item_ex_new
  - asn1_item_embed_new
  - asn1_item_clear
  - asn1_template_new
  - asn1_template_clear
  - asn1_primitive_new
  - asn1_primitive_clear
  source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_new.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_ALGOR_set0
  - X509_ALGOR_get0
  - X509_ALGOR_set_md
  - X509_ALGOR_cmp
  source_file: /src/openssl-1.1.1g/crypto/asn1/x_algor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_dup
  - ASN1_item_dup
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_dup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_PRINTABLE_type
  - ASN1_UNIVERSALSTRING_to_string
  - ASN1_STRING_print
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_print.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/asn1/charmap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHARTYPE_HOST_ANY
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/asn1/charmap.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: CHARTYPE_HOST_DOT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/asn1/charmap.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: CHARTYPE_HOST_HYPHEN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/asn1/charmap.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: CHARTYPE_HOST_WILD
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/asn1/charmap.h
      type_or_value: '32768'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS5_pbe2_set_iv
  - PKCS5_pbe2_set
  - PKCS5_pbkdf2_set
  source_file: /src/openssl-1.1.1g/crypto/asn1/p5_pbev2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/asn1/standard_methods.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UTF8_getc
  - UTF8_putc
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_utf8.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_PCTX_new
  - ASN1_PCTX_free
  - ASN1_PCTX_get_flags
  - ASN1_PCTX_set_flags
  - ASN1_PCTX_get_nm_flags
  - ASN1_PCTX_set_nm_flags
  - ASN1_PCTX_get_cert_flags
  - ASN1_PCTX_set_cert_flags
  - ASN1_PCTX_get_oid_flags
  - ASN1_PCTX_set_oid_flags
  - ASN1_PCTX_get_str_flags
  - ASN1_PCTX_set_str_flags
  - ASN1_item_print
  - asn1_item_print_ctx
  - asn1_template_print_ctx
  - asn1_print_fsname
  - asn1_print_boolean
  - asn1_print_integer
  - asn1_print_oid
  - asn1_print_obstring
  - asn1_primitive_print
  source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_prn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - asn1_print_info
  - ASN1_parse
  - ASN1_parse_dump
  - asn1_parse2
  - ASN1_tag2str
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASN1_PARSE_MAXDEPTH
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_par.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_ITEM_lookup
  - ASN1_ITEM_get
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_item_list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - send_bio_chars
  - send_fp_chars
  - do_esc_char
  - do_buf
  - do_hex_dump
  - do_dump
  - do_print_ex
  - do_indent
  - do_name_ex
  - X509_NAME_print_ex
  - X509_NAME_print_ex_fp
  - ASN1_STRING_print_ex
  - ASN1_STRING_print_ex_fp
  - ASN1_STRING_to_UTF8
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHARTYPE_BS_ESC
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
      type_or_value: (ASN1_STRFLGS_ESC_2253 | CHARTYPE_FIRST_ESC_2253 | CHARTYPE_LAST_ESC_2253)
    - item_type: preproc_def
      name: ESC_FLAGS
      pos:
        line_end: 32
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
      type_or_value: "(ASN1_STRFLGS_ESC_2253 | \\\n                  ASN1_STRFLGS_ESC_2254
        | \\\n                  ASN1_STRFLGS_ESC_QUOTE | \\\n                  ASN1_STRFLGS_ESC_CTRL
        | \\\n                  ASN1_STRFLGS_ESC_MSB)"
    - item_type: preproc_def
      name: BUF_TYPE_WIDTH_MASK
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
      type_or_value: '0x7'
    - item_type: preproc_def
      name: BUF_TYPE_CONVUTF8
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
      type_or_value: '0x8'
    - item_type: preproc_def
      name: FN_WIDTH_LN
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
      type_or_value: '25'
    - item_type: preproc_def
      name: FN_WIDTH_SN
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
      type_or_value: '10'
    structs: []
    typedefs:
    - item_type: typedef
      name: char_io (void *arg, const void *buf, int len)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_strex.c
      type: int
    union: []
- function_names:
  - pkey_cb
  - PKCS8_pkey_set0
  - PKCS8_pkey_get0
  - PKCS8_pkey_get0_attrs
  - PKCS8_pkey_add1_attr_by_NID
  source_file: /src/openssl-1.1.1g/crypto/asn1/p8_pkey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS5_pbe2_set_scrypt
  - pkcs5_scrypt_set
  - PKCS5_v2_scrypt_keyivgen
  source_file: /src/openssl-1.1.1g/crypto/asn1/p5_scrypt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - d2i_PublicKey
  source_file: /src/openssl-1.1.1g/crypto/asn1/d2i_pu.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_SIG_get0
  - X509_SIG_getm
  source_file: /src/openssl-1.1.1g/crypto/asn1/x_sig.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - asn1_utctime_to_tm
  - ASN1_UTCTIME_check
  - ASN1_UTCTIME_set_string
  - ASN1_UTCTIME_set
  - ASN1_UTCTIME_adj
  - ASN1_UTCTIME_cmp_time_t
  - ASN1_UTCTIME_print
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_utctm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - COPY_SIZE
  - long_free
  - num_bits_ulong
  - long_i2c
  - long_c2i
  - long_print
  source_file: /src/openssl-1.1.1g/crypto/asn1/x_long.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/asn1/x_val.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - uint64_new
  - uint64_free
  - uint64_clear
  - uint64_i2c
  - uint64_c2i
  - uint64_print
  - uint32_new
  - uint32_free
  - uint32_clear
  - uint32_i2c
  - uint32_c2i
  - uint32_print
  source_file: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INTxx_FLAG_ZERO_DEFAULT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: INTxx_FLAG_SIGNED
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: ABS_INT32_MIN
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/openssl-1.1.1g/crypto/asn1/x_int64.c
      type_or_value: ((uint32_t)INT32_MAX + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ameth_cmp
  - EVP_PKEY_asn1_get_count
  - EVP_PKEY_asn1_get0
  - pkey_asn1_find
  - EVP_PKEY_asn1_find
  - EVP_PKEY_asn1_find_str
  - EVP_PKEY_asn1_add0
  - EVP_PKEY_asn1_add_alias
  - EVP_PKEY_asn1_get0_info
  - EVP_PKEY_get0_asn1
  - EVP_PKEY_asn1_new
  - EVP_PKEY_asn1_copy
  - EVP_PKEY_asn1_free
  - EVP_PKEY_asn1_set_public
  - EVP_PKEY_asn1_set_private
  - EVP_PKEY_asn1_set_param
  - EVP_PKEY_asn1_set_free
  - EVP_PKEY_asn1_set_ctrl
  - EVP_PKEY_asn1_set_security_bits
  - EVP_PKEY_asn1_set_item
  - EVP_PKEY_asn1_set_siginf
  - EVP_PKEY_asn1_set_check
  - EVP_PKEY_asn1_set_public_check
  - EVP_PKEY_asn1_set_param_check
  - EVP_PKEY_asn1_set_set_priv_key
  - EVP_PKEY_asn1_set_set_pub_key
  - EVP_PKEY_asn1_set_get_priv_key
  - EVP_PKEY_asn1_set_get_pub_key
  source_file: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sk_cmp_fn_type(const char *const *a, const char *const *b)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/asn1/ameth_lib.c
      type: int
    union: []
- function_names:
  - i2a_ASN1_INTEGER
  - a2i_ASN1_INTEGER
  - i2a_ASN1_ENUMERATED
  - a2i_ASN1_ENUMERATED
  source_file: /src/openssl-1.1.1g/crypto/asn1/f_int.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_buf_print
  - ASN1_bn_print
  source_file: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASN1_BUF_PRINT_WIDTH
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c
      type_or_value: '15'
    - item_type: preproc_def
      name: ASN1_PRINT_MAX_INDENT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/asn1/t_pkey.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_GEN_STR
  - ASN1_generate_nconf
  - ASN1_generate_v3
  - generate_v3
  - asn1_cb
  - parse_tagging
  - asn1_multi
  - append_exp
  - asn1_str2tag
  - asn1_str2type
  - bitstr_cb
  - mask_cb
  - ASN1_str2mask
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASN1_GEN_FLAG
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: ASN1_GEN_FLAG_IMP
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: (ASN1_GEN_FLAG|1)
    - item_type: preproc_def
      name: ASN1_GEN_FLAG_EXP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: (ASN1_GEN_FLAG|2)
    - item_type: preproc_def
      name: ASN1_GEN_FLAG_TAG
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: (ASN1_GEN_FLAG|3)
    - item_type: preproc_def
      name: ASN1_GEN_FLAG_BITWRAP
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: (ASN1_GEN_FLAG|4)
    - item_type: preproc_def
      name: ASN1_GEN_FLAG_OCTWRAP
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: (ASN1_GEN_FLAG|5)
    - item_type: preproc_def
      name: ASN1_GEN_FLAG_SEQWRAP
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: (ASN1_GEN_FLAG|6)
    - item_type: preproc_def
      name: ASN1_GEN_FLAG_SETWRAP
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: (ASN1_GEN_FLAG|7)
    - item_type: preproc_def
      name: ASN1_GEN_FLAG_FORMAT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: (ASN1_GEN_FLAG|8)
    - item_type: preproc_def
      name: ASN1_FLAG_EXP_MAX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: '20'
    - item_type: preproc_def
      name: ASN1_GEN_SEQ_MAX_DEPTH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: '50'
    - item_type: preproc_def
      name: ASN1_GEN_FORMAT_ASCII
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ASN1_GEN_FORMAT_UTF8
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ASN1_GEN_FORMAT_HEX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: '3'
    - item_type: preproc_def
      name: ASN1_GEN_FORMAT_BITLIST
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*strnam'
        type: char
      - name: len
        type: int
      - name: tag
        type: int
      item_type: struct
      name: tag_name_st
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    - fields:
      - name: exp_tag
        type: int
      - name: exp_class
        type: int
      - name: exp_constructed
        type: int
      - name: exp_pad
        type: int
      - name: exp_len
        type: long
      item_type: struct
      name: tag_exp_type
      pos:
        line_end: 52
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    - fields:
      - name: imp_tag
        type: int
      - name: imp_class
        type: int
      - name: utype
        type: int
      - name: format
        type: int
      - name: '*str'
        type: char
      - name: exp_list[ASN1_FLAG_EXP_MAX]
        type: tag_exp_type
      - name: exp_count
        type: int
      item_type: struct
      name: tag_exp_arg
      pos:
        line_end: 62
        line_start: 54
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_gen.c
    typedefs: []
    union: []
- function_names:
  - bn_new
  - bn_secure_new
  - bn_free
  - bn_i2c
  - bn_c2i
  - bn_secure_c2i
  - bn_print
  source_file: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BN_SENSITIVE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/asn1/x_bignum.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_mbstring_copy
  - ASN1_mbstring_ncopy
  - traverse_string
  - in_utf8
  - out_utf8
  - type_str
  - cpy_asc
  - cpy_bmp
  - cpy_univ
  - cpy_utf8
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_mbstr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*it'
        type: ASN1_ITEM
      - name: '*tt'
        type: ASN1_TEMPLATE
      - name: flags
        type: unsigned long
      - name: skidx
        type: int
      - name: depth
        type: int
      - name: '*sname'
        type: char
      - name: prim_type
        type: int
      - name: '**field'
        type: ASN1_VALUE
      - name: (*scan_cb) (ASN1_SCTX *ctx)
        type: int
      - name: '*app_data'
        type: void
      item_type: struct
      name: asn1_sctx_st
      pos:
        line_end: 38
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_local.h
    typedefs:
    - item_type: typedef
      name: MIME_PARAM
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_local.h
      type: mime_param_st
    - item_type: typedef
      name: MIME_HEADER
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_local.h
      type: mime_header_st
    union: []
- function_names:
  - asn1_generalizedtime_to_tm
  - ASN1_GENERALIZEDTIME_check
  - ASN1_GENERALIZEDTIME_set_string
  - ASN1_GENERALIZEDTIME_set
  - ASN1_GENERALIZEDTIME_adj
  - ASN1_GENERALIZEDTIME_print
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_gentm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_i2d_fp
  - ASN1_i2d_bio
  - ASN1_item_i2d_fp
  - ASN1_item_i2d_bio
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_i2d_fp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_f_asn1
  - asn1_bio_new
  - asn1_bio_init
  - asn1_bio_free
  - asn1_bio_write
  - asn1_bio_flush_ex
  - asn1_bio_setup_ex
  - asn1_bio_read
  - asn1_bio_puts
  - asn1_bio_gets
  - asn1_bio_callback_ctrl
  - asn1_bio_ctrl
  - asn1_bio_set_ex
  - asn1_bio_get_ex
  - BIO_asn1_set_prefix
  - BIO_asn1_get_prefix
  - BIO_asn1_set_suffix
  - BIO_asn1_get_suffix
  source_file: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_ASN1_BUF_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
      type_or_value: '20'
    structs:
    - fields:
      - name: '*ex_func'
        type: asn1_ps_func
      - name: '*ex_free_func'
        type: asn1_ps_func
      item_type: struct
      name: BIO_ASN1_EX_FUNCS_st
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    - fields:
      - name: state
        type: asn1_bio_state_t
      - name: '*buf'
        type: unsigned char
      - name: bufsize
        type: int
      - name: bufpos
        type: int
      - name: buflen
        type: int
      - name: copylen
        type: int
      - name: asn1_class
        type: int
      - name: '*prefix'
        type: asn1_ps_func
      - name: '*ex_buf'
        type: unsigned char
      - name: ex_len
        type: int
      - name: ex_pos
        type: int
      - name: '*ex_arg'
        type: void
      item_type: struct
      name: BIO_ASN1_BUF_CTX_t
      pos:
        line_end: 59
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/asn1/bio_asn1.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/asn1/n_pkey.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: version
        type: int32_t
      - name: '*algor'
        type: X509_ALGOR
      - name: '*private_key'
        type: ASN1_OCTET_STRING
      item_type: struct
      name: netscape_pkey_st
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/asn1/n_pkey.c
    - fields:
      - name: '*os'
        type: ASN1_OCTET_STRING
      - name: '*enckey'
        type: X509_SIG
      item_type: struct
      name: netscape_encrypted_pkey_st
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/asn1/n_pkey.c
    typedefs: []
    union: []
- function_names:
  - ASN1_BIT_STRING_name_print
  - ASN1_BIT_STRING_set_asc
  - ASN1_BIT_STRING_num_asc
  source_file: /src/openssl-1.1.1g/crypto/asn1/t_bitst.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ub_name
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '32768'
    - item_type: preproc_def
      name: ub_common_name
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '64'
    - item_type: preproc_def
      name: ub_locality_name
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '128'
    - item_type: preproc_def
      name: ub_state_name
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '128'
    - item_type: preproc_def
      name: ub_organization_name
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '64'
    - item_type: preproc_def
      name: ub_organization_unit_name
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '64'
    - item_type: preproc_def
      name: ub_title
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '64'
    - item_type: preproc_def
      name: ub_email_address
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '128'
    - item_type: preproc_def
      name: ub_serial_number
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '64'
    - item_type: preproc_def
      name: ub_rfc822_mailbox
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/asn1/tbl_standard.h
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - NETSCAPE_SPKI_print
  source_file: /src/openssl-1.1.1g/crypto/asn1/t_spki.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_verify
  - ASN1_item_verify
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_verify.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - stbl_module_init
  - stbl_module_finish
  - ASN1_add_stable_module
  - do_tcreate
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mstbl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_item_pack
  - ASN1_item_unpack
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn_pack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_item_list.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oid_module_init
  - oid_module_finish
  - ASN1_add_oid_module
  - do_create
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn_moid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2d_PrivateKey
  source_file: /src/openssl-1.1.1g/crypto/asn1/i2d_pr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nsseq_cb
  source_file: /src/openssl-1.1.1g/crypto/asn1/nsseq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_item_ndef_i2d
  - ASN1_item_i2d
  - asn1_item_flags_i2d
  - ASN1_item_ex_i2d
  - asn1_template_ex_i2d
  - der_cmp
  - asn1_i2d_ex_primitive
  - asn1_ex_i2c
  source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: unsigned char
      - name: length
        type: int
      - name: '*field'
        type: ASN1_VALUE
      item_type: struct
      name: DER_ENC
      pos:
        line_end: 354
        line_start: 350
        source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_enc.c
    typedefs: []
    union: []
- function_names:
  - ASN1_OCTET_STRING_dup
  - ASN1_OCTET_STRING_cmp
  - ASN1_OCTET_STRING_set
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_octet.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _asn1_check_infinite_end
  - ASN1_check_infinite_end
  - ASN1_const_check_infinite_end
  - ASN1_get_object
  - asn1_get_length
  - ASN1_put_object
  - ASN1_put_eoc
  - asn1_put_length
  - ASN1_object_size
  - ASN1_STRING_copy
  - ASN1_STRING_dup
  - ASN1_STRING_set
  - ASN1_STRING_set0
  - ASN1_STRING_new
  - ASN1_STRING_type_new
  - asn1_string_embed_free
  - ASN1_STRING_free
  - ASN1_STRING_clear_free
  - ASN1_STRING_cmp
  - ASN1_STRING_length
  - ASN1_STRING_length_set
  - ASN1_STRING_type
  - ASN1_STRING_get0_data
  - ASN1_STRING_data
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2d_ASN1_bio_stream
  - B64_write_ASN1
  - PEM_write_bio_ASN1_stream
  - b64_read_asn1
  - SMIME_write_ASN1
  - asn1_output_data
  - SMIME_read_ASN1
  - SMIME_crlf_copy
  - SMIME_text
  - multi_split
  - mime_parse_hdr
  - strip_ends
  - strip_start
  - strip_end
  - mime_hdr_new
  - mime_hdr_addparam
  - mime_hdr_cmp
  - mime_param_cmp
  - mime_hdr_find
  - mime_param_find
  - mime_hdr_free
  - mime_param_free
  - mime_bound_check
  - strip_eol
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SMLEN
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: MIME_INVALID
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MIME_START
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MIME_TYPE
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MIME_NAME
      pos:
        line_end: 627
        line_start: 626
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
      type_or_value: '3'
    - item_type: preproc_def
      name: MIME_VALUE
      pos:
        line_end: 628
        line_start: 627
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
      type_or_value: '4'
    - item_type: preproc_def
      name: MIME_QUOTE
      pos:
        line_end: 629
        line_start: 628
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MIME_COMMENT
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
      type_or_value: '6'
    structs:
    - fields:
      - name: '*param_name'
        type: char
      - name: '*param_value'
        type: char
      item_type: struct
      name: mime_param_st
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    - fields:
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      - name: '*params'
        type: STACK_OF
      item_type: struct
      name: mime_header_st
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/asn1/asn_mime.c
    typedefs: []
    union: []
- function_names:
  - IMPLEMENT_ASN1_STRING_FUNCTIONS
  source_file: /src/openssl-1.1.1g/crypto/asn1/tasn_typ.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_BIT_STRING_set
  - i2c_ASN1_BIT_STRING
  - c2i_ASN1_BIT_STRING
  - ASN1_BIT_STRING_set_bit
  - ASN1_BIT_STRING_get_bit
  - ASN1_BIT_STRING_check
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_bitstr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_ASN1_strings
  source_file: /src/openssl-1.1.1g/crypto/asn1/asn1_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASN1_INTEGER_dup
  - ASN1_INTEGER_cmp
  - twos_complement
  - i2c_ibuf
  - c2i_ibuf
  - i2c_ASN1_INTEGER
  - asn1_get_uint64
  - asn1_put_uint64
  - asn1_get_int64
  - c2i_ASN1_INTEGER
  - asn1_string_get_int64
  - asn1_string_set_int64
  - asn1_string_get_uint64
  - asn1_string_set_uint64
  - d2i_ASN1_UINTEGER
  - bn_to_asn1_string
  - asn1_string_to_bn
  - ASN1_INTEGER_get_int64
  - ASN1_INTEGER_set_int64
  - ASN1_INTEGER_get_uint64
  - ASN1_INTEGER_set_uint64
  - ASN1_INTEGER_set
  - ASN1_INTEGER_get
  - BN_to_ASN1_INTEGER
  - ASN1_INTEGER_to_BN
  - ASN1_ENUMERATED_get_int64
  - ASN1_ENUMERATED_set_int64
  - ASN1_ENUMERATED_set
  - ASN1_ENUMERATED_get
  - BN_to_ASN1_ENUMERATED
  - ASN1_ENUMERATED_to_BN
  - c2i_uint64_int
  - i2c_uint64_int
  source_file: /src/openssl-1.1.1g/crypto/asn1/a_int.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ABS_INT64_MIN
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/openssl-1.1.1g/crypto/asn1/a_int.c
      type_or_value: ((uint64_t)INT64_MAX + (-(INT64_MIN + INT64_MAX)))
    structs: []
    typedefs: []
    union: []
- function_names:
  - BF_cfb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/bf/bf_cfb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - n2ln
  - l2nn
  - n2l
  - l2n
  - BF_ENC
  source_file: /src/openssl-1.1.1g/crypto/bf/bf_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/bf/bf_pi.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BF_options
  - BF_ecb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/bf/bf_ecb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BF_set_key
  source_file: /src/openssl-1.1.1g/crypto/bf/bf_skey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BF_encrypt
  - BF_decrypt
  - BF_cbc_encrypt
  source_file: /src/openssl-1.1.1g/crypto/bf/bf_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BF_ofb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/bf/bf_ofb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_load_builtin_engines
  - ENGINE_setup_bsd_cryptodev
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_all.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bind_helper
  - engine_openssl
  - engine_load_openssl_int
  - bind_fn
  - test
  - test_rc4_init_key
  - test_rc4_cipher
  - test_r4_cipher
  - test_r4_cipher_destroy
  - test_r4_40_cipher
  - test_r4_40_cipher_destroy
  - test_cipher_nids
  - openssl_ciphers
  - test_sha1_init
  - test_sha1_update
  - test_sha1_final
  - test_sha_md
  - test_sha_md_destroy
  - test_digest_nids
  - openssl_digests
  - openssl_load_privkey
  - ossl_hmac_init
  - ossl_hmac_copy
  - ossl_hmac_cleanup
  - ossl_hmac_keygen
  - ossl_int_update
  - ossl_hmac_signctx_init
  - ossl_hmac_signctx
  - ossl_hmac_ctrl
  - ossl_hmac_ctrl_str
  - ossl_register_hmac_meth
  - ossl_pkey_meths
  - openssl_destroy
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_RC4_KEY_SIZE
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
      type_or_value: '16'
    structs:
    - fields:
      - name: key[TEST_RC4_KEY_SIZE]
        type: unsigned char
      - name: ks
        type: RC4_KEY
      item_type: struct
      name: TEST_RC4_KEY
      pos:
        line_end: 188
        line_start: 185
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    - fields:
      - name: '*md'
        type: EVP_MD
      - name: ktmp
        type: ASN1_OCTET_STRING
      - name: '*ctx'
        type: HMAC_CTX
      item_type: struct
      name: OSSL_HMAC_PKEY_CTX
      pos:
        line_end: 429
        line_start: 425
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_openssl.c
    typedefs: []
    union: []
- function_names:
  - get_random_bytes
  - random_status
  - rdrand_init
  - bind_helper
  - ENGINE_rdrand
  - engine_load_rdrand_int
  - engine_load_rdrand_int
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_rdrand.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_unregister_pkey_meths
  - engine_unregister_all_pkey_meths
  - ENGINE_register_pkey_meths
  - ENGINE_register_all_pkey_meths
  - ENGINE_set_default_pkey_meths
  - ENGINE_get_pkey_meth_engine
  - ENGINE_get_pkey_meth
  - ENGINE_get_pkey_meths
  - ENGINE_set_pkey_meths
  - engine_pkey_meths_free
  source_file: /src/openssl-1.1.1g/crypto/engine/tb_pkmeth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_unregister_digests
  - engine_unregister_all_digests
  - ENGINE_register_digests
  - ENGINE_register_all_digests
  - ENGINE_set_default_digests
  - ENGINE_get_digest_engine
  - ENGINE_get_digest
  - ENGINE_get_digests
  - ENGINE_set_digests
  source_file: /src/openssl-1.1.1g/crypto/engine/tb_digest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEFINE_RUN_ONCE
  - ENGINE_new
  - engine_set_all_null
  - engine_free_util
  - ENGINE_free
  - int_cleanup_check
  - int_cleanup_item
  - engine_cleanup_add_first
  - engine_cleanup_add_last
  - engine_cleanup_cb_free
  - engine_cleanup_int
  - ENGINE_set_ex_data
  - ENGINE_get_ex_data
  - ENGINE_set_id
  - ENGINE_set_name
  - ENGINE_set_destroy_function
  - ENGINE_set_init_function
  - ENGINE_set_finish_function
  - ENGINE_set_ctrl_function
  - ENGINE_set_flags
  - ENGINE_set_cmd_defns
  - ENGINE_get_id
  - ENGINE_get_name
  - ENGINE_get_destroy_function
  - ENGINE_get_init_function
  - ENGINE_get_finish_function
  - ENGINE_get_ctrl_function
  - ENGINE_get_flags
  - ENGINE_get_cmd_defns
  - ENGINE_get_static_state
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_unregister_DSA
  - engine_unregister_all_DSA
  - ENGINE_register_DSA
  - ENGINE_register_all_DSA
  - ENGINE_set_default_DSA
  - ENGINE_get_default_DSA
  - ENGINE_get_DSA
  - ENGINE_set_DSA
  source_file: /src/openssl-1.1.1g/crypto/engine/tb_dsa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - int_ctrl_cmd_is_null
  - int_ctrl_cmd_by_name
  - int_ctrl_cmd_by_num
  - int_ctrl_helper
  - ENGINE_ctrl
  - ENGINE_cmd_is_executable
  - ENGINE_ctrl_cmd
  - ENGINE_ctrl_cmd_string
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_ctrl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_unregister_RSA
  - engine_unregister_all_RSA
  - ENGINE_register_RSA
  - ENGINE_register_all_RSA
  - ENGINE_set_default_RSA
  - ENGINE_get_default_RSA
  - ENGINE_get_RSA
  - ENGINE_set_RSA
  source_file: /src/openssl-1.1.1g/crypto/engine/tb_rsa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - skip_dot
  - int_engine_init
  - int_engine_configure
  - int_engine_module_init
  - int_engine_module_finish
  - ENGINE_add_conf_module
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_cnf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - engine_ref_debug
  - engine_table_select
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cb'
        type: ENGINE_CLEANUP_CB
      item_type: struct
      name: st_engine_cleanup_item
      pos:
        line_end: 52
        line_start: 50
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_local.h
    - fields:
      - name: '*id'
        type: char
      - name: '*name'
        type: char
      - name: '*rsa_meth'
        type: RSA_METHOD
      - name: '*dsa_meth'
        type: DSA_METHOD
      - name: '*dh_meth'
        type: DH_METHOD
      - name: '*ec_meth'
        type: EC_KEY_METHOD
      - name: '*rand_meth'
        type: RAND_METHOD
      - name: ciphers
        type: ENGINE_CIPHERS_PTR
      - name: digests
        type: ENGINE_DIGESTS_PTR
      - name: pkey_meths
        type: ENGINE_PKEY_METHS_PTR
      - name: pkey_asn1_meths
        type: ENGINE_PKEY_ASN1_METHS_PTR
      - name: destroy
        type: ENGINE_GEN_INT_FUNC_PTR
      - name: init
        type: ENGINE_GEN_INT_FUNC_PTR
      - name: finish
        type: ENGINE_GEN_INT_FUNC_PTR
      - name: ctrl
        type: ENGINE_CTRL_FUNC_PTR
      - name: load_privkey
        type: ENGINE_LOAD_KEY_PTR
      - name: load_pubkey
        type: ENGINE_LOAD_KEY_PTR
      - name: load_ssl_client_cert
        type: ENGINE_SSL_CLIENT_CERT_PTR
      - name: '*cmd_defns'
        type: ENGINE_CMD_DEFN
      - name: flags
        type: int
      - name: struct_ref
        type: CRYPTO_REF_COUNT
      - name: funct_ref
        type: int
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: '*prev'
        type: struct engine_st
      - name: '*next'
        type: struct engine_st
      item_type: struct
      name: engine_st
      pos:
        line_end: 164
        line_start: 124
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_local.h
    typedefs:
    - item_type: typedef
      name: (ENGINE_CLEANUP_CB) (void)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_local.h
      type: void
    - item_type: typedef
      name: ENGINE_TABLE
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_local.h
      type: st_engine_table
    - item_type: typedef
      name: "(engine_table_doall_cb) (int nid, STACK_OF(ENGINE) *sk,\n                                      ENGINE
        *def, void *arg)"
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_local.h
      type: void
    - item_type: typedef
      name: ENGINE_PILE
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_local.h
      type: st_engine_pile
    union: []
- function_names:
  - int_free_str
  - dynamic_data_ctx_free_func
  - dynamic_set_data_ctx
  - dynamic_get_data_ctx
  - engine_dynamic
  - engine_load_dynamic_int
  - dynamic_init
  - dynamic_finish
  - dynamic_ctrl
  - int_load
  - dynamic_load
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DYNAMIC_CMD_SO_PATH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
      type_or_value: ENGINE_CMD_BASE
    - item_type: preproc_def
      name: DYNAMIC_CMD_NO_VCHECK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
      type_or_value: (ENGINE_CMD_BASE + 1)
    - item_type: preproc_def
      name: DYNAMIC_CMD_ID
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
      type_or_value: (ENGINE_CMD_BASE + 2)
    - item_type: preproc_def
      name: DYNAMIC_CMD_LIST_ADD
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
      type_or_value: (ENGINE_CMD_BASE + 3)
    - item_type: preproc_def
      name: DYNAMIC_CMD_DIR_LOAD
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
      type_or_value: (ENGINE_CMD_BASE + 4)
    - item_type: preproc_def
      name: DYNAMIC_CMD_DIR_ADD
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
      type_or_value: (ENGINE_CMD_BASE + 5)
    - item_type: preproc_def
      name: DYNAMIC_CMD_LOAD
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
      type_or_value: (ENGINE_CMD_BASE + 6)
    structs:
    - fields:
      - name: '*dynamic_dso'
        type: DSO
      - name: v_check
        type: dynamic_v_check_fn
      - name: bind_engine
        type: dynamic_bind_engine
      - name: '*DYNAMIC_LIBNAME'
        type: char
      - name: no_vcheck
        type: int
      - name: '*engine_id'
        type: char
      - name: list_add_value
        type: int
      - name: '*DYNAMIC_F1'
        type: char
      - name: '*DYNAMIC_F2'
        type: char
      - name: dir_load
        type: int
      - name: '*dirs'
        type: STACK_OF
      item_type: struct
      name: st_dynamic_data_ctx
      pos:
        line_end: 111
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
    typedefs:
    - item_type: typedef
      name: dynamic_data_ctx
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_dyn.c
      type: st_dynamic_data_ctx
    union: []
- function_names:
  - ENGINE_get_table_flags
  - ENGINE_set_table_flags
  - engine_pile_hash
  - engine_pile_cmp
  - int_table_check
  - engine_table_register
  - int_unregister_cb
  - engine_table_unregister
  - int_cleanup_cb_doall
  - engine_table_cleanup
  - engine_table_select_tmp
  - int_dall
  - engine_table_doall
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_table.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nid
        type: int
      - name: '*sk'
        type: STACK_OF
      - name: '*funct'
        type: ENGINE
      - name: uptodate
        type: int
      item_type: struct
      name: st_engine_pile
      pos:
        line_end: 26
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    - fields:
      - name: (ENGINE_PILE)
        type: LHASH_OF
      item_type: struct
      name: st_engine_table
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    - fields:
      - name: '*cb'
        type: engine_table_doall_cb
      - name: '*arg'
        type: void
      item_type: struct
      name: st_engine_pile_doall
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_table.c
    typedefs: []
    union: []
- function_names:
  - engine_list_cleanup
  - engine_list_add
  - engine_list_remove
  - ENGINE_get_first
  - ENGINE_get_last
  - ENGINE_get_next
  - ENGINE_get_prev
  - ENGINE_add
  - ENGINE_remove
  - engine_cpy
  - ENGINE_by_id
  - ENGINE_up_ref
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_ENGINE_strings
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_unregister_DH
  - engine_unregister_all_DH
  - ENGINE_register_DH
  - ENGINE_register_all_DH
  - ENGINE_set_default_DH
  - ENGINE_get_default_DH
  - ENGINE_get_DH
  - ENGINE_set_DH
  source_file: /src/openssl-1.1.1g/crypto/engine/tb_dh.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_set_default
  - int_def_cb
  - ENGINE_set_default_string
  - ENGINE_register_complete
  - ENGINE_register_all_complete
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_fat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_unregister_RAND
  - engine_unregister_all_RAND
  - ENGINE_register_RAND
  - ENGINE_register_all_RAND
  - ENGINE_set_default_RAND
  - ENGINE_get_default_RAND
  - ENGINE_get_RAND
  - ENGINE_set_RAND
  source_file: /src/openssl-1.1.1g/crypto/engine/tb_rand.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_set_load_privkey_function
  - ENGINE_set_load_pubkey_function
  - ENGINE_set_load_ssl_client_cert_function
  - ENGINE_get_load_privkey_function
  - ENGINE_get_load_pubkey_function
  - ENGINE_get_ssl_client_cert_function
  - ENGINE_load_private_key
  - ENGINE_load_public_key
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_pkey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_unregister_ciphers
  - engine_unregister_all_ciphers
  - ENGINE_register_ciphers
  - ENGINE_register_all_ciphers
  - ENGINE_set_default_ciphers
  - ENGINE_get_cipher_engine
  - ENGINE_get_cipher
  - ENGINE_get_ciphers
  - ENGINE_set_ciphers
  source_file: /src/openssl-1.1.1g/crypto/engine/tb_cipher.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_unregister_EC
  - engine_unregister_all_EC
  - ENGINE_register_EC
  - ENGINE_register_all_EC
  - ENGINE_set_default_EC
  - ENGINE_get_default_EC
  - ENGINE_get_EC
  - ENGINE_set_EC
  source_file: /src/openssl-1.1.1g/crypto/engine/tb_eckey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clean_devcrypto_session
  - get_cipher_data_index
  - get_cipher_data
  - cipher_init
  - cipher_do_cipher
  - ctr_do_cipher
  - cipher_ctrl
  - cipher_cleanup
  - prepare_cipher_methods
  - get_cipher_method
  - get_cipher_nids
  - destroy_cipher_method
  - destroy_all_cipher_methods
  - devcrypto_ciphers
  - get_digest_data_index
  - get_digest_data
  - digest_init
  - digest_op
  - digest_update
  - digest_final
  - digest_copy
  - digest_cleanup
  - devcrypto_test_digest
  - prepare_digest_methods
  - get_digest_method
  - get_digest_nids
  - destroy_digest_method
  - destroy_all_digest_methods
  - devcrypto_digests
  - devcrypto_unload
  - engine_load_devcrypto_int
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sess
        type: struct session_op
      - name: op
        type: int
      - name: mode
        type: unsigned long
      - name: partial[EVP_MAX_BLOCK_LENGTH]
        type: unsigned char
      - name: blocksize
        type: unsigned int
      item_type: struct
      name: cipher_ctx
      pos:
        line_end: 66
        line_start: 58
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    - fields:
      - name: nid
        type: int
      - name: blocksize
        type: int
      - name: keylen
        type: int
      - name: ivlen
        type: int
      - name: flags
        type: int
      - name: devcryptoid
        type: int
      item_type: struct
      name: cipher_data_st
      pos:
        line_end: 75
        line_start: 68
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    - fields:
      - name: sess
        type: struct session_op
      - name: init_called
        type: int
      item_type: struct
      name: digest_ctx
      pos:
        line_end: 463
        line_start: 459
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    - fields:
      - name: nid
        type: int
      - name: blocksize
        type: int
      - name: digestlen
        type: int
      - name: devcryptoid
        type: int
      item_type: struct
      name: digest_data_st
      pos:
        line_end: 470
        line_start: 465
        source_file: /src/openssl-1.1.1g/crypto/engine/eng_devcrypto.c
    typedefs: []
    union: []
- function_names:
  - engine_unlocked_init
  - engine_unlocked_finish
  - ENGINE_init
  - ENGINE_finish
  source_file: /src/openssl-1.1.1g/crypto/engine/eng_init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENGINE_unregister_pkey_asn1_meths
  - engine_unregister_all_pkey_asn1_meths
  - ENGINE_register_pkey_asn1_meths
  - ENGINE_register_all_pkey_asn1_meths
  - ENGINE_set_default_pkey_asn1_meths
  - ENGINE_get_pkey_asn1_meth_engine
  - ENGINE_get_pkey_asn1_meth
  - ENGINE_get_pkey_asn1_meths
  - ENGINE_set_pkey_asn1_meths
  - engine_pkey_asn1_meths_free
  - ENGINE_get_pkey_asn1_meth_str
  - look_str_cb
  - ENGINE_pkey_asn1_find_str
  source_file: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*e'
        type: ENGINE
      - name: '*ameth'
        type: EVP_PKEY_ASN1_METHOD
      - name: '*str'
        type: char
      - name: len
        type: int
      item_type: struct
      name: ENGINE_FIND_STR
      pos:
        line_end: 162
        line_start: 157
        source_file: /src/openssl-1.1.1g/crypto/engine/tb_asnmth.c
    typedefs: []
    union: []
- function_names:
  - CONF_modules_load
  - CONF_modules_load_file
  - module_run
  - module_load_dso
  - module_add
  - module_find
  - module_init
  - CONF_modules_unload
  - module_free
  - CONF_modules_finish
  - module_finish
  - CONF_module_add
  - conf_modules_free_int
  - CONF_imodule_get_name
  - CONF_imodule_get_value
  - CONF_imodule_get_usr_data
  - CONF_imodule_set_usr_data
  - CONF_imodule_get_module
  - CONF_imodule_get_flags
  - CONF_imodule_set_flags
  - CONF_module_get_usr_data
  - CONF_module_set_usr_data
  - CONF_get1_default_config_file
  - CONF_parse_list
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DSO_mod_init_name
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
      type_or_value: '"OPENSSL_init"'
    - item_type: preproc_def
      name: DSO_mod_finish_name
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
      type_or_value: '"OPENSSL_finish"'
    structs:
    - fields:
      - name: '*dso'
        type: DSO
      - name: '*name'
        type: char
      - name: '*init'
        type: conf_init_func
      - name: '*finish'
        type: conf_finish_func
      - name: links
        type: int
      - name: '*usr_data'
        type: void
      item_type: struct
      name: conf_module_st
      pos:
        line_end: 37
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    - fields:
      - name: '*pmod'
        type: CONF_MODULE
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      - name: flags
        type: unsigned long
      - name: '*usr_data'
        type: void
      item_type: struct
      name: conf_imodule_st
      pos:
        line_end: 51
        line_start: 45
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_mod.c
    typedefs: []
    union: []
- function_names:
  - ssl_module_free
  - ssl_module_init
  - conf_ssl_get
  - conf_ssl_name_find
  - conf_ssl_get_cmd
  - conf_add_ssl_module
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*cmds'
        type: SSL_CONF_CMD
      - name: cmd_count
        type: size_t
      item_type: struct
      name: ssl_conf_name_st
      pos:
        line_end: 28
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c
    - fields:
      - name: '*cmd'
        type: char
      - name: '*arg'
        type: char
      item_type: struct
      name: ssl_conf_cmd_st
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_ssl.c
    typedefs: []
    union: []
- function_names:
  - CONF_set_default_method
  - CONF_get_string
  - NCONF_new
  - NCONF_free
  - NCONF_free_data
  - NCONF_load
  - NCONF_load_fp
  - NCONF_load_bio
  - NCONF_get_string
  - default_is_number
  - default_to_int
  - NCONF_get_number_e
  - NCONF_dump_fp
  - NCONF_dump_bio
  - OPENSSL_INIT_new
  - OPENSSL_INIT_set_config_filename
  - OPENSSL_INIT_set_config_file_flags
  - OPENSSL_INIT_set_config_appname
  - OPENSSL_INIT_free
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPENSSL_config
  - openssl_config_int
  - openssl_no_config_int
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_sap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: strdup
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_sap.c
      type_or_value: _strdup
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPENSSL_load_builtin_modules
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_mall.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_COMMENT
  - IS_FCOMMENT
  - IS_EOF
  - IS_ESC
  - IS_NUMBER
  - IS_WS
  - IS_ALNUM
  - IS_ALNUM_PUNCT
  - IS_QUOTE
  - IS_DQUOTE
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONF_NUMBER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONF_UPPER
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CONF_LOWER
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CONF_UNDER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '256'
    - item_type: preproc_def
      name: CONF_PUNCT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '512'
    - item_type: preproc_def
      name: CONF_WS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CONF_ESC
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '32'
    - item_type: preproc_def
      name: CONF_QUOTE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CONF_DQUOTE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: CONF_COMMENT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '128'
    - item_type: preproc_def
      name: CONF_FCOMMENT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: CONF_EOF
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: '8'
    - item_type: preproc_def
      name: CONF_ALPHA
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: (CONF_UPPER|CONF_LOWER)
    - item_type: preproc_def
      name: CONF_ALNUM
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: (CONF_ALPHA|CONF_NUMBER|CONF_UNDER)
    - item_type: preproc_def
      name: CONF_ALNUM_PUNCT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.h
      type_or_value: (CONF_ALPHA|CONF_NUMBER|CONF_UNDER|CONF_PUNCT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - S_ISDIR
  - scan_esc
  - NCONF_default
  - NCONF_WIN32
  - def_create
  - def_init_default
  - def_init_WIN32
  - def_destroy
  - def_destroy_data
  - def_load
  - def_load_bio
  - clear_comments
  - str_copy
  - process_include
  - get_next_file
  - is_keytype
  - eat_ws
  - trim_ws
  - eat_alpha_numeric
  - scan_quote
  - scan_dquote
  - dump_value_doall_arg
  - def_dump
  - def_is_number
  - def_to_int
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.c
      type_or_value: _stat
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.c
      type_or_value: _stricmp
    - item_type: preproc_def
      name: MAX_CONF_VALUE_LENGTH
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: CONFBUFSIZE
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_def.c
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _CONF_get_section
  - _CONF_add_string
  - _CONF_get_string
  - conf_value_hash
  - conf_value_cmp
  - _CONF_new_data
  - _CONF_free_data
  - value_free_hash
  - value_free_stack_doall
  - _CONF_new_section
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_api.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (CONF_VALUE)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/openssl-1.1.1g/crypto/conf/conf_api.c
      type: LHASH_OF
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_CONF_strings
  source_file: /src/openssl-1.1.1g/crypto/conf/conf_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MD2
  source_file: /src/openssl-1.1.1g/crypto/md2/md2_one.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MD2_options
  - MD2_Init
  - MD2_Update
  - md2_block
  - MD2_Final
  source_file: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UCHAR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/md2/md2_dgst.c
      type_or_value: unsigned char
    structs: []
    typedefs: []
    union: []
- function_names:
  - HASH_MAKE_STRING
  - P0
  - P1
  - FF0
  - GG0
  - FF1
  - GG1
  - EXPAND
  - RND
  - R1
  - R2
  source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_LONG
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: SM3_WORD
    - item_type: preproc_def
      name: HASH_CTX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: SM3_CTX
    - item_type: preproc_def
      name: HASH_CBLOCK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: SM3_CBLOCK
    - item_type: preproc_def
      name: HASH_UPDATE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: sm3_update
    - item_type: preproc_def
      name: HASH_TRANSFORM
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: sm3_transform
    - item_type: preproc_def
      name: HASH_FINAL
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: sm3_final
    - item_type: preproc_def
      name: HASH_BLOCK_DATA_ORDER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: sm3_block_data_order
    - item_type: preproc_def
      name: SM3_A
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: 0x7380166fUL
    - item_type: preproc_def
      name: SM3_B
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: 0x4914b2b9UL
    - item_type: preproc_def
      name: SM3_C
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: 0x172442d7UL
    - item_type: preproc_def
      name: SM3_D
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: 0xda8a0600UL
    - item_type: preproc_def
      name: SM3_E
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: 0xa96f30bcUL
    - item_type: preproc_def
      name: SM3_F
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: 0x163138aaUL
    - item_type: preproc_def
      name: SM3_G
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: 0xe38dee4dUL
    - item_type: preproc_def
      name: SM3_H
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/openssl-1.1.1g/crypto/sm3/sm3_local.h
      type_or_value: 0xb0fb0e4eUL
    structs: []
    typedefs: []
    union: []
- function_names:
  - sm3_init
  - sm3_block_data_order
  source_file: /src/openssl-1.1.1g/crypto/sm3/sm3.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init
  - update
  - final
  - EVP_sm3
  source_file: /src/openssl-1.1.1g/crypto/sm3/m_sm3.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ct_base64_decode
  - SCT_new_from_base64
  - CTLOG_new_from_base64
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_b64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - n2s
  - s2n
  - l2n3
  - n2l8
  - l2n8
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SCT_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/ct/ct_local.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: MAX_SCT_LIST_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/ct/ct_local.h
      type_or_value: MAX_SCT_SIZE
    structs:
    - fields:
      - name: version
        type: sct_version_t
      - name: '*sct'
        type: unsigned char
      - name: sct_len
        type: size_t
      - name: '*log_id'
        type: unsigned char
      - name: log_id_len
        type: size_t
      - name: timestamp
        type: uint64_t
      - name: '*ext'
        type: unsigned char
      - name: ext_len
        type: size_t
      - name: hash_alg
        type: unsigned char
      - name: sig_alg
        type: unsigned char
      - name: '*sig'
        type: unsigned char
      - name: sig_len
        type: size_t
      - name: entry_type
        type: ct_log_entry_type_t
      - name: source
        type: sct_source_t
      - name: validation_status
        type: sct_validation_status_t
      item_type: struct
      name: sct_st
      pos:
        line_end: 82
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/ct/ct_local.h
    - fields:
      - name: '*pkey'
        type: EVP_PKEY
      - name: '*pkeyhash'
        type: unsigned char
      - name: pkeyhashlen
        type: size_t
      - name: '*ihash'
        type: unsigned char
      - name: ihashlen
        type: size_t
      - name: '*certder'
        type: unsigned char
      - name: certderlen
        type: size_t
      - name: '*preder'
        type: unsigned char
      - name: prederlen
        type: size_t
      - name: epoch_time_in_ms
        type: uint64_t
      item_type: struct
      name: sct_ctx_st
      pos:
        line_end: 102
        line_start: 85
        source_file: /src/openssl-1.1.1g/crypto/ct/ct_local.h
    - fields:
      - name: '*cert'
        type: X509
      - name: '*issuer'
        type: X509
      - name: '*log_store'
        type: CTLOG_STORE
      - name: epoch_time_in_ms
        type: uint64_t
      item_type: struct
      name: ct_policy_eval_ctx_st
      pos:
        line_end: 111
        line_start: 105
        source_file: /src/openssl-1.1.1g/crypto/ct/ct_local.h
    typedefs: []
    union: []
- function_names:
  - SCT_CTX_new
  - SCT_CTX_free
  - ct_x509_get_ext
  - ct_x509_cert_fixup
  - SCT_CTX_set1_cert
  - ct_public_key_hash
  - SCT_CTX_set1_issuer
  - SCT_CTX_set1_issuer_pubkey
  - SCT_CTX_set1_pubkey
  - SCT_CTX_set_time
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_sct_ctx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CT_POLICY_EVAL_CTX_new
  - CT_POLICY_EVAL_CTX_free
  - CT_POLICY_EVAL_CTX_set1_cert
  - CT_POLICY_EVAL_CTX_set1_issuer
  - CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
  - CT_POLICY_EVAL_CTX_set_time
  - CT_POLICY_EVAL_CTX_get0_cert
  - CT_POLICY_EVAL_CTX_get0_issuer
  - CT_POLICY_EVAL_CTX_get0_log_store
  - CT_POLICY_EVAL_CTX_get_time
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sct_ctx_update
  - SCT_CTX_verify
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c
  types:
    enum:
    - enumerators:
      - name: SIGNATURE_TYPE_NOT_SET
        value: '-1'
      - name: SIGNATURE_TYPE_CERT_TIMESTAMP
      - name: SIGNATURE_TYPE_TREE_HASH
      item_type: enum
      name: sct_signature_type_t
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/ct/ct_vfy.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SCT_signature_algorithms_print
  - timestamp_print
  - SCT_validation_status_string
  - SCT_print
  - SCT_LIST_print
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_prn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_CT_strings
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SCT_new
  - SCT_free
  - SCT_set_version
  - SCT_set_log_entry_type
  - SCT_set0_log_id
  - SCT_set1_log_id
  - SCT_set_timestamp
  - SCT_set_signature_nid
  - SCT_set0_extensions
  - SCT_set1_extensions
  - SCT_set0_signature
  - SCT_set1_signature
  - SCT_get_version
  - SCT_get_log_entry_type
  - SCT_get0_log_id
  - SCT_get_timestamp
  - SCT_get_signature_nid
  - SCT_get0_extensions
  - SCT_get0_signature
  - SCT_is_complete
  - SCT_signature_is_complete
  - SCT_get_source
  - SCT_set_source
  - SCT_get_validation_status
  - SCT_validate
  - SCT_LIST_validate
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_sct.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ctlog_store_load_ctx_new
  - ctlog_store_load_ctx_free
  - ct_v1_log_id_from_pkey
  - CTLOG_STORE_new
  - CTLOG_STORE_free
  - ctlog_new_from_conf
  - CTLOG_STORE_load_default_file
  - ctlog_store_load_log
  - CTLOG_STORE_load_file
  - CTLOG_new
  - CTLOG_free
  - CTLOG_get0_name
  - CTLOG_get0_log_id
  - CTLOG_get0_public_key
  - CTLOG_STORE_get0_log_by_id
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_log.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: log_id[CT_V1_HASHLEN]
        type: uint8_t
      - name: '*public_key'
        type: EVP_PKEY
      item_type: struct
      name: ctlog_st
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    - fields:
      - name: '*logs'
        type: STACK_OF
      item_type: struct
      name: ctlog_store_st
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    - fields:
      - name: '*log_store'
        type: CTLOG_STORE
      - name: '*conf'
        type: CONF
      - name: invalid_log_entries
        type: size_t
      item_type: struct
      name: ctlog_store_load_ctx_st
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/ct/ct_log.c
    typedefs: []
    union: []
- function_names:
  - o2i_SCT_signature
  - o2i_SCT
  - i2o_SCT_signature
  - i2o_SCT
  - i2o_SCT_LIST
  - i2d_SCT_LIST
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_oct.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2s_poison
  - s2i_poison
  source_file: /src/openssl-1.1.1g/crypto/ct/ct_x509v3.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - err_load_crypto_strings_int
  source_file: /src/openssl-1.1.1g/crypto/err/err_all.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - err_string_data_hash
  - err_string_data_cmp
  - int_err_get_item
  - build_SYS_str_reasons
  - err_clear_data
  - err_clear
  - ERR_STATE_free
  - DEFINE_RUN_ONCE_STATIC
  - err_cleanup
  - err_patch
  - err_load_strings
  - ERR_load_ERR_strings
  - ERR_load_strings
  - ERR_load_strings_const
  - ERR_unload_strings
  - err_free_strings_int
  - ERR_put_error
  - ERR_clear_error
  - ERR_get_error
  - ERR_get_error_line
  - ERR_get_error_line_data
  - ERR_peek_error
  - ERR_peek_error_line
  - ERR_peek_error_line_data
  - ERR_peek_last_error
  - ERR_peek_last_error_line
  - ERR_peek_last_error_line_data
  - get_error_values
  - ERR_error_string_n
  - ERR_error_string
  - ERR_lib_error_string
  - ERR_func_error_string
  - ERR_reason_error_string
  - err_delete_thread_state
  - ERR_remove_thread_state
  - ERR_remove_state
  - DEFINE_RUN_ONCE_STATIC
  - ERR_get_state
  - err_shelve_state
  - err_unshelve_state
  - ERR_get_next_error_library
  - err_set_error_data_int
  - ERR_set_error_data
  - ERR_add_error_data
  - ERR_add_error_vdata
  - ERR_set_mark
  - ERR_pop_to_mark
  - ERR_clear_last_mark
  - err_clear_last_constant_time
  source_file: /src/openssl-1.1.1g/crypto/err/err.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPACE_SYS_STR_REASONS
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/openssl-1.1.1g/crypto/err/err.c
      type_or_value: 8 * 1024
    - item_type: preproc_def
      name: NUM_SYS_STR_REASONS
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/openssl-1.1.1g/crypto/err/err.c
      type_or_value: '127'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_print_errors_cb
  - print_bio
  - ERR_print_errors
  - ERR_print_errors_fp
  source_file: /src/openssl-1.1.1g/crypto/err/err_prn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: tid
        type: CRYPTO_THREAD_ID
      - name: ltid
        type: unsigned long
      item_type: union
      name: tid
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/err/err_prn.c
- function_names:
  - TS_RESP_print_bio
  - TS_STATUS_INFO_print_bio
  - ts_status_map_print
  - TS_TST_INFO_print_bio
  - ts_ACCURACY_print_bio
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bit
        type: int
      - name: '*text'
        type: char
      item_type: struct
      name: status_map_st
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_rsp_print.c
    typedefs: []
    union: []
- function_names:
  - TS_ASN1_INTEGER_print_bio
  - TS_OBJ_print_bio
  - TS_ext_print_bio
  - TS_X509_ALGOR_print_bio
  - TS_MSG_IMPRINT_print_bio
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - d2i_TS_MSG_IMPRINT_bio
  - i2d_TS_MSG_IMPRINT_bio
  - d2i_TS_MSG_IMPRINT_fp
  - i2d_TS_MSG_IMPRINT_fp
  - d2i_TS_REQ_bio
  - i2d_TS_REQ_bio
  - d2i_TS_REQ_fp
  - i2d_TS_REQ_fp
  - d2i_TS_TST_INFO_bio
  - i2d_TS_TST_INFO_bio
  - d2i_TS_TST_INFO_fp
  - i2d_TS_TST_INFO_fp
  - ts_resp_set_tst_info
  - ts_resp_cb
  - d2i_TS_RESP_bio
  - i2d_TS_RESP_bio
  - d2i_TS_RESP_fp
  - i2d_TS_RESP_fp
  - PKCS7_to_TS_TST_INFO
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_asn1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TS_CONF_load_cert
  - TS_CONF_load_key
  - ts_CONF_lookup_fail
  - ts_CONF_invalid
  - TS_CONF_get_tsa_section
  - TS_CONF_set_serial
  - TS_CONF_set_crypto_device
  - TS_CONF_set_default_engine
  - TS_CONF_set_signer_cert
  - TS_CONF_set_certs
  - TS_CONF_set_signer_key
  - TS_CONF_set_signer_digest
  - TS_CONF_set_def_policy
  - TS_CONF_set_policies
  - TS_CONF_set_digests
  - TS_CONF_set_accuracy
  - TS_CONF_set_clock_precision_digits
  - ts_CONF_add_flag
  - TS_CONF_set_ordering
  - TS_CONF_set_tsa_name
  - TS_CONF_set_ess_cert_id_chain
  - TS_CONF_set_ess_cert_id_digest
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BASE_SECTION
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"tsa"'
    - item_type: preproc_def
      name: ENV_DEFAULT_TSA
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"default_tsa"'
    - item_type: preproc_def
      name: ENV_SERIAL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"serial"'
    - item_type: preproc_def
      name: ENV_CRYPTO_DEVICE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"crypto_device"'
    - item_type: preproc_def
      name: ENV_SIGNER_CERT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"signer_cert"'
    - item_type: preproc_def
      name: ENV_CERTS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"certs"'
    - item_type: preproc_def
      name: ENV_SIGNER_KEY
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"signer_key"'
    - item_type: preproc_def
      name: ENV_SIGNER_DIGEST
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"signer_digest"'
    - item_type: preproc_def
      name: ENV_DEFAULT_POLICY
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"default_policy"'
    - item_type: preproc_def
      name: ENV_OTHER_POLICIES
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"other_policies"'
    - item_type: preproc_def
      name: ENV_DIGESTS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"digests"'
    - item_type: preproc_def
      name: ENV_ACCURACY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"accuracy"'
    - item_type: preproc_def
      name: ENV_ORDERING
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"ordering"'
    - item_type: preproc_def
      name: ENV_TSA_NAME
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"tsa_name"'
    - item_type: preproc_def
      name: ENV_ESS_CERT_ID_CHAIN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"ess_cert_id_chain"'
    - item_type: preproc_def
      name: ENV_VALUE_SECS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"secs"'
    - item_type: preproc_def
      name: ENV_VALUE_MILLISECS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"millisecs"'
    - item_type: preproc_def
      name: ENV_VALUE_MICROSECS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"microsecs"'
    - item_type: preproc_def
      name: ENV_CLOCK_PRECISION_DIGITS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"clock_precision_digits"'
    - item_type: preproc_def
      name: ENV_VALUE_YES
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"yes"'
    - item_type: preproc_def
      name: ENV_VALUE_NO
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"no"'
    - item_type: preproc_def
      name: ENV_ESS_CERT_ID_ALG
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_conf.c
      type_or_value: '"ess_cert_id_alg"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TS_VERIFY_CTX_new
  - TS_VERIFY_CTX_init
  - TS_VERIFY_CTX_free
  - TS_VERIFY_CTX_add_flags
  - TS_VERIFY_CTX_set_flags
  - TS_VERIFY_CTX_set_data
  - TS_VERIFY_CTX_set_store
  - TS_VERIFY_CTX_set_imprint
  - TS_VERIFY_CTX_cleanup
  - TS_REQ_to_TS_VERIFY_CTX
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_verify_ctx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - def_serial_cb
  - def_time_cb
  - def_time_cb
  - def_extension_cb
  - TS_RESP_CTX_new
  - TS_RESP_CTX_free
  - TS_RESP_CTX_set_signer_cert
  - TS_RESP_CTX_set_signer_key
  - TS_RESP_CTX_set_signer_digest
  - TS_RESP_CTX_set_def_policy
  - TS_RESP_CTX_add_policy
  - TS_RESP_CTX_add_md
  - TS_RESP_CTX_accuracy_free
  - TS_RESP_CTX_set_accuracy
  - TS_RESP_CTX_add_flags
  - TS_RESP_CTX_set_serial_cb
  - TS_RESP_CTX_set_time_cb
  - TS_RESP_CTX_set_extension_cb
  - TS_RESP_CTX_set_status_info
  - TS_RESP_CTX_set_status_info_cond
  - TS_RESP_CTX_add_failure_info
  - TS_RESP_CTX_get_request
  - TS_RESP_CTX_get_tst_info
  - TS_RESP_CTX_set_clock_precision_digits
  - TS_RESP_create_response
  - ts_RESP_CTX_init
  - ts_RESP_CTX_cleanup
  - ts_RESP_check_request
  - ts_RESP_get_policy
  - ts_RESP_create_tst_info
  - ts_RESP_process_extensions
  - ts_RESP_sign
  - ess_SIGNING_CERT_new_init
  - ess_CERT_ID_new_init
  - ts_TST_INFO_content_new
  - ess_add_signing_cert
  - ess_signing_cert_v2_new_init
  - ess_cert_id_v2_new_init
  - ess_add_signing_cert_v2
  - TS_RESP_set_genTime_with_precision
  - TS_RESP_CTX_set_ess_cert_id_digest
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_rsp_sign.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TS_REQ_set_version
  - TS_REQ_get_version
  - TS_REQ_set_msg_imprint
  - TS_REQ_get_msg_imprint
  - TS_MSG_IMPRINT_set_algo
  - TS_MSG_IMPRINT_get_algo
  - TS_MSG_IMPRINT_set_msg
  - TS_MSG_IMPRINT_get_msg
  - TS_REQ_set_policy_id
  - TS_REQ_get_policy_id
  - TS_REQ_set_nonce
  - TS_REQ_get_nonce
  - TS_REQ_set_cert_req
  - TS_REQ_get_cert_req
  - TS_REQ_ext_free
  - TS_REQ_get_ext_count
  - TS_REQ_get_ext_by_NID
  - TS_REQ_get_ext_by_OBJ
  - TS_REQ_get_ext_by_critical
  - TS_REQ_get_ext
  - TS_REQ_delete_ext
  - TS_REQ_add_ext
  - TS_REQ_get_ext_d2i
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_req_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TS_RESP_set_status_info
  - TS_RESP_get_status_info
  - TS_RESP_set_tst_info
  - TS_RESP_get_token
  - TS_RESP_get_tst_info
  - TS_TST_INFO_set_version
  - TS_TST_INFO_get_version
  - TS_TST_INFO_set_policy_id
  - TS_TST_INFO_get_policy_id
  - TS_TST_INFO_set_msg_imprint
  - TS_TST_INFO_get_msg_imprint
  - TS_TST_INFO_set_serial
  - TS_TST_INFO_get_serial
  - TS_TST_INFO_set_time
  - TS_TST_INFO_get_time
  - TS_TST_INFO_set_accuracy
  - TS_TST_INFO_get_accuracy
  - TS_ACCURACY_set_seconds
  - TS_ACCURACY_get_seconds
  - TS_ACCURACY_set_millis
  - TS_ACCURACY_get_millis
  - TS_ACCURACY_set_micros
  - TS_ACCURACY_get_micros
  - TS_TST_INFO_set_ordering
  - TS_TST_INFO_get_ordering
  - TS_TST_INFO_set_nonce
  - TS_TST_INFO_get_nonce
  - TS_TST_INFO_set_tsa
  - TS_TST_INFO_get_tsa
  - TS_TST_INFO_ext_free
  - TS_TST_INFO_get_ext_count
  - TS_TST_INFO_get_ext_by_NID
  - TS_TST_INFO_get_ext_by_OBJ
  - TS_TST_INFO_get_ext_by_critical
  - TS_TST_INFO_get_ext
  - TS_TST_INFO_delete_ext
  - TS_TST_INFO_add_ext
  - TS_TST_INFO_get_ext_d2i
  - TS_STATUS_INFO_set_status
  - TS_STATUS_INFO_get0_status
  - TS_STATUS_INFO_get0_text
  - TS_STATUS_INFO_get0_failure_info
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_rsp_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*hash_algo'
        type: X509_ALGOR
      - name: '*hashed_msg'
        type: ASN1_OCTET_STRING
      item_type: struct
      name: TS_msg_imprint_st
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*status_info'
        type: TS_STATUS_INFO
      - name: '*token'
        type: PKCS7
      - name: '*tst_info'
        type: TS_TST_INFO
      item_type: struct
      name: TS_resp_st
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*version'
        type: ASN1_INTEGER
      - name: '*msg_imprint'
        type: TS_MSG_IMPRINT
      - name: '*policy_id'
        type: ASN1_OBJECT
      - name: '*nonce'
        type: ASN1_INTEGER
      - name: cert_req
        type: ASN1_BOOLEAN
      - name: '*extensions'
        type: STACK_OF
      item_type: struct
      name: TS_req_st
      pos:
        line_end: 48
        line_start: 41
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*seconds'
        type: ASN1_INTEGER
      - name: '*millis'
        type: ASN1_INTEGER
      - name: '*micros'
        type: ASN1_INTEGER
      item_type: struct
      name: TS_accuracy_st
      pos:
        line_end: 60
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*version'
        type: ASN1_INTEGER
      - name: '*policy_id'
        type: ASN1_OBJECT
      - name: '*msg_imprint'
        type: TS_MSG_IMPRINT
      - name: '*serial'
        type: ASN1_INTEGER
      - name: '*time'
        type: ASN1_GENERALIZEDTIME
      - name: '*accuracy'
        type: TS_ACCURACY
      - name: ordering
        type: ASN1_BOOLEAN
      - name: '*nonce'
        type: ASN1_INTEGER
      - name: '*tsa'
        type: GENERAL_NAME
      - name: '*extensions'
        type: STACK_OF
      item_type: struct
      name: TS_tst_info_st
      pos:
        line_end: 92
        line_start: 81
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*status'
        type: ASN1_INTEGER
      - name: '*text'
        type: STACK_OF
      - name: '*failure_info'
        type: ASN1_BIT_STRING
      item_type: struct
      name: TS_status_info_st
      pos:
        line_end: 98
        line_start: 94
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*issuer'
        type: STACK_OF
      - name: '*serial'
        type: ASN1_INTEGER
      item_type: struct
      name: ESS_issuer_serial
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*hash'
        type: ASN1_OCTET_STRING
      - name: '*issuer_serial'
        type: ESS_ISSUER_SERIAL
      item_type: struct
      name: ESS_cert_id
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*cert_ids'
        type: STACK_OF
      - name: '*policy_info'
        type: STACK_OF
      item_type: struct
      name: ESS_signing_cert
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*hash_alg'
        type: X509_ALGOR
      - name: '*hash'
        type: ASN1_OCTET_STRING
      - name: '*issuer_serial'
        type: ESS_ISSUER_SERIAL
      item_type: struct
      name: ESS_cert_id_v2_st
      pos:
        line_end: 146
        line_start: 142
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*cert_ids'
        type: STACK_OF
      - name: '*policy_info'
        type: STACK_OF
      item_type: struct
      name: ESS_signing_cert_v2_st
      pos:
        line_end: 158
        line_start: 155
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: '*signer_cert'
        type: X509
      - name: '*signer_key'
        type: EVP_PKEY
      - name: '*signer_md'
        type: EVP_MD
      - name: '*ess_cert_id_digest'
        type: EVP_MD
      - name: '*certs'
        type: STACK_OF
      - name: '*policies'
        type: STACK_OF
      - name: '*default_policy'
        type: ASN1_OBJECT
      - name: '*mds'
        type: STACK_OF
      - name: '*seconds'
        type: ASN1_INTEGER
      - name: '*millis'
        type: ASN1_INTEGER
      - name: '*micros'
        type: ASN1_INTEGER
      - name: clock_precision_digits
        type: unsigned
      - name: flags
        type: unsigned
      - name: serial_cb
        type: TS_serial_cb
      - name: '*serial_cb_data'
        type: void
      - name: time_cb
        type: TS_time_cb
      - name: '*time_cb_data'
        type: void
      - name: extension_cb
        type: TS_extension_cb
      - name: '*extension_cb_data'
        type: void
      - name: '*request'
        type: TS_REQ
      - name: '*response'
        type: TS_RESP
      - name: '*tst_info'
        type: TS_TST_INFO
      item_type: struct
      name: TS_resp_ctx
      pos:
        line_end: 187
        line_start: 161
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    - fields:
      - name: flags
        type: unsigned
      - name: '*store'
        type: X509_STORE
      - name: '*certs'
        type: STACK_OF
      - name: '*policy'
        type: ASN1_OBJECT
      - name: '*md_alg'
        type: X509_ALGOR
      - name: '*imprint'
        type: unsigned char
      - name: imprint_len
        type: unsigned
      - name: '*data'
        type: BIO
      - name: '*nonce'
        type: ASN1_INTEGER
      - name: '*tsa_name'
        type: GENERAL_NAME
      item_type: struct
      name: TS_verify_ctx
      pos:
        line_end: 210
        line_start: 189
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_local.h
    typedefs: []
    union: []
- function_names:
  - TS_REQ_print_bio
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_req_print.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ess_get_signing_cert
  - ess_get_signing_cert_v2
  - ts_issuer_serial_cmp
  - TS_RESP_verify_response
  - TS_RESP_verify_token
  - int_ts_RESP_verify_token
  - ts_check_status_info
  - ts_get_status_text
  - ts_check_policy
  - ts_compute_imprint
  - ts_check_imprints
  - ts_check_nonces
  - ts_check_signer_name
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TS_STATUS_BUF_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
      type_or_value: '256'
    - item_type: preproc_def
      name: TS_STATUS_TEXT_SIZE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
      type_or_value: OSSL_NELEM(ts_status_text)
    structs:
    - fields:
      - name: code
        type: int
      - name: '*text'
        type: char
      item_type: struct
      name: "ts_failure_info[] = {\n    {TS_INFO_BAD_ALG, \"badAlg\"},\n    {TS_INFO_BAD_REQUEST,
        \"badRequest\"},\n    {TS_INFO_BAD_DATA_FORMAT, \"badDataFormat\"},\n    {TS_INFO_TIME_NOT_AVAILABLE,
        \"timeNotAvailable\"},\n    {TS_INFO_UNACCEPTED_POLICY, \"unacceptedPolicy\"},\n
        \   {TS_INFO_UNACCEPTED_EXTENSION, \"unacceptedExtension\"},\n    {TS_INFO_ADD_INFO_NOT_AVAILABLE,
        \"addInfoNotAvailable\"},\n    {TS_INFO_SYSTEM_FAILURE, \"systemFailure\"}\n}"
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/openssl-1.1.1g/crypto/ts/ts_rsp_verify.c
    typedefs: []
    union: []
- function_names:
  - ERR_load_TS_strings
  source_file: /src/openssl-1.1.1g/crypto/ts/ts_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - v2i_AUTHORITY_INFO_ACCESS
  - i2a_ACCESS_DESCRIPTION
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_info.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2r_PKEY_USAGE_PERIOD
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_pku.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - policy_cache_create
  - policy_cache_new
  - policy_cache_free
  - policy_cache_set
  - policy_cache_find_data
  - policy_data_cmp
  - policy_cache_set_int
  source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509V3_EXT_print
  - X509V3_extensions_print
  - unknown_ext_print
  - X509V3_EXT_print_fp
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_prn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2s_ASN1_OCTET_STRING
  - s2i_ASN1_OCTET_STRING
  - s2i_skey_id
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_skey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ia5ncasecmp
  - ia5casecmp
  - v2i_NAME_CONSTRAINTS
  - i2r_NAME_CONSTRAINTS
  - do_i2r_name_constraints
  - print_nc_ipadd
  - add_lengths
  - NAME_CONSTRAINTS_check
  - cn2dnsid
  - NAME_CONSTRAINTS_check_CN
  - nc_match
  - nc_match_single
  - nc_dn
  - nc_dns
  - nc_email
  - nc_uri
  - nc_ip
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NAME_CHECK_MAX
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_ncons.c
      type_or_value: (1 << 20)
    structs: []
    typedefs: []
    union: []
- function_names:
  - s2i_asn1_int
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_int.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - v2i_AUTHORITY_KEYID
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_akey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - v2i_EXTENDED_KEY_USAGE
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_extku.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509V3_add_value
  - X509V3_add_value_uchar
  - X509V3_conf_free
  - X509V3_add_value_bool
  - X509V3_add_value_bool_nf
  - bignum_to_string
  - i2s_ASN1_ENUMERATED
  - i2s_ASN1_INTEGER
  - s2i_ASN1_INTEGER
  - X509V3_add_value_int
  - X509V3_get_value_bool
  - X509V3_get_value_int
  - strip_spaces
  - name_cmp
  - sk_strcmp
  - get_email
  - str_free
  - skip_prefix
  - equal_nocase
  - equal_case
  - equal_email
  - wildcard_match
  - valid_star
  - equal_wildcard
  - do_check_string
  - do_x509_check
  - X509_check_host
  - X509_check_email
  - X509_check_ip
  - X509_check_ip_asc
  - a2i_IPADDRESS
  - a2i_IPADDRESS_NC
  - a2i_ipadd
  - ipv4_from_asc
  - ipv6_from_asc
  - ipv6_cb
  - ipv6_hex
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HDR_NAME
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HDR_VALUE
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
      type_or_value: '2'
    - item_type: preproc_def
      name: LABEL_START
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: LABEL_END
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: LABEL_HYPHEN
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: LABEL_IDNA
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
      type_or_value: (1 << 3)
    structs:
    - fields:
      - name: tmp[16]
        type: unsigned char
      - name: total
        type: int
      - name: zero_pos
        type: int
      - name: zero_cnt
        type: int
      item_type: struct
      name: IPV6_STAT
      pos:
        line_end: 1066
        line_start: 1057
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
    typedefs:
    - item_type: typedef
      name: "(*equal_fn) (const unsigned char *pattern, size_t pattern_len,\n                         const
        unsigned char *subject, size_t subject_len,\n                         unsigned
        int flags)"
      pos:
        line_end: 530
        line_start: 528
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_utl.c
      type: int
    union: []
- function_names:
  - node_data_critical
  - node_critical
  source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLICY_DATA_FLAG_MAPPED
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: POLICY_DATA_FLAG_MAPPED_ANY
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: POLICY_DATA_FLAG_MAP_MASK
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: POLICY_DATA_FLAG_SHARED_QUALIFIERS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: POLICY_DATA_FLAG_EXTRA_NODE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: POLICY_DATA_FLAG_CRITICAL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: POLICY_FLAG_ANY_POLICY
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
      type_or_value: '0x2'
    structs:
    - fields:
      - name: flags
        type: unsigned int
      - name: '*valid_policy'
        type: ASN1_OBJECT
      - name: '*qualifier_set'
        type: STACK_OF
      - name: '*expected_policy_set'
        type: STACK_OF
      item_type: struct
      name: X509_POLICY_DATA_st
      pos:
        line_end: 28
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
    - fields:
      - name: '*anyPolicy'
        type: X509_POLICY_DATA
      - name: '*data'
        type: STACK_OF
      - name: any_skip
        type: long
      - name: explicit_skip
        type: long
      - name: map_skip
        type: long
      item_type: struct
      name: X509_POLICY_CACHE_st
      pos:
        line_end: 81
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
    - fields:
      - name: '*data'
        type: X509_POLICY_DATA
      - name: '*parent'
        type: X509_POLICY_NODE
      - name: nchild
        type: int
      item_type: struct
      name: X509_POLICY_NODE_st
      pos:
        line_end: 96
        line_start: 89
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
    - fields:
      - name: '*cert'
        type: X509
      - name: '*nodes'
        type: STACK_OF
      - name: '*anyPolicy'
        type: X509_POLICY_NODE
      - name: flags
        type: unsigned int
      item_type: struct
      name: X509_POLICY_LEVEL_st
      pos:
        line_end: 110
        line_start: 98
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
    - fields:
      - name: '*levels'
        type: X509_POLICY_LEVEL
      - name: nlevel
        type: int
      - name: '*extra_data'
        type: STACK_OF
      - name: '*auth_policies'
        type: STACK_OF
      - name: '*user_policies'
        type: STACK_OF
      - name: flags
        type: unsigned int
      item_type: struct
      name: X509_POLICY_TREE_st
      pos:
        line_end: 125
        line_start: 112
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
    typedefs:
    - item_type: typedef
      name: X509_POLICY_DATA
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_local.h
      type: X509_POLICY_DATA_st
    union: []
- function_names:
  - node_cmp
  source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_node.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509_policy_tree_level_count
  - X509_policy_tree_get0_level
  - X509_policy_level_node_count
  - X509_policy_level_get0_node
  - X509_policy_node_get0_policy
  - X509_policy_node_get0_parent
  source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - policy_data_free
  - policy_data_new
  source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_data.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gnames_from_sectname
  - set_dist_point_name
  - set_reasons
  - print_reasons
  - crldp_from_section
  - v2i_crld
  - dpn_cb
  - v2i_idp
  - print_distpoint
  - i2r_idp
  - i2r_crldp
  - DIST_POINT_set_dpname
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_crld.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GENERAL_NAME_dup
  - GENERAL_NAME_cmp
  - OTHERNAME_cmp
  - GENERAL_NAME_set0_value
  - GENERAL_NAME_get0_value
  - GENERAL_NAME_set0_othername
  - GENERAL_NAME_get0_otherName
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_genn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GENERAL_NAME_print
  - v2i_issuer_alt
  - copy_issuer
  - v2i_subject_alt
  - copy_email
  - v2i_GENERAL_NAMES
  - v2i_GENERAL_NAME
  - a2i_GENERAL_NAME
  - v2i_GENERAL_NAME_ex
  - do_othername
  - do_dirname
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_alt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2s_ASN1_IA5STRING
  - s2i_ASN1_IA5STRING
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_ia5.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/x509v3/ext_dat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_bitst.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2s_ASN1_ENUMERATED_TABLE
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_enum.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_pcia.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509V3_EXT_nconf
  - X509V3_EXT_nconf_nid
  - do_ext_nconf
  - do_ext_i2d
  - X509V3_EXT_i2d
  - v3_check_critical
  - v3_check_generic
  - v3_generic_extension
  - generic_asn1
  - X509V3_EXT_add_nconf_sk
  - X509V3_EXT_add_nconf
  - X509V3_EXT_CRL_add_nconf
  - X509V3_EXT_REQ_add_nconf
  - X509V3_get_string
  - X509V3_string_free
  - nconf_get_string
  - nconf_get_section
  - X509V3_set_nconf
  - X509V3_set_ctx
  - conf_lhash_get_string
  - conf_lhash_get_section
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_conf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - v2i_BASIC_CONSTRAINTS
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_bcons.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - length_from_afi
  - X509v3_addr_get_afi
  - addr_expand
  - addr_prefixlen
  - i2r_address
  - i2r_IPAddressOrRanges
  - i2r_IPAddrBlocks
  - IPAddressOrRange_cmp
  - v4IPAddressOrRange_cmp
  - v6IPAddressOrRange_cmp
  - range_should_be_prefix
  - make_addressPrefix
  - make_addressRange
  - make_IPAddressFamily
  - X509v3_addr_add_inherit
  - make_prefix_or_range
  - X509v3_addr_add_prefix
  - X509v3_addr_add_range
  - extract_min_max
  - X509v3_addr_get_range
  - IPAddressFamily_cmp
  - X509v3_addr_is_canonical
  - IPAddressOrRanges_canonize
  - X509v3_addr_canonize
  - v2i_IPAddrBlocks
  - X509v3_addr_inherits
  - addr_contains
  - X509v3_addr_subset
  - validation_err
  - X509v3_addr_validate_path
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ADDR_RAW_BUF_LEN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_addr.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_X509V3_strings
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_akeya.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - expected_print
  - tree_print
  - tree_link_matching_nodes
  - tree_link_nodes
  - tree_add_unmatched
  - tree_link_unmatched
  - tree_link_any
  - tree_prune
  - tree_evaluate
  - exnode_free
  - X509_policy_tree_free
  - X509_policy_check
  source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TREE_CALC_FAILURE
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TREE_CALC_OK_NOFREE
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TREE_CALC_OK_DOFREE
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_tree.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - v2i_TLS_FEATURE
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: num
        type: long
      - name: '*name'
        type: char
      item_type: struct
      name: TLS_FEATURE_NAME
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_tlsf.c
    typedefs: []
    union: []
- function_names:
  - v2i_POLICY_CONSTRAINTS
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_pcons.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/x509v3/standard_exts.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STANDARD_EXTENSION_COUNT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/openssl-1.1.1g/crypto/x509v3/standard_exts.h
      type_or_value: OSSL_NELEM(standard_exts)
    structs: []
    typedefs: []
    union: []
- function_names:
  - xp_cmp
  - X509_check_purpose
  - X509_PURPOSE_set
  - X509_PURPOSE_get_count
  - X509_PURPOSE_get0
  - X509_PURPOSE_get_by_sname
  - X509_PURPOSE_get_by_id
  - X509_PURPOSE_add
  - xptable_free
  - X509_PURPOSE_cleanup
  - X509_PURPOSE_get_id
  - X509_PURPOSE_get0_name
  - X509_PURPOSE_get0_sname
  - X509_PURPOSE_get_trust
  - nid_cmp
  - X509_supported_extension
  - setup_dp
  - setup_crldp
  - ku_reject
  - xku_reject
  - ns_reject
  - x509v3_cache_extensions
  - check_ca
  - X509_set_proxy_flag
  - X509_set_proxy_pathlen
  - X509_check_ca
  - check_ssl_ca
  - check_purpose_ssl_client
  - check_purpose_ssl_server
  - check_purpose_ns_ssl_server
  - purpose_smime
  - check_purpose_smime_sign
  - check_purpose_smime_encrypt
  - check_purpose_crl_sign
  - ocsp_helper
  - check_purpose_timestamp_sign
  - no_check
  - X509_check_issued
  - X509_check_akid
  - X509_get_extension_flags
  - X509_get_key_usage
  - X509_get_extended_key_usage
  - X509_get0_subject_key_id
  - X509_get0_authority_key_id
  - X509_get0_authority_issuer
  - X509_get0_authority_serial
  - X509_get_pathlen
  - X509_get_proxy_pathlen
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X509_PURPOSE_COUNT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
      type_or_value: OSSL_NELEM(xstandard)
    - item_type: preproc_def
      name: V1_ROOT
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
      type_or_value: (EXFLAG_V1|EXFLAG_SS)
    - item_type: preproc_def
      name: KU_TLS
      pos:
        line_end: 640
        line_start: 638
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_purp.c
      type_or_value: KU_DIGITAL_SIGNATURE|KU_KEY_ENCIPHERMENT|KU_KEY_AGREEMENT
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2r_pci
  - process_pci_value
  - r2i_pci
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_pci.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - policy_cache_set_mapping
  source_file: /src/openssl-1.1.1g/crypto/x509v3/pcy_map.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2r_ASIdentifierChoice
  - i2r_ASIdentifiers
  - ASIdOrRange_cmp
  - X509v3_asid_add_inherit
  - X509v3_asid_add_id_or_range
  - extract_min_max
  - ASIdentifierChoice_is_canonical
  - X509v3_asid_is_canonical
  - ASIdentifierChoice_canonize
  - X509v3_asid_canonize
  - v2i_ASIdentifiers
  - X509v3_asid_inherits
  - asid_contains
  - X509v3_asid_subset
  - validation_err
  - X509v3_asid_validate_path
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_asid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509V3_EXT_add
  - ext_cmp
  - X509V3_EXT_get_nid
  - X509V3_EXT_get
  - X509V3_EXT_add_list
  - X509V3_EXT_add_alias
  - X509V3_EXT_cleanup
  - ext_list_free
  - X509V3_add_standard_extensions
  - X509V3_EXT_d2i
  - X509V3_get_d2i
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2r_NAMING_AUTHORITY
  - i2r_ADMISSION_SYNTAX
  - NAMING_AUTHORITY_get0_authorityId
  - NAMING_AUTHORITY_set0_authorityId
  - NAMING_AUTHORITY_get0_authorityURL
  - NAMING_AUTHORITY_set0_authorityURL
  - NAMING_AUTHORITY_get0_authorityText
  - NAMING_AUTHORITY_set0_authorityText
  - ADMISSION_SYNTAX_get0_admissionAuthority
  - ADMISSION_SYNTAX_set0_admissionAuthority
  - ADMISSION_SYNTAX_get0_contentsOfAdmissions
  - ADMISSIONS_get0_admissionAuthority
  - ADMISSIONS_set0_admissionAuthority
  - ADMISSIONS_get0_namingAuthority
  - ADMISSIONS_set0_namingAuthority
  - ADMISSIONS_get0_professionInfos
  - ADMISSIONS_set0_professionInfos
  - PROFESSION_INFO_get0_addProfessionInfo
  - PROFESSION_INFO_set0_addProfessionInfo
  - PROFESSION_INFO_get0_namingAuthority
  - PROFESSION_INFO_set0_namingAuthority
  - PROFESSION_INFO_get0_professionItems
  - PROFESSION_INFO_get0_professionOIDs
  - PROFESSION_INFO_get0_registrationNumber
  - PROFESSION_INFO_set0_registrationNumber
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - v2i_POLICY_MAPPINGS
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_pmaps.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* namingAuthorityId'
        type: ASN1_OBJECT
      - name: '* namingAuthorityUrl'
        type: ASN1_IA5STRING
      - name: '* namingAuthorityText'
        type: ASN1_STRING
      item_type: struct
      name: NamingAuthority_st
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.h
    - fields:
      - name: '* namingAuthority'
        type: NAMING_AUTHORITY
      - name: '* professionItems'
        type: STACK_OF
      - name: '* professionOIDs'
        type: STACK_OF
      - name: '* registrationNumber'
        type: ASN1_PRINTABLESTRING
      - name: '* addProfessionInfo'
        type: ASN1_OCTET_STRING
      item_type: struct
      name: ProfessionInfo_st
      pos:
        line_end: 24
        line_start: 18
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.h
    - fields:
      - name: '* admissionAuthority'
        type: GENERAL_NAME
      - name: '* namingAuthority'
        type: NAMING_AUTHORITY
      - name: '* professionInfos'
        type: STACK_OF
      item_type: struct
      name: Admissions_st
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.h
    - fields:
      - name: '* admissionAuthority'
        type: GENERAL_NAME
      - name: '* contentsOfAdmissions'
        type: STACK_OF
      item_type: struct
      name: AdmissionSyntax_st
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_admis.h
    typedefs: []
    union: []
- function_names:
  - r2i_certpol
  - policy_section
  - displaytext_get_tag_len
  - displaytext_str2tag
  - notice_section
  - print_notice
  - X509_POLICY_NODE_print
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_cpols.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sxnet_i2r
  - sxnet_v2i
  - SXNET_add_id_asc
  - SXNET_add_id_ulong
  - SXNET_add_id_INTEGER
  - SXNET_get_id_asc
  - SXNET_get_id_ulong
  - SXNET_get_id_INTEGER
  source_file: /src/openssl-1.1.1g/crypto/x509v3/v3_sxnet.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPENSSL_sk_set_cmp_func
  - OPENSSL_sk_dup
  - OPENSSL_sk_deep_copy
  - OPENSSL_sk_new_null
  - OPENSSL_sk_new
  - compute_growth
  - sk_reserve
  - OPENSSL_sk_new_reserve
  - OPENSSL_sk_reserve
  - OPENSSL_sk_insert
  - internal_delete
  - OPENSSL_sk_delete_ptr
  - OPENSSL_sk_delete
  - internal_find
  - OPENSSL_sk_find
  - OPENSSL_sk_find_ex
  - OPENSSL_sk_push
  - OPENSSL_sk_unshift
  - OPENSSL_sk_shift
  - OPENSSL_sk_pop
  - OPENSSL_sk_zero
  - OPENSSL_sk_pop_free
  - OPENSSL_sk_free
  - OPENSSL_sk_num
  - OPENSSL_sk_value
  - OPENSSL_sk_set
  - OPENSSL_sk_sort
  - OPENSSL_sk_is_sorted
  source_file: /src/openssl-1.1.1g/crypto/stack/stack.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: num
        type: int
      - name: '**data'
        type: void
      - name: sorted
        type: int
      - name: num_alloc
        type: int
      - name: comp
        type: OPENSSL_sk_compfunc
      item_type: struct
      name: stack_st
      pos:
        line_end: 31
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/stack/stack.c
    typedefs: []
    union: []
- function_names:
  - ERR_load_COMP_strings
  source_file: /src/openssl-1.1.1g/crypto/comp/comp_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - zlib_zalloc
  - zlib_zfree
  - zlib_stateful_init
  - zlib_stateful_finish
  - zlib_stateful_compress_block
  - zlib_stateful_expand_block
  - COMP_zlib
  - comp_zlib_cleanup_int
  - BIO_f_zlib
  - bio_zlib_new
  - bio_zlib_free
  - bio_zlib_read
  - bio_zlib_write
  - bio_zlib_flush
  - bio_zlib_ctrl
  - bio_zlib_callback_ctrl
  source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: compress
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: p_compress
    - item_type: preproc_def
      name: inflateEnd
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: p_inflateEnd
    - item_type: preproc_def
      name: inflate
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: p_inflate
    - item_type: preproc_def
      name: inflateInit_
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: p_inflateInit_
    - item_type: preproc_def
      name: deflateEnd
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: p_deflateEnd
    - item_type: preproc_def
      name: deflate
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: p_deflate
    - item_type: preproc_def
      name: deflateInit_
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: p_deflateInit_
    - item_type: preproc_def
      name: zError
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: p_zError
    - item_type: preproc_def
      name: LIBZ
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: '"ZLIB1"'
    - item_type: preproc_def
      name: LIBZ
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: '"LIBZ"'
    - item_type: preproc_def
      name: LIBZ
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: '"z"'
    - item_type: preproc_def
      name: ZLIB_DEFAULT_BUFSIZE
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: istream
        type: z_stream
      - name: ostream
        type: z_stream
      item_type: struct
      name: zlib_state
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    - fields:
      - name: '*ibuf'
        type: unsigned char
      - name: ibufsize
        type: int
      - name: zin
        type: z_stream
      - name: '*obuf'
        type: unsigned char
      - name: obufsize
        type: int
      - name: '*optr'
        type: unsigned char
      - name: ocount
        type: int
      - name: odone
        type: int
      - name: comp_level
        type: int
      - name: zout
        type: z_stream
      item_type: struct
      name: BIO_ZLIB_CTX
      pos:
        line_end: 284
        line_start: 273
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
    typedefs:
    - item_type: typedef
      name: "(*compress_ft) (Bytef *dest, uLongf * destLen,\n                            const
        Bytef *source, uLong sourceLen)"
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type: int
    - item_type: typedef
      name: (*inflateEnd_ft) (z_streamp strm)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type: int
    - item_type: typedef
      name: (*inflate_ft) (z_streamp strm, int flush)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type: int
    - item_type: typedef
      name: "(*inflateInit__ft) (z_streamp strm,\n                                const
        char *version, int stream_size)"
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type: int
    - item_type: typedef
      name: (*deflateEnd_ft) (z_streamp strm)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type: int
    - item_type: typedef
      name: (*deflate_ft) (z_streamp strm, int flush)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type: int
    - item_type: typedef
      name: "(*deflateInit__ft) (z_streamp strm, int level,\n                                const
        char *version, int stream_size)"
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type: int
    - item_type: typedef
      name: '*(*zError__ft) (int err)'
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/openssl-1.1.1g/crypto/comp/c_zlib.c
      type: char
    union: []
- function_names:
  - COMP_CTX_new
  - COMP_CTX_get_method
  - COMP_get_type
  - COMP_get_name
  - COMP_CTX_free
  - COMP_compress_block
  - COMP_expand_block
  - COMP_CTX_get_type
  source_file: /src/openssl-1.1.1g/crypto/comp/comp_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/comp/comp_local.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: int
      - name: '*name'
        type: char
      - name: (*init) (COMP_CTX *ctx)
        type: int
      - name: (*finish) (COMP_CTX *ctx)
        type: void
      - name: "(*compress) (COMP_CTX *ctx,\n                     unsigned char *out,
          unsigned int olen,\n                     unsigned char *in, unsigned int
          ilen)"
        type: int
      - name: "(*expand) (COMP_CTX *ctx,\n                   unsigned char *out, unsigned
          int olen,\n                   unsigned char *in, unsigned int ilen)"
        type: int
      item_type: struct
      name: comp_method_st
      pos:
        line_end: 20
        line_start: 9
        source_file: /src/openssl-1.1.1g/crypto/comp/comp_local.h
    - fields:
      - name: '*meth'
        type: struct comp_method_st
      - name: compress_in
        type: unsigned long
      - name: compress_out
        type: unsigned long
      - name: expand_in
        type: unsigned long
      - name: expand_out
        type: unsigned long
      - name: '* data'
        type: void
      item_type: struct
      name: comp_ctx_st
      pos:
        line_end: 29
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/comp/comp_local.h
    typedefs: []
    union: []
- function_names:
  - CAST_ofb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/cast/c_ofb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/cast/cast_s.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CAST_cfb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/cast/c_cfb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - c2l
  - c2ln
  - l2c
  - l2cn
  - n2ln
  - l2nn
  - n2l
  - l2n
  - ROTL
  - ROTL
  - E_CAST
  - E_CAST
  - E_CAST
  source_file: /src/openssl-1.1.1g/crypto/cast/cast_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: C_M
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/openssl-1.1.1g/crypto/cast/cast_local.h
      type_or_value: '0x3fc'
    - item_type: preproc_def
      name: C_0
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/openssl-1.1.1g/crypto/cast/cast_local.h
      type_or_value: 22L
    - item_type: preproc_def
      name: C_1
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/openssl-1.1.1g/crypto/cast/cast_local.h
      type_or_value: 14L
    - item_type: preproc_def
      name: C_2
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/openssl-1.1.1g/crypto/cast/cast_local.h
      type_or_value: 6L
    - item_type: preproc_def
      name: C_3
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/openssl-1.1.1g/crypto/cast/cast_local.h
      type_or_value: '2L              '
    structs: []
    typedefs: []
    union: []
- function_names:
  - CAST_exp
  - CAST_set_key
  source_file: /src/openssl-1.1.1g/crypto/cast/c_skey.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S4
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/crypto/cast/c_skey.c
      type_or_value: CAST_S_table4
    - item_type: preproc_def
      name: S5
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/crypto/cast/c_skey.c
      type_or_value: CAST_S_table5
    - item_type: preproc_def
      name: S6
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/cast/c_skey.c
      type_or_value: CAST_S_table6
    - item_type: preproc_def
      name: S7
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/crypto/cast/c_skey.c
      type_or_value: CAST_S_table7
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/cast/c_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CAST_ecb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/cast/c_ecb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - i2d_PKCS7_bio_stream
  - PEM_write_bio_PKCS7_stream
  - SMIME_write_PKCS7
  - SMIME_read_PKCS7
  source_file: /src/openssl-1.1.1g/crypto/pkcs7/pk7_mime.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pk7_cb
  - si_cb
  - ri_cb
  source_file: /src/openssl-1.1.1g/crypto/pkcs7/pk7_asn1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS7_type_is_other
  - PKCS7_get_octet_string
  - PKCS7_bio_add_digest
  - pkcs7_encode_rinfo
  - pkcs7_decrypt_rinfo
  - PKCS7_dataInit
  - pkcs7_cmp_ri
  - PKCS7_dataDecode
  - PKCS7_find_digest
  - do_pkcs7_signed_attrib
  - PKCS7_dataFinal
  - PKCS7_SIGNER_INFO_sign
  - PKCS7_dataVerify
  - PKCS7_signatureVerify
  - PKCS7_get_issuer_and_serial
  - PKCS7_get_signed_attribute
  - PKCS7_get_attribute
  - get_attribute
  - PKCS7_add_signed_attribute
  - PKCS7_add_attribute
  source_file: /src/openssl-1.1.1g/crypto/pkcs7/pk7_doit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS7_add_attrib_content_type
  - PKCS7_add0_attrib_signing_time
  - PKCS7_add1_attrib_digest
  source_file: /src/openssl-1.1.1g/crypto/pkcs7/pk7_attr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS7_final
  - PKCS7_sign_add_signer
  - pkcs7_copy_existing_digest
  - PKCS7_decrypt
  source_file: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFERSIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/crypto/pkcs7/pk7_smime.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PKCS7_ctrl
  - PKCS7_content_new
  - PKCS7_set_content
  - PKCS7_set_type
  - PKCS7_set0_type_other
  - PKCS7_add_signer
  - PKCS7_add_certificate
  - PKCS7_add_crl
  - PKCS7_SIGNER_INFO_set
  - PKCS7_add_signature
  - PKCS7_set_digest
  - PKCS7_SIGNER_INFO_get0_algs
  - PKCS7_RECIP_INFO_get0_alg
  - PKCS7_add_recipient
  - PKCS7_add_recipient_info
  - PKCS7_RECIP_INFO_set
  - PKCS7_cert_from_signer_info
  - PKCS7_set_cipher
  - PKCS7_stream
  source_file: /src/openssl-1.1.1g/crypto/pkcs7/pk7_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIO_new_PKCS7
  source_file: /src/openssl-1.1.1g/crypto/pkcs7/bio_pk7.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_load_PKCS7_strings
  source_file: /src/openssl-1.1.1g/crypto/pkcs7/pkcs7err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_NID
      pos:
        line_end: 1081
        line_start: 1080
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.h
      type_or_value: '1195'
    - item_type: preproc_def
      name: NUM_SN
      pos:
        line_end: 2280
        line_start: 2279
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.h
      type_or_value: '1186'
    - item_type: preproc_def
      name: NUM_LN
      pos:
        line_end: 3470
        line_start: 3469
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.h
      type_or_value: '1186'
    - item_type: preproc_def
      name: NUM_OBJ
      pos:
        line_end: 4660
        line_start: 4659
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.h
      type_or_value: '1071'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sn_cmp
  - ln_cmp
  - added_obj_hash
  - added_obj_cmp
  - init_added
  - cleanup1_doall
  - cleanup2_doall
  - cleanup3_doall
  - obj_cleanup_int
  - OBJ_new_nid
  - OBJ_add_object
  - OBJ_nid2obj
  - OBJ_nid2sn
  - OBJ_nid2ln
  - obj_cmp
  - OBJ_obj2nid
  - OBJ_txt2obj
  - OBJ_obj2txt
  - OBJ_txt2nid
  - OBJ_ln2nid
  - OBJ_sn2nid
  - OBJ_bsearch_
  - OBJ_bsearch_ex_
  - OBJ_create_objects
  - OBJ_create
  - OBJ_length
  - OBJ_get0_data
  source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ADDED_DATA
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ADDED_SNAME
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ADDED_LNAME
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ADDED_NID
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
      type_or_value: '3'
    structs:
    - fields:
      - name: type
        type: int
      - name: '*obj'
        type: ASN1_OBJECT
      item_type: struct
      name: added_obj_st
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_dat.c
    typedefs: []
    union: []
- function_names:
  - ERR_load_OBJ_strings
  source_file: /src/openssl-1.1.1g/crypto/objects/obj_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/objects/obj_xref.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sign_id
        type: int
      - name: hash_id
        type: int
      - name: pkey_id
        type: int
      item_type: struct
      name: nid_triple
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_xref.h
    typedefs: []
    union: []
- function_names:
  - sig_cmp
  - sig_sk_cmp
  - sigx_cmp
  - OBJ_find_sigid_algs
  - OBJ_find_sigid_by_algs
  - OBJ_add_sigid
  - sid_free
  - OBJ_sigid_free
  source_file: /src/openssl-1.1.1g/crypto/objects/obj_xref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - obj_strcasecmp
  - DEFINE_RUN_ONCE_STATIC
  - OBJ_NAME_init
  - OBJ_NAME_new_index
  - obj_name_cmp
  - obj_name_hash
  - OBJ_NAME_get
  - OBJ_NAME_add
  - OBJ_NAME_remove
  - do_all_fn
  - OBJ_NAME_do_all
  - do_all_sorted_fn
  - do_all_sorted_cmp
  - OBJ_NAME_do_all_sorted
  - names_lh_free_doall
  - name_funcs_free
  - OBJ_NAME_cleanup
  source_file: /src/openssl-1.1.1g/crypto/objects/o_names.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: obj_strcasecmp
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/crypto/objects/o_names.c
      type_or_value: strcasecmp
    structs:
    - fields:
      - name: (*hash_func) (const char *name)
        type: unsigned long
      - name: (*cmp_func) (const char *a, const char *b)
        type: int
      - name: (*free_func) (const char *, int, const char *)
        type: void
      item_type: struct
      name: name_funcs_st
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/openssl-1.1.1g/crypto/objects/o_names.c
    - fields:
      - name: type
        type: int
      - name: (*fn) (const OBJ_NAME *, void *arg)
        type: void
      - name: '*arg'
        type: void
      item_type: struct
      name: OBJ_DOALL
      pos:
        line_end: 298
        line_start: 294
        source_file: /src/openssl-1.1.1g/crypto/objects/o_names.c
    - fields:
      - name: type
        type: int
      - name: n
        type: int
      - name: '**names'
        type: OBJ_NAME
      item_type: struct
      name: doall_sorted
      pos:
        line_end: 324
        line_start: 320
        source_file: /src/openssl-1.1.1g/crypto/objects/o_names.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/objects/obj_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: NAME_FUNCS
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_local.h
      type: name_funcs_st
    - item_type: typedef
      name: ADDED_OBJ
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/objects/obj_local.h
      type: added_obj_st
    union: []
- function_names:
  - OBJ_dup
  - OBJ_cmp
  source_file: /src/openssl-1.1.1g/crypto/objects/obj_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_new
  - RSA_get_method
  - RSA_set_method
  - RSA_new_method
  - RSA_free
  - RSA_up_ref
  - RSA_set_ex_data
  - RSA_get_ex_data
  - RSA_security_bits
  - RSA_set0_key
  - RSA_set0_factors
  - RSA_set0_crt_params
  - RSA_set0_multi_prime_params
  - RSA_get0_key
  - RSA_get0_factors
  - RSA_get_multi_prime_extra_count
  - RSA_get0_multi_prime_factors
  - RSA_get0_crt_params
  - RSA_get0_multi_prime_crt_params
  - RSA_get0_n
  - RSA_get0_e
  - RSA_get0_d
  - RSA_get0_p
  - RSA_get0_q
  - RSA_get0_dmp1
  - RSA_get0_dmq1
  - RSA_get0_iqmp
  - RSA_get0_pss_params
  - RSA_clear_flags
  - RSA_test_flags
  - RSA_set_flags
  - RSA_get_version
  - RSA_get0_engine
  - RSA_pkey_ctx_ctrl
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - encode_pkcs1
  - RSA_sign
  - int_rsa_verify
  - RSA_verify
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSL_SIG_LENGTH
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_sign.c
      type_or_value: '36'
    structs: []
    typedefs: []
    union: []
- function_names:
  - rsa_multip_info_free_ex
  - rsa_multip_info_free
  - rsa_multip_info_new
  - rsa_multip_calc_product
  - rsa_multip_cap
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_mp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_padding_add_X931
  - RSA_padding_check_X931
  - RSA_X931_hash_id
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_x931.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_meth_new
  - RSA_meth_free
  - RSA_meth_dup
  - RSA_meth_get0_name
  - RSA_meth_set1_name
  - RSA_meth_get_flags
  - RSA_meth_set_flags
  - RSA_meth_get0_app_data
  - RSA_meth_set0_app_data
  - "(*RSA_meth_get_pub_enc(const RSA_METHOD *meth))\n    (int flen, const unsigned
    char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - RSA_meth_set_pub_enc
  - "(*RSA_meth_get_pub_dec(const RSA_METHOD *meth))\n    (int flen, const unsigned
    char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - RSA_meth_set_pub_dec
  - "(*RSA_meth_get_priv_enc(const RSA_METHOD *meth))\n    (int flen, const unsigned
    char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - RSA_meth_set_priv_enc
  - "(*RSA_meth_get_priv_dec(const RSA_METHOD *meth))\n    (int flen, const unsigned
    char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - RSA_meth_set_priv_dec
  - "(*RSA_meth_get_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r0, const BIGNUM
    *i, RSA *rsa, BN_CTX *ctx)"
  - RSA_meth_set_mod_exp
  - "(*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r, const BIGNUM
    *a, const BIGNUM *p,\n     const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx)"
  - RSA_meth_set_bn_mod_exp
  - (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa)
  - RSA_meth_set_init
  - (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa)
  - RSA_meth_set_finish
  - "(*RSA_meth_get_sign(const RSA_METHOD *meth))\n    (int type,\n     const unsigned
    char *m, unsigned int m_length,\n     unsigned char *sigret, unsigned int *siglen,\n
    \    const RSA *rsa)"
  - RSA_meth_set_sign
  - "(*RSA_meth_get_verify(const RSA_METHOD *meth))\n    (int dtype, const unsigned
    char *m,\n     unsigned int m_length, const unsigned char *sigbuf,\n     unsigned
    int siglen, const RSA *rsa)"
  - RSA_meth_set_verify
  - "(*RSA_meth_get_keygen(const RSA_METHOD *meth))\n    (RSA *rsa, int bits, BIGNUM
    *e, BN_GENCB *cb)"
  - RSA_meth_set_keygen
  - "(*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth))\n    (RSA *rsa, int
    bits, int primes, BIGNUM *e, BN_GENCB *cb)"
  - RSA_meth_set_multi_prime_keygen
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_meth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_set_default_method
  - RSA_get_default_method
  - RSA_PKCS1_OpenSSL
  - RSA_null_method
  - rsa_ossl_public_encrypt
  - rsa_get_blinding
  - rsa_blinding_convert
  - rsa_blinding_invert
  - rsa_ossl_private_encrypt
  - rsa_ossl_private_decrypt
  - rsa_ossl_public_decrypt
  - rsa_ossl_mod_exp
  - rsa_ossl_init
  - rsa_ossl_finish
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_ossl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_generate_key
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_depr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_padding_add_PKCS1_type_1
  - RSA_padding_check_PKCS1_type_1
  - RSA_padding_add_PKCS1_type_2
  - RSA_padding_check_PKCS1_type_2
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_pk1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_print_fp
  - RSA_print
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_prn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_padding_add_PKCS1_OAEP
  - RSA_padding_add_PKCS1_OAEP_mgf1
  - RSA_padding_check_PKCS1_OAEP
  - RSA_padding_check_PKCS1_OAEP_mgf1
  - PKCS1_MGF1
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_oaep.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_verify_PKCS1_PSS
  - RSA_verify_PKCS1_PSS_mgf1
  - RSA_padding_add_PKCS1_PSS
  - RSA_padding_add_PKCS1_PSS_mgf1
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_pss.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_padding_add_SSLv23
  - RSA_padding_check_SSLv23
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_ssl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_generate_key_ex
  - RSA_generate_multi_prime_key
  - rsa_builtin_keygen
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_gen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rsa_param_encode
  - rsa_param_decode
  - rsa_pub_encode
  - rsa_pub_decode
  - rsa_pub_cmp
  - old_rsa_priv_decode
  - old_rsa_priv_encode
  - rsa_priv_encode
  - rsa_priv_decode
  - int_rsa_size
  - rsa_bits
  - rsa_security_bits
  - int_rsa_free
  - rsa_mgf1_decode
  - rsa_pss_param_print
  - pkey_rsa_print
  - rsa_pub_print
  - rsa_priv_print
  - rsa_pss_decode
  - rsa_sig_print
  - rsa_pkey_ctrl
  - rsa_md_to_algor
  - rsa_md_to_mgf1
  - rsa_algor_to_md
  - rsa_ctx_to_pss
  - rsa_pss_params_create
  - rsa_ctx_to_pss_string
  - rsa_pss_to_ctx
  - rsa_pss_get_param
  - rsa_cms_verify
  - rsa_item_verify
  - rsa_cms_sign
  - rsa_item_sign
  - rsa_sig_info_set
  - rsa_oaep_decode
  - rsa_cms_decrypt
  - rsa_cms_encrypt
  - rsa_pkey_check
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_ameth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rsa_cb
  - rsa_pss_cb
  - rsa_oaep_cb
  - RSAPublicKey_dup
  - RSAPrivateKey_dup
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_asn1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_padding_add_none
  - RSA_padding_check_none
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_none.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_bits
  - RSA_size
  - RSA_public_encrypt
  - RSA_private_encrypt
  - RSA_private_decrypt
  - RSA_public_decrypt
  - RSA_flags
  - RSA_blinding_off
  - RSA_blinding_on
  - rsa_get_public_exp
  - RSA_setup_blinding
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_crpt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_check_key
  - RSA_check_key_ex
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_chk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_sign_ASN1_OCTET_STRING
  - RSA_verify_ASN1_OCTET_STRING
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_saos.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_X931_derive_ex
  - RSA_X931_generate_key_ex
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_x931g.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pkey_is_pss
  - pkey_ctx_is_pss
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RSA_MAX_PRIME_NUM
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_local.h
      type_or_value: '5'
    - item_type: preproc_def
      name: RSA_MIN_MODULUS_BITS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_local.h
      type_or_value: '512'
    structs:
    - fields:
      - name: '*r'
        type: BIGNUM
      - name: '*d'
        type: BIGNUM
      - name: '*t'
        type: BIGNUM
      - name: '*pp'
        type: BIGNUM
      - name: '*m'
        type: BN_MONT_CTX
      item_type: struct
      name: rsa_prime_info_st
      pos:
        line_end: 22
        line_start: 15
        source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_local.h
    - fields:
      - name: pad
        type: int
      - name: version
        type: int32_t
      - name: '*meth'
        type: RSA_METHOD
      - name: '*engine'
        type: ENGINE
      - name: '*n'
        type: BIGNUM
      - name: '*e'
        type: BIGNUM
      - name: '*d'
        type: BIGNUM
      - name: '*p'
        type: BIGNUM
      - name: '*q'
        type: BIGNUM
      - name: '*dmp1'
        type: BIGNUM
      - name: '*dmq1'
        type: BIGNUM
      - name: '*iqmp'
        type: BIGNUM
      - name: '*prime_infos'
        type: STACK_OF
      - name: '*pss'
        type: RSA_PSS_PARAMS
      - name: ex_data
        type: CRYPTO_EX_DATA
      - name: references
        type: CRYPTO_REF_COUNT
      - name: flags
        type: int
      - name: '*_method_mod_n'
        type: BN_MONT_CTX
      - name: '*_method_mod_p'
        type: BN_MONT_CTX
      - name: '*_method_mod_q'
        type: BN_MONT_CTX
      - name: '*bignum_data'
        type: char
      - name: '*blinding'
        type: BN_BLINDING
      - name: '*mt_blinding'
        type: BN_BLINDING
      - name: '*lock'
        type: CRYPTO_RWLOCK
      item_type: struct
      name: rsa_st
      pos:
        line_end: 65
        line_start: 27
        source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_local.h
    - fields:
      - name: '*name'
        type: char
      - name: "(*rsa_pub_enc) (int flen, const unsigned char *from,\n                        unsigned
          char *to, RSA *rsa, int padding)"
        type: int
      - name: "(*rsa_pub_dec) (int flen, const unsigned char *from,\n                        unsigned
          char *to, RSA *rsa, int padding)"
        type: int
      - name: "(*rsa_priv_enc) (int flen, const unsigned char *from,\n                         unsigned
          char *to, RSA *rsa, int padding)"
        type: int
      - name: "(*rsa_priv_dec) (int flen, const unsigned char *from,\n                         unsigned
          char *to, RSA *rsa, int padding)"
        type: int
      - name: (*rsa_mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx)
        type: int
      - name: "(*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n                       const
          BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx)"
        type: int
      - name: (*init) (RSA *rsa)
        type: int
      - name: (*finish) (RSA *rsa)
        type: int
      - name: flags
        type: int
      - name: '*app_data'
        type: char
      - name: "(*rsa_sign) (int type,\n                     const unsigned char *m,
          unsigned int m_length,\n                     unsigned char *sigret, unsigned
          int *siglen,\n                     const RSA *rsa)"
        type: int
      - name: "(*rsa_verify) (int dtype, const unsigned char *m,\n                       unsigned
          int m_length, const unsigned char *sigbuf,\n                       unsigned
          int siglen, const RSA *rsa)"
        type: int
      - name: (*rsa_keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb)
        type: int
      - name: "(*rsa_multi_prime_keygen) (RSA *rsa, int bits, int primes,\n                                   BIGNUM
          *e, BN_GENCB *cb)"
        type: int
      item_type: struct
      name: rsa_meth_st
      pos:
        line_end: 112
        line_start: 67
        source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_local.h
    typedefs: []
    union: []
- function_names:
  - ERR_load_RSA_strings
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rsa_pss_restricted
  - pkey_rsa_init
  - pkey_rsa_copy
  - setup_tbuf
  - pkey_rsa_cleanup
  - pkey_rsa_sign
  - pkey_rsa_verifyrecover
  - pkey_rsa_verify
  - pkey_rsa_encrypt
  - pkey_rsa_decrypt
  - check_padding_md
  - pkey_rsa_ctrl
  - pkey_rsa_ctrl_str
  - rsa_set_pss_param
  - pkey_rsa_keygen
  - pkey_pss_init
  source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nbits
        type: int
      - name: '*pub_exp'
        type: BIGNUM
      - name: primes
        type: int
      - name: gentmp[2]
        type: int
      - name: pad_mode
        type: int
      - name: '*md'
        type: EVP_MD
      - name: '*mgf1md'
        type: EVP_MD
      - name: saltlen
        type: int
      - name: min_saltlen
        type: int
      - name: '*tbuf'
        type: unsigned char
      - name: '*oaep_label'
        type: unsigned char
      - name: oaep_labellen
        type: size_t
      item_type: struct
      name: RSA_PKEY_CTX
      pos:
        line_end: 47
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/rsa/rsa_pmeth.c
    typedefs: []
    union: []
- function_names:
  - DES_options
  - DES_ecb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/ecb_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_ecb3_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/ecb3_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_cfb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/cfb64enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_encrypt1
  - DES_encrypt2
  - DES_encrypt3
  - DES_decrypt3
  - DES_ede3_cbc_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/des_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_cbc_cksum
  source_file: /src/openssl-1.1.1g/crypto/des/cbc_cksm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_ofb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/ofb_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_xcbc_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/xcbc_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPENSSL_IMPLEMENT_GLOBAL
  - DES_check_key_parity
  - DES_is_weak_key
  - HPERM_OP
  - DES_set_key
  - DES_set_key_checked
  - DES_set_key_unchecked
  - DES_key_sched
  source_file: /src/openssl-1.1.1g/crypto/des/set_key.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_WEAK_KEY
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/openssl-1.1.1g/crypto/des/set_key.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_ofb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/ofb64enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PERM_OP
  - HPERM_OP
  - fcrypt_body
  source_file: /src/openssl-1.1.1g/crypto/des/fcrypt_b.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/des/cbc_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - c2l
  - c2ln
  - l2c
  - n2l
  - l2n
  - l2cn
  - ROTATE
  - ROTATE
  - ROTATE
  - ROTATE
  - LOAD_DATA_tmp
  - LOAD_DATA
  - LOAD_DATA_tmp
  - LOAD_DATA
  - D_ENCRYPT
  - PERM_OP
  - IP
  - FP
  source_file: /src/openssl-1.1.1g/crypto/des/des_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_EXTERN
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/crypto/des/des_local.h
      type_or_value: OPENSSL_EXPORT
    - item_type: preproc_def
      name: ITERATIONS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/crypto/des/des_local.h
      type_or_value: '16'
    - item_type: preproc_def
      name: HALF_ITERATIONS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/crypto/des/des_local.h
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_ede3_ofb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/ofb64ede.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_ncbc_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/ncbc_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/crypto/des/spr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_random_key
  source_file: /src/openssl-1.1.1g/crypto/des/rand_key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_pcbc_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/pcbc_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_ede3_cfb64_encrypt
  - DES_ede3_cfb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/cfb64ede.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_cfb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/des/cfb_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Q_B0
  - Q_B1
  - Q_B2
  - Q_B3
  - DES_quad_cksum
  source_file: /src/openssl-1.1.1g/crypto/des/qud_cksm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NOISE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/crypto/des/qud_cksm.c
      type_or_value: ((DES_LONG)83653421L)
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_string_to_key
  - DES_string_to_2keys
  source_file: /src/openssl-1.1.1g/crypto/des/str2key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DES_crypt
  - DES_fcrypt
  source_file: /src/openssl-1.1.1g/crypto/des/fcrypt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHARSET_EBCDIC
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/crypto/des/fcrypt.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC5_32_set_key
  source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_skey.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC5_32_cbc_encrypt
  - RC5_32_encrypt
  - RC5_32_decrypt
  source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC5_32_ofb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/rc5/rc5ofb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC5_32_ecb_encrypt
  source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_ecb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - c2l
  - c2ln
  - l2c
  - l2cn
  - n2ln
  - l2nn
  - n2l
  - l2n
  - ROTATE_l32
  - ROTATE_r32
  - ROTATE_l32
  - ROTATE_r32
  - ROTATE_l32
  - ROTATE_r32
  - ROTATE_l32
  - ROTATE_r32
  - E_RC5_32
  - D_RC5_32
  source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC5_32_MASK
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
      type_or_value: 0xffffffffL
    - item_type: preproc_def
      name: RC5_16_P
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
      type_or_value: '0xB7E1'
    - item_type: preproc_def
      name: RC5_16_Q
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
      type_or_value: '0x9E37'
    - item_type: preproc_def
      name: RC5_32_P
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
      type_or_value: 0xB7E15163L
    - item_type: preproc_def
      name: RC5_32_Q
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
      type_or_value: 0x9E3779B9L
    - item_type: preproc_def
      name: RC5_64_P
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
      type_or_value: 0xB7E151628AED2A6BLL
    - item_type: preproc_def
      name: RC5_64_Q
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/openssl-1.1.1g/crypto/rc5/rc5_local.h
      type_or_value: 0x9E3779B97F4A7C15LL
    structs: []
    typedefs: []
    union: []
- function_names:
  - RC5_32_cfb64_encrypt
  source_file: /src/openssl-1.1.1g/crypto/rc5/rc5cfb64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unimplemented
  - OPENSSL_Uplink
  - LAZY
  - main
  source_file: /src/openssl-1.1.1g/ms/uplink.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/ms/uplink.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UP_stdin
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(void *(*)(void))OPENSSL_UplinkTable[APPLINK_STDIN])()
    - item_type: preproc_def
      name: UP_stdout
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(void *(*)(void))OPENSSL_UplinkTable[APPLINK_STDOUT])()
    - item_type: preproc_def
      name: UP_stderr
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(void *(*)(void))OPENSSL_UplinkTable[APPLINK_STDERR])()
    - item_type: preproc_def
      name: UP_fprintf
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(void *,const char *,...))OPENSSL_UplinkTable[APPLINK_FPRINTF])
    - item_type: preproc_def
      name: UP_fgets
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(char *(*)(char *,int,void *))OPENSSL_UplinkTable[APPLINK_FGETS])
    - item_type: preproc_def
      name: UP_fread
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(size_t (*)(void *,size_t,size_t,void *))OPENSSL_UplinkTable[APPLINK_FREAD])
    - item_type: preproc_def
      name: UP_fwrite
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(size_t (*)(const void *,size_t,size_t,void *))OPENSSL_UplinkTable[APPLINK_FWRITE])
    - item_type: preproc_def
      name: UP_fsetmod
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(void *,char))OPENSSL_UplinkTable[APPLINK_FSETMOD])
    - item_type: preproc_def
      name: UP_feof
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FEOF])
    - item_type: preproc_def
      name: UP_fclose
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FCLOSE])
    - item_type: preproc_def
      name: UP_fopen
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(void *(*)(const char *,const char *))OPENSSL_UplinkTable[APPLINK_FOPEN])
    - item_type: preproc_def
      name: UP_fseek
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(void *,long,int))OPENSSL_UplinkTable[APPLINK_FSEEK])
    - item_type: preproc_def
      name: UP_ftell
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(long (*)(void *))OPENSSL_UplinkTable[APPLINK_FTELL])
    - item_type: preproc_def
      name: UP_fflush
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FFLUSH])
    - item_type: preproc_def
      name: UP_ferror
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FERROR])
    - item_type: preproc_def
      name: UP_clearerr
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(void (*)(void *))OPENSSL_UplinkTable[APPLINK_CLEARERR])
    - item_type: preproc_def
      name: UP_fileno
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FILENO])
    - item_type: preproc_def
      name: UP_open
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(const char *,int,...))OPENSSL_UplinkTable[APPLINK_OPEN])
    - item_type: preproc_def
      name: UP_read
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(ossl_ssize_t (*)(int,void *,size_t))OPENSSL_UplinkTable[APPLINK_READ])
    - item_type: preproc_def
      name: UP_write
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(ossl_ssize_t (*)(int,const void *,size_t))OPENSSL_UplinkTable[APPLINK_WRITE])
    - item_type: preproc_def
      name: UP_lseek
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(long (*)(int,long,int))OPENSSL_UplinkTable[APPLINK_LSEEK])
    - item_type: preproc_def
      name: UP_close
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/ms/uplink.h
      type_or_value: (*(int (*)(int))OPENSSL_UplinkTable[APPLINK_CLOSE])
    structs: []
    typedefs: []
    union: []
- function_names:
  - app_stdin
  - app_stdout
  - app_stderr
  - app_feof
  - app_ferror
  - app_clearerr
  - app_fileno
  - app_fsetmod
  - OPENSSL_Applink
  source_file: /src/openssl-1.1.1g/ms/applink.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APPLINK_STDIN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '1'
    - item_type: preproc_def
      name: APPLINK_STDOUT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '2'
    - item_type: preproc_def
      name: APPLINK_STDERR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '3'
    - item_type: preproc_def
      name: APPLINK_FPRINTF
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '4'
    - item_type: preproc_def
      name: APPLINK_FGETS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '5'
    - item_type: preproc_def
      name: APPLINK_FREAD
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '6'
    - item_type: preproc_def
      name: APPLINK_FWRITE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '7'
    - item_type: preproc_def
      name: APPLINK_FSETMOD
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '8'
    - item_type: preproc_def
      name: APPLINK_FEOF
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '9'
    - item_type: preproc_def
      name: APPLINK_FCLOSE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '10      '
    - item_type: preproc_def
      name: APPLINK_FOPEN
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '11      '
    - item_type: preproc_def
      name: APPLINK_FSEEK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '12'
    - item_type: preproc_def
      name: APPLINK_FTELL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '13'
    - item_type: preproc_def
      name: APPLINK_FFLUSH
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '14'
    - item_type: preproc_def
      name: APPLINK_FERROR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '15'
    - item_type: preproc_def
      name: APPLINK_CLEARERR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '16'
    - item_type: preproc_def
      name: APPLINK_FILENO
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '17      '
    - item_type: preproc_def
      name: APPLINK_OPEN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '18      '
    - item_type: preproc_def
      name: APPLINK_READ
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '19'
    - item_type: preproc_def
      name: APPLINK_WRITE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '20'
    - item_type: preproc_def
      name: APPLINK_LSEEK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '21'
    - item_type: preproc_def
      name: APPLINK_CLOSE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '22'
    - item_type: preproc_def
      name: APPLINK_MAX
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/ms/applink.c
      type_or_value: '22      '
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_time
  - test_gmtime
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/gmdifftest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SECS_PER_DAY
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/openssl-1.1.1g/test/gmdifftest.c
      type_or_value: (24 * 60 * 60)
    structs: []
    typedefs: []
    union: []
- function_names:
  - nelem
  - test_zu
  - test_j
  - dofptest
  - test_fp
  - test_big
  - setup_tests
  - test_open_streams
  - test_close_streams
  - test_vprintf_stdout
  - test_vprintf_stderr
  - test_flush_stdout
  - test_flush_stderr
  source_file: /src/openssl-1.1.1g/test/bioprinttest.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: value
        type: size_t
      - name: '*format'
        type: char
      - name: '*expected'
        type: char
      item_type: struct
      name: z_data_st
      pos:
        line_end: 113
        line_start: 109
        source_file: /src/openssl-1.1.1g/test/bioprinttest.c
    - fields:
      - name: value
        type: uint64_t
      - name: '*format'
        type: char
      - name: '*expected'
        type: char
      item_type: struct
      name: j_data_st
      pos:
        line_end: 145
        line_start: 141
        source_file: /src/openssl-1.1.1g/test/bioprinttest.c
    - fields:
      - name: p
        type: int
      - name: '*w'
        type: char
      item_type: struct
      name: pw_st
      pos:
        line_end: 174
        line_start: 171
        source_file: /src/openssl-1.1.1g/test/bioprinttest.c
    typedefs: []
    union: []
- function_names:
  - test_pbelu
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/pbelutest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_rand.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_certs
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/x509aux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*(*d2i_X509_t)(X509 **, const unsigned char **, long)'
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/openssl-1.1.1g/test/x509aux.c
      type: X509
    - item_type: typedef
      name: (*i2d_X509_t)(X509 *, unsigned char **)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/openssl-1.1.1g/test/x509aux.c
      type: int
    union: []
- function_names:
  - run_thread
  - wait_for_thread
  - thread_run
  - run_thread
  - wait_for_thread
  - thread_run
  - run_thread
  - wait_for_thread
  - test_lock
  - once_do_run
  - once_run_thread_cb
  - test_once
  - thread_local_destructor
  - thread_local_thread_cb
  - test_thread_local
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/threadstest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: thread_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/openssl-1.1.1g/test/threadstest.c
      type: unsigned int
    - item_type: typedef
      name: thread_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/openssl-1.1.1g/test/threadstest.c
      type: HANDLE
    - item_type: typedef
      name: thread_t
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/openssl-1.1.1g/test/threadstest.c
      type: pthread_t
    union: []
- function_names:
  - load_dsa_params
  - genkeys
  - sign_and_verify
  - dsa_exact_size_test
  - dsa_small_digest_test
  - dsa_large_digest_test
  - cleanup_tests
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/dsa_no_digest_size_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/test/evp_test.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: EVP_TEST_BUFFER
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/openssl-1.1.1g/test/evp_test.h
      type: evp_test_buffer_st
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_x509.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_table
  - test_table_pos
  - test_table_neg
  - test_table_pos_64bit
  - test_table_neg_64bit
  - test_table_compare
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/asn1_time_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TODAY_GEN
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/openssl-1.1.1g/test/asn1_time_test.c
      type_or_value: '{ sizeof(TODAY_GEN_STR)-1, V_ASN1_GENERALIZEDTIME, TODAY_GEN_STR,
        0 }'
    - item_type: preproc_def
      name: TOMORROW_GEN
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/openssl-1.1.1g/test/asn1_time_test.c
      type_or_value: '{ sizeof(TOMORROW_GEN_STR)-1, V_ASN1_GENERALIZEDTIME, TOMORROW_GEN_STR,
        0 }'
    - item_type: preproc_def
      name: TODAY_UTC
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/openssl-1.1.1g/test/asn1_time_test.c
      type_or_value: '{ sizeof(TODAY_UTC_STR)-1, V_ASN1_UTCTIME, TODAY_UTC_STR, 0
        }'
    - item_type: preproc_def
      name: TOMORROW_UTC
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/openssl-1.1.1g/test/asn1_time_test.c
      type_or_value: '{ sizeof(TOMORROW_UTC_STR)-1, V_ASN1_UTCTIME, TOMORROW_UTC_STR,
        0 }'
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: type
        type: int
      - name: expected_type
        type: int
      - name: check_result
        type: int
      - name: t
        type: time_t
      - name: cmp_result
        type: int
      - name: convert_result
        type: int
      item_type: struct
      name: testdata
      pos:
        line_end: 28
        line_start: 20
        source_file: /src/openssl-1.1.1g/test/asn1_time_test.c
    - fields:
      - name: t1
        type: ASN1_TIME
      - name: t2
        type: ASN1_TIME
      - name: result
        type: int
      item_type: struct
      name: compare_testdata
      pos:
        line_end: 281
        line_start: 277
        source_file: /src/openssl-1.1.1g/test/asn1_time_test.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_idea.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dh_test
  - cb
  - make_rfc5114_td
  - rfc5114_test
  - rfc7919_test
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/dhtest.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*(*get_param) (void)'
        type: DH
      - name: '*xA'
        type: unsigned char
      - name: xA_len
        type: size_t
      - name: '*yA'
        type: unsigned char
      - name: yA_len
        type: size_t
      - name: '*xB'
        type: unsigned char
      - name: xB_len
        type: size_t
      - name: '*yB'
        type: unsigned char
      - name: yB_len
        type: size_t
      - name: '*Z'
        type: unsigned char
      - name: Z_len
        type: size_t
      item_type: struct
      name: rfc5114_td
      pos:
        line_end: 497
        line_start: 485
        source_file: /src/openssl-1.1.1g/test/dhtest.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_camellia.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bio_f_async_filter
  - async_new
  - async_free
  - async_read
  - async_write
  - async_ctrl
  - async_gets
  - async_puts
  - test_asyncio
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/asynciotest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIO_TYPE_ASYNC_FILTER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/test/asynciotest.c
      type_or_value: (0x80 | BIO_TYPE_FILTER)
    - item_type: preproc_def
      name: MIN_RECORD_LEN
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/openssl-1.1.1g/test/asynciotest.c
      type_or_value: '6'
    - item_type: preproc_def
      name: CONTENTTYPEPOS
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/openssl-1.1.1g/test/asynciotest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: VERSIONHIPOS
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/openssl-1.1.1g/test/asynciotest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: VERSIONLOPOS
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/openssl-1.1.1g/test/asynciotest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DATAPOS
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/openssl-1.1.1g/test/asynciotest.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_ATTEMPTS
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/openssl-1.1.1g/test/asynciotest.c
      type_or_value: '100'
    structs:
    - fields:
      - name: rctr
        type: unsigned int
      - name: wctr
        type: unsigned int
      item_type: struct
      name: async_ctrs
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/openssl-1.1.1g/test/asynciotest.c
    typedefs: []
    union: []
- function_names:
  - dohash
  - test_ed448
  - test_x448
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/curve448_internal_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_pkcs7.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_rc2
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/rc2test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_obj_mac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_string_tbl
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/asn1_string_table_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_pathlen
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/v3ext.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_buffer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - group_field_tests
  - field_tests
  - field_tests_ecp_simple
  - field_tests_ecp_mont
  - field_tests_ec2_simple
  - field_tests_default
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/ec_internal_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/test/ssltestlib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INJECT_PACKET
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/test/ssltestlib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: INJECT_PACKET_IGNORE_REC_SEQ
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/openssl-1.1.1g/test/ssltestlib.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MEMPACKET_CTRL_SET_DROP_EPOCH
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/test/ssltestlib.h
      type_or_value: (1 << 15)
    - item_type: preproc_def
      name: MEMPACKET_CTRL_SET_DROP_REC
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/test/ssltestlib.h
      type_or_value: (2 << 15)
    - item_type: preproc_def
      name: MEMPACKET_CTRL_GET_DROP_REC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/openssl-1.1.1g/test/ssltestlib.h
      type_or_value: (3 << 15)
    - item_type: preproc_def
      name: MEMPACKET_CTRL_SET_DUPLICATE_REC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/test/ssltestlib.h
      type_or_value: (4 << 15)
    structs: []
    typedefs:
    - item_type: typedef
      name: MEMPACKET
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/openssl-1.1.1g/test/ssltestlib.h
      type: mempacket_st
    union: []
- function_names:
  - test_ige_vectors
  - test_bi_ige_vectors
  - test_ige_enc_dec
  - test_ige_enc_chaining
  - test_ige_dec_chaining
  - test_ige_garble_forwards
  - test_bi_ige_enc_dec
  - test_bi_ige_garble1
  - test_bi_ige_garble2
  - test_bi_ige_garble3
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/igetest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/test/igetest.c
      type_or_value: '128'
    - item_type: preproc_def
      name: BIG_TEST_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/test/igetest.c
      type_or_value: '10240'
    - item_type: preproc_def
      name: MAX_VECTOR_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/test/igetest.c
      type_or_value: '64'
    structs:
    - fields:
      - name: key[16]
        type: unsigned char
      - name: iv[32]
        type: unsigned char
      - name: in[MAX_VECTOR_SIZE]
        type: unsigned char
      - name: out[MAX_VECTOR_SIZE]
        type: unsigned char
      - name: length
        type: size_t
      - name: encrypt
        type: int
      item_type: struct
      name: ige_test
      pos:
        line_end: 38
        line_start: 31
        source_file: /src/openssl-1.1.1g/test/igetest.c
    - fields:
      - name: key1[32]
        type: unsigned char
      - name: key2[32]
        type: unsigned char
      - name: iv[64]
        type: unsigned char
      - name: in[MAX_VECTOR_SIZE]
        type: unsigned char
      - name: out[MAX_VECTOR_SIZE]
        type: unsigned char
      - name: keysize
        type: size_t
      - name: length
        type: size_t
      - name: encrypt
        type: int
      item_type: struct
      name: bi_ige_test
      pos:
        line_end: 83
        line_start: 74
        source_file: /src/openssl-1.1.1g/test/igetest.c
    typedefs: []
    union: []
- function_names:
  - test_offset
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/time_offset_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: time_result
        type: int
      - name: type
        type: int
      item_type: struct
      name: TESTDATA
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/openssl-1.1.1g/test/time_offset_test.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_conf_api.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_x509_cmp_time
  - test_x509_cmp_time_current
  - test_x509_time
  - test_days
  - construct_asn1_time
  - test_x509_time_print
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/x509_time_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: type
        type: int
      - name: cmp_time
        type: time_t
      - name: expected
        type: int
      item_type: struct
      name: TESTDATA
      pos:
        line_end: 25
        line_start: 19
        source_file: /src/openssl-1.1.1g/test/x509_time_test.c
    - fields:
      - name: '*data'
        type: char
      - name: set_string
        type: int
      - name: expected
        type: int
      - name: expected_type
        type: int
      - name: '*expected_string'
        type: char
      item_type: struct
      name: TESTDATA_FORMAT
      pos:
        line_end: 45
        line_start: 27
        source_file: /src/openssl-1.1.1g/test/x509_time_test.c
    - fields:
      - name: y
        type: int
      - name: yd
        type: int
      item_type: struct
      name: "day_of_week_tests[] = {\n    /*YYYY  MM  DD  DoY  DoW */\n    { 1900,
        \ 1,  1,   0, 1 },\n    { 1900,  2, 28,  58, 3 },\n    { 1900,  3,  1,  59,
        4 },\n    { 1900, 12, 31, 364, 1 },\n    { 1901,  1,  1,   0, 2 },\n    {
        1970,  1,  1,   0, 4 },\n    { 1999,  1, 10,   9, 0 },\n    { 1999, 12, 31,
        364, 5 },\n    { 2000,  1,  1,   0, 6 },\n    { 2000,  2, 28,  58, 1 },\n
        \   { 2000,  2, 29,  59, 2 },\n    { 2000,  3,  1,  60, 3 },\n    { 2000,
        12, 31, 365, 0 },\n    { 2001,  1,  1,   0, 1 },\n    { 2008,  1,  1,   0,
        2 },\n    { 2008,  2, 28,  58, 4 },\n    { 2008,  2, 29,  59, 5 },\n    {
        2008,  3,  1,  60, 6 },\n    { 2008, 12, 31, 365, 3 },\n    { 2009,  1,  1,
        \  0, 4 },\n    { 2011,  1,  1,   0, 6 },\n    { 2011,  2, 28,  58, 1 },\n
        \   { 2011,  3,  1,  59, 2 },\n    { 2011, 12, 31, 364, 6 },\n    { 2012,
        \ 1,  1,   0, 0 },\n    { 2019,  1,  2,   1, 3 },\n    { 2019,  2,  2,  32,
        6 },\n    { 2019,  3,  2,  60, 6 },\n    { 2019,  4,  2,  91, 2 },\n    {
        2019,  5,  2, 121, 4 },\n    { 2019,  6,  2, 152, 0 },\n    { 2019,  7,  2,
        182, 2 },\n    { 2019,  8,  2, 213, 5 },\n    { 2019,  9,  2, 244, 1 },\n
        \   { 2019, 10,  2, 274, 3 },\n    { 2019, 11,  2, 305, 6 },\n    { 2019,
        12,  2, 335, 1 },\n    { 2020,  1,  2,   1, 4 },\n    { 2020,  2,  2,  32,
        0 },\n    { 2020,  3,  2,  61, 1 },\n    { 2020,  4,  2,  92, 4 },\n    {
        2020,  5,  2, 122, 6 },\n    { 2020,  6,  2, 153, 2 },\n    { 2020,  7,  2,
        183, 4 },\n    { 2020,  8,  2, 214, 0 },\n    { 2020,  9,  2, 245, 3 },\n
        \   { 2020, 10,  2, 275, 5 },\n    { 2020, 11,  2, 306, 1 },\n    { 2020,
        12,  2, 336, 3 }\n}"
      pos:
        line_end: 350
        line_start: 347
        source_file: /src/openssl-1.1.1g/test/x509_time_test.c
    - fields:
      - name: asn1
        type: ASN1_TIME
      - name: '*readable'
        type: char
      item_type: struct
      name: "x509_print_tests [] = {\n    /* Generalized Time */\n    construct_asn1_time(\"20170731222050Z\",
        V_ASN1_GENERALIZEDTIME,\n            \"Jul 31 22:20:50 2017 GMT\"),\n    /*
        Generalized Time, no seconds */\n    construct_asn1_time(\"201707312220Z\",
        V_ASN1_GENERALIZEDTIME,\n            \"Jul 31 22:20:00 2017 GMT\"),\n    /*
        Generalized Time, fractional seconds (3 digits) */\n    construct_asn1_time(\"20170731222050.123Z\",
        V_ASN1_GENERALIZEDTIME,\n            \"Jul 31 22:20:50.123 2017 GMT\"),\n
        \   /* Generalized Time, fractional seconds (1 digit) */\n    construct_asn1_time(\"20170731222050.1Z\",
        V_ASN1_GENERALIZEDTIME,\n            \"Jul 31 22:20:50.1 2017 GMT\"),\n    /*
        Generalized Time, fractional seconds (0 digit) */\n    construct_asn1_time(\"20170731222050.Z\",
        V_ASN1_GENERALIZEDTIME,\n            \"Bad time value\"),\n    /* UTC Time
        */\n    construct_asn1_time(\"170731222050Z\", V_ASN1_UTCTIME,\n            \"Jul
        31 22:20:50 2017 GMT\"),\n    /* UTC Time, no seconds */\n    construct_asn1_time(\"1707312220Z\",
        V_ASN1_UTCTIME,\n            \"Jul 31 22:20:00 2017 GMT\"),\n}"
      pos:
        line_end: 432
        line_start: 429
        source_file: /src/openssl-1.1.1g/test/x509_time_test.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_modes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - glue2bio
  - CRL_from_strings
  - X509_from_strings
  - make_CRL_stack
  - test_basic_crl
  - test_no_crl
  - test_bad_issuer_crl
  - test_known_critical_crl
  - test_unknown_critical_crl
  - test_reuse_crl
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/crltest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PARAM_TIME
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/test/crltest.c
      type_or_value: '1474934400 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_poly1305
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/poly1305_internal_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: size_t
      - name: data[1024]
        type: unsigned char
      item_type: struct
      name: SIZED_DATA
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/openssl-1.1.1g/test/poly1305_internal_test.c
    - fields:
      - name: input
        type: SIZED_DATA
      - name: key
        type: SIZED_DATA
      - name: expected
        type: SIZED_DATA
      item_type: struct
      name: TESTDATA
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/openssl-1.1.1g/test/poly1305_internal_test.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_rand_drbg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - findattr
  - parse_bigBN
  - parseBN
  - parsedecBN
  - getBN
  - getint
  - equalBN
  - rand_neg
  - test_swap
  - test_sub
  - test_div_recip
  - test_mod
  - test_modexp_mont5
  - test_gf2m_add
  - test_gf2m_mod
  - test_gf2m_mul
  - test_gf2m_sqr
  - test_gf2m_modinv
  - test_gf2m_moddiv
  - test_gf2m_modexp
  - test_gf2m_modsqrt
  - test_gf2m_modsolvequad
  - test_kronecker
  - file_sum
  - file_lshift1
  - file_lshift
  - file_rshift
  - file_square
  - file_product
  - file_quotient
  - file_modmul
  - file_modexp
  - file_exp
  - file_modsqrt
  - file_gcd
  - test_bn2padded
  - test_dec2bn
  - test_hex2bn
  - test_asc2bn
  - test_mpi
  - test_rand
  - test_negzero
  - test_badmod
  - test_expmodzero
  - test_expmodone
  - test_smallprime
  - test_smallsafeprime
  - test_is_prime
  - test_not_prime
  - test_ctx_set_ct_flag
  - test_ctx_check_ct_flag
  - test_ctx_consttime_flag
  - test_gcd_prime
  - test_mod_exp
  - test_mod_exp_consttime
  - file_test_run
  - run_file_tests
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/bntest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/test/bntest.c
      type_or_value: _stricmp
    - item_type: preproc_def
      name: HAVE_BN_PADDED
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/test/bntest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_BN_SQRT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/test/bntest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TOP_BIT_ON
      pos:
        line_end: 1682
        line_start: 1681
        source_file: /src/openssl-1.1.1g/test/bntest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BOTTOM_BIT_NOTOUCH
      pos:
        line_end: 1683
        line_start: 1682
        source_file: /src/openssl-1.1.1g/test/bntest.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*func)(STANZA *s)
        type: int
      item_type: struct
      name: filetest_st
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/openssl-1.1.1g/test/bntest.c
    - fields:
      - name: '*base10'
        type: char
      - name: '*mpi'
        type: char
      - name: mpi_len
        type: size_t
      item_type: struct
      name: mpitest_st
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/openssl-1.1.1g/test/bntest.c
    - fields:
      - name: '*base'
        type: char
      - name: '*exp'
        type: char
      - name: '*mod'
        type: char
      - name: '*res'
        type: char
      item_type: struct
      name: mod_exp_test_st
      pos:
        line_end: 2412
        line_start: 2406
        source_file: /src/openssl-1.1.1g/test/bntest.c
    typedefs: []
    union: []
- function_names:
  - cookie_gen
  - cookie_verify
  - dtls_listen_test
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/dtlsv1listentest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COOKIE_LEN
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/openssl-1.1.1g/test/dtlsv1listentest.c
      type_or_value: '20'
    structs:
    - fields:
      - name: '*in'
        type: unsigned char
      - name: inlen
        type: unsigned int
      - name: outtype
        type: enum {GOOD, VERIFY, DROP}
      item_type: struct
      name: tests
      pos:
        line_end: 245
        line_start: 236
        source_file: /src/openssl-1.1.1g/test/dtlsv1listentest.c
    typedefs: []
    union: []
- function_names:
  - run_srp
  - check_bn
  - run_srp_kat
  - run_srp_tests
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/srptest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RANDOM_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/test/srptest.c
      type_or_value: '32         '
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_tls1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_afalg_aes_cbc
  - global_init
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/afalgtest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/test/afalgtest.c
      type_or_value: '17'
    - item_type: preproc_def
      name: K_MAJ
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/openssl-1.1.1g/test/afalgtest.c
      type_or_value: '4'
    - item_type: preproc_def
      name: K_MIN1
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/openssl-1.1.1g/test/afalgtest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: K_MIN2
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/openssl-1.1.1g/test/afalgtest.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_x509v3.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_srtp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_cms.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - shlib_load
  - shlib_sym
  - shlib_close
  - shlib_load
  - shlib_sym
  - shlib_close
  - atexit_handler
  - test_lib
  - main
  source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
  types:
    enum:
    - enumerators:
      - name: CRYPTO_FIRST
      - name: DSO_REFTEST
      - name: SSL_FIRST
      - name: JUST_CRYPTO
      - name: NO_ATEXIT
      item_type: enum
      name: test_types_en
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
    preproc_defs:
    - item_type: preproc_def
      name: SHLIB_INIT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: SHLIB_INIT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type_or_value: '0'
    structs: []
    typedefs:
    - item_type: typedef
      name: DSO
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: void
    - item_type: typedef
      name: '* (*TLS_method_t)(void)'
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: SSL_METHOD
    - item_type: typedef
      name: '* (*SSL_CTX_new_t)(const SSL_METHOD *meth)'
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: SSL_CTX
    - item_type: typedef
      name: (*SSL_CTX_free_t)(SSL_CTX *)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: void
    - item_type: typedef
      name: (*OPENSSL_init_crypto_t)(uint64_t, void *)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: int
    - item_type: typedef
      name: (*OPENSSL_atexit_t)(void (*handler)(void))
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: int
    - item_type: typedef
      name: (*ERR_get_error_t)(void)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: unsigned long
    - item_type: typedef
      name: (*OpenSSL_version_num_t)(void)
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: unsigned long
    - item_type: typedef
      name: '* (*DSO_dsobyaddr_t)(void (*addr)(void), int flags)'
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: DSO
    - item_type: typedef
      name: (*DSO_free_t)(DSO *dso)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: int
    - item_type: typedef
      name: '*SHLIB'
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: void
    - item_type: typedef
      name: '*SHLIB_SYM'
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: void
    - item_type: typedef
      name: SHLIB
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: HINSTANCE
    - item_type: typedef
      name: '*SHLIB_SYM'
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
      type: void
    union:
    - fields:
      - name: (*func)(void)
        type: void
      - name: sym
        type: SHLIB_SYM
      item_type: union
      name: symbols[3]
      pos:
        line_end: 126
        line_start: 123
        source_file: /src/openssl-1.1.1g/test/shlibloadtest.c
- function_names: []
  source_file: /src/openssl-1.1.1g/test/handshake_helper.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: result
        type: ssl_test_result_t
      - name: client_alert_sent
        type: int
      - name: client_num_fatal_alerts_sent
        type: int
      - name: client_alert_received
        type: int
      - name: server_alert_sent
        type: int
      - name: server_num_fatal_alerts_sent
        type: int
      - name: server_alert_received
        type: int
      - name: server_protocol
        type: int
      - name: client_protocol
        type: int
      - name: servername
        type: ssl_servername_t
      - name: session_ticket
        type: ssl_session_ticket_t
      - name: compression
        type: int
      - name: session_ticket_do_not_call
        type: int
      - name: '*client_npn_negotiated'
        type: char
      - name: '*server_npn_negotiated'
        type: char
      - name: '*client_alpn_negotiated'
        type: char
      - name: '*server_alpn_negotiated'
        type: char
      - name: client_resumed
        type: int
      - name: server_resumed
        type: int
      - name: tmp_key_type
        type: int
      - name: server_cert_type
        type: int
      - name: server_sign_hash
        type: int
      - name: server_sign_type
        type: int
      - name: '*server_ca_names'
        type: STACK_OF
      - name: client_cert_type
        type: int
      - name: client_sign_hash
        type: int
      - name: client_sign_type
        type: int
      - name: '*client_ca_names'
        type: STACK_OF
      - name: session_id
        type: ssl_session_id_t
      - name: '*cipher'
        type: char
      - name: '*result_session_ticket_app_data'
        type: char
      item_type: struct
      name: handshake_result
      pos:
        line_end: 69
        line_start: 14
        source_file: /src/openssl-1.1.1g/test/handshake_helper.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/test/drbg_cavs_data.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_bio_cipher
  - do_test_bio_cipher
  - test_bio_enc_aes_128_cbc
  - test_bio_enc_aes_128_ctr
  - test_bio_enc_aes_256_cfb
  - test_bio_enc_aes_256_ofb
  - test_bio_enc_chacha20
  - test_bio_enc_chacha20_poly1305
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/bio_enc_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENCRYPT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/openssl-1.1.1g/test/bio_enc_test.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DECRYPT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/test/bio_enc_test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DATA_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/test/bio_enc_test.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_IV
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/test/bio_enc_test.c
      type_or_value: '32'
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/test/bio_enc_test.c
      type_or_value: (DATA_SIZE + MAX_IV)
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_pem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_b64
  - test_invalid
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/pemtest.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*raw'
        type: char
      - name: '*encoded'
        type: char
      item_type: struct
      name: TESTDATA
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/openssl-1.1.1g/test/pemtest.c
    typedefs: []
    union: []
- function_names:
  - test_binary_op
  - test_binary_op_8
  - test_binary_op_s
  - test_binary_op_64
  - test_is_zero
  - test_is_zero_8
  - test_is_zero_32
  - test_is_zero_s
  - test_select
  - test_select_8
  - test_select_32
  - test_select_s
  - test_select_64
  - test_select_int
  - test_eq_int_8
  - test_eq_s
  - test_eq_int
  - test_sizeofs
  - test_binops
  - test_binops_8
  - test_binops_s
  - test_signed
  - test_8values
  - test_32values
  - test_64values
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/constant_time_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_dsa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_ts.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_kdf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - make_drbg_test_data
  - make_drbg_test_data_use_df
  - make_drbg_test_data_no_df
  - kat_entropy
  - kat_nonce
  - uninstantiate
  - single_kat
  - init
  - instantiate
  - error_check
  - test_kats
  - test_error_checks
  - get_hook_ctx
  - get_entropy_hook
  - hook_drbg
  - unhook_drbg
  - reset_hook_ctx
  - reset_drbg_hook_ctx
  - test_drbg_reseed
  - test_drbg_reseed_after_fork
  - test_rand_drbg_reseed
  - run_multi_thread_test
  - thread_run
  - run_thread
  - wait_for_thread
  - thread_run
  - run_thread
  - wait_for_thread
  - test_multi_thread
  - test_rand_seed
  - test_rand_add
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/drbgtest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THREADS
      pos:
        line_end: 928
        line_start: 927
        source_file: /src/openssl-1.1.1g/test/drbgtest.c
      type_or_value: '3'
    structs:
    - fields:
      - name: post
        type: int
      - name: nid
        type: int
      - name: flags
        type: unsigned int
      - name: '*entropy'
        type: unsigned char
      - name: entropylen
        type: size_t
      - name: '*nonce'
        type: unsigned char
      - name: noncelen
        type: size_t
      - name: '*pers'
        type: unsigned char
      - name: perslen
        type: size_t
      - name: '*adin'
        type: unsigned char
      - name: adinlen
        type: size_t
      - name: '*entropyreseed'
        type: unsigned char
      - name: entropyreseedlen
        type: size_t
      - name: '*adinreseed'
        type: unsigned char
      - name: adinreseedlen
        type: size_t
      - name: '*adin2'
        type: unsigned char
      - name: adin2len
        type: size_t
      - name: '*expected'
        type: unsigned char
      - name: exlen
        type: size_t
      - name: '*kat2'
        type: unsigned char
      - name: kat2len
        type: size_t
      - name: '*entropy_pr'
        type: unsigned char
      - name: entropylen_pr
        type: size_t
      - name: '*nonce_pr'
        type: unsigned char
      - name: noncelen_pr
        type: size_t
      - name: '*pers_pr'
        type: unsigned char
      - name: perslen_pr
        type: size_t
      - name: '*adin_pr'
        type: unsigned char
      - name: adinlen_pr
        type: size_t
      - name: '*entropypr_pr'
        type: unsigned char
      - name: entropyprlen_pr
        type: size_t
      - name: '*ading_pr'
        type: unsigned char
      - name: adinglen_pr
        type: size_t
      - name: '*entropyg_pr'
        type: unsigned char
      - name: entropyglen_pr
        type: size_t
      - name: '*kat_pr'
        type: unsigned char
      - name: katlen_pr
        type: size_t
      - name: '*kat2_pr'
        type: unsigned char
      - name: kat2len_pr
        type: size_t
      item_type: struct
      name: drbg_selftest_data_st
      pos:
        line_end: 78
        line_start: 34
        source_file: /src/openssl-1.1.1g/test/drbgtest.c
    - fields:
      - name: '*entropy'
        type: unsigned char
      - name: entropylen
        type: size_t
      - name: entropycnt
        type: int
      - name: '*nonce'
        type: unsigned char
      - name: noncelen
        type: size_t
      - name: noncecnt
        type: int
      item_type: struct
      name: test_ctx_st
      pos:
        line_end: 129
        line_start: 122
        source_file: /src/openssl-1.1.1g/test/drbgtest.c
    - fields:
      - name: '*drbg'
        type: RAND_DRBG
      - name: get_entropy
        type: RAND_DRBG_get_entropy_fn
      - name: fail
        type: int
      - name: reseed_count
        type: int
      item_type: struct
      name: hook_ctx_st
      pos:
        line_end: 508
        line_start: 496
        source_file: /src/openssl-1.1.1g/test/drbgtest.c
    typedefs:
    - item_type: typedef
      name: thread_t
      pos:
        line_end: 872
        line_start: 872
        source_file: /src/openssl-1.1.1g/test/drbgtest.c
      type: HANDLE
    - item_type: typedef
      name: thread_t
      pos:
        line_end: 898
        line_start: 898
        source_file: /src/openssl-1.1.1g/test/drbgtest.c
      type: pthread_t
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_bn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cb_client_npn
  - cb_server_npn
  - cb_server_rejects_npn
  - verify_npn
  - servername_cb
  - verify_servername
  - next_protos_parse
  - cb_server_alpn
  - verify_alpn
  - serverinfo_cli_parse_cb
  - verify_serverinfo
  - custom_ext_0_cli_add_cb
  - custom_ext_0_cli_parse_cb
  - custom_ext_1_cli_add_cb
  - custom_ext_1_cli_parse_cb
  - custom_ext_2_cli_add_cb
  - custom_ext_2_cli_parse_cb
  - custom_ext_3_cli_add_cb
  - custom_ext_3_cli_parse_cb
  - custom_ext_0_srv_parse_cb
  - custom_ext_0_srv_add_cb
  - custom_ext_1_srv_parse_cb
  - custom_ext_1_srv_add_cb
  - custom_ext_2_srv_parse_cb
  - custom_ext_2_srv_add_cb
  - custom_ext_3_srv_parse_cb
  - custom_ext_3_srv_add_cb
  - sv_usage
  - print_key_details
  - print_details
  - protocol_from_string
  - read_session
  - write_session
  - set_protocol_version
  - main
  - doit_localhost
  - doit_biopair
  - doit
  - verify_callback
  - app_verify_callback
  - get_dh512
  - get_dh1024
  - get_dh1024dsa
  - psk_key2bn
  - psk_client_callback
  - psk_server_callback
  source_file: /src/openssl-1.1.1g/test/ssltest_old.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _BSD_SOURCE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _DEFAULT_SOURCE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '500'
    - item_type: preproc_def
      name: _XOPEN_SOURCE_EXTENDED
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COMP_ZLIB
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1'
    - item_type: preproc_def
      name: APP_CALLBACK_STRING
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '"Test Callback Argument"'
    - item_type: preproc_def
      name: TACK_EXT_TYPE
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '62208'
    - item_type: preproc_def
      name: CUSTOM_EXT_TYPE_0
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: CUSTOM_EXT_TYPE_1
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1001'
    - item_type: preproc_def
      name: CUSTOM_EXT_TYPE_2
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1002'
    - item_type: preproc_def
      name: CUSTOM_EXT_TYPE_3
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1003'
    - item_type: preproc_def
      name: W_READ
      pos:
        line_end: 2523
        line_start: 2522
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1'
    - item_type: preproc_def
      name: W_WRITE
      pos:
        line_end: 2524
        line_start: 2523
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '2'
    - item_type: preproc_def
      name: C_DONE
      pos:
        line_end: 2525
        line_start: 2524
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '1'
    - item_type: preproc_def
      name: S_DONE
      pos:
        line_end: 2526
        line_start: 2525
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*string'
        type: char
      - name: app_verify
        type: int
      item_type: struct
      name: app_verify_arg
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
    - fields:
      - name: '*name'
        type: char
      - name: version
        type: int
      item_type: struct
      name: protocol_versions
      pos:
        line_end: 801
        line_start: 798
        source_file: /src/openssl-1.1.1g/test/ssltest_old.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/memleaktest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - display_engine_list
  - test_engines
  - test_encrypt
  - test_pkey_meths
  - get_test_pkey
  - test_redirect
  - global_init
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/enginetest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUMTOADD
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/openssl-1.1.1g/test/enginetest.c
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_x509_check_cert_pkey
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/x509_check_cert_pkey_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_cast.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - group_order_tests
  - prime_field_tests
  - char2_curve_test
  - char2_field_tests
  - internal_curve_test
  - internal_curve_test_method
  - nistp_single_test
  - underflow_test
  - are_ec_nids_compatible
  - check_named_curve_from_ecparameters
  - parameter_test
  - cofactor_range_test
  - cardinality_test
  - ec_point_hex2point_test_helper
  - ec_point_hex2point_test
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/ectest.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*p'
        type: char
      - name: '*a'
        type: char
      - name: '*b'
        type: char
      - name: '*x'
        type: char
      - name: '*y'
        type: char
      - name: ybit
        type: int
      - name: '*order'
        type: char
      - name: '*cof'
        type: char
      - name: degree
        type: int
      item_type: struct
      name: c2_curve_test
      pos:
        line_end: 646
        line_start: 635
        source_file: /src/openssl-1.1.1g/test/ectest.c
    - fields:
      - name: '*(*meth) (void)'
        type: EC_METHOD
      - name: degree
        type: int
      - name: '*p'
        type: char
      item_type: struct
      name: nistp_test_params
      pos:
        line_end: 1175
        line_start: 1166
        source_file: /src/openssl-1.1.1g/test/ectest.c
    typedefs: []
    union: []
- function_names:
  - get_std_name_by_id
  - test_cipher_name
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/ciphername_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: int
      - name: '*name'
        type: char
      item_type: struct
      name: cipher_id_name
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/openssl-1.1.1g/test/ciphername_test.c
    typedefs: []
    union: []
- function_names:
  - test_sanity_null_zero
  - test_sanity_enum_size
  - test_sanity_twos_complement
  - test_sanity_sign
  - test_sanity_unsigned_conversion
  - test_sanity_range
  - test_sanity_memcmp
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/sanitytest.c
  types:
    enum:
    - enumerators:
      - name: sa
      - name: sc
      - name: sb
      item_type: enum
      name: smallchoices
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/openssl-1.1.1g/test/sanitytest.c
    - enumerators:
      - name: ma
      - name: mb
      - name: md
      - name: mc
      - name: me
      - name: mf
      - name: mg
      - name: mh
      - name: mi
      - name: mj
      - name: mk
      - name: ml
      item_type: enum
      name: medchoices
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/openssl-1.1.1g/test/sanitytest.c
    - enumerators:
      - name: c01
      - name: i02
      - name: i05
      - name: e07
      - name: a09
      - name: e10
      - name: b08
      - name: f06
      - name: j01
      - name: f03
      - name: j04
      - name: h09
      - name: e01
      - name: a03
      - name: e04
      - name: g07
      - name: a06
      - name: c09
      - name: g10
      - name: d08
      - name: h06
      - name: b05
      - name: a01
      - name: b02
      - name: h03
      - name: j09
      - name: e02
      - name: a04
      - name: g08
      - name: a07
      - name: e05
      - name: a10
      - name: f01
      - name: b03
      - name: f04
      - name: h07
      - name: b06
      - name: d09
      - name: h10
      - name: g05
      - name: g02
      - name: c04
      - name: c07
      - name: i08
      - name: c10
      - name: j07
      - name: h01
      - name: d03
      - name: h04
      - name: d06
      - name: f09
      - name: j10
      - name: a02
      - name: g03
      - name: a05
      - name: c08
      - name: g06
      - name: i09
      - name: b01
      - name: h02
      - name: d04
      - name: d07
      - name: h05
      - name: j08
      - name: d10
      - name: e08
      - name: i06
      - name: c05
      - name: c02
      - name: i03
      - name: f07
      - name: j05
      - name: d01
      - name: j02
      - name: b09
      - name: f10
      - name: g01
      - name: c03
      - name: g04
      - name: i07
      - name: c06
      - name: e09
      - name: i10
      - name: d05
      - name: d02
      - name: j03
      - name: f08
      - name: j06
      - name: a08
      - name: i01
      - name: e03
      - name: i04
      - name: e06
      - name: g09
      - name: f05
      - name: b07
      - name: f02
      - name: b04
      - name: h08
      - name: b10
      - name: xxx
      item_type: enum
      name: largechoices
      pos:
        line_end: 39
        line_start: 28
        source_file: /src/openssl-1.1.1g/test/sanitytest.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pt
  - test_des_ecb
  - test_des_ede_ecb
  - test_des_cbc
  - test_des_ede_cbc
  - test_ede_cbc
  - test_input_align
  - test_output_align
  - test_des_crypt
  - test_des_pcbc
  - cfb_test
  - test_des_cfb8
  - test_des_cfb16
  - test_des_cfb32
  - test_des_cfb48
  - test_des_cfb64
  - test_des_ede_cfb64
  - test_des_ofb
  - test_des_ofb64
  - test_des_ede_ofb64
  - test_des_cbc_cksum
  - test_des_quad_cksum
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/destest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_cs_eq
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/test/destest.c
      type_or_value: TEST_uint_eq
    - item_type: preproc_def
      name: DATA_BUF_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/test/destest.c
      type_or_value: '20'
    - item_type: preproc_def
      name: NUM_TESTS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/test/destest.c
      type_or_value: '34'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BN_print_var
  - a_is_zero_mod_one
  - test_mod_exp_zero
  - test_mod_exp
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/exptest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_BITS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/test/exptest.c
      type_or_value: (BN_BITS2 * 4)
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_engine.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - change_rand
  - restore_rand
  - fbytes
  - x9_62_tests
  - test_builtin
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/ecdsatest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_lhash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/test/drbgtest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_pem_password_cb
  - test_old
  - test_new_ui
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/uitest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_ui.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_encrypt_decrypt
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/cmsapitest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_bio_callback
  - test_bio_callback
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/bio_callback_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXCOUNT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/openssl-1.1.1g/test/bio_callback_test.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_ebcdic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_objects.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_PRF
  - client_session
  - validate_client_hello
  - send_hello_verify
  - send_server_hello
  - send_record
  - send_finished
  - validate_ccs
  - NODROP
  - DROP
  - test_bad_dtls
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/bad_dtls_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAC_OFFSET
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/openssl-1.1.1g/test/bad_dtls_test.c
      type_or_value: (DTLS1_RT_HEADER_LENGTH + DTLS1_HM_HEADER_LENGTH)
    - item_type: preproc_def
      name: mac_key
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/openssl-1.1.1g/test/bad_dtls_test.c
      type_or_value: (key_block + 20)
    - item_type: preproc_def
      name: dec_key
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/openssl-1.1.1g/test/bad_dtls_test.c
      type_or_value: (key_block + 40)
    - item_type: preproc_def
      name: enc_key
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/openssl-1.1.1g/test/bad_dtls_test.c
      type_or_value: (key_block + 56)
    structs:
    - fields:
      - name: seq
        type: uint64_t
      - name: drop
        type: int
      item_type: struct
      name: "tests[] = {\n    NODROP(1), NODROP(3), NODROP(2),\n    NODROP(0x1234),
        NODROP(0x1230), NODROP(0x1235),\n    NODROP(0xffff), NODROP(0x10001), NODROP(0xfffe),
        NODROP(0x10000),\n    DROP(0x10001), DROP(0xff), NODROP(0x100000), NODROP(0x800000),
        NODROP(0x7fffe1),\n    NODROP(0xffffff), NODROP(0x1000000), NODROP(0xfffffe),
        DROP(0xffffff), NODROP(0x1000010),\n    NODROP(0xfffffd), NODROP(0x1000011),
        DROP(0x12), NODROP(0x1000012),\n    NODROP(0x1ffffff), NODROP(0x2000000),
        DROP(0x1ff00fe), NODROP(0x2000001),\n    NODROP(0x20fffff), NODROP(0x2105500),
        DROP(0x20ffffe), NODROP(0x21054ff),\n    NODROP(0x211ffff), DROP(0x2110000),
        NODROP(0x2120000)\n    /* The last test should be NODROP, because a DROP wouldn't
        get tested. */\n}"
      pos:
        line_end: 430
        line_start: 427
        source_file: /src/openssl-1.1.1g/test/bad_dtls_test.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_hmac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - walk_curve
  - test_curve
  - atoi64
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/ecstresstest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_REPEATS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/test/ecstresstest.c
      type_or_value: '"1000000"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/openssl-1.1.1g/test/ssl_test_ctx.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: verify_callback
        type: ssl_verify_callback_t
      - name: servername
        type: ssl_servername_t
      - name: max_fragment_len_mode
        type: int
      - name: '*npn_protocols'
        type: char
      - name: '*alpn_protocols'
        type: char
      - name: ct_validation
        type: ssl_ct_validation_t
      - name: '*reneg_ciphers'
        type: char
      - name: '*srp_user'
        type: char
      - name: '*srp_password'
        type: char
      - name: enable_pha
        type: int
      item_type: struct
      name: SSL_TEST_CLIENT_CONF
      pos:
        line_end: 112
        line_start: 95
        source_file: /src/openssl-1.1.1g/test/ssl_test_ctx.h
    - fields:
      - name: servername_callback
        type: ssl_servername_callback_t
      - name: '*npn_protocols'
        type: char
      - name: '*alpn_protocols'
        type: char
      - name: broken_session_ticket
        type: int
      - name: cert_status
        type: ssl_cert_status_t
      - name: '*srp_user'
        type: char
      - name: '*srp_password'
        type: char
      - name: force_pha
        type: int
      - name: '*session_ticket_app_data'
        type: char
      item_type: struct
      name: SSL_TEST_SERVER_CONF
      pos:
        line_end: 130
        line_start: 114
        source_file: /src/openssl-1.1.1g/test/ssl_test_ctx.h
    - fields:
      - name: client
        type: SSL_TEST_CLIENT_CONF
      - name: server
        type: SSL_TEST_SERVER_CONF
      - name: server2
        type: SSL_TEST_SERVER_CONF
      item_type: struct
      name: SSL_TEST_EXTRA_CONF
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/openssl-1.1.1g/test/ssl_test_ctx.h
    - fields:
      - name: method
        type: ssl_test_method_t
      - name: handshake_mode
        type: ssl_handshake_mode_t
      - name: app_data_size
        type: int
      - name: max_fragment_size
        type: int
      - name: key_update_type
        type: int
      - name: extra
        type: SSL_TEST_EXTRA_CONF
      - name: resume_extra
        type: SSL_TEST_EXTRA_CONF
      - name: expected_result
        type: ssl_test_result_t
      - name: expected_client_alert
        type: int
      - name: expected_server_alert
        type: int
      - name: expected_protocol
        type: int
      - name: expected_servername
        type: ssl_servername_t
      - name: session_ticket_expected
        type: ssl_session_ticket_t
      - name: compression_expected
        type: int
      - name: '*expected_npn_protocol'
        type: char
      - name: '*expected_alpn_protocol'
        type: char
      - name: resumption_expected
        type: int
      - name: expected_tmp_key_type
        type: int
      - name: expected_server_cert_type
        type: int
      - name: expected_server_sign_hash
        type: int
      - name: expected_server_sign_type
        type: int
      - name: '*expected_server_ca_names'
        type: STACK_OF
      - name: expected_client_cert_type
        type: int
      - name: expected_client_sign_hash
        type: int
      - name: expected_client_sign_type
        type: int
      - name: '*expected_client_ca_names'
        type: STACK_OF
      - name: use_sctp
        type: int
      - name: enable_client_sctp_label_bug
        type: int
      - name: enable_server_sctp_label_bug
        type: int
      - name: session_id_expected
        type: ssl_session_id_t
      - name: '*expected_cipher'
        type: char
      - name: '*expected_session_ticket_app_data'
        type: char
      item_type: struct
      name: SSL_TEST_CTX
      pos:
        line_end: 225
        line_start: 138
        source_file: /src/openssl-1.1.1g/test/ssl_test_ctx.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_seed.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_509_dup_cert
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/x509_dup_cert_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_rc5_ecb
  - test_rc5_cbc
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/rc5test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC5_CBC_NUM
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/openssl-1.1.1g/test/rc5test.c
      type_or_value: '27'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_ocsp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_record
  - fail_due_to_record_overflow
  - test_record_overflow
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/recordlentest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_PLAINTEXT_OVERFLOW_OK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/test/recordlentest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TEST_PLAINTEXT_OVERFLOW_NOT_OK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/test/recordlentest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TEST_ENCRYPTED_OVERFLOW_TLS1_3_OK
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/test/recordlentest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TEST_ENCRYPTED_OVERFLOW_TLS1_3_NOT_OK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/openssl-1.1.1g/test/recordlentest.c
      type_or_value: '3'
    - item_type: preproc_def
      name: TEST_ENCRYPTED_OVERFLOW_TLS1_2_OK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/openssl-1.1.1g/test/recordlentest.c
      type_or_value: '4'
    - item_type: preproc_def
      name: TEST_ENCRYPTED_OVERFLOW_TLS1_2_NOT_OK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/test/recordlentest.c
      type_or_value: '5'
    - item_type: preproc_def
      name: TOTAL_RECORD_OVERFLOW_TESTS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/test/recordlentest.c
      type_or_value: '6'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_txt_db.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_tbl_standard
  - test_standard_methods
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/asn1_internal_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_ssl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/aborttest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_safestack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_crypto.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - timer_cb
  - test_dtls_unprocessed
  - test_dtls_drop_records
  - generate_cookie_cb
  - verify_cookie_cb
  - test_cookie
  - test_dtls_duplicate_records
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/dtlstest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_TESTS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DUMMY_CERT_STATUS_LEN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '12'
    - item_type: preproc_def
      name: RECORD_SEQUENCE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '10'
    - item_type: preproc_def
      name: CLI_TO_SRV_EPOCH_0_RECS
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CLI_TO_SRV_EPOCH_1_RECS
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SRV_TO_CLI_EPOCH_0_RECS
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '10'
    - item_type: preproc_def
      name: SRV_TO_CLI_EPOCH_0_RECS
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '9'
    - item_type: preproc_def
      name: SRV_TO_CLI_EPOCH_1_RECS
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TOTAL_FULL_HAND_RECORDS
      pos:
        line_end: 137
        line_start: 134
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: "(CLI_TO_SRV_EPOCH_0_RECS + CLI_TO_SRV_EPOCH_1_RECS + \\\n             SRV_TO_CLI_EPOCH_0_RECS
        + SRV_TO_CLI_EPOCH_1_RECS)"
    - item_type: preproc_def
      name: CLI_TO_SRV_RESUME_EPOCH_0_RECS
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CLI_TO_SRV_RESUME_EPOCH_1_RECS
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SRV_TO_CLI_RESUME_EPOCH_0_RECS
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SRV_TO_CLI_RESUME_EPOCH_1_RECS
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TOTAL_RESUME_HAND_RECORDS
      pos:
        line_end: 145
        line_start: 142
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: "(CLI_TO_SRV_RESUME_EPOCH_0_RECS + CLI_TO_SRV_RESUME_EPOCH_1_RECS
        + \\\n             SRV_TO_CLI_RESUME_EPOCH_0_RECS + SRV_TO_CLI_RESUME_EPOCH_1_RECS)"
    - item_type: preproc_def
      name: TOTAL_RECORDS
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/openssl-1.1.1g/test/dtlstest.c
      type_or_value: (TOTAL_FULL_HAND_RECORDS + TOTAL_RESUME_HAND_RECORDS)
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_dtls1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CUSTOM_DATA
  - CUSTOM_EXPECTED_SUCCESS
  - ENCDEC_DATA
  - ENCDEC_ARRAY
  - do_decode
  - do_encode
  - do_enc_dec
  - der_encode_length
  - make_custom_der
  - do_decode_custom
  - do_encode_custom
  - do_print_item
  - test_intern
  - test_long_32bit
  - test_long_64bit
  - test_int32
  - test_uint32
  - test_int64
  - test_uint64
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CUSTOM_EXPECTED_FAILURE
      pos:
        line_end: 137
        line_start: 134
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
      type_or_value: "{ 0, 0, 0 },                                \\\n    { 0, 0,
        0 }"
    - item_type: preproc_def
      name: DATA_BUF_SIZE
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
      type_or_value: '256'
    structs:
    - fields:
      - name: '*bytes1'
        type: unsigned char
      - name: nbytes1
        type: size_t
      - name: '*bytes2'
        type: unsigned char
      - name: nbytes2
        type: size_t
      item_type: struct
      name: TEST_CUSTOM_DATA
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
    - fields:
      - name: '*asn1_type'
        type: ASN1_ITEM_EXP
      - name: '*name'
        type: char
      - name: skip
        type: int
      - name: '*encode_expectations'
        type: void
      - name: encode_expectations_size
        type: size_t
      - name: encode_expectations_elem_size
        type: size_t
      - name: '*encdec_data'
        type: void
      - name: encdec_data_size
        type: size_t
      - name: encdec_data_elem_size
        type: size_t
      - name: '*i2d'
        type: i2d_fn
      - name: '*d2i'
        type: d2i_fn
      - name: '*ifree'
        type: ifree_fn
      item_type: struct
      name: TEST_PACKAGE
      pos:
        line_end: 169
        line_start: 145
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
    - fields:
      - name: success
        type: ASN1_BOOLEAN
      - name: test_long
        type: long
      - name: test_zlong
        type: long
      item_type: struct
      name: ASN1_LONG_DATA
      pos:
        line_end: 189
        line_start: 184
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
    - fields:
      - name: success
        type: ASN1_BOOLEAN
      - name: test_int32
        type: int32_t
      - name: test_zint32
        type: int32_t
      item_type: struct
      name: ASN1_INT32_DATA
      pos:
        line_end: 279
        line_start: 275
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
    - fields:
      - name: success
        type: ASN1_BOOLEAN
      - name: test_uint32
        type: uint32_t
      - name: test_zuint32
        type: uint32_t
      item_type: struct
      name: ASN1_UINT32_DATA
      pos:
        line_end: 327
        line_start: 323
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
    - fields:
      - name: success
        type: ASN1_BOOLEAN
      - name: test_int64
        type: int64_t
      - name: test_zint64
        type: int64_t
      item_type: struct
      name: ASN1_INT64_DATA
      pos:
        line_end: 375
        line_start: 371
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
    - fields:
      - name: success
        type: ASN1_BOOLEAN
      - name: test_uint64
        type: uint64_t
      - name: test_zuint64
        type: uint64_t
      item_type: struct
      name: ASN1_UINT64_DATA
      pos:
        line_end: 424
        line_start: 420
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
    - fields:
      - name: success
        type: ASN1_BOOLEAN
      - name: bytes[1]
        type: unsigned char
      item_type: struct
      name: EXPECTED
      pos:
        line_end: 474
        line_start: 471
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
    typedefs:
    - item_type: typedef
      name: i2d_fn(void *a, unsigned char **pp)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
      type: int
    - item_type: typedef
      name: '*d2i_fn(void **a, unsigned char **pp, long length)'
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
      type: void
    - item_type: typedef
      name: ifree_fn(void *a)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/openssl-1.1.1g/test/asn1_encode_test.c
      type: void
    union: []
- function_names:
  - key2048p3
  - test_rsa_mp
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/rsa_mp_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_EXTRA_PRIMES
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/test/rsa_mp_test.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cleanup
  - test_WPACKET_init
  - test_WPACKET_set_max_size
  - test_WPACKET_start_sub_packet
  - test_WPACKET_set_flags
  - test_WPACKET_allocate_bytes
  - test_WPACKET_memcpy
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/wpackettest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_sha.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - kat_entropy
  - kat_nonce
  - single_kat_no_reseed
  - single_kat_pr_false
  - single_kat_pr_true
  - test_cavs_kats
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/drbg_cavs_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*entropy'
        type: unsigned char
      - name: entropylen
        type: size_t
      - name: entropycnt
        type: int
      - name: '*nonce'
        type: unsigned char
      - name: noncelen
        type: size_t
      - name: noncecnt
        type: int
      item_type: struct
      name: test_ctx_st
      pos:
        line_end: 31
        line_start: 24
        source_file: /src/openssl-1.1.1g/test/drbg_cavs_test.c
    typedefs: []
    union: []
- function_names:
  - test_empty
  - test_unsupported
  - test_v2
  - test_v3
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/cipherbytes_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_bad_asn1
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/d2i_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*str'
        type: char
      - name: code
        type: expected_error_t
      item_type: struct
      name: error_enum
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/openssl-1.1.1g/test/d2i_test.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_x509_vfy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_client_hello
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/clienthellotest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CLIENT_VERSION_LEN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/test/clienthellotest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TOTAL_NUM_TESTS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/openssl-1.1.1g/test/clienthellotest.c
      type_or_value: '4'
    - item_type: preproc_def
      name: TEST_SET_SESSION_TICK_DATA_VER_NEG
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/openssl-1.1.1g/test/clienthellotest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TEST_ADD_PADDING
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/test/clienthellotest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TEST_PADDING_NOT_NEEDED
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/test/clienthellotest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TEST_ADD_PADDING_AND_PSK
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/openssl-1.1.1g/test/clienthellotest.c
      type_or_value: '3'
    - item_type: preproc_def
      name: F5_WORKAROUND_MIN_MSG_LEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/openssl-1.1.1g/test/clienthellotest.c
      type_or_value: '0x7f'
    - item_type: preproc_def
      name: F5_WORKAROUND_MAX_MSG_LEN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/openssl-1.1.1g/test/clienthellotest.c
      type_or_value: '0x200'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_ssl2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bio_f_watchccs_filter
  - watchccs_new
  - watchccs_free
  - watchccs_read
  - watchccs_write
  - watchccs_ctrl
  - watchccs_gets
  - watchccs_puts
  - test_tls13ccs
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/tls13ccstest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIO_TYPE_WATCHCCS_FILTER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/openssl-1.1.1g/test/tls13ccstest.c
      type_or_value: (0x80 | BIO_TYPE_FILTER)
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_store.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_des.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_PACKET_remaining
  - test_PACKET_end
  - test_PACKET_get_1
  - test_PACKET_get_4
  - test_PACKET_get_net_2
  - test_PACKET_get_net_3
  - test_PACKET_get_net_4
  - test_PACKET_get_sub_packet
  - test_PACKET_get_bytes
  - test_PACKET_copy_bytes
  - test_PACKET_copy_all
  - test_PACKET_memdup
  - test_PACKET_strndup
  - test_PACKET_contains_zero_byte
  - test_PACKET_forward
  - test_PACKET_buf_init
  - test_PACKET_null_init
  - test_PACKET_equal
  - test_PACKET_get_length_prefixed_1
  - test_PACKET_get_length_prefixed_2
  - test_PACKET_get_length_prefixed_3
  - test_PACKET_as_length_prefixed_1
  - test_PACKET_as_length_prefixed_2
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/packettest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUF_LEN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/openssl-1.1.1g/test/packettest.c
      type_or_value: '255'
    structs: []
    typedefs: []
    union: []
- function_names:
  - preserves_system_error
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/errtest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_aes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_ct.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_ossl_typ.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_kdf_tls1_prf
  - test_kdf_hkdf
  - test_kdf_scrypt
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/pkey_meth_kdf_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/rsa_complex.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_tls13
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/gosttest.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cipher'
        type: char
      - name: expected_prot
        type: int
      - name: certnum
        type: int
      item_type: struct
      name: "ciphers[] = {\n    /* Server doesn't have a cert with appropriate sig
        algs - should fail */\n    {\"AES128-SHA\", 0, 0},\n    /* Server doesn't
        have a TLSv1.3 capable cert - should use TLSv1.2 */\n    {\"GOST2012-GOST8912-GOST8912\",
        TLS1_2_VERSION, 0},\n    /* Server doesn't have a TLSv1.3 capable cert - should
        use TLSv1.2 */\n    {\"GOST2012-GOST8912-GOST8912\", TLS1_2_VERSION, 1},\n
        \   /* Server doesn't have a TLSv1.3 capable cert - should use TLSv1.2 */\n
        \   {\"GOST2001-GOST89-GOST89\", TLS1_2_VERSION, 0},\n}"
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/openssl-1.1.1g/test/gosttest.c
    typedefs: []
    union: []
- function_names:
  - set_up
  - tear_down
  - load_pem_cert
  - read_text_file
  - compare_extension_printout
  - execute_cert_test
  - SETUP_CT_TEST_FIXTURE
  - EXECUTE_CT_TEST
  - test_no_scts_in_certificate
  - test_one_sct_in_certificate
  - test_multiple_scts_in_certificate
  - test_verify_one_sct
  - test_verify_multiple_scts
  - test_verify_fails_for_future_sct
  - test_decode_tls_sct
  - test_encode_tls_sct
  - test_default_ct_policy_eval_ctx_time_is_now
  - test_ctlog_from_base64
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/ct_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CT_TEST_MAX_FILE_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/test/ct_test.c
      type_or_value: '8096'
    structs:
    - fields:
      - name: '*test_case_name'
        type: char
      - name: epoch_time_in_ms
        type: uint64_t
      - name: '* ctlog_store'
        type: CTLOG_STORE
      - name: '*certs_dir'
        type: char
      - name: '*certificate_file'
        type: char
      - name: '*issuer_file'
        type: char
      - name: expected_sct_count
        type: int
      - name: expected_valid_sct_count
        type: int
      - name: '*tls_sct_list'
        type: unsigned char
      - name: tls_sct_list_len
        type: size_t
      - name: '*sct_list'
        type: STACK_OF
      - name: '*sct_dir'
        type: char
      - name: '*sct_text_file'
        type: char
      - name: test_validity
        type: int
      item_type: struct
      name: ct_test_fixture
      pos:
        line_end: 56
        line_start: 29
        source_file: /src/openssl-1.1.1g/test/ct_test.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_blowfish.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_rc4_encrypt
  - test_rc4_end_processing
  - test_rc4_multi_call
  - test_rc_bulk
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/rc4test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_sm4_ecb
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/sm4_internal_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_rc4.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clnt_psk_callback
  - srvr_psk_callback
  - mtu_test
  - run_mtu_tests
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/dtls_mtu_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ADD_TEST
  - ADD_ALL_TESTS
  - ADD_ALL_TESTS_NOSUBTEST
  - SETUP_TEST_FIXTURE
  - EXECUTE_TEST
  - testutil_stringify_helper
  - testutil_stringify
  - PRINTF_FORMAT
  - DECLARE_COMPARISON
  - DECLARE_COMPARISONS
  - TEST_int_eq
  - TEST_int_ne
  - TEST_int_lt
  - TEST_int_le
  - TEST_int_gt
  - TEST_int_ge
  - TEST_uint_eq
  - TEST_uint_ne
  - TEST_uint_lt
  - TEST_uint_le
  - TEST_uint_gt
  - TEST_uint_ge
  - TEST_char_eq
  - TEST_char_ne
  - TEST_char_lt
  - TEST_char_le
  - TEST_char_gt
  - TEST_char_ge
  - TEST_uchar_eq
  - TEST_uchar_ne
  - TEST_uchar_lt
  - TEST_uchar_le
  - TEST_uchar_gt
  - TEST_uchar_ge
  - TEST_long_eq
  - TEST_long_ne
  - TEST_long_lt
  - TEST_long_le
  - TEST_long_gt
  - TEST_long_ge
  - TEST_ulong_eq
  - TEST_ulong_ne
  - TEST_ulong_lt
  - TEST_ulong_le
  - TEST_ulong_gt
  - TEST_ulong_ge
  - TEST_size_t_eq
  - TEST_size_t_ne
  - TEST_size_t_lt
  - TEST_size_t_le
  - TEST_size_t_gt
  - TEST_size_t_ge
  - TEST_time_t_eq
  - TEST_time_t_ne
  - TEST_time_t_lt
  - TEST_time_t_le
  - TEST_time_t_gt
  - TEST_time_t_ge
  - TEST_ptr_eq
  - TEST_ptr_ne
  - TEST_ptr
  - TEST_ptr_null
  - TEST_str_eq
  - TEST_str_ne
  - TEST_strn_eq
  - TEST_strn_ne
  - TEST_mem_eq
  - TEST_mem_ne
  - TEST_true
  - TEST_false
  - TEST_BN_eq
  - TEST_BN_ne
  - TEST_BN_lt
  - TEST_BN_gt
  - TEST_BN_le
  - TEST_BN_ge
  - TEST_BN_eq_zero
  - TEST_BN_ne_zero
  - TEST_BN_lt_zero
  - TEST_BN_gt_zero
  - TEST_BN_le_zero
  - TEST_BN_ge_zero
  - TEST_BN_eq_one
  - TEST_BN_eq_word
  - TEST_BN_abs_eq_word
  - TEST_BN_odd
  - TEST_BN_even
  - TEST_error
  - TEST_info
  source_file: /src/openssl-1.1.1g/test/testutil.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_CASE_NAME
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/openssl-1.1.1g/test/testutil.h
      type_or_value: __FUNCTION__
    - item_type: preproc_def
      name: TEST_CASE_NAME
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/openssl-1.1.1g/test/testutil.h
      type_or_value: __FILE__ ":" testutil_stringify(__LINE__)
    - item_type: preproc_def
      name: TEST_CASE_NAME
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/openssl-1.1.1g/test/testutil.h
      type_or_value: __func__
    - item_type: preproc_def
      name: TEST_error
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/openssl-1.1.1g/test/testutil.h
      type_or_value: test_error_c90
    - item_type: preproc_def
      name: TEST_info
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/openssl-1.1.1g/test/testutil.h
      type_or_value: test_info_c90
    - item_type: preproc_def
      name: TEST_note
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/openssl-1.1.1g/test/testutil.h
      type_or_value: test_note
    - item_type: preproc_def
      name: TEST_openssl_errors
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/openssl-1.1.1g/test/testutil.h
      type_or_value: test_openssl_errors
    - item_type: preproc_def
      name: TEST_perror
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/openssl-1.1.1g/test/testutil.h
      type_or_value: test_perror
    - item_type: preproc_def
      name: TESTMAXPAIRS
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/openssl-1.1.1g/test/testutil.h
      type_or_value: '20'
    structs:
    - fields:
      - name: '*key'
        type: char
      - name: '*value'
        type: char
      item_type: struct
      name: pair_st
      pos:
        line_end: 414
        line_start: 411
        source_file: /src/openssl-1.1.1g/test/testutil.h
    - fields:
      - name: '*test_file'
        type: char
      - name: '*fp'
        type: BIO
      - name: curr
        type: int
      - name: start
        type: int
      - name: errors
        type: int
      - name: numtests
        type: int
      - name: numskip
        type: int
      - name: numpairs
        type: int
      - name: pairs[TESTMAXPAIRS]
        type: PAIR
      - name: '*key'
        type: BIO
      - name: buff[4096]
        type: char
      item_type: struct
      name: stanza_st
      pos:
        line_end: 428
        line_start: 416
        source_file: /src/openssl-1.1.1g/test/testutil.h
    typedefs: []
    union: []
- function_names:
  - CTS128_TEST_VECTOR
  - cts128_encrypt_key_schedule
  - cts128_decrypt_key_schedule
  - last_blocks_correction
  - last_blocks_correction_nist
  - execute_cts128
  - test_aes_cts128
  - test_aes_cts128_nist
  - GCM128_TEST_VECTOR
  - test_gcm128
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: K2
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K1
    - item_type: preproc_def
      name: A2
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A1
    - item_type: preproc_def
      name: IV2
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: IV1
    - item_type: preproc_def
      name: A3
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A2
    - item_type: preproc_def
      name: K4
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K3
    - item_type: preproc_def
      name: IV4
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: IV3
    - item_type: preproc_def
      name: K5
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K4
    - item_type: preproc_def
      name: P5
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: P4
    - item_type: preproc_def
      name: A5
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A4
    - item_type: preproc_def
      name: K6
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K5
    - item_type: preproc_def
      name: P6
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: P5
    - item_type: preproc_def
      name: A6
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A5
    - item_type: preproc_def
      name: K8
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K7
    - item_type: preproc_def
      name: IV8
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: IV7
    - item_type: preproc_def
      name: A8
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A7
    - item_type: preproc_def
      name: A9
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A8
    - item_type: preproc_def
      name: K10
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K9
    - item_type: preproc_def
      name: IV10
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: IV9
    - item_type: preproc_def
      name: K11
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K10
    - item_type: preproc_def
      name: P11
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: P10
    - item_type: preproc_def
      name: A11
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A10
    - item_type: preproc_def
      name: K12
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K11
    - item_type: preproc_def
      name: P12
      pos:
        line_end: 539
        line_start: 538
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: P11
    - item_type: preproc_def
      name: A12
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A11
    - item_type: preproc_def
      name: K14
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K13
    - item_type: preproc_def
      name: A14
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A13
    - item_type: preproc_def
      name: A15
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A14
    - item_type: preproc_def
      name: K16
      pos:
        line_end: 631
        line_start: 630
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K15
    - item_type: preproc_def
      name: IV16
      pos:
        line_end: 632
        line_start: 631
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: IV15
    - item_type: preproc_def
      name: K17
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K16
    - item_type: preproc_def
      name: P17
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: P16
    - item_type: preproc_def
      name: A17
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A16
    - item_type: preproc_def
      name: K18
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K17
    - item_type: preproc_def
      name: P18
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: P17
    - item_type: preproc_def
      name: A18
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A17
    - item_type: preproc_def
      name: K19
      pos:
        line_end: 720
        line_start: 719
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K1
    - item_type: preproc_def
      name: P19
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: P1
    - item_type: preproc_def
      name: IV19
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: IV1
    - item_type: preproc_def
      name: C19
      pos:
        line_end: 723
        line_start: 722
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: C1
    - item_type: preproc_def
      name: K20
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: K1
    - item_type: preproc_def
      name: A20
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
      type_or_value: A1
    structs:
    - fields:
      - name: size
        type: size_t
      - name: '*data'
        type: unsigned char
      item_type: struct
      name: SIZED_DATA
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
    - fields:
      - name: '*case_name'
        type: char
      - name: "(*last_blocks_correction)(const unsigned char *in,\n                                     unsigned
          char *out, size_t len)"
        type: size_t
      - name: "(*encrypt_block)(const unsigned char *in,\n                            unsigned
          char *out, size_t len,\n                            const void *key, unsigned
          char ivec[16],\n                            block128_f block)"
        type: size_t
      - name: "(*encrypt_stream)(const unsigned char *in, unsigned char *out,\n                             size_t
          len, const void *key,\n                             unsigned char ivec[16],
          cbc128_f cbc)"
        type: size_t
      - name: "(*decrypt_block)(const unsigned char *in,\n                            unsigned
          char *out, size_t len,\n                            const void *key, unsigned
          char ivec[16],\n                            block128_f block)"
        type: size_t
      - name: "(*decrypt_stream)(const unsigned char *in, unsigned char *out,\n                             size_t
          len, const void *key,\n                             unsigned char ivec[16],
          cbc128_f cbc)"
        type: size_t
      item_type: struct
      name: CTS128_FIXTURE
      pos:
        line_end: 143
        line_start: 125
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
    - fields:
      - name: K
        type: SIZED_DATA
      - name: IV
        type: SIZED_DATA
      - name: A
        type: SIZED_DATA
      - name: P
        type: SIZED_DATA
      - name: C
        type: SIZED_DATA
      - name: T
        type: SIZED_DATA
      item_type: struct
      name: gcm128_data
      pos:
        line_end: 814
        line_start: 807
        source_file: /src/openssl-1.1.1g/test/modes_internal_test.c
    typedefs: []
    union: []
- function_names:
  - load_certs_from_file
  - test_alt_chains_cert_forgery
  - test_store_ctx
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/verify_extra_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - multihexstr2buf
  - load_record
  - test_record
  - test_tls13_encryption
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/tls13encryptiontest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TLS13_AES_128_GCM_SHA256_BYTES
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/openssl-1.1.1g/test/tls13encryptiontest.c
      type_or_value: ((const unsigned char *)"\x13\x01")
    structs:
    - fields:
      - name: '*plaintext[3]'
        type: char
      - name: '*ciphertext[3]'
        type: char
      - name: '*key'
        type: char
      - name: '*iv'
        type: char
      - name: '*seq'
        type: char
      item_type: struct
      name: RECORD_DATA
      pos:
        line_end: 42
        line_start: 32
        source_file: /src/openssl-1.1.1g/test/tls13encryptiontest.c
    typedefs: []
    union: []
- function_names:
  - test_asn1_meths
  - test_pkey_meths
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/pkey_meth_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_mdc2
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/mdc2_internal_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: expected[MDC2_DIGEST_LENGTH]
        type: unsigned char
      item_type: struct
      name: TESTDATA
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/openssl-1.1.1g/test/mdc2_internal_test.c
    typedefs: []
    union: []
- function_names:
  - test_md2
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/md2test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_mdc2
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/mdc2test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_idea_ecb
  - test_idea_cbc
  - test_idea_cfb64
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/ideatest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CFB_TEST_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/openssl-1.1.1g/test/ideatest.c
      type_or_value: '24'
    structs: []
    typedefs: []
    union: []
- function_names:
  - chdir
  - change_path
  - test_load_config
  - test_check_null_numbers
  - test_check_overflow
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/conf_include_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DIRSEP
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/openssl-1.1.1g/test/conf_include_test.c
      type_or_value: '"/\\"'
    - item_type: preproc_def
      name: chdir
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/openssl-1.1.1g/test/conf_include_test.c
      type_or_value: _chdir
    - item_type: preproc_def
      name: DIRSEP_PRESERVE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/openssl-1.1.1g/test/conf_include_test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DIRSEP
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/openssl-1.1.1g/test/conf_include_test.c
      type_or_value: '"/"'
    - item_type: preproc_def
      name: DIRSEP_PRESERVE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/openssl-1.1.1g/test/conf_include_test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DIRSEP
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/openssl-1.1.1g/test/conf_include_test.c
      type_or_value: '"/]:"'
    - item_type: preproc_def
      name: DIRSEP_PRESERVE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/openssl-1.1.1g/test/conf_include_test.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DIRSEP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/openssl-1.1.1g/test/conf_include_test.c
      type_or_value: '"/"'
    - item_type: preproc_def
      name: DIRSEP_PRESERVE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/openssl-1.1.1g/test/conf_include_test.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_pkcs12.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_mdc2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hostname_cb
  - client_keylog_callback
  - server_keylog_callback
  - compare_hex_encoded_buffer
  - test_keylog_output
  - test_keylog
  - test_keylog_no_master_key
  - full_client_hello_callback
  - test_client_hello_cb
  - test_ccs_change_cipher
  - execute_test_large_message
  - test_large_message_tls
  - test_large_message_tls_read_ahead
  - test_large_message_dtls
  - ocsp_server_cb
  - ocsp_client_cb
  - test_tlsext_status_type
  - new_session_cb
  - remove_session_cb
  - get_session_cb
  - execute_test_session
  - test_session_with_only_int_cache
  - test_session_with_only_ext_cache
  - test_session_with_both_cache
  - new_cachesession_cb
  - post_handshake_verify
  - setup_ticket_test
  - check_resumption
  - test_tickets
  - test_stateless_tickets
  - test_stateful_tickets
  - test_psk_tickets
  - setupbio
  - test_ssl_set_bio
  - execute_test_ssl_bio
  - test_ssl_bio_pop_next_bio
  - test_ssl_bio_pop_ssl_bio
  - test_ssl_bio_change_rbio
  - test_ssl_bio_change_wbio
  - test_set_sigalgs
  - use_session_cb
  - psk_client_cb
  - find_session_cb
  - psk_server_cb
  - create_a_psk
  - setupearly_data_test
  - test_early_data_read_write
  - allow_early_data_cb
  - test_early_data_replay_int
  - test_early_data_replay
  - early_data_skip_helper
  - test_early_data_skip
  - test_early_data_skip_hrr
  - test_early_data_skip_hrr_fail
  - test_early_data_skip_abort
  - test_early_data_not_sent
  - alpn_select_cb
  - test_early_data_psk
  - test_early_data_not_expected
  - test_early_data_tls1_2
  - test_set_ciphersuite
  - test_ciphersuite_change
  - test_tls13_ciphersuite
  - test_tls13_psk
  - generate_cookie_callback
  - verify_cookie_callback
  - generate_stateless_cookie_callback
  - verify_stateless_cookie_callback
  - test_stateless
  - old_add_cb
  - old_free_cb
  - old_parse_cb
  - new_add_cb
  - new_free_cb
  - new_parse_cb
  - sni_cb
  - test_custom_exts
  - test_serverinfo
  - test_export_key_mat
  - test_export_key_mat_early
  - test_key_update
  - test_key_update_in_write
  - test_ssl_clear
  - get_MFL_from_client_hello
  - test_max_fragment_len_ext
  - test_pha_key_update
  - ssl_srp_cb
  - create_new_vfile
  - create_new_vbase
  - test_srp
  - sslapi_info_callback
  - test_info_callback
  - test_ssl_pending
  - test_ssl_get_shared_ciphers
  - gen_tick_cb
  - dec_tick_cb
  - tick_key_cb
  - test_ticket_callbacks
  - test_shutdown
  - cert_cb
  - test_cert_cb_int
  - test_cert_cb
  - client_cert_cb
  - verify_cb
  - test_client_cert_cb
  - test_ca_names_int
  - test_ca_names
  - test_servername
  - setup_tests
  - cleanup_tests
  source_file: /src/openssl-1.1.1g/test/sslapitest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOG_BUFFER_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: NUM_EXTRA_CERTS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '40'
    - item_type: preproc_def
      name: CLIENT_VERSION_LEN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: USE_NULL
      pos:
        line_end: 1631
        line_start: 1630
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: USE_BIO_1
      pos:
        line_end: 1632
        line_start: 1631
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_BIO_2
      pos:
        line_end: 1633
        line_start: 1632
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: USE_DEFAULT
      pos:
        line_end: 1634
        line_start: 1633
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CONNTYPE_CONNECTION_SUCCESS
      pos:
        line_end: 1636
        line_start: 1635
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CONNTYPE_CONNECTION_FAIL
      pos:
        line_end: 1637
        line_start: 1636
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CONNTYPE_NO_CONNECTION
      pos:
        line_end: 1638
        line_start: 1637
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TOTAL_NO_CONN_SSL_SET_BIO_TESTS
      pos:
        line_end: 1640
        line_start: 1639
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: (3 * 3 * 3 * 3)
    - item_type: preproc_def
      name: TOTAL_CONN_SUCCESS_SSL_SET_BIO_TESTS
      pos:
        line_end: 1641
        line_start: 1640
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: (2 * 2)
    - item_type: preproc_def
      name: TOTAL_CONN_FAIL_SSL_SET_BIO_TESTS
      pos:
        line_end: 1643
        line_start: 1642
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: (2 * 2)
    - item_type: preproc_def
      name: TOTAL_CONN_FAIL_SSL_SET_BIO_TESTS
      pos:
        line_end: 1645
        line_start: 1644
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TOTAL_SSL_SET_BIO_TESTS
      pos:
        line_end: 1650
        line_start: 1647
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: "TOTAL_NO_CONN_SSL_SET_BIO_TESTS \\\n                                +
        TOTAL_CONN_SUCCESS_SSL_SET_BIO_TESTS \\\n                                +
        TOTAL_CONN_FAIL_SSL_SET_BIO_TESTS"
    - item_type: preproc_def
      name: MSG1
      pos:
        line_end: 2124
        line_start: 2123
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '"Hello"'
    - item_type: preproc_def
      name: MSG2
      pos:
        line_end: 2125
        line_start: 2124
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '"World."'
    - item_type: preproc_def
      name: MSG3
      pos:
        line_end: 2126
        line_start: 2125
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '"This"'
    - item_type: preproc_def
      name: MSG4
      pos:
        line_end: 2127
        line_start: 2126
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '"is"'
    - item_type: preproc_def
      name: MSG5
      pos:
        line_end: 2128
        line_start: 2127
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '"a"'
    - item_type: preproc_def
      name: MSG6
      pos:
        line_end: 2129
        line_start: 2128
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '"test"'
    - item_type: preproc_def
      name: MSG7
      pos:
        line_end: 2130
        line_start: 2129
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '"message."'
    - item_type: preproc_def
      name: TLS13_AES_256_GCM_SHA384_BYTES
      pos:
        line_end: 2132
        line_start: 2131
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: ((const unsigned char *)"\x13\x02")
    - item_type: preproc_def
      name: TLS13_AES_128_GCM_SHA256_BYTES
      pos:
        line_end: 2133
        line_start: 2132
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: ((const unsigned char *)"\x13\x01")
    - item_type: preproc_def
      name: GOODALPNLEN
      pos:
        line_end: 2898
        line_start: 2897
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '9'
    - item_type: preproc_def
      name: BADALPNLEN
      pos:
        line_end: 2899
        line_start: 2898
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '8'
    - item_type: preproc_def
      name: GOODALPN
      pos:
        line_end: 2900
        line_start: 2899
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: (alpnlist)
    - item_type: preproc_def
      name: BADALPN
      pos:
        line_end: 2901
        line_start: 2900
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: (alpnlist + GOODALPNLEN)
    - item_type: preproc_def
      name: TEST_EXT_TYPE1
      pos:
        line_end: 3898
        line_start: 3897
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '0xff00'
    - item_type: preproc_def
      name: SMALL_LABEL_LEN
      pos:
        line_end: 4280
        line_start: 4279
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '10'
    - item_type: preproc_def
      name: LONG_LABEL_LEN
      pos:
        line_end: 4281
        line_start: 4280
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '249'
    - item_type: preproc_def
      name: NUM_KEY_UPDATE_MESSAGES
      pos:
        line_end: 4503
        line_start: 4502
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
      type_or_value: '40'
    structs:
    - fields:
      - name: rsa_key_exchange_count
        type: unsigned int
      - name: master_secret_count
        type: unsigned int
      - name: client_early_secret_count
        type: unsigned int
      - name: client_handshake_secret_count
        type: unsigned int
      - name: server_handshake_secret_count
        type: unsigned int
      - name: client_application_secret_count
        type: unsigned int
      - name: server_application_secret_count
        type: unsigned int
      - name: early_exporter_secret_count
        type: unsigned int
      - name: exporter_secret_count
        type: unsigned int
      item_type: struct
      name: sslapitest_log_counts
      pos:
        line_end: 83
        line_start: 73
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
    - fields:
      - name: '*list'
        type: int
      - name: listlen
        type: size_t
      - name: '*liststr'
        type: char
      - name: valid
        type: int
      - name: connsuccess
        type: int
      item_type: struct
      name: sigalgs_list
      pos:
        line_end: 1884
        line_start: 1873
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
    - fields:
      - name: where
        type: int
      - name: '*statestr'
        type: char
      item_type: struct
      name: info_cb_states_st
      pos:
        line_end: 5090
        line_start: 5087
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
    - fields:
      - name: maxprot
        type: unsigned int
      - name: '*clntciphers'
        type: char
      - name: '*clnttls13ciphers'
        type: char
      - name: '*srvrciphers'
        type: char
      - name: '*srvrtls13ciphers'
        type: char
      - name: '*shared'
        type: char
      item_type: struct
      name: "shared_ciphers_data[] = {\n/*\n * We can't establish a connection (even
        in TLSv1.1) with these ciphersuites if\n * TLSv1.3 is enabled but TLSv1.2
        is disabled.\n */\n#if defined(OPENSSL_NO_TLS1_3) || !defined(OPENSSL_NO_TLS1_2)\n
        \   {\n        TLS1_2_VERSION,\n        \"AES128-SHA:AES256-SHA\",\n        NULL,\n
        \       \"AES256-SHA:DHE-RSA-AES128-SHA\",\n        NULL,\n        \"AES256-SHA\"\n
        \   },\n    {\n        TLS1_2_VERSION,\n        \"AES128-SHA:DHE-RSA-AES128-SHA:AES256-SHA\",\n
        \       NULL,\n        \"AES128-SHA:DHE-RSA-AES256-SHA:AES256-SHA\",\n        NULL,\n
        \       \"AES128-SHA:AES256-SHA\"\n    },\n    {\n        TLS1_2_VERSION,\n
        \       \"AES128-SHA:AES256-SHA\",\n        NULL,\n        \"AES128-SHA:DHE-RSA-AES128-SHA\",\n
        \       NULL,\n        \"AES128-SHA\"\n    },\n#endif\n/*\n * This test combines
        TLSv1.3 and TLSv1.2 ciphersuites so they must both be\n * enabled.\n */\n#if
        !defined(OPENSSL_NO_TLS1_3) && !defined(OPENSSL_NO_TLS1_2) \\\n    && !defined(OPENSSL_NO_CHACHA)
        && !defined(OPENSSL_NO_POLY1305)\n    {\n        TLS1_3_VERSION,\n        \"AES128-SHA:AES256-SHA\",\n
        \       NULL,\n        \"AES256-SHA:AES128-SHA256\",\n        NULL,\n        \"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:\"\n
        \       \"TLS_AES_128_GCM_SHA256:AES256-SHA\"\n    },\n#endif\n#ifndef OPENSSL_NO_TLS1_3\n
        \   {\n        TLS1_3_VERSION,\n        \"AES128-SHA\",\n        \"TLS_AES_256_GCM_SHA384\",\n
        \       \"AES256-SHA\",\n        \"TLS_AES_256_GCM_SHA384\",\n        \"TLS_AES_256_GCM_SHA384\"\n
        \   },\n#endif\n}"
      pos:
        line_end: 5410
        line_start: 5403
        source_file: /src/openssl-1.1.1g/test/sslapitest.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_stack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtest_conf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_faked_bytes
  - start_fake_rand
  - restore_rand
  - create_EC_group
  - test_sm2_crypt
  - sm2_crypt_test
  - test_sm2_sign
  - sm2_sig_test
  - setup_tests
  source_file: /src/openssl-1.1.1g/test/sm2_internal_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/versions.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/openssl-1.1.1g/test/buildtes